亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

信息處理裝置和方法、記錄媒體和程序的制作方法

文檔序號:6561961閱讀:140來源:國知局
專利名稱:信息處理裝置和方法、記錄媒體和程序的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及信息處理裝置和信息處理方法、記錄媒體和程序。特別地,本發(fā)明涉及一種優(yōu)選在具有不同狀態(tài)定義的多個系統(tǒng)上執(zhí)行應(yīng)用程序時使用的信息處理裝置和信息處理方法、記錄媒體和程序。
背景技術(shù)
存在用于在不同操作系統(tǒng)(OS)之間移植應(yīng)用程序的技術(shù)。例如,日本未審查專利申請公開號2002-278777描述了一種技術(shù),其中吸收了在不同OS之間的任務(wù)優(yōu)先級中的差別,允許應(yīng)用程序被移植而不必在任務(wù)優(yōu)先級的方面修改所述應(yīng)用程序。
日本未審查專利申請公開號2001-254227描述了另一技術(shù),其中圖形用戶接口(GUI)的抽象定義和應(yīng)用程序被作為一對來進(jìn)行處理,并且在所述應(yīng)用程序?qū)⒈灰浦驳降哪康牡販?zhǔn)備了與所述應(yīng)用程序的GUI定義一起使用的模塊。這個方案允許應(yīng)用程序在GUI方面的可移植性。
另外,還具有通過轉(zhuǎn)換軟件代碼集允許軟件移植的技術(shù)(見,例如,日本未審查專利申請公開號2004-280794)。進(jìn)一步地,日本未審查專利申請公開號2000-132385描述了通過部分地改變程序代碼進(jìn)行軟件移植的技術(shù)。

發(fā)明內(nèi)容
當(dāng)希望應(yīng)用程序能夠在多種系統(tǒng)中使用,即,為了增強(qiáng)應(yīng)用程序的可移植性時,怎樣設(shè)置所述應(yīng)用程序的狀態(tài)定義是很重要的。
這樣,被用于定義應(yīng)用程序狀態(tài)的方案,取決于將要執(zhí)行所述應(yīng)用程序的系統(tǒng)。為了在具有不同狀態(tài)定義的多個系統(tǒng)上執(zhí)行應(yīng)用程序,必須根據(jù)各自系統(tǒng)修改用于狀態(tài)轉(zhuǎn)換的接口以及修改在所述應(yīng)用程序中用于調(diào)用接口的操作。
然而,應(yīng)用程序具有內(nèi)部狀態(tài),這樣應(yīng)用程序的可移植性不能簡單地通過在所述應(yīng)用程序的任務(wù)優(yōu)先級方面增加可移植性而得到增加,正如日本未審查專利申請公開號2002-278777中所描述的技術(shù)。此外,利用這個技術(shù),應(yīng)用程序不能夠簡單地不經(jīng)過修改就在不同的應(yīng)用程序狀態(tài)管理機(jī)制之間進(jìn)行移植。
在應(yīng)用程序的操作中,具有多種內(nèi)部狀態(tài),例如,這些狀態(tài)關(guān)聯(lián)于顯示GUI的定時和可以訪問用于產(chǎn)生所述GUI的信息的定時。因此,如日本來審查專利申請公開號2001-254227中描述的技術(shù)那樣僅僅移植GUI定義并不允許所述應(yīng)用程序的GUI顯示處理被完全移植到另一個應(yīng)用程序,所述另一個應(yīng)用程序在執(zhí)行不同GUI顯示處理的系統(tǒng)上執(zhí)行。
此外,通過代碼轉(zhuǎn)換或部分代碼改變而生成軟件所產(chǎn)生的軟件,其代碼與所述軟件從其被移植的系統(tǒng)的軟件不同。這樣,在日本未審查專利申請公開號2004-280794中所描述的技術(shù)中,需要在所產(chǎn)生的軟件上執(zhí)行例如重新測試這樣的驗證。因此,這個技術(shù)應(yīng)當(dāng)被看作不同于對原始軟件整個的移植。
本發(fā)明是考慮到上面所述情況而作出的,并且被配置為允許應(yīng)用程序在具有不同狀態(tài)定義的多個系統(tǒng)中執(zhí)行。
根據(jù)本發(fā)明的一個方面,一種信息處理裝置,能夠執(zhí)行應(yīng)用程序,所述裝置包括系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置,所述系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換;應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置,該應(yīng)用程序狀態(tài)管理裝置利用原語(primitive)元素定義所述應(yīng)用程序的狀態(tài)轉(zhuǎn)換以管理該應(yīng)用程序的狀態(tài)轉(zhuǎn)換;以及指令發(fā)送/接收裝置,該指令發(fā)送/接收裝置用于存儲指示指令之間關(guān)系的信息,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置識別,并且基于所述信息執(zhí)行所述指令向/從所述系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置和應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置的發(fā)送/接收。
應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置可以和指令保持裝置一起提供,所述指令保持裝置用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令并且基于FIFO執(zhí)行每個所述被保存的指令。
在指令保持裝置中被保持的每個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令可以包含指示是否需要等待所述指令執(zhí)行完成的信息。
應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置可以配置為管理多個應(yīng)用程序的狀態(tài)轉(zhuǎn)換。在指令保持裝置中被保持的每個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令可以包含信息,所述信息指示所述指令從其被請求的源、指示將由所述指令來轉(zhuǎn)換其狀態(tài)的應(yīng)用程序、以及指示將要被所述指令轉(zhuǎn)換到的狀態(tài)。
所述指令發(fā)送/接收裝置可以存儲指令的對應(yīng)性表格,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置所識別。這個指令對應(yīng)性表格作為指示指令之間關(guān)系的信息,其中每個指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置所識別。
根據(jù)本發(fā)明的一個方面,一種用于信息處理裝置的信息處理方法,信息處理裝置能夠執(zhí)行應(yīng)用程序,信息處理方法包括如下步驟使利用原語元素來定義所述應(yīng)用程序狀態(tài)轉(zhuǎn)換以管理狀態(tài)轉(zhuǎn)換的第一模塊獲取狀態(tài)轉(zhuǎn)換命令并提供狀態(tài)轉(zhuǎn)換命令給第二模塊;使第二模塊將所述狀態(tài)轉(zhuǎn)換命令轉(zhuǎn)換為用于管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換的第三模塊可以識別的指令;使接收了所述轉(zhuǎn)換后的指令的第三模塊基于所述狀態(tài)轉(zhuǎn)換命令確定是否要對所述系統(tǒng)的狀態(tài)進(jìn)行轉(zhuǎn)換;以及使第二模塊將第三模塊所執(zhí)行的確定結(jié)果轉(zhuǎn)換為可以由第一模塊識別的通知并將所述通知發(fā)送給第一模塊。
根據(jù)本發(fā)明的一個方面,一種計算機(jī)可執(zhí)行程序,包括具有第一模塊、第二模塊和第三模塊的程序。所述程序使得計算機(jī)執(zhí)行如下步驟使利用原語元素來定義應(yīng)用程序狀態(tài)轉(zhuǎn)換以管理狀態(tài)轉(zhuǎn)換的第一模塊獲取狀態(tài)轉(zhuǎn)換命令并提供狀態(tài)轉(zhuǎn)換命令給第二模塊;使得第二模塊將所述狀態(tài)轉(zhuǎn)換命令轉(zhuǎn)換為用于管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換的第三模塊可以識別的指令;使接收了所述轉(zhuǎn)換后的指令的第三模塊基于所述狀態(tài)轉(zhuǎn)換命令確定是否對所述系統(tǒng)的狀態(tài)進(jìn)行轉(zhuǎn)換;以及使得第二模塊將第三模塊所執(zhí)行的確定結(jié)果轉(zhuǎn)換為可以由第一模塊識別的通知并將所述通知發(fā)送給第一模塊。
根據(jù)本發(fā)明的一個方面,對基于執(zhí)行應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換進(jìn)行管理。所述應(yīng)用程序的狀態(tài)轉(zhuǎn)換由原語元素進(jìn)行定義使其可以被管理。用于指示指令之間關(guān)系的信息被保持,其中每個指令可以由系統(tǒng)或應(yīng)用程序識別?;谒鲂畔?,在所述系統(tǒng)和應(yīng)用程序之間執(zhí)行指令的發(fā)送/接收。
如上面所描述的,根據(jù)本發(fā)明的一個方面,應(yīng)用程序可以,特別地,在具有不同狀態(tài)定義的多個系統(tǒng)上執(zhí)行。


