WOSA/XFS及SP綜述

轉自  http://blog.csdn.net/andyhou/article/details/6888416安全

 

 前言:
        寫給ATM硬件和軟件人員的無言歌。
        但願對工做有所幫助,可以少花些時間在解決相關問題上,多些時間作本身喜歡作的事情。
        必定意義上來說,任何ATM從業人員都應該看下這篇文章。

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

        該如何組織內容,實際上是個比較難辦的問題,只能走到哪是哪了,但願能在文中撿到一些珍珠,若是有的話。

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

        WOSA/XFS規範目前使用普遍的版本有1.0、1.十一、2.0、3.0、3.0一、3.0二、3.0三、3.10一共8個版本,其中常說誰的SP(Service Provider)符合WOSA/XFS2.0仍是3.0規範,就是指上面提到的WOSA/XFS自己的規範版本。若是你見到某些廠家的SP版本並無上面提到的幾個版本,那說明廠家的SP版本是本身廠家內部定的版本號,與WOSA/XFS規範的版本沒有必然聯繫,可是廠家的SP版本必定能夠對應到符合上面幾個版本中的一個版本。目前最新的是WOSA/XFS 3.10規範。

        對於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,那到底它包含什麼內容?
        1、    一組文檔,能夠認爲是個軟件概要設計說明書,只是設計,沒有代碼實現
        2、    上面提到的XFS Manager的三個DLL
        3、    每一個廠商按照文檔實現的一組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測試工具的菜單或者工具欄中直接找到,一些步驟中出現的參數選擇,基本能夠採用默認的參數便可):
        1、    在SP測試工具中調用WFSStartUp, 目的是把整個SP的環境啓起來,包括把XFS Manager裝載到測試工具的進程空間中。
        2、    在SP測試工具中調用WFSOpen,目的是打開某個硬件模塊,SP測試工具通常一次只能打開一種類型的硬件設備。其中要注意的是有個參數叫過Logical Name「邏輯名」,這個必定要填對,通常的廠家都有固定的習慣,好比Diebold會叫NT_IDC、NT_CDM等,打開哪一個設備就填上對應的名字。全部可能的名字在上面提到的註冊表項LOGICAL_SERVICES下面,若是不清楚,你能夠看看哪一個名字象你要測試的設備,填上這個名字通常錯不了。
        3、    在SP測試工具中調用WFSRegister,目的是註冊一下,以便可以接收到SP傳上來的事件。
        4、    在SP測試工具中調用WFSLock,這步基本能夠省略。目的是鎖定設備,主要是防止同時還有其餘程序在訪問該設備,達到獨佔設備的目的。
        5、    而後調用WFSGetInfo來獲取設備的信息,至關於Read設備;也能夠調用WFSExecute來對設備發命令,至關於Write設備,這兩個是一個對應。基本全部的命令都是經過這兩個接口來完成的,其餘步驟都是準備工做而已。對於WFSGetInfo和WFSExecute是各自包含一組命令,能夠選擇單獨的命令來執行。至於每一個命令的意思,要看WOSA/XFS的那些規範文檔了,每一個命令都有詳細的描述。
        6、    全部測試完成後,調用WFSUnLock,用來解鎖,若是第四步有鎖定設備。
        7、    在SP測試工具中調用WFSUnRegister,目的是反註冊一下,代表再也不接收SP傳上來的事件了。
        8、    在SP測試工具中調用WFSClose,目的是關閉設備,好比關閉串口通信等。
        9、    在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硬件的命令是暫時不會過期的。架構

相關文章
相關標籤/搜索