(57)【要約】コンポーネントアプリケーションを構築するシステム及び方法が提供される。コンポーネントアプリケーションは、ネットワーク及びインターネットを介してスキーマベースのサービスと通信する端末装置上で実行される。コンポーネントアプリケーションは、ＸＭＬコードなどの構造化定義言語で作成されるデータコンポーネント、プレゼンテーションコンポーネント、及びメッセージコンポーネントを備える。コンポーネントアプリケーションは、ＥＣＭＡＳｃｒｉｐｔの部分集合でのように一連の命令として書き込むことができ、該ＸＭＬコードに埋め込まれるワークフローコンポーネントをさらに備える。
2006512694.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上で端末装置によってスキーマにより定義されるサービスと対話する方法であって、
前記サービスと前記装置の間で通信を確立するための要求ネットワークメッセージを受信するステップと、
前記要求ネットワークメッセージに応えて複数のコンポーネントを含むコンポーネントアプリケーションプログラムを送信するステップであって、前記コンポーネントの第１の集合は構造化定義言語により表される記述子を有し、前記コンポーネントの第２の集合は一連の命令として表現され、前記コンポーネントは、前記サービスのクライアントとして前記デバイスを構成する前記コンポーネントアプリケーションプログラムの実行可能バージョンを作成するために前記デバイスの実行時環境によるプロビジョニングのために構成されるステップと、
を備え、
前記実行可能バージョンの実行が、前記サービスと前記デバイスの間の前記ネットワーク上での以後の情報の交換に備える方法。
【請求項２】
前記実行時環境が、プロセッサ及び前記デバイスのインフラストラクチャの関連付けられるオペレーティングシステムの機能性に、前記実行可能バージョンのためのインタフェースを提供する、請求項１に記載の方法。
【請求項３】
前記実行時環境が、前記サービスにネットワークメッセージを送信するために通信を提供することと、前記サービスと関連付けられるネットワークメッセージのためのデータコンテンツを供給するために前記デバイスのユーザにより入力されるデータを提供することと、前記サービスに関連付けられるネットワークメッセージに応えてデータプレゼンテーションを提供することと、前記デバイスのメモリにローカルクライアントデータを維持するためにデータ記憶サービスを提供することと、実行可能バージョンの前記コンポーネントの動作を調整するためにプログラミング言語のための実行環境を提供することとを備えるグループから選択される機能を実現するために構成される、請求項２に記載の方法。
【請求項４】
前記実行時環境が前記オペレーティングシステムの一部として構成される、請求項２に記載の方法。
【請求項５】
前記サービスのために定義されるメタデータからクライアントアプリケーションメッセージ及び関連データのための前記コンポーネント記述子を動的に生成するステップをさらに備える、請求項２に記載の方法。
【請求項６】
前記サービスが、ウェブサービス、データベースサービス、及びＩＤＬベースのＣＯＲＢＡサービスを備えるグループから選択されるジェネリックスキーマ定義サービスである、請求項５に記載の方法。
【請求項７】
コンポーネント定義の第１の集合にデータコンポーネントを含めるステップをさらに備え、前記データコンポーネントがプログラム及び前記情報のフォーマットによって使用されるデータエンティティを記述するために情報を定義するである、請求項２に記載の方法。
【請求項８】
コンポーネント定義の前記第１の集合にメッセージコンポーネントを含めるステップをさらに備え、前記メッセージコンポーネントが前記ネットワーク上で前記サービスと通信するために前記プログラムによって使用されるメッセージのフォーマットを定義する、請求項７に記載の方法。
【請求項９】
前記データコンポーネント定義及びメッセージコンポーネント定義が、種々の異なる実行時環境に対処するためにプラットホーム中立である、請求項８に記載の方法。
【請求項１０】
コンポーネントの前記第１の集合にプレゼンテーションコンポーネントを含めるステップをさらに備え、前記プレゼンテーションコンポーネントが、前記デバイスのユーザインタフェースで提示されるように前記コンポーネントアプリケーションプログラムの外観を定義する、請求項８に記載の方法。
【請求項１１】
所定の実行時環境に特定のプラットホームとして前記プレゼンテーションコンポーネントを提供するために前記要求ネットワークメッセージ内で前記デバイスのクライアントタイプを指定するステップをさらに備える、請求項１０に記載の方法。
【請求項１２】
コンポーネントの前記第２の集合にワークフローコンポーネントを含めるステップをさらに備え、前記ワークフローコンポーネントが、コンポーネントの前記第１の集合の１つによって指定されるようにアクションが実行されなければならないときに発生する処理を定義する、請求項１０に記載の方法。
【請求項１３】
テンプレートベースの実行モデルによりネイティブコードで前記実行可能バージョンを実行するステップをさらに備え、前記モデルが、前記コンポーネントの前記メタデータ記述子とともに投入するために構成される多くの所定のテンプレートを利用し、前記所定のテンプレートが、データコンポーネント、メッセージコンポーネント及びプレゼンテーションコンポーネントを備えるグループから選択される前記複数のコンポーネントのために提供される、請求項２に記載の方法。
【請求項１４】
前記所定のテンプレートを、前記メタデータ記述子と関連付けられるメタデータ定義パラメータとともに投入し、前記ネイティブコードで前記実行可能バージョンを構築するために前記投入されたテンプレートを使用するステップをさらに備える、請求項１３に記載の方法。
【請求項１５】
メタデータベースの実行モデルにより前記実行可能バージョンを実行するステップをさらに備え、前記モデルが実行中の解析のために前記構造化定義言語で前記メタデータ定義を保つために構成される、請求項２に記載の方法。
【請求項１６】
メタデータベースの実行モデルにより前記実行可能バージョンを実行するステップをさらに備え、前記モデルが実行中に構造化定義言語ノードのネイティブ表現を使用するために構成される、請求項２に記載の方法。
【請求項１７】
通信装置のユーザのユーザインタフェース要素との対話により開始されるネットワークメッセージを受信するステップとをさらに備え、前記ネットワークメッセージが前記ユーザインタフェース要素に対応する前記ワークフローコンポーネントにより作成されるデータエンティティを含む、請求項１２に記載の方法。
【請求項１８】
前記ネットワークメッセージが、前記構造化定義言語に基づいた前記データエンティティを含むために前記メッセージコンポーネントに従って構成される、請求項１７に記載の方法。
【請求項１９】
前記データエンティティに関係するメッセージデータを含む応答ネットワークメッセージを送信するステップをさらに備え、前記応答ネットワークメッセージが前記通信装置のユーザインタフェースでの前記メッセージデータの以後のプレゼンテーションのために構成され、前記メッセージデータが前記構造化定義言語に基づいてフォーマットされる、請求項１８に記載の方法。
【請求項２０】
前記デバイスが、パーソナルコンピュータ、無線装置、ＰＤＡ、セルフサービスキオスク及びデスクトップ端末を備えるグループから選択される、請求項１９に記載の方法。
【請求項２１】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを使用してネットワーク上でスキーマベースのサービスと対話するために構成される端末装置であって、
プロセッサと、前記実行可能バージョンを実行するための関連メモリとを含む前記デバイスを操作するためのデバイスインフラストラクチャと、
前記実行可能バージョンとの通信のために構成される入力装置及び出力装置を有する、前記デバイスインフラストラクチャに結合されるユーザインタフェースと、
前記デバイスインフラストラクチャに結合され、前記ネットワークとの通信のために構成されるネットワーク接続インタフェースと、
前記サービスのクライアントとして前記デバイスを構成するための前記実行可能バージョンの実行を調整するための実行時環境であって、構造化定義言語で表現される記述子を有する前記コンポーネントの第１の集合と、一連の命令として表現される前記コンポーネントの第２の集合との対話のために構成される前記実行時環境と、
を備え、
前記実行可能バージョンの前記実行が、前記サービスと前記デバイス間のネットワーク上での以後の情報の交換に備える端末装置。
【請求項２２】
前記実行時環境が、プロセッサ及び前記デバイスのインフラストラクチャの関連するオペレーティングシステムの機能性に前記実行可能バージョンのためのインタフェースを提供する、請求項２１に記載の端末装置。
【請求項２３】
前記実行時環境が、前記サービスにネットワークメッセージを送信するために通信を提供することと、前記サービスに関連するネットワークメッセージのためのデータコンテンツを供給するために前記デバイスのユーザにより入力されるデータを提供することと、前記サービスと関連付けられるネットワークメッセージに応えてデータプレゼンテーションを提供することと、前記デバイスのメモリにローカルクライアントデータを維持するためにデータ記憶サービスを提供することと、前記実行可能バージョン内で前記コンポーネントの動作を調整するためにプログラミング言語のための実行環境を提供することとを備えるグループから選択される機能を実現するために構成される、請求項２２に記載の端末装置。
【請求項２４】
前記実行時環境が前記オペレーティングシステムの一部として構成される、請求項２２に記載の端末装置。
【請求項２５】
前記コンポーネント記述子が、前記サービスのために定義されるメタデータからクライアントアプリケーションメッセージ及び関連データのために動的に生成される、請求項２２に記載の端末装置。
【請求項２６】
前記サービスが、ウェブサービス、データベースサービス、及びＩＤＬベースのＣＯＲＢＡサービスを備える前記グループから選択されるジェネリックスキーマ定義サービスである、請求項２５に記載の端末装置。
【請求項２７】
コンポーネント定義の前記第１の集合にデータコンポーネントをさらに備え、前記データコンポーネントが前記プログラムにより使用されるデータエンティティ及び前記情報のためのフォーマットを記述するために情報を定義する、請求項２２に記載の端末装置。
【請求項２８】
コンポーネント定義の前記第１の集合にメッセージコンポーネントをさらに備え、前記メッセージコンポーネントが前記ネットワーク上で前記サービスと通信するために前記プログラムによって使用されるメッセージのフォーマットを定義する、請求項２７に記載の端末装置。
【請求項２９】
前記データコンポーネント定義及びメッセージコンポーネント定義が、種々の異なる実行時環境に対処するためにプラットホーム中立である、請求項２８に記載の端末装置。
【請求項３０】
コンポーネントの前記第１の集合にプレゼンテーションコンポーネントをさらに備え、前記プレゼンテーションコンポーネントが前記デバイスのユーザインタフェース上に提示されるように前記コンポーネントアプリケーションプログラムの外観を定義する、請求項２８に記載の端末装置。
【請求項３１】
前記要求ネットワークメッセージに指定される前記デバイスのクライアントタイプが、所定の実行時環境に特定のプラットホームとして前記プレゼンテーションコンポーネントに備える、請求項３０に記載の端末装置。
【請求項３２】
コンポーネントの前記第２の集合にワークフローコンポーネントをさらに備え、前記ワークフローコンポーネントが、コンポーネントの前記第１の集合の１つにより指定されるようにアクションが実行されなければならないときに発生する処理を定義する、請求項３０に記載の端末装置。
【請求項３３】
ネイティブコードで前記実行可能バージョンを実行するためのテンプレートベースの実行モデルをさらに備え、前記モデルが前記コンポーネントの前記メタデータ記述子とともに投入するために構成される多くの所定のテンプレートを利用し、前記所定のテンプレートが、データコンポーネント、メッセージコンポーネント、及びプレゼンテーションコンポーネントを備えるグループから選択される前記複数のコンポーネントのために提供される、請求項２２に記載の端末装置。
【請求項３４】
前記所定のテンプレートが、前記ネイティブコードで前記実行可能バージョンを構築するための前記投入されたテンプレートを使用して前記メタデータ記述子と関連付けられるメタデータ定義パラメータと投入される、請求項３３に記載の端末装置。
【請求項３５】
前記実行可能バージョンを実行するためのメタデータベースの実行モデルをさらに備え、前記モデルが実行中の解析のために前記構造化定義言語で前記メタデータ定義を保つために構成される、請求項２２に記載の端末装置。
【請求項３６】
前記実行可能バージョンを実行するためのメタデータベースの実行モデルをさらに備え、前記モデルが実行中に構造化定義言語のネイティブ表現を使用するために構成される、請求項２２に記載の端末装置。
【請求項３７】
前記実行可能バージョンが、前記デバイスのユーザのユーザインタフェース要素との対話によって開始されるネットワークメッセージを送信するために構成され、前記ネットワークメッセージが前記ユーザインタフェース要素に対応する前記ワークフローコンポーネントにより作成されるデータエンティティを含む、請求項３２に記載の端末装置。
【請求項３８】
前記ネットワークメッセージが、前記構造化定義言語に基づいて前記データエンティティを含むための前記メッセージコンポーネントに従って構成される、請求項３７に記載の端末装置。
【請求項３９】
前記実行可能バージョンが前記データエンティティに関するメッセージデータを含む応答ネットワークメッセージを受信するために構成され、前記応答ネットワークメッセージが、前記デバイスのユーザインタフェースで前記メッセージデータの以後のプレゼンテーションのために構成され、前記メッセージデータが前記構造化定義言語に基づいてフォーマットされる、請求項３８に記載の端末装置。
【請求項４０】
前記デバイスが、パーソナルコンピュータ、無線装置、ＰＤＡ、セルフサービスキオスク、及びデスクトップ端末を備えるグループから選択される、請求項３９に記載の端末装置。
【請求項４１】
ネットワーク上で、複数のコンポーネントを含むコンポーネントアプリケーションの実行可能バージョンを使用してスキーマベースのサービスと対話するための端末装置を構成するためのコンピュータプログラム製品であって、
コンピュータ可読媒体と、
前記サービスのクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するための、前記コンピュータ可読媒体に記憶される実行時環境モジュールであって、前記実行時環境が構造化定義言語で表される記述子を有するコンポーネントの第１の集合と、一連の命令として表現される前記コンポーネントの第２の集合との対話のために構成され、
前記実行可能バージョンの前記実行が前記サービスと前記デバイスの間での前記ネットワーク上での以後の情報の交換に備えるコンピュータプログラム製品。
【請求項４２】
ネットワーク上で端末装置と対話するためのスキーマベースのサービスを提供するためのサーバであって、
前記サービスと前記デバイスの間で通信を確立するために要求ネットワークメッセージを受信するためのネットワークインタフェースと、
前記要求ネットワークメッセージに応えて送信するために前記ネットワークインタフェースに結合されるコンポーネントアプリケーションプログラムであって、複数のコンポーネント、つまり構造化定義言語で表される記述子を有する前記コンポーネントの第１の集合と一連の命令として表される前記コンポーネントの第２の集合とを含み、前記コンポーネントが、前記サービスのクライアントとして前記デバイスを構成する前記コンポーネントアプリケーションプログラムの実行可能バージョンを作成するために前記デバイスの実行時環境によるプロビジョニングのために構成されるコンポーネントアプリケーションプログラムと、
を備え、
前記実行可能バージョンの実行が前記サービスと前記デバイスの間の前記ネットワーク上で以後の情報の交換に備える、
前記サーバ。
【請求項４３】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを使用してスキーマベースのサービスとネットワーク上で対話するために構成される端末装置であって、
前記実行可能バージョンを実行するために前記デバイスを操作するためのインフラストラクチャ手段と、
前記実行可能バージョンとの通信のために構成される、前記インフラストラクチャ手段に結合されるユーザインタフェース手段と、
前記デバイスインフラストラクチャに結合され、前記ネットワークと通信するために構成されるネットワークインタフェースと、
前記サービスのクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するための実行時手段であって、構造化定義言語で表される記述子を有する前記コンポーネントの第１の集合と、一連の命令として表される前記コンポーネントの第２の集合との対話のために構成される実行時手段と、
を備え、
前記実行可能バージョンの前記実行が、前記サービスと前記デバイスの間の前記ネットワークでの以後の情報の交換に備える、
前記端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概してネットワーク上でのデバイスへのサービスの通信に関する。
【背景技術】
【０００２】
携帯電話、無線通信機能付きＰＤＡ、パーソナルコンピュータ、セルフサービスキオスク及び双方向ページャなど、今日使用されている端末装置の数は絶えず増加している。これらのデバイス上で実行するソフトウェアアプリケーションはその実用性を増している。例えば、携帯電話は一連の都市の天気を検索するアプリケーションを含むことがあり、あるいはＰＤＡはユーザが食品を求めて買い物できるようにするアプリケーションを含むことがある。これらのソフトウェアアプリケーションは、タイムリ且つ役に立つサービスをユーザに提供するためにネットワークへの接続性をうまく利用している。しかしながら、いくつかのデバイスのリソースは制限されているため、及びデバイスに大量のデータを送達する複雑さのために、種々のデバイスのためのソフトウェアアプリケーションを開発することは、相変わらず困難で時間を要する作業である。
【０００３】
現在、デバイスはインターネットベースのブラウザ及び／またはネイティブアプリケーションを通してウェブサービスと通信するように構成されている。ブラウザは種々の異なるデバイス用のクロスプラットホームに基づいて動作するように適応可能であるという優位点を有しているが、画面に含まれるデータの持続性を妨げる、ウェブサービスからページ（ＨＴＭＬでの画面定義）を要求するという不利な点を有する。ブラウザの追加の不利な点とは、画面が実行時にレンダリングされ、リソースを集約する場合があるという点である。ネイティブアプリケーションはあるタイプのデバイスプラットホームのために特に開発され、それによりそれぞれの実行時環境にとって相対的に最適化されたアプリケーションプログラムを提供するという優位点を有する。しかしながら、ネイティブアプリケーションは、規模が相対的に大きく、それによりデバイスのメモリリソースに負担を課すだけではなく、プラットホーム独立型ではなく、それにより同じアプリケーションの複数のバージョンの開発を必要とするという不利な点を有する。さらに、アプリケーション開発者はこれらのハードコードされたネイティブアプリケーションを構築するためにはＪａｖａ（登録商標）及びＣ＋＋などのプログラミング言語での経験を必要とする。デバイスリソースの消費を削減するだけではなく、多岐に渡る実行時環境も有するクライアントデバイスで実行できるアプリケーションプログラムに対するニーズがある。
【０００４】
ここに開示されるシステム及び方法は、前記に提示された不利な点の少なくともいくつかを回避するまたは緩和するためにコンポーネントベースのアプリケーション環境を提供する。
【発明の開示】
【０００５】
現在のアプリケーションプログラムは、多岐に渡る実行時環境を有するクライアントで実行されるように適応可能ではなく、デバイスリソースを望ましくなく消費しすぎることがある。ブラウザはウェブサービスからのページ（ＨＴＭＬの画面定義）を要求し、画面に含まれるデータの持続性を妨げるという不利な点を有するアプリケーションプログラムである。ブラウザのさらに不利な点とは、画面が実行時にレンダリングされ、それがリソースを集約する場合があるという点である。ネイティブアプリケーションは、規模が相対的に大きく、それによりデバイスのメモリリソースに負担を課すだけではなく、プラットホームが独立型ではなく、それにより同じアプリケーションの複数のバージョンの開発を必要とするという不利な点を有する現在のアプリケーションプログラムの追加例である。現在のアプリケーションプログラムとは違って、コンポーネントアプリケーションを通してプラットホーム中立ジェネリックスキーマ定義サービスを構築し、実行するシステムが提供される。該システムは、インターネットなどのネットワークを介してネットワークサービスと通信するデバイスで実行するコンポーネントアプリケーションを備える。コンポーネントアプリケーションは、ＸＭＬコードなどの構造化定義言語で作成される１つまたは複数のデータコンポーネント、プレゼンテーションコンポーネント、及び／またはメッセージコンポーネントを備える。コンポーネントアプリケーションは、ＥＣＭＡＳｃｒｉｐｔの部分集合で書き込まれるような一連の命令を含み、特定の実施例ではＸＭＬコードに埋め込むことができるワークフローコンポーネントをさらに備えることがある。コンポーネントアプリケーションを構築する方法も提供される。該方法は、データコンポーネントを作成するステップと、プレゼンテーションコンポーネントを作成するステップと、メッセージコンポーネントを作成するステップとを備える。データコンポーネント、プレゼンテーションコンポーネント及びメッセージコンポーネントは、ＸＭＬなどの構造化定義言語で書き込むことができる。該方法は、データコンポーネント、プレゼンテーションコンポーネント及びメッセージコンポーネントを、ＥＣＭＡＳｃｒｉｐｔまたはＥＣＭＡＳｃｒｉｐｔの部分集合などのスクリプト言語で作成されるワークフローコンポーネントと結び付けることもさらに備える。
【０００６】
端末装置によってネットワーク上でスキーマにより定義されるサービスと対話する方法がここに提供される。該方法は、サービスとデバイス間で通信を確立するための要求ネットワークメッセージを受信するステップと、複数のコンポーネントを含むコンポーネントアプリケーションプログラムを該要求ネットワークメッセージに応えて送信するステップとを備え、コンポーネントの第1の集合は構造化定義言語で表現される記述子を有し、コンポーネントの第２の集合は一連の命令として表現され、コンポーネントはサービスのクライアントとしてデバイスを構成するコンポーネントアプリケーションプログラムの実行可能なバージョンを作成するためにデバイスの実行時環境によるプロビジョニングのために構成され、実行可能なバージョンの実行はサービスとデバイス間のネットワーク上での以後の情報の交換に備える。
【０００７】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能なバージョンを使用してスキーマベースのサービスと対話するために構成される端末装置がさらに開示される。デバイスは、プロセッサと、実行可能なバージョンを実行するための随伴するメモリとを含むデバイスを操作するためのデバイスインフラストラクチャと、実行可能なバージョンとの通信のために構成される、入力装置と出力装置を有する該デバイスインフラストラクチャに結合されるユーザインタフェースと、デバイスインフラストラクチャに結合され、ネットワークと通信するために構成されるネットワーク接続インタフェースと、サービスのクライアントとしてデバイスを構成するための実行可能バージョンの実行を調整するための実行時環境であって、構造化定義言語で表現される記述子を有するコンポーネントの第１の集合と、一連の命令として表現されるコンポーネントの第２の集合と対話するために構成される実行時環境とを備え、実行可能バージョンの実行は、サービスとデバイス間のネットワーク上で以後の情報の交換に備える。
【０００８】
複数のコンポーネントを含むコンポーネントアプリケーションの実行可能なバージョンを使用してスキーマベースのサービスとネットワーク上で対話するための端末装置を構成するためのコンピュータプログラム製品も提供される。コンピュータプログラム製品は、コンピュータ可読媒体と、デバイスをサービスのクライアントとして構成するために実行可能バージョンの実行を調整するためのコンピュータ可読媒体に記憶される実行時環境モジュールとを備え、実行時環境は構造化定義言語で表現される記述子を有するコンポーネントの第１の集合と一連の命令として表現されるコンポーネントの第２の集合との対話のために構成され、実行可能なバージョンの実行は、サービスとデバイスの間のネットワーク上で以後の情報の交換に備える。
【０００９】
さらに、ネットワーク上で端末装置と対話するためにスキーマベースのサービスを提供するために構成されるサーバが開示される。該サーバは、サービスとデバイスの間で通信を確立するために要求ネットワークメッセージを受信するためのネットワークインタフェースと、該要求ネットワークメッセージに応えて送信するためのネットワークインタフェースに結合されるコンポーネントアプリケーションプログラムを備え、コンポーネントアプリケーションプログラムは、複数のコンポーネント、つまり構造化定義言語で表現される記述子を有するコンポーネントの第１の集合と、一連の命令として表現されるコンポーネントの第２の集合を含み、コンポーネントはサービスのクライアントとしてデバイスを構成するコンポーネントアプリケーションプログラムの実行可能なバージョンを作り出すためにデバイスの実行時環境によるプロビジョニングのために構成され、実行可能なバージョンの実行がサービスとデバイス間のネットワーク上での以後の情報の交換に備える。
【００１０】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能なバージョンを使用してスキーマベースのサービスとネットワーク上で対話するために構成される端末装置も開示される。該デバイスは、実行可能なバージョンを実行するためにデバイスを操作するためのインフラストラクチャ手段と、実行可能バージョンとの通信のために構成されるインフラストラクチャ手段に結合されるユーザインタフェース手段と、デバイスインフラストラクチャに結合され、ネットワークと通信するために構成されるネットワークインフラストラクチャと、サービスのクライアントとしてデバイスを構成するために実行可能なバージョンの実行を調整するための実行時手段とを備え、該実行時手段は構造化定義言語で表現される記述子を有するコンポーネントの第１の集合と、一連の命令として表現されるコンポーネントの第２の集合との対話のために構成され、実行可能バージョンの実行はサービスとデバイス間のネットワーク上での以後の情報の交換に備える。
これらの及び他の特徴は、添付図面に参照が行われる以下の詳細な説明でさらに明らかになるであろう。
【発明を実施するための最良の形態】
【００１１】
ネットワークシステム
図１を参照すると、ネットワークシステム１０は、インターネットなどであるが、これに限定されない結合された広域ネットワーク（ＷＡＮ）１０４を介してネットワークサーバ１０６によって提供される１つまたは複数のジェネリックスキーマ定義サービスと対話するための複数のジェネリック端末装置１００を備える。これらのジェネリック端末装置１００としては、パーソナルコンピュータ１１６、無線装置１０１、ＰＤＡ、セルフサービスキオスク等である場合があるが、これらに限定されない。サーバ１０６によって提供されるジェネリックサービスは、ウェブサービス及び／またはＳＱＬデータベース、ＩＤＬベースのＣＯＲＢＡ及びＲＭＩ／ＩＩＯＰシステム、レガシーデータベース、Ｊ２ＥＥ、ＳＡＰ ＲＦＣ、及びＣＯＭ／ＤＣＯＭコンポーネントなどであるがこれらに限定されない他のサービスである場合がある。さらに、システム１０は、サーバ１０６にローカルエリアネットワーク（ＬＡＮ）１１４を介してデスクトップ端末１１６を接続するためのゲートウェイサーバ１１２も有することがある。さらに、システム１０は無線装置１０１をＷＡＮ１０４に接続するための無線網１０２も有する。他のデバイス及びコンピュータ（不図示）が、ＷＡＮ１０４及び図１に図示されるもの以外の関連ネットワークを介してウェブサーバ１０６に接続できるであろうことが認識される。ジェネリック端末装置１００、無線装置１０１及びパーソナルコンピュータ１１６は以後簡単にするためにデバイス１００と呼ばれる。ウェブサービスは簡単にするためにシステム１０の以下の説明のために選択される。しかしながら、所望される場合には、他のジェネリックスキーマ定義サービスがウェブサービスに代用できることが認識される。さらに、システム１０のネットワーク１０２、１０４、１１２は、簡単にするために、以後ネットワーク１０４と呼ばれる。
【００１２】
再び図１を参照すると、デバイス１００は、サーバ１０６のウェブサービスと通信しているとき、それぞれ要求／応答メッセージ１０５を送信し、受信する。デバイス１００は、例えば、オンラインマーチャントから製品の価格設定及び可用性を要求、受信するためにメッセージヘッダ情報及び関連データコンテンツの形で要求／応答メッセージ１０５を使用することによりウェブサービスのウェブクライアントとして動作できる。ウェブサービスは、通信装置１００上のクライアントアプリケーションプログラム３０２（図２を参照）が、通信装置１００のユーザに有用性を与えるために無線網１０４を介して対話するシステムの一例である。通信装置１００とウェブサービス間で送信されるメッセージ１０５は、デバイス１００及びウェブサービスにより使用される異なるフォーマット間でメッセージ１０５を変換するメッセージマップサービス（不図示）をトラバースできるであろう。
【００１３】
適切な要求／応答メッセージ１０５を満たすために、ウェブサーバ１０６は、デバイス１００上でいったん提供されるクライアントアプリケーションプログラム３０２（図２を参照）に関連するビジネスロジック（メソッド）を露呈するための（ＨＴＴＰ及びコンポーネントＡＰＩなどであるが、これらに限定されない）多様なプロトコルを通してアプリケーションサーバ１１０と通信できる。アプリケーションサーバ１１０はウェブサーバ１０６ソフトウェアも含むことができ、その結果ウェブサーバ１０６はアプリケーションサーバ１１０の部分集合と見なすことができる。デバイス１００のアプリケーションプログラム３０２は、オブジェクト上でメソッド（つまり関数）を呼び出すのと同様に、アプリケーションサーバ１１０のビジネスロジックを使用できる。クライアントアプリケーションプログラム３０２が、アプリケーションサーバ１１０に関して、ネットワーク１０４を介してメッセージ１０５を通じてデバイス１００に直接ダウンロード／アップロードできる。さらに、デバイス１００がネットワーク１０４を介して１つまたは複数のウェブサーバ１０６及び関連アプリケーションサーバ１１０と通信できる。また、デバイス１００がアプリケーションサーバ１１０に直接結合でき、それにより所望される場合にウェブサーバ１０６を迂回できる。
【００１４】
サーバ環境
図１を参照すると、ウェブサーバ１０６は、デバイス１００上でクライアントアプリケーションプログラム３０２（図２を参照）により使用される情報メッセージ１０５を提供する。代わりに、またはさらに、ウェブサーバ１０６は、デバイス１００上で実行されるクライアントアプリケーションプログラム３０２により提供される情報メッセージ１０５を受信し、使用する、あるいはデバイス１００上で実行されるクライアントアプリケーションプログラム３０２の代わりにタスクを実行してよい。ウェブサービスは、ウェブサービスレジストリ内のユニバーサルディスカバリ、ディスクリプション、インテグレーション（ＵＤＤＩ）に登録されるウェブサービス記述言語（ＷＳＤＬ）を使用して表現されるようなインタフェースを実現し、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）などの適切なプロトコルを通してネットワーク１０４上で露呈されることによりクライアントデバイス１００とメッセージ１０５を通して通信できる、ウェブサーバ１０６のソフトウェアサービスとして定義できる。いくつかのインプリメンテーションにおいては、ＳＯＡＰは、ＳＯＡＰ要素に入れられるよくまとめられているＸＭＬ断片を含むメッセージ１０５のためのＸＭＬフォーマットを定義する仕様である。ＳＯＡＰの他の部分は、ＸＭＬとしてプログラムデータを表現する方法、及びリモートプロシジャコール（ＲＰＣ）を行うためにＳＯＡＰを使用する方法を規定する。ＳＯＡＰのこれらのオプション部分は、呼び出し可能関数、及び関数に渡すためのパラメータを含むＳＯＡＰ要求メッセージ１００がクライアントデバイス１００から送信され、サーバ１０６が実行された関数の結果とともに応答メッセージ１０５を戻すＲＰＣ様式のアプリケーションを実現するために使用される。ＳＯＡＰは、ＳＯＡＰメッセージ１０５がＸＭＬ文書の回りのラッパである文書様式のアプリケーションもサポートする。ＳＯＡＰの追加のオプションの部分がＨＴＴＰバインディング（つまりヘッダ）を定義するのに対し、ＭＳＭＱ、ＭＱシリーズ、ＳＭＴＰ、またはＴＣＰ／ＩＰトランスポートプロトコルをサポートするＳＯＡＰインプリメンテーションもある。代わりに、ウェブサービスは、他の既知の通信プロトコル、メッセージ１０５フォーマットを使用してよく、インタフェースは前述される以外のウェブサービス言語で表現されてもよい。
【００１５】
一般的には、ウェブサービスはレガシーブラウザベース、及びクライアントサーバＴＣＰ／ＩＰ接続のインフラストラクチャ及びアプリケーションの代替品として生じる。元はジェネリックマシン同士（Ｍ２Ｍ）の通信プロトコルとして始められたウェブサービスは、あらゆるサービス同士（ｓｅｒｖｉｃｅ−ｔｏ−ｓｅｒｖｉｃｅ）（Ｓ２Ｓ）またはサービス対消費者（ｓｅｒｖｉｃｅ−ｔｏ−ｃｏｎｓｕｍｅｒ）（Ｓ２Ｃ）通信にとっての標準になりつつある。標準的なプロトコルのセット（ＷＳＤＬ、ＳＯＡＰ、ＵＤＤＩ等）に基づき、ウェブサービスは、例えばＸＭＬベースなどの、同期及び／または非同期通信メッセージ１０５をサポートできる、プラットホーム中立コミュニケーションパイプを提供できる。図１のシステム１０は好ましくはＳ２Ｃモデルに関連し、なんらかのジェネリック端末装置１００から動作するウェブサービスの消費者に対応する。したがって、サーバ１０６により供給されるサービスはネットワーク１０４上でデバイス１００のユーザによって活用される。
【００１６】
クライアント環境
図２を参照すると、コンポーネントアプリケーション３０２はネットワーク１０４を介して送信され、デバイス１００のデバイスインフラストラクチャ２０４のメモリモジュール２１０の中にロードされる。代わりに、コンポーネントアプリケーション３０２は直列接続、ＵＳＢ接続、またはＩＲ、８０２．１１（ｘ）ブルーツースＴＭ（不図示）などの短距離無線通信システムを介してロードされてもよい。該デバイス１００にいったんロードされると、コンポーネントアプリケーション３０２はデバイス１００上で、コンポーネントアプリケーション３０２を、デバイスインフラストラクチャ２０４の中のプロセッサ２０８によって実行されるネイティブコードに変換するコンポーネントフレームワーク２０６によって実行できる。代わりに、コンポーネントアプリケーション３０２は、ネイティブコードとして実行されてよいか、あるいはデバイス１００上で別のソフトウェアモジュールまたはオペレーティングシステムによって解釈されてもよい。いずれにせよ、コンポーネントアプリケーション３０２はデバイス１００によって提供される端末実行時環境で実行される。
【００１７】
図１を再び参照すると、デバイス１００によって提供されるクライアント実行時環境は、デバイス１００を（ウェブサーバ１０６の）ウェブサービスのウェブクライアントとして動作させるように構成できる。クライアント実行時環境が、デバイス１００をサーバ１０６によって供給されるいくつかの他のジェネリックスキーマ定義サービスのクライアントにすることもできることが認識される。デバイス１００のクライアント実行時環境は、好ましくは、デバイス１００上で（コンポーネントアプリケーションの形をとる――図４及び以下の説明を参照すること）クライアントアプリケーションプログラム３０２を作成、ホスト、及び実行できる。さらに、クライアント実行時環境の特定の機能は、言語に対するサポート、メモリ割り当ての調整、ネットワーキング、Ｉ／Ｏ動作中のデータの管理、デバイス１００の出力装置上でグラフィックを調整すること、及びコアオブジェクト指向クラスにアクセスを提供し、ファイル／ライブラリをサポートすることを含むことがあるが、これらに限定されない。デバイス１００により実現される実行時環境の例は、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）による共通言語ランタイム（ＣＬＲ）及びサンマイクロシステムズ（Ｓｕｎ Ｍｉｃｒｏｓｙｓｔｅｍｓ）によるＪａｖａ（登録商標）実行時環境（ＪＲＥ）を含むことがあるが、これらに限定されない。
【００１８】
デバイス１００の端末実行時環境は、好ましくは、クライアントアプリケーションプログラム３０２（図２を参照）の常駐実行可能バージョンのための基本的な機能をサポートする。該基本的な機能は、
ウェブサーバ１０６のウェブサービスにメッセージ１０５を、あるいはデバイス１００にネットワーク１０４を介して接続される他のジェネリックスキーマ定義サービスにメッセージ１０５を送信する通信機能を提供する、
ウェブサーバ１０６のウェブサービスの発信メッセージ１０５（サービスへのメッセージ）のためのデータ部分を供給するためにデバイス１００の入力装置上でユーザによるデータ入力機能を提供する、
ウェブサービスの応答メッセージ１０５（入信メッセージ）または出力装置上でのウェブサーバ１０６の無相関通知のためのデータプレゼンテーション及び出力機能を提供する、
デバイス１００のメモリモジュール２１０（図２を参照）内にローカルクライアントデータを維持するためにデータ記憶サービスを提供する、
クライアントアプリケーションプログラム３０２のアプリケーションコンポーネント４００、４０２、４０４、４０６（図４を参照）の動作を調整するためにスクリプト言語のための実行環境を提供する、
などであるが、これらに限定されない。
【００１９】
図２、図４及び図４ａを参照すると、（例えばコンポーネントフレームワーク２０６により提供される）クライアント実行時はコンポーネント４００、４０２、４０４、４０６の定義に含まれるメタデータをロードし、アプリケーションコンテナ３００を介してデバイス１００上でアプリケーションプログラム３０２の実行可能バージョンを構築する。例えば、テンプレートベースのネイティブ実行及びメタデータベースの実行という、クライアント実行時のための２つの操作モデルがある。テンプレートベースのネイティブ実行モデルを用いると、実行時はネイティブコードを使用してデバイス１００上で事前に構築されるデータ、メッセージ及び画面テンプレート５００のホストとなる（ｈｏｓｔｓ）。アプリケーションプログラム３０２の定義がロードされると、コンポーネントフレームワーク２０６により提供されるクライアント環境はコンポーネント４００、４０２、４０４からのメタデータ定義パラメータでテンプレート５００を充填し、ネイティブフォーマットで実行可能なクライアントアプリケーションプログラム３０２を構築する。ワークフローコンポーネント４０６のワークフロースクリプト（例えばＥＣＭＡＳｃｒｉｐｔ）は、ネイティブコードに変換されるか、あるいは（例えばＥＣＭＡＳｃｒｉｐｔインタプリタなどの）適切なスクリプトインタプリタ５０２を使用してネイティブコードリダイレクタ５０４に対して実行され、該リダイレクタ５０４はネイティブ実行時エンジン５０６を通してネイティブコンポーネント上での動作に、スクリプト言語に対する呼び出しを解釈する。メタデータベースの実行を用いると、コンポーネントフレームワーク２０６の実行時環境は、実行時中に解析されるコンポーネント４００、４０２、４０４、４０６の定義を（例えば）ＸＭＬに保つか、あるいは（例えば）ＸＭＬノードのネイティブ表現を使用するかのどちらかである。実行中、ネイティブ実行時エンジン５０６は、ネイティブコンポーネントエンティティに対してよりむしろ、コンポーネント４００、４０２、４０４、４０６の定義に対して作用する。テンプレートベースの手法がメタデータベースの実行上でより性能効率的であるが、より精密な実行環境及びより多くのメモリリソースを必要とすることがあることが認識される。
【００２０】
したがって、ネイティブクライアント端末実行時環境は、デバイス１００へのクライアントアプリケーションプログラム３０２のためのインタフェースに、プロセッサ２０８及びデバイスインフラストラクチャ２０４の関連付けられるオペレーティングシステムの機能性を与える。実行時環境は、好ましくは、コンポーネントアプリケーションプログラム３０２が実行するデバイス１００上で制御された安全かつ安定した環境を供給する。実行時環境は、デバイス１００の各それぞれのデバイスインフラストラクチャ２０４ごとに特定の実際のウェブクライアントを作成するためにコンポーネント４００、４０２、４０４、４０６の定義を提供する。簡単にするため、以下の説明は以下に例としてのみ、コンポーネントフレームワーク２０６により提供されるクライアント実行時環境を指すことを認識されたい。
【００２１】
通信装置
図２を再び参照すると、デバイス１００は携帯電話、ＰＤＡ，双方向ページャまたは二重モード通信装置（図９を参照）などであるが、これらに限定されない装置である。デバイス１００は、デバイスインフラストラクチャ２０４に接続２１８を介して結合される無線トランシーバまたは有線ネットワークインタフェースカードまたはモデムなどのネットワーク接続インタフェース２００を含む。接続インタフェース２００は、デバイス１００が互いに、及び（ウェブサーバ１０６などの）外部システムとネットワーク１０４を介して通信し、クライアントアプリケーションプログラム３０２とサーバ１０６，１１０（図１を参照）の間で要求／応答メッセージ１０５を調整できるようにする無線リンク（例えばＲＦ、ＩＲ等）によって無線網１０２などのネットワーク１０４に、デバイス１００の動作中に接続可能である。ネットワーク１０４は、該ネットワーク１０４に接続されるデバイスと外部システムの間での要求／応答メッセージ１０５の中のデータの伝送をサポートする。ネットワーク１０４は、デバイス１００とネットワーク１０４の外部にあるデバイスの間の電話呼のための音声通信もサポートしてもよい。無線データ伝送プロトコルは、ＤａｔａＴＡＣ、ＧＰＲＳまたはＣＤＭＡなどであるが、これらに限定されない無線網１０２によって使用できる。
【００２２】
再び図２を参照すると、デバイス１００は、ユーザ（不図示）と対話するために接続２２２によりデバイスインフラストラクチャ２０４に結合されるユーザインタフェース２０２も有する。ユーザインタフェース２０２は、ＱＷＥＲＴＹキーボード、キーパッド、トラックホイール、スタイラス、マウス、マイク等であるが、これらに限定されない１つまたは複数のユーザ入力装置、及びＬＣＤ画面ディスプレイ及び／またはスピーカなどのユーザ出力装置を含む。画面がタッチセンシティブである場合には、ディスプレイはデバイスインフラストラクチャ２０４によって制御されるようなユーザ入力装置としても使用できる。ユーザインタフェース２０２は、さらに後述されるコンポーネントフレームワーク２０６のクライアントアプリケーションプログラム３０２によって利用されるようにシステム１０（図１を参照）上で要求／応答メッセージ１０５を調整するためにデバイス１００のユーザにより利用される。
【００２３】
再び図２を参照すると、デバイス１００の動作はデバイスインフラストラクチャ２０４により使用可能にされる。デバイスインフラストラクチャ２０４はコンピュータプロセッサ２０８及び随伴するメモリモジュール２１０を含む。コンピュータプロセッサ２０８は、メモリモジュール２１０に位置するオペレーティングシステム及びクライアントアプリケーションプログラム３０２によって提供される、関連命令を実行することにより、通信装置１００のネットワークインタフェース２００、ユーザインタフェース２０２、及びコンポーネントフレームワーク２０６の動作を操作する。さらに、デバイスインフラストラクチャ２０４はプロセッサ及び／またはメモリモジュール２１０内のロード／更新クライアントアプリケーションプログラム３０２に命令を提供するためにプロセッサ２０８に結合されるコンピュータ可読記憶媒体２１２を含むことができる。コンピュータ可読媒体２１２は、例示としてのみ、磁気ディスク、磁気テープ、ＣＤ／ＤＶＤ ＲＯＭＳなどの光学的に可読な媒体、及びメモリカードなどのハードウェア及び／またはソフトウェアを含むことがある。それぞれのケースでは、コンピュータ可読媒体２１２は、メモリモジュール２１０内に提供される小型ディスク、フロッピー（登録商標）ディスケット、カセット、ハードディスクドライブ、ソリッドステートメモリカード、またはＲＡＭの形を取ってよい。前記に一覧表示された例示のコンピュータ可読媒体２１２は単独でまたは組み合わせてのどちらかで使用できることに注意する必要がある。
デバイスのコンポーネントフレームワーク
【００２４】
再び図２を参照すると、デバイス１００のコンポーネントフレームワーク２０６が接続２２０によってデバイスインフラストラクチャ２０４に結合される。クライアント実行時環境デバイス１００はコンポーネントフレームワーク２０６によって提供され、好ましくはメタデータ定義から（コンポーネントアプリケーション――以下を参照――の形を取る）クライアントアプリケーションプログラム３０２を生成し、ホスティングし及び実行できる。したがって、コンポーネントフレームワーク２０６はクライアントアプリケーションプログラム３０２のためのネイティブクライアント実行時環境を提供し、プロセッサ２０８及びデバイスインフラストラクチャ２０４の関連オペレーティングシステムのデバイス１００の機能性に対するインタフェースである。コンポーネントフレームワーク２０６は、好ましくは、コンポーネントアプリケーションプログラム３０２が例えばアプリケーションコンテナ３００内で実行する、制御された、安全かつ安定した環境をデバイス１００上で供給することにより実行時環境を提供する。アプリケーションコンテナ３００は、クライアントアプリケーションプログラム３０２のためのスマートホストと呼ぶことができ、（メッセージ１０５の――図１を参照）メッセージメタデータを分析することと、メモリモジュール２１０内のメタデータの表現を更新することを担当できる。
【００２５】
図３を参照すると、コンポーネントフレームワーク２０６は、端末実行時環境内で（ウェブサービスクライアントアプリケーションなどの）クライアントアプリケーションプログラム３０２を実行するために使用でき、要求／応答メッセージ１０５を介してウェブサーバ１０６及び関連アプリケーションサーバ１１０（図１を参照）のウェブサービス動作へのアクセスをサポートできる。コンポーネントアプリケーションプログラム３０２は、コンポーネントフレームワーク２０６により実行されるソフトウェアアプリケーションを備える。コンポーネントフレームワーク２０６は、コンポーネントアプリケーションプログラム３０２が実行されるたびに、アプリケーションプログラム３０２のコンポーネント４００、４０２、４０４、４０６（図４を参照）ごとにアプリケーションコンテナ３００を作成する。アプリケーションコンテナ３００は、アプリケーションプログラム３０２のコンポーネント４００、４０２、４０４、４０６をロードし、デバイスインフラストラクチャ２０４内でプロセッサ２０８によって実行されるネイティブコードを作成できる。したがって、コンポーネントフレームワーク２０６は、通信装置１００、１１６の各それぞれのデバイスインフラストラクチャ２０４に特定の実際のウェブクライアントを作成するためにコンポーネント４００、４０２、４０４、４０６の定義を提供するためにホストアプリケーションコンテナ３００を提供する。アプリケーションコンテナは、前述したようにテンプレートベースのネイティブ実行モデル及びメタデータベースの実行モデルに従ってコンポーネントアプリケーション３０２を提供できる。
【００２６】
再び図３を参照すると、コンポーネントフレームワーク２０６は、特定のサービスがコンポーネント４００、４０２、４０４、４０６（図４を参照）の一部として含まれないか、あるいはコンポーネントアプリケーションプログラム３０２の一部としての別個のコンポーネント（不図示）として受け取られない場合には、クライアントアプリケーションプログラム３０２にフレームワークサービス３０４（ジェネリックサービスの標準的なセット）も提供できる。アプリケーションプログラム３０２は、必要に応じてフレームワークサービス３０４との通信２１６を調整するアプリケーションコンテナ３００との通信２１４を行う。コンポーネントフレームワーク２０６のフレームワークサービス３０４は、デバイスインフラストラクチャ２０４と接続２２０を介して通信を調整する。したがって、デバイスインフラストラクチャ２０４、ユーザインタフェース２０２及びネットワークインタフェース２００へのアクセスが、コンポーネントフレームワーク２０６によってクライアントアプリケーションプログラム３０２に与えられる。さらに、アプリケーションコンテナ３００はクライアントアプリケーションプログラム３０２への、及びからのコンポーネントフレームワーク２０６の通信２１４、２１６のすべてのアクセスを制御、確証できるので、クライアントアプリケーションプログラム３０２は適切にウィルス抵抗性がある。デバイスインフラストラクチャ２０４（図２を参照）のオペレーティングシステムの一部がアプリケーションコンテナ３００を表現できることを認識されたい。
【００２７】
再び図３を参照すると、アプリケーションプログラム３０２の後述されるコンポーネント４００、４０２、４０４、４０６（図４を参照）は、通信装置１００、１１６上でいったん提供されると、コンポーネントフレームワーク２０６のアプリケーションコンテナ３００によりフレームワークサービス３０４の所定のセットに対するアクセスを与えられる。フレームワークサービス３０４は、通信サービス３０６、プレゼンテーションサービス３０８、持続性サービス３１０、アクセスサービス３１２、プロビジョニングサービス３１４及びユーティリティサービス３１６などを含むが、これらに限定されない。通信サービス３０６は、コンポーネントアプリケーション３０２の代わりに（通信サービス３０６による）ウェブサービスに関して送信／受信されるメッセージ１０５及び関連データなど、コンポーネントアプリケーションプログラム３０２と外部システム１０の間の接続性を管理する。プレゼンテーションサービス３０８は、コンポーネントアプリケーションプログラム３０２の表現を、それらがユーザインタフェース２０２（図２を参照）の出力装置上での出力であるように管理する。持続性サービス３１０は、コンポーネントアプリケーションプログラム３０２がデバイスインフラストラクチャ２０４のメモリモジュール２１０（図２を参照）内にデータを記憶できるようにする。アクセスサービス３１２は、通信装置１００、１１６上に存在する他のソフトウェアアプリケーションへのコンポーネントアプリケーションプログラム３０２を提供する。プロビジョニングサービス３１４は、通信装置１００、１１６上でのソフトウェアアプリケーションのプロビジョニングを管理する。アプリケーションプロビジョニングは、新しい、更新されたコンポーネントアプリケーションプログラム３０２を要求し、受信することと、ネットワーク１０４を介してアクセス可能であるサービスへのアクセスのためにコンポーネントアプリケーションプログラム３０２を構成することと、コンポーネントアプリケーションプログラム３０２及びサービスを修正することと、コンポーネントアプリケーションプログラム３０２及びサービスを削除することとを含む場合がある。ユーティリティサービス３１６は、さまざまなフォーマットへの文字列の変換においてデータ操作を実行するなど種々の一般的なタスクを達成するために使用される。
【００２８】
通信装置１００のフレームワークサービス３０４は、前述されたサービスを含むことがあるコンポーネントアプリケーションプログラム３０２の機能性を与えることができることが認識される。その結果、コンポーネントアプリケーションプログラム３０２は、通信装置１００の機能性に、それを実現する必要なくアクセスできる。デバイス１００（図２を参照）のコンポーネントフレームワーク２０６は、存在するコンポーネントアプリケーションプログラム３０２の数に関係なく、フレームワークサービス３０４に存在するこれらのサービスを実現するコードの好ましくはただ１つのコピーを有し、それによりフレームワークサービス３０４のコード複製を最小限に抑える。さらに、すべてのサービス要求またはサービスＡＰＩ呼び出しがネイティブコードで開発者によってプログラミングされる通常のアプリケーションとは異なり、コンポーネント定義４００、４０２、４０４及びワークフロー４０６は、ＸＭＬなどの構造化定義言語、及びＥＣＭＡＳｃｒｉｐｔなどの命令の集合を使用してサービス要求を記述する。命令は手続き型コンポーネントリンケージを提供するが、構造化定義言語は、アプリケーションのユーザインタフェース２０２、固定記憶域、及びウェブサービスとの通信の非手続き型定義を提供する。
コンポーネントアプリケーションプログラム
図２を参照すると、ウェブサービス（例えば）クライアントアプリケーションプログラム３０２は、コンポーネントフレームワーク２０６の端末実行時環境の中で実行され、サーバ１０６（図１を参照）により提供されるウェブサービスの動作へのアクセスをサポートする。ＷＳＤＬ及びＳＯＡＰプロトコル定義は、メッセージ／データパターンを明確に示す。ＷＳＤＬウェブサービス定義では、動作は、関係するデータ４００及びメッセージ４０４コンポーネント（図４を参照）の集合としてウェブサービスクライアントアプリケーションプログラム３０２を定義するために使用される、メッセージ及びデータ部分の概念を使用して定義される。
【００２９】
図４を参照すると、コンポーネントアプリケーションプログラム３０２のブロック図は、アプリケーションコンテナ３００との通信２１４を通してワークフローコンポーネント４０６により調整されるデータコンポーネント４００、プレゼンテーションコンポーネント４０２、及びメッセージコンポーネント４０４を備える。構造化定義言語は、各要素が１つまたは複数の値を有することができるように、リソースの特定の属性を表す、多くの所定の要素から構成される一連のメタデータレコードとしてコンポーネント４００、４０２、４０４を構築するために使用できる。各メタデータスキーマは、通常、限られた数の要素、各要素の名称、及び各要素の意味などであるが、これらの限定されない特性を定義した。例示のメタデータスキーマは、ダブリンコア（Ｄｕｂｌｉｎ Ｃｏｒｅ）（ＤＣ）、アングロアメリカン目録作成規則（Ａｎｇｌｏ−Ａｍｅｒｉｃａｎ Ｃａｔａｌｏｇｉｎｇ  Ｒｕｌｅｓ）（ＡＡＣＲ２）、政府情報ロケータサービス（Ｇｏｖｅｒｎｍｅｎｔ Ｉｎｆｏｒｍａｔｉｏｎ Ｌｏｃａｔｏｒ Ｓｅｒｖｉｃｅ）（ＧＩＬＳ）、符号化アーカイブ記述（ＥＡＤ）、ＩＭＳ総合的学習コンソーシアム（Ｇｌｏｂａｌ Ｌｅａｒｎｉｎｇ Ｃｏｎｓｏｒｔｉｕｍ）（ＩＭＳ）、オーストラリア政府ロケータサービス（ＡＧＬＳ）を含むが、これらに限定されない。構文を符号化すると、コンポーネント４００、４０２、４０４のメタデータをデバイスインフラストラクチャ２０４（図２を参照）で処理できるようにし、符号化方式はＸＭＬ、ＨＴＭＬ，ＸＨＴＭＬ、ＸＳＭＬ、ＲＤＦ、機械可読可能目録法（Ｍａｃｈｉｎｅ Ｒｅａｄａｂｌｅ Ｃａｔａｌｏｇｉｎｇ）（ＭＡＲＣ），及び多目的インターネットメール拡張（ＭＩＭＥ）を含むが、これらに限定されない。
【００３０】
図４を再び参照すると、データコンポーネント４００は、コンポーネントアプリケーションプログラム３０２によって使用されるデータエンティティを定義する。データコンポーネント４００が記述してよいデータエンティティの例は、注文、ユーザ、及び金融取引である。データコンポーネント４００は、データエンティティを記述するためにどのような情報が必要とされるのか、及び情報がどのようなフォーマットで表現されるのかを定義する。例えば、データコンポーネント４００は、番号としてフォーマットされる順序のための一意の識別子と、文字列としてフォーマットされる項目のリスト、日付−時刻フォーマットを有する注文が作成された時間、文字列としてフォーマットされる注文のステータス、及びデータコンポーネント４００の別の１つの定義に従ってフォーマットされる注文を行ったユーザなどを定義してよいが、これらの限定されない。データ部（要素）は通常ウェブサービス演出（ｃｈｏｒｅｏｇｒａｐｈｙ）規則に従ってメッセージ１０５からメッセージ１０５に転送されるので、データコンポーネント４００は持続性がある。データコンポーネント４００は、（もし使用可能ならば）ウェブサービス（複数の場合がある）演出（ｃｈｏｒｅｏｇｒａｐｈｙ）定義に従って動的に生成される、あるいは複雑なタイプの定義及び／またはメッセージ相関情報に基づいてアプリケーション設計者によって定義されてよい。
【００３１】
図４を再び参照すると、メッセージコンポーネント４０４は、ウェブサービスなどの外部システムと通信するためにコンポーネントアプリケーションプログラム３０２によって使用されるメッセージのフォーマットを定義する。例えば、メッセージコンポーネント４０４の１つは、注文のための一意の識別子、注文のステータス、注文に関連付けられるメモを含む、注文を行うためのメッセージを記述してよいが、これに限定されない。構造化定義言語で作成されるメッセージコンポーネント４０４の定義はＷＳＤＬメッセージを一意に表し（マッピングし）、実行時に動的に生成できる。したがって、動的生成はクライアントアプリケーションメッセージ１０５のためのコンポーネント定義のために行うことができ、定義言語の中の標準ウェブサービスメタデータからの関連データコンテンツは、ＷＳＤＬ及びＢＰＥＬなどであるが、これらに限定されないウェブサービスインタフェースを表現するために使用できる。ウェブサービスメッセージ１０５は動作のコンテクスト中で定義され、コンポーネントアプリケーションプログラム３０２の定義のメッセージコンポーネント４０４の間には定義された相関がある。この相関は、詳しく後述されるように所定のメッセージパラメータを使用して、及び／または別々のワークフローコンポーネント４０６を通して行うことができるであろう。
【００３２】
図４を再び参照すると、コンポーネントアプリケーションプログラム３０２は、ユーザインタフェース２０２によって表示されるので、プレゼンテーションコンポーネント４０２は、その外観及び動作を定義する。プレゼンテーションコンポーネント４０２は、ＧＵＩ画面及び制御、ならびにユーザがユーザインタフェース２０２を使用してコンポーネントアプリケーション３０２と対話するときに実行されるアクションを指定できる。例えば、プレゼンテーションコンポーネント４０２は、画面、ラベル、編集ボックス、ボタンとメニュー、及びユーザが編集ボックスに入力する、あるいはボタンを押すときに行われるアクションを定義してもよい。ウェブサービス消費者の大多数はウェブサービス動作結果の視覚的なプレゼンテーションを使用するので、ユーザインタフェース画面を表示できるそれらのデバイス１００上で実行時環境を提供する。
【００３３】
図１、図４及び図４ｂを参照すると、前述されたクライアントコンポーネントアプリケーションプログラム３０２の定義ホストモデルにおいて、プレゼンテーションコンポーネント４０２が、クライアントプラットホーム及びデバイス１００の環境に応じて変化してよいことが認識される。例えば、いくつかのケースでは、ウェブサービス消費者は視覚的なプレゼンテーションを必要としない。コンポーネントアプリケーションプログラム３０２のコンポーネント４００、４０２、４０４、４０６のアプリケーション定義は、多様な所定のクライアント実行時（つまり特定のコンポーネントフレームワーク２０６――図２を参照）のためのプラットホーム固有のプレゼンテーションコンポーネント４０２の記述子とともに、プラットホーム中立データ４００、メッセージ４０４、ワークフロー４０６コンポーネント記述子のバンドルとしてメタデータレポジトリ７００内のウェブサービスレジストリでホストされる。発見または配備要求メッセージ１０５が発行されると、クライアントタイプはこの要求メッセージ１０５の一部として指定されなければならない。デバイス１００のさまざまなクライアントプラットホームのためにコンポーネントアプリケーションプログラム３０２をパッケージする一方でデータ、メッセージ、及びワークフローメタデータを複製しないためには、アプリケーション定義は、デバイス１００のさまざまなサポートされているユーザインタフェースを２０２を表す、プレゼンテーションコンポーネント４０３ａ、４０３ｂ、４０３ｃの異なるセットとリンクされるプラットホーム中立コンポーネント定義のバンドルとして、（例えば）アプリケーションサーバ１１０上でホストされることが可能である。特定のデバイス１００が明示的にサポートされていない場合には標準プレゼンテーションコンポーネント４０２が使用でき、それによりプレゼンテーション機能の少なくとも削減されたセットを提供することも認識される。ユーザが発見またはダウンロード要求メッセージ１０５を作成すると、デバイス１００のクライアント実行時タイプは確証され、適切なバンドルがネットワーク１０４上でウェブサーバ１０６によりデバイス１００への送達のために構築される。それらのウェブサービス消費者の場合、クライアントアプリケーションプログラム３０２は、ワークフローコンポーネント４０６を通してデータ４００及びメッセージ４０４コンポーネントとリンクされる選択されたプレゼンテーションコンポーネント４０３ａ、ｂ、ｃを含み、それによりカスタマイズされたコンポーネントアプリケーション３０２を提供することができるであろう。
【００３４】
図４を再び参照すると、コンポーネントアプリケーションプログラム３０２のワークフローコンポーネント４０６は、前述されたようなプレゼンテーションコンポーネント４０２によって指定されるアクション、またはメッセージ１０５（図１を参照）がシステム１０から到着すると実行されるアクションなど、アクションが実行されなければならないときに発生する処理を定義する。プレゼンテーションワークフロー及びメッセージ１０５の処理は、ワークフローコンポーネント４０６により定義される。ワークフローコンポーネント４０６は、プログラミング言語、またはＥＣＭＡＳｃｒｉｐｔなどであるがこれに限定されないスクリプト言語内の一連の命令として作成され、ネイティブコードにコンパイルされ、前述したようにアプリケーションコンテナ３００によって実行される。ワークフローコンポーネント４０６の例は、データに値を割り当てること、画面を操作すること、またはメッセージ１０５を送信することであってもよい。ワークフローコンポーネント４０６は、メッセージ１０５間の相関をサポートし、他のコンポーネント４００、４０２、４０４上での動作のための一連の規則としてアプリケーションフローを定義する。複数のワークフローコンポーネントは、指定されたアプリケーションプログラム３０２に関して定義できる。このような追加のワークフローコンポーネントは、複数のプレゼンテーションコンポーネント４０３ａ、４０３ｂ、４０３ｃと同様に、さまざまなサポートされている機能または特定のデバイス１００の機能に基づいて異なるワークフローを定義できる。
【００３５】
ＥＣＭＡ（欧州コンピュータ製造工業会）スクリプトは標準スクリプト言語であり、そこでは、スクリプトは、コンピュータプロセッサによってではなくむしろ別のプログラムによって解釈または実行される命令のシーケンスと呼ぶこともできる。スクリプト言語の他のいくつかの例は、Ｐｅｒｌ、Ｒｅｘｘ、ＶＢＳｃｒｉｐｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、及びＴｃｌ／Ｔｋである。スクリプト言語は、一般的には、デバイス１００などの既存のシステムの設備を操作、カスタマイズする、及び自動化するために使用される教育言語である。このようなシステムでは、有用な機能性は、ユーザインタフェース２０２（図２を参照）を通してすでに使用可能になり、スクリプト言語はその機能性をプログラム制御にさらすための機構である。このようにして、デバイス１００はスクリプト言語の機能を完了するオブジェクト及び機能のホスト実行時環境を提供すると言われている。
【００３６】
特に、ＥＭＣＡＳｃｒｉｐｔはホスト実行時環境内で計算を実行し、計算オブジェクトを操作するためのオブジェクト指向プログラミング言語である。ＥＣＭＡＳｃｒｉｐｔは、ウェブスクリプト言語として使用でき、システム１０（図１を参照）のウェブベースのクライアントサーバアーキテクチャの一部としてサーバ１０６、１１０の計算を実行するための機構を提供する。ＥＣＭＡＳｃｒｉｐｔは、種々のホスト実行時環境のためのコアスクリプト機能を提供するため、コアスクリプト言語は多くの特定のホスト実行時環境のためにプラットホーム中立と考えることができる。コンポーネントフレームワーク２０６（図２を参照）は、ウィンドウを表すオブジェクト、メニュー、ポップアップ、ダイアログボックス、テキスト領域、アンカー、フレーム、履歴、クッキー及び入出力などであるがこれらに限定されないデバイス１００のクライアント側計算のためのＥＣＭＡＳｃｒｉｐｔホスト実行時環境を提供できる。さらに、コンポーネントフレームワーク２０６のホスト実行時環境は、フォーカスの変更、ページ、および画像ロード、アンロード、エラー、及びアボート、選択、形式提出、及びマウスアクションなどであるが、これらに限定されないイベントにスクリプトコードを取り付けるための手段を提供する。スクリプトコードはワークフローコンポーネント４０６内に出現し、ユーザインタフェース要素と固定され、計算されたテキストと画像を結合し、ユーザインタフェース２０２上でのユーザ相互作用（インタラクション）に反応する。ウェブサーバ１０６（図１を参照）は、要求、クライアント及びファイルを表すオブジェクト及びデータをロックし、共用するための機構を含むサーバ側計算のための別のホスト環境を提供する。クライアント側とサーバ側のスクリプトをともに使用することにより、ウェブベースのコンポーネントアプリケーションプログラム３０２のためのカスタマイズされたユーザインタフェース２０２を提供する一方で、クライアントデバイス１００とサーバ１０６、１１０の間で計算を分散することが可能である。
【００３７】
ＥＣＭＡＳｃｒｉｐｔは、厳密に言えば関数またはメソッドではない場合がある内蔵演算子の集合も定義する。ＥＣＭＡＳｃｒｉｐｔ演算子は、多様な単項演算、乗法演算、加法演算、ビット単位のシフト演算、関係演算子、等価演算子、バイナリビット演算子、バイナリ論理演算子、代入演算子、及びコンマ演算子を含むが、これらに限定されない。ＥＣＭＡＳｃｒｉｐｔ構文はＪａｖａ（登録商標）構文に似ているが、ＥＣＭＡＳｃｒｉｐｔ構文は、それが開発者にとって使用しやすいスクリプト言語としての役割を果たすことができるように緩和される。例えば、ＥＣＭＡＳｃｒｉｐｔの中の変数は、そのタイプを宣言させることを必要とされず、プロパティと関連付けられるタイプでもなく、定義された関数はそれらの宣言を、それらに対する呼び出しの前に原文どおりに出現させることを必要とされない。クラスベースのオブジェクト指向プログラミング言語においては、一般的に、状態はインスタンスによって伝達され、メソッドはクラスによって伝達され、継承は構造及び動作にすぎないことが認識される。ＥＣＭＡＳｃｒｉｐｔでは、状態及びメソッドは、オブジェクト、構造、動作によって輸送され、状態はすべて継承される。
コンポーネントアプリケーションプログラム例
したがって、図４を参照すると、クライアントアプリケーションプログラム３０２は、プラットホーム中立コンポーネント定義のセットとして、つまりＸＭＬ（または他の適切な構造化定義言語）を使用して、データ４００及びメッセージ４０４コンポーネント及びプレゼンテーションコンポーネント４０２のために定義できる。ワークフローコンポーネント４０６は、ＥＣＭＡＳｃｒｉｐｔ（または任意の他の適切なプラットホーム中立スクリプト言語）を使用して定義できる。コンポーネントフレームワーク２０６（図２を参照）のクライアント実行時環境は、さらに後述されるように、コンポーネントアプリケーションプログラム３０２のコンポーネント４００、４０２、４０４、４０６がデバイス１００上で提供されると、メタ定義に基づいてコンポーネントテンプレートを作成できる。多くのさまざまな端末実行時環境を用いると、ＸＭＬまたはＥＣＭＡＳｃｒｉｐｔなどのクロスプラットホーム規格は、コンポーネントアプリケーションプログラム３０２をあらかじめ構築する代わりにアプリケーションコンポーネントメタデータを定義するために使用できる。この遅延性のバインディングが、コンポーネントアプリケーションプログラム３０２のジェネリックアプリケーション定義を、多様な異なるデバイスにより表される多岐に渡る端末システム環境で実行できるようにする。
【００３８】
ＸＭＬまたはその派生物を使用してデータ４００、メッセージ４０４、及びプレゼンテーション４０２コンポーネントを、ＥＣＭＡＳｃｒｉｐｔ言語またはその部分集合を使用してワークフローコンポーネント４０６を表現すると、アプリケーション開発者は特定のプラットホームまたは環境からウェブサービスクライアントを抽出し、原則的に「開発は一度、実行はどこでも（ｄｅｖｅｌｏｐ ｏｎｃｅ ｒｕｎ ｅｖｅｒｙｗｈｅｒｅ）」アプリケーションを実現できる。以下の例は、ウェブサービスクライアントアプリケーションプログラム３０２が、ＸＭＬなどであるが、これに限定されない構造化定義言語、及びＥＣＭＡＳｃｒｉｐｔ、定義コンポーネントなどであるが、これらに限定されないプラットホーム中立スクリプト／プログラミング言語を使用してどのようにして表現できるのかを示している。
【００３９】
ＸＭＬデータコンポーネント４００の例
<data name="Order">
<item name="ordered"type="Number"key="true"/>
<item name="items"type="String"array="true"/>
<item name="user"comp="true"comName="User"/>
<item name="orderStatus"type="Strig"/>
</data>
...
ＸＭＬメッセージコンポーネント４０４の例
<msg name="ordComfiguration"type="response"action="mhConfiguration">
<part name="orderID"type="String"/>
<part name="status"type="String"/>
</msg>
...
ＸＭＬプレゼンテーションコンポーネント４０２の例
<screen name="scrConfiguration"title="Order Confirmation"param="Order">
<layout type="vertical">
<widget type="label"value="Order Confirmation Result:"/>
<widget type="edit"value="@Order.orderStatus"/>
</layout>
...
<menu>
<item label="Continue" navigate="@scrMain"/>
...
</menu>
</screen>
...
ＥＣＭＡＳｃｒｉｐｔワークフローコンポーネント４０６の例
<actions>
<function name="mhConfirmation">
key=ordConfirmation.orderID;
order=Order.get(key);
order.orderStatus=ordConfirmation.status;
scrConfirmation.display(order);
</function>
...
</actions>
【００４０】
図４を参照すると、前述したように、メッセージコンポーネント４０４がメッセージ１０５の入力と出力のために必要とされるデータを中継することが分かる。対応するデータコンポーネント４００は、プレゼンテーションコンポーネント４０２によるユーザインタフェース２０２（図２を参照）での以後のプレゼンテーションのためにデバイス１００のメモリモジュール２１０（図２を参照）内でのデータの記憶を調整する。ワークフローコンポーネント４０６は、データ４００、プレゼンテーション４０２、及びメッセージ４０４コンポーネントの間でのデータの転送を調整する。
【００４１】
前述したようにコンポーネントアプリケーションモデルに対する多くの潜在的な優位点がある。例えば、クライアント実行時とサービスエンドポイント間のサービスプロトコル内のメディエータに対する最小限のニーズがある。ウェブサーバがＨＴＭＬページデータ／要求をサービスエンドポイントに接続するために追加のコンポーネント（例えば、サーブレット、ＪＳＰ、ＡＳＰ等）をホストすることを必要とするブラウザベースのアプリケーションとは異なり、コンポーネントアプリケーションモデルは、（サーバ１０６上の）ウェブサービスメッセージコンポーネント定義を使用してデバイス１００のクライアント実行時とサービスエンドポイントの間のエンドツーエンドの直接的な接続性を可能にする。
【００４２】
さらに、コンポーネントアプリケーションモデルは、ブラウザベースのアプリケーションの簡略さをネイティブアプリケーション実行の効率と結び付ける。ブラウザアプリケーションとは異なり、アプリケーション３０２の定義全体が、好ましくは一度ダウンロードされるため、実行時に画面をレンダリングすることは最小限に抑えられ、クライアント実行時環境はアプリケーション画面のネイティブ表現を作成できる。さらにサーバからページ（ＨＴＭＬでの画面定義）を要求することは、コンポーネントアプリケーションモデルアーキテクチャはデータを含むメッセージコンポーネント４０４に基づいているため、最小限に抑えられる。
【００４３】
さらに、コンポーネントアプリケーションアーキテクチャは、ハードコード化されたネイティブアプリケーション、及び効果的なデータ記憶と持続性モデルと比較して（コンポーネント定義だけから構成される）比較的に小さなアプリケーションダウンロードサイズを実現できる。クライアント実行時は、ブラウザアプリケーションのためのＨＴＭＬページなどのレンダリングされたプレゼンテーションを操作することに対し、原子データエンティティを直接的に記憶、更新することができる。
【００４４】
さらに、コンポーネントアプリケーションアーキテクチャは、プラットホーム中立モデルを提供できる。特定のクライアント実行時向けに一意に開発されるネイティブアプリケーションとは異なり、ＸＭＬ及びＥＣＭＡＳｃｒｉｐｔなどの幅広く適用される規格を使用して構築されるアプリケーション３０２は、多くのさまざまなプラットホームで再利用され、原則「書き込みは一度、実行はどこでも（ｗｒｉｔｅ ｏｎｃｅ ｒｕｎ ｅｖｅｒｙｗｈｅｒｅ）」を真に実現できるであろう。さらに、非手続き型アプリケーション定義と手続き型アプリケーション定義を結合することにより、プログラミング時間及び作業が大幅に削減できる。
【００４５】
コンポーネントアプリケーションモデルの動作
図５は、ネットワーク１０４上でのデバイス１００への以後の通信のために無線コンポーネントアプリケーション３０２を構築する方法を描くフローチャートである。図３も参照すると、本方法は、ユーザ及び注文などのデータエンティティを定義するためにデータコンポーネント４００を作成するステップ６００で開始する。本方法は、画面、ボタン、メニュー、及び画像などのユーザインタフェース要素を定義するためにプレゼンテーションコンポーネント４０２を作成するステップ６０２を続行する。本方法は、サーバ１０６（図１を参照）上でのウェブサービスなどの外部システムに送信されるメッセージフォーマットを定義するためにメッセージコンポーネント４０２を作成するステップ６０４を続行する。コンポーネント４００、４０２、４０４は、ＸＭＬに基づいたものであるが、これに限定されない構造化定義言語で表現される。本方法は、アプリケーション３０２の動作を定義するために、データ４００、プレゼンテーション４０２、及びメッセージ４０４コンポーネントをワークフローコンポーネント４０６と結び付けるステップ６０６で終わる。ワークフローコンポーネント４０６は、前述されるＥＣＭＡＳｃｒｉｐｔの部分集合などのスクリプト言語に基づいて作成される。無線コンポーネントアプリケーション３０２を構築する方法は、図５に図示されるステップより少ないまたは多いステップを含んでよい。
【００４６】
図１及び図６を参照すると、デバイス１００とウェブサーバ１０６のウェブサービスの間の対話の動作８００が示されている。ウェブサービスは、デバイス１００がウェブサービスとの通信を開始することを要求する要求メッセージ１０５を受信する（８０２）。ウェブサービスは、ウェブサービスとデバイス１００の間の以後の情報交換をサポートするために、コンポーネントアプリケーション３０２の必要とされるコンポーネント４００、４０２、４０４、４０６（のどれかがある場合に）をデバイス１００にアップロードする（８０４）。デバイスは、コンポーネントアプリケーション３０２の実行可能バージョンを作成することにより、ウェブサービスのウェブクライアントとしてデバイスを構成するために、送信済みのコンポーネントアプリケーション３０２を受け取り、実行時環境により該コンポーネント４００、４０２、４０４、４０６を提供８０６するために進む。デバイス１００のユーザはウェブサービス動作を受信するための要求メッセージ１０５としてのウェブサービスへの以後の送信８１０のためのデバイス１００のユーザインタフェース２０２（図２を参照）にデータを入力する（８０８）。ウェブサービスは、要求メッセージ１０５を処理し、ユーザインタフェース２０２上での以後の出力のためにデータを含む適切な応答メッセージ１０５を送信する（８１２）。デバイス１００は、データを含むメッセージ１０５を受信し（８１４）、コンポーネントアプリケーション３０２の実行可能なバージョンがユーザインタフェース２０２上で適切にデータを出力する。追加のデータ交換８１６は、前記に従ってデバイス１００とウェブサービスの間で実行される、あるいは交換は終了され（８１８）、コンポーネントアプリケーション３０２の実行可能バージョンがメモリ２１０（図２を参照）に保存されるか、あるいは所望されるように実行時環境から削除される。
【００４７】
例えば、図１、図３、及び図７を参照すると、動作９００は、デバイス１００がメッセージデータを含む応答メッセージ１０５をいつ受信するのかを示し（９０２）、適切なワークフローコンポーネント４０６が適切なメッセージコンポーネント４０４に従ってメッセージ１０５のデータコンテンツを解釈する（９０４）。ワークフローコンポーネント４０６は、次にデーアコンテンツを処理し（９０６）、メモリモジュール２１０（図２を参照）での以後の記憶９１２のために対応するデータコンポーネント４００の中にデータを挿入する（９１０）。さらに、必要な場合、ワークフローコンポーネント４０６は、ユーザインタフェース２０２（図２を参照）上での以後の表示９１４のために適切なプレゼンテーションコンポーネント４０２にデータを挿入する（９０８）。
【００４８】
図１、図３、及び図８を参照すると、動作１０００は、ユーザがユーザインタフェース２０２（図２を参照）を通してユーザインタフェース要素上で実行した１００３ボタンを押すまたはメニュー項目を選択するなどのアクションのためのデータ入力１００２を示している。関連するワークフローコンポーネント４０６は、適切なプレゼンテーションコンポーネント４０４に従って入力データを解釈し（１００４）、適切なデータコンポーネント４００により定義されるデータエンティティを作成する（１００６）。ワークフローコンポーネント４０６は、次にデータコンポーネント４００に、メモリモジュール２１０（図２を参照）内での以後の記憶１０１２のためにユーザにより提供される入力データを投入する（１０１０）。さらに、ワークフローコンポーネント４０６は、メッセージコンポーネント４０４により定義されるように、メッセージ１０５内のウェブサービスへのデータエンティティとしての入力データの以後の送信１０１４のために適切なメッセージコンポーネント４０４に入力データも挿入する（１００８）。
【００４９】
コンポーネントアプリケーション３０２は完全なプログラミング言語を使用するのではなく、学習するのが比較的に簡略且つ容易である、ＸＭＬ及びＥＣＭＡＳｃｒｉｐｔなどの規格に基づいた技術をむしろ使用するために、前述された方法を使用して作成されるコンポーネントアプリケーション３０２が、ハードコード化されたアプリケーションを作成するために要する時間はさらに少ないことが認識される。本方法は、ユーザインタフェース２０２及びデータの定義が減結合されるコンポーネントアプリケーション３０２を生じさせる場合がある。この減結合は、アプリケーション３０２内での他のコンポーネント４００、４０２、４０４、４０６に影響を及ぼさず、多大な変化を必要とせずに、コンポーネントアプリケーション３０２内での任意のコンポーネント４００、４０２、４０４、４０６の修正に対処し、このようにしてデバイス１００上でのコンポーネントアプリケーション３０２の修正及び更新を含むコンポーネントアプリケーション３０２の保守を容易にできる。
【００５０】
図９は、図１及び図６のデバイス１００の追加例である二重モード移動通信装置７１０のブロック図である。二重モード移動通信装置７１０は、トランシーバ７１１、マイクロプロセッサ７３８、ディスプレイ７２２、フラッシュメモリ７２４、ＲＡＭメモリ７２６、補助入出力（Ｉ／Ｏ）デバイス７２８、シリアルポート７３０、キーボード７３２、スピーカ７３４、マイクロフォン７３６、短距離無線通信サブシステム７４０を含み、他のデバイスサブシステム７４２も含んでよい。トランシーバ７１１は、好ましくは、送信アンテナと受信アンテナ７１６、７１８、受信機７１２、送信機７１４、１つまたは複数のローカル発振器７１３、及びデジタル信号プロセッサ７２０を含む。フラッシュメモリ７２４内では、二重モード移動通信装置７１０が、好ましくは、音声通信モジュール７２４Ａ、データ通信モジュール７２４Ｂ、及び複数の他の機能を実施するための複数の他の操作モジュール７２４Ｎを含む、マイクロプロセッサ７３８（及び／またはＤＳＰ７２０）によって実行できる複数のソフトウェアモジュール７２４Ａから７２４Ｎを含む。
【００５１】
二重モード移動通信装置７１０は、好ましくは音声通信機能及びデータ通信機能を有する双方向通信装置である。したがって、例えば二重モード移動通信装置７１０は、アナログセルラーネットワークまたはデジタルセルラーネットワークのどれかなどの音声ネットワーク上で通信してよく、データネットワーク上で通信してもよい。音声ネットワーク及びデータネットワークは、通信タワー７１９によって図９に描かれている。これらの音声ネットワーク及びデータネットワークは、基地局、ネットワークコントローラ等の別個のインフラストラクチャを使用する別々の通信網であってよいか、あるいはそれらは単一の無線網に統合されてよい。
【００５２】
通信サブシステム７１１は、音声ネットワーク及びデータネットワーク７１９と通信するために使用され、受信機７１２、送信機７１４、１つまたは複数のローカル発振器７１３を含み、ＤＳＰ７２０も含んでよい。ＤＳＰ７２０は、送信機７１４と受信機７１２へ信号を送信し、送信機７１４と受信機７１２から信号を受信するために使用され、送信機７１４から制御情報を受信し、制御情報を受信機７１２へ提供するためにも活用される。音声通信及びデータ通信が単一の周波数あるいは密集した周波数のセットで発生すると、単一のローカル発振器７１３が送信機７１４と受信機７１２とともに使用されてよい。代わりに、さまざまな周波数が音声通信対データ通信に活用される場合には、複数のローカル発振器７１３が、音声ネットワーク及びデータネットワーク７１９に対応する複数の周波数を生成するために使用できる。図９には２本のアンテナ７１６、７１８が描かれているが、二重モード移動通信装置７１０は単一のアンテナ構造とともに使用できるであろう。音声情報とデータ情報の両方を含む情報はＤＳＰ７２０とマイクロプロセッサ７３８の間のリンクを介して通信モジュール７１１に、及び通信モジュール７１１から通信される。周波数帯、コンポーネント選択、電力レベル等の通信サブシステム７１１の詳細な設計は、二重モード移動通信装置７１０が動作することを目的とする通信網７１９に依存している。例えば、北米市場で動作することを目的とする二重モード移動通信装置７１０が、ＭｏｂｉｔｅｘTMまたはＤａｔａＴＡＣTM移動体データ通信網と動作するように設計され、ＡＭＰＳ、ＴＤＭＡ、ＣＤＭＡ、ＰＣＳ等の種々の音声通信網のどれかとも動作するように設計される通信サブシステム７１１を含んでよいのに対し、欧州使用向けのデバイス７１０は、ジェネラルパケットラジオサービス（ＧＰＲＳ）データ通信網及びＧＳＭ音声通信網と動作するように構成されてよい。また、他の種類のデータネットワーク及び音声ネットワークは、分離型及び統合型の両方とも、二重モード移動通信装置７１０と活用されてよい。
【００５３】
１つまたは複数のネットワーク７１９の種類に応じて、二重モード移動通信装置７１０のアクセス要件も変わる可能性がある。例えば、Ｍｏｂｉｔｅｘ及びＤａｔａＴＡＣデータネットワークにおいては、モバイル機器は各デバイスに関連付けられる一意の識別番号を使用してネットワーク上で登録される。しかしながら、ＧＰＲＳデータネットワークにおいては、ネットワークアクセスはモバイル機器の加入者またはユーザと関連付けられる。ＧＰＲＳデバイスは、通常、ＧＰＲＳネットワーク上で二重モード移動通信装置を操作するために必要とされる加入者アイデンティティモジュール（「ＳＩＭ」）を必要とする。（存在する場合は）ローカルまたは非ネットワーク通信機能は、ＳＩＭを使用せずに動作可能であるが、二重モード移動通信装置は、９１１緊急呼び出しなどの法律的に必要とされる動作以外にデータネットワーク７１９上での通信を含むあらゆる機能を実施できないであろう。
【００５４】
あらゆる必要とされるネットワーク登録または活性化手順が完了したら、二重モード移動通信装置７１０は次にネットワーク７１９（または複数のネットワーク）上で音声信号とデータ信号の両方を含む通信信号を送受してよい。アンテナ７１６によって通信網７１９から受信される信号は、信号振幅、周波数ダウンコンバージョン、フィルタリング、チャネル選択等に備える受信機７１２に送られ、アナログからデジタルへの変換も提供してよい。受信された信号をアナログからデジタルに変換することで、デジタル復調及び復号などのより複雑な通信機能を、ＤＳＰ７２０を使用して実行できる。同様に、ネットワーク７１９に送信される信号は、例えばＤＳＰ７２０によって変調及び符号化を含み処理され、次にデジタルからアナログ変換、周波数アップコンバージョン、フィルタリング、増幅、及びアンテナ７１８を介した通信網７１９（または複数のネットワーク）への伝送のために送信機７１４に提供される。単一のトランシーバ７１１は音声通信とデータ通信の両方のために図９に示されるが、二重モード移動通信装置７１０が２台の別個のトランシーバ、つまり音声信号を送受するための第１のトランシーバと、データ信号を送受するための第２のトランシーバを含んでよいことが考えられる。
【００５５】
通信信号を処理することに加え、ＤＳＰ７２０は、受信機及び送信機制御にも備える。例えば、受信機７１２及び送信機７１４内で通信信号に適用される利得レベルは、ＤＳＰ７２０で実現される自動利得制御アルゴリズムを通して適応して制御されてよい。他のトランシーバ制御アルゴリズムも、トランシーバ７１１のより精密な制御を提供するためにＤＳＰ７２０で実現できるであろう。
【００５６】
マイクロプロセッサ７３８は、好ましくは二重モード移動通信装置７１０の全体的な動作を管理、制御する。多くの種類のマイクロプロセッサまたはマイクロコントローラがここで使用できる、あるいは代わりに単一のＤＳＰ７２０がマイクロプロセッサ７３８の機能を実施するために使用できるであろう。少なくともデータ通信及び音声通信を含む低レベル通信機能は、トランシーバ７１１内のＤＳＰ７２０を通して実行される。音声通信アプリケーション７２４Ａ及びデータ通信アプリケーション７２４Ｂなどの他の高水準の通信アプリケーションは、マイクロプロセッサ７３８による実行のためにフラッシュメモリ７２４に記憶されてよい。例えば、音声通信モジュール７２４Ａは、ネットワーク７１９を介して、二重モード移動通信装置７１０と複数の他の音声装置の間で音声呼び出しを送受するために動作できる高水準ユーザインタフェースを提供してよい。同様に、ネットワーク７１９を介して、データ通信モジュール７２４Ｂは、二重モード移動通信装置７１０と複数の他のデータデバイスの間で電子メールメッセージ、ファイル、オーガナイザ情報、ショートテキストメッセージ等のデータを送受するために動作可能な高水準ユーザインタフェースを提供してよい。二重モード移動通信装置７１０においては、前述されたようなコンポーネントフレームワーク２０６は、ソフトウェアモジュールまたはアプリケーションとしても実現されてよい、あるいはソフトウェアモジュール７２４Ａから７２４Ｎの１つに組み込まれてよい。
【００５７】
マイクロプロセッサ７３８は、ディスプレイ７２２、フラッシュメモリ７２４、ランダムアクセスメモリ（ＲＡＭ）７２６、補助入出力（Ｉ／Ｏ）サブシステム７２８、シリアルポート７３０、キーボード７３２、スピーカ７３４、マイク７３６、短距離通信サブシステム７４０及び通常は７４２として示される任意の他の二重モード移動通信装置サブシステムなどの他の二重モード移動通信装置サブシステムとも対話する。
【００５８】
図９に図示されるサブシステムのいくつかは通信関連の機能を実行するのに対し、他のサブシステムは常駐機能、またはオンデバイス機能を提供してよい。特に、キーボード７３２及びディスプレイ７２２などのいくつかのサブシステムは、データ通信網上で伝送のためにテキストメッセージを入力するなどの通信関連機能と、計算機またはタスクリストまたはＰＤＡ型機能などのデバイスに常駐する機能の両方のために使用されてもよい。
【００５９】
マイクロプロセッサ７３８によって使用されるオペレーティングシステムソフトウェアは、好ましくはフラッシュメモリ７２４などの固定記憶域に記憶される。二重モード移動通信装置７１０の低レベル機能のすべてを制御するオペレーティングシステムに加えて、フラッシュメモリ７２４は、複数の高水準ソフトウェアアプリケーションプログラムまたは音声通信モジュール７２４Ａ、データ通信モジュール７２４Ｂ、オーガナイザモジュール（不図示）、または任意の他の種類のソフトウェアモジュール７２４Ｎなどのモジュールを含んでもよい。フラッシュメモリ７２４は、データを記憶するためのファイルシステムも含んでもよい。これらのモジュールはマイクロプロセッサ７３８により実行され、二重モード移動通信装置のユーザとモバイル機器の間で高水準インタフェースを提供する。このインタフェースは、通常ディスプレイ７２２を通して提供されるグラフィックコンポーネント、及び補助Ｉ／Ｏ７２８、キーボード７３２、スピーカ７３４、及びマイク７３６を通して提供される入出力コンポーネントを含む。オペレーティングシステム、特定の二重モード移動通信装置ソフトウェアアプリケーションまたはモジュール、あるいはその部分は、さらに高速な動作のためにＲＡＭ７２６などの揮発性記憶装置に一時的にロードされてもよい。さらに受信された通信信号も、固定記憶装置７２４内に位置するファイルシステムにそれらを恒久的に書き込む前にＲＡＭ７２６に一時的に記憶されてもよい。
【００６０】
二重モード移動通信装置７１０上にロードされてよい例示的なアプリケーションモジュール７２４Ｎは、カレンダイベント、約束、及びタスク項目などのＰＤＡ機能性を提供するパーソナル情報マネージャ（ＰＩＭ）アプリケーションである。このモジュール７２４Ｎも、電話呼、ボイスメール等を管理するために音声通信モジュール７２４Ａと対話し、電子メール通信及び他のデータ伝送を管理するためにデータ通信モジュールと対話してもよい。代わりに、音声通信モジュール７２４Ａ及びデータ通信モジュール７２４Ｂの機能性のすべてはＰＩＭモジュールに統合されてもよい。
【００６１】
フラッシュメモリ７２４は、好ましくは二重モード移動通信装置７１０上でのＰＩＭデータ項目の記憶を容易にするためにファイルシステムを提供する。ＰＩＭアプリケーションは、好ましくは単独で、または無線網７１９を介して音声通信モジュールとデータ通信モジュール７２４Ａ、７２４Ｂとともにデータ項目を送受する能力を含む。ＰＩＭデータ項目は、好ましくは、無線網７１９を介して、ホストコンピュータシステムと記憶されるまたは関連付けられるデータ項目の対応するセットと円滑に統合され、同期され、更新され、それにより特定のユーザに関連付けられるデータ項目用のミラードシステムを生じさせる。
【００６２】
二重モード移動通信装置７１０は、二重モード移動通信装置７１０のシリアルポート７３０をホストシステムのシリアルポートに結合するインタフェースクレードルに二重モード移動通信装置７１０を設置することによりホストシステムと手動で同期されてもよい。シリアルポート７３０は、ユーザが外付け装置またはソフトウェアアプリケーションを通して優先順位を設定する、あるいはインストールのための他のアプリケーションモジュール７２４Ｎをダウンロードできるようにするために使用されてもよい。この結線されたダウンロード経路は、二重モード移動通信装置７１０の上に暗号化鍵をロードするために使用されてよく、無線網７１９を介して暗号化情報を交換するよりさらに安全な方法である。
【００６３】
追加のアプリケーションモジュール７２４Ｎが、ネットワーク７１９を通して、補助Ｉ／Ｏサブシステム７２８を通して、シリアルポート７３０を通して、短距離通信サブシステム７４０を通して、または任意の他の適切なサブシステム７４２を通して二重モード移動通信装置７１０にロードされ、フラッシュメモリ７２４またはＲＡＭ７２６にユーザによってインストールされてよい。このようなアプリケーションのインストールの柔軟性が、二重モード移動通信装置７１０の機能性を高め、強化されたオンデバイス機能、通信関係機能または両方を提供してもよい。例えば、安全な通信アプリケーションが、電子商取引機能及び二重モード移動通信装置７１０を使用して実行される他のこのような金融取引を可能にしてもよい。
【００６４】
二重モードデバイス７１０がデータ通信モードで動作しているとき、テキストメッセージまたはウェブページダウンロードなどの受信された信号はトランシーバ７１１によって処理され、好ましくはディスプレイ７２２へ、あるいは代わりに補助Ｉ／Ｏ装置７２８への出力のために受信信号をさらに処理するマイクロプロセッサ７３８に提供される。二重モード移動通信装置７１０のユーザは、既知のＤＶＯＲＡＫ様式などの他の様式の完全な英数字キーボードも使用できるが、好ましくはＱＷＥＲＴＹ様式でレイアウトされる完全な英数字キーボードであるキーボード７３２を使用して電子メールメッセージなどのデータ項目を構成してもよい。二重モード移動通信装置７１０へのユーザ入力は、さらに、サムホイール入力装置、タッチパッド、種々のスイッチ、ロッカー入力スイッチ等の複数の補助Ｉ／Ｏ装置７２８でさらに強化される。ユーザによって入力される、構成されたデータ項目は次にトランシーバ７１１を介して通信網７１９上で送信されてもよい。
【００６５】
二重モード移動通信装置７１０が音声通信モードで動作しているとき、受信信号が好ましくはスピーカ７３４に出力され、伝送のための音声信号がマイク７３６によって発生する点を除き、二重モード移動通信装置７１０の全体的な動作は、実質的にデータモードに類似する。ボイスメッセージ記録サブシステムなどの代替のボイスまたは音声Ｉ／Ｏサブシステムも二重モード移動通信装置７１０で実現されてもよい。ボイスまたは音声信号出力は好ましくはおもにスピーカ７３４を通して達成され、ディスプレイ７２２も発呼者のアイデンティティ、ボイスコールの持続時間、または他のボイスコール関連情報の表示を提供するために使用されてもよい。例えば、マイクロプロセッサ７３８は、音声通信モジュール及びオペレーティングシステムソフトウェアとともに、入信ボイスコールの発呼者識別情報を検出し、それをディスプレイ７２２に表示してよい。
【００６６】
短距離通信サブシステム７４０は、二重モード移動通信装置７１０にも含まれる。例えば、短距離通信サブシステム７４０は、同様にイネーブルされたシステム及びデバイスとの通信に備えるために、赤外線装置及び関連する回路とコンポーネント、あるいはブルーツースTMモジュールまたは８０２．１１モジュールなどの短距離無線通信モジュールを含んでよい。当業者は、「ブルーツース」及び８０２．１１が、それぞれ無線パーソナルエリアネットワーク及び無線ＬＡＮに関係する電気電子技術者協会（ＩＥＥＥ）から入手できる仕様書のセットを指すことを理解されたい。
【００６７】
ここでの開示は１つまたは複数の例示的なシステム及び方法に引かれるが、多くの変形が分野に精通した人に明らかになり、このような変形は本願の範囲内にある。例えば、ＸＭＬ及びＥＣＭＡＳｃｒｉｐｔの部分集合は示されている例で使用されているが、コンポーネントアプリケーション３０２を定義するためには、他の言語及び言語の変形物が使用されてもよい。
【図面の簡単な説明】
【００６８】
【図１】ネットワークシステムのブロック図である。
【図２】図１のジェネリック端末装置のブロック図である。
【図３】図２のデバイスのコンポーネントフレームワークのブロック図である。
【図４】図２のコンポーネントアプリケーションプログラムのブロック図である。
【図４ａ】図１のシステムのための代表的なアプリケーションパッケージング及びホストモデルを示す。
【図４ｂ】図１のデバイスのクライアント実行時のモデルである。
【図５】図４の無線コンポーネントアプリケーションを構築する方法を描くフローチャートである。
【図６】図１のデバイスとスキーマ定義サービスの間で通信するための方法のフローチャートである。
【図７】図４のコンポーネントアプリケーションプログラムを実現する例の方法を示す。
【図８】図４のコンポーネントアプリケーションプログラムを実現する追加の例の方法を示す。
【図９】図１のデバイスの追加の例のブロック図である。
【図１】
2006512694.tif 000003
【図２】
2006512694.tif 000004
【図３】
2006512694.tif 000005
【図４】
2006512694.tif 000006
【図４ａ】
2006512694.tif 000007
【図４ｂ】
2006512694.tif 000008
【図５】
2006512694.tif 000009
【図６】
2006512694.tif 000010
【図７】
2006512694.tif 000011
【図８】
2006512694.tif 000012
【図９】
2006512694.tif 000013
【国際調査報告】
2006512694.tif 000014
2006512694.tif 000015
2006512694.tif 000016