SaaS模式不同于传统软件不仅仅体现在运营的服务上,在软件开发的方式和技术上也有很大的不同。
如何开发SaaS软件,开发SaaS软件将用到哪些技术这都是我们要研究的主要内容。
2实现SaaS软件的关键技术
lSOA技术
SOA与SaaS被被称作挛生姐妹确实并不为过,SOA与SaaS是现代软件服务领域的二架马车,它们奔蹄狂奔、并驾齐驱。
面向服务架构(SOA)早是由Garnter公司在上世纪90年代末提出的概念,强调服务的重要性。国内大多数消费者是通过SOA领域的老大IBM的宣传逐步对其认识和理解的。
随着时间的推移,应用软件开发厂商向SOA领域涉及的程度越来越深,现在可以毫不夸张地说,SOA已经无处不在。随着SaaS的愈发火热,SOA的继续深入,2007年12月微软率先在业界提出了“软件+服务”(S+S)战略,旨在打通“内部业务整合(SOA)+外部业务拓展(SaaS)+丰富用户体验”等多重资源,将“软件”和“服务”有机地结合在一起,达到IT价值的大化,实现SaaS和SOA“鱼和熊掌兼得”。
根据微软在一份技术白皮书中做出的定义,“软件+服务”是一把“IT大伞”,它综合了很多IT现有的技术和理论,包括SaaS、SOA和Web2.0。随着不同厂商从不同的切入点切入,整个IT业正在托起”软件+服务”这把大伞,走向IT未来之路。
“IT环境的日益复杂,使得人们对科技产品的需求不断增加,未来10年的科技发展趋势已经昭示,单一、模式化的技术产品或服务将不能满足社会经济的发展需求,全球科技生态系统将向多元、动态、服务性等方向健康发展”。微软院士、微软CTO办公室成员DonaldFerguson认为,在服务领域,用户可以买前试用,按需支付;在软件领域,用户有完全的掌控权--自行定制、一次性支付,想用多久就用多久。用户如果选择了纯软件或纯服务的途径,实际上就等于放弃了一方面的优势。“S+S”可以很好地解决这一问题。“S+S”的理念针对用户的多种需求,既可选择获得服务,也可选择继续拥有软件,或二者兼得。
“SOA对那些开展SaaS的软件厂商而言也相当重要”。InterarborSolutions有限公司首席分析师DanaGardner指出,原因在于SOA能帮助其更有效地进行应用程序软件的传递。与传统的打包应用软件厂商相比,他们从价格方面获得了竞争优势。
微软中国首席技术官李志霄博士表示,软件与服务在“S+S”中扮演了互补的角色,2008年将是微软对“S+S”战略加紧布局的重要一年。另据SAPBusinessByDesign总监刘钦中透露,SAP也将在2008年大变脸,以SOA架构产品拓展SaaS新渠道,从而获得SaaS和SOA的双重收获。
l云计算技术
SaaS作为应用软件的一种全新的销售方式已经开始蓬勃发展起来,随着SaaS软件客户的增长,网络存储和带宽等基础资源就会逐步成为发展的瓶颈,对众多企业来说,自身计算机设备的性能也许永远无法满足需求,一个简单的办法是采购更多、更先进的设备,随之而来就是设备成本急剧增长,利润随之降低,有没有更加经济有效的解决途径呢?“云计算”的出现也许为这个问题的解决推开了大门的一个缝隙。
云计算(CloudComputing)是基于互联网的一种新兴的共享基础架构的方法,通常为一些大型服务器集群,包括计算服务器、存储服务器、宽带资源等等。它利用高速互联网的传输能力,将数据的处理过程从个人计算机或服务器移到互联网上的服务器集群中,这些服务器集群由一个大型的数据处理中心管理着,数据中心按客户的需要分配计算资源,将巨大的系统池连接在一起以提供各种IT服务。以达到与超级计算机同样的效果。云计算将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得企业无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新。
通常情况下,SaaS供应商更专注于软件的开发,而对网络资源管理能力较弱,往往会浪费大量资金购买服务器和带宽等基础设施,但提供的用户负载依然有限,而云计算提供了一种管理网络资源的简单而高效的机制,其分配计算任务、工作负载重新*衡、动态分配资源等等,可以帮助SaaS厂商提供不可想象的巨大资源给海量的用户,SaaS供应商可以不再服务器和带宽等基础设施上浪费自己的资源,而专注于具体的软件开发和应用,从而达到终用户、SaaS、云计算三方的共赢。
云计算在企业软件市场上具有相当大的潜力,对于SaaS供应商来说也是一大机遇,他们可以选择云计算*台,使用云计算的基础架构,使用及其低廉的价格为海量的用户群提供更为稳定、快速、安全的应用和服务。
要快速掌握云计算的概念的话,我们可以用网络架构图上的那朵云的概念来类推。在网络架构图上,通常以云来把因特网联机架构给隐藏起来,就不需理解联机的复杂性,而能以简化的概念来沟通;云计算的概念,则是要把运算系统的复杂性给隐藏起来,让开发者可以不必了解提供运算资源的系统架构为何,只要把运算的数据丢进系统,后系统就会传回结果。