本發明涉及安卓技術領域,具體涉及安卓服務生命周期管理方法、服務管理對象及安卓系統。
背景技術:
在現在社會中我們最離不開的一種的東西就是服務,生活中我們需要服務,各式各樣的服務,隨時隨地,不間斷的優質服務。這推動著我們智能體統的發展,安卓智能體統中提供了有四大組件,其中service(服務)組件更是重中之重,這樣的服務常常默默運行在后臺,不被用戶所感知。
但這類服務的運行環境是相當不友好的,由于安卓系統本身的機制導致這類的服務常常被莫名其妙的殺死,殺死服務的可能是安卓系統本身,也有可能是第三方的其他程序。大家都希望自己的服務存活著來完成自己的業務,為我們用戶或者整個系統去提供自己力所能及的幫助,但是無奈安卓系統本身并沒有提供這樣的保護機制,所以開發者開始自己去想辦法,開始利用安卓系統的消息管理機制,通過接收系統消息,或者寫計劃任務,wifi信號變化,插拔usb線,網絡信號變化,鎖屏與解鎖等等來不停的啟動自己的服務,與此相對應的就是一些專門結束這類服務的管理軟件。一個不停地啟動,一個不停地結束,這是一個死循環,一個惡心的死循環。整個系統的資源就這樣被不停的消耗直至死亡。
技術實現要素:
(一)要解決的技術問題
針對現有技術中服務不停地啟動和結束,浪費系統資源的缺陷,本發明提供安卓服務生命周期管理方法、服務管理對象及安卓系統。
(二)技術方案
本發明公開一種安卓系統服務生命周期管理方法,其包括:
啟動安卓系統的核心服務的服務管理對象;
所述服務管理對象獲取服務映射文件中可調用服務的服務列表,并根據所述服務列表準備可正常調用的服務;
所述服務管理對象接收調用服務需求;
所述服務管理對象根據所述調用服務需求和所述服務映射文件,返回服務調用指令,供調用已準備的服務。
在一些實施例中,優選為,在所述啟動安卓系統的核心服務的服務管理對象之前,所述安卓系統服務生命周期管理方法包括:創建服務管理對象。
在一些實施例中,優選為,在所述啟動安卓系統的核心服務的服務管理對象之前,所述安卓系統服務生命周期管理方法包括:創建服務映射文件。
在一些實施例中,優選為,所述服務映射文件包括:服務的名稱、所屬位置、啟動方式、key。
在一些實施例中,優選為,所述服務列表的獲取方式包括:所述服務管理對象從安卓系統數據庫存儲的所述服務映射文件中獲取所述服務列表。
在一些實施例中,優選為,所述服務映射文件在所述安卓系統數據庫中存儲的方式包括:
所述服務管理對象首次啟動時,所述服務管理對象將所述服務映射文件寫入所述安卓系統數據庫;
所述服務管理對象非首次啟動時,若所述服務管理對象中的所述服務映射文件發生更新,則所述服務管理對象將更新的服務映射文件替換所述安卓系統數據庫中存儲的服務映射文件。
在一些實施例中,優選為,所述服務管理對象從安卓系統數據庫存儲的所述服務映射文件中獲取所述服務列表包括:
所述服務管理對象建立獲取服務列表的指令;
所述服務管理對象根據所述指令檢查其包含的服務映射文件是否發生更新;
如果發生更新,所述服務管理對象將更新的服務映射文件替換所述安卓系統數據庫中存儲的服務映射文件;所述服務管理對象從所述安卓系統數據庫存儲的最新的服務映射文件中獲取服務列表;
如果未發生更新,所述服務管理對象從所述安卓系統數據庫存儲的服務映射文件中獲取服務列表。
在一些實施例中,優選為,根據所述服務列表準備可正常調用的服務包括:
所述服務管理對象啟動所述服務列表中的服務,并嘗試綁定該服務;
若綁定成功,則將該服務列為可正常調用的服務;
若綁定失敗,則重試;若重試成功,則將所述服務列為可正常調用的服務;若重試次數達到上限,則將所述服務列為永久失敗;
所述服務管理對象對所述可正常調用的服務的接口進行封裝管理。
在一些實施例中,優選為,所述服務管理對象對所述可正常調用的服務的接口進行封裝管理包括:
所述服務管理對象通過哈希表為每一個所述可正常調用的服務建立位置對應,還通過死亡報告為每一個所述可正常調用的服務建立生命跟蹤;所述哈希表包括:key和value的鍵值對;
所述死亡報告中出現死亡結果時,所述服務管理對象將死亡結構對應的服務重新準備為可正常調用的服務。
在一些實施例中,優選為,所述服務管理對象根據所述調用服務需求和所述服務映射文件,向第三方程序返回服務調用指令包括:
所述服務管理對象根據所述調用服務需求確定待調用服務的key;
所述服務管理對象根據所述待調用服務的key,在所述哈希表和所述服務映射文件中找到相應的服務及服務調用指令,向第三方程序返回所述服務調用指令。
本發明還提供了一種所述安卓系統服務生命周期管理方法中的服務管理對象,其包括:服務啟動模塊、服務管理模塊和包含可調用服務的服務映射文件;其中,
所述服務啟動模塊,用于在服務管理對象啟動后獲取所述服務映射文件的服務列表,并根據所述服務列表準備可正常調用的服務;
所述服務管理模塊,用于接收第三方程序的調用服務需求;并根據所述調用服務需求和所述服務映射文件,向第三方程序返回服務調用指令,供所述第三方程序調用已準備的服務。
在一些實施例中,優選為,所述服務啟動模塊包括:寫入單元和檢查單元;
所述寫入單元,用于服務管理對象首次啟動時,將所述服務映射文件寫入所述安卓系統數據庫;在服務映射文件發生更新,將更新的服務映射文件替換所述安卓系統數據庫中存儲的服務映射文件;
所述檢查單元,用于檢查服務管理對象中的所述服務映射文件發生更新,并將檢查結果反饋所述寫入單元。
在一些實施例中,優選為,所述服務啟動模塊還包括:獲取單元;
所述獲取單元,用于生成獲取服務列表的指令,并向所述檢查單元發送檢查指令,且待所述檢查單元和所述寫入單元工作后,從安卓系統數據庫中存儲的服務映射文件中獲取服務映射文件;
所述檢查單元,根據所述檢查指令,檢查服務管理對象中的所述服務映射文件發生更新,并將檢查結果反饋所述寫入單元。
在一些實施例中,優選為,所述服務啟動模塊還包括:準備單元;
所述準備單元,用于服務管理對象啟動所述服務列表中的服務,并嘗試綁定該服務;若綁定成功,則將該服務列為可正常調用的服務;若綁定失敗,則重試;若重試成功,則將所述服務列為可正常調用的服務;若重試次數達到上限,則將所述服務列為永久失敗。
在一些實施例中,優選為,所述服務管理模塊包括:第一注冊單元、第二注冊單元、通訊單元;
所述第一注冊單元,用于為每一個所述可正常調用的服務建立位置對應的哈希表;
所述第二注冊單元,用于為每一個所述可正常調用的服務建立生命跟蹤的死亡報告,當所述死亡報告中出現死亡結果時,向所述服務啟動模塊發送將死亡結構對應的服務重新準備為可正常調用的服務;
所述通訊單元,用于根據所述調用服務需求確定待調用服務的key;根據所述待調用服務的key,在所述哈希表和所述服務映射文件中找到相應的服務及服務調用指令,向第三方程序返回所述服務調用指令。
本發明還提供了一種安卓系統,其包括:所述的服務管理對象。
(三)有益效果
本發明公開安卓服務生命周期管理方法、服務管理對象及安卓系統,安卓系統的核心服務對服務管理對象進行服務,確保該服務管理對象處于核心運行狀態;而服務管理對象對可調用服務進行整體管理服務,服務管理對象啟動后對可調用服務進行檢測,確定這些服務為可正常調用的服務,當外部需要調用該服務時,服務管理對象返回服務調用指令,供調用服務。通過該服務管理對象對服務進行統一管理服務,服務本身無需浪費資源想方設法進行存活,服務在需要的時候直接被調取即可,這種方式能夠解決安卓系統內的大量資源,避免各服務在不需要時運行而浪費資源,于整個系統而言,不存在肆意亂啟動,總是再真的需要時才申請資源。
另一方面,雖然安卓系統核心服務層無法進行更新,但是服務管理對象又獨立于安卓系統的核心服務層,所以服務管理對象可自由進行版本迭代,也適用于其管理服務的各服務進行版本迭代。讓系統服務啟動者、系統服務管理者和服務映射文件都能正常完成版本迭代。
附圖說明
圖1為本發明一實施例中安卓服務生命周期管理方法的流程圖;
圖2為本發明另一實施例中安卓服務生命周期管理方法的流程圖;
圖3為本發明基于服務列表獲取動作的數據庫中服務映射文件的檢查和服務列表獲取的流程圖;
圖4為本發明一個實施例中服務管理對象的結構圖;
圖5為本發明一個實施例中安卓系統的結構圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
考慮到現有安卓系統中各種服務存在不斷被停殺,又不斷自啟動的循環中,即便服務不處于使用狀態,該循環也在不停進行,導致安卓系統中大量的資源被占用,嚴重影響安卓系統的使用。為此,本技術對服務生命周期進行管理。
圖1示出安卓系統服務生命周期管理方法的步驟,其包括:
步驟01,啟動安卓系統的核心服務的服務管理對象;
步驟02,服務管理對象獲取服務映射文件中可調用服務的服務列表,并根據服務列表準備可正常調用的服務;
步驟03,服務管理對象接收調用服務需求;
步驟04,服務管理對象根據調用服務需求和服務映射文件,返回服務調用指令,供調用已準備的服務。
安卓系統的核心服務對服務管理對象進行服務,確保該服務管理對象處于核心運行狀態;而服務管理對象對可調用服務進行整體管理服務,服務管理對象啟動后對可調用服務進行檢測,確定這些服務為可正常調用的服務,當外部需要調用該服務時,服務管理對象返回服務調用指令,供調用服務。通過該服務管理對象對服務進行統一管理服務,服務本身無需浪費資源想方設法進行存活,服務在需要的時候直接被調取即可,這種方式能夠解決安卓系統內的大量資源,避免各服務在不需要時運行而浪費資源,于整個系統而言,不存在肆意亂啟動,總是再真的需要時才申請資源。
接下來對該技術進行詳細說明:
一種安卓系統服務生命周期管理方法,如圖2和3所示,其包括:
步驟10,創建服務映射文件;
服務映射文件為安卓系統服務生命周期管理方法中較為關鍵的技術,其記載了服務的各類信息,比如:服務的名稱、所屬位置、啟動方式、綁定方式、key等。為了對安卓系統中的服務進行全方位管理,建議服務映射文件中的服務是多種多樣的,盡可能涵蓋安卓系統中的所有服務。基于此,如果安卓系統中服務做了改變(增加或減小或更新),則服務映射文件也對應性修改。
還需要說明的是,服務映射文件中每一個元素都具備重要作用,比如:服務所屬位置是找到相應服務的關鍵,服務的啟動方式、綁定方式是服務調用中較為關鍵的技術,key方便服務的快速找尋。
步驟11,在安卓系統的核心服務層創建服務管理對象;
該步驟中是將服務管理對象在安卓系統的核心服務層進行核心服務設置。本步驟的前提在于研發服務管理對象,該服務管理對象(又稱servicecore),其為本發明設計的核心技術,在后文的方法描述中,將逐步對其進行說明,本領域技術人員可以接下來的描述對服務管理對象的功能和設計進行清晰的了解。
步驟10和11是安卓系統的初始化過程,一旦設置完畢,后續跳過步驟10和11,直接執行步驟12-步驟20。
步驟12,啟動安卓系統的核心服務的服務管理對象;
安卓系統啟動后,安卓系統的核心服務包括服務管理對象,服務管理對象隨安卓系統啟動。
步驟14,服務管理對象獲取服務映射文件中可調用服務的服務列表;
由于服務映射文件相當于對安卓系統內服務的登記,為了對安卓系統中的服務進行管理,需要利用該服務映射文件,比如利用服務列表獲取服務的名稱等信息。
需要說明的是,雖然上文提到服務管理對象中包含服務映射文件,但是,服務管理對象在獲取服務映射文件中的服務列表時,獲取的方式可以有多種方式,這些方式也基于服務映射文件的存放位置。下面舉例說明:
例1,服務映射文件存儲在安卓系統的數據庫中,服務管理對象從數據庫獲取該服務映射文件。
該方式利用了安卓系統數據庫的穩定性和方便讀取、方便維護的特性。
該方法基于服務映射文件提前上傳到安卓系統的數據庫中。情況1,在服務管理對象加載到安卓系統中首次啟動時即可以寫入數據庫中。情況2,隨著服務的改變,服務映射文件會做一定個更新,這種情況下,服務管理對象可以再次將更新的服務映射文件寫入數據庫中替換原來的服務映射文件。
需要強調的是,由于服務管理對象需要從數據庫讀取服務映射文件,而且該服務映射文件必須是最新的,否則,影響后續操作,因此,建議在情況2中,讀取前對數據庫中的服務映射文件是否為最新的進行檢查;或者,在服務映射文件更新后第一時間對數據庫的服務映射文件進行替換,以免去后期檢查的步驟。至于如何做檢查,接下來給出一種實例對基于服務列表獲取動作的數據庫中服務映射文件的檢查和服務列表獲取進行具體的說明。
步驟141,服務管理對象建立獲取服務列表的指令;
步驟143,服務管理對象根據指令檢查其包含的服務映射文件是否發生更新;
步驟145-1,如果結果為“y”,即發生更新,服務管理對象將更新的服務映射文件替換安卓系統數據庫中存儲的服務映射文件;服務管理對象從安卓系統數據庫存儲的最新的服務映射文件中獲取服務列表;
步驟145-2,如果結果為“n”,即未發生更新,服務管理對象從安卓系統數據庫存儲的服務映射文件中獲取服務列表。
例2,服務映射文件存放在服務管理對象的某個位置,服務管理對象內部調取。這種方式容易增加服務管理對象的運載,造成運載的不穩定性。
例3,服務映射文件存放在安卓系統的某個位置,該位置非數據庫。這種方式依賴于該位置的穩定性,容易影響安卓系統的運載穩定性。
需要說明的是,本技術中優選將服務映射文件吸入數據庫,通過訪問數據庫獲取服務映射文件的服務列表。當然,本領域技術人員也可根據編程技術的進步,安卓系統的優化選擇其他存放方式。
步驟16,服務管理對象根據服務列表準備可正常調用的服務;
可以理解,可正常調用的服務即為在被啟動并運行時,該服務能夠被啟動,且運行穩定。
本步驟也是技術的關鍵,基于服務列表,準備可正常調用服務的方式:
a.服務管理對象啟動服務列表中的服務,并嘗試綁定該服務;
b1.若綁定成功,則將該服務列為可正常調用的服務;
b2.若綁定失敗,則重試;若重試成功,則將服務列為可正常調用的服務;若重試次數達到上限,則將服務列為永久失敗。
綁定失敗的原因舉例:1.目標服務沒有安裝到系統中;2.在smf中的服務描述信息有誤;3.目標服務的自身異常導致服務正確啟動。不過不局限于此三種,原因很多。
對于永久失敗的服務可通過達到一些特殊的條件以后才會被重新激活,比如典型的一個條件:程序的卸載安裝和更新。
服務管理對象對各服務進行檢測,確保各服務都處于良好的可正常運行狀態,一旦這些服務需要被調用時,能正常運行。在非調用狀態,服務處于良好狀態,而不運行。這樣,各服務無需擔心被調用時出現錯誤,也無需擔心被系統停殺。因為服務管理對象在安卓系統的核心服務層運行,服務管理對象處于安卓系統努力維護的服務,所以,服務管理對象能夠正常運行,對各服務進行管理,使各服務的啟用處于安全、穩定的環境中。
另一方面,該步驟也面臨著某些服務為不可正常調用的服務,不可成長調用的服務需要其他方式進行重新激活。
步驟18,服務管理對象對可正常調用的服務進行管理;
該步驟是為了便于可正常調用的服務進行快速、穩定的使用。具體為:
a.服務管理對象通過哈希表為每一個可正常調用的服務建立位置對應;哈希表包括:key和value的鍵值對;
b.通過死亡報告為每一個可正常調用的服務建立生命跟蹤;
死亡報告中出現死亡結果時,服務管理對象將死亡結構對應的服務重新準備為可正常調用的服務。
該步驟可以采用將可正常調用的服務的接口進行封裝,調用時通過該接口調用服務。
步驟20,服務管理對象接收第三方程序的調用服務需求;并根據調用服務需求和服務映射文件,向第三方程序返回服務調用指令,供第三方程序調用已準備的服務。
該步驟是與第三方進行通訊,接收第三方的調用服務需求,向第三方反饋調用指令的步驟,通過該步驟,第三方能夠快速調用服務。具體方式:
(1)服務管理對象接收第三方程序的調用服務需求;
(2)服務管理對象根據調用服務需求確定待調用服務的key;
調用服務需求中會包含服務的相關信息,服務管理對象可根據該相關信息提取服務對應的key。
(3)服務管理對象根據待調用服務的key,在哈希表和服務映射文件中找到相應的服務及服務調用指令,向第三方程序返回服務調用指令。
至此,安卓系統中的服務被安全、穩定的管理,且不會出現肆意開啟的情況,而且能夠快速響應第三方程序的調取。整個安卓系統的資源得到有效利用,避免浪費和無意義消耗。
接下來,提供一種安卓系統服務生命周期管理方法中的服務管理對象(servicecore),如圖4所示,其包括:
服務啟動模塊(servicestarter)、服務管理模塊(servicemanger)和包含可調用服務的服務映射文件(service映射文件);其中,
服務啟動模塊,用于在服務管理對象啟動后獲取服務映射文件的服務列表,并根據服務列表準備可正常調用的服務;
服務管理模塊,用于接收第三方程序的調用服務需求;并根據調用服務需求和服務映射文件,向第三方程序返回服務調用指令,供第三方程序調用已準備的服務。
需要說明的是,服務啟動模塊(servicestarter)、服務管理模塊(servicemanger)可以為一個程序,可以為一段代碼。
為了方便服務啟動模塊將服務映射文件寫入數據庫,服務啟動模塊包括寫入單元和檢查單元;以實現首次啟動和非首次啟動時的寫入操作。
寫入單元,用于服務管理對象首次啟動時,將服務映射文件寫入安卓系統數據庫;在服務映射文件發生更新,將更新的服務映射文件替換安卓系統數據庫中存儲的服務映射文件;
檢查單元,用于檢查服務管理對象中的服務映射文件發生更新,并將檢查結果反饋寫入單元。
即服務管理對象首次啟動時,直接寫入;非首次啟動時,先通過檢查單元進行檢查,如果服務映射文件發生更新,則再次寫入數據庫。而檢查單元的檢查工作的啟動方式可以有多種,比如:實時檢查服務映射文件的更新狀況;又比如:在需要從數據庫讀取服務映射文件時,啟動檢查單元的檢查操作。
考慮到服務啟動模塊需要獲取服務列表,因此,服務啟動模塊還包括:獲取單元;
獲取單元,用于生成獲取服務列表的指令,并向檢查單元發送檢查指令,且待檢查單元和寫入單元工作后,從安卓系統數據庫中存儲的服務映射文件中獲取服務映射文件;
檢查單元,根據檢查指令,檢查服務管理對象中的服務映射文件發生更新,并將檢查結果反饋寫入單元。
考慮到服務啟動模塊需要對安卓系統中的服務進行初始化,通過初始化準備好各服務,處于可正常調用的服務。所以,服務啟動模塊還包括:準備單元;
準備單元,用于服務管理對象啟動服務列表中的服務,并嘗試綁定該服務;若綁定成功,則將該服務列為可正常調用的服務;若綁定失敗,則重試;若重試成功,則將服務列為可正常調用的服務;若重試次數達到上限,則將服務列為永久失敗。
服務管理模塊對準備好的服務進行管理,所以服務管理模塊包括:第一注冊單元、第二注冊單元、通訊單元;
第一注冊單元,用于為每一個可正常調用的服務建立位置對應的哈希表;
第二注冊單元,用于為每一個可正常調用的服務建立生命跟蹤的死亡報告,當死亡報告中出現死亡結果時,向服務啟動模塊發送將死亡結構對應的服務重新準備為可正常調用的服務;
通訊單元,用于根據調用服務需求確定待調用服務的key;根據待調用服務的key,在哈希表和服務映射文件中找到相應的服務及服務調用指令,向第三方程序返回服務調用指令。
本發明還提供了一種安卓系統,如圖5所示,其包括的服務管理對象、多個服務及核心服務層,三者相互連接。
接下來,基于音樂播放進行示例:
假設第三方程序對機器人說“播放音樂”,隨后能夠開始播放音樂。服務調用需要中的服務包括:錄音服務、媒體播放服務、系統的tts播放服務。
步驟0:在安卓系統中創建一個boot程序,將其服務管理對象android:persistent="true"放入系統目錄中,修改為系核心程序,android總是會盡全力去保護這個程序,所以這個程序已經不需要我們去保護,這個程序只有一個任務就是保護好servicecore,維護后續步驟正常運行。而servicecore則輔助管理服務。這樣的依賴保護讓整個系統和結構都變得健壯。系統消耗降低,不會肆意的釋放資源,不釋放資源就不會服務無端被殺死,自然就不會肆意重啟浪費資源,形成了一個良性的循環。
步驟1:編寫服務映射文件,在service映射文件中寫明需要維護的服務有:錄音服務、媒體播放、tts語音合成服務。假定key分別為:voice,media,tts。
步驟2:服務列表獲取,服務管理對象隨安卓系統啟動后,servicestarter向服務管理對象全局配置globalconfig獲取一份需要啟動的服務列表。而且globalconfig內容來源于服務映射文件,當被請求這份列表時globalconfig內部會創建一個initdatabaseutil的工具去檢查服務映射文件的配置文件的md5與之前記錄的是否一致(服務映射文件更新后,服務映射文件的配置文件的md5會發生變化),如果有變化,將更新的服務映射文件更新到數據庫中,然后更新配置文件md5記錄值。最后globalconfig可以通過訪問數據庫,得到需要維護的服務列表。
步驟3:準備好需要的服務,servicestarter獲取到了服務的列表根據服務列表中的描述信息可以區別出服務的綁定服務的方式是通過contentprovider方式同步綁定,還是通過context.bindservice()的異步方式綁定。后者會使用countdownlatch進行同步控制。contentprovider重寫call方法,再call方法返回bundle已配置文件中的servicename為key,put該服務的binder。如若啟動失敗會加到失敗隊列中,會有重試的機會,當達到重試上限會加入永久失敗列表,永久失敗列表中的服務想獲得重試的機會是一系列的判斷,列該服務所在的程序更新,或者得到重新裝載。
步驟4:管理準備好的服務,經過步驟3后servicestarter準備好一些服務,這些服務通過調用servicemanger.addservice的方法被添加到servicemanger中,再添加的同時就為這些服務注冊linktodeath的死亡報告,當該服務突然中斷死亡時,servicemanger會收到這樣一個報告,然后決定是否需要通知servicestarter重新準備好該服務。
步驟5,第三方程序獲取服務,使用servicemanger的getservice方法傳入對應的key就可以獲取對應服務。如果當時服務沒有準備好,會通知servicestarter快速準備好該服務,
servicestarter通過提供的key導數據中查詢服務映射文件中對應服務的完整信息,然后重新準備該服務。
這樣的一個通知和準備都是同步的。
步驟6,使用服務完成需求。如先使用voicekey獲取到系統的錄音服務,知道用戶說了什么,知道用戶說了什么之后便可以知道用戶的意圖,假設為播放音樂,這樣我們需要給用戶播放“我愛北京天安門”,這時我們可以調用tss,播放一段語音告訴用戶“將為您播放北京天安門”。最后調用media播放音樂。
如上述步驟,真正再完成需求時是非常便利的,只需要集中精力再業務邏輯層即可。
本技術提供一種系統服務的生命周期管理方法。android系統總是會用心去維護他的核心應用以確保它整個系統的穩定,而對其他程序維護確實相對比較粗暴的,導致大家不得不得想盡各種辦法去維護自己導致資源浪費,而本發明很好的解決了這些問題。本發明通過系統核心應用boot保護servicecore,而在servicecore中通過servicestarter和servicemanger和service映射文件的配合完成對系統服務生命周期的管理。這樣的結合使用服務能夠提供穩定的服務。對于使用者而言,什么時候想用服務總是存在。對于整個系統而言不存在肆意亂啟動,總是再真的需要時才申請資源。而且避免了系統核心永久性應用無法更新的問題。讓servicecore和其管理的服務都能正常完成版本迭代。
維護簡單擴展性強,安全高效,性能消耗低。優點包括:
(1)創新的服務信息映射表,簡單明了包含了遠端服務位置功能和綁定方式。
(2)servivestarter首次啟動從映射表獲取數據存入到數據庫提高效率,方便動態維護,內部還有服務啟動失敗記錄,當時機合適時會重新啟動服務。在獲取這些服務時無論服務的綁定方式,在此都會控制為同步,降低了開發的難度,增強了易用性。
(3)用系統的核心應用去保護servicecore,servicecore再去管理其他的服務,這樣的結構能使整體更加強健。而且避免了系統核心永久性應用無法更新的問題。讓servicecore和其管理的服務都能正常完成版本迭代。
本發明的各個部件實施方式可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。應該注意的是上述實施方式對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施方式。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
雖然結合附圖描述了本發明的實施方式,但是本領域技術人員可以在不脫離本發明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權利要求所限定的范圍之內。