




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Service Oriented Architecture1 SOA简介1.1 概述l SOA不是一种语言,也不是一种具体的技术,更不是一种产品,而是一种软件系统架构。它尝试给出在特定环境下推荐采用的一种架构l 相对于传统的COA(Component Oriented Architecture),Interface Based Design, 以及分布式系统是一次革命性的更新,将彻底改变软件行业的结构与运营模式l 当下的热点话题,但是很遗憾,目前并没有公认的参考模型对其进行精确的定义l 主要公司及产品 IBM BEA BEA Tuxedo 业界交易的第一中间件 BEA WebLogic 适合企业级客户复杂IT应用环境的完整的产品,包括WebLogic Platform、WebLogic Communication Platform等 BEA AquaLigic :BEA在06年6月推出的全新产品线,用于管理SOA全生命周期l 主要盈利模式:出售通用软件;具体为每个公司设计SOA改造方案。1.2 SOA的具体化描述1.2.1 传统COA分布式模型举例COA模型的优点是代码复用性高,维护方便。进一步提高复用性同样是驱使公司采用SOA的原因。1.2.2 SOA的基本特征目前有大量的案例都声称自己符合SOA的要求,以下是对它们共有概念的总结。l 服务l 服务描述l 广告及发现l 相关数据模型的规范l 服务合同1.3 SOA的框架1.3.1 SOA概念图(concept map)独立于语义和技术,以图形化的方式揭示各种概念之间的关系。1.3.2 基本SOA参考模型1.3.3 扩展的SOA参考模型1.3.4 SOA模式以服务为中心的企业整合案例分析1. 案例背景某航空公司的IT系统已有好几十年的历史。该航空公司的主要的业务系统构建于上世纪七八十年代,以IBM的主机系统为主 包括运行于TPF上的订票系统,和运行在IMS上的航班调度系统等。在这些核心系统周围也不乏基于Unix的非核心作业系统,和基于.Net的简单应用。这些形形色色的应用,有的用汇编或COBOL编写,运行于主机和IMS之上,有的以PRO*C编写,运行在Unix和Oracle上;这些应用虽然以基于主机终端的界面,但是基于Web和GUI的应用也为数众多。近年来,该公司在企业集成方面也是煞费苦心已经在几个主要的核心系统之间构建了用于信息集成的信息HUB(information HUB),其他应用间也有不少点到点的集成。尽管这些企业集成技术在一定程度上增进了系统间的信息共享,但是面对如此异构的系统,技术人员依然觉得企业集成困难重重:因为大部分核心应用构建在主机之上,所以Information Hub是基于主机技术开发,很难被开放系统使用; Information Hub对Event支持不强,被集成的系统间的事件以点到点流转为主,被集成系统间耦合性强; 牵扯到多个系统间的业务协作以硬编码为主,将业务活动自动化的成本高,周期长,被开发的业务活动模块重用性差; 为了解决这些企业集成中的问题,该公司决定以Ramp Control系统为例探索一条以服务为中心的企业集成道路。本文将以Ramp Control系统中的Ramp Coordination流程为例说明如何用以服务为中心的企业集成技术一步步解决该公司IT技术人员面临的企业集成问题。为了便于说明,示例中的业务系统和业务流程都进行了必要的简化。2. 业务环境分析在航空业中,Ramp Coordination是指飞机从降落到起飞过程中所需要进行的各种业务活动的协调过程。通常每个航班都有一个人负责Ramp Coordination, 这人通常称为Ramp Coordinator。由Ramp Coordinator协调的业务活动有,检查机位环境是否安全,卸货,装货,补充燃料等。图2是一个Ramp Coordination的业务流程图。由图可见,Ramp Coordination流程依次有下列活动1) 从提取协调过程中所需要的主要信息,通常会以工作单给Ramp Coordinator;(自动活动)2) 检查机位环境是否安全;(人工活动)3) 检查卸货;(人工活动)4) 检查装货;(人工活动)5) 检查关门;(人工活动)实际上,Ramp Coordination的流程因航班类型的不同,机型的不同有很大的差异。图2所示的流程主要针对降落后不久就起飞的航班,这种类型的航班我们称之为short turn around航班。除了short turn around航班,我们还有其他两种类型的航班,如图3 所示,Arrival Only的航班指降落后需要隔夜才起飞的。Departure Only的航班是指每天一早第一班飞机。这些航班的Ramp Coordination的流程和Short Turn Around类型的流程大部分的业务活动是相似的。这三种类型的航班根据长途/短途,国内/国外等因素还可以进一步细分。每种细分的航班类型的Ramp Coordination的流程都是略有不同。很明显,如此形形种种的流程之间共享着一个业务活动的集合,如此多种类型的流程都是这些业务活动的不同组装方式。以服务为中心的企业集成中流程服务就是通过将这些流程间共享的业务活动抽象为可重用的服务,并通过流程服务提供的流程编排的能力将它们组成各种大同小异的流程类型,来降低流程集成成本,加快流程集成开发效率的。以服务为中心的企业集成通过服务建模过程发现这些可重用的服务,并通过流程模型将这些服务组装在一起。3. 服务建模IBM推荐使用组件业务建模(Component Business Model)和面向服务的建模和架构(Service-Oriented Model and Architecture)两种方法学建立业务的组件模型,服务模型和流程模型。关于服务建模方法学已经超出本文范围,这里就不在累述。服务模型是服务建模的主要结果。Ramp Coordination相关的服务模型如图4所示。和Ramp Coordination流程相关的有两个业务组件:Ramp Control:负责Ramp Control相关各种业务活动的组件 Flight Management:负责航班相关信息的管理,包括航班日程,乘客信息等 这两个业务组件分别输出如下服务:1) Retrieve Flight BO: 由Flight Management输出,主要用于提取和航班相关的数据信息;2) Ramp Coordination: 由Ramp Control输出,主要用于Ramp Coordination流程的编排;3) Check Spot:由Ramp Control输出,用于检测机位安全信息;4) Check Unloading:由Ramp Control输出,用于检查卸货状况;5) Check Loading:由Ramp Control输出,用于检查装货状况;6) Check Push Back:由Ramp Control输出,用于检查关门动作;在服务建模确定系统相关的服务输出后,我们还需要确定服务在当前环境下的实现方式。在我们的案例中,Retrieve Flight BO被实现为信息服务,Ramp Coordination被实现为流程服务,通过BPEL4WS方式实现;其他四个服务都是Staff Service。需要注意的是,因为环境的不同,和随着系统的演化,我们可能会改变服务的实现方式,比如Check Push Back现在通过Staff Service即人工服务实现。将来随着自动化程度的增强,Check Push Back完全可能通过自动化的系统实现。到那时,我们只需重新实现这个服务,而无需改变整个流程。这是服务的可替换性的一个典型实例。4. IT环境分析IT环境分析是调查现有应用技术特点的重要手段。在我们的示例中,IT环境分析主要用于调查现有应用,为决定服务模型中服务的实现方式提供技术依据。同时,它也是架构设计的重要依据。如上所述,在构建Ramp Control系统之前,该航空公司已经有大量IT系统。作为架构设计的重要步骤的现有IT环境调研描绘了和Ramp Control相关的IT系统的状况,包括周围应用和应用提供的接口,这些应用和Ramp Control交互的类型和数据格式。图5是简化的IT环境视图,它描绘了Ramp Coordination流程和周围系统交互状况。目前,Ramp Coordination流程需要四种类型的外围应用交互:从乘务人员管理系统提取航班乘务员的信息; 从订票系统中提取乘客信息; 从机务人员管理系统中提取机务人员信息; 接收来自航班调度系统的航班到达事件; 如图所示,象航班调度信息和定票信息都存储在IMS和TPF这些相当封闭的主机系统之上。尽管主机系统提供一定的面向开放系统的集成能力,如MQ和Socket。但是因为主机本身的特殊性,使得这些集成方法的使用都不是那么方便。所以如何方便地集成主机系统的信息成为Ramp Coordination中一个重要的技术问题,同时也是整个IT系统集成面临的主要问题。以服务为中心的企业集成为我们提供了更为开放的集成手段。在Ramp Coordination中,我们把这些主机上的数据进行了集中,并通过信息服务的形式输出给开放系统使用。如图6所示,来自IMS的航班信息和机务人员信息,来自Oracle的乘务人员信息和来自TPF的乘客信息都被汇集为一个业务对象Flight BO。Retrieve Flight BO服务提供访问这种业务对象的手段。Retrieve Flight BO服务隔离了底层实现的复杂性。外面的应用系统看到的是前面开放的接口,而不是后面封闭的主机系统。即使将来后台主机被开放系统替代,外面的应用依然可以运行依旧。通过将主机应用中的信息集中为粗粒度的业务对象,并通过信息服务输出,为该公司的核心系统提供了更加通用的连接能力,同时为IT系统的平滑演进提供了必需的条件。5. 高层架构设计根据需求和设计阶段的业务模型和现有IT环境调研结果,再结合传统的IT应用开发方法,Ramp Coordination系统的高层架构被设计了出来,如图7所示。如下四点简要介绍了本案例中的主要架构元素以及它们间的工作关系。1) 信息服务Federation Service: Ramp Coordination流程中需要从已有系统中提取四类信息,在Service建模阶段这四类信息被聚合为Flight BO(Business Object)。如上文所述,Retrieve Flight BO服务用于从已有系统中提取Flight BO。它实际上是一个Federation Service,将来自乘务人员管理系统、机务人员管理系统和订票系统中的信息聚合在一起。从这三个已有系统来的Crew Info, Cockpit Info和Passage Info是在已有系统中已经存在的业务逻辑或业务数据,它们属于可接入服务(on-ramp service),接入的协议分别为JDBC, IMS J2C Connector和socket。乘务人员管理系统基于Oracle数据库,Crew Info可以直接通过JDBC获得。机务人员管理系统基于S/390上的IMS, IBM已经提供了IMS的J2C Connector, 所以Cockpit Info可以通过J2C connector获得。订票系统构建在IBM TPF之上,由于实时性的要求,socket是比较好的接入方法。Retrieve Flight BO被实现为一个EJB,外部访问通过RMI/IIOP绑定访问这个服务。在Retrieve Flight BO内部,Flight BO以SDO来表示。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. 开发过程尽管以服务为中心的企业集成在开发阶段和普通的应用开发并没有本质的区别,但是它在角色,职责、工具和方法还是有不少自己的特色。下图汇总了本文示例中开发角色,职责,开发方法和工具,仅供大家参考。7. 结束语本文通过一个简单的案例,讲解了以服务为中心的企业集成的主要步骤和涉及的技术。这些集成的技术,无论是方法学,体系结构,还是编程模型都在不断的发展中。随着这些技术的不断完善,以服务为中心的企业集成方案的实施将更加简单高效。参考资料 IBM SOA Homepage, /software
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 杭州广宇物业协议书
- 桂林公司合作协议书
- 搭建厂房合作协议书
- 教师招聘就业协议书
- 机关解聘人员协议书
- 插座安装安全协议书
- 案例分享保密协议书
- 2025年公司厂级安全培训考试试题及答案达标题
- 2025年员工安全培训考试试题附参考答案(综合题)
- 2025年公司厂级员工安全培训考试试题研优卷
- 浙江省杭州市2023年中考英语试题(附真题答案)
- 孕妇与乳母的饮食与睡眠质量
- 食品原料采购协议书
- 建筑物防火卷帘门的保养与维修
- 物品的交接单
- 采购管理中的原材料采购合规性审查
- 2024年山东省春季高考技能考试汽车专业试题库-下(判断题汇总)
- 慢性肾衰竭的中医诊疗现状
- 专题08 一元一次不等式(组)应用的两种考法(学生版)-2023年初中数学7年级下册同步压轴题
- 网络群体市场章
- 城镇排水管道检测记录表、缺陷图图例、检测成果表、等级划分及样图
评论
0/150
提交评论