多层混合结构信息系统中间件MBCS的设计与开发

多层混合结构信息系统中间件MBCS的设计与开发
李文明
(江苏工业学院, 江苏常州 213016)


        摘 要:MBCS是一个自主开发、可以广泛应用于多层混合结构信息系统开发的中间件。服务器程序通过MBCS的API 接口,实现客户端Browser和Client与数据库服务器的数据通讯,提高了多层混合结构信息系统服务器程序的集成化和可靠性。该文就该中间件的体系结构、设计实现和应用等方面进行了介绍。
        关键词:信息系统;多层混合结构;中间件;构件
        中图分类号:TP311.52


Design of MBCS Middleware in the Information System
Based on Multi-layer Mixed Structure
Li Wen-ming
(Jiangsu Polytechnic University, Department of Materials Science and
Engineering, Changzhou 213016 China)


         Abstract: MBCS is a independently developed middleware that can be used in the development of information system based on multi-layer mixed structure. Server program realizes data communication between Browser, Client and database server through the API interface of MBCS, enhances the integration and reliability of the server program in information system based on multi-layer mixed structure. This paper introduced the system structure, design, development and its application. 
        Key words: Information system; Multi-layer structure; Middleware; Component
 
1.       概述
        随着Internet的高速发展,企业规模的不断扩大,单纯采用C/S结构或B/S结构的信息系统软件,不能满足企业的需求。随之,采用多层C/S和B/S混合结构的软件越来越多。这类软件从软件体系结构来看,虽然采用了混合结构,但从开发方法上来看,仍然采用了不同的软件设计方法,简单的将两套软件系统集成在一起。
        这种简单的集成随之带来的问题是,加大了软件开发和维护的工作量;软件的重用性和可维护性都较差。基于这种混合结构软件开发的问题,可以设想,在服务器端建立统一的软件来接收来自Browser端和Client端的请求,再分别向Browser端发送HTML数据流,向Client端发送自定义的标准报文。
        在软件开发过程中为了减少重复劳动,人们提出了软件复用的思想。可复用单元不仅提高了软件的生产效率,更增加了软件系统的可靠性。它是提高软件开发效率和保证软件产品质量的一条行之有效的途径[1]。虽然软件复用的思想已日趋完善与成熟,软件复用的方法却没有在软件生产中被广泛地实践,一个主要原因是由于缺少足够适用的复用构件库可以利用。
        为了增强软件的可重用性,可以将数据通讯和消息处理的控制逻辑与具体进行事务处理的业务逻辑分离开来,设计成可重复使用的中间件MBCS,MBCS实现数据通讯和消息处理的控制逻辑,而将事务处理的业务逻辑交给各种具体的信息系统软件,通过二次开发来完成最终的信息系统软件[2]。
        该中间件MBCS是处于操作系统与信息系统软件之间的独立的API程序,它能使应用成分之间进行跨网络的协同工作,能够屏蔽异构数据库和网络协议的差异提供通信服务,能够满足多层混合体系结构软件开发的需要,是一种具有良好的通信能力和可扩展性的分布式软件系统。
 
