• 沒有找到結果。

EHOME: 電子家庭雛型之設計與實作(1/3)─子計畫二:嵌入式 JAVA 及 JINI 系統之設計與實作

N/A
N/A
Protected

Academic year: 2021

Share "EHOME: 電子家庭雛型之設計與實作(1/3)─子計畫二:嵌入式 JAVA 及 JINI 系統之設計與實作"

Copied!
5
0
0

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

全文

(1)

行政院國家科學委員會專題研究計畫期中報告

eHome:電子家庭雛型之設計與實作

子計畫二

嵌入式 J ava 及 J ini 系統之設計與實作 (1/3)

計畫類別:¨個別型計畫  þ整合型計畫

計畫編號:NSC 89-2218-E-002-074

執行期間:89 年 8 月 1 日至 90 年 7 月 31 日

計畫主持人:陳俊良

計畫參與人員:徐國偉、楊禎泓、

       劉家瑋、吳介元、劉品宜

本成果報告包括以下應繳交之附件:

¨赴國外出差或研習心得報告一份

¨赴大陸地區出差或研習心得報告一份

¨出席國際學術會議心得報告及發表之論文各一份

¨國際合作研究計畫國外研究報告書一份

執行單位:國立台灣大學資訊工程學系

中 華 民 國 九十 年 五 月 二十五 日

(2)

行政院國家科學委員會專題研究計畫期中報告

eHome:電子家庭雛型之設計與實作— 子計畫二

嵌入式 J ava 及 J ini 系統之設計與實作 (1/3)

Design and Implementation of Embedded J ava and J ini System

計畫編號:NSC 89-2218-E-002-074

執行期限:89 年 8 月 1 日至 90 年 7 月 31 日

主持人:陳俊良 國立台灣大學資訊工程學系

email: clchen@csie.ntu.edu.tw

計畫參與人員:徐國偉、楊禎泓、劉家瑋、吳介元、劉品宜

一、中文摘要 本計劃是屬於國科會 3C 整合科技群 體研究計劃「eHome:電子家庭雛型之設 計與實作」的一個子計劃。eHome 整合型 計劃的總目標在於探討建構一個電子家庭 必要的核心技術。我們預期一個電子家庭 將有很多的家電,而這些家電是由嵌入式 系統來控制的。這些嵌入式系統的關鍵技 術至少包含作業系統、Java、WAP 以及智 慧型代理人程式。本子計劃負責的是 Java 與 Jini 部分。 這是三年期計畫的第一年期中報告。 關鍵詞: Java 系統、Jini 系統、嵌入式系 統、智慧型家電。 Abstract

This is a sub-project of "Design and Implementation of eHome Prototype." The goal of eHome project is to study the key technologies when building an electronic home. We expect an eHome consists of many intelligent appliances, which are con-trolled by embedded systems. The required key technologies of those embedded systems at least include OS, Java, WAP and agent. This sub-project focuses upon Java and Jini.

This is the report of the first year.

Keywords: Java system, Jini system,

em-bedded system, intelligent appliances. 二、緣由與目的 eHome 計畫 本 計 畫 是 3C 整 合 科 技 研 究 案 「eHome:電子家庭雛型之設計與實作」 之子計畫二。eHome 計畫的目的是想要探 討建構一個電子家庭必要的核心技術。為 了有明確的努力方向,我們勾勒的實際應 用敘述如下:我們可以在離家十萬八千里 遠的地方,用一個具有 WAP (Wireless Application Protocal) 能力的無線手機,利 用上頭的 WML 瀏覽器,透過 GSM 系統 連結上大哥大基地台,再透過無遠弗屆的 internet 連結回家裡的 eHome Center(可能 是一個 Set-top Box)。eHome Center 對外 有個 WWW 伺服器提供 WML 網頁給手 機,讓我們在網頁上下命令傳回家。eHome Center 本身有夠強的 agent 能力,可以協 助命令的執行。eHome Center 對內則用無 線的方式與具有 Java 與 Jini 能力的家電連 結。最後,這些家電聽懂了而且正確執行 了我們的命令。 eHome 計劃的重點在具有 WAP 能力 的手機、具有 agent 能力且可對內對外聯 絡的 eHome Center、以及具有 Java 與 Jini 能力的各式 IA。整個 eHome 計畫包括了 OS,Java,WAP 以及 agent 四大部分。本 子計畫所涵蓋的是 Java 部分。

