基于中间件技术的圈存系统的设计与实现概要.docx
- 文档编号:11519352
- 上传时间:2023-03-02
- 格式:DOCX
- 页数:9
- 大小:171.37KB
基于中间件技术的圈存系统的设计与实现概要.docx
《基于中间件技术的圈存系统的设计与实现概要.docx》由会员分享,可在线阅读,更多相关《基于中间件技术的圈存系统的设计与实现概要.docx(9页珍藏版)》请在冰豆网上搜索。
基于中间件技术的圈存系统的设计与实现概要
文章编号:
10062475(200505003404
收稿日期:
20040816作者简介:
尹亮(1972,男,湖南长沙人,工程师,国防科学技术大学计算机学院硕士研究生,研究方向:
软件工程。
基于中间件技术的圈存系统的设计与实现
尹亮
(国防科学技术大学计算机学院,湖南长沙410073
摘要:
首先介绍了一卡通应用开发的现状与新的任务,引出了中间件技术对软件工业推动的必要性。
接着提出了一个校园一卡通圈存子系统的设计与实现,并使用UML方法进行分析与建模。
最后,对该子系统进一步由实用软件向中间件扩展提供了一个新的思路。
关键词:
中间件;圈存;UML类图;校园一卡通管理系统中图分类号:
TP311.5文献标识码:
A
DesignandImplementationofICCardTransferenceSystem
BetweenCampusandBankBasedonMiddleware
YINLiang
(SchoolofComputerScience,NationalUniversityofDefenceTechnology,Changsha410073,China
Abstract:
ThisarticlefirstintroducesactualityandnewtasksofoneICcard,multipleuseapplication,andthenecessityofthemiddleware!
simpulsetosoftwareindustryisalsobroughtforward.ThenthedesignandimplementationofICcardtransferencesubsystembetweencampusandbankisprovided,UMLmethodisusedduringanalyzingandmodeling.Attheend,anewideaforthesubsystem!
sextendingtomiddlewareisgiven.
Keywords:
middleware;transference;UMLclassdiagram;managementsystemofoneICcardmultipleuseincampus
1应用背景介绍
1.一卡通应用。
在大多数工业化国家中,IC卡已经成为生活中必不可少的一部分。
中国作为最大的发展中国家,为追赶并融入全球信息化潮流,正大力推进信息化建设。
以金卡工程为代表的金融电子信息化始终是这股潮流中最活跃的部分。
由于IC卡具有较磁卡更可靠的安全性能与巨大的商业价值,各行业开始大批量发卡。
随着金卡工程的开展,各行业自成系统,互不通用(包括卡和读写器,于是一卡多用,一卡通用提到日程上来,国家各有关部门已开始工作,进行不同部门、不同行业的合作和利益分配,并进行协调与管理。
2.中间件技术介绍。
目前,中间件的概念还没有严格的定义,一般普
遍接受的是IDC的表述:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算机资源和网络通信。
中间件可按不同视角分类,一种有代表性的分类方法为[1]:
(1数据访问中间件(DataAccessMiddleware;(2远程过程调用中间件(RPC;(3面向消息中间件(MOM;
(4面向对象的中间件(ObjectOrientedMiddleware;
(5事务处理中间件(TPM;(6网络中间件;
(7终端仿真/屏幕转换中间件;3.现状与任务。
现在已有IC卡系统集成商开始建设局部的一卡通系统,如公交一卡通,校园一卡通等。
一卡通应用
计算机与现代化
2005年第5期
JISUANJIYUXIANDAIHUA
总第117期
软件系统所面临的挑战是:
系统开发速度跟不上用户需求变化的速度,交付时间一拖再拖,费用越滚越大[2]。
面临的新的任务是如何针对不同的用户,不同的任务需求,快速开发适用于用户需求的应用系统。
如何用先进的工具进行分析、建模,如何提高软件复用率。
要面对挑战完成新的任务,关键在于要建设好软件开发的基础设施,这需要长期艰苦的努力。
中间件就是基础设施之一。
本文在完成校园一卡通圈存子系统基本功能的基础上对形成专用中间件这一问题进行初步探讨。
2系统设计与实现
1.系统结构。
银校一卡通中的IC卡,可以实现食堂售饭、图书借阅、教师与学生的身份验证、还可实现银行信用卡功能,使持卡人在校园内通过圈存机完成圈存交易、帐户查询以及卡密码修改等功能,实现校园、银行间的一卡通用。
所谓圈存是指IC卡同时具有银行帐号与IC卡帐号,将银行帐号上的钱划到IC卡帐号上和IC卡上。
根据银行惯例,银行的主机系统处理的是银行自身的核心业务(如存、取款等,而银行与外部系统通信,是通过银行前置机进行的。
例如,银行可以同电力企业进行数据交换[3]。
而用于校园的圈存系统,较其他行业与银行间的数据通信,有其鲜明的特点。
圈存机终端是以无人职守的方式放在校园内的,而一般大专院校的学生好奇心很强,这使得圈存系统的安全性、可靠性比其他有人职守的如POS终端要求更高。
我们分析了圈存子系统的应用需求和边界系统的情况,设计了如图1
所示的物理结构。
图1中,银行提供了银行前置机的收发数据标准
与银行前置机的实现,我们的工作是要完成学校方与银行方交易数据的传输与交易的处理。
圈存机与圈存前置机之间采用的是ISO8583报文格式进行通讯。
ISO8583是国际标准化组织(ISO为实现银行卡处理系统间交换金融信息而制定的一个标准界面,它规定了信息结构、格式和内容,以保证在不同应用规范的系统间能够进行报文交换[4]。
根据安全性与可靠性的要求,圈存前置机与银行前置机采用专线连接,以TCP/IP协议族为基本通信协议进行数据交换。
校园一卡通其他子系统应用软件采用了典型的三层C/S、B/S结构设计。
圈存子系统从学校方看也是三层C/S结构。
圈存前置机充当了中间件服务器的作用。
在应用软件的架构设计中,三层结构是两层结构的自然发展,有以下优点:
(1三层结构中,由于将复杂的应用逻辑与用户界面分离,使得客户端的负担大大减轻。
(2作为中间件服务器的圈存前置机,只需增加相应的组件就能够增加对不同平台与数据库的访问和更多其他功能,可扩展性大大增强。
(3作为中间件服务器的圈存前置机同时也是校园网与外部网之间的防火墙,它具有双网卡结构。
在校园的内部网中,它作为圈存机的服务器;在指定端口侦听并等待圈存机的联结。
在校园与银行之间的外部网中,它作为客户机去主动联接银行前置机。
这样,就隔离了
外部网对校园内部主机的访问,安全性大大提高。
35
2005年第5期尹亮:
基于中间件技术的圈存系统的设计与实现
2.交易流程。
我们以圈存子系统中最典型的圈存交易为例,介绍圈存子系统的通信流程,见图2。
实际上,所有的交易请求都是从圈存机发起,最终由圈存机处理完成交易而结束。
由物理结构与交易流程,我们综合考虑了工程实施的进度、效率等方面的因素,选用了广泛使用的Windows平台Windows2000Server,在WindowsSockets
基础上,以VC++6.0作为开发工具,针对圈存前置机进行程序开发。
WindowsSockets规范是以U.C.Berkeley大学BSDUnix中流行的Socket接口为范例定义的一套MicrosoftWindows下的网络编程接口。
它不仅包含了BerkeleySocket风格的库函数,也包含了一组针对Windows的库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。
WindowsSockets同时支持TCP/IP协议族中的用户数据报协议(UDP和传输控制协议(TCP。
UDP并不能保证数据的可靠传输,可能会存在数据丢失和次序错误;TCP提供了无差错的数据传输,满足学校银行间数据传输安全性的要求,因此选用TCP,体现在程序中如下所示:
//创建侦听SOCKET
if(!
m_winsocket[i].Create(LOCAL_IP_PORT[0],SOCK_STREAM,LOCAL_IP
{
m_list_message.AddString(∀创建侦听SOCKET失败∀;
m_list_message.SetCurSel(m_list_message.GetCount(-1;
returnfalse;
}
这是一段创建侦听Socket的程序,m_winsocket[i]是WinSocket类的数组变量(有关WinSocket类,后面有更详细的解释,Create的第一个参数是要被使用的端口号,第二个参数可选,SOCK_STREAM表示:
提供连续的、可靠的、基于连接的字节流,使用TCP协议;SOCK_DGRAM表示:
支持无连接的数据包,使用UDP协议。
此处,选的是SOCK_STREAM。
第三个参数指向用带点数字表示的网络地址。
3.建模、设计与实现。
由于使用了VC++6.0这种面向对象的程序设计工具,以及考虑到应用程序向中间件的扩展。
我们使用了RationalRose进行建模与设计,在对VC++6.0
所带的MFC类库进行研究、学习后,得到如图3所示的设计类图。
WindowsSocketAPI是TCP/IP编程中最低级的WindowsAPI,为了简化编程,微软公司在VC++6.0的MFC库中对SocketAPI进行封装,形成了CasyncSocket和Csocket类。
Csocket类较CasyncSocket类又多一层封装,使用也更简单,我们设计了三个类,WinSocket,WinBankSocket,WinRecvSocket,选择了Csocket类作为网络通信相关类的基类。
图3中,WinSocket用于在圈存前置机创建侦听,WinRecvSocket用于圈存前置机与圈存机进行交互(包括接收圈存机的交易请求,向圈存机发回复信息等,WinBankSocket用于圈存前置机与银行前置机进行交互(包括圈存前置机向银行前置机发交易请求和接收银行回复交易信息等。
首先,WinSocket实例根据配置信息在指定的地址创建套接字并开始侦听,一旦收到圈存机的联接请求,就产生一个可用的WinRecvSocket和一个可用的WinBankSocket。
WinRecvSocket将在不同于主线程即侦听线程的新线程内工作,如接收、分析圈存机发送过来的数据,组织并发送数据给圈存机等工作。
WinBankSocket同样是在另一个新线程内工作,完成对银行数据的收发。
另一个与交易安全相关的是数据库类图,因为整个交易过程必须要进行帐号识别、设备ID验证、日志记录、交易记录等数据库操作。
这中间包括了圈存交易所涉及的数据库表。
如CLogsetJYLSJL指交易类型记录表,CLogsetJSXX指教师信息表,CLogsetZHXX是指帐户信
36计算机与现代化2005年第5期
息表等。
图3是子系统的骨干类图,是对目前工程功能的抽象,实际应用程序还需要考虑如多线程的特性、加解密、异常处理等细节问题。
该子系统的设计思想已成功应用在某大学的校园一卡通工程中。
3进一步的思考与扩展方案
圈存子系统的建设是一个不断发展和完善的过程,若要构造成专用中间件,软件系统应具有良好的开放性和可伸缩性。
要实现该目标应遵循循序渐进的原则。
大致思路包括以下几方面:
1.构造基于微软COM规范的专用中间件。
软件开发中,程序设计方法经历了以下阶段,从最初的功能分解法到结构化程序设计,再到目前已被广泛使用的面向对象程序设计方法,再到已逐渐流行的基于组件的开发方法。
基于组件技术的软件开发已逐渐成为软件工业快速发展并形成规模的趋势。
面向对象技术,相对于以前的开发方法,在软件复用方面是一个巨大的进步,其局限性在于,软件复用级别是源代码级的,而软件组件是在二进制级别进行软件复用。
Microsoft公司提出了它的COM,COM+组件规范,在此,笔者将概述COM组件规范及其在实现圈存中间件系统中的大致思路。
在COM标准中,一个组件程序也被称为一个模块,它可以是一个动态连接库(缩写为DLL,被称作进程内组件(inprocesscomponent;也可以是一个可执行程序(即EXE程序,被称作进程外组件(outofprocesscomponent。
COM标准的核心概念是对象和接口,客户请求服务时,只能通过接口进行。
接口只定义对象的成员函数,并不进行实现。
每一个接口都由一个128位的全局唯一标识符(GUID,GloballyUniqueIdentifer来标识。
客户通过GUID获得接口的指针,再通过接口指针,客户就可以调用其相应的成员函数。
思路是,首先在圈存前置机上用VC编写一个带有初始界面的由用户启动的客户程序,用于侦听。
再编写数据库联接对象、数据库操作对象、通信对象。
所有对象均由客户程序实例化并调用接口方法。
通信对象作为与银行交互的接口,为适应多种通信协议,它将成为设计、编写难度最大的对象。
开发步骤可以采取先实现TCP/IP协议的通信,再实现其他方式如SNA方式的通信。
2.构造跨平台的基于消息中间件的系统。
近几年,随着Sun公司推出的Java语言的不断发展,它在企业中的应用逐渐成熟,Java语言的平台无关性为我们构造跨平台的中间件奠定了基础。
我们可以设计一个更加基础的中间件系统,例如可以建立一个面向消息的中间件系统(MOM。
当然,它涉及到银行与各个行业的信息交换问题,是一个更大范围的应用集成问题,在此仅作为一个初步思路。
4结束语
当前,IC卡应用正呈现快速发展的趋势,例如,我国的第二代居民身份证项目已逐步展开。
第二代身份证项目被称为全球最大的电子身份证项目,它的实施可以创造非常可观的经济、社会效益。
同时,中间件技术将成为软件工业发展的重点。
对中间件技术的研究与应用,将为大规模IC卡软件系统应用提供技术准备。
参考文献:
[1]周园春,李淼,张建,等.中间件技术综述[J].计算机工
程与应用,2002(15:
80~81.
[2]高丽华.软件进入PC时代[N].计算机世界,200403
22(A24A26.
[3]唐琳.银电联网实时收费系统的设计与实现[J].计算机
应用,2003(9:
121~123.
[4]金新民,朱学峰.银行卡POS交换系统的设计与实现
[J].华南理工大学学报(自然科学版,1999(8:
108.[5][美]DavidJKruglinski,ScotWingo,GeorgeShepherd.Pro
grammingVisualC++6.0技术内幕(第5版[M].希望图书创作室译.北京:
北京希望电脑公司,1999.
[6]王爱英.智能卡技术:
IC卡(第2版[M].北京:
清华大
学出版社,2000.
[7]潘爱民.COM原理与应用[M].北京:
清华大学出版社,
1999.
[8]蒋东兴,林鄂华,陈棋德,等.WindowsSockets网络程序
设计大全[M].北京:
清华大学出版社,1999.
[9][美]塔波亚.COM+编程[M].冯延晖,等译.北京:
中国
电力出版社,2002.
[10]Microsoft公司.MicrosoftVisualC++6.0MFC类库参考
手册(二(上[M].北京:
北京希望电脑公司,1999.
37
2005年第5期尹亮:
基于中间件技术的圈存系统的设计与实现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 中间件 技术 系统 设计 实现 概要
![提示](https://static.bdocx.com/images/bang_tan.gif)