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