问答题
[说明]
某航空公司的主要业务系统(如订票系统、航班调度系统等)始建于二十世纪七八十年代,之后随着信息化的进展,陆续积累了许多异构的遗产信息系统。这些系统部分采用了J2EE、.NET等技术进行开发,分布在不同的地理位置,采用不同的协议进行数据传输。近年来,该公司在企业集成方面也是煞费苦心,已经在几个主要的核心系统之间构建了用于信息集成的信息Hub(Information Hub),其他业务应用之间也有不少点到点的集成。尽管这些企业集成技术在一定程度上增进了系统间的信息共享,但是面对历史异构的遗产信息系统,企业的业务整合、功能整合仍是困难重重,主要表现如下。
(1)由于大部分核心应用构建在主机之上,因此Information Hub是基于主机技术开发,很难被开放系统使用。
(2)Information Hub对事件支持不强,被集成的系统间的事件以点到点流转为主,被集成系统间耦合性强。
(3)牵扯到多个系统间的业务协作以硬编码为主,将业务活动自动化的成本高,周期长,被开发的业务活动模块重用性差。
某软件开发公司承接了该航空公司应用系统的集成任务,项目组经过多方讨论和论证之后,决定采用以面向服务为中心的企业集成技术,一步步解决该公司所面临的企业集成问题。
问答题 项目组在讨论架构方案时,某位架构师提出采用企业服务总线(ESB)架构模式,通过ESB的事件服务(Event Service)完成订阅发布,使应用程序间的事件集成不再需要原来的点到点方式,从而解耦组件之间的依赖关系,降低软件系统互连的复杂性。结合你的系统架构设计经验,请用400字以内的文字简要说明在ESB环境中组件之间典型的交互过程,以及ESB具有的核心功能。
【正确答案】交互过程:先由服务请求者触发一次交互过程,产生一个服务请求消息,并将该消息按照ESB的要求标准化,然后将标准化的消息发送给服务总线。ESB根据请求消息中的服务名(或接口名)进行目的组件查找,将消息转发至目的组件,并最终将处理结果逆向返回给服务请求者。 核心功能: ①提供位置透明性的消息路由和寻址服务。 ②提供服务注册和命名的管理功能。 ③支持多种消息传递范型。 ④传输协议转换。 ⑤支持多种数据格式及其相互转换。 ⑥提供日志和监控功能等
【答案解析】[解析] 企业服务总线(Enterprise Service Bus,ESB)是由中间件技术实现的支持面向服务架构(SOA)的基础软件平台,支持异构环境中的服务以基于消息和事件驱动模式的交互,并且具有适当的服务质量和可管理性。ESB技术的基本思想是:提供一种标准的软件底层架构,各种程序组件能够以服务单元的方式“插入”到该平台上运行,并且组件之间能够以标准的消息通信方式来进行交互。 在ESB环境中组件之间的典型交互过程是:首先由服务请求者触发一次交互过程,产生一个服务请求消息,并将该消息按照ESB的要求标准化,然后标准化的消息被发送给服务总线。ESB根据请求消息中的服务名或者接口名进行目的组件查找,将消息转发至目的组件,并最终将处理结果逆向返回给服务请求者。 这种交互过程不再是点对点的直接交互模式,而是由事件驱动的消息交互模式。通过这种方式,ESB在最大限度上解耦了组件之间的依赖关系,降低了软件系统互连的复杂性。连接在总线上的组件无须了解其他组件和应用系统的位置及交互协议,只需要向服务总线发出请求,消息即可获得所需服务。服务总线事实上实现了组件和应用系统的位置透明和协议透明。技术人员可以通过开发符合ESB标准的组件(适配器)将外部应用连接至服务总线,实现与其他系统的互操作。同时,ESB以中间件的方式,提供服务容错、负载均衡、QoS保障和可管理功能。 对ESB的基本核心功能归纳如下。 (1)提供位置透明性的消息路由和寻址服务。 (2)提供服务注册和命名的管理功能。 (3)支持多种消息传递范型(如请求/响应、发布/订阅等)。 (4)支持多种可以广泛使用的传输协议(即传输协议转换)。 (5)支持多种数据格式及其相互转换(即多种平台下多种集成方式的支持)。 (6)提供日志和监控功能。
问答题 将彼此关联的业务活动组成自动化流程可以进一步提高该航空公司业务活动的效率。以服务为中心的企业集成通过流程服务来完成业务流程集成。结合你的系统架构设计经验,请用300字以内的文字列举出3种SOA架构中的流程服务内容,并给出简要说明。
【正确答案】(1)编排服务:通过预定义的流程逻辑控制流程中业务活动的执行,并帮助业务流程从错误中恢复。 (2)事务服务:用于保证流程执行中的事务特性(ACID)。对于短流程,通常采用传统的两阶段提交技术:对于长流程,一般采用补偿的方法。 (3)人工服务:用于将人工的活动集成到流程中,即通过关联的交互服务使得人工可以参与到流程执行中,并且管理由于人工参与而带来的管理任务(如任务分派、授权和监管等)。
【答案解析】[解析] 企业部门内部的IT系统通过将业务活动自动化来提高业务活动的效率。但是这些部门的业务活动并不是独立的,而是和其他部门的活动彼此关联的。将彼此关联的业务活动组成自动化流程可以进一步提高业务活动的效率。以服务为中心的企业集成通过流程服务来完成业务流程集成。在业务流程集成中,粒度的业务逻辑被组合成业务流程,流程服务提供自动执行这些业务流程的能力。在参考架构中,流程服务包括以下内容。 (1)编排服务(Choreography Service):通过预定义的流程逻辑控制流程中业务活动的执行,并帮助业务流程从错误中恢复。 (2)事务服务(Transaction Service):用于保证流程执行中的事务特性(ACID)。对于短流程,通常采用传统的两阶段提交技术;对于长流程,一般采用补偿的方法。 (3)人工服务(Staff Service):用于将人工的活动集成到流程中。一方面,它通过关联的交互服务使得人工可以参与到流程执行中;另一方面,它需要管理由于人工参与带来的管理任务,如任务分派、授权和监管等。
问答题 若项目组采用Web Service作为基于SOA集成方法的实现技术,请根据该航空公司目前的实际情况,用300字以内的文字说明系统应该分为哪几个层次,并简要说明每个层次的功能。
【正确答案】(1)底层传输层,主要负责消息的传输机制。 (2)服务通信协议层,用于描述并定义服务之间进行消息传递所需的技术标准。 (3)服务描述层,负责以一种统一的方式描述服务的接口与消息交换方式。 (4)服务层,负责将遗产系统进行包装,并通过发布的WSDL接口描述被定位和调用。 (5)业务流程层,支持服务发现、服务调用和点到点的服务调用,并将业务流程从Web Service的底层调用抽象出来。 (6)服务注册层,使服务提供者能够通过WSDL发布服务定义,并支持服务请求者查找所需的服务信息
【答案解析】[解析] 在采用Web Service作为SOA的实现技术时,根据该航空公司目前的实际情况,从功能角度考虑,该系统应该至少分为6个层次,分别为底层传输层、服务通信协议层、服务描述层、服务层、业务流程层和服务注册层,如下表所示。
{{B}}Web Service各层次功能及相关标准{{/B}}
层次 功能 相关标准
底层传输层(Transport) 主要负责消息的传输机制 HTTP、SMTP、FTP和JMS
服务通信协议层(Service
Communication Protocol)
描述并定义服务之间进行消息传递所需的技术标准 SOAP和REST协议
服务描述层(Service
Description)
主要以一种统一的方式描述服务的接口与消息交换
方式
WSDL
服务层(Service) 将遗产系统进行包装,并通过发布的WSDL接口描述
被定位和调用
业务流程层(Business
Process)
支持服务发现、服务调用和点到点的服务调用,并将
业务流程从Web Service的底层调用中抽象出来
WS-BPEL(BPEL4WS)
服务注册层(Service
Registry)
使服务提供者能够通过WSDL发布服务定义,并支持
服务请求者查找所需的服务信息
UDDI