企业级应用:SOA架构如何融合SaaS模式

随着信息技术的高速发展,其承载的基本设施以及后方所提供的应用服务在不断完善.云计算的概念受到社会上更多人的关注和论证,搭建稳健、高效、多样化的“云上日子”正受各大IT厂商所追捧,其大部分IT厂商都不约而同地启动了各自的云计算战略。但是“云计算”这个大概念的背后,各项现有技术如何实现合理整合,对外标准如何制定,为迎合新时代新需求的商业模式如何等,诸如此类的问题冲击着TT行业。特别在随着SaaS的愈发火热.再者SOA架构的深层应用,这两种概念开始引出了一些新的混淆,模糊了看待技术发展的界限。

从软件技术角度理解SOA,一切都以服务为核心,其对外部提供了一个统一的契约.而服务由组件构成,组件是若干操作的集合,操作对应具体实现的程序模块 服务是通过对业务过程模型的分析而识别出来,专注于实现应用逻辑。而应用逻辑属于业务逻辑的一部分,设计直接源于需求中的用例。每个服务能够实现若干功能,这些功能由组建而不是操作来实现。这样格外的抽象去除了两个相对独立的功能之间的耦合度,同时实现一个粗粒度的远程接口。

在具体实践上,只要能提供服务的技术都可以实现SOA思想。若要让服务能够更广泛的被外界所应用,在互联网上发布,那么就要遵循一定的规则标准。这样的标准包括:SOAP、Java API for XML-based RPC (JAX-RPC)、WSDL和WS-* 规范等等。另外它的实现还需要安全性、可靠消息传递、策略管理以及控制支持。

SaaS,Software as a Service,软件即服务。SaaS是一种软件服务提供的模式,是一种将软件部署为托管服务并通过lnterrnet进行访问的模式。SaaS是基于互联网提供软件服务的软件应用模式。由Saas提供商为企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台,并负责所有前期的实施、后期的维护等一系列服务,企业无需购买软硬件、建设机房、招聘IT人员。而是终端客户根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。即可通过互联网使用信息系统,便于用户通过互联网托管、部署及接入,从而根据用户实际业务情况进行系统搭建及应用。

近年,SOA和SaaS模式二者的社会关注度都非常高,甚至在市场宣传中常常让人容易混淆。SOA作为一种软件架构方式,所指的“服务”既是划分的软件模块化单元,也是软件中模块间交互模式——表现为服务供应和消费关系:而SaaS模式中所描述的“服务”是供应商向终端用户提供的增值产品,是产品所涵盖的应用服务。也就是说,SOA和SaaS这二者所提及的“服务”是分别两个范畴上的概念。但在更高层的角度去分析SOA和SaaS之间的关系,却发现二者都在不同层面七具有支撑作用,可以实现一种很好的外接模式,使得软件更具有灵活件和生命力。

首先,SOA提供的是一个松耦合的系统,能够帮助SaaS对终端用户提供更多个性化的服务。面向服务架构的软件是通过这些服务之间定义良好的接口和契约联系起来,软件模块的交互也以标准协议达成,使得松耦合的软件模块能够容易的被替换或升级。特别是针对“长尾理论”所描述的大量冷门商品,在网络时代,商品储存流通展示和渠道足够宽广,商品生产成本和销售成本急剧下降时。这些需求和销量不高的产品亦会有人购买,甚至超过主流商品所占据的市场份额。也就是个性化的需求市场将逐步放大,这样就使得SaaS厂商能够更好地按照终端用户自身的偏好或者要求,聚合不同的软件模块,为终端用户提供个性化的服务。例如,在一个基于SOA的房产中介信息平台中,可以为美国用户使用Google Map提供的软件模块显示地图和卫星图,也能按照中国的用户要求定制,聚合中国本地开发的地图软件模块,更好地提供本土地图细节。这样的软件模块替换,在SOA下更加容易实现,甚至能够低成本的为每个客户定制,而不失SaaS规模化的优势。

其次,SOA推动的软件生产工业化改变着SaaS厂商之间的生态系统。近年有人提出软件开发工业化的概念,类似于汽车行业或者更多已经成熟的产业,未来的工业化软件开发将像堆积木一样,只要把标准模块设计出来,不同的产品只需要进行不同的组装即可使用。这将彻底颠覆传统开发的模式,将转而根据既定时间和已有资源量根据市场需要来相应变动开发计划 软件工厂的模式将更容易控制开发成本、管理开发组件、缩短开发周期,是开发者能够专注于完成重要功能,保证开发计划高质量地完成。新的软件开发模式将逐渐使开发规范与其基于的技术分离出来,而向更高级别的抽象应用发展。而SOA所描述的思想,正好让IT变得更有弹性,以更快地响应业务需求,实现实时企业等。作为面向服务的体系架构,SOA需要提供一套统一的软件标准或协议,用软件工业化生产的角度来看,SOA架构必须支持软件的工厂化生产。同时,这一这个变革影响着SaaS的生态系统,使得SaaS从单一供应商提供所有终端用户需求方面的服务的状态,逐步过渡到众多供应商分工协作,系统由各个供应商所提供的不同服务所聚合而成,从而为终端用户提供强大的全方位的服务支持。

当这种融合的模式发展到一定成熟程度,每个IT服务提供商均有所针对的细粒度市场,使用SOA服务的机构用户或个人用户对外逐渐摆脱对单一厂商、供应商平台技术的依赖,加大对自主开发或外包开发模式的控制力度,甚至将行业经验反哺到整个S0A市场,重新包装形成自身“一站式”的高层服务对外提供支持。

SOA技术架构改变了整个软件的构建方式,推动着企业IT应用创新,SOA的意义就在于让IT变得更有弹性,按需聚合功能服务,使IT与业务保持同步,从而更好地驾奴变化 而saaS能在此基础上,让终端用户能够以服务组合的形式快速搭建复合的灵活应对变化的系统,甚至整合SaaS厂商所提供的特殊领域的服务,实现个性化需求的极大满足,提高生产和管理等各方面的效率。目前,国内外各大IT提供商都积极进入SOA市场,并力图解决厂商内部产品和客户方面的功能整合需求,扩展其SaaS模式下按需服务的提供能力。同时,传统的EAI和MOM厂商也在重新定位为ESB(企业服务总线)或SOA服务供应商 未来软件行业将会在这两者融合的市场下,迎来新一轮的春天,千姿百态,大放异彩,请拭目以待。