ESB项目需求分析和方案设计浅谈

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ESB项目需求分析和方案设计浅谈

导读:本文我们将针对ESB项目的设计和实施过程中各个阶段要完成的主要工作内容和一些最佳实践跟大家作一些讨论,进而希望大家在企业ESB项目实施过程中借鉴科学的方法论的指导来保证其成功。

关键词:ESB ESB方案设计ESB组件模型

如同其它IT项目一样,企业服务总线类项目的实施也要经历需求分析、方案设计、编码和测试、上线部署等阶段。下面我们将针对ESB项目的设计和实施过程中各个阶段要完成的主要工作内容和一些最佳实践跟大家作一些讨论,进而希望大家在企业ESB项目实施过程中借鉴科学的方法论的指导来保证其成功。

TT SOA编辑推荐:企业服务总线ESB(更新版)

ESB的需求分析

需求分析阶段是梳理项目中相关功能需求和非功能需求的重要步骤,它是整个项目成败的关键。在这个阶段我们将从企业业务需求出发,梳理端到端的跨系统业务流程;基于业务流程,依据科学的方法论进行服务鉴别;由服务列表出发,梳理服务的消费和提供关系;然后根据SOA的最佳实践,定义服务的接口,包括服务的Schema描述,字段的类型,编码的规则;依据服务的消费-提供关系,梳理ESB中的服务映射和转换规则和策略。

概括而言,我们需要从功能性和非功能性两个方面来进行ESB的需求分析。

针对ESB的功能性需求,我们要侧重了解以下方面的问题:

1. 梳理出要被集成的系统的名称,个数。

2. 针对每个系统而言,要了解:

该系统的对外接口是向外调用,被别人调用,还是二者都有;

接口的实时性要求,是实时的还是批量的,还是二者皆有?

接口的调用方式,是同步的还是异步的,还是二者皆有?

应用系统所运行的操作系统平台。

应用系统本身的编程语言?C/C++, Java…..

这些系统现有接口的情况,是否已经可以提供对外接口,接口的方式是什么,包括接口

的通讯协议是什么,HTTP/MQ/Socket/ 其它?接口的数据格式是什么,XML/ 自定义格式/ 其他行业标准格式?接口的编程语言是什么,Java/C/C++?如果本身不能提供接口,那么要做接口开发时有什么要求或限制条件?

这些应用后台数据库的情况,数据库能否直接访问?

每个应用跟其他应用交换数据时,源数据格式和目的数据格式,比如从文本格式转换为XML 格式?

交易特征:哪些处理要采用两阶段提交;是否需要多个消息组成一个交易;是否要保证消息之间的处理顺序;

适配器的情况:对于一些特殊系统,是否已经具备现成的适配器;适配器是单向的还是双向的;

消息通信的模式:是Send and Forget(one way)、Request/Reply还是Pub/Sub?

针对ESB的非功能性需求,我们要确认:

1. ESB平台的扩展性和高可用性需求,包括HA和集群等;

2. ESB平台的性能需求,主要包括系统间数据交换的频率,要交换的数据的大小( 消息大小将直接对效率造成影响);峰值时候对ESB数据吞吐量、响应时间的要求等;

3. 哪些交易要保证数据传输的高可靠性;

4. ESB平台的可管理性需求,如服务的生命周期管理,ESB 平台的维护和管理;如果企业已经设立了SOA管控方面的规范,那么要遵从规范的制约,比如要考虑是否有规定的命名规则,企业是否有企业级的数据规范和底层通讯协议的规范等;

5. 安全性方面的要求:是否采用SSL传输加密,是否对消息进行加密/解密处理等;

6. 错误处理和日志以及平台本身的运行监控等方面的要求等。

ESB的方案设计

方案设计的主要内容包括:

ESB涉及IT应用环境分析,定义ESB与相关应用的接口模式;

ESB架构概要设计,并定义架构原则;

ESB相关产品选择,包括与外围系统的适配器选择和ESB产品选择;

ESB组件模型设计,分解ESB的相关模块,满足SOA的分离关注点等架构原则;

ESB运作模型设计,满足平台的非功能性需求;

ESB平台的服务流设计,涉及路由、转换和映射等;

ESB的同步、异步或者发布/订阅模式设计;

ESB平台的接入渠道和数据接口设计,包括XML/JMS、SOAP/HTTP、EDI/MQ 等;

ESB相关的适配器设计,包括技术适配器或者自开发的适配器;

ESB平台的容错和重试机制设计,包括日志等的统一管理等;

图1 是一个采用ESB整合的高层架构设计举例:

图 1. ESB参考架构

如图1 所示,ESB架构设计时主要要考虑通讯协议接入和转换、数据接入和转换、数据处理流程以及服务的注册和管理等方面的内容。其中通讯协议接入和转换是指对各种被集成的应用系统的通讯协议的支持和转换能力,例如HTTP、JMS、Socket、FTP等;数据接入和转换是指对各种被集成的应用系统提供的数据格式的支持和转换能力,例如XML、SOAP、自定义格式以及符合某些行业标准的专有格式(SWIFT、EDI、HL7 等);数据处理流程是指路由、格式转换、数据库读写等对数据的各种处理;统一服务注册存储管理是指对服务的注册、发布、查询,以及对运营时服务的管控,并且提供服务运营状态的统计分析

数据。

ESB的组件模型

图 2. ESB组件模型

图2 给出了一个ESB组件模型的示例,其中包含的各主要组件及其功能如下:

1. Message Broker Runtime组件提供消息路由、格式转换、消息日志等操作的运行时环境。该运行环境由IBM Message Broker提供;

2. Messaging Broker Instance组件是处理基于MQ消息业务请求的容器。它是作为一个Broker实例运行在Message Broker Runtime上的。该实例提供了MQ消息的业务请求处理器、服务日志、服务定位等功能的运行容器;

3. Web Service Broker Instance组件是处理基于Web Service的业务请求的容器,它是作为一个Broker实例运行在Message Broker Runtime上的。该实例提供了Web Service的业务请求处理、服务日志、以及服务定位等功能。

4. Event Broker Instance组件是平台内部处理Pub/Sub事件的容器。它是作为一个Broker实例运行在Message Broker Runtime上的。该容器提供了Event Handler 组件的运行环境,将基于MQ/JMS的事件分发到不同平台组件的目标队列上。

5. Message Handler组件是处理基于MQ消息的业务请求,包括消息解析、格式转换,服务鉴权与认证、服务路由、服务日志等功能。Message Handler组件处理MQ消息的典型流程如下:

首先对MQ消息进行解析,对解析后的业务请求进行分析,之后通过Authentication 与Authorization组件判断该请求者的业务请求是否可以进行后续处理;

通过Service Locating组件对该业务请求进行服务定位与路由;

相关文档
最新文档