ESB解决方案文档格式.docx

上传人:b****6 文档编号:8604616 上传时间:2023-05-12 格式:DOCX 页数:10 大小:397.65KB
下载 相关 举报
ESB解决方案文档格式.docx_第1页
第1页 / 共10页
ESB解决方案文档格式.docx_第2页
第2页 / 共10页
ESB解决方案文档格式.docx_第3页
第3页 / 共10页
ESB解决方案文档格式.docx_第4页
第4页 / 共10页
ESB解决方案文档格式.docx_第5页
第5页 / 共10页
ESB解决方案文档格式.docx_第6页
第6页 / 共10页
ESB解决方案文档格式.docx_第7页
第7页 / 共10页
ESB解决方案文档格式.docx_第8页
第8页 / 共10页
ESB解决方案文档格式.docx_第9页
第9页 / 共10页
ESB解决方案文档格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ESB解决方案文档格式.docx

《ESB解决方案文档格式.docx》由会员分享,可在线阅读,更多相关《ESB解决方案文档格式.docx(10页珍藏版)》请在冰点文库上搜索。

ESB解决方案文档格式.docx

层次化结构互相耦合,其中,每一个ESB是一耳光预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。

ESB不是一个应用程序框架,也不是一个企业应用的解决方案,它只是一个基于消息的调用企业服务的通信模块。

可以把它嵌入到应用程序框架中,例如嵌入到spring容器里面,或者嵌入到工作流系统中,它的作用是对企业里面的SOA服务的调用提供一个框架和简便的方法。

二、ESB和JBI

JBI:

JavaBusinessIntegration

一种ESB规范(Java领域)

定义了组件框架、组件描述、部署模型定义了归一化消息模型

定义了客户端API接口定义了管理模型(JMX)

ESB是产品,JBI是一个Java领域的ESB规范

三、ESB定义

它是面向服务框架的实现

它通常是操作系统和编程语无关的,它应能在Java和.Net应用程序之间工作

它使用XML作为标准通信语言

它支持Web服务标准

它支持消息传递(同步、异步、点对点、发布-订阅)

它包含基于标准的适配器,用于集成传统系统

它包含对服务编制(orchestration)和编排(choreography)的支持

它包含智能、基于内容的路由服务

它包含标准安全模型,用于ESB的认证、授权和审计

它包含转换服务(通常是使用XSLT),在发送应用和接收应用之间转换格式,简化数据格式和值的转换

它包含基于模式(schema)的验证,用于发送和接收消息

它可以统一应用业务规则,充实其它来源的消息,分拆和组合多个消息,以及处理异常

它可以条件路由,或基于非集中策略的消息转换,即不需要集中规则引擎

它可以监视不同SLA(服务级别合约)的消息响应门限,以及在SLA中定义的其它特性

它常常简化“服务类别”,向更高或更低优先级用户做出适当的响应

它支持队列,在应用临时不可用时用来保存消息

它由分布式环境中的选择性部署应用适配器组成

四、主流商业和开源ESB一览

类型

产品

公司

商业

OracleServiceBus(OSB)

Oracle

OracleEnterpriseServiceBus(ESB)

WebSphereEnterpriseServiceBus

IBM

WebSphereMessageBroker

WebSphereDataPower

SonicESB

Progress

ActiveMatrixServiceBus

TIBCO

开源

Mule

MuleSoft

ServiceMix/FUSEESB

Synapse/WSO2ESB

WSO2

五、开源ESB框架Mule介绍

1.Mule概述

Mule是一个开源消息ESB框架,一个消息代理,一个分级事件驱动的框架(SEDA)。

SEDA(StagedEvent-DrivenArchitecture)的核心思想是把一个请求处理过程分成几个Stage,不同资源消耗的Stage使用不同数量的线程来处理,Stage间使用事件驱动的异步通信模式。

MuleESB模式驱动系统中所有服务,这个系统有着一个分离的消息通讯中枢。

服务注册在总线上,但是不知道其他任何被注册的消息,因此,每个服务只关心处理它收到的事件。

Mule也把容器,传输,转换细节从服务中分离出来,允许任何对象作为服务注册到总线的。

MuleESB是一个基于Java的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。

MuleESB支持集成现有系统而无论其底层采用何种技术,如JMS、WebServices、JDBC、HTTP以及其他技术。

2.Mule的整体结构

从上图可见,Mule通过Transports/Connectors与外围的异构系统连接,提供Routing(路由)、TransactionManagement(事务管理)、Transformation(转换)、MessageBroker(消息代理)、TransportationManagement(传输管理)、Security(安全)等核心模块。

Mule可以单独使用,也可以架设在常用的应用服务器上。

外围系统的服务请求通过MuleESB的Transport接入,Mule通过Transformer进行数据的格式转换,然后经过InboundRouter进行消息过滤(内部通过配置filter实现)后交给Mule的Component进行业务逻辑处理,处理后的结果通过OutboundRouter确定传递给哪个接收方,然后通过Transformer进行数据格式转换,通过Transport连接至接收方,传递信息。

