用于控制移動計算裝置上的軟件程序的使用的方法和系統的制作方法
【專利摘要】提供了用于控制一個或多個移動計算裝置上的一個或多個軟件程序的使用的解決方案。相應的方法包括監視每個移動計算裝置的位置的指示,以確定移動計算裝置的位置區域。該方法包括將每個軟件程序分配給使用組。對于每個位置區域,每個軟件程序類型的軟件程序被分配給對應的使用組,該使用組提供滿足每個軟件程序的一個或多個使用要求的一個或多個使用特性;這根據取決于每個使用組的一個或多個使用權重的一個或多個優化標準來執行。該方法包括根據對應的使用組的使用特性,啟用每個軟件程序的使用。
【專利說明】
用于控制移動計算裝置上的軟件程序的使用的方法和系統
技術領域
[0001]本公開涉及信息技術(IT)領域。更具體地,本公開涉及移動計算裝置上的軟件程序的使用的控制。【背景技術】
[0002]近年來,特別是由于智能電話和平板電腦的廣泛普及,移動計算裝置(或僅僅是移動裝置)已經變得越來越流行。移動裝置基本上無所不在地進行許多活動,因為它們幾乎可以在任何地方使用;特別地,移動裝置的用戶可運行許多移動軟件應用,也稱為(移動)應用 (App)。應用是被專門設計成在移動裝置上運行的軟件程序。為此,應用相對精簡(以應對移動裝置的計算/電源約束)、簡單(以應對移動裝置的小屏幕)并且快速(以應對用戶在移動性方面降低的注意力);相反,應用可以利用在移動裝置上通常可用的特定特征(例如GPS接收機、照相機、加速計)。用戶需求和開發設施已造成應用的數量和種類的爆發(例如,用于信息檢索、電子商務、多媒體播放、游戲)。[〇〇〇3]應用(如同任何其它軟件程序)的使用可能要求符合特定的限制(例如,可用的許可權、所允許的資源消耗);然而,移動裝置上的應用的使用的控制可能相當有挑戰性。 [〇〇〇4]為此,例如,提供了網上商店以瀏覽可用的應用(例如,用于特定的操作系統),查看關于它們的信息(包括用戶的評論和評級),并下載選定的應用。一些商店還提供許可服務,其可用于對于從這些商店下載的應用執行許可政策;特別地,應用可以查詢許可服務器,以驗證它是否被正確地許可以在安裝了該應用的移動裝置上使用,以便相應地啟用或禁用它的使用(例如,使用僅在移動裝置的用戶是應用的所記錄的購買者時啟用的應用)。
【發明內容】
[0005]在此呈現本公開的簡化概述,以便提供其基本理解;然而,本概述的唯一目的是以簡化形式介紹本公開的一些概念,作為下面的更詳細的描述的前序,而并不被解釋為標識其主要元件,也不作為其范圍的描述。
[0006]—般而言,本公開是基于如下的思想:根據移動計算裝置上的軟件程序的分組,控制軟件程序的使用。
[0007]特別地,一個方面提供了一種用于控制一個或多個移動計算裝置上的一個或多個軟件程序的使用的方法。該方法包括:監視每個移動計算裝置的位置的指示,以確定(多個位置區域中)移動計算裝置的位置區域。該方法包括將每個軟件程序分配給(用于對應的移動計算裝置的位置區域的該軟件程序的軟件程序類型的多個使用組中的)使用組。對于每個位置區域,每個軟件程序類型的軟件程序被分配給對應的使用組,該使用組提供滿足每個軟件程序的一個或多個使用要求的一個或多個使用特性;這根據取決于每個使用組的一個或多個使用權重的一個或多個優化標準來執行。該方法包括根據對應的使用組的使用特性,啟用每個軟件程序的使用。
[0008]在實施例中,所述將每個軟件程序分配給使用組包括:對于每個位置區域,進一步根據用于該位置區域的軟件程序類型的使用組的一個或多個使用約束,將每個軟件程序類型的軟件程序分配給用于該位置區域的軟件程序類型的使用組。
[0009]在實施例中,所述將每個軟件程序分配給使用組包括:對于每個位置區域,將至少一個軟件程序從對應的使用組移動到用于該位置區域的對應的軟件程序類型的不同的使用組。
[0010]另一個方面提供了用于實現該方法的計算機程序(以及對應的計算機程序產品)。
[0011]另一個方面提供了對應的系統。【附圖說明】
[0012]本公開的解決方案以及其它特征和優點將結合附圖并參考以下僅以非限制性指示給出的詳細描述來得到最好的理解(其中,為了簡單起見,對應的元件用相同或相似的參考標記表示,并且不再重復其說明,每個實體的名稱通常用于表示其類型和屬性一一諸如值、內容和表示)。
[0013]圖1示出了其中可應用根據本公開的實施例的解決方案的計算基礎架構的示意性框圖;[〇〇14]圖2A-圖2G示出了根據本公開的實施例的解決方案的示例性應用;
[0015]圖3示出了可用于實現根據本公開的實施例的解決方案的主要軟件組件;
[0016]圖4示出了描述與根據本公開的實施例的解決方案的實施有關的活動流的活動圖。【具體實施方式】
[0017]參考圖1,示出了其中可以應用根據本公開的實施例的解決方案的計算基礎架構 100的示意性框圖。
[0018]計算基礎架構100包括例如無線保真(W1-Fi)類型的若干(無線網絡)接入點105。 接入點105用于將在其傳輸范圍115內的不同的移動(計算)裝置110連接到對應的無線局域網(WLAN)中。
[0019]每個移動裝置110(例如,智能電話或平板電腦)被設計成在其正常操作期間由其用戶運輸;因此,移動裝置110—般由電池供電,它相當小而輕,并且支持無線連接性(在所討論的示例中,連接到接入點105)。每個移動裝置110具有安裝在其上的不同應用(S卩,移動軟件應用),其可用于由它的用戶執行相應的功能。
[0020]接入點105進而連接到因特網(例如,通過固定線路電話網絡)。因特網由通過全球通信網絡120互連的數百萬服務器計算設備(或僅僅是服務器)形成。就與本公開有關的而言,因特網包括應用控制服務器125(或多個);如以下所描述的,應用控制服務器125用于控制移動裝置110上的應用的使用。
[0021]應用控制服務器125包括并行連接到總線結構130的若干單元。詳細地說,一個或多個微處理器(yP)135控制應用控制服務器125的操作;RAM 140由微處理器135直接用作工作存儲器,ROM 145存儲用于應用控制服務器125的引導程序的基本代碼。應用控制服務器 125還具有大容量存儲器,其包括用于讀取/寫入可移動存儲單元160(例如光盤)的一個或多個硬盤150和驅動器155。此外,應用控制服務器125包括一個或多個外圍單元165,諸如鍵盤、鼠標、監控器和網絡適配器(例如,用于將應用控制服務器125插入數據中心,然后允許它通過路由器/交換機子系統與網絡120通信)。例如,硬盤150可由數據中心的存儲單元提供,驅動器155和外圍單元165可由數據中心的控制臺提供。每個移動裝置110具有適度規模的相似結構;例如,在這種情況下,大容量存儲器可以包括閃存卡,外圍單元可以包括W1-Fi 類型的無線網絡適配器(用于與接入點105通信)、用于與移動電話基礎設施(在圖中未示出)通信的移動電話收發機和GPS接收機(用于跟蹤移動裝置110的位置)。[〇〇22]現在參考圖2A至圖2G,示出了根據本公開的實施例的解決方案的示例性應用。 [〇〇23]從圖2A開始,移動裝置可跨越多個位置區域移動(例如,每個位置區域由與一個或多個對應的接入點的連接來定義)。監視移動裝置的位置(在所討論的示例中,由移動裝置連接到的接入點指示)以確定它們的位置區域。例如,在如圖所示的非常簡化的場景中,七個移動裝置(用標記110.1、110.2、110.3、110.4、110.5、110.6和110.7區分)在位置區域 LA.1中(例如,公司的場所)。
[0024]對于每個(應用)類型的應用定義多個使用組,這些使用組可在移動裝置110.1-110.7在位置區域LA.1中時在移動裝置110.1-110.7上使用。應用類型的每個使用組提供用于其應用的一個或多個使用特性,即,應用的實例(例如,不同的功能/性能);在所討論的示例中,對于實現信息檢索服務的應用類型可定義三個使用組,該應用類型可以在以下模式中使用:基本模式,其中只啟用有限的特征(組Gb);標準模式,其中啟用所有的特征(組Gs); 高級模式,其中啟用所有的特征,并保證最小帶寬(組Gp)。應用類型的每個使用組還與一個或多個使用權重(例如,許可成本)相關聯;在所討論的示例中,使用組Gb(用于基本模式)、 Gs(用于標準模式)和Gp(用于高級模式)具有遞增的使用權重。
[0025]在移動裝置110.1-110.7上運行的每個應用與一個或多個使用要求(例如,對應的用戶所要求的功能和/或性能)相關聯;因此,在所討論的示例中,使用要求可由在移動裝置 110.1-110.7上運行的上述應用類型的應用所要求的特征和(可能地,)帶寬來定義。
[0026]每個應用被分配給用于它的移動裝置的位置區域的它的應用程序類型的一個使用組。對于每個位置區域,每個應用類型的應用被分配給使用特性滿足應用的使用要求的 (用于該位置區域的應用類型的)使用組;該操作根據一個或多個優化標準執行,該優化標準取決于對應的使用組的使用權重(例如,通過最小化成本函數,該成本函數等于每個使用組的使用權重與分配給該使用組的應用的數量相乘的總和)。因此,在所討論的示例中,在移動裝置110.1-110.7上運行的上述應用被分配給向所需功能提供最低使用權重的使用組;如圖所示,移動裝置110.2、110.6上的應用僅需要使用有限的特征,因此,它們被分配給使用組Gb,移動裝置110.1、110.3、110.5、110.7上的應用需要使用其它特征(除了有限的特征以外)但沒有任何帶寬要求,因此,它們被分配給使用組Gs,移動裝置110.4上的應用需要使用其它特征(除了有限的特征以外)并且需要比(所保證的)最小帶寬更高的帶寬,因此, 它被分配給使用組Gp。然后,移動裝置110.1-110.7上的應用程序的使用根據(它們已被分配到的)對應的使用組的使用特性來啟用;這樣,移動裝置110.2、110.6上的應用(組Gb)僅啟用有限的特征,移動裝置110.1、110.3、110.5、110.7上的應用(組Gs)啟用所有的特征,移動裝置110.4上的應用(Gp組)啟用所有的特征并具有被保證的最小帶寬。
[0027]然后,另一個移動裝置110.8進入位置區域LA.1;移動裝置110.8運行上述應用類型的相同應用;移動裝置110.8上的應用僅需要使用有限的特征。因此,如圖2B所示,移動裝置110.8上的應用被分配給使用組Gb(以便僅具有被啟用的有限的特征)。
[0028]轉到圖2C,移動裝置110.6上的應用現在需要使用相同應用的除了其有限的特征以外的一個或多個其它特征(但沒有任何帶寬要求)。因此,移動裝置110.6上的應用從使用組Gb移動到使用組Gs(以便啟用所有的特征)。[〇〇29]這樣,移動裝置的典型的游動行為可被利用以優化它們的應用的使用。其結果,顯著地改善了對應的限制的管理(例如,可用的許可權,所允許的資源消耗)。此外,將應用分配給它們的使用組是動態的;例如,該分配根據移動裝置的位置和/或它們的使用要求隨時間自動地改變。
[0030]在實施例中,每個使用組還與一個或多個使用約束(例如,可同時分配給使用組的最大數量的應用)相關聯;在所討論的示例中,使用組Gb可最多具有10個應用,使用組Gs可最多具有5個應用,使用組Gp可最多具有2個應用。
[0031]在這種情況下,可能發生一個或多個(不可分配)應用可能不能分配給任何滿足它們的使用要求的使用組。例如,如圖2D所示,如果移動裝置110.8上的應用需要使用相同應用的除了有限的特征以外的一個或多個其它特征,則它可能不能從使用組Gb移動到使用組 Gs;事實上,在這種情況下,使用組Gs的使用約束可能不被滿足,因為它已經達到了最大數量的應用(5)。
[0032]在實施例中,響應于此,移動裝置110.1-110.8上的至少一個應用從其(當前)使用組移動到用于位置區域LA.1的對應的應用類型的不同(新)的使用組。該操作可以基于每個應用的使用優先權(例如,對于在正常用戶的移動裝置上運行的應用為低,對于在特權用戶的移動裝置上運行的應用為高)。在所討論的示例中,如圖2E所示,在移動裝置110.5上運行的應用(被分配給使用組Gs)具有低優先權;因此,該應用可以從使用組Gs向下移動(即降級)到使用組Gb,以使得與有限的特征不同的特征不啟用,然后可能不再使用。這樣,使用組 Gs的應用變得低于其最大數量的應用(S卩,4〈5)。因此,移動裝置110.8上的應用現在可以從使用組Gb移動到使用組Gs。[〇〇33]相反地,如圖2F所示,在移動裝置110.3上運行的應用(被分配給使用組Gs)具有高優先級;因此,該應用可以從使用組Gs向上移動(即升級)到使用組Gp,以使得所有的特征保持啟用,但現在具有所保證的最小帶寬。在這種情況下同樣,使用組Gs的應用變得低于它的最大數量的應用(即,4〈5)。因此,移動裝置110.8上的應用現在可以如上所述地從使用組Gb 移動到使用組Gs。
[0034]這樣,所有的應用可被分配給對應的使用組(即使當它們的使用約束不被滿足時);特別地,當一個或多個(較低優先權)應用被降級時,實現該結果但對使用要求不利,而當一個或多個(更高優先級)應用被升級時,實現相同的結果但對使用權重不利。
[0035]在實施例中,除了或代替上述的應用在使用組之間的移動,在相同的情況下,可提供恢復動作的指示(例如,在到可能沒有被分配的每個應用的移動裝置的消息中);恢復動作表示應當允許該應用被分配到滿足其使用要求的使用組的操作。例如,恢復動作可建議移動裝置從其(當前)位置區域移動到不同(新)的位置區域(諸如在同一公司的另一個場所)。在所討論的示例中,如圖2G所示,移動裝置110.8可移動到位置區域LA.2中,其中使用組Gs的應用低于其最大數量的應用。因此,在位置區域LA.2中,移動裝置110.8上的應用現在可被分配給使用組Gs。
[0036]這樣,可以滿足使用約束而不會不利地影響使用要求,也不影響使用權重(以對移動裝置的用戶帶來一些負擔為代價,諸如用戶移動到不同的位置區域)。
[0037]現在參考圖3,示出了可用于實現根據本公開的實施例的解決方案的主要軟件組件300。軟件組件300通常存儲在大容量存儲器中,并在程序運行時被加載(至少部分地)到對應的計算設備的工作存儲器中。最初,程序例如從可移動存儲單元或網絡安裝到大容量存儲器中。在這方面,每個軟件組件可表示代碼模塊、代碼段或代碼部分,其包括用于實現指定邏輯功能的一個或多個可執行指令。[〇〇38]特別地,每個移動裝置110(在圖中僅示出一個)運行一個或多個應用205。移動裝置110還運行啟用代理210(例如,也由特定應用實現),其啟用移動裝置110上的(其它)應用 205的使用。為此,啟用代理210可利用位置監視器215,其監視移動裝置110隨時間的的位置 (例如,通過其GPS接收機)。此外,啟用代理210訪問應用儲存庫220,其存儲關于在移動裝置上安裝的所有應用205的信息。例如,應用儲存庫220可包括用于每個應用的條目;該條目指示應用的當前使用要求及其可能涉及應用的使用要求的變化的功能(在上述的示例中,諸如導致從基本模式過渡到標準模式的特征,反之亦然)。
[0039]應用控制服務器125運行啟用服務器225,其控制在所選擇的移動裝置110(例如, 對應公司的雇員的所有移動裝置)上運行的應用205的使用的啟用。為此,啟用服務器225與每個(所選擇的)移動裝置110的啟用代理210進行交互。此外,啟用服務器225與分配引擎 230協作,分配引擎230控制應用被分配到對應的使用組。分配引擎230利用位置檢測器235, 其根據每個移動裝置的位置確定其位置區域。為此,位置檢測器235可利用接入點監控器 240,其監控連接到所選擇的接入點的移動裝置(例如,在公司的所有場所中)。位置檢測器 235進一步訪問位置區域儲存庫245,其存儲多個預定義位置區域的定義;例如,對公司的每個場所定義位置區域(如由其一個或多個接入點標識),并且在公司的所有場所以外定義另外的位置區域。
[0040]此外,分配引擎230訪問使用組儲存庫250,其存儲關于所有可用的使用組的信息。 例如,使用組儲存庫250包括用于每個位置區域的條目,該條目包括用于可在該位置區域中使用的每個應用類型的條目,該用于每個應用類型的條目進而包括用于應用在該位置區域中運行時可被分配到的每個使用組的條目;該條目表示用于在該位置區域中的應用類型的使用特性、使用權重和使用約束以及有關在此時被分配給使用組的對應的應用的信息(諸如它們的應用數量)。使用特性規定對應的應用程序可以在移動裝置上如何使用。例如,使用特性可按照功能或性能來定義;這些使用特性的例子是啟用特征、可訪問的內容、所保證的性能。使用權重定義使用組如何有助于對應的應用的分配的優化。例如,使用權重可根據在經濟費用或資源消耗方面由對應的應用的使用而引起的成本來定義;這些使用權重的例子是將要支付的金額、估計的帶寬消耗或處理功率消耗。使用約束定義對應的應用被分配給使用組應當滿足的條件。例如,使用約束可以根據商業或技術的考慮來定義;這些使用約束的例子是可運行的最大數量的應用、可使用的最大資源量(根據對應的許可條件或資源可用性)。
[0041]分配引擎230進一步訪問移動裝置儲存庫255,其存儲有關所有移動裝置的信息。 例如,移動裝置儲存庫255包括用于每個移動裝置的條目;用于移動裝置的條目表示它此時的位置區域。進而,用于移動裝置的條目包括用于在其上安裝的每個應用的條目;用于應用的條目表示其應用類型、使用要求、使用優先權和此時它被分配到的可能的使用組。使用要求定義應用應當在移動裝置上如何使用。例如,使用要求可對于每個應用單獨定義,或者對于每個移動裝置(或用戶)全局定義,以靜態方式或者以動態方式;這些使用要求的例子是如特征、內容、性能(例如,服務質量(QoS)的最小值,測量的指標,諸如帶寬、響應時間)那樣的所需功能。使用優先權定義用于應用被分配到對應的使用組的偏好的順序。例如,使用優先權也可以對于每個應用程序單獨定義或者對于每個移動裝置(或用戶)全局定義,以靜態方式或者以動態方式;這些使用優先權的例子是取決于移動裝置的用戶的角色的值、取決于應用的許可所支付的金額的值、取決于應用關于其使用的等待時間的值。
[0042]現在參考圖4,示出了描述與根據本公開的實施例的解決方案的實現有關的活動流的活動圖。[〇〇43] 特別地,該圖表示由應用控制服務器采用方法400控制對應的移動裝置上的應用的使用的示例性過程。在這方面,每個框可代表用于實現應用控制服務器上的指定邏輯功能的一個或多個可執行指令。[〇〇44]當可能導致應用的使用改變的變化事件發生時,過程就從框403開始到達框406。 這可以在移動裝置改變其位置區域時、應用改變其使用要求時(包括其起始)、或者在應用停止時發生。例如,位置檢測器監視每個移動裝置的位置(如由接入點監視器提供);位置檢測器檢測移動裝置從一個位置區域移動到另一個位置區域時該移動裝置的位置區域的任何變化(如在位置區域儲存庫中定義的),并向分配引擎通知該變化。此外,在每個移動裝置上的啟用代理監視在其上運行的應用;啟用代理檢測應用的使用要求的任何變化(通過將功能的任何所需變化與應用儲存庫相比較)或其停止。響應于此,啟用代理向啟用服務器通知該變化,啟用服務器將該變化轉發到分配引擎。
[0045]響應于任何變化事件,首先,啟用代理更新與前一個情況有關的信息。具體地,對于其移動裝置已經離開(舊的)位置區域或者已經停止的每個應用程序,分配引擎相應地更新移動裝置儲存庫中的對應的條目(遞減其使用組的應用數量)。此外,分配引擎驗證一個或多個應用是否已從該(原始)使用組降級/升級到另一個(當前)使用組(如以下所描述的)。如果是,則分配引擎選擇這些降級/升級的應用中將被恢復到其原始使用組的應用;例如,分配引擎根據其配置對升級的應用程序或降級的應用程序給予特權;以使用優先權的升序、然后對于相同的使用優先權以分配到當前使用組的時間的降序來選擇升級的應用程序,或者以使用優先權的降序、然后對于相同的使用優先權以分配到當前使用組的時間的升序來選擇降級的應用程序。分配引擎將所選擇的(降級/升級的)應用從當前使用組移回到原始使用組;相應地,分配引擎更新移動裝置儲存庫(指示所選擇的應用程序現在被分配給原始使用組)和使用組儲存庫(遞減當前使用組的應用數量,并遞增原始使用組的應用數量)。然后,啟用代理更新與新的情況有關的信息。具體地,啟用代理更新移動裝置儲存庫中用于改變位置區域的移動裝置的條目或用于改變使用要求的應用的條目。
[0046]然后,執行用于處理受影響的應用(S卩,在改變位置區域的移動裝置上運行的所有應用或改變使用要求的特定應用)的循環。循環在框409處開始,其中分配引擎考慮當前的受影響的應用(以任意順序從第一個開始)。在框412處,分配引擎從移動裝置儲存庫取得有關當前應用的信息(即,其應用類型、使用要求和對應的移動裝置的當前位置區域)。繼續到框415,分配引擎從使用組儲存庫取得有關用于當前位置區域的該應用類型的所有使用組的信息(即,使用特性、使用權重、使用約束、所分配的應用);這些使用組(是用于當前應用的分配的候選)以使用權重的升序來排列。
[0047]執行用于處理候選使用組的另一個循環。循環在框418處開始,其中分配引擎考慮當前的候選使用組(按使用權重的升序從第一個開始)。在框421處,分配引擎將當前使用組的使用特性與當前應用的使用特性進行驗證;然后,活動流根據該驗證的結果來分支。如果當前使用組的使用特性滿足當前應用的使用特性(意味著它適合于具有最低使用權重的當前應用的分配),則在框424處,分配引擎進一步將當前使用組的所分配的應用與它的使用約束進行驗證。如果當前使用組的所分配的應用允許當前應用添加到當前使用組(例如,當應用數量低于最大數量時),活動流前進到框427。在該階段,分配引擎將當前應用分配給當前使用組;相應地,分配引擎更新移動裝置儲存庫(指示當前應用被分配到當前使用組)和使用組儲存庫(遞增當前使用組的應用數量,可能遞減其前一個使用組的應用數量)。
[0048]相反,如果在框424處分配引擎確定當前使用組的所分配的應用不允許當前應用添加到當前使用組(即,在所討論示例中,當應用數量已經達到最大數量時),則活動流前進到框430。在這種情況下,當前應用可能不被分配給當前使用組,S卩,適合于滿足具有最低使用權重的當前應用的使用要求的使用組;因此,活動流根據分配引擎的配置來分支。
[0049]具體地,如果分配引擎被配置成對使用權重給予特權(對使用要求不利),則在框 433處,分配引擎搜索具有較低使用權重(以降序)的當前應用的相同應用類型的任何其它 (新)使用組,該新使用組適合于接收另一個應用的添加(即,在所討論示例中,應用數量低于最大數量)。活動流根據該搜索的結果進一步在框436處分支。如果已經發現新使用組,則在框439處,分配引擎在當前應用和分配給當前使用組的相同應用類型的應用程序中選擇用于降級到新使用組的應用(例如,以使用優先權的升序,然后對于相同的使用優先權以分配到當前使用組的時間的降序);此時,如果需要,分配引擎將當前應用分配到當前使用組 (如上所述地更新對應的信息),然后將所選擇的應用從當前使用組移動到新使用組,并相應地更新移動裝置儲存庫(指示所選擇的應用現在被分配給新使用組)和使用組儲存庫(如果需要,遞減當前使用組的應用數量,并遞增新使用組的應用數量)。
[0050]返回到框430,如果分配引擎被配置成對使用要求給予特權(對使用權重不利),則在框442處,分配引擎搜索具有較高使用權重(以升序)的當前應用的相同應用類型的任何其它(新)使用組,該新使用組適合于如上所述地接收另一個應用程序的添加。活動流根據該搜索的結果進一步在框445處分支。如果已經發現新使用組,則在框448處,分配引擎在當前應用和分配給當前使用組的相同應用類型的應用中選擇用于升級到新使用組的應用(例如,以使用優先權的降序,然后對于相同的使用優先權以分配到當前使用組的時間的升序);此時,分配引擎將當前應用分配到當前使用組,然后將所選擇的應用從當前使用組移動到新使用組,如上所述。[〇〇51] 活動流從框427、框439或框448到達框451。此時,分配引擎向啟用服務器通知已經發生的變化(即,伴隨所選擇的應用的可能降級/升級的當前應用的分配);啟用服務器然后通過向這些應用的移動裝置的啟用代理發送對應的消息來相應地啟用這些應用程序的使用(啟用/禁用對應的功能)。[〇〇52] 返回到框436,如果沒有應用程序可被降級,則在框454處,分配引擎驗證用于應用的升級的使用組是否已經被搜索到。如果沒有,則活動流返回到框442,以便嘗試升級應用,如上所述。同樣,返回到框445,如果沒有應用可被升級,則在框457處,分配引擎驗證用于應用的降級的使用組是否已經被搜索到。如果沒有,則活動流返回到框433,以便嘗試降級應用,如上所述。
[0053]返回到框421,如果當前使用組的使用特性不滿足當前應用的使用特性,則在框 460處,分配引擎驗證最后一個候選使用組是否已經被考慮。如果沒有,則過程返回到框418 以對下一個候選使用組(具有較高使用權重)重復相同的操作。相反(g卩,當在當前位置區域中沒有使用特性可以滿足當前應用的使用要求的使用組可用時),活動流前進到框463;當沒有應用可被降級或升級以允許將當前應用分配給當前使用組時,從框454或框457也到達同一點。此時,分配引擎確定可在允許當前應用的分配的嘗試中執行的任何動作;例如,分配引擎可以按與當前位置區域之間的距離的降序搜索不同(新)的位置區域,其中在當前應用的同一個移動裝置上運行的所有應用可以被分配給使用組(通過重復上述的相同操作)。 繼續到框466,分配引擎向啟用服務器通知這些恢復動作(例如,當新位置區域被發現時建議移動到新位置區域,或者指示不可能在此時使用當前應用),啟用服務器進而將這些恢復動作轉發到當前應用的移動裝置的啟用代理,以用于顯示。[〇〇54]然后,活動流從框451或框466到達框469。此時,分配引擎驗證最后一個受影響的應用是否已經被考慮。如果沒有,則過程返回到框409,以對下一個受影響的應用程序重復相同的操作。相反,活動流返回到框403,等待下一個變化事件。
[0055]當然,為了滿足局部和特定要求,本領域的技術人員可以對本公開應用許多邏輯和/或物理的修改和改動。更具體地,盡管本公開已經參考一個或多個實施例以一定程度的特殊性進行了描述,但是應當理解,也可以在形式和細節以及其它實施例中進行各種省略、 替換和改變。特別地,本公開的不同實施例甚至可以執行,而無需在前面的描述中闡述的提供更透徹的理解的特定細節(諸如數值);相反,眾所周知的特征可被省略或簡化,以免用不必要細節模糊描述。此外,顯然可以將結合本公開的任何實施例描述的特定元件和/或方法步驟與任何其它實施例結合,作為一般設計選擇。在任何情況下,序數或其它限定符僅用作標記以區分具有相同名稱的元件,但本身并不意味著任何優先、排名或順序。此外,術語“包括”、“包含”、“具有”、“含有”和“涉及”(及其任何形式)應當旨在具有開放、非窮舉的含義 (即,并不限于所列舉的項目),術語“基于”、“取決于”、“根據”、“……的函數”(及其任何形式)應當旨在作為非排他的關系(即,具有可能的其它變量),術語“一 / 一個”應當旨在作為一個或多個項目(除非另外明確指出),術語“用于……的部件”(或任何“部件加功能”的表述)應當旨在作為任何適于或被配置為執行相關功能的結構。
[0056]例如,實施例提供了用于控制一個或多個移動計算裝置上的一個或多個軟件程序的使用的方法。然而,該方法可用于控制軟件程序的任何使用(例如,在任何組織中或在對應的在線商店中的運行或甚至只是下載)。軟件程序可以是任何數量和任何類型的(例如, 出于任何目的的應用,諸如電子郵件客戶端、遠程銀行服務、導航器、或窗口小部件、代理), 并且可以在任何數量和類型的移動計算裝置(例如,上網本)上運行。[〇〇57]在實施例中,該方法包括監視每個移動計算裝置的位置的指示,以便確定(在多個位置區域中)移動計算裝置的位置區域。然而,移動裝置的位置可以用任何方式指示(例如, 通過GPS坐標、移動電話小區、IP地址),并可以用任何方式來監視(例如,通過移動裝置本身);此外,移動裝置的位置區域可以用任何方式來確定(例如,在移動裝置上通過比較GPS坐標和預定的范圍),位置區域可以是任何數量和任何類型的(例如,諸如州或城市的地理區域,,諸如學校、博物館、購物中心的已知機構,可能具有用于位置未知的移動裝置的默認位置區域)。
[0058]在實施例中,該方法包括將每個軟件程序分配給(在用于對應的移動計算裝置的位置區域的該軟件程序的軟件程序類型的多個使用組中的)使用組。對于每個位置區域,每個軟件程序類型的軟件程序被分配給對應的使用組,該使用組提供滿足每個軟件程序的一個或多個使用要求的一個或多個使用特性;這根據取決于每個使用組的一個或多個使用權重的一個或多個優化標準來執行。然而,使用組可以是任何數量的,每個使用組都具有任何數量和類型的使用特性和使用權重,每個軟件程序可以具有任何數量和類型的使用要求 (參見下面)。此外,軟件程序可以根據任何數量和類型的優化標準被分配給使用組;例如, 該操作可以通過優化(即,最小化或最大化)任何基于使用權重的目標函數(例如,根據移動裝置的特性區分使用權重的貢獻,例如,隨處理功率增加)來解析地執行。在任何情況下,該操作可在任何時間執行(例如,響應于任何配置變化或對應的命令,周期性地對于每個位置區域的移動計算裝置上的所有軟件程序)。
[0059]在實施例中,該方法包括根據對應的使用組的使用特性,啟用每個軟件程序的使用。然而,軟件程序的使用可以以任何方式啟用,即使僅對于有限的時間段(例如,通過將對應的令牌下載到移動裝置)。
[0060]在實施例中,至少一個軟件程序的使用要求包括該軟件程序的一個或多個性能指標的要求值。然而,(任何數量的軟件程序的)使用要求可包括任何數量和類型的性能指標的要求值(例如,延遲、數據傳輸率)。在實施例中,至少一個使用組的使用特性包括對應的軟件程序類型的一個或多個性能指標的最小值。然而,(任何數量的使用組的)使用特性可包括任何數量和類型的性能指標的最小值(見上文)。在實施例中,至少一個軟件程序的使用要求包括該軟件程序的一個或多個所需特征。然而,(任何數量的軟件程序的)使用要求可以包括任何數量和類型的所需特征(例如,組件的啟用、資源的分配)。在實施例中,至少一個使用組的使用特性包括對應的軟件程序類型的一個或多個啟用特征。然而,(任何數量的使用組的)使用特性可包括任何數量和類型的啟用特征(見上文)。更一般地,使用要求和使用特性可以采用不同的、可替代的或附加的方式定義(例如,僅通過性能指標,僅通過特征,通過性能指標和特征的任意組合,通過服務水平協議或SLA)。
[0061]在實施例中,至少一個使用組的使用權重包括對應的軟件程序類型的一個或多個許可成本指標。然而,(任何數量的使用組的)使用權重可包括任何數量和類型的許可成本指標(例如,最多閾值數量的軟件程序的固定金額以及用于每個額外的軟件程序的定額,用于不同類型的移動計算裝置的不同成本)。更一般地,使用權重可以采用不同的、可替代的或附加的方式定義(例如,通過資源消耗指標,通過許可成本指標和資源消耗指標的任何組合)。
[0062]在實施例中,所述將每個軟件程序分配給使用組的步驟包括:對于每個位置區域, 進一步根據用于該位置區域的軟件程序類型的使用組的一個或多個使用約束,將每個軟件程序類型的軟件程序分配給用于該位置區域的軟件程序類型的使用組。然而,任何數量的使用組(下至沒有)可包括任何數量和類型的使用約束(例如,軟件程序在其中運行的移動計算裝置的最大總處理功率,分配給軟件程序的最大總帶寬,諸如最大使用時間的特定使用策略)。
[0063]在實施例中,所述將每個軟件程序分配給使用組的步驟包括:對于每個位置區域, 將至少一個軟件程序從對應的使用組移動到用于該位置區域的對應的軟件程序類型的不同使用組。然而,任何數量的軟件程序可以被移動到任何不同的使用組(例如,僅將其升級, 僅將其降級,按照使用權重僅將其移動到直接相鄰的使用組);在任何情況下,該特征在簡化的實現中也可以省略。
[0064]在實施例中,所述將每個軟件程序分配給使用組的步驟包括:對于每個位置區域, 根據該位置區域中軟件程序類型的每個軟件程序的使用優先權,將至少一個軟件程序從對應的使用組移動到用于該位置區域的對應的軟件程序類型的不同使用組。然而,使用優先權可以采用任何方式定義(例如,具有一定范圍的值,僅僅低/高,在未指定時具有默認值); 此外,軟件程序移動到不同使用組可以采用任何方式根據使用優先權執行(例如,具有防止降級和/或升級的相同值)。在任何情況下,該操作可以基于不同的、可替代的或附加的標準,即使不使用任何使用優先權(例如,根據軟件程序的過去的或剩余的運行時間)。
[0065]在實施例中,該方法包括以下步驟:響應于軟件程序中的至少一個不可分配軟件程序不能分配給任何使用組,向對應的移動計算裝置提供至少一個恢復動作的指示,以用于允許將每個不可分配軟件程序分配給使用組。然而,該操作可以響應于不同的、可替代的或附加的事件執行(例如,當應用的分配成本超過閾值時),或者該操作可以完全省略。此夕卜,恢復動作可以是任何數量和任何類型的(見下文),并且它們可以采用任何方式提供給移動計算裝置(例如,經由通知、短消息服務(SMS)、電子郵件)。
[0066]在實施例中,所述提供至少一個恢復動作的指示的步驟包括用于每個不可分配軟件程序的以下操作。選擇至少一個新位置區域(不同于不可分配軟件程序的移動裝置的位置區域),其中,將不可分配軟件程序分配給使用組是可能的;向不可分配軟件程序的移動計算裝置提供所述至少一個新位置區域的指示。然而,該新位置區域可以以任何數量和任何方式(例如,只在預定距離內)選擇,并且其任何指示(例如,相應的描述性名稱)可以以任何方式提供給移動計算裝置(見上文)。更一般地,可以設想不同的、可替代的或附加的恢復動作(例如,建議使用不同的軟件程序)。
[0067]—般地,如果用等效的方法實現相同的解決方案,則類似的考慮適用(通過使用多個步驟或其部分的具有相同功能的類似步驟,通過除去非本質的一些步驟,或者通過增加另外的可選步驟);此外,這些步驟可以按不同的順序、同時或者以交叉的方式(至少部分地)執行。
[0068]實施例提供了計算機程序,該計算機程序被配置以當計算機程序在計算系統上執行時使該計算系統執行如上所述的相同方法。實施例提供了用于控制一個或多個移動計算裝置上的一個或多個軟件程序的使用的計算機程序產品;該計算機程序產品包括具有程序指令的計算機可讀存儲介質,其中程序指令可由計算系統執行,以使該計算系統執行如上所述的相同方法。然而,程序可被實現為獨立的模塊、用于既存應用(例如,許可應用)的插件、或者甚至直接在后者中實現;此外,程序可以在任意數量和類型的服務器上實現(例如, 作為服務)或者甚至部分或全部在移動計算裝置上實現。
[0069]本發明可以是系統、方法和/或計算機程序產品。計算機程序產品可以包括計算機可讀存儲介質,其上載有用于使處理器實現本發明的各個方面的計算機可讀程序指令。計算機可讀存儲介質可以是可以保持和存儲由指令執行設備使用的指令的有形裝置。計算機可讀存儲介質例如可以是一一但不限于一一電存儲裝置、磁存儲裝置、光存儲裝置、電磁存儲裝置、半導體存儲裝置或者上述的任意合適的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、 可擦式可編程只讀存儲器(EPROM或閃存)、靜態隨機存取存儲器(SRAM)、便攜式壓縮盤只讀存儲器(CD-ROM)、數字多功能盤(DVD)、記憶棒、軟盤、機械編碼設備、例如其上存儲有指令的打孔卡或凹槽內凸起結構、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸的電信號。這里所描述的計算機可讀程序指令可以從計算機可讀存儲介質下載到各個計算/處理裝置, 或者通過網絡、例如因特網、局域網、廣域網和/或無線網下載到外部計算機或外部存儲裝置。網絡可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網關計算機和/或邊緣服務器。每個計算/處理設備中的網絡適配卡或者網絡接口從網絡接收計算機可讀程序指令,并轉發該計算機可讀程序指令,以供存儲在各個計算/處理裝置中的計算機可讀存儲介質中。用于執行本發明操作的計算機程序指令可以是匯編指令、指令集架構(ISA) 指令、機器指令、機器相關指令、微代碼、固件指令、狀態設置數據、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向對象的編程語言一諸如 Smalltalk、C++等,以及常規的過程式編程語言一諸如“C”語言或類似的編程語言。計算機可讀程序指令可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟件包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或服務器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡一包括局域網(LAN)或廣域網(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網服務提供商來通過因特網連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態信息來個性化定制電子電路,例如可編程邏輯電路、現場可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執行計算機可讀程序指令,從而實現本發明的各個方面。這里參照根據本發明實施例的方法、設備(系統)和計算機程序產品的流程圖和/或框圖描述了本發明的各個方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機可讀程序指令實現。這些計算機可讀程序指令可以提供給通用計算機、專用計算機或其它可編程數據處理裝置的處理器,從而生產出一種機器,使得這些指令在通過計算機或其它可編程數據處理裝置的處理器執行時,產生了實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的裝置。也可以把這些計算機可讀程序指令存儲在計算機可讀存儲介質中,這些指令使得計算機、可編程數據處理裝置和/或其他裝置以特定方式工作,從而,存儲有指令的計算機可讀介質則包括一個制造品,其包括實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作的各個方面的指令。也可以把計算機可讀程序指令加載到計算機、其它可編程數據處理設備、或其它裝置上,使得在計算機、其它可編程數據處理設備或其它裝置上執行一系列操作步驟,以產生計算機實現的過程,從而使得在計算機、其它可編程數據處理設備、或其它裝置上執行的指令實現流程圖和/或框圖中的一個或多個方框中規定的功能/動作。附圖中的流程圖和框圖顯示了根據本發明的多個實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個連續的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
[0070]實施例提供了被配置以執行相同方法的步驟的系統。然而,該方法也可以在基于不同體系結構的系統(例如,本地網絡、廣域網、全球網、蜂窩網絡或衛星網絡)上執行,并利用任何類型的(有線和/或無線)連接。[〇〇71] —般地,如果系統具有不同的結構或包括等同組件或者具有其它操作特性,則類似的考慮適用。在任何情況下,每個組件可被分離成多個元件,或者兩個或更多個組件可被組合在一起成為單個元件;此外,每個組件可被復制以支持對應的操作的并行執行。此外, 除非另外指出,不同組件之間的任何交互通常不需要是連續的,并且可以是直接的或者是通過一個或多個媒介間接的。
【主權項】
1.一種用于控制一個或多個移動計算裝置上的一個或多個軟件程序的使用的方法,所 述方法包括:監視每個移動計算裝置的位置的指示,以確定多個位置區域中所述移動計算裝置的位 置區域;將每個軟件程序分配給用于對應的移動計算裝置的位置區域的所述軟件程序的軟件 程序類型的多個使用組中的使用組,其中對于每個位置區域,根據取決于每個使用組的一 個或多個使用權重的一個或多個優化標準,每個軟件程序類型的軟件程序被分配給對應的 使用組,該使用組提供滿足每個軟件程序的一個或多個使用要求的一個或多個使用特性; 以及根據對應的使用組的使用特性,啟用每個軟件程序的使用。2.根據權利要求1所述的方法,其中,至少一個軟件程序的使用要求包括該軟件程序的 一個或多個性能指標的要求值,至少一個使用組的使用特性包括對應的軟件程序類型的一 個或多個性能指標的最小值。3.根據權利要求1所述的方法,其中,至少一個軟件程序的使用要求包括該軟件程序的 一個或多個所需特征,至少一個使用組的使用特性包括對應的軟件程序類型的一個或多個 啟用特征。4.根據權利要求1所述的方法,其中,至少一個使用組的使用權重包括對應的軟件程序 類型的一個或多個許可成本指標。5.根據權利要求1所述的方法,其中,所述將每個軟件程序分配給使用組包括:對于每 個位置區域,進一步根據用于所述位置區域的軟件程序類型的使用組的一個或多個使用約束,將每 個軟件程序類型的軟件程序分配給用于所述位置區域的軟件程序類型的使用組。6.根據權利要求5所述的方法,其中,所述將每個軟件程序分配給使用組包括:對于每 個位置區域,將至少一個軟件程序從對應的使用組移動到用于所述位置區域的對應的軟件程序類 型的不同的使用組。7.根據權利要求6所述的方法,其中,所述將每個軟件程序分配給使用組包括:對于每 個位置區域,根據所述位置區域中的軟件程序類型的每個軟件程序的使用優先權,將至少一個軟件 程序從對應的使用組移動到用于所述位置區域的對應的軟件程序類型的不同的使用組。8.根據權利要求1所述的方法,其中,響應于所述軟件程序中的至少一個不可分配軟件 程序不能分配給任何使用組,所述方法進一步包括:向對應的移動計算裝置提供至少一個恢復動作的指示,以用于允許將每個不可分配軟 件程序分配給使用組。9.根據權利要求8所述的方法,其中,所述提供至少一個恢復動作的指示包括:對于每 個不可分配軟件程序,選擇與所述不可分配軟件程序的移動裝置的位置區域不同的至少一個新位置區域,其 中,所述將不可分配軟件程序分配給使用組是可能的;以及向所述不可分配軟件程序的移動計算裝置提供所述至少一個新位置區域的指示。10.—種用于控制一個或多個移動計算裝置上的一個或多個軟件程序的使用的系統, 所述系統包括:位置檢測器,其被配置為監視每個移動計算裝置的位置的指示,以確定多個位置區域 中所述移動計算裝置的位置區域;分配引擎,其被配置為將每個軟件程序分配給用于對應的移動計算裝置的位置區域的 軟件程序的軟件程序類型的多個使用組中的使用組,其中,對于每個位置區域,根據取決于 每個使用組的一個或多個使用權重的一個或多個優化標準,每個軟件程序類型的軟件程序 被分配給對應的使用組,該使用組提供滿足每個軟件程序的一個或多個使用要求的一個或 多個使用特性;以及啟用服務器,其被配置為根據對應的使用組的使用特性,啟用每個軟件程序的使用。11.根據權利要求10所述的系統,其中,至少一個軟件程序的使用要求包括所述軟件程 序的一個或多個性能指標的要求值,至少一個使用組的使用特性包括對應的軟件程序類型 的一個或多個性能指標的最小值。12.根據權利要求10所述的系統,其中,至少一個軟件程序的使用要求包括所述軟件程 序的一個或多個所需特征,至少一個使用組的使用特性包括對應的軟件程序類型的一個或 多個啟用特征。13.根據權利要求10所述的系統,其中,至少一個使用組的使用權重包括對應的軟件程 序類型的一個或多個許可成本指標。14.根據權利要求10所述的系統,其中,所述分配引擎還被配置為進一步根據用于所述 位置區域的軟件程序類型的使用組的一個或多個使用約束,將每個軟件程序類型的軟件程 序分配給用于每個位置區域的軟件程序類型的使用組。15.根據權利要求14所述的系統,其中,所述分配引擎還被配置為將至少一個軟件程序 從對應的使用組移動到用于每個位置區域的對應的軟件程序類型的不同的使用組。16.根據權利要求15所述的系統,其中,所述分配引擎還被配置為根據所述位置區域中 的軟件程序類型的每個軟件程序的優先權,將至少一個軟件程序從對應的使用組移動到用 于每個位置區域的對應的軟件程序類型的不同的使用組。17.根據權利要求10所述的系統,其中,所述分配引擎還被配置為響應于所述軟件程序 中的至少一個不可分配軟件程序不能分配給任何使用組,向對應的移動計算裝置提供至少 一個恢復動作的指示,以用于允許將每個不可分配軟件程序分配給使用組。18.根據權利要求17所述的系統,其中,所述分配引擎還被配置為對于每個不可分配軟 件程序,選擇所述位置區域中的與所述不可分配軟件程序的移動裝置的位置區域不同的至 少一個新位置區域,其中,所述將不可分配軟件程序分配給使用組是可能的,以及向所述不 可分配軟件程序的移動計算裝置提供所述至少一個新位置區域的指示。
【文檔編號】G06F9/445GK105956422SQ201610126243
【公開日】2016年9月21日
【申請日】2016年3月7日
【發明人】M·阿爾切塞, G·西亞諾, C·馬里內利, L·皮凱蒂
【申請人】國際商業機器公司