信息化 频道

P/S重塑数据交换平台

  【IT168 资讯】异步性、异构性、动态性和松耦合性已经成为分布式系统的本质特征。而发布/订阅(简称P/S)通信模式为通信的实体提供了一种匿名性,实体不需要知道消息由谁产生或由谁应用,需要根据感兴趣的主题去自然地联系在一起——这种通信模型具有异步性、异构性、动态性和松耦合的特性,满足了当前分布式系统的需求。
  
  P/S让信息更实时
  
  P/S消息中间件(简称P/S MOM)自诞生之日起就一直处于不断的发展之中,基本形态已从最初的基于通道发展形态转变到基于主题、基于类型和基于内容形态,结构也从集中走向分布,并广泛应用于EAI、移动Agent、工作流系统、无处不在的计算、股票交易和航空交通控制等。
  
  P/S消息中间件的原理是消息发布者和订阅者分别同MOM进行通信:消息发布者将包含主题的消息发布到MOM;消息订阅者向MOM订阅自己感兴趣的主题。MOM对双方的主题进行匹配后,不断将订阅者感兴趣的消息推给订阅者,直到订阅者向MOM发出取消订阅的消息。
  
  由此可见,P/S消息中间件具有很好的灵活性和可扩展性,同时,P/S通信是一种主动、实时的信息传递方式,当消息发布者有动态更新的数据产生时,P/S消息中间件会通过发布相关事件,主动通知消息订阅者存在新的数据可用,而无需消息订阅者进行频度无法确定的查询,所以,P/S通信模型适合于具有实时性、异步性、异构性、动态性和松耦合的应用需求。
  
  P/S消息中间件的核心是消息代理(InforBroker,简称IB),IB采用基于插件的体系结构,功能上具有极好的开放性和可扩充性;同时,多个IB服务器还可以通过集群灵活地组织成更大的消息传输网络。从通讯模式上看,IB支持P2P和P/S方式的异步通讯方式; 从开发的角度来讲,IB是一个面向消息的代理,实现客户方和服务方之间在时间、空间和流程三个侧面的解耦,支持通过Internet/Intranet访问远程的数据和过程,适用于构造大型面向Internet和大规模Intranet的分布式应用。
  
  IB表示、消息注册、消息路由、服务质量(简称QoS)、消息传递的可靠性和持久性等方面的核心机制,构成了P/S消息中间件的概念全貌。
  
  IB表示:消息表示决定了消息发布的语法。由于XML具有强大的描述能力、深厚的技术背景和丰富的工具,它既被广泛作为公共数据交换格式来使用,又可以作为元数据表示和交换的统一语言。同时,基于XML的相关技术还可以为配置管理、个性化管理、数据/消息一致性验证、消息路由规则的描述、数据转换规则的描述等提供广泛的支持。因此,IB多采用XML作为消息表示语言。
  
  消息注册机制:消息注册机制是指消息订阅者向消息代理指定需求的机制,它通常对系统的表达能力和消息传递性能有直接的影响。在IB中,多采用基于主题或XPath的消息注册机制。
  
  消息路由:消息路由是为了使应用之间的消息交换处于一种可控的状态,能按照一定的规则将消息从发送者传送到目标应用。
  
  QoS:消息中间件不仅需要为分布式应用提供各种功能服务,还应在性能、可靠性等方面满足用户的需求。一般IB应具有以下几种QoS特性:
  
  可靠性: 消息中间件的可靠性分为消息可靠性和连接可靠性,消息可靠性控制消息失效时的处理方式,连接可靠性控制连接失败时的系统行为。这两种可靠性都有两种取值:BestEffort和Persistent,这样产生了四种可能的组合,其中,消息可靠性和连接可靠性均取为Persistent则提供最高等级的可靠性,而当消息可靠性取为Persistent并且连接可靠性取为BestEffort是没有意义的,通过可靠性设置,保证了异步传输模式下,消息发布者和接收者的可靠连接。可靠性是传输关键业务数据的必要功能,也是消息中间件区别于传统远程过程调用(RPC)如Corba、DCOM等技术的关键特性之一。
  
  优先级:优先级用来描述消息传递的优先程度。考虑到具体的网络传输情况,消息中间件无法保证每个消息都能按时传递给接受者,所以,消息发送者通过指定消息的紧急程度,使消息按照优先级的顺序传递给消息接收者。
  
  时间约束:时间约束是指消息只在特定的时期内有效。它包括消息的开始时间、有效时间和最迟交付时间,开始时间是指消息的起始传输时间,有效时间是指消息的有效期,最迟交付时间是指消息最晚到达接受者的时间,如果消息过了这个时间仍未到达,则被废弃。这里的时间都有绝对时间和相对时间两种情况,利用它们来控制消息到达的时间。
  
  队列管理:队列管理主要从消息发送的空间约束上进行控制,主要包括: 队列长度,接受消息的最大数目,消息的最大长度和丢弃策略等等。队列长度是内存中用来存储消息的Cache的大小,接受消息的最大数目控制消息接受者接受的消息的最大数目,丢弃策略是指当消息缓存溢出时废弃消息的顺序,常见的策略包括FIFO、LIFO、优先级和任意顺序等等。
  
  重构IB数据交换平台
  
  数据交换平台主要由数据源适配层和消息代理层(消息总线)构成。数据源适配层包括源适配器和目的适配器,由可视化建模工具来建立,源适配器根据数据源中有价值数据、数据关联,进行数据抽取主题的定义以及数据抽取策略的定制,对数据格式、内容的转换;目的适配器则根据级数据中心的数据仓库的各自要求,将订阅得到的数据存入数据仓库中。消息代理层中,消息总线利用IB的发布/订阅机制,以异步、松耦合方式实现各业务系统之间,及业务系统与两极数据中心之间的数据交换。
  
  基于IB的数据交换平台首先具有良好的可扩展性:利用发布/订阅机制的松耦合性,当出现新的需求时,可以直接重用已有的数据交换平台来快速实现。例如,当需要增加新的业务系统、业务部门或数据源时,只要将所需的数据映射为新的主题,并让适配器发布和订阅这些主题即可。由于发布者和订阅者无需知道对方的任何信息,因此在IB建立新的主题后,就自动形成了这些适配器之间的数据传输通道,从而避免了消息队列模式中所需的复杂的队列创建、配置和管理等问题。同时这种异步的、动态的连接使得在局部系统出错时可以更方便地进行隔离和恢复,通过基于JMX的集成平台监控管理,使用户可以在远程及时掌握平台的运行情况,并施加管理,保证了整个系统的稳定性和可靠性。
  
  其次,方便地解决了异地数据复制问题:发布/订阅模式的另一个好处是可以直接用来实现数据复制。和消息队列不同,同一个主题的订阅者和发布者是一种多对多的关系。因此,只要将需要的复制的数据映射为特定的主题,然后让省、市数据交换平台同时订阅这个主题,就能够实现数据复制的功能了。这极大地减轻了集成开发所需的工作量和数据交换平台的工作负载,减少了对业务系统的影响。同时利用对通信线路和通信平台的复用,减少了网络的复杂性和运行维护的开销,为一个应用系统与相关应用系统之间的数据传输建立一套统一的数据通信平台。
  
  此外,保证了大规模分布式环境下的数据传输:利用集群和消息域实现了数据的分级、分类传输,均衡了数据交换平台的传输负载,提高了数据传输的性能和可靠性。一个特定消息域允许有多个主代理,以此来均衡该消息域内消息的传输负载,由于某个代理既可以是某个消息域的主代理,也可以是其它消息域的从代理,因此消息域在逻辑的分离和交互中提高了消息共享的性能,当某代理失效后,根据路由算法实现代理网络的动态重排,大大提高了数据传输的可靠性。
  
  来源:《信息系统工程》
  
0
相关文章