仍然要保證數據高效的傳輸;安全意味著數據的整個傳輸過程需要是安全 的,避免數據被攔截后出現泄露的事故。
[0116] 要做到數據傳輸的可靠,需要依賴之前在解決方案中提出的應用級可靠的數據傳 輸過程。
[0117] 要做到數據傳輸的高效,需要具備根據網絡環境智能的判斷數據是否需要分片和 壓縮,同時需要依賴高效的MQ工具。
[0118] 要做到數據傳輸的安全,需要對傳輸的數據進行一系列的安全保護措施,包括數 據的加密、簽名和數據傳輸節點的安全控制。
[0119] 根據送樣的分析,要實現數據的傳輸,數據交換平臺應提供可靠數據傳輸協議的 實現、數據的分片、數據的壓縮、數據的加密、簽名、節點的監控W及節點的安全控制機制。
[0120] 傳輸和轉換的集成
[0121] 傳輸和轉換集成后可W讓產品變成一個平臺級的產品,具備完整的數據交換和整 合的解決能力。
[0122] 在傳輸和轉換的集成中,最重要的是執行轉換的策略,對于數據發送者而言就是 指定時、閑時還是外部程序觸發的方法來執行數據的轉換;對于數據接收者而言就是指如 何調用數據轉換,并保證數據轉換可靠的完成。
[0123] 根據送樣的分析,要實現傳輸和轉換的集成,數據交換平臺應提供轉換策略的配 置、常用的執行策略的實現。
[0124] 在實現數據交換平臺產品時,還需從可維護性W及擴展性上進行考慮,可維護性 意味著應對產品進行分層,將不同職責的模塊進行分層,W便能夠保證模塊的職責單一和 清晰;可擴展性意味著需要給產品留好各種各樣的擴展點,W便項目或應用能夠根據需求 進行定制性的擴展。
[0125] 參見圖1,該系統包括有四部分:交換中必、傳輸層、交換服務層、交換接口層,交 換服務層包含有數據傳輸模塊、接收服務模塊、發送服務模塊、數據轉化服務模塊、數據映 射模塊、轉換節點安全控制模塊;
[0126] 交換中必是負責數據的路由、存儲W及對交換節點的管理;
[0127] 傳輸層是負責數據的傳輸,支持多種傳輸方式,包含通過MOM產品、基于SOAP協 議、HTTP協議等來實現數據的傳輸;
[0128] 交換服務層為數據交換平臺提供的所有功能的服務,外部的功能都基于送些服務 來實現,例如數據壓縮并不是所有數據都需要的,可W根據一定的規則配置,從而在運行時 根據規則選擇相應的服務進行數據的發送和接收;
[0129] 接口層是提供給應用進行使用,包括有數據服務框架、數據映射工具和接口狀態 服務;
[0130] 數據服務框架提供給應用基于整合的數據進行其他應用的開發,包含報表應用、 決策支持應用等;
[0131] 數據映射工具提供給應用通過可視化的工具來配置數據的轉換規則,從而實現數 據從數據源轉換到標準格式的數據文件W及將標準格式的數據文件寫入數據源;
[0132] 接口狀態服務提供給應用來監控目前交換平臺對外提供的接口的運行狀況,W便 判斷數據交換平臺的運行狀況。
[0133] 進一步,所述的數據傳輸模炔基于MQ的數據傳輸模塊的實現,數據傳輸模塊承 擔的職責是數據的發送和接收,數據的發送負責調用MQ將數據流發送給指定的一個或多 個目的地,點對點數據傳輸的可靠性交由MQ來保證,送塊交換平臺不做可靠性的保證的策 略,數據的接收負責接收MQ收到的數據,并轉為調用接收服務模塊來完成接收的處理。
[0134] 基于MQ的設計分析
[0135] 根據模塊的描述,可W看出此模塊只是對發送數據和接收數據接口進行封裝,W 便后期可實現基于其他的方式來發送數據,如FTP等。
[0136] 在發送動作和接收動作的實現上通過調用MQ的接口進行實現,在調用時基于標 準的JMS接口進行調用,W便交換平臺可支持MQ的切換。
[0137] 數據傳輸模塊詳細設計 [013引模塊實現的時序圖如圖2:
[0139] 數據傳輸對外提供發送數據流接口,在發送數據流時數據傳輸模塊調用MQ接口 完成。
[0140] 同時自行注冊Listener到MQ API,當MQ接收到數據后通知此Listener。類圖如 圖3所示。
[0141] 進一步,所述的接收服務模塊負責處理接收到的數據,并要求做到整個數據的接 收流程是可定制的,流程中的步驟是可擴展的,應用可根據需求對流程的步驟進行擴展;
[0142] 在接收流程步驟方面,數據交換平臺需提供保存接收到的數據文件到指定目錄、 執行數據轉換、數據解密W及數據解壓四種步驟的支持。
[0143] 基于pipeline的設計分析:
[0144] 整個接收流程是串行化的數據處理的過程,非常適合采用Pipeline模式進行實 現。
[0145] Pipeline模式在分布式框架中經常可W看到,應用該模式可W使框架具有良好的 靈活性。當我們需要構建一個系統用于處理并轉換一串輸入數據時,如果通過一個大的組 件按部就班的來實現此功能,郝么一旦需求發生變化,比如其中的兩個處理步驟需要調換 次序,或者需要加入或減去某些處理,系統將很難適應,甚至需要重寫。而Pipeline模式則 將一個個的處理模塊相互分離,各自獨立,然后按照需要將它們串聯起來即可,此時前者的 輸出就會作為后者的輸入。此時,每個處理模塊都可W獲得最大限度的復用。當需求發生 變化時,我們只需重新組織各個處理模塊的鏈接順序,或者刪除或加入新的處理模塊即可。
[0146] 數據接收流程的所有步驟都實現化taReceiveSt巧接口,并在配置文件中組裝送 些化taReceiveStep的實現類,數據發送流程負責加載相應的配置文件,進行解析并按照 配置中的步驟基于Pipeline方式進行數據的發送。
[0147] 接收服務模塊詳細設計:
[014引模塊實現的時序圖如圖4所示:
[0149] 當MQ接收到數據時,通知數據傳輸模塊,數據傳輸模塊調用數據接收流程管理類 對數據進行處理,數據接收流程管理類首先尋找此數據對應的接收流程,調用數據接收流 程配置文件解析類解析流程并形成pipeline,最后調用pipeline進行執行。類圖如圖5所 /J、- 〇
[0150] 數據接收流程管理類對外提供接收服務模塊的唯一接口,此類負責調度數據的整 個接收處理的過程,其依賴于數據接收流程配置文件解析類和數據接收流程步驟來完成。
[0151] 數據接收流程配置文件解析類負責解析流程配置文件,并生成數據接收流程對象 集合,配置文件采用XML格式進行編寫,解析時采用dom4j完成。
[0152] 數據接收流程對象為實體對象類,負責存儲數據接收流程步驟對象,W便流程管 理類進行調度。
[0153] 數據接收流程步驟接口定義了數據接收流程步驟的處理方式,接口定義如下:
[0154] 接口數據接收流程步驟{
[01巧]返回對象執行(傳入對象)拋出異常;
[0156] }
[0157] 保存數據文件步驟負責將接收到的數據保存到指定的目錄中,實現方法為將傳入 的對象直接序列化后進行存儲。
[0158] 數據解密步驟負責將數據進行解密,解密時首先將文件進行base64反編碼,然后 做DES解密。
[0159] 數據解壓步驟負責將數據進行解壓,基于標準的zip解壓實現。
[0160] 執行數據轉換步驟負責調用數據轉換工具執行相應的數據轉換過程。
[0161] 在使用時,用戶只需將配置文件放入數據交換平臺指定的目錄,或上傳到數據交 換平臺,就完成了數據接收的配置,配置文件示意如下:
[0162]
[0163] 進一步,所述發送服務模塊負責發送數據,并要求做到整個數據的發送流程是可 定制的,流程中的步驟是可擴展的,應用可根據需求對流程的步驟進行擴展;
[0164] 在發送流程步驟方面,數據交換平臺需提供定時執行、觸發執行、數據發送、壓縮、 加密、路由、執行數據轉換W及掃描目錄八種步驟的支持;
[0165] 發送服務模塊對外提供發送流程服務,需要進行發送數據的應用只需配置相應的 流程步驟即可。
[0166] 基于pipeline的設計分析
[0167] 發送流程和接收流程的需求是一樣的,只是在步驟上有不同支持的需求,因此實 現的方式也采用Pipeline模式,通過化taSendStep接口來定義數據發送的步驟,步驟的組 裝上采取和接收流程相同的配置文件的方式。
[016引發送服務模塊詳細設計:
[0169] 數據發送流程的時序圖如圖6所示:
[0170] 數據發送流程管理類在系統啟動時就跟隨啟動,啟動后它首先掃描目錄下的所 有發送流程的配置文件,并調用數據發送流程配置文件解析類進行解析,形成發送流程的 pipeline,隨后就調用pipeline啟動整個流程。數據發送流程的類圖如圖7所示。
[0171] 數據發送流程管理類負責對外提供管理接口,W控制數據發送流程的運行和停 止,數據發送流程管理