專利名稱:服務建模裝置和服務建模方法
技術領域:
本發明涉及數據處理技術領域,具體而言,涉及一種服務建模裝置和一種服務建模方法。
背景技術:
面向服務是目前所知的構建可維護的、健壯的以及安全的應用程序的最佳方案,也是最可行的方案。一個面向服務應用程序只是簡單地將服務組合到一個單一邏輯的、整體的應用程序中,這類似于聚合了對象的面向對象應用程序。目前面向服務的開發模式更多的是應用面向對象語言實現。面向服務的開發模式以服務為中心,目前應用程序提供的服務與傳統編程概念不同,服務的概念是平臺無關的。服務使用者可以不關心服務內部實現的語言、技術構架、操作系統及API (Application Programming Interface,應用程序編程接口)等,更多的是關心服務描述定義,因為只要獲得服務模型和服務的訪問方式就可以獲取服務提供的功能了。應用程序通過服務建模生成平臺無關的服務描述定義,服務描述定義用于應用程序發布服務和服務訪問方式。服務的描述定義是服務建模的成果物之一,它包括:服務基本信息、版本、服務中操作的描述(包括操作基本信息、操作參數和操作返回值)。為了支持更復雜的業務需求,服務本身越來越復雜,反映到服務建模中就是參與服務建模的元數據越來越復雜了。服務建模的描述語言以平臺無關的服務建模語言WSDL (Web ServiceDescription Language)為基礎,這樣在定義服務階段很好的屏蔽了平臺相關性。服務建模語言支持基本數據類型和一般對象類型的描述定義,能夠形成服務描述的一般定義。根據參與服務建模的元數據類型,可以將服務建模中元數據區分為簡單類型和復雜類型。其中,簡單類型=XML語言可描述的基本類型和面向對象語言可直接描述的簡單對象類型;復雜類型:具有多對象屬性的對象類型,如C++中的模板類、JAVA中帶有泛型的類型等。從簡單類型和復雜類型的特征總結,可以這樣區別之:簡單類型是單對象類型,復雜類型是多對象類型。當然,需要說明的是,這里的“多對象”是指該類型在定義層的含義,并不是指包含的意思。簡單類型元數據在服務建模語言中己有對應的描述定義,而復雜類型由于其本身的復雜性和實現語言的復雜性,尚未有統一的服務建模方案。因此,需要一種新的服務建模技術,可以在現有的服務建模定義語言支持的描述定義方式基礎上,充分利用單對象類型元數據和文檔描述類型完成多對象類型元數據的服務建模,建立多對象類型元數據參與的面向對象類語言服務建模的通用、統一建模思路。
發明內容
本發明正是基于上述問題,提出了一種新的服務建模技術,可以在現有的服務建模定義語言支持的描述定義方式基礎上,充分利用單對象類型元數據和文檔描述類型完成多對象類型元數據的服務建模,建立多對象類型元數據參與的面向對象類語言服務建模的通用、統一建模思路。有鑒于此,本發明提出了一種服務建模裝置,包括:模板建立單元,用于建立對象類型轉換模板;結構轉換單元,用于利用所述對象類型轉換模板對多對象類型元數據進行數據結構轉換,以得到對應的單對象類型元數據;建模處理單元,用于利用所述單對象類型元數據進行服務建模,生成相應的服務模型。在該技術方案中,可以將對多對象類型元數據轉換為單對象類型元數據,從而利用已有的單對象類型元數據的建模方式對多對象類型元數據進行服務建模,簡化了對多對象類型元數據的服務建模過程。 在上述技術方案中,優選地,所述模板建立單元建立至少一個所述對象類型轉換模板,每個所述對象類型轉換模板對應于一種數據維度;以及所述服務建模裝置還包括:模板選擇單元,用于根據所述多對象類型元數據的數據維度,選擇相應的對象類型轉換模板,以由所述結構轉換單元實現對該多對象類型元數據的轉換。在該技術方案中,對于不同數據維度的多對象類型元數據,可以構建對應的模板,從而可以指出對任意數據維度的多對象類型元數據的服務建模。在上述技術方案中,優選地,還包括:信息記錄單元,用于記錄所述多對象類型元數據的特征屬性信息;以及所述建模處理單元還利用所述單對象類型元數據和所述特征屬性信息進行所述服務建模。在該技術方案中,特征屬性信息是多對象類型元數據所具有的信息,通過對多對象類型元數據的特征屬性信息進行記錄,從而在將多對象類型元數據轉換為單對象類型元數據之后,仍然能夠充分考慮到多對象類型元數據原本所具有的特征,有利于得到更為準確、清楚的服務模型。在上述技術方案中,優選地,所述多對象類型元數據包括C++中的模板類數據、JAVA中帶有泛型的類型的數據。在上述技術方案中,優選地,還包括:結構判斷單元,用于判斷所述多對象類型元數據是否存在嵌套結構,若存在,則所述結構轉換單元還利用所述對象類型轉換模板對所述多對象類型元數據執行遞歸處理。在該技術方案中,若多對象類型元數據存在嵌套結構,則可以通過遞歸處理的方式,實現對該嵌套結構的服務建模,有利于該多對象類型元數據的服務建模的實現。根據本發明的又一方面,還提出了一種服務建模方法,包括:步驟202,建立對象類型轉換模板;步驟204,利用所述對象類型轉換模板對多對象類型元數據進行數據結構轉換,以得到對應的單對象類型元數據;步驟206,利用所述單對象類型元數據進行服務建模,生成相應的服務模型。在該技術方案中,可以將對多對象類型元數據轉換為單對象類型元數據,從而利用已有的單對象類型元數據的建模方式對多對象類型元數據進行服務建模,簡化了對多對象類型元數據的服務建模過程。在上述技術方案中,優選地,所述步驟202包括:建立至少一個所述對象類型轉換模板,每個所述對象類型轉換模板對應于一種數據維度;以及所述步驟204還包括:根據所述多對象類型元數據的數據維度,選擇相應的對象類型轉換模板,以實現對該多對象類型元數據的轉換。在該技術方案中,對于不同數據維度的多對象類型元數據,可以構建對應的模板,從而可以指出對任意數據維度的多對象類型元數據的服務建模。在上述技術方案中,優選地,所述步驟204還包括:記錄所述多對象類型元數據的特征屬性信息;以及所述步驟206還包括:利用所述單對象類型元數據和所述特征屬性信息進行所述服務建模。在該技術方案中,特征屬性信息是多對象類型元數據所具有的信息,通過對多對象類型元數據的特征屬性信息進行記錄,從而在將多對象類型元數據轉換為單對象類型元數據之后,仍然能夠充分考慮到多對象類型元數據原本所具有的特征,有利于得到更為準確、清楚的服務模型。在上述技術方案中,優選地,所述多對象類型元數據包括C++中的模板類數據、JAVA中帶有泛型的類型的數據。在上述技術方案中,優選地,所述步驟204還包括:判斷所述多對象類型元數據是否存在嵌套結構,若存在,則還利用所述對象類型轉換模板對所述多對象類型元數據執行遞歸處理。在該技術方案中,若多對象類型元數據存在嵌套結構,則可以通過遞歸處理的方式,實現對該嵌套結構的服務建模,有利于該多對象類型元數據的服務建模的實現。通過以上技術方案,可以在現有的服務建模定義語言支持的描述定義方式基礎上,充分利用單對象類型元數據和文檔描述類型完成多對象類型元數據的服務建模,建立多對象類型元數據參與的面向對象類語言服務建模的通用、統一建模思路。
圖1示出了根據本發明的實施例的服務建模裝置的框圖;圖2示出了根據本發明的實施例的服務建模方法的流程圖;圖3示出了根據本發明的實施例的建立服務模型的原理示意圖;圖4示出了根據本發明的實施例的對多對象類型元數據進行轉換的原理示意圖;圖5示出了根據本發明的實施例的將多對象類型元數據生成為服務模型的原理示意圖;圖6示出了根據本發明的實施例的為復雜類型生成服務模型的流程圖。
具體實施例方式為了能夠更清楚地理解本發明的上述目的、特征和優點,下面結合附圖和具體實施方式
對本發明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。在下面的描述中闡述了很多具體細節以便于充分理解本發明,但是,本發明還可以采用其他不同于在此描述的其他方式來實施,因此,本發明的保護范圍并不受下面公開的具體實施例的限制。圖1示出了根據本發明的實施例的服務建模裝置的框圖。如圖1所示,根據本發明的實施例的服務建模裝置100,包括:模板建立單元102,用于建立對象類型轉換模板;結構轉換單元104,用于利用所述對象類型轉換模板對多對象類型元數據進行數據結構轉換,以得到對應的單對象類型元數據;建模處理單元106,用于利用所述單對象類型元數據進行服務建模,生成相應的服務模型。在該技術方案中,可以將對多對象類型元數據轉換為單對象類型元數據,從而利用已有的單對象類型元數據的建模方式對多對象類型元數據進行服務建模,簡化了對多對象類型元數據的服務建模過程。在上述技術方案中,優選地,所述模板建立單元102建立至少一個所述對象類型轉換模板,每個所述對象類型轉換模板對應于一種數據維度;以及所述服務建模裝置100還包括:模板選擇單元108,用于根據所述多對象類型元數據的數據維度,選擇相應的對象類型轉換模板,以由所述結構轉換單元104實現對該多對象類型元數據的轉換。在該技術方案中,對于不同數據維度的多對象類型元數據,可以構建對應的模板,從而可以指出對任意數據維度的多對象類型元數據的服務建模。在上述技術方案中,優選地,還包括:信息記錄單元110,用于記錄所述多對象類型元數據的特征屬性信息;以及所述建模處理單元106還利用所述單對象類型元數據和所述特征屬性信息進行所述服務建模。在該技術方案中,特征屬性信息是多對象類型元數據所具有的信息,通過對多對象類型元數據的特征屬性信息進行記錄,從而在將多對象類型元數據轉換為單對象類型元數據之后,仍然能夠充分考慮到多對象類型元數據原本所具有的特征,有利于得到更為準確、清楚的服務模型。在上述技術方案中,優選地,所述多對象類型元數據包括C++中的模板類數據、JAVA中帶有泛型的類型的數據。在上述技術方案中,優選地,還包括:結構判斷單元112,用于判斷所述多對象類型元數據是否存在嵌套結構,若存在,則所述結構轉換單元104還利用所述對象類型轉換模板對所述多對象類型元數據執行遞歸處理。在該技術方案中,若多對象類型元數據存在嵌套結構,則可以通過遞歸處理的方式,實現對該嵌套結構的服務建模,有利于該多對象類型元數據的服務建模的實現。圖2示出了根據本發明的實施例的服務建模方法的流程圖。如圖2所示,根據本發明的實施例的服務建模方法,包括:步驟202,建立對象類型轉換模板;步驟204,利用所述對象類型轉換模板對多對象類型元數據進行數據結構轉換,以得到對應的單對象類型元數據;步驟206,利用所述單對象類型元數據進行服務建模,生成相應的服務模型。在該技術方案中,可以將對多對象類型元數據轉換為單對象類型元數據,從而利用已有的單對象類型元數據的建模方式對多對象類型元數據進行服務建模,簡化了對多對象類型元數據的服務建模過程。在上述技術方案中,優選地,所述步驟202包括:建立至少一個所述對象類型轉換模板,每個所述對象類型轉換模板對應于一種數據維度;以及所述步驟204還包括:根據所述多對象類型元數據的數據維度,選擇相應的對象類型轉換模板,以實現對該多對象類型元數據的轉換。在該技術方案中,對于不同數據維度的多對象類型元數據,可以構建對應的模板,從而可以指出對任意數據維度的多對象類型元數據的服務建模。在上述技術方案中,優選地,所述步驟204還包括:記錄所述多對象類型元數據的特征屬性信息;以及所述步驟206還包括:利用所述單對象類型元數據和所述特征屬性信息進行所述服務建模。在該技術方案中,特征屬性信息是多對象類型元數據所具有的信息,通過對多對象類型元數據的特征屬性信息進行記錄,從而在將多對象類型元數據轉換為單對象類型元數據之后,仍然能夠充分考慮到多對象類型元數據原本所具有的特征,有利于得到更為準確、清楚的服務模型。在上述技術方案中,優選地,所述多對象類型元數據包括C++中的模板類數據、JAVA中帶有泛型的類型的數據。在上述技術方案中,優選地,所述步驟204還包括:判斷所述多對象類型元數據是否存在嵌套結構,若存在,則還利用所述對象類型轉換模板對所述多對象類型元數據執行遞歸處理。在該技術方案中,若多對象類型元數據存在嵌套結構,則可以通過遞歸處理的方式,實現對該嵌套結構的服務建模,有利于該多對象類型元數據的服務建模的實現。面向服務的宗旨是以提供服務為目的。面向服務發布的是平臺無關的服務定義,對使用者是友好的。實際中獲得平臺無關的服務建模可以有兩種方式:1、直接編寫WSDL及相關定義文件進行服務建模;2、從面向對象類語言服務描述中分析、抽象服務建模。從服務提供方的角度看,第2種方式的應用場景更為常見。第I種方式一般應用在應用程序和功能的設計階段對服務的功能進行規劃,產生的服務模型也是服務功能實現階段具體到實現語言的服務模型的構建模型。第2種方式從具體到抽象的過程,是獲得完整的平臺無關服務建模模型的必要過程。本發明主要針對第2種方式進行闡述,但由于第2種方式是第I種方式的逆過程,所以第2種方式存在問題同時也會困擾第I種方式。圖3示出了根據本發明的實施例的建立服務模型的原理示意圖。如圖3所示,圖中虛線右邊部分是目前服務建模的一般過程,包括:步驟302,遍歷服務收集特性。步驟304,服務建模。而在本發明的技術方案中,使得在步驟302之后又添加了:步驟306,判斷是否包含復雜類型,若包含,則進入步驟308,否則進入步驟304。
步驟308,采用不同于步驟304的方式,對復雜類型元數據進行建模。圖3中虛線左側部分(步驟306和步驟308)參與服務建模的需求日趨顯著,主要表現為以下兩方面:業務需求中對服務的定義越來越復雜;面向對象類語言中類型的定義越來越復雜。現有技術中由于面向對象類語言的差異,還沒有簡便的、統一的針對復雜類型元數據建模的解決辦法。現有的服務建模無法完成有復雜類型參與的服務建模過程。為完成復雜類型元數據建模這樣的需要,我們選用面向對象中一般對象的定義方式,以自定義適配工件的方式來對復雜類型元數據進行適配。具體如圖4所示,可以將多對象類型元數據402 (相當于復雜類型元數據)轉換為自定義的適配工件404,以適應于多對象類型元數據402具有多對象這個屬性特點。在得到的適配工件404的服務描述中,主要采用自定義的單對象類型元數據4044來描述多對象類型元數據402。當然,還可以采用注釋4042和單對象類型元數據4044結合的方式進行描述,其中,注釋4042是指多對象類型元數據402的特征屬性信息,通過注釋4042可以使得多對象類型元數據402在轉換為單對象類型元數據4044之后,仍然能夠較好地對其進行清楚、準確地描述。但采用圖4所示的多對象類型元數據402的適配方法需要基于以下兩個前提:1、現有服務建模語言對單對象類型元數據4044的支持;2、服務建模語言中可添加注釋說明,并且注釋說明可參與服務描述文件的生成。多對象類型元數據402適配的整體思路就是將多對象類型元數據402合并、分解,利用服務建模語言支持的單對象類型元數據、數據結構和用戶自定義文檔描述等實現對多對象類型元數據402的定義描述。圖5示出了根據本發明的實施例的將多對象類型元數據生成為服務模型的原理示意圖。如圖5所示,多對象類型元數據402是指面向對象類語言定義的復雜類型;模板406是指多對象到單對象生成模板;轉換/生成裝置408是指對象、注釋及相關處理中樞;適配工件404是指降解后的多對象類型;服務模型410是指平臺無關的服務模型。通過建立模板406,可以由轉換/生成裝置408將多對象類型元數據402轉換后,生成適配工件404(參見圖3中的具體結構),然后可以將適配工件404生成為服務模型410。現有的服務建模語言支持基本數據類型和一般對象類型的描述定義,鑒于單對象類型元數據的服務建模描述的可行性,本發明對多對象類型元數據的定義過程如下:步驟一,自定義一個單對象類型模板,此模板可生成滿足步驟二的單對象類型。步驟二,描述原復雜類型中的各個元數據類型,這是處理復雜類型元數據的必要步驟。接下來的兩種情況下也需要進行相應的處理:1、原復雜類型中的各個元數據類型中有一方或多方是復雜類型,需要先將其進行適配,轉到步驟一進行處理;2、如果復雜類型元本身有數據結構參與形成此類型,在服務建模語言中統一按列表處理。如有特殊要求可以文檔的注釋信息中加以說明。按照上面描述的處理方法,圖6示出了根據本發明的實施例的為復雜類型生成服務模型的流程圖。如圖6所示,為復雜類型生成服務模型的流程包括:步驟602,獲取復雜類型中的各個元數據。步驟604,判斷是否存在多對象類型元數據,若存在,則進入步驟606,否則進入步驟 612。步驟606,判斷是否存在對應的轉換模板,若存在,則進入步驟610,否則進入步驟608。步驟608,生成對應的轉換模板。步驟610,利用相匹配的轉換模板生成適配工件。步驟612,生成服務模板。其中,若是從步驟604進入步驟612,則直接為單對象類型元數據生成服務模板;若是從步驟610進入步驟612,則利用適配工件生成服務模板,并且還可以獲取多對象類型元數據的特征屬性信息,從而將該特征屬性信息和適配工件進行結合生成服務模板。以上結合附圖詳細說明了本發明的技術方案,考慮到相關技術中沒有簡便的、統一的針對復雜類型元數據建模的解決辦法。現有的服務建模無法完成有復雜類型參與的服務建模過程。因此,本發明提出了一種服務建模裝置和一種服務建模方法,可以在現有的服務建模定義語言支持的描述定義方式基礎上,充分利用單對象類型元數據和文檔描述類型完成多對象類型元數據的服務建模,建立多對象類型元數據參與的面向對象類語言服務建模的通用、統一建模思路。以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
權利要求
1.一種服務建模裝置,其特征在于,包括: 模板建立單元,用于建立對象類型轉換模板; 結構轉換單元,用于利用所述對象類型轉換模板對多對象類型元數據進行數據結構轉換,以得到對應的單對象類型元數據; 建模處理單元,用于利用所述單對象類型元數據進行服務建模,生成相應的服務模型。
2.根據權利要求1所述的服務建模裝置,其特征在于,所述模板建立單元建立至少一個所述對象類型轉換模板,每個所述對象類型轉換模板對應于一種數據維度;以及 所述服務建模裝置還包括: 模板選擇單元,用于根據所述多對象類型元數據的數據維度,選擇相應的對象類型轉換模板,以由所述結構轉換單元實現對該多對象類型元數據的轉換。
3.根據權利要求1所述的服務建模裝置,其特征在于,還包括: 信息記錄單元,用于記錄所述多對象類型元數據的特征屬性信息;以及 所述建模處理單元還利用所述單對象類型元數據和所述特征屬性信息進行所述服務建模。
4.根據權利要求1至3中任一項所述的服務建模裝置,其特征在于,所述多對象類型元數據包括C++中的模板類數據、JAVA中帶有泛型的類型的數據。
5.根據權利要求1至3中任一項所述的服務建模裝置,其特征在于,還包括: 結構判斷單元,用于判斷所述多對象類型元數據是否存在嵌套結構,若存在,則所述結構轉換單元還利用所述對象類型轉換模板對所述多對象類型元數據執行遞歸處理。
6.一種服務建模方法,其特征在于,包括: 步驟202,建立對象類型轉換模板; 步驟204,利用所述對象類型轉換模板對多對象類型元數據進行數據結構轉換,以得到對應的單對象類型元數據; 步驟206,利用所述單對象類型元數據進行服務建模,生成相應的服務模型。
7.根據權利要求6所述的服務建模方法,其特征在于,所述步驟202包括: 建立至少一個所述對象類型轉換模板,每個所述對象類型轉換模板對應于一種數據維度;以及 所述步驟204還包括: 根據所述多對象類型元數據的數據維度,選擇相應的對象類型轉換模板,以實現對該多對象類型元數據的轉換。
8.根據權利要求6所述的服務建模方法,其特征在于,所述步驟204還包括: 記錄所述多對象類型元數據的特征屬性信息;以及 所述步驟206還包括: 利用所述單對象類型元數據和所述特征屬性信息進行所述服務建模。
9.根據權利要求6至8中任一項所述的服務建模方法,其特征在于,所述多對象類型元數據包括C++中的模板類數據、JAVA中帶有泛型的類型的數據。
10.根據權利要求6至8中任一項所述的服務建模方法,其特征在于,所述步驟204還包括: 判斷所述多對象類型元數據是否存在嵌套結構,若存在,則還利用所述對象類型轉換模板對所述多對象 類型元數據執行遞歸處理。
全文摘要
本發明提供了一種服務建模裝置,包括模板建立單元,用于建立對象類型轉換模板;結構轉換單元,用于利用所述對象類型轉換模板對多對象類型元數據進行數據結構轉換,以得到對應的單對象類型元數據;建模處理單元,用于利用所述單對象類型元數據進行服務建模,生成相應的服務模型。本發明還提出了一種服務建模方法。通過本發明的技術方案,可以在現有的服務建模定義語言支持的描述定義方式基礎上,充分利用單對象類型元數據和文檔描述類型完成多對象類型元數據的服務建模,建立多對象類型元數據參與的面向對象類語言服務建模的通用、統一建模思路。
文檔編號G06F9/44GK103164221SQ20131005552
公開日2013年6月19日 申請日期2013年2月21日 優先權日2013年2月21日
發明者趙鑫波, 王大偉, 栗竹冉 申請人:用友軟件股份有限公司