• 1. (本页无文本内容)
  • 2. ServiceMix简介Open Source ESB ESB(Enterprise Service Bus)是为了解决企业生态群落内大量系统间因为交互繁琐导致维护成本增加而产生的 JBI Sun用来规范ESB领域而制定的一个规范 JBI Container Servicemix从本质上来说就是一个JBI的容器
  • 3. ServiceMix简介JBI Components BC Bind Component(BC) 即消息绑定组件,用于对不同消息进行转换.把收到的各种消息统一转换为JBI消息.也把JBI消息转换成各种协议发往外部系统 SE Server/Service Engine(SE) 即服务引擎,简单来说就是把从BC组件收到的消息进行二次处理,比如路由消息,树结构转换
  • 4. ServiceMix架构图
  • 5. ServiceMix的主要特征主要特征 (1)JSR208 (2)components plugins (3)Spring (4)hot development (5)tansformation,routing…
  • 6. JBI简介SU Service Unit (SU) 即服务单元,用户编写的服务的最小单位,每个服务单元都有自己的逻辑进行处理.例如,消息转换,消息路由,通过一个或多个SU的组合完成一次接口调用 SA Service Assemblys(SA) 即服务集合,简单来说就是把SU打包成SA文件,然后部署到Servicemix中去
  • 7. JBI简介NMR Normalized Message Route(NMR) 即标准消息路由,在JBI规范中,BC收到消息后,不能直接传递给下一个BC或者SE进行消息处理,这些传输必须通过NMR转发,NMR转发的消息已经是标准的JBI消息,Servicemix也支持对soap消息进行NMR传递 DC Delivery channel 即传输通道,上述NMR消息传输的通道 MEP Message Exchange Pattern(消息交换模式) In Only,Robust In Only,In Out,In Optional Out
  • 8. In-Only消息交换模式(In-Only Message Exchange)这种模式被用作单向消息交换 服务消费者使用消息发起请求。 服务提供者回复状态以完成交换。
  • 9. In-Out消息交换模式(In-Out Message Exchange)服务消费者使用消息发起请求。 服务提供者回复消息或故障。 消费者回复状态。
  • 10. JBI架构图
  • 11. JBI plugin
  • 12. ServiceMix的SEservicemix-bean 允许自定义bean,可以自行对消息进行自定义处理 servicemix-jsr servicemix-cxf-se servicemix-file servicemix-eip servicemix-camel  允许对消息路由处理  servicemix-drools servicemix-lwcontainer servicemix-quartz 消息定时处理  servicemix-saxon 消息格式转换,支持xslt 
  • 13. ServiceMix的BCservicemix-http servicemix-jms 支持JMS协议,允许接受JMS消息  servicemix-cxf-bc servicemix-ftp servicemix-mail servicemix-xmpp
  • 14. ServiceMix入门实例实例说明: Servicemix BC接收消息,通过camel发送到serivcemix bean 模块
  • 15. ServiceMix入门实例ServiceMix Bean 创建命令 mvn archetype:create \ -DarchetypeGroupId=org.apache.servicemix.tooling \ -DarchetypeArtifactId=servicemix-bean-service-unit \ -DarchetypeVersion=2010.01 \ -DgroupId=your.group.id \ -DartifactId=your.artifact.id \ -Dversion=your-version 配置文件 参见: http://servicemix.apache.org/servicemix-bean.html
  • 16. ServiceMix BC 创建BC  mvn archetype:create \  -DarchetypeGroupId=org.apache.servicemix.tooling \ -DarchetypeArtifactId=servicemix-binding-component \ -DarchetypeVersion=3.2.1 \ -DgroupId=org.apache.servicemix.samples.helloworld.bc \ -DartifactId=hello-world-bc 创建SU mvn archetype:create -DarchetypeArtifactId=servicemix-service-unit -DarchetypeGroupId=org.apache.servicemix.tooling -DartifactId=tutorial-file-su
  • 17. ServiceMix BC
  • 18. ServiceMix Camel 创建命令 mvn archetype:create \ -DarchetypeGroupId=org.apache.servicemix.tooling \ -DarchetypeArtifactId=servicemix-camel-service-unit \ -DarchetypeVersion=2010.01 \ -DgroupId=your.group.id \ -DartifactId=your.artifact.id \ -Dversion=your-version 配置文件 参见: http://servicemix.apache.org/servicemix-bean.html
  • 19. 谢 谢