议程
- 企业对应用集成的内在需求
- 企业IT设施面临的问题
- 企业应用集成的架构方案
- ESB的角色与职责
- ServiceMix简介
–ServiceMix架构
–ServiceMix组件概览
–ServiceMix实战
–Demo
–Mule的工作机理
–Mule组件概览
–Mule实战
–Demo
企业对应用集成的内在需求
- 多数企业成立初期,其应用大多是用来代替一些孤立的、重复性质的工作环节,并没有考虑到企业业务与数据的集成。
- 当企业发展到一定阶段时,开始意识到应用集成的价值和必要性。企业的各部门之间以及企业与合作伙伴之间需要相互协调,密切合作,企业内部原有的孤立应用是无法满足这一要求的。这促使企业开始寻求应用集成的解决方案。
企业IT设施面临的问题
–削弱了部门间的协作
–影响资源的整合
企业应用集成的架构方案
Point-to-Point solution
Hub-and-Spoke solution
Enterprise Message Bus Integration
Enterprise Service Bus Integration
Point-to-Point 风格的架构图
qESB风格的架构图
ESB的角色与职责
- Providing connectivity(支持跨协议)
- Data transformation(包括数据格式的转换)
- (Intelligent) routing
- Dealing with security
- Dealing with reliability
- Service management
- Monitoring and logging
ServiceMix简介
ServiceMix是基于JBI (JSR 208) 规范构建的ESB产品,作为ASF的一员,它集成了包括ActiveMQ,
Camel, CXF, ODE, Karaf在内的一系列ASF的优秀产品和工具。
ServiceMix的优势:完全遵循JBI规范;与ASF其他优秀产品和工具有很好的集成
ServiceMix的劣势:扩展组件不够丰富;文档更新不够及时和全面(个人感觉在产品成熟度上与mule有不小的差距)
ServiceMix架构
ServiceMix组件概览
ServiceMix的功能是以组件为单位提供,因此可以说组件的多少决定了ServiceMix功能的多少,以下是ServiceMix的组件列表:http://servicemix.apache.org/components-list.html
ServiceMix实战
- 使用ServiceMix提供的Mavenarchetype工具快速创建ServiceMix工程
- ServiceMix工程的包结构:
1.创建SA: mvnarchetype:create-DarchetypeArtifactId=servicemix-service-assembly
-DarchetypeGroupId=org.apache.servicemix.tooling-DgroupId=net.sf-DartifactId=demo-sa
2.创建SU: mvnarchetype:create-DarchetypeGroupId=org.apache.servicemix.tooling-DarchetypeArtifactId=servicemix-http-provider-service-unit
-DgroupId=net.sf-DartifactId=demo-su
Demo
本Demo用于展示ESB的一项基本功能:连通两个系统。源代码可从sourceforge上检出,SVN地址https://mydemolib.svn.sourceforge.net/svnroot/mydemolib
Demo的步骤为:
1.启动cxfdemo-server发布服务:mvnclean jetty:run
2.启动cxfdemo-client,直连cxfdemo-server发布的服务以确认server和client均可正确正常工作:
mvncompile exec:java
3.build并deploy工程servicemixdemo-http-sa到ServiceMix
4.修改cxfdemo-client的连接配制,让其连接到ServiceMix,重新启动cxfdemo-client,依然可以通过ESB正常访问到所需要的服务。
Mule简介
Mule:目前开源社区最成熟的ESB产品,在连通性、数据传输、路由方面都非常强健。其成熟性表现在:有非常丰富的扩展组件,完备的文档,受到多数应用服务器的支持。需要特别指出的是:Mule提供了一系列Cloud
Connectors,使得mule可以与AmasonEC2这样的云平台进行集成。
Mule的工作机理
Mule组件概览
和ServiceMix一样,Mule也是以组件的方式提供和扩展功能的,Mule
有两大类组件transport和module。transport是与具体传输协议相关的组件,module则是与协议无关,不会传送和接收数据的组件。
官方Transport组件:http://www.mulesoft.org/documentation/display/MULE3USER/Transports+Reference
官方Module组件:http://www.mulesoft.org/documentation/display/MULE3USER/Modules+Reference
社区提供的组件:
http://www.mulesoft.org/community-transports-modules
Mule实战
使用Mule提供的Mavenarchetype工具快速创建mule工程.
示例:
mvnmule-project-archetype:create-DartifactId=muledemo-DmuleVersion=3.1.2
注意:该archetype工具在未指定transport或module时,总是会引入默认的transport或module,可在生成后的mule-config.xml手动删除不需要的组件。
Demo
本Demo用于展示ESB的一项基本功能:连通两个系统。源代码可从sourceforge上检出,SVN地址https://mydemolib.svn.sourceforge.net/svnroot/mydemolib
Demo的步骤为:
1.启动cxfdemo-server发布服务:mvnclean jetty:run
2.启动cxfdemo-client,直连cxfdemo-server发布的服务以确认server和client均可正确正常工作:
mvncompile exec:java
3.build并deploy工程muledemo-bridge到mule
4.修改cxfdemo-client的连接配制,让其连接到mule,重新启动cxfdemo-client,依然可以通过ESB正常访问到所需要的服务。
小结
- ESB是企业应用集成的核心部件,它的主要职责是连通各类使用不同协议通信的应用
- ServiceMix是JBI规范的实现
- Mule是目前最为成熟的开源ESB产品,背后有商业公司支持,功能强大,插件丰富
- 综合评价:Mule优于ServiceMix
|