(57)【要約】  本発明は、センサデータを処理するための方法およびコンピューティングノードを提供する。方法は、コンピューティングノードに適用され、コンピューティングノードは、ハードウェアレイヤ、ハードウェアレイヤ上で実行されるOS、およびOS上で実行されるブラウザエンジンを含み、ハードウェアレイヤは、第1のセンサデバイスを含む。方法は、第1のセンサデバイスによって、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信するステップと、OSによって、センサデータに従ってイベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信するステップと、イベントタイプに従って、ブラウザエンジンによって、イベントが登録済みであると判定し、イベントの処理ロジックを実行するステップとを含む。本発明においては、ブラウザエンジンが、異なるOSの間の違いを隠蔽し、コードが一度だけ記述されるようにして、記述されたアプリケーションが異なるOS上で実行可能であり、それによって、アプリケーションがプラットフォームをまたいで実行されることを可能にする。
2015506020.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアレイヤ、前記ハードウェアレイヤ上で実行するオペレーティングシステム、および前記オペレーティングシステム(OS)上で実行するブラウザエンジンを備え、前記ハードウェアレイヤが第1のセンサデバイスを備えるコンピューティングノードに適用される、センサデータを処理するための方法であって、
前記第1のセンサデバイスによって、状態の変化を感知し、センサデータを生成し、前記センサデータをイベントの形式で前記オペレーティングシステムに送信するステップを有し、
前記オペレーティングシステムによって、前記センサデータに従って前記イベントのイベントタイプを判定し、前記センサデータおよび前記イベントタイプを前記ブラウザエンジンに送信するステップを有し、
前記センサデータが、前記ブラウザエンジンにもイベントの形式で送信され、
前記ブラウザエンジンによって、前記イベントタイプに従って、前記イベントが登録済みであると判定し、前記イベントの処理ロジックを実行するステップ
を有する方法。
【請求項２】
前記ブラウザエンジンが、ブラウザシェル、ウェブページ解析レンダリングエンジン、ならびにスクリプト解析エンジンを備え、前記イベントタイプに従って、前記ブラウザエンジンによって、前記イベントが登録済みであると判定し、前記イベントの処理ロジックを実行するステップが、具体的に、
前記ブラウザシェルによって、前記オペレーティングシステムによって送信されたセンサデータおよびイベントタイプを受信し、前記イベントタイプに従って前記イベントに関連する第1のウェブページを判定し、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップと、
前記ウェブページ解析レンダリングエンジンによって、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定し、前記第1のノードの識別子および前記イベントタイプに従って、前記イベントの処理ロジックのポータルを探し出し、前記スクリプト解析エンジンを呼び出して前記イベントの処理ロジックを実行するステップと、を有する請求項1に記載の方法。
【請求項３】
前記イベントタイプに従って前記イベントに関連する第1のウェブページを判定し、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップが、具体的に、
前記イベントが現在アクティブなウェブページに関連すると判定される場合、前記現在アクティブなウェブページが第1のウェブページであり、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップと、
前記イベントが動作中のすべてのウェブページに関連すると判定される場合、動作中の各ウェブページがそれぞれ第1のウェブページであり、それぞれの第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップとを有する請求項2に記載の方法。
【請求項４】
前記第1のセンサデバイスによって、前記状態の変化を感知し、前記センサデータを生成するステップの前に、
前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の前記第1のノードのスクリプトコンテンツを読み、前記スクリプト解析エンジンを呼び出して前記第1のノードの前記スクリプトコンテンツを実行するステップと、
前記スクリプト解析エンジンによって、前記第1のノードの前記スクリプトコンテンツに含まれる前記イベントの前記イベントタイプおよび前記イベントの前記処理ロジックが存在すると判定し、前記イベントの前記イベントタイプおよび前記イベントの前記処理ロジックを前記ウェブページ解析レンダリングエンジンに送信するステップと、
前記ウェブページ解析レンダリングエンジンによって、前記イベントの前記処理ロジックを前記スクリプト解析エンジンに送信して前記イベントを登録するステップと、
前記スクリプト解析エンジンによって、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するステップと、
前記ウェブページ解析レンダリングエンジンによって、前記イベントの前記イベントタイプおよび前記処理ロジックの前記ポータルを前記第1のノードのイベント監視リストに追加するステップと、をさらに有する請求項2に記載の方法。
【請求項５】
前記第1のセンサデバイスが、前記状態の変化を感知し、前記センサデータを生成する前に、前記方法が、
前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページを解析し、前記第1のウェブページ内の前記第1のノードに関して定義されたイベント属性が存在すると判定するステップと、
前記イベント属性に対応するイベントのイベントタイプおよび処理ロジックを判定するステップと、
前記イベントの処理ロジックを前記スクリプト解析エンジンに送信して前記イベントを登録するステップと、
前記スクリプト解析エンジンによって、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するステップと、
前記ウェブページ解析レンダリングエンジンによって、前記イベントの前記イベントタイプおよび前記処理ロジックのポータルを前記第1のノードのイベント監視リストに追加するステップと、をさらに有する請求項2に記載の方法。
【請求項６】
前記イベントタイプに従って、前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の前記第1のノードが前記イベントを登録済みであると判定するステップが、具体的に、
前記ウェブページ解析レンダリングエンジンによって、前記イベントタイプに従って前記イベントが位置に依存しないと判定し、前記第1のウェブページ内の各ノードのイベント監視リストをトラバースし、前記第1のノードの前記イベント監視リストに含まれるイベントのイベントタイプが存在すると判定するステップを含む請求項2から5のいずれか一項に記載の方法。
【請求項７】
前記イベントタイプに従って、前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の前記第1のノードが前記イベントを登録済みであると判定する前記ステップが、具体的に、
前記ウェブページ解析レンダリングエンジンによって、前記イベントタイプに従って前記イベントが位置に依存すると判定し、前記センサデータから位置情報を解析するステップと、
前記位置情報に従って、前記位置情報に適合し、前記第1のウェブページ内の第1のノードを判定するステップと、
前記第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定するステップと、を有する請求項2から5のいずれか一項に記載の方法。
【請求項８】
前記ウェブページ解析レンダリングエンジンが、前記スクリプト解析エンジンによって返送された処理ロジックのポータルと、前記イベントのイベントタイプとを前記第1のノードのイベント監視リストに追加した後に、前記方法が、
前記ウェブページ解析レンダリングエンジンによって、前記第1のノードの識別子および前記イベントのイベントタイプをイベント管理ハッシュテーブルに追加するステップをさらに有し、
前記イベントタイプに従って、前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定するステップが、具体的に、
前記ウェブページ解析レンダリングエンジンによって、前記ハッシュテーブルに問い合わせ、前記第1のノードの前記識別子に対応するテーブルのエントリに含まれるイベントのイベントタイプが存在すると判定するステップを含む請求項4または5に記載の方法。
【請求項９】
前記スクリプト解析エンジンを呼び出して前記イベントの前記処理ロジックを実行する前記ステップが、具体的に、
前記スクリプト解析エンジンによって、前記センサデータを解析し、前記ウェブページ解析レンダリングエンジンに記憶される前記第1のウェブページのウェブページコンテンツを修正するステップを有する請求項2に記載の方法。
【請求項１０】
前記イベントの前記処理ロジックが、第2のセンサデバイスの感知メソッドを呼び出すポータルを備え、前記スクリプト解析エンジンを呼び出して前記イベントの処理ロジックを実行するステップが、具体的に、
前記スクリプト解析エンジンによって、前記第2のセンサデバイスの感知メソッドを呼び出すポータルに従って前記第2のセンサデバイスの感知メソッドを呼び出すステップを有する請求項2に記載の方法。
【請求項１１】
前記第1のセンサデバイスが、前記状態の変化を感知し、前記センサデータを生成する前に、
前記ブラウザシェルによって、前記オペレーティングシステムから、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを取得するステップと、
前記ブラウザシェルによって、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを前記スクリプト解析エンジンに送信するステップと、
前記スクリプト解析エンジンによって、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを記憶するステップと、をさらに有する請求項10に記載の方法。
【請求項１２】
ハードウェアレイヤと、前記ハードウェアレイヤ上で実行されるオペレーティングシステムと、前記オペレーティングシステム(OS)上で実行されるブラウザエンジンとを備え、前記ハードウェアレイヤが、第1のセンサデバイスを備え、
前記第1のセンサデバイスが、状態の変化を感知し、センサデータを生成し、前記センサデータをイベントの形式で前記オペレーティングシステムに送信するように構成され、
前記オペレーティングシステムが、前記センサデータに従ってイベントのイベントタイプを判定し、前記センサデータおよび前記イベントタイプを前記ブラウザエンジンに送信するように構成され、前記センサデータが、前記ブラウザエンジンにもイベントの形式で送信され、
前記ブラウザエンジンが、前記イベントタイプに従って、前記イベントが登録済みであると判定し、前記イベントの処理ロジックを実行するように構成されるコンピューティングノード。
【請求項１３】
前記ブラウザエンジンが、ブラウザシェルと、ウェブページ解析レンダリングエンジンと、スクリプト解析エンジンとを含み、
前記ブラウザシェルが、前記オペレーティングシステムによって送信されたセンサデータおよびイベントタイプを受信し、前記イベントタイプに従って前記イベントに関連する第1のウェブページを判定し、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するように構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定し、前記第1のノードの識別子および前記イベントタイプに従って、前記イベントの処理ロジックのポータルを探し出し、前記スクリプト解析エンジンを呼び出すように構成され、
前記スクリプト解析エンジンが、前記イベントの処理ロジックを実行するように構成される請求項12に記載のコンピューティングノード。
【請求項１４】
前記ブラウザシェルが、具体的に、
前記イベントが現在アクティブなウェブページに関連すると判定される場合、前記現在アクティブなウェブページが第1のウェブページであり、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信し、
前記イベントが動作中のすべてのウェブページに関連すると判定される場合、動作中の各ウェブページがそれぞれ第1のウェブページであり、それぞれの第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するように構成される請求項13に記載のコンピューティングノード。
【請求項１５】
前記ウェブページ解析レンダリングエンジンが、前記第1のセンサデバイスが前記状態の変化を感知し、前記センサデータを生成する前に、前記第1のウェブページ内の第1のノードのスクリプトコンテンツを読み、前記スクリプト解析エンジンを呼び出すようにさらに構成され、
前記スクリプト解析エンジンが、前記第1のノードのスクリプトコンテンツを実行し、前記第1のノードのスクリプトコンテンツに含まれるイベントのイベントタイプおよび処理ロジックが存在すると判定し、前記イベントのイベントタイプおよび前記イベントの処理ロジックを前記ウェブページ解析レンダリングエンジンに送信するようにさらに構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントの処理ロジックを前記スクリプト解析エンジンに送信して前記イベントを登録するようにさらに構成され、
前記スクリプト解析エンジンが、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するようにさらに構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントのイベントタイプおよび前記処理ロジックのポータルを前記第1のノードのイベント監視リストに追加するようにさらに構成される請求項13に記載のコンピューティングノード。
【請求項１６】
前記ウェブページ解析レンダリングエンジンが、
前記第1のセンサデバイスが前記状態の変化を感知し、前記センサデータを生成する前に前記第1のウェブページを解析し、前記第1のウェブページ内の第1のノードに関して定義されたイベント属性が存在すると判定し、
前記イベント属性に対応するイベントのイベントタイプおよび処理ロジックを判定し、
前記イベントの処理ロジックを前記スクリプト解析エンジンに送信して報告されたイベントを登録するようにさらに構成され、
前記スクリプト解析エンジンが、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するようにさらに構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントのイベントタイプおよび前記処理ロジックのポータルを前記第1のノードのイベント監視リストに追加するようにさらに構成される請求項13に記載のコンピューティングノード。
【請求項１７】
前記ウェブページ解析レンダリングエンジンが、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定するように構成され、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定することが、具体的に、前記イベントタイプに従って前記イベントが位置に依存しないと判定し、前記第1のウェブページ内の各ノードのイベント監視リストをトラバースし、前記第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定することを含む請求項13から16のいずれか一項に記載のコンピューティングノード。
【請求項１８】
前記ウェブページ解析レンダリングエンジンが、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定するように構成され、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定することが、
前記イベントタイプに従って前記イベントが位置に依存すると判定し、前記センサデータから位置情報を解析することと、
前記位置情報に従って、前記位置情報に適合し、前記第1のウェブページ内にある第1のノードを判定することと、
前記第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定することとを含む請求項13から16のいずれか一項に記載のコンピューティングノード。
【請求項１９】
前記ウェブページ解析レンダリングエンジンが、
前記スクリプト解析エンジンによって返送された処理ロジックのポータル、および前記イベントのイベントタイプが前記第1のノードのイベント監視リストに追加された後、前記第1のノードの識別子および前記イベントのイベントタイプをイベント管理ハッシュテーブルに追加するようにさらに構成され、
前記ウェブページ解析レンダリングエンジンが、前記第1のノードの識別子およびイベントタイプに従って前記イベントの処理ロジックのポータルを探し出すように構成され、前記第1のノードの識別子およびイベントタイプに従って前記イベントの処理ロジックのポータルを探し出すことが、具体的に、前記ハッシュテーブルに問い合わせ、前記第1のノードの識別子に対応するテーブルのエントリに含まれるイベントのイベントタイプが存在すると判定することである請求項15または請求項16に記載のコンピューティングノード。
【請求項２０】
前記スクリプト解析エンジンが、具体的に、前記センサデータを解析し、前記ウェブページ解析レンダリングエンジンに記憶される第1のウェブページのウェブページコンテンツを修正するように構成される請求項13に記載のコンピューティングノード。
【請求項２１】
端末が、第2のセンサデバイスをさらに含み、前記イベントの処理ロジックが、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを含み、前記スクリプト解析エンジンが、具体的に、
前記第2のセンサデバイスの感知メソッドを呼び出すポータルに従って前記第2のセンサデバイスの感知メソッドを呼び出すように構成される請求項13に記載のコンピューティングノード。
【請求項２２】
前記ブラウザシェルが、前記第1のセンサデバイスが前記状態の変化を感知し、前記センサデータを生成する前に、前記オペレーティングシステムから、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを取得し、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを前記スクリプト解析エンジンに送信するようにさらに構成され、
前記スクリプト解析エンジンが、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを記憶するようにさらに構成される請求項21に記載のコンピューティングノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、センサ応用技術に関し、より詳細には、センサデータを処理するための方法およびコンピューティングノード(computing node)に関する。
【背景技術】
【０００２】
センサデバイス(sensor device)が、端末に広く応用されている。本明細書における端末は、携帯電話、電子ブック、タブレットコンピュータ、電子アルバムなどの端末を表す包括的な用語である。センサデバイスの広範な使用は、より多様化された機能によってユーザエクスペリエンスを向上させる。
【０００３】
図1は、従来技術のセンサデバイスのインタラクションモデルの概略図である。図1に示されるように、ネイティブアプリケーションは、アクセスするためのウェブページを使用する必要なしにセンサデバイスと直接インタラクションする。ほとんどすべての現在の端末のオペレーティングシステム(OS)は、そのようなインタラクションモードを採用する。以下は、インタラクションモデルである。
【０００４】
101.  センサデバイスが、ユーザの応答または外部環境の変化に応答し、センサデータをOSに送信する。
【０００５】
102.  OSが、センサデータを処理し、処理されたセンサデータをフレームワーク(Framework)レイヤに送信する。
【０００６】
103.  Frameworkレイヤが、ネイティブアプリケーションがデータを処理する準備が整った状態にあるかどうかを判定し、そのような状態にある場合、センサイベントをネイティブアプリケーションに送信する。フレームワークレイヤは、OSのさまざまな実装に応じて追加または削除される可能性がある。
【０００７】
104.  ネイティブアプリケーションが、センサイベントに応答し、センサデバイスを動作させるための応答イベントを生成する。
【０００８】
105.  応答イベントが、センサデバイスまで下流に向かって送信される。
【０００９】
106.  センサデバイスが、応答を行う。
【００１０】
上記の解決策においては、異なるOSが異なるシステムコールインターフェース(system calling interface)を提供し、異なるプログラミング言語を使用する。例えば、Android(登録商標)プラットフォームではJava(登録商標)およびC++が使用されるが、Apple社のiOS(登録商標)プラットフォームではObject-Cが使用される。その結果、同じアプリケーションが異なるOSプラットフォーム上で同時に実行される必要がある場合、異なるコードが必要とされ、別々にコンパイルされる必要があり、それは開発および保守の費用を増加させる。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明の実施形態は、ネイティブアプリケーションとセンサデバイスとの間の直接的なインタラクションが原因でアプリケーションがプラットフォームをまたいで実行できないという従来技術の問題をある程度解決するための、センサデータを処理するための方法およびコンピューティングノードを提供する。
【課題を解決するための手段】
【００１２】
一態様において、本発明の実施形態は、コンピューティングノードに適用される、センサデータを処理するための方法であって、コンピューティングノードが、ハードウェアレイヤ、ハードウェアレイヤ上で実行されるオペレーティングシステム(OS)、およびOS上で実行されるブラウザエンジンを含み、ハードウェアレイヤが、第1のセンサデバイスを含む方法を提供する。方法は、
第1のセンサデバイスによって、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信するステップを含み、
OSによって、センサデータに従ってイベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信するステップを含み、センサデータが、ブラウザエンジンにもイベントの形式で送信され、
イベントタイプに従って、ブラウザエンジンによって、イベントが登録済みであると判定し、イベントの処理ロジックを実行するステップを含む。
【００１３】
別の態様において、本発明の実施形態は、ハードウェアレイヤと、ハードウェアレイヤ上で実行されるオペレーティングシステム(OS)と、OS上で実行されるブラウザエンジンとを含み、ハードウェアレイヤが第1のセンサデバイスを含むコンピューティングノードを提供する。
第1のセンサデバイスは、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信するように構成され、
OSは、センサデータに従ってイベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信するように構成され、センサデータは、ブラウザエンジンにもイベントの形式で送信され、
ブラウザエンジンは、イベントタイプに従って、イベントが登録済みであると判定し、イベントの処理ロジックを実行するように構成される。
【００１４】
上述の技術的な解決策のうちの少なくとも1つの技術的な解決策は、以下の利点または有益な効果を有する。
【００１５】
本発明の実施形態は、センサデバイスが、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信し、OSが、イベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信し、イベントタイプに従って、ブラウザエンジンが、イベントが登録済みであると判定し、イベントの処理ロジックを実行する、といった技術を採用する。このように、ブラウザエンジンは、異なるOSの間の違いを隠蔽し、ネイティブアプリケーションとセンサデバイスとの間の直接的なインタラクションが原因でアプリケーションがプラットフォームをまたいで実行できないという従来技術の問題をある程度解決し、コードが一度だけ記述されるようにして、記述されたアプリケーションが異なるOS上で実行可能であり、それによって、アプリケーションがプラットフォームをまたいで実行されることを可能にする。
【００１６】
本発明の実施形態または従来技術における技術的な解決策をより明瞭に説明するために、以下で、それらの実施形態または従来技術を説明するために必要とされる添付の図面を簡単に紹介する。明らかに、以下の説明の添付の図面は、本発明の一部の実施形態を示しており、当業者は、創造的な努力なしにこれらの添付の図面からその他の図面をなお導き出すことが可能である。
【図面の簡単な説明】
【００１７】
【図１】従来技術のセンサデバイスのインタラクションモデルの概略図である。
【図２】本発明によるインタラクションモデルの概略図である。
【図３】図2に示されたインタラクションモデルに基づくアプリケーションの概略的なフロー図である。
【図４】本発明の一実施形態によるセンサデータを処理するための方法の概略的な流れ図である。
【図５】webページのDOMツリーの概略的な構造図である。
【図６】本発明の一実施形態による、ブラウザエンジンにwebページをロードする概略的なシグナリング図である。
【図７】ある応用シナリオでの本発明の一実施形態の概略的なシグナリング図である。
【図８】別の応用のシナリオでの本発明の一実施形態の概略的なシグナリング図である。
【図９】本発明の一実施形態によるコンピューティングノード900の概略的な構造図である。
【発明を実施するための形態】
【００１８】
本発明の実施形態の目的、技術的な解決策、および利点をより明解にするために、以下は、本発明の実施形態の技術的な解決策を本発明の実施形態の添付の図面を参照して明瞭かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく一部であるに過ぎない。創造的な努力なしに本発明の実施形態に基づいて当業者によって得られたすべてのその他の実施形態は、本発明の保護範囲内に入る。
【００１９】
図2は、本発明によるインタラクションモデルの概略図である。図2に示されるように、インタラクションモデルは、以下のステップを含む。
【００２０】
201.  センサデバイスが、ユーザの応答または外部環境の変化に応答し、センサデータをイベントの形式でOSに送信する。OSは、通常のOSまたは組み込みOSであってもよい。
【００２１】
202.  OSが、センサデータに関するフォーマット変換を実行し、センサデータを前処理し、前処理されたデータをFrameworkレイヤに送信する。
【００２２】
203.  Frameworkレイヤが、ブラウザBrowser/ウィジェットWidgetがデータを受信する準備が整った状態にあるかどうかを調べ、Browser/Widgetがデータを受信する準備が整った状態にある場合、センサデータをBrowser/Widgetに送信する。特に、データを受信する準備が整った状態は、Browser/WidgetのBrowserエンジンがアクティブにされているか(activated)どうかによって判定され得る。
【００２３】
Frameworkレイヤは、OSの実装に応じて追加または削除されうる。Browserエンジンは、OS上で実行される、webアプリケーションを実行するミドルウェアである。
【００２４】
204.  Browser/WidgetのBrowserエンジンが、webページ内のドキュメントオブジェクトモデル(Document Object Model、略してDOM)のノードが対応するイベントリスニングコード(event listening code)を有するかどうかを判定し、有する場合、センサデータを対応するWebページに送信する。
【００２５】
205.  webページのイベント処理モジュールが起動される(triggered)。イベントリスニングコードがセンサデバイスの呼び出しを含む場合、センサモジュールが呼び出され、応答イベントが生成される。
【００２６】
206.  応答イベントが、センサデバイスまで下流に向かって送信される。
【００２７】
207.  センサデバイスが、応答を行う。
【００２８】
図3は、図2に示されたインタラクションモデルに基づくアプリケーションの概略的なフロー図である。図3に示されるように、アプリケーションのプロセスは、特に、以下のステップを含む。
【００２９】
301.  正式な(authorized)開発者が、webページのためのイベントリスニングコードを追加する。
【００３０】
本明細書におけるイベントリスニングコードは、イベント処理ロジックとも呼ばれることがある。
【００３１】
302.  ブラウザエンジンにwebページがロードされる。
【００３２】
303.  ブラウザエンジンが、webページを解析し、イベントリスニングマッピングテーブル(event listening mapping table)を生成する。
【００３３】
イベントリスニングマッピングテーブルは、イベントとそれらのイベントの処理ロジックとの間のマッピングの関係を含む。
【００３４】
304.  端末のユーザが、センサデバイスを起動する。
【００３５】
305.  センサデバイスが、センサデータをイベントの形式でOSに送信する。
【００３６】
306.  OSが、イベントをブラウザエンジンに送信する。
【００３７】
307.  ブラウザエンジンが、イベントが登録されているかどうかを検出する。
【００３８】
308.  イベントが登録されている場合、ブラウザエンジンが、イベントリスニングマッピングテーブルに従ってイベントの処理ロジックを呼び出す。
【００３９】
3091.  処理ロジックがwebページのスクリプトコンテンツの修正を含む場合、webページが再描画される。
【００４０】
例えば、webページの提示能力を高めるために、パターンがwebページ上でデザインされ、そのパターンの色が現在の温度を表す。それに対応して、温度センサの温度変化イベントの処理ロジックは、温度パラメータに従ってパターンの色を修正するコードを含む。このように、温度センサが温度変化を感知し、温度パラメータを報告した後、ブラウザエンジンは、温度変化イベントの処理ロジックを呼び出す。処理ロジックを実行するプロセスにおいて、ブラウザエンジンは、webページのスクリプトコンテンツ内のパターンの色のパラメータを修正し、修正されたスクリプトコンテンツに従ってwebページを再描画する。webページを再描画すると、パターンの色は、温度センサによって感知された温度パラメータに対応する。
【００４１】
3092.  処理ロジックがセンサデバイスの呼び出しを含む場合、センサデバイスが呼び出される。
【００４２】
上記のインタラクションモデルから、本発明においては、センサデバイスとのインタラクションを処理するためにweb開発言語が使用されてもよいことが知られうる。web開発言語は、ブラウザエンジンで実行され、ブラウザエンジンは、異なるOSの間の違いを隠蔽する。したがって、コードが1回の試みでコンパイルされることによって、コンパイルされたアプリケーションを異なるOSで実行することができ、それによって、アプリケーションがプラットフォームをまたがって実行されることを可能にする。さらに、システムイベントが生成されると、センサデバイスは、ユーザによって設定された処理ロジックがイベントに対して速やかに応答することができるように直ちにイベントを報告する。例えば、本発明の実施形態は、図4に示される方法を使用して実施され得る。
【００４３】
図4は、本発明の一実施形態によるセンサデータを処理するための方法の概略的な流れ図である。方法は、携帯電話端末、セットトップボックス、携帯情報端末(Personal Digital Assistant、略してPDA)などのコンピューティングノードに適用され、コンピューティングノードは、ハードウェアレイヤ、ハードウェアレイヤ上で実行されるOS、およびOS上で実行されるブラウザエンジンを含み、ハードウェアレイヤは、第1のセンサデバイスを含む。ブラウザエンジンは、ブラウザまたはウィジェットWidgetに含まれる可能性がある。図4に示されるように、方法は、以下のステップを含む。
【００４４】
401.  第1のセンサデバイスが、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信する。
【００４５】
例えば、第1のセンサデバイスは、加速度計、方向センサ、3軸ジャイロ、光センサ、温度センサ、タッチセンサなどであってもよい。それに対応して、第1のセンサデバイスによって感知される状態は、加速度、方向、動きの軌跡、磁界、近接性、光、温度、タッチフリック(touch flick)などであってもよい。
【００４６】
402.  OSが、センサデータに従ってイベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信し、センサデータは、やはり、ブラウザエンジンにイベントの形式で送信される。
【００４７】
一般に、コンピューティングノードにインストールされているときに、OSは、コンピューティングノードのインストールされているハードウェアを自動的に走査し、対応するドライバを読み、またはコンピューティングノードに新しいハードウェアをインストールしている間に、OSは、新しいハードウェアもまた自動的に操作し、その新しいハードウェアのドライバを読む。具体的に、この実施形態において、OSは、第1のセンサデバイスに対応する少なくとも1つのイベントのイベントタイプを取得するために前もって第1のセンサデバイスのドライバを読む。402において、センサデータに対応するイベントのイベントタイプは、センサデータに従って判定される。
【００４８】
例えば、第1のセンサデバイスが3軸ジャイロであるとき、イベントは、方向変化イベント、加速度変化イベントなどを含んでもよく、対応するイベントタイプは、方向変化イベントタイプ、加速度変化イベントタイプ、磁界変化イベントタイプなどである。方向の変化を感知するとき、3軸ジャイロが、401において、方向パラメータを含むセンサデータを生成し、センサデータに含まれる方向パラメータに従って、OSが、402において、イベントが方向変化イベントであることと、対応するイベントタイプが方向変化イベントタイプであることとを判定する。
【００４９】
403.  イベントタイプに従って、ブラウザエンジンが、イベントが登録済みであると判定し、イベントの処理ロジックを実行する。
【００５０】
特に、イベントの処理ロジックは、センサデバイスの状態変化を監視する目的で前もってwebページに関して正式な開発者によって追加される。一般的に、webページは、DOMツリーによって形成される。webページに関する処理ロジックを追加することは、実際は、webページのDOMツリー内のノードに関するイベントリスニングコードを追加することである。図5は、webページのDOMツリーの概略的な構造図である。図5に示されるように、単純なwebページは、4つのノード、すなわち、ハイパーテキストマークアップ言語(HTML)ノード、bodyノード、canvasノード、およびdivision (div)ノードによって形成される。例えば、方向センサの処理ロジックが、canvasノードに関して追加される必要があり、方向センサの状態が変わるときにdivノードに現在の方向を表示することになる。canvasノードの識別子(ID)がcanvas1であり、divノードのIDがdiv1であるものとする。canvasノードに関して追加される処理ロジックは、以下のようになる。
<script>
document.getElementById("canvas1").addEventListner("orientationchanged", function(event){
document.getElementById("div1").innerHTML="direction angle:"+event.value[0]+"<br/>"
+"垂直回転角:"+event.value[1]+"<br/>"
+"水平回転角:"+event.value[2]+"<br/>";
})
</script>
ここで、「orientationchanged」は、方向変化イベントタイプを表す。方向センサの状態が変わるとき、後で登録される関数function (event)が起動され、関数が、イベントによって送信された方向パラメータを処理し、divノードに現在の方向の角度、垂直回転角、および水平回転角を表示する。実際の応用においては、直接、方向センサのセンサデータを使用することによってcanvasノードにコンパスが描かれうることに留意されたい。本明細書の説明は、本発明の実施形態の方法を説明するように意図されているに過ぎず、したがって、端末の現在の方向の情報は、手短にdivノードに表示される。
【００５１】
webページがブラウザエンジンにロードされるとき、ブラウザエンジンは、webページを実行し、解析することによってwebページ内の各ノードのノードコンテンツ(node content)を取得する。それに対応して、303において、以前に取得したノードコンテンツに従って、ブラウザエンジンが、どのノードがイベントを登録したかを判定することができる。具体的に、ブラウザエンジンは、3つの部分、すなわち、ブラウザshellと、ウェブページ解析レンダリングエンジンと、スクリプト解析エンジンとに分割され得る。ブラウザshellは、Linux(登録商標) shellに相当し、ブラウザインターフェースに関してユーザによって行われた操作を受け取り、それに応じた反応をするためにウェブページ解析レンダリングエンジンとスクリプト解析エンジンとを呼び出す。例えば、ユーザがウェブページ上のリンクをクリックするとき、ブラウザshellは、ユーザのクリックイベントを受け取り、ウェブページ解析レンダリングエンジンを呼び出して、クリックされたウェブサイトのアドレスを見つけ、新しいウェブページを開き、ウェブページ解析レンダリングエンジンは、ウェブページの解析およびレンダリングなどの動作を担い、スクリプト解析エンジンは、javascriptのスクリプトコードの解析および実行を担う。本発明の任意の実施形態においては、ステップ403は、特に、以下のステップを含む。
【００５２】
ブラウザShellは、OSによって送信されたセンサデータおよびイベントタイプを受信し、イベントタイプに関連する第1のウェブページを判定し、第1のウェブページ、センサデータ、およびイベントタイプをウェブページ解析レンダリングエンジンに送信する。
【００５３】
イベントタイプに従って、ウェブページ解析レンダリングエンジンは、第1のウェブページの第1のノードがイベントを登録済みであると判定し、第1のノードの識別子およびイベントタイプに従って、イベントの処理ロジックのポータル(portal)を探し出し、スクリプト解析エンジンを呼び出して処理ロジックを実行する。
【００５４】
さらに、イベントタイプに従ってイベントに関連する第1のウェブページを判定し、第1のウェブページ、センサデータ、およびイベントタイプをウェブページ解析レンダリングエンジンに送信することは、特に、
イベントが現在アクティブなウェブページに関連すると判定される場合、現在アクティブなウェブページが第1のウェブページであるので、第1のウェブページ、センサデータ、およびイベントタイプをウェブページ解析レンダリングエンジンに送信することと、
イベントが実行中の(in run time)すべてのウェブページに関連すると判定される場合、動作中の各ウェブページがそれぞれ第1のウェブページであって、それぞれの第1のウェブページ、センサデータ、およびイベントタイプをウェブページ解析レンダリングエンジンに送信することとを含む。
【００５５】
例えば、タッチフリックイベントおよびフィンガータップ(finger tap)イベントなどのイベントは、概して、現在アクティブなウェブページにのみ関連し、方向変化イベントは、概して、動作中のすべてのウェブページに関連する。動作中のすべてのウェブページは、現在アクティブなウェブページと、動作中の、ただしアクティブではないウェブページとを含む。
【００５６】
特に、ブラウザShellによって第1のウェブページをウェブページ解析レンダリングエンジンに送信することは、特に、第1のウェブページに対応するDOMツリーのポインタをウェブページ解析レンダリングエンジンに送信することである。第1のウェブページは、任意の1つまたは複数のウェブページである可能性があり、第1のノードは、第1のウェブページのDOMツリー内の任意の1つまたは複数のノードである可能性がある。
【００５７】
さらに、ウェブページの提示能力およびインタラクション能力を高め、ユーザエクスペリエンスを向上させるために、センサデータに応じて提示されるウェブページコンテンツを調整するロジックが、イベント処理ロジックに埋め込まれ得る。それに対応して、スクリプト解析エンジンを呼び出して処理ロジックを実行するプロセスは、特に、以下の動作を含む。
【００５８】
スクリプト解析エンジンは、センサデータを解析し、ウェブページ解析レンダリングエンジンに記憶される第1のウェブページのウェブページコンテンツを修正する。
【００５９】
上述の例が本明細書において使用されている中で、方向センサ処理ロジックが、canvasノードに追加されるものとする。処理ロジックは、方向センサの状態が変わるときにdivノードに現在の方向を表示することになる。スクリプト解析エンジンがブラウザshellによって処理ロジックfunction (event)を実行するためにトリガされるとき、処理ロジックは、ブラウザshellによって送信されたセンサデータを処理し、ウェブページ解析レンダリングエンジンに記憶されたdivノードウェブページコンテンツをセンサデータに含まれる方向パラメータに応じて修正する。ウェブページ解析レンダリングエンジンは、修正されたウェブページコンテンツに従ってウェブページを更新し、divノードに現在の方向の角度、垂直回転角、および水平回転角を表示する。
【００６０】
具体的に、ブラウザShellがセンサデータをスクリプト解析エンジンに送信するとき、センサデータは、概して、インターフェース記述言語(Interface Description Language、略してIDL)によって定義され、javascriptとシステムの低レベルのコードとの間のインタラクションのインターフェースとして作用する。以下は、IDLによって定義された例示的なインターフェースである。
module events{
interface [
Conditional=ORIENTATION_CHANGED_EVENTS
] OrientationChangedEvent {
readonly attribute float value[3];
void initOrientationChangedEvent(in float value[3]);
};
}
【００６１】
本発明の別の任意の実施形態においては、ウェブページがブラウザエンジンにロードされるとき、ブラウザエンジンが、webページの各ノードに追加された処理ロジックを特定し、処理ロジックに対応するイベントを登録することができる。具体的に、ステップ401の前に、本方法は、以下のステップをさらに含む。
【００６２】
ウェブページ解析レンダリングエンジンは、第1のウェブページ内の第1のノードのスクリプトコンテンツを読み、スクリプト解析エンジンを呼び出して第1のノードのスクリプトコンテンツを実行する。
【００６３】
スクリプト解析エンジンは、第1のノードのスクリプトコンテンツに含まれるイベントのイベントタイプおよび処理ロジックが存在すると判定し、イベントのイベントタイプおよび処理ロジックをウェブページ解析レンダリングエンジンに送信する。
【００６４】
ウェブページ解析レンダリングエンジンは、イベントの処理ロジックをスクリプト解析エンジンに送信してイベントを登録する。
【００６５】
スクリプト解析エンジンは、処理ロジックをカプセル化(encapsulate)し、処理ロジックのポータルをウェブページ解析レンダリングエンジンに返送する。
【００６６】
ウェブページ解析レンダリングエンジンは、イベントのイベントタイプおよび処理ロジックのポータルを第1のノードのイベント監視リストに追加する。
【００６７】
図6は、本発明の一実施形態による、ブラウザのエンジンにwebページをロードする概略的なシグナリング図である。図6に示されるように、上述の例が引き続き本明細書において使用され、以下のステップが含まれる。
【００６８】
601.  webページ解析およびレンダリングエンジンが、ウェブページのcanvasノードのスクリプトコンテンツを読む。
【００６９】
602.  ウェブページ解析レンダリングエンジンが、スクリプト解析エンジンを呼び出してcanvasノードのスクリプトコンテンツを実行する。
【００７０】
603.  スクリプト解析エンジンが、canvasノードに関するイベント属性を追加する。
【００７１】
特に、canvasノードのスクリプトコンテンツを実行するとき、スクリプト解析エンジンは、canvasノードのスクリプトコンテンツに含まれるイベントのイベントタイプおよび処理ロジックが存在すると判定し、イベントタイプ「orientationchanged」とイベントの処理ロジックfunction (event)とをウェブページ解析レンダリングエンジンに送信する。
【００７２】
604.  ウェブページ解析レンダリングエンジンが、canvasノードに関するイベント監視キューを追加する。
【００７３】
605.  イベントを登録するようにスクリプト解析エンジンに要求する。
【００７４】
特に、ウェブページ解析レンダリングエンジンは、イベントの処理ロジックをスクリプト解析エンジンに送信する。
【００７５】
606.  スクリプト解析エンジンが、処理ロジックをカプセル化し、処理ロジックのポータルをウェブページ解析レンダリングエンジンに返送する。
【００７６】
特に、処理ロジックのポータルは、処理ロジックを記憶するためのアドレスである可能性がある。
【００７７】
607.  ウェブページ解析レンダリングエンジンが、イベントのイベントタイプ「orientationchanged」と処理ロジックのポータルとをcanvasノードのイベント監視リストに追加する。
【００７８】
具体的に、607の後、スクリプト解析エンジンは、canvasノードのスクリプトコンテンツの実行を続けてもよい。canvasノードのスクリプトコンテンツがその他の処理ロジックを含むと判定されるときは、603〜607が引き続き実行されてもよい。canvasノードのイベント監視キューは既に生成されているので、605は繰り返される必要がない。スクリプト解析エンジンがcanvasノードのスクリプトコンテンツの実行を終えるとき、ウェブページ解析レンダリングエンジンは、webページのその他のノードのスクリプトコンテンツを読み続け、スクリプト解析エンジンを呼び出してスクリプトコンテンツを実行する。
【００７９】
図7は、ある応用のシナリオでの本発明の一実施形態の概略的なシグナリング図である。この応用のシナリオにおいては、上述の方向センサの処理ロジックが、canvasノードに関して追加され、方向センサの状態が変わるときにdivノードに現在の方向を表示することになる。図7に示されるように、シグナリングのプロセスは、特に、以下のステップを含む。
【００８０】
701.  方向センサが、方向の変化を感知し、方向パラメータをイベントの形式でOSに送信する。
【００８１】
702.  方向パラメータに応じて、OSが、イベントが方向変化イベントであると判定し、イベントをブラウザShellに送信する。
【００８２】
703.  ブラウザShellが、いずれかのDOMノードが方向変化イベントを登録済みであるかどうかについてウェブページ解析レンダリングエンジンに問い合わせる。
【００８３】
704.  ウェブページ解析レンダリングエンジンが、DOMノードをトラバースし、DOMノードのイベント監視リストを探索し、canvasノードが方向変化イベントを登録済みであると判定する。
【００８４】
705.  ウェブページ解析レンダリングエンジンが、canvasノードによって登録された方向変化イベントの処理ロジックのポータルをブラウザShellに返送する。
【００８５】
706.  ブラウザShellが、処理ロジックのポータルおよび方向パラメータをスクリプト解析エンジンに送信する。
【００８６】
707.  スクリプト解析エンジンが、方向パラメータを解析し、処理ロジックを実行する。
【００８７】
708.  スクリプト解析エンジンが、divノードに現在の方向を表示するように、ウェブページ解析レンダリングエンジンに記憶されたdivノードコンテンツを修正する。
【００８８】
本発明の別の任意の実施形態においては、webページがブラウザエンジンにロードされるとき、ブラウザエンジンが、解析を実行してwebページの各ノードで定義された属性を取得し、属性がイベント属性である場合、イベント属性に対応するイベントを登録してもよい。具体的には、401の前に、以下のステップが含まれうる：
ウェブページ解析レンダリングエンジンによって、第1のウェブページを解析し、第1のウェブページ内の第1のノードに関して定義されたイベント属性が存在すると判定するステップと、
イベント属性に対応するイベントのイベントタイプおよび処理ロジックを判定するステップと、
イベントの処理ロジックをスクリプト解析エンジンに送信してイベントを登録するステップと、
スクリプト解析エンジンによって、処理ロジックをカプセル化し、処理ロジックのポータルをウェブページ解析レンダリングエンジンに返送するステップと、
ウェブページ解析レンダリングエンジンによって、イベントのイベントタイプおよび処理ロジックのポータルを第1のノードのイベント監視リストに追加するステップ。
【００８９】
さらに、イベントタイプに従って、ウェブページ解析レンダリングエンジンによって、第1のウェブページ内の第1のノードがイベントを登録済みであると判定することが、具体的に、
ウェブページ解析レンダリングエンジンによって、イベントタイプに従ってイベントが位置に依存しないと判定し、各ノードのイベント監視リストをトラバースし、第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定する、
ことを含む。
【００９０】
任意で、イベントタイプに従って、ウェブページ解析レンダリングエンジンによって、第1のウェブページ内の第1のノードがイベントを登録済みであると判定することが、具体的に、
ウェブページ解析レンダリングエンジンによって、イベントタイプに従ってイベントが位置に依存すると判定し、センサデータから位置情報を解析することと、
位置情報に従って、位置情報に適合し、第1のウェブページ内にある第1のノードを判定することと、
第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定すること、とを含む。
【００９１】
特に、イベントが位置に依存するのか、または依存しないのかは、イベントタイプに従って判定され得る。概して、環境変化感知イベント、例えば、方向変化イベント、温度変化イベントなどは、位置に依存せず、タッチ感知イベント、例えば、タッチフリックイベント、フィンガータップイベントなどは、位置に依存する。例えば、ウェブページの複数のノードは、ウェブページの異なる位置に置かれており、すべてがタッチフリックイベントを登録済みである。タッチセンサは、ユーザのタッチフリックを感知するときにセンサデータを生成する。センサデータは、タッチフリックによって生じる位置情報、フリックパラメータなどを含む。ウェブページ解析レンダリングエンジンは、イベントタイプに従ってイベントが位置に依存すると判定し、センサデータの位置情報を解析し、ウェブページ内のどのノードが位置情報に合致するか、すなわち、タッチフリックがどのノードに対して起こるかを判定し、次いで、合致したノードがタッチフリックイベントを登録済みであるかどうかを判定し、登録済みである場合、合致したノードの識別子をブラウザShellに送信する。
【００９２】
登録されたイベントがDOMノードに結びつけられているので、センサデバイスのイベントに応答する際、DOMツリーをトラバースしてどのDOMノードがセンサデバイスのイベントを登録済みであるかを見つけることが必要である。DOMツリーが多くのノードを有し、ツリーの深さがかなり深い場合、トラバースは高いコストで実行される。したがって、イベントに応答する際に探索を容易にするためにDOMツリーに関するグローバルイベント管理(global event management)ハッシュ(Hash)テーブルを設けることによって、最適化が行われ得る。そのような応用のシナリオにおいては、ウェブページ解析レンダリングエンジンが、スクリプト解析エンジンによって返送された処理ロジックのポータルと、イベントのイベントタイプとを第1のノードのイベント監視リストに追加した後に、以下のステップが含まれる。
ウェブページ解析レンダリングエンジンが、第1のノードの識別子およびイベントのイベントタイプをイベント管理Hashテーブルに追加する。
【００９３】
イベントタイプに従って、ウェブページ解析レンダリングエンジンによって、第1のウェブページ内の第1のノードがイベントを登録済みであると判定することは、具体的に、以下を含む。
ウェブページ解析レンダリングエンジンが、Hashテーブルに問い合わせ、第1のノードの識別子に対応するテーブルのエントリに含まれるイベントのイベントタイプが存在すると判定する。
【００９４】
具体的に、イベント管理ハッシュテーブルのフォーマットは、<キー, value>である可能性があり、ここで、キーは、イベントのイベントタイプであり、valueは、イベントのDOMノードの配列である。DOMノードの配列は、イベントを同時に登録済みである複数のDOMノードの識別子を含み得る。さらに、イベント登録管理モジュールが追加されてもよく、イベント登録管理モジュールは、イベント登録管理を担う。特定の実装において、イベント登録管理モジュールは、ウェブページ解析レンダリングエンジンの下位モジュールであってもよい。それに対応して、図6に示されたシグナリングのプロセス607の後に、以下のステップが含まれる。
ウェブページ解析レンダリングエンジンが、第1のノードの識別子およびイベントのイベントタイプを、時間登録管理モジュールによって記憶されるイベント管理Hashテーブルに追加する。
【００９５】
応用において、複数のノードが同じイベントタイプのイベントを登録済みであることがあり得る。ウェブページ解析レンダリングエンジンは、複数のノードの識別子およびイベントタイプを同時にブラウザshellに送信することがあり、ブラウザshellは、複数のノードの識別子、イベントタイプ、およびセンサデータをウェブページ解析レンダリングエンジンに送信する。複数のノードの識別子およびイベントタイプに従って、ウェブページ解析レンダリングエンジンは、各ノードによって登録されたイベントの処理ロジックのポータルをそれぞれ見つけ、スクリプト解析エンジンを呼び出して、複数のノードによって登録されたイベントの処理ロジックをそれぞれ実行する。異なるノードによって登録される同じイベントタイプのイベントは、異なる処理ロジックを有することがある。
【００９６】
さらに、いくつかの種類のセンサデバイスは、ユーザの命令に応答してフィードバックを行ってもよい。本発明の別の任意の実施形態においては、ブラウザエンジンが、イベントに応答し、センサデバイスを動作させてもよい。具体的に、報告されたイベントの処理ロジックが、第2のセンサデバイスの感知メソッドを呼び出すポータルを含み、スクリプト解析エンジンを呼び出してイベントの処理ロジックを実行することが、具体的に、以下を含む：
スクリプト解析エンジンが、呼び出しのポータルに従って第2のセンサデバイスの感知メソッドを呼び出す。
【００９７】
具体的に、第2のセンサデバイスは、呼び出し可能な感知メソッドを有するセンサデバイスであり、第1のセンサデバイスと同じタイプまたは異なるタイプであってもよい。一般的に、正式な開発者が、第2のセンサデバイスの感知メソッドを呼び出すポータルを前もって特定のノードのイベントの処理ロジックに追加する。ゲームアプリケーションの力フィードバックセンサが、本明細書において例として取り上げる。例えば、野球ゲームにおいて、力フィードバックセンサは、ジョイスティックの方向および力などのパラメータをイベントの形式でブラウザエンジンに送信することがある。正式な開発者によって設計されたイベント処理ロジックにおいては、本物のバッティングの感触をユーザに持たせるように、力フィードバックセンサによって報告されたセンサデータに従ってジョイスティックによってシミュレーションされるバットとボールとの間の接触が決定されるときに起動されたように力フィードバックセンサの振動メソッドが呼び出される。このように、スクリプト解析エンジンがイベントの処理ロジックを実行するとき、力フィードバックセンサによって報告されたセンサデータに従ってジョイスティックによってシミュレーションされるバットとボールとの間の接触が決定される場合、力フィードバックセンサの振動メソッドは、力フィードバックセンサの振動メソッドを呼び出すポータルに従って呼び出される。ポータルは処理ロジックに含まれる。具体的に、スクリプト解析エンジンは、ブラウザshellおよびOSを使用して、呼び出しのポータルに従って第2のセンサデバイスの感知メソッドを呼び出してもよい。
【００９８】
さらに、センサデバイスの感知メソッドが呼び出される必要がある場合、一般的に、最初に、感知メソッドをスクリプト解析エンジンに登録することが必要である。それに対応して、401の前に、以下のステップが含まれる。
ブラウザShellが、OSから、第2のセンサデバイスの感知メソッドを呼び出すポータルを取得し、
ブラウザShellが、第2のセンサデバイスの感知メソッドを呼び出すポータルをスクリプト解析エンジンに送信し、
スクリプト解析エンジンが、第2のセンサデバイスの感知メソッドを呼び出すポータルを記憶する。
【００９９】
特に、OSは、第2のセンサデバイスのドライバから、第2のセンサデバイスの感知メソッドを呼び出すポータルを取得し、その感知メソッドを記憶してもよい。スクリプト解析エンジンは、第2のセンサデバイスの感知メソッドを呼び出すポータルを記憶する、つまり、感知メソッドが登録された後、認定された開発者は、呼び出しのポータルをコードで引用することができる。
【０１００】
図8は、別の応用のシナリオでの本発明の一実施形態の概略的なシグナリング図である。この応用のシナリオにおいては、力フィードバックセンサが、本物のバッティングの感触をユーザに持たせるために振動を生成してもよい。図8に示されるように、シグナリングプロセスは、特に、以下のステップを含む。
【０１０１】
801.  ブラウザShellが、OSから、力フィードバックセンサの振動メソッドを呼び出すポータルを取得する。
【０１０２】
802.  ブラウザShellが、力フィードバックセンサの振動メソッドをスクリプト解析エンジンに登録する。
【０１０３】
803.  ゲームの開発者が、野球ゲームのページ内の特定のノードで力フィードバックセンサの振動メソッドを呼び出す。
【０１０４】
具体的に、ノードは、力フィードバックセンサの力変化イベントを登録済みである。すなわち、ノードのスクリプトコンテンツは、力変化イベントの処理ロジックを含み、力変化イベントの処理ロジックは、力フィードバックセンサの振動メソッドを呼び出すポータルを含む。
【０１０５】
804.  スクリプト解析エンジンが、ノードのスクリプトコンテンツを実行する。
【０１０６】
具体的に、804は、スクリプト解析エンジンが力フィードバックセンサによって送信された力変化イベントに基づいて力変化イベントの処理ロジックを実行することであってもよく、処理ロジックはノードのスクリプトコンテンツに含まれる。
【０１０７】
805.  スクリプト解析エンジンが、ブラウザShellからの力フィードバックセンサの振動メソッドを呼び出す。
【０１０８】
806.  ブラウザShellが、OSからの力フィードバックセンサの振動メソッドを呼び出す。
【０１０９】
807.  OSが、力フィードバックセンサの振動メソッドを呼び出す。
【０１１０】
本発明の実施形態は、センサデバイスが、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信し、OSが、イベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信し、イベントタイプに従って、ブラウザエンジンが、イベントが登録済みであると判定し、イベントの処理ロジックを実行する、といった技術を採用する。このように、ブラウザエンジンは、異なるOSの間の違いを隠蔽し、ネイティブアプリケーションとセンサデバイスとの間の直接的なインタラクションのためにアプリケーションがプラットフォームをまたいで実行できないという従来技術の問題をある程度解決し、コードが一度だけ記述されるようにして、記述されたアプリケーションが異なるOS上で実行可能であり、それによって、アプリケーションがプラットフォームをまたいで実行されることを可能にする。さらに、ユーザのロジックが、センサデバイスとインタラクションすることができ、センサデバイスは、情報の一方向の入力ソースとして作用するだけでなく、ユーザの操作に応答もする。特に、センサデバイスに応答する/センサデバイスを動作させるロジックが、開発を単純化するために、コンパイルされたウェブページのコードに埋め込まれる。
【０１１１】
当業者は、上述の方法の実施形態のそれぞれのステップのすべてまたは一部が、関連するハードウェアに指示を与えるプログラムによって実装され得ることを理解するであろう。プログラムは、コンピュータ可読記憶媒体に記憶され得る。プログラムが実行されるとき、実施形態の上述の方法のステップが実行される。ストレージ媒体は、ROM、RAM、磁気ディスク、または光ディスクなどのプログラムコードを記憶することができる任意の媒体を含む。
【０１１２】
図9は、本発明の一実施形態によるコンピューティングノード900の概略的な構造図である。図9に示されるように、コンピューティングノード900は、
ハードウェアレイヤ91と、ハードウェアレイヤ91上で実行されるOS 92と、OS 92上で実行されるブラウザエンジン93とを含み、ハードウェアレイヤ91は、第1のセンサデバイス911を含み、
第1のセンサデバイス911は、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOS 92に送信するように構成され、
OS 92は、センサデータに従ってイベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジン93に送信するように構成され、センサデータは、やはり、ブラウザエンジン93にイベントの形式で送信され、
ブラウザエンジン93は、イベントタイプに従って、イベントが登録済みであると判定し、イベントの処理ロジックを実行するように構成される。
【０１１３】
本発明の任意の実施形態において、ブラウザエンジン93は、ブラウザShellと、ウェブページ解析レンダリングエンジンと、スクリプト解析エンジンとを含む。
【０１１４】
ブラウザShellは、OSによって送信されたセンサデータおよびイベントタイプを受信し、イベントタイプに従ってイベントに関連する第1のウェブページを判定し、第1のウェブページ、センサデータ、およびイベントタイプをウェブページ解析レンダリングエンジンに送信するように構成される。
【０１１５】
ウェブページ解析レンダリングエンジンは、イベントタイプに従って、第1のウェブページ内の第1のノードがイベントを登録済みであると判定し、第1のノードの識別子およびイベントタイプに従って、イベントの処理ロジックのポータルを探し出し、スクリプト解析エンジンを呼び出すように構成される。
【０１１６】
スクリプト解析エンジンは、イベントの処理ロジックを実行するように構成される。
【０１１７】
さらに、ブラウザShellは、具体的に、
イベントが現在アクティブなウェブページに関連すると判定される場合、現在アクティブなウェブページが第1のウェブページであって、第1のウェブページ、センサデータ、およびイベントタイプをウェブページ解析レンダリングエンジンに送信し、
イベントが動作中のすべてのウェブページに関連すると判定される場合、動作中の各ウェブページがそれぞれ第1のウェブページであって、それぞれの第1のウェブページ、センサデータ、およびイベントタイプをウェブページ解析レンダリングエンジンに送信するように構成される。
【０１１８】
本発明の別の任意の実施形態においては、ウェブページ解析レンダリングエンジンは、第1のセンサデバイスが状態の変化を感知し、センサデータを生成する前に、第1のウェブページ内の第1のノードのスクリプトコンテンツを読み、スクリプト解析エンジンを呼び出すようにさらに構成される。
【０１１９】
スクリプト解析エンジンは、第1のノードのスクリプトコンテンツを実行し、第1のノードのスクリプトコンテンツに含まれるイベントのイベントタイプおよび処理ロジックが存在すると判定し、イベントのイベントタイプおよび処理ロジックをウェブページ解析レンダリングエンジンに送信するようにさらに構成される。
【０１２０】
ウェブページ解析レンダリングエンジンは、イベントの処理ロジックをスクリプト解析エンジンに送信してイベントを登録するようにさらに構成される。
【０１２１】
スクリプト解析エンジンは、処理ロジックをカプセル化し、処理ロジックのポータルをウェブページ解析レンダリングエンジンに返送するようにさらに構成される。
【０１２２】
ウェブページ解析レンダリングエンジンは、イベントのイベントタイプおよび処理ロジックのポータルを第1のノードのイベント監視リストに追加するようにさらに構成される。
【０１２３】
本発明の別の任意の実施形態において、ウェブページ解析レンダリングエンジンは、
第1のセンサデバイスが状態の変化を感知し、センサデータを生成する前に第1のウェブページを解析し、第1のウェブページ内の第1のノードに関して定義されたイベント属性が存在すると判定し、
イベント属性に対応するイベントのイベントタイプおよび処理ロジックを判定し、
イベントの処理ロジックをスクリプト解析エンジンに送信してイベントを登録するようにさらに構成される。
【０１２４】
スクリプト解析エンジンは、処理ロジックをカプセル化し、処理ロジックのポータルをウェブページ解析レンダリングエンジンに返送するようにさらに構成される。
【０１２５】
ウェブページ解析レンダリングエンジンは、イベントのイベントタイプおよび処理ロジックのポータルを第1のノードのイベント監視リストに追加するようにさらに構成される。
【０１２６】
さらに、ウェブページ解析レンダリングエンジンはまた、イベントタイプに従って、第1のウェブページ内の第1のノードがイベントを登録済みであると判定するように構成され、イベントタイプに従って、第1のウェブページ内の第1のノードがイベントを登録済みであると判定することが、具体的に、
イベントタイプに従ってイベントが位置に依存しないと判定し、第1のウェブページ内の各ノードのイベント監視リストをトラバースし、第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定することを含む。
【０１２７】
任意で、ウェブページ解析レンダリングエンジンは、イベントタイプに従って、第1のウェブページ内の第1のノードがイベントを登録済みであると判定するように構成され、イベントタイプに従って、第1のウェブページ内の第1のノードがイベントを登録済みであると判定することが、特に、
イベントタイプに従ってイベントが位置に依存すると判定し、センサデータからの位置情報を解析することと、
位置情報に従って、位置情報に適合し、第1のウェブページ内にある第1のノードを判定することと、
第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定することとを含む。
【０１２８】
本発明の別の任意の実施形態において、ウェブページ解析レンダリングエンジンは、
スクリプト解析エンジンによって返送されたイベントのイベントタイプおよび処理ロジックのポータルが第1のノードのイベント監視リストに追加された後、第1のノードの識別子およびイベントのイベントタイプをイベント管理Hashテーブルに追加するようにさらに構成される。
【０１２９】
ウェブページ解析レンダリングエンジンは、第1のノードの識別子およびイベントタイプに従ってイベントの処理ロジックのポータルを探し出すように構成され、第1のノードの識別子およびイベントタイプに従ってイベントの処理ロジックのポータルを探し出すことが、具体的に、
Hashテーブルに問い合わせ、第1のノードの識別子に対応するテーブルのエントリに含まれるイベントのイベントタイプが存在すると判定することを含む。
【０１３０】
本発明の別の任意の実施形態においては、スクリプト解析エンジンは、特に、センサデータを解析し、ウェブページ解析レンダリングエンジンに記憶される第1のウェブページのウェブページコンテンツを修正するように構成される。
【０１３１】
本発明の別の任意の実施形態においては、ハードウェアレイヤ91は、第2のセンサデバイスをさらに含み、イベントの処理ロジックが、第2のセンサデバイスの感知メソッドを呼び出すポータルを含み、スクリプト解析エンジンが、具体的に、
呼び出すポータルに従って第2のセンサデバイスの感知メソッドを呼び出すように構成される。
【０１３２】
さらに、ブラウザShellは、具体的に、
第1のセンサデバイスが状態の変化を感知し、センサデータを生成する前に、OSから、第2のセンサデバイスの感知メソッドを呼び出すポータルを取得し、
第2のセンサデバイスの感知メソッドを呼び出すポータルをスクリプト解析エンジンに送信するようにさらに構成される。
【０１３３】
スクリプト解析エンジンは、第2のセンサデバイスの感知メソッドを呼び出すポータルを記憶するようにさらに構成される。
【０１３４】
本発明の実施形態で提供されるコンピューティングノードは、携帯電話、PDA、セットトップボックス、特定の分野の携帯機器などであってもよい。
【０１３５】
本発明の実施形態は、センサデバイスが、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信し、OSが、イベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信し、イベントタイプに従って、ブラウザエンジンが、イベントが登録済みであると判定し、イベントの処理ロジックを実行する、といった技術を採用する。このように、ブラウザエンジンは、異なるOSの間の違いを隠蔽し、ネイティブアプリケーションとセンサデバイスとの間の直接的なインタラクションのためにアプリケーションがプラットフォームをまたいで実行できないという従来技術の問題をある程度解決し、コードが一度だけ記述されるようにして、記述されたアプリケーションが異なるOS上で実行可能であり、それによって、アプリケーションがプラットフォームをまたいで実行されることを可能にする。さらに、ユーザのロジックが、センサデバイスとインタラクションすることができ、センサデバイスは、情報の一方向の入力ソースとして作用するだけでなく、ユーザの操作に応答もする。具体的に、センサデバイスに応答する/センサデバイスを操作するロジックが、開発を単純化するために、コンパイルされたウェブページのコードに埋め込まれる。
【０１３６】
上述の実施形態の説明において使用される第1のおよび第2のという表現は、順序を限定するように意図されておらず、区別する都合によるものであるに過ぎないことに留意されたい。
【０１３７】
最後に、上述の実施形態は、本発明を限定するのではなく、本発明の技術的な解決策を説明するように意図されているに過ぎないことに留意されたい。本発明が上述の実施形態に関連して詳細に説明されているが、当業者は、当業者が、上述の実施形態に記された技術的な解決策に対する修正、またはそれらの技術的な解決策の技術的な特徴の一部もしくはすべてに対する等価な置き換えを、そのような修正または置き換えが対応する技術的な解決策の本質を本発明の実施形態の技術的な解決策の範囲から逸脱させない限り、なお行いうることを理解すべきである。
【符号の説明】
【０１３８】
900  コンピューティングノード
91  ハードウェアレイヤ
92  OS
93  ブラウザエンジン
911  第1のセンサデバイス
【図１】
2015506020.tif 000003
【図２】
2015506020.tif 000004
【図３】
2015506020.tif 000005
【図４】
2015506020.tif 000006
【図５】
2015506020.tif 000007
【図６】
2015506020.tif 000008
【図７】
2015506020.tif 000009
【図８】
2015506020.tif 000010
【図９】
2015506020.tif 000011
【手続補正書】
【提出日】平成26年6月4日(2014.6.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハードウェアレイヤ、前記ハードウェアレイヤ上で実行するオペレーティングシステム、および前記オペレーティングシステム上で実行するブラウザエンジンを備え、前記ハードウェアレイヤが第1のセンサデバイスを備えるコンピューティングノードに適用される、センサデータを処理するための方法であって、
前記第1のセンサデバイスによって、状態の変化を感知し、センサデータを生成し、前記センサデータをイベントの形式で前記オペレーティングシステムに送信するステップを有し、
前記オペレーティングシステムによって、前記センサデータに従って前記イベントのイベントタイプを判定し、前記センサデータおよび前記イベントタイプを前記ブラウザエンジンに送信するステップを有し、
前記センサデータが、前記ブラウザエンジンにもイベントの形式で送信され、
前記ブラウザエンジンによって、前記イベントタイプに従って、前記イベントが登録済みであると判定し、前記イベントの処理ロジックを実行するステップ
を有する方法。
【請求項２】
前記ブラウザエンジンが、ブラウザシェル、ウェブページ解析レンダリングエンジン、ならびにスクリプト解析エンジンを備え、前記イベントタイプに従って、前記ブラウザエンジンによって、前記イベントが登録済みであると判定し、前記イベントの処理ロジックを実行するステップが、
前記ブラウザシェルによって、前記オペレーティングシステムによって送信されたセンサデータおよびイベントタイプを受信し、前記イベントタイプに従って前記イベントに関連する第1のウェブページを判定し、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップを有し、前記センサデータは、イベントの形式でオペレーティングシステムによって送信され、
前記ウェブページ解析レンダリングエンジンによって、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定し、前記第1のノードの識別子および前記イベントタイプに従って、前記イベントの処理ロジックのポータルを探し出し、前記スクリプト解析エンジンを呼び出して前記イベントの処理ロジックを実行するステップを有する請求項1に記載の方法。
【請求項３】
前記イベントタイプに従って前記イベントに関連する第1のウェブページを判定し、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップが、具体的に、
前記イベントが現在アクティブなウェブページに関連すると判定される場合、前記現在アクティブなウェブページが第1のウェブページであり、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップと、
前記イベントが動作中のすべてのウェブページに関連すると判定される場合、動作中の各ウェブページがそれぞれ第1のウェブページであり、それぞれの第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するステップとを有する請求項2に記載の方法。
【請求項４】
前記第1のセンサデバイスによって、前記状態の変化を感知し、前記センサデータを生成するステップの前に、
前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の前記第1のノードのスクリプトコンテンツを読み、前記スクリプト解析エンジンを呼び出して前記第1のノードの前記スクリプトコンテンツを実行するステップと、
前記スクリプト解析エンジンによって、前記第1のノードの前記スクリプトコンテンツに含まれる前記イベントの前記イベントタイプおよび前記イベントの前記処理ロジックが存在すると判定し、前記イベントの前記イベントタイプおよび前記イベントの前記処理ロジックを前記ウェブページ解析レンダリングエンジンに送信するステップと、
前記ウェブページ解析レンダリングエンジンによって、前記イベントの前記処理ロジックを前記スクリプト解析エンジンに送信して前記イベントを登録するステップと、
前記スクリプト解析エンジンによって、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するステップと、
前記ウェブページ解析レンダリングエンジンによって、前記イベントの前記イベントタイプおよび前記処理ロジックの前記ポータルを前記第1のノードのイベント監視リストに追加するステップと、をさらに有する請求項2または3に記載の方法。
【請求項５】
前記第1のセンサデバイスが、前記状態の変化を感知し、前記センサデータを生成する前に、前記方法が、
前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページを解析し、前記第1のウェブページ内の前記第1のノードに関して定義されたイベント属性が存在すると判定するステップと、
前記イベント属性に対応するイベントのイベントタイプおよび処理ロジックを判定するステップと、
前記イベントの処理ロジックを前記スクリプト解析エンジンに送信して前記イベントを登録するステップと、
前記スクリプト解析エンジンによって、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するステップと、
前記ウェブページ解析レンダリングエンジンによって、前記イベントの前記イベントタイプおよび前記処理ロジックのポータルを前記第1のノードのイベント監視リストに追加するステップと、をさらに有する請求項2から4のいずれか一項に記載の方法。
【請求項６】
前記イベントタイプに従って、前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の前記第1のノードが前記イベントを登録済みであると判定するステップが、
前記ウェブページ解析レンダリングエンジンによって、前記イベントタイプに従って前記イベントが位置に依存しないと判定し、前記第1のウェブページ内の各ノードのイベント監視リストをトラバースし、前記第1のノードの前記イベント監視リストに含まれるイベントのイベントタイプが存在すると判定するステップを含む請求項2から5のいずれか一項に記載の方法。
【請求項７】
前記イベントタイプに従って、前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の前記第1のノードが前記イベントを登録済みであると判定する前記ステップが、
前記ウェブページ解析レンダリングエンジンによって、前記イベントタイプに従って前記イベントが位置に依存すると判定し、前記センサデータから位置情報を解析するステップと、
前記位置情報に従って、前記位置情報に適合し、前記第1のウェブページ内の第1のノードを判定するステップと、
前記第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定するステップと、を有する請求項2から5のいずれか一項に記載の方法。
【請求項８】
前記ウェブページ解析レンダリングエンジンが、前記スクリプト解析エンジンによって返送された処理ロジックのポータルと、前記イベントのイベントタイプとを前記第1のノードのイベント監視リストに追加した後に、前記方法が、
前記ウェブページ解析レンダリングエンジンによって、前記第1のノードの識別子および前記イベントのイベントタイプをイベント管理ハッシュテーブルに追加するステップをさらに有し、
前記イベントタイプに従って、前記ウェブページ解析レンダリングエンジンによって、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定するステップが、
前記ウェブページ解析レンダリングエンジンによって、前記ハッシュテーブルに問い合わせ、前記第1のノードの前記識別子に対応するテーブルのエントリに含まれるイベントのイベントタイプが存在すると判定するステップを含む請求項4または5に記載の方法。
【請求項９】
前記スクリプト解析エンジンを呼び出して前記イベントの前記処理ロジックを実行する前記ステップが、
前記スクリプト解析エンジンによって、前記センサデータを解析し、前記ウェブページ解析レンダリングエンジンに記憶される前記第1のウェブページのウェブページコンテンツを修正するステップを有する請求項2から8のいずれか一項に記載の方法。
【請求項１０】
前記イベントの前記処理ロジックが、第2のセンサデバイスの感知メソッドを呼び出すポータルを備え、前記スクリプト解析エンジンを呼び出して前記イベントの処理ロジックを実行するステップが、
前記スクリプト解析エンジンによって、前記第2のセンサデバイスの感知メソッドを呼び出すポータルに従って前記第2のセンサデバイスの感知メソッドを呼び出すステップを有する請求項2から8のいずれか一項に記載の方法。
【請求項１１】
前記第1のセンサデバイスが、前記状態の変化を感知し、前記センサデータを生成する前に、
前記ブラウザシェルによって、前記オペレーティングシステムから、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを取得するステップと、
前記ブラウザシェルによって、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを前記スクリプト解析エンジンに送信するステップと、
前記スクリプト解析エンジンによって、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを記憶するステップと、をさらに有する請求項10に記載の方法。
【請求項１２】
ハードウェアレイヤと、前記ハードウェアレイヤ上で実行されるオペレーティングシステムと、前記オペレーティングシステム上で実行されるブラウザエンジンとを備え、前記ハードウェアレイヤが、第1のセンサデバイスを備え、
前記第1のセンサデバイスが、状態の変化を感知し、センサデータを生成し、前記センサデータをイベントの形式で前記オペレーティングシステムに送信するように構成され、
前記オペレーティングシステムが、前記センサデータに従ってイベントのイベントタイプを判定し、前記センサデータおよび前記イベントタイプを前記ブラウザエンジンに送信するように構成され、前記センサデータが、前記ブラウザエンジンにもイベントの形式で送信され、
前記ブラウザエンジンが、前記イベントタイプに従って、前記イベントが登録済みであると判定し、前記イベントの処理ロジックを実行するように構成されるコンピューティングノード。
【請求項１３】
前記ブラウザエンジンが、ブラウザシェルと、ウェブページ解析レンダリングエンジンと、スクリプト解析エンジンとを含み、
前記ブラウザシェルが、前記オペレーティングシステムによって送信されたセンサデータおよびイベントタイプを受信し、前記イベントタイプに従って前記イベントに関連する第1のウェブページを判定し、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するように構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントタイプに従って、前記第1のウェブページ内の第1のノードが前記イベントを登録済みであると判定し、前記第1のノードの識別子および前記イベントタイプに従って、前記イベントの処理ロジックのポータルを探し出し、前記スクリプト解析エンジンを呼び出すように構成され、
前記スクリプト解析エンジンが、前記イベントの処理ロジックを実行するように構成される請求項12に記載のコンピューティングノード。
【請求項１４】
前記ブラウザシェルが、具体的に、
前記オペレーティングシステムによって送信されたセンサデータおよびイベントデータを受信し、
前記イベントが現在アクティブなウェブページに関連すると判定される場合、前記現在アクティブなウェブページが第1のウェブページであり、前記第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信し、
前記イベントが動作中のすべてのウェブページに関連すると判定される場合、動作中の各ウェブページがそれぞれ第1のウェブページであり、それぞれの第1のウェブページ、前記センサデータ、および前記イベントタイプを前記ウェブページ解析レンダリングエンジンに送信するように構成される請求項13に記載のコンピューティングノード。
【請求項１５】
前記ウェブページ解析レンダリングエンジンが、前記第1のセンサデバイスが前記状態の変化を感知し、前記センサデータを生成する前に、前記第1のウェブページ内の第1のノードのスクリプトコンテンツを読み、前記スクリプト解析エンジンを呼び出すようにさらに構成され、
前記スクリプト解析エンジンが、前記第1のノードのスクリプトコンテンツを実行し、前記第1のノードのスクリプトコンテンツに含まれるイベントのイベントタイプおよび処理ロジックが存在すると判定し、前記イベントのイベントタイプおよび前記イベントの処理ロジックを前記ウェブページ解析レンダリングエンジンに送信するようにさらに構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントの処理ロジックを前記スクリプト解析エンジンに送信して前記イベントを登録するようにさらに構成され、
前記スクリプト解析エンジンが、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するようにさらに構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントのイベントタイプおよび前記処理ロジックのポータルを前記第1のノードのイベント監視リストに追加するようにさらに構成される請求項13または14に記載のコンピューティングノード。
【請求項１６】
前記ウェブページ解析レンダリングエンジンが、
前記第1のセンサデバイスが前記状態の変化を感知し、前記センサデータを生成する前に前記第1のウェブページを解析し、前記第1のウェブページ内の第1のノードに関して定義されたイベント属性が存在すると判定し、
前記イベント属性に対応するイベントのイベントタイプおよび処理ロジックを判定し、
前記イベントの処理ロジックを前記スクリプト解析エンジンに送信して報告されたイベントを登録するようにさらに構成され、
前記スクリプト解析エンジンが、前記処理ロジックをカプセル化し、前記処理ロジックのポータルを前記ウェブページ解析レンダリングエンジンに返送するようにさらに構成され、
前記ウェブページ解析レンダリングエンジンが、前記イベントのイベントタイプおよび前記処理ロジックのポータルを前記第1のノードのイベント監視リストに追加するようにさらに構成される請求項13から15のいずれか一項に記載のコンピューティングノード。
【請求項１７】
前記ウェブページ解析レンダリングエンジンが、具体的に、前記イベントタイプに従って前記イベントが位置に依存しないと判定し、前記第1のウェブページ内の各ノードのイベント監視リストをトラバースし、前記第1のノードのイベント監視リストに含まれるイベントのイベントタイプが存在すると判定し、前記第1のノードの識別子および前記イベントタイプに従って前記イベントの処理ロジックのポータルを探し出し、前記スクリプト解析エンジンを呼び出すように構成される請求項13から16のいずれか一項に記載のコンピューティングノード。
【請求項１８】
前記ウェブページ解析レンダリングエンジンが、具体的に、前記イベントタイプに従って前記イベントが位置に依存すると判定し、前記センサデータから位置情報を解析することと、
前記位置情報に従って、前記位置情報に適合し、前記第1のウェブページ内にある第1のノードを判定し、前記第1のノードの識別子および前記イベントタイプに従って前記イベントの処理ロジックのポータルを探し出し、前記スクリプト解析エンジンを呼び出して前記イベントの処理ロジックを実行するように構成される請求項13から16のいずれか一項に記載のコンピューティングノード。
【請求項１９】
前記ウェブページ解析レンダリングエンジンが、
前記スクリプト解析エンジンによって返送された処理ロジックのポータル、および前記イベントのイベントタイプが前記第1のノードのイベント監視リストに追加された後、前記第1のノードの識別子および前記イベントのイベントタイプをイベント管理ハッシュテーブルに追加し、
前記ハッシュテーブルに問い合わせ、前記第1のノードの識別子に対応するテーブルのエントリに含まれるイベントのイベントタイプが存在すると判定するようにさらに構成される請求項15または請求項16に記載のコンピューティングノード。
【請求項２０】
前記スクリプト解析エンジンが、具体的に、前記センサデータを解析し、前記ウェブページ解析レンダリングエンジンに記憶される第1のウェブページのウェブページコンテンツを修正するように構成される請求項13から19のいずれか一項に記載のコンピューティングノード。
【請求項２１】
前記コンピューティングノードが、第2のセンサデバイスをさらに含み、前記イベントの処理ロジックが、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを含み、前記スクリプト解析エンジンが、具体的に、
前記第2のセンサデバイスの感知メソッドを呼び出すポータルに従って前記第2のセンサデバイスの感知メソッドを呼び出すように構成される請求項13から19のいずれか一項に記載のコンピューティングノード。
【請求項２２】
前記ブラウザシェルが、前記第1のセンサデバイスが前記状態の変化を感知し、前記センサデータを生成する前に、前記オペレーティングシステムから、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを取得し、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを前記スクリプト解析エンジンに送信するようにさらに構成され、
前記スクリプト解析エンジンが、前記第2のセンサデバイスの感知メソッドを呼び出すポータルを記憶するようにさらに構成される請求項21に記載のコンピューティングノード。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
一態様において、本発明の実施形態は、コンピューティングノードに適用される、センサデータを処理するための方法であって、コンピューティングノードが、ハードウェアレイヤ、ハードウェアレイヤ上で実行されるオペレーティングシステムOS、およびOS上で実行されるブラウザエンジンを含み、ハードウェアレイヤが、第1のセンサデバイスを含む方法を提供する。方法は、
第1のセンサデバイスによって、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信するステップを含み、
OSによって、センサデータに従ってイベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信するステップを含み、センサデータが、ブラウザエンジンにもイベントの形式で送信され、
イベントタイプに従って、ブラウザエンジンによって、イベントが登録済みであると判定し、イベントの処理ロジックを実行するステップを含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
別の態様において、本発明の実施形態は、ハードウェアレイヤと、ハードウェアレイヤ上で実行されるオペレーティングシステムOSと、OS上で実行されるブラウザエンジンとを含み、ハードウェアレイヤが第1のセンサデバイスを含むコンピューティングノードを提供する。
第1のセンサデバイスは、状態の変化を感知し、センサデータを生成し、センサデータをイベントの形式でOSに送信するように構成され、
OSは、センサデータに従ってイベントのイベントタイプを判定し、センサデータおよびイベントタイプをブラウザエンジンに送信するように構成され、センサデータは、ブラウザエンジンにもイベントの形式で送信され、
ブラウザエンジンは、イベントタイプに従って、イベントが登録済みであると判定し、イベントの処理ロジックを実行するように構成される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
具体的に、イベント管理ハッシュテーブルのフォーマットは、<キー, value>である可能性があり、ここで、キーは、イベントのイベントタイプであり、valueは、イベントのDOMノードの配列である。DOMノードの配列は、イベントを同時に登録済みである複数のDOMノードの識別子を含み得る。さらに、イベント登録管理モジュールが追加されてもよく、イベント登録管理モジュールは、イベント登録管理を担う。特定の実装において、イベント登録管理モジュールは、ウェブページ解析レンダリングエンジンの下位モジュールであってもよい。それに対応して、図6に示されたシグナリングのプロセス607の後に、以下のステップが含まれる。
ウェブページ解析レンダリングエンジンが、第1のノードの識別子およびイベントのイベントタイプを、イベント登録管理モジュールによって記憶されるイベント管理Hashテーブルに追加する。
【国際調査報告】
2015506020.tif 000012
2015506020.tif 000013
2015506020.tif 000014
2015506020.tif 000015