(57)【特許請求の範囲】
【請求項１】
モバイル通信装置上のコンポーネントアプリケーションプログラムの実行可能なバージョンを供給する方法であって、
前記方法は、
サーバからネットワークを介して複数のコンポーネントを受信するステップであって、前記複数のコンポーネントは、前記コンポーネントアプリケーションプログラムを表し、前記複数のコンポーネントは、構造化定義言語で表現されたメタデータ記述子を含むコンポーネントとワークフローコンポーネントとを含み、前記ワークフローコンポーネントは、前記メタデータ記述子を含む前記コンポーネントの動作を調整し、前記ワークフローコンポーネントは、前記サーバにおいてコンパイルされたネイティブ言語で表現されている、ステップと、
前記メタデータ記述子と前記ワークフローコンポーネントを定義するコンパイルされた命令とを前記装置のアプリケーションコンテナの中にロードするステップであって、前記アプリケーションコンテナは、前記プログラムのためのクライアントランタイム環境をホスティングするためのものである、ステップと、
前記装置の前記クライアントランタイム環境における後続の実行のために前記メタデータ記述子と前記コンパイルされた命令とから前記実行可能なバージョンを生成するステップと
を含む、方法。
【請求項２】
前記アプリケーションコンテナは、コンポーネントフレームワークによって提供され、前記コンポーネントフレームワークは、前記実行可能なバージョンのためのインターフェースを前記装置のインフラストラクチャに提供し、前記装置のインフラストラクチャは、プロセッサとメモリとを含む、請求項１に記載の方法。
【請求項３】
前記アプリケーションコンテナは、前記装置のインフラストラクチャのオペレーティングシステムの一部である、請求項２に記載の方法。
【請求項４】
それぞれの第２のクライアントランタイム環境において第２のコンポーネントアプリケーションプログラムをホスティングするために前記コンポーネントフレームワークによって第２のアプリケーションコンテナを作成するステップをさらに含む、請求項２に記載の方法。
【請求項５】
前記アプリケーションコンテナのクライアントランタイム環境は、前記実行可能なバージョンを前記サーバのクライアントとして表す、請求項２に記載の方法。
【請求項６】
テンプレートベースの実行モデルによって前記実行可能なバージョンをネイティブコードで実行するステップをさらに含み、前記モデルは、前記コンポーネントのメタデータ記述子を配置するように構成された複数の予め定義されているテンプレートを用いる、請求項５に記載の方法。
【請求項７】
前記メタデータ記述子に関連付けられたメタデータで定義されたパラメータを前記予め定義されているテンプレートに配置し、前記実行可能なバージョンを前記ネイティブコードで構築するために前記配置済みのテンプレートを用いるステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記予め定義されているテンプレートは、データコンポーネントとメッセージコンポーネントとプレゼンテーションコンポーネントとを含む群から選択されるコンポーネントに対して提供される、請求項６に記載の方法。
【請求項９】
メタデータベースの実行モデルによって前記実行可能なバージョンを実行するステップをさらに含み、前記モデルは、実行中の構文解析のためにメタデータ定義を前記構造化定義言語で保持するように構成されている、請求項５に記載の方法。
【請求項１０】
メタデータベースの実行モデルによって前記実行可能なバージョンを実行するステップをさらに含み、前記モデルは、実行中に構造化定義言語のノードのネイティブ表現を用いるように構成されている、請求項５に記載の方法。
【請求項１１】
サーバからネットワークを介して受信されたコンポーネントアプリケーションプログラムの実行可能なバージョンを供給するように構成されたモバイル通信装置であって、前記プログラムは、構造化定義言語で表現されたメタデータ記述子を含むコンポーネントとワークフローコンポーネントとを含む複数のコンポーネントを有し、
前記ワークフローコンポーネントは、前記メタデータ記述子を含む前記コンポーネントの動作を調整し、
前記ワークフローコンポーネントは、前記サーバにおいてコンパイルされたネイティブ言語で表現されており、
前記モバイル装置は、
前記モバイル装置を動作させる装置インフラストラクチャであって、前記実行可能なバージョンを実行するためにプロセッサと関連するメモリとを含む装置インフラストラクチャと、
前記装置インフラストラクチャに結合されたユーザインターフェースであって、前記実行可能なバージョンと通信するように構成された入力装置および出力装置を有するユーザインターフェースと、
前記装置インフラストラクチャに結合された通信装置であって、前記ネットワークと通信するために無線トランシーバに接続するように構成された通信装置と、
前記メタデータ記述子とコンパイルされた命令とから前記実行可能なバージョンを生成し、前記装置インフラストラクチャに対して前記実行可能なバージョンをインターフェースし、前記実行可能なバージョンのためのクライアントランタイム環境を提供するように構成されたコンポーネントフレームワークと
を含む、モバイル通信装置。
【請求項１２】
前記コンポーネントフレームワークによって提供されるアプリケーションコンテナをさらに含み、前記アプリケーションコンテナは、前記実行可能なバージョンのための前記クライアントランタイム環境を提供するためのものである、請求項１１に記載のモバイル通信装置。
【請求項１３】
前記アプリケーションコンテナは、前記装置インフラストラクチャのオペレーティングシステムの一部を含む、請求項１２に記載のモバイル通信装置。
【請求項１４】
前記コンポーネントフレームワークは、それぞれのクライアントランタイム環境において前記コンポーネントアプリケーションプログラムのそれぞれをホスティングするように複数のアプリケーションコンテナに対して構成されている、請求項１２に記載のモバイル通信装置。
【請求項１５】
前記アプリケーションコンテナのクライアントランタイム環境は、前記実行可能なバージョンを前記サーバのクライアントとして表す、請求項１２に記載のモバイル通信装置。
【請求項１６】
テンプレートベースの実行モデルによって前記実行可能なバージョンをネイティブコードで実行するように構成されたアプリケーションコンテナをさらに含み、前記モデルは、前記コンポーネントのメタデータ記述子を配置するように構成された複数の予め定義されているテンプレートを用いる、請求項１５に記載のモバイル通信装置。
【請求項１７】
前記予め定義されているテンプレートは、前記メタデータ記述子に関連付けられたメタデータで定義されたパラメータを配置するように構成されており、前記配置済みのテンプレートは、前記実行可能なバージョンを前記ネイティブコードで構築するように構成されている、請求項１６に記載のモバイル通信装置。
【請求項１８】
前記予め定義されているテンプレートは、データコンポーネントとメッセージコンポーネントとプレゼンテーションコンポーネントとを含む群から選択されるコンポーネントに対して提供される、請求項１６に記載のモバイル通信装置。
【請求項１９】
メタデータベースの実行モデルによって前記実行可能なバージョンを実行するように構成されたアプリケーションコンテナをさらに含み、前記モデルは、実行中の構文解析のためにメタデータ定義を前記構造化定義言語で保持する、請求項１２に記載のモバイル通信装置。
【請求項２０】
メタデータベースの実行モデルによって前記実行可能なバージョンを実行するように構成されたアプリケーションコンテナをさらに含み、前記モデルは、実行中に構造化定義言語のノードのネイティブ表現を用いる、請求項１２に記載のモバイル通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、一般に無線通信に関し、特にモバイル通信装置のためのソフトウェアに関する
。
【背景技術】
【０００２】
今日、移動電話、無線通信能力を有するＰＤＡ及び２ウェイポケットベルのようなモバ
イル通信装置の使用数は絶えず増加している。これらのモバイル通信装置上で実行される
ソフトウェアアプリケーションのユーティリティも増加している。例えば、携帯電話は、
或る範囲の都市の天気を検索するアプリケーションを含む場合があり、ＰＤＡは、ユーザ
が食料雑貨を買うことができるアプリケーションを含み得る。これらのソフトウェアアプ
リケーションは、ユーザがどこにいるかに関わらず、ユーザにタイムリで役立つサービス
を提供するために、これらの装置の可動性及び無線ネットワークへの接続性を有効に利用
する。しかしながら、モバイル通信装置のリソース（例えばメモリ）の制約と、データを
ワイヤレスでモバイル通信装置に配信することの複雑さとにより、モバイル通信装置用の
アプリケーションの開発は、依然として困難であり且つ時間のかかるタスクである。
【０００３】
現在のところ、モバイル通信装置は、インターネットベースのブラウザおよび／または
ネイティブアプリケーションを介してウェブサービスと通信するように構成されている。
ブラウザは、様々な異なる装置に対してクロスプラットフォームで動作するよう構成可能
であるという長所を有するが、ウェブサービスからのページ（ＨＴＭＬでの画面定義）を
要求する短所も有し、このことは、画面に含まれるデータの持続性を妨げる。ブラウザの
更なる短所は、画面が実行時（ランタイム）に描画されることであり、これはリソース集
約的になり得る。ネイティブアプリケーションは、モバイル装置のタイプを特定して開発
されることにより、各ランタイム環境に対して比較的最適化されたアプリケーションプロ
グラムが提供されるという長所がある。しかしながら、ネイティブアプリケーションはプ
ラットフォーム非依存ではないので、同じアプリケーションの複数バージョンの開発を必
要とすると共に、比較的サイズが大きいので、モバイル装置のメモリリソースに負担を課
すという短所を有する。広範囲のランタイム環境を有するウェブサービスクライアント上
で実行可能であると共に、モバイル装置のリソースの消費が低減されたアプリケーション
プログラムが必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本願明細書において開示されるシステム及び方法は、上述した短所を少なくとも部分的
に解消または緩和する、コンポーネントベースのアプリケーション環境を提供する。
【０００５】
現在のアプリケーションプログラムは、広範囲のランタイム環境を有するクライアント
上で実行されるようには構成できず、モバイル装置のリソースを望ましくないほど多く消
費し得る。ブラウザは、ウェブサービスからのページ（ＨＴＭＬでの画面定義）を要求す
る短所を有するアプリケーションプログラムであり、このことは画面に含まれるデータの
持続性を妨げる。ブラウザの更なる短所は、画面が実行時に描画されることであり、これ
はリソース集約的になり得る。ネイティブアプリケーションは、現在のアプリケーション
プログラムの更なる例であるが、プラットフォーム非依存ではないので、同じアプリケー
ションの複数バージョンの開発を必要とすると共に、比較的サイズが大きいので、モバイ
ル装置のメモリリソースに負担を課すという短所を有する。
【課題を解決するための手段】
【０００６】
現在のアプリケーションプログラムとは対照的な、無線コンポーネントアプリケーショ
ンを作成して同アプリケーションと通信するシステムが提供される。このシステムは、無
線ネットワーク、インターネットおよび／または必要に応じてメッセージマップサービス
を介してウェブサービスと通信するモバイル通信装置を含む。各無線コンポーネントアプ
リケーションは、構造化定義言語で表現される一連のコンポーネント及び１セットの命令
を有し、これらは、モバイル通信装置の１つの上でコンポーネントフレームワークにより
実行される。このコンポーネントは、１つ以上のデータコンポーネント、プレゼンテーシ
ョンコンポーネント、メッセージコンポーネントおよび／またはワークフローコンポーネ
ントを含むことができる。コンポーネントフレームワークは、アプリケーションコンテナ
内のコンポーネントアプリケーションを実行する。アプリケーションコンテナは、通信サ
ービス、画面サービス、持続性サービス、アクセスサービス、プロビジョニングサービス
及びユーティリティサービスの１つ以上を含む一般的なフレームワークサービスへのアク
セスを提供する。メッセージを、コンポーネントアプリケーションからメッセージマップ
サービスに送ることができ、メッセージマップサービスは、アプリケーションメッセージ
マップを用いて、このメッセージをウェブサービスによって要求されるフォーマットに変
換し、このメッセージをウェブサービスに送信する。このメッセージに対する応答は、メ
ッセージマップサービスに送信され、コンポーネントアプリケーションが要求するフォー
マットに変換され、コンポーネントアプリケーションに送信されることが可能である。
【０００７】
更に、この無線コンポーネントアプリケーションを作成して同アプリケーションと通信
するシステムは、無線コンポーネントアプリケーションを配備して同アプリケーションと
通信する方法も提供する。この方法は、モバイル通信装置に無線コンポーネントアプリケ
ーションを配備するステップと、メッセージマップサービスにメッセージマップを配備す
るステップとを含む。この方法は、ある例においては、メッセージマップサービスにメッ
セージを送信するステップを更に含むことができ、メッセージマップサービスはメッセー
ジマップを用いて、メッセージをウェブサービスが要求するフォーマットに変換してから
、このメッセージをウェブサービスに送信する。この方法は、ウェブサービスからの応答
をメッセージマップサービスに送信するステップを更に含むことができ、メッセージマッ
プサービスは、メッセージを無線コンポーネントアプリケーションが要求するフォーマッ
トに変換して、このメッセージを無線コンポーネントアプリケーションに送信する。
【０００８】
本願では、ネットワークを介してサーバから受信したコンポーネントアプリケーション
プログラムの実行可能バージョンを供給するよう構成されたモバイル通信装置が提供され
る。このプログラムは、構造化定義言語で表現されたメタデータ記述子を含む複数のコン
ポーネントを有する。このモバイル装置は、実行可能バージョンを実行するためのインフ
ラ手段と、インフラ手段に接続され、装置のユーザによる実行可能バージョンとの通信の
ために構成されるインターフェイス手段と、インフラ手段に接続され、ネットワークと通
信するよう構成される通信手段と、インフラ手段に対して実行可能バージョンをインター
フェイスすると共に、実行可能バージョンにクライアントランタイム環境を提供するよう
構成されるフレームワーク手段と、を含む。
【０００９】
本願では、更に、モバイル通信装置上にコンポーネントアプリケーションプログラムの
実行可能バージョンに供給するためのコンピュータプログラム製品が提供される。このプ
ログラムは構造化定義言語で表現されたメタデータ記述子を含む複数のコンポーネントを
有する。このコンピュータプログラム製品は、コンピュータ読み取り可能媒体と、プロセ
ッサ及び関連メモリを含む装置インフラに対して実行可能バージョンをインターフェイス
するためにコンピュータ読み取り可能媒体に格納されたコンポーネントフレームワークモ
ジュールと、メタデータ記述子から実行可能バージョンを生成すると共に、得られた実行
可能バージョンのためのクライアントランタイム環境をホスティングするための、コンポ
ーネントフレームワークモジュールに接続されるアプリケーションコンテナモジュールと
、を含む。
【００１０】
本願では、更に、モバイル通信装置上にコンポーネントアプリケーションプログラムの
実行可能バージョンを供給する方法が提供される。この方法は、構造化定義言語で表現さ
れたメタデータ記述子を含みコンポーネントアプリケーションプログラムを表す複数のコ
ンポーネントを、サーバからネットワークを介して受信するステップと、装置のアプリケ
ーションコンテナであってプログラムのためのクライアントランタイム環境をホスティン
グするためのアプリケーションコンテナ内に、メタデータ記述子をロードするステップと
、メタデータ記述子から、装置のクライアントランタイム環境で実行される実行可能バー
ジョンを生成するステップと、を含む。
【００１１】
本願では、更に、ネットワークを介してサーバから受信したコンポーネントアプリケー
ションプログラムの実行可能バージョンを供給するよう構成されたモバイル通信装置が提
供される。このプログラムは構造化定義言語で表現されたメタデータ記述子を含む複数の
コンポーネントを有する。このモバイル装置は、モバイル装置を動作させるための装置イ
ンフラであって、実行可能バージョンを実行するためのプロセッサ及び関連メモリを含む
装置インフラと、実行可能バージョンと通信するよう構成された入力装置及び出力装置を
有し、装置インフラと接続されるユーザーインターフェイスと、装置インフラに接続され
、ネットワークと通信するために無線トランシーバに接続するよう構成される通信装置と
、装置インフラに対して実行可能バージョンをインターフェイスすると共に、実行可能バ
ージョンにクライアントランタイム環境を提供するよう構成されるコンポーネントフレー
ムワークと、を含む。
【００１２】
上記及び他の特徴は、添付の図面を参照した以下の詳細な説明において、より一層明ら
かとなる。
【発明を実施するための最良の形態】
【００１３】
図１を参照すると、通信システム１０は、接続された無線ネットワーク１０２及びイン
ターネット１０４を介してウェブサーバ１０６により提供される１つ以上のウェブサービ
スと対話するための、モバイル通信装置１００を含む。モバイル装置１００はそれぞれ、
ウェブサーバ１０６のウェブサービスとの通信中に、要求／応答メッセージ１０５を送受
信する。モバイル装置１００は、メッセージヘッダ情報及び関連データコンテンツ（例え
ば、オンライン販売業者からの製品価格及び入手可能性の要求及び受信）の形態の要求／
応答メッセージ１０５を用いることにより、ウェブサービスのウェブクライアントとして
動作する。ウェブサーバ１０６は、適切な要求／応答メッセージ１０５を満足させるため
に、モバイル装置１００のクライアントアプリケーションプログラム３０２（図２参照）
に対して該当するビジネスロジック（メソッド）を提示するための様々なプロトコル（例
えば、ＨＴＴＰ及びコンポーネントＡＰＩであるがこれらに限定されない）を介して、ア
プリケーションサーバ１１０と通信する。モバイル装置１００のアプリケーションプログ
ラム３０２は、或るオブジェクト（または機能）に対するメソッドを呼び出すのと同様に
して、アプリケーションサーバ１１０のビジネスロジックを用いることができる。なお、
モバイル装置１００は、無線ネットワーク１０２を介して、１つ以上のウェブサーバ１０
６及び関連のアプリケーションサーバ１１０と通信できる。また、必要に応じて、モバイ
ル装置１００は、アプリケーションサーバ１１０に直接接続されることにより、ウェブサ
ーバ１０６を迂回してもよい。
【００１４】
図２を参照すると、モバイル通信装置１００は、移動電話、ＰＤＡ、２ウェイポケット
ベルまたはデュアルモード通信装置（図９参照）等であるがこれらに限定されない装置で
ある。モバイル装置１００は、接続２１８を介して装置インフラ２０４に接続された無線
トランシーバ２００を含む。モバイル装置１００の動作中、無線トランシーバ２００は、
適切な無線チャネル（例えばＲＦまたはＩＲリンク）によって、無線ネットワーク１０２
に接続可能であり、これにより、モバイル装置１００どうしで、及び無線ネットワーク１
０２を介して外部システム（例えばウェブサーバ１０６）と通信可能になると共に、クラ
イアントアプリケーションプログラム３０２とサーバ１０６、１１０（図１参照）との間
の要求／応答メッセージ１０５を調整可能になる。無線ネットワーク１０２は、装置と無
線ネットワーク１０２に接続された外部システムとの間での要求／応答メッセージ１０５
内のデータの伝送をサポートする。無線ネットワーク１０２は、モバイル通信装置１００
と無線ネットワーク１０２の外部にある装置との間での電話の音声通信をサポートしても
よい。無線ネットワーク１０２は、例えばＤａｔａＴＡＣ、ＧＰＲＳまたはＣＤＭＡ等で
あるがこれらに限定されない無線データ伝送プロトコルを用いることが可能である。
【００１５】
再度図２を参照すると、モバイル装置１００は、ユーザ（図示せず）と対話するために
、接続２２２によって装置インフラ２０４に接続されたユーザーインターフェイス２０２
も有する。ユーザーインターフェイス２０２は、例えばＱＷＥＲＴＹキーボード、キーパ
ッド、トラックホイール、スタイラス等であるがこれらに限定されない１つ以上のユーザ
入力装置と、例えばＬＣＤ画面ディスプレイ等のユーザ出力装置とを含む。画面がタッチ
センシティブである場合には、ディスプレイを、装置インフラ２０４により制御されるユ
ーザ入力装置として用いることも可能である。モバイル装置１００のユーザは、ユーザー
インターフェイス２０２を用いて、更に後述するコンポーネントフレームワーク２０６の
クライアントアプリケーションプログラム３０２によって用いられるシステム１０（図１
参照）を介した要求／応答メッセージメッセージ１０５を調整する。
【００１６】
再度図２を参照すると、モバイル通信装置１００の動作は、装置インフラ２０４によっ
て可能にされる。装置インフラ２０４は、コンピュータプロセッサ２０８と、関連するメ
モリーモジュール２１０とを含む。コンピュータプロセッサ２０８は、関連の命令を実行
することによって、無線トランシーバ２００、ユーザーインターフェイス２０２及びモバ
イル通信装置１００のコンポーネントフレームワーク２０６の動作を操作する。関連の命
令は、メモリーモジュール２１０内に位置するオペレーティングシステム及びクライアン
トアプリケーションプログラム３０２により供給される。なお、装置インフラ２０４は、
プロセッサに命令を提供するため、および／またはメモリーモジュール２１０にクライア
ントアプリケーションプログラム３０２をロード／更新するための、プロセッサ２０８に
接続されたコンピュータ読み取り可能記憶媒体２１２を含むことができる。コンピュータ
読み取り可能媒体２１２は、例えば、磁気ディスク、磁気テープ、光学的に読み込み可能
な媒体（例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ）及びメモリーカード等といった、ハード
ウェアおよび／またはソフトウェアを含むことができる。いずれの場合においても、コン
ピュータ読み取り可能媒体２１２は、小型ディスク、フロッピー（登録商標）ディスケッ
ト、カセット、ハードディスクドライブ、固体メモリーカードまたはメモリーモジュール
２１０内に配設されるＲＡＭの形態をとってもよい。なお、上述の例のコンピュータ読み
取り可能媒体２１２は、単独でまたは組み合わせて用いられ得る。
【００１７】
再度図２を参照すると、モバイル装置１００のコンポーネントフレームワーク２０６は
、接続２２０によって装置インフラ２０４に接続される。コンポーネントフレームワーク
２０６は、クライアントアプリケーションプログラム３０２にネイティブランタイム環境
を提供すると共に、プロセッサ２０８のモバイル装置１００の機能性及び装置インフラ２
０４の関連オペレーティングシステムに対するインターフェイスである。コンポーネント
フレームワーク２０６は、モバイル装置１００上における制御され安全且つ安定した環境
を好ましく供給するランタイム環境を提供し、そのランタイム環境において、アプリケー
ションコンテナ３００内のコンポーネントアプリケーションプログラム３０２が実行され
る。アプリケーションコンテナ３００は、クライアントアプリケーションプログラム３０
２のためのスマートなホストコンテナと呼ぶことができ、（例えばメッセージ１０５（図
１参照）の）メッセージメタデータを解析する役割及びメモリーモジュール２１０内のメ
タデータの表現を更新する役割を果たすことできる。
【００１８】
コンポーネントフレームワーク２０６は、クライアントアプリケーションプログラム３
０２に、フレームワークサービス３０４（通信、画面、データ持続性、セキュリティ等で
あるがこれらに限定されない一般的なサービスの標準セット）も提供する。アプリケーシ
ョンプログラム３０２は、アプリケーションコンテナ３００との通信２１４を有し、通信
２１４は、フレームワークサービス３０４との通信２１６を調整する。コンポーネントフ
レームワーク２０６のフレームワークサービス３０４は、接続２２０を介した装置インフ
ラ２０４との通信を調整する。従って、装置インフラ２０４、ユーザーインターフェイス
２０２及び無線トランシーバ２００へのアクセスは、コンポーネントフレームワーク２０
６によって、クライアントアプリケーションプログラム３０２に提供される。更に、アプ
リケーションコンテナ３００は、クライアントアプリケーションプログラム３０２への及
びクライアントアプリケーションプログラム３０２からの、コンポーネントフレームワー
ク２０６の通信２１４、２１６の全てのアクセスを制御及び検証できるので、クライアン
トアプリケーションプログラム３０２は、適切なウイルス抵抗性を有することが可能であ
る。なお、装置インフラ２０４（図２参照）のオペレーティングシステムの一部は、アプ
リケーションコンテナ３００を表すことができる。
【００１９】
再度図２を参照すると、コンポーネントフレームワーク２０６のクライアントランタイ
ム環境は、メタデータ定義から（コンポーネントアプリケーション（下記参照）の形態の
）クライアントアプリケーションプログラム３０２を生成し、ホスティングして実行でき
るのが好ましい。更に、コンポーネントフレームワーク２０６の具体的な機能としては、
言語のサポート、メモリアロケーションの調整、ネットワーキング、入出力動作中のデー
タの管理、装置インフラ２０４を介したユーザーインターフェイス２０２の出力装置上の
グラフィックスの調整、コアオブジェクト指向クラス及びそれをサポートするファイル／
ライブラリへのアクセスの提供を含み得る。コンポーネントフレームワーク２０６により
実現されるランタイム環境の例は、マイクロソフト（Microsoft） による共通言語ランタ
イム（Common Language Runtime：ＣＬＲ）及びサン・マイクロシステムズ（Sun Microsy
stems）によるＪａｖａ（登録商標）ランタイム環境（Java（登録商標） Runtime Enviro
nment：ＪＲＥ）等を含み得るが、これらに限定されない。コンポーネントフレームワー
ク２０６のランタイム環境は、モバイル装置１００上のクライアントアプリケーションプ
ログラム３０２の基本機能をサポートする。基本機能の例としては、ウェブサーバ１０６
（図１参照）のウェブサービスにメッセージ１０５を送信するための通信機能の提供、ウ
ェブサーバ１０６（図１参照）のウェブサービスの出力メッセージ１０５（サービスに対
するメッセージ）にデータパーツを供給するためのユーザによる入力装置上でのデータ入
力機能の提供、ウェブサービスの応答（受信メッセージ）またはウェブサーバ１０６（図
１参照）の無相関の通知のための出力装置上でのデータプレゼンテーションまたは出力機
能の提供、メモリーモジュール２１０内のローカルクライアントデータを維持するための
データ格納サービスの提供、及び、クライアントアプリケーションプログラム３０２のア
プリケーションコンポーネント４０８（図３参照）の動作を調整するためのスクリプト言
語の実行環境の提供が含まれるが、これらに限定されない。
【００２０】
従って、図２を参照すると、コンポーネントフレームワーク２０６は、ランタイム環境
でクライアントアプリケーションプログラム３０２（ウェブサービスクライアントアプリ
ケーション）を実行すると共に、要求／応答メッセージ１０５を介した、ウェブサーバ１
０６のウェブサービスオペレーション及び関連のアプリケーションサーバ１１０（図１参
照）へのアクセスをサポートするために使用される。コンポーネントアプリケーションプ
ログラム３０２は、コンポーネントフレームワーク２０６により実行されるソフトウェア
アプリケーションを含む。コンポーネントフレームワーク２０６は、コンポーネントアプ
リケーションプログラム３０２が実行される度に、アプリケーションプログラム３０２の
各コンポーネント（例えば４００、４０２、４０４、４０６（図３参照））のためのアプ
リケーションコンテナ３００を作成する。アプリケーションコンテナ３００は、アプリケ
ーションプログラム３０２のコンポーネント（例えば４００、４０２、４０４、４０６）
をロードして、装置インフラ２０４内のプロセッサ２０８により実行されるネイティブコ
ードを作成できる。従って、コンポーネントフレームワーク２０６は、通信装置１００の
各装置インフラ２０４に特定された実際のウェブクライアントを作成するために、４００
、４０２、４０４、４０６等のコンポーネントの定義を供給するための、ホストアプリケ
ーションコンテナ３００を提供する。
【００２１】
図３を参照すると、コンポーネントアプリケーションプログラム３０２のブロック図は
、データコンポーネント４００、プレゼンテーションコンポーネント４０２および／また
はメッセージコンポーネント４０４を含むことができ、これらは、アプリケーションコン
テナ３００との通信２１４を介してワークフローコンポーネント４０６によって調整され
る。
【００２２】
データコンポーネント４００は、コンポーネントアプリケーションプログラム３０２に
よって用いられるデータ実体を定義する。データコンポーネント４００が記述し得るデー
タ実体の例は、注文、ユーザ及び金融取引である。データコンポーネント４００は、デー
タ実体を記述するためにどの情報が必要であるか、及び、情報がどのフォーマットで表現
されるかを定義する。例えば、データコンポーネント４００は、数としてフォーマットさ
れる注文の固有識別子で構成される注文、文字列としてフォーマットされる項目リスト、
日付−時間フォーマットを有する注文作成時間、文字列としてフォーマットされる注文ス
テータス、別のデータコンポーネント４００の定義に従ってフォーマットされる発注ユー
ザを定義してもよいが、これらに限定されない。
【００２３】
メッセージコンポーネント４０４は、外部システム（例えばウェブサービス１０６）と
通信するためにコンポーネントアプリケーションプログラム３０２によって用いられるメ
ッセージのフォーマットを定義する。例えば、メッセージコンポーネント４０４の１つは
、その注文の固有識別子、その注文のステータス、及びその注文と関連する注記等を含む
発注用メッセージを記述し得るが、これらに限定されない。
【００２４】
プレゼンテーションコンポーネント４０２は、ユーザーインターフェイス２０２によっ
て表示されるコンポーネントアプリケーションプログラム３０２の外観及び挙動を定義す
る。プレゼンテーションコンポーネント４０２は、ＧＵＩの画面及び制御部（コントロー
ル）、並びに、ユーザがユーザーインターフェイス２０２を用いてコンポーネントアプリ
ケーション３０２と対話した際に実行されるアクションを指定できる。例えば、プレゼン
テーションコンポーネント４０２は、画面、ラベル、編集ボックス、ボタン及びメニュー
、並びに、ユーザが編集ボックス内に文字を入力した際またはボタンを押した際に生じる
アクションを定義してもよい。
【００２５】
コンポーネントアプリケーションプログラム３０２のワークフローコンポーネント４０
６は、アクション（例えば、上述のプレゼンテーションコンポーネント４０２によって指
定されるアクション、またはシステム１０からのメッセージ１０５（図１参照）が届いた
際に実行されるアクション）が実行される際に生じる処理を定義する。画面ワークフロー
及びメッセージ処理は、ワークフローコンポーネント４０６により定義される。ワークフ
ローコンポーネント４０６は、ＥＣＭＡＳｃｒｉｐｔ等であるがこれに限定されないプロ
グラミング言語またはスクリプト言語で書かれ、上述のようにネイティブコードにコンパ
イルされてアプリケーションコンテナ３００によって実行されることができる。ワークフ
ローコンポーネント４０６の例としては、データに値を割り当てるもの、画面を操作する
もの、または、メッセージを送信するものが挙げられる。
【００２６】
なお、上述のクライアントコンポーネントアプリケーションプログラム３０２定義のホ
スティングモデルにおいては、プレゼンテーションコンポーネント４０２（図３参照）は
、モバイル装置１００（図１参照）のクライアントプラットフォーム及び環境によって変
わり得る。例えば、ウェブサービスの消費者が、視覚的なプレゼンテーションを要求しな
い場合もある。コンポーネントアプリケーションプログラム３０２のコンポーネント４０
０、４０２、４０４、４０６のアプリケーション定義は、プラットフォームニュートラル
（中立）なデータコンポーネント４００、メッセージコンポーネント４０４、ワークフロ
ーコンポーネント４０６の記述子と、様々な予め定義されたクライアントランタイム（即
ち、特定のコンポーネントフレームワーク２０６）用の１セットのプラットフォームを特
定したプレゼンテーションコンポーネント４０２記述子とのバンドルとして、ウェブサー
ビスレジストリ内でホスティングされることが可能である。発見または配備要求メッセー
ジ１０５（図１参照）が発行される際には、この要求メッセージ１０５の一部としてクラ
イアントタイプが特定されるべきである。通信装置１００の複数の異なるクライアントプ
ラットフォーム用のコンポーネントアプリケーションプログラム３０２をパッケージング
する際に、データ、メッセージ及びワークフローメタデータを複製しないために、アプリ
ケーション定義を、複数の異なるセットのプレゼンテーションコンポーネント４０２とリ
ンクされたプラットフォームニュートラルなコンポーネント定義のバンドルとして、（例
えば）アプリケーションサーバ１１０にホスティングすることができる。ユーザが発見ま
たはダウンロード要求メッセージ１０５を発すると、通信装置１００のクライアントラン
タイムのタイプが確認され、ウェブサーバ１０６によって無線ネットワーク１０２を介し
て装置１００に配信するための適切なバンドルが構成される。場合によっては、ワークフ
ローコンポーネント４０６は、プラットフォームを特定した表現で管理及び配備されても
よく、この場合、特定のプラットフォームの既知の処理能力を活用し、特定のプラットフ
ォームに対して、より効率的なおよび／または強化されたコンポーネントアプリケーショ
ンプログラム３０２を提供できる。
【００２７】
従って、図３を参照すると、クライアントアプリケーションプログラム３０２は、１セ
ットのプラットフォームニュートラルなコンポーネント定義（すなわちＸＭＬ（または他
の任意の適切な構造化定義言語）を用いたデータコンポーネント４００及びメッセージコ
ンポーネント４０４、並びにプレゼンテーションコンポーネント４０２に対する定義）と
して定義可能である。ワークフローコンポーネント４０６は、ＥＣＭＡＳｃｒｉｐｔ（ま
たは他の任意の適切なプラットフォームニュートラルなスクリプト言語）を用いて定義可
能である。コンポーネントアプリケーションプログラム３０２のコンポーネント４００，
４０２、４０４、４０６が通信装置１００に供給されると、コンポーネントフレームワー
ク２０６（図２参照）のクライアントランタイム環境は、メタ定義に基づいてコンポーネ
ントテンプレートを生成できる（更に後述する）。広範囲のランタイム環境では、コンポ
ーネントアプリケーションプログラム３０２を予め構築しておく代わりに、ＸＭＬやＥＣ
ＭＡＳｃｒｉｐｔ等のようなクロスプラットフォーム標準を用いてアプリケーションコン
ポーネントメタデータを定義する。この遅延させた構築（delayed binding）により、様
々な異なる通信装置１００によって表される広範囲のシステム環境で、コンポーネントア
プリケーションプログラム３０２の汎用アプリケーション定義を実行することが可能にな
る。
【００２８】
ＸＭＬまたはその派生語を用いてデータコンポーネント４００、メッセージコンポーネ
ント４０４、及びプレゼンテーションコンポーネント４０２を表現することと、ＥＣＭＡ
Ｓｃｒｉｐｔ言語またはそのサブセットを用いてワークフローコンポーネント４０６を表
現することとにより、アプリケーション開発者が、ウェブサービスクライアントをどの特
定のプラットフォームや環境からも分離して、原則的に「一旦開発すれば至る所で実行で
きる」アプリケーションを実現することができる。以下の例は、ＸＭＬ等であるがこれに
限定されない構造化定義言語と、ＥＣＭＡＳｃｒｉｐｔ等であるがこれに限定されないプ
ラットフォームニュートラルなスクリプト／プログラミング言語とによって定義されたコ
ンポーネントを用いて、ウェブサービスクライアントアプリケーションプログラム３０２
がどのように表現され得るかを示している。
【００２９】
ＸＭＬによるデータコンポーネント４００の例
0005241440.tif 000002
【００３０】
ＸＭＬによるメッセージコンポーネント４０４の例
0005241440.tif 000003
【００３１】
ＸＭＬによるプレゼンテーションコンポーネント４０２の例
0005241440.tif 000004
【００３２】
ＥＣＭＡＳｃｒｉｐｔによるワークフローコンポーネント４０６の例
0005241440.tif 000005
【００３３】
図４を参照すると、上述のアプリケーションプログラム３０２のコンポーネント４００
、４０２、４０４、４０６は、一旦通信装置１００に供給されると、コンポーネントフレ
ームワーク２０６のアプリケーションコンテナ３００によって、フレームワークサービス
３０４の所定のセットへのアクセスが与えられる。フレームワークサービス３０４は、通
信サービス３０６、画面サービス３０８、持続性サービス３１０、アクセスサービス３１
２、プロビジョニングサービス３１４及びユーティリティサービス３１６等を含むがこれ
らに限定されない。
【００３４】
図１及び図４を参照すると、通信サービス３０６は、コンポーネントアプリケーション
プログラム３０２と外部システム１０（例えばウェブサービス１０６）との間の接続性を
管理する。例えば、コンポーネントアプリケーション３０２の代理として通信サービス３
０６によって、ウェブサービス１０６にメッセージ１０５が送信される。また、通信サー
ビス３０６は、ウェブサービス１０６からのメッセージ１０５のデータを受信し、そのデ
ータをコンポーネントアプリケーション３０２に配信する。通信サービス３０６によって
受信されるデータは、コンポーネントアプリケーションプログラム３０２が行った要求に
対する同期応答と、ウェブサービス１０６によってモバイル通信装置１００にプッシュさ
れる非同期データとを含み得る。通信サービス３０６は、モバイル通信装置１００が無線
ネットワーク１０２から切断される際の接続性も管理する。モバイル通信装置１００が無
線ネットワーク１０２によってカバーされない領域にあるとき、または無線トランシーバ
が使用不能であるときに、モバイル通信装置１００は無線ネットワークから切断される。
モバイル通信装置１００が切断モードにあるときには、コンポーネントアプリケーション
３０２によって送信されたメッセージは通信サービス３０６によってキューに入れられ、
モバイル通信装置１００が無線ネットワーク１０２に再接続したときに、そのメッセージ
を送信することができる。
【００３５】
再度図１及び図４を参照すると、画面サービス３０８は、ユーザーインターフェイス２
０２（図２参照）の出力装置に表示されるコンポーネントアプリケーションプログラム３
０２の視覚的表現を管理する。視覚的表現は、画像、グラフィカルユーザーインターフェ
イス（ＧＵＩ）制御部及びウインドウ、並びにテキストを含み得る。画面サービス３０８
は、装置インフラ２０４の出力装置上でユーザが見るものを制御する画面スタックを管理
する。
【００３６】
再度図１及び図４を参照すると、持続性サービス３１０は、コンポーネントアプリケー
ションプログラム３０２が装置インフラ２０４のメモリーモジュール２１０（図２参照）
にデータを格納できるようにする。持続性サービス３１０によって、コンポーネントアプ
リケーションプログラム３０２にデータベース操作が透過的に提供される。更に、コンポ
ーネントフレームワーク２０６のランタイム環境は、メッセージ１０５のメタデータ（す
なわちＸＭＬデータ）コンテンツに対して実行されるアクションを容易にし、それによっ
てデータの持続性を提供する。
【００３７】
再度図１及び図４を参照すると、アクセスサービス３１２は、コンポーネントアプリケ
ーションプログラム３０２に、モバイル通信装置１００上に存在する他のソフトウェアア
プリケーションへのアクセスを提供する。例えば、アクセスサービス３１２は、コンポー
ネントアプリケーションプログラム３０２に、電子メールを送信するためのソフトウェア
アプリケーション、電話をするためのソフトウェアアプリケーション、またはメモリーモ
ジュール２１０（図２参照）に格納されている連絡先情報にアクセスするためのソフトウ
ェアアプリケーション（これらに限定されない）へのアクセスを可能にしてもよい。通信
装置１００上の他のソフトウェアアプリケーションへのアクセスは、安全な方法で提供可
能である。アクセスサービス３１２は、モバイル通信装置１００上に存在する他のソフト
ウェアアプリケーションがコンポーネントアプリケーションプログラム３０２にアクセス
することも可能にする。なお、他のソフトウェアプログラムは、装置インフラ２０４（図
２参照）のオペレーティングシステムの一部であってもよい。
【００３８】
再度図１及び図４を参照すると、プロビジョニングサービス３１４は、モバイル通信装
置１００上のソフトウェアアプリケーションのプロビジョニング（供給）を管理する。ア
プリケーションプロビジョニングは、新たな及び更新されたコンポーネントアプリケーシ
ョンプログラム３０２を要求して受信することと、無線ネットワーク１０２を介してアク
セス可能なサービスにアクセスするようコンポーネントアプリケーションプログラム３０
２を構成することと、コンポーネントアプリケーションプログラム３０２及びサービスの
構成を修正することと、コンポーネントアプリケーションプログラム３０２及びサービス
を削除することとを含む。プロビジョニングサービス３１４は、コンポーネントアプリケ
ーションプログラム３０２の代理としてソフトウェアアプリケーションをプロビジョニン
グするために必要なステップを実行する。
【００３９】
再度図１及び図４を参照すると、コンポーネントアプリケーションプログラム３０２は
、ユーティリティサービス３１６を用いて、各種の一般的なタスクを達成する。例えば、
ユーティリティサービス３１６は、例えば、コンポーネントアプリケーションプログラム
３０２の代理として、文字列を異なるフォーマットに変換する等といったデータ操作を実
行できる。
【００４０】
なお、通信装置１００のフレームワークサービス３０４は、コンポーネントアプリケー
ションプログラム３０２に、上述したサービスを含む機能性を提供する。その結果、コン
ポーネントアプリケーションプログラム３０２は、通信装置１００の機能性を実装する必
要なしに、通信装置１００の機能性へのアクセスを有する。フレームワークサービス３０
４によって提供される機能性は、典型的な無線アプリケーションの大半に存在する中心的
な機能性であるので、現在利用できるハードコード化された各無線アプリケーションは、
望ましくないことに、上述のサービスの一部又は全てを実装するためのコードを含む。例
えば、典型的なモバイル装置上に１０個のハードコード化された無線アプリケーションが
ある場合には、現在の公知の技術では、ＧＵＩの表示や無線ネットワークへのアクセス等
といったサービスを実装するための同じコードのコピーが１０個あり得ることになる。
【００４１】
一方、モバイル通信装置１００（図２参照）のコンポーネントフレームワーク２０６は
、存在するコンポーネントアプリケーションプログラム３０２の数に関係なく、フレーム
ワークサービス３０４内に存在するこれらのサービスを実装するコードのコピーを１つだ
け有するので好ましい。フレームワークサービス３０４のコードの複製が最小限になるの
で、現在利用できるハードコード化されたアプリケーションと比較して、コンポーネント
アプリケーションプログラム３０２のサイズを低減できる。このように、コンポーネント
アプリケーションプログラム３０２が消費するメモリを低減できると共に、無線ネットワ
ーク１０２を介した送信に要する時間を低減できる。これにより、一般的にメモリ及び処
理能力に関する制約を受けるモバイル通信装置１００上で用いられるようにコンポーネン
トアプリケーションプログラム３０２を最適化できる。更に、ソフトウェアアプリケーシ
ョン開発者は、コンポーネントフレームワーク２０６のフレームワークサービス３０４に
より提供される任意の機能性を実装するために時間及び労力を費やす必要がない。
【００４２】
コンポーネントフレームワーク２０６のクライアントランタイムは、コンポーネント４
００、４０２、４０４、４０６の定義に含まれるメタデータをロードし、アプリケーショ
ンコンテナ３００を介して、通信装置１００上で実行可能な、アプリケーションプログラ
ム３０２の実行可能バージョンを構築する。例えば、クライアントランタイムに対する２
つの動作モデル、即ち、テンプレートベースのネイティブ実行及びメタデータベースの実
行がある。テンプレートベースのネイティブ実行モデルでは、ランタイムは、ネイティブ
コードを用いて通信装置１００上に予め構築されたデータ、メッセージ及び画面のテンプ
レートをホスティングする。アプリケーションプログラム３０２定義がロードされると、
コンポーネントフレームワーク２０６により提供されるクライアント環境は、テンプレー
トにメタデータで定義されたパラメータを埋め、実行可能なクライアントアプリケーショ
ンプログラム３０２をネイティブフォーマットで構築する。ワークフローコンポーネント
４０６のワークフロースクリプト（例えば、ＥＣＭＡＳｃｒｉｐｔ）は、ネイティブコー
ドに変換されてもよく、または、ネイティブコードリダイレクタに対するインタプリタ（
例えば、ネイティブコードに対するＥＣＭＡＳｃｒｉｐｔ）を用いて実行されてもよい。
この場合、リダイレクタは、スクリプト言語に対する呼び出しを、ネイティブコンポーネ
ントに対する操作に翻訳する。メタデータベースの実行では、コンポーネントフレームワ
ーク２０６のランタイム環境は、コンポーネント４００、４０２、４０４、４０６定義を
ＸＭＬ等の表現フォーマットに保ち、これを実行時に構文解析するか、または、（例えば
）ＸＭＬノードのネイティブ表現を用いる。実行中、ネイティブランタイムエンジンは、
ネイティブコンポーネント実体ではなく、コンポーネント４００、４０２，４０４、４０
６定義を操作する。なお、テンプレートベースの手法は、メタデータベースの実行よりも
性能効率が高くなり得るが、より複雑な実行環境及びより多くのメモリリソースを必要と
し得る。
【００４３】
各コンポーネントアプリケーション３０２がモバイル通信装置１００にロードされる前
に、ワークフローコンポーネント４０６をネイティブコードまたは中間形式（例えばＪａ
ｖａ（登録商標）バイトコード）にコンパイルできる。この中間形式は、次にモバイル通
信装置１００上でネイティブコードに変換される。ワークフローコンポーネント４０６が
モバイル通信装置１００にロードされる前に、ワークフローコンポーネント４０６をコン
パイルすることは、ワークフローコンポーネント４０６を構成するコードがモバイル通信
装置１００上で１つのレベルで翻訳されるだけでよいことを確実にする一助となる。或い
はまた、ワークフローコンポーネント４０６は、翻訳された言語で記述されたコードとし
てモバイル通信装置１００にロードされてもよく、このコードは、ネイティブコードへの
変換前に、モバイル通信装置１００上のインタプリタにより処理される。或いは、ワーク
フローコンポーネント４０６は、任意のコンパイルされたまたは翻訳された言語で記述さ
れるコードで構成されてもよい。
【００４４】
上述したフレームワークサービス３０４へのアクセスを有すると共に、ユーザにユーテ
ィリティを提供するためにモバイル環境で動作する利点を利用する、コンポーネントアプ
リケーション３０２を作成するために、アプリケーション開発者は、上述のようなコンポ
ーネントを作成できる。データコンポーネント４００、プレゼンテーションコンポーネン
ト４０２及びメッセージコンポーネント４０４のためのＸＭＬ（eXtensible Markup Lang
uage）、及びワークフローコンポーネント４０６のためのＥＣＭＡＳｃｒｉｐｔを含む、
標準的な技術を用いることが可能である。そして、これらのコンポーネントは、アプリケ
ーションコンテナ３００内で、コンポーネントフレームワーク２０６によって実行される
。コンポーネントフレームワーク２０６は、上述したフレームワークサービス３０４を用
いて、ワークフローコンポーネント４０６を実行すると共にプレゼンテーションコンポー
ネント４０２、データコンポーネント４００及びメッセージコンポーネント４０４を翻訳
する。このアプリケーション開発モデルは、アプリケーションプログラマに要求される専
門知識を最小限にすると共にモバイル通信装置１００用のソフトウェアアプリケーション
の作成に要する時間を最小限にするのに有用である。更に、一旦コンポーネントが作成さ
れれば、それらを多数のコンポーネントアプリケーション３０２で再利用でき、開発が更
に容易になる。
【００４５】
図１及び図５を参照すると、コンポーネントアプリケーションプログラム３０２モデル
の動作８００が示されている。モバイル装置１００のユーザは、ウェブサービスと交信し
、次に８０２で、ネットワーク１０２を介して要求メッセージ１０５を送信することによ
り、ウェブサービスから選択したアプリケーションプログラム３０２を要求する。適切な
ウェブサーバ１０６が、要求メッセージ１０５を適切なアプリケーションサーバ１１０に
送り、次に８０４で、応答メッセージ１０５において１セットのコンポーネント定義をネ
ットワーク１０２を介してモバイル装置１００に送信する。応答メッセージ１０５は、Ｘ
ＭＬ等であるがこれに限定されない構造化定義言語で表現されたメタデータ記述子を含む
一連のデータコンポーネント４００、メッセージコンポーネント４０４及びプレゼンテー
ションコンポーネント４０２（図３参照）の形態のコンポーネントアプリケーションプロ
グラム３０２を含む。応答メッセージ１０５は、ＥＣＭＡＳｃｒｉｐｔ等であるがこれに
限定されないプログラミング／スクリプト言語で表現された記述子を含むワークフローコ
ンポーネント４０６も含む。８０６で、モバイル装置１００は、コンポーネントフレーム
ワーク２０６（図２参照）を介して、アプリケーションプログラム３０２にランタイム環
境を提供し、これにより、８０８で、実行モデルを用いて、交信したウェブサービスに対
応するウェブクライアントをモバイル装置１００上に作成し、アプリケーションプログラ
ム３０２のコンポーネント４００、４０２、４０４、４０６の定義を供給する。供給され
たアプリケーションプログラム３０２は、フレームワークサービス３０４（図２参照）を
用いて、ネットワーク１０２を介したメッセージ１０５によるモバイル装置１００のアク
セスを調整する。モバイル装置１００のユーザは、ユーザーインターフェイス２０２を介
して、供給されたアプリケーションプログラム３０２と対話する。
【００４６】
図示しない統合開発環境（ＩＤＥ）を用いてコンポーネントアプリケーション３０２を
視覚的に作成できるので、上述したコンポーネントアプリケーションモデルは、無線アプ
リケーションの開発を更に容易にする。ＩＤＥは、アプリケーション開発者が、コンポー
ネントの視覚的表現を開発者に提示するＧＵＩを用いて、上述のコンポーネントを迅速に
作成できるようにするソフトウェアアプリケーションである。プレゼンテーションコンポ
ーネント４０２、データコンポーネント４００及びメッセージコンポーネント４０４は、
ツリー表示で示される。開発者は、コンポーネントをドラッグ・アンド・ドロップして、
それらをコンポーネントアプリケーション３０２に加える。プレゼンテーションコンポー
ネント４０２を表すアイコンをクリックすると、プレゼンテーションコンポーネント４０
２を設計するためのエディタが開かれる。プレゼンテーションコンポーネント４０２間の
リンクは視覚的に表され、それらのリンクをクリックして、画面ワークフローを定義する
ワークフローコンポーネント４０６を編集する。プレゼンテーションコンポーネント４０
２は、コンポーネントアプリケーション３０２が実行されるモバイル通信装置１００の表
現を含むインターフェイスを用いて設計される。メニュー項目が表されており、それらを
クリックすることにより、それらのメニュー項目の選択時に実行されるワークフローコン
ポーネント４０６が定義される。メッセージコンポーネント４０４は、データコンポーネ
ント４００に視覚的にマップできる。メッセージコンポーネント４０４を、ウェブサービ
ス１０６メッセージと視覚的に関連付けることもでき、メッセージコンポーネント４０４
は、ＷＳＤＬ等で定義されたウェブサービス１０６メッセージに基づいて作成可能である
。
【００４７】
図６及び図７を参照すると、システム１０の更なる例は、メッセージマップサービス１
０８を用いたメッセージ通信システムを含む。また、ウェブサーバ１０６上のウェブサー
ビス、通信サービス３０６、コンポーネントフレームワーク２０６及びモバイル通信装置
１００も示されている。説明を簡単にするため、その他の要素は図示しない。
【００４８】
無線ネットワーク１０２はインターネット１０４に接続され、モバイル通信装置１００
が、インターネット１０４に接続されたシステムへの／からのメッセージ１０７のデータ
を転送できるようになっている。無線ネットワーク１０２とインターネット１０４との間
の接続は、無線ネットワーク１０２に接続された装置（例えばモバイル通信装置１００）
からインターネット１０４に接続されたシステム（例えばウェブサービス）にデータが流
れるのを可能にするインターネットゲートウェイ（図示せず）を含む。
【００４９】
ウェブサーバ１０６上のウェブサービスは、モバイル通信装置１００上のソフトウェア
アプリケーション３０２（図２参照）によって用いられる情報を提供する。或いは、また
はそれに加えて、ウェブサービスは、モバイル通信装置１００上のソフトウェアアプリケ
ーションにより提供される情報を受信して用いてもよく、または、モバイル通信装置１０
０上のソフトウェアアプリケーションの代理としてタスクを遂行してもよい。ウェブサー
ビスは、ＷＳＤＬ（Web Services Description Language）を用いて表現可能な、モバイ
ル通信装置１００上のソフトウェアアプリケーション３０２とのインターフェイスを実装
し、ＳＯＡＰ（Simple Object Access Protocol）等の適切な通信プロトコルを用いてク
ライアントシステムと通信する。或いは、ウェブサービスは、その他の公知のプロトコル
を用いてもよい。
【００５０】
ウェブサービスは、モバイル通信装置１００上のソフトウェアアプリケーションが、モ
バイル通信装置１００のユーザにユーティリティを提供するために、無線ネットワーク１
０２及びインターネット１０４を介して対話するシステムの例である。モバイル通信装置
１００とウェブサービスとの間で送信されるメッセージ１０７は、メッセージマップサー
ビス１０８を通る。メッセージマップサービス１０８は、メッセージ１０７を、モバイル
通信装置１００上のソフトウェアアプリケーションが使用可能なフォーマットから、ウェ
ブサービスが要求するフォーマットに変換することにより、メッセージ１０５を作成する
。モバイル通信装置１００の１つからの１０７メッセージが適切なフォーマットに変換さ
れたら、メッセージマップサービス１０８は、メッセージ１０５をウェブサービスに送信
する。同様に、ウェブサービスからのメッセージまたは応答１０５が、要求されるフォー
マットに変換されたら、メッセージマップサービス１０８は、メッセージ１０７をモバイ
ル通信装置１００の１つに送信する。メッセージマップサービス１０８については、図７
で更に詳細に説明する。
【００５１】
図７を参照すると、コンポーネントアプリケーション３０２（図２参照）は、情報を交
換するためにウェブサービスと対話するために、通信サービス３０６を用いて、無線ネッ
トワーク１０２及びインターネット１０４を介して無線メッセージ５０２を送信する。例
えば、無線メッセージ５０２は、コンポーネントアプリケーション３０２内で定義された
メッセージコンポーネント４０４（図３参照）の１つに従ってフォーマットされる。ウェ
ブサービスにアクセスするために、例えばＳＯＡＰメッセージ５０４が用いられる。メッ
セージタイプの違いを解決するために、メッセージマップサービス１０８は無線メッセー
ジ５０２を受信して、対応するＳＯＡＰメッセージ５０４を構成し、適切なＳＯＡＰプロ
トコルを用いて、ウェブサーバ１０６上のウェブサービスにインターネット１０４を介し
てＳＯＡＰメッセージ５０４を送信する。同様に、ウェブサービスにより生成された応答
メッセージ５０４は、ＳＯＡＰを用いて、インターネット１０４を介してメッセージマッ
プサービス１０８に送信され、そこで、応答メッセージ５０４は、メッセージコンポーネ
ント４０４の１つに従ってフォーマットされた対応する無線メッセージ５０２に変換され
、モバイル通信装置１００に送信され、そこで、コンポーネントアプリケーション３０２
の代理として通信サービス３０６によって無線メッセージ５０２が受信される。
【００５２】
再度図７を参照すると、メッセージマップサービス１０８は、各コンポーネントアプリ
ケーション３０２（図２参照）に対するアプリケーションメッセージマップ５００を含む
。アプリケーションメッセージマップ５００は、コンポーネントアプリケーション３０２
から受信される各無線メッセージ５０２が、ＳＯＡＰメッセージ５０４等の対応するウェ
ブサービスメッセージにどのように変換されるかを定めると共に、ウェブサービスから受
信されてこれからコンポーネントアプリケーション３０２に送信される各ウェブサービス
メッセージ（例えばＳＯＡＰメッセージ５０４）が、対応する無線メッセージ５０２にど
のように変換されるかを定めている。上述のように、各無線メッセージ５０２は、コンポ
ーネントアプリケーション３０２のメッセージコンポーネント４０４の１つに従ってフォ
ーマットでき、一方、各ウェブサービスメッセージ（例えば、ＳＯＡＰメッセージ５０４
）は、ウェブサービスの定義に従ってフォーマットできる。メッセージマップ５００は、
定義で定められるどの情報が、アプリケーションプログラム３０２のメッセージコンポー
ネント４０４で定められる情報に対応するかを指定する。これらの定義は、ＷＳＤＬ等の
適切なフォーマットで符号化できる。次に、このマッピングを用いて、これら２つのフォ
ーマット間でメッセージ５０２、５０４を変換する。
【００５３】
なお、ＳＯＡＰメッセージ５０４内の情報の全てが、対応する無線メッセージ５０２内
の情報にマップされる必要はない。例えば、無線メッセージ５０２からＳＯＡＰメッセー
ジ５０４への変換において、アプリケーションメッセージマップ５００は、無線メッセー
ジ５０２内に対応情報がない場合にＳＯＡＰメッセージ５０４内に提供されるデフォルト
値を指定してもよい。同様に、ＳＯＡＰメッセージ５０４から無線メッセージ５０２への
変換に際して、無線メッセージ５０２内に対応する定義がないＳＯＡＰメッセージ５０４
内の情報は破棄される。従って、コンポーネントアプリケーション３０２が利用していな
いウェブサービスからの応答に含まれる情報は、無線ネットワーク１０２を介して送信さ
れなくてよい。同様に、無線ネットワーク１０２を介して冗長な情報が送信されないよう
に、コンポーネントアプリケーション３０２によってメッセージ５０４が送信される度に
同じウェブサービスに送信されるＳＯＡＰメッセージ５０４で要求される情報には、デフ
ォルト値を採用する。その結果、無線ネットワーク１０２を介して送信されるデータの量
を低減でき、無線ネットワーク１０２の輻輳が低減されると共に、モバイル通信装置１０
０上でメッセージ５０２を処理するために必要なリソースの量を低減できる。
【００５４】
従って、メッセージマップサービス１０８は、モバイル通信装置１００上でＳＯＡＰ等
のウェブメッセージ通信サービスプロトコルを実装せずとも、コンポーネントアプリケー
ション３０２がウェブサービスと調和することを可能にする。コンポーネントアプリケー
ション３０２も、ウェブサービス用にメッセージ５０２をフォーマットする必要がなく、
また、既存のウェブサービス１０６と調和するための他の任意の付加的な処理を実行する
必要もない。
【００５５】
メッセージマップサービス１０８を用いる代わりに、メッセージ５０２、５０４は、モ
バイル通信装置１００上の通信サービス３０６によってマップされてもよい。この例では
、通信サービス３０６がウェブサービス１０６と直接通信できるように、モバイル通信装
置１００には、ＳＯＡＰプロトコル定義を有するｋＳＯＡＰ等のウェブメッセージ通信サ
ービスプロトコルを有するソフトウェアがインストールされる。事実上、メッセージマッ
プサービス１０８を実装するために中間の第三者を用いるのではなく、メッセージ５０２
の翻訳はモバイル装置１００で行われる。
【００５６】
図８は、無線コンポーネントアプリケーション６００を配備して同アプリケーションと
通信する方法を示すフローチャートである。上述のように、無線コンポーネントアプリケ
ーション６００はコンポーネントアプリケーション３０２であり、データコンポーネント
４００、プレゼンテーションコンポーネント４０２、メッセージコンポーネント４０４及
びワークフローコンポーネント４０６（図３参照）を含む。
【００５７】
図６及び図８を参照すると、この方法はステップ６０２で開始し、そこで、モバイル通
信装置１００に無線コンポーネントアプリケーション６００が配備される。無線コンポー
ネントアプリケーション６００は、無線ネットワーク１０２を介して電波でモバイル通信
装置１００に送信される。或いは、無線コンポーネントアプリケーション６００は、シリ
アル接続、ＵＳＢリンク、またはブルートゥース（商標）や８０２．１１ネットワーク等
の短距離通信システム（図示せず）を介してモバイル通信装置１００にロードされてもよ
い。
【００５８】
再度図６及び図８を参照すると、この方法は、アプリケーションメッセージマップ１０
８を配備するステップ６０４に進む。上述のように、アプリケーションメッセージマップ
１０８は、無線コンポーネントアプリケーション６００が用いるフォーマットから、無線
コンポーネントアプリケーション６００が通信しているウェブサービスが要求するフォー
マットに、メッセージを変換するために用いられる。アプリケーションメッセージマップ
５００（図７参照）は、インターネット１０４を介してアクセス可能な専用メッセージマ
ップサービス１０８に配備される。或いは、アプリケーションメッセージマップ１０８は
、モバイル通信装置１００に直接配備されてもよい。ステップ６０６は、モバイル通信装
置１００上で無線コンポーネントアプリケーション６００を実行する。上述のように、モ
バイル通信装置１００上のアプリケーションフレームワーク２０６（図２参照）は、アプ
リケーションコンテナ３００を作成して、コンテナ３００内の無線コンポーネントアプリ
ケーション６００を実行し、これにより、フレームワークサービス３０４への無線コンポ
ーネントアプリケーション６００のアクセスを提供する。
【００５９】
再度図６及び図８を参照すると、モバイル通信装置１００上で無線コンポーネントアプ
リケーション６００が実行されたら、方法はステップ６０８に進み、そこで、無線コンポ
ーネントアプリケーション６００が外部のウェブサービスに無線メッセージ５０２を送信
することを望むか否かが判定される。無線コンポーネントアプリケーション６００は、ウ
ェブサービスからのデータを要求するため、データをウェブサービスへ転送するため、ま
たは、ウェブサービスに、無線コンポーネントアプリケーション６００の代理としてアク
ションを実行することを要求するために、ウェブサービスにメッセージ５０２を送信する
。無線コンポーネントアプリケーション６００が送信するメッセージ５０２がこれ以上無
いことが判定された場合には、ステップ６１０で方法が終了する。送信するメッセージ５
０２がある場合には、方法は、送信すべきメッセージ５０２を構成するステップ６１２に
進む。メッセージ５０２は、通信サービスによって、メッセージコンポーネント４０４（
図３参照）の１つに定義されたフォーマットに従って構成される。次に、通信サービスは
、無線ネットワーク１０２を介してメッセージ５０２を送信する。
【００６０】
再度図６及び図８を参照すると、ステップ６１４において、メッセージ５０２が、無線
ネットワーク１０２及びインターネット１０４を介してメッセージマップサービス１０８
に受信される。次に、メッセージマップサービス１０８は、ステップ６０４で配備された
アプリケーションメッセージマップ５００を用いて、メッセージ５０２をＳＯＡＰフォー
マットに変換する。アプリケーションメッセージマップ５００は、ウェブサービスが要求
するＳＯＡＰフォーマットのどの部分が、無線コンポーネントアプリケーション６００か
らのメッセージ５０２の各部分に対応するかを特定する。ステップ６１６において、変換
されたメッセージ５０４は、ＳＯＡＰプロトコルを用いて、インターネット１０４を介し
てウェブサービスに送信される。或いは、ステップ６１４において、メッセージ５０２は
、モバイル通信装置１００上に位置するアプリケーションメッセージマップ５００を用い
てＳＯＡＰフォーマットに変換されてから、ステップ６１６において、ｋＳＯＡＰプロト
コルを用いて、無線ネットワーク１０２及びインターネット１０４を介してウェブサービ
スに直接送信されてもよい。
【００６１】
再度図６及び図８を参照すると、メッセージ５０４がウェブサービスによって受信され
たら、方法はステップ６１８に進み、そこで、ウェブサービスがメッセージ５０４に対す
る応答を構成する。ＳＯＡＰフォーマットの応答は、インターネット１０４を介してメッ
セージマップサービス１０８に送信され、そこで、応答は、ステップ６２０において、無
線コンポーネントアプリケーション６００が要求する無線フォーマット５０２に変換され
る。要求される無線フォーマットは、無線コンポーネントアプリケーション６００に含ま
れるメッセージコンポーネント４０４（図３参照）の１つで定義されている。次に、メッ
セージマップサービス１０８は、ステップ６２２において、インターネット１０４及び無
線ネットワーク１０２を介して無線コンポーネントアプリケーション６００に応答を送信
する。或いは、ウェブサービスは、モバイル通信装置１００に直接ＳＯＡＰ応答メッセー
ジ５０４を送信してもよく、そこで、ＳＯＡＰ応答メッセージ５０４は、ステップ６２０
において、モバイル通信装置１００上に存在するアプリケーションメッセージマップ５０
０を用いて、要求されるフォーマットに変換される。次に、変換されたメッセージ５０２
は、ステップ６２２において、無線コンポーネントアプリケーション６００に与えられる
。次に、方法はステップ６０８に進み、そこで、送信すべきメッセージ５０２が更にある
か否かが判定される。メッセージ５０２が無い場合には、方法はステップ６１０で終了す
る。なお、この無線コンポーネントアプリケーション６００を配備して同アプリケーショ
ンと通信する方法が含むステップは、図８に示されているよりも少なくても又は多くても
よい。
【００６２】
図９は、デュアルモードモバイル通信装置７１０のブロック図であり、これは、図１及
び図６の装置１００の更なる例である。デュアルモードモバイル通信装置７１０は、トラ
ンシーバ７１１、マイクロプロセッサ７３８、ディスプレイ７２２、フラッシュメモリ７
２４、ＲＡＭメモリ７２６、補助入出力（Ｉ／Ｏ）装置７２８、シリアルポート７３０、
キーボード７３２、スピーカ７３４、マイクロホン７３６、短距離ワイヤレス通信サブシ
ステム７４０を含み、更に、他の装置サブシステム７４２を含んでもよい。トランシーバ
７１１は、送受信アンテナ７１６、７１８、受信機７１２、送信機７１４、１つ以上の局
部発振器７１３、及びデジタルシグナルプロセッサ７２０を含むのが好ましい。デュアル
モードモバイル通信装置７１０は、フラッシュメモリ７２４内に、マイクロプロセッサ７
３８（および／またはＤＳＰ７２０）により実行可能な複数のソフトウェアモジュール７
２４Ａ〜７２４Ｎを含むのが好ましく、このソフトウェアモジュール７２４Ａ〜７２４Ｎ
は、音声通信モジュール７２４Ａ、データ通信モジュール７２４Ｂ、及び他の複数の機能
を実行するための他の複数のオペレーショナルモジュール７２４Ｎを含む。
【００６３】
デュアルモードモバイル通信装置７１０は、音声及びデータ通信機能を有する双方向通
信装置であるのが好ましい。従って、例えば、デュアルモードモバイル通信装置７１０は
、任意のアナログまたはデジタル携帯電話ネットワーク等の音声ネットワークを介して通
信してもよく、データネットワークを介して通信してもよい。図９においては、音声及び
データネットワークは通信塔７１９で表されている。これらの音声及びデータネットワー
クは、別々のインフラ（例えば基地局、ネットワーク制御装置等）を用いる別々の通信ネ
ットワークであってもよく、または、単一の無線ネットワークに統合されていてもよい。
【００６４】
通信サブシステム７１１は、音声及びデータネットワーク７１９と通信するために用い
られ、受信機７１２、送信機７１４、１つ以上局部発振器７１３を含み、更にＤＳＰ７２
０を含んでもよい。ＤＳＰ７２０は、送信機７１４及び受信機７１２への／からの信号を
送受信するために用いられると共に、送信機７１４から制御情報を受信して、受信機７１
２に制御情報を提供するためにも用いられる。音声及びデータ通信が単一周波数または間
隔が密な周波数のセットで行われる場合には、単一の局部発振器７１３が送信機７１４及
び受信機７１２と連動して用いられてもよい。或いは、音声通信とデータ通信とで異なる
周波数が用いられる場合には、音声及びデータネットワーク７１９に対応する複数の周波
数を生成するために、複数の局部発振器７１３を用いることも可能である。図９には２つ
のアンテナ７１６、７１８が示されているが、デュアルモードモバイル通信装置７１０は
単一のアンテナ構造と共に用いられてもよい。音声及びデータ情報を含む情報は、ＤＳＰ
７２０とマイクロプロセッサ７３８との間のリンクを介して、通信モジュール７１１へと
／通信モジュール７１１から伝えられる。通信サブシステム７１１の詳細設計（周波数帯
、コンポーネント選択、出力レベル等）は、デュアルモードモバイル通信装置７１０が動
作するよう意図された通信ネットワーク７１９によって異なる。例えば、北米市場で動作
することが意図されるデュアルモードモバイル通信装置７１０は、Ｍｏｂｉｔｅｘ（商標
）やＤａｔａＴＡＣ（商標）移動データ通信ネットワークで動作するよう設計されると共
にＡＭＰＳ、ＴＤＭＡ、ＣＤＭＡ、ＰＣＳ等の様々な音声通信ネットワークのいずれかで
動作するよう設計された通信サブシステム７１１を含んでもよい。一方、ヨーロッパでの
使用が意図された装置７１０は、汎用パケット無線サービス（ＧＰＲＳ）データ通信ネッ
トワーク及びＧＳＭ音声通信ネットワークで動作するよう構成されてもよい。その他のタ
イプのデータ及び音声ネットワーク（別個のものであれ統合されたものであれ）をデュア
ルモードモバイル通信装置７１０と共に用いてもよい。
【００６５】
１又は複数のネットワーク７１９のタイプによって、デュアルモードモバイル通信装置
７１０のアクセス要求も変化し得る。例えば、Ｍｏｂｉｔｅｘ及びＤａｔａＴＡＣデータ
ネットワークにおいては、モバイル装置は、各装置に関連付けられた固有識別番号を用い
てネットワークに登録される。しかし、ＧＰＲＳデータネットワークにおいては、ネット
ワークアクセスは、モバイル装置の加入者またはユーザと関連付けられる。ＧＰＲＳ装置
は、一般的に、加入者識別モジュール（ＳＩＭ）を要求する。これは、ＧＰＲＳネットワ
ーク上でデュアルモードモバイル通信装置を作動させるために要求される。ローカルまた
は非ネットワーク通信機能（もしあれば）はＳＩＭなしで動作し得るが、デュアルモード
モバイル通信装置は、９１１番への緊急電話等の任意の法的に要求される操作以外には、
データネットワーク７１９を介した通信を含むいずれの機能をも実行できない。
【００６６】
何らかの要求されたネットワーク登録またはアクティブ化手順の完了後、デュアルモー
ドモバイル通信装置７１０は、１又は複数のネットワーク７１９を介して、音声及びデー
タ信号を含む通信信号を送受信してもよい。アンテナ７１６が通信ネットワーク７１９か
ら受信した信号は受信機７１２に送られ、受信機７１２は、信号増幅、周波数ダウン変換
、フィルタリング、チャネル選択等を提供し、更に、アナログ−デジタル変換を提供して
もよい。受信信号をアナログ−デジタル変換することにより、ＤＳＰ７２０を用いて実行
されるデジタル復調や復号化等といった、より複雑な通信機能が可能になる。同様に、ネ
ットワーク７１９に送信される信号は、ＤＳＰ７２０による（例えば変調及び符号化を含
む）処理を受けてから、デジタル−アナログ変換、周波数アップ変換、フィルタリング、
増幅、及びアンテナ７１８を介した１または複数の通信ネットワーク７１９への送信のた
めに、送信機７１４に供給される。図９には、音声及びデータ通信用の単一のトランシー
バ７１１が示されているが、デュアルモードモバイル通信装置７１０は、２つの別個のト
ランシーバ（音声信号の送受信用の第１のトランシーバ及びデータ信号の送受信用の第２
のトランシーバ）を含んでもよい。
【００６７】
ＤＳＰ７２０は、通信信号の処理に加え、受信機及び送信機の制御も提供する。例えば
、受信機７１２及び送信機７１４の通信信号に適用されるゲインレベルは、ＤＳＰ７２０
において実装される自動ゲイン制御アルゴリズムによって適応的に制御されてもよい。ト
ランシーバ７１１のより複雑な制御を提供するために、ＤＳＰ７２０で他のトランシーバ
制御アルゴリズムが実装されてもよい。
【００６８】
マイクロプロセッサ７３８は、デュアルモードモバイル通信装置７１０の動作全体を管
理及び制御するのが好ましい。ここでは、多くのタイプのマイクロプロセッサまたはマイ
クロコントローラを用いてもよく、或いは、単一のＤＳＰ７２０を用いてマイクロプロセ
ッサ７３８の機能を実行してもよい。少なくともデータ及び音声通信を含む低レベルの通
信機能は、トランシーバ７１１のＤＳＰ７２０によって実行される。他の高レベル通信ア
プリケーション（例えば音声通信アプリケーション７２４Ａ及びデータ通信アプリケーシ
ョン７２４Ｂ）は、マイクロプロセッサ７３８によって実行されるためにフラッシュメモ
リ７２４に格納されてもよい。例えば、音声通信モジュール７２４Ａは、デュアルモード
モバイル通信装置７１０と複数の他の音声装置との間の音声通話をネットワーク７１９を
介して送受信するよう動作可能な高レベルのユーザーインターフェイスを提供してもよい
。同様に、データ通信モジュール７２４Ｂは、デュアルモードモバイル通信装置７１０と
複数の他のデータ装置との間でネットワーク７１９を介してデータ（例えば電子メールメ
ッセージ、ファイル、オーガナイザ情報、短いテキストメッセージ等）を送受信するよう
動作可能な高レベルのユーザーインターフェイスを提供してもよい。デュアルモードモバ
イル通信装置７１０では、上述のコンポーネントフレームワーク２０６は、ソフトウェア
モジュールまたはアプリケーションとして実装されてもよく、またはソフトウェアモジュ
ール７２４Ａ〜７２４Ｎの１つに組み込まれてもよい。
【００６９】
マイクロプロセッサ７３８は、例えばディスプレイ７２２、フラッシュメモリ７２４、
ランダムアクセスメモリ（ＲＡＭ）７２６、補助入出力（Ｉ／Ｏ）サブシステム７２８、
シリアルポート７３０、キーボード７３２、スピーカ７３４、マイクロホン７３６、短距
離通信サブシステム７４０及び全体を７４２で示される他の任意のデュアルモードモバイ
ル通信装置サブシステム等といった、他のデュアルモードモバイル通信装置サブシステム
とも対話する。
【００７０】
図９に示されているサブシステムの一部が通信関連機能を実行し、その他のサブシステ
ムが内蔵機能または装置上機能を提供してもよい。なお、キーボード７３２及びディスプ
レイ７２２等の一部のサブシステムは、データ通信ネットワークを介して送信されるテキ
ストメッセージの入力等といった通信関連機能と、計算機、タスクリストまたは他のＰＤ
Ａタイプの機能等といった装置内蔵の機能との、両方に用いられてよい。
【００７１】
マイクロプロセッサ７３８によって用いられるオペレーティングシステムソフトウェア
は、フラッシュメモリ７２４等の持続的な記憶装置に格納されるのが好ましい。デュアル
モードモバイル通信装置７１０の低レベルの機能の全てを制御するオペレーティングシス
テムに加えて、フラッシュメモリ７２４は、複数の高レベルソフトウェアアプリケーショ
ンプログラムまたはモジュール（例えば音声通信モジュール７２４Ａ、データ通信モジュ
ール７２４Ｂ、オーガナイザモジュール（図示せず）、または他の任意のタイプのソフト
ウェアモジュール７２４Ｎ）を含んでもよい。フラッシュメモリ７２４は、データを格納
するためのファイルシステムを含んでもよい。これらのモジュールは、マイクロプロセッ
サ７３８によって実行され、デュアルモードモバイル通信装置のユーザとモバイル装置と
の間の高レベルのインターフェイスを提供する。このインターフェイスは、一般的に、デ
ィスプレイ７２２を介して提供されるグラフィックコンポーネントと、補助Ｉ／Ｏ７２８
、キーボード７３２、スピーカ７３４及びマイクロホン７３６を介して提供される入出力
コンポーネントとを含む。動作を速めるために、オペレーティングシステム、特定のデュ
アルモードモバイル通信装置ソフトウェアアプリケーションまたはモジュール、またはそ
れらの一部は、一時的にＲＡＭ７２６等の揮発性記憶装置にロードされてもよい。さらに
、受信された通信信号も、それらを持続的記憶装置７２４内のファイルシステムに永久的
に書き込む前に、一時的にＲＡＭ７２６に格納されてもよい。
【００７２】
デュアルモードモバイル通信装置７１０にロードされ得る例示的なアプリケーションモ
ジュール７２４Ｎは、ＰＤＡの機能性（例えば、カレンダイベント、約束及びタスク項目
等）を提供するパーソナルインフォメーションマネージャ（ＰＩＭ）アプリケーションで
ある。このモジュール７２４Ｎは、電話、ボイスメール等を管理するために音声通信モジ
ュール７２４Ａと対話してもよく、電子メール通信及びその他のデータ送信を管理するた
めにデータ通信モジュールと対話してもよい。或いは、音声通信モジュール７２４Ａ及び
データ通信モジュール７２４Ｂの機能性の全てが、ＰＩＭモジュールに統合されてもよい
。
【００７３】
フラッシュメモリ７２４は、デュアルモードモバイル通信装置７１０上でのＰＩＭデー
タ項目の格納を容易にするために、ファイルシステムを提供するのが好ましい。ＰＩＭア
プリケーションは、単独で、または音声通信モジュール７２４Ａ及びデータ通信モジュー
ル７２４Ｂと協働して、無線ネットワーク７１９を介してデータ項目を送受信する能力を
含むのが好ましい。ＰＩＭデータ項目は、好ましくは、シームレスに統合され、無線ネッ
トワーク７１９を介して同期及び更新されると共に、対応するデータ項目セットがホスト
コンピューターシステムに格納され又は関連付けられており、それによって、特定のユー
ザと関連付けられたデータ項目のミラーシステムを作成する。
【００７４】
デュアルモードモバイル通信装置７１０は、デュアルモードモバイル通信装置７１０の
シリアルポート７３０をホストシステムのシリアルポートに接続するインターフェイスク
レイドルにデュアルモードモバイル通信装置７１０を配置することにより、手動でホスト
システムと同期されてもよい。シリアルポート７３０は、ユーザによる、外部装置または
ソフトウェアアプリケーションを介した選択設定や、他のアプリケーションモジュール７
２４Ｎをインストールするためのダウンロードを可能にするために用いられてもよい。こ
の有線ダウンロード経路は、デュアルモードモバイル通信装置７１０に暗号キーをロード
するために用いられてもよい。これは、無線ネットワーク７１９を介して暗号化情報を交
換するよりも安全な方法である。
【００７５】
更なるアプリケーションモジュール７２４Ｎを、ネットワーク７１９を介して、補助入
出力サブシステム７２８を介して、シリアルポート７３０を介して、短距離通信サブシス
テム７４０を介して、または他の任意の適切なサブシステム７４２を介して、デュアルモ
ードモバイル通信装置７１０上にロードし、ユーザによって、フラッシュメモリ７２４ま
たはＲＡＭ７２６にインストールしてもよい。このようなアプリケーションのインストー
ルの柔軟性は、デュアルモードモバイル通信装置７１０の機能性を増やすと共に、拡張さ
れた装置上機能、通信関連機能、またはその両方を提供し得る。例えば、秘密通信アプリ
ケーションにより、デュアルモードモバイル通信装置７１０を用いて行われる電子商取引
機能及び他の類似の金融取引を可能にしてもよい。
【００７６】
デュアルモード装置７１０がデータ通信モードで動作しているとき、受信信号（例えば
テキストメッセージやウェブページのダウンロード）は、トランシーバ７１１により処理
され、マイクロプロセッサ７３８に供給される。マイクロプロセッサ７３８は、ディスプ
レイ７２２への出力または補助入出力装置７２８への出力のために、受信信号を更に処理
するのが好ましい。デュアルモードモバイル通信装置７１０のユーザは、キーボード７３
２を用いて、電子メールメッセージ等のデータ項目を構成してもよい。キーボード７３２
は、ＱＷＥＲＴＹスタイルでレイアウトされた完全な英数字キーボードであるのが好まし
いが、ＤＶＯＲＡＫスタイルとして知られるもののような他のスタイルの完全な英数字キ
ーボードを用いてもよい。デュアルモードモバイル通信装置７１０に対するユーザー入力
は、サムホイール入力装置、タッチパッド、様々なスイッチ、ロッカー入力スイッチ等を
含み得る複数の補助入出力装置７２８によって更に強化される。次に、ユーザによって入
力された構成済データ項目は、トランシーバ７１１によって通信ネットワーク７１９を介
して送信されてもよい。
【００７７】
デュアルモードモバイル通信装置７１０が音声通信モードで動作しているとき、デュア
ルモードモバイル通信装置７１０の全体の動作は、データモードと略同様であるが、但し
、受信信号はスピーカ７３４に出力され、送信される音声信号はマイクロホン７３６によ
って生成されるのが好ましい。また、デュアルモードモバイル通信装置７１０上に、別の
音声入出力サブシステム（例えば音声メッセージ録音サブシステム）が実装されてもよい
。音声信号出力は主にスピーカ７３４を介して達成されるのが好ましいが、発呼者の識別
情報、音声通話の継続時間またはその他の音声通話関連情報の標示を提供するために、デ
ィスプレイ７２２を用いてもよい。例えば、マイクロプロセッサ７３８は、音声通信モジ
ュール及びオペレーティングシステムソフトウェアと協働して、送られてきた音声通話の
発呼者の識別情報を検出し、それをディスプレイ７２２に表示してもよい。
【００７８】
デュアルモードモバイル通信装置７１０には、短距離通信サブシステム７４０も含まれ
る。例えば、短距離通信サブシステム７４０は、同様の機能を有するシステム及び装置と
の通信を提供するために、赤外線装置及びそれと関連付けられた回路及びコンポーネント
を含んでもよく、または、ブルートゥース（商標）モジュールや８０２．１１モジュール
等の短距離無線通信モジュールを含んでもよい。「ブルートゥース」（商標）及び８０２
．１１が、電気電子技術者協会（ＩＥＥＥ）から入手可能な、無線パーソナルエリアネッ
トワーク及び無線ＬＡＮにそれぞれ関する仕様のセットを指すことは、当業者には理解で
きるであろう。
【００７９】
上記説明は、１つ以上の例示的なシステム及び方法に関するものである。当該技術分野
の知識を有する者にとっては、多くの変形が自明であり、このような変形は本願の範囲内
である。例えば、上述の例では、ＳＯＡＰプロトコルを実装するウェブサービスを説明し
たが、ウェブサービスは、モバイル通信装置にアクセスできる任意の情報ソースであって
よく、異なる通信プロトコルを実装してもよい。
【００８０】
本願明細書における開示は、１つ以上の例示的なシステム及び方法に関するものである
が、本願明細書に添付の請求項で概説される本発明の精神及び範囲から逸脱することなく
、当業者には様々な変形が自明である。
【図面の簡単な説明】
【００８１】
【図１】通信システムのブロック図である。
【図２】図１のモバイル通信装置のブロック図である。
【図３】図２のコンポーネントアプリケーションプログラムのブロック図である。
【図４】図３のコンポーネントフレームワークのブロック図である。
【図５】図２のモバイル装置の例示的な動作のフローチャートである。
【図６】図１の通信システムの更なる例である。
【図７】図６のメッセージマップサービスを用いたメッセージ通信システムのブロック図である。
【図８】図６の通信装置の無線コンポーネントアプリケーションを動作させる方法を示すフローチャートである。
【図９】図２のモバイル通信装置の更なる例のブロック図である。
【図１】
0005241440.tif 000006
【図２】
0005241440.tif 000007
【図３】
0005241440.tif 000008
【図４】
0005241440.tif 000009
【図５】
0005241440.tif 000010
【図６】
0005241440.tif 000011
【図７】
0005241440.tif 000012
【図８】
0005241440.tif 000013
【図９】
0005241440.tif 000014