基于中間件技術(shù)的圈存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于中間件技術(shù)的圈存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于中間件技術(shù)的圈存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于中間件技術(shù)的圈存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于中間件技術(shù)的圈存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、文章編號(hào) :1006 2475(2005 05 0034 04收稿日期 :2004 08 16作者簡介 :尹亮 (1972 , 男 , 湖南長 沙人 , 工程師 , 國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院碩士研究生 , 研究 方向 :軟件工程?;谥虚g件技術(shù)的圈存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)尹 亮(國防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院 , 湖南 長沙 410073摘要 :首先介紹了一卡通應(yīng)用開發(fā)的現(xiàn)狀與新的任務(wù) , 引 出了中間件技術(shù)對軟件工業(yè)推動(dòng)的必要性 。 接 著提出了 一個(gè)校 園一卡通圈存子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) , 并使用 UML 方法 進(jìn)行分 析與建 模 。 最后 , 對該 子系統(tǒng) 進(jìn)一步由 實(shí)用軟 件向中 間件 擴(kuò)展提供

2、了一個(gè)新的思路 。關(guān)鍵詞 :中間件 ; 圈存 ; UML 類圖 ; 校園一卡通管理系統(tǒng) 中圖分類號(hào) :TP311. 5 文獻(xiàn)標(biāo)識(shí)碼 :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 應(yīng)用背景介紹1. 一卡通應(yīng)用。在大多數(shù)工業(yè)化國家中 , IC 卡已經(jīng)成 為生活中 必不可少的一部分。中國作為最大的發(fā)展中國家 , 為 追趕并融入全球信

5、息化潮流 , 正大力推進(jìn) 信息化建 設(shè)。以 金卡工程 為代表的金融電子信息化始終是 這股潮流中最活躍的部分。由于 IC 卡具有較磁卡更 可靠的安全性能與巨大的商業(yè)價(jià)值 , 各行業(yè)開始大批 量發(fā)卡。隨著 金卡工程 的開展 , 各行業(yè)自成系統(tǒng) , 互不通用 (包括卡和讀寫器 , 于是 一卡多用 , 一卡 通用 提到日程上來 , 國家各有關(guān)部門已開始工作 , 進(jìn) 行不同部門、 不同行業(yè)的合作和利益分配 , 并進(jìn)行協(xié) 調(diào)與管理。2. 中間件技術(shù)介紹。目前 , 中間件的概念還沒有嚴(yán)格的定義 , 一般普遍接受的是 IDC 的表述 :中間件是一種獨(dú)立的系統(tǒng)軟 件或服務(wù)程序 , 分布式應(yīng)用軟件借助這種軟件在不

6、同 的技術(shù)之間共享資源 , 中間件位于客戶機(jī)服務(wù)器的操 作系統(tǒng)之上 , 管理計(jì)算機(jī)資源和網(wǎng)絡(luò)通信。中間件可 按不同視角分類 , 一種有代表性的分類方法為 1:(1 數(shù)據(jù)訪問中間件 (Data Access Middle ware ; (2 遠(yuǎn)程過程調(diào)用中間件 (RPC; (3 面向消息中間件 (MOM ;(4面向 對 象的 中間 件 (Object Oriented Middle ware ;(5 事務(wù)處理中間件 (TPM ; (6 網(wǎng)絡(luò)中間件 ;(7 終端仿真 /屏幕轉(zhuǎn)換中間件 ; 3. 現(xiàn)狀與任務(wù)。現(xiàn)在已有 IC 卡系統(tǒng)集成商開始建設(shè)局部的一卡 通系統(tǒng) , 如公交一卡通 , 校園一卡通等。

7、一卡通應(yīng)用計(jì) 算 機(jī) 與 現(xiàn) 代 化2005年第 5期JISUANJI YU XIANDAIHUA總第 117期軟件系統(tǒng)所面臨的挑戰(zhàn)是 : 系統(tǒng)開發(fā)速度跟不上用 戶需求變化的速度 , 交付時(shí)間一拖再拖 , 費(fèi)用越滾越 大 2 。面臨的新的任務(wù)是如何針對不同的用戶 , 不 同的任務(wù)需求 , 快速開發(fā) 適用于用戶需求 的應(yīng)用系 統(tǒng)。如何用先進(jìn)的工具進(jìn)行分析、 建模 , 如何提高軟 件復(fù)用率。要面對挑戰(zhàn)完成新的任務(wù) , 關(guān)鍵在于要建 設(shè) 好軟件開發(fā)的基礎(chǔ)設(shè)施 , 這需要長期艱苦的努力。 中間件就是基礎(chǔ)設(shè)施之一。本文在完成校園一卡通圈 存子系統(tǒng)基本功能的基礎(chǔ)上對形成專用中間件這一問 題進(jìn)行初步探討。2

8、 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1. 系統(tǒng)結(jié)構(gòu)。銀校一卡通 中的 IC 卡 , 可以實(shí)現(xiàn)食堂售飯、 圖 書借閱、 教師與學(xué)生的身份驗(yàn)證、 還可實(shí)現(xiàn)銀行信用 卡功能 , 使持卡人在校園 內(nèi)通過圈存機(jī)完 成圈存交 易、 帳戶查詢以及卡密碼修改等功能 , 實(shí)現(xiàn)校園、 銀行 間的一卡通用。所謂 圈存 是指 IC 卡同時(shí)具有銀行 帳號(hào)與 IC 卡帳號(hào) , 將銀行帳號(hào)上的錢劃到 IC 卡帳號(hào) 上和 IC 卡上。根據(jù)銀行慣例 , 銀行的主機(jī)系統(tǒng)處理 的是銀行自身的核心業(yè)務(wù) (如存、 取款等 , 而銀行與 外部系統(tǒng)通信 , 是通過銀行前置機(jī)進(jìn)行的。例如 , 銀 行可以同電力企業(yè)進(jìn)行數(shù)據(jù)交換 3。而用于校園的 圈存系統(tǒng) , 較

9、其他行業(yè)與銀行間的數(shù)據(jù)通信 , 有其鮮 明的特點(diǎn)。圈存機(jī)終端是以無人職守的方式放在校 園內(nèi)的 , 而一般大專院校的學(xué)生好奇心很強(qiáng) , 這使得 圈存系統(tǒng)的安全性、 可靠性比其他有人職守的如 POS 終端要求更高。我們分析了圈存子系統(tǒng)的應(yīng)用需求 和邊界系統(tǒng)的情況 , 設(shè)計(jì)了如圖 1 所示的物理結(jié)構(gòu)。 與銀行前置機(jī)的實(shí)現(xiàn) , 我們的工作是要完成學(xué)校方與 銀行方交易數(shù)據(jù)的傳輸與交易的處理。圈存機(jī)與圈 存前置機(jī)之間采用的是 ISO8583報(bào)文格式進(jìn)行通訊。 I SO 8583是國際標(biāo)準(zhǔn)化組織 (ISO 為實(shí)現(xiàn)銀行卡處理 系統(tǒng)間交換金融信息而制定的一個(gè)標(biāo)準(zhǔn)界面 , 它規(guī)定 了信息結(jié)構(gòu)、 格式和內(nèi)容 , 以

10、保證在不同應(yīng)用規(guī)范的 系統(tǒng)間能夠進(jìn)行報(bào)文交換 4。根據(jù)安全性與可靠性的 要 求 , 圈存前 置機(jī) 與銀 行前 置機(jī)采 用專 線連 接 , 以 TC P/IP 協(xié)議族為基本通信協(xié)議進(jìn)行數(shù)據(jù)交換。校園 一卡通其他子系統(tǒng)應(yīng)用軟件采用了典型的三層 C/S 、 B/S 結(jié)構(gòu)設(shè)計(jì)。圈存子系統(tǒng)從學(xué)校方看也是三層 C/S 結(jié)構(gòu)。圈存前置機(jī)充當(dāng)了中間件服務(wù)器的作用。在應(yīng) 用軟件的架構(gòu)設(shè)計(jì)中 , 三層結(jié)構(gòu)是兩層結(jié)構(gòu)的自然發(fā) 展 , 有以下優(yōu)點(diǎn) :(1 三層結(jié)構(gòu)中 , 由于將復(fù)雜的應(yīng)用邏輯與用戶 界面分離 , 使得客戶端的負(fù)擔(dān)大大減輕。(2 作為中間件服務(wù)器的圈存前置機(jī) , 只需增加 相應(yīng)的組件就能夠增加對不同平臺(tái)

11、與數(shù)據(jù)庫的訪問 和更多其他功能 , 可擴(kuò)展性大大增強(qiáng)。(3作為中間件服 務(wù)器的圈存前置機(jī)同時(shí)也是校園 網(wǎng) 與外部網(wǎng)之間的防火墻 , 它具有雙網(wǎng)卡結(jié)構(gòu)。在校園 的 內(nèi)部網(wǎng)中 , 它作為圈存機(jī)的服務(wù)器 ; 在指定端口偵聽 并 等待圈存機(jī)的聯(lián)結(jié)。在校園與銀行之間的外部網(wǎng)中 , 它 作為客戶機(jī)去主動(dòng)聯(lián)接銀行前置機(jī)。這樣 , 就隔離了外 部網(wǎng)對校園內(nèi)部主機(jī)的 訪問 , 安全性大 大提高。352005年第 5期 尹亮 :基于中間件技術(shù)的圈存系統(tǒng)的設(shè)計(jì)與實(shí) 現(xiàn)2. 交易流程。我們以圈存子系統(tǒng)中最典型的圈存交易為例 , 介 紹圈存子系統(tǒng)的通信流程 , 見圖 2。實(shí) 際上 , 所有的 交易請求都是從圈存機(jī)發(fā)起

12、, 最終由圈存機(jī)處理完成 交易而結(jié)束。由物理結(jié)構(gòu)與交易流程 , 我們綜合考慮了工程實(shí) 施的進(jìn)度、 效 率等方 面的 因素 , 選用 了廣 泛使 用的 Windows 平臺(tái) Windows 2000Server, 在 Windows Sockets基礎(chǔ)上 , 以 VC+6. 0作為開發(fā)工具 , 針對圈存前置 機(jī)進(jìn)行程序開發(fā)。Windows Sockets 規(guī)范是以 U. C. Berkeley 大學(xué) BSD Unix 中流行的 Socket 接口為范例定義的一套 Microsoft Windows 下的網(wǎng)絡(luò)編程接口。它不僅包含了 Berkeley Socket 風(fēng)格的庫函數(shù) , 也包含了一組針對

13、 Windo ws 的 庫函數(shù) , 以使程序員能充分地利用 Windows 消息驅(qū)動(dòng) 機(jī)制進(jìn)行編程。 Windows Sockets 同時(shí)支持 TCP/IP 協(xié) 議 族 中的 用戶 數(shù)據(jù)報(bào) 協(xié)議 (UDP 和傳 輸控 制 協(xié)議 (TCP。 UDP 并不能保證數(shù)據(jù)的可靠傳輸 , 可能會(huì)存 在數(shù)據(jù)丟失和次序錯(cuò)誤 ; TC P 提供了無差錯(cuò)的數(shù)據(jù)傳 輸 , 滿足學(xué)校銀行間數(shù)據(jù)傳輸安全性的要求 , 因此選 用 TCP, 體現(xiàn)在程序中如下所示 :/創(chuàng)建偵聽 SOCKE Tif(! m _winsocket i .Create (LOC AL _IP _PORT 0, SOC K _ STREAM , L

14、OCAL _IP m _list _message. AddString( 創(chuàng)建偵聽 SOCKE T 失敗 ; m _list _message. SetCurSel(m _list _message. GetCount( -1 ; return false;這是一段創(chuàng)建偵聽 Soc ket 的程序 , m _winsocketi是 WinSocket 類的數(shù)組變量 (有關(guān) WinSocket 類 , 后面 有更詳細(xì)的解釋 , Create 的第 一個(gè)參數(shù)是要被使用 的端口號(hào) , 第二個(gè)參數(shù)可選 , SOC K _STREAM 表示 :提 供連續(xù)的、 可靠的、 基于連接的字節(jié) 流 , 使用 T

15、CP 協(xié) 議 ; SOCK _DGRAM 表示 :支 持無連接 的數(shù)據(jù)包 , 使用 UDP 協(xié)議。此處 , 選的是 SOCK _STREAM 。第 三個(gè)參 數(shù)指向用帶點(diǎn)數(shù)字表示的網(wǎng)絡(luò)地址。3. 建模、 設(shè)計(jì)與實(shí)現(xiàn)。由于使用了 VC+6. 0這種面向?qū)ο蟮某绦蛟O(shè) 計(jì)工具 , 以及考慮到應(yīng)用程序向中間件的擴(kuò)展。我們 使用了 Rational Rose 進(jìn)行建模與設(shè)計(jì) , 在對 VC+6. 0 示的設(shè)計(jì)類圖。Windows Socket API 是 TCP/IP 編程 中最低 級的 Windows API, 為了簡化編程 , 微軟公司在 VC+6. 0的 MFC 庫中對 Socket API 進(jìn)行封

16、裝 , 形成了 Casync Socket 和 Csocket 類。 Csocket 類 較 CasyncSoc ket 類又 多一 層 封裝 , 使用 也 更簡 單 , 我 們設(shè) 計(jì) 了三 個(gè) 類 , WinSocket, WinBankSocket, WinRecvSocket, 選 擇 了 Csoc ket 類作為網(wǎng)絡(luò)通信相關(guān)類的基類。圖 3中 , WinSocket 用于在圈存前置機(jī)創(chuàng)建偵聽 , WinRecvSocket 用于 圈存 前置 機(jī) 與圈 存機(jī) 進(jìn) 行交 互 (包括接收圈存機(jī)的交易請求 , 向圈存機(jī)發(fā)回復(fù)信息 等 , WinBankSocket 用于圈存前置機(jī)與銀行前置機(jī)進(jìn)

17、 行交互 (包括圈存前置機(jī)向銀行前置機(jī)發(fā)交易請求和 接收銀行回復(fù)交易信息等 。首先 , WinSocket 實(shí)例根 據(jù)配置信息在指定的地址創(chuàng)建套接字并開始偵聽 , 一 旦收到圈存機(jī)的聯(lián)接請 求 , 就產(chǎn)生一個(gè)可用的 Win RecvSocket 和 一 個(gè) 可 用 的 WinBankSocket 。 WinRecv Socket 將在不同于主線程即偵 聽線程的新線程內(nèi)工 作 , 如接收、 分析圈存機(jī)發(fā)送過來的數(shù)據(jù) , 組織并發(fā)送 數(shù)據(jù)給圈存機(jī)等工作。 WinBankSocket 同樣是在另一 個(gè)新線程內(nèi)工作 , 完成對銀行數(shù)據(jù)的收發(fā)。另一個(gè)與 交易安全相關(guān)的是數(shù)據(jù)庫類圖 , 因?yàn)檎麄€(gè)交易過程必

18、 須要進(jìn)行帳號(hào)識(shí)別、 設(shè)備 ID 驗(yàn)證、 日志記錄、 交易記 錄等數(shù)據(jù)庫操作。這中間包括了圈存交易所涉及的 數(shù)據(jù) 庫 表。 如 C LogsetJYLSJL 指 交 易 類 型 記 錄 表 , CLogsetJSXX 指教師信息表 , CLogsetZHXX 是指帳戶信36計(jì) 算 機(jī) 與 現(xiàn) 代 化 2005年第 5期息表等。圖 3是子系統(tǒng)的骨干類圖 , 是對目前工程功 能的抽象 , 實(shí)際應(yīng)用程序 還需要考慮如多 線程的特 性、 加解密、 異常處理等細(xì)節(jié)問題。該子系統(tǒng)的設(shè)計(jì) 思想已成功應(yīng)用在某大學(xué)的校園一卡通工程中。3 進(jìn)一步的思考與擴(kuò)展方案圈存子系統(tǒng)的建設(shè)是一個(gè)不斷發(fā)展和完善的過 程 , 若

19、要構(gòu)造成專用中間件 , 軟件系統(tǒng)應(yīng)具有良好的 開放性和可伸縮性。要實(shí)現(xiàn)該目標(biāo)應(yīng)遵循循序漸進(jìn) 的原則。大致思路包括以下幾方面 :1. 構(gòu)造基于微軟 COM 規(guī)范的專用中間件。 軟件開發(fā)中 , 程序設(shè)計(jì)方法經(jīng)歷了以下階段 , 從 最初的功能分解法到結(jié)構(gòu)化程序設(shè)計(jì) , 再到目前已被 廣泛使用的面向?qū)ο蟪绦蛟O(shè)計(jì)方法 , 再到已逐漸流行 的基于組件的開發(fā)方法?;诮M件技術(shù)的軟件開發(fā) 已逐漸成為軟件工業(yè)快速發(fā) 展并形成規(guī)模 的趨勢。 面向?qū)ο蠹夹g(shù) , 相對于以前的開發(fā)方法 , 在軟件復(fù)用 方面是一個(gè)巨大的進(jìn)步 , 其局限性在于 , 軟件復(fù)用級 別是源代碼級的 , 而軟件組件是在二進(jìn)制級別進(jìn)行軟 件復(fù)用。

20、Microsoft 公司提出了它的 COM, C OM+組件 規(guī)范 , 在此 , 筆者將概述 C OM 組件規(guī)范及其在實(shí)現(xiàn)圈 存中間件系統(tǒng)中的大致思路。在 COM 標(biāo)準(zhǔn)中 , 一個(gè) 組件程序也被稱為一個(gè)模塊 , 它可以是一個(gè)動(dòng)態(tài)連接 庫 (縮寫為 DLL , 被稱作進(jìn)程內(nèi)組件 (in process com ponent ; 也可以是一個(gè)可執(zhí)行程序 (即 EXE 程序 , 被 稱作進(jìn)程 外組件 (out of process component 。 COM 標(biāo) 準(zhǔn)的核心概念是對象和接口 , 客戶請求服務(wù)時(shí) , 只能 通過接口進(jìn)行。接口只定義對象的成員函數(shù) , 并不進(jìn) 行實(shí)現(xiàn)。每一個(gè)接口都由一個(gè)

21、 128位的全局唯一標(biāo) 識(shí)符 (GUI D, Globally Unique Identifer 來標(biāo)識(shí)??蛻敉?過 GUID 獲得接口的指針 , 再通過接口指針 , 客戶就 可以調(diào)用其相應(yīng)的成員函數(shù)。思路是 , 首先在圈存前 置機(jī)上用 VC 編寫一個(gè)帶有初始界面的由用戶啟動(dòng) 的客戶程序 , 用于偵聽。再編寫數(shù)據(jù)庫聯(lián)接對象、 數(shù) 據(jù)庫操作對象、 通信對象。所有對象均由客戶程序?qū)?例化并調(diào)用接口方法。通信對象作為與銀行交互的 接口 , 為適應(yīng)多種通信協(xié)議 , 它將成為設(shè)計(jì)、 編寫難度 最大的對象。開發(fā)步驟可以采取先實(shí)現(xiàn) TCP/IP 協(xié)議 的通信 , 再實(shí)現(xiàn)其他方式如 SNA 方式的通信。 2.

22、 構(gòu)造跨平臺(tái)的基于消息中間件的系統(tǒng)。 近幾年 , 隨著 Sun 公司推出的 Java 語言的不斷發(fā) 展 , 它在企業(yè)中的應(yīng)用逐漸成熟 , Java 語言的平臺(tái)無 關(guān)性為我們構(gòu)造跨平臺(tái)的中間件奠定了基礎(chǔ)。我們 可以設(shè)計(jì)一個(gè)更加基礎(chǔ)的中間件系統(tǒng) , 例如可以建立 一個(gè)面向消息的中間件 系統(tǒng) (MOM 。當(dāng)然 , 它涉及 到銀行與各個(gè)行業(yè)的信息交換問題 , 是一個(gè)更大范圍 的應(yīng)用集成問題 , 在此僅作為一個(gè)初步思路。4 結(jié)束語當(dāng) 前 , IC 卡應(yīng)用正呈現(xiàn)快速發(fā)展的趨勢 , 例如 , 我國 的 第二代居民身份證項(xiàng)目已逐步展開 。第二代身份證 項(xiàng) 目被稱為全球最大的電子身份證項(xiàng)目 , 它的實(shí)施可以 創(chuàng) 造非??捎^的經(jīng)濟(jì)、 社會(huì)效益。同時(shí) , 中間件技術(shù)將 成 為軟件工業(yè)發(fā)展的重點(diǎn)。對中間件技術(shù)的研究與應(yīng) 用 , 將為大規(guī)模 IC 卡軟件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論