專利名稱::用于管理資源的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及編程模型,更具體地涉及用于松散耦合應(yīng)用的面向數(shù)據(jù)的編程模型的系統(tǒng)和方法。
背景技術(shù):
:雖然走向松散耦合網(wǎng)絡(luò)互連軟件的趨勢是必然的,但是編程模型和運行時間系統(tǒng)主要設(shè)計用于建立統(tǒng)一的、獨立的應(yīng)用。雖然web已經(jīng)大大增加了分發(fā)的規(guī)模,但當前編程和部署web應(yīng)用的方式仍然與二十世紀六十年代的大型機應(yīng)用沒有顯著差別。在編程模型/運行時間之間的失配以及網(wǎng)絡(luò)互連軟件的優(yōu)勢正在變成及時產(chǎn)生和構(gòu)成可靠應(yīng)用軟件的主要障礙——并且這種失配是開發(fā)者對當前中間件、編程模型和開發(fā)工具的復(fù)雜性和晦澀難懂所表達的諸多不滿的焦點。
發(fā)明內(nèi)容一種用于管理資源的系統(tǒng)和方法,包括提供包含相關(guān)數(shù)據(jù)的可變實體(mutableentity),和監(jiān)聽該相關(guān)數(shù)據(jù)中的變化。才艮據(jù)相關(guān)數(shù)據(jù)內(nèi)的變化觸發(fā)第一構(gòu)造(construct)以更新可變實體。根據(jù)已更新可變實體,觸發(fā)第二構(gòu)造和第三構(gòu)造中至少之一以分別地建立新的可變實體和更新數(shù)據(jù)關(guān)系。當前實施例包括單個聲明的、以數(shù)據(jù)為中心的、由更新驅(qū)動的、分布式的語言以支持企業(yè)、web和客戶機應(yīng)用。根據(jù)本發(fā)明原理的編程模型通過消除多個冗余抽象來降低復(fù)雜性,通過便于應(yīng)用發(fā)展來降低復(fù)雜性,和通過便于靈活部署和分發(fā)來降低復(fù)雜性。提出一種并不如同傳統(tǒng)語言那樣嚴格地施加封裝的對人工制品描述編程的方法。這在不需要重新分解(refactoring)或者重新設(shè)計的情況下提高了隨后再使用的靈活性。在一個實施例中,使用資源描述框架(RDF)。公開了用于跨組織構(gòu)成和組件伴隨分發(fā)的聲明性、由數(shù)據(jù)驅(qū)動的編程模型。所述語言特征支持設(shè)備適應(yīng),并且支持在商業(yè)對象之中以及在商業(yè)對象和用戶接口(UI)之間的轉(zhuǎn)換和映射。提供一種用于數(shù)據(jù)模型的基于資源描述框架(RDF)使用的編程模型(區(qū)別于用于支持信息存在論的RDF的正常角色),其建立在包括資源概念、三元組、屬性、類、子屬性和子類的RDF的核心子集上,其還通過使用URL識別的RDF資源(區(qū)別于使用更通用的URI識別資源的RDF)支持分布式數(shù)據(jù)模型。數(shù)據(jù)模型支持多個和動態(tài)分類資源可以包括多個類,可以在運行時間以編程方式改變資源的一個或多個分類。該數(shù)據(jù)模型支持將多個和動態(tài)分類用于程序和過程的靈活跨組織構(gòu)成。該數(shù)據(jù)模型還支持將多個和動態(tài)分類用于用戶接口定義,并支持將多個和動態(tài)分類用于i殳備適應(yīng)。編程模型建立在具有可被讀取的值的可變實體的概念上,其值通過更新隨時間改變。通過將具有相關(guān)值的資源的概念引入RDF以模擬可變實體,編程模型使用RDF模擬可變實體。編程模型具有用RDF節(jié)點樹表示的資源R的相關(guān)值和以R為根的RDF三元組。編程模型具有代表資源值的三元組,其不同于并不代表資源值的三元組,因而將RDF圖劃分成兩組代表一些資源的樹型結(jié)構(gòu)值的組;和連接圖(graph)結(jié)構(gòu)內(nèi)的資源的組。該包括R值的三元組與其它圖三元組的不同之處在于作為區(qū)別屬性的子屬性的斷定(predicate)。用于若干數(shù)據(jù)模型和相關(guān)執(zhí)行模型的統(tǒng)一數(shù)據(jù)模型共同使用包括ER、UML、關(guān)系型、XML。RDF可以是用于統(tǒng)一數(shù)據(jù)模型的基礎(chǔ).以數(shù)據(jù)為中心的執(zhí)行模型,其中可以用程序運行時間狀態(tài)的變化統(tǒng)一地描述編程模型的各方面(包括封裝、構(gòu)成、過程描述、異步、用戶交互、分發(fā))。程序運行時間狀態(tài)包括在三元組存儲中包括的一組資源和三元組。包括諸如〈bind〉的構(gòu)造,其明確地規(guī)定一個可變實體值響應(yīng)于其它可變實體值的變化如何變化??梢允褂肦DF模擬可變實體。編程構(gòu)造明確地向編程者提供對其輸入數(shù)據(jù)的舊值和新值的訪問。編程構(gòu)造明確地規(guī)定一個可變實體值響應(yīng)于其它可變實體值的變化如何變化,并允許編程者聲明將是主動(觸發(fā)〈bind〉的執(zhí)行)或者被動(并不觸發(fā)<1)111(1>的執(zhí)行,但是可以用作其輸入)的每個輸入。編程模型可以包括XQuery,用作從輸入值計算輸出值的語言。編程模型提供明確地規(guī)定基于當前實體值建立新可變實體的構(gòu)造。編程模型可以提供通過基于當前實體值建立和破壞三元組來明確地使新的和現(xiàn)有的可變實體相關(guān)的構(gòu)造。編程模型可以使用RDF資源表示可變實體。編程模型提供根據(jù)當前實體值明確地改變新的和現(xiàn)有的可變實體的分類的構(gòu)造。編程模型可以使用用實體更新定義的執(zhí)行模型。更新是將值分配給實體。諸如用戶輸入等每個外部事件可以在編程模型內(nèi)表示為對可變實體的更新。每個更新可以明確地觸發(fā)對其它實體的其它更新。編程模型可以合并在任意圖上操作的用于識別其值明確地相關(guān)的特定實體的路徑表達式??梢詫DF數(shù)據(jù)結(jié)構(gòu)用于建立可在多個計算節(jié)點之間分配的應(yīng)用??梢栽诙鄠€計算節(jié)點之間分配執(zhí)行。聲明性的編程模型包括數(shù)據(jù)結(jié)構(gòu)的運行時間分發(fā),并且與數(shù)據(jù)結(jié)構(gòu)和執(zhí)行本身的描述無關(guān)地表示執(zhí)行??梢詧?zhí)行級聯(lián)更新??梢詫⒅T如HTTPPUT或POST等web協(xié)議用于編程模型。編程模型支持使用統(tǒng)一遞歸MVC模式在一系列抽象等級上的用戶接口或應(yīng)用"前端,,的描述,允許開發(fā)者通過連續(xù)等級的更具體描述精煉抽象用戶接口描述。用RDF資源表示MVC模式實例的模型。MVC模式實例的視圖(view)是一組與模型相關(guān)的資源。MVC控制器是響應(yīng)于對視圖資源的更新明確地更新模型資源(反之亦然)的一組構(gòu)造。一種用于定義與類相關(guān)的結(jié)構(gòu)和功能的方法,包括支持靈活多組織構(gòu)成和應(yīng)用適應(yīng)。編程模型使用多個分類支持允許不同組織以合成方式獨立地規(guī)定應(yīng)用行為,使用多個分類支持用可分類實體表示的抽象(abstraction)的靈活分解,和支持使用多個分類來支持通過允許每個開發(fā)組應(yīng)用分類來影響開發(fā)組目標的跨組織開發(fā)和構(gòu)成。動態(tài)分類可以允許在程序人造制品的生命周期內(nèi)的任意點上指定由每個開發(fā)組應(yīng)用的分類,包括在由其生產(chǎn)者首次定義該人造制品時;在構(gòu)成兩個開發(fā)組織的程序人造制品時;或者在運行時間。編程模型支持可構(gòu)成的類定義,其中可以在分離的程序人造制品內(nèi)獨立地規(guī)定類定義的所有方面。編程模型使用可構(gòu)成的類定義以允許由一個組織提供的應(yīng)用適應(yīng)于由不同組織使用。編程模型允許一個組織將新元素插入由另一組織定義的用戶接口,允許一個組織將新元素插入由另一組織定義的數(shù)據(jù)結(jié)構(gòu),和允許一個組織修改由另一組織定義的過程。編程模型通過與在統(tǒng)一遞歸MVC樹的任意等級上的模型進行對接,支持靈活的設(shè)備適應(yīng),從而允許通過公共的一組語言特征實現(xiàn)一系列設(shè)備適應(yīng)策略。一種用于在編程環(huán)境內(nèi)管理資源的方法,包括提供包括含有三元組的相關(guān)數(shù)據(jù)的可變實體;監(jiān)聽在相關(guān)數(shù)據(jù)內(nèi)的變化;和4艮據(jù)相關(guān)數(shù)據(jù)內(nèi)的變化觸發(fā)第一構(gòu)造以更新可變實體。一種用于在編程環(huán)境內(nèi)管理資源的方法,包括給可變實體提供具有包括三元組的相關(guān)數(shù)據(jù)的類定義;和根據(jù)錨定構(gòu)造,提供允許對要從多個獨立規(guī)定的源構(gòu)成的類進行完整定義的類定義。一種用于管理資源的方法,包括使用資源類在多個抽象等級上規(guī)定實體構(gòu)成,其中該規(guī)定步驟包括使用包括模型、視圖和控制器構(gòu)造中的一個或多個的遞歸模型視圖控制器(MVC)模式以定義每個抽象等級,其中模型、視圖和控制器構(gòu)造中每個均包括一組包含三元組的資源;和通過使用控制器構(gòu)造實施更新,響應(yīng)于在任一視圖內(nèi)的更新來更新模型。根據(jù)將結(jié)合附圖閱讀其說明性實施例的下述詳細描述,這些和其它特征和優(yōu)點將變得顯而易見。本公開將參考附圖在下述優(yōu)選實施例的描述中提供細節(jié),在附圖中圖1圖示根據(jù)一種說明性實施例的兩個XML文檔和用于兩個資源節(jié)點的相應(yīng)圖示;圖2是圖示根據(jù)一種說明性實施例的執(zhí)行模型的方框圖/流程圖;圖3圖示用于執(zhí)行一種說明性實施例的例子的表格、圖和相應(yīng)代碼;圖4圖示根據(jù)一種說明性實施例的具有代碼的構(gòu)成模型和相應(yīng)圖示;圖5圖示根據(jù)一種說明性實施例的用于可以對資源進行多組織變化的例子的表格、圖和相應(yīng)代碼;圖6圖示根據(jù)設(shè)備適應(yīng)實施例的用于使用不同設(shè)備搜索標題的簡單頁面的表格和圖7是圖示根據(jù)一種說明性實施例的用于管理資源的系統(tǒng)/方法的方框圖/流程圖8是圖示根據(jù)另一說明性實施例的用于管理設(shè)備適應(yīng)資源的系統(tǒng)/方法的方框圖/流程圖9A和圖9B圖示根據(jù)本發(fā)明一個方面的綁定(bind)構(gòu)造;圖10圖示根據(jù)本發(fā)明一個方面的假定(let)構(gòu)造;和圖11圖示根據(jù)本發(fā)明一個方面的建立(create)構(gòu)造。具體實施例方式根據(jù)本發(fā)明的原理,提供徹底簡化的聲明性編程模型和運行時間,其明確地致力于建立和部署跨組織軟件作為web組件的構(gòu)成。此外,支持軟件開發(fā)的演變風格,允許快速應(yīng)用原型化,而且支持將初始原型逐漸優(yōu)化成穩(wěn)定優(yōu)點。將描述一組簡化和統(tǒng)一的語言特征,解決端到端應(yīng)用設(shè)計,包括商業(yè)對象、用戶交互和"最后一英里"問題(例如設(shè)備適應(yīng)以及多模式和多設(shè)備交互)。根據(jù)本發(fā)明的實施例,可以實現(xiàn)下述優(yōu)點。提供單個聲明性語言以支持企業(yè)、web和客戶機應(yīng)用,從而降低來自多個冗余抽象的復(fù)雜性。根據(jù)本發(fā)明原理使用的對于編程模型的基于資源描述框架(RDF)的方法并不象在傳統(tǒng)面向?qū)ο?OO)語言中那樣嚴格施加封裝。使用聲明性、由數(shù)據(jù)驅(qū)動的編程模型而不使用程序或面向?qū)ο蟮恼Z言,跨組織構(gòu)成和組件的伴隨分布更加容易。處理多個終端用戶交互設(shè)備的約束和多樣性長時間以來是用戶接口(UI)框架的棘手問題,無論是否基于web。根據(jù)本發(fā)明的原理,對該問題的一個貢獻是將該問題視為一組統(tǒng)一概念的再使用,而不是作為專門用于解決此"最后一英里"問題的特設(shè)框架(如同過去常見的情況)。我們將應(yīng)用引入的相同語言特征以支持在商業(yè)對象之間以及在商業(yè)對象和UI之間的轉(zhuǎn)換和映射,從而也支持設(shè)備適應(yīng)。本發(fā)明的實施例可以采取全部硬件實施例、全部軟件實施例或者同時包括硬件和軟件單元實施例的形式。在優(yōu)選實施例中,用包括但并不限制于固件、駐留軟件和微代碼等的軟件實現(xiàn)本發(fā)明。此外,本發(fā)明可以采取可從計算機可用或計算機可讀介質(zhì)訪問的計算機程序產(chǎn)品的形式,所述介質(zhì)提供用于由計算機或任何指令執(zhí)行系統(tǒng)使用或與之結(jié)合的程序代碼。為了描述的目的,計算機可用或計算機可讀介質(zhì)可以是可包括、存儲、傳送、傳播或傳輸程序以由指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或與之結(jié)合的任意設(shè)備。介質(zhì)可以是電子、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計算機可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲器、磁帶、可拆除計算機盤、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、剛性磁盤和光盤。當前光盤的例子包括壓縮盤-只讀存儲器(CD-ROM)、壓縮盤-讀/寫(CD-R/W)和DVD。適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)可以包括通過系統(tǒng)總線直接或間接地耦合到存儲單元的至少一個處理器的程序代碼。存儲單元可以包括在程序代碼實際執(zhí)行過程中使用的本地存儲器、大容量存儲和提供至少一些程序代碼的臨時存儲以降低在執(zhí)行過程中從大容量存儲器中抽象代碼的次數(shù)的超高速緩存。輸入/輸出或I/O設(shè)備(包括但并不限制于鍵盤、顯示器、指示設(shè)備等)可以直接地或者通過中間I/O控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器還可以耦合到系統(tǒng)以支持數(shù)據(jù)處理系統(tǒng)變成通過中間專用或公共網(wǎng)絡(luò)耦合到其它數(shù)據(jù)處理系統(tǒng)或遠程打印機或存儲設(shè)備。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是若干當前可用類型的網(wǎng)絡(luò)適配器。根據(jù)本發(fā)明原理的數(shù)據(jù)模型建立在RDF的核心子集上。使用資源、三元組、屬性和類的關(guān)鍵RDF概念。諸如子屬性和子類的RDF概念也起作用。本發(fā)明的實施例使用用URL識別的RDF資源以建立基礎(chǔ)分配的數(shù)據(jù)模型。RDF支持多個和動態(tài)分類資源可以具有多個類,資源的一個或多個分類可以在運行時間以編程方式改變。這些特征起作用,用于諸如程序和過程的靈活跨組織構(gòu)成、用戶接口風格化和設(shè)備適應(yīng)等多種目的。執(zhí)行模型經(jīng)常集中于值可被讀取的可變實體的概念,并且其值通過被更新隨著時間變化。根據(jù)本發(fā)明原理的數(shù)據(jù)模型建立在RDF模型上以通過引入具有相關(guān)值的資源概念來支持這種讀取/更新執(zhí)行模型,從而模擬(model)可變實體。用節(jié)點樹和以R為根的三元組代表資源R的值。通過作為根據(jù)一個特征定義的區(qū)分屬性的子屬性c:value的斷定來區(qū)分包括R值的三元組和其它圖三元組。因而,將圖三元組劃分成兩組代表特定資源的樹結(jié)構(gòu)值的組;和在圖結(jié)構(gòu)內(nèi)連接資源的組。統(tǒng)一數(shù)據(jù)模型本發(fā)明的實施例建立在RDF上以提供統(tǒng)一常用的若干數(shù)據(jù)模型和相關(guān)執(zhí)行模型的數(shù)據(jù)模型。下表描述在本發(fā)明概念和RDF概念之間的映射和若干常用數(shù)據(jù)模型中的每個。ii表l<table>tableseeoriginaldocumentpage12</column></row><table>XML數(shù)據(jù)根據(jù)本發(fā)明的原理,可以將與特定資源關(guān)聯(lián)的值樹視為XML文檔,使用與RDF的RDF/XML序列化一致的映射。在一個實施例中,資源的統(tǒng)一資源標識符(URI)是統(tǒng)一資源定位器(URL),從而可以使用帶有文本/XML消息體的HTTPGET和PUT操作讀取或更新代表資源值的XML文檔。現(xiàn)在參考附圖,其中相同數(shù)字代表一開始與圖1相同或類似的單元,說明性地圖示關(guān)系數(shù)據(jù)模型4。關(guān)系數(shù)據(jù)模型4說明性地包括XML文檔〈PERSON^0及其表示12,并說明性地圖示XML文檔14〈COMPANY〉及其表示16。圖1中的方框代表資源節(jié)點。在圖1中連接方框的直線代表三元組。資源可以包括三元組。粗線是形成資源值樹的三元組。資源節(jié)點的一個或多個類24在節(jié)點上方示出。關(guān)系數(shù)據(jù)數(shù)據(jù)庫的每行20對應(yīng)于其值是該行的列22的資源。更新行對應(yīng)于更新對應(yīng)資源的值樹。這在下面的端到端實例中圖示。根據(jù)資源圖的關(guān)系或特征可以確定與構(gòu)造(例如bid構(gòu)造)相關(guān)的數(shù)據(jù)。執(zhí)行模型本發(fā)明原理包括用于建立反應(yīng)系統(tǒng)的編程模型。因而,根據(jù)本發(fā)明的實施例的執(zhí)行模型定義響應(yīng)于外部事件(如用戶輸入、來自外部系統(tǒng)的消息)或者異步內(nèi)部事件的出現(xiàn),程序的運行時間狀態(tài)如何變化。本執(zhí)行模型是以數(shù)據(jù)為中心的,意味著根據(jù)程序運行時間狀態(tài)的變化來描述執(zhí)行模型的所有方面。將參考圖2更詳細地解釋執(zhí)行模型。參見圖2,方框圖/流程示根據(jù)一種說明性實施例的模型執(zhí)行系統(tǒng)/方法50。一個或多個資源58包括可以在三元組56內(nèi)連接或關(guān)聯(lián)的數(shù)據(jù)52。在系統(tǒng)內(nèi)保存數(shù)據(jù)58或用于識別數(shù)據(jù)的信息(例如統(tǒng)一資源標識符(URI)54,其命名對資源58分類的類72和命名對三元組70分類的屬性70)。系統(tǒng)通過識別內(nèi)容與先前存儲的內(nèi)容來監(jiān)聽數(shù)據(jù)52(或54)中的變化。這用"包含"80表示。"包含"操作集合與一個或多個綁定60相關(guān)的數(shù)據(jù)變化。例如,如果給定綁定敏感于特定三元組(56),在該三元組的數(shù)據(jù)(52)內(nèi)的變化將導(dǎo)致觸發(fā)器63??梢酝ㄟ^在RDF子樹內(nèi)通過"包含"或者后代"包含,,三元組鏈接到的所有三元組識別觸發(fā)綁定的相關(guān)數(shù)據(jù)。如果觀察到與綁定相關(guān)的異步資源更新,則綁定60執(zhí)行根據(jù)數(shù)據(jù)(52)變化來更新/建立65資源58。變化的數(shù)據(jù)類型和種類觸發(fā)了執(zhí)行的綁定或綁定組。以相關(guān)性順序執(zhí)行綁定構(gòu)造60。這意味著所執(zhí)行的第一綁定60是不取決于其它綁定執(zhí)行的綁定,繼之以具有相關(guān)性(當通過執(zhí)行其他綁定使得相關(guān)性可用時)的綁定。根據(jù)來自綁定組件60的更新,觸發(fā)67建立構(gòu)造62并建立69新資源(如果需要)。新資源(58)可以包括由執(zhí)行綁定60生成的更新。類似地,如果需要,觸發(fā)71假定構(gòu)造64以建立新三元組56。新三元組(56)可以包括在舊數(shù)據(jù)或新數(shù)據(jù)(52)之間新的關(guān)聯(lián)。綁定構(gòu)造60、建立構(gòu)造62和假定構(gòu)造64可以包括在相同單元68或組件內(nèi),其可以存儲或保存為獨立組件。根據(jù)更新資源可以重復(fù)地執(zhí)行建立和假定構(gòu)造以建立新資源和三元組。程序的運行時間狀態(tài)包括在三元組存儲內(nèi)包含的一組資源和三元組。本發(fā)明的實施例提供程序員用于明確地規(guī)定對運行時間狀態(tài)的更新的構(gòu)造(例如綁定、建立、假定)。<1)111(1>構(gòu)造使用例如XQuery作為功能值計算語言,明確地規(guī)定一個資源的值響應(yīng)于其它資源的值的變化會如何變化。不過,可以使用其它語言,例如JavascriptTM?!磂t〉和〈create〉構(gòu)造明確地規(guī)定新資源的建立、通過建立和破壞三元組使新的和現(xiàn)有的資源相關(guān)、以及改變新的和現(xiàn)有的資源的分類,所有這些都基于當前的資源值。通過更新驅(qū)動執(zhí)行。更新是將值分配給資源。將諸如用戶輸入等的每個外部事件反映為初始更新。響應(yīng)于初始更新,程序執(zhí)行一執(zhí)行循環(huán),從而監(jiān)聽變化。執(zhí)行循環(huán)執(zhí)行隨后更新的級聯(lián),如由程序的<1)^1(1>構(gòu)造明確指示的。在執(zhí)行由〈bin(^構(gòu)造指示的資源值更新之后,該程序建立新的資源、資源關(guān)系和分類,如由〈let〉和〈create〉構(gòu)造明確指示的。在任一給定執(zhí)行循環(huán)過程中,在已經(jīng)更新了對所述綁定的所有輸入資源之后,通過<1)111€1>構(gòu)造的執(zhí)行恰好一次更新將要更新的每個資源。因而,每個資源具有明確定義的舊值,它是在執(zhí)行周期開始之前的值;和新值,它是在執(zhí)行周期完成之后的值。當<1)11^>構(gòu)造執(zhí)行時,它能夠訪問其輸入資源的舊值和新值??梢岳檬褂眯轮档慕壎▉砟M類似約束的更新,例如保持數(shù)據(jù)或表示視圖與正在查看的數(shù)據(jù)同步??梢岳檬褂门f值的綁定模擬非等冪運算,例如添加到總數(shù)、將項目附加到列表或者將記錄插入數(shù)據(jù)庫。根據(jù)本發(fā)明的原理,路徑表達式在語言中起關(guān)鍵作用,例如以便識別其值通過<1)111(1>構(gòu)造明確地相關(guān)的特定資源。路徑表達式是用于通過RDF三元組從一個資源導(dǎo)航到一個或多個其它資源的公式。路徑表達式基于XPath表達式,但是根據(jù)本發(fā)明的原理,使XPath—般化,以允許通過使用上述RDF和XML之間的映射在任意RDF圖上進行導(dǎo)航。參見圖3,說明性的端到端實例示出圖100、說明性的表格101和對應(yīng)編程代碼110以說明根據(jù)本發(fā)明原理的概念。下述例子是簡單的端到端應(yīng)用,提供允許查詢和更新天氣信息104的關(guān)系型數(shù)據(jù)庫的表格102?!碿reate〉構(gòu)造使諸如輸入106和觸發(fā)器108等用戶接口單元與代表該表格的WEATHERMAN資源類相關(guān)?!磂^構(gòu)造112使用"城市,,輸入字段以從數(shù)據(jù)庫中選擇行,使用"選定"屬性予以記錄。在由華氏溫度轉(zhuǎn)換成攝氏溫度之后,由"設(shè)置"觸發(fā)器108觸發(fā)的<1^1^>構(gòu)造114使用在"溫度"輸入字段內(nèi)的量更新數(shù)據(jù)庫。類似的〈bin(^構(gòu)造116從數(shù)據(jù)庫104提取溫度,將攝氏溫度轉(zhuǎn)換成華氏溫度。如用虛線框表示的,該應(yīng)用可以在諸如瀏覽器和服務(wù)器等多個計算節(jié)點120和130間分發(fā)。由駐留在不同計算節(jié)點上、借助URL連接資源的三元組(如112)形成分布式數(shù)據(jù)結(jié)構(gòu)。當執(zhí)行參考分布式數(shù)據(jù)結(jié)構(gòu)的〈bind〉構(gòu)造(例如綁定114和116)時,出現(xiàn)分布式執(zhí)行。根據(jù)本發(fā)明的實施例提供實施這種分布式數(shù)據(jù)和執(zhí)行模型的有效協(xié)議。例如,通過適當?shù)腍TTPPUT或POST操作,在協(xié)議等級上,可以實現(xiàn)綁定114的執(zhí)行。交互模型根據(jù)本發(fā)明原理提供的演示和用戶交互模型允許在一系列抽象等級上的用戶接口描述或應(yīng)用"前端"。支持遞歸模型視圖控制器(MVC)模式,允許開發(fā)者通過連續(xù)等級的更具體描述來精煉抽象用戶接口描述。用資源表示MVC模式的實例的模型。MVC視圖是一組與模型關(guān)聯(lián)的資源,其實例化由〈create〉構(gòu)造明確地驅(qū)動。MVC控制器是響應(yīng)于視圖資源更新而更新模型資源(反之亦然)的一組〈bin(^構(gòu)造。包括模型資源視圖的該組資源自身可以用作其它視圖的模型,因而支持遞歸MVC模式(參見圖6)。也可以將包括視圖的該組資源以及連接視圖資源與模型資源的基于<bind>的控制器視為由模型代表的抽象的更具體精煉。相反,可以將該模型視為通過視圖提供的功能性的封裝。與Xform的關(guān)系本發(fā)明建立在來自XFrom的許多概念上并對其進行一般化,以生成跨越所有應(yīng)用層的統(tǒng)一編程模型。XFrom的基于XML樹的MVC設(shè)計是遞歸的,并一般化為RDF圖。將視圖-模型和模型-模型綁定的概念擴展到基于資源-資源綁定的通用計算模型。將數(shù)據(jù)驅(qū)動的用戶接口實例化一般化為聲明性的資源實例化。根據(jù)本發(fā)明的原理,通過以數(shù)據(jù)為中心、由更新驅(qū)動的執(zhí)行模型簡化和規(guī)則化XForm的由事件驅(qū)動的執(zhí)行模型。構(gòu)成模型根據(jù)本發(fā)明的聲明性數(shù)據(jù)和執(zhí)行模型支持應(yīng)用構(gòu)成的靈活方法。這通過從應(yīng)用前端得出的一些例子來說明。然而,這些編程模型能力類似地支持在所有應(yīng)用層內(nèi)的靈活構(gòu)成。靈活分解和風格化選擇特定視圖以精練抽象模型資源是由模型資源的類確定的。支持多個和動態(tài)分類允許在該過程內(nèi)的更大靈活性,因為可以由抽象模型資源開發(fā)者較早進行用于抽象模型資源的特定表示的選擇;或者由抽象模型資源的消費者在構(gòu)成時間或運行時間上稍后進行。參見圖4,例如交互日歷抽象可以包括類DATE的資源,其以編程方式計算的值是將要顯示給用戶的日期,并且其值被更新為由用戶選擇日期的動作的反映??赏ㄟ^借助分類DATE3在應(yīng)用內(nèi)分類(較早或稍后)一些或全部DATE資源并借助其分類將要與DATE模型資源相關(guān)聯(lián)的一組視圖資源定義為DATE3資源,可以進行DATE模型的表示的更具體選擇(例如作為年、月和日三個字段)。開放構(gòu)成和適應(yīng)由本發(fā)明原理(和RDF)采取的用于定義與類相關(guān)的結(jié)構(gòu)和功能的開放方法支持靈活的多組織構(gòu)成和應(yīng)用適應(yīng)。例如,假設(shè)IBM與書店合作以向IBM雇員提供諸如書等。合作協(xié)議要求IBM修改"stock"用戶接口和處理,例如添加條款以規(guī)定每個訂單的IBM審定者。這可能要求IBM將審定者字段插入每個提交的IBM訂單內(nèi),和將相應(yīng)輸入字段插入訂單頁面內(nèi)。參見圖5,說明性地圖示用于客戶訂單表格的書店代碼片段202。書店代碼202包括訂單表格模型204和訂單表格表示206的定義部分。還圖示了由IBM單獨規(guī)定的代碼片段208以定制書店訂單表格202,包括將審定者字段214添加到模型210內(nèi)和添加對應(yīng)的表示項目212。因而,雖然根據(jù)本發(fā)明的實施例的作為錨定構(gòu)造的OvitJ^構(gòu)造(202和208)在一些方面相當于(在上述例子中的ORDER-FORM類的)類定義,但是本發(fā)明更加靈活,因為它允許從多個獨立規(guī)定的源構(gòu)成的類的完整定義。該方法支持應(yīng)用的靈活多組織構(gòu)成。設(shè)備適應(yīng)最為具體的,MVC交互遞歸基于一組內(nèi)置資源類,所述一組內(nèi)置資源類可以驅(qū)動現(xiàn)有技術(shù)(例如Swing、XHTML或VoiceXML)以表示用戶交互的設(shè)備特定組件(例如按鈕、字段和語音命令)。在這個最為具體的等級之上是表示交互的較為抽象的(但仍然是原始的)單元的資源類等級,例如輸入、輸出和觸發(fā)器。將這些交互的原始單元收集在一起成為同時實現(xiàn)的交互的集合,例如頁面,其在流內(nèi)排序。這些交互等級中的任一等級可以連接到持續(xù)性數(shù)據(jù)存儲器。本發(fā)明將統(tǒng)一數(shù)據(jù)和執(zhí)行模型用于該遞歸MVC樹的所有等級,通過在該樹的任一等級上進入(tap)模型來支持靈活的設(shè)備適應(yīng)。因而,一種設(shè)備適應(yīng)的方法可以是簡單地將替代視圖提供給現(xiàn)有的模型——如在任一當前MVC框架內(nèi)將可能的那樣。我們具有通過將舊視圖視為模型來將模型-視圖遞歸統(tǒng)一地擴展為更適合于移動設(shè)備的新視圖的附加選項。應(yīng)注意,關(guān)于是驅(qū)動舊視圖還是提供新視圖將提供更好的用戶體驗或者更易于實施的問題是設(shè)計決策。本方法通過一組公用語言特征提供一系列可能性。參見圖6,圖示用于在上述假設(shè)的書店應(yīng)用中搜索標題的簡單頁面。視圖302面向具有足夠顯示空間以同時全部顯示作者搜索字段、可用類別、月度推薦書籍和選定圖書的詳細內(nèi)容的桌面設(shè)備。視圖304和306面向移動設(shè)備。視圖304和306綁定到作為其模型的桌面視圖302的視圖資源。視圖304顯示書籍的"主,,列表,而視圖306顯示用于單個選定書籍的詳細內(nèi)容。用于此適應(yīng)的人工制品建立器包括新視圖單元308、將新視圖鏈接到舊視圖的"綁定"310和控制導(dǎo)航312。因為這些特征308、310和312全部是根據(jù)本發(fā)明的當前編程構(gòu)造,這些特征保持可用于進一步適應(yīng)(如果需要)。參見圖7,一種用于在編程環(huán)境內(nèi)管理資源的系統(tǒng)/方法支持企業(yè)、web和客戶機應(yīng)用。系統(tǒng)/方法在方框402內(nèi)包括提供含有相關(guān)數(shù)據(jù)的可變實體。相關(guān)數(shù)據(jù)最好包括三元組或其它相連數(shù)據(jù)??梢愿鶕?jù)圖結(jié)構(gòu)關(guān)系確定與構(gòu)造相關(guān)的數(shù)據(jù)??勺儗嶓w最好包括資源,并且更最優(yōu)選的是RDF資源結(jié)構(gòu)??勺儗嶓w或資源可以包括在運行時間以編程方式改變的能力(方框404)。在方框406,可以將可變實體或資源分類在多個類內(nèi),其中可以在運行時間以編程方式改變資源的類。在方框410,在相關(guān)數(shù)據(jù)內(nèi)監(jiān)視或監(jiān)聽變化。在方框412,當確定數(shù)據(jù)的相關(guān)變化時,根據(jù)在相關(guān)數(shù)據(jù)內(nèi)的變化觸發(fā)第一構(gòu)造(如綁定構(gòu)造)以更新資源或可變實體。這包括規(guī)定響應(yīng)于在相關(guān)數(shù)據(jù)內(nèi)的變化,可變實體的值如何改變。在方框413內(nèi)以相關(guān)性順序執(zhí)行笫一構(gòu)造。第一構(gòu)造可以訪問相關(guān)數(shù)據(jù)的舊值和新值以確定可變實體改變??梢詫⑾嚓P(guān)數(shù)據(jù)的變化聲明為活動的以表示第一構(gòu)造的觸發(fā)。在方框414,根據(jù)更新的可變實體,可以觸發(fā)第二構(gòu)造和第三構(gòu)造以分別建立新可變實體或更新數(shù)據(jù)關(guān)系。在方框416,觸發(fā)第二構(gòu)造(建立)以根據(jù)當前實體值建立新可變實體。在方框418,第三構(gòu)造(假定)通過根據(jù)當前實體值建立和破壞三元組使新的和現(xiàn)有的可變實體相關(guān)。笫三構(gòu)造連接三元組內(nèi)的數(shù)據(jù),以便可以通過多種方式使用相同數(shù)據(jù)以消除多個冗余抽象。在方框420,提供第四構(gòu)造(with),其用于根據(jù)當前實體值改變可變實體的分類。在方框422,可以重復(fù)該處理直到在所有構(gòu)造內(nèi)已經(jīng)傳播所有變化。在每個構(gòu)造內(nèi)進行的改變可以影響可通過其它資源傳播的資源。應(yīng)當指出可以根據(jù)需要一起或者獨立地使用這些構(gòu)造。參見圖8,說明性地圖示用于管理資源的系統(tǒng)/方法。該系統(tǒng)/方法提供交互模型以允許在一系列的抽象等級上的用戶接口描述或應(yīng)用"前端"(和后端)。在方框502內(nèi)規(guī)定遞歸模型視圖控制器(MVC)模式,允許開發(fā)者通過連續(xù)等級的更具體規(guī)定來精煉抽象用戶接口描述。使用資源類在多個抽象等級上規(guī)定多個用戶接口、商業(yè)對象或數(shù)據(jù)對象等。在方框504,用資源表示MVC模式的實例的模型。MVC視圖是一組與模型相關(guān)的資源,其實例化通過〈create〉構(gòu)造明確地驅(qū)動。MVC的控制器是一組<1)111(1>構(gòu)造,其響應(yīng)于視圖資源更新而更新模型資源,反之亦然。在方框505,可以如上所述提供構(gòu)造交互和資源更新(參見圖2和圖7)。包含模型資源視圖的該組資源自身可以用作其它視圖的模型,從而支持遞歸MVC模式(參見圖6)。也可以將包含視圖的該組資源以及連接視圖資源與模型資源的基于<bind>的控制器視為由模型代表的抽象的更具體精煉。相反地,可以將該模型視為由視圖提供的功能性的封裝。在方框506,通過提供多個構(gòu)造來實施更新,響應(yīng)于在任何視圖內(nèi)的更新而更新該模型。在方框508,用戶接口可應(yīng)用于多個應(yīng)用。在方框510,可以將每個視圖應(yīng)用于不同設(shè)備。例如,臺式計算機、移動電話機、個人數(shù)字助理或任何其它設(shè)備??梢詫⒌谝灰晥D應(yīng)用于臺式設(shè)備和將第二視圖應(yīng)用于移動設(shè)備??商娲?,可以將第一視圖應(yīng)用于第一應(yīng)用,可以將第二視圖應(yīng)用于在相同或不同設(shè)備內(nèi)的第二應(yīng)用。在方框512,不同的抽象等級可以通過將資源分類成多個類來共享資源,并可以在運行時間以編程方式改變資源的類。參見圖9A和圖9B,說明性地圖示綁定構(gòu)造600。綁定構(gòu)造600是在資源值(R1和R2)之間的功能關(guān)系(RO)的明確表達。有效地,綁定構(gòu)造600是對于資源值的單向、有條件的約束??梢酝ㄟ^對輸入源(R)的更新觸發(fā)綁定構(gòu)造600。開發(fā)者規(guī)定從R1和R2等計算輸出RO的函數(shù)。每個輸入可以是主動或被動的。主動輸入是觸發(fā)綁定構(gòu)造600執(zhí)行的更新。被動輸入并不觸發(fā)綁定構(gòu)造600的執(zhí)行。每個輸入可以參考其資源的新值(在執(zhí)行周期結(jié)束時的值)或舊值(在執(zhí)行周期開始時的值)。例如,新值可以用于類似約束的計算,而舊值可以用于非等冪操作(例如將值插入一個組或者添加到一個值)。參見圖9B,更詳細地圖示綁定構(gòu)造600。對于類A的每個資源R,建立具有分別通過路徑Pl和P2等可到達的輸入資源Rl和R2等的綁定B。通過路徑PO可到達輸出資源RO。通過在諸如XQuery內(nèi)的給定表達式可以計算綁定B。說明性的XML代碼包括下述<bindanchor=,,A,,<inpath="Pl"variable=,,$Vl,,/><inpath="P2"variable="$V2,,/><outpath=,,P0,,>xqueryexpressioninvolving$V1,$V2,...</out><bind>參見圖10,說明性地圖示假定構(gòu)造700。假定構(gòu)造700是用于建立結(jié)構(gòu)的聲明性的由數(shù)據(jù)驅(qū)動的構(gòu)造。假定構(gòu)造700用于建立三元組以例如使用屬性和類連接資源和資源分類。例如,對于類A的每個資源R,和對于通過來自A的xpath可達到的每個資源S,使用類C對S分類并借助屬性p將R連接到S。說明性的XML代碼包括下述<letanchor=,,A,,path=,,xpath,,property=,,p,,class=,,C"/>參見圖11,說明性地圖示建立構(gòu)造800。建立構(gòu)造800是用于建立結(jié)構(gòu)的聲明性的由數(shù)據(jù)驅(qū)動的構(gòu)造。建立構(gòu)造800用于例如使用屬性和類進行資源的建立和分類。例如,對于類A的每個資源R,建立資源S并借助類C對S分類。使用屬性p將R連接到S。說明性的XML代碼包括下述anchor=,,A,,property=,,p,,class="C,,/>已經(jīng)描述了使用構(gòu)成的編程模型來管理資源的系統(tǒng)和方法的優(yōu)選實施例(是說明性而非限制性的),應(yīng)指出,本領(lǐng)域技術(shù)人員鑒于上述教導(dǎo)可以進行修改和變化。因此,將理解在由權(quán)利要求書定義的本發(fā)明的范圍和精神內(nèi)可以在所公開的具體實施例內(nèi)進行變化。已經(jīng)描述了本發(fā)明的各個方面,根據(jù)專利法的具體規(guī)定,在權(quán)利要求書中闡述了專利權(quán)要求保護的范圍。權(quán)利要求1.一種用于在編程環(huán)境中管理資源的方法,包括提供包括含有三元組的相關(guān)數(shù)據(jù)的可變實體;監(jiān)聽相關(guān)數(shù)據(jù)中的變化;和根據(jù)相關(guān)數(shù)據(jù)中的變化觸發(fā)第一構(gòu)造以更新可變實體。2.如權(quán)利要求l所述的方法,還包括在應(yīng)用中在多個角色中使用三元組以支持企業(yè)、web和客戶才幾應(yīng)用。3.如權(quán)利要求l所述的方法,其中提供可變實體包括將資源分類成多于一個類。4.如權(quán)利要求l所述的方法,其中在運行時間以編程方式改變資源的類。5.如權(quán)利要求l所述的方法,其中觸發(fā)第一構(gòu)造包括規(guī)定響應(yīng)于相關(guān)數(shù)據(jù)中的變化,可變實體的值如何改變。6.如權(quán)利要求l所述的方法,其中第一構(gòu)造可訪問相關(guān)數(shù)據(jù)的舊值和新值以確定可變實體變化。7.如權(quán)利要求l所述的方法,其中將相關(guān)數(shù)據(jù)中的變化聲明為活動的以觸發(fā)第一構(gòu)造。8.如權(quán)利要求l所述的方法,還包括根據(jù)已更新的可變實體,觸發(fā)第二構(gòu)造和第三構(gòu)造中至少之一,以相應(yīng)地建立新的可變實體并更新數(shù)據(jù)關(guān)系。9.如權(quán)利要求8所述的方法,其中觸發(fā)第二構(gòu)造和第三構(gòu)造中至少之一包括觸發(fā)第二構(gòu)造,以通過才艮據(jù)當前實體值建立新的三元組來建立新可變實體。10.如權(quán)利要求8所述的方法,其中觸發(fā)第二構(gòu)造和第三構(gòu)造中至少之一包括觸發(fā)第三構(gòu)造,其通過根據(jù)當前實體值建立和破壞三元組,使新的和現(xiàn)有的可變實體相關(guān)。11.如權(quán)利要求8所述的方法,還包括在應(yīng)用中在多個角色中使用第一、第二和第三構(gòu)造以支持企業(yè)、web和客戶機應(yīng)用。12.如權(quán)利要求11所述的方法,還包括使用第三構(gòu)造根據(jù)當前實體值改變可變實體的分類。13.如權(quán)利要求l所述的方法,其中根據(jù)圖結(jié)構(gòu)關(guān)系確定相關(guān)數(shù)據(jù)。14.一種用于在編程環(huán)境中管理資源的方法,包括向可變實體提供具有包含三元組的相關(guān)數(shù)據(jù)的類定義;和根據(jù)錨定構(gòu)造,提供允許對要從多個獨立規(guī)定的源構(gòu)成的類進行完整定義的類定義。15.如權(quán)利要求14所述的方法,其中多個獨立規(guī)定的源包括不同組織。16.—種用于管理資源的方法,包括使用資源類在多個抽象等級上規(guī)定實體的構(gòu)成,其中該規(guī)定包括使用包括模型、視圖和控制器構(gòu)造中的一個或多個的遞歸模型視圖控制器(MVC)模式來定義每個抽象等級,其中模型、視圖和控制器構(gòu)造中的每個包括一組含有三元組的資源;和通過使用控制器構(gòu)造實施更新,響應(yīng)于任何視圖內(nèi)的更新而更新模型。17.如權(quán)利要求16所述的方法,其中實體的構(gòu)成包括用戶接口、商業(yè)對象和數(shù)據(jù)對象中的至少之一。18.如權(quán)利要求16所述的方法,還包括將每個視圖應(yīng)用于不同設(shè)備。19.如權(quán)利要求18所述的方法,其中應(yīng)用每個視圖包括設(shè)備適應(yīng),其中將第一視圖應(yīng)用于臺式設(shè)備和將第二視圖應(yīng)用于移動設(shè)備。20.如權(quán)利要求16所述的方法,其中不同抽象等級各包括在嵌套結(jié)構(gòu)中的MVC模式。21.如權(quán)利要求16所述的方法,其中在運行時間以編程方式改變資源的類。22.如權(quán)利要求16所述的方法,其中多個控制器構(gòu)造包括笫一構(gòu)造,并且該方法還包括規(guī)定響應(yīng)于相關(guān)數(shù)據(jù)中的變化,可變實體值如何改變。23.如權(quán)利要求22所述的方法,其中第一構(gòu)造可訪問相關(guān)數(shù)據(jù)的舊值和新值以確定可變實體變化。24.如權(quán)利要求23所述的方法,其中將相關(guān)數(shù)據(jù)中的變化聲明為活動的,以觸發(fā)第一構(gòu)造。25.如權(quán)利要求16所述的方法,其中多個構(gòu)造包括第二構(gòu)造,該方法還包括觸發(fā)第二構(gòu)造以根據(jù)當前實體值建立新的可變實體。26.如權(quán)利要求16所述的方法,其中多個構(gòu)造包括第三構(gòu)造,該方法還包括觸發(fā)第三構(gòu)造,其通過根據(jù)當前實體值建立和破壞三元組,使新的和現(xiàn)有的可變實體相關(guān)。27.如權(quán)利要求16所述的方法,還包括第四構(gòu)造,該方法還包括;f艮據(jù)當前實體值改變可變實體的分類。28.如權(quán)利要求27所述的方法,其中第四構(gòu)造提供類定義,其允許對要從多個獨立規(guī)定的源或組織構(gòu)成的類進行完整定義。29.如權(quán)利要求16所述的方法,其中根據(jù)圖結(jié)構(gòu)關(guān)系確定相關(guān)數(shù)據(jù)。30.—種用于在編程環(huán)境內(nèi)管理資源的系統(tǒng),包括用于執(zhí)行前述方法權(quán)利要求中任一方法的裝置。31.—種用于在編程環(huán)境內(nèi)管理資源的計算機程序產(chǎn)品,包括計算機可用介質(zhì),其包含計算機可讀程序,其中當在計算機上執(zhí)行時該計算機可讀程序使計算機執(zhí)行前述方法權(quán)利要求中任一權(quán)利要求所述的步驟。全文摘要一種用于管理資源的系統(tǒng)和方法,包括提供具有包含三元組的相關(guān)數(shù)據(jù)的可變實體,和監(jiān)聽相關(guān)數(shù)據(jù)中的變化。根據(jù)相關(guān)數(shù)據(jù)中的變化觸發(fā)第一構(gòu)造以更新可變實體。文檔編號G06F9/50GK101315601SQ200710187009公開日2008年12月3日申請日期2007年11月14日優(yōu)先權(quán)日2007年6月1日發(fā)明者布魯斯·D.·盧卡斯,拉法·A.·霍斯,查爾斯·F.·維查,瑪利亞-克里斯蒂娜·V.·馬里奈斯庫,約翰·H.·菲爾德,馬克·N.·維格曼申請人:國際商業(yè)機器公司