频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

7.8.3 配置SU、SA、jbi.xml、servicemix.xml

作者: 梁爱虎 出处:电子工业出版社  2008-04-25 10:24    砖    好    评论   进入论坛
阅读提示:《SOA思想、技术与系统集成应用详解》第7章为您讲述的是基于JBI的ServiceMix服务总线,本节为您介绍的是配置SU、SA、jbi.xml、servicemix.xml。

7.8.3  配置SU、SA、jbi.xml、servicemix.xml

本小节的实例不同于以前的实例,以前的实例只有一个简单的servicemix.xml的配置,相对来说比较简单。对于比较复杂的应用,往往需要将一个服务模块分成一些运行单元,有的单元运行在JMS环境中,有的单元运行在lwcontainer环境中等,这些小的运行单元称为SU(Service Unit)“服务单元”。这些小的运行单元并不是分别发布运行的,而是集中在SA(Service Assembly)“服务集成模块”下面一起运行,最后发布的是SA。如图7-9所示。

 
图7-9  ServiceMix的SA运行模块

ServiceMix可以提供不同的运行环境的支持。本小节将会运行lwcontainer,目录结构如下:
 House-loan
|――build.xml、servicemix.xml
|—-build  (包括编译之后的Classes文件)
|――data   (运行ServiceMix后所产生的一些运行文件,运行之前可以清理掉)
|――deploy  (运行ServiceMix所需要的zip包,发布文件夹)
|       |――loanbroker-sa.zip
|――install  
|      |――servicemix-lwcontainer-3.1-incubating-installer (运行lwcontainer所需要的)
|      |――servicemix-shared-3.1-incubating-installer (运行ServiceMix的共享库)
|――src (Java源程序和配置文件)
|――client (客户端源程序)
|―― components 服务器端源程序,将会被发布到服务总线
|―― sa 
|      |――META-INF
|                  |――jbi.xml (JBI配置文件)
|―― su
|――servicemix.xml

本例将会创建3个配置文件。
SA目录下面的jbi.xml;
SU目录下面的配置文件servimix.xml;
根目录下面的servicemix.xml。


1.SA目录下面的jbi.xml


SA目录下面的配置文件jbi.xml负责配置运行在ServiceMix运行环境中的SA(Service Assembly)“服务集成模块”。
一个运行模块只能有一个SA,可以有多个SU。每个SU将会打包成一个单独的SU包,然后将多个SU的zip包打成一个SA包来运行。


本小节的jbi.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<jbi xmlns="http://java.sun.com/xml/ns/jbi" version="1.0">
<service-assembly>
<identification>
<name>loanbroker</name>
<description>LoanBroker Service Assembly</description>
</identification>
<service-unit>
<identification>
<name>loanbroker</name>
<description>LoanBroker Service Unit</description>
</identification>
<target>
<artifacts-zip>loanbroker-su.zip</artifacts-zip>
<component-name>servicemix-lwcontainer</component-name>
</target>
</service-unit>
</service-assembly>
</jbi>

jbi.xml表示将会通过servicemix-lwcontainer容器来运行loanbroker-su.zip。


本小节有两个servicemix.xml,通过SU目录下面的配置文件servimix.xml配置服务单元。此外通过项目根目录下面的servicemix.xm来运行服务。


2.SU目录下面的配置文件servimix.xml


SU目录下面的配置文件servimix.xml配置服务单元。


本小节将会建立1个JMS绑定组件,7个服务引擎组件。


JMS绑定组件:负责接收外部的服务请求,并将服务请求通过NMR送给HouseLoanBroker服务引擎;
HouseLoanBroker服务引擎:主要的业务流程控制模块,它接收外部服务请求者的请求消息后,首先调用HouseLoanAgeny服务,通过客户的姓名得到客户的房屋数量;再调用HouseLoanGateway服务;
HouseLoanAgeny服务引擎:从HouseLoanBroker得到服务请求,根据顾客的姓名,得到不同的房屋数量;
HouseLoanGateway服务引擎:根据客户房屋数量的不同分别调用Bank0、Bank1、Bank2、Bank3的服务;
Bank0服务引擎:提供房屋数量为0的客户的房屋贷款,提供相应的首付比率和贷款利率;
Bank1服务引擎:提供房屋数量为1的客户的房屋贷款,提供相应的首付比率和贷款利率; Bank2服务引擎:提供房屋数量为2的客户的房屋贷款,提供相应的首付比率和贷款利率;
Bank3服务引擎:提供房屋数量大于2的客户的房屋贷款,提供相应的首付比率和贷款利率。


下面是servicemix.xml开始部分,定义命名空间:

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
xmlns:lb="http://servicemix.org/demos/loan-broker">                   
<classpath>
<location>.</location>
</classpath>      
<sm:serviceunit id="jbi">
<sm:activationSpecs>

建立JMS绑定组件,接收外部的服务请求。


componentName:组件名称,为“loanBrokerJmsBinding”;
destinationService:目标服务,JMS绑定组件在收到服务请求消息后,会将消息通过NMR转给目标服务,目标服务的写法为“命名空间:服务名称”,此处为“lb:loan-broker”;
JMS的实现类:“org.apache.servicemix.components.jms.JmsServiceComponent”;
实现类的属性名称:“template”,它所对应的Bean的类名为“org.springframework. jms.core.JmsTemplate”,其属性“connectionFactory”(连接工厂),引用了下面配置的“jmsFactory”;其属性“defaultDestinationName”(默认目标名称),对应于“demo.org.servicemix.source”;其属性“pubSubDomain”的值为“false”,表示没有订阅的工作区域。

 <!-- In/out binding  配置JMS的监听端口,来监听服务请求 -->
