我的雲端生活網 - Life+

Wednesday, January 21, 2009

談談Middleware

資訊領域中的 middleware 很多。例如,作業系統是介於硬體與應用程式之間的 middleware 、 Java VM 是介於作業系統與 Java 程式之間的 middleware 。資訊領域中有太多分層概念,像多層式主從架構之類,存在於許多不同的平台、許多不同的討論範圍、以及許多不同的用途。 Middleware 對我們不陌生。但是,站在設計 middleware 的立場,首先要為自己的立場找個夠強的理由。

「為什麼要有 middleware ?」這個問題,到處能看到的答案好像很少。我們為什麼要在 RFID readers 與上層系統中間,多放一層軟體系統?

據我這陣子調閱及學習的認知, middleware 的好處是:

  1. Middleware 對下層 RFID 設備來說,要做設備的管理與協同工作。
  2. Middleware 對上層系統來說,提供抽象的 RFID 設備。
  3. RFID 系統的資料,在 middleware 中是一般化的,隨時準備被取用。

與其他軟體比較、類比, Microsoft Office 是一般化的文件編輯軟體,所有的功能都具備一般的彈性,沒有特別偏向哪一邊特殊的面向。這種一般性的概念, Office 的開發者腦中已具備。同理, RFID system middleware 是一種比較一般化的 RFID 上層系統,提供 RFID 系統中最基本且必要的功能。 Middleware 所做的是中樞機能的工作,而不是偏向哪一個應用面向的特殊工作。

目前我 RFID system middleware 的構想,包含的元件有:對上層提供的應用層事件(ALE)介面、對應下層的抽象設備或代理設備(agent)、資料表達規格、必要的背景工作(包含 reader polling 等等)、資訊過濾及彙整函數、工作排程、以及邏輯規則系統。

Tuesday, January 20, 2009

規則系統的發展

為了對規則系統陌生的人,必須有這項簡介。

規則系統, rule-based system ,以前稱為 production system ,是因為系統的構成有許多的 production rules 。後來稱為專家系統,特別叫做規則式專家系統。有名的案例是 MYCIN ,處理心理諮商及診斷。規則系統是運用規則表達知識並解決問題的系統。

左圖為專家系統的內外構成。外部結構基本有規則庫、推論引擎及工作空間,依序比照為人腦的長程記憶區、推論邏輯、以及短程記憶區。推論引擎內的運作方法大致是接受若干輸入事實,就將事實與規則庫中每項規則比對,其中,有些規則會符合事實、而有些不會符合。這些符合的規則構成 conflict set ,爭議集合。如果都沒有符合的規則, conflict set 是空的,沒有任何規則可以選擇,表示推論過程可以結束了。但如果至少有一條規則符合比對,就要從 conflict set 中選取若干應該觸發、啟動的規則,這個動作稱為 conflict resolution ,衝突決議。 Conflict resolution 選擇了一些規則,執行規則中所規定的動作,這個步驟稱為 act 。啟動一些規則,使推論的過程與狀態有一些改變,這些狀態儲存在 working memory 中。然後,回到 Pattern Match 步驟再進行下一次循環。以上,推論循環工作的過程,以三大步驟稱呼稱為 match-resolution-act ,比對、決議、行動。每一循環的 act 步驟可能送出一些解答。推論循環工作的終點,是在 match 之後、 resolution 之前,發現 conflict set 沒有任何規則存在,就結束推論流程。

規則系統的研究領域,站在中流砥柱的一位是 Charles L. Forgy ,他在 1979 年卡耐基美隆大學的電腦科學系博士學位論文中,提出有效處理 Pattern Match 與 conflict resolution 的幾項方法。他的指導老師是 Allen Newell ,在 1956 年與同事發表第一支人工智慧程式,稱為「邏輯解題者」。他們師徒的另外一位同事, Anoop Gupta ,他在 1989 年取得博士學位,則處理了在 message-passing computer 用平行架構實作規則系統。

