欢迎来到天天文库
浏览记录
ID:26961749
大小:54.00 KB
页数:9页
时间:2018-11-30
《基于xml和工作流的消息代理设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于XML和工作流的消息代理设计与实现摘要文章提出了一种在消息的路由、转换、聚合和分拆以及消息的标识和关联中采用XML技术和工作流技术相结合的消息代理结构,并详细讨论了其技术细节和实现方案,最后给出了该消息代理在口岸电子商务平台的一个应用案例。关键词XML工作流消息代理消息路由聚合和分拆1引言消息代理是一种以消息为载体、以独立的第三方软件体系为消息处理平台,在数据源与目的地之间移动数据使信息处理流畅的软件技术,数据源和目的地包括已有的应用、文件、数据库、对象(如CORBA、)、硬拷贝输出以及L的消息代理技术则是指,在消息通过相
2、关的通信途径如FTP、HTTP、POP3等到达消息代理后,消息代理首先将它们XML化,即把平面文件、HTML文件或者数据库的原始数据等规范化成XML格式的数据。这样在随后的消息翻译和映射转换,消息的聚合和分拆,消息的标志和关联等消息代理的相关功能实现过程中可以方便的借助XML技术来完成。然后根据预定义的工作流程来协调需要一系列复杂处理过程的交易处理。2消息代理体系结构通常,消息代理都是基于消息队列技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立的执行,它们只需要知道双方所在系
3、统环境下的消息队列位置而不需要知道彼此确切的位置或在继续执行前不需要等待接收程序接收此消息等,这不仅减少了资源共享问题,也为应用间的通信提供了便利。而消息代理则是对消息队列的一种扩展。它一般采用发布/订阅式或点到点式或二者相结合的消息交换模式,它具有以下特点:●提供对数据库的支持。消息代理使用数据库来存储与之相关的数据,例如持久性控制数据,从而使消息代理具有长事务处理能力。●提供与各种资源的接口、数据转换能力和消息处理能力,高效的实现应用之间的消息传递。●提供商务逻辑层开发能力。消息代理提供一种支持流管理、处理智能化开发工具,
4、使用户可以根据需要开发出合适的工作流和商务智能构件。●基于消息的代理骨干,其基于API的适配器以及包装程序完全能适应在不改变已有应用的基础上适应业务逻辑和组织机构的变化。一个典型的、基于发布/订阅和点到点模式的多引擎消息代理结构如下图所示:图1多引擎的消息代理体系结构该消息代理体系结构分通信、存储、消息引擎和控制逻辑四层。最底层是通信层,支持的接口通信协议包括HTTP,FTP,SMTP,TCP/IP等,适配器/包装程序负责将通过上述协议获得的包含应用数据的消息在各种格式间进行转换,完成应用与代理的通信。通信层的上层是存储层,该
5、层负责应用的注册以及日志记录。对于从通信层获得的消息,通过匹配控制逻辑层创建和存储的商务策略来决定是否需要事务处理,对于需要长事务处理的消息可以存储在数据库中,反之则存储在消息队列中供消息引擎实时处理。存储层的上层是消息引擎层,该层有两个核心功能:消息的映射转换和消息的路由。消息的映射转换负责把存储在队列或数据库中的消息通过预定义的转换程序转换成规范的XML格式,该XML格式称之为中间格式。之后再由其他转换程序转换成应用可以识别的其他格式如平面文件,EDIFACT文件等格式文件。消息路由程序接收和分发消息并基于预先定义好的消息
6、处理流程确保转发给正确的应用。消息的路由程序通常能执行多段的路由(“基于HUB的路由”),对于一个单个的消息,可以根据消息的源、目的地、类型、格式等定义多个处理段或对象。对象可以包括消息的转换、数据的格式转换、查询数据库、记录日志和定时传送等。应用间的互通可以是一对一、一对多或多向的。消息代理的最上层是控制逻辑层,提供基于第四代的开发语言和工具让开发者对消息的类型、消息的路由逻辑、例外处理、工作流等进行定义,并作为组件、模块或数据存储在相应库中,从而实现对数据的灵活控制。3消息代理系统的实现3.1消息的路由和可靠传输消息的路由
7、分为消息匹配和消息投递两个主要部分。消息匹配是一种逻辑路由,它可以根据预先定义的逻辑规则,确定消息从哪里获取,发给谁,有些什么要求,而不用关心消息的获取和发送是如何实现的。消息代理用队列接收并存储生产者发送的消息,同时用数据库来存储生产者和消费者的一些控制信息。当消息经由XML规范化后,消息所包含的源目的地址、消息类型等信息保存为元素、属性或记录等元数据值。消息引擎根据这些元素和属性再查询匹配数据库中存储的注册信息来确定消息的去向。对于消息的消费者属于SP的情况,路由程序可以根据登记的路由表来循环递归找到消息的最终消费者或者把
8、消息交给SP来进行进一步的分发。消息的投递则是一种物理路由。每个应用在建立与消息代理的通信连接前都要登记自己的通信连接信息,相关参数数据将保存在数据库中。消息匹配完成后,消息引擎通过查找消息接收者的通信连接信息后,选择合理的路径,通过通信层来完成消息的投递。消息的可靠性要求消
此文档下载收益归作者所有