• 沒有找到結果。

設計及製作一個介面產生器用以產生手機內的Java應用軟體之介面設定使其遙控PC上相同之應用軟體

N/A
N/A
Protected

Academic year: 2021

Share "設計及製作一個介面產生器用以產生手機內的Java應用軟體之介面設定使其遙控PC上相同之應用軟體"

Copied!
89
0
0

加載中.... (立即查看全文)

全文

(1)

設計及製作一個介面產生器用以產生手

機內的

Java 應用軟體之介面設定使其

遙控

PC 上相同之應用軟體

學生:翁浚恩 指導教授:陳登吉 博士

國立交通大學資訊工程學系碩士班

摘要

隨著科技快速的腳步,行動裝置系統與數位電視等顯示系統越來越 進步,更能夠呈現精美及生動的多媒體內容。而大部分的多媒體內容, 例如廣告、動畫、簡訊等,都能在各式的平台上播放。如果使用者能藉 由一些簡易的操作裝置(例如手機、PDA 等)來與顯示裝置(例如 PC、 Digital TV)上的多媒體應用系統進行遠端遙控的溝通,這樣的服務與操 作會變得很生動有趣。但由於操作的目標裝置種類很多且控制方式不 同,如果要為每一個既有裝置上的多媒體應用軟體,進行遙控互動程式 之撰寫或局部功能的新增修改時,勢必要知道每個被遙控的多媒體應用 系統之原始碼,才可能為每個互動多媒體系統裝置量身訂作一套遙控溝 通的程式。但由於具有互動功能之多媒體系統種類相當多,這樣的開發 步驟與方法,非常浪費時間且沒有效率。 本研究提出一個介面產生器(Interface Generator),像個程式碼的 剖析器(Parser Generator)的運作功能,能夠為特定裝置上的應用軟體, 自動產生手機操作程式,如此,開發者不需了解及撰寫手機內的遙控溝 通程式,這樣的機制能夠簡化複雜的開發步驟,而使系統之開發與修改 更有彈性。

(2)

本研究運用此介面產生器及其方法實際製作產生三種不同的手機應 用軟體為例,使其能和 PC 內相同之應用軟體得以透過遙控的方式來達成 互動溝通。透過此實際應用的例子,我們展示此介面產生器及其方法的 可行性及應用性。最後並以質化的方式來評估所提出的方法及介面產生 器和現有的傳統方法之差異等。

(3)

An Interface Generator to Generate Java Application

Interface MIDlet for the Remote Interface

Communication from Java Based Mobile Phone to

Window Based PC

Student: Chin-Eng Ong Advisor: Dr. Deng-Jyi Chen

Department of Computer Science and Information Engineering

National Chiao Tung University

Abstract

With the quick advance of technology, screen display of digital TV and mobile system becomes more and more elegant and is able to present fine and vivid multimedia contents. Most of the multimedia contents, such as advertisement, motion pictures, messages, etc., can be displayed on different kinds of platforms. If user can use some simple instruments (such as cell phone, PDA, etc.) to remotely communicate with the multimedia application module in the display device (such as PC monitor, digital TV, etc.), then the control becomes live and interesting. But there are various control instruments and display devices, and different kinds of control methods. If one wants to write the control program or partially modify the control features for the multimedia application module in the display device, then he needs to know the software source code in the multimedia application module that will be remotely controlled, so that he can custom-design a set of remote control programs for each multimedia application. However, there are a lot of multimedia applications, a custom design for each of these applications becomes time consuming and less efficient.

This research proposes an interface generator, similar to the concept of the parser generator, to automatically generate remote control programs for a specific multimedia application in the cell phone. With this generator, designer does not need to write the textual remote control programs in the cell phone. This will simplify the development process and make the control system development and modification

(4)

more flexible.

This research utilizes this interface generator and its algorithm to produce three different kinds of application softwares in the cell phone. These three softwares can remotely communicate with similar application softwares in PC. With this practical example, we demonstrate the feasibility and applicability of this interface generator and its algorithm. The proposed approach is compared with the traditional approach quantitatively to see the advantages of using the proposed approach.

(5)

誌謝

本論文承蒙指導教授陳登吉老師的耐心與嚴格指導下,實惠我良多,自推甄 到本實驗室,在兩年半的研究生涯中,老師深知卓見的研究評估與分析能力,是 個人這些日子以來十分瞻仰的專業能力,在學業界兩方面的研究與實作的經驗, 由於老師的細心指點與嚴格的考驗,個人得以完成本論文的研究,由衷感謝老師 的用心與投入,個人受益匪淺。 感謝在學術研究與論文發表期間,承蒙博士班蔡明志與彭士榮學長的指教, 使個人在獨立研究與論文撰寫的能力上獲得不少的收穫,另外是特別感謝就業中 的兩位好伙伴同時也是電資專班的兩位同學:林賢忠與楊博鈞學長,他們以在業 界工作多年的實務經驗,不吝指導與幫忙解決個人於實作上所遭遇的問題,使個 人開發的技術與能力獲得很寶貴的經驗,由於老師、學業兩界的優秀學長與同學 的激勵,增進個人這兩年做研究的態度與擴大思考能力的格局,希望有朝一日, 能再繼續與你們合作與學習,締造可觀的研究成果。

(6)

目錄

摘要...i Abstract... iii 誌謝...v 目錄...vi 表目錄 ... viii 圖目錄 ...ix 一、 緒論...1 1.1 研究動機...1 1.2 問題描述與解決方法...1 1.3 研究目標...3 1.4 設計理念...4 1.5 研究步驟...5 1.6 相關名詞...6 1.7 章節說明...7 二、 相關研究及文獻探討 ...8 2.1 現有多媒體互動的方式...8 2.2 現有的遠端遙控機制與Rajicon System...9 2.3 巨集指令的制定方式-Rajicon System...10 2.4 遠端遙控介面的製作-PUC System ...14 2.5 手機上的介面產生器之介面產生方式...16 2.6 J2ME與Java TV...17 三、 系統架構設計與實作 ...20 3.1 遠端控制介面系統架構...20 3.2 系統架構說明...21 3.3 系統運作流程...23 3.4 應用程式介面載入器...24 3.4.1 目的與功能...24 3.4.2 需求分析...24 3.4.3 系統設計與實作...25 3.5 手機內的Java程式之介面產生器...28 3.5.1 目的與功能...28 3.5.2 需求分析...29 3.5.3 系統設計與實作...31 3.6 應用程式樣板分析...37 3.7 操作描述檔案說明...40 3.8 控制命令表單制定...41

(7)

3.9 WTK編譯器 ...44 四、 應用服務範例 ...52 4.1 介紹...52 4.2 Java多媒體播放器...52 4.3 行動多媒體名片樣板編輯器...58 4.4 電子賀卡樣板編輯器...66 4.5 系統開發上的評估...71 五、 結論以及未來展望探討 ...73 5.1 結論...73 5.2 未來展望...74 參考文獻及資料 ...75

(8)

表目錄

表 1、手機遙控操作的特色...10

表 2、Keypad Mapping...12

表 3、Special Commands for key Input...13

表 4、Special Commands for Misc Operations...13

表 5、載入器與應用軟體介面元件的需求...25 表 6、載入器的環境平台與協定需求...25 表 7、程式樣板採用的開發元件...29 表 8、操作元件項目及說明...29 表 9、操作元件描述的內容...29 表 10、控制命令表單的欄位描述...30 表 11、WTK的開發環境需求...30 表 12、使用命令字串觸發物件的方式...42 表 13、WTK2.2 所支援的API描述...45 表 14、WTK開發環境的工作目錄...45 表 15、JMF支援的播放格式...52 表 16、開發方式的比較...71 表 17、評估項目的比較...72

(9)

圖目錄

圖 1、手機上開發遙控服務的方式比較...3 圖 2、普遍的互動方式...8 圖 3、聲音控制...8 圖 4、遙控互動-Wii...8 圖 5、遠端操作-透過網路...9

圖 6、Rajicon System Architecture...11

圖 7、Zoom Movement Mode...11

圖 8、Scale Movement Mode...11

圖 9、Scroll Movement Mode...12

圖 10、The cellular phone's keypad...12

圖 11、PUC System Architectural Diagram...14

圖 12、XML-based specification language...15

圖 13、A sample group tree for a shelf stereo with both a CD player and radio tuner ...15

圖 14、各種Java平台核心類別函式庫關係...17

圖 15、The Java Platform...17

圖 16、The Wireless Platform...18

圖 17、Digital Media Platform...18

圖 18、Developer Platform for Converged Services...18

圖 19、Remote Control Interfacing System Overview...20

圖 20、Remote Control Interfacing System Framework...21

圖 21、系統運作流程...23 圖 22、應用程式介面載入器-MVC design pattern...26 圖 23、連結PC上的Java AP...26 圖 24、應用程式介面載入器畫面中選擇載入的Java應用程式...27 圖 25、處理來自手機操作介面程式的控制命令...27 圖 26、手機內的Java程式之介面產生器架構圖...31 圖 27、剖析器模組的運作流程...32 圖 28、遠端控制程序的servlet程式...33 圖 29、分析abstract類別名稱資訊與設定視窗標題名稱(Frame Title)...34 圖 30、分析操作元件屬性的字串值...34 圖 31、提供操作元件圖示資源檔(.png)...35 圖 32、手機介面程式上對應的按鈕(Button)操作元件...35 圖 33、手機介面程式上對應的單一選項鈕(RadioButton)操作元件...36 圖 34、手機介面程式上對應的下拉列表(ComboBox)操作元件...36

