(57)【特許請求の範囲】
【請求項１】
分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスを提供するための方法であって、
計算プラットフォームによってパーシステントメッセージングサービスを実行するタプルスペースをホストすることと；
クライアントデバイスから通信ネットワークを介して前記パーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのために、メッセージングゲートウェイによって前記タプルスペースにユーザータプルを配置することと；
前記メッセージングゲートウェイによって、以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けることと；
前記メッセージングゲートウェイによって、前記メッセージタプルから引き出された履歴メッセージを前記通信ネットワークを介して前記クライアントデバイスに送信することと；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
方法。
【請求項２】
前記タプルスペース内の仲間ユーザータプルの属性とマッチするようにコンタクトサービスタプルを使用することによって、前記ユーザーに関連付けられた仲間ユーザーを位置付けることと；
前記仲間ユーザーのクライアントデバイスに、前記ユーザーがメッセージングにアクセス可能であること知らせることと；
をさらに備える、請求項1の方法。
【請求項３】
仲間ユーザーに向けての新規メッセージを前記ユーザーから受信することと；
前記タプルスペース内の前記ユーザータプルの属性とマッチするコンタクトサービスタプルで前記仲間ユーザーを識別することと；
前記メッセージを前記仲間ユーザーのクライアントデバイスに中継することと；
をさらに備える、請求項1の方法。
【請求項４】
前記新規メッセージを含む新規メッセージタプルを前記タプルスペースに配置することをさらに備える、請求項3の方法。
【請求項５】
予め定義されたユーザーのグループに向けられた新規メッセージを前記ユーザーから受信することと；
タプルスペース内の複数のユーザータプルの属性とマッチするコンタクトサービスタプルで、前記予め定義されたユーザーのグループのアクセス可能なメンバーの各々を識別することと；
前記新規メッセージを、前記アクセス可能なメンバーのそれぞれのクライアントデバイスに中継することと；
をさらに備える、請求項1の方法。
【請求項６】
前記新規メッセージを含む新規メッセージタプルを前記タプルスペースに配置することをさらに備える、請求項5の方法。
【請求項７】
アクセス可能なユーザーの特定されていないサブセットへの配布を意図した、インタレスト属性を有する新規メッセージを前記ユーザーから受信することと；
前記タプルスペース内の複数のユーザータプルと前記インタレスト属性とをマッチするシャウトサービスタプルで、アクセス可能なユーザーのサブセットを識別することと；
前記アクセス可能なユーザーのそれぞれのクライアントデバイスに、前記新規メッセージを中継することと；
をさらに備える、請求項1の方法。
【請求項８】
前記新規メッセージは広告を備える、請求項7の方法。
【請求項９】
メッセージングサービスを要求するクライアントデバイスに応答して、前記タプルスペースにインターフェースオブジェクトを位置付けることをさらに備える、請求項1の方法。
【請求項１０】
前記ユーザーがもはや前記パーシステントメッセージングサービスにアクセス可能でないことの表示を前記ユーザーの前記クライアントデバイスから受信することと；
前記タプルスペース内の仲間ユーザータプル属性とマッチするために、コンタクトサービスタプルを使用することによって、前記ユーザーに関連付けられた仲間ユーザーを位置付けることと；
前記ユーザーがメッセージングにアクセス可能でないことを前記仲間ユーザーのクライアントデバイスに知らせることと；
をさらに備える、請求項1の方法。
【請求項１１】
分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスを提供するための少なくとも1つのプロセッサであって、
パーシステントメッセージングサービスを実行するタプルスペースをホストするための第１のモジュールと；
クライアントデバイスから通信ネットワークを介して前記パーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのために、前記タプルスペースにユーザータプルを配置するための第２のモジュールと；
以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けるための第３のモジュールと；
前記メッセージタプルから引き出された履歴メッセージを前記通信ネットワークを介して前記クライアントデバイスに送信するための第４のモジュールと；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
少なくとも1つのプロセッサ。
【請求項１２】
分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスを提供するためのコンピュータプログラムを格納したコンピュータ読み取り可能媒体であって、前記コンピュータプログラムは、
コンピュータに、パーシステントメッセージングサービスを実行するタプルスペースをホストさせるための少なくとも１つの命令と；
前記コンピュータに、クライアントデバイスから通信ネットワークを介して前記パーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのために、前記タプルスペースにユーザータプルを配置させるための少なくとも1つの命令と；
前記コンピュータに、以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けさせるための少なくとも1つの命令と；
前記コンピュータに、前記メッセージタプルから引き出された履歴メッセージを前記通信ネットワークを介して前記クライアントデバイスに送信させるための少なくとも1つの命令と；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
コンピュータ読み取り可能記憶媒体。
【請求項１３】
分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスを提供するための装置であって、
パーシステントメッセージングサービスを実行するタプルスペースをホストするための手段と；
クライアントデバイスから通信ネットワークを介して前記パーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのために、前記タプルスペースにユーザータプルを配置するための手段と；
以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置づけるための手段と；
前記メッセージタプルから引き出された履歴メッセージを前記通信ネットワークを介して前記クライアントデバイスに送信するための手段と；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
装置。
【請求項１４】
分散ネットワークに接続されたクライアントサービスのポピュレーションへのパーシステントメッセージングサービスを提供するための装置であって、
パーシステントメッセージングサービスを実行するタプルスペースを提供する計算プラットフォームと；
通信ネットワークと；
前記通信ネットワークを介してクライアントデバイスとメッセージングゲートウェイとの間のアクティブ通信を開始するユーザーのためにユーザータプルを前記タプルスペースに配置するメッセージングゲートウェイと；
を備え、
前記メッセージングゲートウェイは、さらに、以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けし、前記メッセージタプルから引き出された履歴メッセージを前記通信ネットワークを介して前記クライアントデバイスに送信し、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
装置。
【請求項１５】
前記タプルスペース内の仲間ユーザータプルの属性とマッチするように、コンタクトサービスタプルを使用することによって前記ユーザーに関連付けられた仲間ユーザーを位置付けし、前記通信ネットワークを介して、前記仲間ユーザーのクライアントデバイスに、前記ユーザーがメッセージングにアクセスできることを知らせる前記メッセージングゲートウェイをさらに備える、請求項14の装置。
【請求項１６】
前記通信ネットワークを介して、仲間ユーザーに向けられた新規メッセージを前記ユーザーから受信し、前記タプルスペース内の前記ユーザータプルの属性にマッチするコンタクトサービスタプルで前記仲間ユーザーを識別し、および、前記通信ネットワークを介して、前記仲間ユーザーのクライアントデバイスに前記新規メッセージを中継する前記メッセージングゲートウェイをさらに備える、請求項14の装置。
【請求項１７】
前記新規メッセージを含む新規メッセージタプルを前記タプルスペースに配置する前記メッセージングゲートウェイをさらに備える、請求項16の装置。
【請求項１８】
前記通信ネットワークを介して、予め定義されたユーザーのグループに向けられた新規メッセージを前記ユーザーから受信し、前記タプルスペース内の複数のユーザータプルの属性にマッチするコンタクトサービスタプルで前記予め定義されたユーザーグループのアクセス可能なメンバーの各々を識別し、および、前記通信ネットワークを介して、前記アクセス可能なメンバーのそれぞれのクライアントデバイスに前記新規メッセージを中継する前記メッセージングゲートウェイをさらに備える、請求項14の装置。
【請求項１９】
前記新規メッセージを含む新規メッセージタプルを前記タプルスペースに配置する前記メッセージングゲートウェイをさらに備える、請求項18の装置。
【請求項２０】
前記通信ネットワークを介して、特定されないアクセス可能なユーザーサブセットへの配布を意図した、インタレスト属性を有する新規メッセージを前記ユーザーから受信し、前記インタレスト属性と前記タプルスペース内の複数のユーザータプルとをマッチするシャウトサービスタプルで、前記アクセス可能なユーザーサブセットを識別し、前記アクセス可能なユーザーのクライアントデバイスのそれぞれに前記新規メッセージを中継する前記メッセージングゲートウェイをさらに備える、請求項14の装置。
【請求項２１】
前記新規メッセージは広告を備える、請求項20の装置。
【請求項２２】
前記通信ネットワークを介して、メッセージングサービスを要求するクライアントデバイスに応答してインターフェースオブジェクトを前記タプルスペースに位置付ける前記メッセージングゲートウェイをさらに備える、請求項14の装置。
【請求項２３】
前記通信ネットワークを介して、前記ユーザーがもはや前記パーシステントメッセージングサービスにアクセス可能でないことの表示を前記ユーザーの前記クライアントデバイスから受信し、前記タプルスペース内の仲間ユーザータプルの属性にマッチするように、コンタクトサービスタプルを使用することによって、前記ユーザーに関連付けられた仲間ユーザーを位置付けし、前記通信ネットワークを介して、前記仲間ユーザーのクライアントデバイスに前記ユーザーがメッセージングにアクセスできないことを知らせる前記メッセージングゲートウェイをさらに備える、請求項14の装置。
【請求項２４】
分散ネットワークからパーシステントメッセージングサービスを受信するための方法であって、
ユーザータプルをユーザーのためのタプルスペースに配置させ、以前のメッセージングセッションの前記ユーザータプルにマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けさせるために、クライアントデバイスとメッセージングゲートウェイとの間で通信ネットワークを介してパーシステントメッセージングサービスとのアクティブ通信を開始することと；
前記メッセージタプルから前記クライアントデバイスに引き出された履歴メッセージを前記通信ネットワークを介して受信することと；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
方法。
【請求項２５】
前記タプルスペース内の仲間ユーザータプルの属性とマッチするように、コンタクトサービスタプルを使用することによって、前記ユーザーに関連付けられた仲間ユーザーを位置付けさせ、それにより、前記仲間ユーザーのクライアントデバイスに、前記ユーザーがメッセージングにアクセス可能であることを通知させるために、前記クライアントデバイスからの前記パーシステントメッセージングサービスとのアクティブ通信を開始することをさらに備える、請求項24の方法。
【請求項２６】
仲間ユーザーに向けられた新規メッセージを送信することをさらに備え、前記タプルスペース内の前記ユーザータプルの属性にマッチするコンタクトサービスタプルで前記仲間ユーザーを識別させ、前記新規メッセージを前記仲間ユーザーのクライアントデバイスに中継させる、請求項24の方法。
【請求項２７】
前記タプルスペース内の前記新規メッセージを含む新規メッセージタプルを配置させるために、前記仲間ユーザーに向けられた前記新規メッセージを送信することをさらに備える、請求項26の方法。
【請求項２８】
予め定義されたユーザーのグループに向けられた新規メッセージを送信することをさらに備え、前記タプルスペース内の複数のユーザータプルの属性とマッチするコンタクトサービスタプルで前記予め定義されたユーザーのグループのアクセス可能なメンバーの各々を識別させ、前記メッセージを前記アクセス可能なメンバーのそれぞれのクライアントデバイスに中継させる、請求項24の方法。
【請求項２９】
前記新規メッセージを含む新規メッセージタプルを前記タプルスペースに配置させるために、前記予め定義されたユーザーのグループに向けられた前記新規メッセージを送信することをさらに備える、請求項28の方法。
【請求項３０】
特定されないアクセス可能なユーザーのサブセットへの配布のために前記インタレスト属性を有する新規メッセージを送信することをさらに備え、前記タプルスペース内の複数のユーザータプルとインタレスト属性とをマッチするシャウトサービスタプルでアクセス可能なユーザーのサブセットを識別させ、前記アクセス可能なユーザーのそれぞれのクライアントデバイスに前記新規メッセージを中継させる、請求項24の方法。
【請求項３１】
前記新規メッセージは広告を備える、請求項30の方法。
【請求項３２】
インターフェースオブジェクトを前記タプルスペースに位置付けさせるために、メッセージングサービスを要求することをさらに備える、請求項24の方法。
【請求項３３】
前記タプルスペース内の仲間タプルの属性にマッチするように、コンタクトサービスタプルを使用することによって前記ユーザーに関連付けられた仲間ユーザーを位置付けさせ、前記仲間ユーザーのクライアントデバイスに前記ユーザーがメッセージングにアクセスできないことを通知させるために、前記ユーザーがもはや前記パーシステントメッセージングサービスにアクセス可能でないことの表示を送信することをさらに備える、請求項24の方法。
【請求項３４】
パーシステントメッセージングサービスを分散ネットワークから受信するための少なくとも1つのプロセッサであって、
ユーザータプルをユーザーのためのタプルスペースに配置させ、以前のメッセージングセッションの前記ユーザータプルにマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けさせるために、クライアントデバイスとメッセージングゲートウェイとの間で通信ネットワークを介してパーシステントメッセージングサービスとのアクティブ通信を開始するための第1のモジュールと；
前記メッセージタプルから前記クライアントに引き出された履歴メッセージを前記通信ネットワークを介して受信するための第2のモジュールと；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
少なくとも1つのプロセッサ。
【請求項３５】
分散ネットワークからパーシステントメッセージングサービスを受信するためのコンピュータプログラムを格納したコンピュータ読み取り可能媒体であって、前記コンピュータプログラムは、
コンピュータに、ユーザータプルをユーザーのためのタプルスペースに配置させ、以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けさせるために、クライアントデバイスとメッセージングゲートウェイとの間で通信ネットワークを介してパーシステントメッセージングサービスとのアクティブ通信を開始させる少なくとも1つの命令と；
前記コンピュータに、前記メッセージタプルから前記クライアントデバイスに引き出された履歴メッセージを前記通信ネットワークを介して受信させる少なくとも1つの命令と；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
コンピュータ読み取り可能記憶媒体。
【請求項３６】
パーシステントメッセージングサービスを分散ネットワークから受信するための装置であって：
ユーザータプルをユーザーのためのタプルスペースに配置させ、以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けさせるために、クライアントデバイスとメッセージングゲートウェイとの間で通信ネットワークを介してパーシステントメッセージングサービスとのアクティブ通信を開始するための手段と；
前記メッセージタプルから前記クライアントデバイスに引き出された履歴メッセージを前記通信ネットワークを介して受信するための手段と；
を備え、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
装置。
【請求項３７】
パーシステントメッセージングサービスを分散ネットワークから受信するための装置であって：
送信機および受信機と；
パーシステントメッセージングサービスを実行するタプルスペースと動作的にインタラクトするゲートウェイに通信ネットワークを通して通信するための前記送信機および前記受信機を制御するための通信モジュールと；
ユーザータプルをユーザーのための前記タプルスペースに配置させ、以前のメッセージングセッションの前記ユーザータプルとマッチする前記タプルスペースに記憶されたメッセージタプルを位置付けさせるために、前記通信モジュールを介してパーシステントメッセージングサービスとのアクティブ通信を開始するためのユーザーインターフェースと；
を備え、
前記ユーザーインターフェースは、前記受信機および通信モジュールを介して、前記メッセージタプルからクライアントデバイスに引き出された履歴メッセージを受信し、
前記履歴メッセージは、前記以前のメッセージングセッションの少なくとも一部を備える、
装置。
【請求項３８】
前記タプルスペース内の仲間ユーザータプルの属性にマッチするように、コンタクトサービスタプルを使用することによって前記ユーザーに関連付けられた仲間ユーザーをさらに位置付けさせ、それによって、前記ユーザーがメッセージングにアクセス可能であることを前記仲間ユーザーのクライアントデバイスに通知させるために、前記通信モジュールを介して、前記クライアントデバイスからの前記パーシステントメッセージングサービスとのアクティブ通信を開始する前記ユーザーインターフェースをさらに備える、請求項37の装置。
【請求項３９】
仲間ユーザーに向けられた新規メッセージを、前記通信モジュールを介して送信する前記ユーザーインターフェースをさらに備え、前記タプルスペース内の前記ユーザータプルの属性にマッチするコンタクトサービスタプルで前記仲間ユーザーを識別させ、前記メッセージを前記仲間ユーザーのクライアントデバイスに中継させる、請求項37の装置。
【請求項４０】
前記新規メッセージを含む新規メッセージタプルを前記タプルスペースにさらに配置させるために、前記仲間ユーザーに向けられた前記新規メッセージを送信する前記ユーザーインターフェースをさらに備える、請求項39の装置。
【請求項４１】
予め定義されたユーザーグループに向けられた新規メッセージを、前記通信モジュールを介して送信する前記ユーザーインターフェースをさらに備え、前記タプルスペース内の複数のユーザータプルの属性にマッチするコンタクトサービスタプルで前記予め定義されたユーザーグループのアクセス可能なユーザーの各々を識別させ、前記新規メッセージを前記アクセス可能なユーザーのそれぞれのクライアントデバイスに中継させる、請求項37の装置。
【請求項４２】
前記新規メッセージを含む新規メッセージタプルを前記タプルスペースにさらに配置させるために、前記予め定義されたユーザーグループに向けられた前記新規メッセージを送信する前記ユーザーインターフェースをさらに備える、請求項41の装置。
【請求項４３】
特定されないアクセス可能なユーザーのサブセットへの配布のためのインタレスト属性を有する新規メッセージを、前記通信モジュールを介して送信する前記ユーザーインターフェースをさらに備え、前記タプルスペース内の複数のユーザータプルと前記インタレスト属性とをマッチするシャウトサービスタプルで前記アクセス可能なユーザーのサブセットを識別させ、前記メッセージを前記アクセス可能なユーザーのクライアントデバイスのそれぞれに中継させる、請求項37の装置。
【請求項４４】
前記新規メッセージは広告を備える、請求項43の装置。
【請求項４５】
前記タプルスペースにインターフェースオブジェクトを位置付けさせるために、前記通信モジュールを介して前記パーシステントメッセージングサービスを要求する前記ユーザーインターフェースをさらに備える、請求項37の装置。
【請求項４６】
前記ユーザーがもはや前記パーシステントメッセージングサービスにアクセス可能でないことの表示を、前記通信モジュールを介して送信する前記ユーザーインターフェースをさらに備え、前記タプルスペース内の仲間ユーザータプルの属性にマッチするように、コンタクトサービスタプルを使用して前記ユーザーと関連付けられた仲間ユーザーを位置付けさせ、前記ユーザーがメッセージングにアクセス可能でないことを前記仲間ユーザーのクライアントデバイスに通知させる、請求項37の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
記述される態様は、インタラクトなワークスペースおよびユビキタス計算に関する。さらに詳細には、パーシステントなパーソナルメッセージングを達成するために分散システムに位置付けられたサービスオブジェクトに容易にインターフェースするための複数の異なる計算プラットフォームポピュレーション（population）のインフラストラクチャに関する。
【背景技術】
【０００２】
インターネットなどであるがそれには限定されない分散コンピュータシステムは、異なり、かつ、地理的に多様なプロセッサの大きいアレイ上で同時に実行する多くの異なるプロセスの間での、迅速なリアルタイム交換によって特徴付けられる。分散コンピュータシステムのリソースは、通常空間的に分離され、そのアプリケーションの実行は、しばしば、時間的に広く分離されることができる複数の実行スレッドを含む。
【０００３】
クライアントデバイスのユーザーポピュレーション（集団）のためのオペレータは、競合的で発展中の通信市場で競争している。特に、様々なサービスに対するユーザーの期待を、分散コンピュータシステムを通して満たすことは難しい。しばしば、ユーザーの期待は、探索など、異なる優先サービスプロバイダを有することにおいて互いに一致しない。加えて、あるタイプのコンテンツは、これらのサービスにアクセスすることを阻止する専有のインターフェースのゆえに、分散ネットワークの複数の異なるノードに分離されうる。
【０００４】
クライアントデバイスは、それらの主な用途である通信機能を使って、または、接続性を拡大するための無線通信機能を伴って、ますます機動性を有する。エンドユーザは、以前は端末、ワークステーション、および汎用コンピュータのドメインであったこれらのモバイル通信デバイスを用いて、サービスにアクセスすることを望む。汎用計算を意図される後者のデバイスは標準化の傾向、または、広範囲の使用環境に少なくとも適応する傾向を辿った。対照的に、モバイル通信デバイスは、処理能力よりも無線通信に焦点を当てたパフォーマンスと共に、経済的な製造、小さいサイズ、拡張されたバッテリーサービスライフを優先して進化した。さらに、ブロードキャスト帯域およびプロトコルの進化は、通信チップセットの増加を促進する傾向にあった。そのように、様々なサービスをモバイル通信デバイスのユーザーに提供することは、特に、汎用コンピュータのユーザーに対するより大きい現在の市場と比較すると、制限されている。
【０００５】
多くの障害が、サービス（汎用コンピュータにとって一般的な）をモバイル通信デバイスに展開するという挑戦を妨げている。モバイル通信デバイスの通信帯域幅は、汎用コンピュータのブロードバンドチャネルと比較すると、しばしば制約され、それは、様々なサービスに対して適切にモバイル通信デバイスを構成するためのインターフェースソフトウェアをダウンロードすることを妨げる。しばしば、モバイル通信デバイスのユーザーインターフェースは厳格にサイズが制約され、それは、ディスプレイサイズおよび提示されうる制御ボタンの数を限定し、そのような構成をさらに複雑化する。さらに、多くのユーザーが、そのようにフォーカスされたインタラクションに向かない状況（例えば、旅行）で、モバイル通信デバイスを使用する傾向にある。
【０００６】
モバイルデバイスの一意的な制約および使用パターンによって複雑化される1つのそのような機能はインスタントメッセージングである。しばしば、人は、例えば、仕事場のデスクトップパーソナルコンピュータ（PC）、家庭のラップトップPC、およびモバイルデバイス上で、インターネットメッセージングクライアントのいくつかの異なるインスタンスを使用するであろう。1つの問題は、異なるデバイスを使用することの間に継続性（continuity）が存在しないということである。PC上で動くクライアントで開始される一人またはグループとの会話は、ユーザーがラップトップまたはモバイルデバイス上のクライアントに切り替えると、中断または紛失される。
【発明の概要】
【０００７】
下記は、本開示のいくつかの態様の基本的な理解を提供するために簡単化された概要を提示する。この概要は広範囲な概観ではなく、キーまたは不可欠な要素を識別すること、あるいは、そのような態様の範囲を描写することを意図しない。その目的は、後に示される、より詳細な記述への前置きとして、記述される態様のいくつかのコンセプトを簡易な形で提示することである。
【０００８】
1つ以上の態様およびそれらの対応する開示に従って、様々な特徴が、様々な通信プラットフォームから容易にアクセスされうるタプルスペースにおいて、インスタントメッセージ通信の継続性を有利に維持する疎結合の分散ネットワークを介してサービスにアクセスし、様々な遠隔クライアントにシームレスなアクセス可能性を提供するために、モバイル通信デバイスなどのクライアントデバイスの使用と関連して記述される。
【０００９】
一態様において、分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスのための方法が提供される。クライアントデバイスからパーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのために、ユーザータプルがタプルスペースに配置される。以前のメッセージングセッションのユーザータプルとマッチする、タプルスペースに記憶されたメッセージタプルが位置付けられる。メッセージタプルから引き出される履歴メッセージがクライアントデバイスに送信される。
【００１０】
別の態様において、少なくとも1つのプロセッサが、分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスのために提供される。第1のモジュールは、クライアントデバイスからのパーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのためにユーザータプルをタプルスペースに配置する。第2のモジュールは、前のメッセージングセッションのユーザータプルにマッチする、タプルスペースに記憶されたメッセージタプルを位置付ける。第3のモジュールは、メッセージタプルから引き出された履歴メッセージをクライアントデバイスに送信する。
【００１１】
さらなる態様において、コンピュータプログラム製品が、分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスのために提供される。コンピュータ読み取り可能媒体は、コンピュータに、クライアントデバイスからのパーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのためにユーザータプルをユーザータプルスペースに配置させ、以前のメッセージングセッションのユーザータプルとマッチするタプルスペースに記憶されたメッセージタプルを位置付けさせ、および、メッセージタプルから引き出された履歴メッセージをクライアントデバイスに送信させるコードセットを備える。
【００１２】
さらなる態様において、装置が、クライアントデバイスからのパーシステントメッセージングサービスとのアクティブ通信を開始するユーザーのためにユーザータプルをタプルスペースに配置するための手段と、以前のメッセージングセッションのユーザータプルとマッチする、タプルスペースに記憶されたメッセージタプルを位置付けさせるための手段と、メッセージタプルから引き出された履歴メッセージをクライアントデバイスに送信するための手段とを有する分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスのために提供される。
【００１３】
さらに別の態様において、装置が、分散ネットワークに接続されたクライアントデバイスのポピュレーションへのパーシステントメッセージングサービスのために提供される。計算プラットフォームは、パーシステントメッセージングサービスを実行するタプルスペースをホストする。メッセージングゲートウェイは、通信ネットワークを介して、クライアントデバイスとメッセージングゲートウェイとの間でアクティブ通信を開始するユーザーのために、ユーザータプルをタプルスペースに配置する。メッセージングゲートウェイは、前のメッセージングセッションのユーザータプルとマッチするタプルスペースに記憶されたメッセージタプルをさらに位置付け、メッセージタプルから引き出された履歴メッセージを、通信ネットワークを介してクライアントデバイスに送信する。
【００１４】
さらに別の態様において、方法が、分散ネットワークからパーシステントメッセージングサービスを受信するために提供される。クライアントデバイスからのパーシステントメッセージングサービスとのアクティブ通信の開始は、ユーザータプルをユーザーのタプルスペースに配置させる。この開始は、さらに、以前のメッセージングセッションのユーザータプルにマッチするタプルスペースに記憶されたメッセージタプルを位置付ける。次に、メッセージタプルから引き出された履歴メッセージが受信されうる。
【００１５】
さらに別の態様において、少なくとも1つのプロセッサが、パーシステントメッセージングサービスを分散ネットワークから受信するために提供される。第1のモジュールは、ユーザータプルをユーザーのタプルスペースに配置させ、および、以前のメッセージングセッションのユーザータプルとマッチするタプルスペースに記憶されたメッセージタプルを位置付けさせるために、クライアントデバイスからのパーシステントメッセージングサービスとアクティブ通信を開始する。第2のモジュールは、メッセージタプルからクライアントデバイスに引き出された履歴メッセージを受信する。
【００１６】
さらに別の付加的な態様において、コンピュータプログラム製品が、パーシステントメッセージングサービスを分散ネットワークから受信するために提供される。コンピュータ読み取り可能媒体は、ユーザータプルをユーザーのタプルスペースに配置させ、以前のメッセージングセッションのユーザータプルとマッチするタプルスペースに記憶されたメッセージタプルを位置付けさせ、メッセージタプルからクライアントデバイスに引き出された履歴メッセージを受信するために、コンピュータに、クライアントデバイスからのパーシステントメッセージングサービスとのアクティブ通信を開始させるコードセットを備える。
【００１７】
さらに別の付加的な態様において、装置が、パーシステントメッセージングサービスを分配ネットワークから受信するために提供され、それは、ユーザータプルをユーザーのためのタプルスペースに配置させ、以前のメッセージングセッションのユーザータプルとマッチするタプルスペースに記憶されたメッセージタプルを位置付けさせるためにクライアントデバイスからのパーシステントメッセージングサービスとのアクティブ通信を開始する手段と、メッセージタプルからクライアントデバイスに引き出された履歴メッセージを受信する手段とを有する。
【００１８】
別の付加的な態様において、装置が、パーシステントメッセージングサービスを分散ネットワークから受信するために提供される。通信モジュールは、パーシステントメッセージングサービスを実行するタプルスペースと実行可能にインタラクトするゲートウェイへの通信ネットワークを通して通信するために、送信機および受信機を制御する。ユーザーインターフェースは、ユーザーのタプルスペースにユーザータプルを配置させ、以前のメッセージングセッションのユーザータプルとマッチするタプルスペースに記憶されたメッセージタプルを位置付けさせるために、通信モジュールを介して、パーシステントメッセージングサービスとのアクティブ通信を開始する。ユーザーインターフェースは、通信モジュールおよび受信機を介して、メッセージタプルから引き出された履歴メッセージを受信する。
【００１９】
前述および関連した目的を達成するために、1つ以上の態様は、以下に十分に記述され、請求項で特に示される特徴を備える。以下の記述および添付図は、ある例示的な態様を詳細に示し、態様およびバージョンの原理が用いられる様々な方法のほんの一部を示す。別の利点および新規な特徴は、図と関係して考慮した場合に、以下の詳細な記述から明白になるであろう。また、開示されたバージョンは、全てのそのような態様およびそれらの均等物を包含することを意図する。
【図面の簡単な説明】
【００２０】
【図１】図1は、分散ネットワークサービス介した複数のクライアントデバイスへのパーシステントパーソナルメッセージングのためのシステムの一態様の概略図である。
【図２】図2は、図1のシステムと動作可能な通信ネットワークの一態様の概略図である。
【図３】図3は、一態様に従って、最適レート化された置き換えられた検索結果を有する例示的なクライアントデバイスの図である。
【図４】図4は、一態様に従って、パーシステントパーソナルメッセージングおよびスーパーグループのための方法論のタイミング図である。
【図５】図5は、図4に続く図である。
【発明の詳細な説明】
【００２１】
パーシステントパーソナルメッセージングシステムは、パーシステントパーソナルメッセージングのための疎結合の分散システム内であっても、複数のクライアントデバイス間で変更するユーザーをサポートするタプルスペース機能を提供する。ユーザーは、それらがどのメッセージングクライアントを使用しているかに関らず、システムにログオンする。ログオンの動作は、ユーザーを表すタプルをタプルスペースに配置する。「コンタクト」サービスエージェントは、友達と、ユーザーが属するグループとを見つけ、ユーザーがログオンしたことを別のユーザーに知らせる。別のユーザーおよびグループのオンライン状態の場合、「履歴」サービスエージェントは、あたかもユーザーが一度もログオフしていないかのように、あるいは、デバイスを切り替えていないかのように、ユーザーおよびグループとのユーザーの会話を形成したタプルスペースから以前のメッセージを検索するであろう。ユーザーが新規メッセージを任意の会話に追加すると、そのメッセージはタプルとしてタプルスペースに追加される。タプルはリースを有するため、会話の中の古いメッセージは、決められた時間期間の後に自動的に無効となる（または外部的に存続される）。タプルスペースの性質のため、仮想のスーパーグループを作成するために、タプルスペースにわたって、ユーザーとグループとの間の共通点を探索することも可能である。スーパーグループは、特定のメッセージで標的にされうる。例えば、フットボールに関心（interest）を持つ現在のユーザーおよびグループ全てを含むスーパーグループは、最新のフットボール結果を彼らの会話に挿入する「シャウト」サービスエージェントによって標的にされうる。
【００２２】
本出願に使用されるように、「コンポーネント」、「モジュール」、「システム」という用語およびそのようなものは、コンピュータ関連エンティティ（ハードウェア、ハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれか）を指すことを意図する。例えば、コンポーネントは、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータでありうるが、それに限定されない。例として、サーバ上で実行するアプリケーションとサーバの両方はコンポーネントでありうる。1つ以上のコンポーネントは、プロセスおよび／または実行スレッド内に存在し、1つのコンポーネントは、コンピュータ上でローカライズされ、および／または2つ以上のコンピュータ間に分散される。
【００２３】
「例示的」という用語は、「実例、事例、または例証として提供される」を意味するために本明細書で使用される。「例示的」として本明細書に記述されている任意の態様または設計は、必ずしも他の態様または設計より有利または優先されるとして解釈されるわけではない。
【００２４】
さらに、1つ以上の態様は、ソフトウェア、ファームウェア、ハードウェアまたはそれらの任意の組み合わせを生産し、開示される態様を実施するようにコンピュータを制御するために、標準のプログラミングおよび／またはエンジニアリング技術を使用する方法、装置、または製品として実施される。本明細書で使用されるような「製品（article of manufacture）（または、代替として「コンピュータプログラム製品」）」という用語は、任意のコンピュータ読み取り可能デバイス、キャリアまたは媒体からアクセス可能なコンピュータプログラムを包含することを意図する。例えば、コンピュータ読み取り可能媒体は、磁気記憶デバイス（例えば、ハードディスク、フロッピー（登録商標）ディスク、磁気ストリップなど）、光学ディスク（例えば、コンパクトディスク（CD）、デジタルビデオディスク（DVD）など）、スマートカード、およびフラッシュメモリデバイス（例えば、カード、スティックなど）を含むが、それに限定されない。加えて、搬送波が、電子メールを送信および受信すること、および、インターネットまたはローカルエリアネットワーク（LAN）などのネットワークにアクセスすることに使用されるデータなどのコンピュータ読み取り可能電子データを伝達するために用いられうることは認識されるべきである。当然、当業者は、多くの変更が、開示される態様の範囲を逸脱することなく、この構成に行われることを認識するであろう。
【００２５】
様々な態様は、多数のコンポーネント、モジュールおよびそのようなものを含みうるシステムという見地から提示されるであろう。様々なシステムが、図に関連して議論されるさらなるコンポーネント、モジュールなどを含むこと、および／または、そのコンポーネント、モジュールなどの全てを含まないことは理解および認識されるべきである。これらのアプローチの組み合わせも、また、使用される。本明細書に開示される様々な態様は、タッチスクリーンディスプレイ技術、および／または、マウス／キーパッドタイプのインターフェースを利用するデバイスを含む電気デバイス上で実行されうる。そのようなデバイスの例は、コンピュータ（デスクトップおよびモバイル）、スマートフォン、携帯情報端末（PDA）、また、有線および無線の両方の別の電子デバイスを含む。
【００２６】
図1において、分散システム100は、モバイル通信デバイスなどのクライアントデバイス101が、メッセージングインターフェースサービスタプル106などのメッセージングサービスを見つけるために、計算プラットフォーム102上で動作するタプルスペース104を調査することを可能にする。適切な属性（サービスタプル143からのユーザーインターフェースコード108として描写される）は、次に、ロードされ、例示的な描写におけるクライアントデバイス101上で、探索インターフェース109として実行されることができる。それによって、ユーザー110は、ユーザー110が別のクライアントデバイス101'を介して携わった以前のメッセージング会話との継続性を維持するために、クライアントデバイス101の通信モジュール113を介して、パーシステントメッセージングサービス112とインタラクトすることができる。
【００２７】
例示的な描写において、パーシステントメッセージングシステム112は、ユーザータプル116とインタラクトする状態サービスタプル114を含む。履歴サービスタプル118は履歴タプル120とインタラクトする。コンタクトサービスタプル122は、ユーザータプル116とインタラクトする。メッセージングサービスタプル124は、メッセージタプル126とインタラクトし、それは、次に、履歴タプル120とインタラクトすることができる。シャウトサービスタプル128および広告サービスタプル130は、各々、ユーザータプル116のインタレスト属性132とインタラクトする。
【００２８】
無線アクセスネットワークまたはデジタル携帯サービスを介するデジタルサービスのためのキャリアのようなオペレータ134は、クライアントデバイス102とタプルスペース104との間にゲートウェイ136を提供することができる。特に、メッセージコンポーネント138は、加入者サービスコンポーネント142によって検証されたように、通信ネットワーク140を通してパーソナルメッセージングを複数のクライアントデバイス102に中継する。
【００２９】
タプルスペース104はグローバルに共有され、結合的にアドレスされるメモリスペース（これはタプルの集約として編成される）である。「タプル」は、タプルスペースシステムの基本エレメントである。リンダ（Linda）のようなタプルスペースベースの協調言語（coordination language）の場合、タプルはフィールドまたはあるタイプの値を有するベクトルである。より広い意味において、「タプル」は、情報記憶システムにおけるエントリである。例えば、相関的なデータベースシステム内の行はタプルと呼ばれうる。
【００３０】
リンダのような言語において、「テンプレート」と呼ばれる構造体が、マッチング技術を介してタプルを結合的に処理するために使用される。それらが同数のフィールドを有する場合、および、各テンプレートフィールドが対応するタプルフィールドにマッチする場合に、テンプレートがタプルにマッチする。
【００３１】
タプルスペースベースの協調言語は、シンプルでありつつもパワフルなメカニズムをプロセス間通信および同期化に提供する。それは並行プログラミングおよび分散プログラミングの最重要点である。共有するべきデータを有するプロセスはタプルを生成し、それをタプルスペースに配置する。データを要求するプロセスは、タプルスペースからタプルをシンプルに要求する。タプルスペースプログラムは、以下を含む多数の理由によって、書き込みと維持がより容易である。
【００３２】
（1）宛先アンカップリング（十分に匿名の通信）・・・タプルの作成者は、そのタプルの後の使用またはその宛先についての知識を要求しない。
【００３３】
（2）空間的アンカップリング・・・タプルが結合的処理方式を使用して検索されるため、複数のアドレス／スペース分解（address-space-disjoint）プロセスは、いくつかの方法でタプルにアクセスすることができる。
【００３４】
（3）時間的アンカップリング・・・タプルは、それらを生成したプロセス、またはそれらを読み取る任意のプロセスから独立して、それら自体の寿命を有する。これは、時間的に交わらない処理が途切れなく通信することを可能にする。
【００３５】
タプルスペースの実施は、「閉鎖型」または「開放型」のいずれかでありうる。閉鎖型の実施は、非常に効果的な閉鎖的プログラムを提供するために、オブジェクトおよびソースコードのコンパイル時間解析を使用する。開放型の実施は、プロセス、エージェント、およびプログラムが、任意の事前知識を要求するランタイムシステム無しにタプルスペースを通して協調することを可能にする。本質的に、開放型の実施は、パーシステントデータ記憶装置を提供する。
【００３６】
リンダ言語は、3つの標準命令または基本命令を使用する。これらは（それらの略式の意味と共に）：
（1）out（タプル）−タプルをタプルスペースに挿入する。
【００３７】
（2）in（テンプレート）−テンプレートにマッチするタプルが存在する場合、次に、そのタプルを除去し、インを実行するエージェントにそれを戻す。マッチングタプルが利用不可能な場合、次に、基本命令は、マッチングタプルが利用可能になるまでブロックする。
【００３８】
（3）rd（テンプレート）−テンプレートにマッチするタプルが存在する場合、次に、タプルのコピーを、rdを実行したエージェントに戻す。マッチングタプルが無い場合、次に、基本命令は、マッチングタプルが利用可能になるまでブロックする。
【００３９】
タプルスペース104はデータ貯蔵庫を備え、タプルスペース104に配置されるサービスタプル143およびデータタプル144の各々は、タプルタイプ146およびタプル属性148を備える順序付けられたデータセットを有するオブジェクトを備える。さらに、タプル属性148はタプルタイプ146に依存して変化する。タプルスペース104は、データオブジェクト（例えばタプル144）を受信するように機能するアブストラクトスペースを備え、そのスペース内で実行されうる予め決められた動作セットを含む。例えば、予め決められた機能セットは、両方が、入力パラメータを、例えば、タプルスペース内に存在するそれらの値とマッチすることによって、スペース内の特定のタプルの選択を可能にする入力パラメータを獲得する「in」機能および「rd」機能を含む。さらに、「in」機能および「rd」機能の両方は、非ブロッキング均等物（inpおよびrdp）を有する。いくつかの態様において、予め決められた機能セットは、タプルスペース104およびタプル144の両方で実行される、JAVA（登録商標）メソッドなどの動作セットを含む。
【００４０】
さらに、特定の例において、各タプル144は、com.qualcomm.qspaces.lindaTupleクラスまたはサブクラスのインスタンスであり、タプルが構成される際に特定されるオブジェクトのアレイによって定義される属性148のセットで作成される。アレイはゼロ長でありうるが、いくつかの態様において、アレイはヌルではない。加えて、いくつかの態様において、アレイ内の個々の属性オブジェクトのいずれもヌルではない。
【００４１】
いくつかの態様において、タプル144が最初に構成され、それぞれの属性148がそれぞれのタプルから検索される毎に、オブジェクトのアレイは、超高速形式のメモリ内直列化を使用して防御的にコピーされる。このプロセスは、タプル144が不変になることを可能にし、それによって、タプル144が存在するタプルスペース104の保全性を保証する。
【００４２】
上に記述された態様において、タプル等式（tuple equality）は、t1イコール（t2）の場合にt2イコール（t1）であることを示す対称則を含む、任意のJAVAオブジェクトの同じ等式原則を厳守する。
【００４３】
特に、タプルは、テンプレートとして知られるt2が以下の基準を満たす場合、別のタプルに等しい（例えば、t1イコール（t2））：
（1）テンプレートt2のクラス120は、タプルt1と同じクラス120である。
【００４４】
（2）テンプレートt2の属性122は、タプルt1の属性122と同じであり、それは、t2の属性122が、それらの順序に関らず、t1の属性122と同じであることを意味する。
【００４５】
別の態様において、タプルは、テンプレートとして知られるt2が以下の基準を満たす場合に、別のタプルにマッチする（例えば、t1マッチ（t2））：
（1）テンプレートt2のクラス120は、タプルt1と同じクラス120またはタプルt1のスーパークラスである。
【００４６】
（2）テンプレートt2の属性122は、タプルt1の属性122にマッチし、それは、t2の属性122が、それらの順序に関らず、同じセットまたはt1の属性122のサブセットであることを意味する。
【００４７】
1つのタプルが別のタプルとマッチすると、対称則は適用されない。そのため、t1マッチ（t2）は、必ずしもt2マッチ （t1）と同等ではない。
【００４８】
いくつかの態様において、タプル属性148のあるセットと別との比較は、通常オブジェクトの等式規則を使用し、そのため、タプル属性148として使用される任意のオブジェクトはobject.equals（Object obj）およびobject.hashcode（）メソッドを実施することができる。
【００４９】
タプル144は、リース150と共にタプルスペース104に追加される。リース150は、どのくらいの間タプルがそれぞれのタプルスペース104に残るかを定義する時間期間（例えば、ミリ秒で特定される）である。例えば、ゼロの値を有するリース150は、それぞれのタプルが決して終了しないことを示す。一度、リース150がそれぞれのタプルに対して終了すると、タプルは、自動的にタプルスペース104から除去される。
【００５０】
サービスタプル143は、クライアントデバイス101のようなタプルスペース104のクライアントとインタラクトするサービスを示す。さらに、サービスタプル143は、また、タプルスペース104およびスペース内の別のタプルとインタラクトする、それ自体の権利における自律的な「生」JAVAオブジェクトである。サービスタプル143は、例えば、タプルのクラスおよび属性146をマッチすることによって、別のタプルと同一の方法で発見されうる。いくつかの態様において、サービスタプル143はこの方法で使用されないが、さらなるサービスタプル143が、データタプル144などの別のタプルをタプルスペース104に配置することによって間接的にインタラクトする。
【００５１】
例えば、それぞれのクライアントデバイス101などのクライアントは、属性「abc」および「123」というクラスAのデータタプル144を作成し、そのタプルをタプルスペース104に配置する。そのように、データタプル144は、以下の表記を使用して記述されうる：
（A, “abc”, 123）
サービスタプル143は、クライアントアプリケーションと同じ方法で、タプルスペース104とインタラクトすることができる生オブジェクトである。このように、この例において、サービスタプル143はインスタンス化され、クラス「A」および任意の属性に対してマッチングテンプレートを有する任意のタプルのための、タプルスペース104からの読み取りをブロックしている。また、マッチング基準は以下のように記述される：
（A, ?s, ?x）
ここで、?sおよび?xは、ストリングsの任意の値および整数ｘがマッチするであろうことを意味する。結果的に、タプルスペース104は、サービスタプル106からのテンプレートにマッチし、タプルスペース104からタプルAを読み取るであろう。この方法で、記述された態様は、タプルの形式でパラメータをサービスに渡す。
【００５２】
さらに、システム100において、ユーザーインターフェース108を表すオブジェクトをサービスオブジェクト自体に埋め込むことが可能である。以下のユーザーインターフェースサービスタプルを考慮すると：
（A, [Java], [Flash], [uiOne]）
例えば、サービスタプル143は、ユーザーインターフェースA属性（例えば、JAVA（登録商標）で定義される）、ユーザーインターフェースB属性（例えば、アドビフラッシュで定義される）、およびユーザーインターフェースC（例えば、カリフォルニア州サンディエゴのQUALCOMM株式会社のuniOne（登録商標）技術で定義される）などの3つのユーザーインターフェースオブジェクトを含むことができる。移動性に関しては、現在の態様は、スクリーンサイズまたは別のデバイス特有の性質に対する最適化を随意的に含む、Java、フラッシュ、またはuiOneのような異なる技術、または、単一の技術の複数の変形のサポートという見地から、各々が自己の固有の要求を有する様々な無線デバイスをまたいだサービスの供給を可能にする。それぞれのクライアントデバイス（および、対応するアプリケーション）101および／またはシステム100への任意の別のパーティーは、このように、ユーザーインターフェースサービスオブジェクトを位置付け、次に、ユーザーインターフェースコンポーネントをそれからロードすることができる。
【００５３】
データタプル144は、クライアント101がインタラクトするサービス、あるいはクライアントデバイス101とインタラクトするサービスに結合されたサービスとして、それぞれのクライアントデバイス（無線デバイスなど）101によって直接的に、または、データソース（オペレータゲートウェイ136など）によって代替的にタプルスペース104に配置される。例えば、クライアントデバイス101は、携帯電話、衛星電話、PDA、ラップトップコンピュータなどの任意のタイプのコンピュータ化された無線デバイスである。
【００５４】
図2を参照すると、例えば、通信ネットワーク300は、ネットワークデバイスまたはサーバ308および／または記憶装置310および／またはデータソース312を有する有線ネットワーク306（例えば、ローカルエリアネットワーク、LANなど）と通信するために無線ネットワーク304を利用する1つまたは複数のクライアントデバイス302（この場合は、無線電話デバイス）を含む。ネットワークデバイス／サーバ308および／または記憶装置310の1つまたは両方は、タプルスペース104および上述されたシステム100のコンポーネントのいくつかの部分を含む。さらに、データソース312は、プロセッサおよびそのプロセッサと通信するメモリを含む。メモリは、ウェブベースのトランザクションサービスなどの未知のサービスと容易にインターフェースするように機能するデータの任意のソースから複数のデータタプルを生成するように機能するタプル生成論理を有するタプル生成モジュールを備える。特に、無線デバイス101は、タプルスペース104に位置付けられるクライアント識別コンポーネント322および探索サービスインターフェース324などの任意の常駐アプリケーションとのインタラクトを可能にするアプリケーションプログラミングインターフェース（API）320を介してなど、プロセッサ318と通信するメモリ316を有するコンピュータプラットフォーム314を含む。
【００５５】
さらに、ネットワークデバイスまたはサーバ308および／または記憶装置310および／またはデータソース312は、メモリに記憶され、プロセッサによって実行可能なインターフェース、探索およびレーティングモジュール（図示されない）に加えて、プロセッサおよびそのプロセッサと通信するメモリを含む。ここで、インターフェース、探索およびレーティングモジュールは、上に記述されたタプルスペース104、サービスタプル143、およびレーティングサービスタプル118を備える。無線ネットワーク304は、キャリアネットワーク326を介して有線ネットワーク306に結合される。ネットワークデバイスまたはサーバ308および／または記憶装置310および／またはデータソース312は、通信管理能力および／または携帯電気通信サービスを提供することを望まれる任意の他のネットワークコンポーネントと共に、通信ネットワーク300上に存在しうる。ネットワークデバイスまたはサーバ308および／または記憶装置310および／またはデータソース312は、インターネット、安全LAN（secure LAN）、WAN、または別のネットワークなどのデータリンクでありうるデータリンク328および330を通してキャリアネットワーク326と通信する。キャリアネットワーク326は、モバイル切り替えセンタ（MSC）332に送信されるメッセージ（一般的に、データパケットである）を制御する。さらに、キャリアネットワーク326は、インターネットなどのネットワーク330、および／またはPOTS（plain old telephone service）によってMSC 332と通信する。例えば、ネットワーク330において、ネットワークあるいはインターネット部はデータを転送し、POTS部は音声情報を転送する。MSC 332は、データネットワークおよび／またはデータ転送用のインターネット部および音声情報用のPOTS部などの別のネットワーク336によって複数の基地局（BTS）334に結合される。BTS 334 は、最後に、例えば、符号分割多元接続（CDMA）およびショートメッセージサービス（SMS）などの予め決められた音声および／またはデータパケットサービスをそれぞれ使用して、または任意の別の無線方法を使用して無線通信デバイス302にメッセージを無線で同報する。このように、通信ネットワーク300は、システム100（図1）と組み合わせて、タプルスペース内のデータオブジェクト間で発見された関係に基づいて、電子またはオンラインユーザー媒体接続の発見、作成、管理を考慮する。
【００５６】
図5は無線通信ネットワークのコンポーネント、および現システムの一態様のエレメントの相互関係をより十分に示す一般的な図であることに注意されたい。通信ネットワーク300は単なる具体例であり、それによって、リモートモジュール（無線通信デバイス302など）が、互いの間、および／または、無線ネットワークキャリアおよび／またはサーバを含むがそれに限定されない無線および／または有線ネットワークの別のコンポーネントの間で、無線で通信する任意のシステムを含むことができる。
【００５７】
図3において、例示的なモバイル通信デバイス400は、グラフィカルユーザーインターフェース（GUI）402を介してパーシステントメッセージングサービスを遠隔にアクセスおよび制御するためのクライアントデバイスとして機能し、それは、4つのカーソルキー406および選択ボタン408、および左、中央、右のメニューボタン410、412、414を備えるダイアルトーン多機能（DTMF）キーパッド404などの物理的な制御を含みうる。あるいは、または、加えて、GUI 402はタッチスクリーンでありうる。GUI 402は、描写されるように、ディスプレイ416を含みうる。代替的に、タッチスクリーン性能を備えるディスプレイは、また、ソフト入力制御（図示されない）を提供するために使用される。ディスプレイ416は、メッセージングタブ420、プレーヤタブ422、探索タブ424、およびリンクタブ426という、階層性のタブの下で編成される動的メッセージングインターフェース418を描写することができる。インターフェース418は、ユーザーによって異なるデバイス（図示されない）で作られた履歴会話スレッド428を含むことができる。これらのスレッドは、それぞれ、メニューオプション428、430、および432を介して、位置付け、選択、保存される。
【００５８】
GUI 402は、また、434に描写されるように、個人のインタレストを設定する機会を提供することができる。インタラクティブでありうる広告バナー436は、「インタレスト選択」制御434によって設定され、ユーザータプル116（図1）に組み込まれるインタレスト132に基づいて受信される。同様に、シャウトメッセージ138も、また、「選択インタレスト」制御434によって設定され、ユーザータプル116（図1）に組み込まれるインタレスト132に基づいて表示される。
【００５９】
前に記述された例示的なシステムを考慮して、開示される主題に従って実施される方法論は、いくつかのフロー図に関して記述されている。説明の簡潔さの目的のために、方法論が一連のブロックとして提示および記述されるが、請求項に記述される主題は、いくつかのブロックが本明細書において描写および記述されたものと異なる順序で、および／または別のブロックと同時に発生するため、ブロックの順序によって限定されないことは理解および認識されるべきである。さらに、全ての例示されたブロックが、本明細書に記述された方法論を実施するために要求されるわけではない。加えて、本明細書に開示された方法論が、そのような方法論をコンピュータに移送および転送することを容易にするために、製品（article of manufacture）に記憶されうることはさらに認識されるべきである。製品（article of manufacture）という用語は、本明細書で使用されるように、任意のコンピュータ読み取り可能デバイス、キャリア、または媒体からアクセス可能なコンピュータプログラムを包含することを意図する。
【００６０】
図4〜5において、例示的な方法論700が、インスタントメッセージングゲートウェイ710を介してタプルスペース714を提供するサーバ712にインタラクトするユーザー「A」702、ユーザー「B」704、ユーザー「C」706および第3者708について描写される。タプルスペース714によって提供されるパーシステントメッセージングサービス716は、個人、グループ、シャウト、および広告パーシステントメッセージングサービスを加入者ポピュレーション718に提供する。
【００６１】
最初に図4を参照すると、720に描写されるように、ユーザーA 710は、インスタントメッセージングゲートウェイ710に送信することによって、パーシステントメッセージングサービスにログインする。722に描写されるように、ゲートウェイ710は、状態サービスタプルに、ユーザータプルをタプルスペース714に追加させ、724に描写されるように、コンタクトサービスタプルに、ユーザーAに対する仲間を見つけさせる。マッチングユーザータプルは、726に描写されるようにタプルスペース714によってインスタントメッセージングゲートウェイ710に戻され、それは、次に、ユーザーAがオンラインであることを、728に描写されるようにユーザーB 704に、および、730に描写されるようにユーザーC 706に知らせる。732に描写されるように、ゲートウェイ710によって配置される履歴サービスタプルは、ユーザーA 702に対して最新のメッセージタプルを見つけ、それは、734に描写されるように、タプルスペース714によって戻される。
【００６２】
736に描写されるように、ゲートウェイ710は、最新のユーザー／グループ会話スレッドをユーザーA 702に戻す。会話を継続し、ユーザーA 702は、738に描写されるようにユーザーB 704に向けられたメッセージをゲートウェイ710に送信する。ゲートウェイ710は、740に描写されるように、メッセージサービスに、メッセージタプルをこのメッセージのタプルスペース714に追加させ、742に描写されるように、メッセージをユーザーB 704に中継する。
【００６３】
744に描写されるように、ユーザーAは、また、グループZに向けられたメッセージをゲートウェイ710に送信することによって、ユーザーB 704 およびユーザーC 706から成るグループZのグループ会話を継続することができる。ゲートウェイ710は、746に描写されるように、メッセージサービスに、メッセージタプルをこのグループメッセージのタプルスペース714に追加させ、748に描写されるようにユーザーB 704に、および、750に描写されるようにユーザーC 706にグループメッセージを中継する。
【００６４】
個人のメッセージおよびグループメッセージに加えて、パーシステントメッセージングサービスは、定義されるグループの一部よりはむしろインタレストを共有する人に対するシャウトメッセージをサポートすることができる。752に描写されるように、第3者708は、ゲートウェイ710にシャウトメッセージを送信し、それは、754に描写されるように、シャウトサービスタプルに、マッチングインタレストを有するユーザータプルを見つけさせる。
【００６５】
引き続き図5を参照すると、タプルスペース714は、756に描写されるように、マッチングユーザータプルをゲートウェイ710に戻す。ゲートウェイ710は、次に、それぞれ758および760で描写されるように、それらの識別されたユーザー（ユーザーA 702およびユーZ−アC 706）に、ユーザー会話をちりばめた標的（シャウト）メッセージを中継する。
【００６６】
個人、グループおよびシャウトパーシステントメッセージングに加えて、762に描写されるように、第3者708は、標的広告（「advert」）をゲートウェイ710に送信することができる。それに応答して、ゲートウェイ710は、764に描写されるように、シャウトサービスに、タプルスペース714内のマッチングインタレストを有するユーザータプルを見つけさせ、次に、766に描写されるように、マッチングユーザータプルを戻す。ゲートウェイ710は、それぞれ768および770で描写されるように、識別されたユーザー（ユーザーA 702およびユーザーB 704）に、標的メッセージ（advert）をちりばめる。
【００６７】
ユーザーAが、780に描写されるように、ログオフ表示をゲート710に送信すると、ゲートウェイ710は、782に描写されるように、状態サービスタプルに、タプルスペース714からユーザータプルを除去させる。ゲートウェイ710は、コンタクトサービスタプルに、784に描写されるように、タプルスペース714内のユーザーA 702に対する仲間を見つけさせる。次に、タプルスペース714は、786に描写されるように、マッチングユーザータプルをゲートウェイ710に戻す。ゲートウェイ710は、788および790でそれぞれ描写されるように、ユーザーA 702がオフラインであることを示すメッセージをユーザーB 704およびユーザーC 706に送信するために、これらの識別された仲間を使用する。
【００６８】
本明細書に開示された態様と関連して記述される様々な実例となる論理、論理ブロック、モジュール、回路は、汎用プロセッサ、デジタル信号プロセッサ（DSP）、特定用途向けIC（ASIC）、書替え可能ゲートアレイ（FPGA）または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、もしくは本明細書に記述された機能を実行するよう設計されたこれらの任意の組み合わせと一緒に実行または実施される。汎用プロセッサはマイクロプロセッサであるが、代替で、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでありうる。プロセッサは、また、例えば、DSPとマクロプロセッサ、複数のマイクロプロセッサ、DSPコアに結合した1つ以上のマイクロプロセッサ、またはその他の上記構成の組み合わせといった計算デバイスの組み合わせとしても実施される。加えて、少なくとも1つプロセッサは、上に記述されたステップおよび／または動作の1つ以上を実行するように機能する1つ以上のモジュールを備える。
【００６９】
さらに、本明細書に開示された態様に関して記述される方法またはアルゴリズムのステップおよび／または動作は、直接的にハードウェアに、プロセッサによって実行されるソフトウェアモジュールに、またはそれら2つの組み合わせに組み込まれうる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能ディスク、CD-ROM、または本技術分野において周知の記憶媒体の他の形態に存在しうる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替において、記憶媒体はプロセッサに一体化される。さらに、いくつかの態様において、プロセッサと記憶媒体はASICに存在しうる。加えて、ASICはユーザー端末に存在しうる。代替において、プロセッサと記憶媒体は、個別コンポーネントとして、ユーザー端末に存在しうる。さらに、いくつかの態様において、方法またはアルゴリズムのステップおよび／または動作は、1つまたは任意の組み合わせ、または機械読み取り可能媒体および／またはコンピュータ読み取り可能媒体上のコードおよび／または命令のセットとして存在し、それは、コンピュータプログラム製品に組み込まれる。
【００７０】
前述の開示が例示的な態様および／またはバージョンを議論するが、さまざまな変更および修正が、記述された態様および／または添付の請求項によって定義されるような態様の範囲から逸脱せずに本明細書において行われうることは注意されるべきである。さらに、記述された態様および／または態様のエレメントが単数系で記述または主張されるが、複数系は、単数系への限定が明示的に言及されない限り、企図される。さらに、任意の態様および／または態様の全部または一部は、そうでないと明言されない限り、任意の別の態様および／または態様の全部または一部で利用される。
【００７１】
全体または一部で、参照によって本明細書に組み込まれるとされる任意の特許、出版物、または任意の開示マテリアルは、組み込まれたマテリアルが、本開示に示される既存の定義、陳述、または別の開示物と矛盾しない範囲に限ってのみ、本明細書に組み込まれることは認識されるべきである。そのように、および必要な限りにおいて、本明細書に明示的に示されるように本開示は、参照により本明細書に組み込まれる任意の矛盾するマテリアルにとって変わる。参照によって本明細書に組み込まれるとされ、しかしながら、本明細書に示される既存の定義、陳述または別の開示マテリアルと矛盾する任意のマテリアル、またはそれらの部分は、その組み込まれたマテリアルと既存の開示マテリアルとの間に矛盾が生じない場合に限り組み込まれるであろう。
【図１】
0005575759.tif 000002
【図２】
0005575759.tif 000003
【図３】
0005575759.tif 000004
【図４】
0005575759.tif 000005
【図５】
0005575759.tif 000006