WOSA/XFS結構、背景等介紹

前言:
        寫給ATM硬件和軟件人員的無言歌。
        希望對工作有所幫助,能夠少花些時間在解決相關問題上,多些時間做自己喜歡做的事情。
        一定意義上來講,任何ATM從業人員都應該看下這篇文章。 

正文:
        
隨着符合WOSA/XFS規範的跨平臺ATMC軟件日益鋪開,確實有很多人需要稍微深入的知道一些相關概念,但沒有這樣的文章來介紹,並且可能在很長的時間內,都不會有這種文章,所以就出現了這篇你現在所看到文章。

        該如何組織內容,其實是個比較難辦的問題,只能走到哪是哪了,希望能在文中撿到一些珍珠,如果有的話。

        我們先從WOSA/XFS的歷史來簡單的看一下,搞清楚WOSA/XFS的歷史也有助於理解它。

        WOSA/XFS規範目前使用廣泛的版本有1.0、1.11、2.0、3.0、3.01、3.02、3.03一共7個版本,其中常說誰的 SP(Service Provider)符合WOSA/XFS2.0還是3.0規範,就是指上面提到的WOSA/XFS本身的規範版本。如果你見到某些廠家的SP版本並沒有上面提到的幾個版本,那說明廠家的SP版本是自己廠家內部定的版本號,與WOSA/XFS規範的版本沒有必然聯繫,但是廠家的SP版本一定可以對應到符合上面幾個版本中的一個版本。目前最新的是WOSA/XFS 3.03規範。

        對於WOSA/XFS,XFS Manager是一定要提到的。我們簡單看看WOSA/XFS的架構,這個大家應該都比較熟悉了。中間是XFS Manager,上面是ATMC,下面是SP,其中XFS Manager對上面有API(Application Programming Interface)接口,對下面有SPI(Service Provider Interface)接口。

        XFS Manager是WOSA/XFS規範的核心,它規定了API和SPI接口,從而達到統一上面的ATMC和下面的SP的功能,ATM軟件能夠實現所謂的跨平臺是靠它來主要實現的。

         XFS Manager實際上是三個DLL組成,在系統目錄\Windows\System32下面,分別是MSXFS.DLL(基本的XFS API and SPI函數,在Include目錄下的XFSAPI.H和XFSSPI.H中定義)、XFS_SUPP.DLL(一些支持函數,在Include目錄下的 XFSADMIN.H中定義)、XFS_CONF.DLL(配置函數,在Include目錄下的Xfsconf.h中定義)。

        我們上面提到的7個版本,可以通過找到MSXFS.DLL文件,然後右鍵查看其文件屬性,裏面有個版本號,從而就知道某臺機器運行的SP符合哪個版本的WOSA/XFS規範,這是個判斷WOSA/XFS版本的一個有效辦法。

        XFS Manager的這三個DLL是公開免費使用的,在WOSA/XFS 2.0以前,XFS Manager是由微軟公司開發的,從WOSA/XFS 3.0以後轉到CEN/XFS來開發,實際上是NEXUS公司做爲主導在維護開發。如果是CEN/XFS的會員,則可以獲得XFS Manager的源代碼,目前幾大廠商都是會員,所以基本都有XFS Manager的源代碼。

        我們總是在說WOSA/XFS,那到底它包含什麼內容?
        一、    一組文檔,可以認爲是個軟件概要設計說明書,只是設計,沒有代碼實現
        二、    上面提到的XFS Manager的三個DLL
        三、    每個廠商按照文檔實現的一組DLL,叫過SP

        前兩個先不管,我們看第三個,這個是我們常見的。WOSA/XFS規定SP必須是基於DLL形式的,不管你做成什麼樣子,對於XFS Manager向下看,必須是看到導出SPI接口的SP DLL。

        下面看看跟WOSA/XFS有關的註冊表配置,對於WOSA/XFS2.0,所有的配置在HKEY_CLASSES_ROOT\WOSA /XFS_ROOT,對於WOSA/XFS3.0,配置分到兩個地方,HKEY_LOCAL_MACHINE\SOFTWARE\XFS和 HKEY_USERS\.DEFAULT\XFS。WOSA/XFS3.0把註冊表分爲兩個部分,是考慮安全性,不同的登錄用戶看到的設備可能是不一樣的。

        不管版本的差別,註冊表主要的內容有三項,一項是XFS_MANAGER,屬於XFS Manager本身的配置項;一項是LOGICAL_SERVICES,是給ATMC應用用的,區別每種設備;一項是 SERVICE_PROVIDERS,具體對應到某個硬件設備;另外一般有PHYSICAL_SERVICES,存放廠商的硬件配置。對於具體的每一項的說明,請參考文檔《cwa14050-01-2000-Nov.pdf》的22頁到25頁內容。建議看看這份文檔,對於從事ATM工作有很大幫助,它的細節可以不用管,只要知道一些大概的概念即可。

        一般一個廠家的SP,只需要十幾個文件即可,內容比較少,但是象NCR、Diebold等的SP,安裝起來會花上一些時間,因爲裏面包含了硬件診斷工具、配置工具等實際上跟SP沒有關係的東西。

        因爲SP的接口是統一的,所以我們會看到很多廠家提供的有XFS測試工具,能夠測試多個廠家的SP,比如Wincor的WosaTest,Diebold的XTG等,這些工具可以互換使用的,反正接口都是符合一個標準的。

        因爲很多硬件工程師可能需要用到這些SP測試工具,這裏簡單說一下怎樣使用這些工具,當然,如果想完全使用該工具的每個功能,不僅僅需要測試工具本身的說明,熟悉WOSA/XFS的規範是必要的,所以基本上能操作即可。

        一個完整的SP測試操作如下(下面的操作一般可以在SP測試工具的菜單或者工具欄中直接找到,一些步驟中出現的參數選擇,基本可以採用默認的參數即可):
        一、    在SP測試工具中調用WFSStartUp, 目的是把整個SP的環境啓起來,包括把XFS Manager裝載到測試工具的進程空間中。
        二、    在SP測試工具中調用WFSOpen,目的是打開某個硬件模塊,SP測試工具一般一次只能打開一種類型的硬件設備。其中要注意的是有個參數叫過 Logical Name“邏輯名”,這個一定要填對,一般的廠家都有固定的習慣,比如Diebold會叫NT_IDC、NT_CDM等,打開哪個設備就填上對應的名字。所有可能的名字在上面提到的註冊表項LOGICAL_SERVICES下面,如果不清楚,你可以看看哪個名字象你要測試的設備,填上這個名字一般錯不了。
        三、    在SP測試工具中調用WFSRegister,目的是註冊一下,以便能夠接收到SP傳上來的事件。
        四、    在SP測試工具中調用WFSLock,這步基本可以省略。目的是鎖定設備,主要是防止同時還有其他程序在訪問該設備,達到獨佔設備的目的。
        五、    然後調用WFSGetInfo來獲取設備的信息,相當於Read設備;也可以調用WFSExecute來對設備發命令,相當於Write設備,這兩個是一個對應。基本所有的命令都是通過這兩個接口來完成的,其他步驟都是準備工作而已。對於WFSGetInfo和WFSExecute是各自包含一組命令,可以選擇單獨的命令來執行。至於每個命令的意思,要看WOSA/XFS的那些規範文檔了,每個命令都有詳細的描述。
        六、    所有測試完成後,調用WFSUnLock,用來解鎖,如果第四步有鎖定設備。
        七、    在SP測試工具中調用WFSUnRegister,目的是反註冊一下,表明不再接收SP傳上來的事件了。
        八、    在SP測試工具中調用WFSClose,目的是關閉設備,比如關閉串口通訊等。
        九、    在SP測試工具中調用WFSCleanUp,目的是釋放整個SP的運行環境,把使用的相關文件和資源全部恢復。

        至此,一個完整的SP測試流程已經完成了,可以經過這幾步對設備進行測試,多熟悉下一個SP測試工具,就會明白每個命令是幹什麼的了。對於硬件工程師,如果在知道廠商硬件診斷工具之外,再知道怎樣操作這個,對於診斷系統的問題也是有很大幫助的,尤其是在運行跨平臺軟件的機器上。目前最好的SP測試工具應該是Wincor的測試工具,使用的比較廣泛,其他廠商的各有特點。

        下面講講WOSA/XFS規範文檔的內容結構。WOSA/XFS3.0規範文檔大概分爲四十多個pdf文檔,都可以免費下載到,下載地址在本文附錄中提到。

        其中第一份文檔最重要,是講整個WOSA/XFS的架構、配置信息、API/SPI、內存管理等內容,稍微難懂了些,如果能看看則對整個WOSA/XFS有所瞭解。介於閱讀英文的規範對於中國人比較難,所以會有一定的障礙。

        第二份文檔講WOSA/XFS規範都涉及到了哪些模塊等信息,對每個模塊進行了簡單的綜述。

        從第三份文檔開始,依次介紹每種設備的命令,其實都是在講WFSGetInfo和WFSExecute,只是參數不同。每份文檔的結構大同小異,先是講 WFSGetInfo的各個命令及其參數、注意事項等;接着講WFSExecute的各個命令及其參數、注意事項等;接着講該設備可能發生的 Events;最後是C語言的頭文件。

        從大概第16份文檔開始,是講怎樣從WOSA/XFS2.0規範遷移到WOSA/XFS3.0規範,主要是提供給舊版本的SP用的,可以不看它們。

        從大概第29份文檔開始,是講關於SNMP監控的,目前可以不看它們。

        那麼目前只看前十五份文檔即可。

        WOSA/XFS規範文檔目前沒有中文的,並且也不要指望CEN/XFS會出中文文檔,因爲翻譯過程中會丟掉很多重要信息,畢竟是一個嚴密的規範,不是小說,漏掉點內容問題不大,這個翻譯錯了,就會有誤解。但是,也不是不可能翻譯成中文版的,前提是必須非常熟悉WOSA/XFS規範,才能高屋建瓴的來翻譯這些文檔。國內也有幾個廠家翻譯過WOSA/XFS規範,只是沒有對外公開其翻譯的內容。

        當你看到了這麼多文檔後,就會理解爲什麼不同的廠家對WOSA/XFS規範會有不同的理解。因爲硬件是多樣性的,能夠在一份規範中把所有硬件都統一進來是非常不容易的事情。可能有些細節是沒有考慮到的,但是我們看到WOSA/XFS規範也是在不斷的進步和完善,不斷隨着市場的變化推出新的規範版本。

        WOSA/XFS規範不久會因爲微軟推出.NET平臺受到一些影響,但是其本質上是不會改變的,至多是XFS Manager和SP的代碼會重寫,那些關於ATM硬件的命令是暫時不會過時的。

附錄:
        在網址http://www.cenorm.be/cenorm/businessdomains/businessdomains/isss/cwa/banking+peripherals.asp 
爲有關WOSA/XFS的文檔下載地址,其中"CWA 13449"爲WOSA/XFS的2.0版本,"CWA 14050"爲WOSA/XFS的3.03版本
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章