You are on page 1of 8

卓建安

Chien-An Cho
作品

Android
J2ME
Ruby on Rails
Zigbee
Mobile Network
P2P
SLIMA 校園生活資訊通
使用技術 SLIMA 是一套透過整合許多現有的設備與技術而
完成的地理訊息平台。使用者在校園中漫遊時,將
Google Android Platform 會發現其他人留下的訊息(例如心情短文、美食心得、
Google Maps Integration 社團歷史……),來訪的貴賓則可以用之充作校園導
Ruby on Rails 覽。校方可透過整合的校務系統,向使用 SLIMA
EXIF Metadata 的學生宣達緊急新聞,也可以公佈課程、課表資訊。
中文斷詞技術
圖片叢集演算法 這套系統整合了 GPS、相機、觸控功能,讓使用
JSON Web Service 者可以輕鬆地瀏覽。我們利用 EXIF 標準,將相關
的資料都儲存於相片檔案內。只要圖片檔案存在,
使用者便能隨時在不同的平臺間交換資訊。伺服器
與手機之間,透過 3G、GPRS、或是 WiFi 來連線。

系統架構

這套平 臺的手機客戶端會使用 HTTP 連線,採用


JSON-RPC 介面;當使用者走動時,自動向伺服器
取得資料並顯示出來、下載後的資料不再被使用時
會自動由快取中清除。

我們花了很多心思調整手機界面與程式效能 , 讓使
用者能順暢使用。在微調介面時,發現有些事情
無法單靠手機的運算力量達成:為了解決畫面上同
時出現過多圖片的問題,我們嘗試導入叢集演算法,
將鄰近的圖片聚在一起。由於算法過於複雜,只好
將它移轉到伺服器上執行。我們也使用類似的方式,
導入了中文斷詞演算法,幫助使用者分類照片。

由於現代的手持裝置具有越來越多的功能,我
們利用了手機上的 AGPS 與攝影鏡頭,讓使用者拍
攝照片、標記所在地。客戶端主要提供了地圖訊息、
Blackboard 系統連結、佈告欄、課表這四個功能。

後端伺服器提供了一套程式介面( API),讓所有的
Picture Cluster Algorithm 客戶端都能經由相同的方式,向伺服器要求資料。
為了方便在客戶端使用,我們首先將後端伺服器使
用的 API 包裝起來,其它部份的程式不再需要掌握
所有 HTTP 連線的細節 1。這樣一來,除了加快開發
速度,意外的通訊錯誤也更不容易發生。SLIMA 伺
服器扮演中介者,負責儲存來自各組手持裝置的訊
息,並且建立索引。這臺伺服器同時也作為本系
統與後端校務系統整合的閘道,結合校園帳號認證、
顯示有許多大專院校採用的 BlackBoard 系統中的課
程內容、抓取學生的課表……。我們並且提供了一
個直覺的地圖式管理介面,讓管理者快速瀏覽、編
輯所有的訊息。

1 例如資料保護碼計算、多執行緒下載、要求佇列……
SLIMA Server

圖片叢集(時間與空間)
校園新聞
校務系統整合
中文斷詞系統
EXIF 處理
後端管理系統 Data Over 3G / WiFi Connection

Server API Wrapper

HTTP Protocol
Data Protection
Multi-part Upload

SLIMA Client

Android OS
Google Maps

Android OS Services

Animation
Network Queue
Location Services
Camera
Multimedia Framework
VAMPER 行動車輛通訊平臺
VAMPER 專注於行動車載系統間的通訊。我們實作
出的平臺具有相當彈性,可以傳輸各種不同的訊息。
這個系統支援傳送地理座標、文字訊息(分作可回覆、
選單回覆及單純廣播三種)以及及語音訊息。

VAMPER 不同於 SLIMA,所有的訊息都即時傳達,


因此有行車監控、朋友出遊通訊……等等可能用途。
這個平台也注重安全性,能驗證客戶端手機的身分。
資料交換時,可選用 SSL 加密,或者只附加一道防
竄改檢查碼,節約電力。管理員可以即時監測用戶
動向,並將害群之馬踢出群組。VAMPER 專案的
研究成果正申請專利,並且有與前瞻通訊中心合作
的衍生專案。相關論文日前已被 IEEE ICCE 10 接受。

架構上,依然分為後端伺服器及手機客戶端,但
伺服器並不作中介角色,只儲存所有訊息的記錄、
並且轉發廣播訊息。後端管理介面可追蹤使用者的
歷史訊息與曾到過的位置。

使用技術

Google Android & Google MapsRuby on Rails


Communication Protocol
Mobile Network Connectivity Workaround
Location Privacy
Data Encryption and Signing

RoomRider 使 用 Zigbee 實作室內


