(57)【要約】ウェブサーバを具備するモバイルコンピューティング装置において、ウェブサーバは、（ｉ）モバイルコンピューティング装置において実行中であり、装置のために最適化されていない標準形式を処理することができるアプリケーションＡ及び（ii）モバイルコンピューティング装置に遠隔接続された更に付加された装置において実行中であり、標準形式を処理することができるアプリケーションＢの双方がモバイルコンピューティング装置上に格納されるアプリケーション特有のデータを読むことができるようにするために、アプリケーション特有のデータを装置のために最適化されたバイナリデータ形式から標準形式である第１の合意した形式へと変換することができるモバイルコンピューティング装置。モバイルネットワークは費用がかかり、信頼性及び遅延の問題があるが、モバイルコンピューティング装置上に固有の独自のバイナリ形式で格納されたアプリケーション特有のデータをＨＴＭＬのようなマークアップ言語などの合意した標準に基づく形式へと変換することにより、アプリケーション特有のデータは完全に携帯可能になる。これが主な利点である。
2005521120.tif 000002
【特許請求の範囲】
【請求項１】
ウェブサーバを具備するモバイルコンピューティング装置において、前記ウェブサーバは、（ｉ）前記モバイルコンピューティング装置において実行中であり、前記装置のために最適化されていない標準形式を処理することができるアプリケーションＡ及び、（ii）前記モバイルコンピューティング装置に遠隔接続された更に付加された装置において実行中であり、前記標準形式を処理することができるアプリケーションＢの双方が、前記モバイルコンピューティング装置上に格納されるアプリケーション特有のデータを読むことができるようにするために、前記アプリケーション特有のデータを前記装置のために最適化されたバイナリデータ形式から前記標準形式である第１の合意した形式へと変換することができるモバイルコンピューティング装置。
【請求項２】
前記ウェブサーバは、前記アプリケーションＡ及びアプリケーションＢの各々がアプリケーション特有のデータを書いたり、あるいは、操作したりできるようにするために、第２の合意した形式から前記バイナリデータ形式へと変換することができる請求項１記載のモバイルコンピューティング装置。
【請求項３】
前記ウェブサーバは、パイプラインを成すように接続された複数のプラグインモジュールを具備し、前記パイプラインは、アプリケーション特有のデータの異なるソースからデータを取得することを動的に選択可能な複数のデータ変換プラグインモジュールで終端し、前記データ変換モジュールは、１つ以上の固有のバイナリデータ形式と前記第１の合意した形式との間でデータを変換することができる請求項１記載のモバイルコンピューティング装置。
【請求項４】
前記第１の合意した形式はマークアップ言語形式であり、前記装置の前記アプリケーションＡ及び前記更に付加された装置の前記アプリケーションＢはウェブブラウザである請求項１記載のモバイルコンピューティング装置。
【請求項５】
前記モバイルコンピューティング装置に常駐する前記ブラウザは、幾つかの異なるデータソースからアプリケーション特有のデータをまとめるグラフィカルユーザインタフェースを提供する請求項４記載のモバイルコンピューティング装置。
【請求項６】
前記ブラウザは完全なユーザインタフェースとなる請求項５記載のモバイルコンピューティング装置。
【請求項７】
前記装置に対する前記ユーザインタフェースは、ユーザプリファレンスを考慮する、あるいは、製品の差別化の拡大を可能にするために、無線により変更、更新、又はカスタマイズすることができる請求項６記載のモバイルコンピューティング装置。
【請求項８】
前記第１の合意した形式は、テキスト文字列データを適切にフォーマットするアプリケーションＡ又はＢに使用するためのテキスト文字列形式である請求項１記載のモバイルコンピューティング装置。
【請求項９】
前記第２の合意した形式はフォームデータ形式である請求項２記載のモバイルコンピューティング装置。
【請求項１０】
前記モバイルコンピューティング装置は、ＷＡＮあるいはローカルエリアネットワーク又はピコネットを介して前記更に付加された装置へと遠隔接続可能である請求項１記載のモバイルコンピューティング装置。
【請求項１１】
前記ウェブサーバは、前記モバイルコンピューティング装置の位置及び環境によって、挙動又は動作を変更するようにプログラムされる請求項１記載のモバイルコンピューティング装置。
【請求項１２】
前記モバイルコンピューティング装置が、高いセキュリティクリアランスを有するネットワークにだけ存在すると判定する場合にのみ、機密性の高いアプリケーション特有のデータを利用可能にするようにプログラムされる請求項１１記載のモバイルコンピューティング装置。
【請求項１３】
前記アプリケーション特有のデータは、以下の型：「ＰＩＭ」（個人情報管理）データ、メッセージ、ワードプロセサで作成された文書、画像ファイル、及び音声ファイルのうちの１つである請求項１記載のモバイルコンピューティング装置。
【請求項１４】
同期パラメータ及びバックアップ構成パラメータを格納する請求項１記載のモバイルコンピューティング装置。
【請求項１５】
モバイルコンピューティング装置において実行中のアプリケーションＡ及び前記モバイルコンピューティング装置に遠隔接続された更に付加された装置おいて実行中のアプリケーションＢが前記モバイルコンピューティング装置上に格納されるアプリケーション特有のデータを読むことができるようにする方法であって、
前記モバイルコンピューティング装置において実行中のウェブサーバにおいて、前記アプリケーション特有のデータを前記装置のために最適化されたバイナリデータ形式から前記装置のために最適化されていない標準形式であるが、前記アプリケーションＡ及びＢの双方により処理することができる第１の合意した形式へと変換する工程を含む方法。
【請求項１６】
いずれか一方のアプリケーションは、新規のアプリケーション特有のデータを書くか、あるいは、前記アプリケーション特有のデータを操作することが可能になり、前記方法は、
前記モバイルコンピューティング装置に常駐する前記ウェブサーバにおいて、前記新規の又は操作されたアプリケーション特有のデータを第２の合意した形式からバイナリデータ形式へと変換する工程と、
前記新規の又は操作されたアプリケーション特有のデータを前記バイナリデータ形式で格納する工程とを更に含む請求項１５記載の方法。
【請求項１７】
適切なデータ変換プラグインモジュールを選択する工程が、前記変換工程より先行し、前記利用可能なデータ変換モジュールの各々は、アプリケーション特有のデータの異なるソースからデータを取得することを動的に選択可能である請求項１５記載の方法。
【請求項１８】
前記ウェブサーバが前記モバイルコンピューティング装置に常駐するブラウザと対話する工程を含み、前記第１の合意した形式は前記ウェブブラウザによりレンダリング可能なマークアップ言語形式である請求項１５記載の方法。
【請求項１９】
前記モバイルコンピューティング装置に常駐する前記ブラウザが幾つかの異なるデータソースからアプリケーション特有のデータをまとめるグラフィカルインタフェースを提供する工程を含む請求項１８記載の方法。
【請求項２０】
前記モバイルコンピューティング装置上の前記ブラウザが前記装置に対する完全なユーザインタフェースとして動作する請求項１９記載の方法。
【請求項２１】
ユーザプリファレンスを考慮する、あるいは、製品の差別化の拡大を可能にするために、前記装置に対する前記ユーザインタフェースを無線により変更、更新、又はカスタマイズする更なる工程を含む請求項２０記載の方法。
【請求項２２】
前記第２の合意した形式は形態データ形式である請求項１６記載の方法。
【請求項２３】
前記ウェブサーバからテキスト文字列形式で前記アプリケーション特有のデータを出力する更なる工程を含み、前記テキスト文字列形式データは、適切にフォーマットするアプリケーションＡ又はＢにおいて使用される請求項１５記載の方法。
【請求項２４】
前記モバイルコンピューティング装置に遠隔接続された前記更に付加された装置は、前記モバイルコンピューティング装置上に格納されるデータを前記更に付加された装置により判定される形式で表示する請求項１５記載の方法。
【請求項２５】
ＷＡＮあるいはローカルエリアネットワーク又はピコネットを介して前記モバイルコンピューティング装置を前記更に付加された装置へと遠隔接続する工程を含む請求項１５記載の方法。
【請求項２６】
前記ウェブサーバが前記モバイルコンピューティング装置の位置及び環境によって、挙動又は動作を変更する工程を含む請求項１５記載の方法。
【請求項２７】
前記モバイルコンピューティング装置が、高いセキュリティクリアランスを有するネットワークにだけ存在すると判定する場合にのみ、機密性の高いアプリケーション特有のデータを利用可能にする請求項２６記載の方法。
【請求項２８】
前記アプリケーション特有のデータは、以下の型：「ＰＩＭ」（個人情報管理）データ、メッセージ、ワードプロセサで作成された文書、画像ファイル、及び音声ファイルのうちの１つである請求項１５記載の方法。
【請求項２９】
前記モバイルコンピューティング装置が同期パラメータ及びバックアップ構成パラメータを格納する工程を含む請求項１５記載の方法。
【請求項３０】
搬送媒体上に格納される場合のコンピュータソフトウェアであって、モバイルコンピューティング装置において実行中の場合に前記モバイルコンピューティング装置及び関連する更に付加された装置が請求項１５記載の方法を実行できるようにするコンピュータソフトウェア。
【請求項３１】
ネットワークを介して伝送される場合のコンピュータソフトウェアであって、モバイルコンピューティング装置に実行中の場合に前記モバイルコンピューティング装置及び関連する更に付加された装置が請求項１５記載の方法を実行できるようにするコンピュータソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイルコンピューティング装置に常駐するウェブサーバに関する。ウェブサーバは、ウェブブラウザなどのクライアントがマークアップ言語形式などの合意した形式の情報を利用できるようにする装置又はソフトウェアである。モバイルコンピューティング装置には制限がなく、ハンドヘルドコンピュータ、ラップトップコンピュータ、携帯電話、電子手帳、及び無線情報装置が含まれる。
【背景技術】
【０００２】
ウェブサーバは、従来、ＨＴＭＬ又はＷＭＬ形式で数千又は数万枚の情報ページを格納する高性能な非モバイルコンピュータである。物理的に遠隔のクライアントコンピュータは、ブラウザを使用してこの情報を要求したり、表示したり、情報内を移動したりすることができる。組込み型装置のウェブサーバも知られている。例えば、プリンタ上にウェブサーバを提供することにより、プリンタが文書の各ページを印刷するだけでなく、プリンタに対するインタフェーシングを容易にすることも知られている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
これまで、限定的にではあるが、モバイルコンピューティング装置上にウェブサーバを配置する試みが行なわれてきた。例えば、限られた目的でハンドヘルドコンピュータ上にウェブサーバを含むことが知られている。この目的とは、インターネット接続されたＰＣからハンドヘルドコンピュータへと転送されるウェブページをコンピュータが閲覧できるようにし（ハンドヘルドコンピュータ上のローカルウェブサーバは実質的にキャッシュとして動作）、ハンドヘルドコンピュータのユーザが、インターネット接続されたＰＣを使用して先にダウンロードされハンドヘルド装置へと転送されたウェブページを都合の良い時にブラウズできるようにすることである。ハンドヘルドコンピュータ上の主なデータ（通常、スケジュール及び連絡先／アドレス情報を含むＰＩＭ（個人情報管理）データ）は、ローカルウェブサーバを介してアクセスすることができない。ローカルウェブサーバを介して遠隔接続されたいかなるコンピューティング装置もこのデータを利用することができない。
【０００４】
インターネットベースのＰＩＭアプリケーションを提供し、ユーザが遠隔のウェブサーバ上でＰＩＭデータの全てを保管できるようにすることも知られている。ユーザはＰＣからのインターネット接続を介して書き込んだりブラウズしたりする。しかし、このアプローチには、モバイルコンピューティング装置を使用するユーザにとって非常に不利益な点が幾つかある。モバイルネットワークを介する接続は費用がかかるだけでなく、信頼性が低く、相当な待ち時間がかかる可能性がある。また、遠隔のウェブサーバへと機密の個人データを格納することに関しては、データのプライバシーの問題も認識されている。
【課題を解決するための手段】
【０００５】
本発明の第１の面では、ウェブサーバを具備するモバイルコンピューティング装置において、前記ウェブサーバは、（ｉ）前記モバイルコンピューティング装置において実行中であり、前記装置のために最適化されていない標準形式を処理することができるアプリケーションＡ及び、（ii）前記モバイルコンピューティング装置に遠隔接続された更に付加された装置において実行中であり、前記標準形式を処理することができるアプリケーションＢの双方が前記モバイルコンピューティング装置上に格納されるアプリケーション特有のデータを読むことができるようにするために、前記アプリケーション特有のデータを前記装置のために最適化されたバイナリデータ形式から前記標準形式である第１の合意した形式へと変換することができるモバイルコンピューティング装置が提供される。
【０００６】
アプリケーション特有のデータは、「ＰＩＭ」（個人情報管理）データ（例えば、連絡先リスト、スケジュールなど）、メッセージ（電子メール、ＳＭＳなど）、ワードプロセサで作成された文書、音声ファイル、画像ファイルなどであっても良い。更に付加された装置は、デスクトップＰＣであっても、別のモバイルコンピューティング装置であっても良い。合意した形式は、アプリケーションＡ又はＢにより特定的に定義されても、暗黙のデフォルトであっても、要求元のアプリケーションＡ又はＢとウェブサーバとの間で協議されても良い。
【０００７】
このアプローチにより、従来技術に対して多くの利点を有するようになる。例えば、モバイルコンピューティング装置上に固有の独自のバイナリ形式で格納されたアプリケーション特有のデータをＨＴＭＬのようなマークアップ言語などの合意した標準に基づく形式へと変換することにより、アプリケーション特有のデータは完全に移植可能になる。これが主な利点である。一方で、モバイルネットワークは費用がかかり、信頼性及び遅延の問題がある。
【０００８】
また、このアプローチにより、遠隔の中央サーバ上での機密データの保管に関して、データのプライバシーの問題が緩和される。これは、機密データをモバイルコンピューティング装置上で保管できるようになり、他の装置と容易に共有できるようになる（すなわち、移植可能になる）ためである。このため、全てのＰＩＭデータを遠隔のウェブサーバ上に配置するインターネットウェブサイトベースのアプローチに影響する根本的な問題が解決される。
【０００９】
モバイルコンピューティング装置に常駐するウェブサーバを介してＰＩＭ情報及びメッセージなど（すなわち、通常、デスクトップとハンドヘルドコンピュータとの間で同期させ、最新の状態にしておくように苦心するような情報）をアクセスすることによって、更に付加された装置間でのデータ共有は、モバイルコンピューティング装置のウェブサーバ上で保持されるデータをこれらの装置がブラウズできるようにするだけの問題となる。データセットは複数存在しないので、同期は行なわれない。データが固有の形式で保管されている場合、ブラウジングは不可能であろう。従来技術のアプローチでは、同期は複雑であるが必要な要素である。
【００１０】
アプリケーションＡ及びＢの各々が、アプリケーション特有のデータの書込み又は操作を実行できるようにするために、ウェブサーバは、アプリケーション特有のデータを第２の合意した形式からバイナリデータ形式へと変換することができても良い。これにより、このデータをモバイル装置のデータ格納装置まで生き残らせることができる。第１の合意した形式はＨＴＭＬであっても良く、この場合、アプリケーションＡ及びＢはブラウザである。場合によっては、第１の合意した形式と第２の合意した形式とを同じにすることもできる。全てのアプリケーション特有のデータを操作する必要はない。例えば、モバイルコンピューティング装置上に格納されるデータをボイスメールとすることもでき、この場合、遠隔接続された装置からボイスメールを変更することができても無駄であろう。
【００１１】
このアプリケーション特有のデータをアクセスするクライアントアプリケーションＡ及びＢは、アプリケーション特有のデータを「所有する」アプリケーションと同じ種類のアプリケーションであっても、異なっていても良い。好適な構成では、アプリケーションＡ及びＢは異なっており、共にウェブブラウザである。また、アプリケーションＡ及びＢは、同時にアプリケーション特有のデータをアクセスしたり、相互に何らかの形で協力したりする必要がない（この操作を実行する能力はある）。最後に、アプリケーションＡ及びＢは、アプリケーション特有のデータを固有のバイナリ形式で読むこと、レンダリングすることができない。
【００１２】
同期は本発明の実装例を用いて実行されても良い。そしてこれは、同期パラメータ及びバックアップ構成パラメータをモバイルコンピューティング装置上に格納できるため容易である。このため、デスクトップとの接続性は大幅に簡略化される。これらのパラメータは、どのデータを同期させるべきか、いつ及びどの程度の頻度でバックアップすべきかを定義する。現在の接続性ソリューション（例えば、ＰｓｉＷｉｎ）はＰＣベースであり、全ての構成情報がＰＣ上に格納されており、全ての機能（すなわち、同期又はバックアップの動作）がＰＣ上で実行されるように、ＰＣからモバイルコンピューティング装置に対して問合せを行なうであろう。しかし、本発明により、ユーザは同期パラメータ及びバックアップパラメータをモバイルコンピューティング装置に配置し、モバイルコンピューティング装置を使用してマークアップ言語（例えば、ＨＴＭＬ）でこれらの機能の構成に対するユーザインタフェースを生成することができるだろう。このユーザインタフェースは遠隔のＰＣからアクセス可能である。これにより、ユーザは、ユーザ自身のＰＣ以外の任意のＰＣから同期機能及びバックアップ機能を実行することができる。
【００１３】
本発明の実装例では、ウェブサーバは、実質的に軽量のミドルウェアレイヤとして動作し、他の遠隔接続された装置（すなわち、アプリケーションＡ及びＢ）がある特定のモバイルコンピューティング装置上で保持されるデータを読むことができるようにするだけでなく、その装置に新規のデータを書くことができるようにする。また、このミドルウェアサーバは、データを所有するアプリケーションに固有の形式のデータに対して、例えば、汎用のマークアップ言語形式への変換又はその逆の変換を行なうので、任意の遠隔接続されたユーザは、フォームデータをサーバへと送信することによって、モバイルコンピューティング装置上に格納されたデータに対して修正、削除又は追加を行なうことができる。１台の装置（ＰＣ又はモバイルコンピューティング装置）を使用して、別の遠隔接続されたモバイルコンピューティング装置のウェブサーバ上に格納されたＰＩＭデータ（例えば）を直接修正することは、従来技術では不可能である。
【００１４】
ウェブサーバは、パイプラインを成すように接続された複数のプラグインモジュールを具備する。このパイプラインは、アプリケーション特有のデータの異なるソースからデータを取得する（あるいは、場合によっては、データを書き込む）ことを動的に選択可能なデータ変換プラグインモジュールで終端する。各データ変換モジュールは、１つ以上の固有のバイナリデータ形式と合意した形式との間でデータを変換することができる。動的選択とは、ウェブサーバが手動でのユーザによる構成を必要とせずに、要求に基づいて適切なプラグインを選択することを意味する。異なるデータ変換プラグインは、１つ以上の異なる固有の形式（例えば、異なるＰＩＭアプリケーション、すなわち、異なるメッセージングクライアント）を汎用のマークアップ言語などの合意した形式へと、および形式から変換することができる。本発明の１つの適用例は、モバイルコンピューティング装置が、アドホックネットワークを介したピアツーピアのデータのやりとりにより個人情報送信機となることを可能にすることである。
【００１５】
また、ウェブサーバは、ブラウザがモバイルコンピューティング装置上に格納されたアプリケーション特有のデータに対するユーザインタフェースを提供するように、モバイルコンピューティング装置に常駐するブラウザ（アプリケーションＡの一例）と対話しても良い。モバイルコンピューティング装置上のブラウザは、実質的に完全なユーザインタフェースとなることができる。なぜなら、全てのＰＩＭデータ、ＰＩＭアプリケーション、メッセージングアプリケーション、並びに通信画面及び関連する機能及び特徴は、ブラウザが理解するＨＴＭＬなどのマークアップ言語へと変換することができるからである。ユーザインタフェースはマークアップ言語で書かれたデータを使用するので、ユーザインタフェースを定義する（及びユーザインタフェースを構築するのに使用されるアプリケーション特有のデータの編成及び選択を制御する）テンプレートは、ユーザプリファレンスを考慮したり、製品の差別化又は個性をより拡大可能にするために、無線により容易に変更／更新／カスタマイズすることができる。従って、本発明は、ソフトウェア対応のフォーム、大量カスタマイズ可能な画面の形式を使用可能にする。
【００１６】
加えて、モバイルコンピューティング装置に遠隔接続される更に付加された装置は、この装置により判定される形式でモバイルコンピューティング装置上に格納されるデータを表示しても良い（すなわち、アプリケーションＢにおいて）。データ形式又はアプリケーションに互換性がないという問題がないので、装置間でのデータ共有は容易なものとなるであろう。データは、ＨＴＭＬなどの汎用の標準形式であるので、ブラウザなどの任意の互換性のあるアプリケーションで見ることができる。複数の遠隔のクライアント装置は、ソース装置のウェブサーバがクライアント装置の表示能力について知らなくても可能な最適の方法で、モバイルコンピューティング装置上に格納されるソースモバイルコンピューティング装置上で保持される固有のデータから得られるマークアップ言語形式のデータを使用することができる。また、ウェブサーバは、他のクライアント装置から送信される情報を使用してクライアント装置のブラウザ能力を認識できるようになり、必要に応じて、目標の表示装置に対してフォーマットされたデータを最適化することができる。
【００１７】
モバイルコンピューティング装置は、ＷＡＮ、ローカルエリア無線ネットワーク、又はピコネットを介して更に付加された装置へと遠隔接続されても良い。一般的に、モバイルＷＡＮを介するよりもピコネット（例えば、Ｂｌｕｅｔｏｏｔｈ（商標）ネットワーク）を介してデータをアクセスする方が、簡単で信頼性が高いので、ある特定の環境（例えば、会議での業務の詳細の交換）において共有すべきマークアップ形式のデータを実際にピコネット内（ピコネットの外側及びインターネットを介してアクセスされる遠隔のサーバではない）に配置し、ソースのモバイルコンピューティング装置がウェブサーバを提供することは、多くの場合、より迅速で安価で堅牢なデータ配信へとつながるであろう。インターネット又は無線ＷＡＮ（例えば、ＧＰＲＳ又は３Ｇ）などのＷＡＮを介する遠隔の接続も可能である。
【００１８】
別の可能な特徴は、モバイルコンピューティング装置の位置及び環境によって、ウェブサーバが挙動又は動作を変更しても良いことである。例えば、モバイルコンピューティング装置が、高いセキュリティクリアランスを有するネットワークにのみ存在すると判定する場合、機密性の高いアプリケーション特有のデータ（例えば、メッセージングクライアント上に格納されるメッセージ、文書など）を利用可能にすることができるだろう。しかし、公共セキュリティの低いネットワークでは、明白なデータの小規模なセットのみを利用可能にすることができるだろう（例えば、装置の所有者の名前）。
【００１９】
本明細書で使用される用語「ウェブサーバ」は、任意の種類のデータ又はコンテンツサーバを包含するように拡大して解釈されるべきであり、ＨＴＴＰを使用する従来のウェブサーバに限定されない。このため、ＲＴＰ（Real Time Protocol）などの他のプロトコルも包含する。この場合、より一般的には、ウェブサーバはストリーミングサーバとして見なされるであろう。ＯＢＥＸ及びＷＡＰ及び他の種類のプロトコルの例が取り扱われても良い。ＳＯＡＰ及びＸＭＬの遠隔手順呼出しもウェブサーバにより提供することができる。本発明におけるウェブサーバは、アプリケーション特有のデータを、例えば、マークアップ形式へと変換することができるが、単純なテキスト文字列をフォーマットせずに出力することができても良い。このテキスト文字列出力は、別のアプリケーション（例えば、ホスト装置側ではアプリケーションＡ、接続される装置ではアプリケーションＢ）により使用することができる。アプリケーションはテキスト文字列を適切にフォーマットすることができる。このため、「ウェブサーバ」は新規の洞察、すなわち、全てのデータ転送プロトコルがバイナリストリーム又はタグ付きの値の集合を定義することと、いずれかのプロトコル形式を有するプロトコルをプロトコル特有のプラグインと組み合わせて処理することができる汎用の「ウェブ」サーバが構築可能であることとを活用する。
【００２０】
本発明の第２の面では、モバイルコンピューティング装置において実行中のアプリケーションＡ及び前記モバイルコンピューティング装置に遠隔接続された更に付加された装置において実行中のアプリケーションＢが前記モバイルコンピューティング装置上に格納されるアプリケーション特有のデータを読むことができるようにする方法において、
前記モバイルコンピューティング装置において実行中のウェブサーバにおいて、前記アプリケーション特有のデータを前記装置のために最適化されたバイナリデータ形式から前記装置のために最適化されていない標準形式であるが、前記アプリケーションＡ及びＢの双方により処理することができる第１の合意した形式へと変換する工程から成る方法が提供される。
【００２１】
本発明の第３の面では、搬送媒体上に格納される場合のコンピュータソフトウェアにおいて、モバイルコンピューティング装置において実行中の場合に前記モバイルコンピューティング装置及び関連する更に付加された装置が前記第２の面の方法を実行できるようにするコンピュータソフトウェアが提供される。
【００２２】
本発明の最後の面では、ネットワークを介して伝送される場合のコンピュータソフトウェアにおいて、モバイルコンピューティング装置において実行中の場合に前記モバイルコンピューティング装置及び関連する更に付加された装置が前記第２の面の方法を実行できるようにするコンピュータソフトウェアが提供される。
【００２３】
本発明の更なる詳細は添付の請求の範囲において述べられる。
【００２４】
以下の図面を参照して本発明を説明する。
【発明を実施するための最良の形態】
【００２５】
本発明は、連合王国のロンドンにあるインテュウエーブ社（Intuwave Limited）製のｍ−Ｓｕｒｆ（商標）として実現される。ｍ−Ｓｕｒｆは、モバイル装置上で保持されるアプリケーション特有のデータをアクセスする標準に基づく手段として使用することができるモバイルコンピューティング装置に常駐する軽量のＨＴＴＰサーバであり、通常、装置自体に限られるデータの遠隔閲覧及び遠隔操作を接続される装置（他のモバイルコンピューティング装置、デスクトップＰＣなど）からでも行なえるようにする。図１はこれを概略的に示す。「標準に基づく」のは、装置（例えば、シンビアンＯＳ形式又はマイクロソフトポケットＰＣ形式）上の１つ以上の固有の独自のバイナリデータ形式（例えば、モバイルコンピューティング装置の小型の記憶装置及び低電力消費という必要条件のために最適化される）のアプリケーション特有のデータを装置において実行中の標準に基づくアプリケーション（例えば、標準に基づく形式がＨＴＭＬの場合はウェブブラウザ）と、有線又は無線ネットワークにより接続される外部の装置とによってレンダリングすることができる標準に基づく形式へと変換するからである。
【００２６】
ウェブサーバの一般的な動作の簡略化された背景は序論として有用であろう：
●ＨＴＴＰサーバはデータの「ページ」に対する要求を受信する。
●「ページ」はＵＲＬとして知られるテキスト文字列により識別される。
●「ページ」は、ＵＲＬにより識別されるファイルのコンテンツであっても良い。
●「ページ」は要求ごとに稼働されるプロセスにより実行される何らかの問合せの結果であっても良い。
●「ページ」は任意の型のものであっても良い。一般的な型にはＨＴＭＬ、ＪＰＥＧ、ＧＩＦ、ＡＩＦ、ＷＡＶが含まれる。
●サーバはセキュリティのためにクライアントを認証することができる。
●サーバは更なるセキュリティのためにセキュアソケットを介して動作したり、ｓ−ｈｔｔｐを使用したりすることができる。
●ページは、通常、「Ｇｅｔ」要求を伴ってサーバから取り出されるが、データは「Ｐｏｓｔ」要求を伴って提出することができる。
●ＨＴＴＰサーバは、クライアント側で一意的な識別子（クッキー）を格納し、セッション間のユーザデータの持続性を支援することができる。
●ＳｙｎｃＭＬを含むＸＭＬ形式はＨＴＴＰを介して動作することができる。このＸＭＬ形式は「ページ」の別の型である。
●ＨＴＴＰの参考文献は、http://www.w3.org/Protocols/Specs.htmlで見つけることができる。
【００２７】
ｍ−Ｓｕｒｆは２つの基本的な必要条件を満たす：
◆外部のクライアントに対してｈｔｔｐプロトコルｖ１．１と互換性があるＨＴＴＰサーバであるように見えること。
◆異なるプロトコルを初期のＨＴＴＰプロトコルと並行して使用できるように、プロトコルに依存しない方式で要求を内部的に管理すること。
【００２８】
他の必要条件（一部は列挙した２つの結果である）
◆動詞「ＨＥＡＤ」、「ＧＥＴ」、「ＰＯＳＴ」、「ＰＵＴ」、「ＤＥＬＥＴＥ」、「ＯＰＴＩＯＮＳ」、「ＴＲＡＣＥ」を受け付けて処理すること−尚、これらの動詞のＲＥＳＵＬＴは参照されるリソース（ＵＲＬ）によって決まる。
◆同時のクライアントセッションをサポート可能であること。
◆既存のモジュールをプログラムし直さずにＤＬＬを追加することにより拡張可能であること。
◆ＣＧＩサービス又は同等のサービスを提供すること。
◆ＡＮＹコンテンツ型及びサイズを戻すこと。
◆サーバの静的コンテンツ（すなわち、エポックファイルシステムなどからのｈｔｍｌ文書）。
◆ＨＴＴＰ要求及び応答をテキストファイルへとログ記録すること。
◆シンビアンＯＳウェブブラウザからローカルに及びマイクロソフトインターネットエクスプローラなどのブラウザから遠隔にブラウズ可能であること。
【００２９】
ｍＳｕｒｆ２．０の設計はモジュール方式であり、システムの個別の部分を実行するより単純なプラグインモジュールのパイプラインの概念に基づいている。モジュールは、ｍＳｔｒｅａｍと呼ばれるフレームワークによりロード・管理される。ｍＳｔｒｅａｍは、パイプ及びデータ共有オブジェクトを提供する。ｍＳｔｒｅａｍは、適切なモジュールをロード・リンクし、論理的なパイプラインを形成するメカニズムを提供する。この構造により、個々のモジュールを交換したり代替のシステムにおいて使用したりすることができ、新規のシステムを効率的かつ迅速に設計することができる。
【００３０】
システムにおいて最も外側の構成要素は、このパイプラインへのゲートウェイであると考えられる。これは、他の種々のｍＳｔｒｅａｍベースのパイプラインへのアクセスを提供するのに使用される別の再利用可能な構成要素である。最も内側の構成要素は、ｍ−Ｓｕｒｆへと渡されるアプリケーション特有のデータに対する要求のＵＲＬ及び詳細に基づいて動的に判定されるデータ変換プラグインモジュールである。例えば、特定のソース（すなわち、装置ファイリングシステムの限られたサブセット）からデータ、すなわち、ＰＩＭ連絡先情報、メッセージ、又はワードプロセサで作成された文書などを得て、所要の標準に基づく形式へと変換するプラグインモジュールであっても、あるいは、追加のレイヤへと呼び出されて他のアプリケーション特有の問合せを実行するモジュールであっても良い。あるシステムには、最も内側のモジュールが複数存在するであろう。
パイプラインは図２に示される。ウェブブラウザアプリケーション（ＴＣＰ／ＩＰクライアント）１が、どのデータが必要であるか、所望の形式などを定義するデータ要求２を通常３で示されるｍ−Ｓｕｒｆウェブサーバへと送信する。合意した形式は、ブラウザアプリケーションにより明示的に要求するか、又は暗黙のデフォルトを選択することができる。ｍ−Ｓｕｒｆウェブサーバ３は、実質的に、メモリ４の関連するソースから独自のコンパクトな形式で装置に格納されたアプリケーション特有のデータをとり出し、ＨＴＴＰを使用して符号化された合意の形式へと変換し、処理／レンダリングを行なうために、要求元の構成要素（この場合、ウェブブラウザ１）へと戻す。
【００３１】
重要な特徴は以下の通りである：
（ａ）要求元のアプリケーション／構成要素１の位置は重要ではない。装置自体の内部に配置することも、外部に配置することも可能である。このようなアプリケーションは複数存在させることができる。
（ｂ）ｍ−Ｓｕｒｆは、任意の合意した標準形式のデータを要求元の構成要素へと出力して戻すことができる（例えば、ウェブブラウザでレンダリングする場合にはＨＴＭＬであり、他のアプリケーションの場合はテキスト文字列の可能性もある）。
（ｃ）ブラウザアプリケーション１は、メモリ４にデータを書き込んだり、既存のデータを変更したりすることができる。このため、装置上のウェブブラウザは、装置に格納されたスケジュール情報を表示するのに使用することができるだろう。ユーザは、ブラウザを介して新規のカレンダーエントリを追加することができ、この情報はフォームデータとしてｍ−Ｓｕｒｆへと送信される。ｍ−Ｓｕｒｆは、装置がカレンダーデータを格納するために使用する独自の固有のデータ形式へと変換する。
【００３２】
ｍ−Ｓｕｒｆ３内の構成要素は、簡潔に言うと、Ｔｃｐリスナ５である。Ｔｃｐリスナ５は入力のデータ要求を検出し、論理的なデータストリームとしてＨｔｔｐＳｖｒ６へと渡す。ＨｔｔｐＳｖｒ６は、入力のデータ要求を読み、操作可能な内部構造へと変換し、その出力をＨＴＴＰとして符号化する。ローカルＵＲＬリゾルバ７が、どのモジュール「Ｘ」８へと要求を送信すべきかを考え、合意した形式でデータが戻って来ることを確認する。モジュール「Ｘ」８は関連するデータを獲得し、合意した形式（例えば、ＨＴＭＬ、テキスト文字列、ＪＰＥＧなどの画像ファイル形式、又はＷＡＶなどの音声ファイル形式など）へと変換する。データはｍ−Ｓｕｒｆを介して戻され、要求元のアプリケーション１へと送信される。アプリケーション１への最後のパスは、ピコネットあるいはＧＰＲＳ又は３Ｇ携帯ネットワークなどのＷＡＮを介して外部にあっても良い。
【００３３】
パイプラインの種々の部分をより詳細に述べる：
Ｔｃｐリスナ５  −  この再利用可能な構成要素は、指定のＴＣＰポート（通常８０）上で検出を試みるように構成される。コネクションが形成されると、新規のコネクションから読み書きするモジュール内にオブジェクトが作成される。オブジェクトは、このポートに対する予め選択されたモジュール（この場合、ＨｔｔｐＳｖｒ．ｄｌｌ）の新規のインスタンスを開始し、これを１対のパイプへと渡す。このパイプを介して要求データが交換されることになる。また、オブジェクトは、ＨｔｔｐＳｖｒがＴＣＰコネクションに関する詳細を見つけるのに使用することができるプロパティの集合（バンドル）を渡す。Ｔｃｐリスナモジュールは、外部のＴＣＰ双方向データストリームと、ＨｔｔｐＳｖｒへと供給される単方向のパイプの内部の対との間のアダプタとして機能する。
【００３４】
ＨｔｔｐＳｖｒ６  −  ＨｔｔｐＳｖｒの各インスタンスは、（複数の可能性のある）テキストＨＴＴＰ要求を入力パイプから読み、これをヘッダ値の集合（バンドル）及び（ヌルの可能性のある）要求コンテンツストリームに分析する。各インスタンスは、ｍＳｔｒｅａｍを使用してローカルＵＲＬリゾルバのインスタンスを作成し、これを１対のパイプへと渡し、ヘッダの集合はＴｃｐリスナから受信した集合と併合される。各インスタンスは、要求コンテンツをローカルＵＲＬリゾルバへと渡し、ローカルＵＲＬリゾルバは、パイプを介して応答コンテンツを戻す。各インスタンスは、この応答をＨＴＴＰ応答ヘッダ／コンテンツへとフォーマットし、結果をＴｃｐリスナへと戻す。尚、ＨｔｔｐＳｖｒは、単一のデータストリームから幾つかの個々の要求を解析しても良く、ローカルＵＲＬリゾルバの新規のインスタンスを作成して、各要求を処理することになる。要求の分割及び応答の連結はＨｔｔｐＳｖｒの内部にある。
【００３５】
概略を述べると、ＨｔｔｐＳｖｒは以下の機能を実行する：
◆入力ストリームヘッダを解析し、全ての認識されるヘッダを入力パラメータへと変換すること。
◆入力ストリーム本文を解析し、そのデータのみを含むバイナリストリームへと変換すること。
◆更に変換し、「より有用な」形式を有する追加のヘッダを作成する。
◆モジュールＸから応答パラメータ及びデータを読み、ｈｔｔｐ要求へとフォーマットすること。
◆要求及び結果の要約をテキストログファイルへとログ記録すること。
◆要求のプロトコルバージョン、すなわち、ｈｔｔｐ１．０／１．１でクライアントに応答すること。
◆クライアント（入出力レイヤ）のコネクション解除を適切に処理すること。
◆下位のレイヤに依存せずにトレースコマンドをサポートすること。
◆Ｉ／Ｏレイヤが要求に対してクライアントアドレス情報を供給できるようにすること。
【００３６】
ローカルＵＲＬリゾルバ７−この再利用可能な構成要素は、ヘッダ及び（ヌルの可能性のある）要求ストリームの集合（バンドル）を入力として受け取る。ローカルＵＲＬリゾルバ７はＵＲＬを検査し、処理するためにどのモジュールに要求を渡さなければならないかに関して設定可能な決定プロセスを使用する。ローカルＵＲＬリゾルバ７は適切なモジュールをロードし、処理をそのモジュールへと委ねる。
【００３７】
モジュール「Ｘ」８−これは、要求のヘッダ及びコンテンツを処理し、応答を戻す。例えば、ＩＦｉｌｅＲｅｑｕｅｓｔと呼ばれるモジュールは、装置ファイリングシステムの限られたサブセットからファイルを取得し、ＨＴＭＬディレクトリリストを動的に生成することができる。より一般的には、モジュールＸは、アプリケーション特有のデータを独自のコンパクトな固有のデータ形式から装置上の別のアプリケーション（例えば、ウェブブラウザ）又は別の装置により処理／レンダリングすることが可能な合意した標準形式へと変換する。
【００３８】
従って、ＭＯＤＵＬＥ「Ｘ」のｉＦｉｌｅＲｅｑｕｅｓｔ機能は以下の通りである：
◆アクセス制御ＤＬＬを使用して入力パスを物理的なパスへとマップし、許可を求めて問合せを行なうこと。
◆アクセスＤＬＬにより許可される場合、ファイルを「ＧＥＴ」／「ＰＵＴ」／「ＤＥＬＥＴＥ」すること。
◆アクセスＤＬＬにより許可されたときにディレクトリリストを取得し、ｈｔｍｌページとして戻す。
◆アクセスＤＬＬにより許可される場合、「ＨＥＡＤ」動詞（日付のみファイル修正）をサポートすること。
◆可能な限り、ファイルを「read only deny none」として開き、それに失敗した場合には再試行すること。
【００３９】
モジュールＸはプラグインである。装置はこのようなモジュールを複数有し、モジュールにより処理されるデータに対する要求をｍ−Ｓｕｒｆが受信すると、適切なモジュールを動的に選択する。複数のモジュールを活動状態にすることができるので、幾つかの異なるデータソースから要求元のアプリケーションへとデータを配信することができる。
【００４０】
モジュールＸは、生データ取得とは別に又はこれに加えて、ユーザインタフェースのカスタマイズを可能にする。例えば、装置上で稼働するウェブブラウザは、ある特定のユーザ（すなわち、装置の供給元又はネットワークオペレータ）がスタートアップのホームページ（例えば、連絡先、スケジュール、装置の機能メニュー、オペレータのホームページへのリンク）において望ましいと定義するであろう異なるデータソースの全てからｍ−Ｓｕｒｆを介してデータを要求することができる。このブラウザは、実質的に装置に対するグラフィカルユーザインタフェースの全体となる。企業のロゴをグラフィカルユーザインタフェースへと追加することは簡単であり、特定の装置のメーカー、ネットワークオペレータ、又は企業の経営者に対して装置に商標を付けることができる。マスタテンプレートを使用して、ユーザインタフェースの全体の構造を定義することができる。幾つかのソースからのデータに対する複数の要求が開始され、ユーザインタフェースが構築される。ユーザインタフェースは、例えば、トップレベルのメニュー項目（例えば、連絡先及びスケジュール）のユーザ定義のリストから構成することができ、ユーザ定義のメニュー階層を組み込むことができるだろう。装置に対するユーザインタフェースは、ユーザプリファレンスを考慮したり、あるいは、製品をより差別化することを可能にするために、無線で動的に変更、更新、又はカスタマイズすることができる。
【００４１】
モジュール５、６、７、８の各々は、通常、上述の状況で使用されるが、テストファイル又は他のソースから、またはそれらへとリダイレクトされる入力／出力パイプを有することもできる。
【００４２】
特に、ｍ−Ｓｕｒｆの一部という訳ではないが、システムに対する拡張として、プラグインモジュールを呼び出し、テンプレートファイルを使用して戻されたデータをフォーマットし、ＨＴＭＬ及び他の形式のコンテンツを生成することができる単純なテンプレートモジュールも使用されてきている。
【００４３】
設計をモジュール化することによって、ＷＡＰ及びＳＯＡＰのような、代替利用できる関連する技術を構造化された効率的な方法で統合することもできる。
【００４４】
種々の実施例の詳細が以下に続く：ｍ−ＳｕｒｆはシンビアンＯＳ（以前のＥＰＯＣ）装置で稼働するｃ＋＋ ＨＴＴＰサーバである（ｍ−Ｓｕｒｆは、移植ライブラリによりポケットＰＣ装置でも稼働する）。
●サーバは既存のシンビアンＯＳソケットの実装を使用する。
●サーバは、通常、ユーザインタフェースのないプロセスとして稼働する。
●サーバは、要求、応答、及び操作データを補助のアプリケーションにより見ることができるデータベースへとログ記録する。
●サーバは、要求ストリームを解析し、応答をフォーマットおよび処理する役割がある。
●サーバ（追加のＤＬＬを使用）は、プラグインが「ページ」データへのアクセスを制御することができるように認証を提供する。
●サーバはクッキーを管理する。
●サーバは少なくとも２つのスレッドとして稼働する。第１のスレッドは、アクティブなオブジェクトを使用して要求を解析してフォーマットする。他方のスレッドはプラグインのロード及び呼出しを行なう。これにより、プラグインは第１のスレッドを止めることなく同期的に停止又は実行することができる。
●同じプラグインをＷＡＰ又はＯＢＥＸサーバで再利用できる。
●ソースコードは、狭いプラットホーム又はＵｎｉｃｏｄｅプラットホームを想定しておらず、最小の変更で両者へと再コンパイルすることができる。
【００４５】
●サーバはプラグインＤＬＬを使用して「ページ」を取り出す又は生成する。書くことが可能なプラグインの例は、以下のことを目的とするＤＬＬであろう：
●予定表及び連絡先を問合せ、データをＸＭＬ又はｈｔｍｌのページとして表示すること。
●Ｊａｖａ又はＯＰＬのスクリプトを実行すること。
●クライアント側のエンジンにデータ又はコマンドを提供すること（Ｊａｖａアプレット、フラッシュプラグインなど）。
●装置上のファイルのコンテンツを戻すこと。
●ＳｙｎｃＭＬデータを処理する又は同期させること。
●ＨＴＴＰサーバ自体を制御および構成すること。
【００４６】
ｍ−Ｓｕｒｆは、インテュウエーブ社製のｍ−Ｒｏｕｔｅｒと呼ばれるデータルーティング技術と連携して使用される場合に特に効果的である。ｍ−Ｒｏｕｔｅｒにより、装置（図３のＡ）又はＰＣ（Ｂ）上のブラウザは、ホストＰＣ（Ｃ）を介して装置（Ｄ）上のｍ−Ｓｕｒｆ ｈｔｔｐサーバへとアクセスすることができる。ここでは、ｍ−ＲｏｕｔｅｒはＡをＢへと接続し、ＣをＤへと接続する。ｍ−Ｒｏｕｔｅｒは、付録１において更に詳細に説明される。
【００４７】
＜付録１＞
［ｍ−Ｒｏｕｔｅｒの概要］
ｍ−Ｒｏｕｔｅｒは、ホストＰＣへの直接的な有線又は無線のリンクを介するＴＣＰ／ＩＰ＆ＵＤＰ接続をモバイルコンピューティング装置に対して提供する。取り付けられた装置上にインストールされたソフトウェアには変更又は追加を行なう必要がない。
【００４８】
ｍ−Ｒｏｕｔｅｒは使い易い標準に基づくＰＣの実現例であり、モバイル装置がホストＰＣ及び到達可能な場合にはＰＣが接続されるインターネット／ネットワークにアクセスできるようにするのに使用されるファイアウォール／ＰＰＰサーバの実現例である。ＰＰＰをモバイル装置とＰＣとの間のローカルリンクプロトコルとして使用することにより、これらの装置に対する接続性に基づくソリューションを無線ベースを仮定した場合およびデスクトップベースを仮定した場合の双方に対して再利用することができる。接続性がいずれもＲＳ２３２ベースであった場合、あるいは、ベアラごとに異なっていた場合、ベアラプラグイン（拡張可能なハードウェア抽象化レイヤ）及びプロトコルプラグイン（構成可能なプロトコルスタックレイヤ）を提供することによって、ＵＳＢ及びＢｌｕｅｔｏｏｔｈなどのベアラを使用することができる。ｍ−Ｒｏｕｔｅｒにより提供されるソリューションにより、全てのハードウェアベアラは一様に処理されるようになり、開発の労力が軽減される。開発者は、通常、１つのプロトコル−ＴＣＰ／ＩＰ−のみを理解すれば良いからである。ｍ−Ｒｏｕｔｅｒの主なパラダイムのうちの１つは自動構成であり、消費者に対する透明性であるので、標準に基づく接続性の利点がソフトウェアにもたらされる。しかし、熟練したシステムマネージャに限定されない。
【００４９】
ｍ−Ｒｏｕｔｅｒは現在２つのバージョン、すなわち、ｍ−Ｒｏｕｔｅｒランタイム及びｍ−Ｒｏｕｔｅｒデベロッパが提供されている。
【００５０】
ｍ−Ｒｏｕｔｅｒにより、装置（図３のＡ）又はＰＣ（Ｂ）上のブラウザは、ホストＰＣ（Ｃ）を介して装置（Ｄ）上のＨＴＴＰサーバへとアクセスすることができる。ｍ−ＲｏｕｔｅｒはＡをＢへと接続し、ＣをＤへと接続する。装置Ｄ上のＨＴＴＰサーバはｍ−Ｓｕｒｆである。
【００５１】
デベロッパバージョンはユーザインタフェースを含み、これにより、以下のパラメータを設定することができる：
●リスニングポート番号
●ログファイル名及びディレクトリ
●ＣＯＭポートの有効／無効化
●ソフトウェア登録番号の入力
インタフェースにより、ソフトウェアの実行中に種々のパラメータを表示させることができる。
【００５２】
より詳細に説明すると、ｍ−Ｒｏｕｔｅｒは、サブシステムの中程度に複雑な集合である。図４はこれらのサブシステムがインタフェースする方法の概要である。
【００５３】
１つ以上の製品がｍ−Ｒｏｕｔｅｒを含んでも、使用しても良い。これらの製品は、状態を公開し、ｍ−Ｒｏｕｔｅｒコントローラと呼ばれる共有メモリ構成要素を介する操作を可能にする共有ランタイム（ｍ−ＲｏｕｔｅｒＲｕｎｔｉｍｅ．ｅｘｅ）の単一のインスタンスを共有する。
【００５４】
ｍ−ＲｏｕｔｅｒランタイムＧ内で、１セットのホスト発見モジュールＣがロードされる。これらのモジュールは共通のインタフェースを露呈し、拡張可能である。例えば、関連するＵＳＢ装置の挿入、Ｂｌｕｅｔｏｏｔｈシリアルポートの追加／削除などのように、新規のハードウェアが利用可能／利用不可能になるのを監視する。変化が検出されると、モジュールはコールバックインタフェースを介してｍ−ＲｏｕｔｅｒランタイムＧに通知し、「現在利用可能な」ハードウェアベアラ装置を列挙するように要求される。この装置はベアラプラグインＡにより定義される。各ベアラプラグインＡは、利用可能なハードウェアベアラ（例えば、ＵＳＢ、ダイレクトケーブル、ＩＲ、Ｂｌｕｅｔｏｏｔｈなど）を定義する。プラグインはシリアルデバイス抽象化レイヤとして動作する。
【００５５】
ＭＲｏｕｔｅｒゲートウエイＤは、仮想ホスト（ホストハンドラと呼ばれることもある）の内部のセットを管理する。各ホストは、関連付けられたルーティング不能なＩＰアドレスを有する。ホストの大半は、「現在利用可能な」ハードウェアベアラＡのリストの変更に応じてｍ−Ｒｏｕｔｅｒランタイムの要求により作成される。リンクホストＥと呼ばれるクラス（ｍ−Ｒｏｕｔｅｒシリアルモジュール内に含まれる）がこのホストを実現する。このクラスのインスタンスは、種々のハードウェアベアラＡをシリアルデータストリームとして抽象化する追加のモジュールを使用する。インスタンスは、接続された装置から生のデータバイトを読み書きし、ＰＰＰスタックＢを使用して想定されるＰＰＰデータを内部のパケット／フレームのシーケンスへと変換する。ＰＣのＴＣＰソケットフレームワークとインタフェースするＷｉｎｓｏｃｋホストＦと呼ばれるホストの単一のインスタンスがある。データのフレームは、システム周辺の、フレームにおいて指定されたソースエンドポイントと宛先エンドポイントとの間で、ＭＲｏｕｔｅｒゲートウエイＤにより渡される。種々のホストは、このフレームに対するエンドポイントを内部的に管理する。エンドポイントはポートハンドラと呼ばれる。ＷｉｎｓｏｃｋホストＦにおいて、これらのポート（灰色の円として示される）は、ＰＣ上のソケット接続（場合によっては、インターネット上の他のマシン、あるいは、ｍ−Ｒｏｕｔｅｒと同じＰＣ上のアプリケーション）に対応する。リンクホストＥでは、これらのポートは接続されたモバイル装置上のソケットに対応し、遠隔のポートへの／からのフレームのコンテンツは、抽象化されたハードウェアベアラ上でＰＰＰを介して転送される。
【００５６】
外部のユーザインタフェース構成要素が、必要に応じて、波線のリンク、チェックボックス、及びその他の形態のフィードバックをユーザに対して表示できるように、現在の利用可能なホストに関する種々の統計値がｍ−Ｒｏｕｔｅｒコントローラを介して「発行」される。他の統計値は、内部使用のためにｍ−Ｒｏｕｔｅｒランタイムが利用できるようになる。ｍ−Ｒｏｕｔｅｒランタイムは、開発者用の構成において、ｍ−ＲｏｕｔｅｒＰｒｏｐＰａｇｅｓ．ｄｌｌをロードし、バイトレベルの診断ロギングを表示することができる。
【００５７】
モバイル装置は、ｍ−Ｒｏｕｔｅｒを介してＰＣへと接続すると共に、このＰＣが接続されるネットワークへも接続する。また、ＴＣＰを介してｍ−ＲｏｕｔｅｒアクセスポイントＧと呼ばれるサービスに接続することを選択できる。この処理を選択する場合、モバイル装置は、ｍ−ＲｏｕｔｅｒアクセスポイントＧに一連のプロパティを渡す。モバイル装置はログインしているものと考えられる。ｍ−ＲｏｕｔｅｒアクセスポイントＧは、プログラミングＡＰＩを露呈し、接続された装置及びその関連するプロパティを列挙する。また、ｍ−ＲｏｕｔｅｒアクセスポイントＧにより、接続されたモバイル装置上のポートに対するプログラム的なルート作成が可能になる。これらの装置は、ｍ−Ｒｏｕｔｅｒにより実現されるルーティング不能なネットワークの一部であり、それがなければＰＣにより到達することはできないだろう。ｍ−ＲｏｕｔｅｒアクセスポイントＧはローカルなＰＣソケットリスナを作成することができ、このリスナがデータを選択された装置上の目標ポートへと転送することになる。
【００５８】
ｍ−ＲｏｕｔｅｒＷｉｎｓｏｃｋ ＦはＰＣ上のソケットＡＰＩとｍ−Ｒｏｕｔｅｒの内部のポートとの間のインタフェースとして動作する。ｍ−ＲｏｕｔｅｒＷｉｎｓｏｃｋ Ｆは、単純なネットワークアドレス変換を実行し、単純なファイアウォールとしてふるまう。ｍ−Ｒｏｕｔｅｒアクセスポイント Ｇにより、このファイアウォールの背後に隠れた装置へのプログラム的なアクセスが可能になる。
【図面の簡単な説明】
【００５９】
【図１】本発明の概略図である。
【図２】本発明の実施例で使用される、ｍ−Ｓｕｒｆと呼ばれる内部プラグインモジュール及びパイプラインの概略的な描写を示す図である。
【図３】ｍ−Ｓｕｒｆを稼働させるモバイルコンピューティング装置を含む任意のネットワーク構成を示す図である。
【図４】図３のシステムで任意に使用されるルーティングソフトウェアの概略を示す図である。
【図１】
2005521120.tif 000003
【図２】
2005521120.tif 000004
【図３】
2005521120.tif 000005
【図４】
2005521120.tif 000006
【国際調査報告】
2005521120.tif 000007
2005521120.tif 000008
2005521120.tif 000009