本發(fā)明涉及計算機應(yīng)用領(lǐng)域,具體而言,涉及一種流程創(chuàng)建的方法及裝置。
背景技術(shù):
目前,流程創(chuàng)建的方式是預(yù)定義常用的數(shù)據(jù)和常用的判斷邏輯操作符,允許用戶在預(yù)定義的數(shù)據(jù)和操作范圍內(nèi)選擇,一旦超出了這個范圍,就只能定制開發(fā)。
但是,這種流程創(chuàng)建的方式對于saas運營模式的軟件是不可想象的:為一個企業(yè)的定制開發(fā),將編譯服務(wù)器代碼并重新發(fā)布,會中斷其它客戶的正常使用,而且更糟糕的是不同企業(yè)有不同的流程,而且這些流程也常常變化,定制開發(fā)將會非常頻繁。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種流程創(chuàng)建的方法及裝置,以解決上述問題。
為了實現(xiàn)上述目的,本發(fā)明實施例采用的技術(shù)方案如下:
第一方面,本發(fā)明實施例提供了一種流程創(chuàng)建的方法,所述方法包括:獲取配置文件,所述配置文件中包括多個業(yè)務(wù)實體,每個所述業(yè)務(wù)實體包括業(yè)務(wù)實體名稱,屬性列表,及判斷操作符列表;獲取用戶的選擇指令,并根據(jù)所述配置文件及所述用戶的選擇指令,生成流程模板,所述流程模板中包括多個流程節(jié)點,每個流程節(jié)點對應(yīng)一個或多個激活條件,每個激活條件包括多個業(yè)務(wù)實體的屬性及操作;根據(jù)用戶輸入的數(shù)據(jù)及流程模板中各個流程節(jié)點的激活條件,實例化所述流程模板,生成用戶定制的流程。
第二方面,本發(fā)明實施例提供了一種流程創(chuàng)建的裝置,所述裝置包括:獲取模塊,用于獲取配置文件,所述配置文件中包括多個業(yè)務(wù)實體,每個所述業(yè)務(wù)實體包括業(yè)務(wù)實體名稱,屬性列表,及判斷操作符列表;第一生成模塊,用于獲取用戶的選擇指令,并根據(jù)所述配置文件及所述用戶的選擇指令,生成流程模板,所述流程模板中包括多個流程節(jié)點,每個流程節(jié)點對應(yīng)一個或多個激活條件,每個激活條件包括多個業(yè)務(wù)實體的屬性及操作;第二生成模塊,用于根據(jù)用戶輸入的數(shù)據(jù)及流程模板中各個流程節(jié)點的激活條件,實例化所述流程模板,生成用戶定制的流程。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的一種流程創(chuàng)建的方法及裝置,通過獲取配置文件,所述配置文件中包括多個業(yè)務(wù)實體,每個所述業(yè)務(wù)實體包括業(yè)務(wù)實體名稱,屬性列表,及判斷操作符列表;獲取用戶的選擇指令,并根據(jù)所述配置文件及所述用戶的選擇指令,生成流程模板,所述流程模板中包括多個流程節(jié)點,每個流程節(jié)點對應(yīng)一個或多個激活條件,每個激活條件包括多個業(yè)務(wù)實體的屬性及操作;根據(jù)用戶輸入的數(shù)據(jù)及流程模板中各個流程節(jié)點的激活條件,實例化所述流程模板,生成用戶定制的流程,本方案采用配置文件的方式來解決用戶自定義數(shù)據(jù)的語義問題,并靈活定義判斷邏輯,將配置中的代碼邏輯動態(tài)裝載到程序運行的內(nèi)存空間直接執(zhí)行,對于企業(yè)的不同定制流程的需求,無需進行重新編譯發(fā)布,能夠?qū)崿F(xiàn)在線更新。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1是本發(fā)明實施例提供的一種用戶終端的結(jié)構(gòu)框圖。
圖2是本發(fā)明第一實施例提供的一種流程創(chuàng)建的方法的流程圖。
圖3是本發(fā)明第一實施例提供的一種流程創(chuàng)建的方法的第一流程圖。
圖4是本發(fā)明第一實施例提供的一種流程創(chuàng)建的方法的第二流程圖。
圖5是本發(fā)明第二實施例提供的一種流程創(chuàng)建的裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例。基于本發(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,術(shù)語“第一”、“第三”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
圖1示出了一種可應(yīng)用于本發(fā)明實施例中的用戶終端100的結(jié)構(gòu)框圖。如圖1所示,用戶終端100包括存儲器102、存儲控制器104,一個或多個(圖中僅示出一個)處理器106、外設(shè)接口108、射頻模塊110、音頻模塊112、觸控屏幕114等。這些組件通過一條或多條通訊總線/信號線116相互通訊。
存儲器102可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的流程創(chuàng)建的方法以及裝置對應(yīng)的程序指令/模塊,處理器106通過運行存儲在存儲器102內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,如本發(fā)明實施例提供的流程創(chuàng)建的方法。
存儲器102可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。處理器106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進行。
外設(shè)接口108將各種輸入/輸入裝置耦合至處理器106以及存儲器102。在一些實施例中,外設(shè)接口108,處理器106以及存儲控制器104可以在單個芯片中實現(xiàn)。在其他一些實例中,他們可以分別由獨立的芯片實現(xiàn)。
射頻模塊110用于接收以及發(fā)送電磁波,實現(xiàn)電磁波與電信號的相互轉(zhuǎn)換,從而與通訊網(wǎng)絡(luò)或者其他設(shè)備進行通訊。
音頻模塊112向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。
觸控屏幕114在用戶終端100與用戶之間同時提供一個輸出及輸入界面。具體地,觸控屏幕114向用戶顯示視頻輸出,這些視頻輸出的內(nèi)容可包括文字、圖形、視頻及其任意組合。
可以理解,圖1所示的結(jié)構(gòu)僅為示意,用戶終端100還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。圖1中所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。
本發(fā)明實施例提供的流程創(chuàng)建的方法可以運行于圖1所示的用戶終端100中。該方法通過獲取配置文件,所述配置文件中包括多個業(yè)務(wù)實體,每個所述業(yè)務(wù)實體包括業(yè)務(wù)實體名稱,屬性列表,及判斷操作符列表;獲取用戶的選擇指令,并根據(jù)所述配置文件及所述用戶的選擇指令,生成流程模板,所述流程模板中包括多個流程節(jié)點,每個流程節(jié)點對應(yīng)一個或多個激活條件,每個激活條件包括多個業(yè)務(wù)實體的屬性及操作;根據(jù)用戶輸入的數(shù)據(jù)及流程模板中各個流程節(jié)點的激活條件,實例化所述流程模板,生成用戶定制的流程,本方案采用配置文件的方式來解決用戶自定義數(shù)據(jù)的語義問題,并靈活定義判斷邏輯,將配置中的代碼邏輯動態(tài)裝載到程序運行的內(nèi)存空間直接執(zhí)行,對于企業(yè)的不同定制流程的需求,無需進行重新編譯發(fā)布,能夠?qū)崿F(xiàn)在線更新。下面對該流程創(chuàng)建的方法進行詳細說明。
圖2示出了本發(fā)明第一實施例提供的一種流程創(chuàng)建的方法的流程圖,請參閱圖2,該流程創(chuàng)建的方法運行于上述用戶終端中,該方法包括:
步驟s210,獲取配置文件,所述配置文件中包括多個業(yè)務(wù)實體,每個所述業(yè)務(wù)實體包括業(yè)務(wù)實體名稱,屬性列表,及判斷操作符列表。
業(yè)務(wù)實體有三種方式定義。其一,系統(tǒng)缺省的業(yè)務(wù)實體,例如,流程提交者的個人信息、職位、所屬部門等,這些業(yè)務(wù)實體在定義流程模板時由系統(tǒng)直接使用,不必在配置文件中定義。其二,直接編輯配置文件,定義業(yè)務(wù)實體。其三,通過gui提供用戶定義業(yè)務(wù)實體的圖形接口,操作結(jié)果寫入配置文件中。
作為一種實施方式,所述屬性列表中每個屬性包括屬性名稱及判斷操作符名;所述判斷操作符列表中每個判斷操作符包括判斷操作符名、該判斷操作符名對應(yīng)的條件對象,及操作符業(yè)務(wù)運算邏輯。
其中,屬性列表中可以包括一個或多個屬性。每個屬性名稱對應(yīng)的判斷判斷操作符名可以是零個或多個。判斷操作符列表中可以包括零個或多個判斷操作符名。每個判斷操作符名對應(yīng)的條件對象也可以是零個或多個。
操作符業(yè)務(wù)運算邏輯類似程序代碼邏輯,使用文本書寫,處理該判斷操作符名對應(yīng)的條件對象(在創(chuàng)建流程模板時賦值)和業(yè)務(wù)實體屬性(在實例化流程模板時賦值)的關(guān)系。
步驟s220,獲取用戶的選擇指令,并根據(jù)所述配置文件及所述用戶的選擇指令,生成流程模板,所述流程模板中包括多個流程節(jié)點,每個流程節(jié)點對應(yīng)一個或多個激活條件,每個激活條件包括多個業(yè)務(wù)實體的屬性及操作。
生成流程模板包括建立流程環(huán)節(jié)、分配處理人、定義表單、處理按鈕、分支條件等步驟,其中,流程模板中自定義數(shù)據(jù)以及分支條件的業(yè)務(wù)邏輯是通過定義業(yè)務(wù)實體實現(xiàn)的。
請參閱圖3,作為一種實施方式,所述用戶的選擇指令包括第一選擇指令、第二選擇指令、第三選擇指令、輸入信息及第四選擇指令,步驟s320可以包括:
步驟s221,獲取所述第一選擇指令,所述第一選擇指令用于從所述配置文件中選擇所需的業(yè)務(wù)實體。
步驟s222,顯示與所述第一選擇指令對應(yīng)的業(yè)務(wù)實體的屬性列表。
步驟s223,獲取所述第二選擇指令,所述第二選擇指令用于從所述屬性列表中選擇所需的屬性,其中,所選擇的屬性包括用于流程節(jié)點對應(yīng)的激活條件的屬性及用于以供流程節(jié)點處理人填寫的屬性。
步驟s224,若所選擇的屬性為用于流程節(jié)點對應(yīng)的激活條件的屬性,顯示所選擇的屬性對應(yīng)的判斷操作符名。
作為一種實施方式,若所選擇的屬性為用于以供流程節(jié)點處理人填寫的屬性,將所選擇的屬性作為自定義表單數(shù)據(jù)。
步驟s225,獲取所述第三選擇指令及輸入信息。
步驟s226,從所選擇的屬性對應(yīng)的判斷操作符名選擇所需的判斷操作符名,并將所述輸入信息作為所選擇的判斷操作符名對應(yīng)的條件對象的值。
步驟s227,獲取第四選擇指令。
步驟s228,根據(jù)所述第四選擇指令,將所選擇的屬性、所選擇的判斷操作符名及其對應(yīng)的條件對象的值作為流程節(jié)點對應(yīng)的激活條件,或?qū)⑺x擇的屬性、所選擇的判斷操作符名及其對應(yīng)的條件對象的值加入流程監(jiān)聽器列表。
步驟s229,當每個流程節(jié)點對應(yīng)的激活條件及流程監(jiān)聽器列表設(shè)置完成后,流程模板生成。
步驟s230,根據(jù)用戶輸入的數(shù)據(jù)及流程模板中各個流程節(jié)點的激活條件,實例化所述流程模板,生成用戶定制的流程。
請參閱圖3,作為一種實施方式,所述流程模板為文本格式,所述步驟s230可以包括:
步驟s231,將文本格式的流程模板讀入內(nèi)存形成結(jié)構(gòu)化的數(shù)據(jù),將所述操作符業(yè)務(wù)運算邏輯解析并編譯為動態(tài)代碼。
作為一種實施方式,將所述文本格式的操作符實現(xiàn)邏輯通過文本解析器解析并編譯為java代碼,并將所述java代碼動態(tài)裝載進程序空間。
文本解析器將文本格式的流程模板中操作符業(yè)務(wù)運算邏輯翻譯成符合java語法的java代碼,并調(diào)用java編譯器,例如javac,編譯成java字節(jié)碼,再利用java的反射功能,將java字節(jié)碼裝載到程序空間直接執(zhí)行。
步驟s232,根據(jù)所述用戶輸入的數(shù)據(jù),當監(jiān)聽到所述流程監(jiān)聽器列表中的業(yè)務(wù)實體的屬性發(fā)生變化時,調(diào)用所述動態(tài)代碼,執(zhí)行與所述業(yè)務(wù)實體的屬性對應(yīng)的邏輯判斷代碼,所述邏輯判斷代碼與所述操作符業(yè)務(wù)運算邏輯相對應(yīng)。
通知當前已激活流程節(jié)點的處理人填寫該流程節(jié)點所需的表單數(shù)據(jù),即用于以供流程節(jié)點處理人填寫的屬性值,當接收到用戶輸入的數(shù)據(jù)時,根據(jù)各個流程節(jié)點對應(yīng)的激活條件,裝載該流程節(jié)點對應(yīng)的邏輯判斷代碼,將流程節(jié)點的處理人填寫的該流程節(jié)點所需的表單數(shù)據(jù),帶入該邏輯判斷代碼中進行運算,確定是否有其他流程節(jié)點的激活條件得到滿足。
步驟s233,若有流程節(jié)點的激活條件得到滿足,則激活所述流程模板中與滿足激活條件的流程節(jié)點對應(yīng)的至少一個實例。
可以理解的是,滿足激活條件的流程節(jié)點可以是一個或多個。
在激活一個流程實例時,業(yè)務(wù)實體也會被創(chuàng)建一個實例,該業(yè)務(wù)實體在整個流程實例中保持唯一,可被不同的流程節(jié)點共享,這使得不同流程節(jié)點的自定義數(shù)據(jù)可以整個作用于流程實例。
上述實例化流程模板的方式是根據(jù)數(shù)據(jù)驅(qū)動的方式來激活流程模板的實例化,作為另外一種實例化所述流程模板的方式,可以人工激活的方式,例如,請假申請流程模板的實例化,該方式與上述數(shù)據(jù)驅(qū)動的方式的觸發(fā)條件不同,后續(xù)實例化的步驟類似,此處不再贅述,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供的流程創(chuàng)建的方法,通過獲取配置文件,所述配置文件中包括多個業(yè)務(wù)實體,每個所述業(yè)務(wù)實體包括業(yè)務(wù)實體名稱,屬性列表,及判斷操作符列表;獲取用戶的選擇指令,并根據(jù)所述配置文件及所述用戶的選擇指令,生成流程模板,所述流程模板中包括多個流程節(jié)點,每個流程節(jié)點對應(yīng)一個或多個激活條件,每個激活條件包括多個業(yè)務(wù)實體的屬性及操作;根據(jù)用戶輸入的數(shù)據(jù)及流程模板中各個流程節(jié)點的激活條件,實例化所述流程模板,生成用戶定制的流程,本方案采用配置文件的方式來解決用戶自定義數(shù)據(jù)的語義問題,并靈活定義判斷邏輯,將配置中的代碼邏輯動態(tài)裝載到程序運行的內(nèi)存空間直接執(zhí)行,對于企業(yè)的不同定制流程的需求,無需進行重新編譯發(fā)布,能夠?qū)崿F(xiàn)在線更新。
請參閱圖4是本發(fā)明第二實施例提供的流程創(chuàng)建的裝置300的功能模塊示意圖。所述流程創(chuàng)建的裝置300包括獲取模塊310,第一生成模塊320、第二生成模塊330。
獲取模塊310,用于獲取配置文件,所述配置文件中包括多個業(yè)務(wù)實體,每個所述業(yè)務(wù)實體包括業(yè)務(wù)實體名稱,屬性列表,及判斷操作符列表。
第一生成模塊320,用于獲取用戶的選擇指令,并根據(jù)所述配置文件及所述用戶的選擇指令,生成流程模板,所述流程模板中包括多個流程節(jié)點,每個流程節(jié)點對應(yīng)一個或多個激活條件,每個激活條件包括多個業(yè)務(wù)實體的屬性及操作。
作為一種實施方式,所述屬性列表中每個屬性包括屬性名稱及判斷操作符名;所述判斷操作符列表中每個判斷操作符包括判斷操作符名、該判斷操作符名對應(yīng)的條件對象,及操作符業(yè)務(wù)運算邏輯;所述用戶的選擇指令包括第一選擇指令、第二選擇指令、第三選擇指令、第四選擇指令及輸入信息;所述第一生成模塊320,還用于獲取所述第一選擇指令,所述第一選擇指令用于從所述配置文件中選擇所需的業(yè)務(wù)實體;顯示與所述第一選擇指令對應(yīng)的業(yè)務(wù)實體的屬性列表;獲取所述第二選擇指令,所述第二選擇指令用于從所述屬性列表中選擇所需的屬性,其中,所選擇的屬性包括用于流程節(jié)點對應(yīng)的激活條件的屬性及用于以供流程節(jié)點處理人填寫的屬性;若所選擇的屬性為用于流程節(jié)點對應(yīng)的激活條件的屬性,顯示所選擇的屬性對應(yīng)的判斷操作符名;獲取所述第三選擇指令及輸入信息;從所選擇的屬性對應(yīng)的判斷操作符名選擇所需的判斷操作符名,并將所述輸入信息作為所選擇的判斷操作符名對應(yīng)的條件對象的值;獲取第四選擇指令;根據(jù)所述第四選擇指令,將所選擇的屬性、所選擇的判斷操作符名及其對應(yīng)的條件對象的值作為流程節(jié)點對應(yīng)的激活條件,或?qū)⑺x擇的屬性、所選擇的判斷操作符名及其對應(yīng)的條件對象的值加入流程監(jiān)聽器列表;當每個流程節(jié)點對應(yīng)的激活條件及流程監(jiān)聽器列表設(shè)置完成后,流程模板生成。
第二生成模塊330,用于根據(jù)用戶輸入的數(shù)據(jù)及流程模板中各個流程節(jié)點的激活條件,實例化所述流程模板,生成用戶定制的流程。
作為一種實施方式,所述流程模板為文本格式,所述第二生成模塊330,還用于將文本格式的流程模板讀入內(nèi)存形成結(jié)構(gòu)化的數(shù)據(jù);將所述操作符業(yè)務(wù)運算邏輯解析并編譯為動態(tài)代碼;根據(jù)所述用戶輸入的數(shù)據(jù),當監(jiān)聽到所述流程監(jiān)聽器列表中的業(yè)務(wù)實體的屬性發(fā)生變化時,調(diào)用所述動態(tài)代碼,執(zhí)行與所述業(yè)務(wù)實體的屬性對應(yīng)的邏輯判斷代碼,所述邏輯判斷代碼與所述操作符業(yè)務(wù)運算邏輯相對應(yīng);若有流程節(jié)點滿足激活條件,則激活所述流程模板中與滿足激活條件的流程節(jié)點對應(yīng)的至少一個實例。
作為一種實施方式,所述動態(tài)代碼為java代碼,所述第二生成模塊330,還用于將所述文本格式的操作符實現(xiàn)邏輯通過文本解析器解析并編譯為java代碼,并將所述java代碼動態(tài)裝載進程序空間。
作為一種實施方式,所述裝置還包括處理模塊340,用于在獲取所述第二選擇指令之后,若所選擇的屬性為用于以供流程節(jié)點處理人填寫的屬性,將所選擇的屬性作為自定義表單數(shù)據(jù)。
以上各模塊可以是由軟件代碼實現(xiàn),此時,上述的各模塊可存儲于用戶終端100的存儲器102內(nèi)。以上各模塊同樣可以由硬件例如集成電路芯片實現(xiàn)。
本發(fā)明實施例所提供的流程創(chuàng)建的裝置,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當注意,在有些作為替換的實現(xiàn)方式中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第三等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。應(yīng)注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準。