Zigbee Radio, In-room Location Acquisition 房間分布推測及智慧型
家庭定位應用機制
Microsoft .net Framework
Recursive and Statistical Model Algorithm

RoomRider 系統能夠推測室內空間分布,實作智慧 系統能夠將可能的組合刪減到僅剩一千多組。調整


型家庭應用。只要在每個房間裡佈上至多 3 個點, 誤差係數後,可能組合數將低於 100。如果還有剩
用以交換資料與定位,就能自動偵測到新的節點、 餘的時間,系統就能進行細部的調整,迅速確認空
加以定位,以供操作。 間分布。

在建立收訊強度 (RSS) 與距離的關係函數時原本 我們提出了兩種範例節點:溫濕度測量節點與開


使用三點定位方式,但是發現嚴重的誤差;因此在 關節點。只要將這些節點放在房間裡、打開通訊開
參考文獻後,改用 Maximum Likelihood Estimation 數 關,它們就會透過 Zigbee 協定,自動將資料傳到主
學模型,搭配真實的測試資料找出遞歸函數。在 節點,讓電腦分析資料。系統將新的資料與事前計
RoomRider 系統收集到了房間各點的資料後,要先 算出的基本資料結合,就能將節點收到的遙測資訊、
依據節點資訊,將來自各房間節點的訊號分開,然 位置與狀態一起顯示在平面圖上。如此,我們可以
後依 此計算出空間分布。我們設計了一個簡單的 快速地建立智慧家庭的網路環境,並且定位所有節
BFS 演算法,計算出所有可能的分布種類,並利用 點。若可以搭配更多種不同節點,透過面板控制家
數據之間的關係,排除所有不可能的排列。在 10 秒內, 中所有電器就不會是一件遙不可及的夢想了!
科科輸入法 KerKer Input
科科輸入法是 Android 平台上,唯一開放原始碼的
中文輸入法框架。當初建立這套框架的目的,是為
了大量簡化輸入法開發工作,將選字框、虛擬鍵盤
介面與行為對應、拉丁語系輸入……等程式基礎架
構起來。

這套框架的設計理念為盡量地精簡、但最大限度
地保留彈性。在大多數情況下,想撰寫新輸入法的
開發者可以重用原有 Android 輸入法框架中的物件,
也可以混搭科科輸入法的處理機制,縮短開發時間。

輸入法提供的利基

對使用者來說,在同一輸入法框架中快速切換語系,
可以節省掉相當多的時間;對手機製造商來說,利
用這個架構開發新的輸入法,可以節約非常多的開
發成本。對於系統商而言,透過科科輸入法的外掛
架構提供加值服務,是尚未被開發的利潤領域。

介面設計

由於輸入法可說是中文使用者最常使用的程式,介
面設計顯得特別重要。我參考了許多不同的輸入
法 實 作, 例 如 iPhone OS、Android 平 臺、Windows
Mobile 平台上的各種虛擬鍵盤與輸入法,發現有許
多的輸入法實作都尚未考慮到電容觸控式螢幕的特
性,按建設計偏向長而細。

實際上,使用者通常會以手指直接點選按鈕輸入,
所以設計成正方形狀的按鍵看起來雖然面積變小,
實際上卻較方便觸控。如此細微的改變,可以加快
使用者輸入的速度,給予更好的體驗。

系統架構

在系統架構上,我將它分割為鍵盤管理、系統核心、
介接介面這三個部份。鍵盤管理負責實體、虛擬鍵
盤的輸入、選字視窗的更新等。系統核心負責訊息
的轉送,在輸入法、前端介面、鍵盤管理之間,居
中控制。介接界面與原本 Android 系統中的輸入法 使用技術
框架接合,將狀態傳到輸入法核心中,也從核心接
收要傳回的文字。 Android Input Framework
SQLite3 database
透過這樣的架構,輸入法設計者只要專心於輸入 Index data for performance boost
法邏輯的設計,不須要考慮不同來源鍵盤的輸入, UI design and usability issues
可以節省大量時間。 Framework design
MobileSync  動網路資料同步之傳

輸機制及安全控管研究
我們希望構思一套適合行動電信網路使用的系統,
讓不同的手機能夠自動感知其它裝置,有效率地交
換、同步資料。

我們在過程中,也發現了現有的 SOAP XML-RPC


架構以及 SSL 加密都需要高度的計算能力、較為耗
電,不適合行動裝置。我們嘗試在不影響功能及程
式撰寫門檻的前提下,提出替代方案,減低效能衝擊、
增加手持行動裝置資料傳輸的實用性。

