• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

基于消息中间件的数据传输技术

发布: 2008-2-20 15:13 | 作者: 邱岩 王卫兵 | 来源: 不详 | 查看: 55次 | 进入软件测试论坛讨论

领测软件测试网 摘要:给出了用中间件技术整合分离的业务系统的方法,给出了利用消息中间件完成数据转换、数据传输、数据平衡等关键技术的具体实现方法,是解决目前大量存在的系统整合问题的理想方案。

  1系统总体框架

  按照中央及部领导的要求,为强化政府监管职能、整顿规范建筑市场,提高政府宏观调控 的科学性,国家建设部决定建立全国建筑市场监督管理信息系统。由于建筑市场各环节的监管工作由行政上相对独立的管理机构承担,因此,原有的建筑市场各业务管理系统采取的独立开发系统,没有形成完整、统一、具有宏观监管调控功能的信息共享的数据交换。各地、各部门采用的系统平台数据库平台及数据库结构各不相同,无法实现跨地域、跨部门的信息共享。因此系统设计确定利用中间件应用服务器技术,在保证原有业务系统正常运行的基础上搭建系统整合平台,并将分离的业务数据归集到数据中心,并在此基础上搭建建筑市场监管系统,同时将必要的信息通过公众信息发布平台(网站)向社会公布。

  各业务数据通过中间件实现数据的整合和传输过程。其中传输平台采用Apusic iMTS消息 中间件。该中间件采用了Java技术,实现大批量、安全的数据传输。并采用Apusic应用服务器所提供的负载均衡技术组建监管信息系统的服务器集群,保障监管信息系统的容错性和可靠性,在数据中心运行该平台的服务器端程序,24 h监控来自各业务系统的待整合数据,各业务系统端运行整合平台的客户端程序,负责从业务系统中抽取符合监管系统数据规范的业务数据,整合平台的服务器端程序根据可配置的规则对待整合数据进行分析、验证和处理,将其装载到数据中心的数据库中。客户端程序抽取得到的业务数据都封装为XML格式的数据流,再由整合平台客户端程序调用数据传输平台中的中间件功能进行上传。

  2数据传输技术

  在网络上进行数据传输,一般来说,首先应该考虑其传输方式的有效性。如考虑如图1所示的 一种场景。

  图1中节点A和节点B之间进行数据传输,中间有防火墙隔离。大多数的防火墙禁止了直接的T C P/IP端口的访问,这就意味着采用TCP/IP方式进行的数据传输将无法在节点A和节点B之间进 行。而与此同时,大多数的防火墙都开放了http端口80,这就意味着,通过HTTP协议进行的数据传输无需考虑漫长网络路途中无数的防火墙。这种情形下,J2EE应用服务器,如Apusic应用服务器提供了一种供客户端Java程序进行访问的http Tunnel的技术。客户端程序只要简单地调用Java API中的URLConnection对象就可以向服务端发送数据。

  抛开防火墙,采用一些专业的数据传输组件,如金蝶中间件的Apusic iMTS,亦可实现良好的数据传输能力。

  Apusic iMTS的数据传输过程如图2所示


Apusic iMTS的应用场景如图3所示

  数据传输技术中,还有一种可能的方法是采用JMS技术进行传输。JMS是Java的消息服务,一般的J2EE应用服务器都提供了JMS服务。JMS提供了基于主题和队列的两种消息传送方式。基于主题的消息传送指的是多个客户端预定某个主题的消息,然后大致实现点到多点的消息/数据传送,每个客户端都可得到该主题的消息。基于队列的消息传送即服务器以队列的方式发送消息,某一客户端获得该消息时该消息即从该队列中移除。一些应用服务器提供了所谓增强的JMS消息能力,如IBM的消息中间件,大致的原理和功能应用范围与此类似。可以看出,采用基于JMS的数据传输技术,除了较难绕过防火墙外,受限于传输的数据类型(简单的Java对象)和效率等,并不适合用于数据库间的数据复制/整合传输。

  3数据平衡技术

  所谓数据平衡技术是指数据在2个数据库间的同步。如图4所示。

  图4中数据库A为主数据库,数据库B为分数据库。业务数据b主要通过业务系统录入到分数 据库B中,但因为一些特定的原因,业务数据b也可以通过业务系统录入到数据库A中。数据库B中的业务数据b定期更新到数据库A中,与此同时,也应将数据库A上业务系统录入的业务数据b更新到数据库B中。

  很显然,这种数据平衡过程需要着重考虑数据长度不一致问题、主键问题及数据结构不一 致问题等。

  主键问题主要产生在采用递增数字为主键的场合,如在Oracle中用sequence为主键值。由 于数据库主键的约束,这时不管A至B,还是B至A,数据更新都不会完全成功。怎么办?修改数据库A上表的主键,将其改为UUID形式的字符,同时在A上建立映射表,将A上的表的主键与B上表的主键一一对应。

  在数据结构不一致的情况下,应将数据库A中的结构设为最简,并在数据库B中数据合并至 A时用规定的分隔符进行组合。显然,在A上的业务系统应该将结构展示为B上的数据结构,其他跟A上数据表相关的业务系统应该考虑到这种特殊处理场景。

4结语

  全国建筑市场监督管理信息系统构建时在数据传输平台中使用中间件技术,这对于解决已 有老系统的整合、打破信息孤岛使资源得以最大限度的共享是非常好的解决方案。由于目前存在大量的系统整合需求,因此,本系统使用的解决方案是较好的案例。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 中间件


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网