(57)【特許請求の範囲】
【請求項１】
マシンにより実行されたときに、マシンにメッセージ通知方法を遂行させるインストラクションを有するマシン読み取り可能な不揮発性の記録媒体であって、前記メッセージ通知方法は、
クライアント装置内のクライアントアプリケーションを識別するサブトピック識別子を発生し、そのクライアントアプリケーションは、１つ以上のアプリケーションサーバーでホストされるサーバーアプリケーションに関連したものであり、クライアントアプリケーションのサブトピック識別子は、１以上のアプリケーションサーバーに関連したトピックのサブトピックに関して、特定のクライアントアプリケーションをターゲットとすることなしにネーミング階層の少なくとも一部を表し、
クライアントアプリケーションに対しアプリケーションサーバーに通知サービスを登録し、クライアントアプリケーションに関連した識別子をサーバーアプリケーションへ転送して、サーバーアプリケーションが通知メッセージをクライアントアプリケーションに対してクライアント装置へプッシュできるようにし、複数のクライアントアプリケーションがクライアント装置でホストされ、そして複数のクライアントアプリケーションが通知サービスに登録され、
アプリケーションサーバーから通知メッセージを受信するのに応答して、通知メッセージがクライアントアプリケーションのサブトピック識別子を搬送するかどうか決定し、
通知メッセージがクライアントアプリケーションの識別子を搬送する場合には、通知メッセージをクライアント装置における複数のクライアントアプリケーションの別の１つへ転送せずに、通知メッセージをクライアントアプリケーションへ転送する、
ための処理を含む、記録媒体。
【請求項２】
クライアント装置では複数のクライアントアプリケーションがホストされ、そして前記サブトピック識別子は、それら複数のクライアントアプリケーションの中でクライアントアプリケーションを独特に識別する、請求項１に記載の媒体。
【請求項３】
前記識別子は、サブトピック識別子を含む、請求項１に記載の記録媒体。
【請求項４】
前記識別子は、クライアント装置を独特に識別する装置トークンを含む、請求項３に記載の記録媒体。
【請求項５】
前記アプリケーションサーバーは、トピック識別子により独特に識別され、そして前記登録は、更に、アプリケーションサーバーからの通知を聴取するためにトピック識別子に対してクライアントアプリケーションを登録することを含み、２つ以上のクライアントアプリケーションがトピック識別子に対して登録される、請求項２に記載の記録媒体。
【請求項６】
前記２つ以上のクライアントアプリケーションの各々は、アプリケーションサーバーでホストされる個別のサーバーアプリケーションに対応する、請求項５に記載の記録媒体。
【請求項７】
前記メッセージ通知方法は、更に、
アプリケーションサーバーとのネットワーク接続を開始し、及び
そのネットワーク接続を経てアプリケーションサーバーへ識別子を送信する、
ことを含む、請求項５に記載の記録媒体。
【請求項８】
前記メッセージ通知方法は、更に、前記ネットワーク接続からトピック識別子を受信することを含み、前記ネットワーク接続は、クライアントアプリケーションが通知を待機する間は切断される、請求項７に記載の記録媒体。
【請求項９】
前記決定は、
前記通知メッセージからトピック識別子を抽出し、及び
前記通知メッセージがサブトピック識別子を搬送しない場合には、トピックストリングに対して登録された各クライアントアプリケーションへ通知メッセージを転送する、
ことを含む、請求項５に記載の記録媒体。
【請求項１０】
前記転送は、クライアントアプリケーションが現在アクティブでない場合にクライアントアプリケーションを呼び出すことを含む、請求項１に記載の記録媒体。
【請求項１１】
他のアプリケーションの少なくとも１つは、現在アクティブではなく、そして通知メッセージは、その少なくとも１つの他のアプリケーションを呼び出すことなく転送される、請求項１０に記載の記録媒体。
【請求項１２】
マシンにより実行されたときに、マシンにメッセージ通知付与方法を遂行させるインストラクションを有するマシン読み取り可能な不揮発性の記録媒体であって、前記メッセージ通知付与方法は、
アプリケーションサーバーでホストされるサーバーアプリケーションにおいて、メッセージ通知に対してクライアント装置のクライアントアプリケーションから登録要求を受信し、その要求は、クライアント装置を識別する装置トークンを含む識別子、及びクライアントアプリケーションを識別するクライアントアプリケーション識別子を有し、
クライアント装置に対するサーバー識別子を送信して、クライアント装置がアプリケーションサーバーからプッシュされたメッセージを聴取できるようにし、
受信した識別子を記憶して、メッセージ通知に対してクライアント装置を登録し、及び  通知メッセージをクライアント装置へ送信して、サーバー識別子で識別された通知メッセージ及びクライアントアプリケーション識別子を埋め込んだ通知メッセージをクライアントアプリケーションに通知する、
ことを含み、複数のクライアントアプリケーションがクライアント装置でホストされ、メッセージ通知を受け取るために複数のクライアントアプリケーションが登録され、そして通知メッセージをクライアント装置における複数のクライアントアプリケーションの別の１つへ転送せずに通知メッセージをクライアント装置へ送信してクライアントアプリケーションに通知するようにした、記録媒体。
【請求項１３】
前記登録要求は、クライアント装置で開始されたネットワーク接続を経て受信され、そして前記サーバー識別子は、そのネットワーク接続を経て送信される、請求項１２に記載の記録媒体。
【請求項１４】
クライアントアプリケーション識別子を含む不透明データに関連してクライアントトークンが記憶される、その不透明データは、サーバーアプリケーションからクライアントアプリケーションへ通されたデータである、請求項１２に記載の記録媒体。
【請求項１５】
前記通知メッセージは、クライアント装置を識別するための装置トークンを含み、前記不透明データは、通知メッセージのペイロードにおいて搬送される、請求項１４に記載の記録媒体。
【請求項１６】
前記送信は、
プッシュサービスにおいてプッシュサーバーとのネットワーク接続を確立し、及び
そのネットワーク接続を経て通知メッセージをプッシュサーバーへ送信する、
ことを含み、通知メッセージは、サーバー識別子と共にパッケージされる、請求項１２に記載の記録媒体。
【請求項１７】
前記サーバー識別子は、プッシュサービスの当局からの証明書において受信され、前記サーバー識別子は、プッシュサービスを共有するアプリケーションサーバーを独特に識別する、請求項１６に記載の記録媒体。
【請求項１８】
メッセージ通知のためのマシン実施方法であって、
クライアント装置内のクライアントアプリケーションを識別するサブトピック識別子を発生し、そのクライアントアプリケーションは、１つ以上のアプリケーションサーバーでホストされるサーバーアプリケーションに関連したものであり、クライアントアプリケーションのサブトピック識別子は、１以上のアプリケーションサーバーに関連したトピックのサブトピックに関して、特定のクライアントアプリケーションをターゲットとすることなしにネーミング階層の少なくとも一部を表し、
クライアントアプリケーションに対しアプリケーションサーバーに通知サービスを登録し、クライアントアプリケーションに関連した識別子をサーバーアプリケーションへ転送して、サーバーアプリケーションが通知メッセージをクライアントアプリケーションに対してクライアント装置へプッシュできるようにし、複数のクライアントアプリケーションがクライアント装置でホストされ、そして複数のクライアントアプリケーションが通知サービスに登録され、
アプリケーションサーバーから通知メッセージを受信するのに応答して、通知メッセージがクライアントアプリケーションのサブトピック識別子を搬送するかどうか決定し、
通知メッセージがクライアントアプリケーションの識別子を搬送する場合には、通知メッセージをクライアント装置における複数のクライアントアプリケーションの別の１つへ転送せずに、通知メッセージをクライアントアプリケーションへ転送する、
ことを含む、方法。
【請求項１９】
メッセージ通知を与えるためのマシン実施方法であって、
アプリケーションサーバーでホストされるサーバーアプリケーションにおいて、メッセージ通知に対してクライアント装置のクライアントアプリケーションから登録要求を受信し、その要求は、クライアント装置を識別する装置トークンを含む識別子、及びクライアントアプリケーションを識別するクライアントアプリケーション識別子を有し、
クライアント装置に対するサーバー識別子を送信して、クライアント装置がアプリケーションサーバーからプッシュされたメッセージを聴取できるようにし、
受信した識別子を記憶して、メッセージ通知に対してクライアント装置を登録し、及び  通知メッセージをクライアント装置へ送信して、サーバー識別子で識別された通知メッセージ及びクライアントアプリケーション識別子を埋め込んだ通知メッセージをクライアントアプリケーションに通知する、
ことを含み、複数のクライアントアプリケーションがクライアント装置でホストされ、メッセージ通知を受け取るために複数のクライアントアプリケーションが登録され、そして通知メッセージをクライアント装置における複数のクライアントアプリケーションの別の１つへ転送せずに通知メッセージをクライアント装置へ送信してクライアントアプリケーションに通知するようにした、方法。
【請求項２０】
サーバーアプリケーションを含む実行可能なインストラクションを記憶するメモリと、  プッシュネットワークに結合されたネットワークインターフェイスと、
前記ネットワークインターフェイス及びメモリに結合されて、メッセージサービスのために前記メモリからの実行可能なインストラクションを実行するためのプロセッサと、
を備えた装置であって、
前記プロセッサは、
クライアント装置からの開始に応答して、前記ネットワークインターフェイスを経てクライアント装置との第１のネットワーク接続を確立し、
前記サーバーアプリケーションにおいて、クライアント装置のクライアントアプリケーションから前記第１のネットワーク接続を経て登録要求を受信し、その要求は、クライアント装置を識別する装置トークンを含む識別子、及びクライアントアプリケーションを識別するクライアントアプリケーション識別子を有するものであり、
クライアント装置に対するサーバー識別子を送信して、クライアント装置がアプリケーションサーバーからプッシュされたメッセージを聴取できるようにし、
受信した識別子を記憶して、メッセージ通知に対してクライアント装置を登録し、
プッシュネットワークへの第２のネットワーク接続にわたり前記ネットワークインターフェイスを経てクライアント装置へ通知メッセージを送信し、この通知メッセージは、サーバー識別子で識別された通知メッセージ及びクライアントアプリケーション識別子を埋め込んだ通知メッセージをクライアントアプリケーションに通知するためにクライアントトークンを有するものであるように構成され、
複数のクライアントアプリケーションがクライアント装置でホストされ、メッセージ通知を受け取るために複数のクライアントアプリケーションが登録され、そして通知メッセージをクライアント装置における複数のクライアントアプリケーションの別の１つへ転送せずに通知メッセージをクライアント装置へ送信してクライアントアプリケーションに通知するようにした、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、データ処理システムに関する。より特定すれば、本発明は、移動装置のための通知メッセージに関する。
【０００２】
関連出願の相互参照：本願は、２００９年２月２５日に出願された米国特許出願第１２／３９２，６７９号の一部継続出願で、２０１０年８月２日に出願された“Managing Notification Messages”と題する米国仮特許出願第６１／３７０，０７５号の利益を主張するものであり、これは、引用としてここにそのまま援用される。
【背景技術】
【０００３】
移動装置（例えば、ラップトップ、パルムトップ、移動電話、スマートホン、マルチメディアホン、ポータブルメディアプレーヤ、ＧＰＳユニット、移動ゲームシステム、等）のユーザは、通知サービスから通知メッセージを周期的に受信するアプリケーションをインストールしている。例えば、そのようなアプリケーションは、「プッシュ」ｅ−メールサービス（例えば、ＭｏｂｉｌｅＭｅ、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ  ＡｃｔｉｖｅＳｙｎｃ、ｐｕｓｈ−ＩＭＡＰ、Ｙａｈｏｏ！Ｐｕｓｈ、等）や、他のプッシュサービス（例えば、アップデート／アップグレードサービス、ニュースサービス、ウェブログサービス、ポッドキャストサービス、ソーシャルネットワーキングサービス、又は通知メッセージが送信される他の形式のサービス）を含む。通知メッセージは、典型的に、アプリケーションにより典型的に定義された当該事象を表わす（例えば、新規なｅ−メールインジケータ、新規なニュースアイテムインジケータ、新規なポッドキャストインジケータ、ソーシャルネットワーキングフレンドのオンライン状態の変化、等）。
【０００４】
通常、通知メッセージは、それに対応する発信側サーバー及び受信側クライアント装置を識別することにより、プッシュサービスを通してルーティングされる。通知メッセージを受信すると、クライアント装置は、そのメッセージをターゲットクライアントアプリケーションへ配送する。多くの場合、クライアント装置の多数のクライアントアプリケーションは、同じ発信側サーバーからの通知メッセージを同時に待機する。各々の待機クライアントアプリケーションは、通知メッセージが到着したときに呼び出される。クライアント装置の増加し続けるクライアントアプリケーションをサポートするために益々多くのサーバーアプリケーションが発信側サーバーにおいてホスティングされるので、メッセージ通知を管理するためにクライアント装置の貴重な処理リソースが浪費される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、移動装置のためのメッセージ通知を供給する既存のメカニズムは、リソースに負担を掛け及び／又は他の問題を課する。
【課題を解決するための手段】
【０００６】
本発明は、個々のクライアントアプリケーションをアドレスして、クライアント装置に通知メッセージを効率的に配送し、リソースの使用を最小限にすることのできる多レベルのネーミングハイアラーキーを提供する。サーバー識別子又はトピックにより識別される共通サーバーにおいてホストされる多数のサーバーアプリケーションは、同じトピックを共有する通知メッセージをクライアント装置へプッシュすることができる。クライアント装置においてトピックに対して受信される通知メッセージには、そのトピックと契約するターゲットクライアントアプリケーションを識別するためにサブトピックを埋め込むことができる。
【０００７】
１つの実施形態では、クライアントアプリケーションは、クライアントアプリケーション識別子を、トピックによって識別されたサーバーで実行される対応するサーバーアプリケーションにおいてサブトピックとして任意に登録することができる。このサブトピックは、クライアントアプリケーションのためのネーミングハイアラーキーの付加的なレベルである。その結果、サーバーにおいてホストされるサーバーアプリケーションからプッシュされる通知メッセージは、共有トピックに契約する他のクライアントアプリケーションを呼び出したり又はそれに通知したりせずに通知メッセージをクライアントアプリケーションに直接ルーティングできるようにクライアントアプリケーション識別子を搬送する。トピックの１つのサーバーによってホストされる個別のサーバーアプリケーションからの多数の通知メッセージは、クライアント装置において同じトピックを聴取する個別の行先クライアントアプリケーションへ有効に且つ効率的にマルチプレクスされ、受信した通知メッセージを取り扱うために必要なクライアント装置のリソース使用を最小限にすることができる。
【０００８】
１つの実施形態では、クライアント装置内のクライアントアプリケーションを識別するサブトピック識別子を発生する方法及び装置がここに記述される。クライアントアプリケーションは、１つ以上のアプリケーションサーバーにおいてホストされるサーバーアプリケーションに関連している。クライアントアプリケーションは、通知サービスをアプリケーションサーバーに登録し、クライアントアプリケーションに関連した識別子を転送すると共に、サーバーアプリケーションが通知メッセージをクライアントアプリケーションに対して選択的にクライアント装置へプッシュできるようにする。アプリケーションサーバーから通知メッセージを受信するときに、通知メッセージは、その通知メッセージがクライアントアプリケーションのサブトピック識別子を搬送する場合にはクライアント装置において他のアプリケーションを呼び出すことなくクライアントアプリケーションへ直接転送されるべく調査又は検査される。
【０００９】
別の実施形態では、メッセージ通知の登録要求は、クライアント装置で実行されるクライアントアプリケーションから第１ネットワーク接続を経てサーバーアプリケーションにより受信される。第１ネットワーク接続は、開始時にサーバーアプリケーションをホストするためにサーバー識別子と共にクライアント装置からアプリケーションサーバーへ確立される。要求は、クライアント装置を識別する装置トークンと、クライアントアプリケーションを識別するクライアントアプリケーション識別子とを含む識別子を搬送する。サーバー識別子は、クライアント装置がアプリケーションサーバーからプッシュされたメッセージを聴取できるようにクライアント装置へ送られる。１つの実施形態では、要求において搬送される識別子は、メッセージ通知に対してクライアント装置を登録するために記憶される。アプリケーションサーバーは、クライアントアプリケーションに通知するために装置トークンを経てクライアント装置に結合されたプッシュネットワークへの第２ネットワーク接続にわたってクライアント装置へ通知メッセージを送信又はプッシュする。通知メッセージは、サーバー識別子により識別される。任意であるが、通知メッセージは、クライアントアプリケーション識別子を搬送し、クライアント装置が通知メッセージをクライアントアプリケーションに直接配送できるようにする。
【００１０】
本発明の他の特徴は、添付図面及び以下の詳細な説明から明らかとなるであろう。
【００１１】
本発明は、同様の要素が同じ参照番号で指示された添付図面に一例として示すが、これに限定されるものではない。
【図面の簡単な説明】
【００１２】
【図１】メッセージ通知のためのネットワークシステムの一実施形態を示すブロック図である。
【図２】ここに述べる実施形態により通知メッセージを管理するための移動装置における規範的コンポーネントを示すブロック図である。
【図３】通知メッセージを与えるためのアプリケーションサーバーの規範的コンポーネントを示すブロック図である。
【図４】ここに述べる実施形態により移動装置とアプリケーションサーバーとの間の規範的メッセージ交換を示すシーケンス図である。
【図５】移動装置が通知メッセージを識別されたクライアントアプリケーションへルーティングできるようにするプロセスの一実施形態を示すフローチャートである。
【図６】アプリケーションサーバーからアプリケーションクライアントへ通知メッセージを与えるプロセスの一実施形態を示すフローチャートである。
【図７】ここに述べる実施形態に使用されるデータ処理システムの一例を示す。
【図８】ここに述べる実施形態に関連して使用される典型的なコンピュータシステムの一例を示す。
【発明を実施するための形態】
【００１３】
共通のアプリケーションサーバーを聴取し又はそれと契約する多数のクライアントアプリケーションの中でターゲットクライアントアプリケーションを識別する通知メッセージのための方法及び装置についてここに記述する。以下の記述において、本発明の実施形態をより完全に説明するため多数の細部について述べる。しかしながら、当業者であれば、それらの特定の細部がなくても本発明の実施形態を具現化できることが明らかであろう。他の点については、本発明の実施形態を不明瞭にしないために、良く知られた構造や装置は、詳細に示すのではなく、ブロック図の形態で示す。
【００１４】
本明細書において「１つの実施形態」又は「一実施形態」を言及するときは、その実施形態に関して述べる特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に包含されることを意味する。明細書の種々の場所で「１つの実施形態」という句が出てきたときには、必ずしも、全てが同じ実施形態を指していない。
【００１５】
特に指示のない限り、この説明全体を通して、「処理」又は「コンピューティング」又は「計算」又は「決定」又は「表示」、等の用語を使用する説明は、コンピュータシステムのレジスタ及びメモリ内で物理的（電子的）量として表されたデータを操作し、そしてコンピュータシステムのメモリ又はレジスタ或いは他のそのような情報記憶、伝達又は表示装置内で物理的量として同様に表される他のデータへと変換するデータ処理システム、又は同様の電子的コンピューティング装置のアクション及び処理を指すものであることが明らかであろう。
【００１６】
ここに示すアルゴリズム及び表示は、特定のコンピュータ又は他の装置に固有に関連したものではない。種々の汎用システムが、ここでの教示に従うプログラムと共に使用されてもよいし、又は要求されるマシン実施方法オペレーションを遂行するためにより特殊な装置を構成するのが便利であることも分かっている。種々のこれらシステムに要求される構造は、以下の説明から明らかとなろう。加えて、本発明の実施形態は、特定のプログラミング言語を参照して説明するのではない。ここに述べる本発明の実施形態の教示を具現化するのに種々のプログラミング言語を使用できることが明らかであろう。
【００１７】
本発明の一実施形態は、方法として具現化されるか、或いはデータ処理システムにより実行されたときに、そのシステムが方法を遂行するようにさせる実行可能なインストラクションを記憶するマシン読み取り可能な非一時的記憶媒体として具現化される。又、データ処理システムのような装置も、本発明の一実施形態である。本発明の他の特徴は、添付図面及び以下の詳細な説明から明らかとなろう。
【００１８】
本発明の少なくとも幾つかの実施形態は、メディアを提示するメディア処理システム、メディアを記憶する記憶装置を含み、更に、アンテナシステムやメディア処理システムに結合された高周波（ＲＦ）トランシーバ（例えば、セルラー電話のためのＲＦトランシーバ）も含むポータブル音楽及び／又はビデオメディアプレーヤのようなデジタルメディアプレーヤの一部分である。ある実施形態では、リモート記憶装置に記憶されたメディアは、ＲＦトランシーバを通してメディアプレーヤへ送信される。メディアは、例えば、音楽又は他の音声、静止画、又は動画の１つ以上である。
【００１９】
ポータブルメディアプレーヤは、タッチスクリーン入力装置、プッシュボタン装置、移動ポインティング入力装置、又は他の入力装置のようなメディア選択装置を含む。メディア選択装置は、記憶装置及び／又はリモート記憶装置に記憶されたメディアを選択するのに使用される。ポータブルメディアプレーヤは、少なくとも幾つかの実施形態では、入力装置を通して選択されて、スピーカ又はイヤホンを経て、或いはディスプレイ装置に、或いはディスプレイ装置及びスピーカ又はイヤホンの両方に提示されるメディアのタイトル又は他のインジケータを表示するためにメディア処理装置に結合されたディスプレイ装置を含む。
【００２０】
ここに述べる本発明の実施形態は、他の形式のデータ処理システム、例えば、エンターテイメントシステム、又はパーソナルデジタルアシスタント（ＰＤＡ）、又は汎用コンピュータシステム、又は特殊目的コンピュータシステム、又は別の装置内に埋め込まれた装置、又はメディアプレーヤを含まないセルラー電話、又はそれら装置の態様又は機能を結合した装置（例えば、ｉＰｏｄ（登録商標）のようなメディアプレーヤを１つのポータブル装置においてＰＤＡ、エンターテイメントシステム及びセルラー電話と結合したもの）、或いはマルチタッチハンドヘルド装置のようなマルチタッチ入力装置又はマルチタッチ入力装置を伴うセルラー電話及びハンドヘルドコンピュータを含む装置又は消費者向け電子製品の一部分である。
【００２１】
１つの実施形態において、サーバーアプリケーションをホストするサーバー、例えば、メールサーバー、ＩＭＡＰ（インターネットアクセスメッセージプロトコル）サーバー、カレンダーサーバー、コンタクトサーバー、装置管理サーバー、又は他の該当するサーバーアプリケーション、等は、クライアント装置に通知を通信するためにサービス当局（例えば、アップル・インク）からプッシュプロバイダー証明書を要求することによりプッシュ能力を維持することができる。クライアント装置で実行されるクライアントアプリケーションは、対応するサーバーアプリケーションをホストするアプリケーションサーバーの能力を、クライアントサーバーからアプリケーションサーバーへ確立された接続を経て、問合せすることができる。アプリケーションサーバーがプッシュサービスアウェアであるか又はプッシュサービスを提供できることを、問合せ結果が示す場合には、クライアントアプリケーションは、それ自身をサーバーアプリケーションに識別するためにプッシュサービスコマンドを送信することができる。
【００２２】
特に、クライアント装置で実行されるクライアントアプリケーションは、プッシュサービスコマンドを経て、クライアント装置の装置トークンをサーバーアプリケーションへ提示し、サーバーアプリケーションをホストするサーバーがメッセージ又は通知をクライアント装置へプッシュできるようにする。プッシュサービスコマンドに応答して、サーバーアプリケーションは、サーバーからプッシュされたメッセージを受信するためにクライアント装置が聴くか又は見るサーバー用の通知トピック又は識別子を示すことができる。
【００２３】
ある実施形態では、クライアントアプリケーションからサーバーアプリケーションへのプッシュサービスコマンドは、対応するアプリケーションのためのプッシュプロトコルのバージョン番号、アカウント識別子、（例えば、サーバーアプリケーションを実行している）サーバーが、クライアントアプリケーションをホストするクライアント装置、及び／又はクライアントアプリケーションを識別するサブトピック識別子とコンタクトできるようにする装置トークン、等の、名前付き値のペアを含む。アカウント識別子及び／又はサブトピック識別子は、プッシュサービス（又はプッシュサーバー）へパスされるべきサーバーにとって不透明のままである。クライアントアプリケーションについてのクライアント装置への通知メッセージは、アカウント識別子及びサブトピック識別子に沿って搬送される。
【００２４】
１つの実施形態において、サーバーアプリケーションからクライアントアプリケーションへのプッシュサービスコマンドに対する応答は、プッシュプロトコルのバージョン番号と、サーバーアプリケーションをホストするサーバーに関連したトピック識別子とを含む名前付き値を含むことができる。トピック識別子は、クライアントアプリケーションを実行するクライアント装置へサーバーが通知メッセージをプッシュできるようにサーバーのプロバイダー証明書を登録するのに使用できる。幾つかの実施形態において、クライアント装置及びサーバーは、例えば、サーバーアプリケーションからクライアントアプリケーションへのメッセージ通知のためのプッシュプロトコルのバージョン（例えば、サーバー及びクライアントの両アプリケーションのためにサポートされる最高バージョンを識別する）をネゴシエートするために、プッシュサービスコマンド／応答を経てハンドシェーク交換を遂行する。
【００２５】
１つの実施形態によれば、クライアントアプリケーションのサブトピックは、アプリケーションサーバーに関連したトピックの最上部に１つ以上の付加的なインダイレクションレベルを与える。例えば、サブトピックは、クライアントアプリケーションをターゲットとする通知メッセージをダイレクトする。クライアントアプリケーションは、トピック及びサブトピックの対について登録する。或いは又、クライアントアプリケーション及びアプリケーションサーバーは、サブトピックベースのメカニズムを経て密接に結合されない。複数の（クライアント）アプリケーションがトピックにおける共通サブトピックについて登録することができる。
【００２６】
サブトピックは、クライアントアプリケーションから登録のためにサーバーアプリケーションへ転送される。幾つかの実施形態において、名前ハイアラーキーのサブトピック又は他のレベルは、クライアントアプリケーションによりサブトピックを転送する必要なくサーバーアプリケーションのためにクライアントアプリケーションについて登録される。
【００２７】
説明上、１つの実施形態によれば、コンタクトアプリケーション、カレンダーアプリケーション、及びワードアプリケーションは、アプリケーションのオフィス組に属する。コンタクトアプリケーションは、一般的なトピック「オフィス(office)」のもとでサブトピック「コンタクト(contacts)」を登録する。カレンダーアプリケーションは、良好な、より最新の使用経験を与え、例えば、誕生日を追加するため、コンタクトアプリケーションの場合と厳密に同じサブトピック（即ち「コンタクト」）及びトピック対（即ち、「コンタクト」及び「オフィス」）について登録を選択する。しかしながら、ワードアプリケーションは、サブトピック「コンタクト」について登録せずに一般的トピック「オフィス」のもとで登録する。従って、サブトピックとの登録は、必ずしも、特定のアプリケーションについて１対１のマッピングを実施しない（又は特定のアプリケーションをターゲットとしない）。サーバーは、サブトピック情報を知る必要がなく又はそれをクライアントと共有する必要もない。例えば、サーバーは、コンタクトデータの変化を、特定のサブトピック、例えば、「コンタクト」に関連付け、そしてプッシュプロトコルのサブトピックを固有のメカニズムとして使用する。
【００２８】
図１は、メッセージ通知のためのネットワークシステムの１つの実施形態を示すブロック図である。ネットワークシステム１００は、アプリケーションサーバー１０１、通知サーバー１０５、例えば、ＡＰＮ（アップルプッシュネットワーク）サーバーのような１つ以上のサーバー（又はホスト）を備え、これらのサーバーは、ネットワーク１０７を経て移動装置１０９（例えば、ｉＰｈｏｎｅ装置）のような１つ以上の装置に結合される。１つの実施形態において、ネットワーク１０７は、オープンインターネット、イントラネット、ファイアウオール保護のセキュアなネットワーク、ワイドエリアセルラーネットワーク（例えば、３Ｇネットワーク）、等を経て、通知サーバー１０５、移動装置１０９及び／又はアプリケーションサーバー１０１の間を（例えば、プッシュ通知の送信のために）ネットワーク接続できるようにする。ネットワーク１０７は、ワイヤード、又はワイヤレス（Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、等）、又はその両方の組み合わせである。
【００２９】
１つの実施形態によれば、アプリケーションサーバー１０１は、１つの単一のサーバー装置を含んでもよいし、或いは一群のローカル又はリモート分散されたサーバー装置を含んでもよい。アプリケーションサーバー１０１は、サーバーアプリケーション１１７のような１つ以上の個別のサーバーアプリケーションをホストし、これらサーバーアプリケーションは、移動装置１０９のようなクライアント装置で実行される対応するクライアントアプリケーションにサービスする。サーバーアプリケーションは、メールサーバー、カレンダーサーバー、コンタクトサーバー、装置管理サーバー、又は他の該当するサーバーアプリケーションを含む。１つの実施形態において、アプリケーションサーバー１０１は、通知メッセージを移動装置１０９へプッシュ又は送信するために通知サーバー１０５からの証明書を登録する。登録は、アプリケーションサーバー１０１を識別する識別子（例えば、登録証明書に含まれる）としてトピック１０３を指定する。移動装置１０９は、アプリケーションサーバー１０１から発生するメッセージのトピック１０３を、通知サーバー１０５により提供されるプッシュサービス、例えば、アップル・インクからのアップルプッシュネットワークサービスを経て、聴取する。
【００３０】
１つの実施形態において、移動装置１０９は、アプリケーション１１１を含む複数のクライアントアプリケーションをホストすることができる。クライアントアプリケーションは、移動メールアプリケーション、カレンダーアプリケーション、コンタクトアプリケーション、装置管理アプリケーション、又は対応するサーバーアプリケーションによりサービスされる他の該当するクライアントアプリケーションである。移動装置１０９は、装置トークン１１５を得るため、例えば、通知サーバー１０５を経てプッシュサービスで登録され、移動装置１０９がアプリケーションサーバー１０１のようなサーバーからプッシュされたメッセージを、プッシュサービスを経て受信できるようにする。装置トークン１１５は、プッシュサービスを経て通知メッセージをルーティングするために移動装置１０９を識別し及び／又は承認する。更に、サブトピック１１３は、移動装置１０９の異なるクライアントアプリケーションの間でアプリケーション１１１を独特に識別するためにその装置において発生される。
【００３１】
１つの実施形態において、アプリケーション１１１は、装置トークン１１５及びサブトピック１１３をアプリケーションサーバー１０１の対応サーバーアプリケーション１１７へ転送して、移動装置１０９に通知メッセージをプッシュする。次いで、アプリケーションサーバー１０１は、アプリケーションサーバー１０１からプッシュされた通知メッセージを受信するために移動装置１０９が聴取するトピック１０３で応答する。通知メッセージは、サブトピック１１３を埋め込み、移動装置１０９が、その装置の他のクライアントアプリケーションを呼び出すことなく、サブトピック１１３で識別されたアプリケーション１１１へメッセージを直接配送できるようにする。
【００３２】
図２は、ここに述べる実施形態により通知メッセージを管理するための移動装置の規範的コンポーネントを示すブロック図である。例えば、移動装置１０９は、図１のネットワークシステム１００を経てプッシュサービスについて登録する。１つの実施形態において、通知管理モジュール２０１は、移動装置１０９内のプッシュサービスのためのフレームワークを与える。通知管理モジュール２０１は、サービス（例えば、プッシュサービス）接続プロセス中に装置トークン１１５を受け取って、移動装置１０９を、プッシュサービスを経てプッシュされた通知メッセージを受け取る上で承認されたもの又は信頼性があるものとして識別する。１つの実施形態において、通知管理モジュール２０１は、プッシュサービスからプッシュされたメッセージが、装置トークン１１５に一致するか又はそれを含むかに基づき、移動装置１０９を行先とするかどうか決定する。
【００３３】
１つの実施形態によれば、通知管理モジュール２０１は、例えば、アプリケーション１１１からの要求に応答して、サブトピック１１３を、移動装置１０９内のアプリケーション１１１を識別するクライアントアプリケーション識別子として発生する。アプリケーション１１１は、図１のサーバーアプリケーション１１７のような対応するサーバーアプリケーションからのメッセージ通知の受信について登録するためにサブトピック１１３及び装置トークン１１５を転送する。１つの実施形態において、アプリケーション１１１は、通知管理モジュール２０１を経て、図１のトピック１０３のようなトピックに契約し又はそれを聴取する。移動装置１０９の２つ以上のアプリケーションが共通のトピックを登録し又はそれに契約する。通知管理モジュール２０１は、どのトピックがどのアプリケーションにより現在契約されているか指示する契約プロフィール２０３内のトピック契約データである。
【００３４】
プッシュサービスを経てプッシュされた通知メッセージを受信すると、通知管理モジュール２０１は、到達する通知メッセージからトークンを抽出して、例えば、そのトークンと装置トークン１１５との間の一致に基づいて、通知メッセージが移動装置１０９を行先とするかどうか決定する。通知管理モジュール２０１は、受信した通知メッセージからトピックを識別し、契約プロフィール２０３に基づいてその受信した通知メッセージをどのクライアントアプリケーションに通知すべきか識別する。任意であるが、通知管理モジュール２０１は、その受信した通知メッセージに含まれたトピックに契約している他のアプリケーションを呼び出したり又はそれに通知したりせずに、サブトピック１１３で識別されたアプリケーション１１１のような、サブトピックストリングで識別されたクライアントアプリケーションへその受信した通知メッセージを直接配送するために、その受信した通知メッセージがサブトピック（例えば、ストリング）を搬送するかどうか決定する。
【００３５】
図３は、通知メッセージを与えるためのアプリケーションサーバーの規範的なコンポーネントを示すブロック図である。例えば、アプリケーションサーバー１０１は、図１のネットワークシステム１００にわたり通知サーバー１０５を経てクライアント装置へ通知メッセージをプッシュする。１つの実施形態において、通知管理モジュール３０１は、プッシュサービスの当局から受け取られる証明書の一部分として、アプリケーションサーバー１０１を識別するためのトピック１０３を受信する。サーバーアプリケーション１１７は、例えば、通知モジュール３０１から検索されたトピック１０３を図１の移動クライアント１０９のようなクライアント装置へ通し、そのクライアント装置がアプリケーションサーバー１０１からプッシュされたメッセージを聴取できるようにする。
【００３６】
１つの実施形態において、通知サービスレジストリ３０３は、アプリケーションサーバー１０１においてホストされるサーバーアプリケーション１１７又は他のサーバーアプリケーションからのメッセージ通知に対して登録されたクライアント装置から受け取られる装置トークン及び関連データを記憶する。通知サービスレジストリ３０３は、アプリケーションサーバー１０１にローカル又はリモート結合されるメモリ又は大量記憶装置をベースとしている。１つの実施形態において、通知サービスレジストリ３０３の装置トークンは、メッセージ通知について登録するためクライアントアプリケーションから転送されるサブトピックのようなデータに関連している。関連データは、アプリケーションサーバー１０１及び／又は通知サーバー１０５に対して不透明なままである。例えば、関連データを記憶し、検索し、除去し及び／又は転送することを除いて、それらデータに対してアプリケーションサーバー１０１には処理リソースが割り当てられない。装置トークンによって識別されたクライアント装置に通知メッセージをプッシュするときには、サーバーアプリケーション１１７は、装置トークンを、その関連データ及びトピック１０３と一緒に、例えば、通知モジュール３０１を経て通知サーバー１０５へ転送する。
【００３７】
図４は、ここに述べる実施形態による移動装置とアプリケーションサーバーとの間の規範的なメッセージ交換を示すシーケンス図である。１つの実施形態において、移動装置１０９、アプリケーションサーバー１０１及び通知サーバー１０５は、図１のネットワーク１０７を経て互いに結合される。移動装置１０９は、メッセージ通知アプリケーションサーバー１０１について登録する前に、例えば、インスタンス４０１の前に、プッシュサービスから、例えば、通知サーバー１０５を経て、図１の装置トークン１１５のような装置トークンを受け取る。アプリケーションサーバー１０１は、プッシュサービスのセキュアな当局から証明書を受け取り、アプリケーションサーバー１０１が通知サーバー１０５のようなプッシュサーバーへの接続を確立するのを許可する。受け取った証明書は、アプリケーションサーバー１０１を識別するために、図１のトピック１０３のようなトピックをストリングとして含む。
【００３８】
１つの実施形態において、移動装置１０９のクライアントアプリケーション、例えば、移動メールは、サーバーアプリケーションからのメッセージ通知について登録するためにアプリケーションサーバー１０１でホストされる例えばＩＭＡＰサーバーのような対応するサーバーアプリケーションとのネットワーク接続を開始する。シーケンス４０１において、クライアントアプリケーションは、サーバーアプリケーションによってどの能力がサポートされるか問合せるための問合せ要求を送信するため移動装置１０９とアプリケーションサーバー１０１との間のネットワーク接続を開始する。それに応答して、シーケンス４０３において、サーバーアプリケーションは、例えば、ＸＡＰＰＬＥＵＳＨＳＥＲＶＩＣＥインジケータを含むプロトコルに基づいて、プッシュオプションの利用性を指示するインジケータで応答する。
【００３９】
次いで、シーケンス４０５において、クライアントアプリケーションは、メッセージプッシュ又は通知について登録するために移動装置１０９からアプリケーションサーバー１０１へコマンドを送信する。このコマンドは、サーバーアプリケーションが移動装置１０９及び／又はクライアントアプリケーションをアドレスできるようにするために名前又は識別子を伴うパラメータを含む。１つの実施形態において、このパラメータは、移動装置１０９の装置トークンを含む名前付きの値に基づく。任意であるが、パラメータは、移動装置１０９内のクライアントアプリケーションにより独特に所有されるサブトピック、例えば、“com.apple.mobilemail”を含む。シーケンス４０７において、アプリケーションサーバーは、アプリケーションサーバー１０１を識別するトピックで応答する。トピックとは、複数のサーバーにより共有されたプッシュサービスを経てアプリケーションサーバー１０１からプッシュされるメッセージを識別するのに使用できるストリング、例えば、“com.google.push”である。移動装置１０９とアプリケーションサーバー１０１との間のメッセージ通知を登録するために確立された同じネットワーク接続を経て付加的なアプリケーション特有のトランザクションが交換される。このネットワーク接続は、移動装置１０９がアプリケーションサーバー１０１からの通知を待機する間に切断される。
【００４０】
その後、サーバーアプリケーションは、例えば、ＩＭＡＰサーバーにおける新たなメールの到着のような幾つかのアプリケーション特有の事象の発生に応答して、移動装置１０９へプッシュされるべき通知メッセージを発生する。サーバーアプリケーションは、装置トークンで通知メッセージをパッケージし、そして例えば、移動装置１０９について登録（又は記憶）されたクライアントアプリケーションのサブトピックを含めて、装置トークンに関連したデータを通す。シーケンス４０９において、アプリケーションサーバー１０１は、通知メッセージを、アプリケーションサーバー１０１を識別するトピックと共に、通知サーバー１０５を経て移動装置１０９へ送信する。次いで、シーケンス４１１において、通知サーバー１０５は、プッシュネットワークサービスを経て移動装置１０９へ通知メッセージをプッシュする。
【００４１】
通知メッセージが到着すると、移動装置１０９は、関心のあるクライアントアプリケーションへメッセージを転送する前にメッセージのトピック及び／又は装置トークンを検証する。移動装置１０９は、検証が失敗した（例えば、トピックが契約されず、及び／又は装置トークンがローカル装置トークンに一致しない）場合にメッセージを無視する。任意であるが、移動装置１０９は、通知メッセージのペイロードからサブトピックを抽出し、通知メッセージを、トピックに契約する他のアプリケーションへ転送せずに、サブトピックにより名前の付けられたクライアントアプリケーションのみへ配送する。移動装置１０９は、クライアントアプリケーションがスリープ状態にあるか、又は通知メッセージを受け取るために現在実行されていない場合に、クライアントアプリケーションを呼び出す。次いで、シーケンス４１３において、クライアントアプリケーションは、アプリケーション特有のトランザクション（例えば、メールメッセージの検索）を遂行するためにアプリケーションサーバー１０１における対応するサーバーアプリケーションとの接続を開始する。
【００４２】
図５は、識別されたクライアントアプリケーションへ移動装置が通知メッセージをルーティングできるようにするプロセスの１つの実施形態を示すフローチャートである。規範的なプロセス５００は、ハードウェア（回路、専用ロジック、等）、ソフトウェア（専用マシンの上で実行される、等）、又はその両方の組み合わせを含む処理ロジックにより遂行される。例えば、プロセス５００は、図１のシステム１００の幾つかのコンポーネントにより遂行される。ブロック５０１において、プロセス５００の処理ロジックは、装置トークンにより識別されたクライアント装置に常駐するクライアントアプリケーションのためのアプリケーション識別子（例えば、サブトピック）を発生し、クライアントアプリケーションは、サーバー識別子（例えば、トピック）により識別された１つ以上のアプリケーションサーバーによりホストされるサーバーアプリケーションでトランザクションを遂行する。
【００４３】
ブロック５０３において、１つの実施形態では、プロセス５００の処理ロジックは、クライアントアプリケーションに対してアプリケーションサーバーからのメッセージ通知サービスを登録する。プロセス５００の処理ロジックは、クライアントアプリケーションに関連した識別子（例えば、クライアントアプリケーション識別子のサブトピック及びクライアント装置の装置トークンを含む）を、アプリケーションサーバーでホストされるサーバーアプリケーションへ転送して、サーバーアプリケーションがクライアントアプリケーションに対してクライアント装置へ通知メッセージをプッシュできるようにする。
【００４４】
ブロック５０５において、アプリケーションサーバーから通知メッセージを受信するのに応答して、プロセス５００の処理ロジックは、通知メッセージがアプリケーション識別子を搬送するかどうか決定する。１つの実施形態において、プロセス５００の処理ロジックは、通知メッセージからトークン及びトピックを抽出し（例えば、名前付けされた値に基づいて）、通知メッセージが移動装置により受信されることが意図されるかどうか検証する。１つの実施形態において、プロセス５００の処理ロジックは、通知メッセージのペイロードからのアプリケーション識別子、例えば、サブトピックを識別する。
【００４５】
アプリケーション識別子又はサブトピックが識別された場合には、ブロック５０７において、プロセス５００の処理ロジックは、通知メッセージのトピックに契約する他のアプリケーションへ通知メッセージを転送せずに、サブトピックにより識別されたクライアントアプリケーションへ通知メッセージを転送する。プロセス５００の処理ロジックは、クライアント装置においてトピックに契約する複数のクライアントアプリケーションの中でサブトピックにより識別されるクライアントアプリケーションを選択する。さもなければ、通知メッセージにおいてサブトピックが見つからない場合には、プロセス５００の処理ロジックは、通知メッセージを、クライアントアプリケーションのためのトピックに契約する各クライアントアプリケーションへ転送して、通知メッセージを処理すべきかどうか決定する（例えば、メッセージで搬送されるコンテンツに基づいて）。
【００４６】
図６は、アプリケーションサーバーからアプリケーションクライアントへ通知メッセージを与えるためのプロセスの１つの実施形態を示すフローチャートである。規範的なプロセス６００は、ハードウェア（回路、専用ロジック、等）、ソフトウェア（専用マシン上で実行される、等）、又はその両方の組み合わせを含む処理ロジックにより遂行される。例えば、プロセス６００は、図１のアプリケーションサーバー１０１のような、システム１００の幾つかのコンポーネントにより遂行される。ブロック６０１において、プロセス６００の処理ロジックは、アプリケーションサーバーでホストされるサーバーアプリケーションからのメッセージ通知に対してクライアント装置のクライアントアプリケーションから登録要求を受け取る。登録要求は、クライアント装置の識別子（例えば、装置トークン）、及び任意であるが、クライアントアプリケーションの付加的な識別子（例えば、サブトピック）を含む。
【００４７】
ブロック６０３において、プロセス６００の処理ロジックは、アプリケーションサーバーを識別するサーバー識別子（例えば、トピック）をクライアント装置へ送信して、クライアント装置がアプリケーションサーバーから通知（又はプッシュ）されたメッセージを聴取できるようにする。１つの実施形態において、プロセス６００の処理ロジックは、ブロック６０５において、クライアント装置の通知メッセージをアドレスするためにプッシュサービスの装置トークンを含む識別子を記憶する。記憶される識別子は、通知メッセージを受け取るためにクライアント装置のクライアントアプリケーションを識別するためのサブトピックを含む。
【００４８】
１つの実施形態では、ブロック６０７において、プロセス６００の処理ロジックは、クライアントアプリケーションをホストするクライアント装置のための記憶された識別子に基づいてメッセージを受信するために登録されたクライアントアプリケーションに対する通知メッセージを発生する。例えば、通知メッセージは、クライアントアプリケーションに関連したアカウントに関するサーバーアプリケーションにおける事象の発生、例えば、新たなメールメッセージの到着、チャット要求又は他の該当する事象の発生を指示する。通知メッセージは、クライアント装置を識別するクライアントトークン、及びクライアントアプリケーションを識別するサブトピックを含むペイロードと共にパッケージされる。ブロック６０９において、プロセス６００の処理ロジックは、発信側アプリケーションサーバーを識別するトピックを含む通知メッセージを、プッシュサービスを経てクライアント装置へ送信する。その通知メッセージは、クライアントアプリケーションを識別するためにメッセージのペイロードに埋め込まれたサブトピックを搬送する。その後、ブロック６１１において、プロセス６００の処理ロジックは、サーバーアプリケーションと共にクライアントアプリケーションから確立されたネットワークセッションを経てアプリケーション特有のトランザクションを遂行する。
【００４９】
ブロック６１３において、プロセス６００の処理ロジックは、クライアントアプリケーション又はクライアント装置への通知メッセージの送信を停止する条件が満足されたかどうか決定する。クライアントアプリケーションは、サーバーアプリケーションからの通知メッセージを受信するために登録されている。１つの実施形態において、プロセス６００の処理ロジックは、最新の通知メッセージをクライアント装置に送信して以来のクライアント装置に対する期間又は経過時間を監視する。その期間がスレッシュホールド（例えば、１日、１２時間、等、これは、予め構成されるか又は動的に構成される）を越える場合には、クライアント装置への通知メッセージの送信を停止する条件が満足される。ブロック６１５において、プロセス６００の処理ロジックは、条件が満足された場合にサーバーアプリケーションのメッセージ通知（又はプッシュサービス）からクライアント装置を登録解除する。クライアント装置は、サーバーアプリケーションに対する通知受信者のリストから除去される。例えば、プロセス６００の処理ロジックは、クライアント装置のクライアントアプリケーションを識別するサブトピックを搬送するデータを含めて、クライアント装置を識別する装置トークンに関連したエントリをメッセージ通知のためのレジストリから除去する。
【００５０】
図７は、ここに述べる実施形態に使用されるデータ処理システムの一例を示す。図７に示すデータ処理システム７００は、１つ以上のマイクロプロセッサであるか又はシステムオンチップ集積回路である処理システム７１１を備え、又、このシステム７００は、処理システムにより実行するためのデータ及びプログラムを記憶するメモリ７０１も備えている。又、システム７００は、マイクロホン及びスピーカを含むオーディオ入力／出力サブシステム７０５も備え、これは、例えば、音楽を再生したり、スピーカ及びマイクロホンを経て電話機能を提供したりする。システム７００は、少なくとも幾つかの実施形態では、ここに述べる１つ以上のプロフィールを要求し、そしてそれらプロフィールをダウンロードして、ネットワークを通して通信するように装置を構成する。システム７００は、図７に示すシステムであるサーバーデータ処理システムからそれらプロフィールをダウンロードすることができる。１つの実施形態では、システム７００は、図１に示す装置１１１である。
【００５１】
ディスプレイコントローラ及びディスプレイ装置７０７は、ユーザのためのビジュアルユーザインターフェイスをなし、このデジタルインターフェイスは、ＯＳ  Ｘオペレーティングシステムソフトウェアを実行するときにマッキントッシュコンピュータに示されるものと同様のグラフィックユーザインターフェイスを含む。又、システム７００は、別のデータ処理システムと通信するために１つ以上のワイヤレストランシーバ７０３も備えている。ワイヤレストランシーバは、ＷｉＦｉトランシーバ、赤外線トランシーバ、Ｂｌｕｅｔｏｏｔｈトランシーバ、及び／又はワイヤレスセルラー電話トランシーバである。ある実施形態では、図示されていない付加的なコンポーネントも、システム７００の一部分であり、そしてある実施形態では、図７に示したものより少ないコンポーネントがデータ処理システムに使用される。
【００５２】
又、データ処理システム７００は、ユーザがシステムに入力を与えることができるようにするために設けられた１つ以上の入力装置７１３も備えている。これらの入力装置は、キーパッド、又はキーボード、又はタッチパネル、又はマルチタッチパネルである。又、データ処理システム７００は、ドックのためのコネクタである任意の入力／出力装置７１５も備えている。図示されていない１つ以上のバスを使用して、良く知られた種々のコンポーネントを相互接続できることが明らかであろう。図７に示すデータ処理システムは、ハンドヘルドコンピュータ又はパーソナルデジタルアシスタント（ＰＤＡ）、又はＰＤＡのような機能を伴うセルラー電話、又はセルラー電話を含むハンドヘルドコンピュータ、又はｉＰｏｄのようなメディアプレーヤ、或いはメディアプレーヤのような装置の態様又は機能をＰＤＡ及びセルラー電話と１つの装置において結合した装置である。他の実施形態において、データ処理システム７００は、ネットワークコンピュータ、又は別の装置内に埋め込まれた処理装置、或いは図７に示したものより少数のコンポーネント又はおそらく多数のコンポーネントを有する他の形式のデータ処理システムである。
【００５３】
図８は、本発明の１つの実施形態に使用されるデータ処理システムの一例を示す。図８は、コンピュータシステムの種々のコンポーネントを示すが、コンポーネントを相互接続する特定のアーキテクチャー又は仕方を表現するものではないことに注意されたい。というのは、そのような細部は、本発明に関係がないからである。又、それより少数のコンポーネント又はおそらく多数のコンポーネントを有するネットワークコンピュータ及び他のデータ処理システムも、本発明に使用できることが明らかであろう。図８は、図１に示すサーバーシステムを表わす。
【００５４】
図８に示すように、データ処理システムの形態であるコンピュータシステム８００は、マイクロプロセッサ８０５、ＲＯＭ（リードオンリメモリ）８０７、揮発性ＲＡＭ８０９及び不揮発性メモリ８１１に結合されたバス８０３を備えている。マイクロプロセッサ８０５は、メモリ８０７、８０９、８１１からインストラクションを検索し、そしてインストラクションを実行して、上述したオペレーションを遂行する。バス８０３は、それらの種々のコンポーネントを一緒に相互接続すると共に、それらのコンポーネント８０５、８０７、８０９及び８１１をディスプレイコントローラ及びディスプレイ装置８１３へ並びにマウス、キーボード、モデム、ネットワークインターフェイス、プリンタ、良く知られた他の装置である入力／出力（Ｉ／Ｏ）装置のような周辺装置へも相互接続する。典型的に、入力／出力装置８１５は、入力／出力コントローラ８１７を通してシステムに結合される。揮発性ＲＡＭ（ランダムアクセスメモリ）８０９は、典型的に、メモリにデータを維持し又はリフレッシュするために常時電力を要求するダイナミックＲＡＭ（ＤＲＡＭ）として実施される。
【００５５】
大量記憶装置８１１は、典型的に、システムから電力が除去された後も、データ（例えば、大量のデータ）を維持する磁気ハードドライブ、又は磁気光学ドライブ、又は光学ドライブ、又はＤＶＤ  ＲＡＭ、又はフラッシュメモリ又は他の形式のメモリである。典型的に、大量記憶装置８１１は、ランダムアクセスメモリであるが、これは、必要なことではない。図８に示すように、大量記憶装置８１１は、データ処理システムの残りのコンポーネントに直結されたローカル装置であるが、本発明は、システムから離れたところにある不揮発性メモリ、例えば、モデム、イーサネットインターフェイス又はワイヤレスネットワークのようなネットワークインターフェイスを通してデータ処理システムに結合されるネットワーク記憶装置を使用してもよいことが明らかであろう。バス８０３は、良く知られたように、種々のブリッジ、コントローラ及び／又はアダプタを通して互いに接続された１つ以上のバスを含む。
【００５６】
ここで使用する「メモリ」という語は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）及びスタティックＲＡＭ（ＳＲＡＭ）のような全ての揮発性記憶媒体を包含するものとする。コンピュータで実行可能なインストラクションは、磁気ハードディスク、光学ディスクのような不揮発性記憶装置に記憶され、そして典型的に、プロセッサによるソフトウェアの実行中に、直接メモリアクセスプロセスによりメモリに書き込まれる。当業者であれば、「マシン読み取り可能な記憶媒体」という語は、プロセッサによりアクセスできる任意の形式の揮発性又は不揮発性記憶装置を含むことが直ちに認識されよう。
【００５７】
以上、特定の規範的実施形態を参照して本発明を説明した。特許請求の範囲に述べる本発明の精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。従って、明細書及び図面は、例示に過ぎず、それに限定されない。
【符号の説明】
【００５８】
１００：ネットワークシステム
１０１：アプリケーションサーバー
１０３：トピック
１０５：通知サーバー
１０７：ネットワーク
１０９：移動装置
１１１：アプリケーション
１１３：サブトピック
１１５：装置トークン
１１７：サーバーアプリケーション
２０１：通知管理モジュール
２０３：契約プロフィール
３０１：通知モジュール
３０３：通知サービスレジストリ
７００：データ処理システム
７０３：ワイヤレストランシーバ
７０７：ディスプレイコントローラ及びディスプレイ装置
７１３：入力装置
７１５：入力／出力装置
【図１】
0005745696.tif 000002
【図２】
0005745696.tif 000003
【図３】
0005745696.tif 000004
【図４】
0005745696.tif 000005
【図５】
0005745696.tif 000006
【図６】
0005745696.tif 000007
【図７】
0005745696.tif 000008
【図８】
0005745696.tif 000009