(10)

圖 35、手機程式上產生操作元件事件處理程序...37 圖 36、程式樣板的繼承架構...38 圖 37、抽象類別程式片段...39 圖 38、操作描述檔案與控制表單的關係...40 圖 39、操作描述檔案的內容說明...41 圖 40、JMF播放器應用程式的控制表單操作描述...42 圖 41、行動名片樣版編輯器的控制表單操作描述...43 圖 42、電子賀卡樣版編輯器的控制表單操作描述...43 圖 43、以元件產生的順序來賦予命令碼...44 圖 44、執行畫面...46 圖 45、新增專案...46 圖 46、打開專案...46 圖 47、載入專案MyRemoteAP...46 圖 48、建置專案MyRemoteAP...47 圖 49、建置專案MyRemoteAP成功...47 圖 50、專案MyRemoteAP的資料夾內容...47 圖 51、按下Settings選項以設定環境組態...47 圖 52、相關的組態資訊內容...48 圖 53、點選Run執行按鈕,執行MIDlet程式...48 圖 54、以預設的模擬器(DefaultColorPhone)來執行...49 圖 55、DefaultColorPhone模擬器畫面...49 圖 56、模擬器主選單與操作選單的畫面...50 圖 57、在系統畫面上選擇載入Java多媒體播放器...53 圖 58、Java多媒體播放器系統畫面載入結果...53 圖 59、Java多媒體播放器系統的操作畫面說明...54

圖 60、點選Generate Operation File以產生操作描述檔案...54

圖 61、描述檔案的內容...54

圖 62、點選Generate Control Table以產生控制表單...55

圖 63、控制表單的呈現畫面...55

圖 64、控制表單的內容...55

圖 65、點選Generate MIDlet Source Code並執行WTK編譯器...56

圖 66、編譯產生的MIDlet程式並執行手機模擬器...56 圖 67、執行手機模擬器的畫面...56 圖 68、PDA Phone上的MIDlet程式執行畫面...57 圖 69、手機上遙控Java多媒體播放器-Combobox選單操作...57 圖 70、在系統畫面上選擇載入行動名片樣板編輯器...58 圖 71、行動名片樣板編輯器系統畫面載入結果...58 圖 72、行動名片樣板編輯器系統的操作畫面說明...59

(11)

圖 73、點選Generate Operation File以產生操作描述檔案...59

圖 74、描述檔案的內容...59

圖 75、點選Generate Control Table以產生控制表單...60

圖 76、控制表單的呈現畫面...60

圖 77、控制表單的內容...60

圖 78、點選Generate MIDlet Source Code並執行WTK編譯器...61

圖 79、編譯產生的MIDlet程式並執行手機模擬器...61 圖 80、執行手機模擬器的畫面...62 圖 81、PDA Phone上的MIDlet程式執行畫面...64 圖 82、手機上遙控行動多媒體名片樣板編輯器-Button按鈕操作...64 圖 83、手機上遙控行動多媒體名片樣板編輯器-RadioBtn按鈕操作...65 圖 84、手機上遙控行動多媒體名片樣板編輯器-Combobox選單操作...65 圖 85、在系統畫面上選擇載入電子賀卡樣板編輯器...66 圖 86、電子賀卡樣板編輯器系統畫面載入結果...66 圖 87、電子賀卡樣板編輯器系統的操作畫面說明...67

圖 88、點選Generate Operation File以產生操作描述檔案...67

圖 89、描述檔案的內容...67

圖 90、點選Generate Control Table以產生控制表單...68

圖 91、控制表單的呈現畫面...68

圖 92、控制表單的內容...68

圖 93、點選Generate MIDlet Source Code並執行WTK編譯器...69

圖 94、編譯產生的MIDlet程式並執行手機模擬器...69

圖 95、執行手機模擬器的畫面...69

圖 96、PDA Phone上的MIDlet程式執行畫面...70

(12)

一、 緒論

1.1 研究動機

人機介面的操作方式很直接,但隨著現有技術的進步及家用或通訊設備的功 能變多,人與裝置間之操作及互動方式,變得越來越豐富。一般來說人們都可以 直接與裝置進行各式的互動,可是要利用特定的裝置與被控制的裝置間進行互動 或操作,這樣的行為需要撰寫複雜的程式才能完成互動的功能,且針對在這樣的 特定裝置上所開發的控制協定,不易維護,因為若是增加新的操作程序,將導致 系統常需要大量的修改,開發上而言成本負擔大、浪費時間且不夠彈性。 本論文研究的動機,考量手機與 PC 上開發 Java 應用軟體的過程,提供一個 手機程式的產生器,來為 PC 上的應用軟體產生出可以在手機上進行遙控的操作 介面,因為能夠免除手機程式的撰寫,以及免除重複撰寫應用軟體上的遙控溝通 協定,這樣一個有效的機制使其在軟體的製作上,能夠改善其生產力及維護能力 的好處。

1.2 問題描述與解決方法

進行裝置間互動的方式有很多,一般互動的方法,舉例來說,有以下幾項: (1) 在數位家庭環境中,採用聲音輸入以控制家電。 (2) 在遊戲主機上,用藍芽連線的方式,透過特殊感應搖桿,來遙控遊戲(如: 日本任天堂所開發的 Wii 遊戲平台)。 (3) 利用手機紅外線功能,遙控數位家電(如:Nokia 6708-內建紅外線遙控程 式)。 (4) 透過網路進行遠端登入。 (5) 透過網路進行視訊電話操作。 在(1)至(5)這些互動的方式中,比較會遭遇的問題有: (1) 在特定的互動裝置與被互動的裝置間,開發互動溝通的程式,過程較為複 雜。 (2) 需考慮裝置的運作能力以及本身的辨識系統(recognizer)支援,例如手機 鍵盤、觸控板,麥克風等可否開發額外的互動控制。 (3) 操作上是否夠友善(friendly),使用者能夠輕易上手。 依據本論文的研究動機描述,在手機上進行遙控操作 PC 上應用軟體的機制,可 能遭遇的問題就概括以上三點。而我們解決的方式會針對開發互動溝通過程上的 簡化,主要是改善第(1)點所遇到的問題,即利用手機程式的產生器來降低複雜

(13)

繁瑣的開發過程,且由於產生的程式是 Java MIDlet 手機程式,目前所有的手機 裝置上都普遍具有支援 Java KVM(K Virtual Machine)平台,所以應用程式能透 過手機的鍵盤或觸控板來進行操作,較容易與手機上的辨識系統結合,這樣的方 式也能夠解決第(2)點問題,且產生出的手機操作介面與 PC 上的應用軟體操作介 面的功能相同,使用者能夠輕易的操作,相對又能解決第(3)點問題。 在特定的裝置上,開發遙控互動的應用方式,往往比較沒有彈性,當有新的 互動服務產生時,應用軟體需要修改,甚至重新開發,為了能夠與操作控制器上 的辨識系統(recognizer)結合,例如,鍵盤或是觸控板,應用軟體中還必須撰寫 對應的互動操作功能,這個底層用來處理控制器訊號的程式碼,會因為一個新的 應用軟體產生,而重新再被開發過,如此重複的控制程序(control statement), 就常常發生在開發過程中,使得開發應用程式變得沒有彈性及效率。 本論文所提出的解決方法是利用一個手機內的 Java 程式之介面產生器 (Interface Generator for MIDlet Program),來為 PC 上的 Java 應用軟體產生 手機操作介面程式,並能夠與該應用軟體進行遙控的互動,這樣的機制能夠簡化 在特定的互動裝置與被互動的裝置間,開發互動溝通的程式複雜度,而這個手機 內的 Java 程式之介面產生器是包含在本論文所提出的遠端控制介面系統架構 中,會於第三章詳細說明。

透過一個在通用介面系統(generic interfacing system)中的手機內的 Java 程式之介面產生器,來幫助產生這些重複的控制程序,並且能夠結合手機 的觸控板辨識功能,自動產生手機操作介面的程式,成為一個遙控辨識系統 (remote control recognizer),如此,針對 PC 上的應用軟體以達到手機上的遙 控操作介面之開發,就會變得較簡化,甚至不需撰寫手機應用程式,且降低系統 開發者開發的負擔。圖 1(a)是一般手機上開發遙控服務的方式,而圖 1(b)是提 供介面系統(interfacing system)來開發遙控服務的方式。在圖 1(a)中,手機 上需獨立撰寫手機程式(MIDlet),然後再撰寫遙控 Java 應用程式的控制程序(AP Control Statement),才能夠完成遙控的服務,如此,開發的程序多且複雜。而 圖 2(b)則是在 PC 上提供介面系統(Interfacing System),而 Java 應用程式的 控 制 程 序 (AP Control Statement) 會 自 動 被 產 生 出 來 , 並 透 過 介 面 產 生 器 (Interface Generator),為一個 Java 的應用軟體產生手機操作的介面程式(Java MIDlet Program),達到遙控互動的服務。如此,系統開發者透過這樣一個通用 的介面系統平台,不需要撰寫手機程式(MIDlet program),也不須重覆開發遙控 的互動程序,能將手機操作程式與手機的觸控板辨識功能相結合,而系統使用者 則可利用手機與跨平台的應用軟體進行遙控操作。

