(57)【要約】ワイヤレスコンポーネントアプリケーションを作り上げるシステム及び方法が提供される。コンポーネントアプリケーションは、ワイヤレスネットワーク及びインターネットを介してウェブサービスと通信する、モバイル通信デバイス上で実行される。該コンポーネントアプリケーションは、データコンポーネント、プレゼンテーションコンポーネント、及び、ＸＭＬコードで書かれているメッセージコンポーネントを有している。コンポーネントアプリケーションは、さらにＥＣＭＡスクリプトのサブセットで書かれ、且つＸＭＬコードに埋め込まれたワークフローコンポーネントを有している。
2006517695.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク越しにモバイル通信デバイスによってウェブサービスと対話する方法であって、前記方法は、
前記ウェブサービスと前記通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するステップと、
前記要求ネットワークメッセージに応答し、複数のコンポーネントを含むコンポーネントアプリケーションプログラムを送信するステップであって、前記コンポーネントの第１のセットは、構造化定義言語で表現されたデスクリプタを有し、且つ前記コンポーネントの第２のセットは、一連の命令として表現されており、前記コンポーネントは、前記ウェブサービスのウェブクライアントとして前記デバイスを構成する前記コンポーネントアプリケーションプログラムの実行可能バージョンを生成するため前記通信デバイスのランタイム環境により供給するために構成されている、前記コンポーネントアプリケーションプログラムを送信するステップと、
を有し、
前記実行可能バージョンの実行は、前記ウェブサービスと前記通信デバイスとの間の前記ネットワーク越しでの後続の情報の交換を提供する、方法。
【請求項２】
前記ランタイム環境は、前記通信デバイスのインフラストラクチャのプロセッサと関連するオペレーティングシステムの機能性に対する前記実行可能バージョンのためのインタフェースを提供する、請求項１に記載の方法。
【請求項３】
前記ランタイム環境は、前記ウェブサービスにネットワークメッセージを送信するために通信を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージのためのデータコンテンツを供給するために前記デバイスのユーザによるデータ入力を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージに応答してデータプレゼンテーションを提供すること、前記デバイスのメモリにローカルクライアントデータを保持するためにデータ格納サービスを提供すること、及び前記実行可能バージョンにおける前記コンポーネントの動作を調整するためのスクリプト言語のために実行環境を提供すること、を含むグループから選択される能力を実行するために構成されている、請求項２に記載の方法。
【請求項４】
前記ランタイム環境は、前記オペレーティングシステムの一部分として構成されている、請求項２に記載の方法。
【請求項５】
前記通信デバイスからネットワークメッセージを受信するステップをさらに含み、前記ネットワークメッセージは、コンポーネントの前記第１のセットの少なくとも１つに対応する前記構造化定義言語に基づいて構成される、請求項２に記載の方法。
【請求項６】
前記ネットワークメッセージを処理し且つ前記構造化定義言語に基づいてフォーマットされたメッセージデータを含む応答ネットワークメッセージを送信するステップをさらに含み、前記応答ネットワークメッセージは、前記通信デバイスのユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成されている、請求項５に記載の方法。
【請求項７】
コンポーネント定義の前記第１のセットにデータコンポーネントを含むステップをさらに含み、前記データコンポーネントは、前記プログラムによって使用されるデータ実体を記述する情報と前記情報のためのフォーマットを定義する、請求項２に記載の方法。
【請求項８】
コンポーネント定義の前記第１のセットにメッセージコンポーネントを含むステップをさらに含み、前記メッセージコンポーネントは、前記ネットワーク越しに前記ウェブサービスと通信するために前記プログラムによって使用されるメッセージのフォーマットを定義する、請求項７に記載の方法。
【請求項９】
前記データコンポーネント定義及びメッセージコンポーネント定義は、種々の異なるランタイム環境を受け入れるためプラットフォーム中立である、請求項８に記載の方法。
【請求項１０】
コンポーネントの前記第１のセットにプレゼンテーションコンポーネントを含むステップをさらに含み、前記プレゼンテーションコンポーネントは、前記デバイスのユーザインタフェース上に表示される前記コンポーネントアプリケーションプログラムの前記外観を定義する、請求項８に記載の方法。
【請求項１１】
前記プレゼンテーションコンポーネントは、種々の予め定義されたランタイム環境のための特定のプラットフォームである、請求項１０に記載の方法。
【請求項１２】
前記構造化定義言語は、拡張可能マークアップ言語（eXtensible Markup Language）に基づいている、請求項１０に記載の方法。
【請求項１３】
コンポーネントの前記第２のセットにワークフローコンポーネントを含むステップをさらに含み、前記ワークフローコンポーネントは、コンポーネントの前記第１のセットの１つによって特定されるアクションが行われることとなるときに生ずる処理を定義する、請求項１０に記載の方法。
【請求項１４】
前記ワークフローコンポーネントのための前記一連の命令は、オブジェクト指向プログラミング言語にて表現されている、請求項１３に記載の方法。
【請求項１５】
前記ワークフローのための前記一連の命令は、スクリプト言語として表現されている、請求項１３に記載の方法。
【請求項１６】
前記スクリプト言語は、ＥＣＭＡスクリプトに基づいている、請求項１５に記載の方法。
【請求項１７】
前記通信デバイスのユーザのユーザインタフェースエレメントとの対話によって開始されるネットワークメッセージを受信するステップをさらに含み、前記ネットワークメッセージは、前記ユーザインタフェースエレメントに対応する前記ワークフローコンポーネントによって作成されるデータ実体を含んでいる、請求項１３に記載の方法。
【請求項１８】
前記ネットワークメッセージは、前記構造化定義言語に基づく前記データ実体を含むための前記メッセージコンポーネントに従って構成される、請求項１７に記載の方法。
【請求項１９】
前記データ実体に関連するメッセージデータを含む応答ネットワークメッセージを送信するステップをさらに含み、前記応答ネットワークメッセージは、前記通信デバイスのユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成される、請求項１８に記載の方法。
【請求項２０】
前記メッセージデータは、前記構造化定義言語に基づいてフォーマットされる、請求項１９に記載の方法。
【請求項２１】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するために構成されたモバイル通信デバイスであって、前記デバイスは、
前記実行可能バージョンを実行するためのプロセッサ及び関連付けられたメモリを含む前記モバイルデバイスを動作させるためのデバイスインフラストラクチャと、
前記実行可能バージョンと通信するために構成された入力デバイス及び出力デバイスを有して前記デバイスインフラストラクチャに結合されたユーザインタフェースと、
前記デバイスインフラストラクチャに結合され且つ前記ネットワークと通信するために構成されたワイヤレストランシーバと、
前記ウェブサービスのウェブクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するためのランタイム環境であり、構造化定義言語にて表現されたデスクリプタを有する前記コンポーネントの第１のセット及び一連の命令として表現されている前記コンポーネントの第２のセットと対話するために構成されているランタイム環境と、
を有し、
前記実行可能バージョンの前記実行は、前記ウェブサービスと前記ネットワーク越しの前記通信デバイスの間の前記ネットワーク越しの後続の情報の交換を提供する、モバイル通信デバイス。
【請求項２２】
前記ラインタイム環境は、前記通信デバイスの前記インフラストラクチャの前記プロセッサと前記関連するオペレーティングシステムの機能性に対する前記実行可能バージョンのためのインタフェースを提供する、請求項２１に記載のモバイル通信デバイス。
【請求項２３】
前記ランタイム環境は、前記ウェブサービスにネットワークメッセージを送信するために通信を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージのためのデータコンテンツを供給するために前記デバイスのユーザによるデータ入力を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージに応答してデータプレゼンテーションを提供すること、前記デバイスのメモリにローカルクライアントデータを保持するためにデータ格納サービスを提供すること、及び前記実行可能バージョンにおける前記コンポーネントの動作を調整するためのスクリプト言語のために実行環境を提供すること、を含むグループから選択される能力を実行するために構成されている、請求項２２に記載のモバイル通信デバイス。
【請求項２４】
前記ランタイム環境は、前記オペレーティングシステムの一部分として構成されている、請求項２２に記載のモバイル通信デバイス。
【請求項２５】
前記実行可能バージョンは、前記ウェブサービスにネットワークメッセージを送信するために構成されており、前記ネットワークメッセージは、コンポーネントの前記第１のセットの少なくとも１つに対応する前記構造化定義言語に基づいて構成されている、請求項２２に記載のモバイル通信デバイス。
【請求項２６】
前記実行可能バージョンは、前記ネットワークメッセージに対応する応答ネットワークメッセージを受信するために構成されており、前記応答ネットワークメッセージは、前記構造化定義言語に基づいてフォーマットされたメッセージデータを含み、前記応答ネットワークメッセージは、前記通信デバイスの前記ユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成されている、請求項２５に記載のモバイル通信デバイス。
【請求項２７】
コンポーネント定義の前記第１のセットにデータコンポーネントをさらに含み、前記データコンポーネントは、前記プログラムによって使用されるデータ実体を記述する情報と前記情報のためのフォーマットを定義する、請求項２２に記載のモバイル通信デバイス。
【請求項２８】
コンポーネント定義の前記第１のセットにおけるメッセージコンポーネントをさらに含み、前記メッセージコンポーネントは、前記ネットワーク越しに前記ウェブサービスと通信するために前記プログラムによって使用されるメッセージのフォーマットを定義する、請求項２７に記載のモバイル通信デバイス。
【請求項２９】
前記データコンポーネント定義及びメッセージコンポーネント定義は、種々の異なるランタイム環境を受け入れるためプラットフォーム中立である、請求項２８に記載のモバイル通信デバイス。
【請求項３０】
コンポーネントの前記第１のセットにプレゼンテーションコンポーネントをさらに含み、前記プレゼンテーションコンポーネントは、前記デバイスの前記ユーザインタフェース上に表示される前記コンポーネントアプリケーションプログラムの前記外観を定義する、請求項２８に記載のモバイル通信デバイス。
【請求項３１】
前記プレゼンテーションコンポーネントは、種々の予め定義されたランタイム環境のための特定のプラットフォームである、請求項３０に記載のモバイル通信デバイス。
【請求項３２】
前記構造化定義言語は、拡張可能マークアップ言語（eXtensible Markup Language）に基づいている、請求項３０に記載のモバイル通信デバイス。
【請求項３３】
コンポーネントの前記第２のセットにワークフローコンポーネントをさらに含み、前記ワークフローコンポーネントは、コンポーネントの前記第１のセットの１つによって特定されるアクションが行われることとなるときに生ずる処理を定義する、請求項３０に記載のモバイル通信デバイス。
【請求項３４】
前記ワークフローコンポーネントのための前記一連の命令は、オブジェクト指向プログラミング言語にて表現されている、請求項３３に記載のモバイル通信デバイス。
【請求項３５】
前記ワークフローのための前記一連の命令は、スクリプト言語として表現されている、請求項３３に記載のモバイル通信デバイス。
【請求項３６】
前記スクリプト言語は、ＥＣＭＡスクリプトに基づいている、請求項３５に記載のモバイル通信デバイス。
【請求項３７】
前記実行可能バージョンは、ユーザインタフェースエレメントと前記通信デバイスのユーザの対話によって開始されるネットワークメッセージを送信するために構成されており、前記ネットワークメッセージは、前記ユーザインタフェースエレメントに対応する前記ワークフローコンポーネントによって作成されるデータ実体を含んでいる、請求項３３に記載のモバイル通信デバイス。
【請求項３８】
前記ネットワークメッセージは、前記構造化定義言語に基づく前記データ実体を含むための前記メッセージコンポーネントに従って構成される、請求項３７に記載のモバイル通信デバイス。
【請求項３９】
前記実行可能バージョンは、前記データ実体に関連するメッセージデータを含む応答ネットワークメッセージを受信するために構成されており、前記応答ネットワークメッセージは、前記通信デバイスの前記ユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成される、請求項３８に記載のモバイル通信デバイス。
【請求項４０】
前記メッセージデータは、前記構造化定義言語に基づいてフォーマットされる、請求項３９に記載のモバイル通信デバイス。
【請求項４１】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するためのモバイル通信デバイスを構成するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
コンピュータ可読媒体と、
前記ウェブサービスのウェブクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するために前記コンピュータ可読媒体上に格納されたランタイム環境モジュールであり、構造化定義言語にて表現されたデスクリプタを有する前記コンポーネントの第１のセット及び一連の命令として表現されている前記コンポーネントの第２のセットと対話するために構成されている、前記ランタイム環境と、
を有し、
前記実行可能バージョンの前記実行は、前記ウェブサービスと前記ネットワーク越しの前記通信デバイスの間の前記ネットワーク越しの後続の情報の交換を提供する、コンピュータプログラム製品。
【請求項４２】
ネットワーク越しにモバイル通信デバイスと対話するためのウェブサービスを提供するために構成されたサーバであって、前記サーバは、
前記ウェブサービスと前記通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するためのネットワークインタフェースと、
要求ネットワークメッセージに応答して送信するためにネットワークインタフェースに結合されたコンポーネントアプリケーションプログラムであって、前記コンポーネントアプリケーションプログラムは、複数のコンポーネントを含み、前記コンポーネントの第１のセットは、構造化定義言語で表現されたデスクリプタを有し、且つコンポーネントの第２のセットは、一連の命令として表現されており、前記コンポーネントは、前記ウェブサービスのウェブクライアントとして前記デバイスを構成する前記コンポーネントアプリケーションプログラムの実行可能バージョンを生成するため前記通信デバイスのランタイム環境により供給するために構成されている、前記コンポーネントアプリケーションと、
を有し、
前記実行可能バージョンの実行は、前記ウェブサービスと前記通信デバイスとの間の前記ネットワーク越しでの後続の情報の交換を提供する、サーバ。
【請求項４３】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するために構成されたモバイル通信デバイスであって、前記デバイスは、
前記実行可能バージョンを実行するためモバイルデバイスを動作させるためのインフラストラクチャ手段と、
前記実行可能バージョンと通信するために構成された前記インフラストラクチャ手段に結合されたユーザインタフェース手段と、
前記デバイスインフラストラクチャに結合され且つ前記ネットワークと通信するために構成されたトランシーバ手段と、
前記ウェブサービスのウェブクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するためのランタイム手段であり、構造化定義言語にて表現されたデスクリプタを有する前記コンポーネントの第１のセット及び一連の命令として表現されている前記コンポーネントの第２のセットと対話するために構成されている、前記ランタイム手段と、
を有し、
前記実行可能バージョンの前記実行は、前記ウェブサービスと前記ネットワーク越しの前記通信デバイスの間の前記ネットワーク越しの後続の情報の交換を提供する、モバイル通信デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、概してワイヤレス通信にそして詳細にはモバイル通信装置のためのソフトウェアに関する。
【背景技術】
【０００２】
携帯電話、ワイヤレス通信能力を有するＰＤＡ（携帯情報端末）及び双方向ポケットベルのように、とどまることなく増加している多数のモバイル通信デバイスが今日用いられている。これらのモバイル通信デバイス上で動くソフトウェアアプリケーションは、それらの有用性を増大させている。例えば、携帯電話は、都市の区域についての天気を検索するアプリケーションを含んでいるかもしれず、あるいはＰＤＡは、ユーザが食品雑貨の買い物をすることを可能とするアプリケーションを含んでいるかもしれない。これらのアプリケーションは、これらのデバイスの可動性及びユーザがどこにいるかにかかわらず、ユーザにタイムリーで且つ有用なサービスを提供するためにワイヤレスネットワークへの接続性を利用している。しかしながら、モバイル通信デバイスの限られた資源、及びモバイル通信デバイスへワイヤレスでデータを送ることの複雑さに起因して、モバイル通信デバイスのためのソフトウェアアプリケーションを開発することは、依然として困難で且つ時間のかかる仕事のままである。
【０００３】
現今において、モバイル通信デバイスは、インターネットベースのブラウザ及び／又はネイティブのアプリケーションを介してウェブサービスと通信すべく構成されている。ブラウザは、種々の異なるデバイスのためのクロスプラットフォームベース上で動作させるべく適合させ得るという利点を有しているが、しかしながら画面内に含まれるデータの持続性を妨げる、ウェブサービスからページ（ＨＴＭＬでの画面定義）を要求するという不都合を有している。ブラウザのさらなる不都合は、画面は、実行時に描かれ、それは資源集約型であり得ることである。ネイティブアプリケーションは、モバイルデバイスのタイプのために特定的に開発され、それによって各ランタイム環境について比較的最適化されたアプリケーションプログラムを提供するという利点を有している。しかしながら、ネイティブアプリケーションは、プラットフォーム独立でなく、それによって同一のアプリケーションの多数のバージョンの開発を必要とし、そしてサイズが比較的大きくなり、それによってモバイルデバイスのメモリ資源に重い負担をかけるという不都合を有している。さらに、アプリケーション開発者は、これらのハードコードされたネイティブアプリケーションを構築するためにＪａｖａ（登録商標）及びＣ＋＋のようなプログラミング言語についての経験を必要とする。広範囲にわたる種々のランタイム環境を有し同様にモバイルデバイス資源の消費が低減されたウェブサービスクライアント上で実行され得るアプリケーションプログラムについての必要性が存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明において開示されるシステム及び方法は、上述において提示された不都合の少なくともいくらかを未然に防ぎ又は軽減するコンポーネントベースのアプリケーション環境を提供している。
【課題を解決するための手段】
【０００５】
現在のアプリケーションプログラムは、広範囲にわたる種々のランタイム環境を有するクライアント上で実行されるべく適合可能ではなく、そして望ましくないことにあまりに多くモバイルデバイスの資源を消費し得る。ブラウザは、画面内に含まれるデータの持続性を妨げる、ウェブサービスからページ（ＨＴＭＬでの画面定義）を要求するという不都合を有するアプリケーションプログラムである。ブラウザのさらなる不都合は、画面は、実行時に描かれ、それは資源集約的であり得ることである。ネイティブアプリケーションは、プラットフォーム独立でなく、それによって同一のアプリケーションの多数のバージョンの開発を必要とし、そしてサイズが比較的大きく、それによってモバイルデバイスのメモリ資源に重い負担をかけるという不都合を有している現在のアプリケーションプログラムのさらなる例である。現在のアプリケーションプログラムとは逆に、ワイヤレスコンポーネントアプリケーションにより作り上げ且つそれと通信するシステムが、提供される。該システムは、モバイル通信デバイス上で実行し、ワイヤレスネットワーク及びインターネットを介してウェブサービスと通信するコンポーネントアプリケーションを備えている。コンポーネントアプリケーションは、１つ以上のデータコンポーネント、プレゼンテーションコンポーネント、及び／又は、メッセージコンポーネントを有しており、それらは、ＸＭＬコードのような構造化定義言語で書かれている。コンポーネントアプリケーションは、ＥＣＭＡスクリプトのサブセットで書かれたような一連の命令を含むワークフローコンポーネントをさらに有していても良く、そしていくつかの実施においてはＸＭＬコードに埋め込まれていても良い。ワイヤレスコンポーネントアプリケーションを作り上げる方法も提供される。該方法は、データコンポーネントを作成するステップ、プレゼンテーションコンポーネントを作成するステップ、及びメッセージコンポーネントを作成するステップの各ステップを有している。データ、プレゼンテーション、及びメッセージコンポーネントは、いくつかの実施においてはＸＭＬで書かれていても良い。該方法は、データ、プレゼンテーション、及びメッセージコンポーネントを、ＥＣＭＡスクリプトのサブセットのようなプログラム言語における１セットの命令として書かれたワークフローコンポーネントに一緒に連結することをさらに含む。
【０００６】
したがって、ネットワーク越しにモバイル通信デバイスによってウェブサービスと対話する方法が提供される。該方法は、ウェブサービスと通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するステップと、要求ネットワークメッセージに応答し、複数のコンポーネントであって、該コンポーネントの第１のセットは、構造化定義言語で表現されたデスクリプタ（descriptors）を有し、且つコンポーネントの第２のセットは、一連の命令として表現されていて、コンポーネントは、ウェブサービスのウェブクライアントとしてデバイスを構成するコンポーネントアプリケーションプログラムの実行可能バージョンを生成するため通信デバイスのランタイム環境により供給する（provisioning）ために構成されている、複数のコンポーネントを含むコンポーネントアプリケーションプログラムを送信するステップと、の各ステップを有し、該実行可能バージョンの実行は、ウェブサービスと通信デバイスとの間のネットワーク越しでの後続の情報の交換を提供する。
【０００７】
また、複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しで対話するために構成されたモバイル通信デバイスも開示されている。該デバイスは、実行可能バージョンを実行するためのプロセッサ及び関連付けられたメモリを含むモバイルデバイスを動作させるためのデバイスインフラストラクチャと、実行可能バージョンと通信するために構成された入力デバイス及び出力デバイスを有してデバイスインフラストラクチャに結合されたユーザインタフェースと、デバイスインフラストラクチャに結合され且つネットワークと通信するために構成されたワイヤレストランシーバと、ウェブサービスのウェブクライアントとしてデバイスを構成するために実行可能バージョンの実行を調整するためのランタイム環境であり、構造化定義言語にて表現されたデスクリプタを有するコンポーネントの第１のセット及び一連の命令として表現されたコンポーネントの第２のセットと対話するために構成されているランタイム環境と、を備えており、実行可能バージョンの実行は、ウェブサービスとネットワーク越しの通信デバイスの間のネットワーク越しの後続の情報の交換を提供する。
【０００８】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するためにモバイル通信デバイスを構成するためのコンピュータプログラム製品がさらに開示される。該コンピュータプログラム製品は、コンピュータ可読媒体と、ウェブサービスのウェブクライアントとしてデバイスを構成するために実行可能バージョンの実行を調整するためにコンピュータ可読媒体上に格納されたランタイム環境モジュールであり、構造化定義言語にて表現されたデスクリプタを有するコンポーネントの第１のセット及び一連の命令として表現されているコンポーネントの第２のセットと対話するために構成されたランタイム環境と、を備えており、実行可能バージョンの実行は、ウェブサービスとネットワーク越しの通信デバイスの間のネットワーク越しの後続の情報の交換を提供する。
【０００９】
ネットワーク越しにモバイル通信デバイスと対話するためのウェブサービスを提供するために構成されたサーバも本発明において開示される。該サーバは、ウェブサービスと通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するためのネットワークインタフェースと、要求ネットワークメッセージに応答して、送信するためにネットワークインタフェースに結合されたコンポーネントアプリケーションプログラムであって、該コンポーネントアプリケーションプログラムは複数のコンポーネントを含み、該コンポーネントの第１のセットは、構造化定義言語で表現されたデスクリプタを有し、且つコンポーネントの第２のセットは、一連の命令として表現され、該コンポーネントは、ウェブサービスのウェブクライアントとしてデバイスを構成するコンポーネントアプリケーションプログラムの実行可能バージョンを生成するため通信デバイスのランタイム環境により供給するために構成されている、コンポーネントアプリケーションプログラムをを備えており、該実行可能バージョンの実行は、ウェブサービスと通信デバイスとの間のネットワーク越しでの後続の情報の交換を提供する。
【００１０】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するために構成されたモバイル通信デバイスも提供される。該デバイスは、実行可能バージョンを実行すべくモバイルデバイスを動作させるためのインフラストラクチャ手段と、実行可能バージョンと通信するために構成されたインフラストラクチャ手段に結合されたユーザインタフェース手段と、デバイスインフラストラクチャに結合され且つネットワークと通信するために構成されたトランシーバ手段と、ウェブサービスのウェブクライアントとしてデバイスを構成するために実行可能バージョンの実行を調整するためのランタイム手段であり、構造化定義言語にて表現されたデスクリプタを有するコンポーネントの第１のセット及び一連の命令として表現されているコンポーネントの第２のセットと対話するために構成されたランタイム手段と、を備えており、実行可能バージョンの実行は、ウェブサービスとネットワーク越しの通信デバイスの間のネットワーク越しの後続の情報の交換を提供する。
【００１１】
これらのそして他の特徴は、添付図面に対する参照がなされている以下の詳細な説明において一層明らかになるであろう。
【発明を実施するための最良の形態】
【００１２】
〔ネットワークシステム〕
図１を参照すると、ネットワークシステム１０は、結合されたワイヤレスネットワーク１０２及びインターネット１０４を介してウェブサーバ１０６によって提供される１つ以上のウェブサービスと対話するためのモバイル通信デバイス１００を備えている。デバイス１００は、ウェブサーバ１０６のウェブサービスと通信しているときに、要求／応答メッセージ１０５を、それぞれ、送信及び受信する。デバイス１００は、メッセージヘッダ情報及び関連付けられたデータコンテンツの形態での要求／応答メッセージ１０５を用いること、例えばオンライン商人からの商品価格付け及び入手可能性の要求及び受信、によって、ウェブサービスのウェブクライアントとして動作し得る。ウェブサービスは、通信デバイス１００におけるクライアントアプリケーションプログラム３０２（図２を参照されたい）が、通信デバイス１００のユーザに利便性を提供するために、ワイヤレスネットワーク１０２及びインターネット１０４を介して対話するシステムの一例である。通信デバイス１００とウェブサービスの間で送信されるメッセージ１０５は、デバイス１００とウェブサービスとによって使用される異なるフォーマットの間でメッセージ１０５を変換するメッセージマップサービス（図示せず）を通過することができる。
【００１３】
適切な要求／応答メッセージ１０５を満足させるために、ウェブサーバ１０６は、デバイス１００上に一旦準備されたクライアントアプリケーションプログラム３０２（図２を参照されたい）に関連性のある業務ロジック（方法）をあらわにするために、（それに限定されるわけではないが、ＨＴＴＰ及びコンポーネントＡＰＩのような）種々のプロトコルを介してアプリケーションサーバ１１０と通信する。アプリケーションサーバ１１０は、ウェブサーバ１０６がアプリケーションサーバ１１０のサブセットとみなされ得るように、ウェブサーバ１０６のソフトウェアを含んでいても良い。デバイス１００のアプリケーションプログラム３０２は、オブジェクト（又は関数）上のメソッドを呼び出すのと同様にアプリケーションサーバ１１０の業務ロジックを使用することができる。クライアントアプリケーションプログラム３０２は、ネットワーク１０２、１０４を経由して、デバイス１００に対して直接的に、メッセージ１０５を介して、アプリケーションサーバ１１０に関してダウンロード／アップロードされ得ることが認識される。デバイス１００は、ネットワーク１０２、１０４を経由して１つ以上のウェブサーバ１０６及び関連付けられたアプリケーションサーバ１１０と通信し得ることがさらに認識される。もし所望されるなら、デバイス１００は、アプリケーションサーバ１１０に直接的に結合され、それによって、ウェブサーバ１０６をバイパスすることもまた認識される。
【００１４】
〔サーバ環境〕
図１を参照すると、ウェブサーバ１０６は、通信デバイス１００上でクライアントアプリケーションプログラム３０２によって使用される情報メッセージ１０５を提供する。それに代えて、又はそれに加えて、ウェブサーバ１０６は、通信デバイス１００上で実行されるクライアントアプリケーションプログラム３０２によって提供される情報メッセージ１０５を受信し且つ使用しても良く、あるいは通信デバイス１００上で実行されるクライアントアプリケーションプログラム３０２の代わりにタスクを実行しても良い。ウェブサービスは、ウェブサーバ１０６のソフトウェアサービスとして定義され得て、それはＵＤＤＩ（Universal Discovery Description and Integration）に登録されたウェブサービス記述言語（ＷＳＤＬ）を用いて表現されるインタフェースを実施し得て、且つＳＯＡＰ（Simple Object Access Protocol）のような適切なプロトコルを通してインターネット１０４越しにあらわにされることによって、クライアントデバイス１００とメッセージ１０５を介して通信し得る。いくつかの実施において、ＳＯＡＰは、ＳＯＡＰエレメントに包まれた整形式のＸＭＬフラグメントを含んで、メッセージ１０５のためのＸＭＬフォーマットを定義する仕様である。ＳＯＡＰの他の部分は、いかにプログラムデータをＸＭＬとしてあらわすか及びリモートプロシージャコール（ＲＰＣ）をするのにいかにＳＯＡＰを使用するかを明示する。ＳＯＡＰのこれらのオプション的な部分は、ＲＰＣ様式のアプリケーションを実施するのに使用され、そこでは呼び出し可能な関数及び該関数にわたすべきパラメータを含むＳＯＡＰ要求メッセージ１０５がクライアントデバイス１００から送信され、そしてサーバ１０６は、実行された関数の結果と共に応答メッセージ１０５を返す。ＳＯＡＰは、また、ドキュメント様式のアプリケーションもサポートしており、そこではＳＯＡＰメッセージ１０５がＸＭＬドキュメントのラッパーである。ＳＯＡＰのさらなるオプション的な部分は、ＨＴＴＰバインディング（すなわち、ヘッダ）を定義しており、いくつかのＳＯＡＰの実施は、ＭＳＭＱ、ＭＱシリーズ、ＳＭＴＰ、又はＴＣＰ／ＩＰ移送プロトコルをサポートしている。あるいは、ウェブサービスが、他の既知の通信プロトコル、メッセージ１０５のフォーマットを使用しても良く、そしてインタフェースは、上述された以外のウェブサービス言語で表現されていても良い。したがって、サーバ１０６によって供給されるサービスは、ネットワーク１０２、１０４越しでデバイス１００のユーザによって利用される。
【００１５】
〔クライアント環境〕
図２を参照すると、コンポーネントアプリケーション３０２は、図３に描かれているように、例えば、拡張可能マークアップ言語（ＸＭＬ）及びＥＣＭＡスクリプトのサブセットで、書かれ得るソフトウェアアプリケーションである。ＸＭＬ及びＥＣＭＡスクリプトは、ソフトウェア開発者が、移植可能で且つプラットフォーム独立な方法でコンポーネントアプリケーション３０２を開発するのを可能とする標準ベースの言語である。コンポーネントアプリケーション３０２は、ワイヤレスネットワーク１０２を経由して無線で送信されそしてデバイスインフラストラクチャ２０４のメモリモジュール２１０内にロードされる。あるいは、コンポーネントアプリケーション３０２は、シリアル接続、ＵＳＢ接続、又はＩＲ、８０２．１１（ｘ）及び／又はブルートゥース（Ｂｌｕｅｔｏｏｔｈ（商標））のような近距離ワイヤレス通信システムを経由してデバイス１００上にロードされても良い。一旦、モバイル通信デバイス１００上にロードされると、コンポーネントアプリケーション３０２は、デバイスインフラストラクチャ２０４におけるプロセッサによって実行されるネイティブコードにコンポーネントアプリケーション３０２を変換する、コンポーネントフレームワーク２０６によってモバイル通信デバイス１００上で実行される。あるいは、コンポーネントアプリケーション３０２が、ネイティブコードとして実行されても良く、あるいはネイティブランタイム環境としてコンポーネントフレームワーク２０６を提供し、以下包括的に参照番号２０６によって参照される、他のソフトウェアモジュール又はオペレーティングシステムによってモバイル通信デバイス１００上で解釈されてもよい。
【００１６】
再び、図１及び図２を参照すると、デバイス１００によって提供されるクライアントランタイム環境２０６は、デバイス１００に（ウェブサーバ１０６の）ウェブサービスのウェブクライアントとして動作させるべく構成され得る。デバイス１００のクライアントランタイム環境２０６は、デバイス１００上で、（コンポーネントアプリケーションの形態である−図３を参照されたい）クライアントアプリケーションプログラム３０２を生成し、ホストし、そして実行することができることが望ましい。さらに、クライアントランタイム環境２０６の特定の機能は、それに限定されるわけではないが、言語、メモリ割り当ての調整、ネットワーキング、Ｉ／Ｏ操作の間におけるデータの管理、デバイス１００の出力デバイス上のグラフィックスの調整、そしてコアオブジェクト指向クラス及びサポートするファイル／ライブラリへのアクセスの提供のサポートなどを含み得る。デバイス１００によって実施されるランタイム環境２０６の例は、それに限定されるわけではないが、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）によるＣＬＲ（Common Language Runtime）及びサンマイクロシステムズ（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ）によるＪａｖａ（登録商標）ランタイム環境（ＪＲＥ）などを含む。
【００１７】
デバイス１００のターミナルランタイム環境２０６は、クライアントアプリケーションプログラム３０２の常駐実行可能バージョンのための限定されるわけではないが以下の基本的な機能をサポートすることが望ましい。
ネットワーク１０２、１０４を経由して結合されたウェブサーバ１０６のウェブサービスにメッセージ１０５を送信する通信能力を提供する。
ウェブサーバ１０６のウェブサービスの出力メッセージ１０５（サービスへのメッセージ）のためにデータ部分を供給すべくデバイス１００の入力デバイス上でのユーザによるデータ入力能力を提供する。
ウェブサービスの応答メッセージ１０５（到来メッセージ）又はウェブサーバ１０６の相互に関係しない通知のために出力デバイス上にデータプレゼンテーション又は出力能力を提供する。
デバイス１００のメモリモジュール（図２を参照されたい）におけるローカルクライアントデータを維持するデータ格納サービスを提供する。
及び、クライアントアプリケーションプログラム３０２のアプリケーションコンポーネント４００、４０２、４０４、４０６（図３を参照されたい）の調整操作のためのスクリプト言語のための実行環境を提供する。
【００１８】
それゆえ、ネイティブクライアントターミナルランタイム環境２０６は、クライアントアプリケーションプログラム３０２のための、そしてデバイスインフラストラクチャ２０４のプロセッサ２０８及び関連付けられたオペレーティングシステムのデバイス１００、１１６の機能性に対するインタフェースを提供する。ランタイム環境２０６は、望ましくは、コンポーネントアプリケーションプログラム３０２をそこで実行する、デバイス１００上に制御された、安全なそして安定な環境を供給する。ランタイム環境２０６は、通信デバイス１００のデバイスインフラストラクチャ２０４各々について特有の実際のウェブクライアントを作り出すべくコンポーネント４００、４０２、４０４、４０６の定義を提供する。
【００１９】
〔通信デバイス〕
図１及び図２を参照すると、通信デバイス１００は、それに限定されるわけではないが、携帯電話、ＰＤＡ、双方向ポケットベル及びデュアルモード通信デバイス（図９を参照されたい）のようなデバイスである。デバイス１００は、接続２１８を経由してデバイスインフラストラクチャ２０４に結合されたワイヤレストランシーバ２００のようなネットワーク接続インタフェースを含んでいる。ワイヤレストランシーバ２００は、デバイス１００の操作の間、ＲＦリンクによりワイヤレスネットワーク１０２へなど、ネットワーク１０２、１０４に接続可能であり、デバイス１００が、ネットワーク１０２、１０４を経由して互いに及び（ウェブサーバ１０６のような）外部システムと通信することを可能とする。ワイヤレストランシーバ２００は、また、デバイス１００が、クライアントアプリケーションプログラム３０２とサーバ１０６、１１０との間で要求／応答メッセージ１０５を調整するのをも助ける。ネットワーク１０２、１０４は、ネットワーク１０２、１０４に接続された、デバイス１００と外部システムとの間における要求／応答メッセージ１５０でのデータの送信をサポートする。ネットワーク１０２、１０４は、また、通信デバイス１００とネットワーク１０２、１０４の外部にあるデバイスとの間の電話通話についての音声通信をサポートしていても良い。ワイヤレスデータ伝送プロトコルは、それに限定されるわけではないが、ＤａｔａＴＡＣ、ＧＰＲＳ又はＣＤＭＡのようなワイヤレスネットワーク１０２によって使用され得る。ワイヤレスネットワーク１０２とインターネット１０４との間の接続は、インターネットゲートウェイ（図示せず）を含み、メッセージ１０５と関連付けられたデータコンテンツを、接続されたデバイス１００とサーバ１０６のウェブサービスとの間に流すことを可能とする。
【００２０】
再び図２を参照すると、デバイス１００は、また、ユーザ（図示せず）と対話するために、接続２２２によってデバイスインフラストラクチャ２０４に結合されたユーザインタフェース２０２をも有している。ユーザインタフェース２０２は、それに限定されるわけではないが、ＱＷＥＲＴＹ配列のキーボード、キーパッド、トラックホイール、スタイラス、マウス、マイクロフォン、のような１つ以上のユーザ入力デバイスと、ＬＣＤ画面ディスプレイ及び／又はスピーカのようなユーザ出力デバイスとを含んでいる。画面が、タッチセンシティブである場合、ディスプレイは、デバイスインフラストラクチャ２０４によって制御されるようなユーザ入力デバイスとしても使用され得る。ユーザインタフェース２０２は、ランタイム環境２０６において実行されるクライアントアプリケーションプログラム３０２によって用いられるとき、システム１０（図１を参照されたい）上で要求／応答メッセージメッセージ１０５を調整するべくデバイス１００のユーザによって用いられる。
【００２１】
図２を再度参照すると、通信デバイス１００の操作は、デバイスインフラストラクチャ２０４によって可能となる。デバイスインフラストラクチャ２０４は、コンピュータプロセッサ２０８及び関連付けられたメモリモジュール２１０を含んでいる。コンピュータプロセッサ２０８は、オペレーティングシステム及びメモリモジュール２１０内に配置されたクライアントアプリケーションプログラム３０２によって提供される関連する命令を実行することによって通信デバイス１００のネットワークインタフェース２００、ユーザインタフェース２０２及びランタイム環境２０６の動作を操る。さらに、デバイスインフラストラクチャ２０４は、プロセッサへの命令、及び／又はメモリモジュール２１０におけるクライアントアプリケーションプログラム３０２をロード／アップデートする命令を提供するためのプロセッサ２０８に結合されているコンピュータ可読媒体２１２を含み得ることが認識される。コンピュータ可読媒体２１２は、例として、磁気ディスク、磁気テープ、ＣＤ／ＤＶＤ  ＲＯＭのような光学的可読媒体、及びメモリカードのような、ハードウェア及び／又はソフトウェアを含み得る。各々の場合において、コンピュータ可読媒体２１２は、スモールディスク、フロッピー（登録商標）ディスク、カセット、ハードディスクドライブ、固体メモリカード、又はメモリモジュール２１０内に設けられたＲＡＭの形態をとるようにしても良い。上述された例のコンピュータ可読媒体２１２は、単独でか又は組み合わせてかのどちらでも使用され得ることに注意されるべきである。
【００２２】
〔コンポーネントアプリケーションプログラム〕
図３を参照すると、コンポーネントアプリケーションプログラム３０２のブロック図は、データコンポーネント４００と、プレゼンテーションコンポーネント４０２と、メッセージコンポーネント４０４とを有しており、それらは、クライアントランタイム環境２０６との通信２１４を通してワークフローコンポーネント４０６によって統合されている。構造化定義言語は、コンポーネント４００、４０２、４０４を、各エレメントが１つ以上の値を持ち得るように、リソースの特定の属性をあらわす多数の予め定義されたエレメントからなる、一連のメタデータレコードとして構築するために使用され得る。各メタデータスキーマは、典型的には、それに限定されるわけではないが、限定された数のエレメント、各エレメントの名前、及び各エレメントについての意味、のような特性を定義している。メタデータスキーマ例は、それに限定されるわけではないが、例えばダブリンコア（ＤＣ）、英米目録規則（ＡＡＣＲ２）、政府情報所在案内サービス（ＧＩＬＳ）、ＥＡＤ（Encoded Archives Description）、ＩＭＳグローバルラーニングコンソーシアム（ＩＭＳ）、及びオーストラリア政府ロケータサービス（ＡＧＬＳ）を含んでいる。コード化シンタックスは、コンポーネント４００、４０２、４０４のメタデータがデバイスインフラストラクチャ２０４（図２を参照されたい）によって処理されるのを可能とし、そしてコード化スキームは、それに限定されるわけではないが、例えばＸＭＬ、ＨＴＭＬ、ＸＨＴＭＬ、ＸＳＭＬ、ＲＤＦ、ＭＡＲＣ（Machine Readable Cataloging）、及び多目的インターネットメール拡張仕様（ＭＩＭＥ）を含んでいる。クライアントランタイム環境２０６は、アプリケーションプログラム３０２の実行可能バージョンを提供すべくコンポーネント４００、４０２、４０４のメタデータデスクリプタに作用する。
【００２３】
図４を再度参照すると、データコンポーネント４００は、コンポーネントアプリケーションプログラム３０２によって使用されるデータ実体を定義する。データコンポーネント４００が記述してもよいデータ実体の例は、注文、ユーザ、及び財務処理である。データコンポーネント４００は、データ実体を記述するのにいかなる情報が必要とされるか、そして情報はいかなるフォーマットで表現されるかを定義する。例えば、データコンポーネント４００は、それに限定されるわけではないが、例えば数としてフォーマットされる注文についての単一識別子からなる注文、文字列としてフォーマットされるアイテムのリスト、日時フォーマットを有する注文が作成された時、文字列としてフォーマットされる注文の状態、及び他の１つのデータコンポーネント４００の定義に従ってフォーマットされる注文を出したユーザを定義しても良い。
【００２４】
図４を再度参照すると、メッセージコンポーネント４０４は、ウェブサービスのような外部システムと通信するためにコンポーネントアプリケーションプログラム３０２によって使用されるメッセージのフォーマットを定義する。例えば、一つのメッセージコンポーネント４０４は、それに限定されるわけではないが、例えば注文のための単一識別子、注文の状態、及び注文に関連する覚え書きを含む注文を出すためのメッセージを記述しても良い。
【００２５】
図４を再度参照すると、プレゼンテーションコンポーネント４０２は、ユーザインタフェース２０２によって表示されるようにコンポーネントアプリケーションプログラム３０２の外観及び振る舞いを定義する。プレゼンテーションコンポーネント４０２は、ＧＵＩ画面及び制御、ならびにユーザがユーザインタフェース２０２を用いてコンポーネントアプリケーション３０２と対話するときに実行される動作を特定することができる。例えば、プレゼンテーションコンポーネント４０２は、画面、ラベル、編集ボックス、ボタン及びメニュー、ならびにユーザが編集ボックスにタイプし、又はボタンを押下する時にとられる動作を定義しても良い。ウェブサービス消費者の大多数は、ウェブサービス操作結果の視覚的プレゼンテーションを使用し、そしてそれゆえユーザインタフェース画面を表示することが可能な彼らのデバイス１００にランタイム環境を備える。
【００２６】
図１及び図４を参照すると、上述されたクライアントアプリケーションプログラム３０２定義ホスティングモデルにおいて、プレゼンテーションコンポーネント４０２は、クライアントプラットフォーム及びデバイス１００の環境に依存して変化しても良いことが認識される。例えば、いくつかのケースにおいては、ウェブサービス消費者は、視覚的プレゼンテーションを必要としない。コンポーネントアプリケーションプログラム３０２のコンポーネント４００、４０２、４０４、４０６のアプリケーション定義は、ウェブサービスレジストリに、種々の予め定義されたクライアントランタイム２０６（図２を参照されたい）についての１セットのプラットフォーム特定プレゼンテーションコンポーネント４０２デスクリプタを伴う、プラットフォーム中立のデータ４００、メッセージ４０４、ワークフロー４０６コンポーネントデスクリプタの束としてホストされ得る。発見又は展開要求メッセージ１０５が発行されたとき、クライアントタイプは、この要求メッセージ１０５の一部として特定されるべきである。通信デバイス１００の異なるクライアントプラットフォームについてのコンポーネントアプリケーションプログラム３０２をパッケージングしている間に、データ、メッセージ、及びワークフローメタデータを複製しないようにするために、アプリケーション定義は、プレゼンテーションコンポーネント４０２の異なるセットにリンクされたプラットフォーム中立コンポーネント定義の束として（例えば）アプリケーションサーバ１１０上にホストされ得る。ユーザが、発見又はダウンロード要求メッセージ１０５を作成したとき、通信デバイス１００、１１６のクライアントランタイムタイプが検証され、且つ適切な束がウェブサーバ１０６によって、ネットワーク１０２、１０４越しでデバイス１００への送付のために、構成される。それらのウェブサービス消費者のために、クライアントアプリケーションプログラム３０２は、ワークフローコンポーネント４０６を介して、データ４００にリンクされたプレゼンテーションコンポーネント４０２及びメッセージ４０４コンポーネントを含み得る。
【００２７】
図４を再度参照すると、コンポーネントアプリケーションプログラム３０２のワークフローコンポーネント４０６は、上述されたようにプレゼンテーションコンポーネント４０２によって特定される動作、又はメッセージ１０５（図１を参照されたい）がシステム１０から到着したときに行われる動作のような、動作が行われるときに生じる処理を定義する。プレゼンテーション、ワークフロー及びメッセージ処理は、ワークフローコンポーネント４０６によって定義される。ワークフローコンポーネント４０６は、それに限定されるわけではないが、ＥＣＭＡスクリプトのような、プログラム言語又はスクリプト言語で一連の命令として書かれており、そしてネイティブコードにコンパイルされ、且つ上述されたように、ランタイム環境２０６によって実行され得る。ワークフローコンポーネント４０６の例は、データに値を割り当て、画面を操作し、又はメッセージ１０５を送信することであっても良い。プレゼンテーションコンポーネントと同様に、多数のワークフロー定義は、複数のデバイス１００の間で変化する性能及び特徴をサポートするために作成され得る。適切なワークフロー定義は、アプリケーションプログラム３０２のダウンロード及び準備の時に、決定され且つ送信され得る。
【００２８】
ＥＣＭＡ（European Computer Manufacturers Association）スクリプトは、標準のスクリプト言語であり、スクリプトは、コンピュータプロセッサによるよりもむしろ他のプログラムによって解釈され又は実行される一連の命令として言及され得る。スクリプト言語のいくつかの他の例は、パール（Ｐｅｒｌ）、Ｒｅｘｘ、ＶＢスクリプト（ＶＢＳｃｒｉｐｔ）、Ｊａｖａ（登録商標）スクリプト（Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ）、及びＴｃｌ／Ｔｋである。スクリプト言語は、一般に、デバイス１００のような、既存のシステムの機能を操作し、カスタマイズしそして自動化するために使用される命令言語である。そのようなシステムにおいて、有用な機能性は、ユーザインタフェース２０２（図２を参照されたい）を介して既に利用可能であり、そしてスクリプト言語は、プログラム制御に対するその機能性をあらわにするためのメカニズムである。このように、デバイス１００は、スクリプト言語の能力を完了するオブジェクト及び機能のホストランタイム環境を提供するものと言われている。
【００２９】
特に、ＥＭＣＡスクリプトは、ホストラインタイム環境の中でコンピュータ使用を行い且つコンピュータ使用対象を操作するためのオブジェクト指向プログラム言語である。ＥＣＭＡスクリプトは、システム１０（図１を参照されたい）のウェブベースのクライアントサーバアーキテクチャの一部としてサーバ１０６、１１０のコンピュータ使用を行わせるメカニズムを提供する、ウェブスクリプト言語として使用され得る。ＥＣＭＡスクリプトは、種々のホストランタイム環境のためのコアスクリプティング能力を提供し、そしてそれゆえ、コアスクリプティング言語は、多数の特別なホストランタイム環境についてプラットフォーム中立であるとみなされ得る。ランタイム環境２０６（図２を参照されたい）は、通信デバイス１００のクライアント側のコンピュータ使用のためのＥＣＭＡスクリプトホストランタイム環境、それに限定されるわけではないが、例えば、ウィンドウ、メニュー、ポップアップ、ダイアログボックス、テキストエリア、アンカー、フレーム、履歴、クッキー、及び入力／出力、をあらわすオブジェクトを提供し得る。さらに、ランタイム環境２０６のホストランタイム環境は、スクリプトコードを、それに限定されるわけではないが、例えば、フォーカス、ページ及び画像ロード、アンロード、エラー、ならびに放棄、選択、フォームの提出、ならびにマウス動作などのイベントに付随させるための手段を提供する。ＥＣＭＡスクリプトを用いる実施において、コードは、ワークフローコンポーネント４０６内にあらわれ、ユーザインタフェースエレメントを組み合わせ、固定し、ならびにテキスト及び画像を計算し、そしてユーザインタフェース２０２上におけるユーザ対話に反応する。ウェブサーバ１０６（図１を参照されたい）は、要求、クライアント、及びファイル、ならびにデータをロックし且つ共有するメカニズムをあらわすオブジェクトを含むサーバ側コンピュータ使用について異なるホスト環境を提供する。クライアント側及びサーバ側のスクリプトを一緒に使用することによって、クライアント通信デバイス１００とサーバ１０６、１１０との間のコンピュータ使用を分配し、同時にウェブベースのコンポーネントアプリケーションプログラム３０２についてのカスタマイズされたユーザインタフェース２０２を提供することができる。
【００３０】
ＥＣＭＡスクリプトは、また、厳密にいえば、関数又はメソッドでないかもしれない１セットのビルトイン演算子をも定義する。ＥＣＭＡスクリプト演算子は、それに限定されるわけではないが、例えば種々の単項演算、乗算演算子、加算演算子、ビットに関するシフト演算子、二進論理演算子、代入演算子、及びコンマ演算子を含んでいる。ＥＣＭＡスクリプトシンタックスは、Ｊａｖａ（登録商標）シンタックスに類似しており、しかしながら、ＥＣＭＡスクリプトシンタックスは、開発者にとって使用し易いスクリプト言語としてそれを供するのを可能とするように緩和されている。例えば、ＥＣＭＡにおける変数は、その型が宣言されていることを要求されず、また型がプロパティに関連付けられておらず、そして定義された関数は、それらを呼び出す前に構文的にそれらの宣言をすることが要求されない。クラスベースのオブジェクト指向プログラム言語においては、一般に、状態はインスタンスによって保持され、メソッドはクラスによって保持され、そして継承は構造及び振る舞いのみからなっていることが認められる。ＥＣＭＡスクリプトにおいては、状態及びメソッドは、オブジェクトによって保持され、そして構造、振る舞い、及び状態は、全て継承される。
【００３１】
〔コンポーネントアプリケーションプログラム例〕
したがって、図４を参照すると、クライアントアプリケーションプログラム３０２は、プラットフォーム中立の１セットのコンポーネント定義として、すなわちデータ４００及びメッセージ４０４コンポーネント、ならびにプレゼンテーションコンポーネント４０２について、ＸＭＬ（又は他のいずれかの適切な構造化定義言語）を用いて、定義され得る。ワークフローコンポーネント４０６は、ＥＣＭＡスクリプト（又は他のいずれかの適切なプラットフォーム中立のスクリプト言語）を用いて定義され得る。クライアントランタイム環境２０６（図２を参照されたい）は、コンポーネントアプリケーションプログラム３０２のコンポーネント４００、４０２、４０４、４０６が通信デバイス１００上に供給されるとき、メタ定義に基づいてコンポーネントテンプレートを生成し得る。多種多様のターミナルランタイム環境２０６とともに、ＸＭＬ又はＥＣＭＡスクリプトのようなクロスプラットフォームの標準が、コンポーネントアプリケーションプログラム３０２を予め作り上げる代わりにアプリケーションコンポーネントメタデータを定義するのに使用され得る。この遅延結合は、コンポーネントアプリケーションプログラム３０２の包括的なアプリケーション定義が、種々の異なる通信デバイス１００によってあらわされる、広範囲に種々のターミナルシステム環境２０６上で動くのを可能とし得る。
【００３２】
次の例は、ウェブサービスクライアントアプリケーションプログラム３０２が、それに限定されるわけではないがＸＭＬのような構造化定義言語、及びそれに限定されるわけではないがＥＣＭＡスクリプトのようなプラットフォーム中立スクリプト／プログラム用言語を、次のドキュメント型定義（ＤＴＤ）に従って定義されたコンポーネントと共に用いて、どのように表現され得るかを示している。
【００３３】
2006517695.tif 000003
2006517695.tif 000004
2006517695.tif 000005
2006517695.tif 000006
2006517695.tif 000007
【００３４】
上述に与えられたように、ＸＭＬエレメントは、ｗｃＡｐｐエレメント、ｗｃＤａｔａエレメント、ｗｃＭｓｇエレメント、ｗｃＳｒｃエレメント、及びｗｃＦｌｏｗエレメント、を含むコンポーネントアプリケーション３０２の例を定義する。図３を参照すると、ｗｃＡｐｐエレメントは、コンポーネントアプリケーションプログラム３０２を定義するトップレベルのエレメントである。ｗｃＤａｔａエレメントは、１グループの名前が付され、タイプが付されたフィールドからなるデータコンポーネント４００の例を定義する。ｗｃＭｓｇエレメントは、同様に、１グループの名前が付され、タイプが付されたフィールドを定義するメッセージコンポーネント４０４の例を定義する。ｗｃＳｒｃエレメントは、プレゼンテーションコンポーネント４０２の例を定義する。プレゼンテーションコンポーネント４０２の例は、ラベル、セパレータ、画像、ボタン、編集フィールド、テキストエリア、単一選択リスト、多重選択リスト、ドロップリスト、チェックボックス、ラジオボタン、又は１グループの他のプレゼンテーションコンポーネント４０２を含む画面である。
【００３５】
上述のコンポーネントアプリケーションプログラム３０２及び図３を参照すると、ｗｃＦｌｏｗエレメントは、ワークフローコンポーネント４０６の例を定義している。ＸＭＬエレメントのｐｂｌｏｃｋ属性は、ｗｃＦｌｏｗエレメントにネストされたｐｂｌｏｃｋエレメントを特定する。各ｐｂｌｏｃｋエレメントは、コンポーネントアプリケーションプログラム３０２のワークフローの一部を定義するスクリプトを有している。スクリプトは、ＥＣＭＡスクリプトで書かれている。
【００３６】
コンポーネントアプリケーション３０２の振る舞いを定義するために、ワークフローコンポーネント４０６は、データコンポーネント４００、プレゼンテーションコンポーネント４０２、及びメッセージコンポーネント４０４を参照し且つ操作するためにＥＣＭＡスクリプトを使用する。ワークフローコンポーネント４０６は、また、外部オブジェクト型をも参照し得て、そのことはコンポーネントアプリケーション３０２に定義されたコンポーネント上で動作が行われることを可能とする。例えば、ｗｃＭｓｇ型は、メッセージコンポーネント４０４によって定義されたメッセージが、必須のフィールドが与えられたかどうかを判定すべく評価され且つサーバ１０６のウェブサービスのような外部システムに送信されることを可能とする。ｗｃＤａｔａ型は、データコンポーネント４００によって定義されるデータ実体の収集のサイズが決定され且つデータ実体が削除されることを可能とする。ｗｃＳｃｒ型は、プレゼンテーションコンポーネント４０２がユーザに対して表示されることを可能とする。同様に、特定のダイアログ外部オブジェクトは、メッセージがユーザインタフェース２０２上（図２を参照されたい）でユーザに対して表示されることを可能とする。
【００３７】
〔インタフェースを伴うコンポーネントアプリケーションプログラム３０２の例〕
図１及び図５を参照すると、さらなるコンポーネントアプリケーションプログラム３０２のさらなる例を図解するブロック図が示されている。コンポーネントアプリケーション３０２の例に含まれるプレゼンテーションコンポーネント４０２は、ログイン画面５００、おすすめ品画面５０２、配達情報画面５０４、注文リスト画面５０８及び注文状態画面５０６を定義する。これらの画面は、通信デバイス１００のユーザインタフェース２０２（図２を参照されたい）上に示される。コンポーネントアプリケーション３０２の例は、配達のためにピザを注文すべく、ユーザが、ピザメニューを見ること、及び過去の注文の詳細を見ることを可能とする。ユーザは、最初にユーザインタフェース２０２上にログイン画面５００が示される。ユーザは、ユーザ名及びパスワードを提供し、そしてそれからログインボタン５０１を押下する。ワークフローコンポーネント４０６は、メッセージ１０５を介してサーバ１０６のウェブサービスによって提供されるユーザプロファイルに対してユーザ名とパスワードをチェックする。もしもユーザが、首尾良くログインされたならば、そのときおすすめ品画面５０２が表示される。おすすめ品画面５０２から、ユーザは、注文を出すべく又は注文の状態を見るべく、メニューアイテムを選択することができ、そのことは、配達情報画面５０４が表示されるかどうか、又は注文リスト画面５０８が表示されるかどうかを決定する。配達情報画面５０４は、ユーザが、注文の詳細を特定することを可能とする。ユーザによって提供される情報は、注文を記述するデータコンポーネント４００を用いて格納される。
【００３８】
ユーザは、それから、注文を送信すべくメニューアイテムを選択し、それは、サーバ１０６上のウェブサービスに対して、注文情報を含む対応するメッセージコンポーネント４０４によって定義されるメッセージ１０５を送信すべくワークフローコンポーネント４０６をトリガする。注文リスト画面５０８は、過去の注文をリストし、且つリストされた注文のうちの１つ以上の詳細を見るべく、ユーザがメニューアイテムを選択することを可能とする。注文を送信し又は注文の詳細を見るべくメニューアイテムを選択した後、デバイス１００によって受信された応答メッセージ１０５に基づき、それに続いて関連性のあるメッセージ４０４、ワークフロー４０６、プレゼンテーション４０２、及びデータ４００コンポーネントによって処理され、注文状態画面５０６が表示される。注文状態画面５０６は、ユーザが出した注文を記述する情報と、選択されたときにおすすめ品画面５０２が表示されるメニューアイテムを含む。メッセージコンポーネント４０４は、メッセージ１０５の入力及び出力に必要とされるデータを中継する。対応するデータコンポーネント４００は、プレゼンテーションコンポーネント４０２によってユーザインタフェース上における後続のプレゼンテーションのためにデバイス１００のメモリモジュール２１０（図２を参照されたい）におけるデータの格納を調整する。ワークフローコンポーネント４０６は、データ４００、プレゼンテーション４０２、及びメッセージ４０４コンポーネントの間でのデータの転送を調整する。
【００３９】
図５において表示されるコンポーネントアプリケーションプログラム３０２の例は、ＸＭＬ及びｍＥスクリプトで次のように表現され、「ｗｃＤａｔａ」としてデータコンポーネント４００を、「ｗｃＭｓｇ」としてメッセージコンポーネント４０４を、「ｗｃＳｃｒ」としてプレゼンテーションコンポーネント４０２を、そして「ｗｃＦｌｏｗ」としてその他のコンポーネント４００、４０２、４０４を処理するためのワークフローコンポーネント４０６を含んでいる。
【００４０】
2006517695.tif 000008
2006517695.tif 000009
2006517695.tif 000010
2006517695.tif 000011
【００４１】
図５は、ネットワーク１０２、１０４越しにデバイス１００への後続の通信のためのワイヤレスコンポーネントアプリケーション３０２を作り上げる方法を説明するフローチャートである。図３も参照すると、該方法は、ユーザ及び注文のようなデータ実体を定義するためのデータコンポーネント４００を作るステップ６００で始まる。方法は、画面、ボタン、メニュー及び画像のようなユーザインタフェースエレメントを定義するためのプレゼンテーションコンポーネント４０２を作るステップ６０２に続く。該方法は、サーバ１０６（図１を参照されたい）上のウェブサービスのような外部システムへ送信されるメッセージフォーマットを定義するためのメッセージコンポーネント４０２を作るステップ６０４に続く。コンポーネント４００、４０２、４０４は、それに限定されるわけではないが、ＸＭＬに基づくもののような構造化定義言語にて表現される。該方法は、アプリケーション３０２の振る舞いを定義するためにデータ４００、プレゼンテーション４０２及びメッセージ４０４コンポーネントをワークフローコンポーネント４０６と共に結合するステップ６０６で、終了する。ワークフローコンポーネント４０６は、上述において説明されている、それに限定されるわけではないが、ＥＣＭＡスクリプトのような一連の命令として書かれている。ワイヤレスコンポーネントアプリケーション３０２を作り上げる方法は、図５に示されるもののようなより少ない又はより多いステップを含んでいても良い。
【００４２】
図１及び図６を参照すると、デバイス１００とウェブサーバ１０６のウェブサービスとの間の対話の動作８００が示されている。ウェブサービスは、デバイス１００がウェブサービスと通信を開始することを要求する要求メッセージ１０５を受信する（８０２）。ウェブサービスは、ウェブサービスとデバイス１００との間の後続の情報交換をサポートするために、デバイス１００に対するコンポーネントアプリケーション３０２の必要なコンポーネント４００、４０２、４０４、４０６（もしあれば）をアップロードする（８０４）。デバイスは、伝送されたコンポーネントアプリケーション３０２を受信し、そしてコンポーネントアプリケーション３０２の実行可能バージョンを生成することによって、ウェブサービスのウェブクライアントとしてデバイスを構成するために、ランタイム環境２０６（図３を参照されたい）によってコンポーネント４００、４０２、４０４、４０６を供給することに進む（８０６）。デバイス１００のユーザは、ウェブサービス動作を受信するための要求メッセージ１０５としてウェブサービスに対して後続の送信８１０のためにデバイス１００のユーザインタフェース２０２（図２を参照されたい）にデータを入力する（８０８）。ウェブサービスは、要求メッセージ１０５を処理し、そしてユーザインタフェース２０２における後続の出力のためのデータを含む適切な応答メッセージ１０５を送信する（８１２）。デバイス１００は、データを含むメッセージ１０５を受信し（８１４）、そしてコンポーネントアプリケーション３０２の実行可能バージョンは、ユーザインタフェース２０２上に適切にデータを出力する。さらに、データ交換（８１６）が、デバイス１００とウェブサービスとの間で上述によって行われ、又は交換が終了し（８１８）、そしてコンポーネントアプリケーション３０２の実行可能バージョンが、メモリ２１０にセーブされるか（図２を参照されたい）、又は所望に応じてランタイム環境２０６から削除される。
【００４３】
図１、図３、及び図７を参照すると、例えば、動作９００は、デバイス１００が、メッセージデータを含む応答メッセージ１０５を受信したとき（９０２）、適切なワークフローコンポーネント４０６が、適切なメッセージコンポーネント４０４に従ってメッセージ１０５のデータコンテンツを解釈する（９０４）。ワークフローコンポーネント４０６は、次にデータコンテンツを処理し（９０６）、そしてメモリモジュール２１０（図２を参照されたい）における後続の格納（９１２）のために対応するデータコンポーネント４００内にデータを挿入する（９１０）。さらに、もし必要ならば、ワークフローコンポーネント４０６も、また、ユーザインタフェース２０２（図２を参照されたい）上の後続の表示（９１４）のために適切なプレゼンテーションコンポーネント４０２内にデータを挿入する（９０８）。
【００４４】
図１、図３、及び図８を参照すると、動作１０００は、ユーザが、ユーザインタフェース２０２（図２を参照されたい）を介してユーザインタフェースエレメント上で行った（１００３）、ボタンの押下又はメニューアイテムの選択のようなアクションについてのデータ入力（１００２）を示している。関連するワークフローコンポーネント４０６は、適切なプレゼンテーションコンポーネント４０４に従って入力データを解釈し（１００４）、そして適切なデータコンポーネント４００によって定義されるデータ実体を作る（１００６）。ワークフローコンポーネント４０６は、次にメモリモジュール２１０（図２を参照されたい）における後続の格納（１０１２）のためにユーザによって提供される入力データをデータコンポーネント４００内に配置する（１０１０）。さらに、ワークフローコンポーネント４０６も、また、メッセージコンポーネント４０４によって定義されるように、メッセージ１０５におけるウェブサービスへのデータ実体としての入力データの後続の送信（１０１４）のために、入力データを適切なメッセージコンポーネント４０４内に挿入する（１００８）。
【００４５】
上述された方法を用いて作られるコンポーネントアプリケーション３０２が、コンポーネントアプリケーション３０２がフルプログラミング言語を使用しないが、しかし、むしろ、比較的単純で且つ学習し易いＸＭＬ及びＥＣＭＡスクリプトのような標準ベースの技術を使用するので、ハードコード化されたアプリケーションよりも作るのに必要な時間より少なくできることが認識される。該方法は、ユーザインタフェース２０２とデータの定義が切り離されるコンポーネントアプリケーション３０２に帰することができる。この切り離しは、コンポーネントアプリケーション３０２におけるいかなるコンポーネント４００、４０２、４０４、４０６の変更も、アプリケーション３０２における他のコンポーネント４００、４０２、４０４、４０６への影響及び実質的な変更を要求することなく可能とし、そしてそれゆえデバイス１００上のコンポーネントアプリケーション３０２の変更及び更新を含む、コンポーネントアプリケーション３０２のメインテナンスを容易にすることができる。
【００４６】
図９は、図１及び図６のデバイス１００のさらなる例である、デュアルモードモバイル通信デバイス７１０のブロック図である。デュアルモードモバイル通信デバイス７１０は、トランシーバ７１１、マイクロプロセッサ７３８、ディスプレイ７２２、フラッシュメモリ７２４、ＲＡＭメモリ７２６、補助入力／出力（Ｉ／Ｏ）デバイス７２８、シリアルポート７３０、キーボード７３２、スピーカ７３４、マイクロフォン７３６、近距離ワイヤレス通信サブシステム７４０、そして他のデバイスサブシステム７４２をも含んでいても良い。トランシーバ７１１は、望ましくは、送信及び受信アンテナ７１６、７１８、受信機７１２、送信機７１４、１つ以上の局部発振器７１３、及びディジタル信号プロセッサ７２０を含んでいる。フラッシュメモリ７２４内には、デュアルモードモバイル通信デバイス７１０は、望ましくは、マイクロプロセッサ７３８（及び／又はＤＳＰ７２０）によって実行され得る複数のソフトウェアモジュール７２４Ａ〜７２４Ｎを含んでおり、音声通信モジュール７２４Ａ、データ通信モジュール７２４Ｂ、及び複数の他の機能を実現するための複数の他の操作モジュール７２４Ｎを含んでいる。
【００４７】
デュアルモードモバイル通信デバイス７１０は、望ましくは、音声及びデータ通信能力を有する双方向通信デバイスである。それゆえ、例えば、デュアルモードモバイル通信デバイス７１０は、アナログ又はディジタルのいずれかのセルラーネットワークのような、音声ネットワーク越しに通信しても良く、そしてデータネットワーク越しに通信しても良い。音声及びデータネットワークは、図９において通信タワー７１９によって描かれている。これらの音声及びデータネットワークは、ベースステーション、ネットワークコントローラ等のように、別々のインフラストラクチャを用いる別々の通信ネットワークであっても良く、又はそれらは、単一のワイヤレスネットワークに一体化されていても良い。
【００４８】
通信サブシステム７１１は、音声及びデータネットワーク７１９と通信するために使用され、そして、受信機７１２、送信機７１４、１つ以上の局部発振器７１３を含み、そしてＤＳＰ７２０をも含んでいても良い。ＤＳＰ７２０は、送信機７１４及び受信機７１２へ及びそれらから信号を送信し及び受信するのに使用され、そして送信機７１４から制御情報を受信し且つ受信機７１２へ制御情報を提供するためにも利用される。音声及びデータ通信が単一の周波数、又はきわめて近接した間隔の周波数のセットで行われる場合は、単一の局部発振器７１３が送信機７１４及び受信機７１２に関連して使用されても良い。あるいは、異なる周波数が音声通信対データ通信に利用される場合は、複数の局部発振器７１３が、音声及びデータネットワーク７１９に対応する複数の周波数を発生すべく使用され得る。図９には、２つのアンテナ７１６、７１８が描かれているが、デュアルモードモバイル通信デバイス７１０は、単一のアンテナ構造と共に使用され得る。音声及びデータ情報の両方を含む情報は、ＤＳＰ７２０とマイクロプロセッサ７３８との間のリンクを介して通信モジュール７１１へ及びそれから通信される。周波数帯域、コンポーネント選択、出力レベル等のような、通信サブシステム７１１の詳細な設計は、デュアルモードモバイル通信デバイス７１０がその中で動作することが意図されている通信ネットワーク７１９に対して独立している。例えば、北アメリカ市場で動作することが意図されたデュアルモードモバイル通信デバイス７１０は、Ｍｏｂｉｔｅｘ（商標）又はＤａｔａＴＡＣ（商標）モバイルデータ通信ネットワークと共に動作すべく設計されており、且つＡＭＰＳ、ＴＤＭＡ、ＣＤＭＡ、ＰＣＳ等のような、種々の音声通信ネットワークのいずれかと共に動作すべく設計されてもいる通信サブシステム７１１を含んでいても良いのに対して、ヨーロッパで使用することが意図されているデバイス７１０は、汎用パケット無線サービス（ＧＰＲＳ）データ通信ネットワーク及びＧＳＭ音声通信ネットワークと共に動作するように構成されていても良い。他のタイプのデータ及び音声ネットワークは、分離され及び一体化されているいずれも、デュアルモードモバイル通信デバイス７１０と共に利用されても良い。
【００４９】
ネットワーク又はネットワーク７１９のタイプに依存して、デュアルモードモバイル通信デバイス７１０のためのアクセス要求も変動して良い。例えば、Ｍｏｂｉｔｅｘ及びＤａｔａＴＡＣデータネットワークにおいては、モバイルデバイスは、各デバイスに関連付けられた固有の識別番号を用いてネットワークに登録される。ＧＰＲＳデータネットワークにおいては、しかしながら、ネットワークアクセスが、加入者又はモバイルデバイスのユーザに関連付けられている。ＧＰＲＳデバイスは、典型的には、ＧＰＲＳネットワーク上でデュアルモードモバイル通信デバイスを動作するために要求される加入者識別モジュール（「ＳＩＭ」）を必要とする。（もしもあれば）局所又は非ネットワーク通信機能は、ＳＩＭなしで動作可能であるかもしれないが、しかしデュアルモードモバイル通信デバイスは、９１１緊急呼び出しのような、法律的に必要とされるいずれかの動作以外は、データネットワーク７１９越しでの通信を含むいずれの機能を遂行することもできないであろう。
【００５０】
必要とされるいずれかのネットワーク登録又はアクティベーション手続きも完了した後は、デュアルモードモバイル通信デバイス７１０は、ネットワーク７１９（又はネットワーク）越しで音声及びデータ信号の双方を含む通信信号を送信及び受信して良い。通信ネットワーク７１９からアンテナ７１６によって受信された信号は、信号増幅、周波数低下変換、フィルタリング、チャンネル選択等を提供する、受信機７１２へ所定の経路で送られ、そしてアナログからディジタルへの変換が提供されてもよい。受信された信号のアナログからディジタルへの変換は、ＤＳＰ７２０を用いて行われるディジタル復調及びデコードのような、より複雑な通信機能を可能とする。同様の方法において、ネットワーク７１９に送信されるべき信号は、例えばＤＳＰ７２０によって、変調及びコード化を含んで、処理され、そしてそれからディジタルからアナログへの変換、高周波数変換、フィルタリング、増幅、及びアンテナ７１８を介して通信ネットワーク７１９（又はネットワーク）への送信のために送信機７１４に供給される。音声及びデータの両方の通信のための単一のトランシーバ７１１が図９に示されるが、デュアルモードモバイル通信デバイス７１０は、音声信号を送信及び受信するための第１のトランシーバとデータ信号を送信及び受信するための第２のトランシーバとの２つの個別のトランシーバを含んでいても良い。
【００５１】
通信信号の処理に加えて、ＤＳＰ７２０は、受信機及び送信機の制御も提供する。例えば、受信機７１２及び送信機７１４における通信信号に印加されるゲインレベルは、ＤＳＰ７２０に提供された自動ゲイン制御アルゴリズムを介して適応的に制御されても良い。他のトランシーバ制御アルゴリズムは、より洗練されたトランシーバ７１１の制御を提供するために、ＤＳＰ７２０に提供されていても良い。
【００５２】
マイクロプロセッサ７３８は、望ましくは、デュアルモードモバイル通信デバイス７１０の全体の動作を管理し且つ制御する。多くのタイプのマイクロプロセッサ又はマイクロコントローラが、ここに使用されても良く、あるいは、その代わりに、単一のＤＳＰ７２０がマイクロプロセッサ７３８の機能を遂行すべく使用されても良い。少なくともデータ及び音声通信を含む、低レベル通信機能は、トランシーバ７１１内のＤＳＰ７２０を介して行われる。他の、音声通信アプリケーション７２４Ａ、及びデータ通信アプリケーション７２４Ｂのような、高レベル通信アプリケーションは、マイクロプロセッサ７３８による実行のためにフラッシュメモリ７２４内に格納されていても良い。例えば、音声通信モジュール７２４Ａは、デュアルモードモバイル通信デバイス７１０とネットワーク７１９経由の複数の他の音声デバイスとの間で音声呼び出しを送信及び受信すべく動作可能な高レベルユーザインタフェースを提供しても良い。同様に、データ通信モジュール７２４Ｂは、デュアルモードモバイル通信デバイス７１０とネットワーク７１９経由の複数の他のデータデバイスとの間で、ｅ−メールメッセージ、ファイル、オーガナイザ情報、ショートテキストメッセージ等のような、データを送信及び受信するために動作可能な高レベルユーザインタフェースを提供しても良い。デュアルモードモバイル通信デバイス７１０においては、上述されたとおり、コンポーネントフレームワーク２０６が、ソフトウェアモジュール又はアプリケーションとして実施されていても良く、あるいはソフトウェアモジュール７２４Ａ−７２４Ｎのうちの１つに組み込まれていても良い。
【００５３】
マイクロプロセッサ７３８も、ディスプレイ７２２、フラッシュメモリ７２４、ランダムアクセスメモリ（ＲＡＭ）７２６、補助入力／出力（Ｉ／Ｏ）サブシステム７２８、シリアルポート７３０、キーボード７３２、スピーカ７３４、マイクロフォン７３６、近距離通信サブシステム７４０及び７４２として概して設計されたいずれかの他のデュアルモードモバイル通信デバイスサブシステムのような他のデュアルモードモバイル通信デバイスサブシステムと対話するようにしても良い。
【００５４】
図９に示されたサブシステムのいくつかは、通信関連機能を実行するのに対して、他のサブシステムは、常駐又はオンデバイス機能を提供しても良い。特に、キーボード７３２及びディスプレイ７２２のようないくつかのサブシステムは、データ通信ネットワーク越しで送信するためのテキストメッセージの入力、及び計算機又はタスクリストあるいは他のＰＤＡタイプの機能のようなデバイス常駐機能のような、通信関連機能双方のために使用されても良い。
【００５５】
マイクロプロセッサ７３８によって使用されるオペレーティングシステムソフトウェアは、望ましくは、フラッシュメモリ７２４のような持続性格納部内に格納される。デュアルモードモバイル通信デバイス７１０の低レベル機能の全てを制御するオペレーティングシステムに加えて、フラッシュメモリ７２４は、音声通信モジュール７２４Ａ、データ通信モジュール７２４Ｂ、オーガナイザモジュール（図示せず）、又はいずれかの他のタイプのソフトウェアモジュール７２４Ｎのような、複数の高レベルソフトウェアアプリケーションプログラム又はモジュールを含んでいても良い。フラッシュメモリ７２４は、データを格納するためのファイルシステムを含んでいても良い。これらのモジュールは、マイクロプロセッサ７３８によって実行され且つデュアルモードモバイル通信デバイスのユーザとモバイルデータとの間に高レベルインタフェースを提供する。このインタフェースは、典型的には、ディスプレイ７２２を介して提供されるグラフィカルコンポーネント、及び補助Ｉ／Ｏ７２８、キーボード７３２、スピーカ７３４、及びマイクロフォン７３６を介して提供される入力／出力コンポーネントを含んでいる。オペレーティングシステム、特定のデュアルモードモバイル通信デバイスソフトウェアアプリケーション又はモジュールあるいはその一部は、より高速な操作のためにＲＡＭ７２６のような、揮発性格納部に一時的にロードされても良い。さらにまた、受信された通信信号も、それらを持続性格納部７２４に配置されたファイルシステムに持続的に書き込む前に、ＲＡＭ７２６に一時的に格納されるようにしても良い。
【００５６】
デュアルモードモバイル通信デバイス７１０にロードされても良い例示的アプリケーションモジュール７２４Ｎは、カレンダイベント、アポイントメント、タスクアイテムのような、ＰＤＡ機能を提供する個人情報マネージャ（ＰＩＭ）アプリケーションである。このモジュール７２４Ｎは、電話呼び出し、音声メール等を管理するための音声通信モジュール７２４Ａと対話するようにしても良く、そしてｅ−メール通信及び他のデータ伝送を管理するためのデータ通信モジュールと対話するようにしても良い。また、音声通信モジュール７２４Ａ及びデータ通信モジュール７２４Ｂの全ての機能が、ＰＩＭモジュールに一体化されていても良い。
【００５７】
フラッシュメモリ７２４は、望ましくは、デュアルモードモバイル通信デバイス７１０上のＰＩＭデータアイテムの格納を容易にすべくファイルシステムを提供する。ＰＩＭアプリケーションは、望ましくは、それ自体によってか、又は音声及びデータ通信モジュール７２４Ａ、７２４Ｂと共に、ワイヤレスネットワーク７１９を経由して、データアイテムを送信し且つ受信する能力を含んでいる。ＰＩＭデータアイテムは、望ましくは、格納され又はホストコンピュータシステムと関連するデータアイテムの対応するセットと、ワイヤレスネットワーク７１９を経由して、シームレスに一体化され、同期化され且つ更新され、それによって特定のユーザに関するデータアイテムのためのミラー化されたシステムを作り上げる。
【００５８】
デュアルモードモバイル通信デバイス７１０は、デュアルモードモバイル通信デバイス７１０を、デュアルモードモバイル通信デバイス７１０のシリアルポート７３０をホストシステムのシリアルポートに結合するインタフェースクレードルに配置することによってホストシステムと手動的に同期されても良い。シリアルポート７３０は、ユーザが外部デバイス又はソフトウェアアプリケーションを介してユーザに好み（preference）を設定することを可能とし、又はインストールのために他のアプリケーションモジュール７２４Ｎをダウンロードするのに使用されても良い。この有線ダウンロード経路は、暗号化キーをデュアルモードモバイル通信デバイス７１０にロードするために使用されても良く、それはワイヤレスネットワーク７１９を経由して暗号化情報を交換するよりも安全な方法である。
【００５９】
付加的なアプリケーションモジュール７２４Ｎは、ネットワーク７１９を介して、補助Ｉ／Ｏサブシステム７２８を介して、シリアルポート７３０を介して、近距離通信サブシステム７４０を介して、又は何らかの他の適切なサブシステム７４２を介して、デュアルモードモバイル通信デバイス７１０にロードされても良く、そしてユーザによってフラッシュメモリ７２４又はＲＡＭ７２６にインストールされても良い。アプリケーションのインストールにおけるそのような柔軟性は、デュアルモードモバイル通信デバイス７１０の機能性を増大させ、そして拡張されたオンデバイス機能、通信関連機能又は両方を提供しても良い。例えば、安全な通信アプリケーションは、電子商取引機能及び他のそのような財務的取引がデュアルモードモバイル通信デバイス７１０を用いて行われることを可能としても良い。
【００６０】
デュアルモードモバイル通信デバイス７１０がデータ通信モードで動作しているとき、テキストメッセージ又はウェブページのダウンロードのような受信信号が、トランシーバ７１１によって処理され且つマイクロプロセッサ７３８に提供され、望ましくは受信信号をディスプレイ７２２、又はその代わりに補助Ｉ／Ｏデバイス７２８に出力するためにさらに処理するであろう。デュアルモードモバイル通信デバイス７１０のユーザは、ｅ−メールメッセージのようなデータアイテムを、望ましくはＱＷＥＲＴＹスタイルでレイアウトされた完全な英数字キーボードであるキーボード７３２を用いて作成しても良いが、既知のＤＶＯＲＡＫスタイルのような他のスタイルの完全な英数字キーボードも使用され得る。デュアルモードモバイル通信デバイス７１０へのユーザ入力は、サムホイール入力デバイス、タッチパッド、種々のスイッチ、ロッカー入力スイッチ等を含んでも良い複数の補助Ｉ／Ｏデバイス７２８によってさらに拡張される。ユーザによって入力される構成されたデータアイテムは、次にトランシーバ７１１を経由して通信ネットワーク７１９越しで送信されても良い。
【００６１】
デュアルモードモバイル通信デバイス７１０が、音声通信モードで動作しているとき、デュアルモードモバイル通信デバイス７１０の全体の動作は、受信信号が望ましくはスピーカ７３４に出力され且つ送信するための音声信号はマイクロフォン７３６で生成されることを除いて、データモードと実質的に同様である。音声メッセージ記録サブシステムのような代替的な音声又はオーディオＩ／Ｏサブシステムも、デュアルモードモバイル通信デバイス７１０上に提供されても良い。音声又はオーディオ出力は、望ましくはスピーカ７３４を介して本来は達成されるが、ディスプレイ７２２も、呼び出し側の身元の表示、音声呼び出しの期間、又は他の音声呼び出しに関連する情報を提供するために使用されても良い。例えば、マイクロプロセッサ７３８は、音声通信モジュール及びオペレーティングシステムソフトウェアと結合して、到来する音声呼び出しの発信者識別情報を検出し、且つそれをディスプレイ７２２に表示するようにしても良い。
【００６２】
近距離通信サブシステム７４０も、デュアルモードモバイル通信デバイス７１０に含まれる。例えば、近距離通信サブシステム７４０は、赤外線デバイス及び関連する回路及びコンポーネント、又は同様に有効なシステム及びデバイスとの通信を提供するためのＢｌｕｅｔｏｏｔｈ（商標）モジュール又は８０２．１１モジュールのような近距離ワイヤレス通信モジュールを含んでいても良い。当分野の技術を有する者は、「Ｂｌｕｅｔｏｏｔｈ」及び８０２．１１が、ワイヤレスパーソナルエリアネットワーク及びワイヤレスＬＡＮにそれぞれ関連して電気電子学会（ＩＥＥＥ）から入手可能な仕様書のセットを言及することを認めるであろう。
【００６３】
本発明における開示は、１つ以上の例示的システム及び方法を説明してきたが、多くの変形が、当分野の知識を有する者には明白であり、そしてそのような変形は、本件出願の範囲内である。例えば、ＸＭＬ及びＥＣＭＡスクリプトのサブセットが、例において提供されたが、他の言語及び言語異形がコンポーネントアプリケーションを定義するために使用されても良い。例えば、提案されているＥ４Ｘ標準スクリプト言語は、ＥＣＭＡスクリプトの代わりに使用されても良い。さらに上述されたＸＭＬ以外の他の構造化定義言語、それに限定されるわけではないが、例えば、資源記述フレームワーク（ＲＤＦ）、ＸＳＬＴ、及びＸＨＴＭＬを含んでも良い。加えて、コンポーネントアプリケーションは、モバイル通信デバイス上で実行されるアプリケーションとして説明されているが、コンポーネントアプリケーションは、ワイヤレス構成されたパーソナルコンピュータのような他のコンピュータシステム上で実行されても良い。
【図面の簡単な説明】
【００６４】
【図１】通信システムのブロック図である。
【図２】図１のモバイル通信デバイスのブロック図である。
【図３】図２のコンポーネントアプリケーションプログラムのブロック図である。
【図４】図３のコンポーネントアプリケーションの例を図解するブロック図である。
【図５】図３のワイヤレスコンポーネントアプリケーションを作り上げる方法を図解するフローチャートである。
【図６】図１のデバイスとウェブサービスとの間で通信するための方法のフローチャートである。
【図７】図３のコンポーネントアプリケーションプログラムを実施する方法の例を示している。
【図８】図３のコンポーネントアプリケーションプログラムを実施する方法のさらなる例を示している。
【図９】図２のデバイスのさらなる例のブロック図である。
【図１】
2006517695.tif 000012
【図２】
2006517695.tif 000013
【図３】
2006517695.tif 000014
【図４】
2006517695.tif 000015
【図５】
2006517695.tif 000016
【図６】
2006517695.tif 000017
【図７】
2006517695.tif 000018
【図８】
2006517695.tif 000019
【図９】
2006517695.tif 000020
【国際調査報告】
2006517695.tif 000021
2006517695.tif 000022
2006517695.tif 000023