附圖1是示例了根據(jù)本發(fā)明一個具體實施方式
的信息處理裝置配置的區(qū)塊圖;附圖2示例了用于控制在根據(jù)本發(fā)明一個具體實施方式
的信息處理裝置中執(zhí)行的處理的軟件堆棧;附圖3示例了在應(yīng)用程序狀態(tài)管理模塊中所管理的狀態(tài)轉(zhuǎn)換;附圖4示例了應(yīng)用程序狀態(tài)和可以由應(yīng)用程序執(zhí)行的處理之間的關(guān)系;附圖5示例了指令(功能)之間的關(guān)系,其中每個指令可以由系統(tǒng)狀態(tài)管理模塊或應(yīng)用程序狀態(tài)管理模塊所識別;附圖6示例了指令(功能)之間的關(guān)系,其中每個指令可以由系統(tǒng)狀態(tài)管理模塊和應(yīng)用程序狀態(tài)管理模塊所識別;附圖7示例了指令(功能)之間的關(guān)系,其中每個指令可以由系統(tǒng)狀態(tài)管理模塊或應(yīng)用程序狀態(tài)管理模塊所識別;附圖8示例了用于保持應(yīng)用程序狀態(tài)轉(zhuǎn)換指令的機(jī)制;以及附圖9是示例了根據(jù)本發(fā)明一個具體實施方式
的信息處理裝置所執(zhí)行的處理過程的流程圖。
具體實施例方式
在描述本發(fā)明的具體實施方式
之前,下面將對本發(fā)明權(quán)利要求的特征和具體實施方式
中公開的特定元素之間的對應(yīng)性進(jìn)行討論。這個描述意在確保支持本要求保護(hù)的發(fā)明的具體實施方式
被描述在本說明書中。這樣,即使下面將詳細(xì)描述中的具體實施方式
沒有被描述為與本發(fā)明的特定特征相關(guān),也不意味著該具體實施方式
不與權(quán)利要求中的所述特征相關(guān)。相反地,即使具體實施方式
在此描述為與權(quán)利要求特定特征相關(guān),也不意味著該具體實施方式
不與權(quán)利要求的其它特征相關(guān)。
在根據(jù)本發(fā)明具體實施方式
的信息處理裝置(例如,如附圖1所示的信息處理裝置1)中,可以執(zhí)行應(yīng)用程序。所述信息處理裝置包括系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置(例如,系統(tǒng)狀態(tài)管理模塊53),用于管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換;應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置(例如,應(yīng)用程序狀態(tài)管理模塊52),用于利用原語元素定義所述應(yīng)用程序的狀態(tài)轉(zhuǎn)換以管理該狀態(tài)轉(zhuǎn)換;以及指令發(fā)送/接收裝置(例如,連接模塊54),用于存儲指示指令之間關(guān)系的信息,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置識別,并且基于所述信息,在所述系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置和應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置之間執(zhí)行所述指令的發(fā)送/接收。
應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置可以和指令保持裝置(例如,附圖8中的應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列)一起提供,所述指令保持裝置用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令并且基于FIFO執(zhí)行所述被保存的指令。
所述指令發(fā)送/接收裝置可以存儲指令的對應(yīng)性表格(例如,附圖5至附圖7中所示的對應(yīng)性表格)作為指示指令之間關(guān)系的信息,其中每個指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置所識別。
根據(jù)本發(fā)明具體實施方式
的的信息處理方法可以被應(yīng)用于能夠執(zhí)行應(yīng)用程序的信息處理裝置(例如,附圖1中的信息處理裝置1)。所述信息處理方法包括如下步驟使利用原語元素來定義所述應(yīng)用程序狀態(tài)轉(zhuǎn)換以管理狀態(tài)轉(zhuǎn)換的第一模塊(例如,應(yīng)用程序狀態(tài)管理模塊52)獲取狀態(tài)轉(zhuǎn)換命令并將所獲取的狀態(tài)轉(zhuǎn)換命令提供給第二模塊(例如,連接模塊54),(例如,附圖9中的處理步驟S1);使得第二模塊將所述狀態(tài)轉(zhuǎn)換命令轉(zhuǎn)換為用于管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換的第三模塊(例如,系統(tǒng)狀態(tài)管理模塊53)可以識別的指令(例如,附圖9中的處理步驟S2);使接收了所述轉(zhuǎn)換后的指令的第三模塊基于所述狀態(tài)轉(zhuǎn)換命令確定是否對所述系統(tǒng)的狀態(tài)進(jìn)行轉(zhuǎn)換(例如,附圖9中的處理步驟S5);以及使得第二模塊將第三模塊所執(zhí)行的確定結(jié)果轉(zhuǎn)換為可以由第一模塊識別的通知并將所述通知發(fā)送給第一模塊(例如,附圖9中的處理步驟S7)。
根據(jù)本發(fā)明具體實施方式
的程序是計算機(jī)可執(zhí)行程序并且具有第一模塊、第二模塊和第三模塊。所述程序使計算機(jī)執(zhí)行如下步驟使得利用原語元素來定義所述應(yīng)用程序狀態(tài)轉(zhuǎn)換以管理狀態(tài)轉(zhuǎn)換的第一模塊(例如,應(yīng)用程序狀態(tài)管理模塊52)獲取狀態(tài)轉(zhuǎn)換命令并將所獲取的狀態(tài)轉(zhuǎn)換命令提供給第二模塊(例如,連接模塊54),(例如,附圖9中的處理步驟S1);使得第二模塊將所述狀態(tài)轉(zhuǎn)換命令轉(zhuǎn)換為根據(jù)執(zhí)行所述應(yīng)用程序的系統(tǒng)來管理狀態(tài)轉(zhuǎn)換的第三模塊(例如,系統(tǒng)狀態(tài)管理模塊53)可以識別的指令(例如,附圖9中的處理步驟S2);使接收了所述轉(zhuǎn)換后的指令的第三模塊基于所述狀態(tài)轉(zhuǎn)換命令確定是否對所述系統(tǒng)的狀態(tài)進(jìn)行轉(zhuǎn)換(例如,附圖9中的處理步驟S5);以及使得第二模塊將第三模塊所執(zhí)行的確定結(jié)果轉(zhuǎn)換為可以由第一模塊識別的通知并將所述通知發(fā)送給第一模塊(例如,附圖9中的處理步驟S7)。
在下面,將參考附圖描述本發(fā)明的優(yōu)選具體實施方式

