前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的soap協議主題范文,僅供參考,歡迎閱讀并收藏。
AMBA 3 高級擴展界面(AXI)協議由于大幅度擴展了AMBA 2.0片上總線的性能和靈活性,因而具備了更多的優勢,同時也增加了設計的復雜度。DesignWare IP為AMBA 3 AXI協議的解決方案讓設計者能快速、簡便地集成此高速協議,同時降低了風險,加快了設計周期。為AMBA 3 AXI協議的DesignWare IP解決方案提供了存取三種主要需求元件的權限,包括綜合實現IP、驗證IP和使用Synopsys的CoreAssembler工具實現子系統自動集成。在基于AMBA 3 AXI協議的下一代高速設計中,這三部分的組合使得設計人員能充分降低設計和驗證時間。
技術背景――AMBA 3 AXI協議為了正確領會面向基于AMBA 3 AXI協議的工程設計挑戰的復雜性,我們必須理解AMBA 3 AXI協議自身的技術特點。AMBA 3 AXI協議是專門為實現下一代IC設計,由包括Synopsys在內的30多家公司合作開發的。AMBA 3 AXI協議定義了一種單向通道的架構,它能有效使用寄存器片斷實現管道的高速連接。它支持多重突發事務、完成無序處理事務,和高效使用讀、寫和地址/控制操作的通道的聯系,能使系統具有較高的性能和效率。這種性能只受設備能力的限制。
AMBA 3 AXI協議:通道的作用AMBA 3 AXI協議的架構和以前的AMBA協議有很大不同,因為它引入了通道。五個獨立通道均由一組信息信號組成,使用一種雙向“VALID”和“READY”的握手機制。當通道具有有效數據或者控制信息時,信息源使用“VALID”信號。目標則使用“READY”信號表示可以接收數據。讀數據和寫數據的通道均包含“LAST”信號來表示最終的數據傳輸。讀和寫處理都有各自的地址通道。地址通道包含了某種事務處理所需要的所有地址和控制信息。讀數據的通道傳輸由從模塊到主模塊的讀數據和讀響應信息。讀數據的通道包含了8、16、32、64、128、256、512或1024位的數據總線,以及用來表示讀處理過程完成狀態的讀響應信息。寫數據的通道傳輸由主模塊到從模塊的寫數據和寫響應信息。數據的通道包含了8、16、32、64、128、256、512或1024位的數據總線,同時對每8個數據位使用一個字節用來表示數據總線中哪個字節是有效的。支持非對齊的傳輸能更有效地使用總線以獲得更高的性能,更低的存取時間和更高帶寬。
AMBA 3 AXI的DesignWare IP解決方案隨著AMBA 3 AXI協議的復雜化,基于此協議的子系統的設計和驗證成為一關鍵問題,它需要大量的專門技術。DesignWare IP的解決方案專門為簡化設計任務,給工程師提供存取通用設計和驗證IP模塊,以加快從模塊到子系統級別的實現和驗證過程。另外,coreAssember工具可自動集成子系統和測試實例。 設計人員使用為AMBA 3 AXI的DesignWare IP的解決方案可以快速集成,綜合和驗證基于AMBA 3 AXI的設計。
為AMBA 3 AXI的DesignWare綜合IPDesignWare綜合IP是解決方案三部分的第一部分,它可以快速實現高帶寬,低存取時間和高性能的基于AMBA 3 AXI的設計。綜合IP包含三個關鍵元素:互連總線制造,AXI到AHB的橋,主模塊和從模塊的通用接口。這些是新建任何片上系統的基本構建模塊,它們使設計人員易于實現基于AMBA 3 AXI的架構。這些IP元件也能幫助已有IP和專門應用模塊轉化為基于AMBA 3 AXI,從而保證了產品的高重用性。
為AMBA 3 AXI的DesignWare Interconnect Fabric(DW_axi)具有的特點使其目前為止是基于AMBA 3 AXI協議設計的標準互連制造的最佳方案。DW_axi靈活的配置為工程師提供了一系列特色來匹配他們的具有優先順序的設計需求。DW_axi是AMBA 3 AXI協議的RTL級互連實現,它可以同時實現不同主從模塊之間的傳輸。它能配置支持最多16對支持所有協議中指定的地址和數據寬度的主模塊和從模塊。DW_axi是基于多重地址、多重數據總線架構的,它有選項內置于系統譯碼器。每個處理過程在地址通道包含有地址和控制信息,它們描述了所要傳輸的數據的自然狀態。數據在主模塊到從模塊之間傳輸時,從模塊使用寫數據通道,主模塊使用讀數據通道。在寫處理過程中,所有數據均從主模塊流向從模塊,AMBA 3 AXI協議具有一個額外的寫響應通道來允許從模塊給主模塊發出信號表示寫過程的完成。這種多層互連架構允許在所有5個AMBA 3 AXI的通道的不同主/從模塊對之間進行并行傳輸。因此其系統帶寬并不受DW_axi限制,而是受外部主從模塊的限制。
除了提供組合式地址和數據通道的控制以外,DW_axi提供了內部和外部流水線操作,稱為寄存器分割(register slicing)。它能使設計人員可以得到盡可能高的工作頻率、帶寬和性能。可配置的內部和外部寄存器分割能應用于單個的通道,無論是全路徑還是向前控制路徑,以提供時間和制造優化性能的最大靈活性。為優化SW_axi以獲得最佳性能和最小面積,它包含了一個從屬的可見特征,當不是所有的從模塊對所有的主模塊是可見的情況下可以使用該特征。它定制主模塊的可見性用于對于正常和boot模式的從模塊的存取,結果使得任何邏輯的復雜度降低。這樣能以最少的邏輯得到優化的性能。
AMBA 3 AXI協議的一個關鍵目標是能互用已有的AMBA 2.0技術。為達到互用的目標,DesignWare IP解決方案包含了一個AMBA 3 AXI的橋梁,連接AMBA 2.0 AHB,稱為DW_axi_x2h。DW_axi_x2h支持和完整的基于AMBA 2.0的子系統之間的聯系,可以提供已有的基于AHB的子系統的復用。在lite模式中,單獨的受控元件可以直接連接至基于AMBA 3 AXI協議的總線。這種互用的一個明顯的優點在于設計人員已經擁有了大量的經DesignWare驗證的AMBA 2.0 AHB和APB的綜合IP和驗證IP。它能提高復用的選擇,增加了設計人員用于有差異的設計的時間,而不用于通用子系統的創建和驗證。DesignWare綜合IP解決方案包括了另外一些基于模塊的通用AMBA 2.0的設計,比如AHB總線制造,DW_ahb,APB橋和制造,DW_apb,和一些設備,例如DMA、內存控制器、I2C、SSI、GPTI、RTC,定時器和中斷控制器等。
還有一些可復用的基礎元件也易于實現基于AMBA 3 AXI協議設計,它們就是DesignWare的為主模塊和從模塊的通用接口模塊,稱為DW_axi_gm/gs。DW_axi_gm/gs采用了一種通用的接口,減少了從定制的IP或者專用應用模塊轉為基于AMBA 3 AXI協議的總線的時間。當定制的應用或者IP連接至基于AMBA 3 AXI的總線時,設計人員不用擔心協議的細節,因為DW_axi/gs模塊能處理大部分AMBA 3 AXI接口的細節。當使用通用的接口時,一旦設計和AMBA 3 AXI的總線相連時,設計人員可以有更多的時間專注于驗證和檢查。
本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文
為AMBA 3 AXI的DesignWare Verification IPDesignWare IP的解決方案的第二部分是為AMBA 3 AXI的Synopsys的DesignWare驗證IP(VIP)。通過引入更多產品驗證的高級技術,這些驗證IP提供了一種快速有效的方法來驗證基于AMBA 3 AXI的片上系統。AMBA 3 AXI的DesignWare的驗證IP包含以下元件:主模塊、從模塊、監視器和驗證互連。每個元件均支持所有的AMBA 3 AXI的地址和數據寬度,以及所有協議傳輸和響應的字節。VIP的主模塊和從模塊用于產生和響應處理事務。驗證互連能產生一個具有完整互連功能的子系統,以幫助在模塊級對多重模塊相互作用的集成過程中的測試。驗證IP包含完整的命令集,它可以完成定向事務處理,基于level命令的測試。驗證IP將迅速修正互連錯誤,功能錯誤,通過特殊例子的測試。
驗證IP已經獲得AMBA3所確認的認證標志。這個標志表示DesignWare驗證IP已被證明能正確實現于AMBA 3 AXI的規范系統,此系統是由來自ARM公司的規則集合所組成的基于斷言的AXI測試系統。當驗證IP被應用于模塊級,對于工程師,這些模塊的接口可以保證和AMBA 3 AXI協議規范一致。 由于這些模塊均已證明在AMBA 3 AXI上的正確性,因此設計人員能輕易在模塊級集成最終的子系統。DesignWare的驗證IP除了能用于創建現實的應用系統外,還能被用于在子系統級進行完全測試主模塊和從模塊之間作用。使用這些IP可以確定符合AMBA 3 AXI協議規范。
DesignWare驗證IP和參考驗證方法DesignWare驗證IP采用重用分層的、覆蓋驅動的、隨機約束的驗證方法,它可用于快速產生上千種傳輸過程。
帶約束的隨機驗證的生成是通過Synopsys的參考驗證方法(RVM)定義的。RVM是在驗證方法手冊中目前可以獲取的最好的實踐方法。它為自動產生處理事務來強調協議組合的最大數目制定了一種強大的方法。隨機約束、覆蓋驅動的方法相比于傳統的定向測試方法,可以為大而復雜的設計提供更好的產品和質量的驗證。在定向測試的方法下,工程師通過寫單個的測試來驗證特殊的設計特點。此方法耗時巨大,尤其對于擁有大量相互作用的復雜設備更是可觀。慢慢地,設計往往在達到驗證質量目標前就流片,因而加大了提高成本的可能。
通過一種隨機約束、覆蓋驅動的方法,工程師可以為設計寫出描述實際輸入情形的高級的約束。先進的驗證工具和驗證IP將使用這些約束自動產生成千種測試校驗實例而不用工程師去設計。功能覆蓋用于指導驗證和測量過程。它可以使驗證質量目標可以在流片之前較容易達到,即使對于更復雜的設計也是如此。參考驗證方法建于一種能重用的架構之上,用于實現帶約束的隨機驗證環境,它能使模塊級的測試重用于模塊級、子系統級和多重項目之間。RVM驅動的驗證IP意味著設計人員只需寫最少的代碼,即可按順序產生成千上萬的測試,通過實際的總線流量足以強調模塊或子系統。基于Synopsys的RVM的環境提供了對于所有的驗證元件一種統一的接口,它極易理解,而且能加快地在其他的項目之間重用。
為加快一個基于AMBA 3 AXI協議系統的驗證,DesignWare驗證IP應被用來依次驗證單個的元件接口,子系統,最終是完整的系統。在模塊級,驗證IP可產生有效準確的激勵以測試AMBA 3 AXI接口的應用。如果測試是根據RVM指南生成的,此級別的測試可以在子系統級再次運行。由于DesignWare為AMBA 3 AXI的驗證IP均以通過AMBA3認證,設計人員可以對于驗證過程的質量足夠放心。
一個原始的基于AMBA 3 AXI的子系統的有效驗證可以用許多松散連接的IP和DesignWare驗證IP的設計模塊來實現。這樣可使互連、處理事務和特征能很快被驗證,同時很快創建一套高覆蓋率的測試。DesignWare驗證IP的主模塊和從模塊被用于替代元件,這樣主模塊的VIP即可用于創建定向和約束的隨機驗證事務。這種方法允許快速地創建子系統的激勵和響應,可以快速解決任何設計互連的問題。DesignWare驗證IP的監視器被用于檢查是否適應AMBA的需求以及提供和基于測試標準的得分板(scoreboard)的直接接口。
得分板實質是測試程序的一個模塊,可提供一種自動智能的方法跟蹤事務、覆蓋和數據流。對于數據,它可設置為跟蹤源標準數據并比較目標數據來為所測試的數據路徑產生一個通過或失敗的標準。得分板和DesignWare驗證IP的監視器直接相連,以使所有的事務和覆蓋數據被提取,捕獲和驗證。使用DesignWare驗證IP監視器的優點在于當主模塊和從模塊的驗證IP被刪除或者被系統級別測試的真實RTL替代時,相同的基于得分板的驗證環境可以繼續使用。當監視器為無源元件時,它們可以用于整個驗證周期。
為了進一步加快驗證過程,在模塊和子系統級的環境中應該加入斷言IP從而能使用formal和hybrid formal的驗證工具,例如Synopsys的magllan工具。驗證環境應包括驗證IP和斷言IP。驗證IP監視器提供了高級模擬特征,例如:cross-port的覆蓋和得分板通告。由于ARM提供定義了斷言的IP作為可執行規范,所以它可以作為參考的標準結果。所有的DesignWare的驗證IP元件已經通過ARM提供的作為AMBA3確認認證過程的一部分的斷言IP的驗證。此外,DesignWare驗證IP的監視器可以幫忙確定何時驗證完成,通過跟蹤和記錄每個事務,提供覆蓋信息,給出違反規范的錯誤和警告。
驗證的最后一階段就是完整系統級別的驗證。在此階段,必須包括對于松散連接應用的元件的RTL和IP。外部接口必須經過驗證,其他的DesignWare驗證IP此時可以用來減少系統級測試的負擔。設計人員能廣泛使用DesignWare Verificaion IP,它是作為VCS Verification Library的一部分,DesignWare Library產品包括PCI Express?、串行IO、I2C、以太網、USB、USB-OTG以及成千上萬種基于存儲器的模型。DesignWare Verification IP中為ABMA 3 AXI的主模塊仍應用于產生激勵因為原始子系統的測試能立即重用。另外的DesignWare Verification IP 還可以直接和得分板一起提供完整的智能驗證平臺。
驗證工程師也希望盡可能快地模擬驗證設計、標準測試、驗證IP和斷言IP。Synopsys VCS?模擬器可得到很高的模擬性能。VCS把完整的設計環境、設計、標準測試、驗證IP和斷言IP優化成單個統一的內核。這單個編譯的內核能消除傳統模擬環境中經常出現的通信和同步的問題。此方法具有5倍或者更多的模擬性能提高。對于驗證工程,這意味著以前需5天運行的測試現在可以在1天以內完成。工程師能有更多的時間確保覆蓋數目,提高最終設計的信心。
集成一體:DesignWare IP和Synopsys的coreAssembler工具DesignWare IP的解決方案的第三部分,是Synopsys的coreAssembler工具。當DesignWare Library IP和coreAssembler工具一起使用時,設計人員可在更少的時間內自動集成模擬和綜合基于AMBA的子系統。coreAssembler工具能使子系統自動生成設計和AMBA 3 AXI和AMBA 2.0 AHB/APB元件的模塊集成。coreAsembler工具可減少含有DesignWare IP的專用子系統的生成時間。這再次讓設計人員可以專注于產品的其他測試或者差異性設計。coreAssembler工具完全支持“在工具流程內專為封裝、集成和重用IP的結構”,SPIRIT,格式,適合SPIRIT的第三部分和定制IP模塊能輕而易舉地封裝到裝配子系統。
本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文
在打包DesignWare的可綜合IP和驗證IP時使用了“裝配導向技術”。這是內置的專門協議技術,能使coreAssembler自動完成IP模塊的相互連接。Synopsys集成的專門技術是從AMBA IP和基于AMBA子系統的創建中多年形成的。它支持任何AMBA 3 AXI或者AMBA 2.0或者多層子系統的配置,另外還支持AMBALITE的配置。例如,設計人員具有AMBA 3 AXI互連的制造和AMBA 3 AXI到AMBA 2 AHB的橋元件,coreAssebler內置的集成系統可以自動將兩個AMBA 3 AXI接口連接集成。這種自動構造方法可以消除印制產生線的錯誤。所有的DesignWare Library 綜合IP元件和這種設計技術一起捆綁,還有一套缺省的參數。因此,產生一個子系統的初始設計就簡單到只需點幾下鼠標,選擇幾個下拉菜單以及配置一些子系統參數即可完成。
coreAssembler通過設計參數和系統級別參數的交叉傳播以支持層次式設計的方法,可以避免多重IP的錯誤配置。這些參數,例如地址和數據寬度,可以在頂層被鎖住,然后傳播至低層次的IP模塊,可確保避免IP模塊的錯誤配置。這種內置的自動化的參數檢查消除了IP配置錯誤的出現幾率,能大大減少子系統調試的時間。工程師能越快地完成第一個子系統的模擬和運行時間,驗證工程師就有越多的時間來驗證子系統需求功能的實現。
為得到最優化的綜合結果,coreAssembler能自動運行Synopsys的綜合工具,包括PhysicalCompiler?和Design Compiler?。設計人員可以從多種綜合方法中選擇,例如面積-時延、時延-面積、ACS和低功耗優化等等流程。coreAssembler 也可以將用戶定義的流程集成到其自動化的流程中。
為減少第一次模擬的時間,coreAssembler自動創建一個驗證的基礎架構,其包括DesignWare Verification IP專門達到集成子系統的目標。另外產生這個架構的同時,工具也產生DesignWare Verification IP用來測試子系統的激勵。目前,這些還是簡單的基礎測試,例如寫入一個IP元件的寄存器,再讀出來保證寫入的內容的正確性。雖然這些看似容易,但其確是很多子系統設計的第一個里程碑,在傳統的子系統開發過程中,通常需要幾周的時間。使用DesignWare Library IP和coreAssembler流程,子系統的基礎測試可在幾個小時之內完成。
自動化的流程也使設計新手變得很容易上手。比如,子系統以前是以32位數據線設計,而設計師在最后一分鐘決定需要使用64位數據總線以達到性能的要求。在傳統的設計流程中,工程師需要重新配置和修改很多RTL文件,它需要花費自己很多的時間,也許還會出現許多錯誤。而使用coreAssembler流程中,只需要通過一個在頂層一個參數的簡單修改就可以完成,這個修改可以自動地傳遞到所有低層次的模塊中。新的RTL代碼會重新自動產生,同時也生成新的測試架構的文件。
總結
WebServices的基本元素是可擴展標記語言(ExtensibleMarkupLanguage,XML)、SOAP、Web服務描述語言(WebServicesDescriptionLanguage,WSDL)。XML用來編解碼數據,SOAP用來傳輸數據,WSDL用來描述WebServices及如何訪問WebServices。XML與超文本標記語言(HypertextMarkupLanguage,HTML)一樣,都是標準通用標記語言(StandardGeneralizedMarkupLanguage,SGML)。XML是Internet環境中跨平臺的依賴于內容的技術,是當前處理結構化文檔信息的有力工具。SOAP是一種簡單的基于XML的協議,使應用程序通過超文本傳送協議(hypertexttransportprotocol,HTTP)交換信息。WSDL是基于XML的用來描述WebServices及如何訪問WebServices的一種語言。WSDL可描述WebServices,用于WebServices的消息格式和協議的細節。使用WebServices技術作為接口技術的基礎有以下優點。1)數據交換。WebServices使數據交換更方便,實現跨防火墻的通信,以一種最簡單的方式實現異構系統間的互通信和數據交換,且能跨平臺。2)數據封裝。WebServices使用XML對數據封裝,使用者能且僅能看到該對象提供的功能列表。3)應用程序集成。不同編程語言編寫的應用程序通常都有一定的應用環境,集成起來會有很多技術壁壘,需要花費較多資源才能實現。通過WebServices,應用程序可用標準的方法把功能和數據“暴露”出來,供其他應用程序使用,簡單方便。4)低成本。在實際項目中的開發成本最低,無論從軟件開發人員的培訓和WebServices產品的購買都較廉價。
2接口的技術方案
2.1采用基于中間數據庫視圖方式
根據需要對外發送的數據,組織SQL語句,把結果以數據庫視圖的方式建立。其他系統的接口程序通過分配具有一定權限的賬戶,訪問中間數據庫視圖獲取數據。該方式的優點:程序可自由訪問數據庫,訪問的內容和訪問的組合方式均可由應用程序自定義,并且可自定義SQL語句組織查詢結果。缺點:數據庫安全性差,非系統內部程序可直接接觸到數據庫層面,對信息保密有隱患。
2.2采用基于REST風格服務方式
表述性狀態轉移(RepresentationalStateTrans-fer,REST)代表了分布式超媒體系統的體系結構風格,是一種針對網絡應用的設計和開發方式,可降低開發的復雜性,提高系統的可伸縮性。REST提出一些設計概念和準則:①網絡上的所有事物都被抽象為資源;②每個資源對應一個唯一的資源標識;③通過通用的連接器接口對資源進行操作;④對資源的各種操作不會改變資源標識;⑤所有操作都是無狀態的。該方式的優點:可利用緩存提高相應速度。通信本身的無狀態性能使不同的服務器處理一系列請求中的不同請求,提高服務器可擴展性。瀏覽器可作為客戶端,簡化軟件需求。缺點:安全性比SOAP低。對HTTP的依賴性高,需要通過HTTP的返回碼區分返回結果。
2.3用基于SOAP協議的WebServices調用方式
SOAP可以和現存的多種因特網協議和格式結合使用,包括HTTP,簡單郵件傳輸協議(SimpleMailTransferProtocol,SMTP),多用途網際郵件擴充協議(MultipurposeInternetMailExtensions,MIME)。還支持從消息系統到遠程過程調用協議(RemoteProcedureCallProtocol,RPC)等大量的應用程序。該方式具備以下優點。1)具有可擴展性。SOAP客戶端、服務器和協議自身均能吸納新技術不斷發展,而且升級更新時也不必中斷已有的應用程序。2)SOAP調用簡單。客戶端只需發送一個請求,服務器獲取請求后調用相應的對象,然后把調用的結果返回給客戶端,完成一次調用交互。3)SOAP完全和廠商無關,與編程語言、平臺無關。缺點:較復雜,對于大量并發應用,效率不高。根據以上方案的比較,結合智能電網通信管理系統對接口方面的要求,綜合利弊,采用基于SOAP的WebServices方式實現接口功能。
3接口的設計與解析
3.1功能結構
智能電網通信管理系統接口軟件(以下簡稱接口)采用接口調用方主動發起數據請求,接口提供方返回相應請求數據的應答模式。接互示意如圖1所示。
3.2技術約定
為保證不同廠家開發的接口服務端和客戶端軟件能順利實現接口調用,對WebServices具體接口實現過程作出如下規范及版本約定:1)整個接口消息基于XML語言,必須符合XMLV1.0(及更高版本)規范和XMLSchema(及更高版本)規范;2)接口實現必須使用SOAP協議,接口描述必須使用WSDL語言;3)接口實現方必須向接口調用方提供本端服務的WSDL文件,建議使用WebURL方式實時提供;4)接口實現必須符合SOAPV1.1版本規范,高版本SOAP協議必須保證與1.1版本的兼容性;5)接口實現必須至少支持SOAP在HTTPV1.0協議上的傳輸;6)接口實現必須符合WSDLV1.1版本規范,高版本WSDL語言必須保證與1.1版本的兼容性;7)接口描述必須至少支持WSDL在SOAPV1.1協議上的綁定;8)接口實現必須支持WS-IBasicProfileV1.0(及更高版本)互聯互通協議。
4結語
1系統概述
企業服務總線的核心是由消息監聽器、適配器、協議轉換器、消息路由器和服務調度器五部分組成.協議轉換作為企業服務總線的核心功能之一,可以為注冊到企業服務總線上的服務提供者和服務請求者提供可靠的交互服務.ESB系統總體框架圖如圖1所示.企業服務總線的主要功能包括如下部分:1.消息監聽功能:監聽基于不同協議的消息.2.服務請求者與服務提供者之間的應用協議的轉換:如果服務請求消息基于的協議與服務提供者所注冊的協議不同或者服務提供者所提供的服務消息是服務請求者無法解析,則需要對該協議進行轉換.3.服務之間的消息轉發(路由):把請求消息轉發到目標的服務地址.4.服務定位:查找服務的目標地址.5.服務安全:對請求消息進行認證授權.在企業服務總線中,協議轉換器主要功能就是如果請求消息基于的協議與服務者所采用的協議不同,則需要對該協議進行轉換.
2協議轉換器的需求分析
各個系統在需要與其他系統交互的時候,要通過調用ESB來訪問目標系統提供的服務接口獲取數據,完成業務操作.各應用系統作為服務消費方在調用ESB的時候,需要明確每個參數代表的含義,按照參數書寫格式要求來發送參數,然后ESB會自動調用消費方服務.但連接到ESB上的服務請求者和服務提供者可能采用不同的應用協議,針對不同的應用協議,ESB的監聽器接收到的請求消息有不同的協議格式.如果ESB能夠支持現有的各種通信協議,那么對消息的處理就完全不考慮傳輸細節,而直接通過消息請求和獲取服務.如果沒有將一種協議轉換為另一種協議的工具,則服務請求者很難與給定的服務提供者進行通信.與此需求相關的需求是使用者的數據格式可能與服務提供者使用的數據格式不同.因此,需要一種能夠提供此轉換的工具.
關鍵技術
1基本定義
SOAP即簡單對象訪問協議,是一個輕量級的、簡單的、基于XML進行信息交換的通信協議.它可以和現存的許多因特網協議進行結合使用,包括HTTP,SMTP.JMS是實現JAVA領域遠程通信的一種手段和方法,是個遠程通信協議,在其他的語言體系中也存在著類似JMS的東西,可以統一的將這類機制稱為消息機制.XML(ExtensibleMarkupLanguage)即可擴展標記語言,它是萬維網協會的XML工作小組所定義的可擴展標記語言,是一組規則與準則的集合.XML作為通用的、自解釋的數據交換格式,已成為大多數應用程序所采用,XML技術可以有效地解決不同協議下的數據之間的共享與交互.
XML現在已經成為一種通用的數據交換格式,它的平臺無關性,語言無關性,系統無關性,給數據集成與交互帶來了極大的方便.XML是從標準通用標記語言(SGML)中簡化修改出來的.XML將SGML的靈活性和強大功能與已經被廣泛采用的HTML結合起來,簡化了計算機對文檔和數據交換的處理,使得現有的協議和軟件更為協調,從而簡化了數據的處理和傳輸.使用XML標記語言可以做到數據或數據結構在任何編程語言環境下的共享.XML最大的優勢在于它能對各種編程語言編寫的數據進行管理,使得在任何平臺下都能通過解析器來讀取XML數據.XML標記語言的語法非常簡單,可以通過解析器在任何機器上解讀.并可以在各種計算機平臺上使用.逐漸成為一種數據交換的語言.
2協議轉換思想
ESB支持廣泛使用的協議(HTTP,JMS,SOAP等等).目前,我們設計的ESB系統支持的協議有:HTTP、SOAP和JMS協議,以后還將對其進行擴展.協議轉換模型用于當服務的請求者與服務提供者基于不同協議時的消息轉換.消息監聽部分監聽到消息后,對其進行適配,然后將其傳遞給協議轉換部分,協議轉換器主要負責將采用不同協議的消息轉換成內部標準消息,經由消息路由器路由后將其封裝成目標方要求的協議形式的消息傳遞到目標方.在進行協議轉換時,標準消息的內容主要由以下幾部分組成:用戶名、角色類型、IP地址、端口號、消息的狀態、消息的尋址信息和業務數據.
網絡上傳輸的消息的內容常常分為消息頭和消息體,如應用層的HTTP、SOAP、JMS消息.業務相關內容存入消息體中,消息頭中包含與業務無關的管理信息,比如消息的優先級、序列號、地址信息等.因此,對消息進行解析時,可以對其消息頭和消息體分別進行解析.譬如SOAP消息都使用XML形式編碼.處理接收到的SOAP消息應該有兩個步驟,首先,識別應用程序需要的SOAP消息的頭部分;其次,識別應用程序需要的SOAP消息體部分;最后,檢驗該SOAP消息是否滿足要求,即消息的目的地址、參數信息等是否和目標地址名稱、參數等相對應.
協議轉換模型設計與實現
1并行XML解析
XML在不同的語言里解析方式通常都是一樣的.基本的解析方式有兩種:SAX和DOM.利用SAX解析XML文檔,牽涉到兩個部分:解析器和事件處理器.解析器負責讀取XML文檔,并向事件處理器發生事件,如元素開始和元素結束事件;而事件處理器則負責對事件做出響應,對傳遞的XML數據進行處理.DOM是基于XML文檔樹結構的解析,DOM在分析XML文檔時,將組成XML文檔的各個部分映射為一個對象,在內存中,這些節點形成一棵文檔樹,整棵樹是一個節點,樹中的每一個節點也是一棵樹,通過訪問樹中的節點來存取XML文檔的內容.為了提高系統的效率,在這個協議解析器中,我們將采用一種并行的XML解析方式.并行XML解析可以充分利用多核計算機的優勢來提高系統的性能.具體實現方式為:首先對XML文件進行預解析,根據預解析的結果將XML文件劃分為多個小的XML文件,并將這些XML文件分配到不同的線程上,從而這些劃分后的XML文件就可以并行地進行解析.
2協議轉換模型
在不同系統或不同系統的組成部分之間傳輸數據時,必須考慮接口參數差異問題.不同格式的數據是難以在系統內部或者系統間傳輸的,因此協議轉換器要解決這種異構的問題.鑒于業務相關內容通常存入消息體中,消息頭中包含與業務無關的管理信息,協議轉換器以分層方式進行轉換,主要包括2個部分:消息頭轉換和消息體的轉換.在進行協議轉換時,要對ESB系統支持的各個協議建立模型,每當需要某種協議解析時,都要讀取對應的協議模型信息.協議轉換可能會出現解析失敗的情況,這就要求將失敗信息記錄到日志文件中,方便系統查閱并進行處理.
為進行協議轉換,消息或服務必須要先進行適配,在初次連接或者其協議發生變化時,要填寫其協議的格式,在此設計一個表格存儲在注冊庫中.這一表格包括字段序號(SQ),消息名稱,消息序號,消息類型,字段名稱,起始位,長度,字段類型,字段描述.其中,消息類型是指消息所使用的協議.協議轉換示意圖如圖2所示。協議轉換器要把收到的不同協議格式的消息轉換為內部統一的消息格式即XML的格式,以方便內部消息路由器對消息的路由;消息路由器對消息路由后,由系統內向服務提供方或者服務請求方發送數據時,協議轉換器實現讀取XML文件,按照數據庫中對應的注冊的協議的要求,形成指定的消息類型,并發送到目的地.而這里的轉換是需要服務請求方和服務提供方提前注冊他們支持的協議的詳細信息,我們將這些信息分別都保存在不同的表格里,并存入注冊庫.
因此,協議轉換器有兩個功能要實現.一個是將接收到的消息轉換為內部數據格式即XML文件.另一個功能是將內部表示的XML文件轉換為注冊庫中查找到的目標協議格式,在這一過程中,需要使用并行XML解析方式對XML文件進行解析,從而能夠快速地實現協議轉換.在這個轉換的過程中,ESB系統首先要建立所支持的JMS、HTTP和SOAP協議的模型,從而為協議轉換提供相關的信息.協議轉換器過程圖如圖3所示,在這里以JMS和SOAP協議轉換為例.若獲取到對方的JMS或者SOAP消息,則在存入數據庫的同時,要首先根據之前注冊的JMS或者SOAP模型將JMS或者SOAP消息轉換為XML的格式,統一消息格式,方便系統對數據的處理.當傳輸數據時,若傳輸的是其他形式的消息,則其消息格式 為消息描述指定的格式,協議轉換器就利用消息描述表中對消息的內容的描述進行轉換,將XML格式的消息轉換為JMS或者SOAP消息.實質上,在協議轉換器中,消息的轉換包括兩個層次上的協議轉換:服務請求方的數據到系統內部的協議轉換,系統內部的消息到服務提供方的協議轉換;服務提供方的消息到系統內部的協議轉換,以及系統內部的消息到服務提供方的協議轉換.
3協議轉換器的可擴展性
設計模式使人們可以更加簡單方便地復用成功的設計和體系結構.為了實現協議轉換器的可擴展性,協議轉換器的實現中應用了工廠模式和適配器模式.協議轉換器的類圖如圖4所示:在協議轉換器的實現中,AbstractTransformer是所有協議轉換的一個基類,并且是一個抽象類,實現了接口Transformer和Amnotatedobject.其它的轉換類都實現了AbstractTransformer.
結語
關鍵詞: Android; Web Service; 智能家居; 嵌入式網關; 視頻監控
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2017)03-44-04
Abstract: For the smart home system controlled by PC has disadvantages in price, mobility and operation, a new design and implantation scheme of smart home system based Web Service is proposed. The embedded Web Service server and ONVIF video monitoring server are built by transplanting gSOAP, the client end is realized by using KSOAP2 development kit. Users can control and monitor the remote smart home devices via Android phone and tablet. The system has advantage of simple, low cost, portable and practical, and it is worth to be promoted.
Key words: Android; Web Service; smart home; embedded gateway; video monitor
0 引言
智能家居(smart home)系統通過將家居設備進行組網,將計算機技術和自動化技術進行整合,實現居家環境監測、視頻監控、家電控制,以及危險預警系統等諸多服務,提高了人們的生活水平,現在正在慢慢走進人們的生活[1]。目前,大多數的智能家居系統采用PC機進行控制,這種控制系統造價高,不能移動,不方便操作。采用手機或者平板電腦遠程連接家庭網絡,可以方便快捷的實施監控[2-5]。但是,目前采用這種手機或平板控制的智能家居系統比較少,而且大部分的功能比較單一,界面設計簡單,無法提供良好的用戶體驗。
本文提出了一種采用Web Service技術的智能家居系統實現方案。用戶可以通過運行Android系統的智能手機或者平板,連接家庭網關,對家用電器進行遠程控制,對居家環境進行遠程視頻監控。
1 系統硬件平臺
智能家居網絡總體框架如圖1所示。家庭中各個網傳感節點和Zigbee協調器組成星型通信網絡。各個傳感器節點和家居設備以Zigbee方式和協調器通信,協調器通過串口連接網關。本系統的網關采用基于ARM1176JZF-S內核,主頻533MHz的高性能嵌入式芯片S3C6410。網關上組建嵌入式Web服務器和視頻服務器,提供Web Service服務。運行在手機或平板上的智能家居控制系統客戶端通過調用Web Service服務實現以下功能。
⑴ 通過獲取溫度傳感器、濕度傳感器、光照度傳感器、紅外傳感器的數據,實現對居室環境數據進行持續的采集。
⑵ 對智能家電、智能窗簾和智能燈具等設備的控制。
⑶ 調用攝像機實現遠程視頻監控。
2 軟件框架
2.1 程序架構
本系統采用目前流行的Web Service技術,實現安卓客戶端和網關服務器之間的通信。Web Service是一種跨平臺的分布式Web應用程序。Web Service服務由服務器提供,客戶端可以在網絡上的任何一個位置調用此服務。Web Service三個重要的組成部分是SOAP、WSDL(Web Services Description Language)和UDDI(Universal Description Discovery and Integration) [6]。SOAP是一個基于XML的輕量型分布式計算協議,定義了調用Web Service服務的標準方法;WSDL用于描述訪問具體的接口的方式;UDDI用來管理、分發和查詢Web Service。
軟件框架如圖2所示。客戶端和服務器之間通過HTTP協議進行SOAP消息的傳遞。網關服務器運行Linux操作系統,提供基于SOCKET的HTTP協議通信協議。然后再移植開源Web Service工具gSOAP來提供Web Service服務所需要的XML解析器和SOAP處理器。
2.2 服掌鞫順絳蟶杓
服務器端程序設計步驟:首先生成C/C++頭文件;然后使用SOAP編譯器編譯后生成RPC服務框架和序列化的數據類型代碼;最后將這些代碼鏈接到服務應用程序中,就成為可供客戶端調用的Web Service。gSOAP編譯器同時會生成一個WSDL文檔用于描述這些服務。
在本設計中,客戶端的請求分為POST和GET兩種方法。GET方法用來處理靜態網頁,進而為描述接口的WSDL文件提供支持。POST方法用來實現SOAP消息的傳輸,將接收到的HTTP數據包保存在內存緩沖區,然后再進行進一步的處理。網關服務器對SOAP消息的處理過程如圖3所示。服務器在接受到客戶端的HTTP請求以后,調用相關模塊解析SOAP消息,然后根據解析結果提供相應的服務。最后將執行結果封裝成SOAP響應信息返回給客戶端。
2.3 視頻服務器程序設計
采用建立在Web Service的SOAP通信框架基礎之上的ONVIF通信標準,進行視頻服務器設計。ONVIF通過定義網絡視頻設備之間信息交換的通用標準,以實現不同廠家的視頻產品之間的互通性。ONVIF也是使用WSDL定義服務,使用XML語言描述數據,采用SOAP通信協議傳輸信息。ONVIF標準包括設備發現和設備管理兩大功能模塊,前者通過基于IP組播技術實現,后者通過傳遞SOAP消息進行通信。SOAP通信框架按照以下步驟生成[7]。
⑴ 登錄ONVIF網下載WSDL文件,該文件描述了與媒體服務相關的Web服務消息格式、操作、數據類型、協議綁定和服務地址。
⑵ 從網上下載gSOAP 2.8.21工具,解壓后得到的wsdl2h和soapcpp2文件。
⑶ 使用wsdl2h工具將WSDL文件轉換成C/C++風格的頭文件。
⑷ 使用soapcpp2工具將上一步產生的頭文件生成服務器端提供SOAP服務的框架(Skeleton)代碼。
3 安卓客戶端程序設計
3.1 客戶端與服務器之間的通信
在Android客戶端平臺上,調用服務器端的Web Service必須使用開發包KSOAP2,以實現SOAP協議的處理。KSOAP2是一個用于資源受限制的Java環境如Applets或J2ME應用程序的第三方類庫。
安卓客戶端通過調用服務器端的Web Service服務,通過對遠程數據庫的查詢、控制和管理操作,從而實現對家居設備進行控制和監視。本設計采用的KSOAP2軟件工具可以封裝用戶請求,以SOAP格式來調用Web Service,然后將返回的SOAP格式的數據信息解析為SOAP Objecet對象。KSOAP2調用Web Service步驟如下。
⑴ 下載Ksoap2-Android工具,并導入工程。
⑵ 指定Web Service的命名空間和調用Web Service方法的名稱。
⑶ 借助Soap Object對象傳遞參數。
⑷ 生成調用Web Service方法的SOAP請求信息,并指定SOAP的版本。
⑸ 調用Web Service,根據返回的數據,解析出結果。
3.2 客戶端設計
客戶端連接服務器的第一步是登錄,進行身份驗證,其流程如圖4所示。首先輸入服務器的用戶名和密碼。如果服務器驗證通過,就可以建立客戶端與服務器之間的交互通道,在主界面中接收服務器響應數據幀,同時更新所有家居設備的狀態信息。用戶登錄成功后,可以執行如下相應的動作。
⑴ 如果要控制設備或者查詢設備狀態信息,則通過Get方法發送控制幀或者查詢幀。
⑵ 如果要執行視頻監控則通過POST方法發送視頻控制命令。
⑶ 如果用戶需要更改密碼,就要輸入舊、新兩種密碼,如果密碼匹配,則服務器返回響應碼“201”,表示密碼更改成功;否則可以向服務器發送控制或者查詢請求,服務器收到后,先返回一個響應,然后執行相應的動作。
3.3 視頻監控客戶端設計
3.3.1 設備發現和管理
設備發現的主要目的就是獲取ONVIF設備的服務功能和服務地址,為后面的視頻數據接收和播放提供基礎。ONVIF協議的設備發現模塊可以讓客戶端發現服務器的RPC的入口,本設計采用WS-Discovery發現協議實現該功能。WS-Discovery [8]協議采用SOAP和UDP組播協議,客戶端使用239.255.255.250:3702地址發送組播消息自動搜索ONVIF設備。服務器端的ONVIF設備收到組播消息后進行響應,客戶端根據收到響應數據包來獲取相應的設備信息,統計搜索到的設備個數。
3.3.2 流媒體數據接收及分片打包
網關服務器攝像頭自帶視頻采集、視頻壓縮編碼功能,輸H.264格式編碼的標準數據流。客戶端通過RTSP會話接收服務器端的流媒體數據,一次完整的會話過程如下。
⑴ 連接服務器,同時發送一個RTSP DESCRIBE命令。服務器返回一個描述媒體類型、流數量等信息SDP。
⑵ 分析收到的SDP,為會話中的流發送一個SETUP命令建立RTSP。客戶端通過此命令將自己的端口號告訴服務器。
⑶ 流媒體連接過程建立成功以后,客戶端發送PLAY命令和TERADOWN來開始和結束視頻的播放,還可以發送快進、快進和暫停命令。在播放過程中,服務器使用UDP發送流媒體RTP包給客戶端。
本系統需要多個ONVIF IPC設備通信,為了提高數據傳輸速率和數據處理的效率,課題組采用Select網絡模型完成標準的RTSP會話過程。
3.3.3 流媒體解碼及顯示
為了能顯示視頻,客戶端需要首先移植FFMPGE。使用FFMPGE對接收到的RTSP流媒體文件進行解碼,再將解碼后的信息轉換成為YUNV420P格式,然后再轉換為RGB24格式。最后再轉換成可在安卓設備上播放的ARGB_8888格式。轉換完畢之后,就可以將每一幀顯示在屏幕上。
4 結論
本文結合嵌入式系統和安卓平臺優勢, 采用目前流行的Web Service技術,設計和實現了智能家居系統的服務器端和安卓客戶端程序。服務器端通過移植gSOAP和ONVIF協議來組建嵌入式Web服務器,提供Web Service服務。安卓客戶端程序給予KSOAP2開發包進行設計,實現了服務器端的Web Service服務的調用。系統主要采用JAVA語言進行開發,具有結構簡單,開發難度低的優點。系統操作簡單、成本低、使用方便,可以實現家居設備的遠程控制和居家環境的遠程視頻監視,給人們生活帶來極大的便利,具有較高的使用價值和推廣價值。
參考文獻(References):
[1] Lin H T. Implementing smart homes with open sourcesolutions[J]. International Journal of Smart Home,2013.7.
[2] 周恩,李文軍,鄭永軍等.Android平臺的智能家居控制系統設計[J].中國計量學院學報,2013.24(3):261-265
[3] Z陽靜,鄒念育,雷冬鳴等.基于Android和WIFI通信的智能家居系統設計[J].大連工業大學學報,2016.1:67-71
[4] 黃成云,盧選民,李戈.基于Android的智能家居控制軟件設計與實現[J].計算機與現代化,2014.11:102-105
[5] Kumar S. Ubiquitous Smart Home System Using AndroidApplication[J]. Computer Science,2014.6(1).
[6] 龔瑞琴,畢利.基于Web Service的Android技術應用研究[J].電子技術應用,2014.40(1):134-136
關鍵詞:Web服務;端到端安全;SSL;ESSL
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2009)13-3383-02
1 引言
Web 服務是一個嶄新的分布式計算模型,是Web上數據和信息集成的有效機制[3]。Web服務的新型構架,Web服務的高效執行方式,Web服務與其他成熟技術的有機結合以及Web服務的集成是解決現實應用問題的重要技術。但是,Web 服務的安全問題也日益的突出,并逐漸成為Web 服務向前發展的一個瓶頸。當然國內外,Web 服務安全的研究有也不少的成果。但是還是不能夠完全滿足Web服務的端到端的安全需求。本文討論了SSL在保障Web服務安全方面不足,并在此基礎上提出擴展的SSL,用以滿足Web 服務端到端的安全需求,在最后對擴展的協議進行分析,說明了它的優勢以及應用的意義。
2 SSL在Web 服務安全機制中的應用分析
2.1 Web 服務安全需求分析
作為典型的分布式應用,Web 服務的安全要求包括:數據的機密性、數據的完整性、不可否認性、身份認證、訪問控制、審計和安全管理等多個方面,同時還具有自身的特點[1]。對于Web 服務來說,保障其安全需要end-to-end的安全。當然這并不是說point-to-point的安全機制以及其他的傳統的安全不可以應用到Web 服務,恰恰相反,由于目前大多數哦Web 服務使用http作為其傳輸層,因此在依賴于http原來的安全機制都可以在Web services中使用[1],例如防墻、SSL等。Web 服務在實施的過程中也許需要point-to-point 和end-to-end其中的一種或兩種的安全機制,這取決于受到的威脅的所處層次[1]。如果對于安全性要求不高或者威脅的層次比較低的話,像SSL、防火墻等都可以發揮很好的作用[1]。
2.2 SSL協議概述
SSL 協議(Secure Socket Layer)是Netscape 推出的一種安全通信協議,它提供Internet上保密通信的安全協議。SSL的Client和Server在正式交換應用數據之前,需要建立會話密鑰以及有選擇地進行身份驗證。會話和連接是SSL的兩個重要的貫穿始終的概念。連接建立在會話的基礎上,每個連接與一個會話關聯。Cipher Spec和master secret組成一個會話的主要加密參數,可被多個連接共享。每個連接有獨立的會話密鑰。
SSL的安全服務位于TCP和應用層之間,對應用層是透明的[2,5],可為應用層如:HTTP、FTP、SMTP等提供安全業務,服務對象主要是Web 應用,即客戶瀏覽器和服務器。
SSL有三種驗證模式[5]:
1) Client和Server都被驗證;
2) 只驗證Server、不驗證Client;
3) 完全匿名。
SSL協議提供的服務可以歸納為如下三個方面[5]:
1) 連接是保密的,對稱加密用于加密數據;
2) 實體的身份通過公鑰加密得到驗證;
3) 連接是可靠的,帶密鑰的MAC用于保證信息的完整性。
2.3 和SSL在Web服務中的應用分析
盡管SSL在Web 服務中能夠提供一定的安全保障,但是它只能夠提供點對點的安全,如圖1所示,而無法保障端到端的安全,如圖2所示,在高要求或者威脅層次較高的時候,它就無法滿足要求。在Web 服務的典型應用中,SOAP消息往往不僅僅只是在兩個節點間傳輸,更多的情況下是要經過很多的中間節點[6-7],而且每個中間節點都可能會對SOAP消息進行處理。雖然SSL可以確保SOAP消息在兩個相鄰的節點之間的安全,但是由于在節點內部SOAP消息是以明文出現的,所以,一旦其中一個節點受到了攻擊或者惡意的修改SOAP消息,都會造成SOAP消息的泄漏或異常。因此,SSL對于SOAP消息的端到端的安全性是不夠的[4],必須有一種更高級級別的安全機制作為保障。
3 擴展的ESSL
為了解決上面我們提到SSL協議在保障Web服務安全中的不足,對SLL進行擴展,稱之為擴展的SSL協議(Extended SSL,簡稱ESSL),這個改進保留了SSL原有的安全特性,又可以滿足Web服務的end-to-end的安全需求。(ESSL術語只在本文中適用)
3.1 相關標記
為了準確表達,我們使用下面標記:
Ii:第i個節點,其中I1是消息的原始發送者(Requester/Provider),In是消息最終收到的消息的(Requester/Provider),0
info:原始的信息
infoi:經過Ii修改后的信息,由Ii加密后發送給Ii+1
Ceri:Ii的證書
h():使用安全的hash函數進行對消息的摘要
ski:Ii的私鑰
pki:Ii的公鑰
sgni:Ii數字的簽名
Sign(ski,m):Ii用自己的私鑰對消息m進行數字簽名
Rec(pki,s):用Ii的公鑰對簽名s進行驗證
E(pki,m):用Ii的公鑰加密消息m
D(ski,s):Ii用自己的私鑰解密加密的消息s
ki:Ii隨機生成的對稱密鑰
E(ki,m):用ki進行加密
D(ki,s):用ki進行解密
3.2 協議的流程的詳細描述
首先要說明的是,兩個相互通信的節點,在進行消息的傳遞之前要進行握手,在握手的過程主要是交換相互的數字證書以及協商相關的加密算法等。
協議的流程如下:
1) I1:生成簽名:sgn1=Sign(sk1,h(info)),加密信息:E(k1,info),生成數字信封:E(pk2,k1),I1把(sgn1,E(k1,info),E(k1,info),E(pk2,k1),(sgn1,Cer1))發送給下一個通信節點。
2) 中間節點Ii(1
3) In:收到消息(sgnn-1,E (kn-1,infon-1), E (kn-1,info),E(pkn,kn-1),(sgn1,Cer1,)),In首先解開數字信封D(skn,E(pkn,kn-1)),獲得對稱密鑰kn-1,然后獲取信息info=D(kn-1,E(kn-1,info))和infon-1= D(kn-1,E(kn-1,infon-1)),驗證In-1的簽名Rec (pkn-1,sgnn-1)=h(D(kn-1,E(kn-1,infon-1)))?,然后在驗證I1的簽名和原始信息的完整性Rec (pk1,sgn1)=h(D(kn-1,E(kn-1,info)))?。如果驗證通過就進行下一步的操作,如果沒有就終止通信。
協議中對消息的解密以及驗證的流程如圖3所示。
協議中對消息加密處理的流程圖如圖4所示。
說明:當i=1的時候,虛線框中的處理過程就不需要了,因為info1=info
4 ESSL協議的分析
4.1 安全性分析
從ESSL的流程可以看出,SSL原有的安全機制都被包含,同時由于在消息中加入原始信息發送者對原始信息的簽名以及它的數字證書,另外在原始信息和修改后的信息都被發送到最終接收者In那里,這樣最終的接收者In不僅能夠看出來中間節點對原始信息的修改,同時還可以驗證原始的信息及其簽名和消息的完整性。另外,協議使用原來的數字信封以及對稱加密,使得消息的機密性也有了保障。(下轉第3397頁)
(上接第3384頁)
綜上所述,使用ESSL可以保證Web服務端到端的安全。
4.2 速度分析
為了能夠達到端到端的安全需求,ESSL多發送了很多“冗余”的信息并且做了附加的加密和驗證,這樣對于傳送的速度以及驗證速度勢必有所影響。但是,為了信息的安全或者特殊的安全需要,可以用性能換取高安全。
5 結束語
該文分析了Web服務的安全需求,指出了現有的SSL在保障Web服務安全中存在的不足,并在SSL協議的基礎上做出了改進,提出了ESSL,使其達到Web服務端到端的安全需求,從而能夠保障Web 服務的端到端的安全。另外,在其它要求端到端安全的環境中,ESSL也有著廣泛的用途。
參考文獻:
[1] Web Services Architecture[EB/OL].(2004-02)./2002/ws/.
[2] 宋志敏,王衛京,南相浩.SSL V3.0及其安全性分析[J].計算機工程與應用2000(10):145-147.
[3] 岳昆,王曉玲,周傲.Web 服務核心支撐技術:研究綜述[J].軟件學報,2004,15(3):428-442.
[4] IBM Corporation.Web Service Conceptual Architecture (WSCA1.0) [EB/OL]./developerworks/cn/views/webservices/libraryview.jsp.
[5] 范紅,馮登國.安全協議理論與方法[M].北京:科學出版社,2003.
[6] 錢權,嚴家德.Web Service的安全機制[J].計算機工程,2007,33(22):190-192.
[7] 石偉鵬,楊小虎.基于SOAP協議的Web Service安全基礎規范(WS-Security)[J].計算機應用研究,2003(2):100-102.
Web service是一個平立的,松耦合的,自包含的、基于可編程的web的應用程序,可使用開放的XML標準來描述、、發現、協調和配置這些應用程序,用于開發分布式的互操作的應用程序。
集成化物流管理控制系統(iWMS) 是自動化立體庫中的靈魂和中樞。是一個基于UNIX/Windows操作系統、在網絡環境下實現客戶機/服務器模式的軟件系統。其目的是集成地管理、協調和調度物流有關的有關物流活動,并及時與ERP(企業資源管理系統)等系統交換信息。執行ERP系統所下達的采購計劃和物料需求計劃等,并將執行結果及時反饋。
關鍵字:Web Service
集成化物流管理控制系統
企業資源管理系統
中圖分類號:C29 文獻標識碼:A 文章編號:
第一部分 引言
Web Service是一項新技術, 能使得運行在不同機器上的不同應用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。依據Web Service規范實施的應用之間, 無論它們所使用的語言、 平臺或內部協議是什么, 都可以相互交換數據。Web Service是自描述、 自包含的可用網絡模塊, 可以執行具體的業務功能。Web Service也很容易部署, 因為它們基于一些常規的產業標準以及已有的一些技術,諸如XML和HTTP。Web Service減少了應用接口的花費。Web Service為整個企業甚至多個組織之間的業務流程的集成提供了一個通用機制。
第二部分 介紹Web Service
簡單來說,Web Service是一種跨編程語言和跨操作系統平臺的遠程調用技術。
其實可以從多個角度來理解Web Service,從表面上看,Web Service就是一個應用程序向外界暴露出一個能通過Web進行調用的API,也就是說能用編程的方法通過Web來調用這個應用程序。我們把調用這個Web Service的應用程序叫做客戶端,而把提供這個Web Service的應用程序叫做服務端。從深層次看,Web Service是建立可互操作的分布式應用程序的新平臺,是一個平臺,是一套標準。它定義了應用程序如何在Web上實現互操作性,你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要我們可以通過Web service標準對這些服務進行查詢和訪問。
Web Service平臺需要一套協議來實現分布式應用程序的創建。任何平臺都有它的數據表示方法和類型系統。要實現互操作性,Web Service平臺必須提供一套標準的類型系統,用于溝通不同平臺、編程語言和組件模型中的不同類型系統。Web Service平臺必須提供一種標準來描述Web Service,讓客戶可以得到足夠的信息來調用這個Web Service。最后,我們還必須有一種方法來對這個Web Service進行遠程調用,這種方法實際是一種遠程過程調用協議(RPC)。為了達到互操作性,這種RPC協議還必須與平臺和編程語言無關。
第一 Web Service的優勢
平臺無關。不管你使用什么平臺,都可以使用Web service。
編程語言無關。只要遵守相關協議,就可以使用任意編程語言,向其他網站要求Web service。這大大增加了web service的適用性,降低了對程序員的要求。
對于Web service提供者來說,部署、升級和維護Web service都非常單純,不需要考慮客戶端兼容問題,而且一次性就能完成。
對于Web service使用者來說,可以輕易實現多種數據、多種服務的聚合(mashup),因此能夠做出一些以前根本無法想像的事情。
第二 Web Service的發展趨勢
在使用方式上,RPC和soap的使用在減少,Restful架構占到了主導地位。
在數據格式上,XML格式的使用在減少,json等輕量級格式的使用在增多。
在設計架構上,越來越多的第三方軟件讓用戶在客戶端(即瀏覽器),直接與云端對話,不再使用第三方的服務器進行中轉或處理數據。
第三 Web Service平臺技術
XML+XSD,SOAP和WSDL就是構成Web Service平臺的三大技術。
XML+XSD:
Web Service采用HTTP協議傳輸數據,采用XML格式封裝數據(即XML中說明調用遠程服務對象的哪個方法,傳遞的參數是什么,以及服務對象的返回結果是什么)。XML是Web Service平臺中表示數據的格式。除了易于建立和易于分析外,XML主要的優點在于它既是平臺無關的,又是廠商無關的。無關性是比技術優越性更重要的:軟件廠商是不會選擇一個由競爭對手所發明的技術的。
XML解決了數據表示的問題,但它沒有定義一套標準的數據類型,更沒有說怎么去擴展這套數據類型。例如,整形數到底代表什么?16位,32位,64位?這些細節對實現互操作性很重要。XML Schema(XSD)就是專門解決這個問題的一套標準。它定義了一套標準的數據類型,并給出了一種語言來擴展這套數據類型。Web Service平臺就是用XSD來作為其數據類型系統的。當你用某種語言(如或C#)來構造一個Web service時,為了符合Web Service標準,所有你使用的數據類型都必須被轉換為XSD類型。你用的工具可能已經自動幫你完成了這個轉換,但你很可能會根據你的需要修改一下轉換過程。
SOAP:
Web Service通過HTTP協議發送請求和接收結果時,發送的請求內容和結果內容都采用XML格式封裝,并增加了一些特定的HTTP消息頭,以說明HTTP消息的內容格式,這些特定的HTTP消息頭和XML內容格式就是SOAP協議。SOAP提供了標準的RPC方法來調用Web Service。
SOAP協議 = HTTP協議 + XML數據格式
SOAP協議定義了SOAP消息的格式,SOAP協議是基于HTTP協議的,SOAP也是基于XML和XSD的,XML是SOAP的數據編碼方式。打個比喻:HTTP就是普通公路,XML就是中間的綠色隔離帶和兩邊的防護欄,SOAP就是普通公路經過加隔離帶和防護欄改造過的高速公路。
WSDL:
好比我們去商店買東西,首先要知道商店里有什么東西可買,然后再來購買,商家的做法就是張貼廣告海報。 Web Service也一樣,Web Service客戶端要調用一個Web Service服務,首先要有知道這個服務的地址在哪,以及這個服務里有什么方法可以調用,所以,Web Service務器端首先要通過一個WSDL文件來說明自己家里有啥服務可以對外調用,服務是什么(服務中有哪些方法,方法接受的參數是什么,返回值是什么),服務的網絡地址用哪個url地址表示,服務通過什么方式來調用。
WSDL(Web Services Description Language)就是這樣一個基于XML的語言,用于描述Web Service及其函數、參數和返回值。它是Web Service客戶端和服務器端都能理解的標準格式。因為是基于XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的,這將是一個很大的好處。一些最新的開發工具既能根據你的Web service生成WSDL文檔,又能導入WSDL文檔,生成調用相應Web Service的類代碼。
WSDL文件保存在Web服務器上,通過一個url地址就可以訪問到它。客戶端要調用一個Web Service服務之前,要知道該服務的WSDL文件的地址。Web Service服務提供商可以通過兩種方式來暴露它的WSDL文件地址:1.注冊到UDDI服務器,以便被人查找;2.直接告訴給客戶端調用者。
第三部分 Web Service在物流管理控制系統和企業資源管理系統接口中的應用
集成化物流管理控制系統(iWMS) 是自動化立體庫中的靈魂和中樞。是一個基于UNIX/Windows操作系統、在網絡環境下實現客戶機/服務器模式的軟件系統。其目的是集成地管理、協調和調度物流有關的有關物流活動,并及時與ERP(企業資源管理系統)等系統交換信息。執行ERP系統所下達的采購計劃和物料需求計劃等,并將執行結果及時反饋。
一般企業再建造自動化立體庫前,自己的ERP系統(企業資源管理系統)已經上線,而建造完自動化立體庫后,將集成化物流管理信息系統與ERP系統有機結合在一起,成為擺在企業信息化管理者面前的重要項目之一。有可能兩個系統服務器,操作系統,網絡等各種配套平全不同,在各種接口里,挑選出Web Service當接口模式是有原因的。就像上面提到的,Web Service是一種跨編程語言和跨操作系統平臺的遠程調用技術。不論什么操作系統、什么語言,Web Service都能很好地支持。下面就以用友ERP與IWMS做一個Web Service接口模塊的介紹:
第一 入庫下載物料編碼、供應商信息、入庫單據信息
用友ERP系統采用UNIX操作系統,Oracle數據庫;集成化物流管理控制系統(iWMS)采用WINDOWS操作系統,SQL SERVER數據庫。
當物料入庫前,先從ERP系統下載物料編碼、供應商信息等基礎信息。通過物料編碼接口和供應商信息接口兩個Web Service接口,IWMS系統從ERP系統中得到了基礎信息數據,這樣就可以開始接受入庫單據的信息了。
入庫單據信息包含入庫單據號、物料編碼、批號、批次、供應商代碼、計劃入庫數量、實際入庫數量、規格等信息。
根據接受到ERP入庫的單據信息進行相應的轉換生成IWMS的入庫單據。
第二 入庫完成后回傳入庫單據實際數量
調用入庫單據,對物料清點碼盤后進行組盤入庫,等該單據所有的物料全部入庫完畢后,將入庫單據的實際入庫數量回傳給ERP系統。
根據接口協議,回傳的入庫單據和ERP的原單據其他數據項一致,只有實際入庫數量不一樣。
第三 出庫下載客戶信息、出庫單據信息
客戶來提貨前,先從ERP系統填寫銷售出庫單據,出庫單再傳給IWMS系統。
出庫單出庫前,客戶等基礎信息要通過客戶信息接口這個Web Service接口傳遞給IWMS系統,然后才可以接受出庫單的信息了。
出庫單據信息包含出庫單據號、物料編碼、批號、批次、客戶代碼、計劃出庫數量、實際出庫數量、規格等信息。
根據接受到ERP出庫的單據信息進行相應的轉換生成IWMS的出庫單據。
第四 出庫完成后回傳出庫單據實際數量
調用出庫單據,配貨清點完畢,等該單據所有的物料全部出庫裝車后,將出庫單據的實際出庫數量回傳給ERP系統。
根據接口協議,回傳的出庫單據和ERP的原單據其他數據項一致,只有實際出庫數量不一樣。
第四部分 結語
本文介紹了Web Service在物流管理控制系統與企業資源管理系統接口中的應用。
關鍵詞:SOA;企業應用集成
中圖分類號:TP311.133.1文獻標識碼:A
SOA&Enterprise Application Integration Design
Li Shu
(Sichuan Leshan Vocational&Technical College,Leshan614000,China)
Abstract:This paper describes enterprise application integration, and then analyzes the key technology of SOA and Web services,proposed SOA-based enterprise application integration solutions,this program flexible,loosely coupled nature,step by step integration,easily extensible.
Keywords:SOA;Enterprise application integration
一、企業應用集成
(一)企業應用集成的提出
企業應用集成(EAI)是指企業中和企業之間的任何相連的應用間無限制地共享數據和業務處理,從而使企業的整個業務、管理、資源等各個環節,達到協調運轉,效率優化。從企業應用集成的具體應用范圍來看,企業應用集成包括兩方面:企業內部應用系統集成和企業之間的應用系統集成。EAI的模型如圖1所示:
(二)企業應用集成的內容
企業應用集成的內容涉及到以下幾個層面:
1.業務過程集成:當對業務過程進行集成的時候,企業必須在各種業務系統中定義、授權和管理各種業務信息的交換,以便改進操作、減少成本、提高響應速度。
2.應用集成:為兩個應用中的數據和函數提供接近實時的集成。
3.數據集成:在集成之前,必須首先對數據進行標識并編成目錄,另外還要確定元數據模型。這三步完成以后,數據才能在數據庫系統中分布和共享。
4.集成的標準:集成的標準化促成了信息和業務數據的共享和分布,包括COM+/DCOM、CORBA、EDI、JavaRMI和XML。
5.平臺集成:要實現系統的集成,底層的結構、軟件、硬件以及異構網絡的特殊需求都必須得到集成。
二、面向服務的體系結構
(一)SOA協作
面向服務的體系結構(service-oriented architecture SOA)是一個組件模型。面向服務的體系結構將應用程序中的不同功能單元稱為服務,并通過對這些服務之間定義良好的接口而將其聯系起來。接口是采用中立的方式進行定義的,也就是說它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行交互。結構模型如圖2所示。
三個角色是:
1.服務提供者:提供并自己的服務,并且對使用自身服務的請求進行響應;
2.服務注冊中心:用來存儲服務描述信息的信息庫;
3.服務請求者:指查找和調用服務的客戶端應用程序,利用服務(UDDI)查找所需的服務,然后使用該服務(綁定)。
(二)SOA的特點和優勢
1.松散耦合
服務實現者可以更改服務中的接口、數據或者消息版本,而不對服務使用者造成影響。
2.基于行業標準
消除了使用特定標準而限制于服務使用者的需要。并且使用基于標準的技術可打破行業或技術平臺的壟斷并促進所有服務的最優組合。
3.可重用的服務
服務重用避免了重復開發之煩瑣,同時提高了實現中的一致性。服務的重用比起組件或者類的重用更容易實現。
4.同步服務調用(RPC方式)
同步服務對于要求實時響應的應用程序來說是至關重要的,例如Portal 或者Query。
5.異步服務調用
在異步服務調用中,調用方向消息收發服務發送一個包含完全上下文的消息,收發服務將該消息傳遞給接收者。
三、基于SOA的企業應用集成(EAI)
(一)服務訪問流程
通過基于SOA的企業應用集成框架實現的服務訪問流程描述如下:
1.企業門戶將用戶對某個服務的請求傳到后端支持服務總線的應用服務器,如IBM的WebSphere;
2.應用服務器通過UDDI查詢Web Service公共目錄或者經驗證后訪問Web Service私有目錄,用得到的WSDL描述生成SOAP請求消息綁定服務提供者;
3.SOAP請求被傳遞到對應的SOAP路由器,由SOAP路由器將該請求傳遞到對應該服務的適配器;
4.適配器激活相關應用系統;
5.應用處理結果返回適配器,經適配器打包為包含處理結果的SOAP消息,返回給SOAP路由器,直至返回用戶處。
(二)主要組成部分功能描述
1.企業內部Service Provider
企業內部Service Provider中包含已有應用或新開發的Web Service應用,它們均被封裝為標準的Web Service組件,成為系統中的一個集成點。
對已有系統集成的關鍵在于對系統的封裝和包裹,可以先利用WSDL生成器生成該服務對應的WSDL文件,然后生成服務器端基于SOAP的框架代碼,在框架代碼的基礎上開發Web服務適配器,通過該服務適配器,將XML格式的請求轉換為已有系統能解析的格式,同時,將已有系統處理后的結果轉換為XML格式。服務適配器還具備與后端服務器建立通信連接,驗證數據有效性等功能。
2.服務總線Service Bus
服務總線通過一個處于中間層的集中式服務器,為業務流程控制、服務路由、協議轉換和安全扮演著中央控制點的角色。以下對服務總線上的幾個關鍵功能作簡要介紹:
(1)工作流控制:定義工作流程,并協調服務間的交互,己出現一些推薦的標準,如WSFL(Web Service Flow Language)等;
(2)事務管理:由于分布的,松耦合的應用環境不適于使用傳統的事務技術,對此,IBM,微軟和BEA聯合提出WS-Transaction;
(3)安全映射:對所有參與服務進行統一管理,把安全性考慮隔離在單一構件上,簡化開發和管理;
(4)服務監控:監控流程的執行,利用記錄的數據來分析服務質量和指導服務改進;
(5)SOAP路由器:用以實現SOAP消息的傳遞,路由器通過分析,找出對應的Web Service適配器的位置,將SOAP請求傳遞到所請求的適配器;
(三)服務網關Service Gateway
對于企業外部集成,使用服務網關,一方面可以安全地對外公開Web服務,另一方面,防火墻之外的客戶也能調用這些服務。它包括一個服務管理模型和過濾器。服務網關能夠將客戶端支持的服務協議轉換為提供方支持的服務協議,如:客戶的請求可能是HTTP上的SOAP,但在內部可以使用JMS協議上的SOAP。
(四)企業門戶Enterprise Portal
終端用戶界面集成特定用戶訪問的全部應用程序和服務來提供可用、高效、一致的界面。組合式Portal將Web服務通過Portal即插即用,使EAI更加靈活。
四、結束語
SOA為企業應用集成(EAI)提供了理想的集成框架,它是實現EAI的有力工具。基于SOA和消息中間件技術,可以在不改變應用系統原有底層架構的基礎上實現靈活的、面向服務的應用集成,未來相信面向服務的EAI會在企業信息化的進程中得到更廣泛的應用。
參考文獻
[1]宋善德,王雪飛.基于Web服務的企業應用集成方案.計算機應用研究,2003,6,127-129.
[2]宋波,李妙妍.面向Web服務的BPEL的研究與實現.計算機工程與設計,2007,28(9).212-214.
[3]葉宇風.基于SOA的企業應用集成研究.微電子學與計算機,2006,23,(5).211-213.
[4]胡繼東,劉廣鐘.基于Web Services的軟件集成方法的研究與實現.計算機系統應用,2002,11,33-35
隨著Web Services由技術概念到實踐應用的不斷發展,種種跡象表明,Web Services將是未來應用架構的一個極為重要的模式。
安全中間件是中間件的一種,為我們提供了CA認證、數字證書、數字簽名等安全相關的通用編程抽象。應用程序人員不必擁有專業的安全知識,即可通過調用安全中間件的相關API方便地使用所需的安全功能,從而使開發人員能夠專注于業務邏輯的開發。
目前,傳統的基于PKI(Public Key Infrastructure)的安全中間件已經可以滿足我們大部分的安全要求,但是這仍然是不夠的,因為傳統安全中間件基本上都是采用調用API的方式,從而直接導致了應用程序與安全中間件的緊耦合性、平臺相關性與編程語言相關性。
基于Web Services的安全中間件的優勢
具有松耦合性與跨平臺跨編程語言正是Web Services技術的最大特性,下面將討論傳統安全中間件與基于Web Services的安全中間件的各自運作模式及他們的不同,并總結出基于Web Services的安全中間件的優勢。
傳統安全中間件產品一般以PKI為基礎,建立在X.509等安全標準之上,為開發人員提供了加密、認證、授權、驗證等安全接口。下面是傳統安全中間件與基于Web Services的安全中間件的運作模式對比圖:
由圖1左邊可以看出,應用程序是采用API調用方式使用安全中間件的,即傳統安全中間件是作為函數庫與應用程序部署在一起的,這些都使得應用程序與安全中間件之間產生了緊耦合,導致整個系統過于復雜而不好維護,喪失了靈活性。另外,安全算法是需要大規模計算的,對于計算資源寶貴的移動設備來說,以上并不是一個理想的解決方案。
采用Web Services技術的安全中間件,通過SOAP協議實現應用程序與安全中間件之間的通訊。如圖1右邊所示,在本設計中,應用程序與安全中間件之間的通訊采用了Web Services技術,通過SOAP協議進行通訊。同時,為了保證應用程序與安全中間件之間網絡通訊的安全,本系統中采用SSL用于保證傳輸層上的點對點完整性和機密性,在應用層面上則是采用WS-Security規范保證SOAP消息的安全性。
在以上的對比分析中我們可以得知,在基于Web Services的安全中間件中,不管是J2EE或.Net編程技術,都可以通過標準的SOAP協議與安全中間件進行通信,實現了編程語言無關性。再者,由于Web Services技術是基于網絡HTTP協議通過網絡進行通信,從而去掉了應用程序與安全中間件需要部署在同一操作系統、服務器上的限制,進而實現了平臺無關性。最后,假設日后安全中間件內部模塊進行了更新升級,也不會影響到應用程序,無需再編譯、再部署,從而實現了應用程序層與安全中間件層之間的松耦合性。
由此可得出基于Web Services的安全中間件的優勢有:編程語言無關性,平臺無關性與松耦合性。
基于Web Services的安全中間件的總體設計
本文將設計與實現一個基于Web Services的安全中間件,該安全中間件從理論上講,能夠實現傳統安全中間件的所有功能,并且是基于SOAP通訊的,實現了松耦合及跨平臺跨編程語言性。
本中間件的功能主要分成兩大塊――證書模塊與密碼模塊。
證書模塊:證書申請,即個人通過安全中間件向CA申請證書;查詢證書,應用程序可以通過該功能查詢自己或已收到的他人證書狀態;獲取證書,應用程序可通過安全中間件獲取自己或他人的證書;撤銷證書,在個人丟失私鑰時,可以申請撤銷證書;驗證證書,可用于驗證他人證書的有效性。
密碼模塊:加密解密消息,使用各種算法對消息進行加解密操作;生成會話密鑰,為通信的雙方生成會話密鑰;數字簽名,對消息進行數字簽名;簽名驗證,可對已進行數字簽名的消息進行驗證其完整性和發送方身份。
總體框架:
基于Web Services的安全中間件的設計目標,是為了讓所有類型的應用程序都能通過由WS-Security保護的SOAP協議來獲取安全服務。本中間件總體框架如下圖所示:
如圖2所示,本系統采用分層的設計結構。最上層為服務接口,以Web Services的形式給應用程序,而不是傳統的采用API或RPC遠程調用接口,消除了應用程序層與安全服務層之間的耦合性,也使得應用程序與安全中間件無需部署在一起,大大提高了企業信息系統的整體靈活性。
安全中間件在接收到請求后對其進行解析,然后進行相應的操作并返回。在應用程序接口下面,是兩個主要模塊接口――證書服務與密碼服務接口,設計這兩個接口的目的是為了日后系統的擴展。
在兩個接口的下面,是兩個模塊的具體實現,這里的具體實現有兩種方式,一是使用各種成熟的組件直接實現服務,如Sun提供的JCE、JAAS及JSSE,微軟的CryptAPI或Intel的CDSA等;二是通過統一的PKI接口調用現成的PKI設施,其好處是可以隨以后需求的變更而靈活使用不同的PKI產品。PKI統一接口的下方PKI Provider xx是針對某一PKI產品所設計的專用轉換接口,實現從特定PKI產品自身接口到本系統PKI統一接口的轉換。
實現細節:
下面是本系統的服務接口設計,這里的服務接口是指本安全中間件開發給應用程序的服務接口。本系統的Web Service的實現采用AXIS2開源框架。下面將使用AXIS2的services.xml說明服務接口的設計,并結合使用SOAP消息格式進行詳細說明。
如services.xml文件中申請證書的xml配置如下:
urn:applyCert
本文就傳統安全中間件與基于Web Services的安全中間件進行探討比較,進而總結出基于Web Services的安全中間件的優勢之處在于松耦合、跨平臺與跨編程語言。接著,提出基于Web Services的安全中間件的設計方案,并實現了上述三點優勢。當然,本系統目前還存在一些不足之處,在完整性方面,目前僅實現了基本的安全服務功能;在標準性方面,目前采用的Web Services安全規范仍處于草案階段而不是公認的標準;最后是實用性,本系統目前仍處于測試階段,最終能否勝任安全強度的要求仍需進一步的考驗。
參考文獻
[1] JP Morgenthal. Web Services for Enterprise Application Integration. [A] Journal, 2002,2(5 ): 14 ~16
[2] 張志擦. 中間件技術. 北京:中國石化出版社,2002. 122~123
[3] 荊繼武. PKI系統研究:[博士學位論文]. 北京:中國科學院研究生院,2002
[4] 張振興. Web服務安全性的研究與實現:[D]. 華北電力大學碩士論文,2004
[5] 肖軍模,劉軍. 網絡信息安全. 北京:機械工業出版社,2003. 23~24
[6] Markham T. Security at the network edge. Information Survivability Conference, 2001,11. 279~286
關鍵詞: 區域醫療; 數據交互; 異構系統; 信息化建設
中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)02?0051?02
隨著信息技術的飛速發展,各種管理信息系統已在醫療行業中得到廣泛應用。同時,在新醫改的推動下,建立數字化“醫療聯合體”和“區域醫療平臺”成為醫療信息化發展的必然趨勢。但由于各個醫療部門的軟硬件條件各異,部門、單位特點不同,勢必造成多種關系數據庫共存的局面。多種異構數據庫的存在嚴重限制了數據共享和交互的范圍。因此如何在保留原有成熟醫院信息系統(Hospital Information System,HIS)的基礎上,實現異構數據庫間透明信息存取是首要解決的問題。
1 醫療信息系統現狀
我國從20世紀90年代初逐步開始醫療信息化建設。目前各種醫療信息化系統已經開始部署到地方各級醫療機構,典型的系統包括:醫院信息系統(Hospital Information System,HIS)、電子病歷系統(Electronic Medical Records,EMR)、醫學影像存檔與通信系統(Picture Archiving and Communication System,PACS)、檢驗信息系統(Laboratory Information System,LIS)和超聲信息系統(Ultrasound Information System,UIS)等。
為落實國家“十二五”深化醫藥衛生體制改革規劃、物聯網發展規劃和電子政務發展規劃,需要對衛生信息化建設及其應用提出新的要求。國家已從戰略層面指出:根據當前醫改對信息化發展形勢的要求,“十二五”期間衛生信息化工作要在以區域衛生信息化建設為重點的互聯互通和資源共享方面有所作為[1]。區域衛生信息化建設發展的一個必然階段便是區域衛生信息化中的數據交互建設,這是區域衛生信息化建設中最重要的課題。數據交互的實現,能夠滿足政府更高效、更靈活、協同性更好的實現對醫療衛生的管理,幫助醫療衛生單位實現大量信息快速、有效、準確地獲取、管理和傳遞,改進工作流程,提高工作效率。
由于國內醫療信息化建設水平參差不齊,且無統一的標準。不同的信息系統開發商在設計、實現過程中所采用的系統架構、技術方法、開發平臺千差萬別,勢必出現不同醫療機構間相同業務類型的數據存儲定義、語義表達方式不同。這些不同,形成了無數個孤立的信息系統,導致患者就診時醫生無法在第一時間內準確了解疾病史、藥物治療史、過敏史和前期檢查結果等,降低診療效率和診療質量,增多患者重復檢查的次數,提高診療成本,加重患者經濟負擔。 構建異構醫療數據交互平臺是實現區域衛生信息化的核心環節。通過外掛中間件的方式,對醫院已有的HIS不做改動的前提下,在系統間高效、安全的傳輸和處理基于相關醫療信息標準的醫療信息。
2 系統設計
為了異構醫療數據間的交互,首先必須建立穩定可靠的系統架構。如圖1所示,該系統架構在保留原HIS和數據庫的基礎上通過外掛中間件的方式交互數據。當某醫院有申請數據的需要時,通過HTTP請求以XML格式表示的有效數據。發送方通過數據訪問模塊從源數據庫中提取數據,然后基于HL7的醫療信息標準進行數據轉換,以WS?Security的安全機制實現SOAP消息的安全傳遞,保證醫療數據標準、安全、有效的傳輸給數據申請方。
3 關鍵技術
在整個異構醫療數據交互系統架構中,數據的轉換、表現形式以及數據的傳輸安全是最核心的技術。
(1) 基于HL7的數據轉換模型。醫療信息傳輸與交換技術標準(Healthy Level Seven,HL7)是醫學信息系統應用和執行的標準,是基于消息實現數據傳遞的標準規范[2],多個HIS之間進行數據的交互都是以HL7為標準的。在HL7標準中,若干個字段構成一個消息段,有一定順序和邏輯關系的消息段構成一條消息,當某事件發生時將消息按照一定的網絡傳輸協議傳送到接收方,接收方在消息的接收、解析之后將其送往應用程序。相比于之前版本,HL7 v3版一個顯著的特點就是支持可擴展標記語言,運用XML技術來加強和改善醫療系統之間的數據交換能力。
(2) 可擴展標記語言XML。XML(eXtensible Markup Language)是針對包含結構化信息的文檔而設計的一種標記語言。在本系統的研發中通過以XML格式表示和傳輸以HL7標準建立的共享數據信息。考慮到HIS數據的復雜性,它需要在數據類型、主外鍵值、數據完整性約束等方面的定義,使用XML schema定義XML文檔數據交換格式的標準[3]。
(3) 基于WebService和SOAP協議的異構數據源交互模型。SOAP 調用的數據和方法的表達方式是基于 XML 的、可以使數據的型和值在表達上分離, 有利于應用程序之間透明交換信息, 同時可以解決網絡傳輸安全性問題[4]。本研究采用WebService和SOAP協議建立異構數據源交互模型,如圖2所示。該模型采用XML作為數據描述語言,轉換時首先通過數據交換中間件把各種異構的輸入/輸出數據按照描述邏輯轉換為統一規則的XML文件,然后通過SOAP傳輸協議在各異構系統之間的Internet網絡之間進行傳輸,最后再通過數據交換中間件完成數據轉換。
(4) 異構系統安全策略。采用基于WS?Security的安全機制實現SOAP消息的安全傳遞,其中對XML元素加密算法由WS?Security規范提供,這種加密算法滿足了消息級安全的需要[5]。同時,采用基于X.509證書的PKI技術實現對SOAP消息進行加密、解密和簽名、認證,最終實現安全的SOAP消息調用。
4 結 語
本文結合HL7 V3版本的特點和XML技術的優勢,提出在保留原HIS和數據庫的基礎上,采用外掛中間件的方式實現異構醫療數據交互的策略,構建了數據交互的系統架構,并闡述了關鍵技術解決方案,對實現區域衛生信息化建設環境下的醫療數據交互提供了一個切實可行的方案。
參考文獻
[1] 佚名.攻堅醫改難題勇擔發展重任:2012年醫療衛生信息化發展與未來展望[J].中國信息界,2012(12):40?45.
[2] Anon. HL7 version 2: health informatics [M]. [S.l.]: [s.n.], 2010: 107?128.
[3] AHMED K Z,UMRYSH C E.用J2EE和UML開發企業級應用程序[M].康博,譯,北京:清華大學出版社,2002.
[4] 徐漢川,胡潤波,劉國忠.基于XML/SOAP數據交換中間件的設計[J].哈爾濱商業大學學報:自然科學版,2004,20(6):665?670.
[5] 蔡小芳,張永勝.在Web服務安全中XML加密與簽名的應用[J].計算機安全,2006(7):20?23.