http://www.blogjava.net/flyingbug/archive/2005/11/21/20836.html
Message Transformation及其相关模式
通常,通过消息系统集成的应用很少有同样的消息格式。比如说,一个帐务系统同一个CRM系统对客户对象是有着不同的概念的。基于这个,一个系统可能将消息存储在关系表中,另一个可能存储在文件中。集成已存在的系统通常意味着我们没有修改系统以便使他们更好的一起工作的自由。然而,集成方案不得不协调和解决各种系统之间的不同。Message Translator模式提供了一个通用的解决方案。这里解释几种特定的Message Translator。
Message Transformation包含以下几种模式:
l Envelope Wrapper
l Content Enricher
l Content Filter
l Claim Check
l Normalizer
l Canonical Data Model
大多数消息系统放置特定的需求在消息头的格式和内容中。我们包装有效数据到一个Envelope Wrapper中以适应消息基础设施的需求。如果消息需要穿过不同的消息基础设施,可以结合多个Envelope Wrapper。
如果原始系统不能提供目标系统需要的数据域,可以使用一个Content Enricher。它可以查找缺少的信息并从已有数据中计算出它。Content Filter正好相反,它从消息中删除不需要的数据。Claim Check也从消息中删除数据,但是它将存储他们以便以后取回。Normalizer将多个不同格式的消息翻译成统一格式。
消除依赖
消息转换在集成中是一个很深的话题。Message Channels和Message Routers可以通过消除应用必须知道另外一个应用的位置的需求从而解除应用间的基本依赖。
一个应用可以发送一个消息到Message Channel而不必担心谁来取出消息。然而消息格式增加了另外一种依赖。如果一个应用不得不将消息格式化成另外一个应用的数据格式,通过Message Channel解耦的说法就像一个幻想。接收系统的任何改变或切换到另外一个接收系统都需要对发送应用进行改变。Message Translators可以帮助除去这种依赖。
元数据管理
将消息从一个消息格式转换到另一个格式需要操作元数据 - 描述数据格式的数据。
元数据在两个并行系统之间的集成中扮演着非常重要的角色。一个处理实际的消息数据,另外一个处理元数据。许多用于处理消息数据的模式也同样可以管理元数据。比如说,Channel Adapter不仅可以从一个系统中移进和移出消息,还可以从一个外部应用中获取元数据,并将其加载到一个元数据仓库中。使用这个仓库,集成开发者可以定义应用元数据与Canonical Data Model.之间的转换。
元数据集成
http://www.blogjava.net/images/blogjava_net/flyingbug/2501/o_MT1.JPG
举例来说,上面的图描述了两个需要交换客户信息的应用的集成。每个系统的客户数据的定义稍有不同。从A到B的消息需要转换一下才能被B接收。如果Channel Adapters可以抽取元数据的话,创建一个转换将非常简单。然后这个元数据可以被放入一个仓库,大大的简化了Message Translator的配置和验证。元数据可以被存储成不同的格式。通常XML消息使用XSD格式。其他EAI工具实现所有元数据格式,但是允许管理员导入或导出到其他格式。
消息系统外的数据转换
这些转换模式组成的很多原则可以被应用于非消息集成。比如说,File Transfer可以执行系统间的转换工作。类似的,Remote Procedure Invocation必须使请求使用要调用的service的格式,即使应用本身的格式可能不同。典型的,需要调用程序来执行转换。一些最成熟的转换引擎组成了ETL工具,比如Informatica或者DataMirror。这些工具一般都一次转换大量的数据,而不是转换单个消息。
Message System应专注于几种基本的Message Translator模式。而不应该关心实体间结构转换的细节(不同的数据模型之间的转换,比如ER模型不支持多对多关系而其他的支持这种)。关于这个主题最老也使最相关的书是Kent的《Data and Reality》。
分享到:
相关推荐
收集了有关ESB方面的资料,做成PPT汇报,能比较系统全面的介绍ESB的来龙去脉以及集成应用情况。
- **ESB产品选择**:根据业务需求和技术评估结果,选定最适合的ESB产品。 - **适配器选择**:选择适合特定系统的适配器,以简化集成工作。 ##### 4. 运作模型设计 - **服务流设计**:设计服务的路由、转换和映射...
在IBM的ESB实现中,其技术架构通常包括以下几个核心组件: 1. **服务代理(Service Proxy)**:这是ESB与外部服务交互的接口,它负责转换和路由消息,确保不同系统之间的兼容性。 2. **服务注册中心(Service ...
4. **政策监控**:持续监控政策执行情况,收集审计日志和性能指标,及时发现并解决问题。 5. **政策更新**:根据业务需求和环境变化定期审查和更新政策,保持政策的有效性。 #### 实战案例分析 本篇分享了几个具体...
1. **实时监控**:ESB平台可以实时收集设备的运行状态、性能指标和故障信息,为运维人员提供即时反馈,便于及时发现并处理问题。 2. **智能报警**:通过对设备数据的分析,ESB能自动识别异常情况,触发报警机制,...
**记录**是ESB操作的关键方面,它涉及到收集和存储ESB处理的所有交易数据。这些数据包括交易时间、交易类型、源和目标系统、交易状态以及任何异常或错误信息。通过记录,我们可以追踪服务之间的交互,诊断问题,优化...
首先,ESB作为企业级中间件,是构建分布式系统和集成不同应用的关键技术。它允许不同的信息系统之间进行数据交换和业务流程协调,有效地打破信息孤岛,促进整个组织内部的互联互通。在智慧医院的场景下,ESB可以连接...
适配器是ESB中非常重要的一环,它能够支持多种通信协议和技术,使得不同系统之间的通信成为可能。常见的适配器类型包括但不限于: - **Web Services (WS):** 支持基于SOAP或REST的服务调用。 - **Java消息服务 ...
ESB可以通过消息队列、流处理技术,实现高速数据传输和即时响应,支持实时决策和业务操作。 - **物联网(IoT)集成**:随着物联网设备的普及,大量传感器和智能终端产生的数据需要高效收集和处理。ESB可以作为...
- **ESB总线技术**:通过数据总线的方式发布WebService调用或下发JMS数据,实现与外部系统的数据共享服务。此部分通常采用第三方标准中间件产品,如SAP的BOE(BusinessObjects Enterprise)、IBM的Cognos、MSTR的...
- IoT集成:物联网集成技术使物理设备能够与信息系统通信,收集和处理实时数据。 - 数据湖/仓库集成:数据集成工具如ETL(提取、转换、加载),帮助组织整合来自不同源的大量数据,形成统一视图。 4. 智能化信息...
- **话单采集**:收集通话记录数据。 - **消息接入**:处理各类消息服务。 - **融合计费**:集成多种计费模型。 #### 三、核心模型 核心模型的设计对于MVNO的成功至关重要,主要包含以下几个关键要素: - **BSS综合...
- **临床数据中心(CDR)**:作为医院信息平台的核心,CDR负责收集、整理和管理临床数据,为医生提供准确、及时的决策支持。 - **医院消息服务总线(ESB)**:作为系统间的通信桥梁,ESB能够实现不同系统之间的数据...
- **需求分析阶段:** 收集用户需求,明确系统的目标和功能。 - **开发阶段:** - 规划:确定项目的范围、时间表、成本预算等。 - 分析:对需求进行详细分析,制定设计方案。 - 设计:完成系统的逻辑设计和物理...
这个项目主要是为了测试开关站的操作,利用了一系列的Java技术和架构组件,包括RESTful Web服务、企业服务总线(ESB)、Java消息服务(JMS)以及Apache骆驼(Camel)框架。接下来,我们将深入探讨这些技术及其在实际...
最后,微服务架构往往需要从单体应用转型,这可能涉及使用ESB(企业服务总线)如Mule进行服务编排和协议转换,逐步将单体拆分成独立的服务。 综上所述,微服务技术架构设计涵盖了众多技术和工具,旨在构建一个灵活...