SOA的组成
SOA是由一系列相互联系的层来组成的。从一个开发者的角度,讨论这些层也同时体现了构建面向服务的解决方案的方法步骤。因此,第一件事就是使它们能够通过Web服务来访问LOB应用系统。其次,以某一种方式来实现商业流程非常有必要。
通过Web服务使后端应用系统可用
由于仓库应用系统是由RPG编写的,客户信息控制系统服务[CICS]是由COBOL编写的,他们原本是不能够被访问通过Web服务。通过利用Host Integration Server 2004 (HIS),下面的应用程序接口能够像可访问的.NET Web服务,在Visual Studio .NET中应用程序的功能可以直接使用 (Host Integration Server 在 图 2中可见) 。WebSphere应用程序能够用Web服务来体现,通过利用.NET框架来创建一个.NET代理对象。
对于语音服务器,小组决定用微软的语音服务器来代替现有的解决方案,这种服务器提供更加丰富的解决方案。一些有意义的开发技术被用来开发复杂的语音功能。语音服务器基于预定义的声音资源文件动态的生成一个恰当的信息,这些声音资源文件包括普通的东西表示方式,比如用整数作为顺序号和一些普通的问候信息。由于语音服务器原本就支持.NET,所以用Web服务来表示服务器的功能是一种很简单的事情。有了这些Web服务,应用程序基本的部件提取就完成了。所有的事件和错误代码都被捕获并且由微软的操作管理(MOM)来控制,MOM能够监控、分析、诊断和避免这些问题。
利用商业过程来控制组织构架
除了简单抽象的LOB应用系统之外,一个好的面向服务的解决方案同时也提供了一个控制商业逻辑的灵活方法。利用BizTalk Server 2004,流程组织作为一个已经定义好的商业流程被用来表示多路Web服务前端。这个流程组织好像一个乐队指挥员,也就是说,决定何时和如何让每一个交易都处理。在上面所述的商业流程例子里,当一个XML格式的订单表被提交了,流程组织检查这个订单,同时提交给另外一个流程组织,这个流程组织是为了管理和仓库应用程序交互而设计的。其它的流程组织管理与其它各个的LOB应用系统的交互。
注释:在图2里仅仅给出了BizTalk Server在LOB Web服务上。还有,像刚才描述的那样,多流程组织管理特定的商业流程。
这些流程组织坚持按序访问LOB应用系统,它们同时避免了许多种类的问题,这些问题在过去曾会导致失败。例如,流程组织不允许格式化错误的订单执行,而且会将失败和其失败原因写到事件日记里。
另外一个利用BizTalk Server 2004的好处是它允许在系统中实时看到订单的状态。比如,一个订单到了仓库应用程序,仓库操作人员假设将订单的状态改为“挑选”,说明产品在库房里,而且订单正准备托运。当一些失败出现时,操作人员能够看到现场运行场景,确信订单仍在仓库应用程序中等待状态改变,或者进一步诊断耽搁或失败的原因。
获取主动性
如上所述,管理组织意识到由于错误信息是用一致的方式表示的,他们就不仅能够利用这些信息来进行调试和报告错误,而且能够主动进行系统监控 。他们利用微软的操作管理(MOM)从Web服务上获取所有的错误和事件信息,利用这些信息能够进行诊断性的分析。
构建SOA
根据计算机世界的最近报道:
“SOA 在技术方面不需要大量的投资,这些投资是模糊的投资回报和延长的投资回收年限。SOA可以完成小的增量,巨大的软件和服务利益重新使用能够迅速交付基线结果。事实上,当一个组织构建一个有战略眼光的SOA,经常有一个在项目层次上的清晰投资回报。这种现象是奇怪的,这也是商业经理人经常怀疑的地方,然后事实却是如此。”--计算机世界 2004年11月15日。
微软技术中心的案例研究确实证实了以上所述。整个面向服务的解决方案,包括HIS对RPG的接口和COBOL 应用程序,所有的Web服务,BizTalk流程组织、新的语音服务器和其所有的逻辑,还有新的基于InfoPath的小客户端购买应用程序,所有的这些大概需要两个人月去构建。当然,主要是由于利用HIS、BizTalk, 和 .NET开发环境很容易,然而实事是前面的少量投资能够减少全部的开发时间,在控制老式系统的时候能够产生巨大的效果。同样,正如计算机世界所述,一旦这些投资已经投了,相同的项目非常容易做,SOA尽可能构建在项目和项目层次,而不是企业事业层次。
面向服务的解决方案的好处
面向服务的解决方案有如下好处:
商业逻辑层位于用户层和老式系统之间,这样能确保系统仅能够按照其原来的设计方式来访问。
老式应用程序作为.NET应用程序是可用的,所以使开发变得更快。
BizTalk的路由支持集中各种不同LOB应用系统的入口点。BizTalk简单的分析XML数据信息,它决定发往哪里。同时修改商业逻辑也不需要完全重写应用程序,开发人员仅仅需要更新流程组织和重新配置。
由于老式系统目前容易从.NET平台来访问,扩展也很容易。应用程序如Microsoft ASP.NET, Office System, and Smart Phones都能够和在LOB应用系统中的数据进行交互。
开发人员没有必要专长每一个老式系统,因为每一个系统都是通过一些公共接口来访问的。
面向服务的解决方案跟踪了除原客户端之外的所有过程层次的错误,这也是它应该做到的,开发者和面向服务解决方案的交互也是应用程序应该具有的。从BizTalk到Web服务和它们自身的老式应用程序,如果有错误出现都会通报操作人员。常常,问题能够在外部客户端意识到之前就判断出来。
结论
这个案例的研究体现了利用一种SOA方法来迅速改进操作的好处.Host Integration Server 2004 体现了服务器的网络服务功能,使其更加容易适应不同的LOB应用系统。BizTalk Server 2004 使得创建复杂的商业逻辑变得容易,这种商业逻辑是集中的、简单易管理的、同时也容易和前端应用相结合。这种面向服务的解决方案技术,通过微软公司操作管理者,发现了以前没有报告的错误信息,从而使得整个构架变得更加容易管理。
这一特殊面向服务解决方案的细节是微软技术中心的唯一特殊需求。然而,通过使用Web服务和流程组织,概括出的基本原理体现了如何利用比较少的费用完成一个灵活的、可重用的、能够支持已有投资的组织结构。