首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统架构设计师:信息系统架构设计理论与实践--以服务为中心的企业整合

以一个经过简化的实际案例为例,介绍了以服务为中心的企业集成的基本步骤,从业务分析到服务建模,到架构设计,到系统开发的整个生命周期。以服务为中心的企业集成涉及的主要技术被穿插在各个步骤中进行了详细的讲解。

1.案例背景

某航空公司的信息系统已有好几十年的历史。该航空公司的主要业务系统构建于20世纪七八十年代,以IBM的主机系统为主一一包括运行于TPF上的订票系统和运行在IMS上的航班调度系统等。在这些核心系统周围也不乏基于UNIX的非核心作业系统,和基于.Net的简单应用。这些形形色色的应用,有的用汇编或COBOL编写,运行于主机和IMS之上;有的以PR0*C编写,运行在UNIX和Oracle上。这些应用虽然以基于主机终端的界面,但是基于Web和GUI 的应用也为数众多。

近年来,该公司在企业集成方面也是煞费苦心一一已经在几个主要的核心系统之间构建了用于信息集成的信息 Hub(Information Hub),其他应用间也有不少点到点的集成。尽管这些企业集成技术在一定程度上增进了系统间的信息共享,但是面对如此异构的系统,技术人员依然觉得企业集成困难重重。

(1)因为大部分核心应用构建在主机之上,所以Information Hub是基于主机技术开发,很难被开放系统使用。

(2)Information Hub 对 Event支持不强,被集成的系统间的事件以点到点流转为主,被集成系统间耦合性强。

(3)牵扯到多个系统间的业务协作以硬编码为主,将业务活动自动化的成本高,周期长,被开发的业务活动模块重用性差。

为了解决这些企业集成中的问题,该公司决定以Ramp Control系统为例探索一条以服务为中心的企业集成道路。本文将以Ramp Control系统中的Ramp Coordination流程为例,说明如何用以服务为中心的企业集成技术一步步解决该公司IT技术人员面临的企业集成问题。

2.业务环境分析

在航空业中,Ramp Coordination是指飞机从降落到起飞过程中所需要进行的各种业务活动的协调过程。通常,每个航班都有一个人负责Ramp Coordination,这人通常称为Ramp Coardinatar。由 Ramp Coordinator协调的业务活动有:检查机位环境是否安全,以及卸货、装货和补充燃料是否方便和安全等。

实际上,Ramp Coordination的流程因航班类型的不同,机型的不同有很大差异。图12-14所示的流程主要针对降落后不久就起飞的航班,这种类型的航班称为shart turn around航班。除了shart turn around航班外,还有其他两种类型的航班。Arrival Only航班指降落后需要隔夜才起飞的,Departure Only航班是指每天一早第一班飞机。这些航班的Ramp Coordination的流程和 Short Tum Around类型的流程大部分的业务活动是相似的。这三种类型的航班根据长途/短途,国内/国外等因素还可以进一步细分。每种细分的航班类型的 Ramp Coordination的流程都是略有不同。

很明显,如此多的流程之间共享着一个业务活动的集合,如此多种类型的流程都是这些业务活动的不同组装方式。以服务为中心的企业集成中流程服务就是通过将这些流程间共享的业务活动抽象为可重用的服务,并通过流程服务提供的流程编排的能力将它们组成各种大同小异的流程类型,来降低流程集成成本,加快流程集成开发效率的。以服务为中心的企业集成,通过服务建模过程发现这些可重用的服务,并通过流程模型将这些服务组装在一起。

3.服务建模

IBM推荐使用组件业务建模(Component Business Model)和面向服务的建模和架构(Service-0riented Model and Architecture)两种方法建立业务的组件模型、服务模型和流程模型。服务模型是服务建模的主要结果。Ramp Coordination相关的服务模型和 Ramp Coordination流程相关的有两个业务组件:

Ramp Control负责Ramp Contro1相关各种业务活动的组件;

Flight Management负责航班相关信息的管理,包括航班日程,乘客信息等。这两个业务组件分别输出如下服务。

(1)Retrieve Flight B0:由Flight Management输出,主要用于提取和航班相关的数据信息。

(2)Ramp Coordination:由 Ramp Control输出,主要用于Ramp Coordination流程的编排非。

(3)Check Spot:由 Ramp Contro1输出,用于检测机位安全信息。

(4)Check Unloading:由Ramp Contro1输出,用于检查卸货状况。

(5)Check Loading:由 Ramp Control输出,用于检查装货状况。