(14)

(a)、一般手機上開發遙控服務的方式 (b)、提供一個介面系統來為 Java AP 產生 MIDlet 手機程式 圖 1、手機上開發遙控服務的方式比較 以上是本論文提出應用手機內的 Java 程式之介面產生器,為一個 Java 的應 用軟體產生手機操作程式的解決方法,能夠解決重複且複雜的應用軟體開發流 程,下ㄧ節中會針對我們欲進行的解決方法,分析其所要達到的研究目標有哪些。

1.3 研究目標

本論文研究的目標是提供一個遠端控制介面系統架構(remote control interfacing system framework),該架構的核心系統就是建構出介面產生器 (interface generator),來產生 Java MIDlet 手機程式。本研究目標以手機與 PC 的兩個異質平台為例,並利用 Java 程式語言來實作,開發該系統的目標是根 據以下幾點來進行研究:

(1)一般提供巨集指令(macro commands)的方式,利用手機按鍵的組合來操作一 台遠端電腦上的系統介面[1],這樣的操作方式複雜。本論文之系統能夠包裝

(15)

使用者的操作方式,並靜態的賦予每個操作項目一個控制命令(control command),因此不需定義複雜的操作指令。 (2)每個特定裝置上的操作項目不同,需要個別提供系統規格的描述文件給介面 產生器,方能產生介面[3]。本論文之系統能夠分析 Java 應用軟體介面上的 操作元件,並自動產生描述檔案給手機內的 Java 程式之介面產生器,以產生 手機操作的介面程式。 (3)利用 Java 程式語言在手機或是跨平台的裝置上[16],開發 Java 應用軟體系 統以進行遙控互動的操作,過程複雜,透過本論文之系統所提供的開發機制, 能夠簡化複雜且彈性不佳的互動程序,這樣的開發機制稱之為介面化機制 (interfacing mechanism)。該機制規範開發者為 Java 應用軟體撰寫一個特 定的抽象類別,稱之為程式樣板,並利用繼承的方式[27]能夠提供良好的可 再利用性(reusable),系統開發者能繼承該樣板來快速並有效的開發新的 Java 多媒體功能,而轉換出新的應用服務,開發者不需要再對特定裝置上的 應用軟體進行重新開發。

本研究的遠端控制介面系統架構包含以下三個系統模組:手機內的 Java 程 式之介面產生器(interface generator for MIDlet program)、應用程式介面載 入器(application program interface loader)與 Java 應用軟體系統,透過這 個架構會達成以上三點目標,來解決開發重複的控制流程與簡化複雜的程式撰 寫。

1.4 設計理念

本 研 究 的 設 計 理 念 是 開 發 一 個 通 用 的 介 面 系 統 (generic interfacing system),該系統提供手機操作介面的產生方法,比一般方式開發 Java 應用程 式,能夠節省系統開發者的開發時間與減少程式的撰寫。首先在 PC 上,系統開 發者會撰寫數個 Java 應用程式(Java AP,Java Application Program),以執行 不同的服務,而介面系統則提供一個介面(Interfacing Interface)以選取載入 其中一個 Java 應用程式,並且能夠結合手機的觸控辨識功能,由介面產生器 (interface generator) 自 動 產 生 手 機 操 作 的 介 面 程 式 (MIDlet AP , MIDlet Application Program),透過這個手機程式,使用者能夠利用手機與跨平台的應 用軟體進行遙控操作。在本論文的系統實作中,Java 應用程式的執行環境是在 PC 上的 J2SDK(Java 2 Standard Edition Development Kit)平台中運作,所產 生的手機 MIDlet 遙控程式,是用來操作 PC 上的 Java Content,由於 Java 具有 跨平台的特性,目前都能夠結合數位機上盒中 MHP(Multimedia Home Platform) 的 Java 規格(Java AWT/JMF Lite/Java TV),以及其他相容的嵌入式系統裝置, 因此未來都能在這樣的裝置上將介面系統的運作導入並且移植,如此要在跨平台

(16)

的環境上去開發手機遙控的服務,就又能簡化許多複雜的開發流程。

由 於 該 系 統 中 提 供 一 個 手 機 內 的 Java 程 式 之 介 面 產 生 器 (interface generator for MIDlet program),能夠為 Java 應用軟體產生手機操作的介面程 式,且利用 Java 物件導向的程式設計去規劃程式樣板,對 Java 應用軟體的開發 上,提供良好的重覆開發(reusable)特性,因此針對手機以及 PC 上的 Java 軟體 開發而言,程式設計師能夠簡化程式的撰寫,並提昇軟體製作上的生產力與維護 能力,這就是本研究主要的設計理念與提供的貢獻。

1.5 研究步驟

本研究必須先了解製作一個遠端控制的方法,及如何利用手持行動裝置來進 行遠端遙控操作,並利用裝置上辨識器(recognizer)的操作,制定對應遠端系統 的操作(keypad mapping)方式,並對目前手持行動裝置上的介面設計(interface generation)評估,進而規劃出整個系統架構、需求及實作。初步可以分為下列 幾個步驟: (1) 了解現存系統、及文獻探討: 本論文會先介紹現存遙控操作的應用。以 Rajicon System[1]而言,該系統 架構是藉由一個有限的行動裝置介面,對遠端 PC 的 GUI(graphic user interface)來進行遙控操作,該系統利用手機上的鍵盤辨識器(keypad recognizer)與巨集指令定義每一個操作,來操作遠端的 PC 介面,取代 PC 上 的 滑 鼠 操 作 。 此 外 還 會 介 紹 個 人 化 通 用 控 制 器 系 統 PUC (personal universal controller)System[3],該系統藉由下載功能描述的規格文件來 設計與產生手機呈現介面,在 2.2 到 2.4 節會說明本論文之遠端控制介面系 統與上述系統之不同處,另外在 2.6 節會進行 J2ME(Java 2 Micro Edition) 環境以及互動電視(interactive TV,iTV)和 Java TV 的討論,以期將來能 夠在數位電視平台上發展。

(2) 系統功能分析:

討論過目前現有的技術後,分析可否在現有的 Java Virtual Machine 環境 上,搭配手機上的 J2ME 版本,開發多媒體互動的服務。並建立一個能夠和 遠端 PC 的 Java Content 互動溝通的機制,規劃出手機上的遠端遙控操作介 面(remote control interface)及 PC 上介面系統(interfacing system)的 設計。 (3) 系統設計規劃與實作: 清楚目前需要建置的平台後,必須獨立規劃出新系統,依需求來設計相關 的 Java 物件與類別,定義相關的套件與功能規格,並提供系統使用者撰寫 抽象類別來定義程式樣板,如此能夠快速有效的開發一個 Java 應用軟體。 並設計介面系統產生器,能夠幫助系統設計師產生手機操作介面程式,進行

(17)

遠端遙控多媒體內容的服務。最後針對各個規劃的系統,選定開發工具進行 程式撰寫,並同時進行單元測試工作,詳細的系統功能分析及設計實作會在 第三章說明。 (4) 應用的實例與未來應用的評估: 針對手機介面平台,本論文在 PC 上利用其他研究生(林賢忠、楊博鈞)實際 開發了三個 Java 多媒體的應用程式,以提供手機端的使用者來進行實際遙 控的操作示範。在第四章會介紹這三個 Java 應用軟體,並根據軟體工程製 作的兩個維度:生產力及維護力,評估本論文所提供的介面系統來進行應用 軟體的開發,與一般的 Java 軟體開發,在這兩個維度上的比較,以及手機 應用程式的開發對於生產力與維護力等特定項目上的比較結果,我們會根據 質化的比較結果,來分析並評估他們彼此之間的好壞。另外在第五章結論及 未來展望裡,也規劃在其它能夠支援相同規格的 Java 平台上(例如:互動電 視)進行移植,而達到跨平台的橫向發展與技術擴增。

1.6 相關名詞

本研究相關名詞及參考範圍,敍述如下:

(1) 遠端控制介面架構(remote interface interfacing framework)

連結手持行動裝置上的辨識系統與PC上的Java應用軟體系統的介面架構,此 架構是由應用程式介面載入器、手機內的Java程式之介面產生器和Java AP 所組成。

(2) 應用程式介面載入器(application program interface loader)

將 Java 應用軟體系統的介面匯入,系統開發者能夠對畫面上的所有操作元件 制定巨集指令,並處理手機介面所傳送的命令。

(3) 手 機 內 的 Java 程 式 之 介 面 產 生 器 (interface generator for MIDlet program)

產生手機遠端操作介面程式與操作控制表單。 (4) 手機遠端操作介面(remote control interface)

一個手機遠端操作介面的程式,利用互動協定的機制來遙控 PC 系統上的 Java 應用軟體。

(5) 操作控制表單(control table)

藉由介面系統產生器,根據操作描述檔案產生控制表單,能夠描述 Java 應 用軟體介面上的所有操作元件,並給予每個元件一個控制命令。

(6) 操作描述檔案(operation script file)

描述應用軟體上定義的程式樣板與操作元件的項目,介面系統產生器能根據 該檔案來產生操作控制表單。

