專利名稱:數據服務請求應答方法和數據服務協議棧的制作方法
技術領域:
本發明涉及通信領域中業務運營支撐技術,具體地,涉及數據服務請求應答的方法及數據服務協議棧。
背景技術:
目前很多大型企業,如通信、金融等行業的企業都已經開始實施SOA (Service-Oriented Architecture,面向服務架構)。SOA提供了一種構建IT組織的標準和方法,通過建立可組合、可重用的服務體系來減少IT業務冗余,并加快項目開發的進程,SOA體系能夠使IT部門效率更高、開發周期更短、項目分發更快,在協助IT技術和業務整合方面有著較高的價值。SOA實施過程中的關鍵內容之一在于數據服務的實現,數據服務作為應用與數據解耦的技術,可實現軟件的高內聚、松耦合,可以提高軟件的復用度。現有業界在數據服務的實現方面主要有EJB、C0RBA、DC0M和Web Service等技術,其中比較流行的是Web Service。Web Service使用標準的、規范的XML描述接口,來描述與服務進行交互所需要的全部細節,包括消息格式、傳輸協議和服務位置;而在對外的接口中隱藏了服務實現的細節,僅提供一系列可執行的操作,該操作獨立于軟硬件平臺和編寫服務所用的編程語言。Web Service的體系結構主要基于服務注冊中心、服務請求者(即服務請求方)和服務提供者(即服務提供方)三種角色之間的交互,如圖1所示。三種角色的交互主要涉及發布、查找和綁定操作,服務提供者定義Web服務的服務描述并把它發布到服務注冊中心,服務請求者使用查找操作從本地或服務注冊中心檢索服務描述,然后使用服務描述與服務提供者進行綁定并調用Web服務。申請號為201010616910.4的中國專利申請介紹了一種Web Service服務的管理方法和系統,包括:網絡服務器獲取客戶端發送的用戶身份認證請求;所述用戶身份認證請求包括:用戶數字證書和用戶身份認證信息;所述網絡服務器將其獲取到的用戶身份認證請求轉發給認證中心,以便所述認證中心對所述網絡服務器以及用戶身份進行認證;當所述認證中心完成認證后,所述網絡服務器接收所述認證中心返回的認證結果;根據所述認證結果,所述網絡服務器為所述客戶端提供網絡服務。本專利申請能夠提高Web Service的安全性,還能有效的解決驗證數字證書的使用者和所有者是否是同一實體的問題。申請號為200910167170.8的中國專利申請公開了一種提供數據服務的處理系統及方法,包括:在接收到用戶的提供數據服務的業務請求后,在需要調用外部接口時,基于調用外部接口的位置將業務拆分為初始邏輯業務和后續邏輯業務;對初始邏輯業務進行處理,并向反向代理服務器返回分段響應處理結果;反向代理服務器根據分段響應結果的請求調用外部接口 ;在調用的外部接口返回響應結果后,將分段響應結果與調用外部接口返回的響應結果整合成提供給用戶的數據服務結果;向用戶返回數據服務結果。本專利申請可以避免前端邏輯被阻塞,使得前端服務能夠連續處理新請求而不用浪費時間在等待外部服務請求的響應上。
總體來說,上述現有方案雖然可以一定程度上解決Web Service數據服務的實現問題,但主要針對服務接口層面實現,并不能深入到數據服務的內部實現細節進行規范說明,使數據服務的內部實現不能得到充分的解耦和復用,導致數據服務的內部實現比較復雜,影響數據服務的實現效率。
發明內容
本發明的目的是針對現有技術中數據服務的實現效率較低的缺陷,提出一種數據服務請求應答方法及數據服務協議棧。為實現上述目的,根據本發明的一個方面,提供了 一種數據服務請求方法。根據本發明實施例的數據服務請求方法,包括:服務請求方通過數據服務協議棧的表示層、會話層、服務層和接口層將服務指標參數封裝到SOAP數據包或HTTP數據包;服務請求方將封裝后的SOAP數據包或HTTP數據包發送給服務提供方,以使服務提供方將SOAP數據包或HTTP數據包進行解析處理后獲得服務查詢指令,自數據庫中獲取服務數據。在上述技術方案中,服務提供方將SOAP數據包或HTTP數據包進行解析后獲得服務查詢指令,自數據庫中獲取服務數據的步驟包括:服務提供方通過數據服務協議棧的接口層、服務層、會話層和表示層對SOAP數據包或HTTP數據包進行解析后獲得服務指標參數;服務提供方通過數據服務協議棧的模型映射層和連接層根據服務指標參數組成服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據。在上述技術方案中,將服務指標參數封裝到SOAP數據包或HTTP數據包的步驟包括:將服務指標參數通過數據服務協議棧的表示層封裝成可擴展標記語言數據,根據服務的交互類型通過數據服務協議棧的會話層發起會話請求;通過數據服務協議棧的服務層將可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中;通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包的包頭進行服務版本、路由、請求源和認證鑒權的封裝操作。在上述技術方案中,在將服務指標參數封裝到SOAP數據包或HTTP數據包的步驟與將封裝后的SOAP數據包或HTTP數據包發送給服務提供方的步驟之間還包括:通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包進行數字簽名的操作。在上述技術方案中,對SOAP數據包或HTTP數據包進行解析后獲得服務指標參數的步驟包括:通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包進行數字簽名認證和數據解密;通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包的包頭進行解析,進行認證鑒權、請求源、路由和服務版本的控制操作,獲取SOAP數據包或HTTP數據包的包體;通過數據服務協議棧的服務層對SOAP數據包或HTTP數據包的包體進行解析,獲取可擴展標記語言數據;通過數據服務協議棧的會話層,獲知服務的交互類型,根據服務的交互類型將可擴展標記語言數據轉發至數據服務協議棧的表示層;通過數據服務協議棧的表示層對可擴展標記語言數據進行解析,獲取服務指標參數。在上述技術方案中,根據服務指標參數組成服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據的步驟具體包括:通過數據服務協議棧的模型映射層將服務指標參數組裝成服務查詢指令;通過數據服務協議棧的連接層將服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據。為實現上述目的,根據本發明的一個方面,提供了 一種數據服務應答方法。根據本發明實施例的數據服務應答方法,包括:服務提供方通過數據服務協議棧的連接層自數據庫中獲取服務數據,通過數據服務協議棧的模型映射層、表示層、會話層、服務層和接口層將服務數據封裝成SOAP數據包或HTTP數據包;服務提供方將封裝后的SOAP數據包或HTTP數據包發送給服務請求方,以使服務請求方通過數據服務協議棧的接口層、服務層、會話層和表示層對SOAP數據包或HTTP數據包進行解析后,獲取服務數據。在上述技術方案中,將服務數據封裝成SOAP數據包或HTTP數據包的步驟包括:將服務數據通過數據服務協議棧的模型映射層轉換為關系型數據,并將該關系型數據通過數據服務協議棧的表示層封裝成可擴展標記語言數據;通過數據服務協議棧的會話層,獲知服務的交互類型,根據服務的交互類型將可擴展標記語言數據轉發至數據服務協議棧的服務層;將可擴展標記語言數據通過數據服務協議棧的服務層封裝到SOAP數據包或HTTP數據包的包體中;通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包的包頭進行應答結果、應答時間、應答編碼和應答描述的控制信息的封裝操作。為實現上述目的,根據本發明的另一個方面,提供了一種數據服務請求數據服務協議棧。根據本發明實施例的數據服務協議棧,包括:表示層,用于將服務指標參數封裝成可擴展標記語言數據,對可擴展標記語言數據進行解析,獲取服務指標參數;會話層,用于根據服務的交互類型發起會話請求,獲知服務的交互類型,根據服務的交互類型將可擴展標記語言數據轉發至表示層;服務層,用于將可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中,對SOAP數據包或HTTP數據包的包體進行解析,獲取可擴展標記語言數據;接口層,用于對SOAP數據包或HTTP數據包的包頭進行服務版本、路由、請求源和認證鑒權的封裝操作,對SOAP數據包或HTTP數據包的包頭進行解析,進行認證鑒權、請求源、路由和服務版本的控制操作,獲取SOAP數據包或HTTP數據包的包體;模型映射層,用于將服務指標參數組裝成服務查詢指令;連接層,用于將服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據。在上述技術方案中,協議棧還包括:接口層,還用于對SOAP數據包或HTTP數據包進行數字簽名的操作,對SOAP數據包或HTTP數據包進行數字簽名認證和數據解密。在上述技術方案中,協議棧還包括:接口層,還用于將數據服務對外發布,提供給服務請求方調用,并且通過企業服務總線控制數據服務的訪問,實現數據服務的集成和統一控制。
在上述技術方案中,協議棧還包括:模型映射層,還用于實現數據服務的數據模型與數據庫數據模型的映射。為實現上述目的,根據本發明的另一個方面,提供了 一種數據服務協議棧。根據本發明實施例的數據服務協議棧,包括:連接層,用于自數據庫中獲取服務數據;模型映射層,用于將服務數據轉換為關系型數據;表示層,用于將關系型數據封裝成可擴展標記語言數據;會話層,用于獲知服務的交互類型,根據服務的交互類型將可擴展標記語言數據轉發至服務層;服務層,用于將可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中;接口層,用于對SOAP數據包或HTTP數據包的包頭進行應答結果、應答時間、應答編碼和應答描述的控制信息的封裝操作。本發明各實施例的數據服務請求應答方法及數據服務協議棧,不僅可以實現應用與數據的解耦,還可以實現數據服務內部的解耦,使數據服務的內部實現細節更加簡單、高效、清晰、靈活和可擴展。本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
附圖用來提供對本發明的進一步理解,并且構成說明書的一部分,與本發明的實施例一起用于解釋本發明,并不構成對本發明的限制。在附圖中:圖1為根據現有技術中的服務注冊中心、服務請求方和服務提供方交互關系示意圖;圖2為本發明的數據服務協議棧的結構示意圖;圖3為本發明的連接層中數據源數據格式示意圖;圖4為本發明的LSQL的數據格式示意圖;圖5為本發明的SQL的數據格式示意圖;圖6為根據本發明模型映射層中關系型數據格式示意圖;圖7為根據本發明表示層的XML數據表示方式示意圖;圖8為根據本發明表示層的CSV數據表示方式示意圖;圖9為根據本發明表示層的Excel文件類型的數據示意圖;圖10為根據本發明會話層的在線請求-同步響應方式的示意圖;圖11為根據本發明會話層的在線請求-異步響應方式的示意圖;圖12為根據本發明會話層的發布-訂閱方式的示意圖;圖13為根據本發明服務層的封裝了請求消息體的SOAP請求報文數據格式示意圖14為根據本發明服務層的封裝了應答消息體的SOAP應答報文數據格式示意圖;圖15為根據本發明接口層的加入服務版本后的SOAP請求報文數據格式示意圖;圖16為根據本發明接口層的加入服務路由后的SOAP請求報文數據格式示意圖;圖17為根據本發明接口層的加入請求時間后的SOAP請求報文數據格式示意圖;圖18為根據本發明接口層的加入短連接認證信息后的SOAP請求報文數據格式示意圖;圖19為根據本發明接口層的加入長連接認證信息后的SOAP請求報文數據格式示意圖;圖20為根據本發明接口層的加入可靠請求源信息后的SOAP請求報文數據格式示意圖;圖21為根據本發明接口層的進行數字簽名后的SOAP請求報文數據格式示意圖;圖22為根據本發明接口層的加入控制信息后的SOAP應答報文數據格式示意圖;圖23為根據本發明服務請求方向服務提供方發起服務請求的流程示意圖;圖24為根據本發明步驟102中KPI指標參數的數據格式示意圖;圖25為根據本發明步驟104中XML格式數據的數據格式示意圖;圖26為根據本發明步驟108中SOAP數據格式示意圖;圖27為本發明發起服務請求方法實施例中步驟110封裝后的數據格式示意圖;圖28為本發明發起服務請求方法實施例中步驟112數字簽名后的數據格式示意圖;圖29為根據本發明服務提供方對服務請求方發起的服務請求進行服務應答的流程不意圖;圖30為根據本發明步驟202中數據源數據格式示意圖;圖31為根據本發明步驟204中關系型數據格式示意圖;圖32為根據本發明步驟206中封裝后XML數據格式示意圖;圖33為本發明進行服務應答方法實施例中步驟210封裝后的數據格式示意圖;圖34為本發明進行服務應答方法實施例中步驟212封裝后的SOAP數據包示意圖。
具體實施例方式以下結合附圖對本發明的優選實施例進行說明,應當理解,此處所描述的優選實施例僅用于說明和解釋本發明,并不用于限定本發明。現有的Web Service數據服務實現的技術方案,主要針對服務接口層面的實現,并不能深入到數據服務的內部實現細節進行規范說明,使數據服務的內部實現不能得到充分的解耦和復用,導致數據服務的內部實現比較復雜,影響數據服務的實現效率。本發明公開數據服務請求應答方法和數據服務協議棧,可以較好的解決上述問題,除了可以實現應用與數據的解耦,還可以實現數據服務內部實現的解耦,使數據服務的內部實現細節更加簡單、高效、清晰、靈活、可擴展。如圖2所示,本發明的數據服務協議棧共劃分為六層,自上而下依次是連接層、模型映射層、表示層、會話層、服務層和接口層;本發明的數據服務協議棧共分為兩部分:月艮務請求方部分和服務提供方部分,服務請求方部分自上而下由表示層、會話層、服務層和接口層組成,服務提供方部分自上而下由連接層、模型映射層、表示層、會話層、服務層和接口層組成;其中,服務請求方部分與服務提供方部分中的表示層、會話層、服務層和接口層的結構和功能都相同。數據服務便是由數據源數據,經過數據服務協議棧中連接層到接口層的逐層封裝而成。1、連接層連接層用來實現數據服務對各種數據源的連接,以及數據源數據的操作,從而獲取數據服務所需要的數據源數據。連接層通過數據源連接技術,例如JDBC、0DBC、FTP和SOAP等來實現對各種數據源的連接,并從數據源(即數據庫)取得數據源數據。連接層從數據源取得數據后,以比特流形式的數據格式存在,如圖3所示。2、模型映射層模型映射層用來實現數據服務的數據模型與數據源數據模型的映射,將數據服務的數據模型的查詢語句轉換為可執行的數據源的數據模型的查詢語句,以及將連接層的數據源數據轉換為關系型數據。模型映射層為表示層提供的數據服務的數據模型的查詢語句接口,主要可以采用標準的SQL或者LSQL(LSQL為中國移動經營分析系統數據倉庫邏輯查詢語言CMCC-LSQL)來實現。其中,SQL無法屏蔽數據庫和數據模型之間的差異,因此主要適用于速度要求較高,數據模型差異不大的應用場景;而LSQL主要適用于速度要求不高,數據模型差異較大的應用場景。LSQL的數據格式如圖4所示。SQL的數據格式如圖5所示。如果是SQL,則直接提交給連接層執行,如果是LSQL,則需要經過模型映射后轉換為可執行的物理SQL,再提交給連接層執行。連接層通過連接技術將SQL提交數據庫執行,并將獲取的數據源數據,返回給模型映射層,模型映射層為了方便表示層的數據表示,將數據源數據轉換為關系型數據,關系型數據格式如圖6所示。3、表示層表示層用來表示數據服務交互過程中的數據,實現將模型映射層中的關系型數據表示為數據服務交互過程中所需要的數據格式。數據表示方式主要包括:XML、CSV和二進制的方式,在不同的數據服務交互過程中,數據的表示方式可能不同,如:在“在線請求-同步響應”的數據服務交互方式中采用XML作為數據的表示方式;在“在線請求-異步響應”和“發布-訂閱”交互方式中的數據服務控制信息采用XML,而應答的數據內容采用CSV數據表示方式;在對數據格式有特殊要求的需求場合,可以采用二進制流的數據表示方式。XML的數據表示方式如圖7所示,CSV的數據表示方式如圖8所示。二進制流數據表示方式主要是根據具體應用的需要或者用戶的要求,生成相應文件類型的數據,如Excel文件類型的數據,如圖9所示。4、會話層
會話層是服務請求方與服務提供方進行交互會話的場所,會話層通過不同的交互方式來表示數據服務的交互過程。會話層的數據交互方式有“在線請求-同步響應方式”、“在線請求-異步響應方式”和“發布-訂閱方式”。該三種交互方式(即會話協商方式)的選擇主要由數據的服務提供方決定,服務提供方根據自身數據量、實時性要求等特點,在數據服務開發時確定采用何種數據交互方式。具體說明如下:(I)在線請求-同步響應方式在線請求-同步響應方式是指服務請求方向服務提供方發送數據請求,并進入阻塞狀態,等待服務提供方的響應數據返回。服務提供方在接收到數據請求后,進行一系列的業務處理獲取響應數據,并將響應數據回復給服務請求方。服務請求方在接收到響應數據后,中止阻塞狀態繼續運行。具體在線請求-同步響應方式的數據交互流程如圖10所示。該方式適用于響應速度比較快,且數據量比較小的場合。由于發送數據請求的服務請求方需要阻塞運行,因此如果響應的速度比較慢,會造成服務請求方長時間阻塞不能運行,很可能會影響到服務請求方應用的正常運行;同樣,如果傳輸的數據量比較大,那么傳輸的過程中請求數據的服務也需要等待,造成等待時間過長。(2)在線請求-異步響應方式在線請求-異步響應方式是指服務請求方調用服務提供方的“準備數據方法”,向服務提供方發送數據請求。服務提供方在接收到數據請求后,返回請求成功標志、數據準備的預估處理時間、建議定期查詢數據準備情況的時間間隔和數據的獲取方式等消息。服務請求方在獲得上述消息后可繼續運行,不需要長時間處于阻塞狀態。服務提供方在返回上述消息后進行一系列的業務處理以準備數據。服務請求方在數據準備的預估處理時間到達后,按照建議定期查詢數據準備情況的時間間隔,服務請求方向服務提供方發送查詢數據準備情況的請求。如果數據未準備完畢,服務提供方返回數據未準備完畢的消息,服務請求方則在建議的時間間隔后繼續查詢;如果數據準備完畢,服務提供方返回包含何時何地如何獲取數據的消息。服務請求方即可以按照給定的時間到給定的地點(FTP或HTTP地址)在給定的有效期內自行決定何時使用給定的方式(FTP或HTTP協議)取得數據。具體在線請求-異步響應方式的數據交互流程如圖11所示。該方式適用于被請求的數據量產生時間比較長,或者數據量較大的場合。因為采用異步方式,不需要長時間的等待與阻塞,服務請求方可以正常運行其它功能,僅需要在接到數據準備完畢的信號之后再處理請求的數據。(3)發布-訂閱方式發布-訂閱方式是指服務請求方向服務提供方的“注冊方法”注冊請求數據的要求和通知服務。服務提供方在接到服務請求方的注冊消息后,返回請求成功的標志。服務請求方在獲得上述注冊消息后,可以繼續運行而不需要長時間處于阻塞狀態,服務提供方在返回上述注冊消息后,進行一系列的業務處理以準備數據。當數據準備完畢,服務提供方調用服務請求方注冊的通知服務,告知服務請求方數據準備情況和相關的獲取信息。服務請求方回復成功或失敗的標志,服務請求方即可以按照給定的時間到給定的地點(FTP或HTTP地址)在給定的有效期內自行決定何時使用給定的方式(FTP或HTTP協議)取得數據,從而實現數據的觸發式交互。具體發布-訂閱方式的交互流程如圖12所示。
該方式適用于觸發性傳輸各種數據量的數據封裝服務,由于發布-訂閱方式本質上是異步響應方式,因此服務請求方不需要長時間的等待與阻塞,可以正常運行其它功能。5、服務層服務層主要通過服務實現技術對表示層的數據做進一步的封裝,把數據內容的消息體封裝到數據服務的報文體中,并實現具體的數據服務。服務層數據服務的實現主要采用Web Service技術,其中Web Service的服務提供方可以通過SOAP或者REST架構來實現。基于SOAP實現的數據服務,主要將表示層的數據內容消息體封裝到SOAP協議的Body中,而基于REST實現的數據服務,主要將消息體封裝到HTTP協議的報文體中。下面主要介紹基于SOAP的實現方式:5.1請求消息體封裝將表示層請求數據內容的消息體封裝成SOAP請求報文的數據格式如圖13所示。5.2應答消息體封裝將表示層應答數據內容的消息體封裝成SOAP應答報文的數據格式如圖14所示。6、接口層接口層是在服務層的基礎上,實現對數據服務消息頭的安全、版本、路由和控制信息等的進一步封裝,并將數據服務對外發布,提供給服務請求方調用,同時通過ESB (Enterprise Service Bus,即企業服務總線)技術來控制數據服務的訪問,實現數據服務的集成和統一控制。基于SOAP實現的數據服務,主要將消息頭封裝到SOAP協議的Header中;而基于REST實現的數據服務,主要將消息頭封裝到HTTP協議報文頭的自定義變量HeaderReq中。下面主要介紹基于SOAP的實現方式:6.1請求消息頭封裝6.1.1服務版本服務版本用于控制服務請求方對不同版本的數據服務的訪問。在服務層SOAP請求報文的基礎上,封裝了服務版本消息頭的請求報文數據格式如圖15所示。6.1.2服務路由服務路由是將服務請求方的請求按照一定的路由規則發送到相應的服務提供方,主要應用于服務提供方進行分地區、分庫等集群部署的情況。例如:可以根據地區的路由信息,將服務請求發送到該地區所在的數據服務服務器。在服務層SOAP請求報文的基礎上,封裝了服務路由消息頭的請求報文數據格式如圖16所示。6.1.3請求時間 請求時間用來標識本次數據服務訪問的時間,作為訪問日志的主要內容,方便日后的日志追S示排查。在服務層SOAP請求報文的基礎上,封裝了請求時間消息頭的請求報文數據格式如圖17所示。6.1.4認證鑒權認證鑒權用來對服務請求方是否合法進行鑒別和確認。通過認證鑒權,可以使服務提供方確認服務請求方的身份,確定是否有該服務的訪問權限。認證鑒權主要有以下兩種方式:(I)短連接認證短連接認證方式主要適用于外部系統對數據服務的訪問,外部系統對數據服務的訪問效率一般不會太高,但安全性相對較高,因此服務請求方每次請求時都要提供用戶名、密碼等校驗信息來進行認證鑒權。在服務層SOAP請求報文的基礎上,封裝了短連接認證信息的請求報文數據格式如圖18所示。(2)長連接認證長連接認證方式主要適用于系統內部應用對數據服務的訪問,內部應用對數據服務的訪問效率一般會比較高,安全性也比較可靠,因此服務請求方只需在首次訪問服務提供方的用戶認證服務時,提供用戶名、密碼認證信息,經過認證通過后,服務提供方為服務請求方生成唯一的令牌信息,服務請求方在令牌的有效期內,無需每次請求都提供用戶名、密碼等校驗信息。在服務層SOAP請求報文的基礎上,封裝了長連接認證信息的請求報文數據格式如圖19所示。6.1.5可靠請求源可靠請求源用來控制某個請求來源是否需要安全校驗功能,對于受信任的系統,允許用戶不經過安全校驗,就能訪問數據服務,可以減少受信任系統的開發工作。在服務層SOAP請求報文的基礎上,封裝了可靠請求源信息的請求報文數據格式如圖20所示。6.1.6數字簽名數字簽名是基于非對稱加密技術的安全機制,通過數字簽名技術可以保障數據或業務流量信息的機密性,以及預防客戶端的抵賴行為。對SOAP請求報文進行數字簽名后的數據格式如圖21所示。6.2應答消息頭封裝應答消息頭中主要封裝了數據服務的應答時間、應答結果、應答錯誤編碼、應答錯誤信息等控制信息內容,作為服務請求方對應答成功或者失敗的判斷依據,以及失敗原因的分析。在服務層SOAP應答報文的基礎上,封裝了控制信息的應答報文數據格式如圖22所示。方法實施例下面以在線請求-同步響應交互方式的“關鍵指標監控”應用場景為例,來說明數據服務協議棧在服務請求和服務應答過程中,進行協議包封裝及解析的流程。服務請求流程“關鍵指標監控”應用通過服務請求方向服務提供方發起服務請求時,數據服務協議棧進行協議包封裝及解析的流程,如圖23所示。具體流程步驟如下:步驟102 關鍵指標監控”應用通過服務請求方的界面輸入KPI指標參數,向服務提供方發起應用請求,KPI指標參數如圖24所示;
步驟104:服務請求方將KPI指標參數通過數據服務協議棧的表示層,封裝到XML(Extensible Markup Language,可擴展標記語言)中,封裝后的XML格式數據如圖25所示。步驟106:服務請求方根據服務的交互方式,通過數據服務協議棧的會話層發起在線請求-同步響應方式的會話;步驟108:服務請求方通過數據服務協議棧的服務層,將XML數據封裝到SOAP數據包的包體中,封裝后的SOAP數據格式如圖26所示。步驟110:服務請求方通過數據服務協議棧的接口層,對SOAP數據包的包頭,進行服務版本、路由、請求源和認證鑒權等封裝操作,封裝后的數據格式如圖27所示;步驟112:服務請求方通過數據服務協議棧的接口層,對SOAP數據包進行數字簽名操作,簽名后的數據格式如圖28所示;步驟114:服務請求方將封裝完成后的SOAP數據包,以在線請求-同步響應方式,通過HTTP通道發送給服務提供方;步驟116:服務提供方接收到服務請求后,通過數據服務協議棧的接口層進行SOAP數據包的數字簽名認證和數據解密,并對SOAP數據包的包頭進行解析,進行認證鑒權、請求源、路由和版本等控制,然后獲取SOAP數據包的包體發送給數據服務協議棧的服
務層;步驟118:服務提供方通過數據服務協議棧的服務層,對SOAP數據包的包體進行解析,獲取服務數據請求內容的XML數據;步驟120:服務提供方通過數據服務協議棧的會話層,獲知目前的交互方式為在線請求-同步響應方式后,通過同步方式將請求的XML數據轉發給數據服務協議棧的表示層;步驟122:服務提供方通過表示層,對XML數據進行解析,獲取服務請求的KPI參數;步驟124:服務提供方通過數據服務協議棧的模型映射層,將KPI指標參數組裝成KPI信息查詢的SQL語句;步驟126:服務提供方通過數據服務協議棧的連接層,將SQL語句通過JDBC連接技術,提交到數據庫中執行,自數據庫中獲取服務數據(即數據源數據)。服務應答流程服務提供方對“關鍵指標監控”應用發起的服務請求進行服務應答時,數據服務協議進行數據包的封裝及解析的流程,如圖29所示。具體流程步驟如下:步驟202:服務提供方通過數據服務協議棧的連接層,自數據庫中獲取到服務數據(即數據源數據),數據源數據格式如圖30所示。步驟204:服務提供方通過數據服務協議棧的模型映射層,將數據源數據轉換為關系型數據,方便數據服務協議棧的表示層的封裝,轉換后的關系型數據如圖31所示。步驟206:服務提供方通過數據服務協議棧的表示層,將模型映射層中的關系型數據封裝到XML中,封裝后的XML數據格式如圖32所示。步驟208:服務提供方通過數據服務協議棧的會話層,判斷本次交互為在線請求-同步響應的方式,將XML數據轉發給數據服務協議棧的服務層;步驟210:服務提供方通過數據服務協議棧的服務層,將XML數據封裝到SOAP數據包的包體中,封裝后的數據格式如圖33所示;步驟212:服務提供方通過數據服務協議棧的接口層,對SOAP數據包的包頭,進行應答結果、應答時間、應答編碼和應答描述等控制信息的封裝,并將SOAP數據包發送給服務請求方,封裝后的SOAP數據包如圖34所示;步驟214:服務請求方依次通過接口層、服務層、會話層、表示層對SOAP數據包進行解析,最終獲取到數據源數據,并通過“關鍵指標監控”應用展現出來。本發明的數據請求應答方法,不僅可以實現應用與數據的解耦,還可以實現數據服務內部的解耦,使數據服務的內部實現細節更加簡單、高效、清晰、靈活和可擴展。協議棧實施例根據本發明實施例,提供了一種數據服務協議棧。本實施例包括:表示層,用于將服務指標參數封裝成可擴展標記語言數據,對可擴展標記語言數據進行解析,獲取服務指標參數;會話層,用于根據服務的交互類型發起會話請求,獲知服務的交互類型,根據服務的交互類型將可擴展標記語言數據轉發至表示層;服務層,用于將可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中,對SOAP數據包或HTTP數據包的包體進行解析,獲取可擴展標記語言數據;接口層,用于對SOAP數據包或HTTP數據包的包頭進行服務版本、路由、請求源和認證鑒權的封裝操作,對SOAP數據包或HTTP數據包的包頭進行解析,進行認證鑒權、請求源、路由和服務版本的控制操作,獲取SOAP數據包或HTTP數據包的包體;模型映射層,用于將服務指標參數組裝成服務查詢指令;連接層,用于將服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據。其中:接口層,還用于對SOAP數據包或HTTP數據包進行數字簽名的操作,對SOAP數據包或HTTP數據包進行數字簽名認證和數據解密。其中:接口層,還用于將數據服務對外發布,提供給服務請求方調用,并且通過企業服務總線控制數據服務的訪問,實現數據服務的集成和統一控制。其中:模型映射層,還用于實現數據服務的數據模型與數據庫數據模型的映射。根據本發明實施例,提供了一種數據服務協議棧。本實施例包括:連接層,用于自數據庫中獲取服務數據;模型映射層,用于將服務數據轉換為關系型數據;表示層,用于將關系型數據封裝成可擴展標記語言數據;會話層,用于獲知服務的交互類型,根據服務的交互類型將可擴展標記語言數據轉發至服務層;服務層,用于將可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中;
接口層,用于對SOAP數據包或HTTP數據包的包頭進行應答結果、應答時間、應答編碼和應答描述的控制信息的封裝操作。本發明的數據服務協議棧,不僅可以實現應用與數據的解耦,還可以實現數據服務內部的解耦,使數據服務的內部實現細節更加簡單、高效、清晰、靈活和可擴展。本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是:以上所述僅為本發明的優選實施例而已,并不用于限制本發明,盡管參照前述實施例對本發明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種數據服務請求方法,其特征在于,包括: 服務請求方通過數據服務協議棧的表示層、會話層、服務層和接口層將服務指標參數封裝到SOAP數據包或HTTP數據包; 服務請求方將封裝后的SOAP數據包或HTTP數據包發送給服務提供方,以使服務提供方將所述SOAP數據包或HTTP數據包進行解析處理后獲得服務查詢指令,自數據庫中獲取服務數據。
2.根據權利要求1所述的方法,其特征在于,服務提供方將所述SOAP數據包或HTTP數據包進行解析后獲得服務查詢指令,自數據庫中獲取服務數據的步驟包括: 服務提供方通過數據服務協議棧的接口層、服務層、會話層和表示層對所述SOAP數據包或HTTP數據包進行解析后獲得所述服務指標參數; 服務提供方通過數據服務協議棧的模型映射層和連接層根據所述服務指標參數組成服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據。
3.根據權利要求1所述的方法,其特征在于,將服務指標參數封裝到SOAP數據包或HTTP數據包的步驟包括: 將服務指標參數通過數據服務協議棧的表示層封裝成可擴展標記語言數據,根據服務的交互類型通過數據服務協議棧的會話層發起會話請求; 通過數據服務協議棧的服務層將可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中; 通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包的包頭進行服務版本、路由、請求源和認證鑒權的封裝操作。
4.根據權利要求1所述的方法,其特征在于,在將服務指標參數封裝到SOAP數據包或HTTP數據包的步驟與將封裝后的SOAP數據包或HTTP數據包發送給服務提供方的步驟之間還包括: 通過數據服務協議棧的接口層對所述SOAP數據包或HTTP數據包進行數字簽名的操作。
5.根據權利要求4所述的方法,其特征在于,對所述SOAP數據包或HTTP數據包進行解析后獲得所述服務指標參數的步驟包括: 通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包進行數字簽名認證和數據解密; 通過數據服務協議棧的接口層對SOAP數據包或HTTP數據包的包頭進行解析,進行認證鑒權、請求源、路由和服務版本的控制操作,獲取SOAP數據包或HTTP數據包的包體;通過數據服務協議棧的服務層對SOAP數據包或HTTP數據包的包體進行解析,獲取所述可擴展標記語言數據; 通過數據服務協議棧的會話層,獲知服務的交互類型,根據服務的交互類型將所述可擴展標記語言數據轉發至數據服務協議棧的表示層; 通過數據服務協議棧的表示層對所述可擴展標記語言數據進行解析,獲取服務指標參數。
6.根據權利要求2所述的方法,其特征在于,根據所述服務指標參數組成服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據的步驟具體包括:通過數據服務協議棧的模型映射層將服務指標參數組裝成服務查詢指令; 通過數據服務協議棧的連接層將所述服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據。
7.一種數據服務應答方法,其特征在于,包括: 服務提供方通過數據服務協議棧的連接層自數據庫中獲取服務數據,通過數據服務協議棧的模型映射層、表示層、會話層、服務層和接口層將所述服務數據封裝成SOAP數據包或HTTP數據包; 服務提供方將封裝后的SOAP數據包或HTTP數據包發送給服務請求方,以使服務請求方通過數據服務協議棧的接口層、服務層、會話層和表示層對所述SOAP數據包或HTTP數據包進行解析后,獲取所述服務數據。
8.根據權利要求7所述的方法,其特征在于,將服務數據封裝成SOAP數據包或HTTP數據包的步驟包括: 將所述服務數據通過數據服務協議棧的模型映射層轉換為關系型數據,并將該關系型數據通過數據服務協議棧的表示層封裝成可擴展標記語言數據; 通過數據服務協議棧的會話層,獲知服務的交互類型,根據服務的交互類型將所述可擴展標記語言數據轉發至數據服務協議棧的服務層; 將所述可擴展標記語言數據通過數據服務協議棧的服務層封裝到SOAP數據包或HTTP數據包的包體中; 通過數據服務協議棧的接口層對所述SOAP數據包或HTTP數據包的包頭進行應答結果、應答時間、應答編碼和應答描述的控制信息的封裝操作。
9.一種數據服務協議棧,其特征在于,包括: 表示層,用于將服務指標參數封裝成可擴展標記語言數據,對可擴展標記語言數據進行解析,獲取服務指標參數; 會話層,用于根據服務的交互類型發起會話請求,獲知服務的交互類型,根據服務的交互類型將所述可擴展標記語言數據轉發至表示層; 服務層,用于將可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中,對SOAP數據包或HTTP數據包的包體進行解析,獲取所述可擴展標記語言數據; 接口層,用于對SOAP數據包或HTTP數據包的包頭進行服務版本、路由、請求源和認證鑒權的封裝操作,對SOAP數據包或HTTP數據包的包頭進行解析,進行認證鑒權、請求源、路由和服務版本的控制操作,獲取SOAP數據包或HTTP數據包的包體; 模型映射層,用于將服務指標參數組裝成服務查詢指令; 連接層,用于將所述服務查詢指令提交到數據庫中執行,自數據庫中獲取服務數據。
10.根據權利要求9所述的協議棧,其特征在于,還包括: 接口層,還用于對所述SOAP數據包或HTTP數據包進行數字簽名的操作,對SOAP數據包或HTTP數據包進行數字簽名認證和數據解密。
11.根據權利要求9所述的協議棧,其特征在于,還包括: 接口層,還用于將數據服務對外發布,提供給服務請求方調用,并且通過企業服務總線控制數據服務的訪問,實現數據服務的集成和統一控制。
12.根據權利要求9所述的協議棧,其特征在于,還包括:模型映射層,還用于實現數據服務的數據模型與數據庫數據模型的映射。
13.一種數據服務協議棧,其特征在于,包括: 連接層,用于自數據庫中獲取服務數據; 模型映射層,用于將所述服務數據轉換為關系型數據; 表示層,用于將所述關系型數據封裝成可擴展標記語言數據; 會話層,用于獲知服務的交互類型,根據服務的交互類型將所述可擴展標記語言數據轉發至服務層; 服務層,用于將所述可擴展標記語言數據封裝到SOAP數據包或HTTP數據包的包體中; 接口層,用于對所述SOAP數據包或HTTP數據包的包頭進行應答結果、應答時間、應答編碼和應答描述的控制信息的封裝`操作。
全文摘要
本發明公開了一種數據服務請求應答方法及數據服務協議棧,其中,該方法包括服務請求方將服務指標參數封裝到SOAP數據包;服務請求方將封裝后的SOAP數據包發送給服務提供方,以使服務提供方將SOAP數據包或HTTP數據包進行解析處理后獲得服務查詢指令,自數據庫中獲取服務數據。本發明不僅可以實現應用與數據的解耦,還可以實現數據服務內部的解耦,使數據服務的內部實現細節更加簡單、高效、清晰、靈活和可擴展。
文檔編號H04L29/06GK103117983SQ201110362878
公開日2013年5月22日 申請日期2011年11月16日 優先權日2011年11月16日
發明者何鴻凌, 陶濤, 梁鍵, 鄭培強, 汪欽堤, 肖萬明, 王敏 申請人:中國移動通信集團公司, 福建新大陸軟件工程有限公司