相關(guān)申請的交叉引用本申請要求于2015年12月18日在美國專利和商標(biāo)局提交的名稱為“軟件即服務(wù)參考進(jìn)程擴(kuò)展驗證框架”的第14/974,713號的優(yōu)先權(quán),并且要求于2015年12月18日在美國專利和商標(biāo)局提交的名稱為“受控參考流程可擴(kuò)展性框架”的第14/974,662號的優(yōu)先權(quán);其整體內(nèi)容通過引用被合并于此。本發(fā)明涉及軟件即服務(wù)參考流程擴(kuò)展驗證框架。
背景技術(shù):
:多種類型的軟件即服務(wù)(saas)企業(yè)系統(tǒng)典型地在行業(yè)中可用。系統(tǒng)的大部分將它們的核心參考流程記錄為信息流程,例如,作為它們產(chǎn)品文檔的一部分來運(yùn)輸。典型的saas產(chǎn)品不提供對流程擴(kuò)展進(jìn)行準(zhǔn)確建模和約束流程擴(kuò)展的行為的能力,例如,以諸如業(yè)務(wù)流程建模和標(biāo)注(bpmn)的業(yè)務(wù)流程建模語言進(jìn)行建模。多種學(xué)術(shù)方法可以用于應(yīng)對業(yè)務(wù)流程模型和工作流程的變化的業(yè)務(wù)流程管理(bpm)研究領(lǐng)域。然而,這些研究并不應(yīng)對約束在基于saas的企業(yè)軟件的上下文中流程擴(kuò)展的行為。在一些實(shí)施例中,建立在時間邏輯和模型檢查原則上的更好的方案能夠被使用作為基礎(chǔ)方法。例如,解決方案可以在包含在擴(kuò)展片段中的活動的類型級別上制定平臺擴(kuò)展約束。技術(shù)實(shí)現(xiàn)要素:本公開一般地描述了用于確認(rèn)核心流程模型的擴(kuò)展的計算機(jī)實(shí)施的方法、軟件、以及系統(tǒng)。例如,擴(kuò)展點(diǎn)可以被提供給與核心流程相關(guān)聯(lián)的核心流程模型。擴(kuò)展點(diǎn)可以由核心流程模型提供者預(yù)先定義和存儲。擴(kuò)展點(diǎn)可以用規(guī)定了在擴(kuò)展點(diǎn)插入到核心流程模型中的擴(kuò)展的受限制的行為的約束來注釋。擴(kuò)展點(diǎn)可以遵循流程擴(kuò)展約束定義語言。擴(kuò)展點(diǎn)可以由核心流程模型提供者披露給核心流程模型的用戶,例如,展示在用戶界面中??梢詮挠脩艚邮沼糜趯⑺x擇的擴(kuò)展插入到核心流程模型的實(shí)例中的指令。每個所選擇的擴(kuò)展可以包括用于在核心流程運(yùn)行時將在相應(yīng)的擴(kuò)展點(diǎn)運(yùn)行的、擴(kuò)展的用戶定制的行為。核心流程模型的實(shí)例可以被確認(rèn)。對于每一個擴(kuò)展,可以針對于由約束規(guī)定的受限制的行為來確認(rèn)用戶定制的行為。在一些實(shí)施例中,一種計算機(jī)實(shí)施的方法包括:提供用于與核心流程相關(guān)聯(lián)的核心流程模型的擴(kuò)展點(diǎn),擴(kuò)展點(diǎn)由核心流程模型提供者預(yù)先定義和存儲,并且用規(guī)定了在擴(kuò)展點(diǎn)插入到核心流程模型中的擴(kuò)展的受限制的行為的約束來注釋,擴(kuò)展點(diǎn)遵循流程擴(kuò)展約束定義語言;由核心流程模型提供者將擴(kuò)展點(diǎn)披露給核心流程模型的用戶;從用戶接收用于將所選擇的擴(kuò)展插入到核心流程模型的實(shí)例中的指令,每個所選擇的擴(kuò)展包括用于在核心流程運(yùn)行時將在相應(yīng)的擴(kuò)展點(diǎn)運(yùn)行的擴(kuò)展的用戶定制的行為;以及確認(rèn)核心流程模型的實(shí)例,包括對于每個擴(kuò)展,針對于由約束規(guī)定的受限制的行為確認(rèn)用戶定制的行為。前述以及其它實(shí)施方式中的每一個可以選擇性地包括一個或多個以下特征,無論是單獨(dú)的還是組合的。特別是,一個實(shí)施方式可以包括所有以下特征:在第一方面,可與先前任何方面組合,該方法還包括,在確認(rèn)核心流程模型的實(shí)例之前,將核心流程變換為不同的格式。在第二方面,可與先前任何方面組合,確認(rèn)核心流程模型的實(shí)例包括,基于計算樹邏輯(ctl)和屬性規(guī)范模型的流程擴(kuò)展模型檢查。在第三方面,可與先前任何方面組合,確認(rèn)核心流程模型的實(shí)例包括,使用指示用于擴(kuò)展任務(wù)實(shí)例的確認(rèn)規(guī)則的相關(guān)性和行為的約束語義。在第四方面,可與先前任何方面組合,擴(kuò)展點(diǎn)是包括在軟件即服務(wù)(saas)中的應(yīng)用域的一部分,該軟件即服務(wù)(saas)作為擴(kuò)展由saas提供者提供給客戶和伙伴的參考流程的基于云的企業(yè)系統(tǒng)。本說明書的主題的一個或多個實(shí)施方式的細(xì)節(jié)在附圖和下面的描述中闡述。所述主題的其他特征、方面、以及優(yōu)點(diǎn)將從描述、附圖、以及權(quán)利要求中變得清晰。附圖說明圖1是示出根據(jù)實(shí)施方式的用于軟件即服務(wù)(saas)企業(yè)系統(tǒng)的saas參考流程擴(kuò)展驗證框架的示例系統(tǒng)體系結(jié)構(gòu)的框圖。圖2是示出根據(jù)實(shí)施方式的用于saas參考流程擴(kuò)展驗證框架的示例開發(fā)/定義流程的框圖。圖3a是示出根據(jù)實(shí)施方式的采樣轉(zhuǎn)換系統(tǒng)的示例的框圖。圖3b是示出根據(jù)實(shí)施方式的對應(yīng)于轉(zhuǎn)換系統(tǒng)300的無限計算樹的示例的框圖。圖4是示出根據(jù)實(shí)施方式的平臺擴(kuò)展約束的示例的框圖。圖5是示出根據(jù)實(shí)施方式的用于流程擴(kuò)展約束定義語言的示例元模型的框圖。圖6是示出根據(jù)實(shí)施方式的用于用擴(kuò)展點(diǎn)604注釋流程的示例用戶界面的框圖。圖7是根據(jù)實(shí)施方式的示例流程擴(kuò)展模型檢查算法的流程圖。圖8是示出根據(jù)實(shí)施方式的用于支付流程擴(kuò)展的擴(kuò)展邏輯的示例流程的框圖。圖9是示出根據(jù)實(shí)施方式的以佩特里網(wǎng)格式化(petrinetformalization)標(biāo)記示出的支付流程擴(kuò)展的示例的框圖。圖10是示出根據(jù)實(shí)施方式的用于平臺擴(kuò)展約束的示例生成的計算樹邏輯(ctl)公式的框圖。圖11是示出根據(jù)實(shí)施方式的、從現(xiàn)有業(yè)務(wù)流程建模和標(biāo)記(bpmn)建模工具擴(kuò)展的平臺擴(kuò)展約束定義編輯器1100的示例內(nèi)容的框圖。圖12是根據(jù)實(shí)施方式的用于確認(rèn)被插入到核心流程模型中的擴(kuò)展的示例方法的流程圖。各個附圖中相似的參考標(biāo)號和名稱指示相似的元素。具體實(shí)施方式本公開一般地描述了用于確認(rèn)核心流程模型的擴(kuò)展的計算機(jī)實(shí)施的方法、軟件、以及系統(tǒng)。例如,擴(kuò)展點(diǎn)被提供給與核心流程相關(guān)聯(lián)的核心流程模型,擴(kuò)展點(diǎn)由核心流程模型提供者預(yù)先定義和存儲,并且用規(guī)定了在擴(kuò)展點(diǎn)被插入到核心流程模型中的擴(kuò)展的受限制的行為的約束來注釋,擴(kuò)展點(diǎn)遵循流程擴(kuò)展約束定義語言。擴(kuò)展點(diǎn)由核心流程模型提供者披露給核心流程模型的用戶。從用戶接收到將所選擇的擴(kuò)展插入核心流程模型的實(shí)例中的指令,每個所選擇的擴(kuò)展包括在核心流程運(yùn)行時對于將在相應(yīng)的擴(kuò)展點(diǎn)運(yùn)行的擴(kuò)展的用戶定制的行為。核心流程模型的實(shí)例被確認(rèn),對于每個擴(kuò)展,包括針對于由約束規(guī)定的受限制的行為,確認(rèn)用戶定制的行為。在基于云的企業(yè)系統(tǒng)中,同一個企業(yè)應(yīng)用可以被許多客戶消費(fèi),諸如軟件即服務(wù)(saas)遞送模型。典型地,基于云的企業(yè)系統(tǒng)對客戶的特定需求的適配是一種核心要求。為此,saas提供者可以披露綜合配置和擴(kuò)展能力(例如,平臺即服務(wù))。這些能力中的一個關(guān)鍵挑戰(zhàn)是通過客戶和伙伴的參考流程的擴(kuò)展(例如,由saas提供者運(yùn)送(shipped))。在一些實(shí)施方式中,當(dāng)多個客戶共享同一個saas平臺時,saas提供者可以約束插件擴(kuò)展的行為,從而saas平臺的總體完整性和穩(wěn)定性得到保證(例如,受控的參考流程擴(kuò)展性)。本公開描述了saas參考流程擴(kuò)展驗證框架,其包括了超過工業(yè)和科學(xué)上目前最先進(jìn)系統(tǒng)的以下貢獻(xiàn)。首先,流程擴(kuò)展約束定義語言可以允許由核心saas參考流程模型披露的擴(kuò)展點(diǎn)用限制插入的擴(kuò)展的行為的約束來注釋。此域特定語言可以解決saas提供者定義關(guān)于流程擴(kuò)展的行為的約束的需求。例如,該語言可以基于時間邏輯,并且可以利用特定的支持來增強(qiáng)現(xiàn)有屬性規(guī)范模式,例如,對于包含在流程擴(kuò)展中的活動在類型級別制定約束。第二,流程擴(kuò)展模型檢查算法可以允許將增強(qiáng)的屬性規(guī)范模式變換為計算樹邏輯(ctl)。在業(yè)務(wù)流程建模和標(biāo)記(bpmn)元素的核心組中建模的流程擴(kuò)展可以被變換為例如佩特里網(wǎng),并且通過應(yīng)用模型檢查原則來針對于平臺約束進(jìn)行檢查。圖1是示出根據(jù)實(shí)施方式的用于saas企業(yè)系統(tǒng)100的saas參考流程擴(kuò)展驗證框架的系統(tǒng)體系結(jié)構(gòu)的示例的框圖。例如,圖1示出了框架的組件和它們的互動。本公開提出的組件包括,例如,流程擴(kuò)展驗證引擎102、bpmn到佩特里網(wǎng)變換組件104、屬性規(guī)范模式到ctl變換組件106、平臺擴(kuò)展約束108(例如,來自saas參考流程儲存庫110)、以及平臺擴(kuò)展約束定義編輯器112(例如,來自saas提供者內(nèi)容授權(quán)系統(tǒng)114)。目前最先進(jìn)組件中可再用的組件包括佩特里網(wǎng)模型檢查器116。目前最先進(jìn)組件中可再用并且通過本公開擴(kuò)展的組件可以包括,例如,流程擴(kuò)展建模器118(例如,來自流程擴(kuò)展建模環(huán)境120)、流程擴(kuò)展122、核心流程124(例如,bpmn)、以及參考流程授權(quán)編輯器126。saas企業(yè)系統(tǒng)100可以服務(wù)至少一個saas客戶/伙伴128和至少一個saas提供者130。其它配置是可能的。圖2是示出根據(jù)實(shí)施方式的用于saas參考流程擴(kuò)展驗證框架的示例開發(fā)/定義流程200的框圖。例如,流程擴(kuò)展模型檢查方案的基本原理示出在圖2中。saas客戶或伙伴202可以開發(fā)需要被驗證的流程擴(kuò)展204,例如,用以確定其是否遵守由saas提供者206對于特定擴(kuò)展點(diǎn)定義的約束??蛇x地,框架預(yù)見整合由法定權(quán)威(legalauthorities)208定義的約束和符合性規(guī)則。流程擴(kuò)展可以在bpmn中建模,并且作為模型檢查方案的先決條件,可以被變換為佩特里網(wǎng)格式。在一些實(shí)施方式中,框架可以支持至少兩個不同類別的符合性(compliance)檢查,例如,使用核心平臺擴(kuò)展約束210的符合性檢查,以及使用一般域知識212的符合性檢查。例如,在使用核心平臺擴(kuò)展約束210的符合性檢查中,saas提供者206可以用定義了允許(不允許)擴(kuò)展做什么的平臺擴(kuò)展約束來充實(shí)(enrich)擴(kuò)展點(diǎn)。流程擴(kuò)展模型檢查214可以被提供,其驗證流程擴(kuò)展是否遵循這些限制。例如,這能夠保證核心saas企業(yè)系統(tǒng)只在定義的邊界內(nèi)擴(kuò)展(例如,提供穩(wěn)定性)。例如,對于使用一般域知識212的符合性檢查,約束可以來源于公司范圍的設(shè)計指南。而且,符合性要求可以來源于質(zhì)量標(biāo)準(zhǔn)和法律法規(guī),例如,來源于薩班斯法案(sarbanes-oxley)、新巴塞爾資本協(xié)定(baselii)、或iso9000。這些和/或其他法規(guī)可以定義業(yè)務(wù)流程的符合性要求,例如,以保證流程擴(kuò)展符合這些法規(guī)。為了實(shí)施這些原理,本公開描述了用于屬性規(guī)范的流程擴(kuò)展約束定義語言以及相應(yīng)的流程擴(kuò)展模型檢查算法。在一些實(shí)施方式中,流程擴(kuò)展模型檢查可以基于一些基礎(chǔ),諸如,ctl基礎(chǔ)和屬性規(guī)范模式基礎(chǔ)。在ctl基礎(chǔ)中,例如,系統(tǒng)模型可以以毫無疑義的方式描述系統(tǒng)的行為。例如,系統(tǒng)可以使用描述了系統(tǒng)如何從一個狀態(tài)進(jìn)化到另一個狀態(tài)的狀態(tài)和轉(zhuǎn)換的有限集合來抽象。系統(tǒng)要求可以典型地使用基于時間邏輯的屬性規(guī)范語言來描述。模型檢查可以被用作驗證技術(shù),其考察所有可能的系統(tǒng)狀態(tài)以便進(jìn)行檢查,例如,某一屬性是否被滿足,或不被滿足。這個方案可以建立在ctl上,作為格式化平臺擴(kuò)展約束的基礎(chǔ)。在轉(zhuǎn)換系統(tǒng)基礎(chǔ)中,例如,轉(zhuǎn)換系統(tǒng)ts可以描述軟件系統(tǒng)的行為,并且可以通過以下元組來定義:ts=(s,act,→,i,ap,l)(1)其中s是狀態(tài)的有限集合,act是動作的集合,是轉(zhuǎn)換關(guān)系,是初始狀態(tài)的集合,ap是原子命題(atomicproposition)的集合,而l:s→2ap是標(biāo)記函數(shù)。狀態(tài)s∈s可以在某些時刻描述系統(tǒng)的一些信息。動作α∈act可以描述兩個狀態(tài)之間的轉(zhuǎn)換。圖3a是示出根據(jù)實(shí)施方式的采樣轉(zhuǎn)換系統(tǒng)300的示例的框圖。圖3b是示出根據(jù)實(shí)施方式的對應(yīng)于轉(zhuǎn)換系統(tǒng)300的無限計算樹302的示例的框圖。例如,轉(zhuǎn)換系統(tǒng)300和相應(yīng)的無限計算樹302可以從狀態(tài)s0304開始。標(biāo)記函數(shù)l涉及對轉(zhuǎn)換系統(tǒng)的任何狀態(tài)s的原子命題的集合(s)∈2ap。(s)恰好代表狀態(tài)s滿足的那些原子命題a∈ap。給定φ是命題邏輯公式,然后狀態(tài)s滿足公式φ,當(dāng)且僅當(dāng),由(s)導(dǎo)致的評估使得公式φ為真??s寫“iff”代表“ifandonlyif”(當(dāng)且僅當(dāng)),而2ap表示ap的冪集。表1總結(jié)了基本的ctl公式。假設(shè)ts=(s,act,→,i,ap,l)是轉(zhuǎn)換系統(tǒng),并且假設(shè)(si,si+1,…)是從si∈出發(fā)的路徑。假設(shè)和ω∈ap是原子命題。表1:ctl公式雖然屬性規(guī)范語言,諸如ctl,可以提供非常強(qiáng)大的工具,用于定義行為約束,但是saas提供者和客戶可能難于使用該語言,因為需要堅實(shí)的數(shù)學(xué)背景。例如,這個限制可以提供使用屬性規(guī)范模式作為平臺擴(kuò)展約束語言中的基礎(chǔ)的動機(jī)。例如,屬性規(guī)范模式可以是關(guān)于系統(tǒng)的有限狀態(tài)模型中的可準(zhǔn)許的狀態(tài)/事件序列的共同出現(xiàn)的要求的一般化的描述。每個屬性規(guī)范可以至少由模式和范圍組成。例如,模式部分可以規(guī)定哪些必須發(fā)生,而范圍部分可以規(guī)范何時模式必須保持。每個屬性規(guī)范模式可以包括關(guān)于如何將模式映射到正式語言的描述,例如,支持到ctl的映射。表2總結(jié)了模式,例如,模式可以被劃分為發(fā)生和次序(order)模式。符號p和q代表系統(tǒng)模型的給定狀態(tài)/事件。模式類型語義不存在發(fā)生p不在范圍內(nèi)出現(xiàn)通用性發(fā)生p在范圍內(nèi)始終出現(xiàn)存在發(fā)生p必須在范圍內(nèi)出現(xiàn)有界存在發(fā)生p必須在范圍內(nèi)至少/準(zhǔn)確地/至多出現(xiàn)k次優(yōu)先次序p必須總是在范圍內(nèi)領(lǐng)先q響應(yīng)次序p必須總是在范圍內(nèi)跟隨q表2:模式層級范圍可以定義,例如,用于模式的開始和結(jié)束狀態(tài)/事件(例如,見表3)。符號p和q分別代表系統(tǒng)模型的給定狀態(tài)和事件?!叭值摹保?dāng)用作范圍時,意味著模式必須在整個系統(tǒng)運(yùn)行期間保持?!爸啊币馕吨J奖仨氃诮o定狀態(tài)p的第一次出現(xiàn)時保持?!爸蟆币馕吨J奖仨氃诮o定p的第一次出現(xiàn)之后保持?!爸g/和”意味著模式必須從給定p的出現(xiàn)保持到給定q的出現(xiàn)?!爸?直到”與“之間/和”相同,但是即使q從不出現(xiàn),模式也必須保持。表3:模式范圍平臺擴(kuò)展約束語言可以解決,例如,規(guī)定在saas企業(yè)系統(tǒng)的上下文中關(guān)于流程擴(kuò)展的任務(wù)類型的約束的具體要求。約束可以包括,例如,擴(kuò)展任務(wù)類型的符合性約束。為了解決用于受控參考流程的可擴(kuò)展性的要求,saas提供者可以制定某些符合性約束,這些符合性約束定義了什么流程擴(kuò)展是被允許(或不允許)做的,以便保證核心企業(yè)系統(tǒng)的總體穩(wěn)定性。當(dāng)核心saas企業(yè)系統(tǒng)的運(yùn)輸貨物被運(yùn)送時,例如,提供者不知道將被saas客戶和伙伴開發(fā)的具體的流程擴(kuò)展。然而,saas提供者需要制定流程擴(kuò)展當(dāng)被插入核心saas企業(yè)系統(tǒng)的某些擴(kuò)展點(diǎn)時需要滿足的約束。這包括對流程擴(kuò)展之內(nèi)發(fā)生某些活動的約束,例如,不存在從核心saas企業(yè)系統(tǒng)中刪除或更新數(shù)據(jù)的活動,以保證對于某一擴(kuò)展點(diǎn)的只讀擴(kuò)展。此外,在流程擴(kuò)展建模的上下文中的通用域知識可以約束某些活動的次序(例如,指示消息加密活動必須總是在來自外部消息的響應(yīng)消息被解密之前被運(yùn)行)??梢詫U(kuò)展任務(wù)的類型、而不是在任務(wù)實(shí)例制定約束。這要求用額外的語義來增強(qiáng)現(xiàn)有的屬性規(guī)范模式。圖4是示出根據(jù)實(shí)施方式的平臺擴(kuò)展約束的示例的框圖。例如,圖4示出了具有由三個擴(kuò)展任務(wù)組成的簡單的信用額度檢查的流程擴(kuò)展的兩個解釋語義,例如,bpmn格式402和佩特里網(wǎng)格式404。流程中的擴(kuò)展包括核準(zhǔn)步驟擴(kuò)展任務(wù)類型406和通知步驟擴(kuò)展任務(wù)類型408。擴(kuò)展以bpmn格式402示出并以相應(yīng)的佩特里網(wǎng)格式404示出。流程擴(kuò)展已經(jīng)被插入核心saas參考流程。這個示例表達(dá)了在流程擴(kuò)展模型pe中,當(dāng)應(yīng)用擴(kuò)展模式時,必須發(fā)生類型t=“approvalstep(批準(zhǔn)步驟)”的擴(kuò)展任務(wù)t。但是,流程擴(kuò)展模型可以包含與特定擴(kuò)展任務(wù)類型t相關(guān)的多個任務(wù)實(shí)例ti,并且這可以導(dǎo)致現(xiàn)有模式的兩個不同的解釋語義。在ctl中,例如,現(xiàn)有全局(existsglobally)模式可以使用公式(q)來表達(dá),其中,q代表流程擴(kuò)展模型必須滿足的某個狀態(tài)。在這種情況下,流程擴(kuò)展模型pe的狀態(tài)可以使用其佩特里網(wǎng)代表的標(biāo)記功能m:p→n來表達(dá)。均參考擴(kuò)展任務(wù)類型t的核準(zhǔn)任務(wù)實(shí)例t1和t2兩者已經(jīng)被映射到佩特里網(wǎng)中的位置p1和p2。參考圖4,當(dāng)將模式應(yīng)用到擴(kuò)展任務(wù)類型時,示出兩個解釋語義。首先,“所有任務(wù)實(shí)例”(alltaskinstances)約束語義410指示該約束與涉及給定擴(kuò)展任務(wù)類型t的所有任務(wù)實(shí)例ti有關(guān)。如果在pe的運(yùn)行期間存在狀態(tài),該模式對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型t成立,其中與擴(kuò)展任務(wù)類型t有關(guān)的所有任務(wù)實(shí)例ti被激活(運(yùn)行)。這意味著存在這樣一個狀態(tài),其中在p1和p2中存在令牌(token)。將現(xiàn)有全局模式的這個解釋語義應(yīng)用到我們的示例,流程擴(kuò)展模型將不滿足這個約束:((p1)>0∧(m(p2)>0))(2)其次,“至少一個任務(wù)實(shí)例”(atleastonetaskinstances)約束語義412指示該約束與涉及給定擴(kuò)展任務(wù)類型t的至少一個任務(wù)實(shí)例ti有關(guān)。如果在pe的運(yùn)行期間存在狀態(tài),則模式對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型t保持,其中,與擴(kuò)展任務(wù)類型t相關(guān)的至少一個任務(wù)實(shí)例ti被激活(運(yùn)行)。這意味著存在這樣一個狀態(tài),其中在p1和p2中存在令牌(token)。將現(xiàn)有全局模式的這個解釋語義應(yīng)用到我們的示例,流程擴(kuò)展模型將滿足這個約束:((p1)>0∨((p2)>0))(3)當(dāng)處理關(guān)于擴(kuò)展任務(wù)類型等級的約束時,考慮到對于每個屬性規(guī)范模式的全部兩個解釋語義可能是有益的。這里描述的流程擴(kuò)展約束定義語言可以擴(kuò)展屬性規(guī)范模式,從以額外的語義用于制定關(guān)于任務(wù)類型等級的約束到解決在線的saas流程擴(kuò)展要求。圖5是示出根據(jù)實(shí)施方式的用于流程擴(kuò)展約束定義語言的示例元模型500的框圖。元模型專注于模式的核心集合:存在502、不存在504、優(yōu)先506、以及響應(yīng)508。對于這些模式502-508中的每一個,添加參考給定擴(kuò)展任務(wù)中的全部實(shí)例或至少一個實(shí)例的語義。每個模式502-508的范圍510可以被限制在全局的512,意味著每個模式502-508必須在流程擴(kuò)展模型的全部運(yùn)行期間被保持。所有擴(kuò)展的模型可以被整合到saas核心企業(yè)系統(tǒng)元模型中、saas流程擴(kuò)展元模型和擴(kuò)展任務(wù)類型元模型中。類別514可以包括可以被導(dǎo)入516的結(jié)構(gòu),而剩余的類別可以由本公開提供。在一些實(shí)施方式中,可以使用改進(jìn)屬性規(guī)范模式的定義,例如,使用在saas參考流程擴(kuò)展性的上下文中所要求的、用于關(guān)于擴(kuò)展任務(wù)類型等級的平臺擴(kuò)展約束的公式的額外的語義。在一些實(shí)施方式中,模式可以包括以下類型的模式。定義1(例如,存在所有全局的任務(wù)實(shí)例(existencealltaskinstancesglobally))是這樣的模式,如果在pe的運(yùn)行期間存在狀態(tài),則該模式可以對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型t被保持,其中,與擴(kuò)展任務(wù)類型t相關(guān)的所有任務(wù)實(shí)例ti被激活(運(yùn)行)。佩特里網(wǎng)標(biāo)記功能(ti)可以確定在涉及ti的位置處令牌的數(shù)量。在等式4中,令n表示包含在與擴(kuò)展任務(wù)類型t相關(guān)的pe中的任務(wù)實(shí)例的總數(shù)。定義2(例如,存在至少一個全局的任務(wù)實(shí)例(existenceatleastonetaskinstanceglobally))是這樣的模式,如果在pe的運(yùn)行期間存在狀態(tài),則該模式可以對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型t被保持,其中,與擴(kuò)展任務(wù)類型t相關(guān)的至少一個任務(wù)實(shí)例ti被激活(運(yùn)行)。佩特里網(wǎng)標(biāo)記功能(ti)可以確定在涉及ti的位置處令牌的數(shù)量。定義3(例如,不存在所有全局的任務(wù)實(shí)例(absencealltaskinstancesglobally))是這樣的模式,如果在pe的運(yùn)行期間從不存在狀態(tài),則該模式可以對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型t被保持,其中,與擴(kuò)展任務(wù)類型t相關(guān)的所有任務(wù)實(shí)例ti被激活(運(yùn)行)。佩特里網(wǎng)標(biāo)記函數(shù)(ti)可以確定在涉及ti的位置處令牌的數(shù)量。在等式6中,令n表示包含在與擴(kuò)展任務(wù)類型t相關(guān)的pe中的任務(wù)實(shí)例的總數(shù)。定義4(例如,不存在至少一個全局的任務(wù)實(shí)例(absenceatleastonetaskinstanceglobally))是這樣的模式,如果在pe的運(yùn)行期間從不存在狀態(tài),則該模式可以對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型t被保持,其中,與擴(kuò)展任務(wù)類型t相關(guān)的至少一個任務(wù)實(shí)例ti被激活(運(yùn)行)。佩特里網(wǎng)標(biāo)記功能(ti)可以確定在涉及ti的位置處令牌的數(shù)量。定義5(例如,優(yōu)先至少一個全局任務(wù)實(shí)例(precedenceatleastonetaskinstanceglobally))是這樣的的模式,如果在pe的運(yùn)行期間存在狀態(tài),則該模式可以對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型ta和tb被保持,其中,與擴(kuò)展任務(wù)類型ta相關(guān)的至少一個任務(wù)實(shí)例tai先于與擴(kuò)展任務(wù)類型tb相關(guān)的至少第一個任務(wù)實(shí)例tbi。佩特里網(wǎng)標(biāo)記函數(shù)(tai)可以確定在涉及tai的位置處令牌的數(shù)量,而(tbi)可以確定在涉及tbi的位置處令牌的數(shù)量。原子命題可以定義為如下:定義6(例如,響應(yīng)至少一個任務(wù)實(shí)例(responseatleastonetaskinstance))是這樣的模式,如果在pe的運(yùn)行期間存在狀態(tài),則該模式可以對于流程擴(kuò)展pe和擴(kuò)展任務(wù)類型ta和tb被保持,其中,與擴(kuò)展任務(wù)類型ta相關(guān)的至少一個任務(wù)實(shí)例tai跟隨與擴(kuò)展任務(wù)類型tb相關(guān)的至少第一個任務(wù)實(shí)例tbi。佩特里網(wǎng)標(biāo)記功能(tai)可以確定在涉及tai的位置處令牌的數(shù)量,而佩特里網(wǎng)標(biāo)記功能(tbi)可以確定在涉及tbi的位置處令牌的數(shù)量。在一些實(shí)施方式中,原子命題可以定義為如下:圖6是示出根據(jù)實(shí)施方式的用于用擴(kuò)展點(diǎn)604注釋流程602的示例用戶界面600的框圖。例如,圖6示出了saas提供者如何能夠用使用擴(kuò)展606的平臺擴(kuò)展約束來注釋流程602(例如,核心流程“現(xiàn)場服務(wù)(fieldservice)”)的擴(kuò)展點(diǎn)604。例如,用戶界面600可以向用戶展示流程602,用戶可以從中選擇一個擴(kuò)展點(diǎn)604來注釋。注釋定義區(qū)域608可以被展示。注釋定義區(qū)域608中的控制610可以允許用戶選擇性地對于當(dāng)前選擇的擴(kuò)展點(diǎn)604添加新的約束或去除所選擇的約束。當(dāng)前約束可以列出在擴(kuò)展點(diǎn)約束列表612中。與約束相關(guān)聯(lián)的字段可以被定義在平臺擴(kuò)展約束定義編輯器614中。顯示在注釋定義區(qū)域608中的擴(kuò)展點(diǎn)名稱614(例如,ep-101)匹配所顯示的流程602上的擴(kuò)展點(diǎn)標(biāo)記616。例如,使用編輯器614,用戶可以定義屬性模式616、屬性范圍618、以及擴(kuò)展任務(wù)類型620(例如,更新核心數(shù)據(jù)步驟(updatecoredatastep))。在當(dāng)前示例中,更新核心數(shù)據(jù)步驟可以使用擴(kuò)展606來完成,在擴(kuò)展606中,用戶可以編輯支付流程擴(kuò)展邏輯624的功能性。用戶界面600的其它實(shí)施方式也是可能的。而且,注釋定義區(qū)域608的內(nèi)容對于不同類型的擴(kuò)展點(diǎn)可以是不同的。圖7是示出根據(jù)實(shí)施方式的示例流程擴(kuò)展模型檢查算法700的流程圖。例如,算法700使用映射到佩特里網(wǎng)模塊的頻繁使用的bpmn元素的核心集合。在702,流程擴(kuò)展模型被加載(例如,通過saas擴(kuò)展704)。在706,bpmn模型被自動地變換(例如,通過系統(tǒng)模型708)為佩特里網(wǎng)格式,其構(gòu)建了這個流程擴(kuò)展模型的格式驗證的基礎(chǔ)。算法可以生成至少兩個特定格式的佩特里網(wǎng)表示:低級別分析器的佩特里網(wǎng)模型和模型檢查工具。在710,核心流程模型(例如,bpmn)被加載(例如,通過saas核心712)。在714,平臺擴(kuò)展約束被從擴(kuò)展已經(jīng)被插入到其中(例如,通過屬性規(guī)范715)的各個擴(kuò)展點(diǎn)中提取。選擇性地,可以在716加載與一般域知識相關(guān)的相關(guān)平臺擴(kuò)展約束(例如,通過一般域語言718)。在720,約束和設(shè)計規(guī)則被提取。為了生成用于擴(kuò)展的屬性規(guī)范模式的ctl公式,算法可以首先確定用于在約束表達(dá)中使用的每個擴(kuò)展任務(wù)類型的所有任務(wù)實(shí)例。例如,在722,用于擴(kuò)展的任務(wù)類型的實(shí)例被提取,并且在726,ctl格式被生成。流程擴(kuò)展模型的佩特里網(wǎng)和ctl公式兩者被最終輸入用于模型檢查組件730,其中,在728,流程擴(kuò)展模型被驗證。為了驗證平臺擴(kuò)展約束,對于bpmn建模元素的子集到佩特里網(wǎng)可以定義映射。例如,由于有效的模型檢查算法和支持工具的可用性,佩特里網(wǎng)可以用作下層的格式化語言。bpmn標(biāo)準(zhǔn)可以提供非常廣泛的建模元素和圖類型。對于映射,可以選擇最頻繁使用的bpmn元素的核心集合。例如,基于與最頻繁使用的bpmn建模元素的關(guān)聯(lián)和對準(zhǔn)(alignment),選擇可以完成。為了能夠參考擴(kuò)展任務(wù)實(shí)例作為約束表達(dá)之內(nèi)的原子命題,bpmn活動、事件、以及網(wǎng)關(guān)可以被映射到佩特里網(wǎng)模型內(nèi)的明確位置,其可以再次在ctl公式內(nèi)被參考。詳細(xì)的映射在下面描述。映射可以利用沒有標(biāo)記(或者所謂的“沉默”轉(zhuǎn)換)的佩特里網(wǎng)轉(zhuǎn)換。例如,這些轉(zhuǎn)換捕獲外部用戶不能觀察到的內(nèi)部動作。內(nèi)部地,框架能夠生成經(jīng)典佩特里網(wǎng)格式,其然后可以被序列化為,例如,lola模型檢查工具的原本格式和能夠進(jìn)一步被用于仿真目的的佩特里網(wǎng)標(biāo)記語言。例如,在732,對是否要求進(jìn)一步的分析(例如,通過分析模塊734)進(jìn)行確定。在736,可以發(fā)生流程擴(kuò)展模型的仿真。變換方案可以與一個或多個映射規(guī)范相關(guān)。但是,主要區(qū)別在于,在映射中,bpmn元素活動、事件、以及網(wǎng)關(guān)可以被映射到明確的佩特里網(wǎng)位置,允許在與擴(kuò)展任務(wù)實(shí)例相關(guān)的ctl中制定原子命題。通過允許對于給定活動的多個出站和入站序列流程,這允許活動的分開和合并行為的建模非常靈活。例如,活動需要被限制在單入口和單出口模型。圖例738包括識別流程700中的步驟是自動的任務(wù)還是人工的任務(wù)的示例關(guān)鍵。在一些實(shí)施方式中,模型檢查工具(例如,lola)可以用來驗證流程擴(kuò)展模型是否滿足平臺擴(kuò)展約束的給定集合。例如,工具可以驗證在給定佩特里網(wǎng)上的各種各樣的行為屬性。例如,工具可以基于明確的狀態(tài)空間驗證(例如,可到達(dá)的狀態(tài)的完全枚舉法),并且工具可以影響(leverage)若干最先進(jìn)的狀態(tài)空間減少技術(shù)。例如,所述技術(shù)可以具有只暴露總體狀態(tài)空間的很小部分的效果,并且可以相對于被暴露的部分與原始狀態(tài)空間相等地進(jìn)行行為。工具還可以支持ctl公式的評估。例如,對于佩特里網(wǎng),公式可以遞歸地構(gòu)建,從而每個比較都是ctl公式。例如,比較可以由位置名稱、運(yùn)算符(例如,<><=>==<>#之一)、以及自然數(shù)組成。標(biāo)記可以滿足比較,例如,特定位置上的令牌的數(shù)量是否滿足對于給定數(shù)量的特定關(guān)系。如果網(wǎng)絡(luò)的初始標(biāo)記被滿足,則布爾運(yùn)算符and、or和not可以被使用,并且ctl公式可以是有效的。圖8是示出根據(jù)實(shí)施方式的用于支付流程擴(kuò)展的擴(kuò)展邏輯802的示例流程800的框圖。例如,bpmn標(biāo)記可以用于擴(kuò)展邏輯802。在這個示例中,由saas提供者運(yùn)送的核心參考流程已經(jīng)被擴(kuò)展,以便與用于信用卡驗證的外部支付卡提供者整合。每個擴(kuò)展任務(wù)804-816具有唯一標(biāo)識符(例如,et1)、名稱、以及在使用bpmn標(biāo)記符號中示出的、具有如通過圖例820指示的含義的相關(guān)擴(kuò)展任務(wù)類型818。在這個示例中,假設(shè)六個平臺擴(kuò)展約束需要被支付流程擴(kuò)展?jié)M足,如表4中所示:表4:采樣平臺擴(kuò)展約束采樣平臺約束可以被分組到兩個類別。第一類別(例如,來自擴(kuò)展點(diǎn)的約束)可以包括約束c1到c3。使用約束,例如,核心企業(yè)系統(tǒng)的提供者可以保證在擴(kuò)展點(diǎn)ep-101處擴(kuò)展的核心流程“現(xiàn)場服務(wù)和維修”的每個擴(kuò)展片段只能從核心系統(tǒng)中讀取數(shù)據(jù)。而且,流程擴(kuò)展將不被允許創(chuàng)建、刪除或更新核心數(shù)據(jù)。對于這個目的,三個約束c1到c3可以使用擴(kuò)展的absence模式來定義。第二類別(例如,來自一般域知識的約束)可以包括約束c4到c6。這三個采樣擴(kuò)展約束可以示出一般設(shè)計規(guī)則如何關(guān)于流程擴(kuò)展進(jìn)行驗證。例如,如果在流程擴(kuò)展中存在消息加密步驟和消息解密步驟,則消息加密步驟必須總是跟隨消息解密步驟。這個要求可以,例如,通過使用對兩個擴(kuò)展任務(wù)類型的擴(kuò)展的existence模式,以及通過使用擴(kuò)展的response模式來驗證相關(guān)任務(wù)的排序來表達(dá)。圖9是示出根據(jù)實(shí)施方式的以佩特里網(wǎng)格式化標(biāo)記示出的支付流程擴(kuò)展900的示例的框圖。例如,擴(kuò)展900是圖8中示出的bpmn模型的佩特里網(wǎng)格式化等同物,例如,根據(jù)上面介紹的映射規(guī)范變換到佩特里網(wǎng)格式。在一些實(shí)施方式中,在生成ctl公式以前,流程擴(kuò)展驗證引擎可以從流程擴(kuò)展模型中查詢所有的任務(wù)實(shí)例。對于每個任務(wù),相關(guān)的擴(kuò)展任務(wù)類型可以被確定,如表5中所示。id擴(kuò)展任務(wù)名稱擴(kuò)展任務(wù)類型et1取得信用卡令牌讀取核心數(shù)據(jù)步驟et2加密支付消息加密消息步驟et3更新支付歷史更新核心數(shù)據(jù)步驟et4請求支付授權(quán)調(diào)用服務(wù)步驟et5解密支付消息解密消息步驟et6批準(zhǔn)打折批準(zhǔn)步驟et7通知客戶通知步驟表5:支付擴(kuò)展流程-擴(kuò)展任務(wù)圖10是示出根據(jù)實(shí)施方式的用于平臺擴(kuò)展約束的示例生成的ctl公式的框圖。例如,對于參考(例如,在其操作數(shù)之一中)在流程擴(kuò)展模型中參考的擴(kuò)展任務(wù)類型的每個平臺擴(kuò)展約束(見表5),相應(yīng)的ctl公式可以如在圖10中所列出的那樣生成:圖10中列出的ctl公式可以使用,例如,模型檢查的句法來表達(dá)。表6示出了用于支付擴(kuò)展流程的示例驗證結(jié)果:表6:流程模型檢查結(jié)果圖11是示出根據(jù)實(shí)施方式的從現(xiàn)有bpmn建模工具擴(kuò)展的平臺擴(kuò)展約束定義編輯器1100的示例內(nèi)容的框圖。例如,對于核心流程1102,擴(kuò)展點(diǎn)1104被選擇。例如,該選擇可以導(dǎo)致平臺擴(kuò)展約束1108可以被定義在其中的屬性區(qū)域1106的顯示。圖12是根據(jù)實(shí)施方式的用于確認(rèn)插入到核心流程模型中的擴(kuò)展的示例方法1200的流程圖。為了表示清楚,以下描述一般地描述了在圖1-11的上下文中的方法1200。在1202,擴(kuò)展點(diǎn)被提供給與核心流程相關(guān)聯(lián)的核心流程模型,擴(kuò)展點(diǎn)被核心流程模型提供者預(yù)先定義和存儲,并且用規(guī)定了在擴(kuò)展點(diǎn)插入到核心流程模型中的擴(kuò)展的受限制的行為的約束來注釋,擴(kuò)展點(diǎn)以流程擴(kuò)展約束定義語言制定并且允許擴(kuò)展的運(yùn)行時行為的限制,其中,流程擴(kuò)展約束定義語言基于時間邏輯,并且以對于包括在流程擴(kuò)展中的活動的擴(kuò)展任務(wù)類型等級的公式約束的特定支持增強(qiáng)了現(xiàn)有屬性規(guī)范模式。例如,saas提供者130可以使用平臺擴(kuò)展約束定義編輯器112將擴(kuò)展點(diǎn)添加到核心流程模型。在另一個示例中,saas提供者206可以提供核心平臺擴(kuò)展約束210。例如,流程擴(kuò)展建模器118可以披露saas客戶/伙伴128能夠通過其定義用于核心流程的擴(kuò)展點(diǎn)的語言。基于saas客戶/伙伴128的輸入,例如,定義的擴(kuò)展點(diǎn)可以限制跟隨被擴(kuò)展的核心流程模型的流程的運(yùn)行時行為。從1202,方法1200前進(jìn)到1204。在1204,擴(kuò)展點(diǎn)由核心流程模型提供者披露給核心流程模型的用戶。例如,平臺擴(kuò)展約束定義編輯器1100可以披露與核心流程1102相關(guān)聯(lián)的擴(kuò)展點(diǎn),包括披露所選擇的擴(kuò)展點(diǎn)1104。從1204,方法1200前進(jìn)到1206。在一些實(shí)施方式中,擴(kuò)展點(diǎn)是包括在軟件即服務(wù)(saas)、基于云的企業(yè)系統(tǒng)中的應(yīng)用域的一部分,該軟件即服務(wù)(saas)、基于云的企業(yè)系統(tǒng)擴(kuò)展了由saas提供者提供給客戶和伙伴的參考流程。例如,擴(kuò)展點(diǎn)可以由saas參考流程儲存庫110提供。在1206,從用戶接收到將所選擇的擴(kuò)展插入核心流程模型的實(shí)例中的指令,每個所選擇的擴(kuò)展包括在核心流程運(yùn)行時對于將在相應(yīng)的擴(kuò)展點(diǎn)運(yùn)行的擴(kuò)展的用戶定制的行為。例如,對于所選擇的擴(kuò)展點(diǎn)1104使用屬性區(qū)域1106,用戶(例如,saas客戶/伙伴202)可以規(guī)定所選擇的擴(kuò)展點(diǎn)1104的具體參數(shù)和行為(例如,在流程擴(kuò)展204中),包括平臺擴(kuò)展約束1108。從1206,方法1200前進(jìn)到1208。在1208,核心流程模型的實(shí)例被確認(rèn),對于每個擴(kuò)展,包括針對于由約束規(guī)定的受限制的行為,確認(rèn)用戶定制的行為。例如,由用戶保存的核心流程1102可以進(jìn)行確認(rèn)流程,諸如流程擴(kuò)展模型檢查214。在1208之后,方法120停止。在一些實(shí)施方式中,方法1200還包括,在確認(rèn)核心流程模型的實(shí)例之前,將核心流程變換為不同的格式。例如,核心流程的bpmn格式402可以在流程擴(kuò)展模型檢查214被運(yùn)行之前,被變換為核心流程的佩特里網(wǎng)格式404。在一些實(shí)施方式中,確定核心流程模型的實(shí)例包括基于ctl和屬性規(guī)范模式的流程擴(kuò)展模型檢查。例如,如上所述,與轉(zhuǎn)換系統(tǒng)300相對應(yīng)的無限計算樹302可以被用于進(jìn)行驗證。而且,表2中使用的模式,識別系統(tǒng)模型的特定狀態(tài)/事件,可以被用于進(jìn)行驗證。在一些實(shí)施方式中,確認(rèn)核心流程模型的實(shí)例可以包括使用指示用于擴(kuò)展任務(wù)實(shí)例的確認(rèn)規(guī)則的相關(guān)性和行為的約束語義。例如,參考圖4,如上所述,當(dāng)應(yīng)用該模式到擴(kuò)展任務(wù)類型時,約束語義410和412可以被用作兩個解釋語義。在本說明中描述的主題和功能操作的實(shí)施方式可以以數(shù)字電子電路、有形地體現(xiàn)的計算機(jī)軟件或固件、計算機(jī)硬件來實(shí)施,包括在本說明中公開的結(jié)構(gòu)以及它們的結(jié)構(gòu)上的等同物,或者一個或多個它們的組合。在本說明中描述的主題的實(shí)施方式可以被實(shí)施為一個或多個計算機(jī)程序,即,編碼在有形的、非瞬時的計算機(jī)存儲介質(zhì)上的計算機(jī)程序指令的一個或多個模塊用于由數(shù)據(jù)處理裝置運(yùn)行或控制數(shù)據(jù)處理裝置的操作??商鎿Q的,或另外的,程序指令可以編碼在人工生成的傳播信號上,例如,機(jī)器生成的電、光、或電磁信號,該信號被生成以編碼用于傳輸給合適的接收者以便由數(shù)據(jù)處理裝置運(yùn)行的信息。計算機(jī)存儲介質(zhì)可以是機(jī)器可讀存儲設(shè)備、機(jī)器可讀存儲基質(zhì)、隨機(jī)或串行存取存儲設(shè)備、或一個或多個它們的組合。術(shù)語“數(shù)據(jù)處理裝置”是指數(shù)據(jù)處理硬件,并且涵蓋用于處理數(shù)據(jù)的所有種類的裝置、設(shè)備、以及機(jī)器,作為示例,包括在本說明中描述的主題和功能操作的實(shí)施方式可以以數(shù)字電子電路、有形地體現(xiàn)的計算機(jī)軟件或固件、計算機(jī)硬件來實(shí)施,包括在本說明中公開的結(jié)構(gòu)以及它們的結(jié)構(gòu)上的等同物,或者它們中的一個或多個的組合。在本說明中描述的主題的實(shí)施方式可以被實(shí)施為一個或多個計算機(jī)程序,即,編碼在有形的、非瞬時的計算機(jī)存儲介質(zhì)上的計算機(jī)程序指令的一個或多個模塊用于由數(shù)據(jù)處理裝置運(yùn)行或控制數(shù)據(jù)處理裝置的操作??商鎿Q的,或另外的,程序指令可以編碼在人工生成的傳播信號上,例如,機(jī)器生成的電、光、或電磁信號,該信號被生成以編碼用于傳輸給合適的接收者以便由數(shù)據(jù)處理裝置運(yùn)行的信息。計算機(jī)存儲介質(zhì)可以是機(jī)器可讀存儲設(shè)備、機(jī)器可讀存儲基質(zhì)、隨機(jī)或串行存取存儲設(shè)備、或一個或多個它們的組合。術(shù)語“數(shù)據(jù)處理裝置”是指數(shù)據(jù)處理硬件,并且涵蓋用于處理數(shù)據(jù)的所有種類的裝置、設(shè)備和機(jī)器,作為示例,包括可編程處理器、計算機(jī)、或者多個處理器或計算機(jī)。所述裝置還可以是,或者進(jìn)一步包括,專用邏輯電路,例如,中央處理單元(cpu)、fpga(場可編程門陣列)、或asic(專用集成電路)。在一些實(shí)施方式中,數(shù)據(jù)處理裝置和/或?qū)S眠壿嬰娐房梢允腔谟布暮?或基于軟件的。所述裝置可以選擇性地包括創(chuàng)建用于計算機(jī)程序的運(yùn)行環(huán)境的代碼,例如,構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、或者一會打個它們的組合的代碼。本公開考慮到了具有或不具有傳統(tǒng)操作系統(tǒng)的數(shù)據(jù)處理裝置,例如,linux、unix、windows、macos、android、ios、或者其它合適的傳統(tǒng)操作系統(tǒng)。計算機(jī)程序,也可以被稱為或描述為程序、軟件、軟件應(yīng)用、模塊、軟件模塊、腳本、或代碼,可以以任何形式的編程語言來編寫,包括編譯語言或解釋語言,或者說明性語言或過程語言,并且其可以以任何形式來布置,包括獨(dú)立程序或作為模塊、組件、子例程、或者適于在計算環(huán)境中使用的其它單位。計算機(jī)程序可以,但是不必,對應(yīng)于文件系統(tǒng)中的文件。程序可以被存儲在保存其它程序或數(shù)據(jù)的文件的一部分中,例如,存儲在標(biāo)記語言文檔、專用于當(dāng)前程序的單一文件、或者多個相互協(xié)調(diào)的文件中的一個和多個腳本,例如,存儲一個或多個模塊、子程序、或代碼部分的文件。計算機(jī)程序可以被布置成在一臺計算機(jī)上運(yùn)行,或者在位于一個地點(diǎn)或分布在多個地點(diǎn)并通過通信網(wǎng)絡(luò)相互連接的多臺計算機(jī)上運(yùn)行。雖然在各個附圖中示出的程序的各個部分被示出為通過各種對象、方法、或其它流程實(shí)施各種特征和功能的單獨(dú)的模塊,但是所述程序可以適當(dāng)?shù)匕ㄔS多子模塊、第三方服務(wù)、組件、程序庫等等。相反,各個組件的特征和功能可以適當(dāng)?shù)乇唤M合到單一組件中。在本說明中描述的流程和邏輯流程可以由運(yùn)行一個或多個計算機(jī)程序的一個或多個可編程計算機(jī)來執(zhí)行,以便通過對輸入數(shù)據(jù)進(jìn)行操作并生成輸出來執(zhí)行功能。流程和邏輯流程還可以通過專用邏輯電路執(zhí)行,并且裝置也可以被實(shí)施為專用邏輯電路,例如,cpu、fpga、或asic。適于計算機(jī)程序運(yùn)行的計算機(jī)可以基于通用或?qū)S梦⑻幚砥?、全部兩者、或任何其它類型的cpu。一般地,cpu將從只讀存儲器(rom)或隨機(jī)存儲存儲器(ram)、或全部兩者接收指令或數(shù)據(jù)。計算機(jī)的主要元件是用于執(zhí)行或運(yùn)行指令的cpu和用于存儲指令和數(shù)據(jù)的一個或多個存儲器件。一般地,計算機(jī)還將包括一個或多個用于存儲數(shù)據(jù)的海量存儲器件、操作地偶接到所述存儲器件、從所述存儲器件接收數(shù)據(jù)或向所述存儲器件傳送數(shù)據(jù),或者全部兩者,所述存儲器件例如磁盤、磁光盤、或光盤。但是,計算機(jī)需要具有這樣的器件。而且,計算機(jī)可以被嵌入到另一個設(shè)備中,例如,移動電話、個人數(shù)字助理(pda)、移動音頻或視頻播放器、游戲機(jī)、全球定位系統(tǒng)(gps)接收器、或者便攜式存儲設(shè)備,例如,通用串行總線(usb)閃速存儲器,僅舉數(shù)例。適合存儲計算機(jī)程序指令和數(shù)據(jù)的計算機(jī)可讀介質(zhì)(適當(dāng)?shù)臑樗矔r或非瞬時)包括所有形式的非易失性存儲器、介質(zhì)和存儲設(shè)備,作為示例,包括半導(dǎo)體存儲設(shè)備,例如,可擦除可編程只讀存儲器(eprom)、電可擦除可編程只讀存儲器(eeprom)、以及閃速存儲設(shè)備;磁盤,例如,內(nèi)部硬盤或可移除盤;磁光盤;以及cdrom、dvd+/-r、dvd-ram盤。存儲器可以存儲各種對象或數(shù)據(jù),包括緩存、類別、框架、應(yīng)用、備用數(shù)據(jù)、工作、網(wǎng)頁、網(wǎng)頁模板、數(shù)據(jù)庫表格、儲存器,存儲業(yè)務(wù)和/或動態(tài)信息、以及包括任何參數(shù)、變量、算法、指令、規(guī)則、約束、或?qū)λ鼈兊膮⒖嫉娜魏纹渌m當(dāng)?shù)男畔ⅰ4送?,儲存器可以包括任何其它適當(dāng)?shù)臄?shù)據(jù),諸如日志、政策、安全或訪問數(shù)據(jù)、報告文件,以及其它數(shù)據(jù)。處理器和儲存器可以由專用邏輯電路補(bǔ)充,或者整合到專用邏輯電路中。為了提供與用戶的互動,在本說明書中描述的主題的實(shí)施方式可以實(shí)施在計算機(jī)上,該計算機(jī)具有顯示設(shè)備,例如,crt(陰極射線管)、lcd(液晶顯示器)、led(發(fā)光二極管)、或等離子體監(jiān)視器,用于向用戶顯示信息,該計算機(jī)還包括鍵盤和指定設(shè)備,例如,鼠標(biāo)、跟蹤球、跟蹤板,用戶能夠通過其向計算機(jī)提供輸入。也可以使用觸摸屏向計算機(jī)提供輸入,所述觸摸屏諸如具有壓力敏感性的平板計算機(jī)表面、使用電容或電感應(yīng)的多點(diǎn)觸摸屏、或者其它類型的觸摸屏。其它種類的設(shè)備也可以用于提供與用戶的互動;例如,提供給用戶的反饋可以是任何形式的感覺反饋,例如,視覺反饋、聽覺反饋、或者觸覺反饋;以及來自用戶的輸入可以以任何形式接收,包括聽覺、語音、或觸覺輸入。此外,計算機(jī)可以通過向用戶使用的設(shè)備發(fā)送文件和從用戶使用的設(shè)備接收文件來與用戶進(jìn)行互動;例如,通過響應(yīng)于從網(wǎng)絡(luò)瀏覽器接收的請求,向用戶的客戶端設(shè)備上的網(wǎng)絡(luò)瀏覽器發(fā)送網(wǎng)頁。術(shù)語“圖形用戶界面”,或“gui”可以以單數(shù)或復(fù)數(shù)使用,來描述一個或多個圖形用戶界面和特定圖形用戶界面的顯示中的每一個。因此,gui可以代表任何圖形用戶界面,包括但不限于,處理信息并向用戶有效地展示信息的網(wǎng)絡(luò)瀏覽器、觸摸屏、或命令行界面(cli)。一般,gui可以包括多個用戶界面(ui)元素,其中一些或全部與網(wǎng)絡(luò)瀏覽器相關(guān)聯(lián),諸如商務(wù)套件用戶可操作的互動字段、下拉式列表、以及按鈕。這些和其它ui元素可以與網(wǎng)絡(luò)瀏覽器的功能有關(guān)或代表網(wǎng)絡(luò)瀏覽器的功能。在本說明中描述的主題的實(shí)施方式可以以計算系統(tǒng)來實(shí)施,實(shí)施計算系統(tǒng)包括后端組件,例如,作為數(shù)據(jù)服務(wù)器,或者包括中間件組件,例如,應(yīng)用服務(wù)器,或者包括前端組件,如,具有圖形用戶界面或網(wǎng)絡(luò)瀏覽器的客戶端計算機(jī),用戶通過其與本說明中描述的主題的實(shí)施方式互動,或者包括任何一個或多個這樣的后端組件、中間件或前端組件的組合。系統(tǒng)的組件可以通過任何形式或介質(zhì)的有線和/或無線數(shù)字?jǐn)?shù)據(jù)通信來進(jìn)行互動,例如,通信網(wǎng)絡(luò)。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(lan)、無線接入網(wǎng)(ran)、城域網(wǎng)(man)、廣域網(wǎng)(wan)、全球微波互聯(lián)接入(wimax)、無線局域網(wǎng)(wlan),它們使用例如802.11a/b/g/n和802.20,互聯(lián)網(wǎng)的而全部或部分,和/或在一個或多個地點(diǎn)的一個或多個任何其它的通信系統(tǒng)。例如,網(wǎng)絡(luò)可以用網(wǎng)際協(xié)議(ip)分組、幀中繼幀、異步傳輸模式(atm)單元、語音、視頻、數(shù)據(jù)、和/或網(wǎng)絡(luò)地址之間的其它適當(dāng)?shù)男畔?。計算系統(tǒng)可以包括客戶端和服務(wù)器。客戶端和服務(wù)器一般相互遠(yuǎn)離,并且典型地通過通信網(wǎng)絡(luò)互動??蛻舳撕头?wù)器的關(guān)系根據(jù)運(yùn)行在各個計算機(jī)上的計算機(jī)程序而產(chǎn)生,并且具有相互的客戶端-服務(wù)器關(guān)系。在一些實(shí)施方式中,計算系統(tǒng)的任何或全部組件,全部硬件和/或軟件,可以互相互動,和/或使用應(yīng)用編程接口(api)和/或服務(wù)層來交互(interface)。api可以包括用于路由、數(shù)據(jù)結(jié)構(gòu)、以及對象類別的規(guī)范。api可以是獨(dú)立或非獨(dú)立的計算機(jī)語言,并且參考整個界面、單一功能、或者甚至是api的集合。服務(wù)層提供軟件服務(wù)到計算系統(tǒng)。計算系統(tǒng)的各種組件的功能可以對于使用這個服務(wù)層的所有服務(wù)客戶是可接入的。軟件服務(wù)通過定義的界面提供可重復(fù)使用的、定義的業(yè)務(wù)功能。例如,界面可以是以java、c++、或者以可擴(kuò)展標(biāo)記語言(xml)格式或其他適當(dāng)格式提供數(shù)據(jù)的其它適當(dāng)語言編寫的軟件。api和/或服務(wù)層可以是相對于計算系統(tǒng)的其它組件的整體和/或獨(dú)立組件。而且,服務(wù)層的任何或全部部分可以實(shí)施為另一個軟件模塊、企業(yè)應(yīng)用、或硬件模塊的子類或子模塊,而不脫離本公開的范圍。雖然本說明包含許多具體實(shí)施細(xì)節(jié),這些不應(yīng)被解釋為對任何發(fā)明的范圍或?qū)赡芤蟊Wo(hù)的范圍的限制,而是針對特定發(fā)明的特定實(shí)施方式的特征的描述。在本說明中在單獨(dú)的實(shí)施方式的上下文中描述的某些特征還可以以單一實(shí)施方式的組合的方式來實(shí)施。相反地,在單一實(shí)施方式的上下文中描述的各種特征還可以以多個實(shí)施方式單獨(dú)地實(shí)施或者以任何適當(dāng)?shù)淖咏M合來實(shí)施。而且,雖然特征可以如上所述被描述為以某些組合來動作,并且即使是最初這樣要求,但是所要求的組合中的一個或多個特征在一些情況下可以從所述組合中刪除,并且所要求的組合可以指向子組合或子組合的變化。類似的,雖然操作被以特定的次序描繪在附圖中,這不應(yīng)被理解為要求這樣的操作以所示出的特定次序或以順序的次序來執(zhí)行,或者要求所有示出的操作都被執(zhí)行,以實(shí)現(xiàn)所期望的結(jié)果。在某些環(huán)境下,多任務(wù)處理或并行處理可能是有益的。而且,上述實(shí)施方式中各種系統(tǒng)模塊和組件的分離和/或整合不應(yīng)當(dāng)被理解為要求在所有實(shí)施方式中的這樣的分離和/或整合,并且應(yīng)當(dāng)理解為所描述的程序組件和系統(tǒng)可以被一般地一起整合到單一的軟件產(chǎn)品中或者包裝到多個軟件產(chǎn)品中。已經(jīng)描述了主題的特定實(shí)施方式。其它實(shí)施方式、以及所描述的實(shí)施方式的變化和置換在權(quán)利要求的范圍內(nèi),這對于本領(lǐng)域技術(shù)人員是清楚的。例如,權(quán)利要求中列舉的動作可以以不同的次序執(zhí)行,并且仍將實(shí)現(xiàn)期望的結(jié)果。因此,示例實(shí)施方式的以上描述沒有定義或限制本公開。在不脫離本公開的精神和范圍的情況下,其它改變、替代、以及變化也是可能的。當(dāng)前第1頁12