專利名稱:在自助式金融交易終端上獲得設(shè)備服務(wù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及自助式金融交易終端領(lǐng)域,例如自動(dòng)出納機(jī)(ATM),具體地說(shuō),涉及用服務(wù)提供程序框架對(duì)ATM進(jìn)行設(shè)備服務(wù)的方法和系統(tǒng)。
通常,一個(gè)金融機(jī)構(gòu),比方說(shuō)一個(gè)銀行,除了它可能從許多ATM銷售商那里購(gòu)買的ATM硬件和軟件以外,都要開發(fā)它自己的專有ATM硬件和軟件。采用其它制造商的系統(tǒng)可能非常困難,例如接口和重新利用現(xiàn)有的應(yīng)用程序資源非常困難。ATM包括特殊的裝置,比方說(shuō)自動(dòng)付款機(jī)、讀卡機(jī)和打印機(jī),它們需要特殊的接口用于控制應(yīng)用程序。在以前,硬件制造商的接口都是專用的,人們開發(fā)了金融業(yè)務(wù)的視窗開放式業(yè)務(wù)體系結(jié)構(gòu)擴(kuò)展(WOSA/XFS),為特殊ATM外圍設(shè)備的應(yīng)用程序控制規(guī)定一個(gè)標(biāo)準(zhǔn)。
上述術(shù)語(yǔ)WOSA/XFS規(guī)定了一個(gè)與上述應(yīng)用程序例如ATM應(yīng)用程序的接口的標(biāo)準(zhǔn),利用這個(gè)接口標(biāo)準(zhǔn),可以獲得設(shè)備服務(wù)(deviceservice),比方說(shuō)讓自動(dòng)付款機(jī)吐出現(xiàn)金或者讀取顧客交易卡上的數(shù)據(jù)。利用這一WOSA/XFS標(biāo)準(zhǔn),應(yīng)用程序和后端服務(wù)通過(guò)視窗環(huán)境下應(yīng)用程序程序接口(API)和服務(wù)提供程序接口(SPI)的統(tǒng)一集(unified set)相連接。這樣,應(yīng)用程序只需要知道WOSA接口,而不必知道采用了各種服務(wù)。金融機(jī)構(gòu)開發(fā)它自己的WOSA/XFS兼容軟件可以保證金融機(jī)構(gòu)的軟件可以移植到多個(gè)銷售商提供的ATM上去。
本發(fā)明的一個(gè)特點(diǎn)和優(yōu)點(diǎn)是提供一種方法和系統(tǒng),用于獲得ATM設(shè)備服務(wù),這種方法和系統(tǒng)允許金融機(jī)構(gòu)讓它的應(yīng)用程序需要多個(gè)銷售商的ATM機(jī)器上的設(shè)備服務(wù),同時(shí)也需要它自己的ATM機(jī)器上的設(shè)備服務(wù)。
本發(fā)明的另一個(gè)特點(diǎn)和優(yōu)點(diǎn)是提供一種方法和系統(tǒng),用于獲得ATM設(shè)備服務(wù),這種方法和系統(tǒng)允許金融機(jī)構(gòu)的服務(wù)提供程序開發(fā)商只關(guān)心特定設(shè)備的代碼專用和設(shè)備專用代碼。
本發(fā)明的再一個(gè)特點(diǎn)和優(yōu)點(diǎn)是提供了一種方法和系統(tǒng),用于獲得ATM設(shè)備服務(wù),這種方法和系統(tǒng)允許金融機(jī)構(gòu)用金融機(jī)構(gòu)的源代碼在內(nèi)部及時(shí)地開發(fā)服務(wù)提供程序,并使它處于金融機(jī)構(gòu)的適當(dāng)控制之下。
為了上述特點(diǎn)、優(yōu)點(diǎn)和目的,以及其它的特點(diǎn)、優(yōu)點(diǎn)和目的,本發(fā)明的一個(gè)實(shí)施方案利用XFS兼容服務(wù)提供程序來(lái)允許金融機(jī)構(gòu),比方說(shuō)一個(gè)銀行,在建造它的ATM系統(tǒng)的時(shí)候,讓它的應(yīng)用程序需要多個(gè)銷售商的ATM機(jī)器,以及它自己的ATM機(jī)器上的設(shè)備服務(wù),從而在某一銷售商的平臺(tái)上獲得的設(shè)備服務(wù)跟在它自己的平臺(tái)上獲得的設(shè)備服務(wù)是相同的。本發(fā)明一個(gè)實(shí)施方案的方法和系統(tǒng)提供所有共同的處理,在開發(fā)服務(wù)提供程序的時(shí)候,這種處理對(duì)于每一個(gè)服務(wù)提供程序來(lái)說(shuō)都是共同的,并允許服務(wù)提供程序開發(fā)商只關(guān)心某一設(shè)備的代碼專用和設(shè)備專用代碼。這樣,可以利用金融機(jī)構(gòu)的源代碼及時(shí)地在內(nèi)部開發(fā)服務(wù)提供程序,并讓它處于金融機(jī)構(gòu)的適當(dāng)控制之下。
本發(fā)明的一個(gè)實(shí)施方案利用服務(wù)提供程序框架,其中的數(shù)據(jù)被ATM應(yīng)用程序收到,例如一個(gè)顧客在ATM觸摸屏上做出選擇,告訴ATM應(yīng)用程序需要完成ATM設(shè)備功能,比方說(shuō)存款功能、打印機(jī)功能、讀卡機(jī)功能、安全門功能、自動(dòng)付款機(jī)功能或者觸摸屏功能。ATM應(yīng)用程序?qū)χ行腁TM監(jiān)視和管理應(yīng)用程序軟件的一個(gè)較低層進(jìn)行子程序調(diào)用,這叫做一個(gè)WFS請(qǐng)求,向一個(gè)服務(wù)提供程序請(qǐng)求獲得設(shè)備服務(wù)。在較低層這一子程序調(diào)用被一個(gè)XFS管理程序轉(zhuǎn)換成功能分類請(qǐng)求,這個(gè)請(qǐng)求叫做一個(gè)WFP請(qǐng)求,作為到服務(wù)提供程序的入口點(diǎn)供服務(wù)提供程序進(jìn)行處理。功能分類請(qǐng)求的選擇包括,例如,一個(gè)WFPCancelAsyncRequest請(qǐng)求、一個(gè)WFPClose請(qǐng)求、一個(gè)WFPDeregister請(qǐng)求、一個(gè)WFPExecute請(qǐng)求、一個(gè)WFPGetInfo請(qǐng)求、一個(gè)WPFLock請(qǐng)求、一個(gè)WFPOpen請(qǐng)求、一個(gè)WFPRegister請(qǐng)求、一個(gè)WFPSetTraceLevel請(qǐng)求、一個(gè)WFPUnloadService請(qǐng)求和一個(gè)WFPUnlock。處理完這一請(qǐng)求以后,服務(wù)提供程序返回一個(gè)結(jié)果給ATM應(yīng)用程序。
在本發(fā)明的一個(gè)實(shí)施方案里,ATM應(yīng)用程序接收用于表示需要獲得跟一個(gè)ATM設(shè)備有關(guān)的ATM設(shè)備服務(wù)的數(shù)據(jù),比方說(shuō)一個(gè)存款機(jī)、一個(gè)打印機(jī)、一個(gè)讀卡機(jī)、一個(gè)安全門、一個(gè)自動(dòng)付款機(jī)和/或一個(gè)觸摸屏。ATM應(yīng)用程序通過(guò)對(duì)XFS管理程序進(jìn)行子程序調(diào)用,發(fā)出一個(gè)請(qǐng)求給XFS管理程序,以獲得ATM設(shè)備服務(wù),以此從服務(wù)提供程序獲得ATM設(shè)備服務(wù)。XFS管理程序?qū)⑦@一子程序調(diào)用轉(zhuǎn)換成到這一服務(wù)提供程序的入口點(diǎn),供服務(wù)提供程序進(jìn)行處理,啟動(dòng)跟這一請(qǐng)求有關(guān)的請(qǐng)求對(duì)象。通過(guò)啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類(base class)的一個(gè)實(shí)例以及需要用來(lái)處理這一請(qǐng)求的服務(wù)提供程序框架請(qǐng)求對(duì)象的一個(gè)或者多個(gè)實(shí)例來(lái)實(shí)現(xiàn)服務(wù)提供程序。
本發(fā)明一個(gè)實(shí)施方案的服務(wù)提供程序啟動(dòng)服務(wù)提供程序的服務(wù)提供程序請(qǐng)求對(duì)象的一個(gè)具體實(shí)例,它是從XFS服務(wù)提供程序基類服務(wù)提供程序請(qǐng)求對(duì)象類層次獲得的。在其中進(jìn)行服務(wù)提供程序處理的基本單元是請(qǐng)求對(duì)象,為11個(gè)WFP請(qǐng)求定義了一個(gè)請(qǐng)求對(duì)象,包括一個(gè)SpiRequest類、一個(gè)SpiAsyncRequest類、一個(gè)請(qǐng)求專用類,比方說(shuō)OpenRequest或者執(zhí)行請(qǐng)求,以及可以選擇地,一個(gè)服務(wù)提供程序?qū)S谜?qǐng)求類,其中的一個(gè)是從另一個(gè)導(dǎo)出的。發(fā)出WFP請(qǐng)求的時(shí)候,服務(wù)提供程序框架通過(guò)類繼承調(diào)用服務(wù)提供程序的導(dǎo)出對(duì)象中的虛方法,從而允許服務(wù)提供程序進(jìn)行特定ATM設(shè)備服務(wù)獨(dú)有的處理。
本發(fā)明一個(gè)實(shí)施方案的WFP請(qǐng)求分成兩部分處理,第一部分叫做立即處理部分,第二部分叫做延遲處理部分。立即處理是在XFS管理程序調(diào)用服務(wù)提供程序入口點(diǎn)的時(shí)候使用的同一個(gè)線程中處理的。服務(wù)提供程序在它的立即處理方法中核實(shí)參數(shù)。如果沒有發(fā)現(xiàn)任何錯(cuò)誤,服務(wù)提供程序框架就在服務(wù)提供程序的導(dǎo)出類中調(diào)用spImmediateProcessing()方法。在這一點(diǎn)上,服務(wù)提供程序可以更具體,盡管不全面,地核實(shí)參數(shù)。spImmediateProcessing()方法返回代碼被返回給XFS管理程序。如果服務(wù)提供程序還沒有調(diào)用spImmediateProcessing()方法,這一服務(wù)提供程序框架就決定將哪一個(gè)代碼返回給這個(gè)XFS管理程序。
如果本發(fā)明一個(gè)實(shí)施方案的服務(wù)提供程序還沒有調(diào)用這個(gè)spImmediateProcessing()方法,就公布請(qǐng)求完成事件。它的例外包括WFPCancelAsyncRequest、WFPSetTraceLevel、WFPUnload請(qǐng)求,它們是過(guò)程立即請(qǐng)求,沒有任何延遲處理方法。這一過(guò)程立即請(qǐng)求完全由服務(wù)提供程序框架處理,在服務(wù)提供程序的那一部分不需要任何處理。這一服務(wù)提供程序框架使用,例如,每個(gè)服務(wù)提供程序四個(gè)線程,為特定的服務(wù)提供程序管理WFP請(qǐng)求,包括一個(gè)延遲的處理隊(duì)列管理程序線程和一個(gè)延遲處理線程。WFP請(qǐng)求放在一個(gè)延遲的處理隊(duì)列里,得到信號(hào)的時(shí)候,這一延遲的處理隊(duì)列管理程序線程從延遲的處理隊(duì)列中彈出一個(gè)請(qǐng)求對(duì)象,創(chuàng)建一個(gè)延遲的處理線程,在其中完成特定WFP請(qǐng)求的延遲處理。
在本發(fā)明的一個(gè)實(shí)施方案里,當(dāng)一個(gè)WFP請(qǐng)求從隊(duì)列中取出的時(shí)候,創(chuàng)建一個(gè)處理線程,這一服務(wù)提供程序框架為這一特定的請(qǐng)求完成延遲處理,這一特定的請(qǐng)求對(duì)于所有服務(wù)提供程序來(lái)說(shuō)都是相同的。在成功地完成這一處理的時(shí)候,服務(wù)提供程序框架調(diào)用服務(wù)提供程序?qū)С鲱愔械膕pDeferredProcessing()方法,服務(wù)提供程序完成滿足spDeferredProcessing()方法中的請(qǐng)求所需要的所有請(qǐng)求,包括公布一個(gè)請(qǐng)求完成事件。當(dāng)延遲處理方法返回?cái)?shù)據(jù)時(shí),這一線程就結(jié)束,這一請(qǐng)求對(duì)象被刪除。如果這一服務(wù)提供程序還沒有調(diào)用這一spDeferredProcessin()方法,服務(wù)提供程序框架就公布一個(gè)請(qǐng)求完成消息。
在本發(fā)明的一個(gè)實(shí)施方案里,服務(wù)提供程序訪問(wèn)一個(gè)或者多個(gè)WPF請(qǐng)求的一個(gè)或者多個(gè)請(qǐng)求參數(shù)。WPF請(qǐng)求包括,例如,一個(gè)WFPCancelAsyncRequest請(qǐng)求、一個(gè)WFPClose請(qǐng)求、一個(gè)WFPDeregister請(qǐng)求、一個(gè)WFPExecute請(qǐng)求、一個(gè)WFPGetInfo請(qǐng)求、一個(gè)WPFLock請(qǐng)求、一個(gè)WFPOpen請(qǐng)求、一個(gè)WFPRegister請(qǐng)求、一個(gè)WFPSetTraceLevel請(qǐng)求、一個(gè)WFPUnloadService請(qǐng)求和一個(gè)WFPUnlock請(qǐng)求。WFPCancelAsyncRequest請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)和一個(gè)reqID參數(shù);WFPClose請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID parameter;WFPDeregister請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)、一個(gè)dwEventClass參數(shù)、一個(gè)hWndReg參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù);WFPExecute請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)、一個(gè)dwCommandData參數(shù)、一個(gè)IpCommandData參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)。
另外,WFPGetInfo請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)、一個(gè)dwCagegory參數(shù)、一個(gè)IPQueryDetails參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù);WFPOpen請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)、一個(gè)IpszLogicalName參數(shù)、一個(gè)hApp參數(shù)、一個(gè)IpszApplicationID參數(shù)、一個(gè)dwTraceLevel參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)、一個(gè)reqID參數(shù)、一個(gè)hPprovider參數(shù)、一個(gè)dwSPVersionsRequired參數(shù)、一個(gè)IpSPIVersion參數(shù)、一個(gè)dwSrvcVersionsRequired參數(shù)和一個(gè)IpSrvcVersion參數(shù);WFPRegister請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)、一個(gè)dwEventClass參數(shù)、一個(gè)hWndReg參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù);WFPSetTraceLevel請(qǐng)求的請(qǐng)求參數(shù)包括一個(gè)hService參數(shù)和一個(gè)dwTraceLevel參數(shù)。
本發(fā)明其它的目的、優(yōu)點(diǎn)和新特點(diǎn)將在下面的描述中說(shuō)明,通過(guò)閱讀以下說(shuō)明,本領(lǐng)域里的技術(shù)人員會(huì)部分地更加理解本發(fā)明,或者可以通過(guò)實(shí)施本發(fā)明來(lái)學(xué)會(huì)它。
圖1是一個(gè)流程圖,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中的請(qǐng)求設(shè)備服務(wù),比方說(shuō)自動(dòng)付款過(guò)程的一個(gè)實(shí)例;圖2是一個(gè)示意圖,它說(shuō)明利用一個(gè)存款機(jī)例子說(shuō)明本發(fā)明一個(gè)實(shí)施方案中,XFS服務(wù)提供程序?qū)哟蔚囊粋€(gè)例子;圖3是一個(gè)示意圖,它說(shuō)明用一個(gè)WFPExecute請(qǐng)求例子,說(shuō)明本發(fā)明一個(gè)實(shí)施方案中,服務(wù)提供程序請(qǐng)求對(duì)象類層次的一個(gè)實(shí)例;圖4是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPCancelAsyncRequest參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè);圖5是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPClose參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè);圖6是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPDeregister參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè);圖7是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPExecute參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè);圖8是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPGetInfo參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè);圖9是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPOpen參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè);圖10是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPRegister參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè);
圖11是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中WFPSetTraceLevel參數(shù)的例子,以及如何訪問(wèn)它們中的每一個(gè)。
現(xiàn)在詳細(xì)參考本發(fā)明的一個(gè)實(shí)施方案,它的一個(gè)例子在附圖中給出,本發(fā)明一個(gè)實(shí)施方案的方法和系統(tǒng)利用兼容XFS的服務(wù)提供程序,使得一個(gè)金融機(jī)構(gòu),比方說(shuō)一個(gè)銀行,能夠?qū)崿F(xiàn)它的ATM系統(tǒng),在這里,有時(shí)叫做全球ATM,讓它的應(yīng)用程序在多個(gè)銷售商的ATM上以及它自己的ATM上獲得設(shè)備服務(wù)。通過(guò)這種方式,在某一個(gè)銷售商的平臺(tái)上獲得設(shè)備服務(wù),跟在這一金融機(jī)構(gòu)自己的平臺(tái)上獲得設(shè)備服務(wù)是相同的。本發(fā)明一個(gè)實(shí)施方案的XFS服務(wù)提供程序框架提供所有相同的處理,在服務(wù)提供程序的開發(fā)過(guò)程中,它對(duì)于每一個(gè)服務(wù)提供程序來(lái)說(shuō)都是相同的。每一個(gè)設(shè)備都有一個(gè)設(shè)備提供程序,本發(fā)明的一個(gè)實(shí)施方案提供每一個(gè)服務(wù)提供程序都需要進(jìn)行的相同的處理。這時(shí)的服務(wù)提供程序開發(fā)商只需要關(guān)心某一設(shè)備的代碼專用和設(shè)備專用代碼。
本發(fā)明一個(gè)實(shí)施方案的軟件要在該金融機(jī)構(gòu)的ATM上運(yùn)行。其它的銷售商為他們自己的設(shè)備提供他們自己的服務(wù)提供程序。差別出現(xiàn)在設(shè)備一級(jí),在不同的ATM銷售商之間這一點(diǎn)相當(dāng)明確。通常,對(duì)顧客來(lái)說(shuō)可見的應(yīng)用程序能夠很容易地在一個(gè)銷售商的機(jī)器到另一個(gè)銷售商的機(jī)器上運(yùn)行。然而,從一個(gè)銷售商的機(jī)器到另一個(gè)銷售商的機(jī)器,獲得設(shè)備服務(wù)通常都是很不相同的。這一服務(wù)提供程序提供一層,使它對(duì)于應(yīng)用程序而言是不可見的。在本發(fā)明的一個(gè)實(shí)施方案里,將XFS接口提供給應(yīng)用程序,這些應(yīng)用程序不關(guān)心在下面正在發(fā)生什么事情。本發(fā)明一個(gè)實(shí)施方案的一個(gè)方面包括這些服務(wù)提供程序的開發(fā)。本發(fā)明一個(gè)實(shí)施方案的框架利用許多文件,這里叫做“H”文件,和一個(gè)動(dòng)態(tài)鏈接庫(kù)(DLL),從它開始編譯,跟它建立鏈接,以開發(fā)叫做服務(wù)提供程序的東西。本發(fā)明的方法和系統(tǒng)只跟使設(shè)備發(fā)出設(shè)備服務(wù)請(qǐng)求的應(yīng)用程序一起使用。術(shù)語(yǔ),比方說(shuō)這里使用的“排隊(duì)”和“WFS請(qǐng)求”,都在XFS標(biāo)準(zhǔn)里給出定義,利用它,本發(fā)明一個(gè)實(shí)施方案的框架是兼容的。例如,術(shù)語(yǔ)“WFS”是一個(gè)前綴,說(shuō)明一個(gè)特定的功能分類。
圖1是一個(gè)流程圖,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中請(qǐng)求設(shè)備服務(wù)過(guò)程,比方說(shuō)吐出現(xiàn)金,的一個(gè)實(shí)例。參考圖1,在S1處,跟ATM中吐出現(xiàn)金一起,是顧客看見的一件事的應(yīng)用程序在它的處理過(guò)程中決定它需要吐出現(xiàn)金。定義了一個(gè)XFS標(biāo)準(zhǔn)用來(lái)吐出現(xiàn)金,而且應(yīng)用程序知道在這個(gè)時(shí)候它能夠發(fā)出正確的命令,它叫做一個(gè)WFS執(zhí)行命令。在S2處,XFS管理程序?qū)⑦@一WFS執(zhí)行命令轉(zhuǎn)換成一個(gè)WFP執(zhí)行命令,由適當(dāng)?shù)?在這種情況下,它是自動(dòng)付款機(jī))服務(wù)提供程序處理。術(shù)語(yǔ)“WFP”是另一個(gè)前綴,說(shuō)明某一功能分類,WFP執(zhí)行命令傳遞到適當(dāng)?shù)姆?wù)提供程序那里。在步驟S3中,服務(wù)提供程序驅(qū)動(dòng)自動(dòng)付款機(jī),并執(zhí)行適當(dāng)?shù)牡图?jí)硬件命令,使自動(dòng)付款機(jī)提供和分發(fā)現(xiàn)金。這一服務(wù)提供程序?qū)⒔Y(jié)果返回給XFS管理程序,在步驟S4中,XFS管理程序?qū)⑦@一結(jié)果返回給應(yīng)用程序。WFS命令和WFP命令之間的一個(gè)差別是,例如,WFS命令是ATM應(yīng)用程序發(fā)出,以便從服務(wù)提供程序獲得設(shè)備服務(wù)的,WFP命令是“進(jìn)入”服務(wù)提供程序的功能入口點(diǎn),本發(fā)明一個(gè)實(shí)施方案的框架將它“暴露”給XFS管理程序。這一XFS管理程序?qū)⑦@些WFS命令轉(zhuǎn)換成相應(yīng)的WFP命令。
本發(fā)明一個(gè)實(shí)施方案的方法和系統(tǒng)被用于顧客會(huì)話而不是吐出現(xiàn)金。其它的功能包括,但不限于,例如,存款、打印、管理ATM讀卡機(jī)、管理和跟蹤什么時(shí)候安全門打開或者關(guān)閉以及當(dāng)安全門打開或者關(guān)閉的時(shí)候讓ATM停止服務(wù)的功能。基本上有五個(gè)設(shè)備直接卷入到顧客會(huì)話中,比方說(shuō)吐出現(xiàn)金、存入一個(gè)信封、打印一個(gè)收據(jù)或者一張憑條、驅(qū)動(dòng)觸摸屏以及讀卡機(jī)。在本發(fā)明一個(gè)實(shí)施方案的方法和系統(tǒng)中,ATM觸摸屏上有一個(gè)按鈕,如果這個(gè)按鈕被按下,一定量的現(xiàn)金就被吐出給顧客。當(dāng)顧客觸摸觸摸屏?xí)r,它作為例如給ATM應(yīng)用程序的一個(gè)鼠標(biāo)事件出現(xiàn)。換句話說(shuō),它就象有人在點(diǎn)擊鼠標(biāo)器。當(dāng)一個(gè)應(yīng)用程序獲得通知,說(shuō)明這個(gè)按鈕已經(jīng)被觸摸的時(shí)候,它對(duì)一個(gè)較低級(jí)的軟件項(xiàng)進(jìn)行一次對(duì)象鏈接和嵌入(OLE)調(diào)用,它基本上是一個(gè)子程序調(diào)用,然后在較低級(jí)的軟件中將這個(gè)子程序調(diào)用轉(zhuǎn)換成一個(gè)WFP執(zhí)行命令。它就是到本發(fā)明一個(gè)實(shí)施方案的框架的入口點(diǎn)。此時(shí),這個(gè)框架傳遞一個(gè)入口點(diǎn)給這一具體的服務(wù)提供程序,這個(gè)入口點(diǎn)是在框架下面,然后這一服務(wù)提供程序獲得了控制權(quán),能夠發(fā)出適當(dāng)?shù)脑O(shè)備命令來(lái)獲得現(xiàn)金。
本發(fā)明的一個(gè)實(shí)施方案為金融機(jī)構(gòu)提供一種解決方案,因?yàn)槔缈梢栽趦?nèi)部及時(shí)地利用金融機(jī)構(gòu)的源代碼來(lái)提供,并讓它處于金融機(jī)構(gòu)的適當(dāng)控制之下?,F(xiàn)在考慮本發(fā)明一個(gè)實(shí)施方案中XFS服務(wù)提供程序的類結(jié)構(gòu)和基本處理,框架為服務(wù)提供程序開發(fā)商提供一組C++(面向?qū)ο蟮木幊陶Z(yǔ)言)對(duì)象,它們進(jìn)行必要的處理,是一個(gè)兼容XFS的服務(wù)提供程序。然后,開發(fā)商只需要提供對(duì)于具體服務(wù)提供程序而言獨(dú)有的代碼。
在本發(fā)明的一個(gè)實(shí)施方案里,通過(guò)啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的一個(gè)實(shí)例和框架請(qǐng)求對(duì)象的實(shí)例來(lái)實(shí)現(xiàn)一個(gè)服務(wù)提供程序。發(fā)出WFP請(qǐng)求的時(shí)候,服務(wù)提供程序框架通過(guò)C++類的繼承,調(diào)用服務(wù)提供程序的導(dǎo)出請(qǐng)求對(duì)象中的虛擬方法,從而允許服務(wù)提供程序進(jìn)行這一服務(wù)獨(dú)有的處理。圖2是一個(gè)示意圖,它用一個(gè)存款機(jī)例子,說(shuō)明本發(fā)明一個(gè)實(shí)施方案中XFS服務(wù)提供程序?qū)哟蔚囊粋€(gè)例子。這一XFS服務(wù)提供程序基類10包括需要用來(lái)處理WFP請(qǐng)求的服務(wù)提供程序框架對(duì)象。需要所有的服務(wù)提供程序來(lái)啟動(dòng)它的服務(wù)提供程序?qū)ο蟮囊粋€(gè)具體實(shí)例12。如圖2所示,實(shí)例12必須從XFS服務(wù)提供程序基類10導(dǎo)出。
圖3是一個(gè)示意圖,它用一個(gè)WFPExecute請(qǐng)求例子說(shuō)明本發(fā)明一個(gè)實(shí)施方案中服務(wù)提供程序請(qǐng)求對(duì)象類層次的一個(gè)例子。在其中進(jìn)行所有服務(wù)提供程序處理的基本單元是請(qǐng)求對(duì)象。為例如十一個(gè)WFP請(qǐng)求定義了一個(gè)請(qǐng)求對(duì)象。這一請(qǐng)求對(duì)象包括一個(gè)SpiRequest類14、一個(gè)SpiAsyncRequest類16、一個(gè)請(qǐng)求專用類,比方說(shuō)OpenRequest或者ExecuteRequest18,以及可以選擇,一個(gè)服務(wù)提供程序?qū)S谜?qǐng)求類20。如圖3所示,其中的一個(gè)是從另一個(gè)導(dǎo)出的,這個(gè)圖使用WFPExecute請(qǐng)求作為一個(gè)例子。
在本發(fā)明的一個(gè)實(shí)施方案里,每次XFS管理程序調(diào)用一個(gè)服務(wù)提供程序的WFP入口點(diǎn)之一時(shí),都啟動(dòng)跟這個(gè)請(qǐng)求有關(guān)的一個(gè)請(qǐng)求對(duì)象。WFP請(qǐng)求分成兩部分來(lái)處理。第一個(gè)部分叫做“立即處理”,第二個(gè)部分叫做“延遲處理”。調(diào)用一個(gè)服務(wù)提供程序的WFP入口點(diǎn)的時(shí)候,立即處理是在跟XFS管理程序使用的視窗線程相同的視窗線程中進(jìn)行的。服務(wù)提供程序框架在它的立即處理方法中核實(shí)參數(shù)。如果沒有發(fā)現(xiàn)任何錯(cuò)誤,服務(wù)提供程序框架就調(diào)用服務(wù)提供程序?qū)С鲱愔械膕pImmediateProcessing(立即處理)方法。此時(shí),服務(wù)提供程序可以核實(shí)更具體的,盡管不是完整的,參數(shù)。來(lái)自spImmediateProcessing(立即處理)的返回代碼被返回給XFS管理程序。如果這一服務(wù)提供程序還沒有采用spImmediateProcessing方法,服務(wù)提供程序框架就決定哪些代碼被返回給XFS管理程序。
一旦立即處理已經(jīng)完成而且沒有任何錯(cuò)誤,在本發(fā)明的一個(gè)實(shí)施方案里,就為這一請(qǐng)求啟動(dòng)一個(gè)請(qǐng)求定時(shí)器,并將這一請(qǐng)求對(duì)象放進(jìn)延遲處理隊(duì)列中。這樣做保證了WOSA標(biāo)準(zhǔn)要求的對(duì)請(qǐng)求處理的正確串行化。從隊(duì)列中取出的時(shí)候,創(chuàng)建一個(gè)處理線程,服務(wù)提供程序框架為這一處理進(jìn)行延遲處理,這一處理對(duì)于所有服務(wù)提供程序來(lái)說(shuō)都是相同的。如果這一過(guò)程成功地完成,服務(wù)提供程序框架就調(diào)用服務(wù)提供程序?qū)С鲱愔械膕pDeferredProcessing(立即處理)方法。在這一方法中,服務(wù)提供程序完成讓請(qǐng)求滿意所需要的所有處理,包括公布請(qǐng)求完成事件。當(dāng)延遲處理方法返回時(shí),線程就結(jié)束,請(qǐng)求對(duì)象被隨后刪除。如果服務(wù)提供程序還沒有采用這一spDeferredProcessing(立即處理)方法,服務(wù)提供程序框架就公布這一請(qǐng)求完成事件。
上述情況的一個(gè)例外是WFPCancelAsyncRequest、WFPSetTraceLevel和WFPUnload請(qǐng)求。這些請(qǐng)求是“立即處理”請(qǐng)求,這樣,它們沒有任何延遲處理方法。所有這些請(qǐng)求完全是由服務(wù)提供程序框架處理的,在服務(wù)提供程序的這一部分不需要任何處理。
如果請(qǐng)求定時(shí)器停止計(jì)時(shí)或者如果這一請(qǐng)求被取消,WFP請(qǐng)求就可以被中斷。如果這兩種事件都沒有發(fā)生,就根據(jù)這一請(qǐng)求的狀態(tài)調(diào)用請(qǐng)求對(duì)象中的一個(gè)方法。如果目前正在處理這一請(qǐng)求,就調(diào)用服務(wù)提供程序請(qǐng)求對(duì)象中的退出方法。如果這一請(qǐng)求被排隊(duì),就調(diào)用abortQueued方法。
調(diào)用abort和abortQueued方法的時(shí)候,都有一個(gè)參數(shù),這個(gè)參數(shù)說(shuō)明中斷的原因。它的值既可以是WFS_ERR_TIMEOUT,又可以是WFS_ERROR_CANCELED。這兩種退出方法都為服務(wù)提供程序提供適當(dāng)?shù)厍宄?qǐng)求的機(jī)會(huì)。
如果沒有超負(fù)荷,服務(wù)提供程序框架就為退出和abortQueued方法發(fā)送請(qǐng)求完成消息。這是服務(wù)提供程序框架為這些操作所做的所有處理。如果服務(wù)提供程序框架發(fā)送的請(qǐng)求完成消息是需要的,采用這兩種方法之一就是服務(wù)提供程序的職責(zé)。
本發(fā)明一個(gè)實(shí)施方案的服務(wù)提供程序框架每一個(gè)服務(wù)提供程序采用,例如,四個(gè)線程,為某一服務(wù)提供程序管理WFP請(qǐng)求。XFS管理程序用來(lái)調(diào)用WFP入口點(diǎn)的線程沒有包括在這一數(shù)目中。這些線程包括,例如,一個(gè)延遲處理隊(duì)列(DPQ)管理程序線程和一個(gè)延遲處理線程。
如上所述,在本發(fā)明的一個(gè)實(shí)施方案里,將WFP請(qǐng)求放在一個(gè)延遲處理隊(duì)列上,以確保對(duì)WFP請(qǐng)求正確的串行化。在初始化的時(shí)候,創(chuàng)建DPQ管理程序線程,并且最開始的時(shí)候?qū)⑺怄i。換句話說(shuō),它處于一種沒有收到信號(hào)的狀態(tài),等待著一個(gè)請(qǐng)求對(duì)象排隊(duì)。收到信號(hào)的時(shí)候,DPQ管理程序線程從延遲處理隊(duì)列中彈出一個(gè)請(qǐng)求對(duì)象,并創(chuàng)建另一個(gè)線程,這個(gè)線程叫做延遲處理線程,其中進(jìn)行所述WFP請(qǐng)求的實(shí)際延遲處理。DPQ管理程序線程在等待延遲處理線程結(jié)束的過(guò)程中,被又一次地封鎖。在解除封鎖的時(shí)候,DPQ管理程序線程返回,處理可能已經(jīng)在排隊(duì)的所有請(qǐng)求對(duì)象。如果沒有任何對(duì)象在排隊(duì),那么DPQ管理程序線程就封鎖正在等待的下一個(gè)WFP請(qǐng)求。
多數(shù)WFP請(qǐng)求的主要處理是在它的延遲處理中完成的。就象前面已經(jīng)介紹過(guò)的一樣,每次從延遲處理隊(duì)列中彈出一個(gè)請(qǐng)求對(duì)象時(shí),都要?jiǎng)?chuàng)建一個(gè)延遲處理線程。既然在前一個(gè)請(qǐng)求對(duì)象的線程還沒有結(jié)束的時(shí)候不從DPQ彈出一個(gè)請(qǐng)求對(duì)象,在任何給定的時(shí)刻,就只有一個(gè)延遲處理線程在活動(dòng)。在請(qǐng)求對(duì)象的延遲處理中服務(wù)提供程序可以創(chuàng)建其它的線程。如果是這樣,服務(wù)提供程序就負(fù)責(zé)管理這一線程,并決定什么時(shí)候它應(yīng)當(dāng)結(jié)束。
現(xiàn)在來(lái)介紹服務(wù)提供程序如何訪問(wèn)每一個(gè)WFP請(qǐng)求的請(qǐng)求參數(shù),如果有的話,以及服務(wù)提供程序,如果有的話,和服務(wù)提供程序框架這兩者的處理職責(zé),WFP請(qǐng)求包括,例如,WFPCancelAsyncRequest、WFPClose、WFPDeregister、WFPExecute、WFPGetInfo、WPFLock、WFPOpen、WFPRegister、WFPSetTraceLevel、WFPUnloadService和WFPUnlock。
在本發(fā)明的一個(gè)實(shí)施方案里,WFPCancelAsyncRequest給服務(wù)提供程序框架規(guī)定了取消哪些請(qǐng)求。這個(gè)請(qǐng)求可以,例如,處于排隊(duì)狀態(tài),也可以是處于當(dāng)前的處理狀態(tài)。在這兩種情況下,請(qǐng)求對(duì)象中的退出方法都被服務(wù)提供程序框架調(diào)用,從而允許服務(wù)提供程序公布請(qǐng)求完成通知。如果服務(wù)提供程序還沒有為這一請(qǐng)求完成一個(gè)退出方法,這一服務(wù)提供程序框架就公布這一請(qǐng)求完成通知。WFPCancelAsyncRequest請(qǐng)求的參數(shù)儲(chǔ)存在取消請(qǐng)求對(duì)象內(nèi)。儲(chǔ)存在SpiRequest對(duì)象內(nèi)的那些參數(shù)是專用參數(shù),只能用一個(gè)訪問(wèn)功能訪問(wèn)。圖4是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中每一個(gè)WFPCancelAsyncRequest參數(shù)的一個(gè)例子,以及如何訪問(wèn)它。
考慮這一WFPClose請(qǐng)求,服務(wù)提供程序框架為每一個(gè)服務(wù)提供程序保存活動(dòng)會(huì)話的一個(gè)表。在收到有效關(guān)閉請(qǐng)求時(shí),服務(wù)提供程序框架從這個(gè)表中去掉這一特定的會(huì)話,并注銷跟這一會(huì)話有關(guān)的所有事件。服務(wù)提供程序可以使用關(guān)閉請(qǐng)求getNumberOfSessions()對(duì)象中的方法來(lái)獲得這一特定服務(wù)提供程序的會(huì)話個(gè)數(shù)。如果這個(gè)個(gè)數(shù)是零,服務(wù)提供程序就負(fù)責(zé)關(guān)閉和卸下跟這個(gè)服務(wù)提供程序有關(guān)的PDH。
WFPClose請(qǐng)求的參數(shù)儲(chǔ)存在關(guān)閉請(qǐng)求對(duì)象中。儲(chǔ)存在SpiRequest和SpiAsyncRequest對(duì)象中的那些參數(shù)是專用參數(shù),只能用一個(gè)功能來(lái)訪問(wèn)。圖5是所有WFPClose參數(shù)和如何訪問(wèn)它們的一個(gè)表。這一立即處理方法是HRESULT<specificProvider>CloseRequest::spImmediateProcessing(void)。服務(wù)提供程序框架核實(shí)這些WFPClose參數(shù)中的每一個(gè)參數(shù)。服務(wù)提供程序可能會(huì)發(fā)現(xiàn)不必采用這一方法。延遲處理方法是Boolean<specificProvider>CloseRequest::spDeferredProcessing(void)。如果活動(dòng)會(huì)話的個(gè)數(shù)是零,就應(yīng)當(dāng)關(guān)閉spDeferredProcessing,并卸下跟這一特定服務(wù)提供程序有關(guān)的PDH動(dòng)態(tài)鏈接庫(kù)(DLL)。
這一getNumberOfSessions方法返回當(dāng)前活動(dòng)的會(huì)話個(gè)數(shù)。該方法是<pre listing-type="program-listing"><![CDATA[int CloseRequest::getNumberOfSessions(serviceProvider)XfsServiceProvider * serviceProvider。]]></pre>這些參數(shù)包括serviceProvider,它是每一個(gè)XFS服務(wù)提供程序獨(dú)有的一個(gè)句柄。在每一個(gè)打開請(qǐng)求對(duì)象中的serviceProvider屬性中提供這一句柄給每一個(gè)服務(wù)提供程序。對(duì)于返回值,如果serviceProvider是有效的,就返回活動(dòng)會(huì)話的個(gè)數(shù)。否則返回一個(gè)-1。
活動(dòng)會(huì)話的個(gè)數(shù)反映了當(dāng)前關(guān)閉請(qǐng)求對(duì)象中涉及的會(huì)話。這樣,如果一個(gè)服務(wù)提供程序收到一個(gè)WFPOpen,隨后又收到一個(gè)WFPClose請(qǐng)求,那么如果從關(guān)閉請(qǐng)求內(nèi)的spDeferredProcessing方法調(diào)用,getNumberOfSessions就返回零。這樣做假定了WFPOpen和WFPClose涉及同樣的會(huì)話,而且還沒有為其它會(huì)話收到任何其它的WFPOpens。服務(wù)提供程序框架處理跟WFPDeregister請(qǐng)求有關(guān)的所有處理。WFPDeregister請(qǐng)求的參數(shù)儲(chǔ)存在注銷請(qǐng)求對(duì)象中。儲(chǔ)存在SpiRequest和SpiAsyncRequest請(qǐng)求中的那些參數(shù)是專用參數(shù),只能用一個(gè)功能來(lái)訪問(wèn)。圖6是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中每一個(gè)WFPDeregister參數(shù)的例子,以及如何訪問(wèn)它們。
WFPExecute請(qǐng)求的參數(shù)儲(chǔ)存在執(zhí)行請(qǐng)求對(duì)象中。儲(chǔ)存在SpiRequest和SpiAsyncRequest對(duì)象中的那些參數(shù)是專用參數(shù),只能用一個(gè)功能來(lái)訪問(wèn)。圖7是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中每一個(gè)WFPExecute參數(shù)的一個(gè)例子,以及如何訪問(wèn)它。
對(duì)于立即處理,這一方法是<pre listing-type="program-listing"><![CDATA[HRESULT<specificSp>ExecuteRequest::spImmediateProcessing(void)。]]></pre>如果采用這一方法,這一方法就給予服務(wù)提供程序在框架讓執(zhí)行請(qǐng)求對(duì)象排隊(duì)之前完成參數(shù)核實(shí)的機(jī)會(huì)。服務(wù)提供程序框架核實(shí)除dwCommand和lpCommandData以外所有的參數(shù)。如果這些參數(shù)中有任何一個(gè)無(wú)效,就不調(diào)用這一方法,并將適當(dāng)?shù)腻e(cuò)誤碼返回給這一應(yīng)用程序。服務(wù)提供程序應(yīng)當(dāng)核實(shí)dwCommand是否有效和得到支持。如果不是這樣,就應(yīng)當(dāng)返回WFS_ERR_INVALID_COMMAND或者WFS_ERR_UNSUPP_COMMAND,只要合適的話。因?yàn)閃FS_INVALID_DATA只能在執(zhí)行完成事件中返回(不能作為一個(gè)立即錯(cuò)誤),在這種方法中不能核實(shí)lpCommandData實(shí)際指向的數(shù)據(jù)。然而,服務(wù)提供程序應(yīng)當(dāng)核實(shí)這一lpCommandData和它可能包括的所有其它指針是否有效。如果有任何一個(gè)是無(wú)效的,這一方法就應(yīng)當(dāng)返回WFS_INVALID_POINTER。如果服務(wù)提供程序返回WFS_SUCCESS,請(qǐng)求對(duì)象就在延遲處理隊(duì)列中排隊(duì),供以后處理。
對(duì)于延遲處理,這一方法是<pre listing-type="program-listing"><![CDATA[Boolean<specificSp>ExecuteRequest::spDeferredProcessing(void)。]]></pre>該方法,如果采用它的話,是處理這一服務(wù)提供程序的所有WFPExecute命令的入口點(diǎn)。WFPExecute參數(shù)按照跟前面介紹過(guò)的spImmediateProcessing方法相同的方法處理。在這一方法中,核實(shí)包括在lpCommandData內(nèi)的數(shù)據(jù)。服務(wù)提供程序負(fù)責(zé)為跟WFPExecute請(qǐng)求有關(guān)的所有事件使用XfsEvent::postEvent()。包括執(zhí)行完成事件。
對(duì)于退出處理,這個(gè)方法是<pre listing-type="program-listing"><![CDATA[void<specificSp>ExecuteRequest::abort(HRESULT abortReason,intrequestStatus)。]]></pre>這個(gè)方法,如果采用它的話,可以因?yàn)檫@一請(qǐng)求被WFSCancel(abortReason=WFS_ERR_CANCELED)取消調(diào)用,也可以因?yàn)檫@一請(qǐng)求超時(shí)而被調(diào)用(abortReason=WFS_ERR_TIMEOUT)。在這兩種情況下,服務(wù)提供程序都負(fù)責(zé)結(jié)束spDeferredProcessing方法(見前面)已經(jīng)創(chuàng)建的所有線程,并公布執(zhí)行完成事件。
服務(wù)提供程序框架處理WFPGetInfo請(qǐng)求的方式跟處理所有其它WFP請(qǐng)求的方式不同。具體地說(shuō),這個(gè)WFPGetInfo單獨(dú)放在一個(gè)延遲處理隊(duì)列里,它意味著這一請(qǐng)求的延遲處理永遠(yuǎn)不能被一些其它的非WFPGetInfo請(qǐng)求所封鎖。
WFPGetInfo請(qǐng)求的參數(shù)儲(chǔ)存在GetInfo請(qǐng)求對(duì)象中。儲(chǔ)存在SpiRequest和SpiAsyncRequest對(duì)象中的那些參數(shù)是專用參數(shù),不能用一個(gè)功能來(lái)訪問(wèn)。圖8是本發(fā)明一個(gè)實(shí)施方案中所有WFPGetInfo參數(shù)以及如何訪問(wèn)它的一個(gè)表。
對(duì)于立即處理,這一方法是<pre listing-type="program-listing"><![CDATA[HRESULT<specificSp>GetInfoRequest::spImmediateProcessing(void)]]></pre>這個(gè)方法,如果采用的話,給予服務(wù)提供程序在框架讓GetInfo請(qǐng)求對(duì)象排隊(duì)之前完成參數(shù)核實(shí)的機(jī)會(huì)。這一服務(wù)提供程序框架核實(shí)除dwCategory和lpQueryDetails以外的所有參數(shù)。如果這些參數(shù)中有任何一個(gè)是無(wú)效的,就不調(diào)用這一方法,并將適當(dāng)?shù)腻e(cuò)誤碼返回給應(yīng)用程序。服務(wù)提供程序應(yīng)當(dāng)核實(shí)dwCategory是否有效以及是否被支持。如果不是這樣,就應(yīng)當(dāng)返回WFS_ERR_INVALID_CATEGORY或者WFS_ERR_UNSUPP_CATEGORY,只要適當(dāng)。因?yàn)閃FS_INVALID_DATA只能在GetInfo完成事件(不是一個(gè)立即錯(cuò)誤)中返回,lpQueryDetails實(shí)際指向的數(shù)據(jù)不能在這一方法中核實(shí)。然而,服務(wù)提供程序應(yīng)當(dāng)核實(shí)lpQueryDetails和它可能包括的所有其它指針,看它們是否有效。如果它們中間有任何無(wú)效的,這一方法就應(yīng)當(dāng)返回WFS_INVALID_POINTER。如果服務(wù)提供程序返回WFS_SUCCESS,這一請(qǐng)求對(duì)象就在延遲處理隊(duì)列中排隊(duì),供以后處理。
對(duì)于延遲處理,這一方法是<pre listing-type="program-listing"><![CDATA[Boolean<specificSp>GetInfoRequest::spDeferredProcessing(void)。]]></pre>這一方法,如果采用它的話,是處理這一服務(wù)提供程序的所有WFPGetInfo命令的入口點(diǎn)。處理這些WFPGetInfo參數(shù)的方式跟前面在spImmediateProcessing方法中介紹的方式一樣。在這一方法中,核實(shí)包括在lpQueryDetails中的數(shù)據(jù)。這一服務(wù)提供程序負(fù)責(zé)為跟WFPGetInfo請(qǐng)求有關(guān)的所有事件使用XfsEvent::postEvent()。它包括GetInfo完成事件。
對(duì)于退出處理,該方法是<pre listing-type="program-listing"><![CDATA[void<specificSp>GetInfoRequest::abort(HRESULT abortReason,intrequestStatus)。]]></pre>這一方法,如果采用了它的話,可以因?yàn)閃FSCancel(abortReason=WFS_ERR_CANCELED)取消了請(qǐng)求而調(diào)用,也可以因?yàn)檎?qǐng)求超時(shí)(abortReason=WFS_ERR_TIMEOUT)而調(diào)用。在這兩種情況下,服務(wù)提供程序都負(fù)責(zé)適當(dāng)?shù)厍宄锌赡芤呀?jīng)根據(jù)這一請(qǐng)求完成的所有的處理。
WFPOpen請(qǐng)求的參數(shù)儲(chǔ)存在打開請(qǐng)求內(nèi)。儲(chǔ)存在SpiRequest和SpiAsyncRequest對(duì)象內(nèi)的那些參數(shù)是專用參數(shù),只能用一個(gè)功能來(lái)訪問(wèn)。圖9是一個(gè)表,它說(shuō)明本發(fā)明的一個(gè)實(shí)施方案中每一個(gè)WFPOpen參數(shù)的一個(gè)例子,以及如何訪問(wèn)它。
對(duì)于立即處理,該方法是<pre listing-type="program-listing"><![CDATA[HRESULT<specificSp>OpenRequest::spImmediateProcessing(void)。]]></pre>這一方法,如果被采用,就在所有的WFPOpen請(qǐng)求參數(shù)被核實(shí)以后,被服務(wù)提供程序框架調(diào)用。這包括版本協(xié)商,就象WOSA_XFS_API/SPI程序員參考2.00版第5.7節(jié)中所介紹的一樣。服務(wù)提供程序可能不需要采用這一方法。
對(duì)于延遲處理,該方法是<pre listing-type="program-listing"><![CDATA[Boolean<specificSp>OpenRequest::spDeferredProcessing(void)。]]></pre>這一方法允許服務(wù)提供程序進(jìn)行跟“打開一個(gè)設(shè)備”有關(guān)的實(shí)際的處理。這可能包括執(zhí)行PDH命令來(lái)初始化這一服務(wù)提供程序使用的設(shè)備。這一方法可以在每次XFS管理程序調(diào)用WFPOpen的時(shí)候調(diào)用。服務(wù)提供程序必須使用OpenRequest::openFailed()方法,如果因?yàn)槟承┰蛩J(rèn)為打開操作已經(jīng)失敗。openFailed()方法允許服務(wù)提供程序框架從它的表中刪除這一會(huì)話。
WFPRegister請(qǐng)求的參數(shù)儲(chǔ)存在注冊(cè)請(qǐng)求對(duì)象里。儲(chǔ)存在SpiRequest對(duì)象和SpiAsyncRequest對(duì)象里的那些參數(shù)是專用參數(shù),只能用一個(gè)功能來(lái)調(diào)用。圖10是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中每一個(gè)WFPRegister參數(shù)的一個(gè)例子,以及如何訪問(wèn)它。
WFPSetTraceLevel請(qǐng)求的參數(shù)儲(chǔ)存在設(shè)置跟蹤級(jí)別請(qǐng)求對(duì)象里。儲(chǔ)存在SpiRequest對(duì)象里的那些參數(shù)是專用參數(shù),只能用一個(gè)功能來(lái)調(diào)用。圖11是一個(gè)表,它說(shuō)明本發(fā)明一個(gè)實(shí)施方案中每一個(gè)WFPSetTraceLevel參數(shù)的一個(gè)例子,以及如何訪問(wèn)它。
事件處理在WOSA_XFS_API/SPI程序員參考的2.00版的第3.11節(jié)中進(jìn)行了介紹。對(duì)象中的postEvent()方法用于為WFP請(qǐng)求的完成公布事件消息,并為EXECUTE、SERVICE、USER和SYSTEM事件公布事件消息。下面將介紹XfsPost()。
WFP請(qǐng)求完成事件,或者簡(jiǎn)短地說(shuō)完成事件,是視窗消息,它們被用于說(shuō)明某一異步WFP請(qǐng)求正在進(jìn)行處理。服務(wù)提供程序負(fù)責(zé)為所有WFP請(qǐng)求公布完成事件,其中的服務(wù)提供程序已經(jīng)采用了一種spDeferredProcessing方法,它使WFP請(qǐng)求基類中同樣的方法過(guò)載。通常,服務(wù)提供程序?yàn)閃FPOpen、WFPExecute、WFPGetlnfo和WFPClose請(qǐng)求采用spDeferredProcessing方法。服務(wù)提供程序框架公布所有的其它完成事件。
每一個(gè)服務(wù)提供程序都負(fù)責(zé)公布它們的設(shè)備程序員參考中描述的所有的執(zhí)行、服務(wù)和用戶事件。服務(wù)提供程序還負(fù)責(zé)公布程序員參考的設(shè)備狀態(tài)改變一節(jié)和硬件和軟件錯(cuò)誤一節(jié)中描述的系統(tǒng)事件。服務(wù)提供程序框架負(fù)責(zé)公布跟不能發(fā)布的消息和版本協(xié)商錯(cuò)誤有關(guān)的系統(tǒng)事件。
對(duì)于postEvent()事件,該方法是<pre listing-type="program-listing"><![CDATA[void XfsEvent::postEvent(DWORD notificationMessage,XfsServiceProvider*serviceProvider,LPWFSRESULT lpWfsResult)。]]></pre>這一方法由服務(wù)提供程序用來(lái)發(fā)送時(shí)間和請(qǐng)求完成通知。
參數(shù)包括notificationMessage,它可以取以下值WFS_SERVICE_EVENTWFS_USER_EVENTWFS_SYSTEM_EVENTWFS_EXECUTE_EVENT命令完成消息(見WOSA XFS API/SPI程序員參考第2.00版第9.1.1節(jié))。
參數(shù)還包括serviceProvider是每一個(gè)XFS服務(wù)提供程序獨(dú)有的一個(gè)句柄。這個(gè)句柄提供給每一個(gè)打開請(qǐng)求對(duì)象中servieeProvider屬性里的每一個(gè)服務(wù)提供程序。
hResult是放在lpWfsResult指向的WFSRESULT結(jié)構(gòu)的hResult成員里的值。lpWfsResult是指向WFSRESULT結(jié)構(gòu)的一個(gè)指針。任何時(shí)候啟動(dòng)一個(gè)請(qǐng)求對(duì)象的時(shí)候,服務(wù)提供程序框架都分配一個(gè)WFSRESULT結(jié)構(gòu)。這樣,如果要公布的事件是一個(gè)請(qǐng)求完成事件,請(qǐng)求對(duì)象的WFSRESULT結(jié)構(gòu)就可以使用;但只能使用一次。以后公布任何請(qǐng)求的事件都必須使用XfsEvent::allocateWfsResult()來(lái)分配一個(gè)新的WFSRESULT結(jié)構(gòu)。如果對(duì)于任意事件,WFSRESULT結(jié)構(gòu)都指向另外的數(shù)據(jù),就必須使用XfsEvent::allocateMore()(見下文)來(lái)分配額外的空間。
對(duì)于SERVICE_EVENTS、USER_EVENTS和SYSTEM_EVENTS,postEvent為已經(jīng)為指定事件注冊(cè)的這一服務(wù)發(fā)送事件通知給每一個(gè)hWnd。對(duì)于EXECUTE_EVENTS,只有跟當(dāng)前正在進(jìn)行的執(zhí)行請(qǐng)求hService有關(guān)的hWnd接收事件通知。服務(wù)提供程序負(fù)責(zé)設(shè)置WFSRESULT結(jié)構(gòu)的hResult和dwEventID成員。WFSRESULT結(jié)構(gòu)的RequestID、hService和tsTimestamp成員由postEvent方法設(shè)置。
對(duì)于allocateWfsResult,該方法是<pre listing-type="program-listing"><![CDATA[HRESULT XfsEvent::allocateWfsResult(LPVOID*lppvData)。]]></pre>該方法用于分配一個(gè)XFS WFSRESULT結(jié)構(gòu)。
參數(shù)包括lppvData,它是allocatWfsResult在其中放置指向分配的存儲(chǔ)器的指針的變量的地址。
如果功能返回值不是WFS_SUCCESS,返回值就是以下錯(cuò)誤條件中的一個(gè)WFS_ERR_INVALID_POINTER,如果lppvData不指向可以訪問(wèn)的存儲(chǔ)器。
WFS_ERR_OUT_OF_MEMORY,如果沒有足夠的存儲(chǔ)器來(lái)滿足請(qǐng)求。調(diào)用WFMallocateBuffer的時(shí)候,服務(wù)提供程序框架使用WFS_MEM_SHARE和WFS_MEM_ZEROINIT標(biāo)志。
對(duì)于allocateMore,該方法是<pre listing-type="program-listing"><![CDATA[HRESULT XfxEvent::allocateMore(ULONG ulSizeLPVOID lpvOriginalLPVOID*lppvData)。]]></pre>這一方法用于分配存儲(chǔ)器緩沖器,將它跟一個(gè)已經(jīng)存在的緩沖器鏈接起來(lái)。
參數(shù)包括ulSize,它是要分配的存儲(chǔ)器的尺寸(以字節(jié)為單位)。
lpvOriginal,它是新分配的緩沖器要鏈接的原來(lái)的緩沖器的地址。
lppvData,它是allocatWfsResult要在其中放置指向分配的存儲(chǔ)器的指針的變量的地址。
如果功能的返回值不是WFS_SUCCESS,返回值就是以下錯(cuò)誤狀態(tài)中的一個(gè)WFS_ERR_INVALID_POINTER,如果一個(gè)指針參數(shù)不指向可以訪問(wèn)的存儲(chǔ)器。
WFS_ERR_OUT_OF_MEMORY,如果沒有足夠的存儲(chǔ)器來(lái)滿足請(qǐng)求。
WFS_ERR_INVALID_ADDRESS,lpvOriginal參數(shù)不指向以前分配的一個(gè)緩沖器。
調(diào)用WFMallocateBuffer的時(shí)候,服務(wù)提供程序框架使用WFS_MEM_SHARE和WFS_MEM_ZEROINIT標(biāo)志。
如同已經(jīng)提到過(guò)的一樣,在本發(fā)明的一個(gè)實(shí)施方案里,要求每一個(gè)服務(wù)提供程序啟動(dòng)它的服務(wù)提供程序的一個(gè)具體實(shí)例。這個(gè)對(duì)象是從圖2所示服務(wù)提供程序的XFS服務(wù)提供程序類獲得的。這一XFS服務(wù)提供程序類有虛擬方法,比方說(shuō)forExecuteRequest,如果沒有因?yàn)榉?wù)提供程序?qū)С鲱愔型瑯拥墓δ芏d,它就會(huì)啟動(dòng)請(qǐng)求對(duì)象。這樣,對(duì)于那些需要服務(wù)提供程序處理的WFP請(qǐng)求,比方說(shuō)WFPExecute,服務(wù)提供程序必須讓XFS服務(wù)提供程序基類中的請(qǐng)求對(duì)象實(shí)例化方法超載。將存款機(jī)服務(wù)提供程序用作一個(gè)例子,導(dǎo)出服務(wù)提供程序類的方法是,例如<pre listing-type="program-listing"><![CDATA[DepositorExecuteRequest*DepositorServiceProvider::forExecuteRequest(void){DepositorExecuteRequest*request;request=new DepositorExecuteRequest;return(request);]]></pre>1.應(yīng)用程序如何訪問(wèn)結(jié)果緩沖器(result buffer how do applicationsaccess)。
2.取消/退出應(yīng)當(dāng)是服務(wù)提供程序及時(shí)終止線程的職責(zé)。
已經(jīng)介紹了本發(fā)明的各種優(yōu)選實(shí)施方案,以此來(lái)說(shuō)明本發(fā)明的各種目的。應(yīng)當(dāng)認(rèn)識(shí)到,給出這些實(shí)施方案只是為了說(shuō)明本發(fā)明。各種改進(jìn)和修改對(duì)于本領(lǐng)域里的技術(shù)人員而言顯然不會(huì)偏離本發(fā)明的實(shí)質(zhì)和范圍。
本申請(qǐng)要求享受1999年11月1日提交的第60/162994號(hào)美國(guó)未授權(quán)申請(qǐng)的優(yōu)先權(quán),該申請(qǐng)的標(biāo)題是“擴(kuò)充自助式交易終端(XFS服務(wù)提供程序(serviceprovider)框架)金融業(yè)務(wù)服務(wù)提供程序框架的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及同時(shí)提交的律師文號(hào)為CITI0198/T0091-195417的申請(qǐng),該申請(qǐng)的標(biāo)題是“保證自助式金融交易終端和遠(yuǎn)程操作員接口之間通信安全的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及同時(shí)提交的律師文號(hào)為CITI0200/T0091-195419的申請(qǐng),該申請(qǐng)的標(biāo)題是“從遠(yuǎn)程計(jì)算機(jī)對(duì)自助式金融交易終端上的軟件進(jìn)行安裝和/或升級(jí)的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及同時(shí)提交的律師文號(hào)為CITI0202/T0091-195420的申請(qǐng),該申請(qǐng)的標(biāo)題是“在自助式金融交易終端上同時(shí)自動(dòng)安裝軟件的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及同時(shí)提交的律師文號(hào)是CITI0199/T0091-195421號(hào)的申請(qǐng),該申請(qǐng)的標(biāo)題為“自助式金融交易終端遠(yuǎn)程操作員接口的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及同時(shí)提交的律師文號(hào)為CITI0201/T0091-195422的申請(qǐng),該申請(qǐng)的標(biāo)題是“協(xié)調(diào)自助式金融交易終端上會(huì)話活動(dòng)的方法和系統(tǒng)”,這里將它引入作為參考。
本發(fā)明涉及同時(shí)提交的律師文號(hào)是CITI0203/T0091-195578的申請(qǐng),該申請(qǐng)的標(biāo)題為“為公用軟件的發(fā)布配置自助式金融交易終端的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及1999年11月1日提交的美國(guó)未授權(quán)專利申請(qǐng)第60/162673號(hào),該申請(qǐng)的標(biāo)題是“在自助式交易終端和遠(yuǎn)程操作員接口之間進(jìn)行安全通信的方法和系統(tǒng)(遠(yuǎn)程操作員接口安全)”,這里將它引入作為參考。
本申請(qǐng)涉及1999年11月1日提交的第60/163002號(hào)美國(guó)未授權(quán)申請(qǐng),該申請(qǐng)的標(biāo)題是“從遠(yuǎn)程計(jì)算機(jī)對(duì)自助式金融交易終端上的軟件進(jìn)行安裝和/或升級(jí)的方法和系統(tǒng)(遠(yuǎn)程安裝/軟件升級(jí))”,這里將它引入作為參考。
本申請(qǐng)涉及1999年11月1日提交的60/162815號(hào)美國(guó)未授權(quán)申請(qǐng),該申請(qǐng)的標(biāo)題為“在自助式金融交易終端上同時(shí)和自動(dòng)安裝軟件的方法和系統(tǒng)(全球安裝框架)”,這里將它引入作為參考。
本申請(qǐng)涉及1999年11月1日提交的60/163000號(hào)美國(guó)未授權(quán)申請(qǐng),該申請(qǐng)的標(biāo)題是“自助式金融交易終端遠(yuǎn)程操作員接口(遠(yuǎn)程操作員接口)的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及1999年11月1日提交的60/162816號(hào)美國(guó)未授權(quán)申請(qǐng),該申請(qǐng)的標(biāo)題是“協(xié)調(diào)自助式金融交易終端會(huì)話活動(dòng)(ATM會(huì)話管理程序)的方法和系統(tǒng)”,這里將它引入作為參考。
本申請(qǐng)涉及1999年11月1日提交的60/162672號(hào)美國(guó)未授權(quán)申請(qǐng),該申請(qǐng)的標(biāo)題是“在發(fā)布公用軟件的時(shí)候配置自助式金融終端的方法和系統(tǒng)(自助式金融終端的配置框架)”,這里將它引入作為參考。
這一專利文獻(xiàn)的內(nèi)容及其附圖的一部分包括受到版權(quán)保護(hù)的材料。版權(quán)所有人不反對(duì)任何人對(duì)這一專利文件或者專利內(nèi)容進(jìn)行傳真復(fù)制,只要是在專利和商標(biāo)局專利文件或者記錄中就行,但其它情況下保留版權(quán)。
權(quán)利要求
1.一種方法,用于在一個(gè)自助式交易終端上用服務(wù)提供程序框架獲得至少一種設(shè)備服務(wù),其特征在于,包括以下步驟自助式交易終端應(yīng)用程序接收數(shù)據(jù),該數(shù)據(jù)表示需要獲得交易終端設(shè)備服務(wù);所述交易終端應(yīng)用程序發(fā)出一個(gè)請(qǐng)求給一個(gè)XFS管理程序,以獲得交易終端設(shè)備服務(wù);XFS管理程序轉(zhuǎn)換這一請(qǐng)求,供服務(wù)提供程序處理;和這一服務(wù)提供程序獲得所述交易終端設(shè)備服務(wù)。
2.根據(jù)權(quán)利要求1的方法,其特征在于,交易終端應(yīng)用程序接收所述數(shù)據(jù)的步驟還包括接收用于表示需要獲得交易終端設(shè)備服務(wù)的數(shù)據(jù),這一交易終端設(shè)備服務(wù)跟一個(gè)設(shè)備有關(guān),這個(gè)設(shè)備是從一組交易終端設(shè)備中選擇出來(lái)的,這組交易終端設(shè)備包括一個(gè)存款機(jī)、一個(gè)打印機(jī)、一個(gè)讀卡機(jī)、一個(gè)安全門、一個(gè)自動(dòng)付款機(jī)和一個(gè)觸摸屏。
3.根據(jù)權(quán)利要求1的方法,其特征在于,發(fā)出請(qǐng)求給XFS管理程序的步驟還包括交易終端應(yīng)用程序?qū)FS管理程序進(jìn)行子程序調(diào)用,從一個(gè)服務(wù)提供程序那里獲得交易終端設(shè)備服務(wù)。
4.根據(jù)權(quán)利要求1的方法,其特征在于,服務(wù)提供程序轉(zhuǎn)換所述請(qǐng)求供處理的步驟還包括XFS管理程序?qū)⒁粋€(gè)子程序調(diào)用轉(zhuǎn)換成進(jìn)入所述服務(wù)提供程序的一個(gè)入口點(diǎn),供服務(wù)提供程序處理。
5.根據(jù)權(quán)利要求4的方法,其特征在于,所述將子程序調(diào)用轉(zhuǎn)換成進(jìn)入所述服務(wù)提供程序的一個(gè)入口點(diǎn)的步驟還包括啟動(dòng)跟所述請(qǐng)求有關(guān)的一個(gè)請(qǐng)求對(duì)象。
6.根據(jù)權(quán)利要求1的方法,其特征在于,轉(zhuǎn)換所述請(qǐng)求供服務(wù)提供程序處理的步驟還包括執(zhí)行所述服務(wù)提供程序。
7.根據(jù)權(quán)利要求6的方法,其特征在于,實(shí)施所述服務(wù)提供程序的步驟還包括啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的一個(gè)過(guò)程,以及需要用來(lái)處理所述請(qǐng)求的服務(wù)提供程序框架請(qǐng)求對(duì)象的至少一個(gè)過(guò)程。
8.根據(jù)權(quán)利要求7的方法,其特征在于,啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類和服務(wù)提供程序框架請(qǐng)求對(duì)象的步驟還包括啟動(dòng)從一個(gè)XFS服務(wù)提供程序基類服務(wù)提供程序請(qǐng)求對(duì)象類層次導(dǎo)出的服務(wù)提供程序的服務(wù)提供程序請(qǐng)求對(duì)象。
9.根據(jù)權(quán)利要求7的方法,其特征在于,啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類和服務(wù)提供程序框架請(qǐng)求對(duì)象的步驟還包括啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的過(guò)程和為從互相導(dǎo)出的多個(gè)請(qǐng)求類中選擇出來(lái)的一個(gè)請(qǐng)求類定義的服務(wù)提供程序框架請(qǐng)求對(duì)象的至少一個(gè)過(guò)程。
10.根據(jù)權(quán)利要求7的方法,其特征在于,啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類和框架請(qǐng)求對(duì)象的步驟還包括啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的實(shí)例和框架請(qǐng)求對(duì)象的至少一個(gè)實(shí)例,這個(gè)框架請(qǐng)求對(duì)象是為一個(gè)請(qǐng)求類定義的,這個(gè)請(qǐng)求類是從一組請(qǐng)求類選擇出來(lái)的,這組請(qǐng)求類包括一個(gè)SpiRequest類、一個(gè)SpiAsyncRequest類、一個(gè)請(qǐng)求專用類和一個(gè)服務(wù)提供程序?qū)S谜?qǐng)求類。
11.根據(jù)權(quán)利要求1的方法,其特征在于,服務(wù)提供程序獲得交易終端設(shè)備服務(wù)的步驟還包括服務(wù)提供程序框架通過(guò)類繼承調(diào)用服務(wù)提供程序一個(gè)導(dǎo)出對(duì)象中的至少一個(gè)虛擬方法,從而允許這個(gè)服務(wù)提供程序完成所述交易終端設(shè)備服務(wù)獨(dú)有的處理。
12.根據(jù)權(quán)利要求1的方法,其特征在于,服務(wù)提供程序獲得交易終端設(shè)備服務(wù)的步驟還包括在一個(gè)立即處理部分和一個(gè)延遲處理部分的至少一個(gè)中處理所述請(qǐng)求。
13.根據(jù)權(quán)利要求12的方法,其特征在于,在立即處理部分處理所述請(qǐng)求的步驟還包括調(diào)用所述服務(wù)提供程序一個(gè)入口點(diǎn)的時(shí)候,在XFS管理程序使用的線程內(nèi)進(jìn)行立即處理。
14.根據(jù)權(quán)利要求12的方法,其特征在于,在立即處理部分處理所述請(qǐng)求的步驟還包括一個(gè)服務(wù)提供程序框架用所述服務(wù)提供程序框架的一個(gè)立即處理方法,核實(shí)參數(shù)。
15.根據(jù)權(quán)利要求12的方法,其特征在于,在立即處理部分處理請(qǐng)求的步驟還包括所述服務(wù)提供程序框架在該服務(wù)提供程序的導(dǎo)出類中調(diào)用一個(gè)sp立即處理(spImmediateProcessing)方法。
16.根據(jù)權(quán)利要求15的方法,其特征在于,調(diào)用所述服務(wù)提供程序?qū)С鲱愔械膕p立即處理(spImmediateProcessing)方法的步驟還包括從sp立即處理(spImmediateProcessing)向XFS管理程序返回一個(gè)返回碼。
17.根據(jù)權(quán)利要求12的方法,其特征在于,處理立即處理部分的請(qǐng)求的步驟還包括由一個(gè)服務(wù)提供程序框架確定一個(gè)代碼,返回給所述XFS管理程序。
18.根據(jù)權(quán)利要求12的方法,其特征在于,處理立即處理部分中的請(qǐng)求的步驟還包括處理一個(gè)WFPCancelAsyncRequest請(qǐng)求、一個(gè)WFPSetTraceLevel請(qǐng)求和一個(gè)WFPUnload請(qǐng)求中的至少一個(gè),作為一個(gè)服務(wù)提供程序網(wǎng)絡(luò)發(fā)出的一個(gè)過(guò)程立即請(qǐng)求(a process immediaterequest)。
19.根據(jù)權(quán)利要求12的方法,其特征在于,處理延遲處理部分的請(qǐng)求的步驟還包括將一個(gè)請(qǐng)求對(duì)象放進(jìn)一個(gè)延遲處理隊(duì)列。
20.根據(jù)權(quán)利要求19的方法,其特征在于,處理延遲處理部分中的所述請(qǐng)求的步驟還包括一個(gè)延遲處理隊(duì)列管理程序線程從所述延遲處理隊(duì)列中彈出所述請(qǐng)求對(duì)象。
21.根據(jù)權(quán)利要求20的方法,其特征在于,處理延遲處理部分中的所述請(qǐng)求的步驟還包括在所述延遲處理隊(duì)列管理程序創(chuàng)建的一個(gè)延遲處理線程中處理所述請(qǐng)求。
22.根據(jù)權(quán)利要求12的方法,其特征在于,處理延遲處理部分中所述請(qǐng)求的步驟還包括一個(gè)服務(wù)提供程序框架為對(duì)所有服務(wù)提供程序來(lái)說(shuō)共同的請(qǐng)求進(jìn)行延遲處理。
23.根據(jù)權(quán)利要求12的方法,其特征在于,處理所述延遲處理部分的所述請(qǐng)求的步驟還包括由一個(gè)服務(wù)提供程序框架調(diào)用服務(wù)提供程序的一個(gè)導(dǎo)出類的一個(gè)sp延遲處理(spDeferredProcessing)方法。
24.根據(jù)權(quán)利要求23的方法,其特征在于,處理延遲處理部分中的請(qǐng)求的步驟還包括所述服務(wù)提供程序進(jìn)行滿足sp延遲處理(spDeferredProcessing)方法內(nèi)的請(qǐng)求所必需的所有處理。
25.根據(jù)權(quán)利要求24的方法,其特征在于,在延遲處理部分處理所述請(qǐng)求的步驟還包括服務(wù)提供程序公布一個(gè)請(qǐng)求完成事件。
26.根據(jù)權(quán)利要求25的方法,其特征在于,在延遲處理部分處理所述請(qǐng)求的步驟還包括結(jié)束一個(gè)線程并刪除一個(gè)請(qǐng)求對(duì)象。
27.根據(jù)權(quán)利要求12的方法,其特征在于,在延遲處理部分處理所述請(qǐng)求的步驟還包括一個(gè)服務(wù)提供程序框架公布一個(gè)請(qǐng)求完成事件。
28.根據(jù)權(quán)利要求1的方法,其特征在于,所述服務(wù)提供程序獲得所述設(shè)備服務(wù)的步驟還包括該服務(wù)提供程序訪問(wèn)至少一個(gè)請(qǐng)求參數(shù)。
29.根據(jù)權(quán)利要求28的方法,其特征在于,所述服務(wù)提供程序訪問(wèn)所述請(qǐng)求參數(shù)的步驟還包括訪問(wèn)從一組請(qǐng)求中選擇出來(lái)的一個(gè)請(qǐng)求的參數(shù),這一組請(qǐng)求包括一個(gè)WFPCancelAsyncRequest請(qǐng)求、一個(gè)WFPClose請(qǐng)求、一個(gè)WFPDeregister請(qǐng)求、一個(gè)WFPExecute請(qǐng)求、一個(gè)WFPGetInfo請(qǐng)求、一個(gè)WPFLock請(qǐng)求、一個(gè)WFPOpen請(qǐng)求、一個(gè)WFPRegister請(qǐng)求、一個(gè)WFPSetTraceLevel請(qǐng)求、一個(gè)WFPUnloadService請(qǐng)求和一個(gè)WFPUnlock請(qǐng)求。
30.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPCancelAsyncRequest請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)hService參數(shù)和reqID參數(shù)中至少一個(gè)參數(shù)的步驟。
31.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPClose請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)。
32.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPDeregister請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwEventClass參數(shù)、一個(gè)hWndReg參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)。
33.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPExecute請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwCommandData參數(shù)、一個(gè)IpCommandData參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)。
34.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPGetInfo請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwCagegory參數(shù)、一個(gè)IPQueryDetails參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)。
35.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPOpen請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)IpszLogicalName參數(shù)、一個(gè)hApp參數(shù)、一個(gè)IpszApplicationID參數(shù)、一個(gè)dwTraceLevel參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)、一個(gè)reqID參數(shù)、一個(gè)hPprovider參數(shù)、一個(gè)dwSPVersionsRequired參數(shù)、一個(gè)IpSPIVersion參數(shù)、一個(gè)dwSrvcVersionsRequired參數(shù)和一個(gè)IpSrvcVersion參數(shù)中的至少一個(gè)。
36.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPRegister請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwEventClass參數(shù)、一個(gè)hWndReg參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)。
37.根據(jù)權(quán)利要求29的方法,其特征在于,服務(wù)提供程序訪問(wèn)WFPSetTraceLevel請(qǐng)求的請(qǐng)求參數(shù)的步驟還包括訪問(wèn)hService和dwTraceLevel參數(shù)中的至少一個(gè)。
38.一種系統(tǒng),用于在一個(gè)自助式交易終端上用服務(wù)提供程序框架獲得至少一種設(shè)備服務(wù),包括自助式交易終端應(yīng)用程序接收數(shù)據(jù),說(shuō)明需要獲得交易終端設(shè)備服務(wù)的裝置;交易終端應(yīng)用程序發(fā)出一個(gè)請(qǐng)求給一個(gè)XFS管理程序,以獲得交易終端設(shè)備服務(wù)的裝置;XFS管理程序轉(zhuǎn)換這一請(qǐng)求,供服務(wù)提供程序處理的裝置;和這一服務(wù)提供程序獲得所述交易終端設(shè)備服務(wù)的裝置。
39.根據(jù)權(quán)利要求38的系統(tǒng),其特征在于,交易終端應(yīng)用程序接收所述數(shù)據(jù)的裝置還包括接收說(shuō)明需要獲得交易終端設(shè)備服務(wù)的數(shù)據(jù)的裝置,這一交易終端設(shè)備服務(wù)跟一個(gè)設(shè)備有關(guān),這個(gè)設(shè)備是從一組交易終端設(shè)備中選擇出來(lái)的,這組交易終端設(shè)備包括一個(gè)存款機(jī)、一個(gè)打印機(jī)、一個(gè)讀卡機(jī)、一個(gè)安全門、一個(gè)自動(dòng)付款機(jī)和一個(gè)觸摸屏。
40.根據(jù)權(quán)利要求38的系統(tǒng),其特征在于,發(fā)出請(qǐng)求給XFS管理程序的裝置還包括交易終端應(yīng)用程序?qū)FS管理程序進(jìn)行子程序調(diào)用,從一個(gè)服務(wù)提供程序那里獲得交易終端設(shè)備服務(wù)的裝置。
41.根據(jù)權(quán)利要求38的系統(tǒng),其特征在于,服務(wù)提供程序轉(zhuǎn)換所述請(qǐng)求供處理的裝置還包括XFS管理程序?qū)⒁粋€(gè)子程序調(diào)用轉(zhuǎn)換成進(jìn)入所述服務(wù)提供程序的一個(gè)入口點(diǎn),供服務(wù)提供程序處理的裝置。
42.根據(jù)權(quán)利要求4l的系統(tǒng),其特征在于,將子程序調(diào)用轉(zhuǎn)換成進(jìn)入所述服務(wù)提供程序的一個(gè)入口點(diǎn)的裝置還包括啟動(dòng)跟所述請(qǐng)求有關(guān)的一個(gè)請(qǐng)求對(duì)象的裝置。
43.根據(jù)權(quán)利要求38的系統(tǒng),其特征在于,轉(zhuǎn)換所述請(qǐng)求供服務(wù)提供程序處理的裝置還包括執(zhí)行所述服務(wù)提供程序的裝置。
44.根據(jù)權(quán)利要求43的系統(tǒng),其特征在于,執(zhí)行所述服務(wù)提供程序的裝置還包括啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的一個(gè)實(shí)例,以及啟動(dòng)需要用來(lái)處理所述請(qǐng)求的服務(wù)提供程序框架請(qǐng)求對(duì)象的至少一個(gè)實(shí)例(instance)的裝置。
45.根據(jù)權(quán)利要求44的系統(tǒng),其特征在于,啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類和服務(wù)提供程序框架請(qǐng)求對(duì)象的裝置還包括啟動(dòng)從一個(gè)XFS服務(wù)提供程序基類服務(wù)提供程序請(qǐng)求對(duì)象類層次導(dǎo)出的服務(wù)提供程序的服務(wù)提供程序請(qǐng)求對(duì)象的一個(gè)具體實(shí)例的裝置。
46.根據(jù)權(quán)利要求44的系統(tǒng),其特征在于,啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類和服務(wù)提供程序框架請(qǐng)求對(duì)象的裝置還包括啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的實(shí)例和為從互相導(dǎo)出的多個(gè)請(qǐng)求類中選擇出來(lái)的一個(gè)請(qǐng)求類定義的服務(wù)提供程序框架請(qǐng)求對(duì)象的至少一個(gè)實(shí)例的裝置。
47.根據(jù)權(quán)利要求44的系統(tǒng),其特征在于,啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的實(shí)例和框架請(qǐng)求對(duì)象的裝置還包括啟動(dòng)服務(wù)提供程序框架XFS服務(wù)提供程序基類的實(shí)例和框架請(qǐng)求對(duì)象的至少一個(gè)實(shí)例的裝置,這個(gè)框架請(qǐng)求對(duì)象是為一個(gè)請(qǐng)求類定義的,這個(gè)請(qǐng)求類是從一組請(qǐng)求類選擇出來(lái)的,這組請(qǐng)求類包括一個(gè)SpiRequest類、一個(gè)SpiAsyncRequest類、一個(gè)請(qǐng)求專用類和一個(gè)服務(wù)提供程序?qū)S谜?qǐng)求類。
48.根據(jù)權(quán)利要求38的系統(tǒng),其特征在于,服務(wù)提供程序獲得交易終端設(shè)備服務(wù)的裝置還包括服務(wù)提供程序框架通過(guò)類繼承調(diào)用服務(wù)提供程序一個(gè)導(dǎo)出對(duì)象中的至少一個(gè)虛擬方法,從而允許這個(gè)服務(wù)提供程序完成所述交易終端設(shè)備服務(wù)獨(dú)有的處理的裝置。
49.根據(jù)權(quán)利要求38的系統(tǒng),其特征在于,服務(wù)提供程序獲得交易終端設(shè)備服務(wù)的裝置還包括在一個(gè)立即處理部分和一個(gè)延遲處理部分的至少一個(gè)中處理所述請(qǐng)求的裝置。
50.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,在立即處理部分處理所述請(qǐng)求的裝置還包括調(diào)用所述服務(wù)提供程序一個(gè)入口點(diǎn)的時(shí)候,在XFS管理程序使用的線程內(nèi)進(jìn)行立即處理的裝置。
51.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,在立即處理部分處理所述請(qǐng)求的裝置還包括一個(gè)服務(wù)提供程序框架核實(shí)參數(shù)的裝置。
52.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,在立即處理部分處理請(qǐng)求的裝置還包括所述服務(wù)提供程序框架在該服務(wù)提供程序的導(dǎo)出類中調(diào)用一個(gè)sp立即處理(spImmediateProcessing)方法的步驟。
53.根據(jù)權(quán)利要求52的系統(tǒng),其特征在于,調(diào)用所述服務(wù)提供程序的導(dǎo)出類中sp立即處理(spImmediateProcessing)方法的裝置還包括從sp立即處理(spImmediateProcessing)向XFS管理程序返回一個(gè)返回碼的裝置。
54.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,處理立即處理部分的請(qǐng)求的裝置還包括一個(gè)服務(wù)提供程序框架確定一個(gè)代碼,返回給所述XFS管理程序的裝置。
55.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,處理立即處理部分中的請(qǐng)求的裝置還包括處理一個(gè)WFPCancelAsyncRequest請(qǐng)求、一個(gè)WFPSetTraceLevel請(qǐng)求和一個(gè)WFPUnload請(qǐng)求中的至少一個(gè),作為一個(gè)服務(wù)提供程序網(wǎng)絡(luò)發(fā)出的一個(gè)過(guò)程立即請(qǐng)求(a process immediaterequest)的步驟。
56.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,處理延遲處理部分的請(qǐng)求的裝置還包括將一個(gè)請(qǐng)求對(duì)象放進(jìn)一個(gè)延遲處理隊(duì)列的裝置。
57.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,處理延遲處理部分中的所述請(qǐng)求的裝置還包括一個(gè)延遲處理隊(duì)列管理程序線程從一個(gè)延遲處理隊(duì)列中彈出一個(gè)請(qǐng)求對(duì)象的裝置。
58.根據(jù)權(quán)利要求57的系統(tǒng),其特征在于,處理延遲處理部分中的所述請(qǐng)求的裝置還包括在所述延遲處理隊(duì)列管理程序創(chuàng)建的一個(gè)延遲處理線程中處理所述請(qǐng)求的步驟。
59.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,處理延遲處理部分中所述請(qǐng)求的裝置還包括一個(gè)服務(wù)提供程序框架為對(duì)所有服務(wù)提供程序來(lái)說(shuō)共同的請(qǐng)求進(jìn)行延遲處理的裝置。
60.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,處理所述延遲處理部分的所述請(qǐng)求的裝置還包括一個(gè)服務(wù)提供程序框架調(diào)用服務(wù)提供程序的一個(gè)導(dǎo)出類的一個(gè)sp延遲處理(spDeferredProcessing)方法的裝置。
61.根據(jù)權(quán)利要求60的系統(tǒng),其特征在于,處理延遲處理部分中的請(qǐng)求的裝置還包括所述服務(wù)提供程序進(jìn)行滿足sp延遲處理(spDeferredProcessing)方法內(nèi)的請(qǐng)求所必需的所有處理的裝置。
62.根據(jù)權(quán)利要求61的系統(tǒng),其特征在于,在延遲處理部分處理所述請(qǐng)求的裝置還包括服務(wù)提供程序公布一個(gè)請(qǐng)求完成事件的裝置。
63.根據(jù)權(quán)利要求62的系統(tǒng),其特征在于,在延遲處理部分處理所述請(qǐng)求的裝置還包括結(jié)束一個(gè)線程并刪除一個(gè)請(qǐng)求對(duì)象的裝置。
64.根據(jù)權(quán)利要求49的系統(tǒng),其特征在于,在延遲處理部分處理所述請(qǐng)求的裝置還包括一個(gè)服務(wù)提供程序框架公布一個(gè)請(qǐng)求完成事件的裝置。
65.根據(jù)權(quán)利要求38的系統(tǒng),其特征在于,所述服務(wù)提供程序獲得所述設(shè)備服務(wù)的裝置還包括該服務(wù)提供程序訪問(wèn)至少一個(gè)請(qǐng)求參數(shù)的裝置。
66.根據(jù)權(quán)利要求65的系統(tǒng),其特征在于,所述服務(wù)提供程序訪問(wèn)所述請(qǐng)求參數(shù)的裝置還包括訪問(wèn)從一組請(qǐng)求中選擇出來(lái)的一個(gè)請(qǐng)求的參數(shù)的裝置,這一組請(qǐng)求包括一個(gè)WFPCancelAsyncRequest請(qǐng)求、一個(gè)WFPClose請(qǐng)求、一個(gè)WFPDeregister請(qǐng)求、一個(gè)WFPExecute請(qǐng)求、一個(gè)WFPGetInfo請(qǐng)求、一個(gè)WPFLock請(qǐng)求、一個(gè)WFPOpen請(qǐng)求、一個(gè)WFPRegister請(qǐng)求、一個(gè)WFPSetTraceLevel請(qǐng)求、一個(gè)WFPUnloadService請(qǐng)求和一個(gè)WFPUnlock請(qǐng)求。
67.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPCancelAsyncRequest請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)hService參數(shù)和reqID參數(shù)中至少一個(gè)參數(shù)的裝置。
68.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPClose請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)的步驟。
69.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPDeregister請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwEventClass參數(shù)、一個(gè)hWndReg參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)的裝置。
70.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPExecute請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwCommandData參數(shù)、一個(gè)IpCommandData參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)的裝置。
71.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPGetInfo請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwCagegory參數(shù)、一個(gè)IPQueryDetails參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)的裝置。
72.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPOpen請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)IpszLogicalName參數(shù)、一個(gè)hApp參數(shù)、一個(gè)IpszApplicationID參數(shù)、一個(gè)dwTraceLevel參數(shù)、一個(gè)dwTimeOut參數(shù)、一個(gè)hWnd參數(shù)、一個(gè)reqID參數(shù)、一個(gè)hPprovider參數(shù)、一個(gè)dwSPVersionsRequired參數(shù)、一個(gè)IpSPIVersion參數(shù)、一個(gè)dwSrvcVersionsRequired參數(shù)和一個(gè)IpSrvcVersion參數(shù)中的至少一個(gè)的裝置。
73.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPRegister請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)一個(gè)hService參數(shù)、一個(gè)dwEventClass參數(shù)、一個(gè)hWndReg參數(shù)、一個(gè)hWnd參數(shù)和一個(gè)reqID參數(shù)中的至少一個(gè)的裝置。
74.根據(jù)權(quán)利要求66的系統(tǒng),其特征在于,服務(wù)提供程序訪問(wèn)WFPSetTraceLevel請(qǐng)求的請(qǐng)求參數(shù)的裝置還包括訪問(wèn)hService和dwTraceLevel參數(shù)中的至少一個(gè)的裝置。
75.一種方法,用于在一個(gè)自助式交易終端上用服務(wù)提供程序框架獲得至少一種設(shè)備服務(wù),其特征在于,包括以下步驟所述自助式交易終端應(yīng)用程序接收數(shù)據(jù),說(shuō)明需要實(shí)現(xiàn)從一組設(shè)備功能中選擇出來(lái)的一個(gè)交易終端設(shè)備功能,這一組設(shè)備功能包括一個(gè)存款機(jī)功能、一個(gè)打印機(jī)功能、一個(gè)讀卡機(jī)功能、一個(gè)安全門功能、一個(gè)自動(dòng)付款機(jī)功能和一個(gè)觸摸屏功能;所述交易終端應(yīng)用程序向中心交易終端監(jiān)視和管理應(yīng)用程序軟件的一個(gè)較低層進(jìn)行子程序調(diào)用,從一個(gè)服務(wù)提供程序請(qǐng)求獲得設(shè)備服務(wù);XFS管理程序?qū)⑤^低層上的子程序調(diào)用轉(zhuǎn)換成一個(gè)功能類請(qǐng)求,作為進(jìn)入所述服務(wù)提供程序的一個(gè)入口點(diǎn),供所述服務(wù)提供程序處理,這一功能請(qǐng)求是從一組功能請(qǐng)求中選擇出來(lái)的,這一組功能請(qǐng)求包括一個(gè)WFPCancelAsyncRequest請(qǐng)求、一個(gè)WFPClose請(qǐng)求、一個(gè)WFPDeregister請(qǐng)求、一個(gè)WFPExecute請(qǐng)求、一個(gè)WFPGetInfo請(qǐng)求、一個(gè)WPFLock請(qǐng)求、一個(gè)WFPOpen請(qǐng)求、一個(gè)WFPRegister請(qǐng)求、一個(gè)WFPSetTraceLevel請(qǐng)求、一個(gè)WFPUnloadService請(qǐng)求和一個(gè)WFPUnlock請(qǐng)求;和所述服務(wù)提供程序?qū)⑺龉δ茴愓?qǐng)求的一個(gè)結(jié)果返回給所述應(yīng)用程序。
全文摘要
一種方法和系統(tǒng),用于利用一個(gè)服務(wù)提供程序框架獲得ATM設(shè)備服務(wù),其中數(shù)據(jù)是由一個(gè)ATM應(yīng)用程序收到的,這個(gè)ATM應(yīng)用程序發(fā)出一個(gè)請(qǐng)求給一個(gè)XFS管理程序,以獲得所述ATM設(shè)備服務(wù)。這一XFS管理程序?qū)⑦@一子程序調(diào)用轉(zhuǎn)換成到所述服務(wù)提供程序的一個(gè)入口點(diǎn),供所述服務(wù)提供程序處理,并啟動(dòng)跟所述請(qǐng)求有關(guān)的一個(gè)請(qǐng)示對(duì)象。在處理完這一請(qǐng)求以后,所述服務(wù)提供程序?qū)⑦@一結(jié)果返回給所述ATM應(yīng)用程序。
文檔編號(hào)G07F19/00GK1305148SQ0013281
公開日2001年7月25日 申請(qǐng)日期2000年11月1日 優(yōu)先權(quán)日1999年11月1日
發(fā)明者邁克爾·杰伊·金 申請(qǐng)人:城市集團(tuán)發(fā)展中心有限公司