计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

基于XML和工作流的消息代理设计与实现(1)

2014-07-12 01:05
导读:计算机应用论文论文,基于XML和工作流的消息代理设计与实现(1)应该怎么写,有什么格式要求,科教论文网提供的这篇文章是一个很好的范例: 摘 要 文章提出了一种在消息的路由、转换、聚合和分拆以及消
摘 要 文章提出了一种在消息的路由、转换、聚合和分拆以及消息的标识和关联中采用XML技术和工作流技术相结合的消息代理结构,并详细讨论了其技术细节和实现方案,最后给出了该消息代理在口岸电子商务平台的一个应用案例。 关键词 XML 工作流 消息代理 消息路由 聚合和分拆1 引言 消息代理 是一种以消息为载体、以独立的第三方软件体系为消息处理平台,在数据源与目的地之间移动数据使信息处理流畅的软件技术,数据源和目的地包括已有的应用、文件、数据库、对象(如CORBA、COM)、硬拷贝输出以及Web客户端等。消息代理主要提供数据的递送、收集、过滤、聚合或分拆、翻译、映射、转换和路由等功能,屏蔽不同的软硬件平台、数据库、消息格式、通信协议,提供应用到应用之间的高效、便捷、准确的互操作能力。 基于工作流和XML的消息代理技术则是指,在消息通过相关的通信途径如FTP、HTTP、POP3等到达消息代理后,消息代理首先将它们XML化,即把平面文件、HTML文件或者数据库的原始数据等规范化成XML格式的数据。这样在随后的消息翻译和映射转换,消息的聚合和分拆,消息的标志和关联等消息代理的相关功能实现过程中可以方便的借助XML技术来完成。然后根据预定义的工作流程来协调需要一系列复杂处理过程的交易处理。2 消息代理体系结构 通常,消息代理都是基于消息队列技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立的执行,它们只需要知道双方所在系统环境下的消息队列位置而不需要知道彼此确切的位置或在继续执行前不需要等待接收程序接收此消息等,这不仅减少了资源共享问题,也为应用间的通信提供了便利。 而消息代理则是对消息队列的一种扩展。它一般采用发布/订阅式或点到点式或二者相结合的消息交换模式,它具有以下特点: ● 提供对数据库的支持。消息代理使用数据库来存储与之相关的数据,例如持久性控制数据,从而使消息代理具有长事务处理能力。 ● 提供与各种资源的接口、数据转换能力和消息处理能力,高效的实现应用之间的消息传递。 ● 提供商务逻辑层开发能力。消息代理提供一种支持流管理、处理智能化开发工具,使用户可以根据需要开发出合适的工作流和商务智能构件。 ● 基于消息的代理骨干,其基于API的适配器以及包装程序完全能适应在不改变已有应用的基础上适应业务逻辑和组织机构的变化。 一个典型的、基于发布/订阅和点到点模式的多引擎消息代理结构如下图所示:图1 多引擎的消息代理体系结构 该消息代理体系结构分通信、存储、消息引擎和控制逻辑四层。最底层是通信层,支持的接口通信协议包括HTTP,FTP,SMTP,TCP/IP等,适配器/包装程序负责将通过上述协议获得的包含应用数据的消息在各种格式间进行转换,完成应用与代理的通信。 通信层的上层是存储层,该层负责应用的注册以及日志记录。对于从通信层获得的消息,通过匹配控制逻辑层创建和存储的商务策略来决定是否需要事务处理,对于需要长事务处理的消息可以存储在数据库中,反之则存储在消息队列中供消息引擎实时处理。 存储层的上层是消息引擎层,该层有两个核心功能:消息的映射转换和消息的路由。消息的映射转换负责把存储在队列或数据库中的消息通过预定义的转换程序转换成规范的XML格式,该XML格式称之为中间格式。之后再由其他转换程序转换成应用可以识别的其他格式如平面文件,EDIFACT文件等格式文件。消息路由程序接收和分发消息并基于预先定义好的消息处理流程确保转发给正确的应用。消息的路由程序通常能执行多段的路由(“基于HUB的路由”),对于一个单个的消息,可以根据消息的源、目的地、类型、格式等定义多个处理段或对象。对象可以包括消息的转换、数据的格式转换、查询数据库、记录日志和定时传送等。应用间的互通可以是一对一、一对多或多向的。 消息代理的最上层是控制逻辑层,提供基于第四代的开发语言和工具让开发者对消息的类型、消息的路由逻辑、例外处理、工作流等进行定义,并作为组件、模块或数据存储在相应库中,从而实现对数据的灵活控制。3 消息代理系统的实现3.1 消息的路由和可靠传输 消息的路由分为消息匹配和消息投递两个主要部分。 消息匹配是一种逻辑路由,它可以根据预先定义的逻辑规则,确定消息从哪里获取,发给谁,有些什么要求,而不用关心消息的获取和发送是如何实现的。消息代理用队列接收并存储生产者发送的消息,同时用数据库来存储生产者和消费者的一些控制信息。当消息经由XML规范化后,消息所包含的源目的地址、消息类型等信息保存为元素、属性或记录等元数据值。消息引擎根据这些元素和属性再查询匹配数据库中存储的注册信息来确定消息的去向。对于消息的消费者属于SP的情况,路由程序可以根据登记的路由表来循环递归找到消息的最终消费者或者把消息交给SP来进行进一步的分发。 消息的投递则是一种物理路由。每个应用在建立与消息代理的通信连接前都要登记自己的通信连接信息,相关参数数据将保存在数据库中。消息匹配完成后,消息引擎通过查找消息接收者的通信连接信息后,选择合理的路径,通过通信层来完成消息的投递。 消息的可靠性要求消息投递一次而且仅仅一次,消息代理在消息的处理过程中会对该消息当前处理的一个状态作一个快照,即在日志记录里保存现场,一旦消息处理失败,则可以从该现场开始继续接着处理而不必从头开始,直到消息被正确投递到正确位置。3.2 消息的映射和转换 在消息投递之前,消息引擎要检查消息的接收者所能够接收的消息格式,如果当前消息格式不能匹配接收的格式,那么消息代理要对消息进行相关的映射和转换。 消息的映射和转换模块就是负责这种转换。消息的生产者提供的消息具有不同的格式,在经过消息引擎后将规范化成XML格式,这样有一个好处是,使消息统一化后以便于保证消息的一致性和减少转换关系,还能便于利用XML的技术来处理复杂的企业计算。 例如若消息接收者接收非XML格式的文档,转换模块负责根据转换程序来将XML格式转换成对应的格式。在消息代理内部会为每种消息格式定义一个数据结构,在进行转换的时候将按照此数据结构读入文档,如果文档不符合数据机构,那么将认为是非法文档,这可以用来校验文档的有效性。其中可以利用DTD和XML Schema两种方式来定义XML文档结构,这可以充分发挥XML技术的优势。3.3 消息的聚合和分拆 有一种情况,当消费者同时接收到来自几个不同的生产者或同一生产者的不同消息时,消费者并不需要几个独立的消息,消息代理提供这样一种机制,将关联的消息按照某种顺序放到队列或数据库中,然后经由某种聚合算法将这几个消息聚合成消费者可以接受的消息,再路由给消费者,其示意图共2页: 1 [2] 下一页 论文出处(作者):
上一篇:如何利用局域网恢复计算机系统(1) 下一篇:没有了