原文: http://blogcn.symbian.org/?p=99
要瞭解Symbian OS,可能沒有比從系統模型入手更好的了。它能夠讓你以最快的速度建立對Symbian OS的全域觀念,從而有效地指導你對Symbian平台進行分解與研究。
系統模型是以可視方式表現Symbian OS結構的一種形式。不同的系統模型,顯示了不同時期的Sybmian OS的內部組織圖。事實上,系統模型的設計會走到系統實現之前,是系統研發過程中所需要遵循的藍圖。
像多數負責的系統一樣,Symbian OS系統模型建立在分層結構之上。它是通過如下四個層級的概念來進行描述的:
1. 層(Layer)
2. 包(Package)
3. 集(Collection)
4. 組件(Component)
其相互關係1所示:
圖 1.系統模型結構圖
即多個組件構成集,多個集構成包,多個包構成層。其中“包”是Symbian平台中實現一定技術的基本單位。例如remote management包實現了對OMA Device Management和Client Provisioning。每個包都“擁有”(Own)一定的技術;這意味對該技術的規劃、開發與維護活動都是在該包進行的。每個包都有一個責任人,即 Package Owner (PO)。以後我們將會看到,所有對Symbian OS功能或技術的介紹都是基於包進行的。
Symbian OS包括如下三層:
- 應用程式層(application layer,簡寫為app)
- 中介軟體層(middleware layer,簡寫為mw)
- 作業系統層(os layer)
各層之間保持嚴格的單向靜態依賴(調用)關係。這就意味著作業系統層中的組件不能調用中介軟體層和應用程式層的任何組件,而中介軟體層則不能調用應用程式層中的組件。當然,同屬一層的組件或者包之間是可以相關依賴的。
通常系統模型以兩種粒度顯示,基於包的粗粒度模型和基於組件的細粒度模型。最新發行(到作者寫本文為止)基於包的最新系統模型如下:
圖 2.基於包的系統模型
(http://developer.symbian.org/downloads/system_models/foundationpkg_22-05-09.svg,請先登入)
從可以看出,整個Symbian OS共有106個包,其中app層39個,mw層46個,而os層21個。如果你是用IE開啟的圖2中的串連,那麼當你的滑鼠移動到每個方塊上時,你都會看見關於每個包的簡單介紹。
在圖2中,我們可以看很每個方塊都沒塗成不同的顏色,這些不同顏色表示它所屬的技術領域(Technology Domain)。
由圖2可知,現在的Symbian OS包含了13個技術領域,分別是:
- Data Communications
- Device Connectivity
- Device Management
- Location
- Multimedia
- Multimedia Applications
- OS Base Services
- Personal Communications
- Productivity
- Runtimes and Web
- Security
- Tools
- User Interface
值得注意的是,技術領域是可以跨越不同層(Layer)的。例如Device Connectivity技術領域(圖2中粉紅色部分)就跨了所有層,ShortLink Service位於os層,Printing在app層,而其他的都在mw層。
下面是對每個技術領域的簡單說明:
- Data Communications:包含了基於IP串連的資料通訊的關鍵技術,例如WLAN支援、無線串連管理、相關介面、IP核心協議棧、通訊架構、SIP,RTP已經高層IP協議等。
- Device Connectivity:包含了有線及無線短距離串連支援(如藍芽、USB以及WLAN),相關的配置,及能使手機成為PC外設或者其他行動裝置(如數位相機)的主裝置的相關應用程式和底層支援技術。
- Device Management:包含了能讓遠程伺服器管理手機配置和內容的相關技術;主要是OMA 相關協議的實現,例如OMA Client Provisioning,OMA Device Management,OMA FUMO, OMA SCOMO等。
- Location:包含基於位置服務(Location-Based Services ,LBS)的相關技術。
- Multimedia:包含了所有多媒體應用程式所要求的支撐技術,例如使用及編輯音頻、視頻、圖片、網路攝影機以及廣播多媒體(即電視和廣播)。
- Multimedia Applications:包含了手機終端使用者所使用的多媒體應用程式,例如音樂播放器、調頻收音機、錄音機、相機擷取、視頻與電視管理、視頻播放、圖片瀏覽器等。
- OS Base Services:包含了Symbian OS作為一個作業系統的基礎技術,例如系統核心、檔案系統、裝置磁碟機、資料庫管理系統等。
- Personal Communications:包含直接與語音或視頻通訊相關的技術,例如蜂窩技術、視訊通話技術等。
- Productivity:包含了手機中日常使用的基於文字通訊的主要技術能,例如電子郵件、電話本、字典、簡訊和多媒體訊息等。
- Runtimes and Web:包含了應用程式安裝技術、XML、Java以及Web相關技術。
- Security:包含了為應用程式提供安全服務的相關技術,例如作業系統平台安全技術、DRM、認證相關的安全技術等。
- Tools:包含了基於Symbian OS進行程式開發的相關工具,例如Application Development Tools (ADT)、Platform Development Tools (PDT)、Carbide Development kit (CDK)、System Kit等
- User Interface:包含了使用者介面相關是幾乎,例如UI架構、可視化的控制項、視窗技術、動畫、繪圖(2D、3D以及SVG),文字及字型渲染、IME、觸控螢幕處理、感應器處理、顯示技術等。
你可以從如下兩個連結獲得關於技術領域(以及它們所包含的包)和系統模型的更加詳細的資訊:http://developer.symbian.org/main/source/technology_domains/index.php