- 2010/08/17 13:49
- 151 次阅读
-
Esb
主要介绍下Servicemix最常用的组件之一servicemix cxfbc的使用,官方上有比较详细的文档,英文好的朋友可以直接点击查看
CXF 同时也是apache的一款webserivce框架.Java开发者可以使用cxf快速的发布webserivce或者作为客户端调用别的webserivce.
在Java世界里,webserivce本质上就是把java bean对象序列化成xml文本,并包装成SOAP格式的消息传递到服务端,由服务端反序列化xml消息到java bean调用相关服务.
Note:这里的序列化和反序列化,涉及到2个标准,即jax-rpc和jax-ws规范 这2个规范无论是对SOAP的格式还是java-xml间互转都有着本质上的不同.JDK1.5以后,sun已经把jax-rpc移除了jdk中去. JDK1.5开始都采用jax-ws规范. 这里cxf同样只支持jax-ws规范.
我们先来写一个简单的webservice程序,充当集成的一个系统,我们称这个系统为mock系统. 如何开发一个webserivce不是这里的重点,可以点击此处下载已开发完好的webservice程序,只需把war包扔到Servlet容器内部署即可. 这里我们假设我需要集成一个订单受理系统.
浏览器内输入 http://localhost:8000/mock/services/order?wsdl 打开如下图,则启动正常
好了,我们开始对这个mock系统进行集成,因为是例子,我做的尽量简单,只使用cxfbc一个JBI组件来开发,现实环境中一般还用上xslt作为数据树结构转换,这里我们先不用.
一、编写自定义WSDL,
CXFBC是一个BC组件,简单来说其实是一个WebService的代理组件,使用这个组件我可以不写任何一行代码,来和一个现有的WebService进行连接,虽然不用写代码,但我们却需要编写一个WSDL文件,这样ESB暴露给别的系统的就是这份WSDL文件,调用后CXFBC组件会把这份WSDL产生的SOAP消息,发往外部系统,这里是我们的mock系统.
大致关系如下: Client -- soap &nda
......
ESB
Servicemix
教程
webservice
More
- 2010/08/11 07:28
- 263 次阅读
-
Esb
简单介绍下Servicemix安装、使用、部署,并简单介绍下Servicemix简单配置.
安装
下载Servicemix http://servicemix.apache.org/download.html 由linux和windows两个不同版本
解压到指定文件夹(zip/tar.gz)
Note:目前最新版本是3.3.2 和 4.0.0
运行
cd <SERVICEMIX_HOME>
windows: .\bin\servicemix.bat linux: ./bin/servicemix
Note:由于linux启动servicemix,会随终端退出而关闭,需要使用nohup命令,使其脱离终端独立运行
部署
Servicemix提供2种主要监控方式
热部署目录. 即把开发好的SA直接放到<SERVICEMIX_HOME>\hotdeploy目录中去即可
脚本部署. Servicemix运行使用ant或maven脚本方式,直接把开发好的SA植入到JBI容器内
Note:Servicemix提供了部署MBena,用户可以使用此MBean开发第三方程序进行部署
监控
Servicemix并没有提供第三方监控工具,而是推荐使用sun的jconsole工具,该工具位于JDK bin目录中和java 、javac等命令在一个目录下,操作如下
命令行输入jconsole
在远处连接处输入"service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi" 默认用户名和密码都是smx
点击"连接"按钮即可对Serivicemix内部资源进行监控
Note:Servicemix的第三方生产商FUSE提供了HQ监控工具,但是由于不开源,所以大家无福消受了.
关于开发
官方推荐使用maven作为Servicemix的开发工具,个人也强烈推荐,简单方便.详细的maven教程可以参考maven官方网站.http://maven.apache.org/
这里简单讲一下如何建立一个Service
......
ESB
Servicemix
教程
webservice
More
- 2010/08/06 06:59
- 308 次阅读
-
Esb
经过一年来ESB学习和工作的部分经验.即给自己总结的时间,把脑海中关于ESB的部分进行整理,也留下点心得,也想和对ESB感兴趣,有研究的朋友进行交流.不足之处望予以批评指正.
基础概念
1. ESB
ESB(Enterprise Service Bus)是为了解决企业生态群落内大量系统间因为交互繁琐导致维护成本增加而产生的.下图是典型的传统多系统间数据交互图.随着生态群落的扩大,越来越多的系统加入,导致维护这些系统的通讯成本越来越多
ESB的诞生就是为了解决上图中的这些问题,下图可以可以看到ESB所解决的实际问题.
2. Apache Servicemix
Apache是著名的开源社区,正对不同应用都有很多对应的开源产品,对开源有兴趣的朋友可以进入官网学习. 对于ESB. Apache主要有2款产品: Synapse 和 Servicemix
Synapse,这款产品是apache早期的一款ESB产品,诞生于JBI规范制定之前,属于众多ESB产品中一个普通的产品,并没有什么太吸引人的地方. 但随着WSO2这款新ESB的兴起,发生了点改变.WSO2是WSO2公司正对Synapse进行二次开发后的产物,因为使用了apache licese因此也开源.并且提供了强大的可视化界面,通过几步简单的配置就能完成系统间接口的集成.
ServiceMix,我们重点讲这款产品.这款产品是目前Apache主推的一款ESB产品,遵循了JBI规范,可以很方便的进行二次扩展,其自带的组件基本能完成一般系统集成的需要,是构建SOA的良好产品.目前Servicemix主要有2个版本在维护,即3.*和4.*两个版本,这里我们讲3.*版本.
3. Apache CXF
目前比较成熟功能比较齐全的webserivce工具.可以用来发布自己的webserice程序,并能作为webserivce的客户端. Servicemix使用cxf作为其webserivce的一个发布工具.
4. Apache Camel
Apache Camel是一个开源的企业应用集成框架。它采用URI来描述各种组件,这样你可以很方便地与各种传输或者消息模块进行交互,比如HTTP、 ActiveMQ、JMS、JBI、SCA、MINA或CXF Bus API。该路由完全参照了《Enterprise Integration
......
ESB
Servicemix
教程
webservice
More
Recent Comments