(57)【要約】  ドキュメントを処理するシステムおよび方法が開示される。データサーバで受信されるドキュメントは、ローカルに格納されたか、または、生成されたコードブックを用いてコード変換される。ワイヤレスモバイル通信デバイスで受信されたコード変換されたドキュメントのコードブックは、デバイスのメモリから取り出されるか、または、データサーバからリクエストされる。コードブックリクエストに応じて、データサーバは、ローカルメモリからリクエストされたコードブックを取り出すか、または、リクエストされたコードブックを生成して、そのリクエストされたコードブックをリクエスト側に返す。ワイヤレスモバイル通信デバイスはまた、ローカルに格納されたコードブック、ローカルに生成されたコードブック、または、コードブックリクエストに応じて受信されたコードブックを用いてＸＭＬドキュメントを生成およびコード変換し得る。
2005510804.tif 000002
【特許請求の範囲】
【請求項１】
ワイヤレスモバイル通信デバイスにおける拡張可能マークアップ言語（ＸＭＬ）ドキュメントを処理する方法であって、
データサーバから処理済みドキュメントを受信するステップであって、該処理済みドキュメントは、コードブックを用いてＸＭＬドキュメントをコード変換することによって生成される、ステップと、
該コードブックが該ワイヤレスモバイル通信デバイスに格納されているかどうかを判定するステップと、
該コードブックが該ワイヤレスモバイル通信デバイスに格納されていない場合、該データサーバから該コードブックをリクエストするステップと、
該データサーバから該コードブックを受信するステップと、
該コードブックを用いて該処理済みドキュメントをコード変換して、該ＸＭＬドキュメントを復元するステップと
を包含する、方法。
【請求項２】
前記処理済みドキュメントは、情報ソースによって生成され、前記データサーバへ提供される、請求項１に記載の方法。
【請求項３】
前記処理済みドキュメントは、前記データサーバによって生成される、請求項１に記載の方法。
【請求項４】
前記ＸＭＬドキュメントは、ドキュメント定義に関連付けられ、前記データサーバは、該ドキュメント定義を取り出し、外部定義に基づいて前記コードブックを生成する、請求項３に記載の方法。
【請求項５】
前記データサーバにおいて、
前記情報ソースから前記ＸＭＬドキュメントを受信するステップと、
前記コードブックを取り出すステップと、
該コードブックを用いて該ＸＭＬドキュメントをコード変換して、前記処理済みドキュメントを生成するステップと、
該処理済みドキュメントを前記ワイヤレスモバイル通信デバイスに送信するステップと
をさらに包含する、請求項３に記載の方法。
【請求項６】
前記処理済みドキュメントは、識別子を含み、前記判定するステップは、
該処理済みドキュメント内の該識別子を判定するステップと、
該識別子に対応するコードブックが前記ワイヤレスモバイル通信デバイスに格納されているかどうかを判定するステップと
を包含する、請求項１に記載の方法。
【請求項７】
前記リクエストするステップは、コードブックリクエストを前記データサーバに送信するステップを包含し、前記方法は、
該データサーバにおいて、
該コードブックリクエストを受信するステップと、
該コードブックリクエストに応答して該コードブックを取り出すステップと、
該コードブックを前記ワイヤレスモバイル通信デバイスに返すステップと
をさらに包含する、請求項１に記載の方法。
【請求項８】
前記取り出すステップは、
前記コードブックが前記データサーバにおけるメモリに格納されているかどうかを判定するステップと、
該コードブックが該メモリに格納されている場合、該メモリから該コードブックを取り出すステップと
を包含する、請求項７に記載の方法。
【請求項９】
前記取り出すステップは、
前記コードブックが前記メモリに格納されていない場合、
前記ＸＭＬドキュメントに関連付けされた定義を取り出すステップと、
該定義から該コードブックを生成するステップと
を包含する、請求項８に記載の方法。
【請求項１０】
前記生成されたコードブックを前記メモリに格納するステップをさらに包含する、請求項９に記載の方法。
【請求項１１】
前記受信したコードブックを前記ワイヤレスモバイル通信デバイスに格納するステップをさらに包含する、請求項１に記載の方法。
【請求項１２】
前記処理済みドキュメントは、ワイヤレスアプリケーションプロトコル（ＷＡＰ）バイナリＸＭＬ（ＷＢＸＭＬ）ドキュメントを含む、請求項１に記載の方法。
【請求項１３】
ワイヤレスモバイル通信デバイスにおける拡張可能マークアップ言語（ＸＭＬ）ドキュメントを処理するシステムであって、
データサーバから処理済みドキュメントを受信するように構成される受信機であって、該処理済みドキュメントは、コードブックを用いてＸＭＬドキュメントをコード変換することによって生成される、受信機と、
コードブックを格納するキャッシュを備えるコードブックシステムと、
該受信機および該コードブックシステムに接続されるコード変換システムであって、該処理済みドキュメントをパージングし、該コードブックシステムから該コードブックをリクエストし、該コードブックを用いて該処理済みドキュメントをコード変換して、該ＸＭＬドキュメントを復元するように構成される、コード変換システムと
を備え、
該コードブックシステムは、該コードブックが該コード変換システムによってリクエストされた時に、該コードブックが該キャッシュに格納されているかどうかを判定し、該コードブックが該キャッシュに格納されている場合に、該コード変換システムに該コードブックを提供し、該コードブックが該キャッシュに格納されていない場合に、該データサーバから該コードブックをリクエストし、該データサーバから該コードブックを受信し、該コード変換システムに該コードブックを提供するように構成される、システム。
【請求項１４】
前記処理済みドキュメントは、識別子を含み、前記コード変換システムは、該識別子を含むコードブックリクエストで前記コードブックシステムから前記コードブックをリクエストするように構成され、該コードブックシステムは、該識別子に対応する該コードブックが前記キャッシュに格納されているかどうかを判定する、請求項１３に記載のシステム。
【請求項１５】
前記コード変換システムは、前記処理済みドキュメントをパージングおよびコード変換するように構成されるストリングパーサを備える、請求項１３に記載のシステム。
【請求項１６】
前記コード変換システムは、
前記処理済みドキュメントをパージングされたエレメント要素にパージングするように構成されるバイナリパーサと、
前記ワイヤレスモバイル通信デバイスのソフトウェアアプリケーションに関連付けられ、該パーシングされた要素をコード変換するように構成されるアプリケーションハンドラと
を備える、請求項１３に記載のシステム。
【請求項１７】
組み込まれたエンコードスキームを有する第２のアプリケーションハンドラであって、前記ワイヤレスモバイル通信デバイスの第２のソフトウェアアプリケーションに関連付けられた、第２のアプリケーションハンドラをさらに備え、
前記受信機は、該第２のソフトウェアアプリケーションに関連付けられた第２の処理済みドキュメントを受信するようにさらに構成され、
前記バイナリパーサは、該第２の処理済みドキュメントを第２のパージングされた要素にパージングするように構成され、
該第２のアプリケーションハンドラは、該組み込まれたエンコードスキームに基づいて、該第２の処理済みドキュメントをコード変換するように構成される、請求項１６に記載のシステム。
【請求項１８】
前記コードブックシステムは、前記キャッシュに前記データサーバから受信した前記コードブックを格納するようにさらに構成される、請求項１３に記載のシステム。
【請求項１９】
ドキュメントを処理するシステムであって、
コードブックリクエストを受信し、各コードブックリクエストに応答してコードブックを提供するように構成されるコードブックシステムと、
コードブックを格納するように構成される該コードブックシステム内のメモリと、
ドキュメントを受信し、受信したドキュメントごとに、該コードブックシステムから対応するコードブックをリクエストし、該コードブックを用いて該受信したドキュメントをコード変換するように構成されるコード変換システムと、
コードブックを生成するように構成されるコードブックビルダーと
を備え、
該コードブックシステムは、リクエストされたコードブックが該メモリ内に格納されているかどうかを判定し、該リクエストされたコードブックが該メモリ内に格納されていない場合、該コードブックビルダーを起動して該リクエストされたコードブックをビルドし、該コードブックビルダーから該リクエストされたコードブックを受信するようにさらに構成される、システム。
【請求項２０】
情報ソースからドキュメントを受信し、該ドキュメントを前記コード変換システムに提供するように構成される接続ハンドラをさらに備える、請求項１９に記載のシステム。
【請求項２１】
前記接続ハンドラは、前記コード変換システムからコード変換されたドキュメントを受信し、ワイヤレストランスポートを介してワイヤレスモバイル通信デバイスに該コード変換されたドキュメントを送信するようにさらに構成される、請求項２０に記載のシステム。
【請求項２２】
前記接続ハンドラは、前記ワイヤレストランスポートを介して前記ワイヤレスモバイル通信デバイスから接続リクエストを受信するようにさらに構成され、前記ドキュメントは、該接続リクエストに応答して前記情報ソースからリクエストされる、請求項２１に記載のシステム。
【請求項２３】
前記ワイヤレストランスポートに関連付けられる第１のプロトコルから前記接続ハンドラおよび前記情報ソースに関連付けられる第２のプロトコルへ前記接続リクエストを変換するように構成されるプロトコルトランスレータをさらに備える、請求項２２に記載のシステム。
【請求項２４】
ワイヤレストランスポートを介してワイヤレスモバイル通信デバイスからコードブックのコードブックリクエストを受信し、前記コードブックシステムからコードブックをリクエストし、該ワイヤレストランスポートを介して該ワイヤレスモバイル通信デバイスに該リクエストされたコードブックを返すコードブックサーブレットをさらに備える、請求項１９に記載のシステム。
【請求項２５】
前記コードブックビルダーは、受信されたドキュメントのドキュメント定義を取り出し、前記コードブックシステムが該コードブックビルダーを起動する時に該ドキュメント定義に基づいてコードブックを生成するようにさらに構成される、請求項１９に記載のシステム。
【請求項２６】
前記コードブックシステムは、受信されたドキュメントの前記ドキュメント定義に関連付けられるドキュメント識別子を判定し、前記リクエストされたコードブックが前記メモリ内に格納されていない場合、前記コードブックビルダーに該ドキュメント識別子を提供するようにさらに構成される、請求項２５に記載のシステム。
【請求項２７】
前記ドキュメント識別子は、リソースアドレスであり、該リソースアドレスからの前記ドキュメント定義が利用可能である、請求項２６に記載のシステム。
【請求項２８】
前記ドキュメント定義は、前記受信されたドキュメントに組み込まれ、該受信されたドキュメントから抽出される、請求項２５に記載のシステム。
【請求項２９】
前記コードブックシステムは、前記コードブックビルダーによって生成されたコードブックを前記メモリに格納するようにさらに構成される、請求項１９に記載のシステム。
【請求項３０】
ドキュメントを処理する方法であって、
情報ソースからドキュメントを受信するステップと、
該ドキュメントをコード変換するコードブックがコードブックシステム内に格納されているかどうかを判定するステップと、
該ドキュメントをコード変換する該コードブックが該コードブックシステム内に格納されていない場合、該コードブックを生成するステップと、
該コードブックを用いて該ドキュメントをコード変換し、コード変換されたドキュメントを生成するステップと
を包含する、方法。
【請求項３１】
ワイヤレスネットワークを介してワイヤレスモバイル通信デバイスに前記コード変換されたドキュメントを送信するステップをさらに包含する、請求項３０に記載の方法。
【請求項３２】
前記ワイヤレスネットワークを介して前記ワイヤレスモバイル通信デバイスから前記ドキュメントのリクエストを受信するステップと、
前記情報ソースから該ドキュメントをリクエストするステップと
をさらに包含する、請求項３１に記載の方法。
【請求項３３】
前記リクエストを受信するステップ、前記リクエストするステップ、前記ドキュメントを受信するステップ、前記判定するステップ、前記生成するステップ、前記コード変換するステップ、および、前記送信するステップは、データサーバにおいて実行され、前記方法は、
前記ワイヤレスモバイル通信デバイスにおいて、
該データサーバから前記コード変換されたドキュメントを受信するステップと、
前記コードブックが該ワイヤレスモバイル通信デバイスに格納されているかどうかを判定するステップと、
該コードブックが該ワイヤレスモバイル通信デバイスに格納されていない場合、該データサーバから該コードブックをリクエストするステップと、
該ワイヤレスモバイル通信デバイスにおいて、該コードブックを用いて該コード変換されたドキュメントをコード変換して、受信されたドキュメントを復元するステップと
をさらに包含する、請求項３２に記載の方法。
【請求項３４】
前記データサーバから前記コードブックをリクエストするステップは、該データサーバにコードブックリクエストを送信するステップを包含し、前記方法は、
該データサーバにおいて、
該コードブックリクエストを受信するステップと、
該コードブックが前記コードブックシステム内に格納されているかどうかを判定するステップと、
該コードブックが該コードブックシステム内に格納されている場合、該コードブックシステムから該コードブックを取り出すステップと、
該コードブックが該コードブックシステム内に格納されていない場合、該コードブックを生成するステップと、
前記ワイヤレスモバイル通信デバイスに該コードブックを返すステップと
をさらに包含する、請求項３３に記載の方法。
【請求項３５】
前記コードブックを生成するステップは、
前記受信されたドキュメントに関連付けられたドキュメント定義を取り出すステップと、
該ドキュメント定義に基づいて、該コードブックを生成するステップと
を包含する、請求項３０に記載の方法。
【請求項３６】
前記ドキュメントが参照されたドキュメント定義に関連付けられているかどうかを判定するステップと、
該ドキュメントが参照されたドキュメント定義に関連付けられていない場合、該ドキュメントをコード変換し、該ドキュメントがコード変換される時にコードブックを生成するステップと
をさらに包含する、請求項３０に記載の方法。
【請求項３７】
前記ドキュメントが参照されたドキュメント定義に関連付けられている場合、
該参照されたドキュメント定義を取り出すステップと、
該参照されたドキュメント定義に基づいて、該コードブックを生成するステップと
をさらに包含する、請求項３６に記載の方法。
【請求項３８】
受信側システムに前記コード変換されたドキュメントを送信するステップと、
該ドキュメントが参照されたドキュメント定義に関連付けられていない場合、該受信側システムに前記コードブックを送信するステップと、
該ドキュメントが参照されたドキュメント定義に関連付けられている場合、あるいは、該コードブックが前記コードブックシステム内に格納されている場合、該受信側システムからのコードブックリクエストに応答して、該受信側システムに該コードブックを送信するステップと
をさらに包含する、請求項３６に記載の方法。
【請求項３９】
受信側システムに前記コード変換されたドキュメントを送信するステップと、
該受信側システムから前記コードブックのコードブックリクエストを受信するステップと、
該コードブックリクエストに応答して、該受信側システムに該コードブックを返すステップと
をさらに包含する、請求項３０に記載の方法。
【請求項４０】
コードブックリクストに応答してコードブックを提供するシステムであって、
リクエスト側からコードブックリクエストを受信するように構成される受信機であって、該コードブックリクエストは、リクエストされたコードブックを識別する、受信機と、
複数のコードブックを格納するコードブックキャッシュと、
該リクエストされたコードブックが該コードブックキャッシュ内に格納されているかどうかを判定するように構成されるコードブックシステムと、
該リクエストされたコードブックが該コードブックキャッシュ内に格納されていない場合、該リクエストされたコードブックを生成し、該コードブックキャッシュ内に該リクエストされたコードブックを格納するように構成されるコードブックビルダーと、
該リクエストされたコードブックを該リクエスト側に送信するように構成される送信機と
を備える、システム。
【請求項４１】
前記コードブックリクエストは、前記リクエストされたコードブックを識別するドキュメントタイプ識別子を含み、前記コードブックビルダーは、該ドキュメントタイプ識別子に対応するドキュメント定義を取り出し、該ドキュメント定義を用いて該リクエストされたコードブックを生成するようにさらに構成される、請求項４０に記載のシステム。
【請求項４２】
前記コードブックビルダーからドキュメント定義リクエストを受信し、ドキュメント定義ソースから該ドキュメント定義を取り出し、該コードブックビルダーに該ドキュメント定義を返す接続ハンドラをさらに備える、請求項４１に記載のシステム。
【請求項４３】
前記ドキュメント定義ソースは、ドキュメントタイプ定義（ＤＴＤ）サーバである、請求項４２に記載のシステム。
【請求項４４】
前記受信機および前記送信機は、コードブックサーブレットを備える、請求項４０に記載のシステム。
【請求項４５】
データサーバにおいて実装される、請求項４０に記載のシステム。
【請求項４６】
ワイヤレスモバイル通信デバイスにおいて実装される、請求項４０に記載のシステム。
【請求項４７】
拡張可能マークアップ言語（ＸＭＬ）ドキュメントを処理する方法であって、
第１のデータサーバから処理済みドキュメントを受信するステップであって、該処理済みドキュメントは、コードブックを用いてＸＭＬドキュメントをコード変換することによって生成される、ステップと、
該コードブックがコードブックキャッシュ内に格納されているかどうかを判定するステップと、
該コードブックが該コードブックキャッシュ内に格納されていない場合、第２のデータサーバから該コードブックをリクエストするステップと、
該第２のデータサーバから該コードブックを受信するステップと、
該コードブックを用いて該処理済みドキュメントをコード変換して、該ＸＭＬドキュメントを復元するステップと
を包含する、方法。
【請求項４８】
前記第１のデータサーバにおいて、
情報ソースから前記ＸＭＬドキュメントを受信するステップと、
該ＸＭＬドキュメントをコード変換するコードブックが該第１のデータサーバに格納されているかどうかを判定するステップと、
該ドキュメントをコード変換する該コードブックが該第１のデータサーバに格納されていない場合、該コードブックを生成するステップと、
該コードブックが該第１のデータサーバに格納されている場合、該コードブックを取り出すステップと、
該コードブックを用いて該ドキュメントをコード変換して、該処理済みドキュメントを生成するステップと、
該処理済みドキュメントを送信するステップと
をさらに包含する、請求項４７に記載の方法。
【請求項４９】
前記コードブックをリクエストするステップは、前記第２のデータサーバにコードブックリクエストを送信するステップを包含し、前記方法は、
該第２のデータサーバにおいて、
該コードブックリクエストを受信するステップと、
該コードブックを取り出すステップと、
該コードブックリクエストに応答して、該コードブックを返すステップと
をさらに包含する、請求項４８に記載の方法。
【請求項５０】
前記第２のデータサーバにおいて前記コードブックを取り出すステップは、
該コードブックが該第２のデータサーバに格納されているかどうかを判定するステップと、
該コードブックが該第２のデータサーバに格納されていない場合、該コードブックを生成するステップと
を包含する、請求項４９に記載の方法。
【請求項５１】
前記第１のデータサーバにおいて、前記第２のデータサーバにアクセス可能なコードブックストアに前記コードブックを格納するステップ
をさらに包含し、
該第２のデータサーバにおいて該コードブックを取り出すステップは、
該コードブックが該第２のデータサーバに格納されているかどうかを判定するステップと、
該コードブックが該第２のデータサーバに格納されていない場合、該コードブックストアから該コードブックを取り出すステップと
を包含する、請求項４９に記載の方法。
【請求項５２】
ワイヤレスネットワークを介する送信用のワイヤレスモバイル通信デバイスにてドキュメントを処理する方法であって、
該ワイヤレスネットワーク通信デバイスにおいてドキュメントを生成するステップと、
該ドキュメントが参照されたドキュメント定義に関連付けられているかどうかを判定するステップと、
該ドキュメントが参照された定義に関連付けられている場合、
該参照された定義のコードブックがコードブックキャッシュ内に格納されているかどうかを判定するステップと、
該コードブックが該コードブックキャッシュ内に格納されている場合、該コードブックキャッシュから該コードブックを取り出すステップと、
該コードブックが該コードブックキャッシュ内に格納されていない場合、データサーバから該コードブックをリクエストし、該データサーバから該コードブックを受信するステップと、
該コードブックを用いて該ドキュメントをコード変換して、コード変換されたドキュメントを生成するステップと、
該ワイヤレスネットワークを介して該コード変換されたドキュメントを送信するステップと
を包含する、方法。
【請求項５３】
前記ドキュメントが参照された定義に関連付けられていない場合、
該ドキュメントをコード変換するステップと、
該ドキュメントがコード変換される時に、コードブックを生成するステップと、
前記ワイヤレスネットワークを介して該コード変換されたドキュメントとともに該コードブックを送信するステップと
をさらに包含する、請求項５２に記載の方法。
【請求項５４】
前記ドキュメントがコード変換される時に、コードブックを生成するステップは、該ドキュメントに組み込まれたドキュメント定義に基づいて、該コードブックを生成するステップを包含する、請求項５２に記載の方法。
【請求項５５】
前記コード変換されたドキュメントを送信するステップは、受信機に該コード変換されたドキュメントを送信するステップを包含し、前記方法は、
該受信機において、
前記ワイヤレスモバイル通信デバイスから該コード変換されたドキュメントを受信するステップと、
該コード変換されたドキュメントに関連付けられたコードブックが該ワイヤレスモバイル通信デバイスによって該コード変換されたドキュメントとともに送信されたかどうかを判定するステップと、
コードブックが該コード変換されたドキュメントとともに送信された場合、該コード変換されたドキュメントから該コードブックを抽出するステップと、
コードブックが該コード変換されたドキュメントとともに送信されなかった場合、該受信機において該コードブックを取り出すステップと、
該コードブックを用いて該コード変換されたドキュメントをコード変換して、該受信機において該ドキュメントを復元するステップと
をさらに包含する、請求項５３に記載の方法。
【請求項５６】
前記受信機において前記コードブックを取り出すステップは、
該コードブックが該受信機のメモリ内に格納されているかどうかを判定するステップと、
該コードブックが該メモリに格納されている場合、該メモリから該コードブックを取り出すステップと
を包含する、請求項５５に記載の方法。
【請求項５７】
前記受信機において前記コードブックを取り出すステップは、
前記コードブックが前記メモリ内に格納されていない場合、
前記ワイヤレスモバイル通信デバイスから該コードブックをリクエストするステップと、
該ワイヤレスモバイル通信デバイスから該コードブックを受信するステップと
をさらに包含する、請求項５６に記載の方法。
【請求項５８】
前記受信機において前記コードブックを取り出すステップは、該コードブックが該メモリ内に格納されていない場合、外部のコードブックストアから該受信機まで該コードブックを取り出すステップを包含する、請求項５６に記載の方法。
【請求項５９】
前記受信機において前記コードブックを取り出すステップは、
前記コードブックが前記メモリ内に格納されていない場合、
前記ドキュメントに関連付けられたドキュメント定義を取り出すステップと、
該ドキュメント識別子に基づいて、該コードブックを生成するステップと、
該メモリに該コードブックを格納するステップと
をさらに包含する、請求項５６に記載の方法。
【請求項６０】
前記ワイヤレスネットワークを介して前記コード変換されたドキュメントを送信するステップは、該ワイヤレスネットワークを介して第２のワイヤレスモバイル通信デバイスに該コード変換されたドキュメントを送信するステップを包含する、請求項５２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワイヤレス通信およびワイヤレスモバイル通信デバイスに関する。より詳細には、本発明は、ワイヤレス通信デバイスのための一般的な拡張可能マークアップ言語（ＸＭＬ）のサポートに関する。
【背景技術】
【０００２】
ＸＭＬは、瞬く間に、異なるコンピュータシステム間でデータを交換する最も一般的なスキームの１つになった。しかし、ワイヤレスまたは他の狭帯域通信システムを介する送信では、送信用のＸＭＬドキュメントのサイズを低減するために、効果的なエンコードスキームが必要とされる。おそらく、ワイヤレス通信用のＸＭＬドキュメントを準備する最もポピュラーなエンコードスキームは、ワイヤレスアプリケーションプロトコル（ＷＡＰ）バイナリＸＭＬ、またはＷＢＸＭＬである。ＷＢＸＭＬは、ＸＭＬをエンコードおよびデコードするために、トークンテーブルまたはコードブックに頼っている。ＷＢＸＭＬ仕様は、用語「コードページ」を用いて、タグイクイバレントへのトークンのセットの意味を持たせる。１つのコードページは、たった２５６個のエンティティを有し得ず、いくつかのコードページが存在し得る。用語「コードブック」は、本明細書中において１つ以上のコードページのセットを表すために利用される。したがって、コードブックは、ＸＭＬタグまたは属性とこれらに対応するトークン化されたイクイバレントとの間をマッピングするルックアップテーブルのセットである。
【０００３】
ワイヤレス通信システム用の既知のＸＭＬソリューションは、２つのトークンテーブルのコピーを利用する。コピーの１つは、通常、ＸＭＬからＷＢＸＭＬにコード変換するかもしくはトークン化する情報ゲートウェイ、サーバ、あるいは、他の情報ソースに組み込まれる一方、コピーの別の１つは、トークン化されたＷＢＸＭＬをパージングおよび／またはデコードするソフトウェアアプリケーションコードのモバイル通信デバイス側に組み込まれる。実際に、多くの既知のＷＢＸＭＬクライアントソフトウェアアプリケーションは、パーサに組み込まれたエンコードスキームを有する。これは、エンコードスキームが周知である場合、良好に作用する。しかし、新しいＸＭＬダイアレクトでは、エンコードスキームは知られていない。新しいＸＭＬダイアレクトの利用を望むソフトウェアアプリケーション開発者は、エンコードスキームを発明し、および／または、クライアントソフトウェアアプリケーション用のエンコードを行うコード変換器およびパーサの両方を作成しなければならない。
【０００４】
このようなシステムでは、モバイル通信デバイス、あるいは、おそらくこのようなデバイスにインストールされたソフトウェアアプリケーションは、受信したＷＢＸＭＬドキュメントを処理するために、ＷＢＸＭＬエンコーダによって、どのようにＸＭＬドキュメントがエンコードされたのか、すなわち、どのようなトークンテーブルが利用されたのかを知らなければならない。つまり、モバイル通信デバイスのＸＭＬアプリケーションは、通常、サーバまたはゲートウェイにおいて利用されるエンコードスキームに対応する特定のタイプのＸＭＬに対して構成されている。ＸＭＬプロセッサが、例えばコンピュータソフトウェアコードで実装される場合、エンコードスキームは、通常、ソフトウェアコードに組み込まれ、新しいＸＭＬドキュメントタイプが受け取るたびに、サーバソフトウェアコードおよびモバイル通信デバイスソフトウェアコードの両方が、それに応じて修正されなければならず、これは、コストがかかり、時間を消費し、エラーが起こりやすく、特に異なるエンティティがサーバ動作ならびにモバイル通信デバイスおよびアプリケーションに対して責任をもっている場合に当てはまる。さらに、ＷＢＸＭＬパーサが、以前に処理をしたことのないＸＭＬドキュメントタイプから生成されたＷＢＸＭＬドキュメントを受信し、この特定のＸＭＬドキュメントタイプのコードブックが、デコーダまたはパーサ、あるいはデコーダまたはパーサが実装されるモバイル通信デバイスに組み込まれていない場合、デバイスおよびデバイスの任意のソフトウェアアプリケーションは、ＷＢＸＭＬドキュメントを処理することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、任意の特定のエンコードスキームに制限されないモバイル通信デバイスの普遍的なＸＭＬサポートのためのシステムおよび方法の必要となり、これによって、ＸＭＬが使用可能なアプリケーションが特定のＸＭＬタイプおよびそのエンコードスキームに依存しなくなる。
【０００６】
関連して、任意のタイプのＸＭＬドキュメントを処理するシステムおよび方法が必要となる。
【０００７】
さらに、デバイスのソフトウェアコードを変更する必要なく、新しいＸＭＬドキュメントタイプをサポートするモバイル通信デバイスにおいてＸＭＬをサポートするシステムおよび方法が必要となる。
【課題を解決するための手段】
【０００８】
（要旨）
本発明のある実施形態によると、ワイヤレスモバイル通信デバイスにおいてＸＭＬドキュメントを処理する方法は、データサーバから処理済みドキュメントを受信するステップであって、処理済みドキュメントは、コードブックを用いてＸＭＬドキュメントをコード変換することによって生成される、ステップと、コードブックがワイヤレスモバイル通信デバイスに格納されているかどうかを判定するステップと、コードブックがワイヤレスモバイル通信デバイスに格納されていない場合、データサーバからコードブックをリクエストするステップと、データサーバからコードブックを受信するステップと、コードブックを用いて処理済みドキュメントをコード変換して、ＸＭＬドキュメントを復元するステップとを包含する。
【０００９】
ワイヤレスモバイル通信デバイスにおいてＸＭＬドキュメントを処理する関連するシステムは、データサーバから処理済みドキュメントを受信するように構成された受信機であって、処理済みドキュメントは、コードブックを用いてＸＭＬドキュメントをコード変換することによって生成される、受信機と、コードブックを格納するキャッシュを備えるコードブックシステムと、受信機およびコードブックシステムに接続されるコード変換システムであって、処理済みドキュメントをパージングし、コードブックシステムからコードブックをリクエストし、コードブックを用いて処理済みドキュメントをコード変換して、ＸＭＬドキュメントを復元するように構成される、コード変換システムとを備え、このコードブックシステムは、コードブックがコード変換システムによってリクエストされた時に、コードブックがキャッシュに格納されているかどうかを判定し、コードブックがキャッシュに格納されている場合に、コード変換システムにコードブックを提供し、コードブックがキャッシュに格納されていない場合に、データサーバからコードブックをリクエストし、データサーバからコードブックを受信し、コード変換システムにコードブックを提供するように構成される。
【００１０】
本発明の別の実施形態によると、ドキュメントを処理するシステムは、コードブックリクエストを受信し、各コードブックリクエストに応答してコードブックを提供するように構成されるコードブックシステムと、コードブックを格納するように構成されるコードブックシステム内のメモリと、ドキュメントを受信し、受信したドキュメントごとに、コードブックシステムから対応するコードブックをリクエストし、コードブックを用いて受信したドキュメントをコード変換するように構成されるコード変換システムと、コードブックを生成するように構成されるコードブックビルダーとを備え、コードブックシステムは、リクエストされたコードブックがメモリ内に格納されているかどうかを判定し、リクエストされたコードブックがメモリ内に格納されていない場合、コードブックビルダーを起動してリクエストされたコードブックをビルドし、コードブックビルダーからリクエストされたコードブックを受信するようにさらに構成される。
【００１１】
本発明のさらなる局面によると、ドキュメントを処理する方法は、情報ソースからドキュメントを受信するステップと、ドキュメントをコード変換するコードブックがコードブックシステム内に格納されているかどうかを判定するステップと、ドキュメントをコード変換するコードブックがコードブックシステム内に格納されていない場合、コードブックを生成するステップと、コードブックを用いてドキュメントをコード変換し、コード変換されたドキュメントを生成するステップとを包含する。
【００１２】
コードブックリクストに応答してコードブックを提供するシステムは、リクエスト側からコードブックリクエストを受信するように構成される受信機であって、コードブックリクエストは、リクエストされたコードブックを識別する、受信機と、複数のコードブックを格納するコードブックキャッシュと、リクエストされたコードブックがコードブックキャッシュ内に格納されているかどうかを判定するように構成されるコードブックシステムと、リクエストされたコードブックがコードブックキャッシュ内に格納されていない場合、リクエストされたコードブックを生成し、コードブックキャッシュ内にリクエストされたコードブックを格納するように構成されるコードブックビルダーと、リクエストされたコードブックをリクエスト側に送信するように構成される送信機とを備える。
【００１３】
本発明のさらなる局面によるＸＭＬドキュメントを処理する方法は、第１のデータサーバから処理済みドキュメントを受信するステップであって、処理済みドキュメントは、コードブックを用いてＸＭＬドキュメントをコード変換することによって生成される、ステップと、コードブックがコードブックキャッシュ内に格納されているかどうかを判定するステップと、コードブックがコードブックキャッシュ内に格納されていない場合、第２のデータサーバからコードブックをリクエストするステップと、第２のデータサーバからコードブックを受信するステップと、コードブックを用いて処理済みドキュメントをコード変換して、ＸＭＬドキュメントを復元するステップとを包含する。
【００１４】
ワイヤレスネットワークを介する送信用のワイヤレスモバイル通信デバイスにてドキュメントを処理する方法は、ワイヤレスネットワーク通信デバイスにおいてドキュメントを生成するステップと、ドキュメントが参照されたドキュメント定義に関連付けられているかどうかを判定するステップと、ドキュメントが参照された定義に関連付けられている場合、参照された定義のコードブックがコードブックキャッシュ内に格納されているかどうかを判定するステップと、コードブックがコードブックキャッシュ内に格納されている場合、コードブックキャッシュからコードブックを取り出すステップと、コードブックがコードブックキャッシュ内に格納されていない場合、データサーバからコードブックをリクエストし、データサーバからコードブックを受信するステップと、コードブックを用いてドキュメントをコード変換して、コード変換されたドキュメントを生成するステップと、ワイヤレスネットワークを介してコード変換されたドキュメントを送信するステップとを包含する。
【００１５】
本発明のさらなる特徴は、以下の詳細な説明において説明され、明らかになる。
【発明を実施するための最良の形態】
【００１６】
（詳細な説明）
図１は、ワイヤレスモバイル通信デバイスから情報ソースへのアクセスを提供する通信システムのブロック図である。図１において、システム１０は、ワイヤレスモバイル通信デバイス１２、ワイヤレス通信ネットワーク１４、ワイヤレスネットワークゲートウェイ１５、ワイドエリアネットワーク（ＷＡＮ）１６、データサーバ１８、および情報ソース２０を備える。
【００１７】
モバイルデバイス１２は、例えば、少なくともデータ通信と、場合によっては音声通信性能を有する双方向通信デバイスのような、ワイヤレス通信ネットワーク１４内で動作することに適合するワイヤレスモバイル通信デバイスである。モバイル１２によって提供される機能に依存して、モバイルデバイスは、データメッセージングデバイス、双方向ページャ、データメッセ−ジング性能を有する携帯電話、ワイヤレスインターネット機器、あるいはデータ通信デバイス（電話性能を有していても有していなくてもよい）であり得るが、以後、主として「モバイルデバイス」と参照される。モバイルデバイス１２内の通信サブシステム（図示されない）の特定の設計は、モバイルデバイス１２が動作することが意図される通信ネットワーク１４に依存する。例えば、北アメリカの市場で利用されるモバイルデバイス１２は、Ｍｏｂｉｔｅｘ（登録商標）モバイル通信システムまたはＤａｔａＴＡＣ（登録商標）モバイル通信システム内で動作するように設計された通信サブシステムを含み得、ヨーロッパで利用されることが意図されるモバイルデバイス１２は、ジェネラルパケットラジオサービス（ＧＰＲＳ）通信システムを組み込み得る。さらに、他のタイプのモバイルデバイスおよびネットワークが、検討される。本明細書中に記載されるシステムおよび方法は、仮想的に任意のワイヤレスネットワーク１４およびモバイルデバイス１２と連動して実装され得る。
【００１８】
図１に示されるワイヤレスネットワークゲートウェイ１５は、ワイヤレスネットワーク１４とＷＡＮ１６との間のインターフェース（例えば、インターネットであり得る）を提供し得る。モバイルデバイスのアドレシング、ＷＡＮプロトコルとワイヤレスネットワークプロトコルとの間のデータ変換、モバイルデイバス１２から、または、モバイルデイバス１２へのデータの格納および転送、ならびに、他のインターフェース機能のような機能は、ワイヤレスネットワークゲートウェイ１５によって実行され得る。
【００１９】
データサーバ１８が、ワイヤレスネットワーク１４と関連するネットワーク通信事業者またはオペレータによってホストとされることが可能である。この場合、データサーバ１８とワイヤレスネットワークゲートウェイ１５との間の接続は、ＷＡＮ１６ではなく、通信事業者のプライベートネットワークを利用し得る。したがって、ＷＡＮ１６は、データサーバ１８と情報ソース２０との間で通信するために利用され得る。このホストとなった、または、パブリックなデータサーバ１８の実装は、図１に示されるシステム１０の合理的な代替となるアプローチである。
【００２０】
データサーバ１８は、モバイルデバイス１２に情報ソース２０へのアクセスを効果的に提供するシステムである。データサーバ１８を介して、モバイルデバイス１２は、データサーバ１８と通信し得るインターネットまたはウェブのような任意の情報ソース２０とアクセスし得る。したがって、情報ソース２０は、ワイヤレスネットワーク通信用の特別なアプリケーションまたはプロトコルのサポートを必要としない。なぜなら、情報ソース２０は、直接モバイルデバイス１２と通信するのではなく、データサーバ１８と通信するからである。図１では直接接続のように示されるが、データサーバ１８および情報ソース２０は、インターネットを含むローカルエリアネットワーク（ＬＡＮ）またはＷＡＮのようなネットワークを介しておそらく通信し得る。別の実施形態では、データサーバ１８の機能は、ワイヤレスネットワークゲートウェイ１５または情報ソース２０に組み込まれ得る。ワイヤレスネットワークゲートウェイ１５、データサーバ１８、および情報ソース２０のさらなる実施形態はまた、当業者に理解可能であり得、さらに、本発明の範囲内にあると考えられる。
【００２１】
ワイヤレスネットワークおよびインターネットは同様のアドレシング技術を利用し、アドレシング技術では、ワイヤレスネットワークにおけるモバイルデバイス１２のような通信機器、あるいは、データサーバ１８および可能であれば情報ソース２０のようなインターネット接続コンピュータは、数値アドレスによって識別される。例えば、モバイルデバイス１２は、Ｍｏｂｉｔｅｘアクセスナンバー（ＭＡＮ）を用いてＭｏｂｉｔｅｘネットワークにおいて識別され、パブリックインターネットノードは、インターネットプロトコル（ＩＰ）アドレス技術を用いて識別される。しかし、ワイヤレスネットワークとインターネットトランスポートメカニズムとの間の差は、通常、大部分がインターネットベースである情報ソース２０とモバイルデバイス１２のようなモバイルデバイスと間のダイレクト通信を回避する。インターネットおよび他のＷＡＮ通信プロトコルはまた、「おしゃべり（ｃｈａｔｔｙ）」であり得、送信者側と受信者側との間の通信を確立するいくつかの交換、ならびに、ワイヤレスネットワーク通信においては望まれない比較的量の多いオーバーヘッドを含む。さらに、２０のような情報ソースによって提供されるコンテンツは、大部分が有線通信ネットワークを介する送信のためのターゲットとされる。上述のように、ＸＭＬドキュメントは、比較的大きく、ワイヤレス通信チャネルを介する送信のために圧縮されるべきである。データサーバ１８は、インターネットベースの情報ソースおよびおそらくは他の情報ソース２０と、モバイルデバイス１２に関連するワイヤレスネットワーク１４との間のギャップを橋渡しする。データサーバ１８の機能は、例えば、アドレスマッピング、コンテンツ変換および検証、ならびにプロトコルマッピングおよび最適化を含み得る。
【００２２】
モバイルデバイス１２、ワイヤレスネットワーク１４、およびゲートウェイ１５が図１に示されるが、本発明はまた、ＸＭＬドキュメントをリクエストするか、そうでなければＸＭＬドキュメントを取得し得るモバイルデバイスの他のタイプに適用可能である。リソースおよび通信リンク帯域幅の処理は、モバイルデバイスおよびワイヤレス通信ネットワークに関しては、デスクトップコンピュータシステムおよび有線通信リンクと同じように制限されない傾向にある。しかし、本明細書に記載のＸＭＬドキュメントのコード変換は、データのサイズを低減するだけでなく、パーサをより効果的かつ書き込みを容易なもととする。低減されたデータサイズは、有線接続を介するＸＭＬドキュメントのより高速の転送を提供する一方、よりシンプルかつより効率的なパーサは、同様に、デスクトップコンピュータシステムソフトウェアアプリケーションおよび任意の他のデータサーバクライアントアプリケーションをより開発が容易なものとする。したがって、本明細書中に記載されるシステムおよび方法は、有線またはワイヤレス通信システムおよびデバイスと連動して実装され得ることが理解されるべきである。
【００２３】
ここで、図２に戻って、本発明の実施形態が記載される。図２は、図１のモバイルデイバス１２およびデータサーバ１８の内部要素を示すブロック図である。図２に示されるように、データサーバ１８は、プロトコルトランスレータ２４、接続ハンドラ２６、コード変換システム２８、コードブックシステム３０、コードブックサーブレット３２、およびコードブックビルダー３４を含む。モバイルデバイス１２は、通信サブシステム３６、ソフトウェアアプリケーション３８、ＷＢＸＭＬパーサ４０、アプリケーションハンドラ４２、およびコードブックシステム４４を含む。
【００２４】
図２に示されないが、図１に示されるワイヤレスネットワーク１４、ワイヤレスネットワークゲートウェイ１５、およびＷＡＮ１６、ならびに、任意の他の介在する通信リンクおよびネットワーク（これらを介して、モバイルデバイス１２およびデータサーバ１８が通信する）は、ワイヤレストランスポート２２として、一般的に示されてきた。当業者は、ワイヤレストランスポート２２が、１つ以上の有線またはワイヤレス通信リンクまたはネットワークを介して、ワイヤレス通信ネットワーク内で動作するモバイルデバイス１２とデータサーバ１８との間の通信を提供する任意のシステムを表すことが意図されていることを理解する。したがって、本発明は、図１のシステム１０のような通信システムに決して制限されないことが理解されるべきである。本明細書中に記載されるシステムおよび方法は、任意の特定の通信ネットワークまたはプロトコルに依存しない。
【００２５】
データサーバ１８では、プロトコルトランスレータ２４は、リンク３５を介しワイヤレストランスポート２２を通ってモバイルデバイス１２と通信するために利用されるプロトコルと、通信リンク２１を通り情報ソース２０と通信するために利用されるプロトコルと間の任意の必要なトランスレーションを実行する。本発明の１つの考えられる実施形態では、データサーバ１８は、いわゆるＩＰプロキシプロトコル（ＩＰＰＰ）、本願の所有者によって開発される独自のプロトコルを用いてリンク３５を介してワイヤレストラスポート２２と通信する一方、情報ソースとの通信は、例えば、ハイパーテキストトランスファープロトコル（ＨＴＴＰ）またはトランスミッションプロトコル（ＴＣＰ）を利用し得る。データサーバ１８とワイヤレストランスポート２２との間およびデータサーバ１８と情報ソース２０との間で同じプロトコルが利用され、あるは、データサーバ１８の機能が情報ソース２０で実装される場合、プロトコルトランスレータ２４は、必要とされ得ない。
【００２６】
図２は、１つの接続ハンドラ２６、通信リンク２１、および情報ソース２０のみを示す。データサーバ１８は情報ソース２０に関連する統合されたシステムにおいて、情報ソース２０が、例えば、リモートデータアクセスおよびコード変換サービスを提供する場合、接続２１は、統合されたシステムに対して内部にある。しかし、他の実施形態では、接続ハンドラ２６、および可能であればさらなる異なるタイプの接続用の接続ハンドラ（図示されない）は、データサーバ１８が同時にインターネットベースのソースを含む様々な情報ソースからのコンテンツを操作し、かつ、処理することを可能にする。
【００２７】
２６のような接続ハンドラは、データサーバ１８に対する内向きおよび外向きの接続からのコンテンツを処理する能力を有する中間オブジェクトである。データサーバ１８の特定の接続ハンドラ（単数または複数）は、好ましくは、置換およびカスタマイズされ得、好ましくは、さらなるハンドラが、必要とされる際にデータサーバ１８に付加され得る。接続ハンドラは、情報コンテンツを最適化するだけでなく、通信プロトコルをも最適化することができる。例えば、通常モバイルデバイス１２に送信されるいくつかのリクエスト（パスワードのリクエストのような）は、接続ハンドラ２６によって解決され得る。プロトコル最適化のこの例は、ワイヤレストランスポート２２を介してモバイルデバイス１２に送信されるトラフィックの量を低減することにより、ワイヤレスネットワーク帯域幅の制約条件および遅延の影響を低減することによって、いわゆる「おしゃべりな（ｃｈａｐｐｙ）」プロトコルをよりワイヤレスフレンドリーとなるように適合させ得る。
【００２８】
モバイルデバイス１２の代わりにデスクトップコンピュータシステム（図示されない）を利用する場合、インターネットサービスプロバイダ（ＩＳＰ）システムまたはアプリケーションサービスプロバイダ（ＡＳＰ）システムのようなゲートウェイは、データサーバ１８に対するインターフェースを提供し得る。データサーバが有線および無線クライアントの両方をサポートする場合、異なるトランスポートおよびプロトコルトランスレータは、異なるタイプのクライアントに対して実装され得る。
【００２９】
例えば、インターネットノードへデータを送信し、またはインターネットノードからデータを受信するために、モバイルデバイス１２からの外向きの接続が作られる。データサーバ１８は、上述の専用のプロトコルＩＰＰＰのような特定のプロトコルを利用して、モバイルデバイス１２からの接続リクエストを受信するが、他のプロトコルもまた利用され得る。データサーバ１８は、接続リクエストにおいてモバイルデバイス１２によって提供されるプロトコルおよびルーティング情報に従って、インターネット接続を確立し、両方向へのデータの転送を開始するために、接続をトランスレーションし、マッピングする。コード変換システム２８におけるフィルタリングまたはコード変換プロセスは、例えば、接続を介して渡されるコンテンツのタイプに基づいて、必要なときはいつでも接続ハンドラ２６によって呼び出される。このような外向きの接続ならびにデータサーバ１８およびモバイルデバイス１２の動作は、ウェブブラウジング動作の関連で、以下にさらに説明される。
【００３０】
内向き接続が、例えば、データプッシュモデルを実装するために利用される。このモデルでは、モバイルデバイス１２は、外向きの接続の場合と同様に、情報をフェッチするためにリクエストを発行することなく情報を送信される。簡単に上述されたように、モバイルデバイス１２は、インターネットノードとは異なるネットワークドメインに存在し得る。データサーバ１８は、インターネットとワイヤレスネットワークドメインを橋渡しする責任を負っている。このように、データサーバ１８は、特定のモバイルデバイス１２までトラフィックをルーティングするために、あるルーティング情報を必要とする。プッシュ動作では、このルーティング情報の少なくともいくつかは、情報ソース２０とのようなインターネットノードによって提供されなければならず、内向き接続を確立するリクエストを発行する。データサーバ１８は、ｅメールまたはＩＰナンバーのような一般に公知のアドレシングスキームを、意図される受信側のモバイルデバイスの適切なワイヤレスネットワークアドレスに変換し得る。
【００３１】
データサーバ１８の接続ハンドラは、ストリームベースのオブジェクトであり得る。外向きまたは内向き接続がリクエストされると、仮想パイプストリームが、モバイルデバイス１２と適切な接続ハンドラ２６との間で確立される。接続ハンドラ２６は、インスタンス化され、確立された接続のコンテンツを処理することを開始する。接続ハンドラ２６のロードは接続リクエストに基づき、接続リクエストは、好ましくは、接続ハンドラ名への参照を含み、接続ハンドラ名は、仮想パイプストリームを介して進むトラフィックのタイプと、まだロードされていない場合はデータサーバ１８によってロードされなければならない接続ハンドラ２６の位置を暗示し得る。２６のような接続ハンドラの機能は、インターネットまたは他の情報ソース側の接続およびモバイルデバイス接続のマッピング、これらの接続間のトラフィックの転送、ならびに、モバイルデバイス１２に向かう情報の適切なコード変換器のロードおよび呼び出しを含む。
【００３２】
全ての接続は、好ましくは、接続ハンドラ２６のインスタンスと関連する。これは、コンテンツがデータサーバ１８によって処理されることを必要とされない接続に対しても、例えば、情報ソース２０から受信したコンテンツが既にワイヤレストランスポート２２を介する送信用にフォーマットされている場合に、当てはまる。このタイプの接続ハンドラは、コンテンツを転送して戻し、コンテンツに対するどんな種類の修正も行わずに転送するが、プロトコルに対して修正を行い得る。明らかに、当業者は、データまたはコンテンツ（モバイルデバイスがリクエストしたもの、または、送信されたもの）とプロトコル（データを伝送するために必要とされる「ラッパ（ｗｒａｐｐｅｒ）」および変換）との間の区別を理解する。
【００３３】
接続ハンドラはまた、例えば、適切なコンテンツフィルタまたはコード変換器をロードおよび実行して、ＸＭＬドキュメントをＷＢＸＭＬに変換する責任を負っている。この例では、情報ソース２０は、接続ハンドラ２６からのリクエストに応答してＸＭＬドキュメントを返す場合、接続ハンドラ２６は、コード変換システム２８のＸＭＬからＷＢＸＭＬへのコード変換器（図示されない）を呼び出す。以下にさらに説明されるように、コード変換システム２８のＸＭＬからＷＢＸＭＬへのコード変換器は、ＸＭＬタグおよび属性をコードブックに指定されるＷＢＸＭＬトークンで置換することによって、ＸＭＬコンテンツをＷＢＸＭＬコンテンツへ変換する。結果として生じるＷＢＸＭＬコンテンツは、必要であればプロトコルトランスレータ２４を介して、モバイルデバイス１２まで、接続ハンドラ２６によって送信される。ＷＢＸＭＬエンコードされたコンテンツは、サイズがより小さくなり、したがって、ワイヤレスネットワークにおいてより効率的に送信され得る。
【００３４】
既に処理されたタイプのＸＭＬでは、このコードブックは、好ましくは、コードブックシステム３０のデータストアまたはキャッシュ３１に格納され、コード変換システム２８のＸＭＬからＷＢＸＭＬコード変換器によってその後アクセスされ得る。コードブックキャッシュ３１は、コードデータブックが書き込まれ得るランダムアクセスメモリ（ＲＡＭ）、ディスクドライブ、または他のストアのようなメモリ素子に常駐し得る。メモリスペースを確保するために、最も昔に利用された（ＬＲＵ）置換スキームまたは他のメモリ管理スキームは、コードブックシステム３０によってコードブックキャッシュ３１のために利用され得、それにより、最も頻繁に利用されたコードブックが、キャッシュ３１内に保持される。さらに、特に頻繁に利用されるコードブックは、永久的格納のためにマークまたは指定され、あるいは、別のデータストアまたはメモリ素子に格納される。あるいは、頻繁に利用されることが期待されるこのようなコードブックは、コードブックビルダー３４を用いることによって代わりに生成され、永久的なコードブックキャッシュ（図示されない）に格納され、例えば、リードオンリーメモリ（ＲＯＭ）内で実装されて、このようなコードブックがデータサーバ１８に対して利用可能であり、かつ、消去または上書きがされないことを保証する。
【００３５】
コードブックビルダー３４は、例えばＳｙｎｃＭＬメッセージのような外部参照定義を有する任意のＸＭＬドキュメント用のコードブックをビルドするために利用され得る。ＳｙｎｃＭＬメッセージは、ワールドワイドウェブコンソーシアム（Ｗ３Ｃ）により登録されたＭＩＭＥタイプを有し、対応するパブリックに利用可能なコードブックを有する。コードブックビルダー３４、ＸＭＬドキュメント用のＸＭＬ文法を定義する外部ＸＭＬ定義２３、および接続２５を介するこのような外部定義２３の取り出しは、さらに以下で説明される。コードブックサーブレット３２は、１２のようなモバイルデバイスからのコードブックリクエストを取り扱い、以下にさらに説明される。
【００３６】
モバイルデバイス１２では、通信サブシステム３６は、１つ以上のアンテナ、受信機、送信機、ならびに関連する回路およびモジュール（図示されない）のようなモバイルデバイス１２の通信機能に関連するコンポーネントを含む。通信サブシステム３６は、異なるタイプのモバイルデバイスにおいて異なっていてもよく、モバイルデバイス１２が動作するように構成される特定のワイヤレストランスポート２２に依存する。
【００３７】
１つ以上のソフトウェアアプリケーション３８は、モバイルデバイス１２にインストールされ得、例えば、メッセ−ジングアプリケーション、ブラウザ、データ同期アプリケーション、カレンダーアプリケーション、タスクリストアプリケーション、およびカリキュレータを含む。これらのソフトウェアアプリケーションのあるもの、例えば、メッセ−ジングアプリケーションは、通信機能を含み得る一方、他のいくつかのアプリケーションは、入力を受信し、出力を提供するモバイルデバイスに常駐するユーザインターフェース（図示されない）を用いる「ローカル」機能であってもよい。本発明は、２０のようなリモート情報ソースから情報コンテンツを受信する１２のようなモバイルデバイスに適用可能であるので、ソフトウェアアプリケーション３８の例は、ＷＢＸＭＬパーサ４０を介して通信サブシステム３６とのリンクを有するように示される。このモバイルデバイス１２の例では、例えば、ユニフォームリソースロケータ（ＵＲＬ）を含む情報のリクエストが、ソフトウェアアプリケーション３８によって、あるいは、情報がリモート位置からモバイルデバイス１２にダウンロードされる場合には関連するアプリケーションハンドラ４２によってパーサ４０に送られる。ソフトウェアアプリケーション３８は、それにより、通信サブシステム３６を介して情報を受信し、可能であれば情報を送信することが可能になる。なお、他のソフトウェアアプリケーション（図示されない）はまた、通信サブシステム３６とやり取りを行い得、ソフトウェアアプリケーション３８は、例えばモバイルデバイスキーボードまたはキーパット、ディスプレイスクリーン、メモリ素子、さらなる入力または出力コンポーネント、および他のソフトウェアアプリケーションさえも含む他のモバイルデバイスコンポーネントとやり取りを行い得る。
【００３８】
ＷＢＸＭＬパーサ４０は、ＷＢＸＭＬコンテンツをパージングすることにより、任意のＷＢＸＭＬトークンが適切に適用され、コンテンツは、ソフトウェアアプリケーション３８の代わりにアプリケーションハンドラ４２によって処理され得る。２つのタイプのパーサ、すなわちイベントベースのパーサおよびツリーベースのパーサが、ＸＭＬドキュメントをパージングするために利用可能である。イベントベースのパーサは、ツリーベースのパーサと比較してより高速であり、かつ、メモリの消費量が少なく、したがって、モバイルデバイスにより適切であり得る。イベントベースのパーサは、コールバックメソッドを介して、直接ソフトウェアアプリケーション３８にパージングイベントを報告する。イベントベースパーサ４０を利用するソフトウェアアプリケーションは、アプリケーションハンドラ４２のようなパーサのイベントハンドラを実装して、パージングイベントを受信する。アプリケーションハンドラ４２は、受信されたＷＢＸＭＬドキュメントのデータに応答してパーサが呼び出すアプリケーションに固有のコールバックのセットである。
【００３９】
データサーバ１８のコードブックキャッシュ３１のような、モバイルデバイスコードブックシステム４４のコードブックキャッシュ４５は、新しいコードブックが書き込まれ得、以前に格納されたコードブックが取り出され得るＲＡＭまたは他のデータストアで実装され得る。コードブックキャッシュ４５のサイズを制限するために、ＬＲＵ置換スキームまたは他のメモリ管理スキームが利用され得る。上述されたように、特定のコードブック、特に最も頻繁に利用されるか、または、最も頻繁に利用されることが期待されるコードブックは、コードブックキャッシュ４５おける永久的格納のために指定され、異なるモバイルデイバスコードブックキャッシュ（図示されない）に格納される。
【００４０】
ＷＢＸＭＬコンテンツがモバイルデバイス１２によって受信される場合、ＷＢＸＭＬパーサ４０が受信されたＷＢＸＭＬコンテンツをパージングするために呼び出される。パーサ４０は、コードブックシステム４４からコードブックをリクエストする。ＷＢＸＭＬドキュメントが既知であるか、または、既に処理されたタイプであり、対応するコードブックがコードブックキャッシュ４５に格納される場合、コードブックは、コードブックシステム４４によってパーサ４０に戻され、受信されたＷＢＸＭＬドキュメントをパージングするために利用される。ＷＢＸＭＬドキュメントが、コードブックがコードブックキャッシュ４５から利用可能でないタイプである場合、以下にさらに詳細に説明される本発明の局面にしたがって、コードブックがコードブックシステム４４によってデータサーバ１８からリクエストされ、コードブックキャッシュ４５に格納され、その後、パーサ４０に返され、ＷＢＸＭＬドキュメントをパージングするために利用される。本発明のある実施形態では、モバイルデバイスコードブックキャッシュ４５は、あれば、初期的に「永久」コードブックを含み、コードブックシステム４４は、必要とされる場合に任意のさらなるコードブックをデータサーバ１８からリクエストする。ソフトウェアアプリケーション３８および対応するアプリケーションハンドラ４２のタイプに応じて、アプリケーションハンドラ４２は、モバイルデバイスコードブックシステム４４からコードブックをリクエストし、受信したＷＢＸＭＬドキュメント要素をＸＭＬにコード変換し得る。このように、パーサ４０およびアプリケーションハンドラ４２は、効率的にモバイルデバイス１２のコード変換システムを備え、受信したＷＢＸＭＬドキュメントをオリジナルのＸＭＬドキュメントにパージングおよびコード変換を行うように構成される。コード変換システムは、パーサ４０がパージングおよびコード変換の両方を実行する場合、パーサ４０だけを含み得、あるいは、アプリケーションハンドラ４２がコード変換を実行する場合、パーサ４０およびアプリケーションハンドラ４２の両方を含み得る。受信したＷＢＸＭＬコンテンツを処理するモバイルデバイスは、以下に説明される。
【００４１】
図２に示されるように、コードブックは、モバイルデバイス１２によって作成され得、コードブックは、異なるリンク３７を介してデータサーバ１８により、情報リクエストおよびドキュメント転送のために用いられるプロトコル以外のプロトコルを利用して、モバイルデバイス１２に戻され得る。図２に示されるコードブックリクエストおよび転送リンク３７の例、ならびに、本明細書中で利用される通信プロトコルは、データサーバ１８のコードブックサーブレット３２との直接的な通信を提供し、したがって、プロトコルトランスレータ２４によるプロトコルトランスレーションを必要としない。しかし、別の実施形態では、コードブックリクエストおよび転送は、プロトコルトランスレータ２４を介して達成され得る。
【００４２】
ここで、図２に示されるシステムの動作がさらに詳細に説明される。図３は、モバイルデバイス１２からの接続リクエストに応答したデータサーバ１８の動作を示す信号のフロー図である。上述されたように、モバイルデバイス１２は、独自のＩＰＰＰのようなデータサーバ１８と情報ソース２０との間で用いられるプロトコルとは異なるプロトコルを用いて、データサーバ１８と通信し得る。このような構成では、接続リクエストは、特定のプロトコルに適合するが、リクエストは、異なるプロトコルに関連付けられる接続タイプまたは特定の接続ハンドラを指定し得る。従って、ＨＴＴＰを介してデータサーバ１８により情報ソース２０から情報がリクエストされるとき、例えば、モバイルデバイス１２から送信されるリクエストは、モバイルデバイス１２からデータサーバ１８までの通信がＨＴＴＰを介する場合はＨＴＴＰリクエストであってもよいし、あるいは、別のプロトコルに適合するがＨＴＴＰまたはＨＴＴＰ接続ハンドラを指定せず、それにより、ＨＴＴＰリクエストとしてデータサーバ１８によってインタラプトされるリクエストであってもよい。プロトコルトランスレータ２４は、必要なときはいつでも、モバイルデバイス１２からのリクエストをトランスレーションする。
【００４３】
明らかに、図３は、情報リクエストおよび応答動作に直接的に含まれるデータサーバ１８の要素のみを示している。コードブックサーブレット３２は、コードブックリクエスト管理に含まれ、従って、図の混雑を避けるために図３に示されない。
【００４４】
図３では、モバイルデバイス１２からのリクエストは、データサーバ１８によって受信され、必要であれば、データサーバ１８と情報ソース２０との間の通信のために用いられるプロトコルへトランスレーションされる。図示されるように、モバイルデバイス１２からのリクエストは、リクエストに応答してアクセプトされるコンテンツのタイプ（図３の例ではＷＢＸＭＬ）を指定する。例えば、モバイルデバイス１２からのリクエストがＨＴＴＰ「ｇｅｔ」リクエストである場合、ＷＢＸＭＬは、通常のＨＴＴＰリクエストヘッダのアクセプトタイプフィールドにおいて、ＭＩＭＥタイプとして指定され得る。プロトコルトランスレータ２４は、適切な接続ハンドラ２６を呼び出し、おそらくトランスレーションされたリクエストを接続ハンドラ２６へ転送する。ＨＴＴＰリクエストまたはＨＴＴＰ接続もしくはＨＴＴＰ接続ハンドラを指定するリクエストでは、呼び出された接続ハンドラ２６は、ＨＴＴＰ接続ハンドラである。接続ハンドラ２６は、接続２１を介してリクエストを情報ソース２０へ送信し（図２）、おそらくは、ダイレクト接続または１つ以上のネットワーク接続であり得る。情報ソース２０は、例えば、ウェブサーバであってもよいし、インターネットを介してアクセス可能であるように構成される他のシステムであってもよい。
【００４５】
図３では、モバイルデバイス１２は、ＷＢＸＭＬをアクセプトされたコンテンツタイプとして指定する。しかし、データサーバ１８は、受信されたＸＭＬコンテンツをモバイルデバイス１２によってアクセプトされたＷＢＸＭＬコンテンツへとコード変換し得、従って、情報ソース２０に送信されたリクエストでアクセプトされたコンテンツタイプとして、ＷＢＸＭＬの代わり、またはおそらくはそれに加えて、ＸＭＬを含み得る。図３に示される例では、データサーバ１８から送信されたリクエストは、ＸＭＬおよびＷＢＸＭＬの両方をアクセプトされたコンテンツタイプとして含む。このタイプのリクエストは、例えば、情報ソース２０がＸＭＬデータをＷＢＸＭＬデータへとコード変換し得ない場合に有用となり得る。情報ソース２０は、モバイルデバイスがアクセプトされたコンテンツタイプとしてＷＢＸＭＬを指定しようとも、データサーバ１８からのリクエストに応答して、ＷＢＸＭＬデータの代わりにＸＭＬデータを返し得る。データサーバ１８が、情報ソース２０へのリクエストにさらなるアクセプトされたコンテンツタイプを含むように構成されない場合、それにもかかわらず、情報ソース２０は、リクエストで指定されたタイプとは別のコンテンツタイプでリクエストされたコンテンツを返し得、または、そのコンテンツがアクセプトされたコンテンツタイプで提供され得ないことを示すエラーまたは障害メッセージを返し得る。
【００４６】
情報ソース２０は、図３に示される例では、ＸＭＬドキュメントとしてリクエストされたコンテンツを接続ハンドラ２６へ返す。接続ハンドラ２６は、コード変換システム２８（特にＸＭＬからＷＢＸＭＬへのコード変換器７４）に受信したＸＭＬドキュメントを送る。ソフトウェアコードとして実装される場合、コード変換器７４は、情報ソース２０からＸＭＬドキュメントを受信したときに、接続ハンドラ２６またはコード変換器システム７４のどちらかによって呼び出され得る。
【００４７】
上述されるように、ＸＭＬからＷＢＸＭＬへのコード変換器７４は、特定のコードブックのマッピングテーブルに基づいてＸＭＬタグおよび属性をトークンに変換する。データサーバ１８のコードブックキャッシュ３１は、対応するコードブックがキャッシュ３１に永久的に格納されるＸＭＬタイプおよびデータサーバ１８によって事前に処理されたタイプのような、「既知の」ＸＭＬタイプのコードブックを格納する。キャッシュ３１の各コードブックは、対応する識別子を用いて識別され、取り出され得る。この識別子は、例えば、妥当なＸＭＬドキュメントのＤＯＣＴＹＰＥ文に通常見られる固有のＸＭＬパブリック識別子、以下により詳細に説明される外部参照される定義の取り出しを可能にするＵＲＬ、ＭＩＭＥタイプ、または、おそらくは、ＸＭＬドキュメントもしくはドキュメントタイプに関連付けられるさらなる識別子であり得る。図３の例では、返されたＸＭＬドキュメントは、このような識別子を１つ以上含む。受信されたＸＭＬドキュメント識別子を用いて、コード変換器７４は、コードブックシステム３０からコードブックをリクエストする。必要とされるコードブックがコードブックシステム３０のキャッシュ３１（図３には示されない）に格納される場合、コードブックは、コード変換器７４に返され、ＸＭＬドキュメントは、ＷＢＸＭＬドキュメントにコード変換される。しかしながら、図３の例では、説明のために、情報ソース２０によって返されたＸＭＬドキュメントの識別子に対して、コードブックシステム３０においてコードブックが利用可能でないことを前提とする。
【００４８】
データサーバ１８が、コードブックがシステム３０のキャッシュ３１に格納されないタイプの妥当なＸＭＬドキュメントを受信する場合、例えば、データサーバ１８が、以前にそのタイプのＸＭＬドキュメントを処理したことがない場合、コードブックはデータサーバ１８によって生成される。必要とされるコードブックがキャッシュ３１において利用可能でないことを判定すると、コードブックシステム３０は、コードブックビルダー３４によってビルドされたコードブックを起動する。コードブックビルダー３４は、ＸＭＬドキュメントの組み込まれたか、または、外部の（２３）ソースからのドキュメントで利用された文法の記述または定義を取り出す。ＸＭＬ定義２３の外部ソースは、例えば、ドキュメントタイプ定義（ＤＴＤ）サーバのように組み込まれ得る。ＤＴＤは、ＸＭＬデクラレーションシンタックスの、特定のタイプのドキュメントの公式の記述である。これは、どの名前および構造が特定のドキュメントタイプにおいて用いられ得るのかを設定する。特定のタイプに属し、同じＤＴＤを利用する全てのドキュメントは、一貫性があり整合した方法で構造化され、かつ、ネーミングされる。別の可能な実施形態では、名前空間とエンコードスキームとの組み合わせは、外部定義２３のソースを実装し得る。ＸＭＬ文法の外部記述または定義はまた、複数のソースおよび多くのフォーマットに分割され得る。いくつかのＸＭＬドキュメントでは、文法定義は、ドキュメント自体に組み込まれ得、それにより、定義は、ドキュメントから抽出される。したがって、本発明は、ドキュメント定義の特定のタイプに依存しないことが理解されるべきである。本明細書中に記載される技術は、現在公知であるタイプおよび現在の定義タイプの両方を含む、ＤＴＤ、スキーム、および他のドキュメント定義のような１つ以上の定義タイプを用いることに適合する。一般的に、外部定義は、ドキュメントに発生し得る妥当なストリングのセットを定義する。
【００４９】
図３では、コード変換器７４が、コードブックシステム３０にキャッシュされていないコードブックをリクエストする場合、ＸＭＬドキュメントの定義は、ソース２３からリクエストされる。定義リクエストは、図３には接続ハンドラ２６によって操作されているように示されているが、情報ソース２０および定義ソース２３が異なるプロトコルを用いて通信するように構成される場合、変わりに異なる接続ハンドラ（図示されない）を用いて、外部ソース２３から定義を取り出し得る。コードブックビルダー３４は、おそらく、図２に示されるリンク２５を介してなど、１つ以上の外部定義ソース２３とダイレクト通信を行うように構成され得る。文法定義は、例えば、受信したドキュメントに関連付けられた識別子を用いて、２３のような外部ソースからリクエストされ得る。２３のような外部定義ソースでは、ソース２３のアドレスもまた、必要とされ得る。このアドレスは、情報ソース２０によってＸＭＬドキュメントとともに提供され得る。さらに、１つ以上の外部定義ソース２３のアドレスは、データサーバ１８に格納され得る。定義取り出しプロセスは、定義が取り出され得るＵＲＬをドキュメントタイプ識別子として用いて、コードブックキャッシュのインデックスとする場合に単純化され得る。同一の識別子を用いて、コードブックシステム３０からコードブックをリクエストし、外部ソース２３から定義をリクエストする。
【００５０】
リクエストされた定義が定義ソース２３によってデータサーバ１８に返される場合、コードブックビルダー３４により用いられて、新しいコードブックを構築する。コードブックビルダー３４は、ドキュメント文法定義を、受信したドキュメントタイプをＷＢＸＭＬドキュメントにコード変換するために用いられるマッピングテーブルに変換する。新しいコードブックが、コードブックシステム３０に転送される。コードブックシステム３０は、コードブックをコード変換器７４に返し、さらに、そのキャッシュにコードブックを格納し得る。新しいコードブックは、コード変換器７４によって用いられて、ＸＭＬドキュメントをＷＢＸＭＬドキュメントにコード変換する。
【００５１】
ＷＢＸＭＬは、妥当なＸＭＬドキュメントのパブリックＩＤのようないくつかの識別子が、通常、ワイヤレスマークアップ言語（ＷＭＬ）のような周知のＸＭＬタイプに対して、テキストストリングならびに整数としてエンコードされることを可能にする。コードブックシステム３０のコードブックキャッシュのインデックスとするために用いられるドキュメントタイプ識別子は、同様に、エンコードされ、コード変換されたＷＢＸＭＬドキュメントに含まれ得る。エンコードされる識別子を含むＷＢＸＭＬドキュメントは、応答をフォーマットし、プロトコルトランスレータ２４にその応答を転送する接続ハンドラ２６に送られる。プロトコルトランスレータ２４は、その応答の任意の必要なプロトコルトランスレーションを実行して、その応答をモバイルデバイス１２に送信する。モバイルデバイス１２に送信される応答の識別子は、モバイルデバイス１２によって用いられて、以下にさらなる詳細が記載されるように、ＷＢＸＭＬドキュメントをパージングする正しいコードブックを取り出す。モバイルデバイス１２への応答がアクティブ接続ハンドラ２６の代わりにプロトコルトランスレータ２４によってフォーマットされるようにデータサーバ１８を設定することもまた可能となり得る。接続ハンドラ２６は、データサーバ１８と情報ソース２０および定義ソース２３のような外部システムとの間のリクエスト／応答動作を操作し、プロトコルトランスレータ２４は、モバイルデバイス１２との通信を操作する。
【００５２】
いくつかの場合、情報ソース２０によって返されたＸＭＬドキュメントは、既知のＸＭＬドキュメントタイプであってもよい。当業者は、ＸＭＬドキュメントは外部参照される文法記述またはＤＴＤのような定義を用いて、任意の特定のタイプのＸＭＬドキュメントにおいて利用可能なマークアップを記述し得るが、全てのＸＭＬドキュメントがこのような外部の記述を用いるわけではないことを理解する。ＸＭＬシンタックスの規則に従う場合、いわゆる「ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ（良好なフォームのみの）」ＸＭＬドキュメントは、公式の定義の変わりに要素の利用および位置によって、専用のマークアップを効果的に定義する。他の「ｗｅｌｌ−ｆｏｒｍｅｄ（良好なフォームの）」ＸＭＬドキュメントもまた、組み込まれた定義を含み得る。
【００５３】
外部定義を有さないｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙまたはｗｅｌｌ−ｆｏｒｍｅｄＸＭＬドキュメントが、情報ソース２０によってデータサーバ１８に返される場合、ＸＭＬドキュメントがコード変換器７４によって処理され、コードブックキャッシュ３０に格納されるので、コードブックが構築される。ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ  ＸＭＬドキュメントに対しては、公式文法定義が利用可能でないので、コードブックは、「直ちに（ｏｎ  ｔｈｅ  ｆｌｙ）」生成される。新しい要素タグまたは属性に遭遇するときに、コード変換器７４によってトークンが割り当てられる。同じタグまたは属性のその後の発生は、トークン割り当てを利用してトークン化される。組み込まれた定義を有するｗｅｌｌ−ｆｏｒｍｅｄドキュメントでは、定義は、ドキュメントから抽出され、コード変換器７４によってコードブックビルダー３４に提供される、コードブックは、上述のように実質的に生成され得る。もしくは、コード変換器７４自体が、組み込まれた定義を抽出およびパージングし得、ドキュメントのタグをトークンに割り当て、結果として生じるタグからトークンへのマッピングをコードブックキャッシュ３１に加える。
【００５４】
これらのタイプのＸＭＬドキュメントは、ＤＯＣＴＹＰＥ文を含まず、したがって、パブリックＩＤを含まず、そのため、好ましくはいくつかの他の固有の識別子が生成され、コードブックキャッシュ３１およびＷＢＸＭＬドキュメントで利用される。この生成された識別子は、モバイルデバイス１２によって利用され得、ＷＢＸＭＬドキュメントをパージングする際にどのコードブックを利用するべきかを判定する。なお、全てのｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメントまたは組み込まれた定義は、要素および他の構築物をあらゆる他のドキュメントと異なる態様で定義し得、それにより、生成されたコードブックおよび固有の識別子は、ドキュメントタイプではなく特定のドキュメントに関連付けられ得る。したがって、このようなドキュメントが受信されるたびに、新しいコードブックおよび識別子が生成され得る。
【００５５】
これらの生成される識別子が異なることを保証するために、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメント、組み込まれた定義を有するドキュメント、または、組み込まれた定義のコンテンツに依存する識別子生成スキームを利用することが望ましい。例えば、ハッシングアルゴリズムを用いてドキュメントまたは定義のコンテンツをハッシュ（ｈａｓｈ）し、異なるドキュメントごとに固有の識別子を生成し得る。固有の識別子はまた、ＸＭＬドキュメントが取得されるリクエスト／応答動作に関連付けられる情報（例えば、モバイルデバイス識別子のいくつかの組み合わせ、リクエスト／応答セッション識別子、ならびに、リクエストおよび／または応答のタイムスタンプを含む）を用いて生成され得る。他のデータに独立の識別子生成スキームもまた当業者には理解し得、したがって、本発明の範囲内にあることが理解され得る。ドキュメントのハッシングは、単に、識別子生成の１つの可能な方法の例示に過ぎない。利用される特定の識別子生成スキームは、好ましくは、生成される識別子が既知のＸＭＬタイプに関連付けられたあらゆる識別子と同じにならないように、選択されるか、または、設定される。そうでなければ、生成される識別子は、未知のタイプに対して生成される新しいコードブックではなく、既知のドキュメントタイプに対する不正確なコードブックに潜在的にアクセスし得る。
【００５６】
ＷＢＸＭＬ仕様はまた、タグおよび属性のリテラルエンコードを可能にする。したがって、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ  ＸＭＬドキュメントをコード変換することの代わりとして、例えば、スタート要素およびエンド要素のようなグローバルタグのみが、トークン化される。他のタグおよび属性は、エンコードの際にラテラルとして維持され、すなわち、トークン化されない。これは、トークン割り当ておよびコードブック生成の処理時間を節約する。いくつかの状況では、これはまた、組み込まれたまたは外部の定義を有するドキュメントに対する、実行可能な別のエンコードスキームとなり得る。
【００５７】
ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ  ＸＭＬドキュメントが、Ｗ３Ｃに登録されたＭＩＭＥタイプを有し、パブリックに利用可能な対応するトークンを有する場合、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ  ＸＭＬドキュメントエンコードの第３のオプションは、コードブックビルダー３４を利用して、トークンおよびタグのペアを入力し、コードブック「オフライン」を生成することである。生成されたコードブックは、一時的もしくは永久的にコードブックキャッシュ３１に格納され、このＭＩＭＥタイプのＸＭＬドキュメントがコード変換されるたびに利用され得る。この場合、ＭＩＭＥタイプは、コードブックキャッシュ３１のインデックスとして利用され得る。上述のように、ＵＲＬ、あるいは、このＭＩＭＥタイプのトークンテーブルを識別子として利用可能となる他のアドレスを利用することは、有利にも、コードブックおよびトークンテーブルの取り出し動作を単純化し得る。
【００５８】
本発明によるシステムおよび方法は、「不健全なフォームの（ｉｌｌ−ｆｏｒｍｅｄ）」ＸＭＬドキュメントもサポートし得る。例えば、いくつかの閉じているタグがドキュメントから欠けている場合に、ｗｅｌｌ−ｆｏｒｍｅｄに近いＸＭＬドキュメントを整理することが可能となることがある。ＸＭＬからＷＢＸＭＬへのコード変換器７４は、これらのＸＭＬドキュメントをＷＢＸＭＬに変換する前にこれらのＸＭＬドキュメントがｗｅｌｌ−ｆｏｒｍｅｄとなるように、このようなＸＭＬドキュメントをフォーマットし得る。
【００５９】
ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ  ＸＭＬドキュメントまたは組み込まれた定義を有するドキュメントの生成されたコードブックは、ドキュメントごとに異なり得るため、このようなＸＭＬドキュメントに対応するＷＢＸＭＬドキュメントが受信されるときはいつでも、モバイルデバイスは常にコードブックをリクエストしなければならないことになり得る。したがって、このような新しいコードブックがデータサーバ１８にキャッシュすることは、ほとんど利点とならないことになり得る。このタイプのコードブックは、例えば、コードブックをＷＢＸＭＬドキュメントにプリペンドまたは添付することによって、データサーバ１８からモバイルデバイス１２への応答に含まれ得る。このことは、コードブックキャッシュ３１の重要なスペースをこのような一度利用するだけのエントリを格納するために利用することを防ぐが、必ずしもいくらかのパフォーマンスの不利益に関するわけではない。なぜならば、そうでなければ、これらのコードブックは、たいてい、モバイルデバイス１２によってリクエストされる傾向があるからである。コード変換されたドキュメントを有するこのようなコードブックを含むことはまた、コードブックリクエストに関連付けられたリソースに負荷を与えることを低減する。
【００６０】
データサーバ１８用のソフトウェアおよびモバイルデバイス１２用のソフトウェアの両方を特注して、従来のシステムにおけるようなある特定の公知のコーディングスキームのみで動作させるのではなく、コードブックキャッシュ３１は、データサーバ１８およびモバイルデバイス１２の両方によってアクセスされ得る。データサーバ１８のコードブックキャッシュ３１に格納されるコードブックは、既にモバイルデバイス１２にキャッシュされている可能性があるということを前提として、モバイルデバイス１２によってリクエストされない限り、モバイルデバイス１２に送信される必要はない。データサーバ１８は、さらなるサービスをモバイルデバイス１２へ効果的に供給する。ここで、モバイルデバイス１２は、データサーバ１８から任意の特定のドキュメントのコードブックをリクエストし得る。これらの動作は、図４および５を参照して以下に詳細に説明される。図４は、モバイルデバイス１２によるドキュメントの処理を示す信号のフロー図であり、図５は、図４に示されるモバイルデバイス処理に関連するデータサーバ１８の動作を示す信号のフロー図である。
【００６１】
図４において、モバイルデバイス１２の通信サブシステム３６は、ＷＢＸＭＬドキュメントを含む接続リクエスト（図示されない）に対する要求を受信する。リクエスト／応答プロセスは、実質的に図３に示されるようになっており、例えば、上述されたようになっている。なお、応答が図３に示されるが、代替として、受信したＷＢＸＭＬドキュメントは、情報ソースによってモバイルデバイス１２にプッシュされたドキュメントであってもよい。図４では、受信したＷＢＸＭＬドキュメントは、モバイルデバイスソフトウェアアプリケーション３８によって利用されることが意図される。
【００６２】
データサーバ１８によるＸＭＬドキュメントのＷＢＸＭＬへのコード変換は、モバイルデバイス１２においてＸＭＬにより仕事をすることを望むユーザに対しては、トランスペアレントであり得る。このため、ＷＢＸＭＬドキュメントは、好ましくは、ＷＢＸＭＬパーサ４０に送られる。ＷＢＸＭＬパーサ４０は、アプリケーションハンドラ４２のコールバック機能で、全てのパージングイベントをソフトウェアアプリケーション３８のためにアプリケーションハンドラ４２に注入する。それにより、受信したドキュメントは、パーサ４０によって要素にパージングされ、要素は、アプリケーションハンドラ４２に送られる。ＷＢＸＭＬドキュメントのこれらの要素をＸＭＬにコード変換することは、おそらく、パーサ４０またはアプリケーションハンドラのどちらかによって操作され得る。例えば、パーサ４０がバイナリパーサである場合、アプリケーションハンドラ４２は、通常、適切なコードブックを用いて、パーサ４０からアプリケーションハンドラ４２に送られたバイナリ要素をコード変換するように構成される。しかしながら、パーサ４０がストリングパーサである場合、パーサ４０は、アプリケーションハンドラ４２に要素を送る前に、受信したＷＢＸＭＬドキュメントのパージングされたストリング要素をコード変換し得る。図４に明確には示されないが、モバイルデバイス１２が、１つより多いタイプのパーサ４０と、１つより多いソフトウェアアプリケーション３８と関連するアプリケーションハンドラ４２とを含み得ることが理解されるべきである。各ソフトウェアアプリケーション３８およびアプリケーションハンドラ４２は、異なるタイプのパーサの任意の１つにより動作するように構成され得る。図４に示される例では、アプリケーションハンドラ４２は、コードブックを用いてドキュメント要素をコード変換する。さらに、要素は、パージングされるときにコード変換されてもよいし、あるいは、コード変換は、受信したドキュメントの全てまたは一部がパージングされた後に実行されても良いことが理解される。
【００６３】
パーサ４０からアプリケーションハンドラ４２までの第１のパージングコールバック機能は、好ましくは、受信したＷＢＸＭＬドキュメントに関連付けられる識別子を含む。この識別子は、コードブックシステム４４のコードブックキャッシュ４５（図示されない）から適切なコードブックを取り出すために、キーとしてアプリケーションハンドラ４２により利用される。いくつかの実施形態、または、上述のようにパーサ４０によってコード変換が操作されるアプリケーションに関する動作では、コードブックは、代替として、パーサ４０によってリクエストされ得る。
【００６４】
コードブックが、コードブックシステム４４のコードブックキャッシュ４５（図４に示されない）に格納される場合、コードブックは、アプリケーションハンドラ４２に返され、受信したドキュメントの要素のコード変換は、コードブックに指定されるトークン、タグおよび属性マッピングに基づいて処理され得る。上述されたように、特定の「永久的な」コードブック、最も頻繁に利用されるコードブック、または、最も最近に利用されたコードブックの数は、コードブックシステム４４のコードブックキャッシュに格納され得る。しかしながら、図４の例では、コードブックは、モバイルデバイス１２のコードブックシステム４４において利用可能ではなく、したがって、データサーバ１８からリクエストされなければならない。少なくとも受信したドキュメントに関連付けられる識別子を含む、コードブックリクエストは、モバイルデバイス１２のコードブックシステム４４によって準備され、通信サブシステム３６および通信リンク３７（図２）を介してデータサーバ１８に送信される。
【００６５】
ここで、図５を参照すると、必要とされるコードブックのリクエストは、データサーバ１８のコードブックサーブレット３２によって受信される。コードブックサーブレット３２は、モバイルデバイス１２からのコードブックリクエストに含まれる識別子に基づいて、コードブックシステム３０のコードブックキャッシュ３１（図示されない）からリクエストされたコードブックを取り出す。取り出されたコードブックは、コードブックサーブレット３２に返され、ＷＢＸＭＬドキュメントをパージングする際に用いるためにモバイルデバイス１２に送信して戻される。なお、コードブックリクエストおよび転送は、必要であれば、代替として、プロトコルトランスレータ２４を介してコードブックサーブレット３２によって操作され得る。また、コードブックサーブレット３２が図５に示されるが、データサーバ１８のコードブックシステム３０に対するほかのインターフェースもまた、可能である。図５に示される例は、コードブックがコードブックシステム３０から利用可能であることを前提としている。このようになっていない場合、例えば、コードブックが、コードブックシステム３０のキャッシュにおいて期限切れとなっている場合、または、コードブックリクエストが提示されたデータサーバが、ＷＢＸＭＬドキュメントの受信元のデータサーバでない場合、図８を参照した以下にさらなる詳細が述べられるように、さらなる動作を実行して、文法定義を取り出し、その文法定義をコードブックに変換する。
【００６６】
ここで、図４を参照すると、リクエストされたコードブックがモバイルデバイス１２の通信サブシステム３６によって受信されるとき、リクエストされたコードブックは、コードブックシステム４４に転送され、コードブックシステム４４は、そのコードブックをモバイルデバイスコードブックキャッシュに格納し、どのコンポーネントがモバイルデバイス１２のパージングされたＷＢＸＭＬドキュメントのコード変換を操作するのかに依存して、そのコードブックをアプリケーションハンドラ４２および／またはパーサ４０に提供する。
【００６７】
図４に示される例では、コードブックがアプリケーションハンドラ４２に対して利用可能である場合、ＷＢＸＭＬドキュメントのパージングおよびパージングされたＷＢＸＭＬ要素のコード変換が、継続する。パージングおよびコード変換が完了するとき、ＸＭＬデータは、ソフトウェアアプリケーション３８、または、ほかのモバイルデバイスソフトウェアアプリケーションもしくはサブシステム（図示されない）に送信され得る。例えば、パージングされたデータは、モバイルデバイスストアに格納されてもよいし、さらにモバイルデバイスソフトウェアアプリケーションによって処理されてもよいし、あるいは、モバイルデバイスのスクリーン上に表示されてもよい。
【００６８】
一旦コードブックシステム４４のキャッシュに格納されると、コードブックは、永久的な格納を指定されるか、または、単に一時的に格納され得る。モバイルデバイス１２のようなモバイル通信デバイス上のメモリリソースが制限され、非常に多くの電力を消費する傾向にあるので、多くのコードブックは、一時的に格納される傾向にある。例えば、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメントのデータサーバ１８によって生成されたコードブックは、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメントごとに異なり得、それにより、好ましくは、一時的に格納され得る。上述されるメモリ管理技術のいくつかは、コードブックシステム４４のコードブックキャッシュに対して実行され得る。
【００６９】
したがって、本発明のある局面によると、コードブックは、任意のアプリケーションがいつでもコードブックをリクエストし、かつ、利用することができるように、ソフトウェアアプリケーションから分断される。これは、特定のエンコードスキームが各ソフトウェアアプリケーションまたは対応する各アプリケーションハンドラに組み込まれている公知のシステムとは対照的である。
【００７０】
図６および７は、本発明のいくつかの局面による、データサーバおよびモバイルデバイス動作の別の表現である。図６は、受信したＸＭＬドキュメントのデータサーバ処理を示すフローチャートである。図７は、モバイルデバイスによる受信しコード変換されたドキュメントの処理を示すフローチャートである。
【００７１】
図６において、データサーバ処理は、モバイルデバイスに向かうＸＭＬドキュメントが情報ソースから受信されたときに、ステップ５０で開始する。このドキュメントは、モバイルデバイスからのリクエストに応答してデータサーバによって受信され、データサーバによって情報ソースに送信されてもよいし、あるいは、モバイルデバイスにプッシュされる、すなわち、モバイルデバイスによって最初にリクエストされることなく送信されるドキュメントであってもよい。
【００７２】
データサーバは、その後、ステップ５２において、受信したドキュメントが、妥当なＸＭＬドキュメントのような外部参照される公式の文法定義を有する既知のＸＭＬドキュメントタイプであるかどうかを判定する。これは、例えば、ＤＯＣＴＹＰＥ文のパブリックＩＤを探すことによって達成され得る。ドキュメントが、ＤＴＤのような外部参照される定義を有する場合、そのドキュメントのドキュメントタイプ識別子は、ステップ５４にて判定され、ステップ５６にて利用されて、データサーバのコードブックシステムからそのドキュメントタイプに対応するコードブックをリクエストする。
【００７３】
ステップ５８において、その識別子に対応するコードブックがコードブックシステムのコードブックキャッシュに格納されていることが判定されると、データサーバは、ステップ６６においてドキュメントのコード変換を進め、ステップ６８においてコード変換されたドキュメントをモバイルデバイスに送信する。受信したドキュメントのデータサーバ処理は完結し、プロセスは、ステップ７０で終了する。しかしながら、その識別子に対応するコードブックがコードブックキャッシュないに存在しないとき（ステップ５８）、ドキュメントの定義は、ステップ６０にてコードブックビルダーによって取り出され、上述されたように、ステップ６２にてそのドキュメントタイプの新しいコードブックを生成するために利用される。新しいコードブックは、ステップ６４にてコードブックキャッシュに格納され、ＸＭＬドキュメントは、ステップ６６にて、コードブックを用いてコード変換される。コード変換されたドキュメントは、ステップ６８にてモバイルデバイスに送信され、ステップ７０にてこのプロセスが終了する。
【００７４】
ＸＭＬドキュメント、公式の定義を用いないｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメント、組み込まれた文法定義を有するドキュメントのようなＸＭＬドキュメントは、ステップ５２にて否定的な判定をもたらす。固有の識別子が、例えば、ドキュメントをハッシュすることによってステップ７２にて生成され、コードブックは、ステップ７４にてコードブックシステムからリクエストされ得る。コードブックが、サーバのコードブックシステムのキャッシュに格納される場合（これは、ステップ７６における肯定的な判定に対応する）、ドキュメントは、コード変換され（６６）、モバイルデバイス（６８）に送信され、上述のように、このプロセスが終了する（８０）。生成される識別子に対応するコードブックが、コードブックキャッシュにおいて見出されない場合、処理はステップ７８に進み、受信したドキュメント自体から新しいコードブックを生成し、適用可能でれば、組み込まれた定義を生成する。受信したＸＭＬドキュメントに組み込まれた定義は、好ましくは、ドキュメントから抽出され、かつ、コード変換器またはコードブックビルダーのどちらかによって利用されて、新しいコードブックを生成する。新しいコードブックは、ステップ８０にてコードブックキャッシュに格納され、ドキュメントがコード変換され、モバイルデバイスに送信され（ステップ６６および６８）、ステップ７０にてプロセスが終了する。上述されたように、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメントのコードブックは、ドキュメントがコード変換される時に生成される。したがって、ステップ７８および６６は、同時に実行され得、その後、コードブックが、ステップ８０のコードブックキャッシュに格納され得る。
【００７５】
外部参照された定義を有していない受信されたドキュメントの全てに対するコードブックおよび識別子が異なり得、それにより、コードブックキャッシュのｗｅｌｌ−ｆｏｒｍｅｄドキュメントのコードブックを見出できる可能性が、比較的低いので、ステップ７４および７６は、本発明のいくつかの実施形態では、バイパスされ得る。しかしながら、このタイプのいくつかの異なるドキュメントが、共通のコードブックを有し得る可能性がある。例えば、特定のソースからのドキュメントは全て、同じ組み込まれた定義を利用し得る。固有の識別子が、これらのドキュメントのそれぞれに対して生成される場合、共通のコードブックが生成され、ドキュメントが受信されるたびにコードブックキャッシュに格納される。本発明のさらなる局面によると、識別子は、ドキュメントではなく、コードブックまたは定義に依存して、このようなドキュメントに対して生成され得る。例えば、コードブックが生成され、その後、ハッシュされて、識別子を生成し得る。共通のコードブックは、依然として、共通のコードブックを共有するドキュメントが受信されるたびにデータサーバにおいて生成されるが、コードブックの１つコピーだけが、データサーバに格納される。さらに、コードブックに依存する識別子の生成スキームは、以下にさらに詳細に説明されるように、モバイルデバイスの有意義な利点を提供し得る。
【００７６】
あるいは、外部参照される定義を有していないドキュメントのコードブックが、コード変換されたドキュメントに組み込まれるか、またはプリペンドもしくは添付されて、最初の一回のコードブックエントリによりコードブックキャッシュのスペースを占有することを避け、任意の特定のデータサーバに依存しない一般的なコードブックリクエスト動作を提供し得る。この代替のスキームは、図９に関連して、以下にさらに詳細に説明され得る。
【００７７】
ここで、図７に戻ると、データサーバからのＷＢＸＭＬドキュメントが、ステップ８２にてモバイルデバイスで受信される場合、受信されたドキュメントの識別子が判定される（ステップ８４）。上述されるように、データサーバにて受信したいくつかのＸＭＬドキュメントが、識別子を含まない可能性がある。しかしながら、本発明の実施形態によると、識別子は、好ましくは、データサーバにて生成され、モバイルデバイスに送信された全てのＷＢＸＭＬドキュメントに含まれる。したがって、モバイルデバイスにて受信されるＷＢＸＭＬドキュメントは、好ましくは、識別子を含む。ステップ８４にて判定された識別子を利用して、コードブックは、ステップ８６にて、モバイルデバイスコードブックキャッシュからリクエストされ得る。リクエストされたコードブックが、キャッシュにて見出された場合、受信したドキュメントは、ステップ９０にてパージングされ、かつ、コード変換され、結果として生じるＸＭＬデータは、ステップ９２にて、モバイルデバイスソフトウェアアプリケーション、または、データストアもしくはディスプレイのようなほかのモバイルデバイスリソースに送信され、モバイルデバイスの処理は、ステップ９４にて終了する。コードブックが、モバイルデバイスのコードブックキャッシュにて見出されない場合、ステップ９６にて、データサーバからリクエストされる。ステップ９６と９８との間の破線で示されるように、コードブックリクエストに関連付けられたいくつかの時間遅延の後、コードブックは、ステップ９８にてデータサーバからモバイルデバイスによって受信され、ステップ１００にて、モバイルデバイスコードブックキャッシュに格納される。処理は、その後、上述されるように、ステップ９０に進む。
【００７８】
ここで、異なるｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ  ＸＭＬドキュメントから生じたが、共通の対応するコードブック構造を有する２つのＷＢＸＭＬドキュメントの例について考えられたい。データサーバにおいて、識別子およびコードブックが、ＸＭＬドキュメントのそれぞれに対して生成された。識別子が、ドキュメントではなく生成されたコードブックに依存して、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメントに対してデータサーバによって生成される場合、結果として生じるＷＢＸＭＬドキュメントは、同じドキュメントタイプの識別子を有する。第１のＷＢＸＭＬドキュメントがモバイルデバイスにて受信される場合、そのコードブックは、データサーバからリクエストされ、モバイルデバイスコードブックキャッシュに格納される。しかしながら、第２のＷＢＸＭＬドキュメントが受信された場合、識別子に対応するコードブックは、モバイルデバイスコードブックにおいて見出され、もちろん、コードブックエントリは、キャッシュから既に削除されてもおらず、キャッシュにおいて上書きされてもおらず、それにより、データサーバへのコードブックリクエスト、ならびに、それに関連する通信リソース、モバイルデバイスの電力消費、および時間遅延の利用を避ける。特定の識別子生成スキームは、モバイル通信サービスプロバイダによって判定され得、ワイヤレス通信ネットワークオペレータ、データサーバ所有者またはサービスプロバイダ、アプリケーションサービスプロバイダなどによって、所望のデータサーバおよびモバイルデバイスの挙動、ならびに、ドキュメントまたはコードブックの処理の可能な最適化に依存して、判定され得る。
【００７９】
上述の説明から、本発明は、有利にも、モバイルデバイスおよびサーバが、既知およびそれまで未知であった両方のタイプのＸＭＬドキュメントの転送および処理を提供するそれぞれのコードブックキャッシュをビルドすることができるようにすることを理解されたい。モバイルデバイスおよびデータサーバにおけるコードブックキャッシュは、同じである必要はなく、サーバもしくはモバイルデバイスのシャットダウン、または、任意のソフトウェアまたはハードウェアの変更の必要なく、「直ちに」新しいコードブックを含むように更新され得る。モバイルデバイス側のソフトウェアアプリケーションは、さらに好ましくは、どの種類のＸＭＬドキュメントをこのアプリケーションが受信するのかを有利にも知っている場合、インストール時に、モバイルデバイスコードブックキャッシュに種をまきうる（ｓｅｅｄ）。この種まきは、モバイルデバイスにコードブックを生成することによって、または、任意のデータが送信される前にコードブックキャッシュ４４にデータサーバからコードブックを取り出させることによって、達成され得る。
【００８０】
本発明の上述の実施形態では、モバイルデバイスは、ドキュメントに対応するコードブックがモバイルデバイスのコードブックキャッシュにおいて見出されない場合、データサーバからコードブックをリクエストする。しかしながら、重要なことには、本発明は、決して、このタイプのコードブックリクエストに限定されないことに留意されたい。ドキュメントのようなコードブックはさらに、例えば、新しいドキュメントタイプが確立される場合、または、あるタイプのドキュメントに遭遇するか、もしくは、頻繁に遭遇することが期待される場合、コードブックキャッシュにおける格納のために、モバイルデバイスにプッシュされ得る。コードブックリクエスト、または、コードブックをモバイルデバイスにプッシュすることはまた、モバイルデバイスコードブックキャッシュにおける特定のコードブックのプレローディングに対して、代替として利用され得る。モバイルデバイスの頻繁に利用されるか、または、永久的なコードブックのセットをプレローディングするのではなく、モバイルデバイスユーザまたはソフトウェアアプリケーションは、モバイルデバイスがデータサーバとともに動作するように最初に構成される場合、これらのコードブックをデータサーバからリクエストし得る。データサーバは、モバイルデバイスが、データサーバとの通信のために登録されているか、または、認証されている場合、単純にも、モバイルデバイスにコードブックの所定のセットをプッシュするように構成され得る。
【００８１】
上述の実施形態はまた、コードブックリクエストがデータサーバ１８によって受信される場合の動作を示す。データサーバ１８では、リクエストされたコードブックは、サーバのコードブックキャッシュに存在する。しかしながら、モバイルデバイス１２は、１つより多いデータサーバ１８と通信することが可能になり得る。したがって、コードブックリクエストは、コードブックがリクエストされるタイプの、以前にコード変換されていないＸＭＬドキュメントを有するデータサーバか、あるいは、リクエストされたコードブックが、コードブックキャッシュにもはや格納されていないデータサーバに送信され得る。モバイルデバイス１２が、ＷＢＸＭＬまたは他のコード変換されたＸＭＬドキュメントの受信元の特定のデータサーバ１８からコードブックをリクエストするように構成される場合、モバイルデバイス１２におけるパージング動作は、実質的に上述の用に進む。あるいは、データサーバ１８は、新しいコードブックが生成される際に、他のデータサーバまたは複数のデータサーバにアクセス可能である中央のコードブックストア（図示されない）に新しいコードブックを分配するように構成され得る。それにより、新しいコードブックは、複数のデータサーバのコードブックキャッシュに格納されるか、または、複数のデータサーバに少なくともアクセス可能であることにより、コードブックリクエストは、コードブックがモバイルデバイス１２によって必要とされるときに、複数のデータサーバのいずれかに送信され得る。
【００８２】
コード変換されたＸＭＬドキュメントを受信した特定のデータサーバ１８にのみコードブックリクエストを送信するという、モバイルデバイス１２に対する制限は、受信したドキュメントのパージングおよびコード変換が単一のデータサーバに依存する点で、最適解ではない可能性がある。データサーバがシャットダウンされるか、そうでなければ、モバイルデバイス１２に対して操作可能でないか、または、利用可能でない場合、コードブックがモバイルデバイスコードブックキャッシュ４５に格納されていなかった受信しコード変換されたＸＭＬドキュメントは、モバイルデバイス１２にドキュメントを送信したデータサーバ１８のサービスが復旧するまで、コード変換されてＸＭＬに戻り得ない。複数のデータサーバ間、または、中央のコードブックストアへのコードブックの分配はまた、データ転送および占有データサーバリソースの実質的な量を必要とし得る。さらに、データサーバによる新しいコードブックの分配のいくらかの遅延は、例えば、新しいコードブックがデータサーバのコードブックキャッシュまたは中央のコードブックストアに格納される前にデータサーバから新しいコードブックがリクエストされる場合、コードブックリクエスト処理中にエラーを生じ得る。
【００８３】
データサーバからのコードブックの取り出しに柔軟性を拡張させる一方でこれらの問題に対処する別のスキームが、ここで図８を参照して説明される。図８は、本発明のさらなる局面によるコードブックリクエストに関連付けられたデータサーバ動作を示す信号のフロー図である。
【００８４】
図８において、コードブックリクエストは、モバイルデバイス１２からデータサーバ１８によって受信される。コードブックリクエストは、コードブックサーブレット３２によって、おそらくは、必要であればプロトコルトランスレータ２４を介して受信される。コードブックサーブレート３２は、コードブックシステム３０からコードブックをリクエストし、コードブックシステム３０は、コードブックシステム３０において、リクエストされたコードブックがサーバコードブックキャッシュ（図示されない）に格納されるかどうかを判定する。図８の例では、リクエストされたコードブックは、コードブックキャッシュに存在しない。これは、例えば、モバイルデバイス１２からコードブックリクエストを受信するデータサーバ１８が、リクエストされたコードブックが関連付けられているタイプのＸＭＬドキュメントを以前にコード変換したことがない場合に起こり得る。しかしながら、このコードブックはまた、コードブックが一時的にのみ格納されており、このコードブックがモバイルデバイス１２によってリクエストされる前にキャッシュにおいて上書きされたか、または、キャッシュから削除された場合、サーバコードブックキャッシュに存在しない可能性がある。
【００８５】
本発明のこの実施形態によると、コードブックシステム３０のサーバコードブックキャッシュにおいて見出されないコードブックは、データサーバ１８によって生成される。図８の例では、コードブックは、ＤＴＤサーバ２３ａとして示される外部定義ソースから利用可能なＤＴＤに一致するＸＭＬドキュメントに関連付けられている。コードブックシステム３０は、リクエストされたコードブックがそのコードブックキャッシュから利用可能でないと判定した場合、コードブックビルダー３４が呼出され、ＤＴＤサーバ２３ａからドキュメントのＤＴＤをリクエストする。ＤＴＤは、適切なドキュメントタイプの識別子を用いて、ＤＴＤサーバ２３ａからリクエストされる。ＤＴＤサーバは、ＤＴＤをコードブックビルダーに返し、コードブックビルダーは、実質的に上述されたように、ＤＴＤを用いてリクエストされたコードブックを生成する。コードブックは、コードブックシステム３０に転送され、コードブックシステム３０は、好ましくは、そのキャッシュにコードブックを格納する。コードブックシステム３０はまた、コードブックをコードブックサーブレット３２に返し、コードブックは、必要であれば、プロトコルトランスレータ２４を介してモバイルデバイス１２に返される。モバイルデバイス１２では、リクエストされたコードブックは、モバイルデバイスコードブックキャッシュ４５に格納され、コードブックリクエストが、受信したＷＢＸＭＬドキュメントのコード変換を可能にするために作られている場合、コードブックは、上述のように、ドキュメントを処理するために用いられる。
【００８６】
図８のコードブックリクエストスキームに含まれるサーバ動作は、図９に示される。図９は、図８に示される本発明の実施形態による、コードブックリクエストのデータサーバ処理を示すフローチャートである。図９において、コードブックリクエストがステップ１０２のモバイルデバイスから受信された場合、サーバ処理を開始する。サーバは、ステップ１０４にてリクエストされたコードブックに関連付けられた識別子を判定する。上述されたように、モバイルデバイスは、ドキュメントパブリックＩＤまたは他の識別子をコードブックリクエストに挿入して、好ましくは、識別子がリクエストから抽出され得る。この識別子を用いて、リクエストされたコードブックがサーバのコードブックキャッシュにあるかどうかが、ステップ１０６にて判定される。コードブックキャッシュがキャッシュにある場合、コードブックキャッシュは、ステップ１０８にて、キャッシュから取り出され、ステップ１１０にて、モバイルデバイスに返され、ステップ１１２にてコードブックリクエスト処理が終了する。
【００８７】
コードブックがキャッシュに存在しない場合、サーバは、ステップ１１４にて、定義が取り出され得る外部定義ソースのアドレスを判定する。このアドレスが判定されたとき、ステップ１１６にて、例えば、上述されたリクエストおよび応答処理を介して、サーバは定義を取り出す。リクエストされたコードブックは、ステップ１１８にて生成され、好ましくは、ステップ１２０にて、サーバコードブックキャッシュに格納され、ステップ１１０にて、モバイルデバイスに返される。コードブックリクエスト処理は、完了し、ステップ１１２にて終了する。
【００８８】
外部定義が取り出され得るＵＲＬを用いてことの１つの利点は、図８および９から明らかなになる。コードブックリクエストの識別子が、外部定義の位置をポイントするとき、データサーバは、ＤＴＤサーバ２３ａのような外部定義ソースのアドレスを判定するために、識別子をリゾルブする必要はない（図９のステップ１１４）。このように、リクエストは、外部定義を取り出すために必要とされる全ての情報を含み、外部定義は、データサーバによってコードブックリクエスト処理を単純化する。さらに、このスキームは、データサーバ間のあらゆる種類のコードブックの通信を必要とすることなく、複数のデータサーバ間でローディングするコードブックリクエストの分配を提供する。例えば、第１のデータサーバ（ＤＳ１）が、ＸＭＬドキュメントを受信し、ＤＴＤを取り出し、コードブックを生成し、ＸＭＬドキュメントをＷＢＸＭＬドキュメントにコード変換し、ＷＢＸＭＬドキュメントをモバイルデバイスに送信し得る。第２のデータサーバ（ＤＳ２）は、モバイルデバイスからコードブックのリクエストを受信し得る。コードブックは、サーバＤＳ２においてキャッシュに既に存在しない場合、ＤＳ１は、そのキャッシュにおいてコードブックを生成し、格納しているので、ＤＳ２は、ＤＴＤを取り出して、そのコードブックを生成しなければならない。この場合、このＸＭＬドキュメントタイプの識別子としてＤＴＤのＵＲＬを用いることは、ＵＲＬがＤＴＤを取り出すために必要とされる全てとなるので、パブリックＩＤまたは他の識別子を用いるよりもはるかに有用である。
【００８９】
識別子としてパブリックＩＤを用いることは、ＤＳ１とＤＳ２との間の通信、または、上述されたように、ＤＳ１にのみコードブックリクエストを送信させることをモバイルデバイスに制限することのどちらかを必要とする。このような通信および制限は、システム全体のロバスト性を低下させ、巣ケーラビリティを低下させ得る。しかしながら、識別子が定義のＵＲＬに関連付けられているか、または、識別子がそのようなＵＲＬへとリゾルブされ得る場合、上述の利点は、識別子を用いて達成される。例えば、識別子は、データサーバがハッシュテーブルまたは他のルックアップテーブルを構築することによってＵＲＬへとリゾルブし得る、ハッシュまたは定義のＵＲＬの他の変形であり得る。
【００９０】
図８に示されるスキームは、関連付けられた外部ＤＴＤを有するＸＭＬドキュメントの対してのみ適用可能であり得るのではなく、登録されたＭＩＭＥタイプおよびパブリックに利用可能なトークンテーブルを有するドキュメント、あるいは、外部のパブリックに利用可能なドキュメント文法定義に対する参照を有する任意の他のＸＭＬドキュメントに対しても適用可能であり得る。しかしながら、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメントおよび組み込まれた定義を有するドキュメントのような他のＸＭＬドキュメントに対して、コードブックは、ＸＭＬドキュメントまたは組み込まれた定義を用いてデータサーバによって生成される。したがって、このようなコードブックが、モバイルデバイス１２に送信されるコード変換されたドキュメントに組み込まれるか、添付されることが好ましい。任意のモバイルデバイス１２は、妥当なＸＭＬドキュメント、または、パブリックに利用可能なトークンテーブルを有するＸＭＬドキュメントに関連付けられたこれらのコードブックのみをリクエストする。パブリックに利用可能なトークンテーブルから、コードブックは、そのコードブック、トークンテーブル、または、コードブックが生成され得る他の外部定義にアクセス権を有する任意のデータサーバによって生成され得る。図８および９に示されるコードブックリクエスト動作を提供するためには、外部定義を有していないＸＭＬドキュメントのサポートを維持しつつ、データサーバ動作が、図１０に示されるように修正され得る。図１０は、図８および９のコードブックリクエストスキームをサポートする、受信したＸＭＬドキュメントの例示的なデータサーバ処理を示すフローチャートである。
【００９１】
図１０において、外部参照される定義を有するＸＭＬドキュメントの処理は、図６の示され、上述されたものと実質的に同じであり、したがってさらなる詳細は説明されない。ステップ５０において、情報ソースから受信したＸＭＬドキュメントが、外部参照された定義を有していないことが判定された場合（ステップ５２）、コードブックは、上述されたように、ステップ７８においてドキュメントまたは組み込まれた定義から生成される。受信されたドキュメントは、ステップ６６にてコード変換される。さらに上述されるように、コードブックは、ドキュメントがコード変換される際に生成され得、ステップ６６および７８は、実際に同時の動作となり得る。コードブックは、ステップ６７において、コード変換されたドキュメントに組み込まれるか、プリペンドされるか、または、添付され、コード変換されたドキュメントおよびコードブックは、ステップ６９において、モバイルデバイスに送信される。コードブックは、コード変換された識別子を有するモバイルデバイスに送信されるので、識別子は、生成される必要はなく、コードブックは、必ずしもデータサーバに格納されている必要はない。
【００９２】
上述の説明は、データサーバにおいてＸＭＬドキュメントをＷＢＸＭＬドキュメントにコード変換すること、コード変換されたドキュメントをモバイル通信デバイスに送信すること、および、モバイルデバイスにおいてＷＢＸＭＬドキュメントを処理することに関する。しかしながら、本発明のさらなる局面によると、ＸＭＬドキュメントはまた、モバイルデバイスにて準備され、データサーバへの送信のためにＷＢＸＭＬにコード変換されてもよい。データサーバは、意図される受信側への転送のために、モバイルデバイスから受信したＷＢＸＭＬドキュメントをＸＭＬにコード変換し得る。
【００９３】
図１１は、モバイルデバイスにおけるＷＢＸＭＬドキュメントの生成を示す信号のフロー図である。図１１に示されるモバイルデバイス２１２は、図４に示されるモバイルデバイス１２と類似しているが、ＸＭＬおよびＷＢＸＭＬドキュメントの生成を提供する。通信サブシステム２３６およびコードブックシステム２４４は、モバイルデバイス１２において同様のラベルが付与されたコンポーネントと同じである。ソフトウェアアプリケーション２３８およびそのアプリケーションハンドラ２４２はまた、例えば、ソフトウェアアプリケーション３８がＸＭＬコンテンツを受信および生成の両方を行うように構成されている場合、図４のアプリケーション３８およびハンドラ４２と同じであり得る。しかしながら、任意のモバイルデバイスソフトウェアアプリケーションが、受信したＸＭＬデータを受信するか、ＸＭＬデータを生成するか、または、その両方を行うかのいずれかとなり得、モバイルデバイスは、１つより多いタイプのソフトウェアアプリケーションを含み得ることが理解されるべきである。
【００９４】
ＷＢＸＭＬジェネレータ２４１は、ＷＢＸＭＬドキュメントからのドキュメント要素をパージングするのではなく、ＷＢＸＭＬパーサ４０と逆の動作を実行し、ＷＢＸＭＬジェネレータ２４１は、ドキュメント要素をＷＢＸＭＬドキュメントにアセンブルする。ＸＭＬドキュメント要素のＷＢＸＭＬ要素へのコード変換は、モバイルデバイス２１２、ソフトウェアアプリケーション２３８、およびそのハンドラ２４２の構成に依存して、ＷＢＸＭＬジェネレータ２４１またはアプリケーションハンドラ２４２のいずれかによって操作され得る。モバイルデバイス２１２では、アプリケーションハンドラ２４２は、ＸＭＬドキュメント要素をＷＢＸＭＬドキュメント要素へコード変換するが、モバイルデバイスは、上述のタイプのいずれかのソフトウェアアプリケーションおよび関連するハンドラを含み得る。
【００９５】
図１１に示されるように、ソフトウェアアプリケーション２３８は、アプリケーションハンドラ２４２に送られるＸＭＬデータを生成する。このデータは、モバイルデバイス２１２に以前に格納されていてもよいし、モバイルデバイス２１２のキーボード、キーパッド、または他の入力（図示されない）においてユーザにより入力されてもよいし、あるいは、可能であれば、コンピュータへのシリアルポート接続のようなデータ転送システム、または、赤外線受信機もしくはＢｌｕｅｔｏｏｔｈ通信モジュールのようなショートレンジワイヤレス通信システムを介してモバイルデバイス２１２にロードされてもよい。ソフトウェアアプリケーション２３８によって生成されたＸＭＬデータは、図１１に示される単一の転送、または、要素が生成されるごとに要素ごとにアプリケーションハンドラ２４２に転送されてもよい。
【００９６】
ソフトウェアアプリケーション２３８からのいくらかまたは全てのＸＭＬデータが、アプリケーションハンドラ２４２によって受信される場合、ソフトウェアアプリケーション２３８によって生成されるデータのＸＭＬタイプに関連付けられる識別子を用いて、ＸＭＬデータをＷＢＸＭＬにコード変換するために必要とされるコードブックは、コードブックシステム２４４からリクエストされる。コードブックシステム２４４は、コードブックオそのキャッシュ（図示されない）から取り出すか、または、コードブックがそのキャッシュにおいて利用可能でない場合データサーバからコードブックをリクエストするかのどちらかによって、リクエストされたコードブックをアプリケーションハンドラ２４２まで返す。おそらくデータサーバにおけるコードブックの生成を含むコードブックリクエストプロセスは、上述のスキーマのいずれかを介して達成され得る。
【００９７】
コードブックがアプリケーションハンドラ２４２によって受信される場合、ＸＭＬデータのＷＢＸＭＬドキュメント要素へのコード変換が継続する。一旦ソフトウェアアプリケーション２３８からの全てのＸＭＬドキュメントが、ＷＢＸＭＬ要素にコード変換され、ＷＢＸＭＬジェネレータ２４１に送信されると、ＷＢＸＭＬジェネレータ２４１は、そのＸＭＬタイプに関連付けられた識別子を含むＷＢＸＭＬ要素をＷＢＸＭＬドキュメントにアセンブリし、ＷＢＸＭＬドキュメントを通信サブシステム２３６に転送する。ＷＢＸＭＬドキュメントは、その後、データサーバに送信される。
【００９８】
ソフトウェアアプリケーション２３８によって生成されたＸＭＬデータはまた、リクエストされたコードブックが受信されるまで、モバイルデバイス２１２においてメモリ（図示されない）に格納され得る。これは、モバイルデバイス２１２が、通信ネットワーク範囲外にあるか、そうでなければ、データサーバからコードブックをリクエストおよび／もしくは受信するために利用可能でない場合でさえ、モバイルデバイス２１２におけるデータの生成を提供する。データがモバイルデバイス２１２において格納されるので、他のモバイルデバイスの動作、機能、およびソフトウェアアプリケーションは、生成されたＸＭＬドキュメントがまだコード変換されておらず、データサーバに送信されていなくても、利用され得る。格納されたデータは、その後、コードブックが受信されるときはいつでもコード変換され、データサーバに送信される。
【００９９】
モバイルデバイス２１２において生成されたＸＭＬドキュメントは、データサーバ、データサーバが通信するように構成され得る意図されるドキュメントの受信側（ウェブサーバなど）、または、その両方のいずれかを想定していることが理解される。ＸＭＬドキュメントが、データサーバによって１つ以上の受信側に送信される場合、各受信側のアドレスは、好ましくは、ソフトウェアアプリケーション２３８、アプリケーションハンドラ２４２、もしくは可能であれば、モバイルデバイス２１２のＷＢＸＭＬジェネレータ２４１によってＷＢＸＭＬドキュメントに添付されるか、または、組み込まれる。
【０１００】
上述のモバイルデバイス２１２および図１１に示される信号のフローは、コードブックがモバイルデバイス２１２においてか、または、データサーバから利用可能であるＸＭＬドキュメントの生成に関する。上述されるように、パブリックに利用可能な文法適宜を有するＸＭＬドキュメントのコードブックは、文法定義へのアクセス権を有する任意のデータサーバによって生成され得る。このように、モバイルデバイスおよびモバイルデバイスソフトウェアアプリケーションは、公知のタイプのＸＭＬのみを生成するように構成される場合、モバイルデバイスは、コードブック生成システムを含む必要はない。なぜなら、モバイルデバイスにおいてＷＢＸＭＬドキュメントを生成するために必要とされる任意のコードブックは、データサーバからリクエストされ得る。しかしながら、モバイルデバイスにおけるリソースの処理が許可される場合、モバイルデバイスは、ドキュメントをデータサーバに送信する前に、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙまたは他の新しいタイプのＸＭＬドキュメントを生成し、このようなドキュメントに対応するコードブックを生成し、コードブックをコード変換されたＸＭＬドキュメントに組み込むか、プリペンドするか、添付し得る。あるいは、データサーバ１８ついて上述されるように、固有の識別子が生成され得、コードブックは、多量のメモリ空間が利用可能である場合、モバイルデバイス２１２におけるコードブックキャッシュ（図示されない）に格納され得る。コードブックが、このようなＸＭＬドキュメントから生成されるＷＢＸＭＬドキュメントのデータサーバによって必要とされる場合、コードブックは、モバイルデバイスからリクエストされ得る。これらの２つの代替として、このようなコードブックをデータサーバに送信することは、モバイルデバイスにおけるコードブックリクエスト管理、モバイルデバイスが通信ネットワーク範囲をオフにされるかまたは通信ネットワーク範囲外となる場合にモバイルデバイスからコードブックを取り出す際の潜在的な時間遅延、ならびに、データサーバ通信リンクまでのモバイルデバイスを介するコードブックリクエスト／応答トラフィックの増大を避けるために、好ましい。
【０１０１】
図１２は、データサーバがモバイルデバイスから受信したＷＢＸＭＬドキュメントの処理を示す信号のフロー図である。データサーバ２１８およびそのコンポーネントは、コード変換器システム２２８がＷＢＸＭＬからＸＭＬへのコード変換器２７４を含むこと以外は、データサーバ１８および図３に示され上述されたような同じラベルが付与されたコンポーネントと実質的に同様である。
【０１０２】
モバイルデバイス２１２は、好ましくは、データサーバからモバイルデバイスへのドキュメント転送用に用いられるプロトコルを同じプロトコル（例えば、専用ＩＰＰＰ）を用いて、データサーバ２１８へドキュメントを転送するが、ドキュメント転送の方向に応じて、異なるプロトコルが用いられてもよい。
【０１０３】
モバイルデバイス２１２からのＷＢＸＭＬドキュメントは、データサーバ２１８によって受信され、任意の必要なプロトコルトランスレーションがプロトコルトランスレータ２２４によって実行される。受信されたＷＢＸＭＬドキュメントは、コード変換システム２２８のトランスコーダ２７４に転送される。データサーバ２１８のトランスコーダシステム２２８も受信ドキュメントのパージングを実行することは明らかである。これはまた、上記のデータサーバ１８のコード変換システム２８に当てはまる。当業者は、別々のパージングがホン発明の範囲を逸脱することなくデータサーバに提供され得ることを理解する。
【０１０４】
そのコードブックがＷＢＸＭＬドキュメントに埋め込まれた、プリペンドされた、または添付される場合、トランスコーダ２７４は、コードブックを抽出して用い、ＷＢＸＭＬドキュメント要素をＸＭＬにコード変換し、また、コードブックをコードブックシステム２３０のコードブックキャッシュ（図示せず）に格納してもよい。図１２に示される実施例では、受信されたＷＢＸＭＬドキュメントは、外部参照定義を有する。その識別子は、トランスコーダ２７４によって用いられ、ドキュメント用のコードブックをコードブックシステム２３０からリクエストする。そのコードブックシステムは、コードブックがそのコードブックキャッシュ内に見つけられる場合、リクエストされたコードブックをリターンするか、コードブックビルダー２３４を呼び出して、リクエストされたコードブックを生成する。
【０１０５】
上記されたように、そのコードブックビルダー２３４は、識別子を用いて外部定義ソース２２３から定義をリクエストする。その識別子は、好ましくは、ＵＲＬ等のアドレスである。そのＵＲＬから定義が取り出される。その定義がコードブックビルダー２３４にリターンされると、リクエストされたコードブックを生成するために用いられ、コードブックシステム２３０にリターンされる。そのコードブックシステム２３０は、好ましくは、そのキャッシュに新規のコードブックを格納し、コードブックをトランスコーダ２７４に提供する。パージングされたＷＢＸＭＬ要素は、ＸＭＬドキュメントにコード変換されて、アセンブリされる。
【０１０６】
モバイルデバイス２１２からのドキュメントがデータサーバ、またはそのサーバ内の他のコンポーネントによってさらに処理されることが意図される場合、そのＸＭＬドキュメントは、このような他のデータサーバコンポーネントに転送され、あるいは、次の処理のために、データサーバ２１８のメモリ（図示せず）に格納されることも可能である。受信されたＷＢＸＭＬドキュメントがモバイルデバイス２１２によってドキュメントに埋め込まれるか、提供されたアドレスによって識別される受信システム２２０を対象としている場合、コード変換されたドキュメントが適切な接続ハンドラ２２６を介して受信システム２２０に転送される。受信システム２２０通信へのデータサーバ２１８は、図１２に示されるように、データサーバ２１８と外部定義ソース２２３との間の通信用に用いられる接続ハンドラ２２６を通して達成され得る。あるいは、異なる接続ハンドラが用いられてもよい。上記のモバイルデバイス１２からのドキュメントリクエストと類似して、そのモバイルデバイス２１８は、ＷＢＸＭＬドキュメントとの接続リクエストを送信し得、任意の受信システムにドキュメントを転送するために用いられる、２２０のような任意のドキュメント受信システム、および、通信ハンドラおよび／またはプロトコルを指定する。
【０１０７】
モバイルデバイス２１２において生成されたＸＭＬドキュメントは、これにより、データサーバ２１８への転送のためにＷＢＸＭＬにコード変換され、データサーバ２１８によってＸＭＬにコード逆変換される。モバイルデバイス２１２は、直接またはデータサーバを通して、同様にイネーブルされたモバイルデバイスにＷＢＸＭＬドキュメントを転送し得ることも考えられる。後者の例では、ＷＢＸＭＬドキュメントは、好ましくは、データサーバによってＸＭＬにコード変換される代わりに、意図した受信モバイルデバイスに転送される。受信モバイルデバイスは、データサーバからか、あるいは送信機モバイルデバイスから必要とされたコードブックをリクエストし得る。
【０１０８】
図１１および１２に示されたコンテンツ処理スキームが図１３および１４のフローチャートフォームで示される。図１３は、生成されたＸＭＬドキュメントを処理するモバイルデバイスを示すフローチャートである。図１４は、データサーバによる、受信されたＷＢＸＭＬの処理を示すフローチャートである。
【０１０９】
図１３では、ＸＭＬドキュメントは、ステップ２５０のモバイルデバイス２１２で生成される。その後、妥当なＸＭＬドキュメント等の外部参照および利用可能文法定義を有するＸＭＬドキュメントが公知のＸＭＬドキュメントタイプである場合、ステップ２５２において、決定される。生成されたＸＭＬドキュメントのタイプは、例えば、ＸＭＬドキュメントを生成する特定のモバイルデバイスソフトウェアアプリケーションに依存し得る。ＸＭＬがＤＴＤ（そのＤＴＤは、ＸＭＬドキュメント内のＤＯＣＴＹＰＥステートメントを検索することによって決定される）等の外部参照定義を有する場合、そのドキュメントのドキュメントタイプ識別子がステップ２５４で決定され、ステップ２５６で用いられ、モバイルデバイスのコードブックシステムから対応するコードブックをリクエストする。
【０１１０】
ステップ２５８で決定されるように、コードブックがモバイルデバイスコードブックシステムのコードブックキャッシュに格納される場合、ＸＭＬドキュメントは、ステップ２６０においてコード変換され、その結果のＷＢＸＭＬドキュメントは、ステップ２６２において、データサーバおよび／または受信側（単数または複数）に送信され、生成されたＸＭＬドキュメントのモバイルデバイス処理を完成する。その処理は、ステップ２６４で終了する。しかし、その識別子に対応するコードブックがコードブックキャッシュにない場合（ステップ２５８）、そのコードブックは、ステップ２６６でデータサーバからリクエストされる。そのコードブックは、ステップ２６８において、データサーバから受信される。これは、後に、ステップ２６６とステップ２６８との間の点線で示される。そのコードブックは、その後、ステップ２７０において、モバイルデバイスのコードブックキャッシュに好ましくは格納され、上記のようにステップ２６０、２６２および２６４において処理が完結する。
【０１１１】
比較的制限された処理パワーを有するモバイルデバイスは、おそらく、ＸＭＬドキュメントのみを生成する能力がある。そのＸＭＬドキュメントのコードブックは、モバイルデバイスのコードブック生成を避けるために、データサーバによって生成されてもよいし、データサーバからリクエストされてもよい。このようなモバイルデバイスでは、局所的に生成されたＸＭＬドキュメントの処理は、ステップ２５０、およびステップ２５４〜２７０を含む。モバイルデバイスが、ＸＭＬドキュメント（例えば、新規のタイプのＸＭＬドキュメント、正式の定義を用いないｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙドキュメント、埋め込まれた文法定義を伴うドキュメント等）のコードブックを生成し得る場合、否定的な判定がステップ２５２においてなされ得る。そのコードブックは、上記のように、ステップ２７２において、ドキュメントまたは埋め込まれた定義から生成される。例えば、ＸＭＬドキュメントは、ステップ２７４において、コードブックを用いてコード変換され、そのコードブックは、ステップ２７６において、好ましくは、コード変換されたＷＢＸＭＬドキュメントに埋め込まれ、プリペンドされ、または、添付されて、そのＷＢＸＭＬドキュメントおよびコードブックは、ステップ２７８において、データサーバおよび／または受信側（単数または複数）に送信される。
【０１１２】
あるいは、ステップ２７２において生成されたコードブックは、計算された固有の識別子を用いて、モバイルデバイス上のコードブックキャッシュに格納され得る。しかし、上で詳細された理由では、ＸＭＬドキュメントまたは埋め込まれた定義から生成されたコードブックは、好ましくは、ＷＢＸＭＬを有するまたはその内部にある、任意の他の受信側に送信される。
【０１１３】
図１４に戻ると、モバイルデバイスにおいて生成されたＷＢＸＭＬドキュメントの処理が記載される。図１４は、データサーバによる、受信されたＷＢＸＭＬドキュメントの処理を示すフローチャートである。図示されるように、処理方法は、モバイルデバイスからのＷＢＸＭＬドキュメントがステップ２８０においてデータサーバで受信されるときに開始する。その後、コードブックがドキュメンを提供されたかどうかが決定される。例えば、ｗｅｌｌ−ｆｏｒｍｅｄ−ｏｎｌｙ  ＸＭＬドキュメント用に用いられたコードブックがＷＢＸＭＬドキュメント内に埋め込まれた、プリペンドされた、または添付される。コードブックが提供される場合、ステップ２８４において抽出され、ステップ２８６において、そのドキュメントは、コードブックを用いて、パージングされて、ＷＢＸＭＬにコード逆変換される。上記のように、モバイルデバイスから送信されたドキュメントは、データサーバ、あるいは、１つ以上の受信側に用いられることを意図され得る。コード変換されたドキュメントは、その後、ステップ２８８において、データサーバ内のコンポーネント、および／または、任意の意図した受信側に分配される。この方法は、ステップ２９０において終了する。そのドキュメントが１つ以上の受信側のモバイルデバイス用に意図される場合、受信されたＷＢＸＭＬドキュメントは、コード変換されることなく、ステップ２８８においてモバイルデバイスに転送され得る。しかし、コード変換されたＸＭＬバージョンは、例えば、コンピュータシステム等の他の受信側に送信され得る。このコンピュータシステムによって、データサーバは、例えば、インターネット等のＷＡＮを通って通信し得る。ＷＢＸＭＬが有線通信システムに対してさえもより効率的な通信リソースを提供し得るため、データサーバが全ての受信側へ受信されたＷＢＸＭＬドキュメントを分配するように構成され得、ステップ２８６のコード変換動作が各受信側によって実行されることが可能である。
【０１１４】
コードブックが、受信されたＷＢＸＭＬドキュメントをモバイルデバイスによって提供されなかった場合、ステップ２８２に判定されるように、データサーバは、ステップ２９２において受信したドキュメントの識別子を判定する。次に、コードブックは、ステップ２９４において、識別子を用いてデータサーバでコードブックシステムからリクエストされる。次に、コードブックシステムは、コードブックがステップ２９６においてそのキャッシュにあるかどうかを判定する。コードブックがキャッシュにあると判定された場合、上述のように、処理は、ステップ２８６に進む。コードブックがキャッシュないに存在しない場合、ステップ２９８において、識別子またはコードブック自体の一方と関連付けられた定義が取り出される。ほとんどのインプリメンテーションにおいて、定義が取り出され、かつ、コードブックがデータサーバによって生成されることが検討される。しかし、本発明が決してそれに限定されないことが理解されるべきである。モバイルデバイスリソースが許可される場合、コードブックは、モバイルデバイスからリクエストされ得る。モバイルデバイスから、ＷＢＸＭＬドキュメントは受信される。
【０１１５】
ステップ２９８において、定義がデータサーバによって取り出されるとき、ステップ３００において、コードブックが生成される。ステップ３００において生成されようと、あるいはステップ２９８においてデータサーバによって取り出されようと、必要とされるコードブックは、好ましくは、ステップ３０２においてデータサーバのコードブックに格納され、処理は、上述のようにステップ２８６、２８８、および２９０で終わる。
【０１１６】
本発明のさらなる局面において、ＷＢＸＭＬドキュメントは、モバイルデバイス間に直接交換され得る。受信されるＷＢＸＭＬドキュメントのモバイルデバイス処理は、上述のように実質的になり得る。ＷＢＸＭＬドキュメントが提供されないか、あるいは、モバイルデバイスのコードブックにあると判定される、必要とされるコードブックは、好ましくは、データサーバか、または、もしかすると送信モバイルデバイスの一方からリクエストされ得る。
【０１１７】
図１５は、本発明によるシステムおよび方法がインプリメントされ得る場合、モバイル通信モバイルデバイスを示すブロック図である。図１５において、モバイルデバイス３２２は、通信サブシステム３３６、ＷＢＸＭＬストリングパーサ３４０、ＷＢＸＭＬストリングジェネレータ３４１、ＷＢＸＭＬバイナリパーサ３４２、ＷＢＸＭＬバイナリジェネレータ３４３、実際のソフトウェアアプリケーション３５０、３５６、３６２をインプリメントするソフトウェアコードをそれぞれ含む３つのソフトウェアアプリケーション３４６、３５２、および３５８、対応するアプリケーションハンドラ３４８、３５４、３６０、ならびに、コードブックキャッシュ３４５を含むコードブックシステム３４４を含む。図１５におけるモバイルデバイス３２２は、図２におけるモバイルデバイス１２に実際に類似するが、複数のソフトウェアアプリケーションならびに２つのタイプのＷＢＸＭＬパーサおよびジェネレータを示す。
【０１１８】
通信サブシステム３３６は、モバイルデバイス３２２に必要とされるようなコンポーネントを含み、ドキュメントの転送およびコードブックのリクエストおよび応答に用いられ得るリンク３３５および３３７を介してデータサーバと通信し、可能ならばリンク３３９を介して他のモバイルデバイスと通信する。通信サブシステム３３６の正確なインプリメンテーションは、通信システムおよびプロトコルに依存する。プロトコルを用いて、モバイルデバイス３２２は、上述のように、動作することが意図される。
【０１１９】
ＷＢＸＭＬストリングパーサ３４０は、ＷＢＸＭＬドキュメント受信し、かつ、ドキュメントをＸＭＬに戻すようにパージングし、コード変換する。従って、ストリングパーサ３４０は、コードブックシステム３４４に接続され、ＷＢＸＭＬドキュメントが受信されるとき、コードブック検索を提供する。コードブックが、受信されたドキュメントに組み込まれるか、プリペンドされるか（ｐｒｅｐｅｎｄ）、または付加される場合、コードブックは、抽出され、コードブックキャッシュ３４５におけるストレージのためのコードブックシステム３４４にパスして、ＷＢＸＭＬドキュメントをコード変換するために用いられる。次に、パージングされ、かつコード変換されたＸＭＬデータは、アプリケーション３５０による使用のためのアプリケーションハンドラ３４８にパスされる。アプリケーション３４６がモバイルデバイス３２２上のＸＭＬを用いて動作するように構成され、かつ、故にストリングパーサ３４０によってＸＭＬデータがパスされることは理解されるべきである。同様に、アプリケーション３４６もまた、モバイルデバイス３２２上にＸＭＬを生成するように構成される。ソフトウェアアプリケーション３５０によって生成されたＸＭＬデータは、アプリケーションハンドラ３４８によってＷＢＸＭＬストリングジェネレータ３４１にパスされる。ＷＢＸＭＬストリングジェネレータ３４１は、コードブックシステム３４４から関連のあるコードブックを取り出すか、あるいは、上述のようにＸＭＬデータまたは組み込まれた定義からコードブックを生成する。コードブックを用いて、ＸＭＬデータをＷＢＸＭＬデータにコード変換する。ＷＢＸＭＬデータは、ＷＢＸＭＬドキュメントにアセンブリされ、データサーバまたは可能ならば別のモバイルデバイスへの転送のための通信サブシステム３３６にパスワードされる。モバイルデバイス３２２上に生成されたコードブックは、コード変換されたＷＢＸＭＬドキュメントと共に送信され得るか、コードブックシステム３４４におけるキャッシュ３４５に格納され得るか、あるいはその両方であり得る。
【０１２０】
バイナリパーサ３４２を用いて動作するように構成されるソフトウェアアプリケーション３５２は、コード変換動作を操作するアプリケーションハンドラ３５４を含む。アプリケーション３５２によって用いられる、受信されたＷＢＸＭＬドキュメントは、パーサ３４２によってパージングされ、パージングされたＷＢＸＭＬドキュメントエレメントは、アプリケーションハンドラ３５４にパスされる。次に、アプリケーションハンドラ３５４は、コードブックシステム３４４からコードブックをリクエストするか、またはドキュメントから組み込まれたコードブックを抽出し、コードブックを用いて、ＷＢＸＭＬにパージングされたエレメントをコード変換する。ＸＭＬドキュメントがソフトウェアアプリケーション３５６を用いて生成されるとき、アプリケーションハンドラ３５４は、ドキュメント自体または組み込まれた定義から適切なコードブックを生成するか、あるいは、コードブックシステム３４４からコードブックをリクエストし、コードブックを用いてＷＢＸＭＬバイナリエレメントにアプリケーション３５６によって生成されたＸＭＬエレメントをコード変換する。ＷＢＸＭＬバイナリジェネレータ３４３は、ＷＢＸＭＬバイナリパーサ３４２のリバース動作を実行し、アプリケーションハンドラ３５４によってそのジェネレータにパスされたＷＢＸＭＬエレメントをＷＢＸＭＬドキュメントにアセンブリする。
【０１２１】
アプリケーション３４６および３５２は、本発明の局面に従ってコードブックシステム３４４と共に動作するように構成される。このようなアプリケーションを取り込むモバイルデバイス３２２は、さらに、そこにインストールされ、かつ動作する他のソフトウェアアプリケーションを有し得ることが理解されるべきである。例えば、上述のような公知の技術に従って一般的になるようにエンコーディングスキームが組み込まれる場合、アプリケーション３５８は、アプリケーションハンドラ３６０を含む。アプリケーション３５８は、図１５に示されるように、パーサ３４２およびジェネレータ３４３を利用し得るが、コードブックシステム３４４と相互に作用しない。それにより、モバイルデバイスにおける本発明のインプリメンテーションは、埋め込まれたコード変換スキームを用いるモバイルデバイスソフトウェアアプリケーションと下位互換性を提供し得る。
【０１２２】
図１５に示されるように、モバイルデバイス３２２は、例示の目的のみに意図され、本発明は、本明細書中に示されるコンポーネントを含むモバイルデバイスに決して限定されない。例えば、ＸＭＬを送信するか、または受信するさらなるソフトウェアアプリケーション、ならびに、通信機能または非通信機能を付与するさらに他のアプリケーションであってもよいし、あるいは、その代わりに、モバイルデバイス上にインプリメントされてもよい。
【０１２３】
上述が例示のみの目的による好適な実施形態に関することが理解される。本発明の多くの変更が当業者に明白であり、このような明白な変更は、明確に記載されようとなかろうと、本明細書中に記載される本発明の範囲内にある。
【０１２４】
例えば、単一のモバイルデバイスであるが、データサーバおよび情報ソースが図面に示され、典型的に、データサーバは、好ましくは異なるワイヤレス通信ネットワークを介して複数のモバイルデバイスのためのサービスを提供し、異なる直接接続またはネットワークベースの接続を介して複数の情報ソースにアクセスする。同様に、任意のワイヤレス通信ネットワークおよび任意の情報ソースが複数のデータサーバと通信し得る。
【０１２５】
さらに、上述のシステムおよび方法は、ＸＭＬ以外のコンテンツタイプのコード変換およびパージングのためにインプリメントされ得る。同様に、これらのシステムおよび方法は、ＷＢＸＭＬ以外のエンコーディングスキームに適合させられ得る。上述の利点および利益はまた、例えば、タイプ長エンコーディングとしてのこのようなエンコーディングスキームに由来され得る。
【０１２６】
データサーバおよび情報ソースが個々のシステムとして主に上述されるが、データサーバおよび情報ソースの機能性の両方を取り入れる統合システムがさらに検討される。このような統合システムは、秘密情報またはさもなければ機密情報が情報ソースによって提供される。この場合、中間データサーバは、モバイルデバイスへの転送のための情報をコード変換する必要がない。例えば、情報ソースにおいてコード変換され、かつ、暗号化される秘密情報は、モバイルデバイスにおいて解読されるまで暗号化されたままであり、端末相互間のセキュリティを提供する。
【図面の簡単な説明】
【０１２７】
【図１】図１は、ワイヤレスモバイル通信デバイスから情報ソースへのアクセスを提供する通信システムのブロック図である。
【図２】図２は、図１のモバイルデバイス１２およびデータサーバ１８の内部要素を示すブロック図である。
【図３】図３は、モバイルデバイス１２からの接続リクエストに応答したデータサーバ１８の動作を示す信号のフロー図である。
【図４】図４は、モバイルデバイス１２によるドキュメントの処理を表す信号のフロー図である。
【図５】図５は、図４に示されるモバイルデバイス処理に関連するデータサーバ動作を示す信号のフロー図である。
【図６】図６は、受信したＸＭＬドキュメントのデータサーバ処理を示すフローチャートである。
【図７】図７は、モバイルデバイスによる受信しコード変換されたドキュメントの処理を示すフローチャートである。
【図８】図８は、本発明のさらなる局面による、コードブックリクエストに関連するデータサーバ動作の信号のフロー図である。
【図９】図９は、図８に示される本発明の実施形態による、コードブックリクエストを処理するデータサーバを示すフローチャートである。
【図１０】図１０は、受信したＸＭＬドキュメントを処理して、図８および９のコードブックリクエスト技術をサポートする例示的データサーバを示すフローチャートである。
【図１１】図１１は、モバイルデバイスにおけるＷＢＸＭＬドキュメントの生成を示す信号のフロー図である。
【図１２】図１２は、データサーバがモバイルデバイスから受信したＷＢＸＭＬドキュメントの処理を示す信号のフロー図である。
【図１３】図１３は、生成されたＸＭＬドキュメントを処理するモバイルデバイスを示すフローチャートである。
【図１４】図１４は、データサーバが受信したＷＢＸＭＬドキュメントの処理を示すフローチャートである。
【図１５】図１５は、本発明によるシステムおよび方法が実装され得るモバイルデバイスを示すブロック図である。
【図１】
2005510804.tif 000003
【図２】
2005510804.tif 000004
【図３】
2005510804.tif 000005
【図４】
2005510804.tif 000006
【図５】
2005510804.tif 000007
【図６】
2005510804.tif 000008
【図７】
2005510804.tif 000009
【図８】
2005510804.tif 000010
【図９】
2005510804.tif 000011
【図１０】
2005510804.tif 000012
【図１１】
2005510804.tif 000013
【図１２】
2005510804.tif 000014
【図１３】
2005510804.tif 000015
【図１４】
2005510804.tif 000016
【図１５】
2005510804.tif 000017
【国際調査報告】
2005510804.tif 000018
2005510804.tif 000019
2005510804.tif 000020