表示和配置靈活和可擴展表達模式的方法和裝置的製作方法
2023-05-04 03:13:01 3
專利名稱:表示和配置靈活和可擴展表達模式的方法和裝置的製作方法
技術領域:
本發明一般涉及信息技術,尤其涉及一種表示和配置靈活和可擴展表達模式的方法和裝置。
背景技術:
現在已有大量幫助人們在工作流解決方案中構建表達模塊的技術。它們的大多數是技術驅動的(例如,JavaScript(JavaScript是Sun Microsystem Inc.的註冊商標)、Ajax技術、和Portlet技術),而不是架構驅動的。例如,Ajax技術為基於Web(全球資訊網)表達提供了非侵入性內容刷新架構。作為另一個例子,Portlet技術提供了定義表達界面的模塊化布局框架。但是,基層技術的演進可能導致需要改變那些現有手段的實現。隨著市場越來越要求靈活性和進入市場的速度,現有技術依賴型手段無助於解決這些需要。現有架構驅動型技術常常通過模型視圖控制(MVC)手段表示。但是,這些現有架構驅動型技術停留在表達結構的高級抽象上,並不引導建造細粒度架構。
因此,現有手段缺乏靈活性和可擴展性,並且無法按需要重新配置它們的架構構建模塊(Architecture Building Block,ABB),以適應有關機構或其它實體的變化的要求。市場越來越要求靈活性和進入市場的速度。技術依賴型手段無助於解決這種需要。抽象構建模塊更適合解決這種不斷增長的需要。
因此,需要克服現有手段的局限性。
發明內容
本發明的原理提供了根據細粒度架構構建模塊(ABB)表示和配置靈活和可擴展表達模式的技術。按照本發明的一個方面,根據細粒度ABB表示和配置靈活和可擴展表達模式的示範性方法(可以用計算機實現)可以包括如下步驟定義ABB,以統一方式為ABB建模,和利用ABB創建至少一個模板,其中,至少一個模板包括預配置(靜態)特徵和用戶指定(動態)服務特徵的至少一個。
在本發明的一個方面中,定義ABB的步驟包括定義消費者ABB和表達控制器ABB,並且還可以包括定義表達ABB、消費者概況ABB、訪問控制ABB、格式變換ABB、配置規則ABB、和高速緩存ABB。此外,在本發明的另一個方面中,定義ABB的步驟包括將表達模塊的責任劃分成分責任區(sub-responsibility area),其中,分責任區可以包括相關銜接功能(Cohesive Function)的一個或幾個邏輯分組,以及其中,分責任區可以當作ABB來對待。而且,在本發明的另一個方面中,定義ABB的步驟包括定義與ABB相關聯的屬性,其中,這些屬性包括ABB標識符(ID)、ABB類型、ABB狀態、ABB協議、ABB輸入類型和輸出類型中的至少一種。
在本發明的又一個方面中,以統一方式為ABB建模的步驟包括利用統一框架為ABB建模。而且,統一框架可以促進ABB的統一接口描述的開發。此外,在本發明的另一個方面中,以統一方式為ABB建模的步驟可以包括定義ABB的操作,其中,這些操作包括getABBId、getABBName、getABBLayer、getABBState、getABBProtocol、getABBInputDataType、getABBOutputDataType、getABBIOType、getABBAnnotationURL、getConsumerLayerABBType、和getConsumerType中的至少一種。
此外,在本發明的又一個實施例中,利用ABB創建至少一個模板的步驟包括利用ABB為特定服務場景預配置靜態模板。而且,利用ABB創建至少一個模板的步驟包括根據用戶指定服務特徵選擇適當ABB和在運行時期間配置適當ABB。
在本發明的實施例中,設計和管理細粒度ABB的示範性方法可以包括識別ABB以包括在一種解決方案中促進消費者和其它單元之間的表達和交互的架構中,分析ABB以便監視各個ABB使用的計算資源,根據(i)有關實體的請求和(ii)適用資源選擇ABB的許多運行實例,和管理ABB的生命周期。在本發明的一個方面中,管理ABB的生命周期的步驟包括定義表達架構模板,根據服務場景選擇表達架構模板,配置ABB的接口,應用ABB與其它模塊的交互模式,和啟用(enable)對ABB的訪問控制。此外,在本發明的另一個方面中,設計和管理細粒度(fine-grained)ABB的示範性方法可以包括啟用狀態管理的粒度實現(granularity enablement)和處理異常情況。
本發明的至少一個實施例可以以計算機產品的形式實現,該計算機產品包括帶有執行所示的方法步驟的計算機可用程序代碼的計算機可用媒體。而且,本發明的至少一個實施例可以以包括存儲器和至少一個處理器的裝置的形式實現,該至少一個處理器與存儲器耦接,並用於執行這些示範性方法步驟。
通過結合附圖閱讀以下對本發明的例示性實施例的詳細描述,本發明的這些和其它目的、特點和優點將更加清楚。
圖1是例示根據本發明的一個方面的、構建表達層的示範性架構構建模塊(ABB)的方框圖; 圖2是例示根據本發明的另一個方面的、ABB的示範性分層表示的方框圖; 圖3A和3B(作為一個整體)描繪了根據本發明的另一個方面的、XML機制下的ABB的分段的示範性文本表示; 圖4是根據本發明的另一個方面的、通過WSDL操作暴露的有狀態ABB的示範性文本表示; 圖5是根據本發明的另一個方面的、XML機制下的消費者層ABB的示範性文本表示; 圖6是根據本發明的另一個方面的、通過WSDL操作暴露的有狀態消費者層ABB的示範性文本表示; 圖7是根據本發明的另一個方面的、XML機制下的消費者ABB的示範性文本表示; 圖8是根據本發明的另一個方面的、通過WSDL操作暴露的有狀態消費者ABB的示範性文本表示; 圖9是例示根據本發明的另一個方面的、可以執行創建靜態模板的示範性方法的示範性系統的方框圖; 圖10是例示根據本發明的另一個方面的、可以執行創建動態模板的示範性方法的示範性系統的方框圖; 圖11是例示根據本發明的一個方面的、根據細粒度架構構建模塊(ABB)表示和配置靈活和可擴展表達模式的示範性方法的流程圖; 圖12是例示根據本發明的又一個方面的、設計和管理細粒度ABB的示範性方法的流程圖;和 圖13是可以實現本發明的至少一個實施例的示範性計算機系統的系統圖。
優選實施例詳述 本發明的一個或多個實施例提供了在工作流解決方案中支持表達模塊的適應能力的架構構建模塊(ABB)的統一表示和定義和相關聯的配置框架。因為ABB是細粒度的,所以這種配置能力是有效的。可以在提供一組預定義架構模式的新配置框架的頂端根據指定規則配置細粒度ABB。而且,ABB基於服務場景而不是技術,因此,促進了有關機構或其它實體的需要與IT環境的更有效校正(alignment)。此外,本發明的技術創建了根據處在比具體服務部件更高的抽象層上的抽象構建模塊提供圍繞服務實現的新服務。
圖1示出了例示根據本發明的一個方面的示範性架構構建模塊(ABB)的方框圖。由於術語「層」常常用於表示相同概念,術語「模塊」和「層」在這裡可交換使用。此外,如這裡所使用的那樣,「工作流過程」旨在包含在任何粒度級別上朝著目標的一組互連活動的過程。如圖1所示,面向服務架構(SOA)解決方案系統的一個例子可以包括架構層,其包括消費者層102、工作流過程層104、服務層106、合併(integration)層108、服務質量(QoS)層110、數據層112、和管理層114。消費者層102也稱為消費者模塊,可以包括架構構建模塊(ABB)的8個類別中的部件,這8個類別包括消費者116、表達(視圖)118、表達控制器120、消費者概況128、訪問控制124、格式變換122、配置規則130、和高速緩存126。應該注意到,本發明不局限於如上細述的確切示範性實施例,本領域的普通技術人員可以作出各種各樣的其它改變和修改。
消費者層102通常與面向服務架構(SOA)解決方案中的其它層交互,所述其它層諸如是,例如,包含和編排服務部件的工作流過程層104、(2)管理工作流服務的服務層106、調解、路由和傳送從服務消費者到適當服務提供者的服務請求的合併層108、在各個方面提供QoS管理的QoS層110、提供與域特定數據架構合併的統一表示和實現框架的數據層112、和提供設計指南以保證SOA解決方案的適當設計的管理層114。
消費者構建模塊116代表表達模塊的外部用戶。它可以是,例如,程序或請求服務的個體。表達(視圖)構建模塊118負責通過來自消費者的詢問獲取輸入和向消費者提供或顯示響應。換句話說,表達(視圖)構建模塊118負責與消費者通信。表達控制器構建模塊120管理消費者交互的導航邏輯。例如,表達控制器構建模塊120可以與服務層106中的服務或與工作流過程層104中的過程交互。同時,表達控制器構建模塊120與消費者層102中的其它ABB交互,所述其它ABB諸如是,例如,根據消費者概況控制導航的消費者概況128、確定可以表達哪些內容的訪問控制124、和翻譯成合併層108所需的詢問數據格式和將來自合併層108的一個或幾個響應轉換成適當的消費者響應格式的格式變換122。
消費者概況構建模塊128負責獲取表達控制器120出於導航和內容表達目的而使用的消費者特定信息(通過數據層112啟用)。訪問控制構建模塊124提供表達控制器120為允許和/或防止向消費者表達內容而使用的驗證和/或授權能力(通過安全層啟用)。格式變換構建模塊122負責合併層108請求的詢問內容格式的翻譯,並且將從合併層108返回的內容轉換成消費者響應格式。格式變換構建模塊122還可以用於變換在對服務或過程的調用消息中的內容(例如,可以利用可擴展樣式表語言變換(XSLT)將消息有效負載翻譯成所需的可擴展標記語言(XML)格式)。格式變換構建模塊122通常可以支持多種XSLT和其它變換機制。應該注意到,這種變換隻解決了將表達的內容格式的改變,例如,從XML改變成超文本標記語言(HTML)或從XML改變成VoiceXML(VXML)。它不處理實際內容的變換,這是工作流過程層104或服務層106的責任(例如,轉換成產業特定的消息模式)。
配置規則構建模塊130負責存放(host)指示如何根據消費者請求場景配置ABB的規則。這個單元啟用按需式的表達配置。它還只允許使用適當的ABB。應該注意到,如果ABB是粗粒度的,由於這將降低靈活性,所以這種配置能力將無效。另一方面,如果ABB是細粒度的,可以更靈活地根據指定規則配置它們。可以以,例如,如下兩種方式處理這種配置。第一種方式通過基於模板靜態配置,其中,用戶可以根據相應的服務請求場景選擇特定模板。系統將選擇與這個模板相關聯的所有規則和將ABB配置成支持這些規則。這種手段要求創造場景模板和將它們存儲在庫中以便在需要時選擇它們。第二種方式通過動態模板創建,其中,用戶選擇某些特徵,和系統確定適當規則和在運行時利用相關ABB配置一個或多個模板。例如,用戶可以指定如下兩種特徵數據是靜態的(也就是說,在交互期間不改變)和不應該多次驗證用戶身份。第一特徵暗示著使用高速緩存ABB是有利的。第二特徵暗示著必需使用適當的安全令牌機制。這些特徵將在運行時期間用於配置適當的ABB。
高速緩存構建模塊126負責臨時存儲消費者交互相關數據以提高系統性能。通常在整個交互的持續時間內都保持這些數據。這樣類型的數據的例子是消費者概況。高速緩存構建模塊122在最小化與數據層112的交互時將提高性能。
圖2是例示根據本發明的另一個方面的、ABB的示範性分層表示的方框圖。在這個部分中,我們將例示如何為ABB建模。我們將提供為可以被ABB攜帶的可跟蹤信息建模的標準、一致、靈活和可擴展方式。取代創建另一種新描述方法,我們應用全球資訊網服務資源框架(WSRF)將ABB定義成通用資源。由IBM、計算機協會、Oracle、和其它協作者發起,WSRF(http://www.128.ibm.com/developerworks/library/specification/ws-resource/)定義了利用全球資訊網服務管理和訪問有狀態資源的規範的系統。到此為止,WSRF已經廣泛地用於啟用有狀態全球資訊網服務。簡言之,WSRF是著名的捕獲資源的基於XML表達方法。WSRF啟用通過全球資訊網服務接口訪問資源的內部狀態,例如,作為全球資訊網服務交互的結果可以繼續跨越和演進的數據值。在採用WSRF之前,我們也檢查了諸如資源定義框架(RDF)那樣的其它選擇(參見可從http://www.w3.org/TR/rdf-syntax-grammar/獲得的World Wide WebConsortium的「RDF/XML Syntax Specification」)。作為在網際網路上表達信息的通用語言,RDF將重點集中在描述任何通用資源的元數據上。與RDF相比,WSRF利用全球資訊網服務技術來暴露資源的內部狀態信息,這更好地與我們為有狀態ABB建模的目標相吻合。但是,雖然將WSRF用於為有狀態ABB建模似乎是更可取的,但本發明的一個或多個實施例也可以應用RDF或其它適當語言。
為了為具有可再用性、靈活性和可擴展性的ABB建模,我們以分層方式定義ABB。如圖2所示,可以將各種類型的ABB組織成分層繼承樹狀結構。樹根(也就是說,模塊0)代表通用ABB 202。它的直系兒女輩(也就是說,模塊1)代表面向服務架構(SOA)解決方案下的各層(例如,模塊ABB)。例如,SOA解決方案可以識別像消費者模塊、工作流過程模塊,以及其它模塊那樣的幾種模塊。專用ABB類型被建造成代表每個模塊,例如,ConsumerLayerABB 204、WorkflowProcessLayerABB 206、和其它模塊208。對於每個模塊,識別的ABB類型(例如,模塊2)從具有特定特徵的模塊ABB擴展。例如,如圖2所示,ConsumerLayerABB 204被擴展成8個ABBConsumerABB 210、PresentationABB 212、PresentationControllerABB 222、ConsumerProfileABB 214、AccessControlABB 216、FormatTransformationABB 224、CacheABB218和ConfigurationRuleABB 220。
藉助於ABB的組織層次,我們可以以遞增的方式為ABB建模。更詳細地說,我們可以首先為通用ABB建模。然後,我們可以通過衡量通用ABB來為模塊ABB建模。此後,我們可以衡量模塊ABB以為它的擴展ABB建模。
圖3A和3B(作為一個整體)描繪了根據本發明的另一個方面的、XML機制中的ABB特性定義的分段300的示範性文本表示。圖3A和3B例示了資源部件(也就是說,ABBResource)的資源特性文檔定義的相關分段。如圖3A和3B所示,全球資訊網服務資源(WS-Resource)特性說明文檔是利用XML機制定義的。舉例來說,描繪在圖3A和3B中的ABBResource的狀態包含9個元素(1)ABBId;(2)ABBName;(3)ABBLayer;(4)ABBState;(5)ABBProtocol;(6)ABBInputDataType;(7)ABBOutputDataType;(8)ABBIOType;和(9)ABBAnnotationSchemaURL。每個元素具有XML機制定義(XSD)類型,即,簡單XSD數據類型或用戶定義數據類型。
ABBId表示ABB的實例的唯一標識符,帶有XSD類型字符串(xsd:string)。ABBName表示ABB的實例的描述名稱,帶有XSD類型字符串(xsd:string)。ABBLayer表示定義的ABB屬於哪個模塊,帶有包含9個預定義值(ConsumerLayer、WorkflowProcessLayer、ServiceLayer、ServiceComponentLayer、OperationalSystemLayer、IntegrationLayer、QoSLayer、DataArchitectureLayer、和GovernanceLayer)的定義類型ABBLayerEnumeration。ABBState表示ABB實例的生命周期狀態,帶有包含5個預定義值(Created、Ready、Running、Pending、和Destroyed)的定義的類型abbStateEnumeration。ABBProtocol表示ABB實例支持的協議,帶有包含2個預定義值(HTTP和SMTP)的定義類型abbProtocolEnumeration。ABBInputDataType表示ABB實例支持的輸入數據類型,帶有包含4個預定義值(Binary、PlainText、XML、和HTML)的定義的類型dataTypeEnumeration。ABBOutputDataType表示ABB實例支持的輸出數據類型,帶有包含4個預定義值(Binary、PlainText、XML、和HTML)的定義的類型dataTypeEnumeration。ABBIOType表示ABB實例支持的輸入和/或輸出類型,帶有包含3個預定義值(InputOnly、OutputOnly、和InputOutput)的定義的類型ioTypeEnumeration。ABBAnnotationSchemaURL表示可以用於解釋與ABB實例相關聯的任何注釋的機制文件(schema file),帶有XSD類型字符串(xsd:string)。
圖4是根據本發明的另一個方面的、通過WSDL操作暴露的ABB特性的示範性文本表示400。為了使ABB用戶知道「ABBResource」定義與全球資訊網服務相關聯的WS-Resource特性文檔,通過使用標準屬性resourceProperties將WS-Resource特性文檔說明與全球資訊網服務接口的WSDL定義中的WSDL portType定義相關聯。如圖4所示,帶有相關聯的資源屬性文檔的portType定義WS-Resource的類型。圖4中的portType「ABBPortType」定義了允許用戶訪問定義的ABBResource的狀態信息的9個操作的集合(getABBid、getABBName、getABBLayer、getABBState、getABBProtocol、getABBInputDataType、getABBOutputDataType、getABBIOType、和getABBAnnotationURL)。
圖5是例示根據本發明的另一個方面的、XML機制中的消費者層ABB特性定義的分段的示範性文本表示的方框圖500。在定義了通用ABB的資源特性之後,可以通過衡量通用ABB的那些特性和添加特定資源特性,來定義其擴展子ABB(例如,模塊ABB)的資源特性。圖5示出了ConsumerLayerABB的資源特性。由於ConsumerLayerABB是通用ABB的子類,它自動繼承了定義在通用ABB中的所有資源特性。如圖5所示,ConsumerLayerABB的狀態包含2個元素ABB和添加的元素ConsumerLayerABBType,該ConsumerLayerABBType帶有包含8個預定義值(Consumer、Presentation、PresentationControl、ConfigurationRule、ConsumerProfile、Cache、AccessControl、和FormatTransformation)的定義的類型ConsumerLayerABBEnumeration。
圖6是根據本發明的另一個方面的、通過WSDL操作暴露的消費者層ABB特性的示範性文本表示600。將ConsumerLayerABB的WS-Resource特性文檔說明與WSDL portType定義相關聯,以便用戶訪問有狀態資源的狀態信息。如圖6所示,portType「ConsumerLayerABBPortType」定義了允許用戶訪問定義的有狀態ConsumerLayerABBResource的狀態信息的10個操作的集合(getABBId、getABBName、getABBLayer、getABBState、getABBProtocol、getABBInputDataType、getABBOutputDataType、getABBIOType、getABBAnnotationURL、和getConsumerLayerABBType)。注意,操作getConsumerLayerABBType允許用戶獲取定義在ConsumerLayerABB中的新添加的特性ConsumerLayerABBType。
類似地,第三模塊ABB之一ConsumerABB的資源特性可以通過衡量ConsumerLayerABB的那些特性和添加特定資源特性來定義。圖7是根據本發明的另一個方面的、XML機制中的消費者ABB特性定義的分段700的示範性文本表示。圖7示出了ConsumerABB的資源特性。由於ConsumerABB是ConsumerLayerABB的子類,它自動繼承了定義在ConsumerLayerABB中的所有資源特性。如圖7所示,ConsumerABB的狀態包含兩個元素ConsumerLayerABB和添加的元素ConsumerType,該ConsumerType表示消費者的類型,可以是將臺式計算機用作瀏覽器的個體,將個人數字助理(PDA)或無線電話用作瀏覽器的個體,或者是程序。這個特性可以用於判定例如,生成HTML頁面,生成無線標記語言(WML)文檔,或生成像XML文檔那樣的明文文本文件的表達格式。ConsumerType可以與包含,例如,3個預定義值(Desktop、Personal Digital Assistant(PDA)/Wireless、和Program)的定義的類型consumerTypeEnumeration一起使用。應該注意到,本發明不局限於如上細述的確切示範性實施例,並且本領域的普通技術人員可以作出各種各樣的其它改變和修改。
此外,將ConsumerABB的WS-Resource特性文檔說明與WSDLportType定義相關聯,以便用戶訪問有狀態資源的狀態信息。圖8是根據本發明的另一個方面的、通過WSDL操作暴露的消費者ABB特性的示範性文本表示800。如圖8所示,portType「ConsumerABBPortType」定義了允許用戶訪問定義的有狀態ConsumerABBResource的狀態信息的11個操作的集合(getABBId、getABBName、getABBLayer、getABBState、getABBProtocol、getABBInputDataType、getABBOutputDataType、getABBIOType、getABBAnnotationURL、getConsumerLayerABBType、和getConsumerType)。注意,操作getConsumeType允許用戶獲得定義在ConsumerABB中的新添加的特性ConsumerType。
如上所述,我們詳細給出了如何與本發明的一個或多個實施例的在此的教導相結合使用ad hoc(特別)工業標準WSRF作為通用資源形式上為ABB建模。如上面的例子所示,可以將WSRF設想成全球資訊網服務描述語言(WSDL)與XML機制的組合。因此,例如,通過它的操作(使用WSDL)以及它的語義結構(使用XML機制)可能形式上暴露ABB。換句話說,每個ABB的接口可以以標準化方式通過它的數據結構和操作定義。其結果是,任何ABB都可以容易地相互交互和通信。應該注意到,可以利用其它技術為ABB建模。本領域的普通技術人員應該認識到,WSRF僅僅用作可以用於為ABB建模的示例技術。
如下的段落將描述用於新服務場景的ABB的配置框架。如果ABB是粗粒度的,由於這將降低靈活性,所以配置能力將不是非常有效。另一方面,如果ABB是細粒度的,如圖9所示,它們將變得更加靈活,因此可以根據指定規則進行配置。如圖9和圖10的討論中所述,這種配置可以以,例如,兩種方式進行處理。
圖9是例示根據本發明的另一個方面的、可以執行創建靜態模板的示範性方法的示範性系統的方框圖。在基於模板的配置手段中,用戶902可以根據服務請求場景選擇特定模板。系統將選擇與這個模板相關聯的所有規則和將ABB配置成支持這些規則。這要求創建場景模板和將它們存儲在庫904中以便在用戶需要它們時選擇該場景模板。例如,我們可以讓模板支持交互式語音響應(IVR)系統,讓另一種支持個人數字助理(PDA),和讓第三種支持全球資訊網入口(向用戶提供個性化能力的網站),原因在於每種模板具有它自己的特性和與之相關聯的規則。可以視消費者層用戶而定選擇適當模板。在圖9中,用戶902從模板庫904中選擇IVR模板906。這些模板的每一個都伴隨著預配置ABB。正如在圖9描繪的那樣,IVR模板906可以包括像高速緩存908、訪問控制910、和IVR變換912那樣的部件或ABB。如果用戶希望靈活性或定製,那麼,如下細述,配置動態模板是有利的。
圖10是例示根據本發明的另一個方面的、可以執行創建動態模板的示範性方法的示範性系統的方框圖。在動態模板創建中,用戶1002選擇某些特徵,而系統將確定適當規則和在運行時從模板庫1006中選擇相關和/或適當ABB。例如,用戶1002可以指定如下兩種特徵「數據是靜態的」(也就是說,在交互期間數據不改變),這暗示著需要高速緩存ABB;和不應該多次驗證用戶身份,這暗示著適當安全令牌機制和其它措施的使用。這些特徵在運行時期間用於配置適當ABB。在圖10中,舉例來說,用戶1002指定數據每天變化一次,和配置規則1004根據這個輸入而選擇高速緩存ABB。類似地,由於用戶已經指定了請求應用是基於PDA的,將PDA變換ABB填在(getpopulated with)模板上。將對適當模板的請求引導到包括帶有適當ABB 1008的模板的模板庫1006。為了完整起見,在圖10中描繪了包含部件或ABB的適當模板的例子,該部件或ABB包括高速緩存1010、訪問控制1012、和PDA變換1014。如果不需要多次驗證用戶身份,那麼,我們將需要使用,比方說,安全令牌的適當訪問控制機制。
根據如上所述的配置框架,可以創建架構模式實現框架。細粒度ABB將提供根據不同服務場景創建架構模式的靈活性。
如下所述,我們將為軟體解決方案中的表達模塊指定一組支持ABB的識別和管理的服務實現的示範性架構判定。這些架構判定文檔評估包括系統的結構、功能的提供和分配、系統的上下文適當性、和對標準的遵守性的架構的各個方面。通過為解決方案中的表達模塊定義架構判定來啟用架構設計服務也是本發明的另一個方面。
當設計示範性消費者模塊時,建造人員需要對SOA解決方案作出關鍵性的架構判定。這個部分將描述如在表1中總結的那樣,與標準格式的消費者模塊有關的16種典型架構判定的示範性集合。應該注意到,特定的應用可能需要進一步的架構判定。這裡的描述用作模板和例子,和使本領域的普通技術人員可以進一步提取判定點。
表1.消費者模塊的示範性架構判定 架構判定1ABB的標識 架構判定2消費者模塊內的ABB之間的連接 架構判定3ABB的接口的配置 架構判定4ABB與其它模塊的交互模式 架構判定5有狀態對無狀態ABB 架構判定6狀態管理的粒度實現 架構判定7聯合對個別狀態管理 架構判定8對ABB的訪問控制的實現 架構判定9工作流性能管理 架構判定10異常情況處理管理 架構判定11消費者類型 架構判定12表達模型(MVC模型、portlet技術和Aiax技術) 架構判定13ABB交互的消息交換 架構判定14表達變換 架構判定15與工作流過程模塊的連接 架構判定16ABB的生命周期管理 圖11是例示根據本發明的一個實施例的、根據細粒度架構構建模塊(ABB)表示和配置靈活和可擴展的表達模式的方法的流程圖。步驟1102包括定義ABB。步驟1104包括以統一方式為ABB建模。步驟1106包括利用ABB創建至少一個模板,其中,至少一個模板包括預配置靜態特徵和用戶指定的服務特徵中的至少一個。
舉例來說和非局限性地,定義ABB 1102可以包括定義如下ABB消費者、表達(視圖)、表達控制器、消費者概況、訪問控制、格式變換、配置規則、和高速緩存。定義ABB 1102可以進一步包括將表達模塊的責任劃分成分責任區。分責任區可以具有,例如,相關銜接功能的邏輯分組,和分責任區也可以被當作ABB來對待。此外,ABB定義可以包括定義與ABB相關聯的屬性。舉例來說,這些屬性可以包括標識符(ID)屬性(例如,ABB Id)、類型屬性(例如,ABB類型)、狀態屬性(例如,ABB狀態)、協議屬性(例如,ABB協議)、和輸入類型和輸出類型屬性(例如,ABB輸入類型和輸出類型)的至少一種。
以統一方式為ABB建模1104可以包括利用統一框架為每個ABB建模。統一框架可以促進每個ABB的統一接口描述的開發,從而在接口描述基於工業標準時,允許以標準化方式發現和構成ABB來作為接口描述。以統一方式為ABB建模1104還可以包括定義ABB的操作,舉例來說和非局限性地,這些操作包括標識操作(例如,getABBId)、名稱操作(例如,getABBName)、層操作(例如,getABBLayer)、狀態操作(例如,getABBState)、協議操作(例如,getABBProtocol)、輸入數據類型操作(例如,getABBInputDataType)、輸出數據類型操作(例如,getABBOutputDataType)、輸入和/輸出類型操作(例如,getABBIOType)、注釋統一資源定位符(URL)操作(例如,getABBAnnotationURL)、消費者層類型操作(例如,getConsumerLayerABBType)、和消費者類型操作(例如,getConsumerType)中的至少一種。
利用ABB創建至少一個模板1106可以包括利用ABB為特定服務場景預配置靜態模板。ABB接口和屬性有助於至少一個模板的創建。用戶根據特定服務場景對預配置的模板作出選擇。本發明的這個方面也被稱為靜態模板配置。首先,按消費者類型建立模板。以後,可以添加特定消費者類型下的不同變體。
利用ABB創建至少一個模板1106還可以包括根據用戶指定特徵,例如,ABB屬性,選擇適當ABB。適當ABB是根據屬性選擇的,並且是在運行時期間配置的。本發明的這個方面也被稱為動態模板配置,它具有靈活性和可以支持在運行時期間配置的不同變體。
圖12是例示根據本發明的一個實施例的、設計和管理細粒度ABB的方法的流程圖。步驟1202包括識別ABB,以便構成用於在解決方案中促進消費者和其它單元之間的表達和交互的架構。步驟1204包括分析ABB,以便監視各個ABB使用的計算資源。步驟1206包括根據(i)有關實體的請求和(ii)可用資源而選擇ABB的許多運行實例。步驟1208包括管理ABB的生命周期。一種根據本發明的一個實施例的、用於設計和管理細粒度ABB的方法可選地包括步驟1210,即,啟用狀態管理的粒度實現。該方法還可選地包括步驟1212,即,處理異常情況。
管理ABB的生命周期1208可以包括定義包括ABB的交互模式的表達架構模板,根據一種或多種服務場景選擇表達架構模板,配置ABB的接口,應用ABB與其它模塊的交互模式,和啟用對ABB的訪問控制。
可以將利用專用硬體、通用處理器、軟體、或它們的組合的各種技術用於實現本發明。本發明的至少一個實施例可以以計算機產品的形式實現,該計算機產品包括帶有執行所示的方法步驟的計算機可用程序代碼的計算機可用媒體。而且,本發明的至少一個實施例可以以包括存儲器和至少一個處理器的裝置的形式實現,該至少一個處理器與存儲器耦接和用於執行這些示範性方法步驟。
當前,可以認為,優選的實現基本上都利用運行在通用計算機或工作站上的軟體。參照圖13,這樣的實現可以應用,例如,處理器1302、存儲器1304、和由,例如,顯示器1306和鍵盤1308形成的輸入和/或輸出接口。這裡使用的術語「處理器」旨在包括像包括CPU(中央處理單元)的那一種和/或處理電路的其它形式那樣的任何處理設備。並且,術語「處理器」可以指不止一個單獨處理器。術語「存儲器」旨在包括像RAM(隨機存取存儲器)、ROM(只讀存儲器)、固定存儲設備(例如,硬碟)、可換式存儲設備(例如,軟盤)、閃速存儲器等那樣,與處理器或CPU相關聯的存儲器。另外,這裡使用的短語「輸入和/或輸出接口」旨在包括,將數據輸入處理單元的一種或多種機構(例如,滑鼠)、和提供與處理單元相關聯的結果的一種或多種機構(例如,印表機)。處理器1302、存儲器1304、和像顯示器1306和鍵盤1308那樣的輸入和/或輸出接口可以通過,例如,作為數據處理單元1312的一部分的總線1310互連。也可以將通過,例如,總線1310的適當互連提供給可以提供與計算機網絡的接口、像網卡那樣的網絡接口1314、和可以提供與媒體1318的接口、像軟盤或CD-ROM驅動器那樣的媒體接口1316。
於是,包括執行如本文所述的本發明的方法的指令或代碼的計算機軟體可以存儲在一個或多個相關存儲設備(例如,ROM、固定或可換式存儲器)中,並且,當準備使用時,部分或全部裝入(例如,RAM中)和被CPU執行。這樣的軟體可以包括,但不局限於,固件、常駐軟體、微碼等。
而且,本發明可以採取可從計算機可用或計算機可讀媒體(例如,媒體1318)訪問的電腦程式產品的形式,該計算機可用或計算機可讀媒體提供可供計算機或任何指令執行系統使用或與計算機或任何指令執行系統結合在一起使用的程序代碼。對於本說明書來說,計算機可用或計算機可讀媒體可以是供指令執行系統、裝置、或設備使用或與指令執行系統、裝置、或設備結合在一起使用的任何裝置。
媒體可以是電、磁、光、電磁、紅外、半導體系統(裝置或設備)或傳播媒體。計算機可讀媒體的例子包括半導體或固態存儲器(例如,存儲器1304)、磁帶、可換式計算機軟盤(例如,媒體1318)、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、剛性磁碟和光碟。光碟的當前例子包括只讀光碟存儲器(CD-ROM)、和可讀寫光碟(CD-R/W)和DVD(數字多功能盤)。
適用於存儲和/或執行程序代碼的數據處理系統包括通過系統總線1310直接或間接與存儲單元1304耦接的至少一個處理器1302。存儲單元可以包括在實際執行程序代碼期間應用的本地存儲器、大容量存儲器、和提供至少一些程序代碼的臨時存儲,以便減少在執行期間必須從大容量存儲器中檢索代碼的次數的高速緩衝存儲器。
輸入和/或輸出或I/O設備(包括,但不局限於,鍵盤1308、顯示器1306、定位設備等)可以直接(像通過總線1310那樣)或通過中介I/O控制器(為了簡潔起見省略了)與系統耦接。
像網絡接口1314那樣的網絡適配器也可以與系統耦接,使數據處理系統變成通過中介私有或公共網絡與其它數據處理系統、遠程印表機或存儲設備耦接。數據機、電纜數據機和乙太網網卡僅僅是少數幾種當前可用類型的網絡適配器。
無論如何都應該明白,這裡例示的部件可以以硬體、軟體、或它們的組合,例如,專用集成電路(ASICS)、功能電路、帶有相關存儲器的一個或多個適當編程的通用數字計算機等的各種形式實現。在已知這裡提供的本發明的教導的情況下,本領域的普通技術人員將能夠設想出本發明的這些部件的其它實現。
本發明的至少一個實施例可以提供像支持表達模塊的適應能力那樣的一種或多種有益效果。
儘管這裡參照附圖描述了本發明的例示性實施例,但應該明白,本發明不局限於那些確切實施例,本領域的普通技術人員可以不偏離本發明的範圍或精神地作出各種其它改變和修正。
權利要求
1.一種根據細粒度架構構建模塊(ABB)表示和配置靈活和可擴展的表達模式的方法,包含如下步驟
定義ABB;
以統一方式為所述ABB建模;以及
利用所述ABB創建至少一個模板,其中,所述至少一個模板包含預配置的靜態特徵和用戶指定的服務特徵中的至少一個。
2.根據權利要求1所述的方法,其中,所述定義ABB的步驟包含如下步驟
定義消費者ABB和表達控制器ABB。
3.根據權利要求1所述的方法,其中,所述定義ABB的步驟包含步驟
定義表達ABB、消費者概況ABB、訪問控制ABB、格式變換ABB、配置規則ABB、和高速緩存ABB。
4.根據權利要求1所述的方法,其中,所述定義ABB的步驟包含如下步驟
將表達模塊的責任劃分成分責任區。
5.根據權利要求4所述的方法,其中
所述分責任區包含相關銜接功能的邏輯分組;和
所述分責任區被當作ABB來對待。
6.根據權利要求1所述的方法,其中,所述定義ABB的步驟包含如下步驟
定義與ABB相關聯的屬性,其中,所述屬性包含標識符(ID)屬性、類型屬性、狀態屬性、協議屬性、和輸入類型和輸出類型屬性中的至少一種。
7.根據權利要求1所述的方法,其中,所述以統一方式為ABB建模的步驟包括如下步驟
利用統一框架為所述ABB建模。
8.根據權利要求7所述的方法,其中,所述統一框架促進所述ABB的統一接口描述的開發。
9.根據權利要求1所述的方法,其中,所述以統一方式為ABB建模的步驟包含如下步驟
定義所述ABB的操作,其中,所述操作包括標識操作、名稱操作、層操作、狀態操作、協議操作、輸入數據類型操作、輸出數據類型操作、輸入和/或輸出類型操作、注釋統一資源定位符(URL)操作、消費者層類型操作、和消費者類型操作中的至少一種。
10.根據權利要求1所述的方法,其中,所述創建至少一個模板的步驟包含如下步驟利用ABB為特定服務場景預配置靜態模板。
11.根據權利要求1所述的方法,其中,所述創建至少一個模板的步驟包含如下步驟
根據所述用戶指定的服務特徵選擇適當的ABB;以及
在運行時期間配置所述適當的ABB。
12.一種設計和管理細粒度架構構建模塊(ABB)的方法,包含如下步驟
識別ABB,以便構成用於在解決方案中促進消費者和其它單元之間的表達和交互的架構;
分析所述ABB,以便監視各個ABB所使用的計算資源;
根據(i)有關實體的請求和(ii)可用資源而選擇所述ABB的多個運行實例;以及
管理ABB的生命周期。
13.根據權利要求12所述的方法,其中,所述管理ABB的生命周期的步驟包括如下步驟
定義表達架構模板;
根據服務場景選擇表達架構模板;
配置所述ABB的接口;
應用所述ABB與其它模塊的交互模式;和
啟用對所述ABB的訪問控制。
14.根據權利要求12所述的方法,進一步包括如下步驟
啟用狀態管理的粒度實現;和
處理異常情況。
15.一種根據細粒度架構構建模塊(ABB)表示和配置靈活和可擴展的表達模式的裝置,包括
存儲器;和
與所述存儲器耦接和起如下作用的至少一個處理器
定義ABB;
以統一方式為所述ABB建模;和
利用所述ABB創建至少一個模板,其中,所述至少一個模板包含預配置的靜態特徵和用戶指定的服務特徵中的至少一個。
16.根據權利要求15所述的裝置,其中,所述至少一個處理器用於通過定義消費者ABB和表達控制器ABB而定義ABB。
17.根據權利要求15所述的裝置,其中,所述至少一個處理器用於通過定義表達ABB、消費者概況ABB、訪問控制ABB、格式變換ABB、配置規則ABB、和高速緩存ABB而定義ABB。
18.根據權利要求15所述的裝置,其中,所述至少一個處理器用於通過將表達模塊的責任劃分成分責任區而定義ABB。
19.根據權利要求18所述的裝置,其中
所述分責任區包括相關銜接功能的邏輯分組;並且
所述分責任區被當作ABB來對待。
20.根據權利要求15所述的裝置,其中,所述至少一個處理器用於通過利用統一框架來為ABB建模而以統一方式為所述ABB建模。
21.根據權利要求20所述的裝置,其中,所述統一框架促進所述ABB的統一接口描述的開發。
22.根據權利要求15所述的裝置,其中,所述至少一個處理器用於通過利用ABB為特定服務場景預配置靜態模板而創建至少一個模板。
23.根據權利要求15所述的裝置,其中,所述至少一個處理器用於通過如下步驟創建至少一個模板
根據所述用戶指定的服務特徵而選擇適當的ABB;以及
在運行時期間配置所述適當的ABB。
24.一種包括具有計算機可用程序代碼的計算機可用媒體的電腦程式產品,該計算機可用程序代碼用於根據細粒度架構構建模塊(ABB)表示和配置靈活和可擴展的表達模式,所述電腦程式產品包括
用於實現根據權利要求1-14中的任一個的方法中的步驟的計算機可用程序代碼。
全文摘要
本發明提供了根據細粒度架構構建模塊(ABB)表示和配置靈活和可擴展的表達模式的技術。該技術包括定義ABB,以統一方式為ABB建模,和利用ABB創建至少一個模板,其中,至少一個模板包括預配置的靜態特徵和用戶指定的服務特徵中的至少一個。在本發明的實施例中,用於設計和管理細粒度ABB的示範性方法可以包括識別ABB以便構成用於在解決方案中促進消費者和其它單元之間的表達和交互的架構,分析ABB以便監視各個ABB使用的計算資源,根據(i)有關實體的請求和(ii)可用資源而選擇ABB的多個運行實例,和管理ABB的生命周期。
文檔編號G06Q10/00GK101174220SQ20071018511
公開日2008年5月7日 申請日期2007年10月30日 優先權日2006年10月31日
發明者張良傑, 阿布杜爾·阿拉姆, 嘉 張 申請人:國際商業機器公司