企业应用集成技术的选择

2009-06-02 06:32
活力 2009年25期

李 成

【摘要】在今天的网络信息和经济一体化时代,全球企业正向着电子商务的运营模式转变。企业内部各经营环节与外部连接的都非常紧密,甚至融为一体。这就迫切需要企业消除信息孤岛,使各个系统应用间既相互独立又能有效协同工作。如何将不同的应用集成到一个完整的企业级信息化环境中,并能够实现与其他企业间的集成,成为企业信息化过程中亟待解决的问题。企业应用集成(Enterprise Application Integration,简称EAI)是解决了企业信息系统的集成而产生的。

【关键词】EAI;Web Service;SOA;B2B;,A2A

1.前言

随着社会的发展,企业内部和企业之间的交互变的越来越频繁,尤其是企业内部的系统。一个大型企业会用到大小不一的多个系统,他们可能是用不同的语言写的,运行在不同的机器上,有不同的系统平台,但是随着企业的发展,他们之间开始需要有信息交互,那么他们就需要被集成起来,也是企业急需要解决的问题。

2.EAI技术概述

目前,实现EAI的技术标准有:COM+/DCOM、CORBA、JavaRMI、JMS、WebService、ESB和XML等。EAI技术发展经过如下图所示的各个阶段

向面组件(EJB、DCOM):组件同组件特定的通信协议紧密耦合在一起,如图1所示。

面向标准组件(Web Service):WS使用了标准的通信协议SOAP,解决了跨平台问题,但对SOAP来说,还是WS所特有的一种协议,如图1所示。

面向服务(SOA):SOA将组件同具体协议解耦,实现了服务的位置和传输协议的透明化,如图2所示

3.EAI技术的选择

以上就是实现EAI的一些技术,针对企业不同的情况,采用合适的技术和成本,来解决企业系统互连。目前企业应用集成主要是在两个方面:(1)企业内部集成(这里简称A2A),(2)企业之间的集成(这里简称B2B)。本文以这两个方面描术企业应用集成过程中的技术的选择。

1)、A2A:企业内部的集成。主要是在企业局域网内部的应用程序之间的集成,这一类集成需要考虑到了带宽、和响应速度以及企业内部各系统是否采用相同的技术(如java、.net),不要只顾着使用新技术,而忽略一些实际问题。很多公司在A2A的情况下使用了webservice,但是我认为这是不恰当的,太重量级了,不合适企业内部应用之间的调用(特殊情况例外,比如两个应用使用不同语言开发等等)。 在这种情况下通常A2A可以使用COM+/DCOM、CORBA、JavaRMI、JMS来实现,还有轻量级远程调用。本例以java为例,个人觉得如果都是构建于java语言,那么使用jms+httpinvoke或者jms+Hessian比较好,这样简单。且两个都是java的应用使用xml作为通信的结构会带来不必要的复杂,而且会浪费大量的带宽,也是一些大师推荐。

2)、B2B:企业之间的集成。这一些集成主要是企业之间的互连,跨越Internet网,传统方法,不能穿越企业防火墙,现在我们一般采用SOA的方式来集成,SOA是(service-oriented architecture)是面向服务的体系结构,是一类分布式系统的体系结构。这类系统是将异构平台上应用程序的不同功能部件(称为服务)通过这些服务之间定义良好的接口和规范按松耦合方式整合在一起,即将多个现有的应用软件通过网络将其整合成一个新系统。SOA有基于文本的消息传递和使用HTTP传输协议特点。这样SOA可以很方便的穿越企业防火墙,实现异构平台上不同程序语言编写程序的互连问题。Web Service是就现在而言最适合实现SOA的一些技术的集合。通过Web service,你的公司可以把关键的商务应用暴露给指定的供应商和客户。用Web service来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把你的商务逻辑暴露出来,成为Web service,你就可以让任何指定的合作伙伴轻松的调用你的商务逻辑,而不管他们的系统在什么平台上运行,使用的是什么开发语言。这样就大大减少了花在B2B集成的上的时间和成本。这样的低成本让许多原本无法承受EDI的投资成本的中小企业也能实现B2B集成。当然,Web service也不是万能的,你不能到处滥用Web service。在有些情况下,Web service 会降低应用程序的性能,而不会带来任何好处。例如,一台机器或一个局域网里面运行的同构应用程序就不应该用Web service 进行通信

总结:

企业应集成问题是企业经过一段时间信息化后普遍需要解决的问题。企业应用集成不仅是企业面临的一个技术问题,还是一个企业面临的管理问题和组织问题,如果单纯考虑企业应用系统集成,很容易使企业步入”IT黑洞”

【参考文献】

[1] 孙长俊,周晓峰,基于Web Services的企业应用集成模型[J].计算机技术与发展,2006.

[2] LINTHICUM D S.Enterprise application integration. Reading,MA,USA:Addison-Wesley,1999

[3] ROBISON G. Key standards for utility enterprise application intergration(EAI) //Proceedings of the Distributech 2002 Conference , March ,2002 , Miami,FL,USA.

[4][美]Thomas Erl .SOA概念、技术与设计[M] 王满红,陈荣华译注.北京:机械工业出版社,2006

[5][美]Dirk Krafzig、Karl Banke、Dirk Slama .Enterprise SOA 中文版——面向服务架构的最佳实战[M] 韩宏志译注.北京:清华大学出版社,2006.

[6]周刚,朱清波,胡南军,等.Web服务解决方案分析[J].计算机工程,2002,(6):47-4.