(18)

提 供 手 機 遠 端 操 作 介 面 與 PC 上 的 介 面 系 統 進 行 雙 向 溝 通 (two-way communication),包含一個 HTTP 的 OTA(on the air)連線和巨集指令的傳遞 控制。

(8) 巨集指令(macro commands)

藉由手持行動裝置上所提供的觸控辨識器系統來傳送指令,這些巨集指令會 對應於 PC 上的操作,以觸發控制 PC 上的 Java Content。

(9) 手持行動裝置

本論文採用的手機平台的規格是 Dopod CHT-9100 的 3G PDA Smart Phone, 有內建的 Windows Mobile 5.0 作業系統及 Java MIDlet 的應用管理程式。 (10)J2ME 與 J2SE

J2ME(Java 2 Micro Edition)為本研究採用在手機平台上開發 Java 程式的 函式庫版本,而 J2SE(Java 2 Standard Edition) 則是開發一般個人電腦 上的應用程式,J2ME 需要有支援 KVM(K Virtual Machine)的裝置環境來執 行,而 J2SE 則需要有支援 JVM(Java Virtual Machine)的裝置環境來執行。

1.7 章節說明

本論文分成五個章節來說明,第一章主要是介紹說明以及研究的動機,第二

章則是說明相關的研究、知識背景與文獻的探討,第三章則是系統架構與實作的 部份,並針對應用程式介面載入器(application program interface loader)、 手機內的 Java 程式之介面產生器(interface generator for MIDlet program) 及 Java 應用軟體三個模組,詳細說明一個遠端控制介面系統架構(remote control interfacing system framework)如何運作,以及強調本論文的研究與 技術特點,第四章是一些實際開發的 Java 應用服務說明,以及進行系統開發上 的評估,第五章是結論以及未來展望的探討。

(19)

二、 相關研究及文獻探討

2.1 現有多媒體互動的方式

隨著多媒體的內容的變化越來越多,許多數位內容的業者就希望能夠提供豐 富且生動的服務模式,來給一般普及的家電裝置或行動裝置上的使用者使用,所 以使用者與多媒體內容的互動方式就變得越多,互動模式是人們現實生活中不可 或缺的溝通行為,例如數位電視便提供了一個互動式服務,而互動數位電視 (interactive TV, iTV)就是提供數位電視互動服務的商品。現實生活中,人們 需要互動參與,需要商務交易,也需要資訊隨身化,互動電視即是實現此互動式 的電視商務與娛樂的重要工具,控制互動電視需要一個遙控器來操作播放的內 容,遙控互動的方式常見於各種行動裝置與家電用品中。以往較直接的人機介面 操作以及語音輸入操作等互動,比較受限在目標裝置的支援能力,以及不能夠提 供跨平台的應用服務,圖 2 是普遍的互動實例: 圖 2、普遍的互動方式 現存遠端控制的應用,針對圖 2(a)人機互動服務的例子,現有語音遙控的操作 (圖 3),針對圖 2(c)遙控數位電視的例子,現有如 Wii 的遊戲平台上利用動感式 遙桿對電視進行遙控的操作(圖 4),而圖 2(b)針對透過網路的操作,現有遠端登 入或是遠端視訊電話操作(圖 5): 圖 3、聲音控制 圖 4、遙控互動-Wii

(20)

圖 5、遠端操作-透過網路

由於行動計算系統的普及化,人們希望可攜性行動系統的功能越來越多,而逐漸 變成希望能夠與週邊的配備同步互動或遠端操作,目前由於手機與 PDA 的使用普 及化,甚至一般智慧型手機(Smart Phone)也已經結合了 PDA 的功能,和支援 Window Mobile 的作業系統,在特定的裝置上開發遠端互動與同步遙控的方式 就變得十分需要,可是開發控制操作的過程,往往需撰寫許多系統底層之原始 碼,才能達到互動,且當新的互動服務產生時,應用軟體必須重新開發。因此, 若能結合介面產生器(interface generator for MIDlet program)與手持裝置上 的辨識系統(recognizer)平台,使不同之多媒體系統皆能透過此操作平台自動產 生特定的互動遙控介面,如此將會使系統之開發與修改變得方便與快速。

2.2 現有的遠端遙控機制與 Rajicon System

一般遠端遙控(remote control)的方式很多,在 2001 年有文獻提出利用行 動裝置來遙控 PC 系統[2]的方式,作法是利用手機系統來操作 PC 上的圖形用戶 介面(Graphical User Interface,GUI),手機是一台行動裝置具有小的螢幕但 不能顯示相同的 GUI 作為 PC 的螢幕,因此需要分析行動裝置螢幕,來點擊螢幕 以遙控 PC 上的畫面,這是一個行動裝置遙控 PC 系統的提議方法。針對遠端遙控 而言,client-server 就是一個簡單架構,客戶端(client)透過 OTA(On the Air) 連線的方式,送出請求(request)給伺服器端(server),server 端接到請求後, 進行 parsing 並處理這個請求,然後將結果回應(response)給 client 端。這是 一種針對特定的裝置所開發的一個互動協定,建立這樣的遠端遙控機制,必須考 慮裝置運作的能力、能否支援多媒體的內容呈現以及相對應的遠端操作功能,當 目標裝置上進行遠端互動的功能越來越複雜時,控制器介面的設計以及互動的協 定,就變得較難去開發。

本研究探討如何透過一個遠端控制介面系統 (Remote Control Interfacing System)與 PC 上的 Java 應用程式(Application Program,AP),來產生手機操作 的介面程式,以便與多元化的多媒體內容互動。該介面系統包含一個手機內的

(21)

Java 程式之介面產生器(Interface generator for MIDlet program)與應用程 式介面載入器(Application Program Interface Loader)來產生手機操作程式。 一旦手機操作程式與手機的觸控辨識系統結合,使用者將能夠利用手機與跨平台 的應用軟體進行遙控操作,且透過這個介面系統,也能簡化 PC 上應用軟體的開 發程序,表 1 是現行使用手機遙控操作的特色。 表 1、手機遙控操作的特色 功能特色 搭配環境 紅外線遙控 透過紅外線遙控家用電器與設備。 電視遙控。 WiFi 網路 透過通用隨插即用(Universal Plug and Play,UPnP)技術[23],各種數位 電器、裝置,在連接上網路平台時, 可以互相自動搜尋並且連接。 搭配各種數位電器的數位 家庭環境。 藍芽連接 經過藍芽連接後,按下手機上的控制 按鈕,能操作特定的裝置。 機器人、電子寵物等。 現有的遠端遙控機制很多,本研究以 Rajicon System[1]為例子來做說明與 研究探討,該系統架構於 2002 年被提出,主要的功能是能以手機進行遠端遙控 操作 PC 上的畫面,手機普遍能夠進行的功能雖然如上表所示,但是比較侷限在 特定的目標裝置上,進行特定的操作功能,如果要進行許多複雜的操作方式,就 必須定義一套互動協定的規則,Rajicon System 利用巨集指令(macro commands) 來制定每一個操作,所以操作的功能越多,巨集指令就定義的越多,且不會不敷 使用,這是現有的手機遠端遙控機制與 Rajicon System 的操作機制最主要的不 同處,而使用這種方式制定操作,能夠使互動的功能不受裝置侷限。

在第三章會針對本研究所制定出的遠端遙控機制,來說明如何自動產生出互 動控制的協定,以及如何來有效的開發欲互動的多媒體內容,以下 2.3 節我們藉 由文獻上所記載的 Rajicon System 的運作,來說明如何利用 macro commands 來進行遠端遙控的操作。

2.3 巨集指令的制定方式-Rajicon System

採用手持行動裝置,例如手機或 PDA 等來進行遠端遙控的功能,主要會有三 個需要考慮的問題:(1)遙控介面(remote control interface)的設計(2)溝通的 協定(communication protocol)(3)裝置呈現能力(device capability),第(1)

(22)

項的探討會在 2.4 節來說明,我們先針對第(2)(3)項來討論,依據相關的文獻記 載[1],圖 6 中的 Rajicon System,以一個透過行動平台的介面來操作遠端 PC 的 GUI 架構,是一個遠端操作的例子,它不同於以往透過網路我們以本地端 PC 對遠端的 PC 進行遠端登入與操作,而是利用手機對遠端的 PC 進行操作與控制, 本地端的 PC 以手機來代替。

圖 6、Rajicon System Architecture

圖 6 的 Cellular Phone 中有一個 Cellular Phone Client 的模組,它是一 個 Java program,負責提供介面的呈現給使用者使用,來進行對遠端 PC GUI 的 操作,Web Server 包含了一個 CGI program,來處理接收到來自 Cellular Phone 所傳送的 messages 以及處理 HTTP 的協定,而 Web Server 中的 Rajicon Daemon, 是負責保存 Cellular Phone 和 Remote PC 的資訊,處理對應 Remote PC GUI 的 座標到 Cellular Phone 的介面上,而 Remote PC 中的 Picture Client,主要是 負責完成 mouse/macro commands 的對應,以及產生桌面影像給手機端。 該系統的操作方式是利用手機上的鍵盤識別功能(圖 10)進行 macro/key 輸 入(表 2~表 4),Rajicon System 的溝通協定是利用巨集指令(多種指令)的組合 來操作遠端 PC GUI,這樣就能在手機行動系統介面上,對應每個在 PC 介面上的 座標來操作,取代了滑鼠或鍵盤的操作方式,圖 7 是進行 zooming、圖 8 是進行 scaling 以及圖 9 是進行 scrolling 的呈現結果。

