来源:csdn 作者:王鑫磊
1.1 引言
本篇文章是东方易维ESB普及系列文章的第二篇。在第一篇中,我们主要讲述了ESB的一些基础知识,包括ESB的特点、作用、与SOA的关系,功能模型以及作为一个ESB产品的最低功能要求等内容。
通过第一篇文章的介绍(如果您没有读该篇文章,我建议您能回过头去读一下,这样可以使你更好的理解这篇文章),相信您对ESB已经有了一个大概的了解。在本篇文章中,我们将继续对ESB进行探讨,当然我们不会在继续讲述ESB的基础知识,而要通过两个案例,来对ESB的应用场景进行详细的介绍,包括哪些类型的单位可以使用ESB,处于哪个阶段的单位适合用ESB进行信息化建设。
单位进行信息化建设到一定程度,系统间的兼容性,互通性成为了影响整个单位工作效率的瓶颈。希望当您读完这篇文章的时候,对自己是否应该使用ESB,如何使用ESB有一个大概的想法。
1.2 示例应用场景一:企业
1.2.1应用场景描述
本节演示了一个制造型企业的订单请求处理过程。在一个制造型企业中,客户向企业的订单管理系统请求订单,当订单管理系统接收到订单后,首先通过库存管理系统检查库存是否能够满足订单的要求,如果当前库存不能满足,则需要到通过生产制造系统去安排生产。
本例将对应用场景进行分析,包括该应用场景中涉及到的几个系统,系统与系统之间的通信等等,并将介绍如何通过ESB将这些系统集成起来。
该应用场景的用例图如下所示:
在本例中,由于客户是位于企业外部的客户,所有订单请求和订单确认都是通过HTTP Web的方式进行的,订单管理系统是标准的J2EE架构,库存管理系统是可以通过RMI-IIOP协议通信的EJB系统,生产制造系统为遗留系统,只能通过固定格式的MQ或者TCP进行通信。
对于该场景,根据其通信方式,可以将其用例图修改如下图:
通过对应用场景进行分析,我们可以看到在示例场景中有关系统包括:订单管理系统、外部的客户管理系统,企业内部的库存管理系统,以及企业内部的生产制造系统。同时涉及到了多种的集成技术,包括RMI-IIOP、MQ、TCP、HTTP等。也许你认为该示例已经足够复杂了,但是实际上这仅仅是一个简化的示例场景,真正的企业中会有更为复杂的情况。
下面将介绍通过ESB如何将这些系统集成起来,首先先看一下在集成中应该解决的重要问题:
1. 订单管理以Web服务的方式通过HTTP与客户的应用系统进行集成,与客户应用系统交互的内容包括订单请求和订单确认。
2. 企业和客户之间有一套标准的订单请求和订单确认Web服务接口,订单管理系统实现订单请求接口,客户方应用系统则需要实现订单确认Web服务接口。
3. 实现集成需要让企业内外部互相访问Web服务,安全是其中需要考虑的一个重要问题。
4. 因为会有多个需要与订单管理系统集成的客户,因此集成中另一个需要解决的重要问题是如何将订单确认路由到正确的客户应用系统上。
5. 库存管理系统企业内部采用J2EE架构的系统,提供了一个EJB Facade可以进行产品库存的查询,因为在企业内部库存查询时被经常使用的,在这里需要考虑集成的效率问题,我们既希望能够通过RMI-IIOP进行库存查询提高效率,又希望能够这种查询服务不要特定的平台绑定(如J2EE,.NET)。
6. 生产制造系统是遗留系统,只能通过MQ或者TCP进行访问,而且已经定义了请求消息的格式,希望能够通过更一般的方法进行访问。
通过以上描述,可以看到,在一个制造型企业的系统集成应用中,需要处理各个异构系统间的消息传递,消息转换,安全性等问题,还需要遵循协议无关,服务中介无关,位置透明等原则。结合EwayESB,整体结构图如下所示:
从上面的架构图中,我们可以看到,企业外部的订单通过客户系统引入到企业内部,并在Web服务网关中进行路由,确保订单能够路由到正确的外部服务上;同时所有的系统,都是通过EwayESB提供的相应适配器链接起来,并进行通信,路由以及消息转换等。
1.2.2企业应用ESB总结
上面给出了一个制造型企业的订单请求处理的应用场景,该例通过一个简单的应用示例,表明在制造型企业中,可以方便的使用ESB。
从本质上来说,任何类型的企业系统都有着一定的共性,都存在这样或者那样的几个系统,由不同的公司开发,使用不同的编程语言,基于不同的传输协议。这些系统都负责相对独立的业务,同时一个系统依赖于另外一个系统的处理结果。
同时,企业的业务都在不断的变化之中,因此要求集成后的系统能够具有相当高的敏捷性,能够适应企业中业务的不断变化,并能够迅速的做出响应。
基于以上几点需求,结合本节中给出的应用场景详解,我们可以得出这样的结论:无论是何种类型的企业均可使用ESB作为解决方案,并且此种解决方案可以看作是最优解决方案。
1.3 示例应用场景二:政府
1.3.1应用场景描述
本节演示了一个典型的政府应用案例:政府为了建设法人基础库,需要对工商国税、国地税以及质监的业务流程进行改造,并将各个阶段产生的数据进行汇总、比对等等操作,以形成权威的法人库,进行相应的经济政策调整以及宏观调控。
申办人到工商、质监、国税以及地税申办业务时,需要在工商局处理单位基本信息,在质监申办组织机构代码,在国税申办国税相关内容,在地税申办地税相关内容。
传统的申办流程可以用下图表示:
上图显示了一个申办人在四个委办局中进行审批时的传统流程,从提高委办局工作效率,方便申办人,建设权威法人库的角度来看,以上流程中存在有以下几个主要问题:
1. 申办人在不同的委办局之间,需重复填写很多基本信息,如单位名称,法定代表人名称,注册资金等内容,需要在以上的四个委办局中重复填写,影响了工作效率,加大了申办人与工作人员的工作量。
2. 由于在不同的委办局中重复填写数据,很可能会导致各个委办局中数据不一致,以致最后无法形成权威的法人库。
3. 各个委办局数据系统架构,开发语言,通信方式不一致,导致形成名录库时存在很大的难度。
根据建设名录库的需求,改造后的系统流程如下图所示:
本例将对应用场景进行分析,包括该应用场景中涉及到的几个系统,系统与系统之间的通信等等,并将分析介绍如何通过ESB将这些系统集成起来。
从上面的图中可以看到,存在四个需要集成的已有系统,包括可以使用WebService进行通信的J2EE架构的工商局系统,可以使用WebService进行通信的delphi开发的C/S结构系统,可以使用WebService进行通信的.net开发的国税局系统以及可以通过RMI-IIOP进行通信的EJB架构的地税局系统。
根据该应用场景的通信方式,可以将用例图修改为如下所示:
通过对应用场景进行分析,我们可以看到在示例场景中与有关系统包括:中心系统,工商局业务系统、质监局业务系统、国税局业务系统以及地税局业务系统,开发语言包括delphi,java以及.net。涉及到了多种的集成技术,包括HTTP、RMI-IIOP等。
也许你认为该示例已经足够复杂了,但是实际上这仅仅是一个简化的示例场景,真正的企业中会有更为复杂的情况,比如会集成更多的委办局系统,被集成系统的结构更加复杂等等。
下面将介绍通过ESB如何将这些系统集成起来,首先先看一下在集成中应该解决的重要问题:
1. 申办人到某委办局进行申办时,在前置委办局已经录入的数据,不需要在该委办局中重新录入。
2. 因为业务规则的变化导致的数据流向的变化:如工商局的数据不仅要向其原有业务系统中录入数据,还要向法人库中录入数据,同时工商局还需要输出数据作为下一个委办局的输入数据。
3. 某个委办局办理完相应工作之后,需要通知其后置委办局办理业务。
4. 各个委办局系统可能会进行升级、改造,因此要求系统有很强的灵活性,使得委办局系统对中心系统是透明的。
5. 同一单位在不同委办局中的历史数据,可能存在一定的差异,这就要求提供比对处理机制。
通过以上描述,可以看到,在设计多个委办局系统的EAI应用中,需要处理各个异构消息间的消息传递,消息转换,安全性问题等等,还需要遵循协议无关,服务中介无关,位置透明等原则。同时该类应用一般都涉及业务流程的重新定义,重新整合,因此应具有敏捷的流程管理。结合EwayESB,整体结构图如下所示:
1.3.2政府应用ESB总结
上面给出了一个典型的政府应用ESB的场景:政府需要整合不同委办局的业务系统,以构建法人库。
近几年来,随着国家经济建设的不断发展,国家信息化建设的程度不断提高,越来越多的类似系统需要创建:建设法人库,建设基础单位名录库,建设人口库等等。从本质上来说,无论建设任何类型的系统,政府机关应用ESB都有着一定的共性:系统在几个不同的委办局(或者部门)中,由不同的公司开发,使用不同的编程语言,基于不同的传输协议。这些系统都负责相对独立的业务,同时一个系统依赖于另外一个系统的处理结果。
基于以上几点需求,结合本节中给出的应用场景详解,我们可以得出这样的结论:政府机关以及事业单位均可使用ESB作为解决方案,也是当前在SOA架构下最好的解决方案之一。
1.4 什么类型的单位可以使用ESB
通过上面的介绍,可以看到,无论是企业,还是事业单位或者政府机关,只要您的业务系统需要进行EAI整合,或者需要重新构建敏捷的业务流程,均可以使用ESB。
当然,如果您正在准备建设一个全新的系统,如果您需要考虑其可扩展性、希望其具有高度适应性以及敏捷性,您也可以使用ESB,因为ESB在处理各个异构消息间的消息传递、消息转换、异构系统的安全性、可扩展性、协议无关性、服务中介无关性以及位置透明等方面确实有很强的能力。同时使用ESB,还可以构建高度敏捷的业务流程。
1.5 信息化建设到哪个阶段适合使用ESB
通过上面的介绍可以总结出无论您的信息化建设到哪个阶段,均可以使用ESB:如果您的信息化建设的程度很高,则可以使用其作为EAI以及业务流程整合的基础平台;如果您需要建设全新的环境,您可以使用其作为设计与实施的基础架构,以构建高度可扩展和业务敏捷的系统。
1.6 总结
本文讲述了两个比较典型的ESB应用场景:ESB在企业中的应用,ESB在事业单位和政府机关中的应用。通过这两个应用场景的介绍,使读者对ESB的应用有了一个大致的了解。同时,我们还总结出,无论什么样的单位都可以使用ESB,无论单位的信息化建设到什么程度,都可以使用ESB。
当然,在不同类型的单位中应用ESB的具体方案也不同,如果您想要在某系统中应用ESB,上面讲述的这些内容肯定是不够的。如果您有这方面的需求,可以联系我们:
010-51292209-823n