Chapter 2 Background and Related Works
2.1 背景介紹
2.1.1 MExE (Mobile Execution Environment)
MExE[45]是 3GPP[46](3rd Generation Partnership Project)針對目前行動裝置 (mobile device)上的執行環境,所提出的主張。在 MExE 裡頭,將行動裝置 上的執行環境分成五種類型,如果該行動裝置的執行環境屬於五種類型之 一,則該行動裝置也稱為MExE device。
MExE 的目標是,希望能透過 MExE 的定義,來規範所有的行動裝置上的執 行環境,使這些行動執行環境能夠標準化,使往後開發行動應用程式(mobile application)或是軟體服務(service)能夠更方便及快速。
MExE 根據每種行動裝置的執行環境和計算能力(computing capability),將執 行環境分成五種類型(classmark):
1. classmark 1 – WAP execution environment
擁有這類型執行環境的行動裝置,通常都含有一個輕量型的瀏覽器,可 以觀看、執行由WML / WMLScript[36]所撰寫出來的網頁(web pages)或是 應用程式(web application)。這類型的執行環境必須遵守 WAP(Wireless Application Protocol[36])的規範,應用在 GSM、GPRS,或是相容的無線 網路環境上。
2. classmark 2 – Personal Java execution environment
擁有這類型執行環境的行動裝置,通常擁有比一般行動裝置較高的計算 能力(computing capability)和硬體能力(例如:較多的記憶體、較大的螢 幕)。這類型的執行環境(也就是 Java Virtual Machine,簡稱 JVM),可以 執行由Personal Java(PJava)[42]所撰寫出來的行動應用程式,支援較複雜 的使用者介面及較多的APIs,例如:Java AWT、Java Applet……等等。
3. classmark 3 – J2ME/CLDC execution environment
擁有這類型執行環境的行動裝置,其計算能力和硬體能力較受限制,且 通常螢幕較小,無法顯示複雜的使用者介面。因此,在這類型的執行環 境(也就是 Kilobyte Virtual Machine,簡稱 KVM)中,可以執行由 J2ME[42]
所撰出來的行動應用程式。在 J2ME 中,特別額外設計了專屬的APIs。
4. classmark 4 – CLI compact execution environment
這類型的執行環境是中立性質的,利用Microsoft 系列的程式語言(例如:
embedded VC++)所寫出來的應用程式,都可以在這類型的執行環境上執 行。
5. classmark 5 – Virtual PalmTop network execution environment
這類型的執行環境採用client-server 架構,在行動裝置上只顯示使用者介 面(client 端),而行動裝置上所輸入的資料透過網路傳輸,送到遠端的 server 主機做邏輯運算的處理,處理完之後再將結果透過網路,送回到 行動裝置上,再以適當的使用者介面顯示出來。另外,這類型的執行環 境也可能跟之前的四種類型一起搭配使用。
2.1.2 WAP (Wireless Application Protocol)
WAP[36]是一種應用在無線網路環境上的一種協定(protocol),允許擁有無線 裝置(wireless device)的使用者能夠在無線網路中,快速地存取資訊和服務。
WAP 是由產業界所共同制定的一種公開的標準,使用 WML / WMLScript 來 撰寫WAP 應用程式,能夠應用在下列的無線網路環境中:CDMA、GSM、
PHS、GPRS、CDPD、PDC、TDMA...等等。
圖2-1 和圖 2-2 分別表示了 WAP programming model 和 WAP architecture。
[圖 2-1 WAP Programming Model]
[圖 2-2 WAP Architecture]
2.1.3 J2ME (Java 2 Platform, Micro Edition)
J2ME[42]是一種專門為了消費性嵌入式裝置所設計的Java 平台,例如:行動 電話(mobile phone)、個人數位助理(PDA,Personal Digital Assistant)、電視 盒(set-top box)、smart card...等等。在 J2ME platform 裡頭,包含了由多個 專家組織(experts group)共同制定的標準 Java APIs。這些專家組織包括了硬 體裝置的領導廠商,軟體廠商,以及軟體服務提供者(service provider)。
J2ME 的架構組織包含三個部份(參考圖 2-3):configurations、profiles、optional packages 。 這 三 個 部 份 建 立 起 一 個 完 整 的 Java 執 行 環 境 (Java runtime environment)。三個部份的內容分別是:
1. configurations
對於所有J2ME 針對的裝置,提供基本的能力,包含了最小集合的 APIs。
在J2ME 裡頭,有兩種 configurations:分別是 CLDC(Connected Limited Device Configuration),和 CDC(Connected Device Configuration)。
2. profile
包含了更高階層的APIs,針對不同裝置的能力,會有少許不同。可以跟 CDC 或 CLDC 建立起一個完整的執行環境。在 profile 的部份,定義了 應用程式的生命週期(life cycle)、使用者介面、以及裝置的資料存取方式。
3. optional package
是一種擴充用的APIs。為了滿足市場需求或是裝置本身特殊的能力,也 可能是為了擴充 J2ME 本身能力而設計的。例如:Bluetooth、Web Services...等等。
[圖 2-3 J2ME Architecture]
2.1.4 XML (Extensible Markup Language)
XML[39]是一個開放的,以純文字為基礎的後設語言(meta-language),以標籤 (tag)的形式提供結構的,以及和語意相關的後設資料(metadata)。因為是以 純文字為基礎的,所以可以很容易地被人類閱讀並了解,另外,它所提供的 組織、描述和結構化資料的能力,使它能被機器(即應用程式)所解讀。
因為XML 是一種後設語言,所以也能用來創造其他的語言,產生各式各樣 的應用。現今有很多XML 的應用,例如:XSLT、MathML、XPath、SOAP、
WML……等等。
2.1.5 XSLT / XPath
(Extensible Stylesheet Language for Transformation / XML Path Language)
XSLT[40][41]是XSL(eXtensible Style Language)的其中一個分支。XSL 擁有強
大的能力,能將一份 XML 文件以不同的方式呈現出來,或是將一份 XML 文件中的結構,重新組織成一份結構不同的XML 文件。XSL 包含兩個主要 的部份:
1. a set of formatting objects
能將一份 XML 文件所描述的內容,以不同的呈現方式表現出來。這一 個部份被獨立出來,但仍稱作XSL 或 XSL-FO(XSL Formatting Objects)。
2. transformation language
能將一份 XML 文件原本的內容結構,重新組織成內容結構完全不同的 另一份XML 文件。這一個部份也被獨立出來,稱之為 XSLT(eXtensible Stylesheet Language for Transformation)。
XSLT 具有以下的能力:
- XSLT 可以描述轉換之後的目的文件的格式樣板(template),而樣本內容 透過XPath(eXtensible Path Language)[41]從原本的XML 文件獲得。
- 可以從原本的 XML 文件中獲得 elements、attributes、text、processing instructions 和 comments。也可以在目的文件中穿插所需要的文字字串。
- 簡單地說,XSLT 文件就是轉換規則的集合(a set of transformation rules),
這些轉換規則可以重複使用,或是從外部檔案引入(import)。
- 在 XSLT 的轉換規則中,可以使用類似一般程式語言的條件判斷敘述,
例如:if-else 敘述。
- 能夠使用變數(variable)或參數(parameter),參數可由外部應用程式傳入。
- 能夠處理 XML 文件中,內容結構彼此的關係。
- 能夠處理簡單的字串、數字、布林值的運算。