(23)

圖 9、Scroll Movement Mode

圖 10、The cellular phone's keypad 表 2、Keypad Mapping

(24)

表 3、Special Commands for key Input

表 4、Special Commands for Misc Operations

如何用 marco command 來進行對 remote PC 的操作,舉一個例子,假設使用者想 要在 PC 上 notpad 中輸入文字: Hello Word 根據表 3 則必須在手機的鍵盤上輸入: Hello?nWorld ,所以利用巨集指令的制 定就能建立一套溝通的協定。 針對第(2)項,溝通的協定(communication protocol)的探討,Rajicon System 中所使用的 macro command 對應操作會有下列幾種問題:

z 這種 command-based 的 protocol 來當作 interactive protocol 需要定義許 多的 macro commands,而利用手機鍵盤來輸入這些 commands,導致操作複 雜且不夠彈性。

z 有新的應用軟體產生時,這樣的操作協定又需重新量身訂作,維護力與可再 利用性不佳。

因 此 本 論 文 提 供 一 個 遠 端 控 制 介 面 系 統 (remote control interfacing system),能夠自動產生互動的協定,並且利用系統化的方式來為每一種操作制

(25)

定巨集指令,而該系統又能支援 Java 跨平台的裝置,且針對 Java 應用軟體上的 開發,提供良好的可再利用性(reusable),新的操作功能可以被快速並有效的重 覆開發,這樣的方式能夠變換出新的多媒體服務。

至於第(3)項,對於裝置的呈現能力,在 Rajicon System 中 Cellular Phone Client 是一個 Java program,它必須佔用較少的 memory 資源,才能與 server 端互動,並將遠端 PC 桌面影像呈現出來。針對裝置呈現的能力,需要針對使用 者 對 screen size 的 視 覺 觀 感 來 進 行 協 調 , 即 是 進 行 情 境 感 知 (context awareness)的協調,以呈現最佳的畫面,情境感知是指有能力去使用或擷取目標 裝置的情境資訊(context information),是一個能夠顯示關於使用者、載具、 環境以及那些可以增加使用者在異質行動裝置上互動的資訊觀念[15]。

2.4 遠端遙控介面的製作-PUC System

根據上節所討論,採用手持行動裝置來進行遠端遙控的功能,可能會遭遇的第 一個問題就是遙控介面(Remote Control Interface)的設計,因為隨著複雜的週 邊配備功能日益增加,在手持行動裝置開發對應的遙控操作介面,就變得相當困 難,在 2002 年Jeffrey Nichols,Brad A. Myers等人發表了Generating remote control interfaces for complex appliances的主題[3],根據這篇文獻的內容, 是提出個人化通用控制器系統PUC(personal universal controller)的方法,來 改良對於複雜設備上的圖形介面(graphical interface)與語音介面(speech interface) , PUC 是 一 個 能 夠 與 日 常 家 用 設 備 連 結 進 行 雙 向 溝 通 (two-way communication) 的 系 統 , 由 下 載 一 份 關 於 家 用 設 備 的 功 能 的 規 格 說 明 (specification)之後,並能自動的建立一個控制的介面,圖 11 是一個PUC系統 的架構圖以及藉由網路雙向溝通的方式,圖中PUC裝置需要透過網路(network) 將 目 標 裝 置 規 格 (device specification) 、 呈 現 狀 態 (state) 以 及 控 制 功 能 (control)下載,才能產生介面:

(26)

裝置規格的文件根據規格語言(specification language)(圖 12)[4]來描 述,PUC上的介面產生器(interface generator)會分析規格文件,根據這些資訊 能建立出一個群組樹(group tree)(圖 13),而裝置中有相同的功能相依資訊 (dependency information),能夠歸納在同一個group tree中,如此能夠根據規 格的文件,表達使用者對相關設備功能的了解,而介面產生器則能夠根據此群組 樹結構,來比較不同設備上的相依性(dependency),並建立出合適的操作介面。

圖 12、XML-based specification language

圖 13、A sample group tree for a shelf stereo with both a CD player and radio tuner 圖 13 是描述一個擁有CD播放器和廣播頻道調節器的書櫥音響,黑色的方塊是 代 表 群 組 (groups) , 有 文 字 描 述 的 白 色 方 塊 則 是 代 表 狀 態 變 數 (state variables),而mode variable是表示透過喇叭播放出來的來源。利用建立group tree來描述specification的方式,需要一個決策的演算法[5]來進行分析,主要 是利用decision tree的決策,根據這個研究的實驗比較結果[6],用這樣的介面 產生方式來建立介面比一般業者在目標裝置上所開發的真實介面來的較佳,介面 產生的方法不用考慮外視感覺(look and feel)的設計,僅將功能的描述表現在 介面上。另外要為複雜的硬體裝置,自動產生一個遙控的操作介面,需求上要有

(27)

一些規範[7],主要就是使用者的設計觀點,以及裝置上的應用能力考量,根據 使用者的設計來產生遙控介面的方式[10][12]以及考慮觸控式的遙控裝置能力 [9]或大型展示的裝置能力[11],能總結出使用者的介面需要,結合使用者的設 計觀點以及裝置協調特性[8]方能有較佳的呈現與充分表達功能的用途。 總結介面上的設計有許多的因素需要考慮,包括: z 針對特定的設備,需下載一份功能的規格說明(specification)之後,產生 器才能自動的建立一個控制的介面。 z 介面設計的演算法需要考慮使用者需求與裝置呈現,設計的方法繁瑣。 在本論文研究的範圍中,手機遠端控制介面的設計是開發在J2ME的平台上,開發 的系統能夠分析Java應用軟體介面上的操作元件,並自動產生描述檔案給手機內 的Java程式之介面產生器,以產生手機介面的操作,如此不需為特定的裝置下載 一份規格說明,在本研究中,我們為PC上的Java應用軟體,自動在手機上產生了 手機操作介面的程式,透過手機的觸控與鍵盤識別器(keypad recognizer)能夠 遙控操作PC上的Java Content。

2.5 手機上的介面產生器之介面產生方式

在本論文的研究目標中,是建構出介面產生器(interface generator),來 產生Java MIDlet手機程式,透過這樣的方式,最主要提供了三個特點:(1)免除 重複開發手機上的遙控協定,與減少PC上應用軟體的程式撰寫來完成遙控的操 作、(2)產生的手機應用程式(MIDlet)能在相容的KVM上執行,所以可以在不同的 裝置上運作,遙控的裝置不易受限,也易於和不同的辨識器(例如:鍵盤、觸控 板、麥克風、照相功能等)結合、(3)使用者不需利用巨集指令定義複雜的操作方 式,介面產生器會自動包裝互動的程序,因此使用者透過手機程式的介面進行遙 控操作時比較容易。

ㄧ般手機介面的產生方法,是需要考慮使用者的外視感覺(look and feel) 來設計[7][8][9],一般來說,製作手機的介面,可能需要介面的製作者利用編 輯工具,來編輯手機操作畫面,並自動產生對應的程式碼,本論文實作的手機內 的 Java 程式之介面產生器,如同一個剖析器(parser generator),不需要進行 編輯手機介面,而是剖析 PC 上的應用軟體之程式碼屬性,來自動產生描述檔案 與對應的手機操作程式,因此能夠遙控 PC 上相同之應用軟體,該介面產生器系 統是本研究針對所提出的問題描述上,所採用的解決方式,利用上述三種特色來 達到研究的目標。

(28)

2.6 J2ME 與 Java TV

Java 語言是由美國昇陽公司於 1991 年所設計出來的程式語言,主要是讓同 一種程式語言所寫出的程式,可以在不同的平台上運作,即所謂的跨平台的技 術,對於不同的平台也有相對支援的 API 可以使用。Java 平台在演進到了 Java 2 之後,Java 針對不同領域的需求被分為四個版本:J2EE(Java 2 Enterprise Edition)、J2SE(Java 2 Standard Edition)[24]、J2ME(Java 2 Micro Edition)[25] 和 Java Card。J2EE 是定位在伺服端的應用,J2SE 是定位在個人電腦上的應用, 這個版本是 Java 平台的核心,其提供了非常豐富的 API 用來開發一般個人電腦 上的應用程式,J2ME 則是定位在消費性電子產品的應用上,這個版本針對資源 有限的電子消費產品的需求,精簡化了核心類別的函式庫,並提供了模組化的架 構讓不同類型產品能夠隨時增加支援能力,Java Card 則是定位在智慧卡的應用 上,Java Card 平台將精簡型的 virtual machine 嵌入卡片內,使 Java 程式能 夠透過讀卡裝置下載至卡片內執行,如此一來就能延伸智慧卡的功能。這四種平 台的關係可以圖 14 來說明,而本論文所採用的開發環境是 J2SE 與 J2ME 的規格。 圖 15 至圖 18 是三種不同 platform 的支援元件[32] 圖 14、各種 Java 平台核心類別函式庫關係

(29)

圖 16、The Wireless Platform

圖 17、Digital Media Platform