Java 與 Jini 在 eHome 計畫的角色

我們打算把 Java [1-3] 與 Jini [4] 技 術用在底下這些地方:

首先,我們可以讓 WAP enabling 的手 機也可以是 Java enabling。WAP 手機需要 附加很多的軟體,比如說 WML 瀏覽器。

(3)

假如說這些軟體可以用 Java 來發展,這些 軟體將可以與平台切開來,達到跨平台的 效果。要有如此效果,我們需要一個可以 在手機平台上執行的 Java Virtual Machine (JVM),以及與 WAP 有關的 Java pack-ages。 其次,我們打算讓各式家電都內含一 個嵌入式 Java 系統。跟前頭一樣,立即可 以看到的好處是跨平台;在面對多樣性的 家電時,這個優勢是十分值得去追求的。 同理,我們要的是一個可以用在家電平台 上的 JVM,以及與家電控制有關的 Java packages。 更重要的是,我們希望可以讓 Java enabling 的家電更進一步可以是 Jini ena-bling;以達到 universal plug and play 的效 果,真正成為「智慧型家電」。要達到此 一目標,除了 eHome Center 也必須要引用 Java 技術外,更重要的關鍵是如何把 Jini 技術引用到功能有限的嵌入式系統。 三、結果與討論 本子計劃的任務是提供 eHome 整體 環境所需的 Java 系統,包含 eHome Cen-ter、手機以及家電。底下先敘述現有的 Java 系統,再論及我們的看法、決定以及已經 完成的工作項目與成果。 現有 Java 系統 目前 Sun 公司所提供的 Java 平台由大 到小有很多種。所謂的 Java 平台包含了 Java 最核心的軟體,也就是 Java 虛擬機 器,和搭配的 API。

J2EE (Java 2 Enterprise Edition) [5] 是供大型伺服器用的,配置的虛擬機器引 用了 HotSpot 的技術。J2SE (Java 2 Stan-dard Edition) [6] 的適用對象是一般的個 人電腦或筆記型電腦,配置的虛擬機器就 是使用最廣的 JVM。這兩級產品所需的記 憶體空間是由數十 Mega 起跳的,顯然不 太適合 eHome 計劃內的嵌入式系統使 用,即使對 eHome Center 想要建構的 Set-top Box 也可能都嫌大。

J2ME (Java 2 Micro Edition) 才是供 嵌入式系統用的。J2ME 目前有兩個版 本。CDC (Connected Device Configuration)

[7] 設想的應用範圍為較高階的嵌入式系 統,比如影像電話、Set-top Box、較高價 位的個人數位助理 (PDA) 等。配置的虛 擬機器叫 CVM,原則上是在 32-bit 微處理 器上執行,所需的記憶體空間大約個位數 的 Mega。推出的時間是 2001 年初。

CLDC (Connected, Limited Device Configuration) [8] 名字多了 limited,意思 是所需的硬體平台比 CDC 有更多的限 制。設想的應用範圍為較低價位的 PDA、 手機等。原則上這些裝置是由電池供電 的,在 16 或 32-bit 微處理器上執行,所需 的記憶體空間小於 512K。它的虛擬機器叫 做 KVM,命名的理由是所要的記憶體只 需以 Kilo 為單位。

