王安全:在SaaS初期来看单纯就编程语言上来看并没有太多的变化,采用Java、Python、PHP都可以,但是从发展的趋势来看动态语言越来越流行,主要原因有下面两个:
在越来越多的开发者切换到SaaS开发上来了后,就会出现SaaS技术支撑平台(即我们所谓的PaaS),为开发者提供计算、存储、监控、工作流、任务调度等基础设施,使开发者快速开发出稳定的、高性能的SaaS应用,此时开发语言就会跟提供计算能力的环境就有些关系,比如Google的AppEngine目前就限定使用了Python。
从长远来看会依赖于SaaS开发平台,比如Google的App Engine采用了Python,阿里软件将来的开发平台会以定义配置为主,小量的地方需要开发人员写代码逻辑,采用Java和JS。
1、SaaS化不单是技术和产品的需要,更是软件公司商业的需要。软件的付费模式、服务方式要SaaS花才有出路,网游就是最好的C/S形式的SaaS软件。
王安全:说实在的,在SaaS时代,技术将退居二线。因为SaaS是以服务用户为中心的,任何技术都必须围绕商业需求转。在SaaS平台方面,运营才是王道;而在SaaS应用方面,快速满足用户需求才是制胜之道。
所以,程序员必须树立以商业需求为中心的开发思想,程序员的命由用户需求说了算。特别是SaaS应用的开发,每个应用软件的功能都差不多,价钱也便宜多点少点也无所为,谁能快速满足市场需求,谁的软件就买的好。
这时,在SaaS平台上开发就会有很大优势,比如,阿里软件正在打造的Xplatform就是一个快速开发平台,她的最终目标就是实现大规模集成和大规模定制。
走进SaaS应用开发
51CTO:51CTO网友在看到我们的访谈后,也想进入SaaS开发,他们应该做怎样的准备?
王安全:SaaS将使程序员产生分化,即SaaS平台开发人员和SaaS应用开发人员。与当年的系统开发和应用开发相似。这取决于你想加入SaaS平台开发还是应用开发。但应用开发一定是占大多数的。
要成为SaaS平台开发人员,最好加入Salesforce, Google,Microsoft, 或者咱们阿里软件这样的公司,平台开发不是小公司能做的。如果想在SaaS应用方面大展拳脚,也建议大家在SaaS平台上开发,最起码也要调用SaaS平台提供的API。
平台并不仅仅是一个开发平台,更重要的是一个资源平台。比如,阿里软件互联平台就包含阿里巴巴1个亿的客户资源,还有大量及时的B2B, C2C信息资源,她既是资源平台也是SaaS市场平台,开发人员可以直接在这个平台上开发和销售的。
51CTO:SaaS平台开发人员和SaaS应用开发人员的分化对他们的技术结构有哪些不同的要求?这两类开发人员都需要具备哪些知识呢?
王安全:首先是要会一门编程语言。目前WEB是主流,所以确切的说是一门WEB开发语言,如Java。
第二是数据库技术。熟悉基本的SQL和数据调优技术。
第三是WEB前端开发技术。WEB成为主流,用户体验要求越来越高,目前JS仍然是WEB的重器,掌握一到两个JS框架是不可少的,如jQuery;Flex、JavaFx等技术目前还没有成为主流,可以关注一些。
第四点是WEB Service技术。在SaaS下的Open基本上都会采用WEB Service来进行,你必须知道WEB Service技术和相关的知识,如REST。
最后,第五点就是3G在中国已经发牌,未来3~5年手机上的应用一定会火起来,你的应用是否需要一个手版本这就很重要了,目前手机端的开发技术有WAP、OS Native、J2ME、Widget、中间件等模式。Apple和Google的AppStore和Android Market是不错的模式,他们的开发都是基于自己的一套标准开发,相信不久的将来就会在手机上出现更接近Native的中间件。
51CTO:SaaS开发的学习难度怎样?我们需要留意那些技术?
王安全:世上无难事,只怕有些人。其实,学习SaaS开发与传统开发并没有多大不同,只是你得适应SaaS开发的模式,适应SaaS那些WEB API调用形式。刚开始接触SaaS应用开发的程序员会觉得SaaS平台那些API长得很奇怪,调用模式也不同,有同步的。有异步的,涉及一大堆确保调用安全的必备参数,甚至还要对每次签名等等。其实,适应之后就好了。
SaaS目前还处在高速发展阶段,技术上远没有成熟,需要不断的吸收各个方面和领域的技术和知识,WEB2.0技术是讨论很热的区域,很多技术我们都需要用到:
◆ LAMP,性价比很高的SaaS环境搭建技术,无论是用来搭建单个SaaS应用,还是搭建一个SaaS技术平台;目前阿里软件就采用了MySQL来搭建分布式的结构化存储集群,很多关键应用已经开始跑在上面。
◆搜索,比如说Lucene,搜索是一个很重要的技术,阿里巴巴有完整知识产权的高性能搜索引擎,我们也采用Lucene这类优秀的开源产品。
◆前端技术,SaaS对前端技术有很高的要求,目前以JS为主,相信接下来Flex等RIA技术会大放异彩。
◆Hadoop,分布式计算设施,对于要搭建SaaS平台的公司来说是一个高性价比、快速的方案。
◆SNS,SNS在SaaS运营中会起到巨大的作用,一般来说,很多SaaS产品都可以植入SNS,达到病毒式营销的效果。SNS技术的重点有好友关系、好友搜索、好友动态。
◆OpenID, 可以稍微了解一下,目前支持的公司不是很多,但是OpenID的技术思想可以借鉴。
51CTO:现在有很多的SaaS平台,开发人员应该如何面对?怎样挑选适合自己的开发平台?
王安全:平台的差异比操作系统的差异更让程序员头痛,这的确是个大问题。
我想,在SaaS平台还没有完全进化为WEB OS之后,相关的WEB API规范都成熟之后,问题会好很多。不过,阿里软件有一个SIP中心,也就是WEB API调用中心。这个SIP集中了淘宝、支付宝、以及众多第三方的WEB API,这些WEB API在阿里软件互联平台上有一个统一的调用规范。而且,SIP还在不断地引入其他公司的WEB API。
因此,如果使用阿里软件的SIP,开发人员只会面对一套WEB API,不会面对众多的SaaS平台。这也是阿里软件互联平台与其他SaaS平台不同的地方。
51CTO:网友看过我们的访谈后,想到阿里平台上开发自己的应用,您又哪些经验可以跟我们分享?需要注意什么问题?
王安全:首先,一定要认识到未来的开发一定是很大一部分基于互联网的开发,互联网操作系统一定会出现,我们要把眼光放远些。
其次,开发人员不再处于单打独斗的年代,求伯君很难再现,协作、共享、平台化是开发的新模式,重用能力比开发能力更重要,不要成天想着发明轮子,用现有的轮子搭个车更有价值。
最后,创新力是差异化的杀手锏,在互联网时代,小小的创新可以被放大到非常惊人的经济效益,我们要善于发现现实和网络生活中的不便,思考出更简单、高效的方法改造这些不便的地方。
3G已经来临,我们应该试着开发几个手机应用了!
51CTO:通过本次访谈,我们基本了解了SaaS时代的开发人员应该具有怎样的技术结构和知识储备,深入了解了如何在SaaS平台上进行应用开发,王老师向我们全面展示了SaaS应用开发的过程和相关的开发技术,与我们分享了阿里平台应用开发的相关经验。让我们对SaaS时代的开发技术有了一个全面深刻的认识,感谢王老师细致耐心的讲解。
网友精彩问答
网友子非:云计算描述的是计算和存储能力吗?
王安全:云计算原本是强大分布式计算和存储能力的一个代名词而已,本质上就是计算时间和存储能力的提供。在云上开发出不同的软件或服务只不过是将计算和存储具体化,更接近客户。
网友Jack:在阿里的SaaS平台上开发应用是不是跟以前集成支付宝接口是一样的吗?
王安全:有些不一样了,我们提供了一个叫做SIP(Service Integeration Platform)的基础设施,通过RESTFul Style形式进行服务调用,保证接口技术是统一的,以后我们会逐步提供业务语义标准化的接口,如如何买一张机票的接口
网友lokke:一般,在阿里平台开发一个应用软件要多久?一般的,像流量统计什么的
王安全:目前开发一个应用要视什么样的业务类型,如淘宝类型的,就会很快,因为我们已经接入了淘宝的API;我们还会逐步将许多不同行业的API接入,提供给我们的开发者,这是从业务层面说。从技术层面,我们会提供用一些非常有用的基础设施,如搜索、流程、任务、性能监控、用户等,极大的减少开发时间,只需要调用我们的服务即可,像流量统计就不需要开发了,我们已经提供了基础的服务;另外我们试图提供一个在线的开发平台,这个平台集成了我上面列举的基础服务和业务组件,我们也提供了一系列的开发标准,如UI组件标准。
网友Jack:在阿里平台上,是不是可以想开发什么就开发什么?阿里有没有一些用户需求方面的引导?
王安全:没有限制,但是阿里软件会将用户需求提供给我们的开发者,一方面让开发者可以一对一提供开发服务,另一方随着开发者需求的积累完全可以把这个软件开放给更多的人来使用,获得更多的客户,阿里软件就是帮助开发者开发软件,撮合用户和开发者的软件交易。
网友DSDC:王老师可不可以给我们介绍一下阿里软件的电子商务云计算中心
王安全:首先,我们不可避免的会提供计算和存储的服务,但是我们肯定和google、amazon会有非常大的差异,差异目前还是商业机密,不好意思,暂时不能暴露,相信大家在不久的将来就会看到我们的商业云产品了(business cloud)
51CTO网友:阿里现在开放的API能全部满足软件需求中的功能吗?如果不能满足怎么办?要自己写API?自己写了API 能放到阿里的云上吗?那些api应该都是webservices实现的吧?
王安全:阿里软件提供的API肯定不能完全满足开发的需求。如果不满足可以自己写,写好后同过我们的SIP接入到阿里软件的平台上,提供给自己或别人用,可以按调用次数或包月等方式进行交易。另外我们也一直会不断的引入各种各样的API,你也可以成我们的服务提供商(ISP),我们希望这个平台上有非常多的API,而且希望这些API背后不是一个简单的机器计算,而更多的是一个商业服务。
目前是的,但是我们会逐步在技术上将很多东西转化成一个API,比如一个网页,以方便开发者将自己的东西变成服务。
网友kkdk:在校的计算机专业的学生能做SaaS开发吗?您提倡一开始就做SaaS开发吗?
王安全:能,非常好的尝试。未来的开发者一定会是SaaS开发模式,因为我们开发出来的应用要给很多人用,希望有好的收入,希望能够快速开发。。。做网站就是SaaS的初级阶段,软件互联化一定是潮流。
51CTO网友:这种SaaS开发对技术有怎样的要求?比如两年经验,三年经验,开发过几个项目,有类似的技能要求吗?
跟你依赖的平台有关,平台越完整,开发者就越简单和快速。但是我们来说对用户的理解和用户体验的改进是需要时间的,这一点时间我们不能节约,但是我想阿里软件SaaS平台上的庞大用户群和众多的基础设施、API会帮助到你。对于技术,必须要知道一门开发语言,知道XML、Web Service、Http等相关的知识,门槛还是不高的。