基於OSGi平台提供無縫隙內容轉移服務廖明沂α賴俊維α楊竹星α,*羅孟彥βα國立成功大學電機系暨電腦與通信工程研究所β國立高雄應用科技大學資訊工程系*csyang@ee.ncku.edu.tw摘要隨著電腦與網際網路的發展,電腦科技帶給人們便利的生活,而為了使電腦科技廣泛的融入生活,人們構思將電腦科技與網路結合家庭設備與提供更便利的生活。OSGi(OpenServiceGatewayinitiative)標準提供一個開放性的平台,用以整合與管理家庭的設備、資源、網路與提供多樣化的服務。而透過UPnP(UniversalPlugandPlay)協定,管理系統能夠輕易的知道設備的存在並管理設備所提供的資源,因此,本研究之目的為基於OSGi平台與UPnP協定,提出無縫隙內容轉移服務的系統,當家庭成員正在欣賞影片或聆聽音樂時,需要移動位置到家庭的其他房間,系統能夠在其他房間提供接續的內容服務。關鍵詞:服務轉移、OSGi、UPnPAV、內容分享。AbstractWiththegrowingofcomputerandInternet,computertechnologybringsconvenientlifeforhuman.Inordertoblendthecomputersciencewithlife,peoplethinkhowtocombinethecomputertechnologyandnetworkwiththeappliancestoprovidebetterlife.TheproposedOpenServiceGatewayinitiative(OSGi)standardprovidesopenplatform,peopleintegratethefamilyequipments,resourceandhomenetworkswithOSGiplatformtosupplyvariousservices.WithUniversalPlugandPlay(UPnP)protocol,themanagementsystemgetstheresponsesfromequipments,andknowstheexistenceofequipments.ThemanagementsystemcouldmanagetheresourcebasedonUPnPprotocol.Therefore,thepurposeofthisworkistoproposeaseamlessmultimediamigrationservicesystembasedonOSGiandUPnPprotocol.Ifthefamilymemberhastogotoanotherroominthehousewhilethevideoisongoing,theproposedsystemisabletodoseamlessservicemigrationtoprovidethecontinuouscontentserviceinotherroom.Keywords:Servicemigration,OSGi,UPnPAV,Contentsharing.1.Introduction隨著資訊與網路科技的快速發展,廣為佈署的網路建設帶來更便利的生活,藉由家庭設備與網路的結合,透過網路增加家庭設備與人的互動,並且賦予家電智慧,能夠自我偵測錯誤與自動通報維修公司,避免以往因電器損毀或短路而造成火災,提供人們舒適與便利的居家生活。透過OSGi(OpenServiceGatewayinitiative)平台能夠整合家庭網路的環境、提供服務之間資訊的分享、管理家庭設備與資源。而遵守UPnP(UniversalPlugandPlay)協定規範的裝置則是能主動加入網路、取得網路位址,簡化了人們設定裝置的過程,使得裝置更容易操作。本論文的架構與內容如下所述:第一章介紹OSGi平台與UPnP通訊協定等相關背景,第二章是服務轉移的應用概念,在第三章描述我們所設計的系統架構與流程,第四章說明系統實作,最後的部份是此研究的總論與未來研究工作。1.1OSGiplatformOSGi[1][7][8][9]標準是1999年由OpenServiceGatewayInitiative協會制定的標準,圖1為OSGi架構圖,ExecutionEnvironment為JVM虛擬平台,OSGi規格是依據Java平台所制定的,而Bundle由一個Java的JAR檔案所組成,JAR主要是由Javaclass檔所構成,Bundle與Bundle之間可以透過Import使用其他Bundle的Export資源,而透過Export可釋出資源與其他Bundle分享。因此,只要是基於Bundle所設計的服務就能夠達到服務的資源分享。Security是基於Java2security所制定,Module在Bundle與Bundle間使用彼此制定的JavaPackages規則。而Lifecycle定義了Bundle的生命週期,包括已安裝、等待啟動、啟動、執行、停止、取消安裝。Service是定義動態的合作模式,Bundle可以將本身的Service註冊於ServiceRegistry,因此,其他的Bundle就能夠經由ServiceRegistry獲知所需要的服務。Security圖1OSGi架構圖圖2為Bundle狀態轉換示意圖,INSTALL狀態表示已經成功載入Bundle,RESOLVED狀態表示Bundle所需要的class皆能夠使用,代表已經載入的Bundle準備好能夠進入STARTING狀態或是剛從STOPPING狀態轉換到RESOLVED狀態。在STARTING狀態中,Bundle已經是啟動的,並且會呼叫BundleActivator.startmethod。在ACTIVE狀態的Bundle處於正在運作中的情況,並且已呼叫過BundleActivator.startmethod。STOPING狀態表示Bundle正在停止,並且已經呼叫過BundleActivator.stopmethod。最後UNINSTALLED狀態代表Bundle已經卸載,於是Bundle的狀態也已經無法繼續轉移。uninstallresolverefreshupdatestart圖2Bundle狀態轉換圖1.2UPnPUPnP[11][12]為1999年Microsoft所提出的架構,目的在於使設備之間能夠透過UPnP通訊協定知道彼此的存在,以達到ZeroConfiguration的目標,因此只要設備具備UPnP協定,當新增該設備於網路環境中時,就能夠使用與控制。UPnP規格定義了三項主要的元件,分別是CP(controlpoint)、裝置(Device)與服務(Service),CP能夠找尋到目前UPnP網路中的可用裝置,並透過UPnP協定進行控制。而一個裝置可以提供多個服務,並且提供服務的資訊給CP。而服務為UPnP網路中最小的單位,CP透過發出動作(action)參數給服務,可修改服務的狀態變數,而服務會將修改後的狀態變數提供給所有訂閱該服務的CPs。UPnP裝置間溝通的運作流程可分六個步驟,依序為:(1)Addressing(2)Discovery(3)Description(4)Control(5)Eventing(6)Presentation,分別描述如下:(1)Addressing:UPnP裝置在加入網路時,會要求取得一組網路位址,因此會先透過DHCPclient發出DHCPDiscovery訊息探測網路上是否有DHCP伺服器,並且向DHCP伺服器請求一組位址,若網路上沒有DHCP伺服器,則裝置將利用AutoIP自行產生一組IP位址。(2)Discovery:當裝置取得位址,會透過週期性的群播(Multicast)discovery訊息來自我介紹,訊息內容包含了裝置本身的資訊與所包含的服務,所以CP就能夠透過discovery訊息得知有新的裝置提供服務。若加入網路的裝置是CP,則是透過單次群播搜尋網路中有興趣的裝置,並且得知該裝置所提供的服務。如果CP需要使用該裝置的服務,則會利用discovery訊息的內容向裝置取得XML格式的Description。(3)Description:CP透過裝置的discovery訊息內容取得描述裝置資訊與服務的XML檔案。(4)Control:透過description階段取得裝置與服務之描述檔。(5)Eventing:當有CP控制某個裝置並改變了該裝置中的服務狀態,該裝置需要通知已與它註冊的CPs。(6)Presentation:若裝置提供控制的網頁介面,則CP能夠透過此介面控制裝置。1.3UPnPAVUPnPAV[13]基於UPnP架構對於影音傳輸所規範的標準,UPnPAV定義了CP(ControlPoint)與裝置(Device)之間的互動模式。UPnPAV架構如圖3所示,UPnPAV的定義中包含三項元件,分別是(a)CP(b)MS(MediaServer)(c)MR(MediaRenderer),以下分別對三者進行描述:(a)CP為協調與設定MS及MR的運作,當設定完成時,MS與MR會依照CP的設定建立連線,CP通常具備使用者介面,使用者透過此介面來設定控制MS與MR。(b)MS主要為提供影音內容,透過家庭網路分享影音資料,使用者可以透過CP得知MS內的多媒體資料,MS可以是錄放影機、DVD撥放器、衛星/電纜接收器、CD撥放器或MP3撥放器等,MS設備上包含三種服務:CDS(ContentDirectoryService)、CMS(ConnectionManagerService)與AVT(AVTransportService)。CP透過CDS服務瀏覽或搜尋MS所提供的影音目錄,其中的browse()動作(action)可以讓CP得到影音內容相關的詳細資料,包含檔名、作者、檔案大小、影音的內容、影音傳輸協定與內容格式。CP透過CMS通知MS準備一個即將開始的傳輸,若MS具有影音傳輸的服務,則透過動作回覆CP一個影音傳輸服務的識別碼(InstanceID),用以識別多個影音傳輸服務的instance,每一個影音傳輸服務的instance代表一個由MS到MR之間連線(connection),當CP要結束一個連線時,可以透過CMS的ConnectionComplete()動作釋放連線。AVT提供CP可以控制影音資料播放的動作,如停止播放、暫停播放、取得影片播放時間、設定影片播放時間等。(c)MR為播放影音資料的設備,CP透過RCS(RenderingControlService)提供的動作控制MR撥放這些影音內容,包含設定畫面明亮度、對比、及調整音量等。圖3UPnPAV架構圖如圖3所示,影音資料的內容由MS所提供,CP透過CDS服務的browse()動作取得MS影音目錄,並透過AVT服務將影音的URI通知MR,而CP也是透過AVT服務控制MR影音播放、暫停、停止等動作,至於影音資料的傳輸則是由MR透過Out-of-Band的方式與MS傳輸,影音資料的傳輸不會透過CP轉送。2.MultimediaServiceMigration本研究之系統提供使用者多媒體服務之無縫隙轉移(Seamlessmigration),假設使用者原本於甲空間使用影音服務,當使用者移動到乙空間時,系統能夠跟隨使用者,將服務轉移(Servicemigration)到乙空間,透過無縫隙的服務轉移達成提供的多媒體內容不中斷目的。我們將研究情境(scenario)定義為單人與多人模式兩種,圖4是一個單人使用服務的情境,著色背景的空間為目前提供使用者服務的地點,小華下班後在客廳收看棒球影片,但是因為節目的播放時間長度超過用餐時間,於是要移動到廚房用餐,因此系統需要協助將服務由客廳轉移至廚房,小華由客廳到廚房所花費的間隔時間為△T,若小華離開客廳時,已經播放的影片長度為T1,那麼小華到了廚房時,影片長度就已經播放到