專利名稱:服務(wù)處理系統(tǒng)和服務(wù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種服務(wù)處理系統(tǒng)和一種服務(wù)處理方法。
背景技術(shù):
隨著企業(yè)業(yè)務(wù)的不斷發(fā)展,企業(yè)規(guī)模不斷擴(kuò)大,即便是信息化程度很高的企業(yè),內(nèi)部也開始出現(xiàn)越來越多彼此獨立的軟件應(yīng)用,比如根據(jù)特定業(yè)務(wù)定制開發(fā)的應(yīng)用程序,從第三方軟件供應(yīng)商購買的軟件產(chǎn)品,部署在網(wǎng)絡(luò)上的在線應(yīng)用,遺留的舊系統(tǒng)及資源(歷史文件及數(shù)據(jù)庫)。有些企業(yè)內(nèi)各分支機(jī)構(gòu)往往還根據(jù)自身需要而采用滿足本組織業(yè)務(wù)需要的軟件應(yīng)用解決方案。有些企業(yè)雖然有統(tǒng)一的IT規(guī)劃,但由于經(jīng)營業(yè)務(wù)不同,地理位置限制,即是采用同一廠商的產(chǎn)品,往往也會采用異地獨立部署的方案。日積月累,企業(yè)內(nèi)就會形成原來越多的信息孤島,大量的應(yīng)用系統(tǒng)彼此隔離,數(shù)據(jù)無法被有效共享,無法從集團(tuán)全局范圍內(nèi)挖掘有效信息,業(yè)務(wù)功能重復(fù)建設(shè),業(yè)務(wù)流程不通暢,無法根據(jù)經(jīng)營需要快速變更業(yè)務(wù)流程。如何快速、靈活的實現(xiàn)各種異構(gòu)系統(tǒng)互聯(lián)互通, 有效整合現(xiàn)有軟件資產(chǎn),構(gòu)建隨需應(yīng)變的跨系統(tǒng)業(yè)務(wù)流程是企業(yè)面臨的巨大挑戰(zhàn)。企業(yè)內(nèi)的各種軟件系統(tǒng)由于應(yīng)用場景不同,提供商不同,設(shè)計開發(fā)團(tuán)隊不同,往往會采用各式各樣的軟件平臺、設(shè)計思路及開發(fā)技術(shù),給集成工作帶來很大的挑戰(zhàn)。以往的解決方案包括點對點socket編程,構(gòu)建中間表,基于消息中間件集成等,這些方案在實現(xiàn)系統(tǒng)連通時往往將協(xié)議傳輸和業(yè)務(wù)實現(xiàn)的代碼混雜在一起,而且本質(zhì)上只是一種數(shù)據(jù)集成, 只是解決了數(shù)據(jù)上的連通和共享,且開發(fā)效率低,后期維護(hù)和擴(kuò)展困難,對集成開發(fā)人員能力要求較高。而面向服務(wù)的架構(gòu)提出以一種松散耦合的方式去整合各異構(gòu)系統(tǒng),通過定義良好的服務(wù)實現(xiàn)系統(tǒng)間業(yè)務(wù)功能共享而不只是數(shù)據(jù)共享,各異構(gòu)系統(tǒng)通過服務(wù)相互連接。根據(jù)具體應(yīng)用系統(tǒng)的不同,系統(tǒng)間進(jìn)行服務(wù)調(diào)用時需要采用不同的協(xié)議通信,傳輸特定格式的數(shù)據(jù),這里稱之為服務(wù)綁定,比如通過Web Service發(fā)布服務(wù)本質(zhì)上就是在服務(wù)上綁定 HTTP協(xié)議(或其他協(xié)議)和傳輸SOAP消息,服務(wù)綁定并發(fā)布后就可以通過HTTP發(fā)送SOAP 消息實現(xiàn)服務(wù)調(diào)用。服務(wù)綁定可有效分離傳輸協(xié)議和具體業(yè)務(wù)代碼,服務(wù)提供方在實現(xiàn)服務(wù)功能時無需考慮異構(gòu)系統(tǒng)間通信協(xié)議及數(shù)據(jù)格式等復(fù)雜技術(shù)問題,使得業(yè)務(wù)開發(fā)人員依然可以專注于業(yè)務(wù)邏輯的實現(xiàn),而無需了解各種協(xié)議傳輸?shù)募夹g(shù)細(xì)節(jié),這種分離還將大大提高集成系統(tǒng)的擴(kuò)展性,大大降低系統(tǒng)的維護(hù)成本。在目前主流的面向服務(wù)的實現(xiàn)技術(shù)中,Web Service是最具代表性的一種服務(wù)綁定技術(shù),Web Service基于現(xiàn)有成熟的傳輸協(xié)議如HTTP/HTTPS/SMTP,引用并定義了包括 XML、XSD、SOAP、WSDL、UDDI及WS-*等一系列規(guī)范,有效解決了異構(gòu)系統(tǒng)間服務(wù)定義、服務(wù)發(fā)布、服務(wù)定位及服務(wù)調(diào)用等問題。Web Service底層傳輸可以通過不同通信協(xié)議實現(xiàn), 比如HTTP/HTTPS、SMTP或者消息隊列MQ,但無論采取何種傳輸方式,傳輸?shù)臄?shù)據(jù)必須采用滿足SOAP規(guī)范的XML格式。在集成應(yīng)用中,這會對服務(wù)消費方和服務(wù)提供方形成限制,因為不是每一個應(yīng)用都可以很容易發(fā)送或者接收SOAP格式的消息,比如數(shù)據(jù)庫,遺留文件系統(tǒng),以及早期開發(fā)的VB、C/C++甚至一些在Mainframe上開發(fā)的應(yīng)用。有些場景下字節(jié)流、 文本、EXCEL表格或者特定的數(shù)據(jù)格式(如衛(wèi)生信息交換格式HL7)更適合在應(yīng)用間作為傳輸?shù)闹虚g格式,比如同樣是基于java開發(fā)的系統(tǒng)間進(jìn)行服務(wù)調(diào)用時,序列化的java對象是最優(yōu)的選擇,不僅技術(shù)上實現(xiàn)簡單,可有效降低系統(tǒng)開發(fā)成本,還能改善系統(tǒng)間服務(wù)調(diào)用的性能。相比之下,由于XML是自描述格式,消息包含較多冗余信息,大量XML格式數(shù)據(jù)的處理會對系統(tǒng)性能帶來一定的影響。SOAP消息還有一個限制,就是SOAP消息的結(jié)構(gòu)較為固定,即SOAP Header和SOAP Body,服務(wù)調(diào)用時具體操作名作為SOAP Body的第一個元素,操作名元素下包含具體參數(shù)元素。一個操作請求數(shù)據(jù)必須全部放在SOAP Body元素下,如果某個服務(wù)操作有多個參數(shù),且每個參數(shù)希望從不同的位置取數(shù),SOAP綁定是無法支持的。另外一些遠(yuǎn)程服務(wù)調(diào)用實現(xiàn)技術(shù)如JAVA RMI、EJB消息驅(qū)動Bean (MDB),也可以看作是特定的服務(wù)綁定實現(xiàn),但由于語言和平臺相關(guān)性,在適用范圍上存在較大局限性,而 COBRA雖然實現(xiàn)了跨平臺,但開發(fā)和使用復(fù)雜度較高,一般用于服務(wù)端分布式應(yīng)用。如前所述,系統(tǒng)整合是企業(yè)信息化發(fā)展到一定階段必然面臨的問題和挑戰(zhàn),面向服務(wù)的集成可有效降低異構(gòu)系統(tǒng)間的耦合,提高系統(tǒng)重用性,而服務(wù)綁定是解決異構(gòu)系統(tǒng)間調(diào)用的有效手段。因此,需要提供一個統(tǒng)一的服務(wù)綁定方法,但可靈活選擇協(xié)議和數(shù)據(jù)格式,且可以兼容已有的各種服務(wù)綁定技術(shù)。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一個統(tǒng)一的服務(wù)綁定方法,但可靈活選擇協(xié)議和數(shù)據(jù)格式,且可以兼容已有的各種服務(wù)綁定技術(shù)。有鑒于此,本發(fā)明提供一種服務(wù)處理系統(tǒng),包括服務(wù)發(fā)布裝置,為服務(wù)綁定第一傳輸協(xié)議,并發(fā)布所述服務(wù);協(xié)議數(shù)據(jù)處理裝置,根據(jù)調(diào)用所述服務(wù)的原始請求數(shù)據(jù)的第二傳輸協(xié)議,從所述原始請求數(shù)據(jù)中提取調(diào)用的服務(wù)操作和所述服務(wù)操作的參數(shù)數(shù)據(jù),并根據(jù)所述第一傳輸協(xié)議、所述服務(wù)操作和所述參數(shù)數(shù)據(jù),生成新請求數(shù)據(jù),來調(diào)用所述服務(wù)。 在該技術(shù)方案中,可以接收以不同傳輸協(xié)議發(fā)送的服務(wù)調(diào)用請求,并將原有傳輸協(xié)議轉(zhuǎn)換為被調(diào)用服務(wù)的較適合的傳輸協(xié)議,對服務(wù)進(jìn)行調(diào)用。在上述技術(shù)方案中,優(yōu)選地,所述服務(wù)發(fā)布裝置還配置所述服務(wù)的發(fā)布粒度;所述協(xié)議數(shù)據(jù)處理裝置根據(jù)所述服務(wù)的發(fā)布粒度,確定所述服務(wù)操作在所述請求數(shù)據(jù)中的位置,以提取所述服務(wù)操作,以及根據(jù)所述服務(wù)的服務(wù)發(fā)布粒度,確定所述服務(wù)操作在所述新請求數(shù)據(jù)中的位置,并將所述服務(wù)操作設(shè)置在所述新請求數(shù)據(jù)中。在該技術(shù)方案中,保證能夠準(zhǔn)確定位請求的服務(wù)操作,從原請求數(shù)據(jù)中獲取并加入到新請求數(shù)據(jù)中,以實現(xiàn)對該服務(wù)操作對應(yīng)的服務(wù)的調(diào)用。在上述技術(shù)方案中,優(yōu)選地,所述服務(wù)發(fā)布裝置還配置所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式;所述協(xié)議數(shù)據(jù)處理裝置根據(jù)預(yù)設(shè)的所述第二傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,提取所述服務(wù)操作和所述參數(shù)數(shù)據(jù),以及根據(jù)所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,通過數(shù)據(jù)轉(zhuǎn)換裝置將所述參數(shù)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再生成所述新請求數(shù)據(jù);所述服務(wù)處理系統(tǒng)還包括所述數(shù)據(jù)轉(zhuǎn)換裝置,用于進(jìn)行不同參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式格式的轉(zhuǎn)換。在該技術(shù)方案中,由于不同傳輸協(xié)議中的對參數(shù)的傳輸方式和數(shù)據(jù)格式的要求都不同,本方案可實現(xiàn)對參數(shù)的傳輸方式和數(shù)據(jù)格式的轉(zhuǎn)換,保證參數(shù)符合不同的傳輸協(xié)議。在上述技術(shù)方案中,優(yōu)選地,所述服務(wù)發(fā)布裝置還配置所述服務(wù)中的每個服務(wù)操作的參數(shù)傳輸模式,其中所述參數(shù)傳輸模式包括合并傳輸模式和獨立傳輸模式,所述服務(wù)發(fā)布裝置為合并傳輸模式的服務(wù)操作統(tǒng)一配置其中所有參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,為獨立傳輸模式的服務(wù)操作逐個配置其中每個參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和 /或參數(shù)數(shù)據(jù)格式。在該技術(shù)方案中,由于服務(wù)操作中參數(shù)可能是合并傳輸也可能是獨立傳輸,所以有必要根據(jù)其傳輸模式,統(tǒng)一或逐個配置每個服務(wù)操作中的參數(shù)的傳輸方式和數(shù)據(jù)格式。在上述技術(shù)方案中,優(yōu)選地,還包括服務(wù)調(diào)用裝置,為外部服務(wù)設(shè)置代理對象, 并獲取所述外部服務(wù)綁定的傳輸協(xié)議,以通過所述代理對象和所述外部服務(wù)綁定的傳輸協(xié)議,來調(diào)用所述外部服務(wù)。在該技術(shù)方案中,可以實現(xiàn)對外部服務(wù)的調(diào)用。本發(fā)明還提供一種服務(wù)處理方法,包括步驟202,為服務(wù)綁定第一傳輸協(xié)議,并發(fā)布所述服務(wù);步驟204,根據(jù)調(diào)用所述服務(wù)的原始請求數(shù)據(jù)的第二傳輸協(xié)議,從所述原始請求數(shù)據(jù)中提取調(diào)用的服務(wù)操作和所述服務(wù)操作的參數(shù)數(shù)據(jù);步驟206,根據(jù)所述第一傳輸協(xié)議、所述服務(wù)操作和所述參數(shù)數(shù)據(jù),生成新請求數(shù)據(jù),來調(diào)用所述服務(wù)。在該技術(shù)方案中,可以接收以不同傳輸協(xié)議發(fā)送的服務(wù)調(diào)用請求,并將原有傳輸協(xié)議轉(zhuǎn)換為被調(diào)用服務(wù)的較適合的傳輸協(xié)議,對服務(wù)進(jìn)行調(diào)用。在上述技術(shù)方案中,優(yōu)選地,所述步驟202還包括配置所述服務(wù)的發(fā)布粒度;所述步驟204具體包括根據(jù)所述服務(wù)的發(fā)布粒度,確定所述服務(wù)操作在所述請求數(shù)據(jù)中的位置,以提取所述服務(wù)操作;所述步驟206具體包括根據(jù)所述服務(wù)的服務(wù)發(fā)布粒度,確定所述服務(wù)操作在所述新請求數(shù)據(jù)中的位置,并將所述服務(wù)操作設(shè)置在所述新請求數(shù)據(jù)中。 在該技術(shù)方案中,保證能夠準(zhǔn)確定位請求的服務(wù)操作,從原請求數(shù)據(jù)中獲取并加入到新請求數(shù)據(jù)中,以實現(xiàn)對該服務(wù)操作對應(yīng)的服務(wù)的調(diào)用。在上述技術(shù)方案中,優(yōu)選地,所述步驟202還包括配置所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式;所述步驟204具體包括根據(jù)預(yù)設(shè)的所述第二傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,提取所述服務(wù)操作和所述參數(shù)數(shù)據(jù);所述步驟206 具體包括根據(jù)所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,將所述參數(shù)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再生成所述新請求數(shù)據(jù)。在該技術(shù)方案中,由于不同傳輸協(xié)議中的對參數(shù)的傳輸方式和數(shù)據(jù)格式的要求都不同,本方案可實現(xiàn)對參數(shù)的傳輸方式和數(shù)據(jù)格式的轉(zhuǎn)換,保證參數(shù)符合不同的傳輸協(xié)議。在上述技術(shù)方案中,優(yōu)選地,所述步驟202具體包括配置所述服務(wù)中的每個服務(wù)操作的參數(shù)傳輸模式,其中所述參數(shù)傳輸模式包括合并傳輸模式和獨立傳輸模式,為合并傳輸模式的服務(wù)操作統(tǒng)一配置其中所有參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,為獨立傳輸模式的服務(wù)操作逐個配置其中每個參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式。在該技術(shù)方案中,由于服務(wù)操作中參數(shù)可能是合并傳輸也可能是獨立傳輸,所以有必要根據(jù)其傳輸模式,統(tǒng)一或逐個配置每個服務(wù)操作中的參數(shù)的傳輸方式和數(shù)據(jù)格式。
在上述技術(shù)方案中,優(yōu)選地,還包括為外部服務(wù)設(shè)置代理對象,并獲取所述外部服務(wù)綁定的傳輸協(xié)議,以通過所述代理對象和所述外部服務(wù)綁定的傳輸協(xié)議,來調(diào)用所述外部服務(wù)。在該技術(shù)方案中,可以實現(xiàn)對外部服務(wù)的調(diào)用。通過以上技術(shù)方案,本發(fā)明實現(xiàn)一種服務(wù)處理系統(tǒng)和一種服務(wù)處理方法,可靈活地選擇協(xié)議和數(shù)據(jù)格式,且可以兼容已有的各種服務(wù)綁定技術(shù)。
圖1是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的框圖;圖2是根據(jù)本發(fā)明的一個實施例的服務(wù)處理方法的流程圖;圖3是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的示意圖;圖4是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的工作流程圖;圖5是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的工作流程圖;圖6是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的示意圖;圖7是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的示意圖;圖8是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的示意圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式
對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明并不限于下面公開的具體實施例的限制。圖1是根據(jù)本發(fā)明的一個實施例的服務(wù)處理系統(tǒng)的框圖。如圖1所示,本發(fā)明提供一種服務(wù)處理系統(tǒng)100,包括服務(wù)發(fā)布裝置102,為服務(wù)綁定第一傳輸協(xié)議,并發(fā)布所述服務(wù);協(xié)議數(shù)據(jù)處理裝置104,根據(jù)調(diào)用所述服務(wù)的原始請求數(shù)據(jù)的第二傳輸協(xié)議,從所述原始請求數(shù)據(jù)中提取調(diào)用的服務(wù)操作和所述服務(wù)操作的參數(shù)數(shù)據(jù),并根據(jù)所述第一傳輸協(xié)議、所述服務(wù)操作和所述參數(shù)數(shù)據(jù),生成新請求數(shù)據(jù),來調(diào)用所述服務(wù)。在該技術(shù)方案中,可以接收以不同傳輸協(xié)議發(fā)送的服務(wù)調(diào)用請求,并將原有傳輸協(xié)議轉(zhuǎn)換為被調(diào)用服務(wù)的較適合的傳輸協(xié)議,對服務(wù)進(jìn)行調(diào)用。在上述技術(shù)方案中,所述服務(wù)發(fā)布裝置102還配置所述服務(wù)的發(fā)布粒度;所述協(xié)議數(shù)據(jù)處理裝置104根據(jù)所述服務(wù)的發(fā)布粒度,確定所述服務(wù)操作在所述請求數(shù)據(jù)中的位置,以提取所述服務(wù)操作,以及根據(jù)所述服務(wù)的服務(wù)發(fā)布粒度,確定所述服務(wù)操作在所述新請求數(shù)據(jù)中的位置,并將所述服務(wù)操作設(shè)置在所述新請求數(shù)據(jù)中。在該技術(shù)方案中,保證能夠準(zhǔn)確定位請求的服務(wù)操作,從原請求數(shù)據(jù)中獲取并加入到新請求數(shù)據(jù)中,以實現(xiàn)對該服務(wù)操作對應(yīng)的服務(wù)的調(diào)用。在上述技術(shù)方案中,所述服務(wù)發(fā)布裝置102還配置所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式;所述協(xié)議數(shù)據(jù)處理裝置104根據(jù)預(yù)設(shè)的所述第二傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,提取所述服務(wù)操作和所述參數(shù)數(shù)據(jù),以及根據(jù)所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,通過數(shù)據(jù)轉(zhuǎn)換裝置106將所述參數(shù)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再生成所述新請求數(shù)據(jù);所述服務(wù)處理系統(tǒng)100還包括所述數(shù)據(jù)轉(zhuǎn)換裝置 106,用于進(jìn)行不同參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式格式的轉(zhuǎn)換。在該技術(shù)方案中,由于不同傳輸協(xié)議中的對參數(shù)的傳輸方式和數(shù)據(jù)格式的要求都不同,本方案可實現(xiàn)對參數(shù)的傳輸方式和數(shù)據(jù)格式的轉(zhuǎn)換,保證參數(shù)符合不同的傳輸協(xié)議。在上述技術(shù)方案中,所述服務(wù)發(fā)布裝置102還配置所述服務(wù)中的每個服務(wù)操作的參數(shù)傳輸模式,其中所述參數(shù)傳輸模式包括合并傳輸模式和獨立傳輸模式,所述服務(wù)發(fā)布裝置102為合并傳輸模式的服務(wù)操作統(tǒng)一配置其中所有參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,為獨立傳輸模式的服務(wù)操作逐個配置其中每個參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/ 或參數(shù)數(shù)據(jù)格式。在該技術(shù)方案中,由于服務(wù)操作中參數(shù)可能是合并傳輸也可能是獨立傳輸,所以有必要根據(jù)其傳輸模式,統(tǒng)一或逐個配置每個服務(wù)操作中的參數(shù)的傳輸方式和數(shù)據(jù)格式。在上述技術(shù)方案中,還包括服務(wù)調(diào)用裝置108,為外部服務(wù)設(shè)置代理對象,并獲取所述外部服務(wù)綁定的傳輸協(xié)議,以通過所述代理對象和所述外部服務(wù)綁定的傳輸協(xié)議, 來調(diào)用所述外部服務(wù)。在該技術(shù)方案中,可以實現(xiàn)對外部服務(wù)的調(diào)用。圖2是根據(jù)本發(fā)明的一個實施例的服務(wù)處理方法的流程圖。如圖2所示,本發(fā)明還提供一種服務(wù)處理方法,包括步驟202,為服務(wù)綁定第一傳輸協(xié)議,并發(fā)布所述服務(wù);步驟204,根據(jù)調(diào)用所述服務(wù)的原始請求數(shù)據(jù)的第二傳輸協(xié)議, 從所述原始請求數(shù)據(jù)中提取調(diào)用的服務(wù)操作和所述服務(wù)操作的參數(shù)數(shù)據(jù);步驟206,根據(jù)所述第一傳輸協(xié)議、所述服務(wù)操作和所述參數(shù)數(shù)據(jù),生成新請求數(shù)據(jù),來調(diào)用所述服務(wù)。在該技術(shù)方案中,可以接收以不同傳輸協(xié)議發(fā)送的服務(wù)調(diào)用請求,并將原有傳輸協(xié)議轉(zhuǎn)換為被調(diào)用服務(wù)的較適合的傳輸協(xié)議,對服務(wù)進(jìn)行調(diào)用。在上述技術(shù)方案中,所述步驟202還包括配置所述服務(wù)的發(fā)布粒度;所述步驟 204具體包括根據(jù)所述服務(wù)的發(fā)布粒度,確定所述服務(wù)操作在所述請求數(shù)據(jù)中的位置,以提取所述服務(wù)操作;所述步驟206具體包括根據(jù)所述服務(wù)的服務(wù)發(fā)布粒度,確定所述服務(wù)操作在所述新請求數(shù)據(jù)中的位置,并將所述服務(wù)操作設(shè)置在所述新請求數(shù)據(jù)中。在該技術(shù)方案中,保證能夠準(zhǔn)確定位請求的服務(wù)操作,從原請求數(shù)據(jù)中獲取并加入到新請求數(shù)據(jù)中, 以實現(xiàn)對該服務(wù)操作對應(yīng)的服務(wù)的調(diào)用。在上述技術(shù)方案中,所述步驟202還包括配置所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式;所述步驟204具體包括根據(jù)預(yù)設(shè)的所述第二傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,提取所述服務(wù)操作和所述參數(shù)數(shù)據(jù);所述步驟206具體包括根據(jù)所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,將所述參數(shù)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再生成所述新請求數(shù)據(jù)。在該技術(shù)方案中,由于不同傳輸協(xié)議中的對參數(shù)的傳輸方式和數(shù)據(jù)格式的要求都不同,本方案可實現(xiàn)對參數(shù)的傳輸方式和數(shù)據(jù)格式的轉(zhuǎn)換,保證參數(shù)符合不同的傳輸協(xié)議。在上述技術(shù)方案中,所述步驟202具體包括配置所述服務(wù)中的每個服務(wù)操作的參數(shù)傳輸模式,其中所述參數(shù)傳輸模式包括合并傳輸模式和獨立傳輸模式,為合并傳輸模式的服務(wù)操作統(tǒng)一配置其中所有參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,為獨立傳輸模式的服務(wù)操作逐個配置其中每個參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式。在該技術(shù)方案中,由于服務(wù)操作中參數(shù)可能是合并傳輸也可能是獨立傳輸,所以有必要根據(jù)其傳輸模式,統(tǒng)一或逐個配置每個服務(wù)操作中的參數(shù)的傳輸方式和數(shù)據(jù)格式。在上述技術(shù)方案中,還包括為外部服務(wù)設(shè)置代理對象,并獲取所述外部服務(wù)綁定的傳輸協(xié)議,以通過所述代理對象和所述外部服務(wù)綁定的傳輸協(xié)議,來調(diào)用所述外部服務(wù)。 在該技術(shù)方案中,可以實現(xiàn)對外部服務(wù)的調(diào)用。在以下的實施例中,為了更加清晰的描述本發(fā)明所提出的服務(wù)綁定方法,首先解釋本發(fā)明的技術(shù)方案中涉及到的一些基本概念。服務(wù)屬通用概念,用于描述一個系統(tǒng)(或應(yīng)用)向另一個系統(tǒng)(或應(yīng)用)提供的一個或者多個特定功能,通過對服務(wù)的調(diào)用實現(xiàn)系統(tǒng)間(或應(yīng)用間)功能共享,實現(xiàn)更高層面的業(yè)務(wù)流程。服務(wù)代表了低耦合,高復(fù)用。服務(wù)可通過WSDL、JAVA接口或者IDL進(jìn)行描述。比如某個下訂單服務(wù)通過java接口描述如下public interface IBookingService{public String book (Order order);}操作通用概念,一個服務(wù)里可以有多個操作,每個操作提供一個特定的功能,比如上面下訂單服務(wù)里含有一個book的操作。事件型操作和消息隊列里的發(fā)布訂閱模型對應(yīng),用于綁定支持事件(廣播機(jī)制) 的協(xié)議。調(diào)用事件型操作時,會有1個或多個服務(wù)提供方同時響應(yīng)。參數(shù)通用概念,一個操作可能有O個或者多個參數(shù),用于傳遞完成特定操作所需要的數(shù)據(jù),比如book操作里的參數(shù)order。返回值通用概念,操作的返回結(jié)果,操作也可以聲明為無返回值。異常通用概念,異常也是一種返回值,有些編程語言支持異常,可直接聲明在具體的方法上。發(fā)布服務(wù)服務(wù)提供方以特定的協(xié)議對外部發(fā)布服務(wù),以便服務(wù)調(diào)用方可以按照服務(wù)描述、綁定信息發(fā)起服務(wù)調(diào)用。調(diào)用服務(wù)通過特定的協(xié)議,按特定的數(shù)據(jù)格式調(diào)用服務(wù)。服務(wù)實現(xiàn)服務(wù)提供方提供的服務(wù)實現(xiàn),比如可以通過java類實現(xiàn)某個服務(wù),也可以通過BPEL流程或者groovy腳本來實現(xiàn)某個具體的服務(wù)。傳輸方式指不同的傳輸協(xié)議可以定制不同的數(shù)據(jù)傳輸方式,即數(shù)據(jù)通過何種方式傳輸,比如基于郵件進(jìn)行服務(wù)調(diào)用時可以按主題、正文或附件等方式傳輸數(shù)據(jù),而HTTP 則具備表單、輸入流及附件等傳輸方式。數(shù)據(jù)格式指用于描述數(shù)據(jù)在傳輸時的具體格式,大部分協(xié)議在網(wǎng)絡(luò)上傳輸數(shù)據(jù)都采用字節(jié)流,但這些字節(jié)流都是什么樣的數(shù)據(jù)生成的則需要用數(shù)據(jù)格式來描述,如文本、 Object、XML、EXCEL、HL7、PNG圖片等均可以通過不同協(xié)議在網(wǎng)絡(luò)上傳輸。數(shù)據(jù)轉(zhuǎn)換器負(fù)責(zé)將一個格式的數(shù)據(jù)轉(zhuǎn)換為另一種格式的數(shù)據(jù)。比如將EXCEL表格數(shù)據(jù)轉(zhuǎn)換為java對象,或者將字節(jié)流轉(zhuǎn)換為SOAP格式等等。相比目前主流的ffeb Service服務(wù)綁定技術(shù),在以下的實施例中提出一種新的支持多協(xié)議多數(shù)據(jù)格式的服務(wù)綁定方法,可靈活的綁定到各種協(xié)議如HTTP/HTTPS、消息中間件 MQ、RMI、CORBA, FILE/FTP、SMTP/P0P3 及 Web Service 等等,采用 Web Service 時,可兼容現(xiàn)有ffeb Service系列標(biāo)準(zhǔn)。本發(fā)明提出的服務(wù)綁定方法不僅僅限于SOAP格式的消息,而是可以支持按照多種數(shù)據(jù)格式進(jìn)行服務(wù)綁定。另外本發(fā)明提出的服務(wù)綁定方法還支持靈活配置服務(wù)操作中的參數(shù)映射,服務(wù)操作的各個參數(shù)可根據(jù)實際需要靈活映射到不同的數(shù)據(jù)來源?;谝陨戏?wù)綁定定義描述,本發(fā)明中的服務(wù)綁定實現(xiàn)如圖3所示,主要包含以下幾個部分1)服務(wù)發(fā)布裝置302 負(fù)責(zé)根據(jù)協(xié)議綁定信息發(fā)布特定的服務(wù),比如發(fā)布基于 http的下訂單服務(wù)。服務(wù)成功發(fā)布后,服務(wù)請求方就可以按照服務(wù)具體的綁定信息對服務(wù)發(fā)起調(diào)用。2)協(xié)議數(shù)據(jù)處理裝置304 當(dāng)發(fā)布的服務(wù)有新的請求數(shù)據(jù)時,負(fù)責(zé)將和參數(shù)對應(yīng)的數(shù)據(jù)從各種不同的傳輸協(xié)議中提取出來;調(diào)用服務(wù)時,負(fù)責(zé)將參數(shù)數(shù)據(jù)通過按要求放到協(xié)議的各個位置進(jìn)行傳輸。3)數(shù)據(jù)轉(zhuǎn)換裝置306 負(fù)責(zé)將數(shù)據(jù)從原始協(xié)議里的格式轉(zhuǎn)換為服務(wù)操作具體參數(shù)的格式,或者將服務(wù)操作具體參數(shù)的數(shù)據(jù)轉(zhuǎn)換為協(xié)議傳輸所要求的格式。4)服務(wù)調(diào)用裝置308 負(fù)責(zé)根據(jù)協(xié)議綁定信息,獲取外部服務(wù)代理對象,進(jìn)而調(diào)用特定的外部服務(wù)。1.服務(wù)發(fā)布裝置302 服務(wù)發(fā)布裝置302負(fù)責(zé)根據(jù)協(xié)議綁定信息發(fā)布特定的服務(wù)。主要包括以下步驟1)選擇待綁定的服務(wù),比如下訂單服務(wù)。在不同的平臺實現(xiàn)時,服務(wù)有不同的描述方式,比如JAVA接口、WSDL或者IDL,還可以將服務(wù)發(fā)布到數(shù)據(jù)庫或者其他形式的存儲庫 (如No-SQL數(shù)據(jù)庫、云存儲等)。2)選擇和服務(wù)綁定的傳輸協(xié)議。根據(jù)需要配置的信息不同,分為請求-響應(yīng)型協(xié)議、異步調(diào)度型協(xié)議及異步監(jiān)聽型協(xié)議。a)如果服務(wù)綁定的是支持請求-響應(yīng)型協(xié)議,比如HTTP、TCP/UDP,一旦外部發(fā)來新的服務(wù)調(diào)用請求,被綁定的服務(wù)會直接被觸發(fā)。這類協(xié)議直接配置協(xié)議對外發(fā)布的地址信息即可,比如HTTP配置發(fā)布的URL,TCP配置可訪問的主機(jī)地址和端口。b)如果服務(wù)綁定的是異步調(diào)度型協(xié)議,比如P0P3收郵件協(xié)議、文件傳輸協(xié)議,這類服務(wù)綁定協(xié)議的特點是需要按照一定的時間調(diào)度規(guī)則去掃描服務(wù)請求數(shù)據(jù),一旦外部發(fā)來新的服務(wù)調(diào)用請求,則數(shù)據(jù)掃描器會觸發(fā)被綁定的服務(wù)。這類協(xié)議綁定需要配置時間調(diào)度規(guī)則,簡單規(guī)則如每1分鐘掃描一次,略復(fù)雜規(guī)則如在每星期一到星期五每到5:00AM掃描一次等;這類協(xié)議綁定一般還需配置服務(wù)請求掃描位置,比如綁定P0P3時需要配置郵件服務(wù)器、用戶名及密碼,綁定文件時,則需配置文件掃描路徑。c)如果服務(wù)綁定的是異步監(jiān)聽型協(xié)議,比如MQ消息傳輸協(xié)議,或者XMPP即時通信協(xié)議,這類服務(wù)綁定協(xié)議的特點是需要和特定服務(wù)器建立連接,并注冊監(jiān)聽器,一旦外部發(fā)來新的服務(wù)調(diào)用請求,則監(jiān)聽器會被觸發(fā),進(jìn)而調(diào)用被綁定的服務(wù)。這類協(xié)議綁定需要配置服務(wù)器信息,比如綁定MQ時,需要配置消息服務(wù)器連接信息。3)配置傳輸協(xié)議的具體參數(shù),流程如圖4所示步驟402,選擇按服務(wù)粒度還是按操作粒度發(fā)布綁定的服務(wù)。如果按服務(wù)粒度發(fā)布,則在服務(wù)調(diào)用時,所有的操作服務(wù)綁定信息是一樣的,必須在請求數(shù)據(jù)里包含方法信息才可以明確知道服務(wù)請求方需要調(diào)用哪個操作;如果按操作粒度發(fā)布,則每一個操作有獨立的綁定信息,調(diào)用時則無需包含具體的操作信息。Web Service的SOAP綁定屬于按服務(wù)發(fā)布的,每次請求的SOAP消息里都通過SOAP BODY子元素標(biāo)識調(diào)用的操作名。步驟404,選擇特定的操作,配置參數(shù)合并傳輸還是各自獨立傳輸。合并傳輸表示特定操作的所有參數(shù)來自協(xié)議的同一個位置,比如Web Serivce的SOAP綁定就是典型的合并參數(shù)傳輸方式。本發(fā)明提出的綁定方法除了兼容SOAP綁定這種合并參數(shù)傳輸方式,還支持每個參數(shù)可以單獨定義數(shù)據(jù)來源,取自協(xié)議的不同數(shù)據(jù)段,以適應(yīng)更廣泛的集成和互操作需求。比如某服務(wù)A有如下操作定義public String book (Order order, byte [] image);配置參數(shù)為獨立傳輸模式時,如果綁定http協(xié)議,則可以通過表單傳輸?shù)谝粋€參數(shù)order,而通過附件方式傳輸?shù)诙€參數(shù)image。步驟406,判斷是否為合并傳輸。步驟408,如果是合并傳輸參數(shù),根據(jù)綁定的協(xié)議不同選擇參數(shù)傳輸方式,同時參數(shù)傳輸格式,如果為自定義數(shù)據(jù)格式,還可配置自定義數(shù)據(jù)轉(zhuǎn)換器。步驟410,如果配置為每個參數(shù)獨立傳輸,則需要按參數(shù)配置傳輸方式及傳輸格式,如果為自定義數(shù)據(jù)格式,還可配置自定義數(shù)據(jù)轉(zhuǎn)換器。步驟412,和協(xié)議相關(guān)的參數(shù)配置不同傳輸協(xié)議的參數(shù)各不相同,比如通過HTTP 發(fā)布下訂單服務(wù),則至少需要配置發(fā)布URL參數(shù);而通過MQ消息傳輸發(fā)布服務(wù)時則至少需要配置接受消息隊列名。4)根據(jù)上述配置,啟動發(fā)布服務(wù)。本發(fā)明的技術(shù)方案中不包括服務(wù)啟動過程是如何被觸發(fā)的,很多現(xiàn)有技術(shù)可用于觸發(fā)服務(wù)的啟動和發(fā)布流程,比如主程序啟動時,直接調(diào)用服務(wù)的啟動方法;在JAVA EE環(huán)境下,可在服務(wù)被部署時啟動綁定的服務(wù);而在OSGI環(huán)境下,則可以利用Bundle安裝事件或者OSGI服務(wù)注冊事件觸發(fā)服務(wù)啟動和發(fā)布流程。服務(wù)發(fā)布裝置主要解決如何在服務(wù)的啟動流程中根據(jù)服務(wù)綁定的配置,發(fā)布支持多協(xié)議多數(shù)據(jù)格式的服務(wù)。主要流程如圖5所示步驟502,首先取得服務(wù)綁定的協(xié)議。步驟504,判斷服務(wù)綁定的是否為請求響應(yīng)型協(xié)議。步驟506,如果綁定的是請求響應(yīng)協(xié)議,則直接根據(jù)具體協(xié)議,啟動綁定服務(wù)并注入?yún)f(xié)議數(shù)據(jù)處理裝置即可,比如對于HTTP,在java平臺實現(xiàn)時直接根據(jù)綁定配置注冊 Servlet0步驟508,判斷服務(wù)綁定的是否為異步調(diào)度型協(xié)議。步驟510,如果綁定的是異步調(diào)度型協(xié)議,則根據(jù)綁定配置里的定時規(guī)則創(chuàng)建定時任務(wù),定時任務(wù)里注入?yún)f(xié)議數(shù)據(jù)處理裝置,一旦掃描到新的請求數(shù)據(jù),便會交給協(xié)議數(shù)據(jù)處
理裝置。步驟512,判斷服務(wù)綁定的是否為異步監(jiān)聽型協(xié)議。如果514,如果綁定的是異步監(jiān)聽型協(xié)議,則根據(jù)綁定配置,創(chuàng)建和服務(wù)器的連接, 創(chuàng)建監(jiān)聽器,并將協(xié)議數(shù)據(jù)處理裝置注入到監(jiān)聽器,一旦有新的服務(wù)請求,監(jiān)聽器就會得到通知,進(jìn)而調(diào)用協(xié)議數(shù)據(jù)處理裝置。步驟516,判斷是否按服務(wù)粒度發(fā)布服務(wù)。步驟518,如果按服務(wù)粒度發(fā)布,則根據(jù)綁定配置,基于綁定的協(xié)議發(fā)布服務(wù)。
步驟520,如果按操作粒度發(fā)布,則根據(jù)綁定配置,基于所綁定的協(xié)議發(fā)布服務(wù)。2.協(xié)議數(shù)據(jù)處理裝置304 協(xié)議數(shù)據(jù)處理裝置核心部件為數(shù)據(jù)提取器和數(shù)據(jù)發(fā)送器。當(dāng)發(fā)布的服務(wù)有新的請求數(shù)據(jù)時,協(xié)議數(shù)據(jù)處理裝置304負(fù)責(zé)將和參數(shù)對應(yīng)的數(shù)據(jù)從各種不同的傳輸協(xié)議中提取出來,原理圖如圖6所示協(xié)議數(shù)據(jù)處理裝置304主要包括以下處理步驟1)通過服務(wù)發(fā)布裝置302接受服務(wù)請求數(shù)據(jù);2)如果是按服務(wù)粒度發(fā)布的服務(wù),則從請求數(shù)據(jù)里提取服務(wù)操作信息,明確服務(wù)需要調(diào)用的具體操作。如果是按操作粒度發(fā)布的服務(wù),則調(diào)用的操作直接對應(yīng)當(dāng)前操作;3)根據(jù)當(dāng)前操作對應(yīng)的協(xié)議綁定配置,得到具體協(xié)議的數(shù)據(jù)提取器3042。每個協(xié)議由于數(shù)據(jù)傳輸方式各不相同,所以對應(yīng)不同的數(shù)據(jù)提取器3042,數(shù)據(jù)提取器3042用于根據(jù)配置從協(xié)議相關(guān)請求中提取數(shù)據(jù),并返回較為通用的數(shù)據(jù)格式,比如輸入流,字節(jié)數(shù)組, 字符串等;4)如果當(dāng)前操作對應(yīng)的協(xié)議綁定配置為按合并參數(shù)傳輸,則根據(jù)配置的合并參數(shù)傳輸方式,通過數(shù)據(jù)提取器3042從服務(wù)請求里提取參數(shù)對應(yīng)的數(shù)據(jù),根據(jù)配置的數(shù)據(jù)格式,調(diào)用數(shù)據(jù)轉(zhuǎn)換裝置306將原始數(shù)據(jù)轉(zhuǎn)換為參數(shù)聲明的類型;5)如果當(dāng)前操作對應(yīng)的協(xié)議綁定配置為按參數(shù)獨立傳輸,則根據(jù)當(dāng)前操作的協(xié)議綁定配置,逐個處理操作的參數(shù),根據(jù)配置的參數(shù)傳輸方式,通過數(shù)據(jù)提取器3042從服務(wù)請求里提取參數(shù)對應(yīng)的數(shù)據(jù),根據(jù)配置的數(shù)據(jù)格式,調(diào)用數(shù)據(jù)轉(zhuǎn)換裝置306將原始數(shù)據(jù)轉(zhuǎn)換為參數(shù)聲明的類型。調(diào)用服務(wù)時,協(xié)議數(shù)據(jù)處理裝置304負(fù)責(zé)將參數(shù)數(shù)據(jù)通過按要求放到協(xié)議的各個位置進(jìn)行傳輸。原理圖如圖7所示1)從服務(wù)調(diào)用裝置308里得到當(dāng)前調(diào)用的服務(wù)操作;2)從服務(wù)調(diào)用裝置308得到所調(diào)用操作里的參數(shù)數(shù)據(jù);3)根據(jù)所調(diào)用服務(wù)操作對應(yīng)的協(xié)議綁定配置,得到具體協(xié)議的數(shù)據(jù)發(fā)送器。每個協(xié)議由于數(shù)據(jù)傳輸方式各不相同,所以對應(yīng)不同的數(shù)據(jù)發(fā)送器。數(shù)據(jù)發(fā)送器3044用于根據(jù)參數(shù)配置的傳輸方式將轉(zhuǎn)換后的服務(wù)請求數(shù)據(jù)放到協(xié)議的指定位置進(jìn)行傳輸;4)如果所調(diào)用操作對應(yīng)的協(xié)議綁定配置為按合并參數(shù)傳輸,則通過數(shù)據(jù)發(fā)送器 3044將各參數(shù)數(shù)據(jù)合并為一個數(shù)據(jù)包,根據(jù)配置的數(shù)據(jù)格式,調(diào)用數(shù)據(jù)轉(zhuǎn)換裝置306將參數(shù)數(shù)據(jù)轉(zhuǎn)換為協(xié)議傳輸所要求的較通用的格式,同時根據(jù)配置的傳輸方式,將轉(zhuǎn)換后的數(shù)據(jù)放到協(xié)議的指定位置進(jìn)行傳輸;5)如果所調(diào)用操作對應(yīng)的協(xié)議綁定配置為按參數(shù)獨立傳輸,則逐個處理操作的參數(shù),根據(jù)配置的數(shù)據(jù)格式,調(diào)用數(shù)據(jù)轉(zhuǎn)換裝置306將參數(shù)數(shù)據(jù)轉(zhuǎn)換為協(xié)議傳輸所要求的較通用的格式,同時根據(jù)配置的傳輸方式,將每個參數(shù)轉(zhuǎn)換后的數(shù)據(jù)放到協(xié)議的指定位置進(jìn)行傳輸。3.數(shù)據(jù)轉(zhuǎn)換裝置306:數(shù)據(jù)轉(zhuǎn)換裝置306負(fù)責(zé)不同數(shù)據(jù)格式之間的轉(zhuǎn)換,在本發(fā)明中主要負(fù)責(zé)將數(shù)據(jù)從原始協(xié)議里的格式轉(zhuǎn)換為服務(wù)操作具體參數(shù)的格式,或者將服務(wù)操作具體參數(shù)的數(shù)據(jù)轉(zhuǎn)換為協(xié)議傳輸所要求的格式,圖8為數(shù)據(jù)轉(zhuǎn)換裝置306的基本原理圖
根據(jù)來源數(shù)據(jù)格式和目標(biāo)數(shù)據(jù)格式,數(shù)據(jù)轉(zhuǎn)換裝置304會到數(shù)據(jù)轉(zhuǎn)換器工廠3042 里匹配最終用于轉(zhuǎn)換的數(shù)據(jù)轉(zhuǎn)換器3044,數(shù)據(jù)轉(zhuǎn)換器工廠3044里可以預(yù)置大量基本數(shù)據(jù)轉(zhuǎn)換器3042,通過裝飾器模式可以根據(jù)不同的格式轉(zhuǎn)換需求創(chuàng)建出滿足要求的數(shù)據(jù)轉(zhuǎn)換器 3042。比如如果希望將一個通過HTTP傳遞來的JAVA對象序列化二進(jìn)制轉(zhuǎn)換為SOAP消息,則通過組合“字節(jié)流一Java對象轉(zhuǎn)換器”,"Java對象轉(zhuǎn)換器一SOAP消息轉(zhuǎn)換器”即可完成。4.服務(wù)調(diào)用裝置308:服務(wù)調(diào)用裝置308負(fù)責(zé)根據(jù)協(xié)議綁定信息,獲取外部服務(wù)在系統(tǒng)中的代理對象, 進(jìn)而調(diào)用特定的外部服務(wù)。服務(wù)調(diào)用裝置308使得一個應(yīng)用/系統(tǒng)可以通過服務(wù)的方式去調(diào)用另外一個系統(tǒng)基于特定協(xié)議、要求特定數(shù)據(jù)格式的非標(biāo)準(zhǔn)服務(wù)。對于外部客戶端自行編程或者基于特定工具調(diào)用前述服務(wù)發(fā)布裝置302所發(fā)布的服務(wù)的場景,則不屬于本發(fā)明所描述的范圍。服務(wù)調(diào)用裝置308的實現(xiàn)主要包括如下步驟1)如果外部存在標(biāo)準(zhǔn)服務(wù),則導(dǎo)入外部的標(biāo)準(zhǔn)服務(wù),并讀取外部服務(wù)的綁定配置;2)如果外部不存在標(biāo)準(zhǔn)服務(wù),則新建標(biāo)準(zhǔn)服務(wù),描述外部接口所提供的功能,并補充外部非標(biāo)準(zhǔn)服務(wù)的綁定配置;3)進(jìn)行服務(wù)調(diào)用時,在調(diào)用方創(chuàng)建服務(wù)動態(tài)代理對象,不同的平臺可采用不同的實現(xiàn)技術(shù),比如java平臺可通過java語言的動態(tài)代理特性實現(xiàn);4)調(diào)用上述生成的動態(tài)代理對象,通過數(shù)據(jù)轉(zhuǎn)換裝置306和協(xié)議數(shù)據(jù)處理裝置 304,將參數(shù)數(shù)據(jù)轉(zhuǎn)換為協(xié)議傳輸所要求的數(shù)據(jù)。通過將本發(fā)明應(yīng)用到SOA組件服務(wù)框架的實現(xiàn),有效解決了 SOA組件服務(wù)的綁定, 具體包括三個方面的應(yīng)用1)組件對外發(fā)布服務(wù)時的綁定;幻組件對外調(diào)用服務(wù)時的綁定;3)組件間可自由配置和自動創(chuàng)建的動態(tài)綁定服務(wù)。本發(fā)明介紹的服務(wù)綁定的實現(xiàn),由于支持多種協(xié)議靈活配置,支持綁定數(shù)據(jù)格式的配置,同時兼容業(yè)界標(biāo)準(zhǔn)協(xié)議綁定方式,如Webservice、MDB等,所以本發(fā)明具備廣泛的適用性。本發(fā)明有效分離了集成技術(shù)和業(yè)務(wù),可大大簡化分布式、異構(gòu)系統(tǒng)間的服務(wù)交互和集成,提高集成的可配置性,開發(fā)人員只需關(guān)注集成業(yè)務(wù)的實現(xiàn),而不需要關(guān)注協(xié)議傳輸、 底層數(shù)據(jù)轉(zhuǎn)換等技術(shù)問題,有效的降低了開發(fā)難度,提高了系統(tǒng)的擴(kuò)展性和可維護(hù)性。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種服務(wù)處理系統(tǒng),其特征在于,包括服務(wù)發(fā)布裝置,為服務(wù)綁定第一傳輸協(xié)議,并發(fā)布所述服務(wù);協(xié)議數(shù)據(jù)處理裝置,根據(jù)調(diào)用所述服務(wù)的原始請求數(shù)據(jù)的第二傳輸協(xié)議,從所述原始請求數(shù)據(jù)中提取調(diào)用的服務(wù)操作和所述服務(wù)操作的參數(shù)數(shù)據(jù),并根據(jù)所述第一傳輸協(xié)議、 所述服務(wù)操作和所述參數(shù)數(shù)據(jù),生成新請求數(shù)據(jù),來調(diào)用所述服務(wù)。
2.根據(jù)權(quán)利要求1所述的服務(wù)處理系統(tǒng),其特征在于,所述服務(wù)發(fā)布裝置還配置所述服務(wù)的發(fā)布粒度;所述協(xié)議數(shù)據(jù)處理裝置根據(jù)所述服務(wù)的發(fā)布粒度,確定所述服務(wù)操作在所述請求數(shù)據(jù)中的位置,以提取所述服務(wù)操作,以及根據(jù)所述服務(wù)的服務(wù)發(fā)布粒度,確定所述服務(wù)操作在所述新請求數(shù)據(jù)中的位置,并將所述服務(wù)操作設(shè)置在所述新請求數(shù)據(jù)中。
3.根據(jù)權(quán)利要求1所述的服務(wù)處理系統(tǒng),其特征在于,所述服務(wù)發(fā)布裝置還配置所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式;所述協(xié)議數(shù)據(jù)處理裝置根據(jù)預(yù)設(shè)的所述第二傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,提取所述服務(wù)操作和所述參數(shù)數(shù)據(jù),以及根據(jù)所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,通過數(shù)據(jù)轉(zhuǎn)換裝置將所述參數(shù)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再生成所述新請求數(shù)據(jù);所述服務(wù)處理系統(tǒng)還包括所述數(shù)據(jù)轉(zhuǎn)換裝置,用于進(jìn)行不同參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式格式的轉(zhuǎn)換。
4.根據(jù)權(quán)利要求3所述的服務(wù)處理系統(tǒng),其特征在于,所述服務(wù)發(fā)布裝置還配置所述服務(wù)中的每個服務(wù)操作的參數(shù)傳輸模式,其中所述參數(shù)傳輸模式包括合并傳輸模式和獨立傳輸模式,所述服務(wù)發(fā)布裝置為合并傳輸模式的服務(wù)操作統(tǒng)一配置其中所有參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,為獨立傳輸模式的服務(wù)操作逐個配置其中每個參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式。
5.根據(jù)權(quán)利要求1至4中任一項所述的服務(wù)處理系統(tǒng),其特征在于,還包括服務(wù)調(diào)用裝置,為外部服務(wù)設(shè)置代理對象,并獲取所述外部服務(wù)綁定的傳輸協(xié)議,以通過所述代理對象和所述外部服務(wù)綁定的傳輸協(xié)議,來調(diào)用所述外部服務(wù)。
6.一種服務(wù)處理方法,其特征在于,包括步驟202,為服務(wù)綁定第一傳輸協(xié)議,并發(fā)布所述服務(wù);步驟204,根據(jù)調(diào)用所述服務(wù)的原始請求數(shù)據(jù)的第二傳輸協(xié)議,從所述原始請求數(shù)據(jù)中提取調(diào)用的服務(wù)操作和所述服務(wù)操作的參數(shù)數(shù)據(jù);步驟206,根據(jù)所述第一傳輸協(xié)議、所述服務(wù)操作和所述參數(shù)數(shù)據(jù),生成新請求數(shù)據(jù),來調(diào)用所述服務(wù)。
7.根據(jù)權(quán)利要求6所述的服務(wù)處理方法,其特征在于,所述步驟202還包括配置所述服務(wù)的發(fā)布粒度;所述步驟204具體包括根據(jù)所述服務(wù)的發(fā)布粒度,確定所述服務(wù)操作在所述請求數(shù)據(jù)中的位置,以提取所述服務(wù)操作;所述步驟206具體包括根據(jù)所述服務(wù)的服務(wù)發(fā)布粒度,確定所述服務(wù)操作在所述新請求數(shù)據(jù)中的位置,并將所述服務(wù)操作設(shè)置在所述新請求數(shù)據(jù)中。
8.根據(jù)權(quán)利要求6所述的服務(wù)處理方法,其特征在于,所述步驟202還包括配置所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式;所述步驟204具體包括根據(jù)預(yù)設(shè)的所述第二傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,提取所述服務(wù)操作和所述參數(shù)數(shù)據(jù);所述步驟206具體包括根據(jù)所述第一傳輸協(xié)議下的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式,將所述參數(shù)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,再生成所述新請求數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的服務(wù)處理方法,其特征在于,所述步驟202具體包括配置所述服務(wù)中的每個服務(wù)操作的參數(shù)傳輸模式,其中所述參數(shù)傳輸模式包括合并傳輸模式和獨立傳輸模式,為合并傳輸模式的服務(wù)操作統(tǒng)一配置其中所有參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/ 或參數(shù)數(shù)據(jù)格式,為獨立傳輸模式的服務(wù)操作逐個配置其中每個參數(shù)數(shù)據(jù)的參數(shù)傳輸方式和/或參數(shù)數(shù)據(jù)格式。
10.根據(jù)權(quán)利要求6至9中任一項所述的服務(wù)處理方法,其特征在于,還包括 為外部服務(wù)設(shè)置代理對象,并獲取所述外部服務(wù)綁定的傳輸協(xié)議,以通過所述代理對象和所述外部服務(wù)綁定的傳輸協(xié)議,來調(diào)用所述外部服務(wù)。
全文摘要
本發(fā)明提供一種服務(wù)處理系統(tǒng)和一種服務(wù)處理方法,其中,服務(wù)處理系統(tǒng)包括服務(wù)發(fā)布裝置,為服務(wù)綁定第一傳輸協(xié)議,并發(fā)布所述服務(wù);協(xié)議數(shù)據(jù)處理裝置,根據(jù)調(diào)用所述服務(wù)的原始請求數(shù)據(jù)的第二傳輸協(xié)議,從所述原始請求數(shù)據(jù)中提取調(diào)用的服務(wù)操作和所述服務(wù)操作的參數(shù)數(shù)據(jù),并根據(jù)所述第一傳輸協(xié)議、所述服務(wù)操作和所述參數(shù)數(shù)據(jù),生成新請求數(shù)據(jù),來調(diào)用所述服務(wù)。在該技術(shù)方案中,可以接收以不同傳輸協(xié)議發(fā)送的服務(wù)調(diào)用請求,并將原有傳輸協(xié)議轉(zhuǎn)換為被調(diào)用服務(wù)的較適合的傳輸協(xié)議,對服務(wù)進(jìn)行調(diào)用。
文檔編號H04L29/08GK102497451SQ20111044797
公開日2012年6月13日 申請日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
發(fā)明者程操紅 申請人:用友軟件股份有限公司