(6)Check Push Back:由Ramp Control输出,用于检查关门动作。在服务建模确定系统相关的服务输出后,还需要确定服务在当前环境下的实现方式。在我们的案例中,Retrieve Flight B0被实现为信息服务,Ramp Coordination被实现为流程服务,通过BPEL 4WS方式实现。其他4个服务都是Staff Service。需要注意的是,因为环境的不同和随着系统的演化,我们可能会改变服务的实现方式,如 Check Push Back现在通过Staff Service即人工服务实现。将来随着自动化程度的增强,Check Push Back完全可能通过自动化的系统实现。到那时,只需重新实现这个服务,而无需改变整个流程。这是服务的可替换性的一个典型实例。

4.IT环境分析

在构建Ramp Control系统之前,该航空公司已经有大量的信息系统。作为架构设计的重要步骤对现有IT环境调研,描绘了和Ramp Contro1相关的I系统的状况,包括周围应用和应用提供的接口,这些应用和 Ramp Control交五的类型和数据格式。简化的IT环境视图,描绘了Ramp Coordination流程和周围系统交互状况。目前,Ramp Coordination流程需要4种类型的外围应交互。

(1)从乘务人员管理系统提取航班乘务员的信息。

(2)从订票系统中提取乘客信息。

(3)从机务人员管理系统中提取机务人员信息。

(4)接收来自航班调度系统的航班到达事件。

通过将主机应用中的信息集中为粗粒度的业务对象,并通过信息服务输出,为该公司的核心系统提供了更加通用的连接能力,同时为IT系统的平滑演进提供了必要的条件。

5.高层架构设计

据需求和设计阶段的业务模型和现有IT环境调研结果,再结合传统的IT应用开发方法,Ramp Coordination系统的高层架构被设计了出来,如图12-15所示。

本案例中的主要架构元素以及它们之间的工作关系如下。

(1)信息服务。Federation Service是 Ramp Coordination流程中需要从已有系统中提取类信息,在 Service 建模阶段这4类信息被聚合为Flight B0(Business Object)。如上文所述,Retrieve Flight BO服务用于从已有系统中提取Flight B0。它实际上是一个Federation Service,将来自乘务人员管理系统、机务人员管理系统和订票系统中的信息聚合在一起。从这三个已有系统来的 Crew Info、Cockpit Info 和 Passage Info是在已有系统中已经存在的业务逻辑或业务数据,它们属于可接入服务(on-ramp Service),接入的协议分别为JDBC、IMS J2C Connector 和

socket。乘务人员管理系统基于0racle数据库,Crew Info可以直接通过JDBC获得。机务人员管理系统基于S/390上的IMS,IBM已经提供了IMS的J2C Connector,所以Cockpit Info可以通过J2C connector获得。订票系统构建在IBM TPF之上,由于实时性的要求,socket是比较好的接入方法。Retrieve Flight B0被实现为一个EJB,外部访问通过RMI/II0P绑定访问这个服务。在Retrieve Flight B0 内部,Flight BO以SD0来表示。

(2)企业服务总线中的事件服务。Event Service是在检查机务环境安全(Check Spot)前,Ramp Coordiator 需要被通知航班已经到达。这个业务事件由航班调度系统激发,Flight Arrival是典型事件发现服务(Event Detect Service),它通过MQ将事件传递给Message Broker,通过JMS 的Pub/Sub,这个事件被分发给Check Spot。这里的Event Service是本例中ESB的重要组成部分。通过ESB上的通用事件服务,现有Information Hub 的缺陷得到了克服。应用程序间的事件集成不再需要点到点的方式,而是通过ESB的事件服务完成订阅发布,应用程序间的耦合性得到了极大的缓解。

(3)流程服务。Process Service 是Ramp Coordination被实现为一个Process Service,它被WBI SF的BPEL4WS容器执行,BPEL4WS容器提供Choreograph Service、Transaction Service和 Staff Service 支持。Ramp Coordination通过RMI/IIOP协议调用,在BPEL4WS容器中WSIF被用于通过各种协议调用服务,它成为ESB中Transport Service的一部分。Ramp Coordination中的人工动作被实现为Staff Service而集成到流程中。这里,Staff Service通过Portlet实现,运行在Websphere Portal Server上。Portal Service实现部分 Delivery Service支持PDA设备,Ramp Coordinator通过PDA设备访问系统。

(4)企业服务总线中的传输服务。RCMS是即将新建系统,用于提供包括Ramp Coordination在内的Ramp Control的功能。RCMS通过由WSIF实现的Transport Service 以SOAP/HTTP调用 Ramp Coordination 服务。

6.结论

通过一个简单的案例,讲解了以服务为中心的企业集成的主要步骤和涉及的技术。这些集成的技术,无论是方法学、体系结构还是编程模型都在不断地发展中。随着这些技术的不断完善,以服务为中心的企业集成方案的实施将更加简单高效。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OSTvIs5Sh737B1JWF9hfKstw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券