基于中间件技术的圈存系统的设计与实现_第1页
基于中间件技术的圈存系统的设计与实现_第2页
基于中间件技术的圈存系统的设计与实现_第3页
基于中间件技术的圈存系统的设计与实现_第4页
基于中间件技术的圈存系统的设计与实现_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文章编号:1006 2475(200505 0034 04收稿日期:2004 08 16作者简介:尹亮(1972 ,男,湖南长沙人,工程师,国防科学技术大学计算机学院硕士研究生,研究方向:软件工程。基于中间件技术的圈存系统的设计与实现尹 亮(国防科学技术大学计算机学院,湖南长沙 410073摘要:首先介绍了一卡通应用开发的现状与新的任务,引出了中间件技术对软件工业推动的必要性。接着提出了一个校园一卡通圈存子系统的设计与实现,并使用UML 方法进行分析与建模。最后,对该子系统进一步由实用软件向中间件扩展提供了一个新的思路。关键词:中间件;圈存;UML 类图;校园一卡通管理系统中图分类号:TP31

2、1.5 文献标识码:ADesign and Implementation of IC C ard Transference SystemBetween Campus and Bank Based on MiddlewareYI N Liang(School of Computer Science,Nati onal Universi ty of Defence Technology,Changsha 410073,ChinaAbstract:T his article first introduces actuality and new tasks of one IC card,multipl

3、e use application,and the necessity of the middle ware !s i mpulse to software industry is also brought forward.Then the design and implementation of IC card transference subsystem be tween campus and bank is provided,UML method is used during analyzi ng and modeling.At the end,a new idea for the su

4、bsystem !s ex tending to middleware is given.Key words:middleware;transference;UML class diagram;management system of one IC card multiple use in campus1 应用背景介绍1.一卡通应用。在大多数工业化国家中,IC 卡已经成为生活中必不可少的一部分。中国作为最大的发展中国家,为追赶并融入全球信息化潮流,正大力推进信息化建设。以 金卡工程 为代表的金融电子信息化始终是这股潮流中最活跃的部分。由于IC 卡具有较磁卡更可靠的安全性能与巨大的商业价值,各行

5、业开始大批量发卡。随着 金卡工程 的开展,各行业自成系统,互不通用(包括卡和读写器,于是 一卡多用 , 一卡通用 提到日程上来,国家各有关部门已开始工作,进行不同部门、不同行业的合作和利益分配,并进行协调与管理。2.中间件技术介绍。目前,中间件的概念还没有严格的定义,一般普遍接受的是IDC 的表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算机资源和网络通信。中间件可按不同视角分类,一种有代表性的分类方法为1:(1数据访问中间件(Data Access Middle ware;(2远程过程调用中间件(R

6、PC;(3面向消息中间件(MOM;(4面向对象的中间件(Object Oriented Middle ware;(5事务处理中间件(TPM;(6网络中间件;(7终端仿真/屏幕转换中间件;3.现状与任务。现在已有IC 卡系统集成商开始建设局部的一卡通系统,如公交一卡通,校园一卡通等。一卡通应用计算机与现代化2005年第5期JISUANJI YU XIANDAIHUA总第117期软件系统所面临的挑战是: 系统开发速度跟不上用户需求变化的速度,交付时间一拖再拖,费用越滚越大2 。面临的新的任务是如何针对不同的用户,不同的任务需求,快速开发适用于用户需求的应用系统。如何用先进的工具进行分析、建模,如何

7、提高软件复用率。要面对挑战完成新的任务,关键在于要建设好软件开发的基础设施,这需要长期艰苦的努力。中间件就是基础设施之一。本文在完成校园一卡通圈存子系统基本功能的基础上对形成专用中间件这一问题进行初步探讨。2 系统设计与实现1.系统结构。银校一卡通 中的IC 卡,可以实现食堂售饭、图书借阅、教师与学生的身份验证、还可实现银行信用卡功能,使持卡人在校园内通过圈存机完成圈存交易、帐户查询以及卡密码修改等功能,实现校园、银行间的一卡通用。所谓 圈存 是指IC 卡同时具有银行帐号与IC 卡帐号,将银行帐号上的钱划到IC 卡帐号上和IC 卡上。根据银行惯例,银行的主机系统处理的是银行自身的核心业务(如存

8、、取款等,而银行与外部系统通信,是通过银行前置机进行的。例如,银行可以同电力企业进行数据交换3。而用于校园的圈存系统,较其他行业与银行间的数据通信,有其鲜明的特点。圈存机终端是以无人职守的方式放在校园内的,而一般大专院校的学生好奇心很强,这使得圈存系统的安全性、可靠性比其他有人职守的如POS 终端要求更高。我们分析了圈存子系统的应用需求和边界系统的情况,设计了如图1 所示的物理结构。 图1中,银行提供了银行前置机的收发数据标准与银行前置机的实现,我们的工作是要完成学校方与银行方交易数据的传输与交易的处理。圈存机与圈存前置机之间采用的是ISO8583报文格式进行通讯。I SO 8583是国际标准

9、化组织(ISO为实现银行卡处理系统间交换金融信息而制定的一个标准界面,它规定了信息结构、格式和内容,以保证在不同应用规范的系统间能够进行报文交换4。根据安全性与可靠性的要求,圈存前置机与银行前置机采用专线连接,以TC P/IP 协议族为基本通信协议进行数据交换。校园一卡通其他子系统应用软件采用了典型的三层C/S 、B/S 结构设计。圈存子系统从学校方看也是三层C/S 结构。圈存前置机充当了中间件服务器的作用。在应用软件的架构设计中,三层结构是两层结构的自然发展,有以下优点:(1三层结构中,由于将复杂的应用逻辑与用户界面分离,使得客户端的负担大大减轻。(2作为中间件服务器的圈存前置机,只需增加相

10、应的组件就能够增加对不同平台与数据库的访问和更多其他功能,可扩展性大大增强。(3作为中间件服务器的圈存前置机同时也是校园网与外部网之间的防火墙,它具有双网卡结构。在校园的内部网中,它作为圈存机的服务器;在指定端口侦听并等待圈存机的联结。在校园与银行之间的外部网中,它作为客户机去主动联接银行前置机。这样,就隔离了外部网对校园内部主机的访问,安全性大大提高。352005年第5期尹亮:基于中间件技术的圈存系统的设计与实现2.交易流程。我们以圈存子系统中最典型的圈存交易为例,介绍圈存子系统的通信流程,见图2。实际上,所有的交易请求都是从圈存机发起,最终由圈存机处理完成交易而结束。由物理结构与交易流程,

11、我们综合考虑了工程实施的进度、效率等方面的因素,选用了广泛使用的Windows平台Windows2000Server,在Windows Sockets基础上,以VC+ 6.0作为开发工具,针对圈存前置机进行程序开发。/创建侦听SOCKE Tif(!m_winsocketi.Create(LOC AL_IP_PORT0,SOC K_ STREAM,LOCAL_IPm_list_message.AddString(创建侦听SOCKE T失败;m_list_message.SetCurSel(m_list_message.GetCount(-1;return false;这是一段创建侦听Soc ke

12、t的程序,m_winsocketi是WinSocket类的数组变量(有关WinSocket类,后面有更详细的解释,Create的第一个参数是要被使用的端口号,第二个参数可选,SOC K_STREAM表示:提供连续的、可靠的、基于连接的字节流,使用TCP协议;SOCK_DGRAM表示:支持无连接的数据包,使用UDP协议。此处,选的是SOCK_STREAM。第三个参数指向用带点数字表示的网络地址。3.建模、设计与实现。由于使用了VC+6.0这种面向对象的程序设计工具,以及考虑到应用程序向中间件的扩展。我们使用了Rational Rose进行建模与设计,在对VC+6. 0 所带的MFC类库进行研究、

13、学习后,得到如图3所示的设计类图。Windows Socket API是TCP/IP编程中最低级的Windows API,为了简化编程,微软公司在VC+6.0的MFC库中对Socket API进行封装,形成了Casync Socket和Csocket类。Csocket类较CasyncSoc ket类又多一层封装,使用也更简单,我们设计了三个类, WinSocket,WinBankSocket,WinRecvSocket,选择了Csoc ket类作为网络通信相关类的基类。图3中,WinSocket用于在圈存前置机创建侦听, WinRecvSocket用于圈存前置机与圈存机进行交互(包括接收圈存机

14、的交易请求,向圈存机发回复信息等,WinBankSocket用于圈存前置机与银行前置机进行交互(包括圈存前置机向银行前置机发交易请求和接收银行回复交易信息等。首先,WinSocket实例根据配置信息在指定的地址创建套接字并开始侦听,一旦收到圈存机的联接请求,就产生一个可用的Win RecvSocket和一个可用的WinBankSocket。WinRecv Socket将在不同于主线程即侦听线程的新线程内工作,如接收、分析圈存机发送过来的数据,组织并发送数据给圈存机等工作。WinBankSocket同样是在另一个新线程内工作,完成对银行数据的收发。另一个与交易安全相关的是数据库类图,因为整个交易

15、过程必须要进行帐号识别、设备ID验证、日志记录、交易记录等数据库操作。这中间包括了圈存交易所涉及的数据库表。如C LogsetJYLSJL指交易类型记录表, CLogsetJSXX指教师信息表,CLogsetZHXX是指帐户信36计 算 机 与 现 代 化2005年第5期息表等。图3是子系统的骨干类图,是对目前工程功能的抽象,实际应用程序还需要考虑如多线程的特性、加解密、异常处理等细节问题。该子系统的设计思想已成功应用在某大学的校园一卡通工程中。3 进一步的思考与扩展方案圈存子系统的建设是一个不断发展和完善的过程,若要构造成专用中间件,软件系统应具有良好的开放性和可伸缩性。要实现该目标应遵循循

16、序渐进的原则。大致思路包括以下几方面:1.构造基于微软COM规范的专用中间件。软件开发中,程序设计方法经历了以下阶段,从最初的功能分解法到结构化程序设计,再到目前已被广泛使用的面向对象程序设计方法,再到已逐渐流行的基于组件的开发方法。基于组件技术的软件开发已逐渐成为软件工业快速发展并形成规模的趋势。面向对象技术,相对于以前的开发方法,在软件复用方面是一个巨大的进步,其局限性在于,软件复用级别是源代码级的,而软件组件是在二进制级别进行软件复用。Microsoft公司提出了它的COM,C OM+组件规范,在此,笔者将概述C OM组件规范及其在实现圈存中间件系统中的大致思路。在COM标准中,一个组件

17、程序也被称为一个模块,它可以是一个动态连接库(缩写为DLL,被称作进程内组件(in process com ponent;也可以是一个可执行程序(即EXE程序,被称作进程外组件(out of process component。COM标准的核心概念是对象和接口,客户请求服务时,只能通过接口进行。接口只定义对象的成员函数,并不进行实现。每一个接口都由一个128位的全局唯一标识符(GUI D,Globally Unique Identifer来标识。客户通过GUID获得接口的指针,再通过接口指针,客户就可以调用其相应的成员函数。思路是,首先在圈存前置机上用VC编写一个带有初始界面的由用户启动的客户

18、程序,用于侦听。再编写数据库联接对象、数据库操作对象、通信对象。所有对象均由客户程序实例化并调用接口方法。通信对象作为与银行交互的接口,为适应多种通信协议,它将成为设计、编写难度最大的对象。开发步骤可以采取先实现TCP/IP协议的通信,再实现其他方式如SNA方式的通信。2.构造跨平台的基于消息中间件的系统。近几年,随着Sun公司推出的Java语言的不断发展,它在企业中的应用逐渐成熟,Java语言的平台无关性为我们构造跨平台的中间件奠定了基础。我们可以设计一个更加基础的中间件系统,例如可以建立一个面向消息的中间件系统(MOM。当然,它涉及到银行与各个行业的信息交换问题,是一个更大范围的应用集成问题,在此仅作为一个初步思路。4 结束语当前,IC卡应用正呈现快速发展的趋势,例如,我国的第二代居民身份证项目已逐步展开。第二代身份证项目被称为全球最大的电子身份证项目,它的实施可以创造非常可观的经济、社会效益。同时,中间件技术

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论