圖 18、Developer Platform for Converged Services 資料來源:http://java.sun.com/javame/technology/index.jsp 在本論文中產生的手機 Java MIDlet 程式所應用的範圍,是屬於圖 15 中

(30)

Mobile phones & entry-level PDAs 所標示的部份,是在連接受限設備配置, 即 CLDC(Connected,Limited Device Configuration)的規格下,並有 KVM(K Virtual Machine)的支援來執行。而本論文在 PC 上所開發的應用程式,是屬於 圖 15 中在 High-end PDAs,TV set-top boxes,Embedded devices 所標示的部 份,是針對連接設備配置,即 CDC(Connected Device Configuration)組態的規 格下,並有 JVM(Java Virtual Machine)的支援來執行。

在網路問世以來,Java 曾一度被計畫用於有線電視的機上盒(settop box)市 場,但對於 Java 標準的 API 而言,運用在互動電視上相對過於累贅,早期對於 J2ME 的前身,Personal Java,已有新增了一些電視特有的功能,如影音串流、 同步等等,雖然 Personal Java 功能比完整 Java 少了很多,但基本的網路功能 還在,所以 Java TV 的實現,可藉由電視台隨著資料流將 applet 傳到電視機, 讓觀眾能夠與節目互動,在當時 Java TV 的方案提出過早且與電視營運商的溝通 有待商榷,但近年數位電視逐漸盛行,其中互動電視的腳步也已邁開。

互動電視(interactive TV, iTV)[14]係一透過地面無線、有線電視、電信

網路或衛星等寬頻網路(broadband network),傳輸數位化(digitalization)

的影音(video and audio)與加值服務(value-add services),乃科技匯流 (convergence)後之新媒體。利用有線電視的線路伸入每個家庭,加上所謂的 機上盒(Set-Top Box),收視者不再只是被動的接受訊息,而是可以與電視節目 互動。 互動電視的機上盒現階段隨著 MHP(Multimedia Home Platform)[28] 應運而生,其為一免費使用、開放標準的互動電視中介軟體,提供具有不同數位 內容、各種軟硬體的跨平台整合功能,在本論文第三章所探討的遠端控制介面系 統架構中,未來可以移植到一般具有相同 J2ME 規格支援的 MHP 數位機上盒 [21][22]的平台上,目前該系統是以 LCD 的裝置來支援 Java Content 的呈現, 但是對於大型數位電視及廣告的看板有支援相同規格的 KVM,則能實現遠端遙控 Java TV 的技術[13][29][30],本論文在第五章的應用開發實例中,也有一個模 擬廣告播放頻道的 Java TV Player,是根據 Java Media Framework[31]開發出 的播放器,因應將來能運用在有支援相容 J2ME 規格的互動電視上。

(31)

三、 系統架構設計與實作

3.1 遠端控制介面系統架構

在本論文實作的架構裡,我們夠結合手機觸控辨識功能並以 PC 上應用軟體 介面的架構,來產生手機操作程式,這個系統稱為遠端控制介面系統(Remote Control Interfacing System),系統概觀圖如圖 19 所示:

圖 19、Remote Control Interfacing System Overview

該系統是由應用程式介面載入器(application program interface loader)、手 機內的 Java 程式之介面產生器(interface generator for MIDlet program)和 Java 應用程式(Java Application Program,Java AP)所組成,本系統係針對 PC 環境上的 Java 應用程式,來進行介面載入的機制。系統開發者在 PC 上所開發的 Java AP,為了能夠與手機遠端操作介面進行遙控互動,必須撰寫底層的 AP 控制 程序(AP control statement),方能處理遠端操作介面所傳送的訊息,並觸發軟 體介面上的操作元件。在 1.2 節中曾經提及這樣重複的控制程序(control statement),在開發另一個新的 AP 時,就常常需要被重複納入到開發過程中, 變得較沒有彈性。根據圖 19 所示,應用程式介面載入器(Application Program Interface Loader)能夠將開發好的 Java 應用程式的介面載入,並將需要撰寫 的遙控程序(remote control statement)連結起來,如此這些要與手機互動的控 制程序,就可以完全委託應用程式介面載入器來產生,之後由手機內的 Java 程 式之介面產生器(interface generator for MIDlet program),進行程式碼產生 (code generation),來為應用程式產生出對應的手機操作介面程式,即是一個

(32)

Java MIDlet 程式,部署到手機中即可執行。如此使用者就能夠利用手機上的應 用程式與 PC 上的應用軟體進行遙控操作,而這樣的介面架構未來也可以擴增, 結合前端更多元的辨識器系統,例如結合 Wii 遊戲平台上的動感式操作遙控,麥 克風語音聲控及照相機取像辨識等。而由於 Java 具有跨平台的規格定義,未來 遠端控制介面系統也能夠移植到數位電視(DTV)、廣告看板(LCD)以及汽車的媒體 控制中心(Car Media Center),使介面的機制能夠達到多元化的應用。

在本系統中,我們將產生手機操作介面給遠端的操作者,以便對 PC 上的多 媒體內容進行遙控。使用 HTTP 的協定來進行連線及傳輸命令,當應用程式介面 載入器接收到該命令時會處理並觸發對應的操作元件。本論文應用實例中,利用 Java 語言開發 PC 上的多媒體程式,成為一個 Java 應用軟體並提供服務,透過 一個遠端控制的介面系統(interfacing system),來幫助該應用軟體產生手機程 式。本系統分為兩種使用者,一種為用戶端使用者(end user),另一種是系統端 使用者(system user),用戶端使用者是指操作手機介面系統的角色,能夠利用 手機鍵盤或觸控操作手機畫面上的圖示,並控制遠端 PC 的 Java 程式。而系統端 使用者則是操作介面系統的角色,能夠在 PC 端操作相關的 Java 多媒體程式。本 系統架構中的遠端介面系統共分為三個模組來建置,即應用程式介面載入器、手 機內的 Java 程式之介面產生器和 Java AP,3.2 節會詳細說明這三個部份的架構 及運作。

3.2 系統架構說明

圖 20、Remote Control Interfacing System Framework

圖 20 為遠端控制介面系統的架構圖(Remote Control Interfacing System Framework),該系統能夠進行連結 Java 應用軟體介面,幫畫面上的操作元件制

(33)

定 巨 集 指 令 (macro command) 產 生 控 制 程 序 及 進 行 程 式 碼 產 生 (code generator)。而這些運作過程分別由系統中的三個模組來完成,第一個模組為應 用程式介面載入器(application interface loader),第二個模組為手機內的 Java 程式之介面產生器(interface generator for MIDlet program)或是稱之 為介面產生器,第三個模組則是 Java 應用程式(Java AP)。應用程式介面載入器 會載入 Java AP 的介面,並包裝控制程序(remote control statement);手機內 的 Java 程 式 之 介 面 產 生 器 則 是 根 據 包 裝 好 的 控 制 程 序 , 操 作 描 述 檔 案 (operation script file)與控制表單(control table)資訊來產生手機 MIDlet 程式;而 Java 應用軟體則是會依據本論文第四章的應用實例中,已開發的三個 應用軟體來進行說明,分別是 Java 多媒體播放器系統,行動名片樣板編輯系統, 電子賀卡樣板編輯系統。以下是遠端控制介面系統架構中各個模組與子模組的相 關說明:

應用程式介面載入器(application interface loader) z 使用者介面(user interface)-載入 PC 上的 Java AP。

z 命令剖析器模組(command parsing module)-處理來自手機操作介面程式的 控制命令。

手機內的 Java 程式之介面產生器(interface generator for MIDlet program) z 程式樣板剖析器模組(code template parsing module)-分析應用程式的抽

象類別,根據該類別自動產生操作描述檔案與控制命令表單。

z 遠端控制程序(remote control statement)-處理 http 的連線與控制命令的 傳遞。

z 程式碼產生模組(code generation module)-根據操作描述檔案,自動產生 MIDlet 程式與執行 WTK 編譯器。

Java 應用系統(Java Application System)

z Java 多媒體播放器(Java Media Player)-能透播放影音多媒體串流的 Java 程式。

z 行動多媒體名片樣板編輯器-進行多媒體名片樣板套用的 Java 程式。 z 電子賀卡樣板編輯器-進行電子賀卡樣板套用的 Java 程式。

(34)

3.3 系統運作流程

(a)、Procedures for Interfacing a Java Application to a Remote Control Recognizer

(b)、手機介面操作程式的產生流程 圖 21、系統運作流程 遠端控制介面系統(以下簡稱為介面系統)的運作流程大致如圖 21(a),由 3.2 節的架構說明,可以將其正規畫為五個步驟,首先介面系統去載入一個 Java 應 用 系 統 (step1) 、 分 析 程 式 樣 版 (step2) 、 產 生 操 作 描 述 檔 案 與 控 制 表 單 (step3)、產生手機上的遙控程序(step4)與產生出一個 MIDlet 程式(step5)。而 將圖 23(a)放大來看,產生一個手機操作的介面程式就如圖 21(b)所示,在介面

(35)