比 J2ME 更小的就是 Java Card [9] 了。這是用在智慧卡 (smart card) 或是手 機 SIM 卡上的 Java 系統。最好記憶體可 以小到 32K 以下,64K 大概就是最上限 了。利用的是 8 或 16-bit 微處理器。它的 虛擬機器叫做 JCVM。 手機和家電的 Java 系統 本子計畫第一年的重點在於提供手機 和家電所需的 Java 系統。手機和家電一般 都歸類於嵌入式系統。一般而言嵌入式系 統都會有一些限制,記憶體不夠大,CPU 不夠快等等。以 Sun 公司定義的 Java 系統 而言,很明顯的,J2ME-CLDC 和 Java Card 是可能的選擇。 嵌入式系統硬體的限制將會使得它的 軟體被綁手綁腳。我們必須要有能力根據 特 殊 的 應 用 對 軟 體 系 統 做 特 殊 的 微 調 (fine tune)。當然,前提是我們必須要非常 了解軟體系統。 軟體系統的取得不外乎拿別人的來移 植 (porting) 或是自製。我們評估目前的 大環境以及自己(指台大資訊系執行此計 畫的團隊也指台灣相關的業界)的能力, 我們主張,對比較複雜的軟體移植加上改 寫是比較可行的方式,比如 J2ME-CLDC 的 KVM。做這個決定事實上是有一點無 奈,我們自忖我們還搶不到世界龍頭的角 色。在目前科技無國界的環境下,你不是 龍頭就只好跟著龍頭走。我們對自己的期 許是要跟的夠快夠好。所謂的夠快夠好指 的是,我們可以在取得別人新版本的軟體

(4)

後,在最短時間內移植甚至改寫的更適合 我們的特殊需求。要達到此目的,基本的 紮根工作不可免,比如詳細剖析相關軟 體,即使是稍舊版本也無所謂。 在執行本計畫之前幾年,我們已經累 積了不少 JVM 的經驗。以這些經驗為本, 這個年度我們剖析了 KVM。甚至把這些 成果轉移到教學上,希望讓更多沒有參與 本計畫的同學也可以對 KVM 有基本的認 識。以累積的經驗與人力,在往後計畫期 間,我們將能勝任移植與改寫 KVM 到目 標平台的工作。預計這是第二年的工作。 至於對比較小的軟體,我們主張應該 要擁有獨立開發的能力,比如 JCVM。理 由除了規模小的軟體自製門檻較低外,另 一理由是:小軟體是對小系統,小系統可 能必須斤斤計較記憶體的 byte 或是 CPU 的 clock,或者說經常會非常的平台相依。 導致的結果是必須極端的微調。既然如 此,不如擁有自製的能力與產品。 這個年度,我們實作了一個比標準 JCVM 還要輕量級的 JCVM。對手機或是 較高檔的家電而言,這個 JCVM 或許太簡 單了。但是對較低階的家電,比如電燈、 烤麵包機,應該夠用了。 STK 程式的撰寫

STK (SIM Tool Kit) 是手機 SIM 卡的 一套標準介面。原本的 SIM (Subscriber Identification Module) 卡只是一片晶片, 它的功能,如同全名,只是用來識別手機 門號的。隨著無線通訊技術的演進,越來 越多的功能被加到這一片晶片上。比如, 資料儲存(電話簿)、語音郵件、短訊、 預付卡功能。短期間內更希望可以被賦予 電子商務或是網際網路應用的功能。在添 加這麼多功能的情況下,為了可以讓任意 廠牌的手機都可以搭配任意卡廠出品的 SIM 卡,有必要訂定一個標準。STK 就是 這樣的一套標準介面。雖然說,在標準裡 定沒有規定介面下的 STK 要如何實作,但 是以目前的局面來看,Java Card 很有可能 是最後的贏家。 STK 程式的撰寫,事實上並沒有規劃 入原計畫書中。不過基於底下兩個理由我 們有必要執行這一部份的工作: 首先,我們意識到 Java Card 的程式與 一般 Java 程式,事實上是有所不同的。為 了確切掌握 Java Card 程式的特性,以便開 發 JCVM 時可以更掌握住關鍵點,我們有 必要學習 Java Card 程式的撰寫。STK 程 式就是以 Java Card 程式為本的。 另外,這一年來可以看到 STK 有點可 以和 WAP 平起平坐的趨勢。eHome 計畫 的手機通訊方面,原本規劃的是 WAP, WAP 子計畫 [10] 目前也順利進行中。但 是,讓 eHome 計畫多提供一種手機通訊的 選擇是可以讓整體計畫的成果加分的。 在這個年度裡,我們在 Bull 公司 STK 模擬器上學習 STK 程式的撰寫。程式的功 能是:使用者可以把控制家電的 Java Card 程式下載到手機,利用上頭的 JCVM 執行 該程式以打包要控制家電的信號,最後再 送回家裡的伺服器完成家電的控制。 所謂家裡的伺服器目前只是用一個獨 立的 PC 來模擬,應該儘早與 Agent 子計 畫 [11] 的伺服器相結合。另外,脫離 STK 模擬器的階段而把程式灌入真正的 SIM 卡進而使用到真正的手機,也是很實際很 值得去做的事。往後兩年,我們會在這上 面多下工夫。