<sm:activationSpec componentName="loanBrokerJmsBinding"
destinationService="lb:loan-broker">
<sm:component>
<bean class="org.apache.servicemix.components.jms.JmsServiceComponent">
<property name="template">
<bean class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsFactory" />
<property name="defaultDestinationName" value=
"demo.org.servicemix.source" />
<property name="pubSubDomain" value="false" />
</bean>
</property>
</bean>
</sm:component>
</sm:activationSpec>

<!-- Loan broker component     
配置loanBroker服务,它专门接收各种服务请求,然后分发给不同的服务,最后将响
应返回给服务请求者。它实现的是一个流程管理的功能,类似于BPEL的功能 -->
<sm:activationSpec componentName="loanBroker"
service="lb:loan-broker">
<sm:component>
<bean class="houseloan.HouseLoanBroker" />
</sm:component>
</sm:activationSpec>

<!-- HouseLoan Agency 下面配置houseloan agency服务,它用来查询顾客的已有的房
屋贷款数量 -->
<sm:activationSpec componentName="houseloanAgency"
service="lb:houseloan-agency">
<sm:component>
<bean class="houseloan.HouseLoanAgency" />
</sm:component>
</sm:activationSpec>

<!-- Lender Gateway 下面服务贷款服务控制器,它将根据顾客已有的房屋数量,将贷
款服务分发给不同的银行,因为不同的银行将给出不同的首付比率,贷款利率 -->
<sm:activationSpec componentName="lenderGateway"
service="lb:lender-gateway">
<sm:component>
<bean class="houseloan.HouseLoanGateway" />
</sm:component>
</sm:activationSpec>

<!-- Banks 下面配置不同的银行服务,因为不同的银行将会给出不同的收费比率、贷
款利率-->
<sm:activationSpec componentName="bank0" service="lb:bank0">
<sm:component><bean class="houseloan.Bank" >
<property name="rate" value="6.0"/>
<property name="firstPaidRatio" value="20.0"/>
</bean>
</sm:component>
</sm:activationSpec>
<sm:activationSpec componentName="bank1" service="lb:bank1">
<sm:component><bean class="houseloan.Bank"  >
<property name="rate" value="6.5"/>
<property name="firstPaidRatio" value="30.0"/>
</bean>
</sm:component>
</sm:activationSpec>
<sm:activationSpec componentName="bank2" service="lb:bank2">
<sm:component><bean class="houseloan.Bank"  >
<property name="rate" value="7.0"/>
<property name="firstPaidRatio" value="40.0"/>
</bean>
</sm:component>
</sm:activationSpec>
<sm:activationSpec componentName="bank3" service="lb:bank3">
<sm:component><bean class="houseloan.Bank"  >
<property name="rate" value="7.5"/>
<property name="firstPaidRatio" value="50.0"/>
</bean>
</sm:component>
</sm:activationSpec>

</sm:activationSpecs>
</sm:serviceunit>               

<!-- 配置JMS的连接工厂-->
<bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
</property>
</bean>
</beans>

3.根目录下面的servicemix.xml
根目录下面的servicemix.xml,负责发布整个服务。
 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0">
  <bean id="jndi" class="org.apache.xbean.spring.jndi.SpringInitialContextFactory" 
factory-method="makeInitialContext" singleton="true" />
  <!-- JMX 服务器 -->
<sm:jmxServer id="jmxServer" locateExistingServerIfPossible="true" />
  <import resource="classpath:activemq.xml" />
  <!-- the JBI 容器 -->
<sm:container id="jbi"
rootDir="./data/smx"
installationDirPath="./install"
deploymentDirPath="./deploy"
flowName="seda">
    <sm:activationSpecs>
</sm:activationSpecs>
</sm:container>
</beans>
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
北漂技术人90天求职纪实
2008年春季英特尔信息技术峰会(IDF)
技术人求职简历完备手册
VMware技术应用
开源虚拟化技术Xen
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
首届中国IT工程师生态调查十大发现
首届中国IT工程师生态调查十..
视频访谈:网管员如何踏上高薪之路
视频访谈:网管员如何踏上高薪..
2008年上半年全国软考冲刺辅导
2008年上半年全国软考冲刺辅导
· 2008年上半年全国软考..
· 企业数据恢复指南
· 微软出价446亿美元收购..
· Linux——从菜鸟到高手
· 交换机故障解决指南
· OSPF路由协议专栏
· 勇闯IT培训黑色围城
· 见证中国网络安全二十年
· 技术人求职简历完备手册
· 华为员工自杀频频拷问..
· 思科全球CEO钱伯斯第七..
· 北漂技术人90天求职纪实
· 2007年互联网大会
· 龙芯要做中国的“奔腾”
· IPv6协议--拓展网络无..
· 国际文档格式标准开战
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· 中间件应用技术专题
· SQL Server入门到精通
· 国际文档格式标准开战
· 路由器设置与口令恢复
· Linux防火墙
· 打造安全服务器
· SOA 面向服务架构
· PHP开发应用手册
· ADSL应用面面俱到
· 入侵防护系统(IPS)初探
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· 中间件应用技术专题
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· iSCSI应用与发展
· RAID——磁盘阵列基础
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· ADSL应用面面俱到
· ADSL应用面面俱到
· PHP开发应用手册
· 中间件应用技术专题
· 交换机故障解决指南