系統載入完一個 Java 應用系統之後,應用軟體是根據系統開發者所定義的抽象 類別來撰寫,這些抽象類別是規範應用軟體的操作元件及屬性等,有了這個類別 來提供程式的樣板,手機內的 Java 程式之介面產生器會分析應用程式的抽象類 別,並根據該類別自動產生操作描述檔案(Operation Script File),之後 parsing 這份文件產生 Java AP 的控制命令表單畫面,其中控制命令是採用系統 化的方式,依 UI 上元件數目來給予每個操作元件一個控制命令,之後介面系統 儲存這份控制命令表單資訊,並進行 MIDlet 程式的產生,連同這份表單寫出, 系統最後會自動呼叫 WTK(Wireless Toolkit)編譯器來編譯產生 MIDlet 程式, 編譯完成後,使用者可將程式包裝成 jar 檔,即可放到 PDA 手機上執行手機遠端 操作介面的程式,並可以與 PC 上的 Java 應用軟體進行遙控的操作。

3.4 應用程式介面載入器

3.4.1 目的與功能

應 用 程 式 介 面 載 入 器 ( 以 下 簡 稱 為 載 入 器 ) 是 一 個 提 供 給 使 用 者 的 GUI(graphical user interface)介面,它是一個執行在 J2SDK 平台上的 Java 伺服器程式,系統端使用者(system user)可以利用應用程式介面載入器,來為 PC 上的 Java 應用軟體進行介面的載入,並處理來自手機操作介面程式的控制命 令,系統端使用者必須先制定 Java 應用軟體的程式樣板,及提供應用程式給載 入器系統,當載入器載入應用軟體的介面之後,會交由手機內的 Java 程式之介 面產生器來進行分析程式樣板並產生手機程式。

3.4.2 需求分析

應用程式介面載入器主要的功能需求有:(1)連結 PC 上的 Java AP 與(2) 處理來自手機操作介面程式的控制命令。連結 PC 上的 Java AP,是需要系統開 發者去撰寫程式的樣板,以及提供程式類別名稱給載入器,如此載入器才能載入 對應的 Java 應用軟體,並且委任手機內的 Java 程式之介面產生器來進行分析程 式樣板並產生手機程式,本論文中載入器程式是利用 Java Swing 的套件,繼承 其 JFrame 的外觀介面,而在第四章的 Java 應用實例中,制定的程式樣板是繼承 Java Swing 套件中的 JInternalFrame 介面[26]來規範 UI 的上的操作元件,未 來也可以擴增其他 Swing 或是 Awt 的介面套件,以下是應用程式介面載入器提供 連結的 Java AP 需求:

(36)

表 5、載入器與應用軟體介面元件的需求 載入器介面元件的需求 應用軟體介面元件的需求 javax.swing.JFrame javax.swing.JInternalFrame javax.swing.JMenuBar javax.swing.JButton javax.swing.JMenu javax.swing.JComboBox javax.swing.JMenuItem javax.swing.JRadioButton 載入器除了連結 AP 之外,它也是一個 Web Server 端的應用程式,需要接收手機 端的應用程式,利用 HTTP 的協定來進行連線及傳輸命令,手機端程式與載入器 系統會有一份命令表單的記錄,在 3.5 節會詳細說明如何去產生控制命令表單, 根據這份記錄,當載入器接收到命令時會進行比對,並觸發應用軟體上的操作元 件,來達到遠端遙控的功能。載入器是 Web Server 端的應用程式,表 6 是相關 的環境平台以及協定需求: 表 6、載入器的環境平台與協定需求

Web Server 的平台 Tomcat 4.1

作業系統 Windows XP 程式開發語言 Java、JSP 互動的協定 HTTP 1.1 編譯器環境 J2SDK 1.4

3.4.3 系統設計與實作

由上述的需求分析說明,應用程式介面載入器在實作上,可以利用一個 MVC(Model View Controller)的設計來描述它的功能模組,載入器的介面是用來 呈現介面系統的外觀,需要載入的程式檔案就是 Java 的應用程式,而載入器的 控制模組,就是進行剖析(parsing)手機端程式所傳輸的命令,圖 22 是一個 MVC 設計圖來描述載入器系統:

(37)

圖 22、應用程式介面載入器-MVC design pattern

應用程式介面載入器主要包含兩個子模組:使用者介面(user interface)、命令 剖析器模組(command parsing module)。使用者介面(user interface)是提供介 面的功能,能將應用軟體的操作畫面載入(loading),並連結(linking)所有的操 作元件,圖 23 是將第四章中所舉的三個 Java 應用程式畫面連結進來的結果,圖 24 是載入器系統所呈現介面畫面,在 Application 選項中,可以選擇載入系統 開發者已經開發完成的三個應用系統,在這三個應用系統中,開發者已經提供了 程式樣板的規範,及提供程式類別名稱給載入器,如此載入器才能載入對應的 Java 應用軟體。 圖 23、連結 PC 上的 Java AP

(38)

UI Display

Interfacing System

圖 24、應用程式介面載入器畫面中選擇載入的 Java 應用程式

載入器的命令剖析器模組(command parsing module),是進行剖析來自手機 應用端所傳遞的 http command,這個模組在進行剖析時,手機程式端與介面系 統端,都會有一份相同的命令記錄表單,這是由手機內的 Java 程式之介面產生 器所產生,在 3.5 節會說明手機內的 Java 程式之介面產生器如何產生控制命令 表單,以及在 3.8 節會說明控制命令表單的制定,系統利用巨集指令的方式,賦 予每個操作元件一個命令碼(command ID),有了這份表單記錄,當用戶端使用者 操作手機介面程式時,會根據這份記錄傳送 http command,而當剖析器模組接 受到 http command 時,會去比對這份表單資料,進而觸發 Java 應用系統上的操 作元件(trigger operation event),如同用戶端使用者在 PC 上操作 Java 應用 軟體的畫面,而這樣的操作就改以利用手機來進行遙控,圖 25 是載入器處理來 自手機操作介面程式的控制命令。

MIDlet Program

(39)

當載入器連結一個 Java 應用程式(Java AP)後,它會記錄所有的操作元件資訊, 圖 25 是以第四章中的行動名片樣板編輯器為例,當應用系統的畫面載入進來之 後,手機內的 Java 程式之介面產生器會自動產生控制命令表單(control table),並由載入器來將表單畫面呈現出來,畫面的內容記錄了所有的操作元件 資訊,而由手機內的 Java 程式之介面產生器所產生的手機程式(MIDlet program),也會有這份相同的表單記錄(table record),記錄對應的操作元件命 令碼,如此當用戶端使用者在手機操作介面程式中按下背景 1(bkg_1)的圖示切 換(play Btn_1),對應的命令碼 001 就會傳送給伺服器端的應用程式介面載入 器,載入器會進行命令剖析及觸發對應的按鈕操作,將行動名片的背景進行切換。 以上我們歸納使用者介面(user interface)、命令剖析器模組(command parsing module) 與 Java 應用系統(Java AP)的運作:

z 使用者介面(user interface) 1. 連結 AP 程式。

2. 載入 AP 的操作畫面。

z 命令剖析器模組(command parsing module) 1. 處理來自手機操作介面程式的控制命令。 2. 觸發 AP 的操作元件。

z Java 應用程式(Java AP)

1. 提供介面外觀與版型呈現給載入器系統。 2. 提供操作元件的事件處理程序給載入器系統。

3.5 手機內的 Java 程式之介面產生器

3.5.1 目的與功能

手機內的 Java 程式之介面產生器是遠端介面系統的核心元件,其主要的功能 如下:(1)分析應用程式的抽象類別,(2)根據該類別自動產生操作描述檔案,(3) 自動產生 Java AP 的控制命令表單畫面,(4)根據操作描述檔案自動產生 MIDlet 程式。抽象類別是須由系統開發者依照程式樣板的規範去撰寫的,每一個需要利 用介面系統進行連結的 Java 應用軟體,必須撰寫一個抽象類別,並提供相對應 的抽象方法以及實作,將來利用這個抽象類別來當作程式樣板,可以進行重複開 發,提供開發新的軟體應用服務。手機內的 Java 程式之介面產生器會先進行剖 析(parse)這個抽象類別,並且產生操作描述檔案(operation script file),操 作描述檔案會描述程式樣板上所定義的操作項目,之後產生器會在介面系統的畫 面產生 Java AP 的控制命令表單畫面,產生器自動產生 MIDlet 程式,將這個表 單以及 MIDlet 程式包裝為一個 jar 檔,就能安裝在手機上並執行。

(40)

3.5.2 需求分析

