(57)【特許請求の範囲】
【請求項１】
携帯型計算装置で複数の無線アドレスに対する無線情報を受信するためのコンピュータが実施する方法であって、
前記携帯型計算装置の電池からのみ無線受信機に電力を供給することと、
ある無線アドレスに対する情報パケットを備える無線情報を受信することであって、前記情報パケットは第１の部分と第２の部分とを備え、前記第１の部分は前記情報パケットの第２の部分のコンテントを示すトピック情報を有することと、
前記無線受信機のメモリに前記無線情報を格納することと、
受信した前記情報パケットに関連付けられた前記無線アドレスが前記携帯型計算装置によって使用される前記複数の無線アドレスの１つであるかを識別することと、
受信した前記情報パケットに関連付けられた前記無線アドレスが前記携帯型計算装置によって使用される前記複数の無線アドレスの１つである場合に、前記携帯型計算装置のプロセッサをウェイクアップさせることと、
前記無線情報が前記無線受信機で使用可能な前記メモリの閾値を満たすときに、
前記無線情報を前記無線受信機の前記メモリから前記携帯型計算装置のメモリへ移すことと、
前記情報パケットの前記第１の部分を第１の処理要素を有する前記携帯型計算装置に格納されたコンテントフィルタデータと比較することと、
前記第１の部分が前記コンテントフィルタデータのいずれかに一致する場合に少なくとも前記情報パケットの前記第２の部分を前記携帯型計算装置の別のコンポーネントに第２の処理要素による処理のために転送することと
を備えることを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
前記第１の部分が前記コンテントフィルタデータのいずれにも一致しない場合に前記情報パケットを破棄することをさらに備えることを特徴とする方法。
【請求項３】
請求項１または２に記載の方法であって、
前記比較するステップは、前記無線アドレスに応じて前記情報パケットの前記第１の部分を前記コンテントフィルタデータと比較することを含むことを特徴とする方法。
【請求項４】
請求項３に記載の方法であって、
前記情報パケットは、グループアドレスを含み、前記比較するステップは、前記グループアドレスに応じて前記情報パケットの前記第１の部分を前記コンテントフィルタデータと比較することを含むことを特徴とする方法。
【請求項５】
請求項１から４のいずれかに記載の方法であって、
前記コンテントフィルタデータは、複数のデータテーブルを備え、各データテーブルはグループアドレスと関連付けられていることを特徴とする方法。
【請求項６】
請求項５に記載の方法であって、
各データテーブルは、フィルタリングについてのユーザの嗜好の１つ、セットまたは範囲のうちの少なくとも１つの表現を含むことを特徴とする方法。
【請求項７】
請求項５または６に記載の方法であって、
各データテーブルは、ハッシュ関数に従って格納された情報を備えることを特徴とする方法。
【請求項８】
請求項７に記載の方法であって、
各データテーブルは、ビットアレイを備え、各ビットの状態は、選択されたタイプの情報についてのユーザの嗜好を示し、前記ハッシュ関数は、オフセット値を生成し、前記比較するステップは、
前記第１の部分にハッシュ関数を作用させて、前記オフセット値を生成することと、
前記オフセット値に応じて前記ビットアレイの前記ビットの状態をチェックすることと
を含むことを特徴とする方法。
【請求項９】
請求項１から８のいずれかに記載の方法であって、
前記コンテントフィルタデータは、前記無線アドレスに応じて格納される追加の情報を含むことを特徴とする方法。
【請求項１０】
請求項９に記載の方法であって、
前記追加の情報に応じて前記第２の部分をフィルタすることをさらに備えることを特徴とする方法。
【請求項１１】
請求項１から１０のいずれかに記載の方法であって、
所望のコンテント情報を示すユーザの嗜好を受信することと、
前記携帯型計算装置と共に使用可能であるアドレスに応じて前記ユーザの嗜好を編成することであって、前記アドレスは前記携帯型計算装置に対して対応する情報を送信するために使用されることと、
前記携帯型計算装置のコンピュータ読出し可能媒体の関連付けられたアドレスに応じて前記ユーザの嗜好を格納することであって、前記コンピュータ読出し可能媒体は受信した無線情報を処理するためのフィルタリングモジュールによってアクセス可能であることと
をさらに備えることを特徴とする方法。
【請求項１２】
実施されると、請求項１から１１のいずれかに記載の方法を行う命令を有することを特徴とするコンピュータ読出し可能媒体。
【請求項１３】
請求項１から１１のいずれかに記載の方法を行うように適合されたことを特徴とする携帯型計算装置。
【発明の詳細な説明】
【０００１】
［発明の背景］
本発明は、一般にハンドヘルドポータブルコンピュータとして知られているパーソナルモバイルコンピューティング装置に関する。より詳細には、本発明は、モバイル装置に無線情報の低レベルコンテントフィルタリングを提供するシステムおよび方法に関する。
【０００２】
モバイル装置は、しばしば携帯情報端末（personal digital assistant）と呼ばれる小型電子計算装置である。かかるモバイル装置の多くは、ハンドヘルド装置または手のひらサイズの装置であり、手の中に楽に収まるものである。商業的に入手可能なモバイル装置の１つは、ワシントン州、レッドモンド（Redmond）のマイクロソフト社によって提供されるソフトウェアを有し、ＨａｎｄＨｅｌｄ  ＰＣ（またはＨ／ＰＣ）という商品名で販売されている。
【０００３】
一般に、モバイル装置は、プロセッサと、ランダムアクセスメモリ（ＲＡＭ）と、キーボードおよびディスプレイ等の入力装置と、を有している。なお、キーボードを、タッチセンシティブディスプレイ等のディスプレイに統合することも可能である。通信インタフェースは、任意に提供され、通常、デスクトップコンピュータと通信するために使用される。交換可能または再充電可能な電池が、モバイル装置に電源を供給する。任意に、モバイル装置は、適切なＡＣまたはＤＣアダプタ等の、組込み電池をオーバライド（override）または再充電する外部電源か、あるいは電力が供給されているドッキングクレードルから電源を受けることができる。
【０００４】
１つの一般的な用途において、モバイル装置は、デスクトップコンピュータと協動して使用される。例えば、モバイル装置のユーザは、仕事場でまたは家庭でデスクトップコンピュータにアクセスしまたそれを使用する場合もある。一般に、ユーザは、デスクトップコンピュータとモバイル装置との両方で同じタイプのアプリケーションを実行する。従って、モバイル装置を、そのモバイル装置と情報を交換しかつ情報を共有するデスクトップコンピュータに結合されるよう設計することは、非常に有利である。
【０００５】
モバイル装置に情報を提供する他の技術には、無線で情報を転送するために、ページャネットワーク等の低ビットレートチャネルまたはトランスポートを使用するものがある。例えば、かかる情報には、一般に、インタネットに接続されたデスクトップコンピュータから取得される電子メールまたはニュース、天気、スポーツ、交通およびローカルイベント情報を含むことができる。この技術において、無線情報は、「無線アドレス」（「キャップコード」）によって送信される。しかしながら、無線アドレスは非常に限定された資源である。例えば、一般的なページャは４〜１６のアドレスを含む。ページャは、アドレスに対し特定の間隔でブロードキャスト周波数を監視し、そのブロードキャストが関心のあるアドレスを有していないことが分った場合、次の監視間隔までシャットダウンする。この技術により、ページャは、無線アドレスに基づいて関心のある情報のみを受信し処理するためにウェイクアップする（目覚める（wake up））ため、電力が大幅に節約される。
【０００６】
無線情報を送信する従来からの技術は、各無線アドレスに対し特定のタイプのコンテントを送信するというものである。一般に、ネットワーク経営者は、特定のアドレスでプログラムされる自身の無線装置を欲するユーザに対し、加入料を課す。内部に特定のアドレスがプログラムされている装置のみが、特定のコンテントを受信することができる。この技術により、上述したように電力消費が低減され、ネットワーク経営者が加入制御を継続することができる。しかしながら、各ユーザは、各特定の無線装置で利用可能な無線アドレスの数に基づいて選択された数のサービスを受信することに限定されている。すべてのアドレスが使用された後にユーザが追加のサービスを要求する場合、現存の無線アドレスは再プログラミングされなければならない。
【０００７】
状況によっては、現技術を使用することにより、実際に電力消費が促進される場合がある。例えば、現技術のもとでは、すべてのストックに関する情報を送信するストック情報サービスに、１つの無線アドレスが割当てられる。しかしながら、ユーザが１つまたは２つのストックのみに興味がある場合、所望のストックを表示するだけのために、その無線装置に対して特別なソフトウェアが書かれその無線装置で動作する。現システムを使用すると、無線装置は、ストック情報サービスから送信されているストック情報項目の各々を受信するためにウェイクアップする。そして、無線装置は、特別なソフトウェアを実行して、そのストック情報が所望のストックに関係しているか否かを判断する。このように、ストック情報が送信される度に、無線装置が電力を消費することとなる。一般に、無線装置は、モバイル装置である場合、汎用オペレーティングシステムを実行し、各ウェイクアップ期間に大きく電力を消費する多数の周辺装置を有している場合がある。
【０００８】
引続き、モバイル装置との無線通信を向上させる必要がある。特に、モバイル装置の電池資源を節約するために、無線チャネルを介してモバイル装置に送信される情報を効率的に処理する必要がある。
【０００９】
［本発明の概要］
携帯型計算装置に無線情報を受信するシステムおよび方法は、自身の第２の部分のコンテントを示すトピック情報を有する第１の部分を備えた情報パケットを受信することを含む。この情報パケットの第１の部分は、携帯型計算装置に格納されたコンテントフィルタデータと比較される。第１の部分がコンテントフィルタデータのいずれかと一致する場合、情報パケットの少なくとも第２の部分が、携帯型計算装置の別のコンポーネントに転送される。コンピュータ読出し可能媒体上に命令を供給することにより、この方法を実施することができる。
【００１０】
本発明の他の態様は、無線情報パケットを受信する携帯型計算装置である。各情報パケットは、その情報パケットの第２の部分のコンテントを示すトピック情報を有する第１の部分を備えている。この携帯型計算装置は、無線情報パケットを受信することができる無線受信機と、コンテントフィルタデータを格納するメモリと、を有している。モジュールは、無線情報パケットを受信するよう無線受信機と共に動作可能である。このモジュールは、第１の部分をコンテントフィルタデータと比較することにより、情報パケットが破棄されるべきか否かを確かめる。
【００１１】
本発明の第３の態様は、アドレスに従って情報を受信する携帯型計算装置のためのデータ構造を格納するコンピュータ読出し可能媒体である。上記データ構造は、情報を処理する携帯型計算装置のモジュールと共に使用可能である。このデータ構造は、複数のデータテーブルを具備している。各データテーブルは、情報を受信し所望の情報のユーザの嗜好の表現を格納するためにアドレスに関連付けられている。
【００１２】
本発明の第４の態様は、携帯型計算装置に情報を送信する情報パケットである。この情報パケットは、データ情報を含む第１の部分と、第１の部分を示す選択されたトピック情報を含む第２の部分とを含む。
【００１３】
本発明の第５の態様は、無線情報を処理するために使用される携帯型計算装置にコンテントフィルタデータを取得する、コンピュータが実施する方法である。本方法は、所望のコンテント情報を示すユーザの嗜好を受信することと、携帯型計算装置と共に使用可能であるアドレスの関数としてユーザの嗜好を編成することと、を含む。上記アドレスは、携帯型計算装置に対して対応する情報を送信するために使用される。本方法は、更に、ユーザの嗜好を、携帯型計算装置のコンピュータ読出し可能媒体の関連するアドレスの関数として格納することを含む。このコンピュータ読出し可能媒体は、受信した無線情報を処理するフィルタモジュールによってアクセス可能である。
【００１４】
［好適な実施例の詳細な説明］
以下の説明は、本発明が実現される適切なコンピューティング環境の簡単な概略的な説明である。必要ではないが、本発明は、少なくとも部分的に、携帯型計算装置によって実行される、モジュールおよびドライバ等の格納されたコンピュータ実行可能命令の一般的なコンテキストにおいて説明されており、コンピュータ実行可能命令は、コンピュータ読出し可能媒体に格納されている。一般に、モジュールおよびドライバは、特定のタスクを実行するかまたは特定の抽象データタイプを実現する、ルーチンプログラム、オブジェクト、コンポーネント、データ構造等を含む。更に、当業者は、本発明がパームトップコンピュータ等の他のハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等を含む、他のコンピュータシステム構成で実行することができる、ということを認めるであろう。また、本発明は、タスクが通信ネットワークを介してリンクされている複数の処理装置によって実行される分散コンピューティング環境においても実行することができる。分散コンピューティング環境において、プログラムモジュールは、ローカルとリモートのいずれのメモリ記憶装置にも配置することができる。
【００１５】
図１は、本発明による、一例としての携帯型計算装置（ここでは、モバイル装置１０）のブロック図である。図１は、１つの好ましい実施の形態において、モバイル装置１０が、デスクトップコンピュータ１２か、無線トランスポート１４かまたは両方との接続に対し、あるいはそれらから情報を受信するために適していることを示している。無線トランスポート１４は、ページングネットワーク、セルラデジタルパケットデータ（ＣＤＰＤ）、ＦＭ側帯波、または他の適切な無線通信とすることができる。しかしながら、モバイル装置１０は、デスクトップコンピュータ１２に接続されるように装備されていなくてもよく、本発明は、モバイル装置１０にこの機能が与えられているか否かに関わらず適用される、ということもまた留意されるべきである。
【００１６】
いずれにしても、モバイル装置１０は、好ましくは、１つまたは複数のアプリケーションモジュール１６とオブジェクト記憶装置１８とを有している。アプリケーションモジュール１６は、例えば、ユーザの電子メール（ｅメール）とスケジューリングまたはカレンダリング情報とに関連するオブジェクトを格納する個人情報マネージャ（ＰＩＭ）１６Ａとすることができる。また、アプリケーションモジュール１６は、インタネット等の広域ネットワーク（ＷＡＮ）から取得される情報を表示するために使用されるコンテントビューワ１６Ｂを含むことも可能である。１つの実施の形態において、コンテントビューワ１６Ｂは、情報が表示される前に最初に格納されるという点で、「オフライン」ビューワである。ここでは、ユーザは、情報源にリアルタイムで対話しない。しかしながら、本発明を、無線トランスポート１４が２方向通信を提供するリアルタイム環境において実現することができる、ということが理解されるべきである。
【００１７】
無線トランスポート１４が使用されることにより、オブジェクト記憶装置１８に記憶されアプリケーションモジュール１６によって使用されるように、モバイル装置１０に情報が送信される。無線トランスポート１４は、情報源プロバイダ１３から送信される情報を受信する。これは、例えば、ニュース、天気、スポーツ、交通またはローカルイベントの情報源とすることができる。同様に、情報源プロバイダ１３は、デスクトップコンピュータ１２から、無線トランスポート１４を介してモバイル装置１０に送信されるべきｅメールおよび／またはスケジューリング情報を受信することができる。デスクトップコンピュータ１２からの情報は、ダイレクトモデム接続等のあらゆる適切な通信リンクを介して、情報源プロバイダ１３に提供することができる。他の実施の形態では、デスクトップコンピュータ１２および情報源プロバイダ１３を互いに接続して、ローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を形成することができる。かかるネットワーキング環境は、オフィス、エンタプライズ規模のコンピュータネットワークであるイントラネットおよびインタネットでは普通に採用されている。望ましい場合、デスクトップコンピュータ１２を無線トランスポート１４に直接接続することも可能である。
【００１８】
オブジェクト記憶装置１８は、好ましくは、各々が、ＰＩＭ１６Ａの特徴またはコンテントビューワ１６Ｂで表示可能なデータに関連する複数のフィールドまたは特性を備えた、複数の個々のレコードまたはオブジェクトを格納するよう構成されている。例えば、ＰＩＭ１６Ａがｅメールおよびスケジューリングプログラムである場合、オブジェクト記憶装置１８は、オブジェクトを格納するよう構成されており、そのオブジェクトの各々は、ＰＩＭ１６Ａによって提供されるｅメール、スケジューリングまたはカレンダリングの特徴に関連付けることができる複数の特性を有する。
【００１９】
また、１つの実施の形態において、あらゆる適切なおよび商業的に入手可能な通信リンクを使用し、適切な通信プロトコルを使用して、モバイル装置１０をデスクトップコンピュータ１２に接続することができる、ということは留意すべきである。例えば、１つの実施の形態において、モバイル装置１０は、シリアル通信プロトコルを用いて通信する物理的なケーブルにより、デスクトップコンピュータ１２と通信する。他の通信メカニズムとして、赤外線（ＩＲ）通信およびダイレクトモデム通信がある。
【００２０】
また、１つの実施の形態において、モバイル装置１０をデスクトップコンピュータ１２と同期させることができる、ということも留意すべきである。その例では、オブジェクト記憶装置１８に格納されたオブジェクトの特性は、デスクトップコンピュータ１２またはモバイル装置１０のオブジェクト記憶装置に格納された同じオブジェクトの他のインスタンスの特性と同様である。このように、例えば、デスクトップコンピュータ１２のオブジェクト記憶装置１８に、オブジェクトの１つのインスタンスが格納されている場合、モバイル装置１０がデスクトップコンピュータ１２に接続される次の時に、モバイル装置１０のオブジェクト記憶装置１８のそのオブジェクトの第２のインスタンスが更新される。それによって、同じオブジェクトの両方のインスタンスが、最新のデータを含むこととなる。これは、通常、同期と呼ばれる。
【００２１】
同期を行うために、同期コンポーネントは、モバイル装置１０とデスクトップコンピュータ１２との両方で実行される。それら同期コンポーネントは、通信および同期を管理する適切に定義されたインタフェースを介して互いに通信する。
【００２２】
図２は、モバイル装置１０のより詳細なブロック図である。モバイル装置１０は、プロセッサ２０と、メモリ２２と、入力／出力（Ｉ／Ｏ）コンポーネント２４と、デスクトップコンピュータ通信インタフェース２６と、無線受信機２７と、を有している。好ましい実施の形態では、モバイル装置１０のこれらコンポーネントが、適切なバス２８により互いに通信するよう接続されている。
【００２３】
メモリ２２は、好ましくは、電池バックアップモジュール（図示せず）を備えたランダムアクセスメモリ（ＲＡＭ）等の不揮発性電子メモリとして実現される。それによって、モバイル装置１０に対する一括電源がシャットダウンされた場合に、メモリ２２に格納された情報が失われない。メモリ２２の一部は、好ましくは、プログラム実行のためのアドレス可能メモリとして割当てられ、メモリ２２の残りの部分は、好ましくは、ディスクドライブへの格納をシミュレートする等、格納のために使用される。
【００２４】
メモリ２２は、オブジェクト記憶装置１８と共に、オペレーティングシステム３０およびアプリケーションモジュール１６（図１に関して説明したＰＩＭ１６Ａ等）を含んでいる。動作中、オペレーティングシステム３０は、好ましくはメモリ２２からプロセッサ２０にロードされそのプロセッサ２０によって実行される。１つの好ましい実施の形態において、オペレーティングシステム３０は、マイクロソフト社から商業的に入手可能な「ＷＩＮＤＯＷＳ  ＣＥ」ブランドのオペレーティングシステムである。オペレーティングシステム３０は、好ましくは、モバイル装置用に設計されており、公開されたアプリケーションプログラミングインタフェースおよび方法のセットを通してＰＩＭ１６Ａおよびコンテントビューワ１６Ｂによって利用することができる特徴を実現する。オブジェクト記憶装置１８のオブジェクトは、好ましくは、公開されたアプリケーションプログラミングインタフェースおよび方法に対する呼出に少なくとも部分的に応答して、ＰＩＭ１６Ａ、コンテントビューワ１６Ｂおよびオペレーティングシステム３０によって保持される。
【００２５】
１つの好ましい実施の形態において、Ｉ／Ｏコンポーネント２４は、モバイル装置１０のユーザからの入力および出力動作を容易にするために設けられている。Ｉ／Ｏコンポーネント２４については、図３および図４に関してより詳細に説明する。
【００２６】
デスクトップコンピュータ通信インタフェース２６は、任意に、適切な、かつ商業的に入手可能な通信インタフェースとして提供される。図１に関して述べられているように、インタフェース２６は、デスクトップコンピュータ１２と通信するために使用される。
【００２７】
無線受信機２７は、情報源プロバイダ１３から情報を受信し、アンテナ３１を有している。無線受信機２７は、後述する方法で無線トランスポート１４から受信する情報を格納するために、プロセッサ２０およびオブジェクト記憶装置１８と通信するバス２８に結合されている。
【００２８】
電源３５は、モバイル装置１０に電力を供給する電池３７を有している。電源３５は、プロセッサ２０と通信することにより、上述したコンポーネントに提供する電力を制御する。１つの実施の形態では、電源３５は、従来技術において一般に見られるような外部電池を必要とすることなく、無線受信機２７を含むモバイル装置１０に対してすべての電源を供給する。更に、Ｉ／Ｏコンポーネント２４等、モバイル装置１０のコンポーネントには、着信情報を処理する必要のある場合にのみ電力が供給される。
【００２９】
任意に、モバイル装置１０は、組込まれた電池３７にオーバライドまたは再充電する外部電源４１から電源を受けることができる。例えば、外部電源４１は、適切なＡＣまたはＤＣアダプタ、あるいは、モバイル装置１０用の電源ドッキングクレードルを含むことができる。
【００３０】
図３は、本発明に従って使用することができるモバイル装置１０の１つの好ましい実施の形態の簡易絵画図である。図３に示すように、モバイル装置１０は、マイクロソフト社によって提供されるソフトウェアを有する、Ｈ／ＰＣという商品名で販売されているデスクトップ端末（desktop assistant）とすることができる。１つの好ましい実施の形態では、モバイル装置１０は、小型キーボード３２、ディスプレイ３４およびスタイラス３６を有している。図３に示す実施の形態では、ディスプレイ３４は、スタイラス３６と協動してコンタクトセンシティブディスプレイスクリーンを使用する液晶ディスプレイ（ＬＣＤ）である。スタイラス３６は、いくつかのユーザ入力機能を行うために、指定された座標でディスプレイ３４を押圧するかまたはディスプレイ３４に接触するために使用される。小型キーボード３２は、好ましくは、小型英数字キーボードとして実現され、いくつかのユーザ入力機能を行うために設けられている適切かつ所望のファンクションキーを備えている。
【００３１】
図４は、本発明の他の好ましい実施の形態によるモバイル装置１０の他の簡易絵画図である。図４に示すように、モバイル装置１０は、図３に関して述べたものと同様であって、同様に番号が付されているいくつかのアイテムを有している。例えば、図４に示すように、モバイル装置１０もまた、いくつかのユーザ入力機能を行うためにスタイラス３６と協動して使用することができるタッチセンシティブディスプレイ３４を含む。図３および図４に示すモバイル装置のディスプレイ３４は、デスクトップコンピュータと共に使用される従来からのディスプレイと同じサイズとすることができるが、一般に、その従来からのディスプレイよりかなり小さいものとなるということが留意されるべきである。例えば、図３および図４に示すディスプレイ３４は、わずかに２４０×３２０座標または１６０×１６０座標のマトリクスか、あるいは他のあらゆる適切なサイズによって定義することができる。
【００３２】
また、図４に示すモバイル装置１０は、ユーザが、ディスプレイ３４に接触することなく、ディスプレイ３４に表示されるメニューオプションまたは他のディスプレイオプションをスクロールすることができる、多くのユーザ入力キーまたはボタン（スクロールボタン３８等）も有している。更に、図４に示すモバイル装置１０は、好ましくは、モバイル装置１０に対する一括電源をオンおよびオフするために使用することができる電源ボタン４０も有している。
【００３３】
また、図４に示す実施の形態では、モバイル装置１０は手書き領域４２を有している、ということが留意されるべきである。手書き領域４２は、スタイラス３６と協動して使用することができるものであり、それによってユーザはメッセージを書込むことができ、そのメッセージは、メモリ２２に格納されてモバイル装置１０によって後に使用される。１つの好ましい実施の形態では、手書きメッセージは単純に手書き形式で格納され、ユーザが呼出してディスプレイ３４に表示することができるものであり、それによって、ユーザがモバイル装置１０に入力した手書きメッセージを再検討することができる。他の好ましい実施の形態では、モバイル装置１０には文字認識モジュールが設けられており、それによって、ユーザは、スタイラス３６で領域４２に英数字情報を書込むことにより、モバイル装置１０にその英数字情報を入力することができる。この例では、モバイル装置１０の文字認識モジュールは、英数字文字を認識し、その文字を、モバイル装置１０のアプリケーションモジュール１６によって使用することができるコンピュータ認識可能な英数字文字に変換する。
【００３４】
図３および図４においてハンドヘルド携帯型コンピュータとして示されているが、本発明は、ページャ、ラップトップ、自動車で使用されるように設計されたコンピュータ、およびコンピュータを有する携帯電話等、携帯型計算装置の他の形態で使用することができる。
【００３５】
図５は、モバイル装置１０の他のコンポーネントに結合されるような無線受信機２７の簡易図である。一般に、無線トランスポート１４によって送信される情報は、アンテナ３１を介してＲＦ受信機６０によって検出される。ＲＦ受信機６０は、プロセッサ６２に無線情報を供給する。プロセッサ６２は、一時的に、例えばＦＩＦＯ（先入れ先出し）バッファを形成する適切なメモリに情報を格納する。プロセッサ６２およびメモリ６４は、一般にコンポーネントをコンピュータシステムに接続するために使用されるインタフェースコントローラ６６に動作可能に連結されている。特に、インタフェースコントローラ６６は、無線受信機２７を、バス２８とモバイル装置１０のプロセッサ２０に動作可能に連結されている割込みコントローラ６８とに接続する。インタフェースコントローラ６６は、ＰＣＭＣＩＡおよびコンパクトフラッシュ仕様等の周知の業界標準に従って設計されており動作する。１つの実施の形態では、無線受信機２７のコンポーネントは、モバイル装置１０に設けられた拡張スロットに選択的に連結することができる可換型カードを形成し、そこでは、無線受信機２７を図１に示す電源３５に接続するのと同様に、インタフェースコントローラ６６をバス２８および割込みコントローラ６８に連結する適切なコネクタが設けられている。示されている実施の形態では、割込みコントローラ６８は、プロセッサ２０から分離しているものとして示されている。他の実施の形態では、割込みコントローラ６８を、プロセッサ２０の一部として設計することができる。無線受信機２７のコンポーネントを、ページャ、ＧＳＭ電話、セルラ電話等で実現されるような周知の製作技術を用いて製造することができる。以下プロセッサ６２に関して示し説明されているが、プロセッサ６２の代りに別個のコンポーネントもまた使用することができる、ということは理解されるべきである。
【００３６】
無線受信機２７およびモバイル装置１０の動作は、電池３７の再充電または交換の間の動作時間を最大化するために、電源３５からの電力を効率的に使用するように管理されている。１つの実施の形態では、無線受信機２７は、モバイル装置１０の他のコンポーネントが動作中であり電力を受取っているか否かに関わらず、常に、電力が供給され、無線トランスポート１４から情報を受信することができる。これにより、無線トランスポート１４は、ユーザがモバイル装置１０のＩ／Ｏコンポーネント２４と対話していない場合であっても、モバイル装置１０に情報を送信することができる。
【００３７】
モバイル装置１０が常に情報を受信することが望まれている場合、電源３５からの電力は、主に割込みコントローラ６８および無線受信機２７に供給されるが、モバイル装置１０の他のすべてのコンポーネントは電力を受取らないか、あるいは、「サスペンド」モードまたは状態で動作するためだけに十分な電力を受取る。例えば、プロセッサ２０は、電力消費を最小化することにより電池寿命を最大化するよう設計された３つの異なる動作モード、すなわち、フルスピード、スタンバイおよびサスペンドを有することができる。フルスピードモードは、アプリケーションを実行するために使用される。スタンバイモードは、短いアイドル期間中に使用される。スタンバイモードは、フルスピード電力の１／１０未満を使用することができる。サスペンドモードは、長いアイドル期間中に使用される。サスペンドモードは、フルスピード電力の１／１０００未満を使用することができる。
【００３８】
図６は、無線受信機２７からの情報を処理するためのモバイル装置１０および無線受信機２７の動作８０方法を示す。本システムおよび方法は、「SYSTEM AND METHOD FOR RECEIVING WIRELESS INFORMATION ON A MOBILE DEVICE」と題され、１９９８年１１月１０日に出願された出願番号０９／１８９，０２４の同時係属出願において更に述べられている。なお、この出願は、上記引用をもって完全に本明細書に包含されたものとする。ステップ８２において、無線受信機２７およびモバイル装置１０は、無線トランスポート１４から情報の送信を待つ。無線受信機２７および割込みコントローラ６８のみが電力を受取っており動作中である一方で、他のすべてのコンポーネントは、上述したようにオフであるかまたはサスペンド状態であるものとする。
【００３９】
ステップ８４において、ＲＦ受信機６０により、無線トランスポート１４から情報が受信される。そして、ステップ８６において、その情報は、無線受信機２７によって処理される。示されている実施の形態では、プロセッサ６２は、まず受信した情報を分析し、その情報が、モバイル装置１０のプロセッサ２０によって更に処理され、および／またはオブジェクト記憶装置１８に格納される必要があるか否かを判断する。ステップ８６において、プロセッサ６２が、モバイル装置１０の処理または格納コンポーネントが必要でないと判断した場合、動作フローはステップ８８に進み、無線受信機２７は、受信した情報を処理するかまたは破棄する。例えば、処理中、プロセッサ６２は、無線アドレス（キャップコード）がモバイル装置１０に関係していない場合等、受信した情報がモバイル装置１０に関係していないと判断することができ、これによって、情報を破棄することができる。あるいは、プロセッサ６２は、モバイル装置１０のプロセッサ２０が後に検索できるように、情報のすべてをメモリ６４に一時的に格納することができると判断することができる。ステップ８８において情報を処理した後、動作フローはステップ８２に戻り、無線受信機２７は、更に送信される情報を待つ。
【００４０】
ステップ８６および８８は、無線受信機２７がいかにして、モバイル装置１０の他のコンポーネントとの更なる対話無しに情報を受信しおよび処理することができるかを示している。このように、モバイル装置１０の他のコンポーネントのいずれもオンとされたりより高い電力消費率で動作しないため、電源３５からの電力消費が節約される。
【００４１】
ステップ８６において、無線受信機２７が、受信した情報はモバイル装置１０によって更に処理されなければならないと判断した場合、動作フローはステップ９０に進む。ステップ９０では、プロセッサ２０が、割込みコントローラ６８によってプロセッサ６２によって起動されるようにウェイクアップ（awake）させられる。プロセッサ２０は、メモリ６４に格納された情報を検索し、その情報を処理することによってユーザとの対話が必要であるか否かを判断する。ユーザとの対話が必要である場合、動作フローはステップ９２に進み、キーボード３２等のユーザ入力装置が起動され、ユーザに対しディスプレイ３４を介して情報が通知される。
【００４２】
ステップ９０において、プロセッサ２０は、ユーザとの対話が情報の処理に必要でないと判断した場合、その情報を処理して、ステップ９４で必要なモバイル装置１０のコンポーネントのみをオンとする。例えば、無線受信機２７によって受信される情報は、メモリ６４のメモリ能力を超過する可能性があり、唯一必要な動作は、モバイル装置１０に設けられているオブジェクト記憶装置１８または他の一時メモリに情報を格納することである。かかる場合、キーボード３２またはディスプレイ３４を起動またはオンにする必要はない。プロセッサ２０は、単に、モバイル装置１０のメモリに情報を格納する等の必要な動作を実行するのみであり、その後サスペンドモードに戻る。そして、動作フローはステップ８２に戻り、無線受信機は更に送信される情報を待つ。
【００４３】
このように、ステップ９０および９４は、情報を処理するためにモバイル装置１０の部分的ウェイクアップのみが実行されるために電力消費がいかに節約されるかを示す。言換えれば、情報を処理するために必要なコンポーネントのみがオンとなる一方で、ディスプレイ３４等の他のコンポーネントはオフのままであるため、電力が節約され、電池寿命が延長される。
【００４４】
図７は、無線受信機２７およびモバイル装置１０の詳細な動作方法を示す。概して、無線受信機２７およびモバイル装置１０は、３タイプの着信メッセージを処理する。第１のタイプのメッセージは、モバイル装置１０に関係がなく、破棄される。第２のタイプのメッセージは、モバイル装置１０のためのものであるが、後の別の処理のために今受信することができるか、あるいは、後に受信および処理することができるものである。第３のタイプのメッセージは、即時に処理しなければならずユーザとの対話を必要とする高優先度のメッセージである。これらメッセージはすべて、図７の方法によって効率的に処理されることにより、電力が節約され電池の寿命が最大化される。
【００４５】
図７において、ステップ１０４に示すように、無線受信機２７により無線データ１０２が受信される。ステップ１０６では、プロセッサ６２により無線情報が検査され、その情報の無線アドレスがモバイル装置１０に関係するか否か確かめられる。一般に、無線受信機２７は、複数の無線アドレスに応答するよう構成され、各無線アドレスが１つまたは複数のサービスによって使用されることにより、モバイル装置１０に情報が送信される。例えば、１つの無線アドレスを使用して、モバイル装置１０に高優先度または個人的なメッセージを送信することができる一方で、他の無線アドレスが１つまたは複数のサービスによって使用されることによりモバイル装置１０に他の情報が送信される。ステップ１０６において、プロセッサ６２は、無線情報がモバイル装置１０の有効な無線アドレスに関係するか否かを確かめる。無線情報は、モバイル装置１０に関係していない場合、ステップ１０８において破棄される。
【００４６】
ステップ１１０において、モバイル装置１０の有効な情報は、無線受信機２７のメモリ６４に格納される。このステップでは、プロセッサ６２は、情報のすべてをメモリ６４に格納することができるか否か、あるいは、モバイル装置１０が少なくとも部分的にウェイクアップしていなければならないか否かを確かめる。全着信情報をメモリ６４に格納することができ、その情報の優先度が高くない場合、ステップ１１２において、プロセッサ６２は着信情報を格納する。一方、プロセッサ６２が、着信情報をメモリ６４に完全に格納することができないか、または着信情報が例えばその無線アドレスに基づいて高優先度メッセージに関係していると判断した場合、ステップ１１４において、モバイル装置１０のプロセッサ２０をウェイクアップさせる割込み要求が生成される。
【００４７】
この点で、メモリ６４のサイズは、無線情報が無線受信機２７によって受信される速度と、モバイル装置１０のプロセッサ２０がウェイクアップしメモリ６４から情報を抽出し始めるために必要な時間量と、に比例しているということは留意されるべきである。１つの実施の形態では、プロセッサ２０がウェイクアップするまで、無線受信機２７には、情報を格納するために最低量のメモリが提供される。この方法では、無線受信機２７に存在するメモリ６４のサイズが小さくなり、それにより無線受信機２７の全体のサイズが低減されると共にそのコストが低減される。
【００４８】
ステップ１１６において、モバイル装置１０のプロセッサ２０は、ここではハードウェア抽象化層（hardware abstraction layer（ＨＡＬ））と呼ばれるコードの初期体を実行する。ＨＡＬウェイクアップコードの一部として、ＨＡＬは、ここではCheckAndProcessRadioWakeup()として識別される関数を呼出すことができる。概して、この関数は、無線受信機２７があるサービスを必要とするか否か、およびこのサービスをＨＡＬ内で処理することができるか否か、または装置の更なるコンポーネントを起動する必要があるか否かをチェックする。戻り値には、（１）無線受信機２７がサービスされていること、および他のコンポーネントを起動する必要のないことを示す第１の値（ここでは、第１の値は「HRADIO NOCONTINUE」である）、（２）ディスプレイ３４をオンとすべきであることを示す第２の値（ここでは、第２の値は「HRADIO CONTINUE VIDEO ON」である）、および（３）ディスプレイ３４をオンとすべきではないことを示す第３の値（ここでは、第３の値は「HRADIO CONTINUE VIDEO OFF」である）がある。他のウェイクアップイベントが発生する場合、戻り値を無視することができる、ということは留意されるべきである。例えば、無線割込みが受信されるのとほぼ同時にユーザが電源ボタン４０を押下した場合、および戻り値が「HRADIO NOCONTINE」または「HRADIO CONTINUE VIDEO OFF」である場合、その戻り値は無視される。１つの実施の形態では、無線受信機２７は、戻り値を示す情報を、ＨＡＬプログラムによってアクセス可能なデータブロック内に登録する。この関数については、付録において他の関数および関連する情報と共に更に詳細に述べられている。
【００４９】
戻り値に基づき、プロセッサ２０は、メモリ６４に格納された情報を検索し、それを検査することによって、プロセッサが、ここではＨＡＬバッファ１２０と呼ばれる一時バッファに情報を一時的に格納することができるか否かを判断する。ＨＡＬバッファ１２０への一時的格納が可能である場合、プログラムフローはステップ１１８に進み、プロセッサ２０はデバイスドライババッファリングルーチンを実行し、それによってステップ１２０に示すようにＨＡＬバッファ１２０に情報が格納される。そして、プロセッサ２０は、ステップ１２２に示すようにサスペンド状態に戻る。
【００５０】
一方、ステップ１１６において、プロセッサ２０は、例えば、情報の優先度が高いかまたはその長さがＨＡＬバッファ１２０において使用可能な記憶領域を超過している場合に、ＨＡＬバッファ１２０に情報を格納することができないと判断した場合、そのウェイクアップ処理を継続し、ステップ１２４においてカーネルがロードされる。そして、ステップ１２６において、ディスプレイドライバ、シリアルポートドライバ等のデバイスドライバの各々がロードされる。ロードされる１つの特定のドライバは、ステップ１２８において示されているようにフィルタリングライブラリ関数を実行するデバイスドライバであり、これについては後に詳述する。このデバイスドライバは、ステップ１３０において、情報を検査することにより、その情報がモバイル装置１０に適しているか否かを判断する。モバイル装置１０によって認識される無線アドレスに対応していない場合に情報が破棄されるステップ１０６とは対照的に、ステップ１３０では、情報は、そのコンテントに基づいてモバイル装置１０に適していない場合に破棄される。例えば、ユーザは、フットボールのスコアのみを受信したいが他のスポーツのスコアは受信したくない場合がある。しかしながら、特定の無線アドレスに関連してすべてのスポーツのスコアが送信され、野球のスコアに関する情報はフットボールのスコアについての正確な無線アドレスに関連して送信されているため、ステップ１０６において破棄されない。しかしながら、ステップ１３０において、その情報の内容が検査されることによって、野球のスコアは破棄されるが、フットボールのスコアは保持される。ステップ１１６〜１２８は、非常に効率的であり迅速である。特に、フィルタリングステップ１２８では、情報の最初の数バイトを検査し、その情報を保持すべきかまたは破棄すべきかを迅速に決定することができる。検査するバイトの数および位置は、無線情報搬送業者とソフトウェア開発業者との間で予め決定され合意されている。最初の数バイトのみを検査することにより、フィルタリングステップ１２８は、迅速に実行することができ（プロセッサ２０が立ち上がっている時間は短くなる）開始すべきオペレーティングシステムサービスのすべてを必要としない。ステップ１３２では、適切でない情報が破棄される。なお、ステップ１２８でページャドライバをロードすることにより、ステップ１２０において以前のメッセージからＨＡＬバッファ１２０に格納されたいかなる情報も、検索され処理される、ということが留意されるべきである。
【００５１】
他の実施の形態では、フィルタリングステップ１２８において、以下に説明するようにモバイル装置１０で実行可能なアプリケーションによって設定可能な他のフィルタリングパラメータを含むことができる、ということは留意されるべきである。言換えれば、上述したように、メッセージ内の指定されたバイトに対してフィルタリングするのに加えて、フィルタリングライブラリ関数は、アプリケーションプログラムによって決定される他のフィルタリングパラメータを含むことができる。例えば、ニュースビューワアプリケーションは、モバイル装置１０が常にデジタル画像を拒否し格納せず、付随しているテキストのみを受入れるというフィルタパラメータを設定することができる。このフィルタパラメータを、例えばアプリケーションプログラムインタフェース（ＡＰＩ）を使用して、フィルタリングステップ１２８において、アプリケーションからフィルタリングライブラリに渡すことができる。
【００５２】
情報がモバイル装置１０に適しており、破棄すべきでない場合、プログラムフローはステップ１３４に進み、ユーザとの対話が必要であるか否かを判断する。例えば、メッセージがユーザによる確認を必要とする高優先度のメッセージに関係する場合、モバイル装置１０は、完全にウェイクアップしてディスプレイ３４を駆動することにより、高優先度のメッセージを受信したことを示す。ステップ１３６において、完全なウェイクアップが示されている。
【００５３】
情報がユーザとの対話を必要としない場合、プログラムフローはステップ１３８に進む。ステップ１３８では、バッファ空間が存在し、かつそれ以上の処理が必要でない場合、プロセッサ２０は、ステップ１４０においてバッファデータルーチンを実行することにより、ステップ１４２において情報を格納する。そして、プロセッサ２０は、ステップ１２２においてサスペンド状態に戻る。ステップ１３８において、バッファ空間が存在しない場合、モバイル装置１０は、ステップ１４４において、ディスプレイ３４無しでパワーアップされる。その後、情報はステップ１４６において処理されるか、または追加のバッファ空間が取得される。必要ならば、オブジェクト記憶装置１８においてアクセスおよび格納を行うことができる。そして、プロセッサ２０は、ステップ１２２においてサスペンド状態に戻る。ユーザ入力／出力（Ｉ／Ｏ）装置（ディスプレイ３４およびキーボード３２）に電力が供給されていないため、かなりの電力が節約されている、ということは留意されるべきである。しかしながら、ユーザがモバイル装置１０を起動してオンとする場合、ディスプレイ３４は即時にイネーブルとなる。
【００５４】
モバイル装置１０は、ユーザがＩ／Ｏコンポーネント２４を使用してモバイル装置１０と積極的に対話するかしないかに関わらず、この背景において、上述した方法に従って着信無線メッセージを処理する。ユーザがモバイル装置１０をオフにする場合、無線受信機２７は着信メッセージを受信するよう電源が供給されたままである、ということは留意されるべきである。ユーザが着信メッセージの処理中に電源をオフにする場合、ディスプレイ３４は、モバイル装置１０の少なくとも部分的なシャットダウンを示すようにオフとなるが、上述した手続きに従って、着信メッセージは処理される。
【００５５】
図８は、無線受信機２７が受信するウェブコンテントデータの情報パケット１６０の１つの実施の形態を示す。無線受信機２７は、実質的にいかなるフォーマットのメッセージも受信することができる。無線受信機２７によって受信するために、多くの異なるタイプのヘッダフォーマットを定義することができる。図８は、パケットフォーマットの単に１つの例示的なタイプを示す。
【００５６】
情報パケット１６０は、好ましくは、無線トランスポートヘッダ１６２、グループアドレスバイト１６４、トピックフィルタリングバイト１６６、ルーティングヘッダ１６８およびデータ１７０等、複数の部分を有している。無線トランスポートヘッダ１６２は、無線アドレス（キャップコード）情報を含む。上述したように、無線アドレス情報は、図５に示すＲＦ受信機６０（または他の同様なタイプの無線カード）に無線メッセージを送信するために使用される識別子である。１つの実施の形態において、無線トランスポートヘッダ１６２は、１６の異なるアドレスをサポートする。ＲＦ受信機６０は、無線アドレスのいずれとも一致しない無線メッセージをフィルタリングし破棄する。一致が観測された場合、ＲＦ受信機６０は、それにアドレス指定されている可能性のある無線メッセージを検出して、そのメッセージを受信し更に処理しなければならない。
【００５７】
また、グループアドレスバイト１６４およびトピックフィルタリングバイト１６６も与えられている。ここで述べられているように、グループアドレスは、本発明に従ってアドレスのフィルタリング機能を拡張するために使用される無線アドレスのサブクラスである。更に、トピックは、無線アドレスまたはグループアドレスのサブクラスであり、それもまた無線アドレスおよびグループアドレス情報のフィルタリング機能を拡張するために与えられている。
【００５８】
適当なアドレスで無線受信機２７に到着する情報パケット１６０は、予め添付されるグループアドレスバイト１６４およびトピックフィルタリングバイト１６６を有していない場合がある、ということは留意されるべきである。しかしながら、それらバイトが存在する場合、ドライバ２００（図９）は、グループおよびトピックフィルタリングバイトに基づいて情報パケット１６０をフィルタリングするよう動作する。
【００５９】
ドライバ２００は、まず情報パケット１６０を検査して、情報パケット１６０にグループおよびトピックフィルタリングバイトが含まれているか否かを決定するロジックを実行する。１つの実施の形態では、ドライバ２００は、関数AnalyzeMessage()を含むライブラリをサポートする。AnalyzeMessage関数は、着信メッセージのサービスグループコードと他の情報とを分離する。グループおよびトピックフィルタリングバイトが存在する場合、グループおよびトピックフィルタリング関数が実行されなければならない。
【００６０】
１つの実施の形態では、モバイル装置１０は、グループテーブルを含むメモリを有している。簡単に言えば、グループテーブルは、サービスグループのエントリを含んでおり、それらの各々は、あらゆる適切なアドレスに関連付けることができる。また、好ましくは、１つのアドレスにあらゆる適切な数のサービスグループを関連付けることができる。このように、１つの実施の形態では、グループテーブルのグループエントリは、アドレスナンバによってソートされた後、サービスグループコードによってソートされる。
【００６１】
グループまたはトピックフィルタリングバイトが検出された場合、ドライバ２００は、グループテーブルを探索して、情報パケット１６０において検出されるサービスグループコードがグループテーブルにリスト化されているか否か、およびそれがアクティブであるか非アクティブであるかを判断する。サービルグループコードがテーブル内に見つからない場合、あるいは、それが見つかったが非アクティブ化されている（または使用不可である）場合、ドライバ２００は、その情報パケット１６０を破棄し、そのメッセージに関してそれ以上処理が行われない。しかしながら、ドライバ２００が、グループアドレスバイト１６４がグループテーブルに含まれていると判断した場合、メッセージはその特定のモバイル装置１０に対して向けられたと判断され、存在する場合はトピックフィルタリングバイト１６６に対して他の処理が続く。トピックフィルタリングについては、後により詳細に述べる。
【００６２】
すべてのグループおよびトピックフィルタリングは、ドライバ２００のレベルで行われるため、モバイル装置１０のプロトコルスタックまたはシステムアーキテクチャにおいてほとんど発生しない。このため、フィルタリングは処理の初期に発生し、アドレスおよびメッセージに要求される記憶空間は非常に少ない。更に、ドライバ２００自体がこのフィルタリングの大半を実行するため、グループおよびトピックフィルタリングバイトにより、モバイル装置１０で実行中のいかなるアプリケーションも、ドライバ２００のレベルでフィルタリングするために正確なフィルタリング情報をグループおよびトピックテーブルに渡すことができる。これによって、フィルタリングされる前に、モバイル装置１０のプロトコルスタックまたはアーキテクチャにおいて、アプリケーションレベルまでずっとメッセージが受信され、処理され渡される必要がないため、以前の設計に比べて電力消費が大幅に改善される。
【００６３】
図９は、格納またはより高レベルのアプリケーションモジュールに対する引渡しに先立って、トピックフィルタバイト１６６に基づいて入力メッセージをフィルタリングするハードウェアおよびソフトウェアモジュールを示している。一般に、一例としての実施の形態では、モジュールには、無線受信機２７から上述した一例としてのフォーマットのメッセージを受信するドライバ２００が含まれる。入力メッセージがトピックフィルタバイト１６６を含む場合、ドライバ２００は、トピックフィルタバイト１６６を予め格納されたコンテントフィルタデータ２０６と比較する、トピックフィルタモジュール２０４を実行する。トピックフィルタバイト１６６が、コンテントフィルタデータ２０６によって示されるようなユーザの嗜好に対応している場合、ドライバ２００は、情報を、記憶装置１８に格納するためおよび／または２０８，２０９，２１０で示されるより高レベルのアプリケーションモジュールによって使用されるために、モバイル装置アーキテクチャにおいて上方に渡す。示されている実施の形態では、ルーティングモジュール２１２は、ドライバ２００から少なくともデータ１７０を受信するために与えられている。ルーティングモジュール２１２は、要求されまたはルーティングヘッダ１６８（図８）によって与えられるように、記憶装置１８またはアプリケーションモジュール２０８〜２１０のいずれかに対し入力メッセージを転送する。ドライバ２００とルーティングモジュール２１２との間の通信は、標準ＡＰＩを用いることによって実現することができる。
【００６４】
図１０は、入力メッセージまたは情報パケット１６０をフィルタリングするために使用されるコンテントフィルタデータ２０６を取得し生成する方法２２０を示す。ステップ２２２において、フィルタリングされるコンテントについてユーザ嗜好（preference）が取得される。一般に、ユーザは、自身が情報を受信したいかまたは受信したくないかを示す個々のインジケータ、インジケータの範囲またはインジケータのセットを提供する。例えば、インジケータは、一般にコンテントをフィルタリングするために使用されるよう情報源プロバイダ１３と予め合意されている、キーワード、文字、数字等を含むことができる。望ましい場合は、受信されるすべてのパケットに対してハッシュ関数を使用することができ、あるいは、受信されるコンテント情報のタイプに基づいて、ハッシュ関数を選択することができる。例えば、第１のハッシュ関数を、ＡＳＣＩＩストリングのために使用することができ、一方で、他のハッシュ関数を、数値データ、非ＡＣＳＩＩＵユニコードデータ、バイナリデータ等に使用することができる。他のアプリケーションでは、トピックフィルタバイト１６６のインジケータを、ジップコード（郵便番号）データとして、地域特定のフィルタリングを受けることができる。更に他のアプリケーションでは、トピックフィルタバイトをブロードキャスト情報の「チャネル」のためのニーモニックコードとすることができ、それによってユーザが特定のチャネルに対し加入するかまたは加入しないようにすることができる。図９を再び参照すると、ユーザインタフェースモジュール２２８は、ユーザからインジケータを取得する。ユーザインタフェースモジュール２２８は、アプリケーションモジュール２０８〜２１０によってアクセスされるか、またはアプリケーションモジュール２０８〜２１０に組込まれることが可能である。
【００６５】
ステップ２２２において、コンテントフィルタリングに対してユーザ嗜好を取得すると、ステップ２３０において、コンテントフィルタデータ２０６が生成される。１つの実施の形態では、コンテントフィルタリングを着信メッセージの無線アドレスまたはグループアドレスの関数として実行することができるために、コンテントフィルタデータ２０６は、無線アドレスまたはグループアドレスの関数として編成されている。示されている実施の形態では、複数のフィルタデータテーブル２３２Ａ，２３２Ｂ，２３２Ｃ，２３２Ｄが示されており、そこでは、各フィルタデータテーブル２３２Ａ〜２３２Ｄは、無線アドレスまたはグループアドレスに関連付けられている。１つの実施の形態では、フィルタデータテーブル２３２Ａ〜２３２Ｄは、ユーザによって提供されるインジケータを単純に含むことができる。しかしながら、メモリ資源を節約するために、インジケータを他のより小さい表現に変換することが有利である。例えば、各インジケータに対して一意の整数（小さい範囲内の）が取得される変換関数を実行することができる。そして、その一意の整数を、対応するフィルタデータテーブル２３２Ａ〜２３２Ｄに格納することができる。別の実施の形態では、フィルタデータテーブル２３２Ａ〜２３２Ｄの各々はビットアレイを有することができ、そこでは、前記一意の整数がアレイへのオフセットとして使用され、各ビットは、セット（「１」）された場合、対応するコンテントが望まれていることを示し、ビットがリセット（「０」）された場合、対応するコンテントは望まれていないことを示す。更に他の実施の形態において、一意の整数の数値の範囲が大きくなりすぎた場合にハッシュ関数を使用することができる。しかしながら、整数はもはや一意ではなくなるため、着信メッセージのトピックフィルタバイト１６６が所望のコンテント情報の整数に対応する場合、望ましくないコンテント情報が取得される可能性がある。
【００６６】
ステップ２３６において、ドライバ２００がアクセス可能なメモリに、コンテントフィルタデータ２０６が格納される。１つの実施の形態では、コンテントフィルタデータ２０６か、あるいは１つまたは複数のフィルタデータテーブル２３２Ａ〜２３２Ｄ等のより小さい部分が、ユーザインタフェースモジュール２２８によってアクセス可能なメモリ２４４内に生成され、その後、ドライバ２００にアクセス可能なメモリに、例えばドライバ２００を介して全体として転送される。あるいは、ドライバ２００は、必要なメモリを割当てることができ、その場合、コンテントフィルタデータ２０６かまたはフィルタデータテーブル２３２Ａ〜２３２Ｄ等のその一部が、ユーザ嗜好に従って漸次的に更新されるかまたは生成される。
【００６７】
図１１は、モバイル装置１０によって認識される無線アドレスまたはグループアドレスに送信された着信メッセージを処理する方法２５０を示す。ステップ２５２において、ドライバ２００は、着信メッセージを受信する。ステップ２５４において、ドライバ２００は、上述したAnalyzeMessage()関数を使用してメッセージを分析し、着信メッセージがコンテントフィルタリングに対してトピックフィルタバイト１６６を含むか否かを確かめる。メッセージがトピックフィルタバイト１６６を含まない場合、動作フローはステップ２５６に進み、ドライバ２００はその着信メッセージを記憶装置１８、より上位のアプリケーションモジュール２０８〜２１０かまたは示されている実施の形態ではルーティングモジュール２１２に渡す。
【００６８】
しかしながら、ステップ２５４で検出されるように、着信メッセージがトピックフィルタバイトを含む場合、動作フローはステップ２５８に進み、ドライバ２００は、トピックフィルタモジュール２０４に対しトピックフィルタバイト１６６を供給する。トピックフィルタモジュール２０４は、トピックフィルタバイト１６６をコンテントフィルタデータ２０６と比較する。示されている実施の形態では、トピックフィルタモジュール２０４は、着信メッセージが送信される先である無線アドレスまたはグループアドレスに対応するフィルタデータテーブル２３２Ａ〜２３２Ｄにアクセスする。フィルタデータテーブル２３２Ａ〜２３２Ｄが、ハッシュ関数を用いて生成されている場合、トピックフィルタモジュール２０４は、トピックフィルタバイト１６６に対してハッシュ関数を動作させることにより、着信メッセージが所望のコンテントに関係するか否かを確かめる。なお、データパケット１６０を無線ネットワークに送信するために、トピックフィルタバイト１６６を、圧縮された状態および／またはＵＮＩＣＯＤＥ等のプロトコルフォーマットとすることができる、ということは留意されるべきである。かかる場合、トピックフィルタモジュール２０４は、コンテントフィルタデータ２０６との比較を行うために、必要に応じてトピックフィルタバイト１６６に対し作用する。また、各フィルタデータテーブル２３２Ａ〜２３２Ｄに対し、同じハッシュ関数を使用する必要はない、ということは留意されるべきである。むしろ、１つまたは複数のフィルタデータテーブル２３２Ａ〜２３２Ｄに対し、異なるハッシュ関数を使用することができる。トピックフィルタモジュール２０４は、無線アドレスまたはグループアドレスに従ってハッシュ関数のテーブルを保持することができ、メッセージの送信された先である無線アドレスまたはグループアドレスに基づいてこのテーブルにアクセスすることができる。
【００６９】
トピックフィルタモジュール２０４は、着信メッセージがユーザの嗜好に関係するか否かの指示を出力として提供する。着信メッセージが、コンテントフィルタデータ２０６と比較して所望のコンテント情報に関係している場合、動作フローはステップ２５６に進み、ドライバ２００は、上述したようにモバイル装置１０のアーキテクチャにおいてメッセージの少なくともデータ部分を更に転送する。そうでなければ、動作フローはステップ２６０に進み、ドライバ２００によってメッセージが破棄される。ドライバ２００とトピックフィルタモジュール２０４の機能が分割されているように示されているが、これらの機能は、ドライバ２００のみによって実行することも、一例としての実施の形態で示されている２つのモジュール以上に更に分割することも可能である、ということは理解されるべきである。
【００７０】
１つの実施の形態において、動作パラメータを選択しおよび／またはコンテントフィルタデータ２０６にアクセスするために、ＡＰＩが与えられることにより、アプリケーションモジュール２０８〜２１０がドライバ２００と動作することができる。一例としてのＡＰＩには、以下のものがある。
【００７１】
IsGroupTagRegistered (LPWSTR sxGroupTag, Bool *fResult, LPDWORD pdwDevice)
このＡＰＩにより、アプリケーションモジュールはドライバ２００に問合わせて、アドレスまたはグループアドレスにコンテントフィルタリングが実行されるか否かを確かめることができる。上述したように、ドライバ２００は、アドレスまたはグループアドレスに対応するフィルタデータテーブルの存在に関系なく、アドレスまたはグループアドレスの関数としてコンテントフィルタリングが可能か不可能かを示すテーブルまたは他のリストを保持することができる。これにより、アドレスまたはグループアドレスの関数としてコンテントフィルタリングを容易に可能にするか不可能にすることができる。このＡＰＩは、「fResult」において、「szGroupTag」によって与えられるようなグループアドレスが登録されているか否かに関する「真（true）」または「偽（false）」を返す。
【００７２】
CreateFilterTable (HANDLE *phFTABLE, DWORD dwNumEntries, WIS FILTER TABLE wftFilterType)
このＡＰＩにより、アプリケーションモジュールは、テーブルの適当なサイズまたはエントリが「dwNumEntries」で与えられるフィルタデータテーブルを生成することができる。ドライバ２００またはユーザインタフェースモジュール２２８は、コンテントフィルタデータ２０６またはメモリ２４４についてそれぞれメモリに必要な空間を割当て、アプリケーションモジュールに対し「phFTable」におけるハンドルまたはポインタを戻す。なお、フィルタデータテーブルは、まずメモリ２４４において生成され、後にドライバ２００によってアクセス可能なメモリに転送されることが可能である、ということは留意されるべきである。
【００７３】
示されている実施の形態では、このＡＰＩは、ここで「wftFilterType」として示される入力を含むことができ、これは、予め定義されたフィルタ関数を選択するために使用することができる。例えば、第１の値を提供して、無線アドレスまたはグループアドレスに送信されるすべてのメッセージが受入れられるということを示すことができる。第２の値を提供して、すべてのメッセージが拒否されるということを示すことができる。第３の値を提供して、ハッシュ関数等の予め選択されたフィルタリング関数が使用されることを示すことができる。（他のフィルタリング関数は、個々のコンテント情報、コンテント情報のセットまたは範囲を含むことができる。）第４の値を提供して、コンテントフィルタリングが開始する前に、特定のタイプのデータが最初に受信される必要のあることを示すことができる。後者は恐らく、一例としてもっともよく示されている。「CHANNEL DEFINITION ARCHITECTURE EXTENSION」と題された同時係属出願において、チャネル定義フォーマット（channel definition format（ＣＤＦ））ファイル、スクリプトファイルのセットおよびデータファイルのセットを用いて、Ｗｅｂまたはインタネットがモバイル装置に表現(render)されるシステムおよび方法が述べられている。簡単に述べると、モバイル装置におけるコンテントのナビゲーションが、スクリプトファイルおよびデータファイルへの参照を含むＣＤＦファイルを用いて実行される。コンテントの１つの特定のページが表示される場合、スクリプトファイルがアクセスされ、所望の情報を表現するべくデータファイルに対して作用するために使用される。一般に、データファイルのみが時間によって変化するため、このアーキテクチャにより、データファイルの無線更新が可能となる。しかしながら、望ましい場合、ＣＤＦファイルおよびスクリプトファイルもまた無線で更新することができる。データファイル、スクリプトファイルおよびＣＤＦファイルの各々は、関連付けられた識別子を有する。
【００７４】
かかるシステムにおいて、コンテントフィルタリングを、表示されるべき特定のデータの関数として提供することができる。例えば、ユーザは、フットボールまたは野球の記事（ある識別子に関連付けられている）に関する情報のみを必要とし、ホッケーに関する記事（別の識別子に関連付けられている）はまったく必要としていない場合がある。上述したようにトピックフィルタバイト１６６を使用して、ユーザはそれに従って識別子を用いてデータファイルをフィルタリングすることができる。しかしながら、このシステムでは上述したように、データファイルを表示するために、表現時に、アプリケーションモジュールがデータの表現にいずれのスクリプトファイルを使用すべきかを知るよう、ユーザがＣＤＦファイルを受信することが必要である。第４の値を使用して、いかなるコンテントフィルタリングも実行される前にＣＤＦファイルが受信されなければならないことを示すことができる。ＣＤＦファイルを受信すると、その後このＡＰＩを使用して、例えば第３の値を提供することによりコンテントフィルタリングを開始することができる。
【００７５】
SetHashValue (HANDLE hFTable, LPWSTR szValue)
このＡＰＩは、ハッシュ関数に従ってセットされるビットアレイを含むフィルタデータテーブルに従って使用される。特に、ハッシュ関数は、「szValue」によって与えられる入力に適用され、この場合、ハンドルまたはポインタ「hFTable」によって示されるフィルタデータテーブルは、所望のコンテントに反映させるために更新される。
【００７６】
SetPreference (HANDLE hFTable, DWORD dwPreferences)
このＡＰＩにより、フィルタデータテーブル２３２Ａ〜２３２Ｄの各々に対し追加情報を格納することができる。図９を再び参照すると、フィルタデータテーブル２３２Ａ〜２３２Ｄの各々に対し、追加情報が各々２７０Ａ，２７０Ｂ，２７０Ｃ，２７０Ｄで示されている。１つの実施の形態において、追加情報２７０Ａ〜２７０Ｄは、無線アドレスまたはグループアドレスに従って送信された場合、着信メッセージに適用されるグローバルな嗜好を格納することができる。例えば、データフィルタテーブル２３２Ａは、選択された「チャネル」に提供されるフットボールおよび野球の記事に対応することができる。望ましい場合、アプリケーションモジュールは、テキスト情報のみがドライバ２００から提供され、例えば、画像に関係するデータが破棄されることを示す値を部分２７０Ａに格納することができる。示されている実施の形態では、対応するフィルタデータテーブル２３２Ａ〜２３２Ｄがアクセスされる場合、トピックフィルタモジュール２０４は、追加情報２７０Ａ〜２７０Ｄにアクセスする。この情報は、ドライバ２００に提供され、メッセージは追加情報２７０Ａ〜２７０Ｄによって更にフィルタリングされる。代替的な実施の形態において、すべてのフィルタリング関数は、トピックフィルタモジュール２０４によって実行することができ、それによってドライバ２００は、モバイル装置１０のより高レベルのモジュールに転送されるメッセージのその部分のみを受信する。
【００７７】
RegisterFilterTable (HANDLE hFTable, LPWSTR szGroupTag, LPDWORD pdwDevice)
このＡＰＩは、データフィルタテーブルを選択されたアドレスまたはグループアドレスに関連付ける。上述したように、１つの実施の形態では、フィルタデータテーブルを、アプリケーションモジュール２０８〜２１０に関連付けられたより高レベルのメモリ２４４において生成することができる。このＡＰＩは、ドライバ２００によってアクセス可能なメモリに、生成されたデータフィルタテーブル（および、存在する場合は関連する追加情報）をコピーする。なお、このＡＰＩにより、アプリケーションプログラムがデータフィルタテーブルを無線アドレスまたはグループアドレスから分離させることができる、ということは留意されるべきである。示されている実施の形態において、「hFTable」に対する「ヌル（null）」値により、ドライバ２００は、「szGroupTable」によって与えられるアドレスまたはグループアドレスについて、それがアクセス可能なメモリのフィルタデータテーブルを分離する。
【００７８】
DestroyFilterTable (HANDL hFTable)
このＡＰＩは、フィルタデータテーブルを生成するためにアプリケーションプログラムモジュールによりアクセス可能な高レベルメモリ２４４を解放する。なお、このＡＰＩは、ドライバ２００のレベルでアドレスまたはグループアドレスからデータフィルタテーブルを分離しない、ということは留意されるべきである。
【００７９】
本発明を好ましい実施の形態を参照して説明したが、当業者は、本発明の精神および範囲を逸脱することなく形態および詳細において変形を行うことができるということを理解するであろう。
【００８０】
0004243428.tif 000002
0004243428.tif 000003
0004243428.tif 000004
0004243428.tif 000005
0004243428.tif 000006
0004243428.tif 000007
0004243428.tif 000008
0004243428.tif 000009
0004243428.tif 000010
0004243428.tif 000011
0004243428.tif 000012
0004243428.tif 000013
0004243428.tif 000014
0004243428.tif 000015
0004243428.tif 000016
0004243428.tif 000017
0004243428.tif 000018
0004243428.tif 000019
0004243428.tif 000020
0004243428.tif 000021
0004243428.tif 000022
0004243428.tif 000023
0004243428.tif 000024
0004243428.tif 000025
0004243428.tif 000026
0004243428.tif 000027
0004243428.tif 000028
0004243428.tif 000029
0004243428.tif 000030
0004243428.tif 000031
0004243428.tif 000032
0004243428.tif 000033
0004243428.tif 000034
0004243428.tif 000035
0004243428.tif 000036
0004243428.tif 000037
【図面の簡単な説明】
【図１】本発明によるモバイル装置の１つの実施の形態を示す簡易ブロック図。
【図２】図１に示すモバイル装置の１つの実施の形態のより詳細なブロック図。
【図３】本発明によるモバイル装置の１つの実施の形態の簡易絵画図。
【図４】本発明によるモバイル装置の他の実施の形態の簡易絵画図。
【図５】本発明による無線受信機の簡易略図。
【図６】無線受信機およびモバイル装置の動作方法を示すフローチャート。
【図７】無線受信機およびモバイル装置の動作を説明する詳細なフローチャート。
【図８】本発明の一態様によりモバイル装置に送信されるメッセージパケットの一般的な構成を示す。
【図９】コンテントに基づいてフィルタリングするモバイル装置のモジュールを示すブロック図。
【図１０】コンテントフィルタデータを取得し生成する方法を示すフローチャート。
【図１１】コンテントフィルタデータを使用してメッセージをフィルタリングする方法を示すフローチャート。
【図１】
0004243428.tif 000038
【図２】
0004243428.tif 000039
【図３】
0004243428.tif 000040
【図４】
0004243428.tif 000041
【図５】
0004243428.tif 000042
【図６】
0004243428.tif 000043
【図７】
0004243428.tif 000044
【図８】
0004243428.tif 000045
【図９】
0004243428.tif 000046
【図１０】
0004243428.tif 000047
【図１１】
0004243428.tif 000048