SOA——从复合应用出发

距离Gartner提出SOA都十年有余了,现在SOA刚刚逐步被企业接受和采纳。SOA的始作俑者Gartner在他们的网站上这样说:"虽然面向服务的架构的概念不再时新,但是SOA的广泛采用才刚刚开始。……到2008年SOA会终结单一软件架构40年的统治地位(70%可能),成为流行的软件工程实践。"但要说服企业投资采用任何新技术的时候,都要做个基本的ROI分析,毕竟谁也不愿意做赔本买卖,这里就有问题了。许多做信息主管的朋友都认为,实施SOA毕竟不同于购买一个应用软件,它涉及的是一个长期的信息系统战略调整,往往不可能十天半个月,甚至一年半载出效益的。其实,这里是有一些误解的,如果从一个完备SOA来讲,确实如此,但是长城不是一天建成的,向企业级SOA转变的过程也应当是逐步进化的过程。所以,应该要在现有的信息系统架构下找到一个合适的出发点,从这里起步向企业级SOA转变。

复合应用就是一个出发点。为什么这么说呢?先问各位一个问题,企业信息系统预算中最大的一块花费是什么?对大部分稳定运行经年的企业信息系统而言,这块花费就是集成(Integration),据研究估计集成应用的需求占了企业信息系统预算的40%。为什么在信息技术运用成熟的企业中,集成成为最大需求?因为成熟的用户已经不满足传统应用程序包含的固定业务流程,他们对业务流程创新的渴望,是仅仅具备有限定制能力的应用程序无法满足的。例如:对集成不同应用的数据生成报表的要求,以及对应用系统之间工作流自动化的要求等等。这些经验丰富的业务专家们充分意识到集成带来的效益,所以集成自然成为企业信息系统的最大需求,当然也是最能够迎合用户产生效益的地方。而复合应用就是为了帮助解决这个问题应运而生的,这里所谓的"复合"就是对现存应用系统功能的集成。

复合应用是虽然随同SOA的概念逐步进入人们的视野的,但复合应用的部署不要求完备的企业级面向服务架构。各种复合应用的框架和工具也是考虑到比较符合实际的企业信息系统状况是SOA应用和历史遗留系统并存的实际情况,以SAP的复合应用的框架和工具为例,在对异构平台的接口方面,除了标准的网络服务支持,也支持传统的BAPI/RFC、EJB,甚至直接数据库访问。这种复合应用的框架和工具非常符合SOA的过渡时期,让企业在慢慢过渡到完全的企业级面向服务架构过程中,在复合应用的实施中快速获得回报,逐步展现快速应对业务变革的业务应用柔性。

即便是复合应用的部署,也可以分为不同的层次,逐步深入。目前企业中复合应用对异构平台信息集成的基本用例是把信息从异构平台的信息源收集起来,然后通过网页浏览或者网络门户的方式展示,进一步提供信息的向下挖掘(Drilldown)。这种应用对用户显而易见好处就是把分散的信息集中展示,方便信息获取和分析处理;相对其它集成手段,复合应用能更加快速的创建和维护,对业务变革做出快速响应。相对于信息收集的应用集成,复杂的复合应用就要涉及到信息在不同应用系统中的流转的操作,也就是实现工作流。其中比较简单的工作流复合应用依次更新单独的应用系统中的业务对象;而相对复杂的工作流复合应用要求同时对不同应用系统中相关的业务对象实现同步更新,这就涉及到如何保证更新事务(Update Transaction)的完整性。有关长程事务(Long-term Transaction)的问题,至今没有一个满意的标准共同参照。对于企业实际运用而言,姑且把这些悬而未决的东西搁置一边,利用现有的技术做复合应用的部署,不仅从效益上,而且从士气方面,鼓舞向企业级SOA转变。

当然,始终要把SOA作为企业信息系统的愿景。复合应用的成果是令人欢欣鼓舞,而SOA涉入越深入,复合应用的运用需要越少的投入,更加迅速的产生更大的收益,同时能够部署和实施的复合运用层次越高。在深度企业级SOA的基础上,由于服务模块封好,同样的复合应用需要处理更少的非标准化接口,应用变动柔性高,维护成本提低。由此推断,企业级面向服务架构的逐步完备和复合应用对加速业务变革的作用是一个互为增益的良性循环。