專利名稱:使用簡檔的web門戶應(yīng)用定制方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及web門戶應(yīng)用的定制,并且更具體地涉及用于使用簡檔來支持web門 戶應(yīng)用的定制的方法和系統(tǒng),以使得可以基于單個(gè)軟件代碼庫來開發(fā)高度定制的web門戶應(yīng)用。
背景技術(shù):
較多的企業(yè)正使用因特網(wǎng)來向其他企業(yè)或者個(gè)人提供服務(wù)。近來,允許企業(yè)在因 特網(wǎng)上托管的web站點(diǎn)上向其他企業(yè)提供信息和服務(wù)的web門戶應(yīng)用已經(jīng)成為提供此類服 務(wù)的一種受歡迎的方式。為了在因特網(wǎng)上提供特定服務(wù),開發(fā)了特別設(shè)計(jì)為提供此類服務(wù) 的web門戶應(yīng)用。因?yàn)閣eb門戶應(yīng)用特別設(shè)計(jì)為提供特定服務(wù),所以需要從頭開始開發(fā)新 的web門戶應(yīng)用以提供不同類型的服務(wù)或者為附加類型的服務(wù)添加支持。此外,由于使用 web門戶應(yīng)用的企業(yè)數(shù)目增加并且因此在因特網(wǎng)上提供類似服務(wù)的企業(yè)數(shù)目增加,所以出 現(xiàn)了區(qū)分web門戶應(yīng)用的外觀和感覺的需要。而且,企業(yè)向其提供服務(wù)的用戶群變得更大 并且更多樣。為了適應(yīng)用戶群的多樣性以及通過web門戶應(yīng)用提供的不同類型的服務(wù),出 現(xiàn)了提供不同的應(yīng)用行為以及不同的外觀和感覺以適應(yīng)每個(gè)用戶的需求的需要。然而,為了提供新服務(wù)或者向不同用戶提供不同的外觀和感覺,web門戶應(yīng)用底層 的軟件代碼必須進(jìn)行大量的——或者甚至是全部——重寫,并且必須投入大量的精力和資 源。由此,技術(shù)挑戰(zhàn)包括提供允許以有效、可靠和有成本效益的方式來開發(fā)適合于不 同種類的服務(wù)和用戶的web門戶應(yīng)用的方法和系統(tǒng)。
發(fā)明內(nèi)容
所公開的方法和系統(tǒng)提供了開發(fā)web門戶應(yīng)用的更加有效、可定制的方式。該系 統(tǒng)接收各種類型的用戶的簡檔。該系統(tǒng)還接收默認(rèn)和簡檔特定狀態(tài)以及默認(rèn)和簡檔特定轉(zhuǎn) 移。狀態(tài)可以綁定至可以表示在web門戶應(yīng)用的工作流的各步驟處顯示的圖形用戶界面 (“GUI”)的web頁面。轉(zhuǎn)移可以表示軟件程序在工作流的步驟之間執(zhí)行的業(yè)務(wù)邏輯。系 統(tǒng)還標(biāo)識與web門戶應(yīng)用的用戶相關(guān)聯(lián)的簡檔。系統(tǒng)從存儲器選擇和獲取狀態(tài),并且顯示 綁定至該狀態(tài)的web頁面。另外,系統(tǒng)可以從用戶接收對于所顯示的狀態(tài)可用的轉(zhuǎn)移輸入。 轉(zhuǎn)移輸入可以包括例如繼續(xù)到工作流的下一狀態(tài)的指令或者返回工作流的先前狀態(tài)的指 令。在接收到來自用戶的轉(zhuǎn)移輸入之后,該系統(tǒng)從存儲器獲取與所接收的轉(zhuǎn)移輸入相關(guān)聯(lián) 的轉(zhuǎn)移(“輸入關(guān)聯(lián)轉(zhuǎn)移”)。在獲取輸入關(guān)聯(lián)轉(zhuǎn)移中,系統(tǒng)確定是否存在對應(yīng)于標(biāo)識的用 戶簡檔的輸入關(guān)聯(lián)轉(zhuǎn)移(“簡檔特定轉(zhuǎn)移”)。如果存在簡檔特定轉(zhuǎn)移,則系統(tǒng)從存儲器獲 取簡檔特定轉(zhuǎn)移作為輸入關(guān)聯(lián)轉(zhuǎn)移。如果不存在簡檔特定轉(zhuǎn)移,則系統(tǒng)從存儲器獲取與接 收的轉(zhuǎn)移輸入相關(guān)聯(lián)的默認(rèn)轉(zhuǎn)移作為輸入關(guān)聯(lián)轉(zhuǎn)移。隨后,系統(tǒng)執(zhí)行所獲取的輸入關(guān)聯(lián)轉(zhuǎn) 移中指定的任務(wù)。在獲取選擇狀態(tài)中,系統(tǒng)確定是否存在對應(yīng)于所標(biāo)識的用戶簡檔的選擇狀態(tài)的版本(“簡檔特定狀態(tài)”)。如果存在簡檔特定狀態(tài),則系統(tǒng)從存儲器獲取簡檔特定狀態(tài)作為 選擇狀態(tài)。如果不存在簡檔特定狀態(tài),則系統(tǒng)從存儲器獲取選擇狀態(tài)的默認(rèn)版本作為選擇 狀態(tài)。在查看以下附圖和具體實(shí)施方式
之后,其他系統(tǒng)、方法、特征和優(yōu)點(diǎn)將對于本領(lǐng)域 技術(shù)人員易見或者變得易見。所有此類附加系統(tǒng)、方法、特征和優(yōu)點(diǎn)包括在本說明書中,包 括在本發(fā)明的范圍之內(nèi),并且由所附權(quán)利要求書保護(hù)。
可以參考以下附圖和描述對系統(tǒng)進(jìn)行更好地理解。附圖中的元素未必是按比例繪 制的,而是將重點(diǎn)放在示出本發(fā)明的各種實(shí)施方式的原理。在附圖中,貫穿不同視圖,相似 的參考數(shù)字指定相應(yīng)的特征。圖1示出了本發(fā)明一個(gè)實(shí)施方式的組件的總體概觀。圖2示出了本發(fā)明一個(gè)實(shí)施方式的操作的簡要概觀。圖3示出了本發(fā)明一個(gè)實(shí)施方式的系統(tǒng)示圖。圖4示出了本發(fā)明一個(gè)實(shí)施方式的簡檔管理機(jī)制的概觀。圖5示出了本發(fā)明一個(gè)實(shí)施方式的操作的狀態(tài)圖的示例。圖6示出了本發(fā)明一個(gè)實(shí)施方式可以采用以提供web門戶應(yīng)用的可定制工作流的 邏輯的流程圖。圖7A示出了可以在本發(fā)明一個(gè)實(shí)施方式中實(shí)現(xiàn)的轉(zhuǎn)移的示例。圖7B示出了可以在本發(fā)明一個(gè)實(shí)施方式中實(shí)現(xiàn)的一系列任務(wù)的示圖。圖8示出了本發(fā)明一個(gè)實(shí)施方式可以采用以提供可定制GUI的邏輯的流程圖。圖9示出了用于實(shí)現(xiàn)⑶I的模板的軟件代碼的示例。圖10示出了用于實(shí)現(xiàn)可定制GUI的模板的簡檔特定部分的軟件代碼的詳細(xì)示例。圖11示出了可定制⑶I的示例。圖12示出了表示站點(diǎn)地圖資源文件的結(jié)構(gòu)的示圖。
具體實(shí)施例方式圖1示出了根據(jù)本發(fā)明的系統(tǒng)的一個(gè)實(shí)施方式(“系統(tǒng)”)的組件的概觀100。該 系統(tǒng)包括簡檔管理器102,其存儲和管理用戶簡檔信息。簡檔管理器102可以與系統(tǒng)的各組 件(諸如模板管理器104、數(shù)據(jù)驗(yàn)證提供器106、工作流引擎108、參考數(shù)據(jù)源110和站點(diǎn)地 圖提供器112)通信。在由系統(tǒng)組件請求之后,簡檔管理器102可以向系統(tǒng)組件提供用戶簡 檔信息。工作流引擎108通過一系列定義的步驟來驅(qū)動應(yīng)用過程以及用戶交互。工作流引 擎108可以例如使用Microsoft Windows Workflow Foundation 技術(shù)來實(shí)現(xiàn)。模板管理 器104可以實(shí)現(xiàn)為可以提供模板的獨(dú)立組件,可以在該模板上構(gòu)建web門戶應(yīng)用的圖形用 戶界面(GUI)。模板管理器104允許數(shù)據(jù)及其向用戶的表示之間的完全分離。數(shù)據(jù)驗(yàn)證提 供器106還可以是獨(dú)立組件,其與簡檔管理器102通信以提供web門戶應(yīng)用的工作流所需 要的各種數(shù)據(jù)檢查服務(wù)。數(shù)據(jù)驗(yàn)證提供器106還可以與模板管理器104通信(未示出)。 參考數(shù)據(jù)源110可以是可以存儲各種參考數(shù)據(jù)源的數(shù)據(jù)庫,諸如用于存儲實(shí)現(xiàn)web門戶應(yīng) 用可能需要的數(shù)據(jù)的儲存庫、接口消息以及本地化數(shù)據(jù)庫。站點(diǎn)地圖提供器112也可以是獨(dú)立組件,其可以存儲關(guān)于web頁面層級、流結(jié)構(gòu)以及可訪問資源的信息。站點(diǎn)地圖提供器 112可以使用例如Microsoft ASP. NET 架構(gòu)來實(shí)現(xiàn)。圖2示出了系統(tǒng)使用簡檔提供可定制工作流的操作的示例200。工作流可以包括 一系列數(shù)據(jù)獲取、產(chǎn)品配置和/或數(shù)據(jù)提交步驟,并且可以表示為通過轉(zhuǎn)移彼此鏈接的一 系列狀態(tài)。轉(zhuǎn)移和狀態(tài)可以實(shí)現(xiàn)為由Microsoft Windows Workflow Foundation 庫定義 的基類的實(shí)例。狀態(tài)可以綁定至用于數(shù)據(jù)表示和用戶的數(shù)據(jù)錄入的特定web頁面。狀態(tài)與 特定web頁面的關(guān)聯(lián)可以通過使用例如Microsoft WebClient Software Factory 擴(kuò)展 Windows Workflow Foundation 組件來實(shí)現(xiàn),從而允許每個(gè)狀態(tài)指向特定web頁面。web 頁面可以通過獨(dú)立組件(例如ASP. NET 庫)來實(shí)現(xiàn)和存儲。轉(zhuǎn)移可以定義將要連續(xù)執(zhí)行 的一系列任務(wù),以便成功繼續(xù)到工作流中的下一狀態(tài)。轉(zhuǎn)移中定義的任務(wù)可以是實(shí)現(xiàn)web 門戶應(yīng)用所必需的業(yè)務(wù)邏輯。狀態(tài)與轉(zhuǎn)移之間的關(guān)聯(lián)例如可以通過在XML文件中存儲其關(guān) 聯(lián)來實(shí)現(xiàn),該XML文件可以通過可視化編輯工具來編輯。狀態(tài)之間的轉(zhuǎn)移可以由用戶輸入 來觸發(fā)。工作流引擎108可以通過選擇初始狀態(tài)202來開始web門戶應(yīng)用的工作流。初始 狀態(tài)202可以與轉(zhuǎn)移“過程開始” 204相關(guān)聯(lián),該“過程開始” 204可以將工作流導(dǎo)航至“標(biāo) 準(zhǔn)過程狀態(tài)1”206。狀態(tài)206可以與執(zhí)行默認(rèn)任務(wù)的轉(zhuǎn)移210以及執(zhí)行對簡檔特定的任務(wù) 的簡檔特定變體轉(zhuǎn)移208相關(guān)聯(lián)。雖然示例200示出僅一個(gè)變體轉(zhuǎn)移208與“標(biāo)準(zhǔn)過程狀 態(tài)1” 206相關(guān)聯(lián),但是不止一個(gè)變體轉(zhuǎn)移可以與一個(gè)狀態(tài)相關(guān)聯(lián)。變體是系統(tǒng)僅針對具有特定簡檔的用戶選擇和執(zhí)行的轉(zhuǎn)移或者狀態(tài)。工作流引擎 108可以請求轉(zhuǎn)移執(zhí)行。在工作流引擎108請求轉(zhuǎn)移之后,系統(tǒng)可以進(jìn)行“簡檔化”,意味著 系統(tǒng)可以根據(jù)當(dāng)前用戶的簡檔來選擇和執(zhí)行轉(zhuǎn)移的版本(默認(rèn)或者變體)?!昂啓n化”過程 對于工作流引擎108是透明的。因此,工作流引擎108不需要指示要執(zhí)行的轉(zhuǎn)移的版本。 通過“簡檔化”,如果當(dāng)前用戶的簡檔與“簡檔特定轉(zhuǎn)移1,,相關(guān)聯(lián)的簡檔匹配,則系統(tǒng)執(zhí)行 變體轉(zhuǎn)移(“簡檔特定轉(zhuǎn)移1” 208),如果當(dāng)前用戶的簡檔與“簡檔特定轉(zhuǎn)移1”的簡檔不匹 配,則系統(tǒng)執(zhí)行默認(rèn)轉(zhuǎn)移“默認(rèn)轉(zhuǎn)移1”210。如果當(dāng)前用戶的簡檔與“簡檔特定轉(zhuǎn)移1”208的簡檔匹配,則“簡檔特定轉(zhuǎn)移1” 可以將工作流導(dǎo)航至“變體狀態(tài)1”212。轉(zhuǎn)而,“變體狀態(tài)1”212可以與“簡檔特定轉(zhuǎn)移 2”214相關(guān)聯(lián),該“簡檔特定轉(zhuǎn)移2”214可以將工作流導(dǎo)航至“變體狀態(tài)2”216。變體狀 態(tài)216可以與“簡檔特定轉(zhuǎn)移3” 218相關(guān)聯(lián),該“簡檔特定轉(zhuǎn)移3” 218可以將工作流導(dǎo)航 至“過程最終狀態(tài)” 224。另一方面,在狀態(tài)206處,如果當(dāng)前用戶的簡檔與“簡檔特定轉(zhuǎn)移 1”208的簡檔不匹配,則系統(tǒng)將執(zhí)行“默認(rèn)轉(zhuǎn)移1”210,其可以將工作流導(dǎo)航至“標(biāo)準(zhǔn)過程狀 態(tài)2” 220?!皹?biāo)準(zhǔn)過程狀態(tài)2” 220可以與“默認(rèn)轉(zhuǎn)移2” 222相關(guān)聯(lián),該“默認(rèn)轉(zhuǎn)移2” 222可 以將工作流導(dǎo)航至“過程最終狀態(tài)” 224?!斑^程最終狀態(tài)” 224可以與“過程結(jié)束”轉(zhuǎn)移2 相關(guān)聯(lián),該“過程結(jié)束”轉(zhuǎn)移2 可以結(jié)束web門戶應(yīng)用的工作流。如以上示例所描述的, 系統(tǒng)可以通過進(jìn)行簡檔化,使用工作流引擎108的一個(gè)實(shí)現(xiàn)來提供適于不同用戶簡檔的不 同工作流,而不是必須為具有不同簡檔的每個(gè)用戶實(shí)現(xiàn)不同的工作流。圖3示出了本發(fā)明一個(gè)實(shí)施方式的系統(tǒng)300的一般配置。系統(tǒng)300包括處理器 302、存儲器304、簡檔管理器306、控制器308、模板管理器310、數(shù)據(jù)驗(yàn)證提供器312、站點(diǎn)地 圖提供器314、參考數(shù)據(jù)源管理器316和后端通信層318。組件302-318可以耦合并且彼此之間通信。存儲器304可以包括簡檔定義320。簡檔定義320可以包括針對多個(gè)不同用戶 或者多個(gè)不同類型的用戶的簡檔322。簡檔322可以實(shí)現(xiàn)為字符串。例如,與公司CTZ相關(guān) 聯(lián)的用戶可以與簡檔322相關(guān)聯(lián),該簡檔322可以實(shí)現(xiàn)為字符串“XYZ_Pr0file”。簡檔322 可以由系統(tǒng)300的組件引用以選擇適合與簡檔相關(guān)聯(lián)的用戶的適當(dāng)業(yè)務(wù)邏輯。存儲器304還可以包括狀態(tài)定義3M和轉(zhuǎn)移定義3 。狀態(tài)定義3M還可以包括 默認(rèn)狀態(tài)3 和簡檔特定狀態(tài)330。每個(gè)簡檔特定狀態(tài)與特定簡檔相關(guān)聯(lián)。轉(zhuǎn)移定義326 可以包括默認(rèn)轉(zhuǎn)移332和簡檔特定轉(zhuǎn)移334。每個(gè)簡檔特定轉(zhuǎn)移與特定簡檔相關(guān)聯(lián)。存儲器304還可以包含模板定義336,其存儲默認(rèn)模板338和簡檔特定模板340。 模板定義綁定到每個(gè)狀態(tài)的web頁面的用戶界面的布局。默認(rèn)模板還可以包含默認(rèn)部分 342和/或簡檔特定部分344。模板可以使用超文本標(biāo)記語言(HTML)來實(shí)現(xiàn)。模板允許簡 化的用戶界面創(chuàng)建和管理。使用模板增加了用戶界面數(shù)據(jù)管理(數(shù)據(jù)獲取/界面建立/用 戶輸入的讀取和存儲)與web頁面的布局/呈現(xiàn)之間的分離。例如,模板允許獨(dú)立管理頁 面布局的不同特征,從而允許跨多個(gè)不同的web頁面復(fù)用重現(xiàn)的特征(諸如框架和數(shù)據(jù)表 示表單)。存儲器304還可以包括站點(diǎn)地圖資源文件346。站點(diǎn)地圖資源文件346存儲關(guān)于 web頁面的層級以及用戶可用的可訪問資源的信息。站點(diǎn)地圖資源文件346可以實(shí)現(xiàn)為可 擴(kuò)展標(biāo)記語言(XML)文檔。web頁面可以表示為站點(diǎn)地圖資源文件346內(nèi)的節(jié)點(diǎn)348。每 個(gè)節(jié)點(diǎn)可以包含標(biāo)簽350,其指示節(jié)點(diǎn)與用戶的簡檔之間的關(guān)聯(lián)。節(jié)點(diǎn)348還可以包括關(guān)于 其表示的web頁面的其他信息,諸如web頁面的屬性。存儲器304還可以包含工作流程序352,其包含邏輯,該邏輯在由處理器302執(zhí)行 時(shí),使得系統(tǒng)執(zhí)行web應(yīng)用的工作流。工作流引擎108可以實(shí)現(xiàn)為工作流程序352的一部 分??梢詫?shí)現(xiàn)為獨(dú)立組件的簡檔管理器306標(biāo)識當(dāng)前用戶的身份,標(biāo)識與當(dāng)前用戶相 關(guān)聯(lián)的簡檔,并且向請求此類信息的系統(tǒng)300的組件提供所標(biāo)識的簡檔信息??刂破?08 接收用戶輸入,并且根據(jù)用戶輸入和web門戶應(yīng)用的工作流來管理轉(zhuǎn)移。模板管理器310 管理模板,系統(tǒng)300使用該模板來構(gòu)建綁定到web門戶應(yīng)用的狀態(tài)的web頁面的用戶界面。 在請求工作流程序352時(shí),模板管理器310可以根據(jù)當(dāng)前用戶的簡檔來獲取相關(guān)的模板,以 構(gòu)建web頁面的用戶界面。數(shù)據(jù)驗(yàn)證提供器312也可以實(shí)現(xiàn)為獨(dú)立組件,其根據(jù)用戶的簡檔來獲取數(shù)據(jù)并且 對數(shù)據(jù)執(zhí)行驗(yàn)證。所接收的數(shù)據(jù)例如可以是響應(yīng)于系統(tǒng)300實(shí)現(xiàn)的web門戶應(yīng)用的請求而 由用戶輸入的數(shù)據(jù)。驗(yàn)證例如可以是對接收的數(shù)據(jù)執(zhí)行完整性檢查,以保證所接收的數(shù)據(jù) 符合預(yù)定義規(guī)則。在說明性的示例中,web頁面可以配置用于從用戶接收銀行賬號。通過 web頁面接收的銀行賬號可以傳輸至數(shù)據(jù)驗(yàn)證提供器312,并且由其進(jìn)行驗(yàn)證。數(shù)據(jù)驗(yàn)證提 供器312可以將結(jié)果提供回工作流程序352,其可以根據(jù)系統(tǒng)300實(shí)現(xiàn)的web門戶應(yīng)用的需 要來使用該結(jié)果。在上文討論的說明性示例中,銀行賬號可以由數(shù)據(jù)驗(yàn)證提供器312針對 正確格式來驗(yàn)證,并且如果銀行賬號的格式不正確,則工作流程序352可以向用戶發(fā)布警告。站點(diǎn)地圖提供器314可以實(shí)現(xiàn)為管理站點(diǎn)地圖資源文件346的獨(dú)立組件。在請求 工作流程序352時(shí),站點(diǎn)地圖提供器可以在站點(diǎn)地圖資源文件346中搜索節(jié)點(diǎn)348,以標(biāo)識與web頁面相關(guān)聯(lián)的屬性,并且向工作流應(yīng)用提供所標(biāo)識的信息。參考數(shù)據(jù)源管理器316管理參考數(shù)據(jù),該參考數(shù)據(jù)可以存儲在存儲器304中。參 考數(shù)據(jù)例如可以是可以在構(gòu)建web頁面的用戶界面中使用的,或者以其他方式可以在執(zhí)行 工作流程序352中使用的值或者配置數(shù)據(jù)的列表。后端通信層318管理系統(tǒng)300與后端系統(tǒng)(諸如SRM)和計(jì)費(fèi)系統(tǒng)之間的通信,該 計(jì)費(fèi)系統(tǒng)可能是執(zhí)行系統(tǒng)300實(shí)現(xiàn)的web門戶應(yīng)用所需要的。圖4示出了表示可以在系統(tǒng)300中實(shí)現(xiàn)的簡檔管理機(jī)制400的概觀。簡檔管理機(jī) 制400可以包括三種類型的組件應(yīng)用組件402、資源管理器404和資源儲存庫406。應(yīng)用組件402表示實(shí)現(xiàn)特定業(yè)務(wù)需求的系統(tǒng)300的組件。應(yīng)用組件402可以從 資源管理器404請求滿足業(yè)務(wù)需求所必需的資源408。應(yīng)用組件402的一個(gè)示例是工作流 程序352,其可以從資源管理器404請求執(zhí)行web門戶應(yīng)用的工作流的執(zhí)行所需要的資源 408。在說明性示例中,為了顯示綁定到工作流狀態(tài)的web頁面,工作流程序352可以從資 源管理器404請求顯示綁定到該狀態(tài)的web頁面所必需的資源408。在該示例中,資源408 可以是用于構(gòu)建綁定到工作流的狀態(tài)的web頁面的用戶界面的模板。資源管理器404表示系統(tǒng)300的組件,其可以從應(yīng)用組件402接收針對資源408的 請求,并且可以使得將適合的資源提供至應(yīng)用組件。應(yīng)用組件402針對資源408的請求可 以指示滿足應(yīng)用組件402實(shí)現(xiàn)的業(yè)務(wù)需求所需要的資源的類型??梢宰龀稣埱蠖恢甘菊?求的是簡檔特定資源還是默認(rèn)資源。換言之,應(yīng)用組件402做出的請求不是“簡檔化”的。 相反,資源管理器404通過接收請求并且使得“簡檔化”的資源408遞送至應(yīng)用組件402而 有效地將請求“簡檔化”。換言之,資源管理器404使得對應(yīng)于當(dāng)前用戶的簡檔的適合資源 408被提供給應(yīng)用組件402。根據(jù)應(yīng)用組件402的請求類型,資源管理器404可以是控制器 308、模板管理器310、數(shù)據(jù)驗(yàn)證提供器312、站點(diǎn)地圖提供器314、參考數(shù)據(jù)源316或者系統(tǒng) 300中可以管理數(shù)據(jù)并且使得數(shù)據(jù)被提供給應(yīng)用組件402的其他組件。在應(yīng)用組件402請求資源408之后,資源管理器404可以與簡檔管理器306通信 已標(biāo)識與當(dāng)前用戶相關(guān)聯(lián)的用戶簡檔322。資源管理器404可以搜索資源儲存庫406以標(biāo) 識所請求資源408的正確簡檔化版本,即對應(yīng)于標(biāo)識的簡檔322的所請求資源版本。資源儲存庫406可以表示存儲資源408的儲存庫或者儲存庫組。如果標(biāo)識了對應(yīng) 于當(dāng)前用戶的簡檔322的所請求資源408的簡檔特定版本,則資源管理器404使得資源儲 存庫406向應(yīng)用組件402提供所請求資源的所標(biāo)識的簡檔特定版本。如果沒有標(biāo)識對應(yīng)于 當(dāng)前用戶的簡檔322的所請求資源408的簡檔特定版本,則資源管理器404使得資源儲存 庫408向應(yīng)用組件402提供所請求資源的默認(rèn)版本。資源儲存庫406可以是存儲器304,或 者特別提供用于存儲特定資源管理器404管理的資源類型的存儲器或者數(shù)據(jù)庫系統(tǒng)。所請求資源408例如可以是控制器308所管理的轉(zhuǎn)移或者狀態(tài)、模板管理器310 所管理的模板、站點(diǎn)地圖提供器314所管理的頁面屬性信息或者參考數(shù)據(jù)源管理器316所 管理的數(shù)據(jù)。簡檔特定資源可以由附加到資源408的名稱末尾的簡檔名稱來標(biāo)識。如果簡檔 稱為“profileA (簡檔A) ”,則資源管理器404可以查找附加到資源名稱末尾的簡檔名稱為 "profiIeA"的資源408。例如,如果模板名稱為“mairuwindow”,模板的默認(rèn)版本的名稱可 以是“mairuwindow”,而對應(yīng)于與“profileA”相關(guān)聯(lián)的用戶的模板的簡檔特定版本可以命名為“main_window_profileA”。因此,處理針對profileA用戶的模板“main_window”的請 求的模板管理器310可以查找附加到名稱“mairuwindow”末尾的字符串“profile_A”。利 用web門戶應(yīng)用定制系統(tǒng),可以開發(fā)單個(gè)web門戶應(yīng)用來支持符合向其相應(yīng)客戶提供不同 服務(wù)的不同業(yè)務(wù)的需要的變體。在說明性示例中,可以開發(fā)單個(gè)web門戶應(yīng)用以用于由兩 個(gè)不同的公司(公司A和公司B)向客戶銷售電話卡。雖然web應(yīng)用所提供的電話卡或者 服務(wù)的某些特征可能是相似的,但是通過使用變體和簡檔,兩個(gè)公司可以向用戶提供不同 的用戶體驗(yàn),并且通過單個(gè)web應(yīng)用來銷售具有不同特征的電話卡。不同的簡檔可以與不 同公司的客戶相關(guān)聯(lián),并且可以通過向web門戶應(yīng)用的工作流提供與當(dāng)前用戶的簡檔相關(guān) 聯(lián)的變體來實(shí)現(xiàn)產(chǎn)品特征和用戶體驗(yàn)的差異。圖5示出了示出在支持多個(gè)簡檔的web門戶應(yīng)用中實(shí)現(xiàn)的狀態(tài)與轉(zhuǎn)移之間的關(guān)系 的一個(gè)示例的示圖500。工作流的初始狀態(tài)可以設(shè)置為“CardSearch”狀態(tài)502,其與轉(zhuǎn)移 “CardSearch_goNext”相關(guān)聯(lián)。當(dāng)系統(tǒng)300接收針對轉(zhuǎn)移“CardSearch_goNext”的轉(zhuǎn)移輸 入時(shí),工作流程序352從控制器308請求與所接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的轉(zhuǎn)移。控制器308 與簡檔管理器306通信以標(biāo)識和獲取當(dāng)前用戶的簡檔322。利用簡檔322中的信息,控制 器308標(biāo)識存儲器304(資源儲存庫406)中的“簡檔化”轉(zhuǎn)移(“簡檔化”資源408),并且 使得存儲器304向工作流程序352提供所標(biāo)識的“簡檔化”轉(zhuǎn)移。在圖5所示的示例中,兩種類型的資源408對于轉(zhuǎn)移輸入“CardSearch_goNext” 是可用的默認(rèn)轉(zhuǎn)移“ CardSearch_goNext,,504和簡檔特定轉(zhuǎn)移“ CardSearch_goNext_ profileA”506。在這種情況下,控制器 308 將轉(zhuǎn)移“CardSearch_goNext_profileA”506 標(biāo) 識為簡檔特定資源408,因?yàn)樽址皃rofileA”附加到了轉(zhuǎn)移名稱“CardSearCh_g0Next” 的末尾。如果當(dāng)前用戶的簡檔是“prof ileA”,則系統(tǒng)300可以選擇和執(zhí)行簡檔特定轉(zhuǎn)移506 中定義的任務(wù)。如果當(dāng)前用戶的簡檔不是“profileA”,則控制器可以不查找針對當(dāng)前用戶 簡檔的簡檔特定資源。在這種情況下,系統(tǒng)300可以選擇和執(zhí)行默認(rèn)資源408,即,轉(zhuǎn)移504。 在profileA用戶的情況下,轉(zhuǎn)移506可以使工作流繼續(xù)到簡檔特定狀態(tài)508。狀態(tài)508可以綁定到概述可用于購買的電話卡列表的、特別為profileA用戶設(shè)計(jì) 的web頁面。狀態(tài)508可以具有兩個(gè)與其相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移輸入轉(zhuǎn)移輸入“Summary, profileA_goBack”和轉(zhuǎn)移輸入“Summary_profileA_goNext”。資源儲存庫406可以分別針 對轉(zhuǎn)移輸入存儲轉(zhuǎn)移510和512。轉(zhuǎn)移510可以使得工作流返回先前狀態(tài)502,而轉(zhuǎn)移512 可以使得工作流繼續(xù)到下一狀態(tài)“ConfirmOrder”狀態(tài)514。在狀態(tài)502中,如果當(dāng)前用戶的簡檔不是“profileA”,則系統(tǒng)300可以獲取和執(zhí) 行默認(rèn)轉(zhuǎn)移504,從而使得工作流繼續(xù)到默認(rèn)狀態(tài),即“Summary”狀態(tài)516。狀態(tài)516還 可以顯示概述可用于購買的電話卡列表的、針對任何非profileA用戶的使用設(shè)計(jì)的web 頁面。狀態(tài)516可以與兩個(gè)默認(rèn)轉(zhuǎn)移輸入相關(guān)聯(lián)轉(zhuǎn)移輸入“Summary_g0BaCk”和轉(zhuǎn)移輸 入“Summary_g0Next”。資源儲存庫406可以分別針對轉(zhuǎn)移輸入存儲轉(zhuǎn)移518和520。轉(zhuǎn) 移518可以允許工作流返回先前狀態(tài)502,而轉(zhuǎn)移520可以允許工作流繼續(xù)到下一狀態(tài), 即“ConfirmOrder”狀態(tài)514。因?yàn)樵谠撌纠袥]有簡檔特定狀態(tài)與狀態(tài)514相關(guān)聯(lián),所 以轉(zhuǎn)移512和520都可以繼續(xù)到相同狀態(tài)514。狀態(tài)514可以與兩種類型的轉(zhuǎn)移輸入相 關(guān)聯(lián)轉(zhuǎn)移輸入“Confirm0rder_goNext”和轉(zhuǎn)移輸入“Confirm0rder_goBack”。在這種情 況下,轉(zhuǎn)移輸入“ConfirmOrdei^goNext”沒有與其相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移。因此,如果從用戶接收了針對轉(zhuǎn)移“ConfirmOrder_goNext”的轉(zhuǎn)移輸入,則系統(tǒng)300可以針對具有任 何類型的簡檔的用戶執(zhí)行默認(rèn)轉(zhuǎn)移,即轉(zhuǎn)移“ConfirmOrder_g0Next”522。然而,針對轉(zhuǎn) 移輸入“ConfirmOrder_gcAack”存在簡檔特定轉(zhuǎn)移。因此,如果從用戶接收了針對轉(zhuǎn)移 “ConfirmOrder_goBack”的轉(zhuǎn)移輸入,則系統(tǒng)300可以針對非profileA用戶執(zhí)行默認(rèn)轉(zhuǎn)移, 即轉(zhuǎn)移“Confirm0rder_gOBack”5M,并且針對所有profileA用戶執(zhí)行簡檔特定轉(zhuǎn)移,即轉(zhuǎn) 移“Conf irmOrder_goBack_prof i1eA“ 526。圖6示出了系統(tǒng)300的工作流程序352可以實(shí)現(xiàn)的邏輯的流程圖600。系統(tǒng)300 可以從web門戶應(yīng)用的開發(fā)者接收與用戶類型相關(guān)聯(lián)的簡檔,并且將簡檔存儲在資源儲存 庫406(諸如存儲器304)中(602)。系統(tǒng)300還可以從web門戶應(yīng)用的開發(fā)者接收并且在 存儲器304中存儲默認(rèn)和簡檔特定模板(604)、默認(rèn)和簡檔特定狀態(tài)定義(606)、默認(rèn)和簡 檔特定轉(zhuǎn)移定義(608)以及站點(diǎn)地圖資源文件346 (610)。默認(rèn)和簡檔特定模板、默認(rèn)和簡 檔特定狀態(tài)定義、默認(rèn)和簡檔特定轉(zhuǎn)移定義以及站點(diǎn)地圖資源文件的接收和存儲也可以由 獨(dú)立于工作流程序352的其他系統(tǒng)來執(zhí)行。當(dāng)工作流的執(zhí)行開始時(shí),系統(tǒng)300選擇初始狀態(tài)(612)。接下來,系統(tǒng)300進(jìn)行初 始狀態(tài)的“簡檔化”,即工作流程序352從控制器308請求初始狀態(tài),并且控制器使得“簡檔 化”的初始狀態(tài)被提供至工作流程序352。換言之,系統(tǒng)300確定是否存在對應(yīng)于當(dāng)前用戶 簡檔的簡檔特定狀態(tài)(614)。如果不存在簡檔特定狀態(tài),則系統(tǒng)選擇默認(rèn)狀態(tài)(616)并且顯 示該默認(rèn)狀態(tài)所綁定到的web頁面。另一方面,如果系統(tǒng)300標(biāo)識了對應(yīng)于當(dāng)前用戶簡檔 的簡檔特定狀態(tài),則系統(tǒng)選擇簡檔特定狀態(tài)(618),并且顯示該狀態(tài)綁定到的web頁面。在默認(rèn)和簡檔特定狀態(tài)之一處,系統(tǒng)300可以從用戶接收轉(zhuǎn)移輸入,以指示用戶 在可用于所顯示的web頁面的轉(zhuǎn)移中的選擇(620)。在從用戶接收了轉(zhuǎn)移輸入之后,系統(tǒng) 300進(jìn)行與所接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的轉(zhuǎn)移的“簡檔化”,即工作流程序352從控制器308請 求與所接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的轉(zhuǎn)移,并且控制器使得與所接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的“簡 檔化”的轉(zhuǎn)移被提供至工作流程序342。換言之,系統(tǒng)300確定是否存在對應(yīng)于轉(zhuǎn)移輸入的 簡檔特定轉(zhuǎn)移(622)。并且如果不存在簡檔特定轉(zhuǎn)移,則系統(tǒng)300選擇對應(yīng)于轉(zhuǎn)移輸入的默 認(rèn)轉(zhuǎn)移(624)。如果存在針對轉(zhuǎn)移輸入的簡檔特定轉(zhuǎn)移,則系統(tǒng)300選擇對應(yīng)于轉(zhuǎn)移輸入的 簡檔特定轉(zhuǎn)移(626)。一旦選擇了默認(rèn)轉(zhuǎn)移和簡檔特定轉(zhuǎn)移之一,系統(tǒng)300就執(zhí)行所選擇的 轉(zhuǎn)移中定義的動作(6 )。根據(jù)轉(zhuǎn)移中定義的動作,工作流應(yīng)用352根據(jù)工作流可以結(jié)束, 或者可以選擇下一狀態(tài)(630)。如果選擇了下一狀態(tài),邏輯可以從上述步驟614重復(fù)。除了被定義或者繼續(xù)到特定狀態(tài)之外,轉(zhuǎn)移還可以被定義為在從一個(gè)狀態(tài)繼續(xù)到 下一個(gè)之前執(zhí)行簡檔特定任務(wù)。圖7A示出了繼續(xù)到相同狀態(tài)的默認(rèn)轉(zhuǎn)移和簡檔特定轉(zhuǎn)移 的說明性示例700a。狀態(tài)702可以與允許工作流繼續(xù)到狀態(tài)708的轉(zhuǎn)移相關(guān)聯(lián)。在該示例 中,資源儲存庫406包含針對轉(zhuǎn)移“karchDat^goNext ”的默認(rèn)轉(zhuǎn)移704和簡檔特定轉(zhuǎn)移 706。默認(rèn)轉(zhuǎn)移704和簡檔特定轉(zhuǎn)移706都通知工作流繼續(xù)到相同的默認(rèn)狀態(tài)708。然而, 默認(rèn)轉(zhuǎn)移704和簡檔轉(zhuǎn)移706都可以定義為在從狀態(tài)702繼續(xù)到狀態(tài)708之前執(zhí)行對簡檔 特定的業(yè)務(wù)過程。圖7B示出了可以在圖7A描述的轉(zhuǎn)移中實(shí)現(xiàn)的一系列任務(wù)的示圖700b。默認(rèn)轉(zhuǎn)移 704可以開始于任務(wù)712,其可以發(fā)起轉(zhuǎn)移。接下來,默認(rèn)轉(zhuǎn)移704可以執(zhí)行例如從資源數(shù) 據(jù)源316獲取必需數(shù)據(jù)的數(shù)據(jù)獲取模塊713。默認(rèn)過濾器716可以應(yīng)用于所獲取的數(shù)據(jù),并且默認(rèn)轉(zhuǎn)移704可以執(zhí)行用于繼續(xù)到下一狀態(tài)708的模塊718。簡檔特定轉(zhuǎn)移706可以開始于任務(wù)720,其可以發(fā)起轉(zhuǎn)移。接下來,轉(zhuǎn)移706可以 執(zhí)行用于例如從資源數(shù)據(jù)源316獲取必需數(shù)據(jù)的數(shù)據(jù)獲取模塊714。獲取模塊714可以與 默認(rèn)轉(zhuǎn)移704所使用的模塊相同。隨后,簡檔特定過濾器722可以應(yīng)用于所獲取的數(shù)據(jù),并 且簡檔特定轉(zhuǎn)移706可以執(zhí)行用于繼續(xù)到下一狀態(tài)708的模塊718。再一次,允許工作流繼 續(xù)到下一狀態(tài)708的模塊718可以與默認(rèn)轉(zhuǎn)移704所使用的模塊相同。如上所述,默認(rèn)轉(zhuǎn) 移704和簡檔特定轉(zhuǎn)移706都可以定義為允許工作流繼續(xù)到相同的狀態(tài)708,同時(shí)執(zhí)行對其 相關(guān)聯(lián)的簡檔特定的數(shù)據(jù)獲取和過濾任務(wù)。圖8示出了系統(tǒng)300中的工作流程序352可以實(shí)現(xiàn)以用于顯示綁定到狀態(tài)的web 頁面的邏輯的流程圖800。當(dāng)系統(tǒng)300選擇某個(gè)狀態(tài)時(shí),系統(tǒng)300可以標(biāo)識綁定到該狀態(tài) 的web頁面(未示出)。系統(tǒng)300還可以通過站點(diǎn)地圖提供器314獲取與web頁面相關(guān)聯(lián) 的信息(802)。該信息例如可以包括指示用戶是否可以訪問web頁面的可訪問性信息。系 統(tǒng)300基于所獲取的頁面屬性來確定當(dāng)前用戶是否可以訪問該web頁面(804)。如果當(dāng)前 用戶可以訪問該web頁面,則系統(tǒng)300繼續(xù)構(gòu)建web頁面的用戶界面。web頁面可以包括一個(gè)或者多個(gè)稱為web部件的構(gòu)建塊。web部件可以包含用于 用戶界面定義和用戶輸入獲取的簡檔獨(dú)立的計(jì)算機(jī)軟件代碼。web部件可以訪問參考數(shù)據(jù) 源316以加載web門戶應(yīng)用用于實(shí)現(xiàn)業(yè)務(wù)邏輯所使用的值的列表或者web頁面所必需的配 置數(shù)據(jù)。web部件可以包含請求數(shù)據(jù)驗(yàn)證提供器312以驗(yàn)證用戶錄入的數(shù)據(jù)的計(jì)算機(jī)軟件 代碼。web部件還可以使用模板來構(gòu)建用戶界面。web頁面的“簡檔化”和/或web部件可 以通過模板來實(shí)現(xiàn)。模板可以通過模板管理器310獲取。繼續(xù)參考圖8,當(dāng)訪問web部件所需要的模板時(shí),系統(tǒng)300通過模板管理器310獲 取針對web部件的“簡檔化”的模板。換言之,系統(tǒng)300確定是否存在針對所請求模板的簡 檔特定模板(806)。如果存在簡檔特定模板,則簡檔特定模板被選擇(808),并且該系統(tǒng)在 構(gòu)建用戶界面時(shí)應(yīng)用該簡檔特定模板(810)。如果不存在簡檔特定模板,則系統(tǒng)300可以選 擇默認(rèn)模板(812)。在說明性示例中,當(dāng)工作流程序352請求用于向prof iIeA用戶顯示web門戶應(yīng)用 的主頁的“Hompage. html”模板時(shí),系統(tǒng)300可以在存儲器304(資源儲存庫406)中搜索針 對“Hompage. html”的簡檔特定模板。簡檔特定模板可以利用附加到模板名稱末尾的簡檔 名稱來標(biāo)識。例如,針對默認(rèn)模板“Hompage. html”的簡檔特定模板可以命名為“Hompage_ profiIeA. html”。如果存儲器304(資源儲存庫406)中標(biāo)識了名稱為“H0mpage_pr0fileA. html”的模板,則工作流352可以選擇模板“H0mpage_pr0fileA. html”。如果在存儲器 304(資源儲存庫406)中沒有找到名稱為“Hompage_profileA.html”的模板,則可以選擇默 認(rèn)模板"Hompage. html,,。模板轉(zhuǎn)而可以包含一個(gè)或多個(gè)部分,該一個(gè)或多個(gè)部分可以包括默認(rèn)部分和/或 簡檔特定部分。繼續(xù)參考圖8,一旦選擇了模板,系統(tǒng)300就針對模板中的每個(gè)部分確定 該部分是否是默認(rèn)部分(814)。如果該部分是默認(rèn)部分,則系統(tǒng)300應(yīng)用默認(rèn)部分(816)。 如果該部分不是默認(rèn)部分,則系統(tǒng)確定該部分是否是對應(yīng)于當(dāng)前用戶簡檔的簡檔特定部分 (818)。如果該部分不是對應(yīng)于當(dāng)前用戶簡檔的簡檔特定部分,則系統(tǒng)不應(yīng)用簡檔特定部 分。如果該部分是對應(yīng)于當(dāng)前用戶簡檔的簡檔特定部分,則系統(tǒng)應(yīng)用簡檔特定部分(820)。例如,如果當(dāng)前用戶的簡檔是“profileA”,則系統(tǒng)300應(yīng)用標(biāo)記了“profileA”的所有部分, 并且可以不應(yīng)用標(biāo)記了例如“prof iIeB (簡檔B) ”、“prof iIeC (簡檔C) ”或者“prof iIeD (簡 檔D) ”的部分。如果一個(gè)部分是默認(rèn)部分,則系統(tǒng)300可以在構(gòu)建用戶界面時(shí)應(yīng)用該部分, 而不考慮當(dāng)前用戶的簡檔?,F(xiàn)在更加詳細(xì)地描述模板。模板可以是使用HTML實(shí)現(xiàn)的。然而,模板也可以使用 其他計(jì)算機(jī)編程語言來實(shí)現(xiàn)。模板可以被指定和定義為頁面模板,其定義特定web頁面,該 特定web頁面定義針對web頁面的控件和布局。然而,模板還可以指定和定義為布局模板, 以指定web頁面的重現(xiàn)頁面布局元素,諸如框架、信息框或者數(shù)據(jù)錄入域。頁面模板可以包 含一個(gè)或多個(gè)布局模板。布局模板可以包括一個(gè)或多個(gè)其他布局模板。圖9示出了針對頁面模板的代碼部分900的一個(gè)示例。在針對頁面模板的代碼 900的開始處,可以調(diào)用通用布局模板902。通用布局模板可以是建立web頁面的整體布局 的布局模板,其跨所有簡檔是統(tǒng)一的。因?yàn)橥ㄓ貌季帜0?02針對所有簡檔是相同的,所以 其也可以由其他模板調(diào)用或者復(fù)用。頁面模板還可以包括部分904和906,其定義對頁面模 板特定的個(gè)體頁面布局特征。部分904和906還可以包括代碼908,其用于特別聲明和定位 web頁面內(nèi)的頁面布局元素。圖10示出了用于實(shí)現(xiàn)模板的簡檔特定部分的計(jì)算機(jī)軟件代碼1000的部分的詳細(xì) 示例。如上所討論的,模板可以包含可以特別指定用于特定簡檔的部分。該模板可以包含 “profileA”部分1002和“profileB”部分1004。部分可以實(shí)現(xiàn)為布局模板或者頁面模板 的任何部分,并且可以由包含簡檔名稱的指示符來標(biāo)記。例如,部分1002可以包含部分標(biāo) 識符1006,其指示該部分1002是對“profileA”特定的部分。部分標(biāo)識符1008指示部分 1004是對“profileB”特定的部分。圖11示出了使用包含默認(rèn)部分和profileA特定部分(針對profileA用戶的簡 檔特定部分)的相同模板的兩個(gè)用戶界面構(gòu)建的示例1100。用戶界面1102可以表示向 “profileA”用戶顯示的web頁面,而用戶界面1104可以表示向“profileB”用戶顯示的web 頁面。用于構(gòu)建界面1102和1104 二者的模板可以是包含用于顯示頁面特征1106的默認(rèn)部 分和用于顯示頁面特征1108的profileA特定部分的相同模板。當(dāng)構(gòu)建針對prof ileA用 戶的用戶界面時(shí),系統(tǒng)顯示默認(rèn)部分1106和profileA特定部分1108 二者。然而,當(dāng)構(gòu)建 針對profileB用戶的用戶界面時(shí),系統(tǒng)僅顯示默認(rèn)部分1106而使profileA特定部分1108 靜默,因?yàn)橛脩舻暮啓n(“profileB”)與prof ileA特定部分1108不匹配。簡檔特定部分 可以僅與一個(gè)簡檔相關(guān)聯(lián),或者可以與多個(gè)簡檔相關(guān)聯(lián)。圖12示出了表示站點(diǎn)地圖資源文件346的結(jié)構(gòu)的示圖1200。站點(diǎn)地圖資源文件 346可以存儲關(guān)于web門戶應(yīng)用的工作流的結(jié)構(gòu)的信息。例如,系統(tǒng)300可以使用來自站點(diǎn) 地圖資源文件346的信息來按照圖形地示出web門戶應(yīng)用的web頁面的層級的樹形視圖的 形式顯示站點(diǎn)地圖示圖。系統(tǒng)300還可以訪問站點(diǎn)地圖資源文件346,以確定用戶對特定 web頁面的可訪問性。站點(diǎn)地圖資源文件346可以實(shí)現(xiàn)為布置在樹形結(jié)構(gòu)中的多個(gè)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)可以 表示web門戶應(yīng)用的狀態(tài)或者web頁面,并且可以存儲指示樹形結(jié)構(gòu)中接下來的一個(gè)或多 個(gè)節(jié)點(diǎn)(“子”節(jié)點(diǎn),或者“派生”節(jié)點(diǎn))的信息。每個(gè)節(jié)點(diǎn)還可以包括關(guān)于狀態(tài)或者web頁 面的信息(諸如狀態(tài)或者web頁面的屬性)。每個(gè)節(jié)點(diǎn)還可以包括標(biāo)簽350(圖12中未示14出;在圖3中示出)。標(biāo)簽可以包含用戶對節(jié)點(diǎn)所表示的頁面的可訪問性信息。例如,站點(diǎn) 地圖資源文件346可以包括“應(yīng)用根”節(jié)點(diǎn)1202,其具有子節(jié)點(diǎn)1204和1206。每個(gè)子節(jié)點(diǎn) 可以分別表示“業(yè)務(wù)流1”和“業(yè)務(wù)流2”的初始狀態(tài)。子節(jié)點(diǎn)1204可以包括包含指定該節(jié) 點(diǎn)可以由所有類型的用戶訪問的可訪問性信息的標(biāo)簽。子節(jié)點(diǎn)1206可以包括包含指定該 節(jié)點(diǎn)僅可以由ProfileA用戶訪問的可訪問性信息的標(biāo)簽。節(jié)點(diǎn)350的可訪問性信息可以在樹形結(jié)構(gòu)中向下傳播。換言之,如果將節(jié)點(diǎn)1206 添加了標(biāo)簽,使得僅授權(quán)profileA用戶訪問,則位于節(jié)點(diǎn)1206下游的派生節(jié)點(diǎn)1208也僅 可以由profileA用戶訪問,不考慮派生節(jié)點(diǎn)1208本身沒有利用此類可訪問性信息添加標(biāo) 簽的事實(shí)。節(jié)點(diǎn)的可訪問性信息還可以指定為不向下傳播。例如,節(jié)點(diǎn)1204可以包含子節(jié) 點(diǎn)1210,其轉(zhuǎn)而可以具有子節(jié)點(diǎn)1212。即使其祖父節(jié)點(diǎn)1204被添加了標(biāo)簽為允許所有類型 的用戶訪問,但是節(jié)點(diǎn)1212可以添加標(biāo)簽使得該節(jié)點(diǎn)對profileB用戶是難以訪問的。節(jié) 點(diǎn)1212的可訪問性也可以指定為不向下傳播,則節(jié)點(diǎn)1212的子節(jié)點(diǎn),即節(jié)點(diǎn)1214,可以再 次對所有類型的用戶可訪問。站點(diǎn)地圖提供器314管理站點(diǎn)地圖資源文件346。站點(diǎn)地圖提供器例如可以使用 ASP. NET 架構(gòu)的站點(diǎn)地圖提供器組件來實(shí)現(xiàn)。當(dāng)工作流程序352從站點(diǎn)地圖資源文件346 的節(jié)點(diǎn)請求信息時(shí),站點(diǎn)地圖提供器314標(biāo)識當(dāng)前用戶的簡檔。站點(diǎn)地圖提供器314還在 站點(diǎn)地圖資源文件346中搜索所請求的節(jié)點(diǎn)。站點(diǎn)地圖提供器314可以在“應(yīng)用根”節(jié)點(diǎn) 1202處開始搜索,并且沿節(jié)點(diǎn)1202的派生節(jié)點(diǎn)繼續(xù),直到標(biāo)識了所請求的節(jié)點(diǎn)。搜索可以 使用二分搜索方法進(jìn)行。然而,可以使用適于搜索樹形結(jié)構(gòu)的任何其他搜索方法。在搜索 期間,站點(diǎn)地圖提供器314可以標(biāo)識包括指定為向下傳播的可訪問性信息的、所請求的節(jié) 點(diǎn)的任何父節(jié)點(diǎn)的標(biāo)簽。當(dāng)標(biāo)識了所請求的節(jié)點(diǎn)時(shí),站點(diǎn)地圖提供器314基于用戶的簡檔、 從父節(jié)點(diǎn)向下傳播的可訪問性信息以及所標(biāo)識的節(jié)點(diǎn)的標(biāo)簽的可訪問性信息,確定當(dāng)前用 戶是否可以訪問所請求的節(jié)點(diǎn)。如果站點(diǎn)地圖提供器確定用戶可以訪問所請求的節(jié)點(diǎn),則 站點(diǎn)地圖提供器使得所標(biāo)識節(jié)點(diǎn)的所請求信息被提供至工作流程序352。在參考圖12的說明性示例中,如果工作流程序352請求包含在節(jié)點(diǎn)1206的子節(jié) 點(diǎn)1208中的信息,則站點(diǎn)地圖提供器314開始于節(jié)點(diǎn)1202,并且沿節(jié)點(diǎn)1202的派生節(jié)點(diǎn)向 下搜索,直到站點(diǎn)地圖提供器標(biāo)識了父節(jié)點(diǎn)1206的所請求子節(jié)點(diǎn)1208。在搜索期間,站點(diǎn) 地圖提供器314可以標(biāo)識父節(jié)點(diǎn)1206,其可以包括包含僅授權(quán)profileA用戶訪問的可訪 問性信息。該標(biāo)簽也可以指定為向下傳播。當(dāng)站點(diǎn)地圖提供器314標(biāo)識了子節(jié)點(diǎn)1208時(shí), 節(jié)點(diǎn)1208可以沒有利用限制任何用戶訪問的信息添加標(biāo)簽。如果當(dāng)前用戶是profileA用 戶,則站點(diǎn)地圖提供器314可以使得包含在所標(biāo)識節(jié)點(diǎn)中的所請求信息被提供至工作流程 序352。然而,如果當(dāng)前用戶是profileB用戶,則站點(diǎn)地圖提供器314可以確定用戶不可以 訪問所標(biāo)識的節(jié)點(diǎn),并且可以不使包含在所標(biāo)識節(jié)點(diǎn)中的所請求信息被提供至工作流程序 352。在后一種情況中,站點(diǎn)地圖提供器314確定當(dāng)前用戶不可以訪問所標(biāo)識節(jié)點(diǎn),因?yàn)樗?標(biāo)識節(jié)點(diǎn)的父節(jié)點(diǎn)1206包括這樣的標(biāo)簽,其僅允許profileA用戶訪問,并且其指定為向下 傳播。系統(tǒng)300還可以允許工作流應(yīng)用352驗(yàn)證從用戶接收的數(shù)據(jù)。工作流應(yīng)用352可 以請求數(shù)據(jù)驗(yàn)證提供器312確定從用戶接收的數(shù)據(jù)是否符合預(yù)定規(guī)則。例如,用戶輸入的 數(shù)據(jù)可以是要對其進(jìn)行支付的銀行賬號,并且數(shù)據(jù)驗(yàn)證提供器312可以確定(“驗(yàn)證”)用戶提供的銀行賬號是否具有正確的數(shù)字?jǐn)?shù)目。工作流應(yīng)用352例如可以使用請求數(shù)據(jù)驗(yàn)證 的一行代碼(“驗(yàn)證請求代碼”)來請求數(shù)據(jù)驗(yàn)證,其例如可以寫為ClientValidateC txtBankAccount" , ‘‘ check_exactLenght",‘‘ 22〃,‘‘ blocking",‘‘ Please check the Bank AccountNumber")根據(jù)用戶的簡檔,驗(yàn)證在相同的數(shù)據(jù)片上可以不同地進(jìn)行。例如,可以驗(yàn)證 profileA用戶的銀行賬戶信息以確定銀行賬號的長度是否是22個(gè)數(shù)字。然而,可以針對 15個(gè)數(shù)字的銀行賬號來驗(yàn)證profileB用戶的銀行賬戶信息??梢酝ㄟ^將簡檔名稱作為參 數(shù)之一包括在驗(yàn)證請求代碼中來指示簡檔特定驗(yàn)證。例如,針對profileA用戶的驗(yàn)證請求 代碼可以寫為ClientValidateC ProfileA" , “ txtBankAccount “,“ check_exactLenght", “ 22", “ blocking", “ Please checkthe Bank Account Number")針對profileB用戶的驗(yàn)證請求代碼例如可以寫為ClientValidateC ProfileB" , “ txtBankAccount“,‘‘ check_exactLenght〃,‘‘ 15〃,‘‘ blocking",‘‘ Please checkthe Bank Account Number")在一個(gè)實(shí)施方式中,針對相同類型的數(shù)據(jù)可以存在多種驗(yàn)證請求代碼,其中每種 代碼可以指定特定簡檔(簡檔特定驗(yàn)證請求代碼)或者可以不指定任何簡檔(默認(rèn)驗(yàn)證請 求代碼)。如果針對相同類型的數(shù)據(jù)存在對立的驗(yàn)證請求代碼的兩個(gè)或更多個(gè)實(shí)例,則系統(tǒng) 300確定是否存在針對當(dāng)前用戶簡檔的簡檔特定驗(yàn)證請求代碼。如果系統(tǒng)300確定存在簡 檔特定驗(yàn)證請求代碼,則系統(tǒng)選擇相應(yīng)的代碼,并且使用簡檔特定驗(yàn)證請求代碼來請求數(shù) 據(jù)驗(yàn)證。如果系統(tǒng)300確定不存在簡檔特定驗(yàn)證請求代碼,則系統(tǒng)使用默認(rèn)驗(yàn)證請求代碼 來請求數(shù)據(jù)驗(yàn)證。在另一實(shí)施方式中,驗(yàn)證請求代碼可以是“簡檔化”的。換言之,針對一種類型的 數(shù)據(jù)可以存在一種驗(yàn)證請求代碼,而不指定代碼相關(guān)聯(lián)的簡檔。當(dāng)工作流程序352向驗(yàn)證 提供器312請求驗(yàn)證請求代碼的執(zhí)行時(shí),驗(yàn)證提供器312可以確定是否存在針對所請求驗(yàn) 證的對當(dāng)前用戶簡檔特定的預(yù)定規(guī)則。如果存在簡檔特定規(guī)則,則驗(yàn)證提供器312可以基 于預(yù)定的簡檔特定規(guī)則來執(zhí)行驗(yàn)證。如果不存在簡檔特定預(yù)定義規(guī)則,則驗(yàn)證提供器312 可以基于默認(rèn)預(yù)定規(guī)則來執(zhí)行驗(yàn)證。預(yù)定規(guī)則可以存儲在資源儲存庫406中。系統(tǒng)300可以按多種不同的方式實(shí)現(xiàn)。例如,雖然一些特征示為存儲在計(jì)算機(jī)可 讀存儲器中(例如,作為實(shí)現(xiàn)為計(jì)算機(jī)可執(zhí)行指令的邏輯或者作為存儲器中的數(shù)據(jù)結(jié)構(gòu)), 但是系統(tǒng)的全部或者部分及其邏輯和數(shù)據(jù)結(jié)構(gòu)可以跨其他機(jī)器可讀介質(zhì)分布存儲,或者從 其他及其可讀介質(zhì)讀取。介質(zhì)可以包括硬盤、軟盤、CD-ROM或者信號,諸如從網(wǎng)絡(luò)接收的信 號,或者在跨網(wǎng)絡(luò)通信的多個(gè)分組上接收的信號。系統(tǒng)300可以實(shí)現(xiàn)有附加的、不同的或者較少的組件。作為一個(gè)示例,處理器可以 實(shí)現(xiàn)為微處理器、微控制器、DSP、專用集成電路(ASIC)、離散邏輯或者其他類型的電路或者 邏輯的組合。作為另一示例,存儲器可以是DRAM、SRAM、閃存或者任何其他類型的存儲器。 系統(tǒng)的處理能力可以分步在多個(gè)組件上,諸如分布在多個(gè)處理器和存儲器上,可選地包括多個(gè)分布式處理系統(tǒng)。資源儲存庫、數(shù)據(jù)庫和其他數(shù)據(jù)結(jié)構(gòu)可以獨(dú)立存儲和管理,可以并 入單個(gè)存儲器或者數(shù)據(jù)庫中,可以按照多種不同的方式邏輯地或者物理地組織,并且可以 實(shí)現(xiàn)有不同類型的數(shù)據(jù)結(jié)構(gòu),諸如鏈表、散列表或者隱式存儲機(jī)制。邏輯(諸如程序或者電 路)可以跨若干存儲器和處理器分布地在多個(gè)程序之間組合或者分離,并且可以在諸如共 享庫(例如,動態(tài)鏈接庫(DLL))的庫中實(shí)現(xiàn)。DLL例如可以存儲準(zhǔn)備中間映射或者實(shí)現(xiàn)映 射上的搜索的代碼。作為另一示例,DLL本身可以提供系統(tǒng)、工具或者二者的全部或者某些 功能。作為一個(gè)特定示例,上述邏輯所執(zhí)行的處理可以利用一個(gè)或多個(gè)Microsoft Windows Workflow Foundation 技術(shù)來實(shí)現(xiàn)。過程可以在支持 Microsoft Windows Workflow Foundation 技術(shù)系統(tǒng)的任何環(huán)境中執(zhí)行。此類環(huán)境的示例包括運(yùn)行Windows 操作系統(tǒng)和Unix 操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)。雖然已經(jīng)描述了本發(fā)明的各種實(shí)施方式,但是對于本領(lǐng)域普通技術(shù)人員易見的 是,在本發(fā)明的范圍內(nèi),多種實(shí)施方式和實(shí)現(xiàn)是可能的。因此,本發(fā)明僅由所附權(quán)利要求書 及其等同限制。
權(quán)利要求
1.一種用于定制軟件應(yīng)用的方法,包括 在存儲器中存儲與用戶相關(guān)聯(lián)的簡檔;在所述存儲器中存儲多個(gè)狀態(tài),每個(gè)狀態(tài)與用戶界面相關(guān)聯(lián); 在所述存儲器中存儲多個(gè)轉(zhuǎn)移,所述轉(zhuǎn)移包括默認(rèn)轉(zhuǎn)移和簡檔特定轉(zhuǎn)移,每個(gè)轉(zhuǎn)移包 括要由工作流程序執(zhí)行的任務(wù);利用處理器執(zhí)行所述工作流程序,所述工作流程序包括當(dāng)執(zhí)行時(shí)使得所述處理器執(zhí)行 以下動作的邏輯標(biāo)識與所述用戶相關(guān)聯(lián)的簡檔; 顯示所述多個(gè)狀態(tài)中的狀態(tài)的所述用戶界面;從所述用戶接收可用于所述狀態(tài)的轉(zhuǎn)移輸入,其中所述轉(zhuǎn)移輸入與所述多個(gè)轉(zhuǎn)移中的 轉(zhuǎn)移相關(guān)聯(lián);確定是否存在對應(yīng)于所述用戶的簡檔的、與接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移; 如果存在對應(yīng)于所述用戶的簡檔的、與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移, 則獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的所述簡檔特定轉(zhuǎn)移作為獲取的轉(zhuǎn)移;如果不存在對應(yīng)于所述用戶的簡檔的、與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn) 移,則獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的默認(rèn)轉(zhuǎn)移作為所述獲取的轉(zhuǎn)移;以及 執(zhí)行包括在所述獲取的轉(zhuǎn)移中的任務(wù)。
2.如權(quán)利要求1所述的用于定制軟件應(yīng)用的方法,其中確定是否存在簡檔特定轉(zhuǎn)移的邏輯進(jìn)一步包括針對與所述接收的轉(zhuǎn)移輸入相關(guān) 聯(lián)的轉(zhuǎn)移來請求控制器的邏輯,其中所述控制器在所述存儲器中搜索對應(yīng)于所述用戶的簡 檔的、與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移;其中獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的所述簡檔特定轉(zhuǎn)移作為獲取的轉(zhuǎn)移的邏輯 進(jìn)一步包括使用所述控制器獲取所述簡檔特定轉(zhuǎn)移的邏輯;以及其中獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的默認(rèn)轉(zhuǎn)移作為獲取的轉(zhuǎn)移的邏輯進(jìn)一步包 括使用所述控制器獲取所述默認(rèn)轉(zhuǎn)移的邏輯。
3.如權(quán)利要求1所述的用于定制軟件應(yīng)用的方法,還包括在所述存儲器中存儲多個(gè)模板,其中顯示所述多個(gè)狀態(tài)中的所述狀態(tài)的用戶界面的邏輯進(jìn)一步包括從所述存儲器獲 取所述多個(gè)模板中的模板的邏輯,以及將獲取的模板應(yīng)用至所述用戶界面的邏輯。
4.如權(quán)利要求3所述的用于定制軟件應(yīng)用的方法, 其中所述多個(gè)模板包括默認(rèn)模板和簡檔特定模板, 其中獲取所述模板的邏輯進(jìn)一步包括以下邏輯確定是否存在與對應(yīng)于所述用戶的簡檔的、與所述用戶界面相關(guān)聯(lián)的簡檔特定模板; 如果存在對應(yīng)于所述用戶的簡檔的、與所述用戶界面相關(guān)聯(lián)的簡檔特定模板,則獲取 所述簡檔特定模板作為獲取的模板;如果不存在對應(yīng)于所述用戶的簡檔的、與所述用戶界面相關(guān)聯(lián)的簡檔特定模板,則獲 取所述默認(rèn)模板作為所述獲取的模板。
5.如權(quán)利要求3所述的用于定制軟件應(yīng)用的方法,其中所述多個(gè)模板中的模板包括默認(rèn)部分和簡檔特定部分,其中應(yīng)用所述模板的邏輯進(jìn)一步包括邏輯以 應(yīng)用默認(rèn)部分;以及如果存在對應(yīng)于所述用戶的簡檔的簡檔特定部分,則應(yīng)用所述簡檔特定部分。
6.如權(quán)利要求1所述的用于定制軟件應(yīng)用的方法,其中所述簡檔特定轉(zhuǎn)移包括要由所 述工作流程序執(zhí)行的簡檔特定任務(wù)。
7.如權(quán)利要求1所述的用于定制軟件應(yīng)用的方法,其中要由所述工作流程序執(zhí)行的所 述任務(wù)包括繼續(xù)到所述多個(gè)狀態(tài)中的下一狀態(tài)。
8.一種用于定制軟件應(yīng)用的系統(tǒng),包括 處理器;計(jì)算機(jī)可讀存儲器,其耦合至所述處理器,并且存儲與用戶相關(guān)聯(lián)的簡檔;多個(gè)狀態(tài),每個(gè)狀態(tài)與用戶界面相關(guān)聯(lián);多個(gè)轉(zhuǎn)移,包括默認(rèn)轉(zhuǎn)移和簡檔特定轉(zhuǎn)移,每個(gè)轉(zhuǎn)移包括要由工作流程序執(zhí)行的任務(wù);工作流程序,所述工作流程序包括當(dāng)執(zhí)行時(shí)使得處理器執(zhí)行以下動作的邏輯 標(biāo)識與所述用戶相關(guān)聯(lián)的簡檔;基于用于顯示所述用戶界面的信息來顯示所述多個(gè)狀態(tài)中的狀態(tài)的所述用戶界面; 從所述用戶接收可用于所述狀態(tài)的轉(zhuǎn)移輸入,其中所述轉(zhuǎn)移輸入與所述多個(gè)轉(zhuǎn)移中的 轉(zhuǎn)移相關(guān)聯(lián);確定是否存在對應(yīng)于所述用戶的簡檔的、與接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移; 如果存在對應(yīng)于所述用戶的簡檔的、與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移, 則獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移作為獲取的轉(zhuǎn)移;如果不存在對應(yīng)于所述用戶的簡檔的、與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn) 移,則獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的所述默認(rèn)轉(zhuǎn)移作為所述獲取的轉(zhuǎn)移;以及 執(zhí)行包括在所述獲取的轉(zhuǎn)移中的任務(wù)。
9.如權(quán)利要求8所述的用于定制軟件應(yīng)用的系統(tǒng),其中確定是否存在簡檔特定轉(zhuǎn)移的邏輯進(jìn)一步包括針對與所述接收的轉(zhuǎn)移輸入相關(guān) 聯(lián)的轉(zhuǎn)移來請求控制器的邏輯,其中所述控制器在所述存儲器中搜索對應(yīng)于所述用戶的簡 檔的、與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移;其中獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移作為所述獲取的轉(zhuǎn)移的邏輯 進(jìn)一步包括使用所述控制器獲取所述簡檔特定轉(zhuǎn)移的邏輯;以及其中獲取與所述接收的轉(zhuǎn)移輸入相關(guān)聯(lián)的默認(rèn)轉(zhuǎn)移作為所述獲取的轉(zhuǎn)移的邏輯進(jìn)一 步包括使用所述控制器獲取所述默認(rèn)轉(zhuǎn)移的邏輯。
10.如權(quán)利要求8所述的用于定制軟件應(yīng)用的系統(tǒng),所述存儲器還存儲多個(gè)模板, 其中顯示所述多個(gè)狀態(tài)中的狀態(tài)的用戶界面的邏輯進(jìn)一步包括從所述存儲器獲取所述多個(gè)模板中的模板的邏輯,以及將獲取的模板應(yīng)用至所述用戶界面的邏輯。
11.如權(quán)利要求10所述的用戶定制軟件應(yīng)用的系統(tǒng), 其中所述多個(gè)模板包括默認(rèn)模板和簡檔特定模板, 其中獲取模板的邏輯進(jìn)一步包括用于以下動作的邏輯確定是否存在對應(yīng)于所述用戶的簡檔的、與所述用戶界面相關(guān)聯(lián)的簡檔特定模板; 如果存在對應(yīng)于所述用戶的簡檔的、與所述用戶界面相關(guān)聯(lián)的簡檔特定模板,則獲取 所述簡檔特定模板作為獲取的模板;如果不存在對應(yīng)于所述用戶的簡檔的、與所述用戶界面相關(guān)聯(lián)的簡檔特定模板,則獲 取所述默認(rèn)模板作為所述獲取的模板。
12.如權(quán)利要求10所述的用于定制軟件應(yīng)用的系統(tǒng),其中所述多個(gè)模板中的所述模板包括默認(rèn)部分和簡檔特定部分, 其中將所述模板應(yīng)用至所述用戶界面的邏輯進(jìn)一步包括用于以下動作的邏輯以 應(yīng)用所述默認(rèn)部分;以及如果所述簡檔特定部分對應(yīng)于所述用戶的簡檔,則應(yīng)用所述簡檔特定部分。
13.如權(quán)利要求8所述的用于定制軟件應(yīng)用的系統(tǒng),其中所述簡檔特定轉(zhuǎn)移包括要由 所述工作流程序執(zhí)行的簡檔特定任務(wù)。
14.如權(quán)利要求8所述的用于定制軟件應(yīng)用的系統(tǒng),其中要由所述工作流程序執(zhí)行的 任務(wù)包括繼續(xù)到所述多個(gè)狀態(tài)中的下一狀態(tài)。
15.一種用于定制軟件應(yīng)用的方法,包括 在存儲器中存儲于用戶相關(guān)聯(lián)的簡檔; 在所述存儲器中存儲站點(diǎn)地圖資源文件,其中所述站點(diǎn)地圖資源文件包括表示工作流的狀態(tài)的節(jié)點(diǎn),以及 其中所述節(jié)點(diǎn)包括標(biāo)識與簡檔相關(guān)聯(lián)的用戶對所述節(jié)點(diǎn)的可訪問性的標(biāo)簽,以及 所述節(jié)點(diǎn)表示的狀態(tài)的狀態(tài)信息;從工作流程序接收針對所述節(jié)點(diǎn)的狀態(tài)的狀態(tài)信息的請求; 標(biāo)識與所述用戶相關(guān)聯(lián)的所述簡檔;在所述站點(diǎn)地圖資源文件中搜索表示包括請求的狀態(tài)信息的狀態(tài)的節(jié)點(diǎn); 標(biāo)識表示包括所述請求的狀態(tài)信息的狀態(tài)的節(jié)點(diǎn)的標(biāo)簽;基于表示請求的狀態(tài)的節(jié)點(diǎn)的標(biāo)簽來確定所述用戶對所述請求的狀態(tài)的可訪問性;以及如果確定所述用戶可訪問所述請求的狀態(tài),則向所述工作流程序傳送所述狀態(tài)信息。
16.如權(quán)利要求15所述的用于定制軟件應(yīng)用的方法,其中所述站點(diǎn)地圖資源文件進(jìn)一 步包括表示所述工作流的狀態(tài)的節(jié)點(diǎn)的父節(jié)點(diǎn),其中所述父節(jié)點(diǎn)包括標(biāo)識與簡檔相關(guān)聯(lián)的 用戶對所述父節(jié)點(diǎn)的可訪問性的標(biāo)簽,所述方法還包括 標(biāo)識所述父節(jié)點(diǎn)的所述標(biāo)簽;基于所述父節(jié)點(diǎn)的所述標(biāo)簽來確定所述用戶對所述請求的狀態(tài)的可訪問性。
17.一種用于定制軟件應(yīng)用的系統(tǒng),包括 應(yīng)用組件;與所述應(yīng)用組件通信的資源管理器,所述資源管理器存儲多個(gè)資源,所述多個(gè)資源包 括默認(rèn)資源和簡檔特定資源;與所述應(yīng)用組件和所述資源管理器通信的資源儲存庫;以及與所述資源管理器通信的簡檔管理器;其中所述資源管理器從所述應(yīng)用組件接收針對所述多個(gè)資源中的資源的請求, 從所述簡檔管理器接收與用戶相關(guān)聯(lián)的簡檔信息,確定對應(yīng)于所述用戶的簡檔的、與請求的資源相關(guān)聯(lián)的簡檔特定資源是否存在于所述 資源儲存庫中;如果對應(yīng)于所述用戶的簡檔的、與所述請求的資源相關(guān)聯(lián)的簡檔特定資源存在于所述 資源儲存庫中,則向所述應(yīng)用組件提供對應(yīng)于所述用戶的簡檔的、與所述請求的資源相關(guān) 聯(lián)的所述簡檔特定資源作為所述請求的資源;以及如果不存在對應(yīng)于所述用戶的簡檔的、與所述請求的資源相關(guān)聯(lián)的簡檔特定資源,則 向所述應(yīng)用組件提供對與所述請求的資源相關(guān)聯(lián)的工作流引擎而言默認(rèn)的、對應(yīng)于所述用 戶的簡檔的資源作為所述請求的資源。
18.如權(quán)利要求17所述的用于定制軟件應(yīng)用的系統(tǒng), 其中所述資源管理器包括控制器;其中所述多個(gè)資源還包括多個(gè)轉(zhuǎn)移,所述多個(gè)轉(zhuǎn)移包括默認(rèn)轉(zhuǎn)移和簡檔特定轉(zhuǎn)移,每 個(gè)轉(zhuǎn)移包括要由所述應(yīng)用組件執(zhí)行的任務(wù);以及其中所述默認(rèn)資源和所述簡檔特定資源分別包括默認(rèn)轉(zhuǎn)移和簡檔特定轉(zhuǎn)移。
19.如權(quán)利要求17所述的用于定制軟件應(yīng)用的系統(tǒng), 其中所述資源管理器包括控制器;其中所述多個(gè)資源還包括多個(gè)狀態(tài),所述多個(gè)狀態(tài)包括默認(rèn)狀態(tài)和簡檔特定狀態(tài),每 個(gè)狀態(tài)與用戶界面相關(guān)聯(lián);以及其中所述默認(rèn)資源和所述簡檔特定資源分別包括默認(rèn)狀態(tài)和簡檔特定狀態(tài)。
20.如權(quán)利要求17所述的用于定制軟件應(yīng)用的系統(tǒng), 其中所述資源管理器包括模板管理器;其中所述多個(gè)資源還包括多個(gè)模板,所述多個(gè)模板包括默認(rèn)模板和簡檔特定模板; 其中所述默認(rèn)資源和所述簡檔特定資源分別包括所述默認(rèn)模板和所述簡檔特定模板;其中從所述應(yīng)用組件針對所述多個(gè)資源中的資源的請求包括針對所述多個(gè)模板中的 模板的請求;以及其中所述應(yīng)用組件將請求的模板應(yīng)用至用戶界面。
21.如權(quán)利要求20所述的用于定制軟件應(yīng)用的系統(tǒng),其中所述多個(gè)模板中的模板包括默認(rèn)部分和簡檔特定部分。
22.如權(quán)利要求18所述的用于定制軟件應(yīng)用的系統(tǒng),其中所述簡檔特定轉(zhuǎn)移包括要由 所述應(yīng)用組件執(zhí)行的簡檔特定任務(wù)。
23.如權(quán)利要求18所述的用于定制軟件應(yīng)用的系統(tǒng),其中要由所述應(yīng)用組件執(zhí)行的所 述任務(wù)包括從一個(gè)狀態(tài)繼續(xù)到第二狀態(tài)的任務(wù),其中狀態(tài)與用戶界面相關(guān)聯(lián)。
全文摘要
本發(fā)明涉及使用簡檔的WEB門戶應(yīng)用定制方法和系統(tǒng)。具體地,使用簡檔的web門戶應(yīng)用定制方法和系統(tǒng)允許開發(fā)者向術(shù)語不同用戶簡檔的用戶顯示不同的功能以及不同的外觀和感覺。具體地,該方法允許開發(fā)者定義默認(rèn)轉(zhuǎn)移和簡檔特定轉(zhuǎn)移以及默認(rèn)狀態(tài)和簡檔特定狀態(tài)。在工作流引擎請求轉(zhuǎn)移之后,如果與用戶相關(guān)聯(lián)的簡檔特定轉(zhuǎn)移可用,則系統(tǒng)向工作流引擎透明地提供簡檔特定轉(zhuǎn)移。如果簡檔特定轉(zhuǎn)移不可用,則系統(tǒng)向應(yīng)用提供默認(rèn)轉(zhuǎn)移。同樣地,根據(jù)用戶的簡檔以及簡檔特定狀態(tài)的可用性,系統(tǒng)向應(yīng)用透明地提供簡檔相關(guān)狀態(tài)。因此,該方法可以有效地和節(jié)省成本地實(shí)現(xiàn)高度可定制的功能以及外觀和感覺。
文檔編號G06F17/30GK102054021SQ201010530938
公開日2011年5月11日 申請日期2010年11月2日 優(yōu)先權(quán)日2009年11月2日
發(fā)明者C·科米斯, N·伊昂弗里達(dá), P·卡迪納爾 申請人:埃森哲環(huán)球服務(wù)有限公司