2.       MBCS的体系结构
        B/S结构的信息系统软件通常在Web服务器的基础上,通过服务端的脚本,或者中间件技术,如CGI、Web API、JDBC、CORBA等进行开发。二层C/S结构的信息系统软件在大型数据库服务中也可以通过标准的SQL语句,实现Internet范围内的数据通讯,但这种访问方式效率和可靠性都较差。因此,基于广域网的C/S结构的信息系统软件一般都采用了多层C/S结构。
        本文中介绍的中间件的构建,旨在解决多层混合结构信息系统软件的体系结构的有机集成。服务器端通过一个集成的服务器软件,处理来自Browser和Client的请求,并分别向Browser端传送标准的HTML数据流,向Client端传送自定义的标准报文。在该体系结构的系统中,Web服务由MBCS中的Web_Component组件完成,客户端Browser和Client通过集成的服务器端软件,实现了与数据库系统的数据通讯[3]。整个系统的体系结构如图1所示:
        为了增强软件的可重用性,将实现数据通讯和消息处理的控制逻辑,做成可重复使用的中间件,这个中间件被编译成了一个DLL的动态链接库文件[4],服务器端应用程序通过调用这个中间件来最终完成信息系统中间层的构建。

        MBCS主要实现了两个主要功能:
        ①     实现了Client与数据库之间的数据通讯
        中间件按照Client的请求,通过标准SQL语句对后台数据库进行操作,并将结果通过报文发送到客户端。处理流程如所示:

        ②     实现了Browser与数据库之间的数据通讯
        中间件包含了类似于Web服务器的功能,将Browser端传送来的HTTP请求,转换成标准SQL语句,从后台数据库完成操作后,将操作结果转换成标准HTML文档,再传送到客户端。处理流程如图3所示:

        3.       MBCS的设计与实现
        3.1命令格式
        该中间件的命令,其一般形式[5]为:<Object>.<Command>.<Option> [arg0[,arg1……]],其中, <Object>.<Command>.<Option>构成命令的头部分, [arg0[,arg1……]]构成命令参数。在命令头中, <Object>指响应查询、接收操作或发出应答的组件对象;<Command> 指对象方法,完成查询、操作和应答的功能;<Option>是用户自定义的操作标识。用户可以按照规定的命令格式自行定义各种功能。
 
        3.2报文格式
        Browser与中间件之间进行通讯的报文格式,是标准的HTML数据流;Client与中间件之间进行通讯的报文格式,是自定义的标准报文,报文由报头和数据两部分组成。报文头包含如下信息:序列号、报文类型、源地址和目标地址组成。报文格式如图4所示:
图4:报文格式
Fig4: Message structure
 


        序列号 报文类型 源地址 目标地址 数据长度 数据类型 数据 校验码 
 
 
        3.3 MBCS中间件消息处理流程
        MBCS middleware侦听HTTP和Socket请求,分别交给Web_Component和TCP_Component构件处理,并通过Data_Connect_Component与异构数据库通讯,整个信息处理过程如图5所示。

        3.4 全局状态的维护
MBCM中间件维护所有客户端记录和数据库服务器之间的通讯,并据此实现消息的寻址和传输。系统综合多种策略来维护全局状态的正确性[6]:首先,客户端创建和销毁时会通过系统命令显式向服务器报告;其次,中间件监听客户端的进程句柄,当检测到客户端隐式退出后向服务器报告;第三,中间件还监听与数据库服务器之间的连接,当检测到连接断开后将与再次尝试与之连接,并将此信息发送至客户端;第四,由于客户连接中间件意外断开后,中间件并不能很快地检测出,因此中间件通过周期性的向客户端发送测试报文来加快连接断开的检测过程,为了防止占用太多资源,中间件单位时间内发送的测试报文总数保持不变。
 
        4.       MBCS在信息系统软件开发中的应用
多层混合结构MBCS中间件在开发“安庆石化企业检维修系统”、“扬子石化全寿命周期设备管理系统”、“中国化工学会涂料与涂装专业委员会客户关系管理系统”等信息系统软件过程中多次重复使用,表现了良好的特性,主要表现在:①可复用性好;②可维护性好;③安全性好;④灵活性好;⑤降低了开发成本。它是提高软件开发生产率和保证软件产品质量的一条行之有效的途径,在其它采用多层混合结构的信息系统开发中有一定的推广价值。
 
参考文献
[1]Bialek R,Jul E. A framework for evolutionary, dynamically updatable,component-based systems[C] ∥ Proceedings of the 24th International Conference on Distributed Computing Systems Workshops. Washington : IEEE Computer Society,2004: 326-331.
[2]黄刘生等.一种可动态更新的高可用中间件框架[J]. 华中科技大学学报,2006,34(10):44-47
[3]曹东刚等.在中间件中支持用户自定义连接子[J]. 软件学报.2005,16(08):1378-1384
[4]黄罡等.基于软件体系结构的反射式中间件研究[J]. 软件学报.2003,14(11):1819-1824
[5]Wang QX,Chen F,Mei H,Yang FQ. Using application server to support online evolution. In: Proceedings of the IEEE International Conference on Software Maintenance (ICSM 2002). IEEE Computer Society,2002. 131~140
[6]孙丽君.中间件消息队列的建模与实现[J]. 空军工程大学学报(自然科学版).2003,22(4):92-93

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值