(57)【要約】      （修正有）【課題】共用オンライン環境内でのインタラクティブ体験をユーザに与え、フラッシュ（登録商標）アプリケーション内で直接アクセス可能なハードウェアの現在の制限をなくす。【解決手段】ホストシステム上のフラッシュ（登録商標）ランタイム環境内で実行されるフラッシュ（登録商標）アプリケーションが使用するアプリケーションプログラム・インタフェース（ＡＰＩ）によるハードウェア制御を可能にする統合ハードウェア・プラットフォームが提供されるシステム及び方法を提供する。プロセッサ、周辺ハードウェア、コネクタ装置、及びメモリを具えたコンピュータ・プラットフォームが提供される。【選択図】図１
2010182297.tif 000002
【特許請求の範囲】
【請求項１】
ホストプロセッサ及びホストメモリを有するホストシステム上のフラッシュ（登録商標）ランタイム環境内で実行されるフラッシュ（登録商標）アプリケーション用のアプリケーションプログラム・インタフェース（ＡＰＩ）を介してハードウェア制御を行うコンピュータ・プラットフォームにおいて：
周辺ハードウェアと；
プラットフォーム・プロセッサと；
前記ホストシステムにリンク可能なコネクタ装置と；
前記フラッシュ（登録商標）アプリケーション用のＡＰＩによって提供されるリモートメソッドのＡＰＩ実装、前記フラッシュ（登録商標）アプリケーションと前記プラットフォーム・プロセッサとの間の通信を可能にするプロキシサーバー、及び前記プラットフォーム・プロセッサとの通信のためのネットワーク接続許可を与えるためのセキュリティポリシーを提供するセキュリティサービスを有するプラットフォーム・メモリとを具え、
前記プラットフォーム・プロセッサは：
前記コネクタ装置を通して、前記ホストシステムとのリンクを確立し；
前記セキュリティサービス及び前記プロキシサーバーの実行を開始し；
前記フラッシュ（登録商標）アプリケーションから、前記プロキシサーバーの実行によって中継されたＡＰＩリモートメソッド呼出しを受信し；
前記ＡＰＩリモートメソッド呼出しが指示する前記ＡＰＩ実装を実行して、前記周辺ハードウェアを制御するように構成されている
ことを特徴とするコンピュータ・プラットフォーム。
【請求項２】
前記プラットフォーム・プロセッサがさらに、前記ＡＰＩリモートメソッド呼出しをサーバーに送信するように構成されていることを特徴とする請求項１に記載のコンピュータ・プラットフォーム。
【請求項３】
前記サーバーが、前記ＡＰＩリモートメソッド呼出しを処理して、第２のＡＰＩリモートメソッド呼出しを第２ホストシステムに配信することを特徴とする請求項２に記載のコンピュータ・プラットフォーム。
【請求項４】
前記配信された第２のＡＰＩリモートメソッド呼出しを、前記第２ホストシステム上で実行されるフラッシュ（登録商標）アプリケーションが使用して、前記第２ホストシステムにリンクされたコンピュータ・プラットフォームの周辺ハードウェアを制御することを特徴とする請求項３に記載のコンピュータ・プラットフォーム。
【請求項５】
前記プラットフォーム・プロセッサが、前記セキュリティサービスのコード及び前記プロキシサーバーのコードを前記ホストメモリにコピーするように構成され、前記プラットフォーム・プロセッサが、前記ホストメモリからの前記セキュリティサービスのコード及び前記プロキシサーバーのコードを、前記ホストプロセッサに実行させるように構成されていることを特徴とする請求項１に記載のコンピュータ・プラットフォーム。
【請求項６】
前記コネクタ装置が、ユニバーサル・シリアルバス（ＵＳＢ）を使用するように構成されていることを特徴とする請求項１に記載のコンピュータ・プラットフォーム。
【請求項７】
前記周辺ハードウェアが、物理的な動きを与える機械制御システムを使用するように構成されていることを特徴とする請求項１に記載のコンピュータ・プラットフォーム。
【請求項８】
前記周辺ハードウェアが、オーディオビジュアル・フィードバックを提供するプレゼンテーションシステムを使用するように構成されていることを特徴とする請求項１に記載のコンピュータ・プラットフォーム。
【請求項９】
前記周辺ハードウェアが、環境監視システムを用いて、前記コンピュータ・プラットフォームとの外部相互作用を検出して記録するように構成されていることを特徴とする請求項１に記載のコンピュータ・プラットフォーム。
【請求項１０】
前記環境監視システムが、前記コンピュータ・プラットフォームとの物理的相互作用を検出して記録するように構成されていることを特徴とする請求項９に記載のコンピュータ・プラットフォーム。
【請求項１１】
前記環境監視システムが、オーディオ録音用のマイクロホンを含むことを特徴とする請求項９に記載のコンピュータ・プラットフォーム。
【請求項１２】
前記環境監視システムが、ビデオ録画用のビデオカメラを含むことを特徴とする請求項９に記載のコンピュータ・プラットフォーム。
【請求項１３】
コンピュータ・プラットフォームによって用いられ、ホストプロセッサ及びホストメモリを有するホストシステム上のフラッシュ（登録商標）ランタイム環境内で実行されるフラッシュ（登録商標）アプリケーションが使用するアプリケーションプログラム・インタフェース（ＡＰＩ）を介してハードウェア制御を行う方法であって、前記コンピュータ・プラットフォームは、周辺ハードウェアと、前記ホストシステムにリンク可能なコネクタ装置と、前記フラッシュ（登録商標）アプリケーション用のＡＰＩによって提供されるリモートメソッドのＡＰＩ実装、前記フラッシュ（登録商標）アプリケーションと前記プラットフォーム・プロセッサとの間の通信を可能にするプロキシサーバー、及び前記プラットフォーム・プロセッサとの通信のためのネットワーク接続許可を与えるためのセキュリティポリシーを提供するセキュリティサービスを有するプラットフォーム・メモリとを具えている方法において、
前記コネクタ装置を通して前記ホストシステムとのリンクを確立するステップと；
前記セキュリティサービス及び前記プロキシサーバーの実行を開始するステップと；
前記フラッシュ（登録商標）アプリケーションから、前記プロキシサーバーによって中継されたＡＰＩリモートメソッド呼出しを受信するステップと；
前記ＡＰＩリモートメソッドが指示する前記ＡＰＩ実装を実行して、前記周辺ハードウェアを制御するステップと
を具えていることを特徴とするハードウェア制御方法。
【請求項１４】
前記プラットフォーム・プロセッサがさらに、前記ＡＰＩリモートメソッド呼出しをサーバーに送信するように構成されていることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記サーバーが、前記ＡＰＩリモートメソッド呼出しを処理して、第２のＡＰＩリモートメソッド呼出しを第２ホストシステムに配信することを特徴とする請求項１４に記載の方法。
【請求項１６】
前記配信された第２のＡＰＩリモートメソッド呼出しを、前記第２ホストシステム上で実行されるフラッシュ（登録商標）アプリケーションが使用して、前記第２ホストシステムにリンクされたコンピュータ・プラットフォームの周辺ハードウェアを制御することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記プラットフォーム・プロセッサが、前記セキュリティサービスのコード及び前記プロキシサーバーのコードを前記ホストメモリにコピーするように構成され、前記プラットフォーム・プロセッサが、前記ホストメモリからの前記セキュリティサービスのコード及び前記プロキシサーバーのコードを、前記ホストプロセッサに実行させるように構成されていることを特徴とする請求項１３に記載の方法。
【請求項１８】
前記コネクタ装置が、ユニバーサル・シリアルバス（ＵＳＢ）を使用するように構成されていることを特徴とする請求項１３に記載の方法。
【請求項１９】
前記周辺ハードウェアが、物理的な動きを与える機械制御システムを使用するように構成されていることを特徴とする請求項１３に記載の方法。
【請求項２０】
ホストシステム上のフラッシュ（登録商標）ランタイム環境内で実行されるフラッシュ（登録商標）アプリケーションが使用するプラットフォーム・プロセッサを有するコンピュータ・プラットフォームによって提供される、周辺ハードウェアを制御する方法であって、前記プラットフォーム・プロセッサは、前記フラッシュ（登録商標）アプリケーションと当該プラットフォーム・プロセッサとの間の通信を可能にするプロキシサーバーを提供し、かつ、前記プラットフォーム・プロセッサとの通信のためのネットワーク接続許可を与えるためのセキュリティポリシーを提供するセキュリティサービスの実行を行う方法において、
前記セキュリティサービスの実行に対して、前記セキュリティポリシーの要求を開始するステップと；
前記フラッシュ（登録商標）ランタイム環境が、前記プラットフォーム・プロセッサとの通信の許可を与えたことを確認するステップと；
ＡＰＩリモートメソッド呼出しを、ネットワーク接続上で、前記プロキシサーバーの実行に対して送信して、前記周辺ハードウェアを制御するステップと
を具えていることを特徴とする周辺ハードウェアの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の背景）
１．発明の分野
本発明は一般に、データ及びグラフィックのプレゼンテーションに関するものである。特に、本発明は、分散オブジェクトを有するフラッシュ（登録商標）アプリケーションに関するものである。
【背景技術】
【０００２】
２．背景技術
フラッシュ（登録商標）プラットフォームは、上質のマルチメディア・インターネットアプリケーションにとって一般的であり、高いブラウザ・プレゼンテーション（提示）レート及び非常に広範なハードウェア及びオペレーティングシステム上での利用可能性を有する。ユーザはフラッシュ（登録商標）アプリケーションを、パーソナルコンピュータから携帯電話及びビデオゲーム機までの多種多様な装置から容易に実行することができる。次第に、近年のフラッシュ（登録商標）アプリケーションは分散オブジェクトを用いて、ユーザとサーバーとの間の共用オンライン・コンテキストをユーザに提供しつつある。その結果、バーチャルコミュニティ（仮想共同体）及びオンラインゲーム界では、ユーザは他のユーザの持続的変化に影響を与えることができる。例えば、ユーザは互いに会話し、アイテムを取り引きし、チームを組んで一団となり、そして他の相互作用を行うことができる。これに加えて、フラッシュ（登録商標）プラットフォームへの容易なアクセス性により、ユーザはこれらのオンライン・コミュニティにほとんどどこでも、家庭でも、オフィスでも、インターネットカフェでも、あるいは空港ターミナルでもアクセスすることができる。
【０００３】
しかし、双方向性は、フラッシュ（登録商標）アプリケーションと直接通信することのできる装置に限定される。従って、人間の入力装置は従来のキーボード、コンピュータマウスのようなポインティングデバイス（指示装置）、ウェブカメラ、及びフラッシュ（登録商標）内の直接的なハードウエアサポートを有する他の装置に限定される。これに加えて、フラッシュ（登録商標）アプリケーションからの出力は一般に、フラッシュ（登録商標）アプリケーションを実行するシステム上で再生されるオーディオビジュアル・コンテンツ（音響映像の内容）に限定される。従って、物理的物体の振動、移動のような特徴、及び独立した装置上でのオーディオビジュアルの再生は、フラッシュ（登録商標）アプリケーション内でサポートすることは困難である。
【０００４】
フラッシュ（登録商標）に直接接続可能な周辺装置は従来のアプリケーションに適し得るが、オンラインゲーム及びコミュニティと相互作用するより革新的な方法は、フラッシュ（登録商標）では実現されない新たなハードウェアサポートを必要とし得る。こうした新たなハードウェアはスタンドアロン（独立型）のハードウェアまたはソフトウェアによって容易にサポートすることができるが、ユーザは最小量の技術的な手間をとる解決法（ソリューション）を選ぶであろう。フラッシュ（登録商標）アプリケーションは、インターネット上で便利にアクセスすることができ、フラッシュ（登録商標）環境は一般にプレインストール（予めインストール）されているか多くのシステムにおいて容易に得ることができ、ユーザが専用ゲーム・ハードウェアを用いるか、あるいは追加的ゲーム・ソフトウェアをインストールする手間を回避することを可能にし、このことは、公開コンテキスト内では特に非実用的である。従って、フラッシュ（登録商標）プラットフォームの容易に利用できることのおかげで、ユーザは家庭から、オフィスで、あるいは旅行中に、同じオンライン・アカウントにアクセスすることができる。しかし、フラッシュ（登録商標）プラットフォームは直接的なハードウェア・アクセスのための限られたサポートしか提供せず、ユーザがフラッシュ（登録商標）アプリケーションとやり取りすることのできる方法を限定する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、ユーザが広範囲にわたってアクセス可能なフラッシュ（登録商標）プラットフォームとやり取りして、共用オンライン環境内でのインタラクティブ（対話型）体験を与え、フラッシュ（登録商標）アプリケーション内で直接アクセス可能なハードウェアの現在の制限を打破することによって、現在技術における欠点及び欠陥を克服する必要性が存在する。
【課題を解決するための手段】
【０００６】
（発明の概要）
実質的に図面に示し、及び／または少なくとも１つの図面に関連して説明し、特許請求の範囲により完全に記載するような、分散オブジェクトを有するフラッシュ（登録商標）アプリケーション用の統合ハードウェア・プラットフォームを提供するシステム及び方法が提供される。
【０００７】
本発明の特徴及び利点は、以下の詳細な説明及び図面を検討した後に、当業者にとってより早く明らかになる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施例による、統合ハードウェア・プラットフォーム環境のブロック図である。
【図２】図２ａは、本発明の一実施例による、統合ハードウェア・プラットフォーム用のインタフェース生成ワークフローを示すフローチャートである。図２ｂは、本発明の一実施例による、フラッシュ（登録商標）開発者が利用する統合ハードウェア・プラットフォーム用のフラッシュ（登録商標）開発環境のブロック図である。図２ｃは、本発明の一実施例による、ハードウェア開発者が利用する統合ハードウェア・プラットフォーム用のハードウェア開発環境のブロック図である。
【図３】本発明の一実施例による、分散オブジェクトを有する統合ハードウェア・プラットフォーム環境のブロック図である。
【図４】本発明の一実施例によるステップを記述するフローチャートであり、これらのステップによって、統合ハードウェア・プラットフォームが、アプリケーションプログラム・インタフェース（ＡＰＩ：Application Program Interface）を介してハードウェア制御を行う。
【発明を実施するための形態】
【０００９】
（実施例の詳細な説明）
本発明は、フラッシュ（登録商標）用の分散オブジェクトを有する統合ハードウェア・プラットフォーム用のシステム及び方法に指向したものである。以下の説明は、本発明の実現に関連する特定情報を含む。本明細書で具体的に説明するのとは異なる方法で本発明を実現することができることは、当業者の認める所である。さらに、本発明の具体的詳細の一部は、本発明をあいまいにしないために説明しない。本明細書で説明しない具体的詳細は、当業者の知識の範囲内である。本願の図面及びそれに付随する詳細な説明は、本発明の好適な実施例に指向したものに過ぎない。簡潔さを保つために、本発明の原理を用いる本発明の他の実施例は、本明細書では具体的に説明せず、図面にも具体的に図示しない。
【００１０】
図１に、本発明の一実施例による統合ハードウェア・プラットフォーム環境のブロック図を示す。環境は、ハードウェア装置１１０及びホストシステム１５０を含む。ハードウェア装置１１０は、外部ハードウェア１１５、ハードウェアシステム１２５、ハードウェアＡＰＩ１３１、リモート（遠隔）分散メソッド１３２、シリアライザ（シリアル化装置）１３３、ハードウェアアプリケーション１３５、分散メソッド１３６、デシリアライザ（逆シリアル化器）１３７、シリアル接続ＡＰＩ１３９、及びコネクタ１４２を具えている。外部ハードウェア１１５は、センサ１１６、サーボ（機構）１１７、及びディスプレイ１１８を含む。ハードウェアシステム１２５は、環境監視システム１２６、機械制御システム１２７、及びプレゼンテーション（提示）システム１２８を含む。接続１４５は、ハードウェア装置１１０のコネクタ１４２とホストシステム１５０のレセプタクル１５２との間のデータ通信をもたらす。ホストシステム１５０は、レセプタクル１５２、ホストプロセッサ１６０、及びホストメモリ１７０を含む。ホストメモリ１７０は、セキュリティサービス１６２、プロキシサーバー１６３、及びフラッシュ（登録商標）ランタイム（実行時）環境を含む。フラッシュ（登録商標）ランタイム環境１７４は、アクションスクリプト・ハードウェアＡＰＩ１７１、フラッシュ（登録商標）アプリケーション１７５、及びフラッシュ（登録商標）バイナリソケットＡＰＩ１７９を含む。アクションスクリプト・ハードウェアＡＰＩ１７１は、シリアライザ１７３、リモート分散メソッド１７２、デシリアライザ１７６、及び分散メソッド１７７を含む。
【００１１】
それぞれの高位から見れば、環境１００は、ホストシステム１５０が、それに接続されたハードウェア装置１１０と相互作用することを可能にする。ホストシステム１５０は、フラッシュ（登録商標）アプリケーション１７５をホストプロセッサ１６０によって実行し、ホストシステム１５０はさらに、ゲームサーバーの分散オンラインサービスによってサポートされるネットワーク・オンラインゲームに接続することができる。ゲームの他に、フラッシュ（登録商標）アプリケーション１７５は、仮想世界（バーチャルワールド）、業務提携（ビジネス・コラボレーション）、ソーシャルネットワーキング（ネットワーク上の社交）、あるいは電子商取引のような他の種類の分散オンライン・アプリケーションをサポートすることができる。
【００１２】
簡単のため、図１は、単一のホストシステムのみを示し、ゲームサーバーに関する詳細は省略して、以下の図３でより詳細に説明する。さらに、図１は、ホストシステム１５０に接続された単一のハードウェア装置のみを示すが、代案実施例は、フラッシュ（登録商標）アプリケーションを実行する単一ホストシステム上の多数のハードウェア装置への同時アクセスを可能にする。例えば、フラッシュ（登録商標）アプリケーション１７５は、複数のハンドル及びペダルのような複数個かつ複数種類のハードウェア装置を、ホストシステム１５０に接続して、分割スクリーンのビデオで複数のプレーヤ（遊技者）を受け入れることを可能にする。従ってフラッシュ（登録商標）アプリケーション１７５は、接続されたすべてのハンドル及びペダルを検出して利用することができ、プロキシサーバー１６３はこれに対応して、フラッシュ（登録商標）アプリケーション１７５と複数のハードウェア装置との間の通信を適切に経路設定（ルーティング）することができる。これら複数のハードウェア装置の機能をオンラインゲームサーバーと組み合わせて、ハードウェア装置とフラッシュ（登録商標）アプリケーションとの間の多対多の通信を提供して、例えば、参加する複数のホストシステムの各々が、それぞれのホストシステムに接続されたハードウェア装置の数に応じて、１人または何人かのプレーヤを受け入れることもできる。しかし、簡潔な例で説明を進めて読み易さを向上させるために、本明細書は、単一のハードウェア装置をホストシステムに接続した実施例に焦点を当てる。
【００１３】
ハードウェア装置１１０は、物理的移動、環境監視、二次的なディスプレイまたはスピーカ、及び他のハードウェア能力のような、標準的なフラッシュ（登録商標）プラットフォームが利用可能でない新規の特徴をフラッシュ（登録商標）アプリケーション１７５に与える。これらの追加的ハードウェアにより、ホストシステム１５０との相互作用が、フラッシュ（登録商標）ランタイム環境１７４の元々の能力及び標準的にサポートされたハードウェア能力を超えて拡張される。ＲＭＩ（Remote Method Invocation：リモート（遠隔）メソッド呼出し）を実現するハードウェアのアプリケーションプログラム・インタフェース（ＡＰＩ）１３１を利用することによって、フラッシュ（登録商標）アプリケーション１７５は、ハードウェア装置１１０のハードウェアシステム１２５を遠隔制御するか、ハードウェア装置１１０から要求されたデータを提供することができる。同様に、逆方向では、アクションスクリプト（Actionscript）ハードウェアＡＰＩが、ハードウェア装置１１０がフラッシュ（登録商標）アプリケーション１７５を遠隔制御するか要求された値を戻すことを可能にする。さらに、図１では省略した分散オブジェクトＡＰＩは、フラッシュ（登録商標）アプリケーションが、ゲームサーバーと通信することによって、他のホストシステムに接続された他のリモート（遠隔）ハードウェア装置とのインタフェースとなることを可能にすることができる。
【００１４】
ホストシステム１５０は、パーソナルコンピュータ、ビデオゲーム機、携帯電話、またはフラッシュ（登録商標）アプリケーションを実行することのできる他の装置を含むことができる。ホストシステム１５０は、ウェブブラウザを介してウェブサーバーに事前にアクセスして、インターネットのようなネットワーク上でフラッシュ（登録商標）アプリケーション１７５をダウンロードすることができる。従って、フラッシュ（登録商標）アプリケーション１７５は、フラッシュ（登録商標）ランタイム環境内で実行することができ、この環境は、フラッシュプレーヤ（登録商標）のサポートを提供することのできるウェブブラウザのプラグインを含むことができる。
【００１５】
フラッシュ（登録商標）ランタイム環境１７４は、フラッシュ（登録商標）アプリケーション１７５を、ホストプロセッサ１６０が実行可能なマシンコード（機械語）に逐次翻訳することのできる環境を提供する。ショックウェーブフラッシュ(ＳＷＦ：Shockwave Flash)（登録商標）ファイルは、直接実行することのできるマシンコードには対応せず、意図するプラットフォーム上で実行するためのマシンコードへの翻訳を必要とする中間バイトコードの形式で記憶される。このことは、初めは欠点に見えるかもしれないが、正確には、ＳＷＦファイルはマシンコードへの直接的コンパイルによって特定アーキテクチャに結び付かないからであり、Ｊａｖａ（登録商標）と同様に、所望の各ターゲット・プラットフォームに適したフラッシュ（登録商標）ランタイム環境を利用することによって、同じＳＷＦファイルを異種のプラットフォーム間で用いることができる。このことは、フラッシュ（登録商標）アプリケーションを多種多様なコンテキスト、プラットフォーム、及び構成上で実行することを可能にするが、インタープリタ（逐次翻訳）のランタイム環境により、いくらかの処理の手間がかかる。ダイナミック・コンパイル及びジャストインタイム（ＪＩＴ：Just in Time）コンパイルのような技術は、事前コンパイルしたバイナリではなくバイトコードを用いる性能上の不利の多くを軽減することができる。
【００１６】
大部分のユーザにとって、最も使い慣れたフラッシュ（登録商標）ランタイム環境は、インターネットエクスプローラ（登録商標）またはファイヤフォックス(Firefox)（登録商標）のようなウェブブラウザ用のブラウザ・プラグインであり、ウィンドウズ(Windows)（登録商標）またはリナックス(Linux)（登録商標）のような特定プラットフォームまたはアーキテクチャをサポートする。このことは、フラッシュ（登録商標）アプリケーションをウェブブラウザのコンテキスト内で表現することを可能にする。しかし、ブラウザ・プラグインがフラッシュ（登録商標）を表現する唯一の方法ではない。例えば、アドビ・インテグレーテッド・ランタイム(Adobe Integrated Runtime)（登録商標）またはアドビＡＩＲ（登録商標）は、フラッシュ（登録商標）をサポートするクロスプラットフォーム・ランタイム環境を提供するが、ウェブブラウザで実行されるアプリケーションではなく、ローカル（自機内）にインストールされるデスクトップ・アプリケーション適応している。従って、アドビＡＩＲ環境は、ローカルかつオフラインのデータ記憶装置のようなローカルにインストールされたデスクトップ・アプリケーションにとって共通に利用可能な追加的特徴を提供することができる。フラッシュ（登録商標）ランタイム環境１７４が、ブラウザ・プラグインとして実行されても、アドビＡＩＲとしてローカルにインストールされても、あるいは何らかの代わりのアプリケーション・パラダイムを表現しても、フラッシュ（登録商標）アプリケーション１７５をサポートすることができる。
【００１７】
ハードウェア装置１１０は接続１４５を介してホストシステム１５０にリンク可能であり、接続１４５は、コネクタ１４２及びレセプタクル１５２に物理的にリンクする例えばユニバーサル・シリアルバス(ＵＳＢ：Universal Serial Bus)で構成することができる。本実施例では、プロキシサーバー１６３は、フラッシュ（登録商標）バイナリソケットＡＰＩ１７９が使用するバイナリソケット通信とシリアル接続ＡＰＩ１３９が使用するＵＳＢシリアル接続との間のシームレスな変換をするメカニズムを含むことができる。
【００１８】
ＵＳＢは、ハードウェア装置の接続用のプロトコルの一例に過ぎず、代案実施例は、例えばファイヤワイヤ(Firewire)（登録商標）コネクタ、あるいはブルートゥース(Bluetooth)（登録商標）またはＷｉｆｉ（登録商標）のようなプロトコルを用いた無線伝送を使用することができる。接続１４５がＵＳＢまたはファイヤワイヤのような物理的ケーブルで構成される場合は、接続１４５はホストシステム１５０から電力を取り出して、ハードウェア装置１１０の構成要素を動作させることができる。無線通信の場合は、コネクタ１４２及びレセプタクル１５２は無線受信機及び無線送信機に置き換えることができ、接続１４５は無線信号を表すことができ、電力は、充電可能な内蔵バッテリによって、ドッキング・ステーションまたは他の何らかの方法で供給することができる。有線及び無線接続を共に設けて、有線接続でバッテリを充電することもできる。プロキシサーバー１６３及びシリアル接続ＡＰＩ１３９は、フラッシュ（登録商標）アプリケーション１７５及びハードウェアアプリケーション１３５とは別にモジュール化されているので、新たな接続プロトコルのサポートを容易に実現することができる、というのは、アプリケーションは接続プロトコルと直接インタフェース接続しないからである。
【００１９】
一旦、ハードウェア装置１１０が電力を供給されると、ハードウェアアプリケーション１３５は、ハードウェアＡＰＩを介してハードウェアシステム１２５を、監視システム１２６、機械制御システム１２７、プレゼンテーションシステム１２８を含めて操作することができる。用意した周辺ハードウェアシステムは好例に過ぎない、というのは、任意のハードウェアをハードウェア装置１１０に追加することができるからである。環境監視システム１２６は、触覚でのやり取り、オーディオフィードバック、及びビデオフィードバックのような、外部環境に関する種々の詳細を提供することができ、触覚センサ、マイクロホン、及びビデオカメラによってサポートすることができる。機械制御システム１２７は、サーボ、ギア（歯車）、モータ、及び他の機械装置を制御することによって、ハードウェア装置１１０の移動を行うことができる。プレゼンテーションシステム１２８は、ＬＥＤスクリーン、スピーカ、及びＬＥＤライトのような種々のオーディオビジュアル要素を制御することができる。外部ハードウェア１１５は、ハードウェアシステム１２５をサポートするための実際のハードウェアを提供し、これらは監視用のセンサ１１６、移動用のサーボ１１７、及び画像表示用のディスプレイ１１８を含む。
【００２０】
ハードウェア装置１１０は、リモート分散メソッド１３２及び分散メソッド１３６も含んで、ＲＭＩシステムのハードウェア装置側を形成する。従って、ハードウェアアプリケーション１３５は、ハードウェアＡＰＩ１３１を用いて、分散メソッド１３６に従ってハードウェアシステム１２５を制御するか、あるいは、リモート分散メソッド１３２を送信して、フラッシュ（登録商標）アプリケーション１７５からのサービスを要求することができる。同様に、フラッシュ（登録商標）アプリケーション１７５は、アクションスクリプト・ハードウェアＡＰＩを用いてリモート分散メソッド１７２を起動するか分散メソッド１７６を受信して、ＲＭＩシステムのフラッシュ（登録商標）側を形成することができる。シリアライザ１３３及びデシリアライザ１３７は、マーシャリング（ビット並べ替え）及びデマーシャリング（逆並べ替え）、参照解決、及び他の操作のような、ハードウェア装置１１０にとって必要であり得る種々のオブジェクトデータ変換を実行する。ポータブル（可搬の）データストリームが生じ、このデータストリームは、異なるアーキテクチャまたは環境のリモート位置でも、意味的に同一にすることができる。例えば、対応するシリアライザ１７３及びデシリアライザ１７７は、ホストシステム１５０が根本的に異なるアーキテクチャ上で実行されても、ホストシステム１５０がオブジェクトデータをハードウェア装置１１０とシームレスに通信することを可能にする。
【００２１】
フラッシュ（登録商標）アプリケーション１７５は、ハードウェアシステム１２５を直接制御しようとするのではなく、リモートメソッドを用いてハードウェアシステム１２５を駆動することによって、より適時（タイムリー）かつ正確なハードウェア制御を達成することができる。このことは特に、ハードウェアシステム１２５を効果的に、あるいはとにかく動作させるために、厳格なタイミング許容誤差で駆動する必要がある場合である。例えば、サーボ１１７は、２、３マイクロ秒だけの周期のパルス信号が期待されるパルス幅変調によって駆動することができる。組み込みプロセッサ１２０は、そのすべてのリソース（資源）を、ハードウェアアプリケーション１３５だけにサービス提供するために専用することができ、ハードウェアアプリケーション１３５が適切に開発されていれば、ハードウェアアプリケーション１３５は保証された適時のパルス信号発生をサポートすることができる。
【００２２】
しかし、フラッシュ（登録商標）アプリケーション１７５は、プロセススケジューラを用いて実行中のすべてのタスクにサービス提供することによって、いくつかの異なるアプリケーションを同時に受け入れることのできるウィンドウズ（登録商標）のような汎用マルチタスク・ホストプラットフォーム上で実行することができる。従って、フラッシュ（登録商標）アプリケーション１７５は、ホストプロセッサ１６０のアテンションのために、他のタスクと共に完了する必要があり得る。こうしたものとして、リアルタイム・サービスを必要とするハードウェア装置１１０上のタスクは、保証されたリソースを受けないことができる、というのは、ハードウェア割込みまたは他のソフトウェア処理がホストプロセッサ１６０を先取りし得るからである。時間に厳密なタスクにサービス提供するのに十分なリソースがホストシステム１５０上で利用可能な場合でも、フラッシュ（登録商標）アプリケーション１７５からハードウェアシステム１２５にコマンドを送信するプロトコル・オーバヘッドにより、いくらかのレイテンシ（待ち時間）が導入され得る。このレイテンシ期間中に、ハードウェア制御用の厳密な時間窓が既に経過し切っていることがある。
【００２３】
他方では、組込みプロセッサによって行われるもののような専用のホスト外計算は、きめ細かいハードウェア制御のためのリアルタイム応答性を提供することができる。ハードウェアアプリケーション１３５を開発する間に、ハードウェア装置１１０内の組込みプロセッサの能力に合わせてメソッドを最適化して、ハードウェアシステム１２５及び対応する外部ハードウェア１１５を、組込みプロセッサが提供する限られたＣＰＵサイクル内で有効に駆動することができる。組込みプロセッサは、汎用プロセッサが行うように他のアプリケーションをサポートする必要がないので、メソッド実行時間を測定し、外部ハードウェア１１５に要求される時間許容誤差内に最適化することができる。従って、ハードウェアアプリケーション１３５によってサポートされるリモートメソッドは、正確かつ有効なハードウェア制御の適時性を保証することができる。
【００２４】
フラッシュ（登録商標）アプリケーション１７５がリモートメソッドを起動してハードウェアシステム１２５を制御する前に、ハードウェア装置１１０用の分散オブジェクトへの参照をまず行わなければならず、この参照は例えば、通信ハンドシェイク手順の終わりに情報交換するか、ネームディレクトリサービスを参照することによって検索することができる。一旦、分散オブジェクトを検索すると、分散オブジェクトは、図１にリモート分散メソッド１７２として示す、フラッシュ（登録商標）アプリケーション１７５が起動することのできるリモートメソッドのインタフェースを顕在化または提供する。これらのリモートメソッドは、例えば、環境監視システム１２６がセンサ１１６によって温度を取得すること、機械制御システム１２７がサーボ１１７によってオブジェクトを移動させること、及びプレゼンテーションシステム１２８が画像をディスプレイ１１８上に表示することを可能にする。
【００２５】
従って、フラッシュ（登録商標）アプリケーション１７５の開発者は、ハードウェア装置１１０の詳細動作に関心を持つ必要はなく、アクションスクリプト・ハードウェアＡＰＩ１７１が顕在化させたリモートメソッドを単純に起動することができ、これらのリモートメソッドは、例えばハードウェア装置１１０におけるマシンコードによって実現される。同様に、ハードウェア装置１１０が、フラッシュ（登録商標）アプリケーション１７５からの特定情報または実行すべきタスクを必要とする場合は、ハードウェア装置１１０の開発者は、フラッシュ（登録商標）アプリケーション１７５の命令を理解しなければならないのではなく、リモート分散メソッド１３２を使用することができる。このモジュール式開発の技術を用いることによって、ワークフロー（作業の流れ）をセグメント化して独立して開発し、発売スケジュールを加速して開発コストを抑制することができる。
【００２６】
図１は、リモート実行用のＲＭＩの方法に適応したオブジェクトを採用しているが、手続き的なリモート・プロシージャ・コール（ＲＰＣ：Remote Procedure Call：リモート（遠隔）手続き呼出し）、あるいはリモート実行を提供する他の方法も利用することができる。ロード可能なクラスを動的にサポートするＲＭＩシステムのような、図１に示すものよりもフレキシブルなＲＭＩの方法も実現することができる。現在、オブジェクト参照のみを通り越し、ＡＰＩの実現はリモート位置に存在するものと仮定する。動的にロード可能なクラスは、ハードウェアＡＰＩを容易に更新することを可能にする、というのは、ＡＰＩの実現は、更新された方法で、オンデマンドで（要求に応じて）取得することができるからである。
【００２７】
しかし、組込みプロセッサ１２０は、コスト及び電力の考慮により計算リソースを制約し得るので、複雑なＲＭＩシステムは望ましくない。ハードウェア装置１１０上で実行されるメソッドは一般に周知かつ不変である、というのは、ハードウェアシステム１２５は、エンドユーザによるハードウェアシステムのモジュール交換をサポートしていないことが多く、従って、製造中に含められる特定ハードウェアシステムに合わせた、ハードウェア装置１１０用の埋込み型静的ハードウェアＡＰＩを構築することが意味をなし得る。しかし、静的ハードウェアＡＰＩを再書き込み可能なメモリ部分に記憶して、バグ修正または追加的方法をハードウェアシステム１２５用に開発する場合に、ハードウェアＡＰＩをさらに更新可能にすることができる。
【００２８】
フラッシュ（登録商標）ランタイム環境１７４は、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ：Transmission Control Protocol/Internet Protocol）スタックのようなホストシステム１５０のネットワークスタックを通して通信を経路設定することができる。フラッシュ（登録商標）アプリケーション１７５は、フラッシュ（登録商標）ランタイム環境１７４内で元々サポートされるハードウェアのみを直接アドレス指定することができるので、フラッシュ（登録商標）アプリケーション１７５は、ハードウェア装置１１０と直接通信する代わりにネットワーク通信を利用することができる、というのは、ネットワーク通信は元々、フラッシュ（登録商標）ランタイム環境内でサポートされているからである。
【００２９】
しかし、ハードウェア装置１１０は、ネットワークではなくＵＳＢによってホストシステム１５０に接続されているので、プロキシサーバー６３は、フラッシュ（登録商標）アプリケーション１７５とハードウェア装置１１０との間のルーティング（経路設定）サービス変換を提供する。プロキシサーバー１６３は、ローカルホスト・サービスとして実行中にして、特定ネットワークポートを通って進む通信を傍受することができる。接続１４５を確立した後の、ハードウェア装置１１０とホストシステム１５０との間の初期ハンドシェーク・シーケンスは、ハードウェア装置１１０からホストメモリ１７０にコピーされたセキュリティサービス１６２及びプロキシサーバー１６３を生じさせて、これらはさらに、ホストプロセッサ１６０によって実行することができる。そして、フラッシュ（登録商標）バイナリソケットＡＰＩ１７９は、指定したネットワークポート上でローカルホストと通信することができ、プロキシサーバー１６３は、バイナリソケットデータとシリアルデータとの間の変換をシームレスに処理することができる。従って、プロキシサーバー１６３は、フラッシュ（登録商標）が元々サポートするネットワーク通信能力を利用することによって、ハードウェア装置１１０とフラッシュ（登録商標）アプリケーション１６３との間の通信（コミュニケーション）ギャップを埋めることができる。
【００３０】
フラッシュ（登録商標）アプリケーション１７５がデータを、任意位置に送信し任意位置から受信することを可能にすることは、特にＤＮＳリバインディング（rebinding）攻撃についての潜在的なセキュリティ（安全性）問題を生じさせ得る。従って、フラッシュ（登録商標）のより新しいバージョンでは、種々のセキュリティプロトコルが実現されている。特に関心のあるものはソケットポリシーファイルであり、これらは、ソケット接続用に許容可能なネットワークポート及びホストを支配する規則のリストを提示する。従ってソケットポリシーファイルは、サーバーが特定ホストまたはポートからのアクセスを拒否することを可能にするが、フラッシュ（登録商標）クライアントはまず、これらを意識しなければならない。
【００３１】
従って、フラッシュ（登録商標）ランタイム環境１７４は、フラッシュ（登録商標）バイナリソケットＡＰＩ１７９が要求されたネットワークポート上でサーバー・デスティネーションと通信することを可能にする前に、ソケットマスターポリシーファイルの要求を、デフォルトポート８４３上で同じサーバー・デスティネーションのＩＰアドレスに対して自動発行する。この要求は、サーバー・デスティネーションが要求中のホストと同じドメイン上にある場合でも送信される。あるいはまた、フラッシュ（登録商標）バイナリソケットＡＰＩ１７９は、代わりのポートを明示的に指定して、セキュリティポリシーを要求することができる。サーバー・デスティネーションがタイムアウト期間内に応答を与えないか、返送されたソケットポリシーファイルが、ホスト１５０または要求されたネットワークポートからのアクセスを拒否する場合は、フラッシュ（登録商標）ランタイム環境１７４はサーバー・デスティネーションとのソケット通信を拒否し、フラッシュ（登録商標）バイナリソケットＡＰＩ１７９は元の要求に対するエラーコードを返送することができる。
【００３２】
セキュリティサービス１６２は、適切にフォーマットしたセキュリティポリシーをソケットポリシーファイルの形式で提供することによって、上述したフラッシュ（登録商標）のセキュリティ機能を満たし、プロキシサーバー１６３がホストシステム１５０からのネットワークポート上でのアクセスを用いることを可能にする。従って、フラッシュ（登録商標）ランタイム環境１７４は、サーバー・デスティネーションまたはホスト１５０と通信することの与えられた許可である、というのは、ローカルホストは、プロキシサーバー１６３がサービス提供するポート上での識別基準であるからである。これらの許可は、ホストシステム１５０とハードウェア装置１１０との間の相互通信を可能にする最小量の特権に過ぎず、セキュリティサービス１６２は、例えば、任意のホスト及び任意のポートからのアクセスを可能にするより拡張的なソケットポリシーファイルを返送することができる。
【００３３】
ソケットポリシーファイルは、ソケット通信の許可を指定するのに対し、ソケット・メタポリシーは、ソケットポリシーファイル自体にアクセスすることの許可を指定する。ソケット・メタポリシーは、デフォルトポート８４３からサービス提供されるマスターソケットポリシーファイル内のみで定義することができる。しかし、デフォルト・メタポリシーは、サーバー・デスティネーション上の任意の位置にある任意のポートからのソケットポリシーファイルへのアクセスを可能にするので、一般に、メタポリシーを指定する必要はない、というのは、「全部」の設定がデフォルトであるからである。さらに、デフォルトのソケット・メタポリシーは、フラッシュ（登録商標）の将来バージョンについても「全部」のままであるものと期待される。
【００３４】
セキュリティサービス１６２及びプロキシサーバー１６３が、フラッシュ（登録商標）アプリケーション１７５がハードウェア装置１１０と通信することを可能にする間は、これらは、こうした通信サービスを提供するために、ホストプロセッサ１６０によって実行中である必要がある。従来のローカルにインストールされたソフトウェアは、ローカルサービスまたは特殊なドライバをインストールすることによって、このことをかなり自明に達成することができるが、フラッシュ（登録商標）アプリケーションの関係では、その状況はより自明でないことがある。
【００３５】
１つの可能性は、接続１４５の確立時にハンドシェイク手順を用いることであり、このことはセキュリティサービス１６２及びプロキシサーバー１６３の実行を開始する。このハンドシェイク手順は、例えば、一般的なＨＩＤ（Human Interface Device：ヒューマンインタフェース装置）のような提示（プレゼンテーション）ハードウェア装置１１０に頼ることができ、これにより、ホストシステム１５０は特殊なドライバなしにハードウェア装置１１０を自動的にサポートすることができ、フラッシュ（登録商標）アプリケーション１７５は、単にハードウェア装置１１０の存在をポーリングして、ハンドシェイク手順を開始することができる。このようにして、ユーザは、複雑なソフトウェアまたはドライバのインストールなしに、単にハードウェア装置１１０を接続して即座に使用することができる。他の実施例は、例えば、Autorun for Windows(オートラン・フォー・ウィンドウズ)（登録商標）のような自動実行メカニズム、あるいはＪａｖａ（登録商標）またはActiveX(アクティブＸ)（登録商標）のようなダウンロード可能なドライバ・プラグインを使用することができる。しかし、ユーザがナビゲートしなければならない種々のセキュリティ警告及びプロンプト（入力促進記号）により、ホストシステム１５０が自動的にサポートする一般に認められたインタフェースを使用する実施例の方が好ましいことがある、というのは、こうしたインタフェースは一般にユーザの介在なしに動作することができるからである。将来のホスト・プラットフォームは、信頼できるコンピューティング（電子計算）を提供して、合法的な発行者からの信頼できるコードの自動実行を許可して、場合によっては、よりフレキシブルかつ洗練されたシステムを提供することができる。
【００３６】
本発明の目的のために、ハンドシェイク手順は、セキュリティサービス１６２及びプロキシサーバー１６３のホストプロセッサ１６０上での実行を開始するように実現することができるものと仮定する。フィードバックとして、ハードウェア装置１１０の自動サポートにおける種々の試行に失敗した場合に、手動（マニュアル）のソフトウェア・インストレーションガイドまたはソフトウェア・ダウンロードをエンドユーザに提供することができる。一旦、ドライバまたはソフトウェアを手動でインストールすると、このドライバまたはソフトウェアは、ホストシステム１５０の起動時に自動実行されるように構成して、手動インストールの手間の一部を軽減することができる、というのは、ユーザは手順を１回だけ完了すればよいからである。
【００３７】
図２ａに移れば、図２ａは、本発明の一実施例による、統合ハードウェア・プラットフォーム用のインタフェース生成ワークフローを示すフローチャートを提示する。フローチャート２００は、ＡＰＩ規約（コントラクト）ファイル２９０、ＲＭＩインタフェース生成器２９３、フラッシュ（登録商標）バイナリソケットＡＰＩ２７９、アクションスクリプト・ハードウェアＡＰＩ２３１、Ｃ／Ｃ＋＋シリアル接続ＡＰＩ２３９、シリアライザ２３３、デシリアライザ２３７、ハードウェアＡＰＩ２３１、リモート分散メソッド２３２、及び分散メソッド２３６を含む。ＡＰＩコントラクトファイル２９０は、ハードウェアＡＰＩ定義２９１及びフラッシュ（登録商標）ＡＰＩ定義２９２を含む。ＲＭＩインタフェース生成器２９３は、フラッシュ（登録商標）・アクションスクリプト・インタフェースビルダー（インタフェース構成器）２９４及びハードウェアＣ／Ｃ＋＋インタフェースビルダー２９５を含む。アクションスクリプト・ハードウェアＡＰＩ２７１は、シリアライザ２７３、デシリアライザ２７７、リモート分散メソッド２７２、及び分散メソッド２７６を含む。
【００３８】
アクションスクリプト・ハードウェアＡＰＩ２７１は、図１のアクションスクリプト・ハードウェアＡＰＩ１７１に相当し、シリアライザ１７３に相当するシリアライザ２７３、デシリアライザ１７７に相当するデシリアライザ２７７、リモート分散メソッド１７２に相当するリモート分散メソッド２７２、及び分散メソッド１７６に相当する分散メソッド２７６を含む。フラッシュ（登録商標）バイナリソケットＡＰＩ２７９は、フラッシュ（登録商標）バイナリソケットＡＰＩ１７９に相当する。Ｃ／Ｃ＋＋シリアル接続ＡＰＩ２３９は、シリアル接続ＡＰＩ１３９に相当する。シリアライザ２３３はシリアライザ１３３に相当する。デシリアライザ２３７はデシリアライザ１３７に相当する。ハードウェアＡＰＩ２３１はハードウェアＡＰＩ１３１に相当する。リモート分散メソッド２３２はリモート分散メソッド１３２に相当する。分散メソッド２３６は分散メソッド１３６に相当する。
【００３９】
図１に記載のように、ＲＭＩの方法をリモート実行に用いることの開発利益の一部は、フローチャート２００に見ることができる。実装コードを書き込む前に、ＡＰＩ規約ファイルを、フラッシュ（登録商標）のリモートメソッドまたはフラッシュ（登録商標）ＡＰＩ定義２９２、及びハードウェア・リモートメソッドまたはハードウェアＡＰＩ定義２９１が働く方法について共に同意した規格と共に予め用意することができる。ＡＰＩ規約ファイル２９０をＲＭＩインタフェース生成器２９３によって処理すること、及び開発作業中（ＷＩＰ：Work in Progress）のＡＰＩメソッドを置き換えるべくエミュレートするテストシステムの開発の結果により、開発チームはフラッシュ（登録商標）アクションスクリプトまたはハードウェアＣ／Ｃ＋＋を、他の開発チームの進行を待つか進行に頼ることなしに独立して開発することができる。開発者が、ＡＰＩ規約ファイル２９０によって予め定められた仕様に従う限り、独立して開発されたコードを後に統合することは、何の問題もなくシームレスに進むはずである。さらに、ＲＭＩインタフェース生成器２９３が、ＲＭＩサポート及びネットワークまたはシリアルバス通信の詳細を処理するＡＰＩモジュールを生成することを可能にすることによって、これらのＡＰＩモジュールを手作業でコーディングすることに起因する人間のプログラミングエラー（プログラムの誤り）を回避することができ、開発者は自分の注意力を、主要なフラッシュ（登録商標）またはＣ／Ｃ＋＋アプリケーションに集中させることができる。
【００４０】
モジュール化の増加、及びＡＰＩ規約ファイル２９０から生じるプログラムコードの抽象化も、より解読、開発、デバッグ、及び保守し易いより高レベルのプログラミングスタイルも促進して、長期的には開発時間及びコストを低減する。大量に組み込まれた低レベルプログラミング及び冗長コードを伴うアドホックな（臨機応変の）プログラミングスタイルは、より速い初期開発時間を提供することができ、オンラインゲームのようなどの中規模のプロジェクトにとっても、コード保守がにわかに、コードが論理モジュール化されない不利益になることがあるのに対し、ＡＰＩ規約ファイル２９０によって提供される明確に規定されたＡＰＩは、論理モジュール化及びコード再利用を促進することができる。
【００４１】
ＲＭＩインタフェース生成器２９３を調べれば、フラッシュ（登録商標）アクションスクリプト・インタフェースビルダー２９４及びハードウェアＣ／Ｃ＋＋インタフェースビルダー２９５は、図１で既に見た種々のＡＰＩモジュールを生成する。ＲＭＩインタフェース生成器２９３は、一般的に記述されたＡＰＩ定義をＡＰＩ規約ファイル２９０から取得し、これらのＡＰＩ定義を、特定ターゲット・プラットフォーム用のコード、あるいは図２ａの場合はフラッシュ（登録商標）及びＣ／Ｃ＋＋で記述されたＡＰＩモジュールに変換する。ＲＭＩインタフェース生成器２９３は、インタフェースビルダーを置き換えることによって他のターゲット・プラットフォーム用に生成するように構成することもできるが、Ｃ／Ｃ＋＋が、低レベルシステムのプログラミング用に一般に使用されるプログラミング言語であり、テスト・ハードウェア装置２１０用のマシンコードを生成するのによく適していることが多い。カスタムＲＭＩインタフェース生成器２９３を内部で開発することができ、あるいは、ＡＰＩ規約ファイル２９０は、既存のインタフェース記述言語を用いて表現することができ、既存のクロス・プラットフォームＲＭＩインタフェース生成器２９３を用いて開発を加速することができる。
【００４２】
図２ｂを見れば、図２ｂは、本発明の一実施例による、フラッシュ（登録商標）開発者が利用する統合ハードウェア・プラットフォーム用のフラッシュ（登録商標）開発環境のブロック図を提示する。図２ｂは、テスト・ホストシステム２５０を含み、テスト・ホストシステム２５０は、ＷＩＰ（開発作業中）のフラッシュ（登録商標）アプリケーション２７５、アクションスクリプト・ハードウェアＡＰＩ２７１、フラッシュ（登録商標）バイナリソケットＡＰＩ２７９、及びハードウェア装置エミュレータ２９６を含む。テスト・ホストシステム２５０は、図１のホストシステム１５０の簡略化版に相当し得る。
【００４３】
フラッシュ（登録商標）バイナリソケットＡＰＩ２７９及びアクションスクリプト・ハードウェアＡＰＩ２７１は空白で示して、これらのＡＰＩモジュールはＲＭＩインタフェース生成器２９３によって既に生成され、開発者からのさらなる働きかけを必要としないことを強調する。従って、フラッシュ（登録商標）開発チームは、ＷＩＰのフラッシュ（登録商標）アプリケーション２７５、あるいは、ＷＩＰのフラッシュ（登録商標）アプリケーション２７５が、分散メソッド２７６の実現を含むクライアント側でサポートするオンラインゲームに開発を集中させることができる。
【００４４】
別個のチームがハードウェア装置を開発中であることができるので、ハードウェア装置エミュレータ２９６を、開発目的での代役として代用する。ハードウェア装置エミュレータ２９６は、ハードウェア装置を必ずしも正確にエミュレートする必要はない。例えば、ハードウェア装置エミュレータ２９６は、所定のテスト値を戻すメソッドを実現することができ、あるいは、利用可能な開発リソース、製品スケジュール、及び他の開発チームからの前進次第では、実際のハードウェア装置の応答をより近く模擬することができる。開発作業中（ＷＩＰ）のハードウェア装置を、ハードウェア装置エミュレータ２９６ａに指向した未開発のリモートメソッド、及びＷＩＰのハードウェアに指向した開発済みのリモートメソッドと共に用いることもできる。
【００４５】
同様の筋で、別個のネットワーク及びサーバーチームが、プロジェクトの分散した対象部分を開発することができる。従って、テスト・ホストシステム２５０は、オンラインゲーム用のサーバー・エミュレータを用いることによって、動作中のネットワーク・インフラストラクチャがなくても、ネットワーク相互運用性についてテストすることができる。逆に、こうしたネットワーク・インフラストラクチャが存在する場合は、テスト・ホストシステム２５０は、実際のネットワーク接続されたハードウェアに対してテストすることができる。こうしたテストが発生する場合は、一般人が図２ｂのテスト構成要素にアクセスしようとすることを防ぐために、いくらかの注意を払う必要がある。例えば、パブリック（一般人からの）アクセスを阻止するファイヤウォールをテスト構成要素用にインストールするか、あるいはローカルネットワークを公衆インターネットから隔離することができる。
【００４６】
図２ｃに移れば、図２ｃは、本発明の一実施例による、ハードウェア装置開発者が利用するハードウェア開発環境のブロック図を提示する。図２はテスト・ハードウェア装置２１０を含み、テスト・ハードウェア装置２１０は、ハードウェアＡＰＩ２３１、プロトタイプ（試作品、原型）のハードウェアシステム２２５、ＷＩＰのハードウェアアプリケーション２３５、リモート分散メソッド２３２、シリアライザ２３３、分散メソッド２３６、デシリアライザ２３７、Ｃ／Ｃ＋＋シリアル接続ＡＰＩ２３９、及びホストシステム・エミュレータ２９７を含む。テスト・ハードウェア装置２１０は、図１のハードウェア装置１１０の簡略化版に相当する。プロトタイプのハードウェアシステム２２５は、ハードウェアシステム１２５に相当し得る。
【００４７】
図２ｂと同様に、いくつかのＡＰＩ要素は空白で示して、これらの要素がＲＭＩインタフェース生成器２９３によって既に用意され、これらの要素は、ハードウェアＡＰＩ２３１、リモート分散メソッド２３２、シリアライザ２３３、分散メソッド２３６、デシリアライザ２３７、及びＣ／Ｃ＋＋シリアル接続ＡＰＩ２３９を含む。従って、ハードウェア開発チームは、ＷＩＰのハードウェアアプリケーション２３５、あるいは、プロトタイプのハードウェアシステム２２５とのインタフェースとなる主要なハードウェア制御プログラム、及び分散メソッド２３６の実現に開発を集中させることができる。
【００４８】
別個のフラッシュ（登録商標）開発チームがフラッシュ（登録商標）アプリケーションを開発中であることができるので、開発目的で、ホストシステム・エミュレータ２９７を、フラッシュ（登録商標）アプリケーションを実行するホストシステムとして代用することができる。図２ｂのハードウェア装置エミュレータ２９６と同様に、ホストシステム・エミュレータ２９７は、フラッシュ（登録商標）アプリケーションを実行するホストシステムを必ずしも正確にエミュレートする必要はない。例えば、ホストシステム・エミュレータ２９７は、所定のテスト値を戻すメソッドを実現することができるか、利用可能な開発資源、製品スケジュール、及び他の開発チームからの前進次第では、実際のフラッシュ（登録商標）アプリケーションの応答をより近く模擬することができる。テスト・ホストシステム上で開発作業中（ＷＩＰ）のフラッシュ（登録商標）アプリケーションを、ホストシステム・エミュレータ２９７に指向した未開発のリモートメソッド、及びＷＩＰのフラッシュ（登録商標）アプリケーションに指向した開発済みのリモートメソッドと共に用いることができる。
【００４９】
同様に、プロトタイプのハードウェアシステム２２５の開発は、ハードウェアシステムを駆動するためのソフトウェアの開発と分離することができる。集積回路兼電気技術チームが、プロトタイプのハードウェアシステム２２５に独立して取り組む間に、組込みシステムのプログラミングチームは、テスト・ハードウェア装置２１０を駆動するソフトウェアに取り組むことができ、両チームは、プロトタイプのハードウェアシステム２２５がハードウェアＡＰＩ２３１を介してＷＩＰのハードウェアアプリケーション２３５とのインタフェースをとる方法のプロトコルについて事前に合意している。
【００５０】
従って、論理インタフェースを分離し、欠落しているか開発中の構成要素をエミュレートし、図２ａのＲＭＩインタフェース生成器２９３のような自動前処理ツールを利用することによって、独立した並行開発を、ＡＰＩ規約ファイル２９０のような少しの事前計画を伴うだけで進めることができる。独立して開発した開発作業中の構成要素を定期的に再統合して相互運用性をテストすることによって、インタフェースの修正または実装の変更が必要になり得るあらゆる問題が大問題になる十分前に、これらの問題に応えることができる。従って、モジュール式のプログラミング方法の利点を、一体化した方法におけるテストの利点を犠牲にすることなしに保つことができる。
【００５１】
図３に、本発明の一実施例による、分散オブジェクトを有する統合ハードウェア・プラットフォームのブロック図を提示する。分散環境３００は、ハードウェア装置３１０ａ、ハードウェア装置３１０ｂ、ハードウェア装置３１０ｃ、及びゲームサーバー３８５を含む。ハードウェア装置３１０ａは、シリアルＡＰＩ３３９、ハードウェアアプリケーション３３５ａ、環境監視システム３２６ａ、プレゼンテーションシステム３２８ａ、タッチセンサ「猫の毛（cat fur）」３１６ａ、及びスピーカ３１８ａを含む。ハードウェア装置３１０ｂは、シリアルＡＰＩ３３９、ハードウェアアプリケーション３３５ｂ、環境監視システム３２６ｂ、機械制御システム３２７ｂ、タッチセンサ「犬の毛（dog fur）」３１６ｂ、及びサーボ３１７ｂを含む。ハードウェア装置３１０は、シリアルＡＰＩ３３９、ハードウェアアプリケーション３３５ｃ、環境監視システム３２６ｃ、プレゼンテーションシステム３２８ｃ、マイクロホン３１６ｃ、及びスピーカ３１８ｃを含む。ハードウェア装置３１０ｂは、シリアルＡＰＩ３３９、ハードウェアアプリケーション３３５ｂ、環境監視システム３２６ｂ、機械制御システム３２７ｂ、タッチセンサ「犬の毛」３１６ｂ、及びサーボ３１７ｂを含む。ホストシステム３５０ａ〜３５０ｃの各々は、分散オブジェクトＡＰＩ３８９、フラッシュ（登録商標）アプリケーション３７５、フラッシュ（登録商標）バイナリソケットＡＰＩ３７９、及びプロキシサーバー３６３を含む。接続３４５ａ〜３４５ｃは、ホストシステム３５０ａ〜３５０ｃを、それぞれハードウェア装置３１０ａ〜３１０ｃに接続する。
【００５２】
各ホストシステムは、同じアプリケーションコードを含むが、ホストシステム毎に独立したホストプロセッサ（図３では省略）は、このアプリケーションコードを別個に実行する。図１と同様に、各ホストのクライアントは、このアプリケーションコードをウェブサーバーから既にダウンロードしている。各ハードウェア装置は、各ハードウェア装置の特定のハードウェア構成用に特別にカスタマイズしたハードウェアアプリケーションも含み、各ハードウェアアプリケーションは、組込みプロセッサ（図３では省略）上で実行される。図３では、ＲＭＩを実現するための詳細、分散システムの例をより簡潔でわかりやすい図で提示することのような、他のいくつかの詳細も省略している。追加的詳細については必要であれば、図１及び図２を参照することができる。
【００５３】
ハードウェア装置３１０ａ〜３１０ｃの各々は、図１のハードウェア装置１１０に相当する。シリアルＡＰＩ３３９はシリアルＡＰＩ１３９に相当する。ハードウェアアプリケーション３３５ａ〜３３５ｃの各々は、ハードウェアアプリケーション１３５に相当する。環境監視システム３２６ａ〜３２６ｃの各々は、環境監視システム１２６に相当する。機械制御システム３２７ｂは、機械制御システム１２７に相当する。プレゼンテーションシステム３２８ａ及びプレゼンテーションシステム３２８ｃの各々は、プレゼンテーションシステム１２８に相当する。ホストシステム３５０ａ〜３５０ｃの各々は、ホストシステム１５０に相当する。フラッシュ（登録商標）アプリケーション３７５は、フラッシュ（登録商標）アプリケーション１７５に相当する。フラッシュ（登録商標）バイナリソケットＡＰＩ３７９は、フラッシュ（登録商標）バイナリソケットＡＰＩ１７９に相当する。プロキシサーバー３６３は、プロキシサーバー１６３に相当する。
【００５４】
ゲームサーバー３８５は潜在的に、いくつかのホストシステムに接続して、分散オンラインサービス３８６を介した共用オンライン環境をサポートすることができる。例えば、ゲームサーバー３８５は、フラッシュ（登録商標）アプリケーション３７５上でユーザを擬人化した動物によって表現するオンラインワールド（オンラインの世界）を主宰することができる。各ホストシステムのユーザは、オンラインで役を演じたい動物を表現するハードウェア装置を購入することができる。従って、ホストシステム３５０ａのユーザは猫形のハードウェア装置をハードウェア装置３１０ａとして購入することができるのに対し、ホストシステム３５０ｂのユーザは犬形のハードウェア装置をハードウェア装置３１０ｂとして購入することができ、そしてホストシステム３５０ｃのユーザは鳥形のハードウェア装置をハードウェア装置３１０ｃとして購入することができ、これらを図３にアイコンで示す。従って、各ホストシステムは、それぞれのハードウェア装置に質問して、リモートメソッドを実行するためのデータオブジェクトを読み出し、これらのデータオブジェクトをネットワーク３８０上でゲームサーバー３８５に送信することができる。従って、分散オンラインサービス３８６は、接続された各ホストシステムを監視及び管理して、ホストシステムが、分散オブジェクトＡＰＩ３８９を通して、他のホストシステムに接続されたハードウェア装置にアクセスすることを可能にする。
【００５５】
各ハードウェア装置の外見は変化し得るが、その内部構成要素はすべて、図１のハードウェア装置１１０に似ており、ハードウェア能力は幾分異なる。各プラットフォームは、環境監視システムを備えるが、これらの環境監視システムは異なるハードウェアに接続されている。環境監視システム３１１ａについては、ハードウェア・アクセスは、センサ「猫の毛」３１６ａに触れて行われる。このセンサは、なでること、及び他の接触の働きかけを検出するように構成された猫毛の人工皮を具えることができる。従って、ホストシステム３５０ａのユーザは、タッチセンサ「猫の毛」をなで、このタッチセンサは、環境監視システム３１１ａに送信されるハードウェア信号を発生し、この信号は、必要であれば、ハードウェアアプリケーション３３５ａに渡されてさらに処理される。同様の方法で、タッチセンサ「犬の毛」３１６ｂは同じ機能を提供することができ、そしてマイクロホン３１６ｃは代わりに、触覚の働きかけを検出するのではなく、ホストシステム３５０ｃの所にいるユーザの発声を録音することができる。
【００５６】
各ハードウェア装置は、動物が働きかけに「反応」することを可能にするためのいくつかのハードウェアシステムも含む。スピーカ３１８ａにアクセスするプレゼンテーションシステム３２８ａは、例えば猫の鳴き声を模擬（シミュレート）することができる。このことは、タッチセンサ「猫の毛」３１６ａがなでられたことに対する応答としてトリガすることができる。サーボ３１７ｂを制御する機械制御システム３２７ｂは、人工の犬の尾の振りを開始することができ、これもタッチセンサ「犬の毛」３１６ｂをなでることに応答してトリガされる。プレゼンテーションシステム３２８ｃは、マイクロホン３１６ｃからピッチを上げた（声を高くした）音声サンプルを取り出して、ホストシステム３５０ｃの所にいるユーザの話し言葉を真似する。
【００５７】
これらの種類の対話型玩具は、玩具店の陳列棚上で既に入手可能であるが、フラッシュ（登録商標）アプリケーション３７５及びゲームサーバー３８５は、これらの玩具を使用するための便利な共用オンライン・コンテキストを提供する。例えば、一旦、ユーザがハードウェア装置をそれぞれのホストシステムに接続すると、フラッシュ（登録商標）アプリケーション３７５は動物の種類を検出して、この動物のアバター（化身）を、ホストシステムに接続されたディスプレイ上に画像表示する。さらに、フラッシュ（登録商標）アプリケーション３７５が分散オブジェクトＡＰＩとのインタフェースをとる際に、ユーザは自分のアバターだけでなく、ネットワーク３８０を介してゲームサーバー３８５に接続された他のホストシステムのアバターも見ることができる。従って、図３の各ホストシステムのユーザ全員が、猫、犬、及び鳥を、それぞれのディスプレイ上で同時に見ることができる。
【００５８】
分散オブジェクトＡＰＩ３８９を利用することによって、フラッシュ（登録商標）アプリケーション３７５は、分散したユーザの、動物のアバター及び関連するハードウェア装置との相互作用をサポートすることができる。例えば、ホストシステム３５０ｂの所にいるユーザが自分の犬のアバターを、ホストシステム３５０ａに関連する猫のアバターに対して吠えるように仕向けることができる。従って、フラッシュ（登録商標）アプリケーション３７５は、ハードウェア装置３１０ｂが提供するリモートの「吠える」メソッドを起動することができる。そして、ハードウェアアプリケーション３３５ｂは、起動されたオブジェクトが指示する関連するローカルメソッド、あるいは「吠える」メソッドを実行することができる。このことは例えば、機械制御システム３２７ｂにコマンドを送信して、サーボ３１７ｂによって、ハードウェア装置３１０ｂの外部の「ジョーズ」を動かす。ハードウェア装置３１０ｂ（図３には図示せず）を利用して、可聴の吠える声を、スピーカを通して生成することもできる。
【００５９】
これまでは、本実施例のすべての効果は、ローカル・コンテキスト、あるいは単一のホストシステム及び単一のハードウェア装置に限られてきた。しかし、ハードウェア装置３１０ｂのユーザ、またはホストシステム３５０ａに関連するユーザが、猫のアバターに向かって吠えるように仕向けたことを思い出してほしい。従って、ホストシステム３５０ｂは、この吠える動作を、分散オブジェクトＡＰＩ３８９を介してゲームサーバー３８５の分散オンラインサービス３８６に知らせることができる。分散オンラインサービス３８６は、ユーザアカウント・データベースを参照して、猫のアバターに関連するホストシステムを特定する。そして、分散オンラインサービス３８６は、何らかの論理を実行して、チャンス、アカウントの統計値、または他の変数に基づいて、猫のアバターの反応がどうあるべきかを決定し、適切な応答をホストシステム３５０ａに送信する。例えば、分散オンラインサービス３８６のメソッドは、「猫の毛」のメソッドを起動して、タッチセンサ「猫の毛」３１６ａを逆立てることをホストシステム３５０ａに指示する。
【００６０】
あるいはまた、猫は犬に対して「フーッ」と言うことができ、同様の処理を発生させる。分散オンラインサービス３８６は、ホストシステム３５０ｂに関連する「勇気」変数を質問して、犬の反応を決定することができる。犬の勇気が低い場合は、フラッシュアプリケーション３７５は、サーボ３１７ｂを用いて犬をクンクン鳴く姿勢に動かすように、機械制御システム３２７ｂに指示することができるのに対し、高い勇気は犬を立ち上がらせて威嚇する姿勢にすることができる。この応答を、ゲームサーバー３８５にも返送することができ、これにより、ホストシステム３５０ａ及び３５０ｃの所にいるユーザは、犬がクンクン言うか猫を威嚇するところを、各自のディスプレイで見ることができる。他の例を挙げれば、ハードウェア装置３１０ｃの鳥がスピーカ３１８ｃ上で繰り返す語句（フレーズ）も、オンラインワールド内での鳥のアバターの他のユーザへの近さに応じて、ホストシステム３５０ａ及び３５０ｂのスピーカ上でけたたましく発声することもできる。
【００６１】
このオンラインの動物アバターゲームは１つの可能な実施例に過ぎず、他の多くの実施例が同じ原理を用いることができる。例えば、フラッシュ（登録商標）アプリケーション３７５は、オンライン・レーシング（競争）ゲームを含むことができ、このゲームは、ハンドルに見え、力のフィードバックまたは振動をサポートするハードウェア装置を伴う。ライバルのプレーヤが自分の車をあるユーザに衝突させた場合に、このユーザのハンドルを強く振動させるように指示することができ、同じ効果をライバルのプレーヤにも生じさせることができる。フラッシュ（登録商標）アプリケーション３７５は、チェスの２プレーヤ・ネットワークゲームを含むこともでき、このゲームは、チェス駒の位置を検出し、手動での介在なしにチェス駒を動かすためのハードウェアを有するチェス盤に似たハードウェア装置を伴う。従って、一方の側のユーザはチェス駒を手動で動かすことができるのに対し、他方の側のチェス駒は、ユーザの介在なしに自動的に動くことができ、仮想チェス盤の表示は両方の側で更新することができる。
【００６２】
もちろん、統合ハードウェア・プラットフォームは、ゲームに加えて、他のアプリケーションもサポートすることができる。例えば、プラットフォームはハードウェア装置用の描画タブレットを利用して、フラッシュ（登録商標）アプリケーション３７５を通してインターネットによって接続されたユーザ間の共同描画またはアイデア・ブレインストーミングを可能にする。一方のユーザが描画したスケッチは他の接続ユーザが見ることができ、他の接続ユーザは、自分のタブレット上で見ているスケッチを修正することができ、すべてのユーザが同じ共用キャンバスを見ている。本明細書で説明する統合ハードウェア・プラットフォームは、一般化された抽象的なインタフェースをあらゆる種類のハードウェアに提供し、フラッシュ（登録商標）アプリケーションの能力を拡張する創作能力は実質的に無限である。
【００６３】
図４に、本発明の一実施例によるステップを記載したフローチャートを示し、これらのステップによって、統合ハードウェア・プラットフォーム内のハードウェア装置が、フラッシュ（登録商標）アプリケーション用のアプリケーションプログラム・インタフェース（ＡＰＩ）を介してハードウェア制御を行う。当業者にとって明らかである特定の詳細及び特徴は、フローチャート４００から除外した。例えば、あるステップは１つ以上のサブステップで構成することができるか、現在技術において知られている特殊な装置または材料を含むことができる。フローチャート４００に示すステップ４１０〜４４０は、本発明の一実施例を説明するのに十分であり、本発明の他の実施例は、フローチャート４００に示すものとは異なるステップを利用することができる。
【００６４】
図４のフローチャート４００のステップ４１０、及び図１の環境１００を参照すれば、フローチャート４００のステップ４１０は、接続１４５を通したホストシステム１５０ａとのリンクを確立するハードウェア装置１１０のプロセッサを具えている。前に説明したように、このことは、ＵＳＢケーブルのような物理接続で行うことができ、あるいは、バッテリを電源とする無線接続によって行うことができる。あるいはまた、両種類の接続をサポートすることができ、物理接続がバッテリ用の充電電力を供給する。コネクタ１４５が物理接続である場合は、組込みプロセッサ１２０は、電気接続を示す電流をコネクタ１４２から受けるまではアイドル（休止）状態にすることができる。接続１４５が無線伝送を使用する場合は、ホストシステム１５０ａ内に挿入した手動スイッチまたは無線受信機ドングルが、組込みプロセッサ１２０をトリガして動作状態にすることができる。一旦、ハードウェア装置１１０が電力を受けると、ハードウェア装置１１０は、検出可能なＵＳＢ装置を顕在化することのような、ホストシステム１５０ａとの通信を始めるのに必要なあらゆるハンドシェイクまたはプロトコル手順を用意し始めることができる。
【００６５】
図４のフローチャート４００のステップ４２０、及び図１の環境１００を参照すれば、フローチャート４００のステップ４２０は、セキュリティサービスコード１６２及びプロキシサーバーコード１６３を開始するハードウェア装置１１０のプロセッサを含む。前に説明したように、このことは、ＵＳＢ ＨＩＤディスカバリ（ＵＳＢヒューマンインタフェース装置発見）及び装置ポーリングを用いるホストシステムをフラッシュ（登録商標）側に有することによって、自動オペレーティングシステムの機能を利用することによって、ダウンロードしたプラグインを用いることによって、あるいはセキュリティサービスコード１６２及びプロキシサーバーコード１６３をホストメモリ１７０にコピーして、ホストシステム１５０のホストプロセッサ１６０が実行する他の方法によって達成することができる。将来のプラットフォームは、信頼できるコンピューティング（電子計算）を提供して、合法的な発行者からの信頼できるコードの自動実行を許可して、より洗練された解決策を提供することができる。
【００６６】
図４のフローチャート４００のステップ４３０、及び図１の環境１００を参照すれば、フローチャート４００のステップ４３０は、プロキシサーバー１６３の実行によって中継される、フラッシュ（登録商標）アプリケーション１７５からのＡＰＩリモートメソッド呼出しを受信する組込みプロセッサ１２０を含む。このトランザクションの詳細は、図１で幾分詳細に説明しているが、簡単に言えば、リモート分散メソッド１７２を起動し、シリアライザ１７３によってシリアル化し、プロキシサーバー１６３によってシリアルデータに変換して転送し、ハードウェア装置１１０上のシリアル接続ＡＰＩ１３９によって受信し、デシリアライザによって逆シリアル化し、そしてハードウェアアプリケーション１３５によって動作させる。
【００６７】
図４のフローチャート４００のステップ４４０、及び図１の環境１００を参照すれば、フローチャート４００のステップ４４０は、ステップ４３０からのＡＰＩ ＲＭＩが示すハードウェアＡＰＩを実現するハードウェア装置１１０のプロセッサを含んで、ハードウェアシステム１２５を制御する。ここでも、このトランザクションの詳細は図１及び図２で幾分詳細に説明しているが、ステップ４４０を要約すれば、特別に起動されるリモートメソッドの実現に焦点を当て、このメソッドは、組込みマシンコードまたは他の手段による実行を含むことができる。
【００６８】
これに加えて、ホストシステム１５０は、図３のゲームサーバー３８５のようなネットワークサーバーを利用して、他のホストシステムのハードウェア装置との相互作用を可能にする。このようにして、１つのハードウェア装置の状態変化が異なるハードウェア装置の状態に影響し得る。図３のようなネットワーク・コンテキストでは、ハードウェア装置３１０ａ〜３１０ｃは、共通のフラッシュ（登録商標）アプリケーション３７５、分散オブジェクトＡＰＩ３８９、及びゲームサーバー３８５を用いることによって、それぞれのホストシステム３５０ａ〜３５０ｃを通して互いに通信することができる。このことは、以前にはフラッシュ（登録商標）プラットフォームでは直接サポートされていなかったハードウェア装置上での制御を伴う新たな相互作用の世界を切り開く。フラッシュ（登録商標）のネットワーク通信能力を利用する便利な一体化された（オールインワンの）統合ハードウェア・プラットフォームを用いることによって、共用オンライン体験をサポートするフラッシュ（登録商標）アプリケーションにおける新たなハードウェアサポートを得ることを、ＵＳＢコードを差し込むことと同じくらい簡単にすることができる。
【００６９】
以上の本発明の説明より、種々の技術を用いて、本発明の範囲を逸脱することなしに、本発明の概念を実現することができることは明らかである。さらに、本発明は、特定実施例を特に参照して説明してきたが、本発明の範囲を逸脱することなしに、形態及び細部に変更を加え得ることは、当業者の認める所である。こうしたものとして、説明した実施例は、あらゆる点で例示的であり限定的ではないと考えるべきである。また、本発明は、本明細書で説明した特定実施例に限定されず、本発明の範囲を逸脱することなしに、多数の再構成、変更、及び代替が可能である。
【符号の説明】
【００７０】
１００  環境
１１０  ハードウェア装置
１１５  外部ハードウェア
１１６  センサ
１１７  サーボ
１１８  ディスプレイ
１２５  ハードウェアシステム
１２６  環境監視システム
１２７  機械制御システム
１２８  プレゼンテーションシステム
１３１  ハードウェアＡＰＩ
１３２  リモート分散メソッド
１３３  シリアライザ
１３５  ハードウェアアプリケーション
１３６  分散メソッド
１３７  デシリアライザ
１３９  シリアル接続ＡＰＩ
１４２  コネクタ
１４５  接続
１５０  ホストシステム
１５２  レセプタクル
１６２  セキュリティサービス
１６３  プロキシサーバー
１７１  ハードウェアＡＰＩ
１７２  リモート分散メソッド
１７３  シリアライザ
１７４  ランタイム環境
１７５  フラッシュ（登録商標）アプリケーション
１７６  分散メソッド
１７７  デシリアライザ
２００  フローチャート
２１０  テスト・ハードウェア装置
２２５  プロトタイプ・ハードウェアシステム
２３１  ハードウェアＡＰＩ
２３２  リモート分散メソッド
２３３  シリアライザ
２３６  分散メソッド
２３７  デシリアライザ
２３９  Ｃ／Ｃ＋＋シリアル接続ＡＰＩ
２５０  テスト・ハードウェアシステム
２７１  アクションスクリプト・ハードウェアＡＰＩ
２７２  リモート分散メソッド
２７３  シリアライザ
２７６  分散メソッド
２７７  デシリアライザ
２７９  フラッシュ（登録商標）バイナリソケット
２９０  ＡＰＩ規約ファイル
２９１  ハードウェアＡＰＩ定義
２９３  ＲＭＩインタフェース生成器
２９４  フラッシュ（登録商標）アクションスクリプト・インタフェースビルダー
２９５  ハードウェアＣ／Ｃ＋＋インタフェースビルダー
２９６  ハードウェア装置エミュレータ
２９７  ホストシステム・エミュレータ
３００  分散環境
３１０ａ〜ｃ  ハードウェア装置
３１６ａ〜ｃ  タッチセンサ
３１７ｂ  サーボ
３１８ａ、ｃ  スピーカ
３２６ａ〜ｃ  環境監視システム
３３５ａ〜ｃ  ハードウェアアプリケーション
３３９  シリアルＡＰＩ
３５０ａ〜ｃ  ホストシステム
３６３  プロキシサーバー
３７５  フラッシュ（登録商標）アプリケーション
３７９  フラッシュ（登録商標）バイナリソケット
３８５  ゲームサーバー
３８６  分散オンラインサービス
３８９  分散オブジェクトＡＰＩ
【図１】
2010182297.tif 000003
【図２】
2010182297.tif 000004
【図３】
2010182297.tif 000005
【図４】
2010182297.tif 000006
【外国語明細書】
2010182297000001.pdf