專利名稱:對動態調用服務的執行結果進行渲染的方法、裝置及系統的制作方法
技術領域:
本發明一般地涉及執行結果渲染技術,尤其是對動態調用服務的執行結果進行渲染的方法、裝置及系統。
背景技術:
在互聯網高速發展的今天,大量的Web服務或各自獨立或互相協作地運行于互聯網上,并提供包括基礎設施、平臺和軟件在內的各種各樣的服務。然而,Web服務技術主要被設計為用于機器與機器之間的交互,其輸入和輸出的類型都是通過XML schema來定義的,并不包含如何對輸出進行顯示的信息,也就無法將Web服務的執行結果友好而直接地展示給執行結果查看者。因此,對Web服務執行結果進行渲染是很必要的。
傳統的方法可以用來解決靜態調用的Web服務的執行結果的渲染問題。因為對于靜態調用的Web服務來說,調用者在設計其調用客戶端時就可以確定該Web服務,進而確定其輸出類型,然后便可以通過硬編碼的方式對該Web服務的執行結果進行渲染。而對于動態調用的Web服務來說,由于被調用的Web服務及其輸出類型不可預知,所以不能通過硬編碼的方式來進行渲染。現有技術中,根據每個Web服務的XML schema為其輸出類型配置模板,可以實現對動態調用的Web服務的執行結果進行渲染。這種方法很靈活,因為僅通過修改模板,而不用修改代碼,便可改變對執行結果進行渲染的方式。然而,由于記錄有每個Web服務的輸出類型的XML schema是由各個服務提供者自定義的,而這些服務提供者不可能事先達成一個如何對相同類型進行定義的共識。因此,這便造成了很多在語法上不同但是在語義層面上卻是重復的模板,這些模板彼此沒有關系,不便于組織、管理和維護。
發明內容
有鑒于此,本發明實施例提供對動態調用服務的執行結果進行渲染的方法、裝置及系統,能夠減少系統中的模板的數量,便于模板的組織、管理和維護。根據本發明實施例的一個方面,提供一種對動態調用服務的執行結果進行渲染的方法,其中所述執行結果是本體中的類的實例,包括確定所述執行結果所屬的類;從模板庫中查找所述執行結果所屬的類對應的模板,其中所述模板庫是預先根據所述本體中的各個類及其屬性而生成的;以及利用所找到的模板,對所述執行結果進行渲染。根據本發明實施例的另一個方面,提供一種對動態調用服務的執行結果進行渲染的裝置,其中所述執行結果是本體中的類的實例,所述裝置包括確定單元,用于確定所述執行結果所屬的類;查找單元,用于從模板庫中查找所述執行結果所屬的類對應的模板,其中所述模板庫是預先根據所述本體中的各個類及其屬性而生成的;以及第一渲染單元,用于利用所找到的模板,對所述執行結果進行渲染。根據本發明實施例的再一個方面,提供一種對動態調用服務的執行結果進行渲染的系統,包括模板庫,用于保存根據本體中的各個類及其屬性而生成的模板;管理模塊,包括查找子模塊,用于接收到查找指定類對應的模板的請求時,返回該類對應的模板;以及本發明實施例所述的對動態調用服務的執行結果進行渲染的裝置。另外,根據本發明的另一方面,還提供了一種存儲介質。所述存儲介質包括機器可讀的程序代碼,當在信息處理設備上執行所述程序代碼時,所述程序代碼使得所述信息處理設備執行根據本發明的上述對動態調用服務的執行結果進行渲染的方法。此外,根據本發明的再一方面,還提供了一種程序產品。所述程序產品包括機器可執行的指令,當在信息處理設備上執行所述指令時,所述指令使得所述信息處理設備執行根據本發明的上述對動態調用服務的執行結果進行渲染的方法。
根據本發明實施例的上述方法,可以根據本體中的類進行模板的定義,并利用這些本體中的類對應的模板對動態調用服務的執行結果進行渲染,也即,各個動態調用服務的執行結果都可以使用本體中的類對應的模板進行渲染。換言之,不需要分別為各個動態調用服務的執行結果分別生成各自的模板,因此,有利于減少系統中的模板的數量,便于模板的組織、管理和維護。在下面的說明書部分中給出本發明實施例的其他方面,其中,詳細說明用于充分地公開本發明實施例的優選實施例,而不對其施加限定。
下面結合具體的實施例,并參照附圖,對本發明實施例的上述和其它目的和優點做進一步的描述。在附圖中,相同的或對應的技術特征或部件將采用相同或對應的附圖標記來表示。圖I是本體結構示意圖;圖2是本發明實施例提供的方法的流程圖;圖3是本發明實施例提供的方法中渲染結果示意圖;圖4是本發明實施例提供的方法中另一渲染結果示意圖;圖5是本發明實施例提供的第一裝置的示意圖;圖6是本發明實施例提供的第二裝置的示意圖;圖7是本發明實施例提供的第三裝置的示意圖;圖8是本發明實施例提供的第四裝置的示意圖;圖9是本發明實施例提供的系統的示意圖;圖10是本發明實施例提供的另一系統的示意圖;圖11是示出作為本發明的實施例中所采用的信息處理設備的個人計算機的示例性結構的框圖。
具體實施例方式下面參照附圖來說明本發明實施例的實施例。在本發明實施例中,為了對動態調用服務的執行結果進行渲染,首先需要生成模板,這種模板是根據本體中的類生成的。為了便于理解,下面首先對本體的概念進行簡單地介紹。本體可以看作是形式化定義詞語關系的規范化文件,通常由各個領域的專家維護,在每個領域都具有一個標準的分類體系,在該分類體系下,各個類別能夠涵蓋整個領域,同時又不重復。在本發明實施例中,本體可以是某個領域本體或者由多個領域本體組合產生的通用本體(或稱核心本體)。本體中的每一個類(Class)代表一種數據類型,每個數據類型還有自己的屬性,包括數據屬性(DataProperty)或對象屬性(ObjectProperty),同時對象屬性也描述了數據類型之間的關系。
例如,圖I所示為一個本體的示意圖,其中,RootType是這個本體的根節點類。共有三個葉子節點類,分別是Item、Rss和Search ;ClassHasItem是Rss和Search共同的父類,它具有一個或多個hasltem對象屬性(ObjectProperty)。hasltem屬性的值域是Item。Item 和 Rss 都有以下值域為 http://www. w3. org/2001/XMLSchema#string 的數據屬性(DataProperty) :hasTitle、hasLink、hasDescription、hasCategory、hasPubDate。 Search具有一個值域為 http://www. w3. org/2001/XMLSchema#string 的數據屬性hasKeyword。這個本體的命名空間(namespace)為http://www. example, com。每一個類或者屬性都有各自的URL,用于唯一標識該類或屬性。其中,類或屬性的URL都可以是以”namespace#name”形式表示的,比如Rss這個類的URL為http://www. example. com#Rss。也就是說,本體中具有標準的數據類型(例如Item、Search、Rss等)及其之間的關系,每種數據類型具有自己的URL以及各自的屬性,同時,每個屬性也分別具有自己的URL。而對于實際的動態調用服務的執行結果而言,是本體中的某個類的實例。也即,雖然動態調用服務的輸出類型是由服務提供者自定義的,但是,無論服務提供者在創建動態調用服務時,如何定義數據類型,其執行結果總會是某個本體中某個類的實例。因此,在本發明實施例中,就是要利用依據本體中的類創建的模板,對各個動態調用服務的執行結果進行渲染。為此,首先需要創建模板,下面對創建模板的過程進行介紹。在本發明實施例中,模板是根據本體中描述的數據類型及其屬性創建的,它可以采用HTML等語言來描述,并且與本體中描述的數據類型一一對應,也就是說,本體中有多少個數據類型,針對該本體就可以創建多少個模板,可以將這些模板進行保存,生成針對該本體的模板庫。并且,在保存時,還可以保存數據類型的URL及其模板之間的對應關系,這樣,根據數據類型的URL可以唯一找到該數據類型對應的模板。對于某數據類型而言,其模板就是要描述出,該數據類型的各個屬性的值出現的位置。在模板中,由于各個屬性還沒有具體的取值,因此,可以由各個屬性的URL(為方便描述,本發明實施例就以此為例進行介紹)來代替。在渲染時,相當于是將執行結果中各個屬性的值,替換對應屬性的URL即可。其中,如前文所述,一個數據類型可能具有數據屬性,還可能具有對象屬性,在生成某數據類型的模板時,該數據類型的數據屬性的URL必須出現在模板中,否則,該屬性的值將無法出現在最終的渲染結果中。而該數據類型的對象屬性則不必在模板中進行顯示聲明,如果出現在模板中,則該對象屬性的值將會出現在該屬性的URL在模板中的位置,否貝U,該對象屬性的值將會依次連接到該對象屬性部分所屬實例的渲染結果的末端。生成的模板可以存儲于模板庫的一張表中,該表可以含有兩個字段,第一個字段用于存儲數據類型的URL,第二個字段用于存儲模板的內容。如前文所述,數據類型的URL可以以”namespaceiiname”形式表示,存儲URL的字段可以做為該表的主鍵用來唯一查找指定數據類型的模板。假設在圖I所示的本體中,模板庫中保存了表I所示的各個數據類型的模板。表I
權利要求
1.一種對動態調用服務的執行結果進行渲染的方法,其中所述執行結果是本體中的類的實例,所述方法包括 確定所述執行結果所屬的類; 從模板庫中查找所述執行結果所屬的類對應的模板,其中所述模板庫是預先根據所述本體中的各個類及其屬性而生成的;以及 利用所找到的模板,對所述執行結果進行渲染。
2.根據權利要求I所述的方法,其中模板的內容部分保存有類的各個數據屬性的統一資源標識符URL,所述對所述執行結果進行渲染進一步包括 如果執行結果中存在實例的數據屬性,則利用所述執行結果中該數據屬性的值替換所述模板中該數據屬性的URL。
3.根據權利要求I所述的方法,其中所述對所述執行結果進行渲染進一步包括 如果執行結果中存在實例的對象屬性,則將所述對象屬性的值轉換為另一實例,確定該另一實例所屬的類,利用該類對應的模板,對所述執行結果中實例的對象屬性部分進行渲染。
4.根據權利要求3所述的方法,其中對所述執行結果中實例的對象屬性部分進行渲染進一步包括 如果所述對象屬性的URL出現在所述執行結果所屬的類的模板中,則利用所述對象屬性部分的渲染結果,替換該模板中該對象屬性的URL ; 否則,將所述對象屬性部分的渲染結果依次連接到所述對象屬性部分所屬實例的渲染結果的末端。
5.根據權利要求I至4任一項所述的方法,其中如果所述執行結果所屬的類的模板不存在,所述方法還包括 查找與所述執行結果所屬的類最相似的類; 利用所述最相似的類對應的模板,對所述執行結果進行渲染。
6.一種對動態調用服務的執行結果進行渲染的裝置,其中所述執行結果是本體中的類的實例,所述裝置包括 確定單元,用于確定所述執行結果所屬的類; 查找單元,用于從模板庫中查找所述執行結果所屬的類對應的模板,其中所述模板庫是預先根據所述本體中的各個類及其屬性而生成的;以及 第一渲染單元,用于利用所找到的模板,對所述執行結果進行渲染。
7.根據權利要求6所述的裝置,其中模板的內容部分保存有類的各個數據屬性的統一資源標識符URL,所述第一渲染單元進一步包括 第一替換子單元,用于如果執行結果中存在實例的數據屬性,則利用所述執行結果中該數據屬性的值替換所述模板中該數據屬性的URL。
8.根據權利要求6所述的裝置,其中所述第一渲染單元進一步包括 實例轉換子單元,用于如果執行結果中存在實例的對象屬性,則將所述對象屬性的值轉換為另一實例; 對象屬性渲染子單元,用于確定該另一實例所屬的類,利用該類對應的模板,對所述執行結果中實例的對象屬性部分進行渲染。
9.根據權利要求6至8任一項所述的裝置,還包括 相似查找單元,用于如果所述執行結果所屬的類的模板不存在,查找與所述執行結果所屬的類最相似的類; 第二渲染單元,用于利用所述最相似的類對應的模板,對所述執行結果進行渲染。
10.一種對動態調用服務的執行結果進行渲染的系統,包括 模板庫,用于保存根據本體中的各個類及其屬性而生成的模板; 管理模塊,包括查找子模塊,用于接收到查找指定類對應的模板的請求時,返回該類對應的模板;以及 權利要求6至9任一項所述的對動態調用服務的執行結果進行渲染的裝置。
全文摘要
本發明實施例公開了對動態調用服務的執行結果進行渲染的方法、裝置及系統。根據本發明一個實施例的對動態調用服務的執行結果進行渲染的方法包括確定所述執行結果所屬的類;從模板庫中查找所述執行結果所屬的類對應的模板,其中所述模板庫是預先根據所述本體中的各個類及其屬性而生成的;以及利用所找到的模板,對所述執行結果進行渲染。通過本發明的實施例,能夠減少系統中的模板的數量,便于模板的組織、管理和維護。
文檔編號G06F9/44GK102622219SQ20111003607
公開日2012年8月1日 申請日期2011年1月31日 優先權日2011年1月31日
發明者于浩, 張軍, 李邵明, 松尾昭彥, 王主龍, 皮冰鋒, 蘇亮, 鄒綱, 鐘朝亮 申請人:富士通株式會社