專利名稱:用于Flash應用程序的具有分布式對象的集成硬件平臺的系統(tǒng)和方法
技術領域:
本發(fā)明一般涉及數(shù)據(jù)和圖形顯示。更具體地,本發(fā)明涉及具有分布式對象的Flash 應用程序。
背景技術:
對于豐富的多媒體互聯(lián)網(wǎng)應用,F(xiàn)lash平臺很受歡迎,其在多數(shù)主要硬件和操作系 統(tǒng)中具有高的瀏覽器滲透率和可用性。用戶能夠從個人電腦到移動電話及視頻游戲機的多 種設備容易地運行Flash應用程序。越來越多地,現(xiàn)代Flash應用程序正使用分布式對象 以提供用戶和服務器之間共享的在線背景給用戶。因此,例如在虛擬社區(qū)和在線游戲世界, 用戶能夠?qū)ζ渌脩舢a(chǎn)生持久改變的影響。例如,用戶能夠互相談話,交易物品,組隊成組, 以及進行其它的相互作用。另外,由于Flash平臺的方便可得,幾乎在任何地方,無論是在 家、辦公室、網(wǎng)吧或機場候機樓,用戶都能夠訪問這些在線社區(qū)。 然而,互動只限于能夠和Flash應用程序直接通信的設備。因此,人類輸入設備僅 限于傳統(tǒng)的鍵盤、諸如電腦鼠標的定位設備(pointingdevices)、網(wǎng)絡攝像機以及在Flash 中具有直接硬件支持的其它設備。另外,F(xiàn)lash應用程序的輸出一般限于在執(zhí)行Flash應 用程序的系統(tǒng)上播放的視聽內(nèi)容。因此,在Flash應用程序中,很難支持諸如單獨的設備上 的視聽回放以及振動、物理對象的運動的特征。 雖然可直接連接到Flash的外圍設備對于傳統(tǒng)的應用可能是合適的,但是與在線 游戲和社區(qū)相互作用的更多的創(chuàng)新方式可能要求不在Flash中實施的新的硬件支持。雖然 這種新硬件可能容易由單獨的硬件或軟件支持,但是用戶會更喜歡技術麻煩最少的解決方 案。Flash應用程序能夠方便地在互聯(lián)網(wǎng)上被訪問,并且在許多系統(tǒng)中,一般預裝了或可容 易獲得Flash環(huán)境,使得用戶免去了使用專用的游戲硬件或安裝額外的游戲軟件的麻煩, 使用專用的游戲硬件或安裝額外的游戲軟件在公共環(huán)境中尤其不切實際。由于Flash平臺 的方便可得,因而用戶能夠從家里、辦公室或在旅行期間訪問相同的在線賬戶。然而,對于 直接硬件訪問,F(xiàn)lash平臺只提供有限的支持,限制了用戶能夠與Flash應用程序相互作用 的方式。 因此,需要通過提供一種方式來克服本領域中的缺陷和不足,該方式用于用戶與 可廣泛訪問的Flash平臺相互作用,以提供在共享在線環(huán)境下的互動體驗,突破了當前對 在Flash應用程序中可直接訪問的硬件的限制。
發(fā)明概述 提供系統(tǒng)和方法,其提供用于Flash應用程序的具有分布式對象的集成硬件平 臺,該平臺大體上如在至少一個附圖中所示和/或關于至少一個附圖所描述,在權利要求 中被更全面地闡述。
附圖簡述 在審閱了下面的詳細描述和附圖后,本發(fā)明的特征和優(yōu)點對于本領域的普通技術人員將變得更加明顯,其中
圖1呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式的集成硬件平臺環(huán)境的框圖; 圖2a呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,描述用于所述集成硬件平臺的接口生
成工作流程的流程圖; 圖2b呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,用于由Flash開發(fā)者所利用的所述集成 硬件平臺的Flash開發(fā)環(huán)境的框圖; 圖2c呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,用于由硬件開發(fā)者所利用的所述集成 硬件平臺的硬件開發(fā)環(huán)境的框圖; 圖3呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,具有分布式對象的集成硬件平臺環(huán)境的 框圖;以及 圖4示出了根據(jù)本發(fā)明的一種實施方式描述步驟的流程圖,通過這些步驟,集成 硬件平臺中的硬件設備的處理器經(jīng)由用于Flash應用程序的應用程序接口 (API)來提供硬 件控制。 發(fā)明詳述 本申請是針對用于Flash的具有分布式對象的集成硬件平臺的一種系統(tǒng)和方法。 下面的描述包含有關本發(fā)明的實施的具體信息。本領域的技術人員將會意識到,本發(fā)明可 以用與本申請具體討論的方式所不同的方式來實施。此外,為了不使本發(fā)明模糊,本發(fā)明的 一些具體細節(jié)未被討論。本申請中未描述的具體細節(jié)在本領域的普通技術人員的知識范圍 之內(nèi)。本申請的附圖及其伴隨的詳細描述僅針對本發(fā)明的示例性實施方式。為保持簡潔, 使用本發(fā)明的原則的本發(fā)明的其他實施方式在本申請中未被具體描述,且未由本發(fā)明的附 圖具體圖解。 圖1呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式的集成硬件平臺環(huán)境的框圖。環(huán)境100 包括硬件設備110和主機系統(tǒng)150。硬件設備110包括外部硬件115、硬件系統(tǒng)125、硬 件API 131、遠程分布式方法132、串行器133、硬件應用程序135、分布式方法136、解串器 (deserializer) 137、串行連接API 139、以及連接器142。外部硬件115包括傳感器116、 伺服系統(tǒng)117以及顯示裝置118。硬件系統(tǒng)125包括環(huán)境監(jiān)測系統(tǒng)126、機械控制系統(tǒng)127 以及表示系統(tǒng)(presentation system) 128。連接145提供硬件設備110的連接器142和主 機系統(tǒng)150的接受器(rec印tacle) 152之間的數(shù)據(jù)通信。主機系統(tǒng)150包括接受器152、 主機處理器160和主機存儲器170。主機存儲器170包括安全服務162、代理服務器163 以及Flash運行時環(huán)境(runtime environment) 174。 Flash運行時環(huán)境174包括動作腳 本(Actionscript)硬件API 171、 Flash應用程序175以及Flash 二進制套接字(binary socket)API 179。動作腳本硬件API 171包括串行器173、遠程分布式方法172、解串器177 以及分布式方法176。 從一個高層次的角度看,環(huán)境100允許主機系統(tǒng)150與連接的硬件設備110相互 作用。主機系統(tǒng)150經(jīng)由主機處理器160運行Flash應用程序175,該Flash應用程序可 以進一步連接到由游戲服務器的分布式在線服務所支持的聯(lián)網(wǎng)在線游戲。除了游戲,F(xiàn)lash 應用程序175還可以支持任何其他類型的分布式在線應用程序,如虛擬世界、業(yè)務合作、社 會網(wǎng)絡或電子商務。 為了簡便,圖1僅描述了單個主機系統(tǒng),且忽略了關于所述游戲服務器的細節(jié),其在下面的圖3中以更多細節(jié)來描述。此外,圖1僅描述了連接到主機系統(tǒng)150的單個硬件 設備,但是可選擇的實施方式可以允許并行訪問在運行Flash應用程序的單個主機系統(tǒng)上 的許多硬件設備。例如,F(xiàn)lash應用程序175可能包括一個賽車游戲,允許多個編號和類型 的硬件設備如方向盤和踏板連接到主機系統(tǒng)150,以分屏幕視頻顯示,以容納多個游戲者。 然后Flash應用程序175能夠被設計成探測和利用所有連接的方向盤和踏板,并且代理服 務器163能夠相應地配置為在Flash應用程序175和多個硬件設備之間適當?shù)匕匆?guī)定路 線發(fā)送通信。這種多個硬件設備特性還可以與在線游戲服務器結合,以提供在硬件設備和 Flash應用程序之間的多對多通信,例如允許在線賽車,其中多個參加的主機系統(tǒng)的每一個 都能夠容納一個或幾個游戲者,這取決于連接到每一個主機系統(tǒng)的硬件設備的數(shù)量。然而, 為便于簡化例子和提高可讀性,本申請將集中于只有單個硬件設備連接到主機系統(tǒng)的實施 方式。 硬件設備110可以提供新穎的特性例如物理運動、環(huán)境監(jiān)測、次要顯示裝置或揚 聲器以及其他硬件能力給Flash應用程序175,其對于標準的Flash平臺并非可用。通過 此額外的硬件,與主機系統(tǒng)150的相互作用被擴展到Flash運行時環(huán)境174的本身能力和 主機系統(tǒng)150的標準支持的硬件能力之外。通過利用硬件應用程序接口 (API) 131實施 RMI (遠程方法調(diào)用),F(xiàn)lash應用程序175能夠遠程控制硬件設備110的硬件系統(tǒng)125,或 提供硬件設備110所請求的數(shù)據(jù)。類似地,在相反的方向,動作腳本硬件API 171允許硬件 設備110遠程控制Flash應用程序175或返回所請求的值。此外,圖1中所省略的分布式 對象API,通過與游戲服務器通信,可以允許Flash應用程序175與連接到其他主機系統(tǒng)的 其他遠程硬件設備聯(lián)接。 主機系統(tǒng)150可能包括個人計算機、視頻游戲機、移動電話或能運行所述Flash平 臺的任意其他設備。主機系統(tǒng)150可能以前已經(jīng)經(jīng)由網(wǎng)頁瀏覽器訪問過網(wǎng)頁服務器,以通 過諸如互聯(lián)網(wǎng)的網(wǎng)絡下載Flash應用程序175。然后Flash應用程序175可以在Flash運 行時環(huán)境174中執(zhí)行,該環(huán)境可包括提供Flash播放器支持的網(wǎng)頁瀏覽器插件。
運行時環(huán)境174提供一種環(huán)境,其中Flash應用程序175能夠被翻譯成可由主機 處理器160執(zhí)行的機器代碼。Shockwave Flash (SWF)文件不對應于能夠被直接執(zhí)行的機 器代碼,而是以中間字節(jié)碼的形式被儲存,需要翻譯成機器代碼以運行在預期的平臺上。最 初,這可能像是不利的,但正是因為SWF文件不依賴于通過直接編譯成機器代碼的特定的 結構,才使得相同的SWF文件能夠通過利用適合各個所需的目標平臺的Flash運行時環(huán)境 而被跨完全不同的平臺使用,類似Java。這允許Flash應用程序被運行于多種多樣的背景、 平臺和配置,但是,由于使用解釋性運行時環(huán)境的緣故,有一些處理代價。而諸如動態(tài)編譯 和適時(just-in-time, JIT)編譯等技術能夠減輕使用字節(jié)碼而不是預編譯的二進制所帶 來的許多性能損失。 對于多數(shù)用戶,最熟悉的Flash運行時環(huán)境是用于諸如InternetExplorer或 Firefox的網(wǎng)頁瀏覽器的瀏覽器插件,支持特定的平臺或體系結構,諸如Windows或Linux。 這允許Flash應用程序再現(xiàn)在網(wǎng)頁瀏覽器的背景中。然而,瀏覽器插件不是再現(xiàn)Flash的 唯一方法。例如,AdobeIntegrated Runtime或Adobe AIR提供一種跨平臺的運行時環(huán)境, 其支持Flash,但是著眼于本地安裝的桌面應用程序而非網(wǎng)頁瀏覽器中運行的程序。因此, Adobe AIR環(huán)境能夠提供額外的特性,其一般對于本地安裝的桌面應用程序如本地或離線數(shù)據(jù)儲存可用。無論Flash運行時環(huán)境174是作為瀏覽器插件運行、是被本地安裝作為 Adobe AIR、還是代表一些可選擇的應用程序范例,F(xiàn)lash應用程序175都能夠被支持。
硬件設備110經(jīng)由連接145可鏈接到主機系統(tǒng)150,連接145可以包括,例如物理 上鏈接到連接器142和接受器152的通用串行總線(USB)電纜。在此實施方式中,代理服 務器163可以包括用于在Flash 二進制套接字API 179所使用的二進制套接字通信與串行 連接API 139所使用的USB串行連接之間的無縫翻譯的機制。 USB僅僅是用于硬件設備連接的一個示例性協(xié)議,并且可選擇的實施方式可以使 用例如Firewire連接器,或使用諸如Bluetooth或WiFi協(xié)議的無線傳輸。如果連接145包 括物理電纜如USB或Firewire,那么連接145能夠從主機系統(tǒng)150獲取電力以操作硬件設 備110的組件。在無線傳輸?shù)那闆r下,連接器142和接受器152可能會被無線接收器和發(fā)射 器取代,連接145可代表無線射頻信號,并且電力可能通過具有插接站(dockingstation) 的嵌入式可充電電池或一些其他方法來提供。有線和無線連通性都還可能被提供有對電池 充電的有線連接。由于代理服務器163和串行連接API 139對于Flash應用程序175和硬 件應用程序135是模塊化的,所以新連通性協(xié)議支持能夠容易被實施,因為前述應用程序 不直接與連通性協(xié)議連接。 —旦硬件設備110被提供了電力,硬件應用程序135能夠經(jīng)由硬件API 131操縱 硬件系統(tǒng)125,硬件系統(tǒng)125包括環(huán)境監(jiān)測系統(tǒng)126、機械控制系統(tǒng)127以及表示系統(tǒng)128。 所提供的外圍硬件系統(tǒng)僅僅是示例性的,因為任意硬件可以被添加到硬件設備110。環(huán)境 監(jiān)測系統(tǒng)126可提供關于外部環(huán)境的不同的細節(jié),如觸覺相互作用、音頻反饋和視頻反饋, 其可以由觸覺傳感器、揚聲器和攝像機支持。機械控制系統(tǒng)127可通過控制伺服系統(tǒng)、傳動 裝置、發(fā)動機以及其他機械設備為硬件設備110的運動做準備。表示系統(tǒng)128可控制不同 的視聽元件,如LCD屏、揚聲器和LED燈。外部硬件115提供實際的硬件組件以支持硬件系 統(tǒng)125,包括用于監(jiān)測的傳感器116、用于運動的伺服系統(tǒng)117以及用于顯示圖像的顯示裝 置118。 硬件設備110還包括遠程分布式方法132和分布式方法136,形成RMI系統(tǒng)的硬 件設備方面。而硬件應用程序135能夠根據(jù)分布式方法136使用硬件API 131來控制硬 件系統(tǒng)125,或者發(fā)送遠程分布式方法132以請求來自Flash應用程序175的服務。類似 地,F(xiàn)lash應用程序175能夠使用動作腳本硬件API 171來調(diào)用遠程分布式方法172或接 收分布式方法176,這形成了前述RMI系統(tǒng)的Flash方面。串行器133和解串器137為硬 件設備110實行可能必要的、不同的對象數(shù)據(jù)的變換,如信號編組(marshalling)和解組 (unmarshalling)、引用解析(reference resolving)以及其他操作。可移植的數(shù)據(jù)流使得 即使在不同的結構或環(huán)境的遠程位置也可以是語義上相同的。例如,相應的串行器173和 解串器177允許主機系統(tǒng)150與硬件設備110無縫通信對象數(shù)據(jù),即使主機系統(tǒng)150運行 在完全不同的結構上。 Flash應用程序175通過使用遠程方法以驅(qū)動硬件系統(tǒng)125而非試圖直接控制硬 件系統(tǒng)125,能夠達到更加及時和準確的硬件控制。當硬件系統(tǒng)125需要以嚴格的定時容 差來驅(qū)動以有效地或完全地運行時,尤其如此。例如,伺服系統(tǒng)117可以由脈寬調(diào)制預期脈 沖信號以只有幾毫秒的周期率來驅(qū)動。由于硬件設備110的嵌入式處理器(圖1中未顯 示)能夠?qū)⑵渌匈Y源僅用于服務硬件應用程序135,因此,如果硬件應用程序135被適當開發(fā),則其能夠支持有保證的及時的脈沖信號生成。 然而,F(xiàn)lash應用程序175可以在如Windows的通用的多任務主機平臺上運行,其 設計成通過使用進程調(diào)度程序以同時容納幾個不同的應用程序來服務所有的執(zhí)行任務。因 此,F(xiàn)lash應用程序175可能需要與其他任務競爭主機處理器160的關注。因此,需要實時 服務的硬件設備110上的任務可能不會收到有保證的資源,因為硬件中斷或其他軟件進程 可能搶占主機處理器160。即使在主機系統(tǒng)150上有足夠的資源可用以服務于時間關鍵的 任務,但由于命令從Flash應用程序175發(fā)送到硬件系統(tǒng)125的協(xié)議開銷,可能會引進一些 延遲。在此延遲的期間,用于硬件控制的關鍵的時間窗口可能已經(jīng)消逝。
另一方面,諸如由嵌入式處理器提供的那些專用的主機外(off-host)的計算,能 夠提供用于細粒度(fine-grained)硬件控制的實時響應性。當開發(fā)硬件應用程序135時, 可針對硬件設備110中的嵌入式處理器的能力來優(yōu)化方法,以確保硬件系統(tǒng)125和相應的 外部硬件115在嵌入式處理器所提供的有限的CPU周期內(nèi)被有效地驅(qū)動。由于嵌入式處理 器不需要像通用的處理器那樣支持其他應用程序,方法執(zhí)行時間能夠在外部硬件115所要 求的時間容差內(nèi)被測量和優(yōu)化。因此,由硬件應用程序135所支持的遠程方法能夠保證用 于準確和有效的硬件控制的及時性。 在Flash應用程序175能夠調(diào)用遠程方法以控制硬件系統(tǒng)125之前,必須首先提 供對用于硬件設備110的分布式對象的引用,其可以例如在通信握手過程的結束時被交 換,或通過咨詢名稱目錄服務而被獲取。 一旦獲取了所述分布式對象,其公開或提供可以由 Flash應用程序175調(diào)用的遠程方法的接口,在圖1中示為遠程分布式方法172。這些遠程 方法可例如允許環(huán)境監(jiān)測系統(tǒng)126經(jīng)由傳感器116獲取溫度數(shù)據(jù),允許機械控制系統(tǒng)127 經(jīng)由伺服系統(tǒng)117移動一個對象,以及允許表示系統(tǒng)128在顯示裝置118上顯示圖像。
因此,F(xiàn)lash應用程序175的開發(fā)者不必使自己關心硬件設備110的詳細運作,并 且能夠簡單地調(diào)用由動作腳本硬件API 171公開的遠程方法,其由例如在硬件設備110的 機器代碼實施。類似地,如果硬件設備110需要來自Flash應用程序175的、待被完成的 某些信息或任務,硬件設備110的開發(fā)者能夠使用遠程分布式方法132,而不是不得不理解 Flash應用程序175的錯綜復雜。通過使用模塊式開發(fā)的這種技術,工作流程能夠被分段和 獨立地開發(fā),加快了交付日程并且控制了開發(fā)費用。 雖然圖1已經(jīng)采用面向?qū)ο蟮腞MI方式用于遠程執(zhí)行,,但是也可以使用遠程過程 調(diào)用(RPC)或其他提供遠程執(zhí)行的方法。也可以實施圖1中未圖示的更靈活的RMI方式, 例如支持可動態(tài)加載的類的RMI系統(tǒng)。目前,只有對象引用被傳遞,并且API實現(xiàn)被假設存 在于遠程位置??蓜討B(tài)加載的類將允許硬件API容易地更新,因為API實現(xiàn)可以按更新的 方法的需求被獲取。 然而,由于硬件設備110的嵌入式處理器可能已經(jīng)因費用和電力考慮而抑制了計 算資源,復雜的RMI系統(tǒng)可能是不合乎要求的。待在硬件設備110上執(zhí)行的方法一般會眾 所周知且是不變的,因為硬件系統(tǒng)125將可能不支持終端用戶的硬件系統(tǒng)模塊化的交換, 所以,可能更為合理的是,為硬件設備110建立嵌入式靜態(tài)硬件API,使其適合于制造中將 包括的具體的硬件系統(tǒng)。然而,所述靜態(tài)硬件API還可能被儲存在可擦寫存儲器部分,如果 錯誤修正或額外的方法被開發(fā)用于硬件系統(tǒng)125,則允許硬件API仍然可被更新。
Flash運行時環(huán)境174能夠通過主機系統(tǒng)150的網(wǎng)絡協(xié)議棧,例如傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)協(xié)議棧,來路由通信。由于Flash應用程序175僅能夠直接尋址在 Flash運行時環(huán)境174中本身支持的硬件,而網(wǎng)絡通信在Flash運行時環(huán)境174中是本身支 持的,所以,F(xiàn)lash應用程序175可改為利用網(wǎng)絡通信來與硬件設備110通信。
然而,由于硬件設備110通過USB而非網(wǎng)絡被連接到主機系統(tǒng)150,代理服務器 163提供Flash應用程序175和硬件設備110之間的路由服務轉換。代理服務器163可以 作為本地主機服務而執(zhí)行,截接通過指定的網(wǎng)絡端口的通信傳播。連接145建立之后,在硬 件設備110和主機系統(tǒng)150之間的初始的握手可能導致安全服務162和代理服務器163從 硬件設備IIO被復制到主機存儲器170,用于主機處理器160的進一步執(zhí)行。然后Flash二 進制套接字API 179能夠被配置為通過用于與硬件設備110通信的指定的網(wǎng)絡端口與本地 主機通信,代理服務器163無縫地處理二進制套接字數(shù)據(jù)和串行數(shù)據(jù)之間的轉換。因此,代 理服務器163通過利用Flash本身支持的網(wǎng)絡通信能力,橋接硬件設備110和Flash應用 程序165之間的通信缺口。 允許Flash應用程序175發(fā)送和接收來自任意位置的數(shù)據(jù),會造成潛在的安全問 題,尤其對于DNS綁定攻擊,所以不同的安全協(xié)議已經(jīng)在Flash的較新的版本中被實施。特 別令人感興趣的是套接字策略文件,其呈現(xiàn)規(guī)則列表,為套接字連接管理允許的網(wǎng)絡端口 和主機。因此,套接字策略文件能使得服務器可以拒絕來自某些主機或端口的訪問,但是 Flash客戶必須首先覺察到它們。 因此,在Flash運行時環(huán)境174允許Flash 二進制套接字API 179通過所請求的 網(wǎng)絡端口連接到服務器目的地之前,F(xiàn)lash運行時環(huán)境174通過默認端口 843自動向同一 服務器目的地的IP地址發(fā)出對套接字主策略文件的請求。即使服務器目的地和請求的主 機在相同的域,此請求也被發(fā)送??蛇x擇地,F(xiàn)lash二進制套接字API 179能夠明確指定一 個可選擇的端口來請求安全策略。如果服務器目的地在超時周期內(nèi)不提供響應,或者如果 返回的套接字策略文件拒絕來自主機系統(tǒng)150或所請求的網(wǎng)絡端口的訪問,那么Flash運 行時環(huán)境174將拒絕與服務器目的地的套接字通信,并且Flash 二進制套接字API 179可 以為原始請求返回 一個錯誤代碼。 通過提供套接字策略文件形式的被適當格式化的安全策略,在代理服務器163所 使用的網(wǎng)絡端口上允許來自主機系統(tǒng)150的訪問,安全服務162可以滿足Flash的以上的 安全特性。因此,F(xiàn)lash運行時環(huán)境174被授予許可來通過代理服務器163管理的端口與 服務器目的地通信,或者與主機系統(tǒng)150通信,因為本地主機是一個身份參照(identity reference)。這些許可僅僅是使得主機系統(tǒng)150和硬件設備110之間能夠相互通信的最少 數(shù)量的特權,并且安全服務162能夠例如返回更廣闊的套接字策略文件,允許從任何主機 或任何端口訪問。 雖然套接字策略文件指定用于套接字通信的許可,但是套接字元策略指定訪問套 接字策略文件自身的許可。套接字元策略可以僅僅被限定在從默認端口 843提供的主套接 字策略文件中。然而,由于默認的元策略允許從服務器目的地上的任何端口和任何位置訪 問套接字策略,所以一般不需要指定一個元策略,因為"所有"設置是默認的。此外,默認的 套接字元策略預計對于Flash的未來版本仍然保持"所有"。 雖然安全服務162和代理服務器163允許Flash應用程序175與硬件設備110通 信,但是其需要由主機處理器160執(zhí)行以提供這種通信服務。雖然傳統(tǒng)的本地安裝的軟件通過安裝本地服務或?qū)iT的驅(qū)動程序能夠很普通地完成這一點,但是在Flash應用程序的 背景下,此情況可能不那么明顯。 —種可能是在連接145 —建立時就使用握手過程,這啟動執(zhí)行安全服務162和代 理服務器163。此握手過程可能例如依靠于呈現(xiàn)作為一種公共的HID(人機接口設備)的 硬件設備110,使得主機系統(tǒng)150能夠自動支持不具有專門的驅(qū)動程序的硬件設備IIO,并 且Flash應用程序175能夠簡單地輪詢硬件設備110的存在,以啟動握手過程。以這種方 式,用戶能夠簡單地連接硬件設備IIO,用于在Flash應用程序175中立即使用,而無需處 理復雜的軟件或驅(qū)動程序的安裝。其他實施方式可能使用例如自動執(zhí)行機制如Windows的 Autorun,或可下載的驅(qū)動插件如Java或ActiveX小部件(widget)。然而,由于用戶可能不 得不面對的各種安全告警和提示,使用由主機系統(tǒng)150自動支持的一般公認的接口的實施 方式可能是優(yōu)選的,因為這種接口一般能夠在沒有用戶介入的情況下運行。未來的主機平 臺可能提供可信計算,使得可以允許自動執(zhí)行來自合法發(fā)布者的可信代碼,從而可能提供 更加靈活和精細的系統(tǒng)。 出于本申請的目的,假設握手過程能夠被實施,以在主機處理器160上開始安全 服務162和代理服務器163的執(zhí)行。作為備用,如果用于硬件設備110的自動支持的不同嘗 試失敗了,可以提供手動軟件安裝指南或軟件下載給終端用戶。 一旦驅(qū)動程序或軟件被手 動安裝,其可能被配置為在主機系統(tǒng)150 —起動時就自動執(zhí)行,減輕手動安裝的一些麻煩, 因為用戶僅需要完成該過程一次。 移動到圖2a,圖2a呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,描述用于所述集成硬件平 臺的接口生成工作流程的流程圖。流程圖200包括API契約文件(contract file)290、 RMI接口生成器293、Flash二進制套接字API 279、動作腳本硬件API 271、C/C++串行連接 API 239、串行器233、解串器237、硬件API 231、遠程分布式方法232以及分布式方法236。 API契約文件290包括硬件API定義291和Flash API定義292。 RMI接口生成器293包 括Flash動作腳本接口構建器(builder) 294和硬件C/C++接口構建器295。動作腳本硬件 API 271包括串行器273、解串器277、遠程分布式方法272以及分布式方法276。
動作腳本硬件API 271對應于圖1中的動作腳本硬件API 171,其包括對應于串行 器173的串行器273、對應于解串器177的解串器277、對應于遠程分布式方法172的遠程 分布式方法272、以及對應于分布式方法176的分布式方法276。 Flash 二進制套接字API 279對應于Flash 二進制套接字API 179。 C/C++串行連接API 239對應于串行連接API 139。串行器233對應于串行器133。解串器237對應于解串器137。硬件API 231對應于 硬件API 131。遠程分布式方法232對應于遠程分布式方法132。分布式方法236對應于 分布式方法136。 在流程圖200中可以發(fā)現(xiàn)如圖1所描述的使用用于遠程執(zhí)行的RMI方式的一些開 發(fā)益處。在寫實施代碼之前,可以提前結合關于Flash遠程方法或Flash API定義292和 硬件遠程方法或硬件API定義291兩者將如何運作的協(xié)定標準來準備API契約文件290。 利用通過RMI接口生成器293處理API契約文件290的結果、以及代替遠端現(xiàn)行工作(WIP) API方法的模擬測試系統(tǒng)的開發(fā),開發(fā)團隊能夠獨立地開發(fā)Flash動作腳本或硬件C/C++, 而不等待或依靠其他開發(fā)團隊的進展。只要開發(fā)者遵循由API契約文件290預定的規(guī)范, 那么獨立開發(fā)的代碼的后來的集成可以沒有任何問題地一起無縫地工作。此外,通過允許RMI接口生成器293產(chǎn)生處理RMI支持和網(wǎng)絡或串行總線通信的細節(jié)的API模塊,可以避免 可能起因于手動編碼這些API模塊的人類編程錯誤,并且開發(fā)者能夠?qū)⑵渥⒁饬杏趯?施用于主要的Flash或C/C++應用程序的代碼。 起因于API契約文件290的編程代碼的增加的模塊化和抽象化也促進了更容易 讀、開發(fā)、調(diào)試和維護的更高級的程序設計風格,長期來說減少了開發(fā)時間和費用。雖然具 有大量的嵌入式低級程序代碼和冗余碼的專門(ad-hoc)的程序設計風格可以提供更快的 初始開發(fā)時期,但是,對于任何中等大小的項目,例如在線游戲,在缺少代碼的邏輯模塊化 的情況下,代碼維護可能迅速變成不利條件,而由API契約文件290所提供的清晰定義的 API能夠促使邏輯模塊化和代碼重用。 檢查RMI接口生成器293, Flash動作腳本接口構建器294和硬件C/C++接口構建 器295兩者都生成圖1中已經(jīng)觀察到的不同的API模塊。RMI接口生成器293能夠從API 契約文件290取得一般描述的API定義,并且將其轉換成以用于特定的目標平臺的代碼描 述的API模塊,或圖2a情況下的Flash和C/C++。 RMI接口生成器293還可以被配置為通 過替換接口構建器而為其它目標平臺生成API模塊,但是C/C++對于低級系統(tǒng)編程是常用 的編程語言,并且也可適合產(chǎn)生用于測試硬件設備210的機器代碼。常規(guī)的RMI接口生成 器293可能被內(nèi)部開發(fā),或者API契約文件290可能使用現(xiàn)有的接口描述語言來表達,并且 現(xiàn)有的跨平臺RMI接口生成器293可以被用來加快開發(fā)。 轉向圖2b,圖2b呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,用于由Flash開發(fā)者所利 用的所述集成硬件平臺的Flash開發(fā)環(huán)境的框圖。圖2b包括測試主機系統(tǒng)250,其包括 WIP(現(xiàn)行工作)Flash應用程序275、動作腳本硬件271 、Flash二進制套接字API 279、以及 硬件設備模擬器296。測試主機系統(tǒng)250可以對應于圖1中的主機系統(tǒng)150的簡化版本。
Flash 二進制套接字API 279和動作腳本硬件API 271顯示為灰色以強調(diào)這些 API模塊已經(jīng)通過RMI接口生成器293生成,并且不需要來自開發(fā)者的進一步的相互作用。 因此,F(xiàn)lash開發(fā)團隊能夠?qū)㈤_發(fā)集中于WIP Flash應用程序275、或WIP Flash應用程序 275將在客戶方面支持的在線游戲,包括分布式方法276的實施。 由于獨立的團隊可能正在開發(fā)硬件設備,硬件設備模擬器296作為替代物來代 替,用于開發(fā)目的。硬件設備模擬器296不一定需要準確地模擬硬件設備。例如硬件設備模 擬器296能夠?qū)嵤┓椒ㄒ苑祷仡A定的測試值,或其可能更準確模仿實際硬件設備的響應, 這取決于可用的開發(fā)資源、產(chǎn)品時間表以及其他開發(fā)團隊的進展?,F(xiàn)行工作硬件設備可能 也被使用,其中未開發(fā)好的遠程方法被指向硬件設備模擬器296而已開發(fā)好的遠程方法被 指向WIP硬件。 類似地,獨立的網(wǎng)絡和服務器團隊可能開發(fā)項目的分布式對象部分。通過使用用 于在線游戲的服務器模擬器,即使沒有工作網(wǎng)絡基礎結構,對于網(wǎng)絡互操作性,測試主機系 統(tǒng)250然后仍然能夠被測試。相反地,如果這種網(wǎng)絡基礎結構確實存在,那么可針對實際聯(lián) 網(wǎng)的硬件,對測試主機系統(tǒng)250進行測試。如果這種測試確實發(fā)生了 ,那么可能需要進行一 些處理以阻止一般公眾試圖訪問圖2b中的測試組件。例如,阻止公眾訪問的防火墻可能被 安裝用于測試組件,或者本地網(wǎng)絡可能與公共互聯(lián)網(wǎng)隔離。 移動到圖2c,圖2c呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,由硬件設備開發(fā)者所 利用的硬件開發(fā)環(huán)境的框圖。圖2c包括測試硬件設備210,其包括硬件API 231、原型
11(prototype)硬件系統(tǒng)225、 WIP硬件應用程序235、遠程分布式方法232、串行器233、分布 式方法236、解串器237、C/C++串行連接API 239以及主機系統(tǒng)模擬器297。測試硬件設備 210可以對應于圖1中的硬件設備110的簡化版本。原型硬件系統(tǒng)225可以對應于硬件系 統(tǒng)125。 與圖2b類似,幾個API元件顯示為灰色以表明它們已經(jīng)由RMI接口生成器293準 備,其包括硬件API 231、遠程分布式方法232、串行器233、分布式方法236、解串器237以 及。/0++串行連接八?1 239。因此,硬件開發(fā)團隊能夠?qū)㈤_發(fā)集中于WIP硬件應用程序235、 或者與原型硬件系統(tǒng)225聯(lián)接的主要硬件控制程序、以及分布式方法236的實施。
由于獨立的Flash開發(fā)團隊可能正在開發(fā)Flash應用程序,出于開發(fā)的目的,主機 系統(tǒng)模擬器297作為主機系統(tǒng)來代替,執(zhí)行Flash應用程序。與圖2b中的硬件設備模擬器 296類似,主機系統(tǒng)模擬器297不一定需要準確模擬執(zhí)行Flash應用程序的主機系統(tǒng)。例 如,主機系統(tǒng)模擬器297可以實施方法以返回預定的測試值,或者其可以更準確模仿實際 Flash應用程序的響應,這取決于可用的開發(fā)資源、產(chǎn)品時間表以及其他開發(fā)團隊的進展。 也可使用測試主機系統(tǒng)上的現(xiàn)行工作Flash應用程序,其中未開發(fā)好的遠程方法被指向主 機系統(tǒng)模擬器297而已開發(fā)好的遠程方法被指向WIP Flash應用程序。
類似地,開發(fā)原型硬件系統(tǒng)225可與開發(fā)驅(qū)動硬件系統(tǒng)的軟件分開。集成電路和 電子工程團隊可能獨立于原型硬件系統(tǒng)225工作,而嵌入式系統(tǒng)編程團隊工作于用于驅(qū)動 測試硬件設備210的軟件,兩個團隊預先達成關于原型硬件系統(tǒng)225將怎樣經(jīng)由硬件API 231與WIP硬件應用235接口的協(xié)議。 因此,通過分離邏輯接口,模擬缺失或在開發(fā)部分中,以及利用自動化預處理工具 如圖2a中的RMI接口生成器293,獨立并行開發(fā)可以通過很少的預先計劃例如API契約文 件290的準備來進行。通過周期地重建獨立開發(fā)的現(xiàn)行工作組件和互操作性測試,可能要 求接口修正或?qū)嵤└淖兊娜魏螁栴}可以在變成主要問題之前早期得到解決。因此模塊化編 程方式的優(yōu)點能夠被保留而不犧牲整體方式的測試益處。 圖3呈現(xiàn)了根據(jù)本發(fā)明的一種實施方式,具有分布式對象的集成硬件平臺環(huán)境的 框圖。分布式環(huán)境300包括硬件設備310a、硬件設備310b、硬件設備310c、主機系統(tǒng)350a、 主機系統(tǒng)350b、主機系統(tǒng)350c以及游戲服務器385。硬件設備310a包括串行API 339、硬 件應用程序335a、環(huán)境監(jiān)測系統(tǒng)326a、表示系統(tǒng)328a、觸摸敏感的"貓毛"316a以及揚聲器 318a。硬件設備310b包括串行API 339、硬件應用程序335b、環(huán)境監(jiān)測系統(tǒng)326b、機械控制 系統(tǒng)327b、觸摸敏感的"狗毛"316b以及伺服系統(tǒng)317b。硬件設備310c包括串行API 339、 硬件應用程序335c、環(huán)境監(jiān)測系統(tǒng)326c、表示系統(tǒng)328c、擴音器316c以及揚聲器318c。主 機系統(tǒng)350a到350c的每一個都包括分布式對象API 389、Flash應用程序375、Flash 二進 制套接字API 379以及代理服務器363。連接345a到345c分別將主機系統(tǒng)350a到350c 與硬件設備310a到310c相連接。 雖然每一個主機系統(tǒng)包括相同的應用程序代碼,但是每一個主機系統(tǒng)都有獨立的 主機處理器(圖3中省略)來獨立地運行應用程序代碼。正如圖l,每一個主機客戶可能已 經(jīng)從網(wǎng)頁服務器下載了應用程序代碼。每一個硬件設備還包含特別定制的用于每一個硬件 設備的特定硬件配置的硬件應用程序,每一個硬件應用程序在圖3中省略的嵌入式處理器 上執(zhí)行。幾個其他的細節(jié)在圖3中也省略了,例如用于實施RMI的一些細節(jié),以呈現(xiàn)更加簡明易懂的示例性分布式系統(tǒng)的圖示。如果需要,對于額外的細節(jié),可參考圖l和圖2。
硬件設備310a到310c的每一個都對應于圖1的硬件設備110。串行API 339對 應于串行連接API 139。硬件應用程序335a到335c的每一個都對應于硬件應用程序135。 環(huán)境監(jiān)測系統(tǒng)326a到326c的每一個都對應于環(huán)境監(jiān)測系統(tǒng)126。機械控制系統(tǒng)327b對應 于機械控制系統(tǒng)127。表示系統(tǒng)328a到表示系統(tǒng)328c每一個都對應于表示系統(tǒng)128。主 機系統(tǒng)350a到350c的每一個都對應于主機系統(tǒng)150。 Flash應用程序375對應于Flash 應用程序175。 Flash 二進制套接字API 379對應于Flash 二進制套接字API 179。代理服 務器363對應于代理服務器163。 游戲服務器385有可能經(jīng)由分布式在線服務386連接到幾個主機系統(tǒng)以支持共享 在線環(huán)境。例如,游戲服務器385可能主管一個在線世界,其中用戶由Flash應用程序375 上的動物角色代表。每一個主機系統(tǒng)的用戶可購買代表他們希望在線玩的動物的硬件設 備。因此主機系統(tǒng)350a的用戶可能購買一個貓型的硬件設備作為硬件設備310a,而主機系 統(tǒng)350b的用戶可能購買一個狗型的硬件設備作為硬件設備310b,并且主機系統(tǒng)350c的用 戶可能購買一個鳥型的硬件設備作為硬件設備310c,由圖3中的圖標顯示。然后每一個主 機系統(tǒng)能夠詢問其各自的硬件設備以獲取用于執(zhí)行遠程方法的數(shù)據(jù)對象,并且可以通過一 網(wǎng)絡(未在圖3中顯示)發(fā)送這些數(shù)據(jù)對象到游戲服務器385。然后分布式在線服務386 能夠監(jiān)測和管理每一個連接的主機系統(tǒng),允許主機系統(tǒng)通過分布式對象API 389訪問連接 到其他主機系統(tǒng)的硬件設備。 雖然每一個硬件設備的外觀可能不同,但是內(nèi)部組件可能都類似圖1中的硬件設 備IIO,具有一些不同硬件能力。每一個平臺都裝備有環(huán)境監(jiān)測系統(tǒng),但其被連接到不同的 硬件。對于環(huán)境監(jiān)測系統(tǒng)326a,對觸摸敏感的"貓毛"316a進行硬件訪問。這可能包括貓毛 的人工外層,其配置成探測撫摸和其他觸摸相互作用。因此,主機系統(tǒng)350a的用戶可能撫 摸觸摸敏感的"貓毛"316a,其生成硬件信號以被發(fā)送到環(huán)境監(jiān)測系統(tǒng)326a,如果需要,其被 依次傳遞到硬件應用程序335a用于進一步處理。以相似的方式,觸摸敏感的"狗毛"316b 可能提供相同的功能,并且擴音器316c可能記錄在主機系統(tǒng)350處的用戶的說話的聲音而 非探測觸覺相互作用。 每一個硬件設備還包含一些硬件系統(tǒng)以允許動物對相互作用"作出反應"。例如, 提供到揚聲器318a的訪問的表示系統(tǒng)328a能夠模仿貓叫聲。這可能被觸發(fā)作為對觸摸敏 感的"貓毛"316a被撫摸的響應??刂扑欧到y(tǒng)317b的機械控制系統(tǒng)327b能夠啟動人工 狗尾的擺動,也被觸發(fā)作為對觸摸敏感的"狗毛"316b的撫摸的響應。表示系統(tǒng)328c可能 從擴音器316c獲取音調(diào)上升的聲音樣本,以模仿在主機系統(tǒng)350c處的用戶說出的話。
這些種類的互動玩具可能已經(jīng)在玩具商店的貨架上可得,但是Flash應用程序 375和游戲服務器385提供方便的共享在線背景以使用這些玩具。例如, 一旦用戶連接硬件 設備到其各自的主機系統(tǒng),F(xiàn)lash應用程序375可探測動物類型并且在連接該到主機系統(tǒng) 的顯示裝置上視覺再現(xiàn)該動物化身(avatar)。此外,當Flash應用程序375與分布式對象 API 389聯(lián)接時,用戶不僅能夠看見他們自己的化身,也能夠看見經(jīng)由一網(wǎng)絡連接到游戲服 務器385的其他主機系統(tǒng)的化身。因此,圖3中每一個主機系統(tǒng)的每一個用戶都能夠在他 們各自的顯示裝置上同時看見貓、狗和鳥。 通過利用分布式對象API 389,F(xiàn)lash應用程序375能夠支持分布式用戶與動物化身和相關的硬件設備相互作用。例如,主機系統(tǒng)350b處的用戶可能指示他的狗化身朝與主 機系統(tǒng)350a相關的貓化身吠叫。因此Flash應用程序375可以調(diào)用由硬件設備310b提供 的遠程"吠叫"方法。然后硬件應用程序335b能夠執(zhí)行由被調(diào)用的對象所表明的相關本地 方法,或所述"吠叫"方法。這可能例如發(fā)送命令到機械控制系統(tǒng)327b,使得伺服系統(tǒng)317b 移動硬件設備310b的外部的"顎"。圖3中未示出的用于硬件設備310b的表示系統(tǒng),還可 能被利用來創(chuàng)造通過揚聲器的可聽見的吠叫。 到目前為止,本實施例的所有影響被局限于本地背景、或單一的主機系統(tǒng)和單一 的硬件系統(tǒng)。然而,回想將吠叫指向貓化身的硬件設備310b的用戶,或與主機系統(tǒng)350a相 關的用戶。因此,主機系統(tǒng)350b可能經(jīng)由分布式對象API 389到分布式在線服務386,通知 游戲服務器385此吠叫動作。分布式在線服務386能夠查詢賬戶數(shù)據(jù)庫,以確定與貓化身 相關的主機系統(tǒng)。然后基于可能性、賬戶統(tǒng)計或其他變量,分布式在線服務386能夠執(zhí)行某 種邏輯以確定貓化身的反應應該是什么,并且發(fā)送合適的響應到主機系統(tǒng)350a。例如,分布 式在線服務386方法可能指示主機系統(tǒng)350a調(diào)用"毛直立(fur standing)"方法,導致觸 摸敏感的"貓毛"316a豎立。 可選擇地,貓可能朝狗發(fā)出嘶嘶聲,導致類似的進程發(fā)生。分布式在線服務386可 能詢問與主機系統(tǒng)350b相關的"勇氣(courage)"變量以決定狗的反應。如果狗具有較低 的勇氣,則Flash應用程序375可能指示機械控制系統(tǒng)327b使用伺服系統(tǒng)317b移動狗處 于嗚咽的位置,而高勇氣可能導致狗站立而處于威脅的姿勢。這種響應也能夠被發(fā)回游戲 服務器385,以使得主機系統(tǒng)350a和主機系統(tǒng)350c處的用戶也能夠在他們各自的顯示裝置 上觀察到嗚咽的或威脅貓的狗。再舉一個例子,硬件設備310c的鳥通過揚聲器318c重復 的詞組也可通過主機系統(tǒng)350a和主機系統(tǒng)350b的揚聲器鳴叫,取決于鳥化身與在線世界 中的其他用戶的接近程度。 這個在線動物化身游戲僅僅是一個可能的實施方式,并且許多其他的實施方式能 夠使用相同的原則。例如,F(xiàn)lash應用程序375可包括在線賽車游戲,其具有看起來像方向 盤并且支持力反饋或振動的硬件設備。如果競爭的游戲者將他的車撞到用戶,那么該用戶 的方向盤可能被指示強烈振動,并且相同的影響可能發(fā)生在競爭的游戲者。Flash應用程序 375還可以包括兩個游戲者的聯(lián)網(wǎng)的棋游戲,其具有類似于棋盤的硬件設備,該硬件設備具 有硬件以探測棋子的位置并且移動棋子而沒有手動介入。因此,一邊的用戶能夠手動地移 動棋子,而另一邊的棋子可能自動移動而沒有用戶介入,并且虛擬的棋盤的顯示可以在兩 邊更新。 當然,除了游戲,集成硬件平臺還可以支持其他的應用程序。例如,所述平臺可以 利用用于硬件設備的繪圖板,允許通過Flash應用程序375由互聯(lián)網(wǎng)連接的用戶之間的協(xié) 同繪圖(collaborative drawing)或頭腦風暴(idea brainstorming)。由一個用戶繪制的 草圖能夠被所連接的其他用戶看見,并且其他連接的用戶能夠修改其在繪圖板上看見的草 圖,所有的用戶看見相同的共享的畫布背景(canvas)。由于本申請所描述的集成硬件平臺 提供了到任意種類的硬件的廣義的、抽象的接口,用于擴展Flash應用程序的能力的創(chuàng)造 性的實際上是無限的。 圖4示出了根據(jù)本發(fā)明的一種實施方式描述步驟的流程圖,通過所述步驟,集成 硬件平臺中的硬件設備的處理器經(jīng)由Flash應用程序的應用程序接口 (API)來提供硬件控
14制。流程圖400省去了某些細節(jié)和特性,其對于本領域的普通技術人員是明顯的。例如,作 為本領域已知的,步驟可以包括一個或多個子步驟或可以涉及具體的裝備或材料。雖然流 程圖400中所表明的步驟410到440足以描述本發(fā)明的一種實施方式,但是本發(fā)明的其他 實施方式可以使用與流程圖400中所示的步驟不同的步驟。 參考圖4中流程圖400的步驟410和圖1的環(huán)境100,流程圖400的步驟410包 括硬件設備110的處理器,其通過連接145建立與主機系統(tǒng)150的鏈接。如之前所述,這可 以利用物理連接如USB電纜或通過具有電池作為電源的無線傳輸來做到??蛇x擇地,可以 支持這兩種連接類型,其中物理連接為電池提供充電電力。如果連接145是物理連接,那么 硬件設備110的嵌入式處理器可能會閑置,直到其從連接器142接收到指示電連接的電流。 如果連接145使用無線傳輸,那么插入到主機系統(tǒng)150的無線接收器軟件保護器(dongle) 或手動開關可能會觸發(fā)該嵌入式處理器進入操作狀態(tài)。 一旦硬件設備IIO接收到電力,其 可能開始準備任何必要的握手或協(xié)議過程以打開與主機系統(tǒng)150的通信,例如公開可探測 到的USB設備。 參考圖4中流程圖400的步驟420和圖1中的環(huán)境IOO,流程圖400的步驟420包 括硬件設備110的處理器,其啟動安全服務代碼162和代理服務器代碼163的執(zhí)行。如之 前所述,這可以通過讓主機系統(tǒng)150使用USB HID發(fā)現(xiàn)以及Flash方面的設備輪詢、通過利 用自動操作系統(tǒng)特性、通過使用下載的插件、或通過復制安全服務代碼162和代理服務器 代碼163到主機存儲器170用于由主機系統(tǒng)150的主機處理器160執(zhí)行的其他的方法來完 成。未來的平臺可能提供可信計算,使得允許來自合法發(fā)布者的可信代碼的自動執(zhí)行,從而 提供精細的解決方案。 參考圖4中流程圖400的步驟430和圖1中的環(huán)境IOO,流程圖400的步驟430包 括硬件設備110的嵌入式處理器,其從Flash應用程序175接收由代理服務器163的執(zhí)行 所中繼(relay)的API遠程方法調(diào)用。此事物處理的細節(jié)已經(jīng)結合圖1討論了一些細節(jié), 但是簡略地,遠程分布式方法172被調(diào)用,被串行器173串行,由代理服務器163轉送和轉 換成串行數(shù)據(jù),由串行連接API 139在硬件設備IIO上接收,由解串器137解串,并且由硬 件應用程序135根據(jù)其而起作用。 參考圖4中流程圖400的步驟440和圖1中的環(huán)境IOO,流程圖400的步驟440包 括硬件設備110的處理器,其實施來自步驟430的API RMI所指示的硬件API 131以控制 硬件系統(tǒng)125。再次,此事物處理的細節(jié)已經(jīng)結合圖l和圖2討論了一些細節(jié),但是總結步 驟440,其集中于特定的被調(diào)用的遠程方法的實施,這可能涉及嵌入式機器代碼的執(zhí)行或通 過其他方式執(zhí)行。 另外,主機系統(tǒng)150能夠利用聯(lián)網(wǎng)服務器,如圖3的游戲服務器385,允許與其他主 機系統(tǒng)的硬件設備相互作用。以這種方式,對一個硬件設備的狀態(tài)改變能夠影響不同硬件 設備的狀態(tài)。在如圖3的聯(lián)網(wǎng)背景下,硬件設備310a到310c能夠使用公共的Flash應用程 序375、分布式對象API 389和游戲服務器385,經(jīng)過他們各自的主機系統(tǒng)350a到350c而相 互通信。這開辟了一個互動新世界,其具有對以前在Flash硬件平臺上不直接支持的硬件 設備上的控制。通過使用利用Flash的網(wǎng)絡通信能力的方便的一體化的集成硬件平臺,在 支持共享的在線體驗的Flash應用程序中獲得新硬件的支持可以像插入USB線一樣簡單。
從本發(fā)明的上述描述,明顯的是,在不偏離本發(fā)明的范圍的情況下,可使用不同的技術來實施本發(fā)明的構思。此外,雖然本發(fā)明結合確定實施方式的具體參考而被描述,但是 本領域的普通技術人員將意識到,在不偏離本發(fā)明的精神和范圍的情況下,可以做出形式 或細節(jié)上的改變。因此,所描述的實施方式在所有方面都被視為說明性的而非限制性的。還 應當理解的是,本發(fā)明不局限于這里描述的特定的實施方式,而是在不偏離本發(fā)明的范圍 的情況下能夠有許多重排、修改以及替換。
權利要求
一種計算機平臺,其經(jīng)由用于Flash應用程序的應用程序接口(API)提供硬件控制,所述Flash應用程序在具有主機處理器和主機存儲器的主機系統(tǒng)上的Flash運行時環(huán)境中執(zhí)行,所述計算機平臺包括外圍硬件;平臺處理器;可鏈接到所述主機系統(tǒng)的連接器設備;以及平臺存儲器,其具有由所述Flash應用程序的所述API提供的用于遠程方法的API實現(xiàn)、使得所述Flash應用程序和所述平臺處理器之間能夠通信的代理服務器、以及用于提供安全策略來為與所述平臺處理器的通信授予網(wǎng)絡連接許可的安全服務;其中所述平臺處理器被配置為通過所述連接器設備建立與所述主機系統(tǒng)的鏈接;啟動所述安全服務和所述代理服務器的執(zhí)行;從所述Flash應用程序接收由所述代理服務器的執(zhí)行所中繼的API遠程方法調(diào)用;以及執(zhí)行由所述API遠程方法調(diào)用所指示的所述API實現(xiàn),用于控制所述外圍硬件。
2. 如權利要求1所述的計算機平臺,其中所述平臺處理器還被配置為向一服務器發(fā)送 所述API遠程方法調(diào)用。
3. 如權利要求2所述的計算機平臺,其中所述服務器處理所述API遠程方法調(diào)用,以分 配一 API遠程方法調(diào)用到第二個主機系統(tǒng)。
4. 如權利要求3所述的計算機平臺,其中所分配的API遠程方法調(diào)用由在所述第二個 主機系統(tǒng)上執(zhí)行的Flash應用程序使用,以控制鏈接到所述第二個主機系統(tǒng)的計算機平臺 的外圍硬件。
5. 如權利要求1所述的計算機平臺,其中所述平臺處理器被配置為將安全服務代碼和 代理服務器代碼復制到所述主機存儲器,并且其中所述平臺處理器被配置為使得所述主機 處理器執(zhí)行來自所述主機存儲器的所述安全服務代碼和所述代理服務器代碼。
6. 如權利要求1所述的計算機平臺,其中所述連接器設備被配置為使用通用串行總線 (USB)。
7. 如權利要求1所述的計算機平臺,其中所述外圍硬件被配置為使用提供物理運動的 機械控制系統(tǒng)。
8. 如權利要求1所述的計算機平臺,其中所述外圍硬件被配置為使用提供視聽反饋的 表示系統(tǒng)。
9. 如權利要求1所述的計算機平臺,其中所述外圍硬件被配置為使用環(huán)境監(jiān)測系統(tǒng)以 探測和記錄與所述計算機平臺的外部相互作用。
10. 如權利要求9所述的計算機平臺,其中所述環(huán)境監(jiān)測系統(tǒng)包括用于探測和記錄與 所述計算機平臺的物理相互作用的觸覺傳感器。
11. 如權利要求9所述的計算機平臺,其中所述環(huán)境監(jiān)測系統(tǒng)包括用于音頻記錄的擴 音器。
12. 如權利要求9所述的計算機平臺,其中所述環(huán)境監(jiān)測系統(tǒng)包括用于視頻記錄的攝 像機。
13. —種方法,其由一計算機平臺的平臺處理器使用以經(jīng)由Flash應用程序使用的應 用程序接口 (API)來提供硬件控制,所述Flash應用程序在具有主機處理器和主機存儲器 的主機系統(tǒng)上的Flash運行時環(huán)境中執(zhí)行,所述計算機平臺包括外圍硬件、可鏈接到所述 主機系統(tǒng)的連接器設備、以及平臺存儲器,所述平臺存儲器具有由所述Flash應用程序的 所述API提供的用于遠程方法的API實現(xiàn)、用于使得所述Flash應用程序和所述平臺處理 器之間能夠通信的代理服務器、以及用于提供安全策略來為與所述平臺處理器的通信授予 網(wǎng)絡連接許可的安全服務,所述方法包括通過所述連接器設備建立與所述主機系統(tǒng)的鏈接; 啟動所述安全服務和所述代理服務器的執(zhí)行;從所述Flash應用程序接收由所述代理服務器的執(zhí)行所中繼的API遠程方法調(diào)用;以及執(zhí)行由所述API遠程方法調(diào)用所指示的所述API實現(xiàn),用于控制所述外圍硬件。
14. 如權利要求13所述的方法,其中所述平臺處理器還被配置為向一服務器發(fā)送所述 API遠程方法調(diào)用。
15. 如權利要求14所述的方法,其中所述服務器處理所述API遠程方法調(diào)用,以分配一 API遠程方法調(diào)用到第二個主機系統(tǒng)。
16. 如權利要求15所述的方法,其中所分配的API遠程方法調(diào)用由在所述第二個主機 系統(tǒng)上執(zhí)行的Flash應用程序使用,以控制鏈接到所述第二個主機系統(tǒng)的計算機平臺的外 圍硬件。
17. 如權利要求13所述的方法,其中所述平臺處理器被配置為將安全服務代碼和代理 服務器代碼復制到所述主機存儲器,并且其中所述平臺處理器被配置為使得所述主機處理 器執(zhí)行來自所述主機存儲器的所述安全服務代碼和所述代理服務器代碼。
18. 如權利要求13所述的方法,其中所述連接器設備被配置為使用通用串行總線 (USB)。
19. 如權利要求13所述的方法,其中所述外圍硬件被配置為與周圍的環(huán)境物理上相互 作用。
20. —種方法,其用于控制由具有平臺處理器的計算機平臺提供的外圍硬件,供在一主 機系統(tǒng)上的Flash運行時環(huán)境中執(zhí)行的Flash應用程序使用,所述平臺處理器提供用于使 所述Flash應用程序和所述平臺處理器之間能夠通信的代理服務器、以及用于提供安全策 略從而為與所述平臺處理器通信授予網(wǎng)絡連接許可的安全服務的執(zhí)行,所述方法包括向所述安全服務的執(zhí)行發(fā)起對所述安全策略的請求;確認所述Flash運行時環(huán)境已經(jīng)為與所述平臺處理器的通信授予許可;以及 通過網(wǎng)絡連接發(fā)送API遠程方法調(diào)用到所述代理服務器的執(zhí)行,以控制所述外圍硬件。
全文摘要
提供了用于Flash應用程序的具有分布式對象的集成硬件平臺的系統(tǒng)和方法,用于提供集成硬件平臺,以允許經(jīng)由在主機系統(tǒng)上的Flash運行時環(huán)境中執(zhí)行的Flash應用程序所使用的應用程序接口(API)的硬件控制。提供了計算機平臺,其包括處理器、外圍硬件、連接器設備以及存儲器。所述存儲器包括由用于Flash應用程序的API提供的用于遠程方法的API實現(xiàn)、用于使得Flash應用程序和平臺處理器之間能夠通信的代理服務器、以及用于提供安全策略從而為與平臺處理器的通信授予網(wǎng)絡連接許可的安全服務。API遠程方法調(diào)用允許Flash應用程序控制外圍硬件,并且聯(lián)網(wǎng)的服務器可管理遠程調(diào)用以控制多個聯(lián)網(wǎng)客戶的平臺硬件。
文檔編號G06F9/46GK101776994SQ20101000225
公開日2010年7月14日 申請日期2010年1月12日 優(yōu)先權日2009年1月13日
發(fā)明者喬納森·羅斯 申請人:迪斯尼實業(yè)公司