附圖1是示例了根據(jù)本發(fā)明一個具體實施方式
的信息處理裝置1的配置的區(qū)塊圖。
CPU(中央處理單元)11根據(jù)存儲在ROM(只讀存儲器)12中的程序或從存儲器單元18中裝載到RAM(隨機(jī)訪問存儲器)13中的程序執(zhí)行多種處理。根據(jù)需要RAM13還存儲CPU11執(zhí)行處理所必需的數(shù)據(jù)。
CPU11、ROM12和RAM13通過總線14相互連接??偩€14還連接輸入/輸出接口15。
輸入/輸出接口15還連接輸入單元16、輸出單元17、存儲器單元18和通信單元19,其中所述輸入單元16由鍵盤、鼠標(biāo)、用于從遠(yuǎn)端控制器(未示出)接收紅外線的光接收器等組成,所述輸出單元17由LCD(液晶顯示器)或類似物組成,所述存儲器單元18由硬盤或類似物組成,所述通信單元19用于通過網(wǎng)絡(luò)執(zhí)行通信處理。
輸入/輸出接口15在必要時連接到驅(qū)動器20,其可以適當(dāng)?shù)匕惭b可移動媒體21,如磁盤、光盤、磁-光盤或半導(dǎo)體存儲器。根據(jù)需要,從可移動媒體21中讀取的計算機(jī)程序安裝到存儲器單元18。
在所述信息處理裝置1的CPU11中,執(zhí)行存儲于ROM12或從存儲器單元18中裝載到RAM13中的程序。
也許存在一種情況,其中用于定義由CPU11執(zhí)行的應(yīng)用程序(此后也指應(yīng)用程序)的狀態(tài)的方案,取決于執(zhí)行所述應(yīng)用程序的系統(tǒng)(或裝置)。在這種情況中,為了在具有不同應(yīng)用程序狀態(tài)定義的多個系統(tǒng)中執(zhí)行應(yīng)用程序,必須根據(jù)各自系統(tǒng)修改用于應(yīng)用程序中狀態(tài)轉(zhuǎn)換的接口以及修改用于調(diào)用所述接口的操作。
然而,能夠確定應(yīng)用程序的狀態(tài)能否被改變的模塊依賴于系統(tǒng)中的模塊集,其中所述應(yīng)用程序在所述系統(tǒng)中執(zhí)行。
這樣,為了使應(yīng)用程序具有可移植性,必須使所述應(yīng)用程序不依賴系統(tǒng)中的模塊集,但要使所述應(yīng)用程序能夠與執(zhí)行確定應(yīng)用程序狀態(tài)改變處理的模塊協(xié)同操作。
附圖2是應(yīng)用了本發(fā)明一個具體實施方式
的系統(tǒng)的模塊結(jié)構(gòu)圖(軟件堆棧)。
當(dāng)應(yīng)用程序51-1至51-n每個都被執(zhí)行時,用于執(zhí)行由應(yīng)用程序狀態(tài)管理模塊52定義的內(nèi)部狀態(tài)轉(zhuǎn)換的特征(如,功能)被登記到應(yīng)用程序狀態(tài)管理模塊52。應(yīng)用程序狀態(tài)管理模塊52利用所登記的功能可以改變每個應(yīng)用程序內(nèi)部的狀態(tài)。此后,當(dāng)沒有必要在單獨的應(yīng)用程序51-1至51-n之間進(jìn)行區(qū)分時,每個應(yīng)用程序51-1至51-n簡單地稱作應(yīng)用程序51。
為了取得應(yīng)用程序51的可移植性,每個應(yīng)用程序的狀態(tài)都被分解為原語元素以便進(jìn)行定義。應(yīng)用程序51根據(jù)狀態(tài)定義被配置為執(zhí)行狀態(tài)轉(zhuǎn)換。
參考附圖3,將描述由應(yīng)用程序狀態(tài)管理模塊52定義的應(yīng)用程序51的內(nèi)部狀態(tài)轉(zhuǎn)換。在這個圖中,由雙線條包圍的狀態(tài)代表定義為所述應(yīng)用程序的靜止?fàn)顟B(tài)的狀態(tài)。由單線條包圍的狀態(tài)代表轉(zhuǎn)換中的狀態(tài)。
每個應(yīng)用程序的狀態(tài)被分解為5個狀態(tài)并且定義每個被分解的狀態(tài)。所述狀態(tài)包括卸載狀態(tài)71、裝載狀態(tài)72、初始化狀態(tài)73、不激活狀態(tài)74和激活狀態(tài)75。在應(yīng)用程序51之一的第一狀態(tài)中(其包括卸載狀態(tài)71、裝載狀態(tài)72、初始化狀態(tài)73、不激活狀態(tài)74和激活狀態(tài)75),所述應(yīng)用程序51在存儲器上展開(expand)。在第二狀態(tài)中(其包括初始化狀態(tài)73、不激活狀態(tài)74和激活狀態(tài)75),所述應(yīng)用程序可以被另外的應(yīng)用程序或模塊使用(如,應(yīng)用程序可以在后臺使用)。在第三狀態(tài)中(其包括不激活狀態(tài)74和激活狀態(tài)75),用戶可以看到相應(yīng)于所述應(yīng)用程序的GUI。僅僅在第四狀態(tài)中,應(yīng)用程序才能接收如關(guān)鍵事件這樣的操作輸入。
附圖4中示出了一個例子,其詳細(xì)示例了各自狀態(tài)與能夠在所述狀態(tài)中執(zhí)行的處理之間的關(guān)系。
GUI不在卸載狀態(tài)71、裝載狀態(tài)72和初始化狀態(tài)73中顯示。在不激活狀態(tài)74和激活狀態(tài)75中,可以根據(jù)處理狀態(tài)來決定顯示或不顯示GUI(如,GUI可以不在后臺處理中顯示)。
僅在不激活狀態(tài)74中,父應(yīng)用程序才出現(xiàn)。然而,甚至不激活狀態(tài)74中也可能沒有父應(yīng)用程序事件。僅僅在激活狀態(tài)75中才能讀取執(zhí)行函數(shù)。
GUI能夠在不激活狀態(tài)74和激活狀態(tài)75中顯示。然而,GUI不是必須在這些狀態(tài)中顯示。例如,當(dāng)執(zhí)行后臺處理時或在不激活狀態(tài)74和激活狀態(tài)75中出現(xiàn)父應(yīng)用程序時,GUI可以不顯示。
在卸載狀態(tài)71和裝載狀態(tài)72中,允許和另一模塊進(jìn)行協(xié)同操作。然而,在初始化狀態(tài)73、不激活狀態(tài)74和激活狀態(tài)75中,允許和另一模塊進(jìn)行協(xié)同操作。
此外,在裝載狀態(tài)72、初始化狀態(tài)73、不激活狀態(tài)74和激活狀態(tài)75中允許讀取更新函數(shù)和使用寄存器,但在卸載狀態(tài)71中不允許。在卸載狀態(tài)71中,應(yīng)用程序不在存儲器中展開(expand)。
這樣,系統(tǒng)中的多種狀態(tài)被分解為5種狀態(tài)(卸載狀態(tài)71、裝載狀態(tài)72、初始化狀態(tài)73、不激活狀態(tài)74和激活狀態(tài)75),并且時每種狀態(tài)進(jìn)行定義?;谶@種狀態(tài)定義方案設(shè)計的所述應(yīng)用程序和應(yīng)用程序狀態(tài)管理模塊52一樣不依賴于裝置和系統(tǒng)。
下面將詳細(xì)描述上面所描述的每個狀態(tài)之間的轉(zhuǎn)換。
在例如應(yīng)用程序51-1在卸載狀態(tài)71中(其中應(yīng)用程序51-1沒有展開)的同時產(chǎn)生裝載指令時,通過正裝載應(yīng)用程序51-1的狀態(tài)(正裝載狀態(tài)81)把應(yīng)用程序51-1的狀態(tài)轉(zhuǎn)換到裝載狀態(tài)72(其中應(yīng)用程序51-1在存儲器中展開)。在應(yīng)用程序在裝載狀態(tài)72中的同時產(chǎn)生初始化指令時,通過正執(zhí)初始化處理的狀態(tài)(正初始化狀態(tài)82)將應(yīng)用程序狀態(tài)轉(zhuǎn)換到初始化狀態(tài)73。
在應(yīng)用程序51-1在初始化狀態(tài)73中的同時產(chǎn)生GUI初始化指令時,通過正執(zhí)行GUI初始化處理的狀態(tài)(GUI正初始化狀態(tài)83)把應(yīng)用程序狀態(tài)轉(zhuǎn)換到不激活狀態(tài)74(GUI已經(jīng)被初始化)。在不激活狀態(tài)74中,不執(zhí)行與應(yīng)用程序51-1相關(guān)聯(lián)的處理,但可以顯示相應(yīng)于應(yīng)用程序51-1的GUI。這個狀態(tài)代表了一種情況,例如,在能夠執(zhí)行多個應(yīng)用程序和顯示相應(yīng)于各自應(yīng)用程序的窗口的系統(tǒng)(多任務(wù)系統(tǒng))中,當(dāng)前不使用應(yīng)用程序51-1(相應(yīng)于應(yīng)用程序51-1的窗口不被激活)。
在應(yīng)用程序51-1例如在不激活狀態(tài)74中的同時產(chǎn)生激活指令時,通過正執(zhí)行激活處理的狀態(tài)(正激活狀態(tài)84)把應(yīng)用程序狀態(tài)轉(zhuǎn)換到激活狀態(tài)75。這個狀態(tài)轉(zhuǎn)換代表了一種情況,例如,在能夠同時執(zhí)行多個應(yīng)用程序和顯示相應(yīng)于所述應(yīng)用程序的窗口的多任務(wù)系統(tǒng)中,點擊相應(yīng)于當(dāng)前沒有使用的應(yīng)用程序51-1的不激活窗口,導(dǎo)致激活所述窗口(轉(zhuǎn)換到激活狀態(tài)75)。在激活狀態(tài)75中,可以接收操作輸入并可響應(yīng)所述操作輸入執(zhí)行處理。
在應(yīng)用程序在激活狀態(tài)75中的同時產(chǎn)生不激活指令時,通過正執(zhí)行不激活處理的狀態(tài)(正不激活狀態(tài)91)把應(yīng)用程序狀態(tài)轉(zhuǎn)換到不激活狀態(tài)74。這個狀態(tài)轉(zhuǎn)換代表了一種情況,例如,在能夠同時執(zhí)行多個應(yīng)用程序和顯示相應(yīng)于所述應(yīng)用程序的窗口的多任務(wù)系統(tǒng)中,點擊除了當(dāng)前沒有使用的應(yīng)用程序51-1之外的一個應(yīng)用程序的不激活窗口,導(dǎo)致相應(yīng)于所點擊窗口的應(yīng)用程序的狀態(tài)轉(zhuǎn)換到激活狀態(tài)75并且應(yīng)用程序51-1的狀態(tài)轉(zhuǎn)換到不激活狀態(tài)74(相應(yīng)于應(yīng)用程序51的窗口被改變從而不被激活)。
在應(yīng)用程序51-1在不激活狀態(tài)74的同時產(chǎn)生終結(jié)指令時,通過正執(zhí)行終結(jié)處理的狀態(tài)(正終結(jié)狀態(tài)92)把應(yīng)用程序狀態(tài)轉(zhuǎn)換到初始化狀態(tài)73。在應(yīng)用程序在初始化狀態(tài)73中的同時產(chǎn)生最終敲定(finalize)指令時,通過正執(zhí)行最終敲定處理的狀態(tài)(正最終敲定狀態(tài)93)把應(yīng)用程序狀態(tài)轉(zhuǎn)換到裝載狀態(tài)72。在應(yīng)用程序51-1在裝載狀態(tài)72的同時產(chǎn)生卸載指令時,通過正執(zhí)行卸載處理的狀態(tài)(正卸載狀態(tài)94)把應(yīng)用程序狀態(tài)轉(zhuǎn)換到卸載狀態(tài)71。
在應(yīng)用程序51的狀態(tài)中的轉(zhuǎn)換基于狀態(tài)確定來執(zhí)行。所述狀態(tài)確定基于整個模塊集的狀態(tài)來執(zhí)行,所述整個模塊集的狀態(tài)包括,例如,另一應(yīng)用程序的執(zhí)行狀態(tài)和硬件狀態(tài)。然而,為每個模塊集確定整個集的狀態(tài),即,整個集的狀態(tài)確定是依賴于集的。當(dāng)應(yīng)用程序狀態(tài)管理模塊52具有用于確定應(yīng)用程序51的狀態(tài)是否將被轉(zhuǎn)換的機(jī)制時,必須為每個模塊集準(zhǔn)備應(yīng)用程序狀態(tài)管理模塊52。換句話說,通過不具有狀態(tài)確定函數(shù),應(yīng)用程序狀態(tài)管理模塊52能夠確保可移植性,所述可移植性不依賴于系統(tǒng)中的集。
相應(yīng)地,應(yīng)用程序狀態(tài)管理模塊52不具有用于確定應(yīng)用程序51的狀態(tài)將被轉(zhuǎn)換的機(jī)制,以便確保可移植性,所述可移植性不依賴于系統(tǒng)中的集。
系統(tǒng)狀態(tài)管理模塊53是具有用于確定應(yīng)用程序51的狀態(tài)是否將被轉(zhuǎn)換的機(jī)制的模塊。換句話說,系統(tǒng)狀態(tài)管理模塊53是依賴于集的模塊。在收到在應(yīng)用程序狀態(tài)的轉(zhuǎn)換請求時,應(yīng)用程序狀態(tài)管理模塊52不分析所述請求但其請求系統(tǒng)狀態(tài)管理模塊53執(zhí)行所述請求的確定。
存在一種情況,例如,應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53獨立地在不同的微型計算機(jī)止執(zhí)行或者系統(tǒng)狀態(tài)管理模塊53的應(yīng)用程序狀態(tài)定義與應(yīng)用程序狀態(tài)管理模塊52的不同。在這種情況中,提供有微型計算機(jī)之間的通信功能和轉(zhuǎn)換用于應(yīng)用程序狀態(tài)轉(zhuǎn)換的請求(命令)的機(jī)制的連接模塊54,被作為應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53之間的媒介實現(xiàn)。
連接模塊54從應(yīng)用程序狀態(tài)管理模塊52接收特征(功能)的登記,其中所述特征(功能)包括接收來自應(yīng)用程序狀態(tài)管理模塊52的應(yīng)用程序狀態(tài)轉(zhuǎn)換請求的特征(功能),以及用于接收應(yīng)用程序狀態(tài)轉(zhuǎn)換結(jié)束通知的特征(功能)。此外,連接模塊54存儲指示指令(功能)之間關(guān)系的信息(所述每條指令(功能)可以由應(yīng)用程序狀態(tài)管理模塊52或系統(tǒng)狀態(tài)管理模塊53所識別),以將應(yīng)用程序狀態(tài)轉(zhuǎn)換的指令發(fā)送到應(yīng)用程序狀態(tài)管理模塊52。基于所述信息,連接模塊54在應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53之間作為媒介以發(fā)送和接收所述指令。
在附圖5到附圖7中,示出了指令(功能)的對應(yīng)性表格,作為指示指令(功能)之間關(guān)系的所述信息的例子,其中所述每條指令(功能)可以由系統(tǒng)狀態(tài)管理模塊53或應(yīng)用程序狀態(tài)管理模塊52所識別。
例如,附圖5中示出了包含在連接模塊54中的對應(yīng)性表格的例子,其中所述連接模塊54關(guān)聯(lián)于系統(tǒng)A。
系統(tǒng)A中的設(shè)置指令是這樣的指令,其引發(fā)在應(yīng)用程序狀態(tài)管理模塊52管理的狀態(tài)轉(zhuǎn)換中的從卸載狀態(tài)71到初始化狀態(tài)73的轉(zhuǎn)換。所述設(shè)置指令可以轉(zhuǎn)換為可由應(yīng)用程序狀態(tài)管理模塊52所識別的裝載指令加上初始化指令。系統(tǒng)A中的開始指令是可以引發(fā)從初始化狀態(tài)73到激活狀態(tài)75的轉(zhuǎn)換的指令。所述開始指令相應(yīng)于可由應(yīng)用程序狀態(tài)管理模塊52所識別的GUI初始化指令加上激活指令。
系統(tǒng)A中的停止指令是這樣的指令,其引發(fā)在應(yīng)用程序狀態(tài)管理模塊52所管理的狀態(tài)轉(zhuǎn)換中的從激活狀態(tài)75到初始化狀態(tài)73的轉(zhuǎn)換。所述停止指令相應(yīng)于可由應(yīng)用程序狀態(tài)管理模塊52所識別的不激活指令加上終結(jié)指令。系統(tǒng)A中的結(jié)束指令是這樣的指令,其引發(fā)在應(yīng)用程序狀態(tài)管理模塊52所管理的狀態(tài)轉(zhuǎn)換中的從初始化狀態(tài)73到卸載狀態(tài)71的轉(zhuǎn)換。所述結(jié)束指令可以轉(zhuǎn)換為可由應(yīng)用程序狀態(tài)管理模塊52所識別的最終敲定指令加上卸載指令。
這樣,即使當(dāng)系統(tǒng)A中的指令意欲在應(yīng)用程序狀態(tài)管理模塊52所管理的狀態(tài)轉(zhuǎn)換中轉(zhuǎn)換多個狀態(tài),連接模塊54可以將所述指令轉(zhuǎn)換為由應(yīng)用程序狀態(tài)管理模塊52所識別的指令。這樣,連接模塊54可以在應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53之間作為媒介以發(fā)送和接收指令。
參考附圖6,示例了包含在連接模塊54中的對應(yīng)性表格的例子,其中連接模塊54關(guān)聯(lián)于系統(tǒng)B。
系統(tǒng)B中的設(shè)置指令、開始指令、停止指令和結(jié)束指令與可由應(yīng)用程序狀態(tài)管理模塊52識別的指令具有與系統(tǒng)A中相同的對應(yīng)關(guān)系。除此之外,系統(tǒng)B中還存在不激活指令,所述不激活指令引發(fā)在由應(yīng)用程序狀態(tài)管理模塊52所管理的狀態(tài)轉(zhuǎn)換中的從激活狀態(tài)75到不激活狀態(tài)74的轉(zhuǎn)換。此外,在系統(tǒng)B中,存在使得從不激活狀態(tài)74到激活狀態(tài)75的轉(zhuǎn)換的激活指令。
特別地,在系統(tǒng)中還可能存在這樣的情況,即應(yīng)用程序狀態(tài)管理模塊52中存在的指令,具有相應(yīng)于系統(tǒng)狀態(tài)管理模塊53中指令的一一對應(yīng)關(guān)系,并且在應(yīng)用程序狀態(tài)管理模塊52中存在的指令不具有相應(yīng)于系統(tǒng)狀態(tài)管理模塊53中指令的一一對應(yīng)關(guān)系。即使在這種情況中,連接模塊54能夠?qū)⒔邮盏降闹噶钷D(zhuǎn)換為能由應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53所識別的指令,使得在發(fā)送/接收所述指令時作為應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53之間的媒介。
附圖7示例了包含在連接模塊54中的對應(yīng)性表格的例子,其中所述連接模塊54關(guān)聯(lián)于系統(tǒng)C。
系統(tǒng)C中的裝載指令可以由應(yīng)用程序狀態(tài)管理模塊52所識別并且引發(fā)在由應(yīng)用程序狀態(tài)管理模塊52所管理的狀態(tài)轉(zhuǎn)換中的從卸載狀態(tài)71到裝載狀態(tài)72的轉(zhuǎn)換。系統(tǒng)C中的初始化指令是這樣的指令,其引發(fā)在由應(yīng)用程序狀態(tài)管理模塊52所管理的系統(tǒng)轉(zhuǎn)換中的從裝載狀態(tài)72到激活狀態(tài)75的狀態(tài)轉(zhuǎn)換。所述初始化指令相應(yīng)于可由應(yīng)用程序狀態(tài)管理模塊52識別的初始化指令加上GUI初始化指令加上激活指令。
系統(tǒng)C中的關(guān)閉指令是這樣的指令,其引發(fā)在由應(yīng)用程序狀態(tài)管理模塊52所管理的狀態(tài)轉(zhuǎn)換中的從激活狀態(tài)75到卸載狀態(tài)71的狀態(tài)轉(zhuǎn)換。所述關(guān)閉指令相應(yīng)于不激活指令加上終結(jié)指令加上最終敲定指令加上卸載指令。
這樣,不論在應(yīng)用程序狀態(tài)管理模塊52中的指令如何對應(yīng)于系統(tǒng)狀態(tài)管理模塊53中的指令,連接模塊54可以基于由應(yīng)用程序狀態(tài)管理模塊52所定義的所述內(nèi)部狀態(tài)登記這些指令之間對應(yīng)的關(guān)系。這樣,連接模塊54將接收到的請求轉(zhuǎn)換為可以由每個模塊識別的指令,以在發(fā)送/接收指令時在模塊之間作為中介。
特別地,應(yīng)用程序狀態(tài)管理模塊52管理其中應(yīng)用程序51-1到應(yīng)用程序51-n中的每個應(yīng)用程序都處于附圖3中所示狀態(tài)中的哪種狀態(tài)中。當(dāng)收到應(yīng)用程序51-1到51-n之一的狀態(tài)轉(zhuǎn)換請求時,應(yīng)用程序狀態(tài)管理模塊52發(fā)送應(yīng)用程序狀態(tài)轉(zhuǎn)換請求給連接模塊54以請求系統(tǒng)狀態(tài)管理模塊53執(zhí)行狀態(tài)轉(zhuǎn)換操作。連接模塊54利用附圖5到附圖7中所示的對應(yīng)性表格將接收到的請求內(nèi)容進(jìn)行轉(zhuǎn)換并且將轉(zhuǎn)換的指令發(fā)送到系統(tǒng)狀態(tài)管理模塊53。在收到應(yīng)用程序狀態(tài)轉(zhuǎn)換請求時,系統(tǒng)狀態(tài)管理模塊53基于另一應(yīng)用程序的狀態(tài)和另一模塊或硬件的狀態(tài)確定基于請求執(zhí)行的操作的內(nèi)容,即,狀態(tài)轉(zhuǎn)換是否可以被執(zhí)行。
如果系統(tǒng)狀態(tài)管理模塊53確定狀態(tài)轉(zhuǎn)換將被執(zhí)行,則為連接模塊54提供狀態(tài)轉(zhuǎn)換指令。在從系統(tǒng)狀態(tài)管理模塊53收到指令時,連接模塊54例如,使用附圖5到附圖7中的對應(yīng)性表格將所述指令轉(zhuǎn)換為可以被應(yīng)用程序狀態(tài)管理模塊52識別的形式的指令(即,裝載指令,GUI初始化指令,激活指令,不激活指令,終結(jié)指令,最終敲定指令,卸載指令),并且將所轉(zhuǎn)換的指令發(fā)送到應(yīng)用程序狀態(tài)管理模塊52。在收到應(yīng)用程序狀態(tài)轉(zhuǎn)換指令時,應(yīng)用程序狀態(tài)管理模塊52調(diào)用由應(yīng)用程序51登記的應(yīng)用程序狀態(tài)轉(zhuǎn)換的功能。特別地,應(yīng)用程序52的狀態(tài)進(jìn)入正轉(zhuǎn)換狀態(tài)(附圖3中單線條所包圍的狀態(tài))。這樣,應(yīng)用程序狀態(tài)管理模塊52從應(yīng)用程序51收到狀態(tài)轉(zhuǎn)換操作完成的通知時,即,為應(yīng)用程序狀態(tài)管理模塊52提供了一個ACK時,狀態(tài)轉(zhuǎn)換操作完成。
這樣,應(yīng)用程序51和應(yīng)用程序狀態(tài)管理模塊52不依賴系統(tǒng)中的模塊集就可以被實現(xiàn)。通過改變連接模塊54,應(yīng)用程序51和應(yīng)用程序狀態(tài)管理模塊52可以被移植到多個系統(tǒng)。特別地,通過使用應(yīng)用程序狀態(tài)管理模塊52和連接模塊54,應(yīng)用程序51不改變執(zhí)行就可以在多個系統(tǒng)中操作,其中所述應(yīng)用程序狀態(tài)管理模塊52不依賴于集,所述集根據(jù)預(yù)先定義的狀態(tài)定義管理狀態(tài)轉(zhuǎn)換,所述的連接模塊54吸收獨立于集的模塊和依賴于集的模塊之間的差別。
此外,使用連接模塊54可以保證任意應(yīng)用程序在多個不同裝置或集上的正常操作,只要其是基于由應(yīng)用程序狀態(tài)管理模塊52定義的狀態(tài)轉(zhuǎn)換設(shè)計的,其允許增加應(yīng)用程序的可移植性。此外,任意應(yīng)用程序,只要是基于由應(yīng)用程序狀態(tài)管理模塊52定義的狀態(tài)轉(zhuǎn)換設(shè)計的,即使當(dāng)所述應(yīng)用程序在不同系統(tǒng)上執(zhí)行時,都能夠以統(tǒng)一的顯示形式來顯示GUI。
上面描述的應(yīng)用程序狀態(tài)轉(zhuǎn)換的操作可以包括不應(yīng)當(dāng)被另一模塊所中斷的處理。在這種情況下,必須確保應(yīng)用程序狀態(tài)轉(zhuǎn)換操作的完成。此外,應(yīng)用程序狀態(tài)轉(zhuǎn)換可以不是一個原語狀態(tài)轉(zhuǎn)換而是包括多個轉(zhuǎn)換。因此,應(yīng)用程序狀態(tài)轉(zhuǎn)換操作被觸發(fā)時,必須發(fā)出多個狀態(tài)轉(zhuǎn)換指令。進(jìn)一步地,在被發(fā)出的多個狀態(tài)轉(zhuǎn)換指令中有些可以相互抵消。執(zhí)行所有被發(fā)出的指令導(dǎo)致處理冗余和很長的處理時間。
這樣,準(zhǔn)備了用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令的機(jī)制從而對其中所保持的指令的處理響應(yīng)于應(yīng)用程序狀態(tài)轉(zhuǎn)換指令執(zhí)行完畢的通知而連續(xù)被執(zhí)行。當(dāng)引發(fā)狀態(tài)轉(zhuǎn)換事件時這個機(jī)制可以接收多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令,確定各自指令的完成并且連續(xù)執(zhí)行各自的指令。此外,這個機(jī)制能夠檢驗所保持的指令的內(nèi)容并且如果在所保持指令中存在可以相互抵消的指令時就將那些指令丟棄。結(jié)果這樣可以減少所有堆棧的應(yīng)用程序狀態(tài)轉(zhuǎn)換指令完成執(zhí)行所需的時間。
特別地,準(zhǔn)備了如附圖8所示的應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列,作為上面所描述的用于確保每個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令執(zhí)行完畢并連續(xù)執(zhí)行每個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令的保持機(jī)制。這個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列是FIFO(先進(jìn)先出)隊列。
然后,如附圖8所示,應(yīng)用程序狀態(tài)轉(zhuǎn)換指令是以指令產(chǎn)生順序排列的順序隊列。這樣,執(zhí)行的第一優(yōu)先級賦予比隊列中其它指令較早產(chǎn)生的指令。被排列的指令對象包含這樣的信息,所述信息關(guān)于哪個模塊請求執(zhí)行所述指令、哪個應(yīng)用程序通過所述指令執(zhí)行狀態(tài)轉(zhuǎn)換以及應(yīng)用程序狀態(tài)轉(zhuǎn)換到哪個狀態(tài)。所述指令對象還包含這樣的信息,所述信息關(guān)于完成指令的執(zhí)行是否需要等待、用于轉(zhuǎn)換操作所需的數(shù)據(jù)以及所述數(shù)據(jù)的大小。
如上面所描述的,將被排列的指令對象被配置為包含指示是否必須等待指令執(zhí)行完成的信息。根據(jù)這個配置,當(dāng)執(zhí)行確定為必須等待其完成的指令的處理時,將不執(zhí)行下一條指令的處理直到從正在進(jìn)行狀態(tài)轉(zhuǎn)換的應(yīng)用程序51發(fā)送了指令處理完成的通知。這樣,應(yīng)用程序51可以確保完成它的狀態(tài)轉(zhuǎn)換處理。
例如,當(dāng)應(yīng)用程序51-1在激活狀態(tài)75時,確定了指示應(yīng)用程序51-2的狀態(tài)轉(zhuǎn)換至激活狀態(tài)75的指令被執(zhí)行,并且結(jié)果,應(yīng)用程序51-1的狀態(tài)轉(zhuǎn)換到不激活狀態(tài)74以及應(yīng)用程序51-2的狀態(tài)轉(zhuǎn)換到激活狀態(tài)75。在這樣的情況下,應(yīng)用程序51-1的不激活指令、應(yīng)用程序51-2的初始化指令、GUI初始化指令和激活指令被排列到應(yīng)用程序狀態(tài)管理模塊52的應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列中。
還存在一種情況,其中例如由于用戶在短時間間隔內(nèi)的重復(fù)操作,相互沖突的指令被堆棧到同一應(yīng)用程序的隊列中。這種情況在下面的情況中出現(xiàn),例如,用戶錯誤地執(zhí)行輸入操作,以及因此轉(zhuǎn)換到激活狀態(tài)75的指令在短時間內(nèi)交替地發(fā)送到應(yīng)用程序51-1和應(yīng)用程序51-2。
在這種情況下,用戶希望應(yīng)用程序狀態(tài)立即成為他或她最后操作輸入時想要的狀態(tài)。然而,當(dāng)它被這樣配置時,即由最后操作輸入所指示的狀態(tài)轉(zhuǎn)換將不被執(zhí)行直到所有隊列中的指令都已經(jīng)被執(zhí)行時,需要用很長的時間段才能獲得最后指示的應(yīng)用程序狀態(tài)。
這樣,在應(yīng)用程序狀態(tài)管理模塊52的應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列包含沖突指令的情況中,把這些指令從應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列中刪除。這樣的沖突指令包括同一應(yīng)用程序的激活指令和不激活指令、GUI初始化指令和終結(jié)指令、初始化指令和最終敲定指令、以及裝載指令和卸載指令。
根據(jù)這個方案,可以省略隊列中的冗余處理、允許減少用于達(dá)到最后所指示的應(yīng)用程序狀態(tài)的步驟數(shù)目。此外,在多個微型計算機(jī)之間執(zhí)行異步發(fā)送/接收指令和通知時,希望利用FIFO堆棧來進(jìn)行隊列處理。
這樣,根據(jù)本發(fā)明的一個具體實施方式
,在根據(jù)需要等待狀態(tài)轉(zhuǎn)換完成的同時狀態(tài)轉(zhuǎn)換指令順序執(zhí)行是可能的。因此,應(yīng)用程序的任務(wù)優(yōu)先級之間的差別不影響應(yīng)用程序狀態(tài)轉(zhuǎn)換,并且進(jìn)一步地,應(yīng)用程序可以被移植到具有不同應(yīng)用程序狀態(tài)轉(zhuǎn)換管理配置的機(jī)制上。
現(xiàn)在參考附圖9的流程圖,將描述在根據(jù)本發(fā)明具體實施方式
的信息處理裝置中執(zhí)行的處理過程。
在步驟S1,應(yīng)用程序狀態(tài)管理模塊52確定是否收到了來自任意模塊(例如,應(yīng)用程序51-1到應(yīng)用程序51-n中的任意一個)的用于轉(zhuǎn)換狀態(tài)的命令(狀態(tài)轉(zhuǎn)換命令)。如果,在步驟S1,確定沒有收到狀態(tài)轉(zhuǎn)換命令,處理過程進(jìn)行到步驟S9,其將在下面描述。
如果確定在步驟S1收到狀態(tài)轉(zhuǎn)換命令,在步驟S2,應(yīng)用程序狀態(tài)管理模塊52向連接模塊54提供應(yīng)用程序狀態(tài)轉(zhuǎn)換命令。
在步驟S3,連接模塊轉(zhuǎn)換狀態(tài)轉(zhuǎn)換命令,使得系統(tǒng)狀態(tài)管理模塊53可以識別狀態(tài)轉(zhuǎn)換命令的內(nèi)容并且將所述轉(zhuǎn)換的命令提供給系統(tǒng)狀態(tài)管理模塊53。
在步驟S4,系統(tǒng)狀態(tài)管理模塊53從連接模塊54獲取所述轉(zhuǎn)換后的應(yīng)用程序狀態(tài)轉(zhuǎn)換命令(請求)并且確定應(yīng)用程序操作的內(nèi)容。特別地,系統(tǒng)狀態(tài)管理模塊53基于系統(tǒng)的當(dāng)前狀態(tài)或來自其它應(yīng)用程序的請求,確定應(yīng)用程序狀態(tài)轉(zhuǎn)換是否能被執(zhí)行。
在步驟S5,系統(tǒng)狀態(tài)管理模塊53確定應(yīng)用程序的狀態(tài)轉(zhuǎn)換是否被執(zhí)行。如果確定步驟S5不執(zhí)行狀態(tài)轉(zhuǎn)換,則處理過程進(jìn)行到步驟S9,其將在下面進(jìn)行描述。
如果在步驟S5確定了應(yīng)用程序的狀態(tài)轉(zhuǎn)換被執(zhí)行,則系統(tǒng)狀態(tài)管理模塊53在步驟S6為連接模塊54提供應(yīng)用程序狀態(tài)轉(zhuǎn)換命令。
在步驟S7,連接模塊54將狀態(tài)轉(zhuǎn)換命令轉(zhuǎn)換為可以由應(yīng)用程序狀態(tài)管理模塊52所識別的指令并且將所述轉(zhuǎn)換了的指令提供給應(yīng)用程序狀態(tài)管理模塊52。
在步驟S8,參考附圖8,應(yīng)用程序狀態(tài)管理模塊52將所述轉(zhuǎn)換了的狀態(tài)轉(zhuǎn)換指令插入到應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列。
如果確定了在步驟S1沒有接收到狀態(tài)轉(zhuǎn)換命令,如果確定在步驟S5沒有執(zhí)行狀態(tài)轉(zhuǎn)換或者在步驟S8的處理執(zhí)行之后,則執(zhí)行步驟S9。在步驟S9,應(yīng)用程序狀態(tài)管理模塊52確定應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列是否包含可以刪除的指令。
如果在步驟S9確定隊列中存在可以被刪除的指令,例如同一應(yīng)用程序的激活指令和不激活指令,應(yīng)用程序狀態(tài)管理模塊52在步驟S10從隊列中刪除可以被刪除的指令。
如果在步驟S9確定應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列不包含可以被刪除的指令,或者在步驟S10的處理之后,應(yīng)用程序狀態(tài)管理模塊52在步驟S11確定在應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列中是否還保留有指令。
如果在步驟S11確定在應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列中還保留有指令,則應(yīng)用程序狀態(tài)管理模塊52在步驟S12中執(zhí)行最先被排列在所述保留指令中的指令。然后,處理過程返回步驟S1以進(jìn)行重復(fù)執(zhí)行。
如果在步驟S11中確定應(yīng)用程序狀態(tài)轉(zhuǎn)換指令隊列中沒有保留指令,則處理過程終結(jié)。
如前面描述的,應(yīng)用程序狀態(tài)轉(zhuǎn)換指令由應(yīng)用程序狀態(tài)管理模塊52管理,并且在應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53之間的指令發(fā)送/接收或類似操作由連接模塊54進(jìn)行中介。根據(jù)這個方案,可以執(zhí)行不依賴于系統(tǒng)的應(yīng)用程序。
這樣,根據(jù)本發(fā)明的一個具體實施方式
,應(yīng)用程序51-1到應(yīng)用程序51-n中的每一個應(yīng)用程序可以被移植到具有不同應(yīng)用程序狀態(tài)定義的系統(tǒng)中(即,包含不同系統(tǒng)狀態(tài)管理模塊的系統(tǒng),或者換句話說包含由不同系統(tǒng)狀態(tài)管理模塊控制的硬件的系統(tǒng)),而不必對應(yīng)用程序51-1到51-n中的每個應(yīng)用程序和應(yīng)用程序狀態(tài)管理模塊52進(jìn)行修改。
此外,通過實現(xiàn)本發(fā)明的一個具體實施例,雖然由應(yīng)用程序狀態(tài)管理模塊52管理狀態(tài)轉(zhuǎn)換,由于系統(tǒng)狀態(tài)管理模塊53確定應(yīng)用程序51-1到51-n中的每個應(yīng)用程序的狀態(tài)轉(zhuǎn)換是否能被執(zhí)行,這樣就可以避免在多個應(yīng)用程序上執(zhí)行的狀態(tài)轉(zhuǎn)換操作之間可能發(fā)生的沖突。
進(jìn)一步地,根據(jù)本發(fā)明的一個具體實施方式
,準(zhǔn)備了用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令的機(jī)制。利用這個機(jī)制,響應(yīng)狀態(tài)轉(zhuǎn)換完成的通知可以順序地?fù)Q行所述保持的指令。這樣,當(dāng)使得應(yīng)用程序狀態(tài)轉(zhuǎn)換事件時,能夠接收到多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令,并且進(jìn)一步地,在確保每個指令執(zhí)行完成的同時可以順序執(zhí)行應(yīng)用程序狀態(tài)轉(zhuǎn)換指令。進(jìn)一步地,通過準(zhǔn)備用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令的機(jī)制,可以檢驗所保持指令的內(nèi)容。如果確定在機(jī)制中存在能相互抵消的指令,則可以刪除所述相互抵消的指令。相應(yīng)地,在狀態(tài)轉(zhuǎn)換操作中可以省略冗余處理,其減少了完成堆棧的多個應(yīng)用程序狀態(tài)轉(zhuǎn)換所需的事件。
此外,即使在應(yīng)用程序狀態(tài)管理模塊52和系統(tǒng)狀態(tài)管理模塊53單獨地應(yīng)用于不同的微型計算機(jī)并且指令被異步地傳送到各自模塊的情況下,也能夠應(yīng)用本發(fā)明。
如上面所描述的,應(yīng)用程序的狀態(tài)被分解為原語元素并且定義每個元素。根據(jù)所述定義來實現(xiàn)所述應(yīng)用程序。然后,在應(yīng)用程序和配置為用于處理依賴于執(zhí)行應(yīng)用程序的系統(tǒng)的應(yīng)用程序狀態(tài)轉(zhuǎn)換的模塊(在本具體實施方式
中,系統(tǒng)狀態(tài)管理模塊53)之間,提供了利用如上面所述的原語元素來定義應(yīng)用程序狀態(tài)轉(zhuǎn)換以管理所述狀態(tài)轉(zhuǎn)換的模塊(在本具體實施方式
中,應(yīng)用程序狀態(tài)管理模塊52),以及被配置為吸收在所述利用原語元素來定義狀態(tài)轉(zhuǎn)換以管理上面所描述的狀態(tài)轉(zhuǎn)換的模塊與所述配置為處理應(yīng)用程序狀態(tài)轉(zhuǎn)換(所述應(yīng)用程序狀態(tài)轉(zhuǎn)換依賴于執(zhí)行應(yīng)用程序的系統(tǒng))的模塊之間的應(yīng)用程序狀態(tài)定義的差異的模塊(在本具體實施方式
中,連接模塊54)。利用這個方案,可以實現(xiàn)不依賴于系統(tǒng)的應(yīng)用程序的移植性。
進(jìn)一步地,在模塊(在本具體實施方式
中,應(yīng)用程序狀態(tài)管理模塊52)中提供了用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令的機(jī)制,所述模塊配置為利用上面所描述的原語元素來定義應(yīng)用程序的狀態(tài)轉(zhuǎn)換以管理所述狀態(tài)轉(zhuǎn)換。所述機(jī)制響應(yīng)應(yīng)用程序狀態(tài)轉(zhuǎn)換完成的通知順序執(zhí)行處理所保持的指令。此外,利用這個方案,當(dāng)使得應(yīng)用程序狀態(tài)轉(zhuǎn)換事件時,可以接收到多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令,以及進(jìn)一步地,在確保各自指令執(zhí)行完成的同時可以順序執(zhí)行應(yīng)用程序狀態(tài)轉(zhuǎn)換。當(dāng)保留在用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令的機(jī)制中的指令被順序執(zhí)行時,檢驗所述保留指令的內(nèi)容使得能夠刪除可以相互抵消的指令。這減少了用于完成應(yīng)用程序狀態(tài)轉(zhuǎn)換所需的時間。
上面描述的處理過程可以由硬件也可以由軟件來執(zhí)行。當(dāng)處理過程由軟件執(zhí)行時,構(gòu)成所述軟件的程序從記錄媒體裝載到并入專用硬件的計算機(jī)或能夠通過安裝多種程序而執(zhí)行多種功能的通用個人計算機(jī)上。
所述記錄媒體可以是可移動媒體21,例如附圖1所示的,磁盤(包括軟盤)、光盤(包括CD-ROM(光盤只讀存儲器))、磁-光盤(包括MDTM(微型盤))、或半導(dǎo)體存儲器。
可以注意到,在本說明書中,描述記錄在記錄媒體中/上的程序的步驟可以是,但不是必須,如所描述的按時間順序執(zhí)行,以及包括不必按時間順序來執(zhí)行的并行或單獨地執(zhí)行的處理。
進(jìn)一步地,在本說明書中,術(shù)語“系統(tǒng)”用于代表由多個裝置組成的整個裝置。
可以理解,可以在不背離本發(fā)明要點的范圍內(nèi)對本發(fā)明的具體實施方式
作出改變和修改。
權(quán)利要求
1.一種信息處理裝置,能夠執(zhí)行應(yīng)用程序,該裝置包括系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置,用于管理狀態(tài)的轉(zhuǎn)換,所述狀態(tài)的轉(zhuǎn)換依賴于執(zhí)行所述應(yīng)用程序操作的系統(tǒng);應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置,用于利用原語元素定義所述應(yīng)用程序的狀態(tài)轉(zhuǎn)換以管理該應(yīng)用程序的狀態(tài)轉(zhuǎn)換;以及指令發(fā)送/接收裝置,用于存儲指示指令之間關(guān)系的信息,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置識別,并且所述指令發(fā)送/接收裝置基于所述信息執(zhí)行所述指令向從所述系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置和應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置的發(fā)送/接收。
2.根據(jù)權(quán)利要求1的信息處理裝置,其中所述應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置包括指令保持裝置,所述指令保持裝置用于保持多個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令并且基于FIFO執(zhí)行每個所述被保持的指令。
3.根據(jù)權(quán)利要求2的信息處理裝置,其中在指令保持裝置中的每條應(yīng)用程序狀態(tài)轉(zhuǎn)換指令包括指示是否必須等待所述指令執(zhí)行完畢的信息。
4.根據(jù)權(quán)利要求2的信息處理裝置,其中所述應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置可以管理多個應(yīng)用程序的狀態(tài)轉(zhuǎn)換;以及由指令保持裝置所保持的每個應(yīng)用程序狀態(tài)轉(zhuǎn)換指令包括關(guān)于從中請求所述指令的源、通過所述指令對其狀態(tài)進(jìn)行轉(zhuǎn)換的應(yīng)用程序和將由所述指令轉(zhuǎn)換到的狀態(tài)的信息。
5.根據(jù)權(quán)利要求1的信息處理裝置,其中所述指令發(fā)送/接收裝置具有指令的對應(yīng)性表格,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置所識別,所述指令的對應(yīng)性表格作為指示指令之間關(guān)系的信息,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置所識別。
6.一種信息處理方法,用于能夠執(zhí)行應(yīng)用程序的信息處理裝置,所述方法包括步驟使利用原語元素來定義應(yīng)用程序狀態(tài)轉(zhuǎn)換以管理狀態(tài)轉(zhuǎn)換的第一模塊獲取狀態(tài)轉(zhuǎn)換命令并提供所述狀態(tài)轉(zhuǎn)換命令給第二模塊;使得第二模塊將所述狀態(tài)轉(zhuǎn)換命令轉(zhuǎn)換為用于管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換的第三模塊可以識別的命令;使得接收了所述轉(zhuǎn)換后的指令的第三模塊基于所述狀態(tài)轉(zhuǎn)換命令確定是否對所述系統(tǒng)的狀態(tài)進(jìn)行轉(zhuǎn)換;以及使得第二模塊將第三模塊所執(zhí)行的確定結(jié)果轉(zhuǎn)換為可以由第一模塊識別的通知并將所述通知發(fā)送給第一模塊。
7.一種計算機(jī)可執(zhí)行程序,其中所述程序包括第一模塊、第二模塊和第三模塊;并且所述程序使計算機(jī)執(zhí)行如下步驟使利用原語元素來定義應(yīng)用程序狀態(tài)轉(zhuǎn)換以管理狀態(tài)轉(zhuǎn)換的第一模塊獲取狀態(tài)轉(zhuǎn)換命令并提供所述狀態(tài)轉(zhuǎn)換命令給第二模塊;使第二模塊將所述狀態(tài)轉(zhuǎn)換命令轉(zhuǎn)換為用于管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換的第三模塊可以識別的命令;使接收了所述轉(zhuǎn)換后的指令的第三模塊基于所述狀態(tài)轉(zhuǎn)換命令確定是否對所述系統(tǒng)的狀態(tài)進(jìn)行轉(zhuǎn)換;以及使第二模塊將第三模塊所執(zhí)行的確定結(jié)果轉(zhuǎn)換為可以由第一模塊識別的通知并將所述通知發(fā)送給第一模塊。
8.一種記錄媒體,上面記錄了權(quán)利要求7所述的程序。
9.一種能夠執(zhí)行應(yīng)用程序的信息處理裝置,該裝置包括系統(tǒng)狀態(tài)轉(zhuǎn)換管理單元,用于管理狀態(tài)的轉(zhuǎn)換,所述狀態(tài)的轉(zhuǎn)換依賴于執(zhí)行所述應(yīng)用程序的系統(tǒng);應(yīng)用程序狀態(tài)轉(zhuǎn)換管理單元,用于利用原語元素定義所述應(yīng)用程序的狀態(tài)轉(zhuǎn)換以管理該應(yīng)用程序的狀態(tài)轉(zhuǎn)換;以及指令發(fā)送/接收單元,用于存儲指示指令之間關(guān)系的信息,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理單元或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理單元識別,并且所述指令發(fā)送/接收單元基于所述信息執(zhí)行所述指令向/從所述系統(tǒng)狀態(tài)轉(zhuǎn)換管理單元和應(yīng)用程序狀態(tài)轉(zhuǎn)換管理單元的發(fā)送/接收。
全文摘要
一種能夠執(zhí)行應(yīng)用程序的信息處理裝置,包括系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置,用于管理基于執(zhí)行所述應(yīng)用程序的系統(tǒng)的狀態(tài)轉(zhuǎn)換;應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置,用于利用原語元素定義所述應(yīng)用程序的狀態(tài)轉(zhuǎn)換以管理該應(yīng)用程序的狀態(tài)轉(zhuǎn)換;以及指令發(fā)送/接收裝置,用于存儲指示指令之間關(guān)系的信息,其中每條指令可以由系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置或應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置識別,并且所述指令發(fā)送/接收裝置基于所述信息執(zhí)行所述指令向/從所述系統(tǒng)狀態(tài)轉(zhuǎn)換管理裝置和應(yīng)用程序狀態(tài)轉(zhuǎn)換管理裝置的發(fā)送/接收。
文檔編號G06F9/44GK1940867SQ20061013575
公開日2007年4月4日 申請日期2006年8月18日 優(yōu)先權(quán)日2005年8月19日
發(fā)明者石村悠二, 平野一視, 今泉龍一, 大出直樹, 酒井士文 申請人:索尼株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1