第四章 雛型系統設計與建置
第一節 軟硬體選擇與介紹
Google Nexus7
RFID 標籤
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
61
一、移動式 RFID 設備
目前市面上常見的的 RFID 讀取器有三種如後選設備所列,UHF 和 HF 的
RFID 讀取器價格貴,且需另外搭配移動裝置如手機或平板電腦等;市面上可以 找到內建 NFC 的移動設備如手機和平板電腦,NFC 辨識距離雖不及 RFID 的 HF 和 UHF,但 NFC 傳輸速率快(如表 4-2 所示)且相容於 RFID 的 HF,在這樣的情 況下基於經濟上的考量,在選擇設備上購買有 NFC 的移動設備,比購買兩組設 備(RFID 讀取器和移動裝置)便宜。故選擇有 NFC 功能的移動裝置。
表 4-2:候選無線射頻技術辨識距離和傳輸速率比較 無線射頻技術 RFID HF RFID UHF NFC
辨識距離 約 10cm ~ 1.5m 約 15 ~ 60m 約 10cm 以下 傳輸速率 約 25 kbps 約 30 kbps 約 106 ~ 424kbps
資料來源:本研究整理 二、具有 NFC 的移動設備
而在選擇具有 NFC 的移動設備方面,依移動設備的作業系統區分,目前市 面上三大作業系統分別為 iOS、Android,和 Window8,又由 Apple 公司出品的 i 系列移動裝置目前沒有內建 NFC 功能,所以能考慮的剩下兩個,而 Windows8 作業系統目前市占率又比 Android 低,在考量網路上開發者社群支援、官方文件 的豐富性,以及市面上程式開發工具書的數量後,選擇 Android 系統。
Android 系統由 Google 公司開發,市面上常見具有 NFC 的移動設備(包括智
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
62
慧型手機和平板電腦)廠牌,有 ASUS 的 PadPhone、Sony 的 XPERIA 系列智慧型 手機,還有 Google 的 Nexus 系列移動設備。Nexus 系列目前分別有手機(Nexus4) 和平板電腦(Nexus7 和 Nexus10),為減少在雛形系統開發時遇到無法預期問題的 可能性(如 Android 系統與其他廠商所開發的移動裝置衝突),本研究不考慮其他 廠牌做的 NFC 移動設備,並選擇 Nexus 系列移動設備,在本研究進行實作前採 購時,Nexus4 和 Nexus10 在國內無法購得,故選擇 Nexus7(圖 4-1)。
圖 4-1:Nexus7 資料來源:本研究整理 三、RFID 標籤
選擇移動式 RFID 設備後,就決定了標籤的選擇,NFC 無法讀取 UHF RFID 標籤,但相容於 HF RFID 標籤,為避免在實作時產生額外無法預期的問題,故 選用 NFC 標籤;不過經過實際使用捷運站單程票(HF RFID 標籤,如圖 4-2 的 B)
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
63
測試,NFC 確實可以讀取與修改標籤中特定資料欄位,本研究另外採購 NFC 標 籤如圖 4-2 中的 A 所示。
圖 4-2:RFID 標籤 資料來源:本研究整理 四、伺服器
目前實驗室能做為伺服器的設備有大型伺服器(如圖 4-3 的 A)和桌上型電腦
(如圖 4-3 的 B),考慮雛型系統不會對電腦造成運算與儲存上太大負擔,使用大 型伺服器太過浪費,故選擇桌上型電腦作為架設伺服器的設備,其規格如表 4-3 所述。
A:NFC 標籤 B:捷運單程票
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
64
圖 4-3:伺服器 資料來源:本研究整理
表 4-3:實驗設備桌上型電腦規格
CPU AMD Athlon™ 64 Processor 3000+ (1800 Mhz) 主機板 ASUS A8N-E
記憶體 Transcend DDR 400 1G 兩條 硬碟 Western Digital 160G
資料來源:本研究整理
貳、軟體與工具
軟體與工具部分在移動式 RFID 設備需要撰寫程式,在後端系統需要部屬伺 服器,如:DNS 伺服器、網頁伺服器,和資料庫,這裡針對本研究會使用到的 軟體與工具作選擇介紹,相關軟體與工具選擇參考表,說明以下分述:
A:大型伺服器 B:桌上型電腦
‧
PhoneGap Java DNS 伺服器 BIND
Dnsmasq BIND 網站開發工具
RoR PHP Python
RoR
(Ruby on Rails) 資料庫 MySQL
MongoDB MongoDB 資料來源:本研究整理 一、移動式 RFID 設備程式開發程式語言
本研究選擇的實驗設備為 Nexus7,能在此設備上開發的程式語言有兩種,
一為 Android 作業系統上開發的原生程式語言 Java,另一為 PhoneGap,使用
HTML、CSS,和 Javascript 等開發網站的程式語言,透過 PhoneGap 能將寫好的 程式部屬到不同移動式設備上。
兩個開發程式語言都有完整的官方文件支援,本研究撰寫的程式會用到移動 式設備上的 NFC 裝置,PhoneGap 在操作 NFC 上需額外安裝官方插件(Plug-in),
而安裝是否成功的關鍵在於還是要懂 Android 系統上 Java 撰寫的方法,而在程 式操作 NFC 的相關官方文件,Android 系統較 PhoneGap 豐富,故本研究在移動 式裝置上開發的程式語言,選擇 Android 系統的原生開發程式語言 Java。
二、DNS 伺服器
BIND(Berkeley Internet Name Domain)目前 Internet 上被廣泛使用的 DNS 伺
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
66
服器軟體,目前由 ISC(Internet Systems Consortium)負責更新與維護;Dnsmasq 為小型 DNS 伺服器軟體,用以服務小規模的網路。
本研究需要使用 DNS 伺服器作為 ONS,並使用 NAPTR 記錄提供解析 URI 的功能,在 Dnsmasq 使用 NAPTR 記錄功能方面,缺乏官方文件說明,網路上也 較難找到相關的教學,而 BIND 因為在 Internet 上被廣泛使用,其相關資料與其 設定和操作方式在網路上較易取得,為了雛形系統開發的方便性,本研究選擇
BIND 軟體作為建置 DNS 伺服器。
三、網站開發工具
Ruby 和 PHP 是在伺服器端執行的直譯式程式語言;使用 Ruby 開發網站,
目前在網路上只有一套網站開發框架(Web Framework)稱作 Ruby on Rails(以下簡 稱 Rails),使用 Rails 開發網頁有兩個特色,分別為減少重覆撰寫程式碼,和利 用 Rails 的撰寫程式慣例提高程式可讀性與維護性,增加寫程式的生產力;另外 在 PHP 語言有非常多的網站開發框架,其中 Zend 為官方所推崇,兩種開發框架 除了使用的程式語言不同外,對於雛形系統開發上來說其實差異不大;因 Rails 可提高程式開發的生產力,故本研究選擇 Rails,作為網站伺服器開發的框架。
四、資料庫
候選資料庫部分有兩個,一為關聯式資料庫,代表為 MySQL,另一為 NoSQL 資料庫,代表為 MongoDB;以 MongoDB 來說資料庫中的集合(Collections),並 不會限制文件(Documents)的綱目(Schema),使得在資料儲存上有彈性,在相同集
‧ 國
立 政 治 大 學
‧
Na tiona
l Ch engchi University
67
合中的文件,其儲存資料的欄位並不會被限制,也就是說相同文件中的欄位組合 數量不一定都一致,且相同文件中的相同欄位名稱,其儲存的資料形態也可以改 變;另外 MongoDB 中的資料建模(Data Modeling)方式,建立應用程式中物件之 間的關聯性,透過這種方法可以做出類似關聯式資料庫中資料表間相互的關係狀 態。基於 NoSQL 資料庫使用上的彈性,以及可建立類似關聯式資料庫的資料表 關係的方式,本研究選擇使用 MongoDB。