2008年12月4日 北京近日,由中文技术社区Csdn主办的“中国软件开发2.0技术大会”(SD2C 2008)在北京九华山庄拉开帷幕,一千多名CTO、架构师、项目经理与开发管理人员及软件工程师齐聚歆享这场技术盛宴。会上,来自普元软件的首席架构师焦烈焱与胡长城围绕“SOBA:企业应用2.0”主题发表演讲,揭示在企业软件应用领域,随着IT与业务更为一致的客户需求压力,面向服务的业务应用(Service-Oriented Business Application,简称SOBA)将成为软件开发的主流。Gartner是SOBA一词的定义者。在他们看来,SOBA是ERP、CRM和其他C/S(客户机/服务器)商业应用的终极体现,而这些应用正是目前单一计算体系的中坚力量。Gartner甚至预言,面向服务的业务应用(SOBA)将会兼备ERP、CRM、供应链和其他应用的全部功能,从而成为单一的商业应用终结者。在SOA时代,SOBA将是商业管理系统的代名词。何谓SOBA?SOBA(Service-Oriented Business Application),面向服务的商业应用,其理念是构造可复用、易集成的业务应用。SOBA的核心是以用户为中心、以流程为中心,针对目前大多企业的现状(拥有多个相互之间难于集成的异构系统和框架、新的应用需求复杂高、业务创新迅速),通过整合界面、业务流程、服务和信息,提供统一、灵活的用户体验和跨流程、跨系统的组合能力。
在SOA的浪潮中,人们更关心基于面向服务架构构建的系统是什么样子,具备哪些特性,需要哪些关键技术和基础设施。可以说,SOBA为我们提供了答案。企业应用推动SOBA出现企业应用是个永恒的主题,因为他还在不断地成长。这个主题中永远包含三个话题:展现(Presentation)、业务逻辑(Logic)和数据(Data)。这三个话题四十年前是这样,四十年后还是这样。近四十年前:那是计算机少为人知的年代,更不要说软件了。为了满足企业商业应用软件的需要IBM研发出了CICS这个IT恐龙时代的产物。在此之前计算机主要用在顾名思义的‘计算’上了,而无法用在商业的管理与业务之上。自打CICS的诞生,计算资源有了更为广泛的应用。CICS,是Customer Information Control System的简称,主要用在IBM的大型机上面。有了他(CICS)就可以包打天下,把企业应用中的展现、逻辑和数据一网打尽,全部在CICS中得以实现。CICS的map操作(sendmap, receivemap)就是在把一张张的页面发送到前台的傻终端上;他的program操作就是调用一个个后台的业务处理逻辑;而他的File/SAM/VSAM/Buffer管了所有的数据服务,连我们熟知的数据库都不需要。创造了价值的企业总会有丰厚的回报,IBM成为了最大的IT厂商(963亿美元)。二十多年前:那是计算机进入广泛企业应用的时代。为了拆掉高昂成本的主机时代的门槛,满足更为广泛的企业商业应用软件到需要,微软推出了GUI的图形客户端,BEA推出了交易中间件,Oracle推出了关系型数据库。而这次发展正是把CICS所独揽的展现、逻辑和数据分立开来,对这三个话题进行了革命。这一革命可不得了,让企业级应用的门槛从几百万美元降到了几万美元。更多的企业都可以靠这些信息技术来发展和管理他的业务。这次革命就是大家熟知的客户机/服务器的企业应用架构所带来的。当然创造了价值的企业还是少不了有丰厚的回报,Microsoft成为了最大的软件厂商,BEA成为了最大的交易中间件厂商,Oracle成为了最大的数据库厂商。十年前:那是互联网的时代,怎样的企业应用架构是适合互联网的呢?现在的我们当然脱口而出‘BS架构’,即Browser/Server。J2EE和.NET就是代表的技术。这样的架构让100倍的人开始享用信息技术和服务,而花的确是百分之一的价格,几百美元。连看电话亭的老奶奶也上网了。还是那句话,创造了价值的企业总会有丰厚的回报,IBM/BEA/Microsoft成为了最大的应用服务器厂商。现在和未来的十多年:现在和未来的十多年又会如何呢?企业应用还是会发展吗?答案当然是‘是’。未来的企业应用将是以用户为中心、以流程为中心的模式,而不是以一个个IT系统为中心。用户可以在任意时间、地点、通过自己喜欢的交互方式访问应用。对于企业来说,应用不再是多个孤立的系统,而是以业务流程为核心的整体解决方案,企业可以在已有服务(包括后台服务和UI服务)基础上组装新的应用,快速响应需求变化,实现业务创新。难道你还没听到众多的词汇又在充斥你的耳朵吗?‘SOA/ Web Services/Component/SCA/SDO/BPEL/Mashup/Ajax’,这就是信号,强烈的信号,新的企业应用架构在逐渐成形。打破竖井,统一体验企业应用技术架构的演进会经历3个主要阶段:主机架构、客户机/服务器架构、企业服务架构。他们之间的主要区别是:
- 在主机架构下,数据和逻辑是一体的,采用面向过程的设计方法,每个应用是一个孤立的系统,维护相对容易,难于相互集成;
- 客户机/服务器架构将逻辑与数据进行了分离(不论C/S还是B/S 模式,本质都是客户机/服务器架构),采用面向对象的设计方法,每个应用是一个孤立的系统,提供了一定后台集成的能力,典型的客户机/服务器架构就是 MVC 架构;
- 企业服务架构把流程从逻辑中抽象出来,逻辑成为系统对外的服务,通过统一的用户界面、流程打破竖井式结构,采用面向服务的设计方法,企业多个应用之间将成为一个有机的整体。
简而言之:目前企业计算的架构正在从关注单系统、单应用的MVC架构向关注多系统、多应用的企业服务架构发展,伴随着支持这种发展,新的技术和产品已经出现。
SOBA开发平台
SOBA强调突破应用系统的限制,从整体视图构建企业应用,支持 SOBA 的企业服务架构采用了SOA的架构风格,以松耦合为特点,将企业应用分为协同、流程、服务、逻辑和资源(数据)5个层面。
- 协同层——为用户提供了一个统一的交互门户和工作平台,通过RIA(Rich Internet Application)的方式提升用户体验,用户通过协同层更容易以其他人进行协作,例如即时通讯、查看任务列表、查看发布信息,也能够把已有数据、服务或界面快速组合到新应用中。通过协同层,用户不再与多个孤立的系统进行交互,而是面对一个有机的整体;
- 流程层——维护跨系统之间的业务状态,企业应用的核心是业务流程,流程包括端到端流程和人工参与的流程,流程会产生任务,推送到工作平台。流程把企业中多个应用联接起来;
- 服务层——将应用系统提供的逻辑以标准化的方式暴露出来,使开发者不需要关心逻辑的对外协议、逻辑的实现方式、逻辑的部署位置,并提供事件的方式降低逻辑间的耦合度,为非侵入式的操作提供基础。
- 逻辑层——实现了具体的业务逻辑,包括UI逻辑和后台逻辑。逻辑将由多个组件组成,这些组件将以可插拔的方式部署,使用AOP、依赖注入的方式编程,提供逻辑的编排能力;
- 资源层——解决如何整合数据的问题,需要通过一个统一的数据编程模式统一对不同数据源的访问。
SOBA,企业应用2.0?
会上,普元软件首席架构师焦烈焱说道,SOBA面向服务的业务应用,其理念是构造可复用、易集成的业务应用。2.0时代的企业应用中系统越来越多,越来越复杂,企业更加希望用统一架构进行应用的规划,打破竖井式结构,使应用天然具备集成能力。为达到上述目标,未来企业应用架构将更加看重多系统之间的集成能力,包括可插拔的构件模式、UI集成、流程集成、组合服务等,SCA、SDO、BPEL、RIA等技术标志着企业应用2.0 时代的到来。
面向服务架构时代,对企业应用提供了更新的要求,构造SOBA(面向服务的商业应用)是我们面临的迫切问题。在SOBA中,企业应用的体系架构将从以MVC为代表的单系统架构发展为更加考虑系统间集成性的企业服务架构,相关技术的出现也给程序员带来了新的挑战和机遇,让我们一起,拥抱这个新的变化。