eHome Center 的 Java 系統

在規劃中,,這是第二年的工作項目, 不過我們已做了一些先期的準備工作。 eHome Center 應該是一個 Set-top Box。對 外,它是一個 WWW 或是 WML 伺服器, 也需負擔 WAP Gateway 的角色。對內,它 是家電的總管,利用無線的方式與具有 Java 與 Jini 能力的家電連結。它還要有夠 強的 agent 能力以協助控制家電。 在計畫進行之初(2000 年下半年), 對 eHome Center 所需 Java 系統的選擇, 有點陷入不上不下的尷尬情境。J2SE 的 JVM 能力絕對足以負擔 eHome Center 之 所需,但是數十 Mega 的記憶體需求對一 個 Set-top Box 而言卻是沉重的負擔。 J2ME-CLDC 的 KVM 小是夠小,但是它沒 有 reflection,也沒有 serializable 的能力, 意 味 著 它 沒 有 RMI (Remote Method Invocation),更進一步也將沒有 Jini 的能 力。另外,網路的能力也不足。我們已做 了在第二年把 JVM 瘦身到符合 eHome Center 需求的準備。

(5)

今年(2001 年)初,J2ME-CDC 正式 發表。原先 KVM 所沒有而預期 eHome Center 該有的,CVM 都補回來了。CVM 應該就是 eHome Center 所要的。跟 KVM 一樣,這個年度我們也剖析了 CVM。 網路上有人說:「CVM is JVM」。這 句話的意思當你剖析過 JVM 以及 CVM 你 才會充分體會。CVM 的程式碼很明顯可 以看出來是用 JVM 改過來的。那麼它們的 差異在哪裡?在 CVM 程式碼裡,你可以 發現到有非常多的 compiler directive。當 移植到不同硬體平台時,藉著控制編譯時 的參數,可以產生出不同需求的 CVM。 OS 子計畫 [12] 已擇定採用 Strong Arm 加上 Linux 為 eHome Center 的平台。 另一方面,目前的 J2ME-CDC 參考版本就 是在 Linux 上面發展的。好像在這邊我們 的工作將變得非常簡單。事實上,也不然。 在往後的工作中,我們打算以我們剖 析過 CVM 的經驗為本,先嘗試活用編譯 時的參數,希望可以讓移植的工作做得非 常靈活。硬體平台一改變,我們可以在最 短時間把最適合的 CVM 製造出來。我們 希望也可以累積改寫 CVM 的能力,以防 萬一將來 eHome Center 平台的限制更嚴 苛時(比如,考慮到成本),我們可以進 一步對 CVM 做瘦身工作。 Jini 與家用影音網路 原本計畫的第三年,本子計畫打算讓 家電擁有 Jini 的能力,讓他們更有智慧。 本年度我們也做的一些先期的準備工作。 Jini 系統這一年來稍稍沉寂,與它所 需的軟硬體規格過高不易整合入現有嵌入 式系統有關。倒是與它相類似由 Sony 等 家 電 大 廠 主 導 的 HAVi (Home Audio/Video Interoperability) [13] 值得注 意。HAVi 底下的硬體用到了 IEEE 1394, 軟體用到了 Java。1394 提供了高速傳輸影 音資料的可行性,Java 讓它容易跨平台。 原計畫書中我們設想的家用網路可以 由 eHome Center 來「控制」各個家電。這 一年來,我們又認知到,在家用網路走的 不止於控制信號,應該還會有「資料」。 所謂的資料主要是影音資料,它們的特點 是流量很大。一個理想的 eHome 應該也把 影音資料流考慮進去。HAVi 是一個可以 選擇的標準,而且跟 Java 有關,所以適當 引用 HAVi 到計畫裡是可能的思考方向。 四、計畫成果自評 本文完成於計畫第一年結束前兩個 月,不過第一年預計該完成的項目大致均 已完成,某些部分還稍有超前。 在第一年計畫執行期間,主客觀環境 均有所變異,我們也不斷思考剩下兩年該 如何調整才能使計畫更成功。除了原定工 作項目外,預計我們也會投注心力在 STK 以及 HAVi 的相關研究上。 五、參考文獻

