本文给出了用中间件技术整合分离的业务系统的方法,给出了利用消息中间件完成数据转换、数据传输、数据平衡等关键技术的具体实现方法,是解决目前大量存在的系统整合问题的理想方案。
1 系统总体框架
按照中央及部领导的要求,为强化政府监管职能、整顿规范建筑市场,提高政府宏观调控的科学性,国家建设部决定建立全国建筑市场监督管理信息系统。由于建筑市场各环节的监管工作由行政上相对独立的管理机构承担,因此,原有的建筑市场各业务管理系统采取的独立开发系统,没有形成完整、统一、具有宏观监管调控功能的信息共享的数据交换。各地、各部门采用的系统平台、数据库平台及数据库结构各不相同,无法实现跨地域、跨部门的信息共享。因此系统设计确定利用中间件应用服务器技术,在保证原有业务系统正常运行的基础上搭建系统整合平台,并将分离的业务数据归集到数据中心,并在此基础上搭建建筑市场监管系统,同时将必要的信息通过公众信息发布平台(网站)向社会公布。
各业务数据通过中间件实现数据的整合和传输过程。其中传输平台采用Apusic iMTS消息中间件。该中间件采用了Java技术,实现大批量、安全的数据传输。并采用Apusic应用服务器所提供的负载均衡技术组建监管信息系统的服务器集群,保障监管信息系统的容错性和可靠性,在数据中心运行该平台的服务器端程序,24h监控来自各业务系统的待整合数据,各业务系统端运行整合平台的客户端程序,负责从业务系统中抽取符合监管系统数据规范的业务数据,整合平台的服务器端程序根据可配置的规则对待整合数据进行分析、验证和处理,将其装载到数据中心的数据库中。客户端程序抽取得到的业务数据都封装为XML格式的数据流,再由整合平台客户端程序调用数据传输平台中的中间件功能进行上传。
2 数据传输技术
在网络上进行数据传输,一般来说,首先应该考虑其传输方式的有效性。如考虑如图1所示的一种场景。 (图片) 图1中节点A和节点B之间进行数据传输,中间有防火墙隔离。大多数的防火墙禁止了直接的T C P/IP端口的访问,这就意味着采用TCP/IP方式进行的数据传输将无法在节点A和节点B之间进行。而与此同时,大多数的防火墙都开放了http端口80,这就意味着,通过HTTP协议进行的数据传输无需考虑漫长网络路途中无数的防火墙。这种情形下,J2EE应用服务器,如Apusic应用服务器提供了一种供客户端Java程序进行访问的httpTunnel的技术。客户端程序只要简单地调用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 结语
全国建筑市场监督管理信息系统构建时在数据传输平台中使用中间件技术,这对于解决已有老系统的整合、打破信息孤岛使资源得以最大限度的共享是非常好的解决方案。由于目前存在大量的系统整合需求,因此,本系统使用的解决方案是较好的案例。
参考文献
[1] Richard MonsonHaefelEnterprise Java beans O′Reilly & associates 2001
[2]DrAndreas Vogel,The inprise application server building enterprise applicati ons for the net with EJB, CORBA, and XMLInprise Corporation,1999
[3] Sun Microsystems Inc.Enterprise Java beans specification,V1.1Sun Mi crosystems Inc,1999.12.17.
[4] Distributed application development for threetier architectures: microso ft on windows DNAIEEE Internet Computing, Vol. 2, No. 2, March/April 1998.
4/26/2005
|