此图描述的是Mule中的一个典型场景的处理过程,涵盖了Mule中的各个关键组件。

其中某些处理步骤不是必须的,如InboundRouter、Transformer。

后续可以看到一些其他场景的处理。

3.MuleESB中的一些基本概念

1)Model

Model表示托管各个服务的运行时环境。

图Model

2)Service

Service是用来处理服务请求的基本单位,它调用各个组件进行服务请求的处理。

图Service

3)Transport

Transport管理消息的接收和发送,数据转换的过程也是在Transport中通过调用Transformer完成的。

图Transport

Connector用于管控特定协议的使用,如HTTPConnector、JMSConnector等。

Endpoint用于表示一种协议的特定使用方式,如listening/polling、从中读取、向指定地址写入等,定义了发送和接收消息的通道。

Endpoint控制的是底层的实体在Connector中如何被使用。

Endpoint定义于Inbound和OutboundRouter中。

4)Transformer

Transformer用于转换消息的内容。

图Transformer

5)Router

Router使用Filter基于消息中的属性信息进行消息的分发。

图Router

Router在Service中的位置决定了Router的性质(inbound、outbound和response)和担任的角色(pass-through、aggregator等)。

6)Component

Component是Service的核心部件,是Service的业务逻辑的实现。

图Component:

implicitbridgecomponent

Component可以是JavaClass(POJO、SpringBean)、WebService、Script等。

Component可定义自己的生命周期:

initialise、start、stop、dispose,不过需要实现Mule的LifeCycle接口。

Mule3.0版本开始提供@PostConstruct和@PreDestroy的注解,对应生命周期的initialise和dispose阶段,不需要实现Mule的LifeCycle接口了。

7)Flow(@since3.0)

Flow是Mule3.0新引入的,包含一个消息源(MessageSource)和多个消息处理器组成的处理器链。

图Flow

4.事件驱动框架概述

Mule是一个开源消息ESB框架,一个消息代理,一个分级事件驱动的框架(SEDA)。

所谓的事件驱动框架,系统由事件消费者和事件产生着组成。

事件消费者向事件管理器订阅事件,事件产生者向事件管理器发布事件。

当事件管理器从事件产生者那接收到一个事件时,事件管理器把这个事件转送给相应的事件消费者。

如果这个事件消费者是不可用的,事件管理者将保留这个事件,一段间隔后再次转送该事件消费者。

这种事件传送方法在基于消息的系统里就是:

储存(store)和转送(forward)

事件驱动设计和开发的优势:

1)可以更容易开发和维护大规模分布式应用程序和不可预知的服务或异步服务

2)可以很容易,低成本的集成、再集成、再配置新的和已存在的应用程序和服务

3)促进远程组件和服务的再使用,拥有一个更灵敏、没有bug的开发环境

4)短期利益:

更容易定制。

因为设计对动态处理有更好的响应。

5)长期利益:

系统和组织的状态变得更精准,对实时变化的响应接近于同步。

事件分类:

1)系统层事件:

系统级动作,例如创建一个文件或关闭一个端口

2)平台层事件:

平台级动作,例如修改一个数据源或增加一个新的服务

3)组件层事件:

组件级动作,例如视图对象的转换活状态机变化

4)业务层事件:

业务级动作,例如创建用户或删除账号

5)应用层事件:

应用级动作,例如增加保险金或报价提交

5.SEDA处理请求的步骤

1)接收用户请求

2)数据库查询

3)根据数据库查询结果,准备webservice调用参数

4)发起webservice调用

5)将结果返回给用户

SEDA会使用一条线程处理1、3、5步骤,两条线程处理2步骤,而用五条线程处理耗时最多的4步骤。

6.ESB分布式的基础——传输层和远程通讯

四层协议:

网络通讯的一种模型

传输协议:

四层模型中的第三层-传输层,主要指TCP、UDP

应用协议:

四层模型中的第四层-应用层,基于TCP/UDP,而向应用开发的高层协议,例如:

HTTP、FTP等

ESB的传输层:

它是一个逻辑概念,相对于ESB体系结构来说,解决服务(或系统)交互的一层。

可以直接利用第四层协议,例如:

SMTP协议,FTP协议等;

或者基于第三层、第四层协议定制的解决服务交互的协议,把一个系统的数据和指令传输到另一个系统(可以获取回执,也可以不获取回执),例如:

SOAP+HTTP协议,RMI协议,Hessian协议,REST(HTTP+XML方式)的协议,XML+JMS协议;

甚至与传输无关的一些交互方式,例如:

File协议,内存协议等

在通讯框架上,选择了MINA,主要原因有:

A:

文档齐全B:

扩展性好C:

协议层定制方便D:

基于事件模型E:

有HTTP的扩展F:

稳定性不错G:

Apache在不断升级

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2