[1] Sun Micro., Java, http://java.sun.com

[2] J. Gosling, B. Joy, G. Steele and G. Bracha, The Java Language Specifica-tion, 2ndEd., Addison-Wesley, 2000. [3] T. Lindholm and F. Yellin, The Java

Virtual Machine Specification, 2nd Ed., Addison-Wesley, 1999.

[4] Sun Micro., Jini Connection Technology,

http://www.sun.com/jini

[5] Sun Micro., Java 2 Platform, Enterpise Edition, http://java.sun.com/j2ee

[6] Sun Micro., Java 2 Platform, Standard Edition, http://java.sun.com/j2se

[7] Sun Micro., Java 2 Platform, Micro Edition, Connected Device Configura-tion, http://java.sun.com/j2me/cdc

[8] Sun Micro., Java 2 Platform, Micro Edition, Connected Limited Device Configuration,

http://java.sun.com/j2me/cldc

[9] Sun Micro., Java Card Technology,

http://java.sun.com/products/javacard [10] 許清琦等,無線通訊協定 (WAP) 系 統之設計與實作第一年期中報告,台大 資訊系,90 年 5 月。 [11] 鄭士康等,家電網路之微伺服器及智 慧型代理人軟體之設計與實作第一年 期中報告,台大電機系,90 年 5 月。 [12] 王勝德等,嵌入式即時作業系統核心 程式之設計與實作第一年期中報告,台 大電機系,90 年 5 月。

[13] HAVi Organization, HAVi, http://www.

參考文獻

相關文件

在這次的實作遊戲中,我們必須要先對所使用到的硬體 和軟體有其基本的認識,這樣我們才能充分利用我們所擁有 的條件,進一步達成目標。首先 DE2-70 繼承了 Altera 一系 列的開發軟體,如

媒體可以說是內容、資訊最大的生產者,但受制於 國際社交媒體及搜尋平台的經營手法,本地主流媒 體在發展網上業務時,面對不公平的競爭。 這些

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

4.1 多因子變異數分析 多因子變異數分析 多因子變異數分析 多因子變異數分析與線性迴歸 與線性迴歸 與線性迴歸 與線性迴歸 4.1.1 統計軟體 統計軟體 統計軟體 統計軟體 SPSS 簡介 簡介

針對 WPAN 802.15.3 系統之適應性柵狀碼調變/解調,我們以此 DSP/FPGA 硬體實現與模擬測試平台進行效能模擬、以及硬體電路設計、實現與測試,其測 試平台如圖 5.1、圖

(Embedded System)為主,主要也都以 Linux 軟體平台來運作。對 EPON ONU Client 端,可以透過 GUI 介面選單來設定其所要運作的功能,配合 Linux 軟體與

如果有事先的預防,則有些事情是可以避免的,再加㆖無線遠距檢測的好點 子因此讓我產生了研究 RFID 的興趣。本論文將設計 RFID 系統㆗的

「Web Service 是一種介面,能夠使應用軟體相互溝通的一個平台,它以和程式語言無 關的方式描述一組可經由標準 XML 訊息存取的網路操作;Web Service