分享

Mule技术架构(摘译)

 开心豆豆2010 2014-04-23
更多明细,请阅读原文 《 Mule 1.x Architecture Guide 》,2.0版本缺少相应的文章,但技术架构没有发生更本的变化。 6 T  ]& m$ m* v! I, U" T( B
一.需求, |* H2 Q% }! a
  • 简化不同数据源之间的数据交互
  • 简化不同应用之间的服务交互
  • 可扩展、轻量级、可嵌入、可定制、简单易用
二.架构风格选择
31.jpg
Mule使用的是基于消息的架构风格(如上图所示),消息具有程序语言无关系、组件无关性、数据格式灵活性、消息无状态等特征,基于消息的服务也同样具有无状态的特征,此外,消息风格有非常成熟的应用模式,能够满足当前遇到的大部分数据应用需求以及SOA的需要。因而能够很好的满足需求中的前2个和第三个的可扩展、可定制的需求。  ]  j' R3 f2 S/ `4 S
  • Application:可以是程序段、外部系统。
  • Channel:连接任何2个应用点(计算点),通过消息进行沟通,可参考《EIP - Message Channel (60)》 。6 j# J+ ?1 t% h. G& B
  • Message Receiver:用来从应用节点中读取、写入消息。
  • Inbound Router:进入计算组件(component)之前的控制和处理,例如:过滤、聚合、排序等。
  • Connector:在Channel上建立链路层,Message Receiver绑定在connector上监听数据、派发数据。
  • Transformers:转换消息格式。
  • Endpoint:把channel抽象为服务的一种配置组件,这些被配置的元素有connector, endpoint URI, transformers, filters and transactional。
  • Outbound Router:消息从计算组件(component)流出后的控制和处理,例如:过滤、Pub/Sub、拆分、路由等。
三. 技术框架和领域对象介绍
32.jpg
  • The Model:提供框架的运行时环境,管理配置、组件实例,提供运行模式;用户甚至可以定制自己的运行模式(很强大)。Model模型包含如下内容 Descriptors、UMO components、 An endpoint resolver、A lifecycle-adapter factory、A component resolver、A pool factory、An exception strategy。
  • Entry Point Resolver:与应用组件(POJO等)的交互。
  • Lifecycle Adapter:将MULE实例的生命周期映射到应用组件,间接接管应用组件。
  • Component Pool Factory:应用组件管理,提供pool能力。
  • Transport Providers:使Mule组件发送和接收消息的部件。 33.jpg " J+ N, }5 x2 L- L# v
  • Connectors:对Connector的实现。
  • Endpoints Address:资源标识的一种方法。例如,pop3://user:password@mail. ,file:///tmp/data/in,vm://MyUMO,axis:http:///mule/services/MyUMO
  • Endpoint Resolution:对附加在Endpoint的配置进行解析,例如,jms://topic:myTopic?durable=true。
  • Message Receivers:消息接收者或监听者,不同类型的协议实现方式不同。例如TCP协议,只需要监听端口即可,File协议,需要定制一个线程去扫描文件系统,VM协议,可以不做任何事。
  • Message Adapters:负责消息的转换。
  • Transactions:提供事务支持。(没敢用,实际中,都是通过其它方式实现事务)
  • Container Contexts:嵌入式的时候使用,能够把Mule容器和外部容器打通。与Spring整合的已经非常完美。
  • UMO Components:mule的核心抽象之一,主要用来包装应用组件(POJO等)。
  • Component Lifecycle:组件的生命周期。 34.jpg
  • Events:Mule框架采用事件(SEDA,强烈推荐阅读Using SEDA to Ensure Service Availability)架构来实现。 35.jpg , B* H* p! }: a: j, j9 g) a

  • Inbound Routers、Outbound Routers:对应于消息架构中的2个部件。
  • Event Processing:Mule提供三种事件处理方式,(1)Asynchronously,(2)Synchronously ,(3)Request-Response相当于用异步实现的同步。 (具体使用模式,请参考原文)
  • Interceptors:Mule框架提供拦截器模式,以方便用户扩展组件整体行为。 36.jpg
    % ?) s& [: S) u% x& F% a. a0 D
  • Exception Management:提供异常管理的机制,默认的异常粗略很糟糕,最好自己定制。
  • Agents:为运维人员提供的管理接口。
  • Thread Pool:线程池管理,Mule的线程池和池策略需要仔细配置,否则很容易出现错误。Mule提供共用线程池和独立线程池模式,建议使用共用线程池模式。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多