Forgy 在 1974 到 1979 年的研究,發表了第一代 Rete 演算法,做有效處理 Pattern Match 。 Rete 演算法在這個領域從當時紅到現在。 1983 年,他開創稱為 Production System Technology 的公司,屬於研究及顧問性質的機構,同時也賣了許多 OPS 的產品 ( OPS2 、 OPS5 等等)。這時候 Forgy 也發表了第二代 Rete 演算法,聲稱它不只能夠表達知識,還能夠做資料處理。又後來,他在 RulesPower 公司的時代發表了第三代 Rete 演算法,這個技術在 2005 年被 Fair Issac 公司取得了。據 Rete III 的聲明,有 300% 的效能。 2006 年 11 月,據 JavaRule 部落格訊息指出, Forgy 在參加 Business Rule 論壇的時候發生心臟疾病,希望他身體健康。

目前我們知道的規則系統研究走向, Rete 演算法是公開的資訊, Rete II 與 III 是企業不公開的技術,而且 production system 及專家系統在 70 、 80 年代發展、 90 年代成熟之後,已經走向商業規則領域。所以,今後可以多參考 business rules 方面的資訊,幫助我們的系統開發。

規則系統的運作方式

規則系統是使用許多規則作為專家知識,處理輸入問題而產生解答。規則系統的架構本來有講究,但國內學習環境很容易將規則誤解為一般程式語言中的 if-then-else 程式流程。所以,在此來看看一套規則系統如何處理「猴子與香蕉」問題。

