ESB在实际项目中的应用Word文件下载.docx
《ESB在实际项目中的应用Word文件下载.docx》由会员分享,可在线阅读,更多相关《ESB在实际项目中的应用Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
上面是IBM的业务集成参考架构,而下面的图则用IBM的产品充满了整个架构。
3、ESB所处的位置,作为连接层,组织服务请求方和服务提供方之间的信息
4、ESB解决连接性问题
a)Decoupleinterfacesfromapplication.【ESB可以从应用中解耦接口。
注意:
当前的项目中,总是在对付接口】
b)Enableallapplicationstocommunicatewitheachotherregardlessof
i.Programminglanguages
ii.SystemPlatforms
iii.Programmingmodels
iv.Protocols
v.Dataformats
可以在以上5层无关性的前提下,应用程序互相通讯。
5、WhatisEnterpriseServiceBus(ESB)?
c)Aflexibleconnectivityinfrastructureforintegratingapplicationsandservices.【一个柔性联通基础架构,用于集成应用程序和服务。
d)Usedtoreducethenumber,size,andcomplexityofinterfaces.【用于减少接口的数量、大小、复杂性】
6、ESB的功能
e)Matches&
routes(messagebetweenservices)
【原来应用系统是直连的,相互之间是知道对方存在的,是依赖于接口的】
f)Converts(transportprotocolsbetweenrequestorandservice)
【协议转换】
g)Transforms(messageformatbetweenrequestorandservice)
【消息格式转换】
h)Distributes(businesseventsfrom/todisparatesources)
【分发事件】
7、ESB提供的通讯服务
i)传输(包括JMS消息和异步协议)
j)事件
k)中转
8、什么是Brokering?
(注意:
数据的格式不一样)
Broker愿意是经纪人的意思,在这里可以理解为代理。
使用MessageBroker之后,还可以很方便连接新的应用。
9、MessageBroker产品家族
IBM划分基础产品和高端产品的方式可以学习。
10、MessageBroker核心概念
l)消息处理(Messageprocessing)
i.处理消息中的独立项
ii.物理和逻辑消息模型
m)转换和路由(TransformationandRouting)
i.消息操纵(MessageManipulation)
【我理解为各种处理,类似于handle】
ii.基于内容的路由(Contentbasedrouting)
n)简单的,清晰的编程模式
i.可视化编程模式:
消息流
11、MessageBroker概况
从这个处理流程中,可以看出MB的基本功能:
1)收到并路由消息
2)转换消息到另一格式,或者到多个其他格式
3)给订阅者发布一个消息
4)访问外部数据库处理增量消息或存储
5)应答事件和错误
12、MB的组件――部署时
Broker有Domain的概念,另外Messagesets和Messageflow都运行在Broker之内,多个Broker部署在同一个BrokerDomain内,在同一个Domain内通过Configuration来进行配置。
13、MB的组件――运行时
1)Broker(消息代理):
是MB的消息处理引擎,它提供MB的所有运行时服务。
2)ConfigurationManager(配置管理器):
CM是工作台,配置存储库和Broker之间的一个接口,它维护BrokerDomain的配置信息,向Broker提供初始化配置信息以及之后的变化信息。
配置管理器是MB用于管理那些组成BrokerDomain的全部部件和资源的核心运行时部件。
3)BrokerDomain(消息代理域):
共享相同配置的若干Broker组成一个消息代理域,每个消息代理域由一个唯一的配置管理器来控制,在一个消息代理域中,可以创建、启动一个或多个Broker,和一个可选的UserNameServer。
4)ExecutionGroup(执行组):
执行组是若干消息流的组合,是消息流运行引擎。
每个执行组是一个独立的进程,这样,在同一个执行组中的消息流可以做到在运行时相互独立。
在一个执行组内部,消息流在不同的线程池内运行,为了提高性能,我们可以通过设置每个消息流的运行实例的个数来指定每个消息流的线程池的大小。
5)UserNameServer(用户名称服务器):
任何关键系统的一个重要的组成部分就是通过提供一个有效的安全机制来确保资产安全的能力。
用户名称服务器是可选的运行时组件,它提供Publish/Subscribe操作相关的用户和组的安全控制。
6)MessageFlow(消息流):
在MB中对消息的运算处理、格式转换和路由等功能是通过消息流实现的,每个消息从输入MB到从MB中输出,都将被一个消息流处理,然后发往目的应用系统。
消息流由各种消息处理节点(MessageProcessingNode)组成,消息处理节点可对消息进行各种处理操作,节点与节点相连,便组成了一个消息流。
7)MessageProcessingNode(消息处理节点):
在MB中,对消息的所有计算和处理是通过消息节点实现的,消息节点实际上是被Broker运行环境调用的动态链接库(DLL),通过ESQL语句对消息进行操作,通过对消息节点属性的客户华处理,将使节点能够对流经自己的消息执行特定的功能。
8)ESQL:
在MB中,消息流开发使用的使ESQL语言。
ESQL是对SQLV3的扩展,除了用于数据库的操作之外,它还可以操作消息数据,包括GenericXML和MRM格式的消息。
14、MessageFlows【简直就是针对消息的工作流】
15、MessageProcessingNodes(6.0在此基础上又有增加)
从我的观点来分析,最重要的节点:
a)MQInput&
MQOutput
b)HttpInput可以做WS服务,HttpRequest可以去访问WS
c)Publication用于发布
d)ESQL语句节点,可以用于手工写ESQL,属于万能的节点。
e)Mapping,消息到消息和消息到DB的映射
f)Filter,实现if-else。
返回4种状态:
failer,true,false,unknow。
g)RouteToLaber配合Label,相当与case语句。
h)TryCatch和Throw
i)Trace,用于打印调试信息。
MB也提供命令行调试方式。
j)AggregateRequest、Reply、Control,聚合
新版本中增加了
a)Timer节点
b)JMS节点
16、MBToolkit
17、ESQLeditor
18、MessageSetDevelopment
19、Mappingeditor
20、Deployment
MB需要打包成bar包,这具有更强的灵活性,更高的性能,当然要稍微麻烦一些。
自己开发的产品,打包、部署一定要简单,最好能支持热部署。
21、mqsideploy命令行部署工具,较大型的项目,需要做开发环境、测试环境、联调环境、生产环境等。
生成脚本可以多次执行。
这就是大型软件和一般软件的区别之一。
22、MB性能报告
4160个1KB的包/秒,建议交易用的包在1—2K。
MQ消息持久,是指写文件,保证服务宕机的情况下消息的完整性。
而非持久性能更高。
比如:
银行ATM最大等待时间60妙,超时后消息本身就没有意义,可以选择非持久。
23、MQInput/MQOutput消息流的基准值
24、ParallelProcessingOption
MB可以通过多instance或者多执行组来并行,具体哪个效果更好,看具体应用的情况。
【赵斌原创,保留一切权利,转载请保留引用:
(完)