(57)【特許請求の範囲】
【請求項１】
第１の装置に常駐するローカルアプリケーションに関連するメタデータを特定することと、
拡張可能マークアップ言語を用いて前記メタデータを含む拡張可能メッセージングおよびプレゼンスプロトコル（ＸＭＰＰ）のスタンザを生成することと、
第２の装置に常駐するリモートアプリケーションの共通の作業空間内におけるソーシャルネットワーキングステータスを特定することと、
ＸＭＰＰを用いて、前記スタンザを、ピアツーピアアーキテクチャと、前記第１の装置および前記第２の装置以外のサーバーを介するサーバーベースのアーキテクチャとのうちの１以上において前記リモートアプリケーションに渡すことと、
前記スタンザに基づいて、前記共通の作業空間内の前記ローカルアプリケーションのソーシャルネットワーキングステータスを更新することと、
をコンピュータに実行させる、プログラム。
【請求項２】
前記メタデータは、電子メール情報、予約情報、オーディオ情報、ビデオ情報、ウェブサービス情報、ユーザー嗜好情報およびキーワード情報のうちの１以上を含む、請求項１に記載のプログラム。
【請求項３】
前記第１の装置および前記第２の装置は、スマートテレビ、サーバー、パーソナルコンピューター、ラップトップコンピューター、スマートタブレット、スマートフォン、個人情報端末、モバイルインターネット装置、メディアプレーヤー、車載インフォテインメントシステム、および撮像装置のうちの１以上を含む、請求項１または２に記載のプログラム。
【請求項４】
前記ローカルアプリケーションおよび前記リモートアプリケーションは、電子メールアプリケーション、電子書籍アプリケーション、カレンダーアプリケーション、ナビゲーションアプリケーションおよびメディアプレーヤーアプリケーションのうちの１以上を含む、請求項１から３の何れか１項に記載のプログラム。
【請求項５】
オペレーティングシステムから独立した拡張可能メッセージングおよびプレゼンスプロトコル（ＸＭＰＰ）を用いて、第１の装置に常駐するリモートアプリケーションに関連するメタデータを含むＸＭＰＰの拡張可能マークアップ言語スタンザを受信することと、
前記スタンザを第２の装置に常駐するローカルアプリケーションに提供することと、
をコンピュータに実行させ、
ＸＭＰＰのプロトコルスタックが、オペレーティングシステムレイヤーから独立したチャットレイヤーを有する
プログラム。
【請求項６】
前記ローカルアプリケーションが理解できるように前記スタンザを変換するか否かを判断することを前記コンピュータに実行させる、請求項５に記載のプログラム。
【請求項７】
前記第１の装置および前記第２の装置以外の拡張可能マークアップ言語メッセージサーバーのインタープリターモジュールを用いて、前記スタンザを変換することを前記コンピュータに実行させる、請求項６に記載のプログラム。
【請求項８】
前記リモートアプリケーションのソーシャルネットワーキングステータスを特定することと、
前記スタンザに基づいて、前記ローカルアプリケーションのソーシャルネットワーキングステータスを更新することと、
を前記コンピュータに実行させる、請求項６または７に記載のプログラム。
【請求項９】
前記リモートアプリケーションの前記ソーシャルネットワーキングステータスは、共通の作業空間内で特定され、前記ローカルアプリケーションの前記ソーシャルネットワーキングステータスは、前記共通の作業空間において更新される、請求項８に記載のプログラム。
【請求項１０】
前記メタデータは、電子メール情報、予約情報、オーディオ情報、ビデオ情報、ウェブサービス情報、ユーザー嗜好情報、およびキーワード情報のうちの１以上を含む、請求項５から９の何れか１項に記載のプログラム。
【請求項１１】
ローカルアプリケーションに関連するメタデータを特定することと、
拡張可能マークアップ言語を用いて前記メタデータを含む拡張可能メッセージングおよびプレゼンスプロトコル（ＸＭＰＰ）のスタンザを生成することと、
オペレーティングシステムから独立したＸＭＰＰを用いて、前記スタンザをリモートアプリケーションに渡すことと、
をコンピュータに実行させ、
ＸＭＰＰのプロトコルスタックが、オペレーティングシステムレイヤーから独立したチャットレイヤーを有する
プログラム。
【請求項１２】
前記リモートアプリケーションのソーシャルネットワーキングステータスを特定することと、
前記スタンザに基づいて、前記ローカルアプリケーションのソーシャルネットワーキングステータスを更新することと、
を前記コンピュータに実行させる、請求項１１に記載のプログラム。
【請求項１３】
前記リモートアプリケーションの前記ソーシャルネットワーキングステータスは、共通の作業空間内で特定され、前記ローカルアプリケーションの前記ソーシャルネットワーキングステータスは、前記共通の作業空間において更新される、請求項１２に記載のプログラム。
【請求項１４】
前記ローカルアプリケーションは第１の装置に常駐し、前記リモートアプリケーションは第２の装置に常駐する、請求項１１から１３の何れか１項に記載のプログラム。
【請求項１５】
前記第１の装置および前記第２の装置は、スマートテレビ、サーバー、パーソナルコンピューター、ラップトップコンピューター、スマートタブレット、スマートフォン、個人情報端末、モバイルインターネット装置、メディアプレーヤー、車載インフォテインメントシステムおよび撮像装置のうちの１以上を含む、請求項１４に記載のプログラム。
【請求項１６】
前記メタデータは、電子メール情報、予約情報、オーディオ情報、ビデオ情報、ウェブサービス情報、ユーザー嗜好情報、およびキーワード情報のうちの１以上を含む、請求項１１から１５の何れか１項に記載のプログラム。
【請求項１７】
前記ローカルアプリケーションおよび前記リモートアプリケーションは、電子メールアプリケーション、電子書籍アプリケーション、カレンダーアプリケーション、ナビゲーションアプリケーションおよびメディアプレーヤーアプリケーションのうちの１以上を含む、請求項１１から１６の何れか１項に記載のプログラム。
【請求項１８】
前記スタンザは、ピアツーピアアーキテクチャにおける前記リモートアプリケーションに渡される、請求項１１から１７の何れか１項に記載のプログラム。
【請求項１９】
前記スタンザは、サーバーに基づくアーキテクチャで前記リモートアプリケーションに渡される、請求項１１から１７の何れか１項に記載のプログラム。
【請求項２０】
ネットワークインターフェースと、
ローカルアプリケーションに関連するメタデータを特定するメタデータモジュールと、
拡張可能マークアップ言語を用いて、前記メタデータを含む拡張可能メッセージングおよびプレゼンスプロトコル（ＸＭＰＰ）のスタンザを生成し、オペレーティングシステムから独立したＸＭＰＰを用いて、前記ネットワークインターフェースを介して前記スタンザをリモートアプリケーションに渡すチャットエンジンと、
を備え、
ＸＭＰＰのプロトコルスタックが、オペレーティングシステムレイヤーから独立したチャットレイヤーを有する
システム。
【請求項２１】
前記チャットエンジンは、
前記リモートアプリケーションのソーシャルネットワーキングステータスを特定し、
前記スタンザに基づいて、前記ローカルアプリケーションのソーシャルネットワーキングステータスを更新する、請求項２０に記載のシステム。
【請求項２２】
前記リモートアプリケーションの前記ソーシャルネットワーキングステータスは、共通の作業空間内で特定され、
前記ローカルアプリケーションの前記ソーシャルネットワーキングステータスは、前記共通の作業空間において更新される、請求項２１に記載のシステム。
【請求項２３】
前記ローカルアプリケーションを更に備え、
前記リモートアプリケーションは、別の装置に常駐する、請求項２０から２２の何れか１項に記載のシステム。
【請求項２４】
スマートテレビ、サーバー、パーソナルコンピューター、ラップトップコンピューター、スマートタブレット、スマートフォン、個人情報端末、モバイルインターネット装置、メディアプレーヤー、車載インフォテインメントシステム、および撮像装置のうちの１以上を更に備える、請求項２３に記載のシステム。
【請求項２５】
前記メタデータは、電子メール情報、予約情報、オーディオ情報、ビデオ情報、ウェブサービス情報、ユーザー嗜好情報、およびキーワード情報のうちの１つまたは複数を含む、請求項２０から２４の何れか１項に記載のシステム。
【請求項２６】
前記ローカルアプリケーションおよび前記リモートアプリケーションは、電子メールアプリケーション、電子書籍アプリケーション、カレンダーアプリケーション、ナビゲーションアプリケーションおよびメディアプレーヤーアプリケーションのうちの１以上を含む、請求項２０から２５の何れか１項に記載のシステム。
【請求項２７】
前記スタンザは、ピアツーピアアーキテクチャにおける前記リモートアプリケーションに渡される、請求項２０から２６の何れか１項に記載のシステム。
【請求項２８】
前記スタンザは、サーバーに基づくアーキテクチャにおける前記リモートアプリケーションに渡される、請求項２０から２６の何れか１項に記載のシステム。
【請求項２９】
コンピュータに実装される方法であって、
オペレーティングシステムから独立した拡張可能メッセージングおよびプレゼンスプロトコル（ＸＭＰＰ）を用いて、第１の装置に常駐するリモートアプリケーションに関連するメタデータを含むＸＭＰＰの拡張可能マークアップ言語スタンザを受信することと、
前記スタンザを第２の装置に常駐するローカルアプリケーションに提供することと、
を含み、
ＸＭＰＰのプロトコルスタックが、オペレーティングシステムレイヤーから独立したチャットレイヤーを有する
方法。
【請求項３０】
前記ローカルアプリケーションが理解できるように前記スタンザを変換するか否かを判断することを更に含む、請求項２９に記載の方法。
【請求項３１】
前記第１の装置および前記第２の装置以外の拡張可能マークアップ言語メッセージサーバーのインタープリターモジュールを用いて、前記ローカルアプリケーションが理解できるように前記スタンザを変換することを更に含む、請求項３０に記載の方法。
【請求項３２】
前記リモートアプリケーションのソーシャルネットワーキングステータスを特定することと、
前記スタンザに基づいて、前記ローカルアプリケーションのソーシャルネットワーキングステータスを更新することと、
を更に含む、請求項３０または３１に記載の方法。
【請求項３３】
前記リモートアプリケーションの前記ソーシャルネットワーキングステータスは、共通の作業空間内で特定され、前記ローカルアプリケーションの前記ソーシャルネットワーキングステータスは、前記共通の作業空間において更新される、請求項３２に記載の方法。
【請求項３４】
前記メタデータは、電子メール情報、予約情報、オーディオ情報、ビデオ情報、ウェブサービス情報、ユーザー嗜好情報およびキーワード情報のうちの１以上を含む、請求項２９から３３の何れか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本願は、２０１１年９月１２日に出願された米国仮特許出願第６１／５３３，４５４号の優先権の利益を主張するものである。
【背景技術】
【０００２】
ソフトウェアアプリケーションを互いに接続する従来の手法は、オペレーティングシステム（ＯＳ）固有のアプリケーションプログラミングインターフェース（ＡＰＩ）の使用を含むことができる。例えば、Ｗｉｎｄｏｗｓ（登録商標）（ワシントン州レドモンド所在のMicrosoft社）に基づくアプリケーションは、Ｍａｃ（カリフォルニア州クパチーノ所在のApple社）のアプリケーションまたはシステムとの接続を確立し、情報を転送するために、プロプライエタリＡＰＩにアクセスする必要があることがある。したがって、或るＯＳのアプリケーションの開発者は、２つのアプリケーション間に有効な通信を提供するために、別のＯＳの詳細を認識する必要があることがある。
【発明の概要】
【０００３】
本発明の実施形態の様々な利点は、以下の明細書および添付の特許請求の範囲を読み、以下の図面を参照することによって当業者には明らかになろう。
【図面の簡単な説明】
【０００４】
【図１】一実施形態によるアプリケーション間通信環境の一例のブロック図である。
【図２Ａ】一実施形態によるサーバーに基づくモードの一例のブロック図である。
【図２Ｂ】一実施形態によるサーバーレス（ピアツーピア）モードの一例のブロック図である。
【図３】一実施形態による異種アプリケーション間でのメタデータの交換の一例のメッセージングシーケンス図である。
【図４】一実施形態によるプロキシエージェントの使用の一例のブロック図である。
【図５Ａ】一実施形態によるチャットプロトコルスタックの一例のブロック図である。
【図５Ｂ】一実施形態によるクラウド計算基盤でのチャットプロトコルスタックの展開の一例のブロック図である。
【図６】一実施形態による同種アプリケーション間でのメタデータの交換の一例のブロック図である。
【図７Ａ】一実施形態による、チャットプロトコルを用いてメタデータをリモートアプリケーションに転送する方法の一例のフローチャートである。
【図７Ｂ】一実施形態による、チャットプロトコルを用いてメタデータをリモートアプリケーションから受信する方法の一例のフローチャートである。
【図８】一実施形態によるシステムの一例のブロック図である。
【発明を実施するための形態】
【０００５】
実施形態は、命令セットを有する少なくとも１つのコンピューターアクセス可能な記憶媒体を含むことができ、命令セットは、プロセッサによって実行される場合、コンピューターに、ローカルアプリケーションに関連するメタデータを特定させる。命令はまた、コンピューターに、オペレーティングシステムから独立したチャットプロトコルを用いて、メタデータをリモートアプリケーションに渡すことを行わせることもできる。
【０００６】
実施形態は、命令セットを有する少なくとも１つのコンピューターアクセス可能な記憶媒体を含むことができ、命令セットは、プロセッサによって実行される場合、コンピューターに、オペレーティングシステムから独立したチャットプロトコルを用いて、第１の装置に常駐するリモートアプリケーションに関連するメタデータを受信させる。命令はまた、コンピューターに、第２の装置に常駐するローカルアプリケーションにメタデータを提供させることができる。
【０００７】
さらに、実施形態は、ネットワークインターフェースと、メタデータモジュールと、チャットエンジンとを有するシステムを含むことができる。メタデータモジュールは、ローカルアプリケーションに関連するメタデータを特定するように構成することができ、チャットエンジンは、オペレーティングシステムから独立したチャットプロトコルを用いて、ネットワークインターフェースを介してメタデータをリモートアプリケーションに渡すように構成することができる。
【０００８】
他の実施形態は、命令セットを有する少なくとも１つのコンピューターアクセス可能な記憶媒体を含むことができ、命令セットは、プロセッサによって実行される場合、コンピューターに、第１の装置に常駐するローカルアプリケーションに関連するメタデータを特定させる。命令はまた、コンピューターに、拡張可能マークアップ言語を用いて、メタデータを含むスタンザを生成させ、共通の作業空間内のリモートアプリケーションのソーシャルネットワーキングステータスを特定させることができ、リモートアプリケーションは第２の装置に常駐する。加えて、命令は、コンピューターに、拡張可能メッセージングおよびプレゼンスプロトコルを用いて、ピアツーピアアーキテクチャおよびサーバーに基づくアーキテクチャのうちの１つまたは複数においてリモートアプリケーションにスタンザを渡すことを行わせ、スタンザに基づいて、共通の作業空間内のローカルアプリケーションのソーシャルネットワーキングステータスを更新させることができる。
【０００９】
実施形態はまた、オペレーティングシステムから独立したチャットプロトコルを用いて、第１の装置に常駐するリモートアプリケーションに関連するメタデータを受信するコンピューター実施方法を含むことができる。方法はまた、第２の装置に常駐するローカルアプリケーションにメタデータを提供することを含むことができる。
【００１０】
これより図１を参照して、計算環境１８を示し、計算環境１８では、ローカルアプリケーション１０はチャットプロトコル１２を用いて、メタデータ１４をリモートアプリケーション１６に転送する。アプリケーション１０、１６は、例えば、電子メールアプリケーション、電子書籍アプリケーション、カレンダーアプリケーション、メディアプレーヤーアプリケーション等、またはこれらの任意の組み合わせを含むことができる。アプリケーション１０、１６はまた、ウェブサービス、サーバーに基づくアプリケーション、またはローカルにホストされるアプリケーションとしてクラウド計算基盤に生じてもよく、または１つ若しくは複数のクライアントに独立したネイティブアプリケーションとして常駐してもよい。さらに、ローカルアプリケーション１０は、例えば、スマートテレビ（ＴＶ）、サーバー、パーソナルコンピューター（ＰＣ）、ラップトップコンピューター、スマートタブレット、スマートフォン、個人情報端末（ＰＤＡ）、モバイルインターネット装置（ＭＩＤ：Mobile Internet Device）、メディアプレーヤー、車載インフォテインメント（ＩＶＩ：In-Vehicle-Infotainment）システム、撮像装置等の広範囲のプラットフォームで実行することができる。したがって、メタデータ１４は、例えば、電子メール送信者および／または受信者情報、予約情報、オーディオおよび／またはビデオ情報、ウェブサービス情報、ユーザー嗜好情報、キーワード情報等を含むことができる。同様に、リモートアプリケーション１６は、例えば、ローカルアプリケーション１０と同じ（例えば、同種）または異なる（例えば、異種）タイプのアプリケーションを含むことができ、上記のタイプのプラットフォームまたは他のタイプのプラットフォームのうちの任意のプラットフォームで実行することができる。さらに詳細に論述するように、図示のチャットプロトコル１２は、オペレーティングシステム（ＯＳ）から独立し、したがって、開発者が基礎をなすＯＳの構成を知ることなく、異種および／または同種のアプリケーションのメッセージングおよび連携を行えるようにする。
【００１１】
図２Ａは、アプリケーション間のサーバーに基づく通信モードを示す。図示の例では、第１の装置（「装置Ａ」）２０は、１つまたは複数のネットワーク拡張２４および１つまたは複数のネットワークライブラリ２６を用いて、出力するチャットプロトコルスタンザ２８を生成し、入力されるチャットプロトコルスタンザ２８を処理するアプリケーション２２を含み、チャットプロトコルスタンザ２８は有用なメタデータを含むことができる。例えば、メタデータは、予約の変更またはユーザーメディア嗜好を示すことができる。同様に、第２の装置（「装置Ｂ」）３０は、１つまたは複数のネットワーク拡張３４および１つまたは複数のネットワークライブラリ３６を用いて、チャットプロトコルスタンザ３８を生成し処理するアプリケーション３２を含み、第３の装置（「装置Ｃ」）４０は、１つまたは複数のネットワーク拡張４４および１つまたは複数のネットワークライブラリ４６を用いて、チャットプロトコルスタンザ４８を生成し処理するアプリケーション４２を含む。図示の例では、サーバー５０は、発見、認証、およびセッション管理プラットフォームとして機能し、このプラットフォームは、例えば、複数のプラットフォームおよび複数のネットワークドメインにわたって常駐することができるアプリケーション２２、３２、および４２等の異なるアプリケーションの特定情報を見つけ、検証する。
【００１２】
例えば、装置２０、３０、４０のうちの１つまたは複数は、例えば、セルラ電話（例えば、広帯域符号分割多元アクセス／Ｗ−ＣＤＭＡ（ユニバーサルモバイル電気通信システム／ＵＭＴＳ）、ＣＤＭＡ２０００（ＩＳ−８５６／ＩＳ−２０００）等）、Ｗｉ−Ｆｉ（無線フィディリティ、例えば、電気電子技術者協会／ＩＥＥＥ８０２．１１−２００７、無線ローカルエリアネットワーク／ＬＡＮ媒体アクセス制御（ＭＡＣ：Medium Access Control）および物理層（ＰＨＹ）仕様）、ＬＲ−ＷＰＡＮ（低速無線パーソナルエリアネットワーク、例えば、ＩＥＥＥ８０２．１５．４−２００６）、Ｂｌｕｅｔｏｏｔｈ（登録商標）（例えば、ＩＥＥＥ８０２．１５．１−２００５、無線パーソナルエリアネットワーク）、ＷｉＭａｘ（例えば、ＩＥＥＥ８０２．１６−２００４、ＬＡＮ／ＭＡＮ広帯域無線ＬＡＮ）、ＧＰＳ（全地球測位システム）、拡散スペクトル（例えば、９００ＭＨｚ）、および他のＲＦ（高周波）電話通信技術等の無線技術を用いてオフプラットフォーム通信を達成することができる。装置２０、３０、４０のうちの１つまたは複数は、有線技術（例えば、ＲＳ−２３２（電子工業会／ＥＩＡ）、Ｅｔｈｅｒｎｅｔ（登録商標）（例えば、ＩＥＥＥ８０２．３−２００５）、電力線通信（例えば、Ｘ１０、ＩＥＥＥ  Ｐ１６７５）、ＵＳＢ（例えば、ユニバーサルシリアルバス、例えば、ＵＳＢ標準規格３．０、改訂１．０、２００８年１１月１２日、ＵＳＢ実施フォーラム）、ＤＳＬ（デジタル加入者回線）、ケーブルモデム、Ｔ１接続等）を用いて通信することもできる。
【００１３】
図示のサーバー５０はまた、アプリケーション２２、３２、４２が互いに特定された関係（例えば、信頼）を有するか否かに基づいて、アプリケーション２２、３２、４２を共通の作業空間に接続する。次に、アプリケーション２２、３２、４２は、プロファイルを用いて各自および互いのステータスを利用可能、アウェイ、ビジー等として明らかにすることができる。ステータスの使用により、アプリケーションは、互いとの通信で能動的になることができるとともに、アプリケーションがログオンし、メッセージを残すことができる「受動的」モデルも提供する。「利用不可能」または「アウェイ」のターゲットアプリケーションが再接続し、例えば、ステータスを「利用可能」に変更する場合、メッセージをそのターゲットアプリケーションに転送することができる。さらに、図示のアプリケーション２２、３２、４２は、チャット／インスタントメッセージング（ＩＭ）セッションと同じパラダイムを用いて１：１、１：多、または多：多で通信することができる。例えば、各アプリケーション２２、３２、４２は、チャットシステム内で人物または物体を「模倣」するコードモジュールと、スタンザ２８、３８、４８の生成および処理をサポートするインタープリターモジュールとを用いることができる。さらに詳細に論述するように、チャットプロトコルは、例えば、ＸＭＰＰ（拡張可能メッセージングおよびプレゼンスプロトコル（Extensible Messaging and Presence Protocol）、インターネットエンジニアリングタスクフォース）等の明確に定義されたプロトコルに基づくことができ、スタンザ２８、３８、４８は、ＸＭＬ（拡張可能マークアップ言語、例えばＸＭＬ１．０（第５版）、Ｗ３Ｃ推奨、２００８年１１月２６日）を用いて構造化することができる。
【００１４】
図２Ｂは、装置２０、３０、４０が、ピアツーピア（Ｐ２Ｐ）構成で互いに直接、スタンザ５２、５４、および５６を交換する代替の「サーバーレス」アーキテクチャ５８を示す。図示の手法は、サーバーに基づく手法の代わりに、またはサーバーに基づく手法と併せて（例えば、ハイブリッドアーキテクチャで）展開することができる。
【００１５】
これより図３を参照して、異種アプリケーション対話を示す。図示の例では、ユーザーは、車載インフォテインメント（ＩＶＩ）システムのナビゲーションシステム６０を用いて車を運転している。ユーザーは、特定の行先（例えば、中心街）での予約に向かう途中であることができ、ナビゲーションシステム６０はユーザーをその場所に案内している。しかしながら、ユーザーのスマートフォンでは、電子メール／カレンダーアプリケーション６２が、ミーティングの場所が現在の行先から新しい行先に変更されたとの通知を受信する。ユーザーに手動でカーナビゲーションシステム６０を更新する（例えば、停車、移動中の車では潜在的に命を脅かす行動）ように求めるのではなく、図示の手法は、ＯＳから独立したチャットプロトコルを用いて、スマートフォンとナビゲーションシステム６０との間でメタデータを転送する。
【００１６】
特に、スマートフォンおよび車のＩＶＩプラットフォームは、例えば、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはテザーを介して接続することができ、矢印６１で示される接続を介してＸＭＰＰに基づく発見を行うことができる。スマートフォンが、矢印６３に沿って電子メールサーバー６４をチェックし（プッシュプロセスまたはプルプロセスを介して）、矢印６５に沿ってカレンダーアラートを受信する（例えば、標準のプロトコル、ＰＯＰ３／ポストオフィスプロトコルバージョン３）と、スマートフォンの電子メール／カレンダーアプリケーション６２は、カーナビゲーションシステム６０で実行中のアプリケーションに接続し、パーズおよび更新モジュール６７を用いて、矢印６９に沿って、場所の変更を反映したメタデータを有するＸＭＬスタンザとして更新を渡す。例えば、ＸＭＬスタンザは、＞＞カーナビゲーション、＜現在住所＞、＜新しい住所＞、＜変更？＞、＜コメント「ミーティング名」＞を含むことができる。したがって、ナビゲーションシステム６０のソフトウェアは、この場合、カレンダーアプリケーションまたは電子メールアプリケーションを有する必要がなく、ナビゲーションシステム６０のソフトウェアは、更新モジュール７１を用いて、受信したカレンダーデータをナビゲーションインターフェースに直接パーズし、場所の変更が行われたこと、および行先が更新されたことを運転者に通知することができる。
【００１７】
図４は、より単純な「端末」式の通信モデルが望まれる場合、ウェブソケットインターフェースまたはＮＰＡＰＩ（ＮｅｔｓｃａｐｅプラグインＡＰＩ）に基づくプラグインを用いて、チャットプロトコルを通して発見および認証の完全な基盤を有することができない場合があるブラウザアプリケーションおよびサービスに、アクセスを提供することができることを示す。図示のモデルでは、ウェブアプリケーション６８は、ウェブソケット７０を介してプロキシエージェント６６に接続し、プロキシエージェント６６は装置７２の代理として動作する。図示の手法は、プロキシエージェント６６と装置７２との間に信頼環境が既に確立されていることを前提とし、装置４０、７２の間およびチャットプロトコルネットワーク上の他のプロビジョニングされるプラットフォームとの完全な通信およびメタデータメッセージングを可能にする。
【００１８】
図５Ａは、アプリケーション間でのメタデータの転送に用いることができるチャットプロトコルスタック７４を示す。一般に、図示のチャットプロトコルスタック７４はチャットレイヤー８０を有し、チャットレイヤー８０は、ＯＳレイヤー７６から独立しており、従来のプロトコルよりもはるかに容易に実施することができる。特に、１つまたは複数のアプリケーション７８（７８ａ、７８ｂ）は、チャットレイヤー８０よりも上に存在し、例えば、独立ソフトウェアベンダー（ＩＳＶ：Independent Software Vender）拡張可能ＸＭＬコマンドライブラリ（例えば、メディプレーヤープロファイル、ＴＶプロファイル等のプロファイルを有する）等のライブラリ８２を用いて、ＸＭＬスタンザを構築し解釈することができる。チャットレイヤー８０は、例えば、Ｃ、Ｃ＋＋、ＨＴＭＬ５（ハイパーテキストマークアップ言語５）、ＪＳＯＮ（Ｊａｖａ（登録商標）スクリプトオブジェクト表記）等の言語を用いて実施することができる。１つまたは複数のブラウザアプリケーション８４はまた、既に論述したように、ウェブソケットインターフェース（例えば、埋め込みウェブサーバー）８６を用いて、チャットレイヤー８０に接続することができる。図示のチャットレイヤー８０はテレパシーフレームワーク８８とインターフェースし、このフレームワークは、チャットプラグイン９０を用いて、チャットプロトコルエンジンのネットワーク拡張を取得し、テレパシーレイヤーを、テレパシーチャットモジュール９２および例えば、Ａｖａｈｉ等のゼロ構成ネットワーキングモジュール９４と共有する。一例では、ゼロ構成ネットワーキングモジュール９４は、Ｐ２Ｐ実施での発見レイヤーとして機能する。
【００１９】
図５Ｂは、チャットプロトコルスタック７４が、複数のサーバー９４が互いを特定し接続できるようにするクラウド９６を通しての接続を含む、より構造化されたサーバ−クライアントトポロジをサポートすることもできることを示す。そのような構成では、サーバー９８等の信頼できるクラウドサーバーが、プラットフォーム／装置のエントリー／認証ポイントとして機能し、例えば、家庭への信頼できるチャネルを提供することが可能である。一例では、サーバー９８は発見可能であり、故障の場合に他のサーバーにフォールバックする「リード」プラットフォームとして機能することができるように冗長である。したがって、この種のセキュアサービスは、３Ｇ（出先）からケーブル（クラウドから家庭へのバックボーン）、そしてＷｉ−Ｆｉ（家庭内）への信頼できる経路をスマートフォンに提供することができる。簡単に言えば、図示の基盤は、通常、輸送メカニズムが何であれ、利用可能な輸送メカニズム（例えば、Ｗｉ−ＦＩ、３Ｇ、４Ｇ、Ｂｌｕｅｔｏｏｔｈ（登録商標））を介するＩＰ（インターネットプロトコル）通信経路を用いる様々な通信トポロジの影響を受けにくい。
【００２０】
これより図６を参照して、同種アプリケーション間でのチャット接続を示す。図示の例では、スマートフォン１００は、第１のビデオプレーヤー（「ビデオプレーヤー１」）１０２等のアプリケーションを含み、高精細テレビ（ＨＤＴＶ）１０４は、第２のビデオプレーヤー（「ビデオプレーヤー２」）１０６等のアプリケーションを含む。装置およびビデオプレーヤー１０２、１０６がチャットネットワークに認証されると、有益なスタンザおよびメタデータ引数を第１のビデオプレーヤー１０２から第２のビデオプレーヤー１０６（または多くのアプリケーション）に渡すことにより、実際のアプリケーション間通信を行うことができる。例えば、第１のビデオプレーヤー１０２によって生成されるスタンザは、
＞＞映画プレーヤー、＜パットン＞、＜０１：２３：００：００＞、＜再生＞
を含むことができる。
【００２１】
次に、第２のビデオプレーヤー１０６は、要求された映画をローカルに取り出すか、またはサービス１０８等の映画ウェブサービスからのストリーミングを開始することができる。映画ウェブサービスの例としては、限定ではなく、Ａｍａｚｏｎ  Ｐｌｕｓ、Ｎｅｔｆｌｉｘ、デジタルリビングネットワークアライアンス（ＤＬＮＡ（登録商標）：Digital Living Network Alliance）等が挙げられる。特に、第２のビデオプレーヤー１０６は、スマートフォン１００により適することができるコンテンツ（例えば、７２０ｐ、ステレオ）ではなく、ＨＤＴＶ１０４用に最良にフォーマットされたコンテンツ（例えば、１０８０ｐ、７．１ドルビー）を取り出すことができる。第１のビデオプレーヤー１０２への第２のビデオプレーヤー１０６の応答は、
＞＞成功
を含むことができる。
【００２２】
その時点で、ビデオプレーヤー１０２、１０６は任意の更なる通信を中断することができるが、スマートフォン１００およびＨＤＴＶ１０４はチャットサーバーに構成されたままであることができる。ＨＤＴＶ１０４の第２のビデオプレーヤー１０６は、プロファイルステータスを「ビジー」に設定して、占有されていることを明らかにすることができ、以前は「ビジー」に設定されていたスマートフォン１００の第１のビデオプレーヤー１０２は、現在はステータスを「利用可能」に変更して、任意の他の関心のあるアプリケーションとの通信を促進する。したがって、ビデオプレーヤー１０２、１０４は、ユーザーに対しトランスペアレントに、ステータスページの更新、他のアプリケーションのステータスページの閲覧、および互いとのチャット（例えば、「マシンチャット」）等の「ソーシャルネットワーキング」活動に携わることができるアプリケーションとして見ることができる。
【００２３】
図７Ａは、チャットプロトコルを用いて、第１の装置の或るアプリケーションから第２の装置の別のアプリケーションにメタデータを送信する方法１１０を示す。方法１１０は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、フラッシュメモリ、ファームウェア、マイクロコード等の機械可読記憶媒体またはコンピューター可読記憶媒体に、例えば、プログラマブル論理アレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブル論理装置（ＣＰＬＤ）等の構成可能な論理で、例えば、特定用途向け集積回路（ＡＳＩＣ）、相補型金属酸化膜半導体（ＣＭＯＳ）、若しくはトランジスタトランジスタ論理（ＴＴＬ）技術等の回路技術を用いる固定の機能ハードウェアで、またはそれらの任意の組み合わせで記憶された実行可能論理命令セットとして実施することができる。例えば、方法１１０に示される動作を実行するコンピュータープログラムコードは、Ｃ＋＋等のオブジェクト指向プログラミング言語等および「Ｃ」プログラミング言語または同様のプログラミング言語等の従来の手続き型プログラミング言語を含むが、これらに限定されない１つまたは複数のプログラミング言語の任意の組み合わせで書くことができる。さらに、方法１１０の様々な態様は、任意の上記回路技術を用いてプロセッサの埋め込み論理として実施することができる。
【００２４】
処理ブロック１１２は、共通の作業空間への接続を提供し、図示のブロック１１４は、作業空間内の１つまたは複数の他のアプリケーションを特定する。他のアプリケーションの特定は、既に論述したように、他のアプリケーションのステータスをチェックすることを含むことができる。メタデータは、ブロック１１６において特定することができ、メタデータは、他のアプリケーションを実行中の装置のユーザーに提示される情報、他の装置のユーザーに提示する詳細情報を見つけるために用いられる情報、複数の装置の動作を調整するために用いられる情報等を含むことができる。図示のブロック１１８は、チャットプロトコルを用いて、メタデータを他のアプリケーションに渡す。チャットプロトコルは、ＸＭＰＰを用いて実施することができ、全体的にＯＳから独立することができる。ローカルアプリケーションのステータスは、既に論述したように、ブロック１２０においてメタデータ／スタンザ交換に従って更新することができる。
【００２５】
図７Ｂは、チャットプロトコルを用いて、リモートアプリケーションからメタデータを受信する方法１２２を示す。処理ブロック１１２は、共通の作業空間への接続を提供し、図示のブロック１１４は、既に論述したように、作業空間内の１つまたは複数の他のアプリケーションを特定する。チャットプロトコルを用いて、ブロック１２４において、他のアプリケーションからメタデータを受信することができる。ブロック１２６は、受信したメタデータの変換が必要であるか否かの判断を提供する。必要な場合、ブロック１２８において、メタデータはインタープリターモジュールを用いて処理することができる。この点に関して、ＸＭＬメッセージサーバーを用いて、異なるアプリケーションによって理解することができる特定のコマンドおよび引数をホストすることによって開発者およびアプリケーションを支援することができる。このサーバーは、全ての開発者およびアプリケーションが見るように開放することができ、異なるシンタックスが同じ動作に存在することができる変換プラットフォームとしてもこのサーバーを用いることができるように、開発者によって拡張可能であることができる。例えば、テレビセットでは、＜チャンネル４変更＞対＜ＮＢＣに行く＞対＜「シンプソンズ（The Simpsons）」を見る＞は、同じことを達成することができ、したがって、相互参照して、解釈サービスをアプリケーションおよび開発者に提供することができる。図示のブロック１２０は、メタデータ／スタンザの交換に基づいてローカルアプリケーションのステータスの更新を提供する。
【００２６】
これより図８を参照すると、計算システム１１４が示され、計算システム１１４では、チャットプロトコルを介して他のシステムとメタデータを交換することができる。図示の例では、計算システム１１４は、プロセッサ１１６と、システムメモリ１１８と、プラットフォームコントローラーハブ（ＰＣＨ：Platform Controller Hub）１２０と、大容量記憶装置（例えば、ハードディスクドライブ／ＨＤＤ、光ディスク、フラッシュメモリ等）１２２と、ネットワークインターフェース／コントローラー１２４と、１つまたは複数のユーザーインターフェース（ＵＩ）装置１２６と、様々な他のコントローラー（図示せず）とを有する。システム１１４は、メディア消費能力を有することができ、したがって、例えば、ＴＶ、ラップトップ、スマートタブレット、スマートフォン、パーソナルコンピューター（ＰＣ）、サーバー、ワークステーション等の一部とすることができる。実際に、システム１１４は部分的に、または完全に、既に論述した装置２０、３０、４０（図２Ａおよび図２Ｂ）等の１つまたは複数の装置に組み込むことができる。したがって、プロセッサ１１６は、記憶された論理命令セットを実行することが可能な１つまたは複数のプロセッサコアと、システムメモリ１１８と通信するように構成された集積メモリコントローラー（ＩＭＣ：Integrated Memory Controller）１２８とを含むことができる。システムメモリ１１８は、例えば、デュアルインラインメモリモジュール（ＤＩＭＭ）、スモールアウトラインＤＩＭＭ（ＳＯＤＩＭＭ：Small Outline DIMM）等の１つまたは複数のメモリモジュールとして構成されるダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含むことができる。
【００２７】
図示の例では、プロセッサ１１６は論理１３０を実行するように構成され、論理１３０は、システム１１４のローカルアプリケーションに関連するメタデータを特定し、ＯＳから独立したチャットプロトコルを用いて、他の装置に常駐するリモートアプリケーションにメタデータを渡す。論理１３０はまた、ＯＳから独立したチャットプロトコルを用いて、他の装置に常駐するリモートアプリケーションに関連するメタデータを受信し、システム１１４のローカルアプリケーションにメタデータを提供する。したがって、例えば、論理１３０は、既に論述した方法１１０（図７Ａ）および方法１１２（図７Ｂ）の１つまたは複数の態様を実施するメタデータモジュールおよび／またはチャットエンジンを含むことができる。
【００２８】
図示のＰＣＨ１２０は、チップセットのサウスブリッジと呼ばれることもあり、ホスト装置として機能し、ネットワークコントローラー１２４と通信することができ、ネットワークコントローラー１２４は、オフプラットフォーム無線通信機能を、例えば、セルラ電話、Ｗｉ−Ｆｉ、ＬＲ−ＷＰＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷｉＭａｘ、ＧＰＳ、拡散スペクトル、および他のＲＦ電話通信目的等の広範囲の目的で提供することができる。ネットワークコントローラー１２４はまた、オフプラットフォーム有線通信機能を提供することもできる。ＵＩ（例えば、タッチスクリーン、液晶ディスプレイ／ＬＣＤ、発光ダイオード／ＬＥＤ、キーボード、マウス等）装置１２６は、ユーザーがシステム１１４と対話し、システム１１４からの情報を認識できるようにすることが可能である。
【００２９】
本発明の実施形態の或る特定の態様は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組み合わせを用いて実施することができ、１つ若しくは複数のコンピューターシステムまたは他の処理システムで実施することができる。プログラムコードを、入力装置を用いて入力されたデータに適用して、説明された機能を実行し、出力情報を生成することができる。出力情報は１つまたは複数の出力装置に適用することができる。実施形態を、マルチプロセッサシステム、ミニコンピューター、メインフレームコンピューター等を含む様々なコンピューターシステム構成を用いて実施可能なことを当業者は理解することができる。実施形態はまた、分散計算環境で実施することもでき、分散計算環境では、通信ネットワークを通してリンクされたリモート処理装置によってタスクを実行することができる。
【００３０】
各プログラムは、高水準手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装して、処理システムと通信することができる。しかしながら、プログラムは、所望であればアセンブリ言語または機械語で実装することができる。いずれの場合でも、言語はコンパイルまたは解釈実行することができる。
【００３１】
プログラム命令を用いて、命令がプログラムされた汎用処理システムまたは専用処理システムに本明細書に記載の方法を実行させることができる。代替的には、方法は、方法を実行するハードワイヤード論理を含む特定のハードウェア構成要素またはプログラムされたコンピューター構成要素とカスタムハードウェア構成要素との任意の組み合わせによって実行することができる。本明細書に記載の方法は、コンピュータープログラム製品として提供することができ、コンピュータープログラム製品は、命令を記憶した少なくとも１つの機械可読媒体を含むことができ、命令を用いて、方法を実行するように処理システムまたは他の電子装置をプログラムすることができる。本明細書において用いられる「機械可読媒体」または「機械アクセス可能な媒体」という用語は、機械により実行され、機械に本明細書に記載のいずれか１つの方法を実行させる命令シーケンスを記憶するか、または符号化することが可能な任意の媒体を含むものとする。したがって、「機械可読媒体」および「機械アクセス可能な媒体」という用語は、限定ではないが、ソリッドステートメモリ、光ディスクおよび磁気ディスク、並びにデータ信号を符号化する搬送波を含むことができる。さらに、当分野では、動作を行うか、または結果を生じさせるものとして、様々な形態で（例えば、プログラム、手順、プロセス、アプリケーション、モジュール、論理等）ソフトウェアのことを述べることが一般的である。そのような表現は単に、処理システムによってソフトウェアを実行して、プロセッサに動作を実行させるか、または結果を生成させることを述べる省略表現にすぎない。
【００３２】
本明細書では、「結合される」という用語は、直接であれ間接的であれ、該当する構成要素間の任意のタイプの関係を指すために用いることができ、電気的接続、機械的接続、流体的接続、光学的接続、電磁的接続、電気機械的接続、または他の接続に適用することができる。加えて、本明細書では、「第１の」、「第２の」等の用語は、論述を容易にするためにのみ用いることができ、別段の指示がない限り、特定の時間的または経時的意味を有さない。
【００３３】
本発明の様々な実施形態について上述したが、本発明の様々な実施形態が単なる例示として提示され、限定ではないことを理解されたい。添付の特許請求の範囲に規定される本発明の趣旨および範囲から逸脱せずに、形態および詳細の様々な変更を行うことが可能なことが当業者には理解されよう。したがって、本発明の幅および範囲は、上記の例示的な実施形態のいずれによっても限定されるべきではなく、添付の特許請求の範囲およびその均等物に従って規定されるべきである。
【図１】
0006023811.tif 000002
【図２Ａ】
0006023811.tif 000003
【図２Ｂ】
0006023811.tif 000004
【図３】
0006023811.tif 000005
【図４】
0006023811.tif 000006
【図５Ａ】
0006023811.tif 000007
【図５Ｂ】
0006023811.tif 000008
【図６】
0006023811.tif 000009
【図７Ａ】
0006023811.tif 000010
【図７Ｂ】
0006023811.tif 000011
【図８】
0006023811.tif 000012