文档章节

企业应用集成与开源ESB产品ServiceMix和Mule介绍

猪刚烈
 猪刚烈
发布于 2014/10/12 11:40
字数 1238
阅读 142
收藏 0

企业应用集成与开源ESB产品ServiceMix和Mule介绍


议程


•企业对应用集成的内在需求
•企业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 风格的架构图

 

 

ESB风格的架构图

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

本文转载自:http://blog.csdn.net/bluishglc/article/details/6550474

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
对单机架构升级集群架构的工作记录

概述 还有公司敢用单机模式架构,狠狠的擦了一把汗。。在此萌生了改造单机架构模式,自行网上搜索出一套适合公司的高可用架构,才大致了解完毕。领导就召集大家说了现有单机模式的弊端。。 ...

java_龙
2017/06/22
0
0
数据集成在ODS项目的应用模式

ODS(The operational data store),也叫运营数据存储,是用于支持企业日常的全局应用的数据集合,它是介于DB和DW 之间的一种数据存储技术。从专家给出的定义上来讲,它是一个面向主题的、集...

晨曦之光
2012/03/09
0
0
Apache ServiceMix使用features安装模块总是报not found错误的解决方案

安装ServiceMix 7.0.1,启动后安装模块时,出现如下错误: Commond not found: features:install 原因是因为在serviceMix7.0.1安装包中将features改成了feature(没有s) 可以敲击tab键,查看...

傲娇字符
05/15
0
0
架构设计:系统间通信(35)——被神化的ESB(下)

2-4、ESB与版本控制 企业中的系统集成过程,存在很多非技术因素引起的变化。可能出现的情况是,某个一直能够正常使用的调用功能A,在某一天突然就不能使用了。技术团队和业务团队排查了许久才...

独孤环宇
2017/11/30
0
0
架构设计:系统间通信(35)——被神化的ESB(下)

(接上文:《架构设计:系统间通信(34)——被神化的ESB(上)》) 2-4、ESB与版本控制 企业中的系统集成过程,存在很多非技术因素引起的变化。可能出现的情况是,某个一直能够正常使用的调...

yinwenjie
2016/06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

这些Spring中的设计模式,你都知道吗?

设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行...

Java填坑之路
24分钟前
1
0
Spring Aop原理之Advisor过滤

在上文(Spring Aop之Advisor解析)中我们讲到,Spring Aop对目标bean的代理主要分为三个步骤:获取所有的Advisor,过滤当前bean可应用的Advisor和使用Advisor为当前bean生成代理对象,并且上文...

爱宝贝丶
35分钟前
0
0
JMockit学习教程

1 JMockit中文网 我觉得如果仅仅是开发自测的话,把JMockit中文网认真看一遍,就可以在项目中使用JMockit了。 http://jmockit.cn/index.htm 2 JMockit中文教程 官方文档中文版。对于不喜欢看...

SuperHeroes
47分钟前
0
0
Linux服务器几乎从不采用Arch Linux?

我们见得多的Linux服务器系统一般都是什么Ubuntu Server啊,什么Cent OS啊,什么Fedora啊,或者企业采用的Red Hat啊,为什么几乎没有Arch Linux呢?下面我将从若干个方面指出Arch Linux在服务...

linux-tao
58分钟前
0
0
js 函数柯里化 闭包

参考 https://mp.weixin.qq.com/s/GEHL3jarDdAAcr5tQGjmDg 一个统计求和的函数 需要知道整个数组的信息,然后遍历求值 function countMoney() { let money = 0 // 温馨提示:arguments...

阿豪boy
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部