[Robotics Studio] MSRS 概觀 (Overview) -- Day5

  • 6789
  • 0
  • 2009-02-17

[Robotics Studio] MSRS 概觀 (Overview) -- Day5

甚麼? 第五天才來提概觀?

話說, 寫了幾天  VPL , 大家也許膩了, 覺得 Microsoft Robotics Studio 就這麼簡單啊..
所以我現在才寫整體概觀, 因為看完了這篇文章, 你就知道 MSRS 不是這麼簡單, 而是集大成
之前的皮毛只是讓大家有點興趣, 別因為 MSRS 太過於艱深而放棄接觸, 事實上這是一門很好玩, 也很有未來的學問.

接下來的文字也許有很多我翻譯的不好, 所以我會盡量放原文, 事實上很多文字也沒有統一的中譯,
所以大家要原諒我, 我並不是專業的翻譯員, 但是我是專業的 Programmer, 至少有專業的能力, 至於溝通或文筆問題,
大家要有些擔待.

MSRS (Microsoft Robotics Studio) , 或是 RDS (Robotics Developer Studio) , 基本上由眾多的底層元件以及服務組合出來的一個套件,
根據我自己的了解可以畫出以下的圖 (抱歉, 我找不到官方的架構圖)
image

大家可以看到, 前幾天簡單的 VPL 是架構在 Visual Simulation Environment (虛擬環境) , DSS , CCR , XNA , .NET Framework, Direct X 之上的.
也就是說, 如果想對 VPL 做出更深入的了解, 我們就要鑽研底層的技術, 這些都不是小東西, 這也就是為什麼先玩簡單的皮毛 (但是卻是建立在龐大的架構之上)
如果有興趣成為專家, 就可以開始接觸底下的專業技術, 如果不想碰觸底下的專業技術, 也是可以透過 VPL 玩的很愉快^ ^

由上到下, 大家透過之前的介紹, 相信對 Visual Programmming Language 應該不陌生, 微軟提供的 VPL Express Edition 也是相當的簡單易用, 至於 Visual Simulation Environment, 應該也看過, 這個虛擬環境透過 DSS, CCR , 以 XNA Frameowork 呈現畫面, 相當專業, 如果對 VSE 有更多的興趣, 您可以執行開始程式集當中的 Microsoft Robotics Studio 2008 Express 底下的 Visual Simulation Environment 2008 Express 下面的範例 (記得要有足夠的權限, 否則還是重新安裝算了),
如 Basic Simulation Environment:

image

Apartment Environment:

image

等等.

Microsoft Decentralized Software Service 則是微軟提供的一個架構, 透過這個架構來實現 REST Programming 的程式風格.


根據微軟的說明, DSS 提供輕量級 (lightweight), 服務導向程式模型 (Service-oriented programming model) , 以網站的架構 (Web-based) , 以及 XML 文件溝通來達到高效能而且擴充性強大的程式架構. 我個人覺得透過 DSS , 設計元件時的彈性以及效能都不錯, 也不容易寫出緊密連結的元件. DSS 還奠基於 CCR 之上,
透過 CCR 處理許多同步協調的問題.

Microsoft Concurrency and Coordination Runtime 負責處理多工環境同時存取資源的協調以及同步, 有了 CCR , 撰寫多執行緒 (Multi-Thread) 時遇到的眾多相關問題, 就交給它來幫你解決.


根據微軟的說明, CCR  提供高效能的同時運算, 以訊息導向的程式模型 (Message-oriented programming model) 完成多工的資源協調問題處理, 透過 CCR , 程式不需要自己管理執行緒 (Manual threading),  也不需要考慮同步鎖 (lock), 或是號誌 (semaphores) 等等多工的問題, CCR 提供的程式架構可以幫你管理資源多工時的同步運算, 而且也考慮到了部分失敗 (Parital Fault)的處理.


身為一個程式設計人員, 當然覺得這是一個偉大的福音, 未來的程式人員再也不用碰觸或學習這些惱人的多工問題, 那些艱深的問題就留給 CCR 系統處理...


不過, 學習 CCR 也不是那麼簡單的事啦 (哈哈), 比方說為了解決以上的問題, CCR 當中提供了仲裁器 (Arbiter) ,還有工作排程 (Task scheduling) 的觀念, 往後我們在寫 DSS 的程式時也會不時遇到這些東西的.

最後, 微軟在 RDS 當中還提供了 DSS Manifest Editor , 因為 DSS manifest XML 直接編輯可能不是人幹的事情, 所以提供一個編輯器就方便多了.

以上, 概觀應該還算不難懂, 更深入的東西可以留在後面一點才說,

大家如果還有很多興趣時間, 可以參考官方的 使用 Microsoft Robotics Studio 打造虛擬世界 , 話說作者的書也有中文版,
只是我上次翻好像覺得...不像是程式設計師愛看的類型...哈.