Embedded System and Embedded Middleware : My Understanding

Embedded System

在過去對於 embedded system 的認定或是說明 (在此我避免用 定義, definition 這 個辭, 因為嚴格來說我認為沒有被 well-accept 的定義), 大多是利用一些特徵來描述 embedded system, 例如功能專一性 (not general purpose), 資源有限 (limited resource), 可用記憶體有限 (memory constraints) 等等各種 hardware constraints, 另外就是具有 hardware / software co-design 的特徵(不過這屬於逐漸被拋棄的一個領域), 可以進行操作的介面通常都很小等等. 總之就是把 embedded system 跟許多 hand-held device 或是家電 IA 畫上等號. 最常見的就市直接跟桌上型 PC 作比較, 像是 PC 這種運算快, 記憶體多, 體積大, 多功能用途的電腦系統就不是 embedded system, 反之大概就是. 這種概述大概是過去十幾年來對於 embedded system 的共通印象. 而對於資訊相關的學生來說, 因為講到 embedded system 開發好像就是一定要在一塊裸板上燒 ROM, 或是利用封裝好的小型主機, 外接螢幕什麼的, 好像不是這樣開發的就跟 embedded system 無關似的. 而所謂的 embedded application 當然就是在這樣的環境下可以執行的 applications .

但我並不認為時至今日, 對於 embedded system 的認知應該維持過去的想法. 重點在於 embedded 這個字. 引用 webster's dictionary, rosetta edition 對於 embedded 這字的說明 :

  1. Enclosed firmly in a surrounding mass

  2. Inserted as an integral part of a surrounding whole

embedded system 也只是一種 computer system, 而因為他所具有的特徵使得我們特意冠上 embedded 這個字. 但是如果是因為各種 hardware constraints 而冠上 embedded, 對照 embedded 這字本身的意思, 不是很怪嗎 ? 因此我認為, 對於 embedded system, 應該從別的角度來詮釋.

既然我們說 computer system 的目的, 其實終究還是希望可以幫助人類的生活過的更好更輕鬆, 是整體社會文明的一種進步. 因此在此我把上述對於 embedded 釋意文字中的 surrounding mass 以及 surrounding whole 對比到 human life. 換句話說, 所謂 embedded system 事實上是指能夠 embed human life computer system.

在此認知下, 一般熟悉的 PC 自然就不被涵括在裡面. 的確, PC 在很多人的生活中都會出現, 很多人每天也一定會使用到 PC, 但是 PC 有很顯然地融入一般人的生活中嗎 ? 恐怕是沒有吧, 大多數常接觸的人要不就是 PC Gamer, 否則還是以工作接觸居多, 這種情況就變成是刻意去接觸利用, 而不是嵌入或是融入我 們的生活之中. 當然, 我必須承認, 這樣的認知與區隔並不是很嚴謹, 或許仔細想還是可以找到介於是與不是之間的例子. 比如說手機就是一個. 對於現代人來說, 手機或是其他通訊設備幾乎就是融入生活的一部分, 然而當我們說到多功能的智慧型手機, 或是所謂的 Smart Phone, UMPC 等等, 其所提供的服務, 似乎又不是那麼地融入我們的生活了. 這種情況我就認為他既是也不是摟, 換句話說就要看你所持的觀點而定.

我的認知可以下面的概念圖表示. 圖中的 application software 以及 embedded application software 指的僅是 software 部分, 而整體的運作還需要加上更底層的 hardware. embedded application software 在添加 hardware 部分後構成一個 embedded system. 而此 embedded system 所達成的服務應用則是 embedded application. 兩者的差異即在於 Unawareness of Users 的考量範圍. embedded application 的情況中, 需要設法達成讓 users 感覺不到 embedded application software 的存在.


而我上述的認知跟過去對於 embedded system 的認知之間的關係如何呢 ? 我認為過去從 hardware constraints 的角度去區別 embedded system 與否其實也沒有錯, 因為要符合上述我的說法, 將會使得 embedded system 所處的環境面對較多的限制, 例如機體大小等等, 自然而然就會形成各種 hardware constraints. 但是這點在硬體開發技術以及製程逐漸進步, CPU 處理速度越來越快, 同體積的記憶體效能 (Performance) 越來越好的情況下, 過去與桌上型 PC 相比的 hardware constraints 只會隨著時間逐漸的消失, 因此再也不適合用來區別 embedded system 與否.

最後一點, 則是關於上文中不斷提到的 融入 . 這也是之所以沒辦法有嚴謹定義的原因. 所謂融入跟人本身, 以及人所處的環境 (context) 會有關係. 人本身包含了生活習慣, 而環境則包含了文化 (culture) 因素. 這些都是會逐漸演進的 (evolve). 換句話說, 對於 embedded system 與否的認定, 會隨著整個社會環境的逐漸電子化而有所改變. 而如果對於 pervasive computing 或是 ubiquitous computing 略為知曉的人, 可能又會覺得好像沒什麼不同. 這樣說吧, 我認為 embedded system 就是 pervasive computing 或說 ubiquitous computing 基礎構件之一, 而後兩者所描繪的是 global vision.


Embedded Middleware

而在 embedded middleware applications 的部分呢, 認為 embedded middleware 跟一般的 middleware 不同處在於 middleware 所要代替 applications 面對的對象, 擴展到了使用者. 已下面的概念圖表示我的想法.



在我的想法中, embedded middleware 除了與一般的 middleware 一樣會需要替 embedded application software 處理面對不同的 operating systems, network, 以及 resource management 等相關問題之外, 還存在於 user embedded application software 之間, 而所負擔的責任即在於降低 developer 設計與實現 embedded application software , 需要考量到不同的 users 在不同 context 下的使用問題. 因而有別於一般的 middleware software, user interface (UI) 在 embedded middleware 領域中佔有較重要的份量及地位.


0 意見:

Designed by Posicionamiento Web | Modified by seLain | Bloggerized by GosuBlogger | Blue Business Blogger