「猴子與香蕉」是人工智慧與生物知能領域喜歡討論的例子,在一組空間中,有香蕉、猴子及其他物品散置各處,問猴子如何取得香蕉。假設我們有一套規則系統,系統中建立規則如下: (=W =C =P =O 為變數, = 為萬用變數, #P 為 =P 的否定變數,帶負號項目為否定條件。)

(以上資料摘自 Charles L. Forgy 於 1979 年發表的博士論文,第 11 到 13 頁。)
勘誤: MB8 規則的右手側誤植為 Near ,完整正確規則應為 ((Want =O Near =P)) (Light =O)(=O Near #P) --> (Want (Monkey Holds =O)))

指定問題如左:目標為想要猴子取得香蕉,而各項物件的位置及情況列在下方。
(左列資料摘自 Charles L. Forgy 於 1979 年發表的博士論文,第 13 頁。)

參考以上規則,規則系統的處理過程如下圖所示: (WMEs 為 Working Memory Elements ,工作空間項目。規則啟動 (fire) 的原則為,若曾經啟動過此規則則不啟動,否則,由多項符合比對的同一類規則中,啟動規則條件(左手側)較嚴格的規則。任何一項 WME 右側標有 X n(X 右接一個數),表示此項是在進入 WMEs n 之前的一條規則啟動時被刪除。)

(以上資料為本文所整理。)

規則系統應該做下列工作:

  1. 做好幾次的循環,每次都要做規則比對、判斷哪條規則該啟動、並執行啟動的規則。
  2. 每一次循環,有多條規則同時符合比對,有多條規則可以被啟動,多條啟動規則改變了工作空間。
  3. 循環工作的終點,是當沒有一條規則符合比對的時候,才可以結束規則判斷工作。

規則系統的使用者,在此指知識專家或知識工程師,所做的事情有下列的情形:

  1. 使用者只要撰寫簡單的規則;簡單的規則不需要有巢狀的構成,即不必寫一條規則中包含另一條規則。
  2. 使用者必須撰寫完整、能夠解題的規則集合;解題的完成仰賴於規則知識,甚於仰賴程式演算法。
  3. 使用者可能沒把解題規則寫得完整;規則的部份不完整,會導致解題完成到一半。
  4. 使用者必須小心處理遞迴規則。
  5. 為了完成解題工作,使用者除了提供一般解題規則之外,有時還要增添輔助規則。例如上例的第十條規則 MB10 是輔助規則,避免有些已達成目標、卻沒有清除目標的情況。
  6. 知識規則可提供非知識專家手寫做解題,但是人力操作解題可能犯錯,例如將規則或符號看錯及謄寫錯誤;由規則系統操作知識規則,則不容易犯錯。

Friday, January 16, 2009

微軟MSN SERVER的離線訊息(OIMS)的使用政策修改了

<<這看來是微軟的伺服器所產生短暫的bugs,現在似乎又不正常了>>

微軟MSN SERVER的離線訊息(OIMS)的使用政策修改了(http://messenger.msn.com/ws/2004/09/oim/),所以;現在自己寫的MSN機器人如果沒有修改;應該發送離線訊息會出問題

Tuesday, January 13, 2009

關於微軟MSN Server所發生的問題

昨天(2009.1.12)微軟突然修改 contacts.msn.com 的認證政策;造成 聯絡人的建置發生問題,很多非微軟的msn client都發現,昨天軟體發生無法正確連線的問題,我不知道我們是不是全球第一個發現此問題的軟體公司,但是我們於昨日下午已先處理完相關程序,國內的msn機器人,如果不是使用微軟的sdk實作,應該都會遇到相同的問題才是...??

Thursday, January 8, 2009

2009「兩岸RFID科技產業應用研討會」紀錄

2009年1月8日在台北科技大學「兩岸RFID科技產業應用研討會」,見識一些有創造力的應用。開幕專題簡報是工研院辨識與安全科技中心唐主任談台灣RFID應用與技術的發展,他提到在這領域需要有更多發揮天馬行空創作力的產品。可惜的是會議內容多為研究生報告,或者有雖為重要議題、發表人卻缺席了。

台灣RFID應用與技術之發展

唐主任的報告,先回顧基礎知識,包括RFID的技術標準、RFID在系統中扮演的角色、全球發展RFID的驅動力、以及市場趨勢。接著進入主題有:

台灣RFID技術與應用的現況:

  • 低頻:用於動物晶片、門禁管制和汽車防盜。
  • 高頻:大眾運輸、門禁管制和圖書管理。
  • 超高頻:供應鍊管理、貨櫃電子封條、棧板與包裝箱追蹤。

公領域先導應用與推動:

  • 推動方式:採點、線、面漸進擴充的方式,由公領域拓展到產業技術發展,再形成完整解決方案。公領域推動過程有可行性評估、概念驗證、先導應用、初期擴散與重點擴散。公領域推動過程與產業技術發展項目合作,產業工作項目有產品研發、客製化產品和量產將低成本。公領域的合作參與,要補足技術發展缺口、引導產業發展完整解決方案。

公領域計畫項目:

  • 航空旅運類。
  • 食品流通安全類。
  • 貿易通道安全類。
  • 居家與公眾安全類。
  • 健康與醫療類。

其中食品流動安全類相當重要,但應用項目往往較不容易實現。例如水產管理業者可能希望做種魚健康管理,RFID如何做在水產環境中,是相當需要思考、研究的議題。

工研院的RFID技術發展:

  • 價值鏈:前端元件->加值技術->軟體整合/系統整合->創新應用。
  • 前端元件:研發超高頻的,以及因應EPCglobal C1 Gen2標籤規格的,標籤與讀寫器。
  • 加值技術:開發微型EPCglobal C1 Gen2讀取器與手持裝置,以及主動式RFID讀寫器。主動式讀寫器的應用實作,可能用反向的思考,例如:讓讀寫器是移動的裝置、標籤是固定不動的裝置,可作安全照護或智慧手機等應用。
  • 系統整合:整合供應鏈物流及資訊流,處理複雜的訊息流動;另外以食品加工為例,處理食品的供應、流動、及混合等情況,特別是組合式品項(例如水餃)的管理。
  • 創新發明:有即時互動的智慧式展覽場、即時服務平台、近隨處服務平台、以及結合影像的安全控制。

會議討論

RFID系統安全性之探討

交大資工所的張同學介紹了RFID系統中存在的危險弱點。

  • 計算力:標籤 < 讀寫器 < 中介系統 < 應用系統。
  • 弱點:標籤沒有強大的資料加密能力。
  • 危機:讀寫器的reader cycle資料可能偽造、讀寫器可能做惡意轉送、上層系統做惡意查詢、ALE訊息可能偽造、上層系統更顯露出一般網路安全弱點(例如受DDoS攻擊)、以及通訊通道皆有攔截訊息的潛在危險。
  • 思考方案:因應計算力的差異,需要輕量級的認證機能,所謂輕量級的認證機能,指計算量要低、而且使用較簡單的加密演算法。

但在這篇報告中,我個人感覺學術界對於RFID技術在產業中發展的程度,細節方面可能有些誤解、或者有過多的想像。這是我在會議中不便明說的,例如:標籤的計算能力並不低。我用一些暗示的方式,探問發表者:「用偽卡攻擊較容易,或是用攔截標籤與讀寫器通訊比較容易」想提醒發表者往較近的案例方面作調查研究。起碼短距離的RFID感測範圍,較不會做到實際的攔截;即使能做攔截,牽涉攻擊者能不能操作標籤與讀寫器共同支持的協定,也不容易做。

RFID應用於 e-護照

台科大電機系魏老師指出RFID做e-護照的應用,與本國和他國的公領域協議有關。許多的細節我記不得,而感覺在此方面是著重在RFID系統的 Open Name Service、以及我國和他國的護照通關認可的協議。從資訊網路擴充到實體網路,這是RFID應用、以及U化的企圖與挑戰。

Gen2認證的安全

交大網工所的呂同學和資工所的黃同學討論了RFID Gen2認證/抗碰撞演算法的安全。討論的項目有slotted ALOHAanti-slotted ALOHAhash lock scheme等。Hash lock scheme使用期限短的session key通過hash函數產生簽章,做訊息認證。延伸的方法有randomize hash lock schemechained hash lock scheme,後者是將session key做二次以上的hashing。在帳號檢查方面,使用hash-based帳號檢查協定,例如標籤傳給讀寫器的資料是H(ID), H(LT(+)ID), DELTA LT,其中選用LT為最後的timestamp,DELTA LT是上次timestamp與最後的timestamp的差。由於使用了時間戳章,可以防止訊息重播攻擊。

聰明的冰箱

下午有一些有趣的實作報告。崑山科技大學的電腦與通訊系郭同學報告了他們的聰明冰箱實作設計。RFID無線通道的障礙是金屬與水汽,他們在做讀寫器嵌入冰箱的工作時,要先作通訊場型分析。食材存放需放在貼附標籤的容器。第一個讀寫器放置在冰箱中央,場域涵蓋冰箱全體。對水汽多的食材存放,需要第二個讀寫器放在靠近的位置。於是可以感測食材的進出,紀錄存量。

RFID與GPS配合支援林木調查

屏東科技大學資管系的藍同學報告了由龔老師帶領的專題「RFID與行動定位技術於珍貴樹種調查之研發與系統建立」,報告內容完整與層次明確,令人感到印象深刻。為了支持森林系同學調查校園林木的生長情況,他們選用GPS掌握林木定位、用RFID做林木附掛標籤與紀錄資料用途。調查者手持附掛RFID讀寫器與GPS接收器的PDA,到達埋設標籤的樹木或植物群做調查紀錄,用PDA將紀錄資料寫入標籤、並存在PDA中,等待回到上網的電腦設備時,將調查資料傳回電腦系統。

另一個議題

聰明冰箱與RFID支援的林木調查二則題目,研伸出的議題是RFID無線訊號是否影響生物健康。冰箱是家庭主婦的工具,使用聰明冰箱使主婦經常暴露在無線訊號場域中,有沒有影響?RFID支援林木調查,使用的標籤若是釘狀標籤,必須在樹幹鑽洞、插入標籤、並以樹脂固定,作法有沒有影響林木生長條件?這些問題需要其他專業學術部門的調查與建議。

廠商參觀

休息時間參觀了瑞帝公司的智慧自走車機器人,支援ZigBee與藍牙。稍微問了有沒有提供SDK,並交換了名片。不確定有沒有接洽的需要。

Wednesday, January 7, 2009

一則未釐清的概念

某日在公司內技術研討會發生爭議,在文件化控管客戶需求方面。主要問題是,客戶的需求可能有許多 subversions 。這個情況是 SVN 適用嗎?

我這邊出現一個概念: RFID 應用在文件版本管理,可不可以?我的初淺設想如:每一份文件都需要多位員工協議。每一份文件上都附上一張 tag ,帶有文件版本號。每一份簽署完或修改過的文件,都送到 reader 感測一次,如果存在其他較新版本號的文件,就提出警告;否則,寫入此文件的新簽署日期。

具體的障礙可能有: tags 成本。

Blog Archive