手機內的 Java 程式之介面產生器主要負責的功能有以下四個步驟: 1. 分析應用程式的抽象類別。 2. 根據該類別自動產生操作描述檔案。 3. 自動產生 Java AP 的控制命令表單畫面。 4. 根據操作描述檔案自動產生 MIDlet 程式。 第一個步驟要進行分析應用程式的抽象類別,這個類別是用來描述程式的樣板, 該類別主要提供一個可以繼承的物件及方法,須由系統開發者進行撰寫來定義。 相關的物件成員說明如下 7~9: 表 7、程式樣板採用的開發元件 GUI 類別 javax.swing.JInternalFrame 操作元件型態 javax.swing.JButton javax.swing.JComboBox javax.swing.JRadioButton 操作元件描述 java.lang.String 操作元件抽象方法 protected function 表 8、操作元件項目及說明 操作元件型態 操作元件說明 javax.swing.JButton 提供 UI 上按鈕元件的操作 javax.swing.JComboBox 提供 UI 下拉式列表的操作 javax.swing.JRadioButton 提供 UI 上單一選項按鈕的操作 表 9、操作元件描述的內容 操作元件描述項目 描述的內容 操作元件的標籤 利用 string 描述標籤文字 操作元件的圖示(jpg ,gif) 利用 string 描述圖示檔案路徑 目前本論文規範出一個常用的 GUI 程式樣板,開發者需撰寫一份抽象類別來描述 應用系統的程式樣板,該 GUI 程式樣板中制定較常用的三個 java 操作元件,分 別是按鈕元件(javax.swing.JButton)、下拉式列表(javax.swing.JComboBox) 及單一選項按鈕(javax.swing.JRadioButton)。開發者在抽象類別中需利用字串 (java.lang.String)定義操作元件的描述,元件的描述內容包括:操作元件的標 籤文字、操作元件的圖示檔案路徑、及定義每個操作元件對應的抽象方法,提供 開發者進行實作。

(41)

第二個步驟是根據抽象類別來產生操作描述檔案,產生器會剖析抽象類別所 定義的成員及屬性,並產生一個操作描述檔案(operation script file),這份 文件會描述程式樣板上所定義的操作項目,描述的內容如下:

z 操作元件的項目(button string/combobox string/radiobutton string) z 操作元件的標籤文字內容(label text) z 操作元件的圖示檔案路徑說明(icon url) 當操作描述檔案產生後,第三個步驟就是自動產生 Java AP 的控制命令表單畫 面,這個表單是以多媒體的資料內容來記錄,並呈現在介面系統的連結畫面上, 資料內容包括文字描述還有按鈕圖示描述。表 10 是控制命令表單的欄位描述: 表 10、控制命令表單的欄位描述 Operation 操作元件項目的名稱 Icon 操作元件的按鈕圖示 Label 操作元件的文字內容 經過步驟一到步驟三之後,手機內的 Java 程式之介面產生器就能根據控制 表單與操作描述檔案來產生 MIDlet 程式,產生器會呼叫 WTK 編譯的模組,進行 編譯程式並產生 class 檔,使用者將 class 與資源檔案進行壓縮成 jar 檔,就可 以部署到手機上執行,表 11 是 WTK 的環境需求。

表 11、WTK 的開發環境需求

開發平台 J2ME Wireless Toolkit

平台版本 Version 2.2 作業系統需求 Windows XP 作業系統版本 5.1 Java Version 1.4.2_01 系統開發者進行撰寫程式樣板的規範,會在 3.6 節詳細說明抽象類別的架構,並 且會說明如何利用程式樣板來達到開發新的軟體應用服務,這樣重複利用程式樣 板來開新的服務,可以減少開發者的負擔並節省開發的時間,在 3.7 與 3.8 節會 分別說明操作描述檔案的功能以及控制命令表單的制定,最後 3.9 節會介紹 WTK(Wireless Toolkit)編譯器的功能。

(42)

3.5.3 系統設計與實作

圖 26、手機內的 Java 程式之介面產生器架構圖

圖 26 是手機內的 Java 程式之介面產生器的架構圖,該模組的設計中包含三個子 模組,分別為:

1. 程式樣板剖析器模組(code template parsing module)-分析程式樣板產生 操作描述檔案與控制命令表單。

2. 遠端控制程序(remote control statement)-處理 http 的連線與控制命令 的傳遞。

3. 程式碼產生模組(code generation module)-產生 MIDlet 程式並執行 WTK 編譯器。

程式樣板剖析器模組是進行分析應用程式的程式樣板,也就是依據系統開發者所 撰寫的抽象類別進行剖析,之後產生一份操作描述檔案,用來描述操作項目及相 關屬性,此時介面系統會在畫面上呈現一份以多媒體資料記錄的控制命令表單, 而程式碼產生模組就能根據這些資訊進行 MIDlet 程式的產生,遠端控制程序是 由一支 Java 伺服器程式(Java Servlet)所控制,它是一個在伺服器中固定執行 的 CGI(Common Gateway Interface)程式,程式碼產生模組進行完剖析後,會將 這支 CGI 程式連結進來並且產生對應的手機遙控程序,所以在軟體上需要重複開 發的控制程序(control statement),就可以委任給手機內的 Java 程式之介面產 生器來完成,之後程式碼產生模組產生出 MIDlet 程式後,即可呼叫 WTK 編譯器 進行程式編譯,使用者就可以包裝程式碼成為一個 jar 檔,並且安裝在手機上執 行。 在程式樣板剖析器模組中進行程式樣板的剖析過程中,需要處理兩個階段的 工作,第一個階段是分析抽象類別來產生操作描述檔案(operation script file),操作描述檔案是一份描述應用系統畫面上的所有操作元件(operation components),如圖 27 的呈現。另外根據這份文件,程式樣板剖析器模組會在介

(43)

面系統的畫面上呈現對應的控制表單(control table)。 圖 27、剖析器模組的運作流程 第二個階段是轉譯遠端控制程序,而遠端控制程序是一個伺服器端的 CGI 程式, 會在進行程式碼產生(code generation)時被程式碼產生模組連結進來。主要的 設計功能包括: 1. 繼承一個 HTTP 的 servlet 類別(HttpServlet) 2. 提供 Get 與 Post 的方法(doGet/doPost method) 3. 處理 HTTP 的 request 訊息(HttpServletRequest 物件) 4. 處理 HTTP 的 response 訊息(HttpServletResponse 物件)

遠端控制程序會提供手機端程式與介面系統間的溝通互動,程式碼產生模組會將 這段遠端控制程序轉成一支特定程式,提供手機操作介面系統來進行遠端遙控的 工作,所以針對每個 PC 的 Java 應用軟體,這份相同的 AP control statement, 就可以不需要經由系統開發者在進行開發,只需要處理接收到的命令並呼叫觸發 的物件方法即可,如此進行程式碼產生時,可以取代掉重新撰寫控制程序的工作。 圖 28 是一個遠端控制程序的主要程式片段說明:

(44)

圖 28、遠端控制程序的 servlet 程式 而程式碼產生模組所要設計的功能,就是提供程式碼比對,並且將特定的操 作元件,描述轉成一個手機介面上的操作元件,會進行比對抽象類別的屬性及成 員,分析抽象方法,轉譯成手機操作元件的事件處理(event handler),相關的 設計功能步驟如下: 1. 分析 abstract 類別名稱資訊(圖 29) 2. 產生視窗標題名稱(Frame Title) (圖 29) 3. 分析操作元件屬性的字串值(圖 30) 4. 提供操作元件圖示資源檔(.png) (圖 31) 5. 產生手機介面的操作元件(圖 32~圖 34) 6. 產生操作元件事件處理程序(圖 35) 在 3.4.1 小節,系統端使用者必須先制定 Java 應用軟體的程式樣板,及提供應 用程式給載入器系統,系統開發者需要在應用程式介面載入器的程式中,進行程 式樣板的資訊設定,所以程式碼產生模組才能根據這些設定資訊,分析抽象類資 訊並產生 MIDlet 手機程式,圖 29~35 分別是陳述第 1-6 項的設計內容:

(45)

圖 29、分析 abstract 類別名稱資訊與設定視窗標題名稱(Frame Title) 程式產生的第一與第二步驟,是分析出應用軟體所繼承的抽象類別名稱,設定名 稱資訊與設定視窗標題名稱,圖 29 所示。 圖 30、分析操作元件屬性的字串值 第三步驟則是需要分析操作元件屬性的字串值,如圖 30 所示,在擷取程式樣板 剖析器模組所產生的控制表單的資訊後,這些操作元件資訊會相對的被轉譯成手 機上不同的操作元件。

數據

圖 26 是手機內的 Java 程式之介面產生器的架構圖,該模組的設計中包含三個子 模組,分別為:
圖 28 是一個遠端控制程序的主要程式片段說明:
圖 38 是描述操作描述檔案與控制表單的關係,而在 3.5.3 節中,程式樣板 剖析器模組(code template parsing module)在剖析完應用程式的樣板後,會產 生操作描述檔案(Operation Script File)。
圖 59 為 Java 多媒體播放器系統的操作畫面,用以說明相關的操作元件。
+5

參考文獻

相關文件

‡圖形使用者介面( graphical user interface GUI). ‡圖形使用者介面( graphical user

 教師介紹投委會的「收支管家–錢家有 道」手機應 用程式 , 方 便學生實 踐所

• 下面介紹三種使用greedy algorithm產生minimum cost spanning

All necessary information is alive in IRIS, and is contin- uously updated according to agreed procedures (PDCA) to support business processes Data Migration No analysis of

Windows/ Linux/ Mac 各種平台的開發套件,使我們能夠透過各種平台來開發 Android 軟體,所有的 Android 應用程式都是使用 Java

介面最佳化之資料探勘模組是利用 Apriori 演算法探勘出操作者操作介面之 關聯式法則,而後以法則的型態儲存於介面最佳化知識庫中。當有

在軟體的使用方面,使用 Simulink 來進行。Simulink 是一種分析與模擬動態

近年來,國內積極發展彩色影像顯示器之產業,已有非常不錯的成果,其中 TFT-LCD 之生產研發已在國際間佔有舉足輕重的地位,以下針對 TFT-LCD 之生