摘要:該文以和欣手機系統(tǒng)平臺為基礎,在CAR構件運行平臺之上,論述了構件化彩信引擎的必要性,詳細描述了構件化彩信引擎的設計以及實現過程,并最終給出了測試實例。該文所提出的構件化彩信引擎完全遵循WAP論壇制定的MMS標準,不但具有構件的靈活性和擴展性,而且還與其他平臺彩信兼容。
關鍵詞:CAR構件;彩信引擎;MMS;Elastos;和欣手機平臺
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2012)28-6697-05
向用戶提供的SDK(Software Development Kit)中,也相應地提供了可供第三方開發(fā)的彩信引擎API接口。但是大部分平臺上的彩信還是采用傳統(tǒng)的軟件架構,基本上是以靜態(tài)庫的形式在SDK中提供,即使是Android平臺,彩信引擎也是和系統(tǒng)平臺服務綁定在一起的,不能單獨更新;因此這些平臺彩信就不能實現動態(tài)升級、即插即用、分布式運行。另外,大多數手機彩信,雖然遵循了OMA MMS規(guī)范, 但它們之間兼容性做得并不夠好。
和欣(英文名Elastos)手機系統(tǒng)平臺是國內自主知識產權的手機平臺,是一個安全、靈活、開放、互聯的構件化的基礎軟件平臺,其已構件技術為基礎,以腳本語言為應用開發(fā)語言,以全新的平臺技術為普通消費者帶來“業(yè)務手機”(Service Phone)的全新用戶體驗,是面向移動互聯網的新一代手機平臺。與其它平臺軟件模型相比,和欣手機系統(tǒng)平臺上所有的軟件服務全部構件化,面向構件編程,軟件即服務,可動態(tài)升級、即插即用并能夠分布式運行。因此,構建和欣手機系統(tǒng)平臺靈活的構件化彩信引擎是非常必要的。
1 和欣手機系統(tǒng)平臺和CAR構件技術概述
1.1 和欣手機系統(tǒng)平臺概述
和欣手機系統(tǒng)平臺是科泰世紀公司自主研發(fā)、面向智能手機、完全開放的嵌入式操作系統(tǒng)。主要特點是按需計算(On demand)、面向服務的體系結構(SOA)。該平臺采用CAR(Component Assembly Runtime)技術,類似于Java的編程模型,用C++語言實現Java/C#思想,將虛擬機技術融入手機操作系統(tǒng)內核,二進制構件能夠自描述,能在運行時動態(tài)鏈接,系統(tǒng)軟件、應用軟件的二進制代碼可以自動加載/更新、按需下載、動態(tài)拼裝并能夠分布式運行。
1.2 CAR構件技術概述
科泰世紀為和欣系統(tǒng)平臺發(fā)明了CAR(Component Assembly Runtime)編程技術以及和欣構件運行平臺,二者使軟件工廠化生產成為現實。CAR編程模型制定了一套二進制構件之間互操作的標準,并在構件中封裝自描述信息(又稱元數據)。和欣構件運行平臺根據構件元數據,構件在運行時動態(tài)加載、動態(tài)拼接,完成軟件業(yè)務支持。
CAR構件技術使得開發(fā)者完全面向構件編程,構件同時具有C/C++的運行效率。與Java和.NET的基于中間代碼和虛擬機機制不同的是,CAR構件采用C++語言編程,使用和欣平臺提供的SDK工具直接生成運行于和欣平臺平臺上的目標機二進制代碼。另外,在不同操作系統(tǒng)上實現的和欣平臺虛擬機,使得CAR構件的二進制代碼可以跨平臺兼容。
2 構件化彩信引擎設計
在設計和欣手機系統(tǒng)平臺的彩信引擎時,最主要的目地是使得彩信引擎構件化,能夠滿足手機系統(tǒng)上日益增長的與彩信相關的消費類電子業(yè)務需求,不但需要滿足和欣手機系統(tǒng)平臺自身的業(yè)務需求,還要方便第三方廠商能夠以構件化彩信引擎快速構建個性化彩信終端服務以及其他多媒體業(yè)務,同時,還要兼容其它平臺彩信。
和欣構件化彩信引擎對外提供統(tǒng)一的構件接口,由于和欣平臺以CAR構件技術為基礎,故和欣構件化彩信引擎具有點擊運行、動態(tài)升級以及分布式運行的特點。構件化彩信引擎主要由如下模塊構成:wap協(xié)議棧管理、wap push消息解析器、MMS消息頭編解碼、MMS協(xié)議編碼/解碼、SMIL管理器、DRM內容管理、存儲管理、MMS兼容模塊以及構件接口。
3 構件化彩信引擎實現
3.1 WAP協(xié)議棧抽象接口
和欣構件化彩信引擎提供了一XX69sQSkr0fEELYxBYyQ9SgJrLugwcMVAdYnFzcmjlk=套wao協(xié)議棧的抽象接口,使得在軟件架構上具有靈活性和松耦合,該抽象接口使得彩信引擎在調用wap協(xié)議棧時簡單方便,并且還便于彩信引擎的移植。
3.2 WAP push消息解析器
彩信通知消息采用WAP push SI(Service Indication)服務, 其流程如下:
3.3 PDUs類型及消息頭
彩信消息在網絡傳輸中是以PDUs的形式傳輸的,MMS PDUs(Protocol Data Units),即彩信協(xié)議數據單元,表示的就是一條彩信消息。
彩信協(xié)議最基本的單元是消息頭,消息頭由域名和域值組成,MMS消息頭中一部分沿用了RFC822定義了的通用頭部,另一部分是由彩信協(xié)議定義的私有消息頭,域名以“X-Mms-”開頭。
彩信消息體由媒體內容和內容描述組成,內容描述是多媒體內容的組織形式。對于一條彩信消息而言,內容描述存在于消息體中不是必須的,如果存在, MMS PDUs消息類型則為3.6 彩信引擎對DRM的支持
和欣構件化彩信引擎根據媒體內容的ContentType識別該媒體內容是否為oma drm內容類型,對于不支持的DRM內容,彩信引擎將不作任何處理。 媒體內容的OMA DRM內容類型有:
3.7 彩信引擎兼容性
和欣構件化彩信引擎完全遵循《彩信一致性文檔》,通過測試,基本上與其他平臺廠商的彩信兼容。
3.8 構件化彩信引擎接口
為了實現彩信引擎的構件化,在和欣手機系統(tǒng)平臺上,通過和欣構件平臺,為和欣彩信引擎設計了如下構件接口:
IMmsManager接口負責各個消息類型接口的創(chuàng)建、編碼和PDUs解碼,ISlides接口負責彩信頁的管理,包括頁的創(chuàng)建、刪除、插入、頁面媒體內容的獲取; IAttachments負責附件管理, 它和ISlides接口共同實現了彩信編輯功能。IMmsMessage定義了彩信各種消息的通用屬性操作,它是IMultimediaMessage、ISendConfMessage、INotificationMessage、INotifyRespMessage、IAcknowledgeMessage和IDeliveryReportMessage的基接口, ITransactions負責彩信的事務處理。
4 測試實例
下面以一個實例演示基于和欣手機系統(tǒng)平臺構件化彩信引擎創(chuàng)建彩信、編輯彩信以及彩信編碼、解碼過程。
5 結束語
通過在和欣手機系統(tǒng)平臺上設計并實現了構件化的彩信引擎,不但能夠為和欣手機平臺提供可供編程的彩信服務引擎,還使得彩信引擎可構件化運行:動態(tài)加載、動態(tài)升級,同時也給第三方廠商提供一套非常靈活地面向構件編程的彩信引擎接口,使得開發(fā)者可以靈活而快速地開發(fā)自有的彩信相關的業(yè)務,并且無需擔心標準彩信業(yè)務的兼容性。
參考文獻:
[1] 上??铺┦兰o科技有限公司.Elastos CAR構件與編程模型技術文檔[Z].2006.
[2] 上??铺┦兰o科技有限公司.Elastos智能手機軟件整體解決方案白皮書[Z].2006.
[3] Synchronized Multimedia Integration Language:SMIL 2.1,W3C Recommendation 13 December 2005[EB/OL]. http://www.w3.org/TR/2005/REC-SMIL2-20051213/.
[4] Wireless Application Protocol, MMS Encapsulation Protocol,WAP-209-MMSEncapsulation, WAP Forum, 14-September-2000[EB/OL]. http://www.wapforum.org/.
[5] Wireless Application Protocol,MMS Architecture Overview,WAP-205-MMSArchOverview, WAP Forum[EB/OL].http://www.wapforum.org.
[6] Wireless Application Protocol, MMS Client Transactions, WAP-206-MMSCTR, WAP Forum[EB/OL]. http://www.wapforum.org.
[7] Wireless Application Protocol Architecture Specification, WAP-100-WAPArch, WAP Forum[EB/OL].http://www.wapforum.org/.
[8] Wireless Application Protocol, Push Message Specification, WAP-145-PushMessage,WAP Forum, 16-August-1999[EB/OL]. http://www.wapforum.org/.
[9] MMS Conformance Document Version 2.0.0[Z].2002.
[10] WAP Binary XML Content Format, WAP Forum, 4-November-1999[EB/OL].http://www.wapforum.org