求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
企业应用集成与开源ESB产品ServiceMix和Mule介绍
 

发布于2011-09-05

 

议程

  • 企业对应用集成的内在需求
  • 企业IT设施面临的问题
  • 企业应用集成的架构方案
  • ESB的角色与职责
  • ServiceMix简介

–ServiceMix架构

–ServiceMix组件概览

–ServiceMix实战

–Demo

  • Mule简介

–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

相关文章

企业架构、TOGAF与ArchiMate概览
架构师之路-如何做好业务建模?
大型网站电商网站架构案例和技术架构的示例
完整的Archimate视点指南(包括示例)
相关文档

数据中台技术架构方法论与实践
适用ArchiMate、EA 和 iSpace进行企业架构建模
Zachman企业架构框架简介
企业架构让SOA落地
相关课程

云平台与微服务架构设计
中台战略、中台建设与数字商业
亿级用户高并发、高可用系统架构
高可用分布式架构设计与实践

 
分享到
 
 
     


专家视角看IT与架构
软件架构设计
面向服务体系架构和业务组件
人人网移动开发架构
架构腐化之谜
谈平台即服务PaaS


面向应用的架构设计实践
单元测试+重构+设计模式
软件架构师—高级实践
软件架构设计方法、案例与实践
嵌入式软件架构设计—高级实践
SOA体系结构实践


锐安科技 软件架构设计方法
成都 嵌入式软件架构设计
上海汽车 嵌入式软件架构设计
北京 软件架构设计
上海 软件架构设计案例与实践
北京 架构设计方法案例与实践
深圳 架构设计方法案例与实践
嵌入式软件架构设计—高级实践
更多...