谈SOA与EAI之间的关系以及区别
把SOA应用到企业自身的EAI建设之中,已经成为当前的一个研究热点。
在当前的Internet时代,企业的信息系统正在面临一次新的转折。由于各种原因,很多企业都不同程度地存在着一个个“信息孤岛”,信息系统往往为不同的部门而设计开发,不同的应用系统之间不能共享业务处理流程和信息,不能有效地协同工作,大大降低了信息系统的效率。
在以电子商务为特征的新的企业经营模式下,随着竞争的日益加剧,企业迫切需要消除“信息孤岛”,使得各个信息系统的应用间既相互独立,又能有效协同工作,将不同的应用集成到一个完整的企业级信息化环境中,并能够实现与其他企业间的集成。这就是所谓的EAI——企业应用集成。
EAI是通过相应的软件技术将企业已有的和新建的各种业务系统集成起来,共同完成企业的各种商务活动,并能够灵活快速地适应企业的发展和市场的变化。在完成的过程中,应尽可能不对已有的应用程序做出大的修改,并实现数据共享和业务流程的集成。
传统的接口型EAI方案的实现
传统的EAI实现的架构可分为总线型的集成架构和星型的集成架构。
总线型的集成架构的原理是:各个应用系统的接口都面向信息总线。信息在总线中流动、传递。它的特点是应用系统只需要编写面向总线的接口,从而避免n×n个接口的编写。
星型的集成架构的原理是信息和应用都集中在一个中心部分。这个中心部分或者是一个应用服务器,例如在IBM的集成方案中,以MQ为集成核心;或者是一个数据仓库,例如WebMethods,它是以一个数据仓库为集成核心的。
这两种传统的集成方案有一个重要的特征,它们都是面向各个信息系统接口的,故称之为接口型的EAI方案,它们对各个应用系统的接口进行基于某些特定标准的处理,从而达到系统整合的目的。通过实施企业应用集成,可以有效地解决信息系统接口的问题。
接口型的EAI系统有难以克服的难点:一是由于应用增多,接口数量呈指数增长,系统在处理“长事务(Long Transcation)”的时候有很多困难;二是没有真正实现统一的身份认证、状态认证、安全控制等的基础服务;三是需要建立一个庞大而昂贵的核心系统。
利用SOA实现面向服务型EAI方案
企业内的各种信息系统应该是为企业内外的用户提供全方位的信息服务,而以往系统与系统之间是通过接口来实现联系的。按照“软件就是服务”的观点看,应用系统与应用系统之间,也应该走向一种互为服务的关系。
服务是从业务流程的角度来看待技术的——这是从上向下看的。这种角度同一般的由可用技术所驱动的商业视角是相反的。因为服务的优势很清楚,它们会同业务流程结合在一起,能够更加精确地表示业务模型,更好地支持业务流程。相反,我们可以看到,以应用程序为中心的企业应用模型,迫使业务用户将其能力局限为应用程序的能力。而利用Web服务的各个组织可以将内部功能组件或业务服务,按Web服务标准 (XML、WSDL)打包成Web服务组件,然后将其向服务黄页(白页、绿页)注册。服务请求者查找服务,返回服务具体的URL地址,并按使用协议,将服务绑定到自己的业务流程里,从而实现功能的调用,以实现B2B的整合目的,SOA就是下一代Web服务的技术架构。
SOA的一个中心思想就是让企业彻底摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要。企业IT架构环境中单个应用程序无法包容业务用户的各种需求,即使是一个大型的ERP解决方案,仍然不能满足这个需求在不断膨胀、变化的缺口。对市场快速做出反应,商业用户只能通过不断开发新应用、扩展现有应用程序来艰难地支撑其现有的业务需求。通过将注意力放在服务上,应用程序能够集中起来提供更加丰富、目的性更强的商业流程。其结果就是,基于SOA的企业应用系统通常会更加真实地反映出与业务模型的结合。
SOA中一个个服务组件都变成了标准的“建材”,用户可按照自己的业务需要创造出各种组合。用户不需要重新定制基础的服务零件,重点在于服务组件的接口。
SOA的强大和灵活性将给企业带来巨大的好处。如果某组织将其IT架构抽象出来,将其功能以粗粒度的服务形式表示出来,每种服务都清晰地表示其业务价值,那么,这些服务的顾客(可能在公司内部,也可能是公司的某个业务伙伴)就可以得到这些服务,而不必考虑其后台实现的具体技术。
更进一步,如果顾客能够发现并绑定可用的服务,那么在这些服务背后的IT系统就能够提供更大的灵活性。但是,要得到一种强大的灵活性,需要有一种实现架构的新方法,这是一项艰巨的任务。企业架构设计师必须要变成“面向服务的架构设计师”,不仅要理解SOA架构,还要理解SOA的实践。在架构设计和最后得到的架构实践结果之间的区别非常微妙,也非常关键。
- 本文关键词:

