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

下载本文档

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

文档简介

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

2、了一个新的思路 。关键词 :中间件 ; 圈存 ; UML 类图 ; 校园一卡通管理系统 中图分类号 :TP311. 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 fir

3、st introduces actuality and new tasks of one IC card, multiple 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 use

4、d during analyzi ng and modeling. At the end, a new idea for the subsystem ! 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 卡已经成 为生活中 必不可少的一部分。中国作为最大的发展中国家 , 为 追赶并融入全球信

5、息化潮流 , 正大力推进 信息化建 设。以 金卡工程 为代表的金融电子信息化始终是 这股潮流中最活跃的部分。由于 IC 卡具有较磁卡更 可靠的安全性能与巨大的商业价值 , 各行业开始大批 量发卡。随着 金卡工程 的开展 , 各行业自成系统 , 互不通用 (包括卡和读写器 , 于是 一卡多用 , 一卡 通用 提到日程上来 , 国家各有关部门已开始工作 , 进 行不同部门、 不同行业的合作和利益分配 , 并进行协 调与管理。2. 中间件技术介绍。目前 , 中间件的概念还没有严格的定义 , 一般普遍接受的是 IDC 的表述 :中间件是一种独立的系统软 件或服务程序 , 分布式应用软件借助这种软件在不

6、同 的技术之间共享资源 , 中间件位于客户机服务器的操 作系统之上 , 管理计算机资源和网络通信。中间件可 按不同视角分类 , 一种有代表性的分类方法为 1:(1 数据访问中间件 (Data Access Middle ware ; (2 远程过程调用中间件 (RPC; (3 面向消息中间件 (MOM ;(4面向 对 象的 中间 件 (Object Oriented Middle ware ;(5 事务处理中间件 (TPM ; (6 网络中间件 ;(7 终端仿真 /屏幕转换中间件 ; 3. 现状与任务。现在已有 IC 卡系统集成商开始建设局部的一卡 通系统 , 如公交一卡通 , 校园一卡通等。

7、一卡通应用计 算 机 与 现 代 化2005年第 5期JISUANJI YU XIANDAIHUA总第 117期软件系统所面临的挑战是 : 系统开发速度跟不上用 户需求变化的速度 , 交付时间一拖再拖 , 费用越滚越 大 2 。面临的新的任务是如何针对不同的用户 , 不 同的任务需求 , 快速开发 适用于用户需求 的应用系 统。如何用先进的工具进行分析、 建模 , 如何提高软 件复用率。要面对挑战完成新的任务 , 关键在于要建 设 好软件开发的基础设施 , 这需要长期艰苦的努力。 中间件就是基础设施之一。本文在完成校园一卡通圈 存子系统基本功能的基础上对形成专用中间件这一问 题进行初步探讨。2

8、 系统设计与实现1. 系统结构。银校一卡通 中的 IC 卡 , 可以实现食堂售饭、 图 书借阅、 教师与学生的身份验证、 还可实现银行信用 卡功能 , 使持卡人在校园 内通过圈存机完 成圈存交 易、 帐户查询以及卡密码修改等功能 , 实现校园、 银行 间的一卡通用。所谓 圈存 是指 IC 卡同时具有银行 帐号与 IC 卡帐号 , 将银行帐号上的钱划到 IC 卡帐号 上和 IC 卡上。根据银行惯例 , 银行的主机系统处理 的是银行自身的核心业务 (如存、 取款等 , 而银行与 外部系统通信 , 是通过银行前置机进行的。例如 , 银 行可以同电力企业进行数据交换 3。而用于校园的 圈存系统 , 较

9、其他行业与银行间的数据通信 , 有其鲜 明的特点。圈存机终端是以无人职守的方式放在校 园内的 , 而一般大专院校的学生好奇心很强 , 这使得 圈存系统的安全性、 可靠性比其他有人职守的如 POS 终端要求更高。我们分析了圈存子系统的应用需求 和边界系统的情况 , 设计了如图 1 所示的物理结构。 与银行前置机的实现 , 我们的工作是要完成学校方与 银行方交易数据的传输与交易的处理。圈存机与圈 存前置机之间采用的是 ISO8583报文格式进行通讯。 I SO 8583是国际标准化组织 (ISO 为实现银行卡处理 系统间交换金融信息而制定的一个标准界面 , 它规定 了信息结构、 格式和内容 , 以

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

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

12、, 最终由圈存机处理完成 交易而结束。由物理结构与交易流程 , 我们综合考虑了工程实 施的进度、 效 率等方 面的 因素 , 选用 了广 泛使 用的 Windows 平台 Windows 2000Server, 在 Windows Sockets基础上 , 以 VC+6. 0作为开发工具 , 针对圈存前置 机进行程序开发。Windows Sockets 规范是以 U. C. Berkeley 大学 BSD Unix 中流行的 Socket 接口为范例定义的一套 Microsoft Windows 下的网络编程接口。它不仅包含了 Berkeley Socket 风格的库函数 , 也包含了一组针对

13、 Windo ws 的 库函数 , 以使程序员能充分地利用 Windows 消息驱动 机制进行编程。 Windows Sockets 同时支持 TCP/IP 协 议 族 中的 用户 数据报 协议 (UDP 和传 输控 制 协议 (TCP。 UDP 并不能保证数据的可靠传输 , 可能会存 在数据丢失和次序错误 ; TC P 提供了无差错的数据传 输 , 满足学校银行间数据传输安全性的要求 , 因此选 用 TCP, 体现在程序中如下所示 :/创建侦听 SOCKE Tif(! m _winsocket i .Create (LOC AL _IP _PORT 0, SOC K _ STREAM , L

14、OCAL _IP m _list _message. AddString( 创建侦听 SOCKE T 失败 ; m _list _message. SetCurSel(m _list _message. GetCount( -1 ; return false;这是一段创建侦听 Soc ket 的程序 , m _winsocketi是 WinSocket 类的数组变量 (有关 WinSocket 类 , 后面 有更详细的解释 , Create 的第 一个参数是要被使用 的端口号 , 第二个参数可选 , SOC K _STREAM 表示 :提 供连续的、 可靠的、 基于连接的字节 流 , 使用 T

15、CP 协 议 ; SOCK _DGRAM 表示 :支 持无连接 的数据包 , 使用 UDP 协议。此处 , 选的是 SOCK _STREAM 。第 三个参 数指向用带点数字表示的网络地址。3. 建模、 设计与实现。由于使用了 VC+6. 0这种面向对象的程序设 计工具 , 以及考虑到应用程序向中间件的扩展。我们 使用了 Rational Rose 进行建模与设计 , 在对 VC+6. 0 示的设计类图。Windows Socket API 是 TCP/IP 编程 中最低 级的 Windows API, 为了简化编程 , 微软公司在 VC+6. 0的 MFC 库中对 Socket API 进行封

16、装 , 形成了 Casync Socket 和 Csocket 类。 Csocket 类 较 CasyncSoc ket 类又 多一 层 封装 , 使用 也 更简 单 , 我 们设 计 了三 个 类 , WinSocket, WinBankSocket, WinRecvSocket, 选 择 了 Csoc ket 类作为网络通信相关类的基类。图 3中 , WinSocket 用于在圈存前置机创建侦听 , WinRecvSocket 用于 圈存 前置 机 与圈 存机 进 行交 互 (包括接收圈存机的交易请求 , 向圈存机发回复信息 等 , WinBankSocket 用于圈存前置机与银行前置机进

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

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

19、要构造成专用中间件 , 软件系统应具有良好的 开放性和可伸缩性。要实现该目标应遵循循序渐进 的原则。大致思路包括以下几方面 :1. 构造基于微软 COM 规范的专用中间件。 软件开发中 , 程序设计方法经历了以下阶段 , 从 最初的功能分解法到结构化程序设计 , 再到目前已被 广泛使用的面向对象程序设计方法 , 再到已逐渐流行 的基于组件的开发方法。基于组件技术的软件开发 已逐渐成为软件工业快速发 展并形成规模 的趋势。 面向对象技术 , 相对于以前的开发方法 , 在软件复用 方面是一个巨大的进步 , 其局限性在于 , 软件复用级 别是源代码级的 , 而软件组件是在二进制级别进行软 件复用。

20、Microsoft 公司提出了它的 COM, C OM+组件 规范 , 在此 , 笔者将概述 C OM 组件规范及其在实现圈 存中间件系统中的大致思路。在 COM 标准中 , 一个 组件程序也被称为一个模块 , 它可以是一个动态连接 库 (缩写为 DLL , 被称作进程内组件 (in process com ponent ; 也可以是一个可执行程序 (即 EXE 程序 , 被 称作进程 外组件 (out of process component 。 COM 标 准的核心概念是对象和接口 , 客户请求服务时 , 只能 通过接口进行。接口只定义对象的成员函数 , 并不进 行实现。每一个接口都由一个

21、 128位的全局唯一标 识符 (GUI D, Globally Unique Identifer 来标识。客户通 过 GUID 获得接口的指针 , 再通过接口指针 , 客户就 可以调用其相应的成员函数。思路是 , 首先在圈存前 置机上用 VC 编写一个带有初始界面的由用户启动 的客户程序 , 用于侦听。再编写数据库联接对象、 数 据库操作对象、 通信对象。所有对象均由客户程序实 例化并调用接口方法。通信对象作为与银行交互的 接口 , 为适应多种通信协议 , 它将成为设计、 编写难度 最大的对象。开发步骤可以采取先实现 TCP/IP 协议 的通信 , 再实现其他方式如 SNA 方式的通信。 2.

22、 构造跨平台的基于消息中间件的系统。 近几年 , 随着 Sun 公司推出的 Java 语言的不断发 展 , 它在企业中的应用逐渐成熟 , Java 语言的平台无 关性为我们构造跨平台的中间件奠定了基础。我们 可以设计一个更加基础的中间件系统 , 例如可以建立 一个面向消息的中间件 系统 (MOM 。当然 , 它涉及 到银行与各个行业的信息交换问题 , 是一个更大范围 的应用集成问题 , 在此仅作为一个初步思路。4 结束语当 前 , IC 卡应用正呈现快速发展的趋势 , 例如 , 我国 的 第二代居民身份证项目已逐步展开 。第二代身份证 项 目被称为全球最大的电子身份证项目 , 它的实施可以 创 造非常可观的经济、 社会效益。同时 , 中间件技术将 成 为软件工业发展的重点。对中间件技术的研究与应 用 , 将为大规模 IC 卡软件

温馨提示

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

评论

0/150

提交评论