本站小编为你精心准备了企业数据通信应用分析参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
作者:徐效美 林冬梅胡喜玲单位:烟台师范学院现代教育技术教学部山东烟台
随着计算机技术的逐步普及和信息化进程的日益深入,各单位原有的各类应用系统由于彼此孤立,相互之间缺乏协调工作机制,已经远远不能满足新形式的要求.如何将这些孤立的应用系统整合在一起,为办公、数据分析、战略决策等提供更加有效、便捷的服务手段,成为目前业界一个普遍关心的问题.企业应用整合(enterpriseapplica-tionintegration,EAI)将业务流程、应用软件、硬件和各种标准联合起来,在两个或更多的企业应用系统之间实现无缝集成,使它们像一个整体一样进行业务处理和信息共享,消除信息孤岛.应用系统整合可以在原有应用系统的数据层、业务层和应用层上实现,在整合时关键要解决不同应用系统之间各类数据通信、服务请求处理、应用系统提供的业务流程接口访问方式和不同数据格式转换等主要问题.进行企业应用系统集成时,企业原有各应用系统间的通信关系可能错综复杂,在具有n个应用系统的环境下,实现它们之间的相互通信需要建立n(n-1)/2个双向消息通道.大量的消息通道势必影响通信系统性能,同时给通信系统的管理带来麻烦.本文在研究JMS消息的基础上,结合应用软件间的通信关系,设计了一种共享消息通道模型,该模型在Pub/Sub(发行/订阅)通信方式的基础上增加了各类控制信息,通过三个通道来完成不同应用系统间所有消息的Re-quest/Response(请求/应答)通信.
1JMS消息的结构
JMS消息由消息头、消息属性和消息正文三部分构成.消息头用来标识消息、设置消息优先级和消息失效时间等,包括的具体域见表1.在表1各域中,JMSMessageID,JMSDestina-tion和JMSRedelived等域的值是在消息发送后由消息发送者设置的,JMSCorrelationID,JM-SReplyTo和JMSType等域的值由发送消息的应用系统处理程序来设置,JMSDeliveryMode,JM-STimestamp,JMSExpiration和JMSPriority等域的值可以由发送消息的应用系统处理程序来设置,也可以由JMS消息发送者根据管理员设置的参数进行重载.消息属性部分用来添加除消息头外的附加信息,消息体包含有消息头JMSType指定类型的具体消息内容.
2模型设计与实现
2.1共享消息通道模型
共享消息通道是指整个消息系统不是根据消息提供者、接收者数量及消息种类来设计消息通道数量,而是根据消息传递方向设计三个消息通道,即请求消息通道、应答消息通道和废弃消息通道.请求消息通道用于传递发送者向接收者的请求消息,应答消息通道用于传递接收者向发送者的应答消息,废弃消息通道用于传递接收者不能处理的消息,共享消息模型如图1所示。共享消息通道将Pub/Sub通信方式与Re-quest/Response通信方式相结合,应考虑到如下两方面:(1)在Pub/Sub通信模式下消息接收者实质上是针对消息通道来订阅主题的,而在企业原有应用系统较多的情况下,同一消息通道中将会有很多不同类型的消息存在,而每个订阅者并不会对所有消息都有订阅请求,消息接收者要区分在消息请求通道中自己感兴趣的和对自己无用的消息.(2)在Request/Response通信方式下,应答是针对特定消息请求的应答,每一个消息发送者要区分应答消息是否是针对自己请求的应答.
为解决上述两方面问题,在图1的基础上设置两个控制表:一个是消息发送控制表(表2,注意发送消息ID的前3位与产生该消息的应用系统ID相同),该表定义并控制每个应用系统发送的消息类型.例如,ID为001的应用系统能发送的消息类型编码为00101和00102.另一个表是消息接收控制表(表3),该表定义并控制每个应用系统所能接收并处理的消息.例如,ID为001的应用系统能够处理编号为002的应用系统发送的编码为00201的消息和ID为003的应用系统发送的编码为00301的消息.系统为每个应用系统指定一个全局的ID.
2.2发送消息处理
同一个消息可能被不同的应用系统处理,为使接收者能够区分不同消息,在发送消息时发送者在消息头加入发送消息的ID,考虑到消息头中的不同域、每个域的作用及可操作的限制,可将发送的消息ID加入消息头的JMSReplyTo属性域(该域最初设计的目的是规定应答消息放入的队列,而在共享消息通道中所有应答消息都放于应答消息通道,不用再进行定义),可以通过如下操作将发送的消息ID放入该域中.
2.3接收消息处理
所有接收应用系统的消息处理程序通过MessageListener接口侦听请求消息通道,当请求消息通道中有消息到达时将激活所有应用系统消息处理程序中的onMessage()方法,在onMessage()方法中对接收到消息的消息头和消息体进行处理,处理程序通过getJMSReplyTo()方法获得发送者ID和消息种类ID.处理过程如图2所示.
2.4应答消息处理
所有应答信息使用同一消息通道,为区分对不同消息的应答,消息处理EJB在处理完接收到的消息后,根据JMSReplyTo属性域信息设置setJMSCorrelationID属性域,将该域值设置为接收到消息的JMSReplyTo值与接收应用系统ID,设置过程如下.发送应用系统消息处理程序接收到该应答信息后,通过getJMSCorrelationID()方法得知是哪个应用系统针对自己所发送的哪个消息的应答(此处发送者仍然要象接收者那样判断应答信息是否是它所能处理的应答).
3共享消息通道应用
应用系统整合是在数据层、业务层或应用层对原有的各类应用系统的数据加工、业务重组和软件互通.各类应用系统通过各种技术对外提供各类远程和本地接口,通过接口实现对本地业务逻辑和数据库系统等的访问.
在对图3共享消息系统应用时,应用的关键部分是各应用系统与消息系统之间的适配器,连接每个应用系统的适配器应完成如下功能:(1)判别各类消息通道中的各类消息,接收其他应用系统发给本地应用系统的消息或数据.(2)负责数据格式的转换.不同的应用系统具有不同的数据处理格式,可以通过适配器将接收来的数据转换为本地应用系统能处理的数据格式.(3)通过RMI,JDBC,SOAP,EJB等实现对本地业务逻辑或数据库系统的访问.(4)完成消息应答和应答消息处理.
4结论
企业应用系统整合是一项极其复杂而艰巨的系统工程,如何解决各个应用系统间的通信是整合的关键之一.通过相互通信机制消除信息孤岛,进而实现业务流程重组,为数据的综合应用、分析决策提供有效的手段.本文所设计的共享消息通道通信模式的特点是,通道数量少,占用系统资源低,维护简单方便,是解决应用系统通信问题的一种有效尝试.