MuleESB用户手册第一章.docx
- 文档编号:9891636
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:16
- 大小:913.67KB
MuleESB用户手册第一章.docx
《MuleESB用户手册第一章.docx》由会员分享,可在线阅读,更多相关《MuleESB用户手册第一章.docx(16页珍藏版)》请在冰豆网上搜索。
MuleESB用户手册第一章
MuleESB用户手册
作者:
杨欣华
第1章:
MuleESB简介
1、什么是MuleESB?
MuleESB是一种基于java的、轻量级的企业服务总线和集成平台,它允许开发者快速的、简单的连接应用,并能够实现数据的转换。
MuleESB的主要功能如下:
●服务的创建与管理(Servicecreationandhosting):
用MuleESB作为一个轻量级的服务容器来暴露和管理可重用的服务。
●服务调解(Servicemediation):
隐藏服务消息的格式和协议,将业务逻辑从消息中独立出来,并可以实现本地独立的服务调用。
●消息路由(Messagerouting):
基于内容和规则的消息路由、消息过滤、消息合并和消息的重新排序。
●数据转换(Datatransformation):
在不同的格式和传输协议中进行转换数据。
我们是否需要ESB?
这部分内容可以参考“ToESBornottoESB”
Mule的核心竞争力
1、Mule的组件可以是你想要的任意类型。
你可以轻松整合任何来自其他框架中某个组件的“简单的Java对象”(POJO)。
2、Mule和它的ESB模型能够重用重要组件。
和其他框架不同,Mule允许你使用现有组件而不需要任何的修改。
组件不需要任何Mule-specific编码,也不需要编程API,就能在Mule中运行。
业务逻辑被完整的从消息逻辑中分离出来。
3、消息可以是任何格式,可以是SOAP,也可以是二进制图像文件。
Mule没有任何设计约束,如:
XML消息或WSDL服务契约。
4、你可以部署Mule在多种拓扑结构中,而不仅仅是ESB。
因为Mule是轻量级的,是可嵌入的。
Mule可以大大降低产品上市时间,提高生产率,保证项目的安全,能够根据需要适应改变并向上或向下升级应用。
2、理解MuleESB的消息框架
通过网络一个应用能发送数据到另一个应用。
但是,许多应用没有能力读取或处理来自其他应用的数据。
MuleESB通过提供一个消息框架可以解决这个问题,这个消息框架能够在应用间将数据作为消息来读取、转换和发送。
每个消息都是一个仅仅是一个数据包,能够在应用间通过一个特别的通道被处理和发送。
和传统的ESB不同,MuleESB只转换需要转换的数据。
传统的ESB你不得不为每个应用都创建adapter,这些adapter用于将应用连接到总线上,并转换应用数据到一种单一的通用消息格式。
开发这些adapter及处理每个消息需要大量的时间和精力。
MuleESB消除了单一消息格式化的需求。
信息可以通过任何通道(如HTTP或JMS)传送,并且只转换那些需要转换的数据。
因此MuleESB和传统的ESB相比能够提升性能并降低开发时间。
参考文档:
企业集成模式:
设计、建立和部署消息解决方案
3、理解MuleESB的架构
这一部分描述了MuleESB架构的各个组成部分以及它们是如何处理消息和消息中的数据的。
SOA简介
SOA是面向服务的架构的缩写,是软件开发的发展方向。
SOA允许IT组织通过联合应用的功能组件或者服务来创建新的应用。
使用SOA企业能大大节省开发成本并能迅速的适应业务条件的改变。
SOA还能更好的整合企业的IT资源,包括早先独立开发的应用以及遗留系统。
MuleESB完全支持SOA方法论并能够编排互相通信的服务,使你能够很容易的将所用的应用整合到一起。
数据的处理
MuleESB通过servicecomponent(servicecomponent)来处理消息,实现业务逻辑。
MuleESBservicecomponent的重要功能是不需要任何“MuleESB-specific”编码,servicecomponent仅仅是一个包含用特殊方式处理数据的业务逻辑的POJO,Springbean,Javabean,或者webservice。
MuleESB管理这些servicecomponent,通过设置配置文件来打包他们,暴露他们成服务并根据配置文件中这些服务的定义确保正确的消息传送给servicecomponent或由servicecomponent发出。
在servicecomponent中路由消息
servicecomponent通过inboundrouter和outboundrouter来获得和发送消息,它们能保证servicecomponent可以接收和发送正确的消息。
inboundrouter用于指定servicecomponent即将处理的消息,它可以对消息进行过滤、聚合、重新排序,然后再传给servicecomponent。
outboundrouter用于指定被servicecomponent处理后的消息将被发送到哪里。
你可以定义多个inbound和outbound路由约束,甚至可以将router串联起来,共同为servicecomponent服务。
从消息中分离业务逻辑
在MuleESB中,servicecomponent被完全从消息格式中分离出来(servicecomponentsarecompletelyshieldedfromthemessageformat.)。
MuleESB用“transport”进行消息的搬运,且一种“transport”只能搬运一种数据,“transformers”用于改变消息负载的格式,转换消息对象的类型。
值得注意的是“transformers”只是用来转换需要转换的数据,另外你可以用多个类型的“transport”来处理不同的“通道”(channels)
WiringEverythingTogether(连接各个服务)
配置文件中的元素“Endpoints”主要用于将所有的服务连接起来。
你需要在“inbound和outboundrouters”中指定“Endpoints”,告诉MuleESB什么样的“transport”被使用、发送消息去那里和那个servicecomponent应该接收这个消息。
“Endpoints”主要的组成部分是以URI(uniformresourceindicator)表示的地址。
4、理解逻辑数据流(LogicalDataFlow)
下面图表举例说明了,在MuleESB中数据流失怎么工作的。
1.Thecustomerplacesanorderonthecompanywebsite,andaninvoiceiscreatedasanXMLformandsubmittedto
2.TheHTTPtransportreceivestheXMLinvoiceandwrapsitinaMulemessage.TheCustomerDataservice’sinboundendpointissettoanditsinboundrouterspecifiesthatthemessagemustcontainaJavaobject,sotheHTTPtransportpreparestotransformtheXMLinvoiceanddispatchthemessagetotheservice.
3.TheXMLtoObjecttransformerconvertstheXMLinvoiceintoaJavaobject.NotethatthenextserviceandthefinalapplicationalsoexpectJavaobjects,sonofurthertransformersareusedinthisscenario.
4.ThetransportpassesthemessagewithitstransformedpayloadtotheCustomerDataservice.
5.TheCustomerDataservicecomponentqueriesthemastercustomerdatabasetopulladditionaldataaboutthecustomerandupdatestheinvoicewiththedata.
6.TheHTTPtransportusestheoutboundrouterconfigurationtodeterminethatitmustnowdispatchthemessageto
7.TheHTTPtransportusestheinboundrouterconfigurationoftheInventoryVerificationservicetoreceivethemessageandpassittotheservicecomponent.
8.TheservicecomponentupdatestheinvoicewithanIDcodeofthewarehousethathasalltheitemsontheinvoiceinstock.
9.TheoutboundendpointspecifiesaJMSaddress,sotheJMStransportdispatchesthemessagetotheorderfulfillmentapplication,whichpicksupordersonthataddress.
5、整合MuleESB到你的环境中
MuleESBalsosupportsothertopologiesbeyondESB,includingpipeline,peernetwork,client/server,hub-and-spoke,andmore.Thesetopologiescanbemixedandmatchedinanenterpriseservicenetworktomodelcomplexenterprisemessagingandservicerequirements,asshowninthefollowingillustration.
通过网络你可以有多个分布式的MuleESB实例,如下图所示:
MuleESB可以安装在ApacheTomcat、BEAWebLogic、IBMWebSphere、OracleApplicationServer、SunOne、Geronimo、JBoss等WEB或应用服务器上。
6、管理MuleESB
用ManagementConsole来管理部署
ManagementConsole是MuleESB企业版的功能,可以提供集成日志、应用的配置和服务事件的跟踪。
它能探测到MuleESB服务器和相关软硬件的状态,并能报告事件的实时和历史详情。
用ServiceRegistry来控制基础设施
Serviceregistry是MuleESB企业版的功能,基于开源产品MuleGalaxyproject开发,能够帮助你得到整个基础设施的控制权,其主要功能如下:
●注册:
自动的探测和显示服务之间的依赖并管理服务的生命周期。
●知识库:
存储和管理重要的文件(Mule配置文件,WebService框架,和其他重要文件);
提供版本管理和协作意见(collaborativecomments);
允许你通过AtomPublishingProtocol用浏览器发布文件。
●统治(Governance):
提供一个中心控制节点用于管理和遵从策略,确保你的SOA符合公司的策略。
用JMX来监控Mule实例
JMX是一种简单但标准的管理应用、设备、服务和其他资源的方式,你可以使用它监控和管理资源的创建、安装和执行,也可以使用它监控和管理JAVA虚拟机。
7、与MuleESB兼容的技术
操作系统
●Linux
●Windows
●Solaris
●AIX
●HP-UX
●MacOSX
应用服务器
●Standalone
●Tomcat
●WebLogic
●WebSphere
●Geronimo
●JBoss
●Jetty
●Resin
容器
●EJB3
●jBPM
●Spring
JMS服务器
●ActiveMQ
●FioranoMQ
●JBossMQ
●OpenJMS
●OpenMQ
●OracleAQ
●SeeBeyond
●SonicMQ
●SunJMSGrid
●SwiftMQ
●TIBCOEMS
●WebLogicJMS
开发工具
●Ant
●DataMapper(EclipseIDE,Oakland)
●Eclipse
●Japex
●Maven
●MuleIDE
●Profiler
Transports
●Abdera
●AmazonSQS
●Axis
●BPM
●CICSCTG
●CXF
●FTP
●Hibernate
●HTTP/S
●IMAP/S
●JCR
●JDBC
●Jersey
●Jetty/JettySSL
●JMS
●LDAP
●Multicast
●POP3/S
●Quartz
●Restlet
●RMI
●SalesForce
●SAP
●Servlet
●SMTP/S
●SOAP
●STDIO
●TCP
●UDP
●VM
●XMPP
●WSDL
安全
●WS-Security
●Acegi
●Jaas
●PGP
●SpringSecurity
数据库
●Derby
●MySQL
●Oracle
WebService技术
●Axis
●Atom
●CXF
●.NETWebServces
●REST
●SOAP
●WS-Addressing
●WS-Policy
●WS-Security
●WS-IBasicProfile
●WS-ISecurityProfile
●WSDL
语言
●Groovy
●Java
●JavaScript
●Jaxen
●JRuby
●JXPath
●Jython(Python)
●OGNL
●RegEx
●SXC
●XPath
●XQuery
数据格式
●Atom
●Base64encoded
●Bytearrays
●CSV
●EDI
●Encrypted
●GZIP
●Hexstrings
●HTML/XHTML
●Javaobjects
●JAXB
●JSON
●Streaming
●Strings
●XHTML
●XML
●XMLentityencoded
部署技术
●ESB
●Client/Server
●Peer-to-Peer
●EnterpriseServiceNetwork
●HubandSpoke
●Pipeline
事件处理
●Asynchronous
●RoutingPatterns
●SEDA
●Streaming
●Synchronous
8、总结
MuleESBprovidesamessagingframeworkthatenablesexchangeofdataamongapplications.Theapplicationfunctionalityiswrappedasaservice,whichincludesaservicecomponent(thebusinesslogicthatprocessesthedata),routers(whichuseendpointstospecifywheretosendthemessage),andotherconfigurationsettings.Transportscarrythemessagesondifferentchannelsfromservicetoservice,andtransformersconvertthemessagesanddataasneededalongtheway.
MuleESBisnotareplacementforexistingapplicationframeworks.Instead,MuleESBleveragesmanyopensourceprojectssuchasApacheCXF,Spring,andActiveMQandfillsavoidinenterpriseJavadevelopmentwhereanapplicationrequirescomplexinteractionswithavarietyofsystemsonavarietyofplatforms.MuleESBmakeslightworkofwiringsystemstogetherinarobust,decoupledenvironmentwithlittletonocodeandprovidesthenecessarysupporttoroute,transport,andtransformdatatoandfromthesesystems.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MuleESB 用户手册 第一章
![提示](https://static.bdocx.com/images/bang_tan.gif)