以 JSON-RPC 取代 XML-RPC:由於手機得花上很多
時間解析 SOAP 格式中的額外資訊及格式規定,使
用 XML-RPC 架構的遠端呼叫非常耗時。但是,由
於手機可能隨時斷線,使用 XML 這種可串流的格
式是正確的。要解決這個問題,新的協定必須能夠
隨時在中斷後恢復,又必須消耗更少運算能量。
SOAP 3G
根據實務經驗,我決定導入 JSON 格式。

SOAP Wifi JSON 本身省去了資料格式定義,結構簡單,除了


非常適合行動裝置使用以外,也非常容易實作、一
樣能夠以文字串流格式傳 輸。實際測試結果證實,
SMCDS 3G 使用 SMCDS 機制傳輸快上了 75%。

更好的資料傳輸方式:雖然交換資 料的是兩隻手
SMCDS Wifi 機,我們在其中多加了一座伺服器,在背景代理傳輸。
使用者只需要與放在家中或者電信機房中的伺服器
max.: 700 ms 同步,即可啟用此功能。

如此一來,除非為重要或小量的資料、需要直接
傳輸以外,剩餘的資料可以由伺服器代勞轉送,不
須要傳送方手機持續介入,可以節約電力消耗。我
們也研究了 UPnP、Multicast DNS 實作 IP 網路上的
裝置搜尋,以及先透過藍芽搜尋,再建立 PAN 連
線的可行性。

更有效率的安全措施:由於手機上的資料經由行動
使用技術 網路傳輸,在傳輸至基地台時已經過了一次加密,
因此無論傳送的是非私密或機密的資料,都已經有
SMCDS 了最基本的安全保障。
SOAP/JSON-RPC
Protocol Design 我們嘗試在傳輸時附加檢查碼,確保資料在傳送過
UPnP 程中不會受到竄改;在伺服器與手機之間,也預先
Multicast DNS (Bonjour) 建立一組隨時間輪替的金鑰,傳輸時使用固定不變
Home Agent Design 與依照需求產生的 P/T-Key 兩組金鑰來保護資訊;
Data Signing 透過傳送方手機再次確認、轉送到接收方,確保只
Virtual File System implementation 有最後接收方能夠使用資料。
Receiver Unit Provider Unit (Home) Server

Direct Downloading

Browse SELF-CHECKING

WORKING LIST [A-URL]

Download File

Redirected Downloading

TRANSACTION Browse

PREPARATION

DIRECTORY LIST

Redirect

WORKING LIST [A/V-URL]

Apply for Downloading Files

Apply for Permission

TEMPORARY URLS
TRANSACTION KEYS

WORKING LIST [V-URL]

File Transfer
行動撥撥王  ulticast 串流廣播
M
穿透無線網路方式及
New Unicast Media Stream
對網路品質影響的研究
Thru Wireless Network
在使用無線網路進行多點串流時,多數的無線網路
存取點會為了避免網路壅塞而丟棄封包。有一部分
支援 WMM1 的設備則能提供品質控管服務,盡量
傳輸這些封包。是不是有其他的方法呢?

Stream Encapsulation

群播代理人
Stream Transcoder

為了解答問題,我實作了一套代理服務,讓無線網
路中的使用者向其註冊想要使用的多點傳輸來源。
代理系統會代理其要求,利用系統連接的有線網路,
MPEG-TS Processor
向網路路由註冊一個多點傳輸群組,使用單點傳輸
方式轉送封包。
Multicast Stream Processor

由於這份作品針對串流研究,因此在代理服務無
STREAMING POINT
法接收到串流時,會回傳一段「無法收訊」的影片。

Relay Station
使用單點轉送方式,可以成功地穿透無線網路,
並且維持良好的音質與畫質。然而,在無線網路壅
塞時,傳輸效能將下降,所有人都無法正常收看影片。

Multicast Media Stream


Thru Wired Network
動態重編碼機制

針對這個問題,比較簡單的試驗方式,是依據客
戶端的能力,動態改變流量大小。我將連線通道
分作控制串流與媒體串流,其中透過前者可以改變
訊號的來源與品質。同時,我實作了 MPEG-TS 的判讀,
讓資料中的序號能夠持續連號,對客戶端播放器而
言相對透明。這個方式的缺點是需要需要客戶端的
回報合作,才能減低網路負擔。

自動偵測網路品質

最後,我簡單地將 ping 測試封包來回的總耗時,作


為調整影像品質的標準。反應延遲越久,代表應
該傳送較低品質的串流,反之亦然。
使用技術
這份作品的編碼、解碼部份,都使用 VLC 實作,
IP Multicasting 在切換品質高低時,訊號會暫時中斷;頻繁地切換
Video Streaming 則會造成軟體停止執行。無論如何,這個方法已經
Video Encoding 初步獲得證實,需要更進一步地探究。
MPEG-TS Header
Network Performance Detection 1 Wireless Multimedia Extension