説明

ワイヤレスコンポーネントアプリケーションを作り上げるためのシステム及び方法

ワイヤレスコンポーネントアプリケーションを作り上げるシステム及び方法が提供される。コンポーネントアプリケーションは、ワイヤレスネットワーク及びインターネットを介してウェブサービスと通信する、モバイル通信デバイス上で実行される。該コンポーネントアプリケーションは、データコンポーネント、プレゼンテーションコンポーネント、及び、XMLコードで書かれているメッセージコンポーネントを有している。コンポーネントアプリケーションは、さらにECMAスクリプトのサブセットで書かれ、且つXMLコードに埋め込まれたワークフローコンポーネントを有している。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、概してワイヤレス通信にそして詳細にはモバイル通信装置のためのソフトウェアに関する。
【背景技術】
【0002】
携帯電話、ワイヤレス通信能力を有するPDA(携帯情報端末)及び双方向ポケットベルのように、とどまることなく増加している多数のモバイル通信デバイスが今日用いられている。これらのモバイル通信デバイス上で動くソフトウェアアプリケーションは、それらの有用性を増大させている。例えば、携帯電話は、都市の区域についての天気を検索するアプリケーションを含んでいるかもしれず、あるいはPDAは、ユーザが食品雑貨の買い物をすることを可能とするアプリケーションを含んでいるかもしれない。これらのアプリケーションは、これらのデバイスの可動性及びユーザがどこにいるかにかかわらず、ユーザにタイムリーで且つ有用なサービスを提供するためにワイヤレスネットワークへの接続性を利用している。しかしながら、モバイル通信デバイスの限られた資源、及びモバイル通信デバイスへワイヤレスでデータを送ることの複雑さに起因して、モバイル通信デバイスのためのソフトウェアアプリケーションを開発することは、依然として困難で且つ時間のかかる仕事のままである。
【0003】
現今において、モバイル通信デバイスは、インターネットベースのブラウザ及び/又はネイティブのアプリケーションを介してウェブサービスと通信すべく構成されている。ブラウザは、種々の異なるデバイスのためのクロスプラットフォームベース上で動作させるべく適合させ得るという利点を有しているが、しかしながら画面内に含まれるデータの持続性を妨げる、ウェブサービスからページ(HTMLでの画面定義)を要求するという不都合を有している。ブラウザのさらなる不都合は、画面は、実行時に描かれ、それは資源集約型であり得ることである。ネイティブアプリケーションは、モバイルデバイスのタイプのために特定的に開発され、それによって各ランタイム環境について比較的最適化されたアプリケーションプログラムを提供するという利点を有している。しかしながら、ネイティブアプリケーションは、プラットフォーム独立でなく、それによって同一のアプリケーションの多数のバージョンの開発を必要とし、そしてサイズが比較的大きくなり、それによってモバイルデバイスのメモリ資源に重い負担をかけるという不都合を有している。さらに、アプリケーション開発者は、これらのハードコードされたネイティブアプリケーションを構築するためにJava(登録商標)及びC++のようなプログラミング言語についての経験を必要とする。広範囲にわたる種々のランタイム環境を有し同様にモバイルデバイス資源の消費が低減されたウェブサービスクライアント上で実行され得るアプリケーションプログラムについての必要性が存在する。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明において開示されるシステム及び方法は、上述において提示された不都合の少なくともいくらかを未然に防ぎ又は軽減するコンポーネントベースのアプリケーション環境を提供している。
【課題を解決するための手段】
【0005】
現在のアプリケーションプログラムは、広範囲にわたる種々のランタイム環境を有するクライアント上で実行されるべく適合可能ではなく、そして望ましくないことにあまりに多くモバイルデバイスの資源を消費し得る。ブラウザは、画面内に含まれるデータの持続性を妨げる、ウェブサービスからページ(HTMLでの画面定義)を要求するという不都合を有するアプリケーションプログラムである。ブラウザのさらなる不都合は、画面は、実行時に描かれ、それは資源集約的であり得ることである。ネイティブアプリケーションは、プラットフォーム独立でなく、それによって同一のアプリケーションの多数のバージョンの開発を必要とし、そしてサイズが比較的大きく、それによってモバイルデバイスのメモリ資源に重い負担をかけるという不都合を有している現在のアプリケーションプログラムのさらなる例である。現在のアプリケーションプログラムとは逆に、ワイヤレスコンポーネントアプリケーションにより作り上げ且つそれと通信するシステムが、提供される。該システムは、モバイル通信デバイス上で実行し、ワイヤレスネットワーク及びインターネットを介してウェブサービスと通信するコンポーネントアプリケーションを備えている。コンポーネントアプリケーションは、1つ以上のデータコンポーネント、プレゼンテーションコンポーネント、及び/又は、メッセージコンポーネントを有しており、それらは、XMLコードのような構造化定義言語で書かれている。コンポーネントアプリケーションは、ECMAスクリプトのサブセットで書かれたような一連の命令を含むワークフローコンポーネントをさらに有していても良く、そしていくつかの実施においてはXMLコードに埋め込まれていても良い。ワイヤレスコンポーネントアプリケーションを作り上げる方法も提供される。該方法は、データコンポーネントを作成するステップ、プレゼンテーションコンポーネントを作成するステップ、及びメッセージコンポーネントを作成するステップの各ステップを有している。データ、プレゼンテーション、及びメッセージコンポーネントは、いくつかの実施においてはXMLで書かれていても良い。該方法は、データ、プレゼンテーション、及びメッセージコンポーネントを、ECMAスクリプトのサブセットのようなプログラム言語における1セットの命令として書かれたワークフローコンポーネントに一緒に連結することをさらに含む。
【0006】
したがって、ネットワーク越しにモバイル通信デバイスによってウェブサービスと対話する方法が提供される。該方法は、ウェブサービスと通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するステップと、要求ネットワークメッセージに応答し、複数のコンポーネントであって、該コンポーネントの第1のセットは、構造化定義言語で表現されたデスクリプタ(descriptors)を有し、且つコンポーネントの第2のセットは、一連の命令として表現されていて、コンポーネントは、ウェブサービスのウェブクライアントとしてデバイスを構成するコンポーネントアプリケーションプログラムの実行可能バージョンを生成するため通信デバイスのランタイム環境により供給する(provisioning)ために構成されている、複数のコンポーネントを含むコンポーネントアプリケーションプログラムを送信するステップと、の各ステップを有し、該実行可能バージョンの実行は、ウェブサービスと通信デバイスとの間のネットワーク越しでの後続の情報の交換を提供する。
【0007】
また、複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しで対話するために構成されたモバイル通信デバイスも開示されている。該デバイスは、実行可能バージョンを実行するためのプロセッサ及び関連付けられたメモリを含むモバイルデバイスを動作させるためのデバイスインフラストラクチャと、実行可能バージョンと通信するために構成された入力デバイス及び出力デバイスを有してデバイスインフラストラクチャに結合されたユーザインタフェースと、デバイスインフラストラクチャに結合され且つネットワークと通信するために構成されたワイヤレストランシーバと、ウェブサービスのウェブクライアントとしてデバイスを構成するために実行可能バージョンの実行を調整するためのランタイム環境であり、構造化定義言語にて表現されたデスクリプタを有するコンポーネントの第1のセット及び一連の命令として表現されたコンポーネントの第2のセットと対話するために構成されているランタイム環境と、を備えており、実行可能バージョンの実行は、ウェブサービスとネットワーク越しの通信デバイスの間のネットワーク越しの後続の情報の交換を提供する。
【0008】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するためにモバイル通信デバイスを構成するためのコンピュータプログラム製品がさらに開示される。該コンピュータプログラム製品は、コンピュータ可読媒体と、ウェブサービスのウェブクライアントとしてデバイスを構成するために実行可能バージョンの実行を調整するためにコンピュータ可読媒体上に格納されたランタイム環境モジュールであり、構造化定義言語にて表現されたデスクリプタを有するコンポーネントの第1のセット及び一連の命令として表現されているコンポーネントの第2のセットと対話するために構成されたランタイム環境と、を備えており、実行可能バージョンの実行は、ウェブサービスとネットワーク越しの通信デバイスの間のネットワーク越しの後続の情報の交換を提供する。
【0009】
ネットワーク越しにモバイル通信デバイスと対話するためのウェブサービスを提供するために構成されたサーバも本発明において開示される。該サーバは、ウェブサービスと通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するためのネットワークインタフェースと、要求ネットワークメッセージに応答して、送信するためにネットワークインタフェースに結合されたコンポーネントアプリケーションプログラムであって、該コンポーネントアプリケーションプログラムは複数のコンポーネントを含み、該コンポーネントの第1のセットは、構造化定義言語で表現されたデスクリプタを有し、且つコンポーネントの第2のセットは、一連の命令として表現され、該コンポーネントは、ウェブサービスのウェブクライアントとしてデバイスを構成するコンポーネントアプリケーションプログラムの実行可能バージョンを生成するため通信デバイスのランタイム環境により供給するために構成されている、コンポーネントアプリケーションプログラムをを備えており、該実行可能バージョンの実行は、ウェブサービスと通信デバイスとの間のネットワーク越しでの後続の情報の交換を提供する。
【0010】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するために構成されたモバイル通信デバイスも提供される。該デバイスは、実行可能バージョンを実行すべくモバイルデバイスを動作させるためのインフラストラクチャ手段と、実行可能バージョンと通信するために構成されたインフラストラクチャ手段に結合されたユーザインタフェース手段と、デバイスインフラストラクチャに結合され且つネットワークと通信するために構成されたトランシーバ手段と、ウェブサービスのウェブクライアントとしてデバイスを構成するために実行可能バージョンの実行を調整するためのランタイム手段であり、構造化定義言語にて表現されたデスクリプタを有するコンポーネントの第1のセット及び一連の命令として表現されているコンポーネントの第2のセットと対話するために構成されたランタイム手段と、を備えており、実行可能バージョンの実行は、ウェブサービスとネットワーク越しの通信デバイスの間のネットワーク越しの後続の情報の交換を提供する。
【0011】
これらのそして他の特徴は、添付図面に対する参照がなされている以下の詳細な説明において一層明らかになるであろう。
【発明を実施するための最良の形態】
【0012】
〔ネットワークシステム〕
図1を参照すると、ネットワークシステム10は、結合されたワイヤレスネットワーク102及びインターネット104を介してウェブサーバ106によって提供される1つ以上のウェブサービスと対話するためのモバイル通信デバイス100を備えている。デバイス100は、ウェブサーバ106のウェブサービスと通信しているときに、要求/応答メッセージ105を、それぞれ、送信及び受信する。デバイス100は、メッセージヘッダ情報及び関連付けられたデータコンテンツの形態での要求/応答メッセージ105を用いること、例えばオンライン商人からの商品価格付け及び入手可能性の要求及び受信、によって、ウェブサービスのウェブクライアントとして動作し得る。ウェブサービスは、通信デバイス100におけるクライアントアプリケーションプログラム302(図2を参照されたい)が、通信デバイス100のユーザに利便性を提供するために、ワイヤレスネットワーク102及びインターネット104を介して対話するシステムの一例である。通信デバイス100とウェブサービスの間で送信されるメッセージ105は、デバイス100とウェブサービスとによって使用される異なるフォーマットの間でメッセージ105を変換するメッセージマップサービス(図示せず)を通過することができる。
【0013】
適切な要求/応答メッセージ105を満足させるために、ウェブサーバ106は、デバイス100上に一旦準備されたクライアントアプリケーションプログラム302(図2を参照されたい)に関連性のある業務ロジック(方法)をあらわにするために、(それに限定されるわけではないが、HTTP及びコンポーネントAPIのような)種々のプロトコルを介してアプリケーションサーバ110と通信する。アプリケーションサーバ110は、ウェブサーバ106がアプリケーションサーバ110のサブセットとみなされ得るように、ウェブサーバ106のソフトウェアを含んでいても良い。デバイス100のアプリケーションプログラム302は、オブジェクト(又は関数)上のメソッドを呼び出すのと同様にアプリケーションサーバ110の業務ロジックを使用することができる。クライアントアプリケーションプログラム302は、ネットワーク102、104を経由して、デバイス100に対して直接的に、メッセージ105を介して、アプリケーションサーバ110に関してダウンロード/アップロードされ得ることが認識される。デバイス100は、ネットワーク102、104を経由して1つ以上のウェブサーバ106及び関連付けられたアプリケーションサーバ110と通信し得ることがさらに認識される。もし所望されるなら、デバイス100は、アプリケーションサーバ110に直接的に結合され、それによって、ウェブサーバ106をバイパスすることもまた認識される。
【0014】
〔サーバ環境〕
図1を参照すると、ウェブサーバ106は、通信デバイス100上でクライアントアプリケーションプログラム302によって使用される情報メッセージ105を提供する。それに代えて、又はそれに加えて、ウェブサーバ106は、通信デバイス100上で実行されるクライアントアプリケーションプログラム302によって提供される情報メッセージ105を受信し且つ使用しても良く、あるいは通信デバイス100上で実行されるクライアントアプリケーションプログラム302の代わりにタスクを実行しても良い。ウェブサービスは、ウェブサーバ106のソフトウェアサービスとして定義され得て、それはUDDI(Universal Discovery Description and Integration)に登録されたウェブサービス記述言語(WSDL)を用いて表現されるインタフェースを実施し得て、且つSOAP(Simple Object Access Protocol)のような適切なプロトコルを通してインターネット104越しにあらわにされることによって、クライアントデバイス100とメッセージ105を介して通信し得る。いくつかの実施において、SOAPは、SOAPエレメントに包まれた整形式のXMLフラグメントを含んで、メッセージ105のためのXMLフォーマットを定義する仕様である。SOAPの他の部分は、いかにプログラムデータをXMLとしてあらわすか及びリモートプロシージャコール(RPC)をするのにいかにSOAPを使用するかを明示する。SOAPのこれらのオプション的な部分は、RPC様式のアプリケーションを実施するのに使用され、そこでは呼び出し可能な関数及び該関数にわたすべきパラメータを含むSOAP要求メッセージ105がクライアントデバイス100から送信され、そしてサーバ106は、実行された関数の結果と共に応答メッセージ105を返す。SOAPは、また、ドキュメント様式のアプリケーションもサポートしており、そこではSOAPメッセージ105がXMLドキュメントのラッパーである。SOAPのさらなるオプション的な部分は、HTTPバインディング(すなわち、ヘッダ)を定義しており、いくつかのSOAPの実施は、MSMQ、MQシリーズ、SMTP、又はTCP/IP移送プロトコルをサポートしている。あるいは、ウェブサービスが、他の既知の通信プロトコル、メッセージ105のフォーマットを使用しても良く、そしてインタフェースは、上述された以外のウェブサービス言語で表現されていても良い。したがって、サーバ106によって供給されるサービスは、ネットワーク102、104越しでデバイス100のユーザによって利用される。
【0015】
〔クライアント環境〕
図2を参照すると、コンポーネントアプリケーション302は、図3に描かれているように、例えば、拡張可能マークアップ言語(XML)及びECMAスクリプトのサブセットで、書かれ得るソフトウェアアプリケーションである。XML及びECMAスクリプトは、ソフトウェア開発者が、移植可能で且つプラットフォーム独立な方法でコンポーネントアプリケーション302を開発するのを可能とする標準ベースの言語である。コンポーネントアプリケーション302は、ワイヤレスネットワーク102を経由して無線で送信されそしてデバイスインフラストラクチャ204のメモリモジュール210内にロードされる。あるいは、コンポーネントアプリケーション302は、シリアル接続、USB接続、又はIR、802.11(x)及び/又はブルートゥース(Bluetooth(商標))のような近距離ワイヤレス通信システムを経由してデバイス100上にロードされても良い。一旦、モバイル通信デバイス100上にロードされると、コンポーネントアプリケーション302は、デバイスインフラストラクチャ204におけるプロセッサによって実行されるネイティブコードにコンポーネントアプリケーション302を変換する、コンポーネントフレームワーク206によってモバイル通信デバイス100上で実行される。あるいは、コンポーネントアプリケーション302が、ネイティブコードとして実行されても良く、あるいはネイティブランタイム環境としてコンポーネントフレームワーク206を提供し、以下包括的に参照番号206によって参照される、他のソフトウェアモジュール又はオペレーティングシステムによってモバイル通信デバイス100上で解釈されてもよい。
【0016】
再び、図1及び図2を参照すると、デバイス100によって提供されるクライアントランタイム環境206は、デバイス100に(ウェブサーバ106の)ウェブサービスのウェブクライアントとして動作させるべく構成され得る。デバイス100のクライアントランタイム環境206は、デバイス100上で、(コンポーネントアプリケーションの形態である−図3を参照されたい)クライアントアプリケーションプログラム302を生成し、ホストし、そして実行することができることが望ましい。さらに、クライアントランタイム環境206の特定の機能は、それに限定されるわけではないが、言語、メモリ割り当ての調整、ネットワーキング、I/O操作の間におけるデータの管理、デバイス100の出力デバイス上のグラフィックスの調整、そしてコアオブジェクト指向クラス及びサポートするファイル/ライブラリへのアクセスの提供のサポートなどを含み得る。デバイス100によって実施されるランタイム環境206の例は、それに限定されるわけではないが、マイクロソフト(Microsoft)によるCLR(Common Language Runtime)及びサンマイクロシステムズ(Sun Microsystems)によるJava(登録商標)ランタイム環境(JRE)などを含む。
【0017】
デバイス100のターミナルランタイム環境206は、クライアントアプリケーションプログラム302の常駐実行可能バージョンのための限定されるわけではないが以下の基本的な機能をサポートすることが望ましい。
ネットワーク102、104を経由して結合されたウェブサーバ106のウェブサービスにメッセージ105を送信する通信能力を提供する。
ウェブサーバ106のウェブサービスの出力メッセージ105(サービスへのメッセージ)のためにデータ部分を供給すべくデバイス100の入力デバイス上でのユーザによるデータ入力能力を提供する。
ウェブサービスの応答メッセージ105(到来メッセージ)又はウェブサーバ106の相互に関係しない通知のために出力デバイス上にデータプレゼンテーション又は出力能力を提供する。
デバイス100のメモリモジュール(図2を参照されたい)におけるローカルクライアントデータを維持するデータ格納サービスを提供する。
及び、クライアントアプリケーションプログラム302のアプリケーションコンポーネント400、402、404、406(図3を参照されたい)の調整操作のためのスクリプト言語のための実行環境を提供する。
【0018】
それゆえ、ネイティブクライアントターミナルランタイム環境206は、クライアントアプリケーションプログラム302のための、そしてデバイスインフラストラクチャ204のプロセッサ208及び関連付けられたオペレーティングシステムのデバイス100、116の機能性に対するインタフェースを提供する。ランタイム環境206は、望ましくは、コンポーネントアプリケーションプログラム302をそこで実行する、デバイス100上に制御された、安全なそして安定な環境を供給する。ランタイム環境206は、通信デバイス100のデバイスインフラストラクチャ204各々について特有の実際のウェブクライアントを作り出すべくコンポーネント400、402、404、406の定義を提供する。
【0019】
〔通信デバイス〕
図1及び図2を参照すると、通信デバイス100は、それに限定されるわけではないが、携帯電話、PDA、双方向ポケットベル及びデュアルモード通信デバイス(図9を参照されたい)のようなデバイスである。デバイス100は、接続218を経由してデバイスインフラストラクチャ204に結合されたワイヤレストランシーバ200のようなネットワーク接続インタフェースを含んでいる。ワイヤレストランシーバ200は、デバイス100の操作の間、RFリンクによりワイヤレスネットワーク102へなど、ネットワーク102、104に接続可能であり、デバイス100が、ネットワーク102、104を経由して互いに及び(ウェブサーバ106のような)外部システムと通信することを可能とする。ワイヤレストランシーバ200は、また、デバイス100が、クライアントアプリケーションプログラム302とサーバ106、110との間で要求/応答メッセージ105を調整するのをも助ける。ネットワーク102、104は、ネットワーク102、104に接続された、デバイス100と外部システムとの間における要求/応答メッセージ150でのデータの送信をサポートする。ネットワーク102、104は、また、通信デバイス100とネットワーク102、104の外部にあるデバイスとの間の電話通話についての音声通信をサポートしていても良い。ワイヤレスデータ伝送プロトコルは、それに限定されるわけではないが、DataTAC、GPRS又はCDMAのようなワイヤレスネットワーク102によって使用され得る。ワイヤレスネットワーク102とインターネット104との間の接続は、インターネットゲートウェイ(図示せず)を含み、メッセージ105と関連付けられたデータコンテンツを、接続されたデバイス100とサーバ106のウェブサービスとの間に流すことを可能とする。
【0020】
再び図2を参照すると、デバイス100は、また、ユーザ(図示せず)と対話するために、接続222によってデバイスインフラストラクチャ204に結合されたユーザインタフェース202をも有している。ユーザインタフェース202は、それに限定されるわけではないが、QWERTY配列のキーボード、キーパッド、トラックホイール、スタイラス、マウス、マイクロフォン、のような1つ以上のユーザ入力デバイスと、LCD画面ディスプレイ及び/又はスピーカのようなユーザ出力デバイスとを含んでいる。画面が、タッチセンシティブである場合、ディスプレイは、デバイスインフラストラクチャ204によって制御されるようなユーザ入力デバイスとしても使用され得る。ユーザインタフェース202は、ランタイム環境206において実行されるクライアントアプリケーションプログラム302によって用いられるとき、システム10(図1を参照されたい)上で要求/応答メッセージメッセージ105を調整するべくデバイス100のユーザによって用いられる。
【0021】
図2を再度参照すると、通信デバイス100の操作は、デバイスインフラストラクチャ204によって可能となる。デバイスインフラストラクチャ204は、コンピュータプロセッサ208及び関連付けられたメモリモジュール210を含んでいる。コンピュータプロセッサ208は、オペレーティングシステム及びメモリモジュール210内に配置されたクライアントアプリケーションプログラム302によって提供される関連する命令を実行することによって通信デバイス100のネットワークインタフェース200、ユーザインタフェース202及びランタイム環境206の動作を操る。さらに、デバイスインフラストラクチャ204は、プロセッサへの命令、及び/又はメモリモジュール210におけるクライアントアプリケーションプログラム302をロード/アップデートする命令を提供するためのプロセッサ208に結合されているコンピュータ可読媒体212を含み得ることが認識される。コンピュータ可読媒体212は、例として、磁気ディスク、磁気テープ、CD/DVD ROMのような光学的可読媒体、及びメモリカードのような、ハードウェア及び/又はソフトウェアを含み得る。各々の場合において、コンピュータ可読媒体212は、スモールディスク、フロッピー(登録商標)ディスク、カセット、ハードディスクドライブ、固体メモリカード、又はメモリモジュール210内に設けられたRAMの形態をとるようにしても良い。上述された例のコンピュータ可読媒体212は、単独でか又は組み合わせてかのどちらでも使用され得ることに注意されるべきである。
【0022】
〔コンポーネントアプリケーションプログラム〕
図3を参照すると、コンポーネントアプリケーションプログラム302のブロック図は、データコンポーネント400と、プレゼンテーションコンポーネント402と、メッセージコンポーネント404とを有しており、それらは、クライアントランタイム環境206との通信214を通してワークフローコンポーネント406によって統合されている。構造化定義言語は、コンポーネント400、402、404を、各エレメントが1つ以上の値を持ち得るように、リソースの特定の属性をあらわす多数の予め定義されたエレメントからなる、一連のメタデータレコードとして構築するために使用され得る。各メタデータスキーマは、典型的には、それに限定されるわけではないが、限定された数のエレメント、各エレメントの名前、及び各エレメントについての意味、のような特性を定義している。メタデータスキーマ例は、それに限定されるわけではないが、例えばダブリンコア(DC)、英米目録規則(AACR2)、政府情報所在案内サービス(GILS)、EAD(Encoded Archives Description)、IMSグローバルラーニングコンソーシアム(IMS)、及びオーストラリア政府ロケータサービス(AGLS)を含んでいる。コード化シンタックスは、コンポーネント400、402、404のメタデータがデバイスインフラストラクチャ204(図2を参照されたい)によって処理されるのを可能とし、そしてコード化スキームは、それに限定されるわけではないが、例えばXML、HTML、XHTML、XSML、RDF、MARC(Machine Readable Cataloging)、及び多目的インターネットメール拡張仕様(MIME)を含んでいる。クライアントランタイム環境206は、アプリケーションプログラム302の実行可能バージョンを提供すべくコンポーネント400、402、404のメタデータデスクリプタに作用する。
【0023】
図4を再度参照すると、データコンポーネント400は、コンポーネントアプリケーションプログラム302によって使用されるデータ実体を定義する。データコンポーネント400が記述してもよいデータ実体の例は、注文、ユーザ、及び財務処理である。データコンポーネント400は、データ実体を記述するのにいかなる情報が必要とされるか、そして情報はいかなるフォーマットで表現されるかを定義する。例えば、データコンポーネント400は、それに限定されるわけではないが、例えば数としてフォーマットされる注文についての単一識別子からなる注文、文字列としてフォーマットされるアイテムのリスト、日時フォーマットを有する注文が作成された時、文字列としてフォーマットされる注文の状態、及び他の1つのデータコンポーネント400の定義に従ってフォーマットされる注文を出したユーザを定義しても良い。
【0024】
図4を再度参照すると、メッセージコンポーネント404は、ウェブサービスのような外部システムと通信するためにコンポーネントアプリケーションプログラム302によって使用されるメッセージのフォーマットを定義する。例えば、一つのメッセージコンポーネント404は、それに限定されるわけではないが、例えば注文のための単一識別子、注文の状態、及び注文に関連する覚え書きを含む注文を出すためのメッセージを記述しても良い。
【0025】
図4を再度参照すると、プレゼンテーションコンポーネント402は、ユーザインタフェース202によって表示されるようにコンポーネントアプリケーションプログラム302の外観及び振る舞いを定義する。プレゼンテーションコンポーネント402は、GUI画面及び制御、ならびにユーザがユーザインタフェース202を用いてコンポーネントアプリケーション302と対話するときに実行される動作を特定することができる。例えば、プレゼンテーションコンポーネント402は、画面、ラベル、編集ボックス、ボタン及びメニュー、ならびにユーザが編集ボックスにタイプし、又はボタンを押下する時にとられる動作を定義しても良い。ウェブサービス消費者の大多数は、ウェブサービス操作結果の視覚的プレゼンテーションを使用し、そしてそれゆえユーザインタフェース画面を表示することが可能な彼らのデバイス100にランタイム環境を備える。
【0026】
図1及び図4を参照すると、上述されたクライアントアプリケーションプログラム302定義ホスティングモデルにおいて、プレゼンテーションコンポーネント402は、クライアントプラットフォーム及びデバイス100の環境に依存して変化しても良いことが認識される。例えば、いくつかのケースにおいては、ウェブサービス消費者は、視覚的プレゼンテーションを必要としない。コンポーネントアプリケーションプログラム302のコンポーネント400、402、404、406のアプリケーション定義は、ウェブサービスレジストリに、種々の予め定義されたクライアントランタイム206(図2を参照されたい)についての1セットのプラットフォーム特定プレゼンテーションコンポーネント402デスクリプタを伴う、プラットフォーム中立のデータ400、メッセージ404、ワークフロー406コンポーネントデスクリプタの束としてホストされ得る。発見又は展開要求メッセージ105が発行されたとき、クライアントタイプは、この要求メッセージ105の一部として特定されるべきである。通信デバイス100の異なるクライアントプラットフォームについてのコンポーネントアプリケーションプログラム302をパッケージングしている間に、データ、メッセージ、及びワークフローメタデータを複製しないようにするために、アプリケーション定義は、プレゼンテーションコンポーネント402の異なるセットにリンクされたプラットフォーム中立コンポーネント定義の束として(例えば)アプリケーションサーバ110上にホストされ得る。ユーザが、発見又はダウンロード要求メッセージ105を作成したとき、通信デバイス100、116のクライアントランタイムタイプが検証され、且つ適切な束がウェブサーバ106によって、ネットワーク102、104越しでデバイス100への送付のために、構成される。それらのウェブサービス消費者のために、クライアントアプリケーションプログラム302は、ワークフローコンポーネント406を介して、データ400にリンクされたプレゼンテーションコンポーネント402及びメッセージ404コンポーネントを含み得る。
【0027】
図4を再度参照すると、コンポーネントアプリケーションプログラム302のワークフローコンポーネント406は、上述されたようにプレゼンテーションコンポーネント402によって特定される動作、又はメッセージ105(図1を参照されたい)がシステム10から到着したときに行われる動作のような、動作が行われるときに生じる処理を定義する。プレゼンテーション、ワークフロー及びメッセージ処理は、ワークフローコンポーネント406によって定義される。ワークフローコンポーネント406は、それに限定されるわけではないが、ECMAスクリプトのような、プログラム言語又はスクリプト言語で一連の命令として書かれており、そしてネイティブコードにコンパイルされ、且つ上述されたように、ランタイム環境206によって実行され得る。ワークフローコンポーネント406の例は、データに値を割り当て、画面を操作し、又はメッセージ105を送信することであっても良い。プレゼンテーションコンポーネントと同様に、多数のワークフロー定義は、複数のデバイス100の間で変化する性能及び特徴をサポートするために作成され得る。適切なワークフロー定義は、アプリケーションプログラム302のダウンロード及び準備の時に、決定され且つ送信され得る。
【0028】
ECMA(European Computer Manufacturers Association)スクリプトは、標準のスクリプト言語であり、スクリプトは、コンピュータプロセッサによるよりもむしろ他のプログラムによって解釈され又は実行される一連の命令として言及され得る。スクリプト言語のいくつかの他の例は、パール(Perl)、Rexx、VBスクリプト(VBScript)、Java(登録商標)スクリプト(Java(登録商標)Script)、及びTcl/Tkである。スクリプト言語は、一般に、デバイス100のような、既存のシステムの機能を操作し、カスタマイズしそして自動化するために使用される命令言語である。そのようなシステムにおいて、有用な機能性は、ユーザインタフェース202(図2を参照されたい)を介して既に利用可能であり、そしてスクリプト言語は、プログラム制御に対するその機能性をあらわにするためのメカニズムである。このように、デバイス100は、スクリプト言語の能力を完了するオブジェクト及び機能のホストランタイム環境を提供するものと言われている。
【0029】
特に、EMCAスクリプトは、ホストラインタイム環境の中でコンピュータ使用を行い且つコンピュータ使用対象を操作するためのオブジェクト指向プログラム言語である。ECMAスクリプトは、システム10(図1を参照されたい)のウェブベースのクライアントサーバアーキテクチャの一部としてサーバ106、110のコンピュータ使用を行わせるメカニズムを提供する、ウェブスクリプト言語として使用され得る。ECMAスクリプトは、種々のホストランタイム環境のためのコアスクリプティング能力を提供し、そしてそれゆえ、コアスクリプティング言語は、多数の特別なホストランタイム環境についてプラットフォーム中立であるとみなされ得る。ランタイム環境206(図2を参照されたい)は、通信デバイス100のクライアント側のコンピュータ使用のためのECMAスクリプトホストランタイム環境、それに限定されるわけではないが、例えば、ウィンドウ、メニュー、ポップアップ、ダイアログボックス、テキストエリア、アンカー、フレーム、履歴、クッキー、及び入力/出力、をあらわすオブジェクトを提供し得る。さらに、ランタイム環境206のホストランタイム環境は、スクリプトコードを、それに限定されるわけではないが、例えば、フォーカス、ページ及び画像ロード、アンロード、エラー、ならびに放棄、選択、フォームの提出、ならびにマウス動作などのイベントに付随させるための手段を提供する。ECMAスクリプトを用いる実施において、コードは、ワークフローコンポーネント406内にあらわれ、ユーザインタフェースエレメントを組み合わせ、固定し、ならびにテキスト及び画像を計算し、そしてユーザインタフェース202上におけるユーザ対話に反応する。ウェブサーバ106(図1を参照されたい)は、要求、クライアント、及びファイル、ならびにデータをロックし且つ共有するメカニズムをあらわすオブジェクトを含むサーバ側コンピュータ使用について異なるホスト環境を提供する。クライアント側及びサーバ側のスクリプトを一緒に使用することによって、クライアント通信デバイス100とサーバ106、110との間のコンピュータ使用を分配し、同時にウェブベースのコンポーネントアプリケーションプログラム302についてのカスタマイズされたユーザインタフェース202を提供することができる。
【0030】
ECMAスクリプトは、また、厳密にいえば、関数又はメソッドでないかもしれない1セットのビルトイン演算子をも定義する。ECMAスクリプト演算子は、それに限定されるわけではないが、例えば種々の単項演算、乗算演算子、加算演算子、ビットに関するシフト演算子、二進論理演算子、代入演算子、及びコンマ演算子を含んでいる。ECMAスクリプトシンタックスは、Java(登録商標)シンタックスに類似しており、しかしながら、ECMAスクリプトシンタックスは、開発者にとって使用し易いスクリプト言語としてそれを供するのを可能とするように緩和されている。例えば、ECMAにおける変数は、その型が宣言されていることを要求されず、また型がプロパティに関連付けられておらず、そして定義された関数は、それらを呼び出す前に構文的にそれらの宣言をすることが要求されない。クラスベースのオブジェクト指向プログラム言語においては、一般に、状態はインスタンスによって保持され、メソッドはクラスによって保持され、そして継承は構造及び振る舞いのみからなっていることが認められる。ECMAスクリプトにおいては、状態及びメソッドは、オブジェクトによって保持され、そして構造、振る舞い、及び状態は、全て継承される。
【0031】
〔コンポーネントアプリケーションプログラム例〕
したがって、図4を参照すると、クライアントアプリケーションプログラム302は、プラットフォーム中立の1セットのコンポーネント定義として、すなわちデータ400及びメッセージ404コンポーネント、ならびにプレゼンテーションコンポーネント402について、XML(又は他のいずれかの適切な構造化定義言語)を用いて、定義され得る。ワークフローコンポーネント406は、ECMAスクリプト(又は他のいずれかの適切なプラットフォーム中立のスクリプト言語)を用いて定義され得る。クライアントランタイム環境206(図2を参照されたい)は、コンポーネントアプリケーションプログラム302のコンポーネント400、402、404、406が通信デバイス100上に供給されるとき、メタ定義に基づいてコンポーネントテンプレートを生成し得る。多種多様のターミナルランタイム環境206とともに、XML又はECMAスクリプトのようなクロスプラットフォームの標準が、コンポーネントアプリケーションプログラム302を予め作り上げる代わりにアプリケーションコンポーネントメタデータを定義するのに使用され得る。この遅延結合は、コンポーネントアプリケーションプログラム302の包括的なアプリケーション定義が、種々の異なる通信デバイス100によってあらわされる、広範囲に種々のターミナルシステム環境206上で動くのを可能とし得る。
【0032】
次の例は、ウェブサービスクライアントアプリケーションプログラム302が、それに限定されるわけではないがXMLのような構造化定義言語、及びそれに限定されるわけではないがECMAスクリプトのようなプラットフォーム中立スクリプト/プログラム用言語を、次のドキュメント型定義(DTD)に従って定義されたコンポーネントと共に用いて、どのように表現され得るかを示している。
【0033】





【0034】
上述に与えられたように、XMLエレメントは、wcAppエレメント、wcDataエレメント、wcMsgエレメント、wcSrcエレメント、及びwcFlowエレメント、を含むコンポーネントアプリケーション302の例を定義する。図3を参照すると、wcAppエレメントは、コンポーネントアプリケーションプログラム302を定義するトップレベルのエレメントである。wcDataエレメントは、1グループの名前が付され、タイプが付されたフィールドからなるデータコンポーネント400の例を定義する。wcMsgエレメントは、同様に、1グループの名前が付され、タイプが付されたフィールドを定義するメッセージコンポーネント404の例を定義する。wcSrcエレメントは、プレゼンテーションコンポーネント402の例を定義する。プレゼンテーションコンポーネント402の例は、ラベル、セパレータ、画像、ボタン、編集フィールド、テキストエリア、単一選択リスト、多重選択リスト、ドロップリスト、チェックボックス、ラジオボタン、又は1グループの他のプレゼンテーションコンポーネント402を含む画面である。
【0035】
上述のコンポーネントアプリケーションプログラム302及び図3を参照すると、wcFlowエレメントは、ワークフローコンポーネント406の例を定義している。XMLエレメントのpblock属性は、wcFlowエレメントにネストされたpblockエレメントを特定する。各pblockエレメントは、コンポーネントアプリケーションプログラム302のワークフローの一部を定義するスクリプトを有している。スクリプトは、ECMAスクリプトで書かれている。
【0036】
コンポーネントアプリケーション302の振る舞いを定義するために、ワークフローコンポーネント406は、データコンポーネント400、プレゼンテーションコンポーネント402、及びメッセージコンポーネント404を参照し且つ操作するためにECMAスクリプトを使用する。ワークフローコンポーネント406は、また、外部オブジェクト型をも参照し得て、そのことはコンポーネントアプリケーション302に定義されたコンポーネント上で動作が行われることを可能とする。例えば、wcMsg型は、メッセージコンポーネント404によって定義されたメッセージが、必須のフィールドが与えられたかどうかを判定すべく評価され且つサーバ106のウェブサービスのような外部システムに送信されることを可能とする。wcData型は、データコンポーネント400によって定義されるデータ実体の収集のサイズが決定され且つデータ実体が削除されることを可能とする。wcScr型は、プレゼンテーションコンポーネント402がユーザに対して表示されることを可能とする。同様に、特定のダイアログ外部オブジェクトは、メッセージがユーザインタフェース202上(図2を参照されたい)でユーザに対して表示されることを可能とする。
【0037】
〔インタフェースを伴うコンポーネントアプリケーションプログラム302の例〕
図1及び図5を参照すると、さらなるコンポーネントアプリケーションプログラム302のさらなる例を図解するブロック図が示されている。コンポーネントアプリケーション302の例に含まれるプレゼンテーションコンポーネント402は、ログイン画面500、おすすめ品画面502、配達情報画面504、注文リスト画面508及び注文状態画面506を定義する。これらの画面は、通信デバイス100のユーザインタフェース202(図2を参照されたい)上に示される。コンポーネントアプリケーション302の例は、配達のためにピザを注文すべく、ユーザが、ピザメニューを見ること、及び過去の注文の詳細を見ることを可能とする。ユーザは、最初にユーザインタフェース202上にログイン画面500が示される。ユーザは、ユーザ名及びパスワードを提供し、そしてそれからログインボタン501を押下する。ワークフローコンポーネント406は、メッセージ105を介してサーバ106のウェブサービスによって提供されるユーザプロファイルに対してユーザ名とパスワードをチェックする。もしもユーザが、首尾良くログインされたならば、そのときおすすめ品画面502が表示される。おすすめ品画面502から、ユーザは、注文を出すべく又は注文の状態を見るべく、メニューアイテムを選択することができ、そのことは、配達情報画面504が表示されるかどうか、又は注文リスト画面508が表示されるかどうかを決定する。配達情報画面504は、ユーザが、注文の詳細を特定することを可能とする。ユーザによって提供される情報は、注文を記述するデータコンポーネント400を用いて格納される。
【0038】
ユーザは、それから、注文を送信すべくメニューアイテムを選択し、それは、サーバ106上のウェブサービスに対して、注文情報を含む対応するメッセージコンポーネント404によって定義されるメッセージ105を送信すべくワークフローコンポーネント406をトリガする。注文リスト画面508は、過去の注文をリストし、且つリストされた注文のうちの1つ以上の詳細を見るべく、ユーザがメニューアイテムを選択することを可能とする。注文を送信し又は注文の詳細を見るべくメニューアイテムを選択した後、デバイス100によって受信された応答メッセージ105に基づき、それに続いて関連性のあるメッセージ404、ワークフロー406、プレゼンテーション402、及びデータ400コンポーネントによって処理され、注文状態画面506が表示される。注文状態画面506は、ユーザが出した注文を記述する情報と、選択されたときにおすすめ品画面502が表示されるメニューアイテムを含む。メッセージコンポーネント404は、メッセージ105の入力及び出力に必要とされるデータを中継する。対応するデータコンポーネント400は、プレゼンテーションコンポーネント402によってユーザインタフェース上における後続のプレゼンテーションのためにデバイス100のメモリモジュール210(図2を参照されたい)におけるデータの格納を調整する。ワークフローコンポーネント406は、データ400、プレゼンテーション402、及びメッセージ404コンポーネントの間でのデータの転送を調整する。
【0039】
図5において表示されるコンポーネントアプリケーションプログラム302の例は、XML及びmEスクリプトで次のように表現され、「wcData」としてデータコンポーネント400を、「wcMsg」としてメッセージコンポーネント404を、「wcScr」としてプレゼンテーションコンポーネント402を、そして「wcFlow」としてその他のコンポーネント400、402、404を処理するためのワークフローコンポーネント406を含んでいる。
【0040】




【0041】
図5は、ネットワーク102、104越しにデバイス100への後続の通信のためのワイヤレスコンポーネントアプリケーション302を作り上げる方法を説明するフローチャートである。図3も参照すると、該方法は、ユーザ及び注文のようなデータ実体を定義するためのデータコンポーネント400を作るステップ600で始まる。方法は、画面、ボタン、メニュー及び画像のようなユーザインタフェースエレメントを定義するためのプレゼンテーションコンポーネント402を作るステップ602に続く。該方法は、サーバ106(図1を参照されたい)上のウェブサービスのような外部システムへ送信されるメッセージフォーマットを定義するためのメッセージコンポーネント402を作るステップ604に続く。コンポーネント400、402、404は、それに限定されるわけではないが、XMLに基づくもののような構造化定義言語にて表現される。該方法は、アプリケーション302の振る舞いを定義するためにデータ400、プレゼンテーション402及びメッセージ404コンポーネントをワークフローコンポーネント406と共に結合するステップ606で、終了する。ワークフローコンポーネント406は、上述において説明されている、それに限定されるわけではないが、ECMAスクリプトのような一連の命令として書かれている。ワイヤレスコンポーネントアプリケーション302を作り上げる方法は、図5に示されるもののようなより少ない又はより多いステップを含んでいても良い。
【0042】
図1及び図6を参照すると、デバイス100とウェブサーバ106のウェブサービスとの間の対話の動作800が示されている。ウェブサービスは、デバイス100がウェブサービスと通信を開始することを要求する要求メッセージ105を受信する(802)。ウェブサービスは、ウェブサービスとデバイス100との間の後続の情報交換をサポートするために、デバイス100に対するコンポーネントアプリケーション302の必要なコンポーネント400、402、404、406(もしあれば)をアップロードする(804)。デバイスは、伝送されたコンポーネントアプリケーション302を受信し、そしてコンポーネントアプリケーション302の実行可能バージョンを生成することによって、ウェブサービスのウェブクライアントとしてデバイスを構成するために、ランタイム環境206(図3を参照されたい)によってコンポーネント400、402、404、406を供給することに進む(806)。デバイス100のユーザは、ウェブサービス動作を受信するための要求メッセージ105としてウェブサービスに対して後続の送信810のためにデバイス100のユーザインタフェース202(図2を参照されたい)にデータを入力する(808)。ウェブサービスは、要求メッセージ105を処理し、そしてユーザインタフェース202における後続の出力のためのデータを含む適切な応答メッセージ105を送信する(812)。デバイス100は、データを含むメッセージ105を受信し(814)、そしてコンポーネントアプリケーション302の実行可能バージョンは、ユーザインタフェース202上に適切にデータを出力する。さらに、データ交換(816)が、デバイス100とウェブサービスとの間で上述によって行われ、又は交換が終了し(818)、そしてコンポーネントアプリケーション302の実行可能バージョンが、メモリ210にセーブされるか(図2を参照されたい)、又は所望に応じてランタイム環境206から削除される。
【0043】
図1、図3、及び図7を参照すると、例えば、動作900は、デバイス100が、メッセージデータを含む応答メッセージ105を受信したとき(902)、適切なワークフローコンポーネント406が、適切なメッセージコンポーネント404に従ってメッセージ105のデータコンテンツを解釈する(904)。ワークフローコンポーネント406は、次にデータコンテンツを処理し(906)、そしてメモリモジュール210(図2を参照されたい)における後続の格納(912)のために対応するデータコンポーネント400内にデータを挿入する(910)。さらに、もし必要ならば、ワークフローコンポーネント406も、また、ユーザインタフェース202(図2を参照されたい)上の後続の表示(914)のために適切なプレゼンテーションコンポーネント402内にデータを挿入する(908)。
【0044】
図1、図3、及び図8を参照すると、動作1000は、ユーザが、ユーザインタフェース202(図2を参照されたい)を介してユーザインタフェースエレメント上で行った(1003)、ボタンの押下又はメニューアイテムの選択のようなアクションについてのデータ入力(1002)を示している。関連するワークフローコンポーネント406は、適切なプレゼンテーションコンポーネント404に従って入力データを解釈し(1004)、そして適切なデータコンポーネント400によって定義されるデータ実体を作る(1006)。ワークフローコンポーネント406は、次にメモリモジュール210(図2を参照されたい)における後続の格納(1012)のためにユーザによって提供される入力データをデータコンポーネント400内に配置する(1010)。さらに、ワークフローコンポーネント406も、また、メッセージコンポーネント404によって定義されるように、メッセージ105におけるウェブサービスへのデータ実体としての入力データの後続の送信(1014)のために、入力データを適切なメッセージコンポーネント404内に挿入する(1008)。
【0045】
上述された方法を用いて作られるコンポーネントアプリケーション302が、コンポーネントアプリケーション302がフルプログラミング言語を使用しないが、しかし、むしろ、比較的単純で且つ学習し易いXML及びECMAスクリプトのような標準ベースの技術を使用するので、ハードコード化されたアプリケーションよりも作るのに必要な時間より少なくできることが認識される。該方法は、ユーザインタフェース202とデータの定義が切り離されるコンポーネントアプリケーション302に帰することができる。この切り離しは、コンポーネントアプリケーション302におけるいかなるコンポーネント400、402、404、406の変更も、アプリケーション302における他のコンポーネント400、402、404、406への影響及び実質的な変更を要求することなく可能とし、そしてそれゆえデバイス100上のコンポーネントアプリケーション302の変更及び更新を含む、コンポーネントアプリケーション302のメインテナンスを容易にすることができる。
【0046】
図9は、図1及び図6のデバイス100のさらなる例である、デュアルモードモバイル通信デバイス710のブロック図である。デュアルモードモバイル通信デバイス710は、トランシーバ711、マイクロプロセッサ738、ディスプレイ722、フラッシュメモリ724、RAMメモリ726、補助入力/出力(I/O)デバイス728、シリアルポート730、キーボード732、スピーカ734、マイクロフォン736、近距離ワイヤレス通信サブシステム740、そして他のデバイスサブシステム742をも含んでいても良い。トランシーバ711は、望ましくは、送信及び受信アンテナ716、718、受信機712、送信機714、1つ以上の局部発振器713、及びディジタル信号プロセッサ720を含んでいる。フラッシュメモリ724内には、デュアルモードモバイル通信デバイス710は、望ましくは、マイクロプロセッサ738(及び/又はDSP720)によって実行され得る複数のソフトウェアモジュール724A〜724Nを含んでおり、音声通信モジュール724A、データ通信モジュール724B、及び複数の他の機能を実現するための複数の他の操作モジュール724Nを含んでいる。
【0047】
デュアルモードモバイル通信デバイス710は、望ましくは、音声及びデータ通信能力を有する双方向通信デバイスである。それゆえ、例えば、デュアルモードモバイル通信デバイス710は、アナログ又はディジタルのいずれかのセルラーネットワークのような、音声ネットワーク越しに通信しても良く、そしてデータネットワーク越しに通信しても良い。音声及びデータネットワークは、図9において通信タワー719によって描かれている。これらの音声及びデータネットワークは、ベースステーション、ネットワークコントローラ等のように、別々のインフラストラクチャを用いる別々の通信ネットワークであっても良く、又はそれらは、単一のワイヤレスネットワークに一体化されていても良い。
【0048】
通信サブシステム711は、音声及びデータネットワーク719と通信するために使用され、そして、受信機712、送信機714、1つ以上の局部発振器713を含み、そしてDSP720をも含んでいても良い。DSP720は、送信機714及び受信機712へ及びそれらから信号を送信し及び受信するのに使用され、そして送信機714から制御情報を受信し且つ受信機712へ制御情報を提供するためにも利用される。音声及びデータ通信が単一の周波数、又はきわめて近接した間隔の周波数のセットで行われる場合は、単一の局部発振器713が送信機714及び受信機712に関連して使用されても良い。あるいは、異なる周波数が音声通信対データ通信に利用される場合は、複数の局部発振器713が、音声及びデータネットワーク719に対応する複数の周波数を発生すべく使用され得る。図9には、2つのアンテナ716、718が描かれているが、デュアルモードモバイル通信デバイス710は、単一のアンテナ構造と共に使用され得る。音声及びデータ情報の両方を含む情報は、DSP720とマイクロプロセッサ738との間のリンクを介して通信モジュール711へ及びそれから通信される。周波数帯域、コンポーネント選択、出力レベル等のような、通信サブシステム711の詳細な設計は、デュアルモードモバイル通信デバイス710がその中で動作することが意図されている通信ネットワーク719に対して独立している。例えば、北アメリカ市場で動作することが意図されたデュアルモードモバイル通信デバイス710は、Mobitex(商標)又はDataTAC(商標)モバイルデータ通信ネットワークと共に動作すべく設計されており、且つAMPS、TDMA、CDMA、PCS等のような、種々の音声通信ネットワークのいずれかと共に動作すべく設計されてもいる通信サブシステム711を含んでいても良いのに対して、ヨーロッパで使用することが意図されているデバイス710は、汎用パケット無線サービス(GPRS)データ通信ネットワーク及びGSM音声通信ネットワークと共に動作するように構成されていても良い。他のタイプのデータ及び音声ネットワークは、分離され及び一体化されているいずれも、デュアルモードモバイル通信デバイス710と共に利用されても良い。
【0049】
ネットワーク又はネットワーク719のタイプに依存して、デュアルモードモバイル通信デバイス710のためのアクセス要求も変動して良い。例えば、Mobitex及びDataTACデータネットワークにおいては、モバイルデバイスは、各デバイスに関連付けられた固有の識別番号を用いてネットワークに登録される。GPRSデータネットワークにおいては、しかしながら、ネットワークアクセスが、加入者又はモバイルデバイスのユーザに関連付けられている。GPRSデバイスは、典型的には、GPRSネットワーク上でデュアルモードモバイル通信デバイスを動作するために要求される加入者識別モジュール(「SIM」)を必要とする。(もしもあれば)局所又は非ネットワーク通信機能は、SIMなしで動作可能であるかもしれないが、しかしデュアルモードモバイル通信デバイスは、911緊急呼び出しのような、法律的に必要とされるいずれかの動作以外は、データネットワーク719越しでの通信を含むいずれの機能を遂行することもできないであろう。
【0050】
必要とされるいずれかのネットワーク登録又はアクティベーション手続きも完了した後は、デュアルモードモバイル通信デバイス710は、ネットワーク719(又はネットワーク)越しで音声及びデータ信号の双方を含む通信信号を送信及び受信して良い。通信ネットワーク719からアンテナ716によって受信された信号は、信号増幅、周波数低下変換、フィルタリング、チャンネル選択等を提供する、受信機712へ所定の経路で送られ、そしてアナログからディジタルへの変換が提供されてもよい。受信された信号のアナログからディジタルへの変換は、DSP720を用いて行われるディジタル復調及びデコードのような、より複雑な通信機能を可能とする。同様の方法において、ネットワーク719に送信されるべき信号は、例えばDSP720によって、変調及びコード化を含んで、処理され、そしてそれからディジタルからアナログへの変換、高周波数変換、フィルタリング、増幅、及びアンテナ718を介して通信ネットワーク719(又はネットワーク)への送信のために送信機714に供給される。音声及びデータの両方の通信のための単一のトランシーバ711が図9に示されるが、デュアルモードモバイル通信デバイス710は、音声信号を送信及び受信するための第1のトランシーバとデータ信号を送信及び受信するための第2のトランシーバとの2つの個別のトランシーバを含んでいても良い。
【0051】
通信信号の処理に加えて、DSP720は、受信機及び送信機の制御も提供する。例えば、受信機712及び送信機714における通信信号に印加されるゲインレベルは、DSP720に提供された自動ゲイン制御アルゴリズムを介して適応的に制御されても良い。他のトランシーバ制御アルゴリズムは、より洗練されたトランシーバ711の制御を提供するために、DSP720に提供されていても良い。
【0052】
マイクロプロセッサ738は、望ましくは、デュアルモードモバイル通信デバイス710の全体の動作を管理し且つ制御する。多くのタイプのマイクロプロセッサ又はマイクロコントローラが、ここに使用されても良く、あるいは、その代わりに、単一のDSP720がマイクロプロセッサ738の機能を遂行すべく使用されても良い。少なくともデータ及び音声通信を含む、低レベル通信機能は、トランシーバ711内のDSP720を介して行われる。他の、音声通信アプリケーション724A、及びデータ通信アプリケーション724Bのような、高レベル通信アプリケーションは、マイクロプロセッサ738による実行のためにフラッシュメモリ724内に格納されていても良い。例えば、音声通信モジュール724Aは、デュアルモードモバイル通信デバイス710とネットワーク719経由の複数の他の音声デバイスとの間で音声呼び出しを送信及び受信すべく動作可能な高レベルユーザインタフェースを提供しても良い。同様に、データ通信モジュール724Bは、デュアルモードモバイル通信デバイス710とネットワーク719経由の複数の他のデータデバイスとの間で、e−メールメッセージ、ファイル、オーガナイザ情報、ショートテキストメッセージ等のような、データを送信及び受信するために動作可能な高レベルユーザインタフェースを提供しても良い。デュアルモードモバイル通信デバイス710においては、上述されたとおり、コンポーネントフレームワーク206が、ソフトウェアモジュール又はアプリケーションとして実施されていても良く、あるいはソフトウェアモジュール724A−724Nのうちの1つに組み込まれていても良い。
【0053】
マイクロプロセッサ738も、ディスプレイ722、フラッシュメモリ724、ランダムアクセスメモリ(RAM)726、補助入力/出力(I/O)サブシステム728、シリアルポート730、キーボード732、スピーカ734、マイクロフォン736、近距離通信サブシステム740及び742として概して設計されたいずれかの他のデュアルモードモバイル通信デバイスサブシステムのような他のデュアルモードモバイル通信デバイスサブシステムと対話するようにしても良い。
【0054】
図9に示されたサブシステムのいくつかは、通信関連機能を実行するのに対して、他のサブシステムは、常駐又はオンデバイス機能を提供しても良い。特に、キーボード732及びディスプレイ722のようないくつかのサブシステムは、データ通信ネットワーク越しで送信するためのテキストメッセージの入力、及び計算機又はタスクリストあるいは他のPDAタイプの機能のようなデバイス常駐機能のような、通信関連機能双方のために使用されても良い。
【0055】
マイクロプロセッサ738によって使用されるオペレーティングシステムソフトウェアは、望ましくは、フラッシュメモリ724のような持続性格納部内に格納される。デュアルモードモバイル通信デバイス710の低レベル機能の全てを制御するオペレーティングシステムに加えて、フラッシュメモリ724は、音声通信モジュール724A、データ通信モジュール724B、オーガナイザモジュール(図示せず)、又はいずれかの他のタイプのソフトウェアモジュール724Nのような、複数の高レベルソフトウェアアプリケーションプログラム又はモジュールを含んでいても良い。フラッシュメモリ724は、データを格納するためのファイルシステムを含んでいても良い。これらのモジュールは、マイクロプロセッサ738によって実行され且つデュアルモードモバイル通信デバイスのユーザとモバイルデータとの間に高レベルインタフェースを提供する。このインタフェースは、典型的には、ディスプレイ722を介して提供されるグラフィカルコンポーネント、及び補助I/O728、キーボード732、スピーカ734、及びマイクロフォン736を介して提供される入力/出力コンポーネントを含んでいる。オペレーティングシステム、特定のデュアルモードモバイル通信デバイスソフトウェアアプリケーション又はモジュールあるいはその一部は、より高速な操作のためにRAM726のような、揮発性格納部に一時的にロードされても良い。さらにまた、受信された通信信号も、それらを持続性格納部724に配置されたファイルシステムに持続的に書き込む前に、RAM726に一時的に格納されるようにしても良い。
【0056】
デュアルモードモバイル通信デバイス710にロードされても良い例示的アプリケーションモジュール724Nは、カレンダイベント、アポイントメント、タスクアイテムのような、PDA機能を提供する個人情報マネージャ(PIM)アプリケーションである。このモジュール724Nは、電話呼び出し、音声メール等を管理するための音声通信モジュール724Aと対話するようにしても良く、そしてe−メール通信及び他のデータ伝送を管理するためのデータ通信モジュールと対話するようにしても良い。また、音声通信モジュール724A及びデータ通信モジュール724Bの全ての機能が、PIMモジュールに一体化されていても良い。
【0057】
フラッシュメモリ724は、望ましくは、デュアルモードモバイル通信デバイス710上のPIMデータアイテムの格納を容易にすべくファイルシステムを提供する。PIMアプリケーションは、望ましくは、それ自体によってか、又は音声及びデータ通信モジュール724A、724Bと共に、ワイヤレスネットワーク719を経由して、データアイテムを送信し且つ受信する能力を含んでいる。PIMデータアイテムは、望ましくは、格納され又はホストコンピュータシステムと関連するデータアイテムの対応するセットと、ワイヤレスネットワーク719を経由して、シームレスに一体化され、同期化され且つ更新され、それによって特定のユーザに関するデータアイテムのためのミラー化されたシステムを作り上げる。
【0058】
デュアルモードモバイル通信デバイス710は、デュアルモードモバイル通信デバイス710を、デュアルモードモバイル通信デバイス710のシリアルポート730をホストシステムのシリアルポートに結合するインタフェースクレードルに配置することによってホストシステムと手動的に同期されても良い。シリアルポート730は、ユーザが外部デバイス又はソフトウェアアプリケーションを介してユーザに好み(preference)を設定することを可能とし、又はインストールのために他のアプリケーションモジュール724Nをダウンロードするのに使用されても良い。この有線ダウンロード経路は、暗号化キーをデュアルモードモバイル通信デバイス710にロードするために使用されても良く、それはワイヤレスネットワーク719を経由して暗号化情報を交換するよりも安全な方法である。
【0059】
付加的なアプリケーションモジュール724Nは、ネットワーク719を介して、補助I/Oサブシステム728を介して、シリアルポート730を介して、近距離通信サブシステム740を介して、又は何らかの他の適切なサブシステム742を介して、デュアルモードモバイル通信デバイス710にロードされても良く、そしてユーザによってフラッシュメモリ724又はRAM726にインストールされても良い。アプリケーションのインストールにおけるそのような柔軟性は、デュアルモードモバイル通信デバイス710の機能性を増大させ、そして拡張されたオンデバイス機能、通信関連機能又は両方を提供しても良い。例えば、安全な通信アプリケーションは、電子商取引機能及び他のそのような財務的取引がデュアルモードモバイル通信デバイス710を用いて行われることを可能としても良い。
【0060】
デュアルモードモバイル通信デバイス710がデータ通信モードで動作しているとき、テキストメッセージ又はウェブページのダウンロードのような受信信号が、トランシーバ711によって処理され且つマイクロプロセッサ738に提供され、望ましくは受信信号をディスプレイ722、又はその代わりに補助I/Oデバイス728に出力するためにさらに処理するであろう。デュアルモードモバイル通信デバイス710のユーザは、e−メールメッセージのようなデータアイテムを、望ましくはQWERTYスタイルでレイアウトされた完全な英数字キーボードであるキーボード732を用いて作成しても良いが、既知のDVORAKスタイルのような他のスタイルの完全な英数字キーボードも使用され得る。デュアルモードモバイル通信デバイス710へのユーザ入力は、サムホイール入力デバイス、タッチパッド、種々のスイッチ、ロッカー入力スイッチ等を含んでも良い複数の補助I/Oデバイス728によってさらに拡張される。ユーザによって入力される構成されたデータアイテムは、次にトランシーバ711を経由して通信ネットワーク719越しで送信されても良い。
【0061】
デュアルモードモバイル通信デバイス710が、音声通信モードで動作しているとき、デュアルモードモバイル通信デバイス710の全体の動作は、受信信号が望ましくはスピーカ734に出力され且つ送信するための音声信号はマイクロフォン736で生成されることを除いて、データモードと実質的に同様である。音声メッセージ記録サブシステムのような代替的な音声又はオーディオI/Oサブシステムも、デュアルモードモバイル通信デバイス710上に提供されても良い。音声又はオーディオ出力は、望ましくはスピーカ734を介して本来は達成されるが、ディスプレイ722も、呼び出し側の身元の表示、音声呼び出しの期間、又は他の音声呼び出しに関連する情報を提供するために使用されても良い。例えば、マイクロプロセッサ738は、音声通信モジュール及びオペレーティングシステムソフトウェアと結合して、到来する音声呼び出しの発信者識別情報を検出し、且つそれをディスプレイ722に表示するようにしても良い。
【0062】
近距離通信サブシステム740も、デュアルモードモバイル通信デバイス710に含まれる。例えば、近距離通信サブシステム740は、赤外線デバイス及び関連する回路及びコンポーネント、又は同様に有効なシステム及びデバイスとの通信を提供するためのBluetooth(商標)モジュール又は802.11モジュールのような近距離ワイヤレス通信モジュールを含んでいても良い。当分野の技術を有する者は、「Bluetooth」及び802.11が、ワイヤレスパーソナルエリアネットワーク及びワイヤレスLANにそれぞれ関連して電気電子学会(IEEE)から入手可能な仕様書のセットを言及することを認めるであろう。
【0063】
本発明における開示は、1つ以上の例示的システム及び方法を説明してきたが、多くの変形が、当分野の知識を有する者には明白であり、そしてそのような変形は、本件出願の範囲内である。例えば、XML及びECMAスクリプトのサブセットが、例において提供されたが、他の言語及び言語異形がコンポーネントアプリケーションを定義するために使用されても良い。例えば、提案されているE4X標準スクリプト言語は、ECMAスクリプトの代わりに使用されても良い。さらに上述されたXML以外の他の構造化定義言語、それに限定されるわけではないが、例えば、資源記述フレームワーク(RDF)、XSLT、及びXHTMLを含んでも良い。加えて、コンポーネントアプリケーションは、モバイル通信デバイス上で実行されるアプリケーションとして説明されているが、コンポーネントアプリケーションは、ワイヤレス構成されたパーソナルコンピュータのような他のコンピュータシステム上で実行されても良い。
【図面の簡単な説明】
【0064】
【図1】通信システムのブロック図である。
【図2】図1のモバイル通信デバイスのブロック図である。
【図3】図2のコンポーネントアプリケーションプログラムのブロック図である。
【図4】図3のコンポーネントアプリケーションの例を図解するブロック図である。
【図5】図3のワイヤレスコンポーネントアプリケーションを作り上げる方法を図解するフローチャートである。
【図6】図1のデバイスとウェブサービスとの間で通信するための方法のフローチャートである。
【図7】図3のコンポーネントアプリケーションプログラムを実施する方法の例を示している。
【図8】図3のコンポーネントアプリケーションプログラムを実施する方法のさらなる例を示している。
【図9】図2のデバイスのさらなる例のブロック図である。

【特許請求の範囲】
【請求項1】
ネットワーク越しにモバイル通信デバイスによってウェブサービスと対話する方法であって、前記方法は、
前記ウェブサービスと前記通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するステップと、
前記要求ネットワークメッセージに応答し、複数のコンポーネントを含むコンポーネントアプリケーションプログラムを送信するステップであって、前記コンポーネントの第1のセットは、構造化定義言語で表現されたデスクリプタを有し、且つ前記コンポーネントの第2のセットは、一連の命令として表現されており、前記コンポーネントは、前記ウェブサービスのウェブクライアントとして前記デバイスを構成する前記コンポーネントアプリケーションプログラムの実行可能バージョンを生成するため前記通信デバイスのランタイム環境により供給するために構成されている、前記コンポーネントアプリケーションプログラムを送信するステップと、
を有し、
前記実行可能バージョンの実行は、前記ウェブサービスと前記通信デバイスとの間の前記ネットワーク越しでの後続の情報の交換を提供する、方法。
【請求項2】
前記ランタイム環境は、前記通信デバイスのインフラストラクチャのプロセッサと関連するオペレーティングシステムの機能性に対する前記実行可能バージョンのためのインタフェースを提供する、請求項1に記載の方法。
【請求項3】
前記ランタイム環境は、前記ウェブサービスにネットワークメッセージを送信するために通信を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージのためのデータコンテンツを供給するために前記デバイスのユーザによるデータ入力を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージに応答してデータプレゼンテーションを提供すること、前記デバイスのメモリにローカルクライアントデータを保持するためにデータ格納サービスを提供すること、及び前記実行可能バージョンにおける前記コンポーネントの動作を調整するためのスクリプト言語のために実行環境を提供すること、を含むグループから選択される能力を実行するために構成されている、請求項2に記載の方法。
【請求項4】
前記ランタイム環境は、前記オペレーティングシステムの一部分として構成されている、請求項2に記載の方法。
【請求項5】
前記通信デバイスからネットワークメッセージを受信するステップをさらに含み、前記ネットワークメッセージは、コンポーネントの前記第1のセットの少なくとも1つに対応する前記構造化定義言語に基づいて構成される、請求項2に記載の方法。
【請求項6】
前記ネットワークメッセージを処理し且つ前記構造化定義言語に基づいてフォーマットされたメッセージデータを含む応答ネットワークメッセージを送信するステップをさらに含み、前記応答ネットワークメッセージは、前記通信デバイスのユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成されている、請求項5に記載の方法。
【請求項7】
コンポーネント定義の前記第1のセットにデータコンポーネントを含むステップをさらに含み、前記データコンポーネントは、前記プログラムによって使用されるデータ実体を記述する情報と前記情報のためのフォーマットを定義する、請求項2に記載の方法。
【請求項8】
コンポーネント定義の前記第1のセットにメッセージコンポーネントを含むステップをさらに含み、前記メッセージコンポーネントは、前記ネットワーク越しに前記ウェブサービスと通信するために前記プログラムによって使用されるメッセージのフォーマットを定義する、請求項7に記載の方法。
【請求項9】
前記データコンポーネント定義及びメッセージコンポーネント定義は、種々の異なるランタイム環境を受け入れるためプラットフォーム中立である、請求項8に記載の方法。
【請求項10】
コンポーネントの前記第1のセットにプレゼンテーションコンポーネントを含むステップをさらに含み、前記プレゼンテーションコンポーネントは、前記デバイスのユーザインタフェース上に表示される前記コンポーネントアプリケーションプログラムの前記外観を定義する、請求項8に記載の方法。
【請求項11】
前記プレゼンテーションコンポーネントは、種々の予め定義されたランタイム環境のための特定のプラットフォームである、請求項10に記載の方法。
【請求項12】
前記構造化定義言語は、拡張可能マークアップ言語(eXtensible Markup Language)に基づいている、請求項10に記載の方法。
【請求項13】
コンポーネントの前記第2のセットにワークフローコンポーネントを含むステップをさらに含み、前記ワークフローコンポーネントは、コンポーネントの前記第1のセットの1つによって特定されるアクションが行われることとなるときに生ずる処理を定義する、請求項10に記載の方法。
【請求項14】
前記ワークフローコンポーネントのための前記一連の命令は、オブジェクト指向プログラミング言語にて表現されている、請求項13に記載の方法。
【請求項15】
前記ワークフローのための前記一連の命令は、スクリプト言語として表現されている、請求項13に記載の方法。
【請求項16】
前記スクリプト言語は、ECMAスクリプトに基づいている、請求項15に記載の方法。
【請求項17】
前記通信デバイスのユーザのユーザインタフェースエレメントとの対話によって開始されるネットワークメッセージを受信するステップをさらに含み、前記ネットワークメッセージは、前記ユーザインタフェースエレメントに対応する前記ワークフローコンポーネントによって作成されるデータ実体を含んでいる、請求項13に記載の方法。
【請求項18】
前記ネットワークメッセージは、前記構造化定義言語に基づく前記データ実体を含むための前記メッセージコンポーネントに従って構成される、請求項17に記載の方法。
【請求項19】
前記データ実体に関連するメッセージデータを含む応答ネットワークメッセージを送信するステップをさらに含み、前記応答ネットワークメッセージは、前記通信デバイスのユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成される、請求項18に記載の方法。
【請求項20】
前記メッセージデータは、前記構造化定義言語に基づいてフォーマットされる、請求項19に記載の方法。
【請求項21】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するために構成されたモバイル通信デバイスであって、前記デバイスは、
前記実行可能バージョンを実行するためのプロセッサ及び関連付けられたメモリを含む前記モバイルデバイスを動作させるためのデバイスインフラストラクチャと、
前記実行可能バージョンと通信するために構成された入力デバイス及び出力デバイスを有して前記デバイスインフラストラクチャに結合されたユーザインタフェースと、
前記デバイスインフラストラクチャに結合され且つ前記ネットワークと通信するために構成されたワイヤレストランシーバと、
前記ウェブサービスのウェブクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するためのランタイム環境であり、構造化定義言語にて表現されたデスクリプタを有する前記コンポーネントの第1のセット及び一連の命令として表現されている前記コンポーネントの第2のセットと対話するために構成されているランタイム環境と、
を有し、
前記実行可能バージョンの前記実行は、前記ウェブサービスと前記ネットワーク越しの前記通信デバイスの間の前記ネットワーク越しの後続の情報の交換を提供する、モバイル通信デバイス。
【請求項22】
前記ラインタイム環境は、前記通信デバイスの前記インフラストラクチャの前記プロセッサと前記関連するオペレーティングシステムの機能性に対する前記実行可能バージョンのためのインタフェースを提供する、請求項21に記載のモバイル通信デバイス。
【請求項23】
前記ランタイム環境は、前記ウェブサービスにネットワークメッセージを送信するために通信を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージのためのデータコンテンツを供給するために前記デバイスのユーザによるデータ入力を提供すること、前記ウェブサービスに関連付けられたネットワークメッセージに応答してデータプレゼンテーションを提供すること、前記デバイスのメモリにローカルクライアントデータを保持するためにデータ格納サービスを提供すること、及び前記実行可能バージョンにおける前記コンポーネントの動作を調整するためのスクリプト言語のために実行環境を提供すること、を含むグループから選択される能力を実行するために構成されている、請求項22に記載のモバイル通信デバイス。
【請求項24】
前記ランタイム環境は、前記オペレーティングシステムの一部分として構成されている、請求項22に記載のモバイル通信デバイス。
【請求項25】
前記実行可能バージョンは、前記ウェブサービスにネットワークメッセージを送信するために構成されており、前記ネットワークメッセージは、コンポーネントの前記第1のセットの少なくとも1つに対応する前記構造化定義言語に基づいて構成されている、請求項22に記載のモバイル通信デバイス。
【請求項26】
前記実行可能バージョンは、前記ネットワークメッセージに対応する応答ネットワークメッセージを受信するために構成されており、前記応答ネットワークメッセージは、前記構造化定義言語に基づいてフォーマットされたメッセージデータを含み、前記応答ネットワークメッセージは、前記通信デバイスの前記ユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成されている、請求項25に記載のモバイル通信デバイス。
【請求項27】
コンポーネント定義の前記第1のセットにデータコンポーネントをさらに含み、前記データコンポーネントは、前記プログラムによって使用されるデータ実体を記述する情報と前記情報のためのフォーマットを定義する、請求項22に記載のモバイル通信デバイス。
【請求項28】
コンポーネント定義の前記第1のセットにおけるメッセージコンポーネントをさらに含み、前記メッセージコンポーネントは、前記ネットワーク越しに前記ウェブサービスと通信するために前記プログラムによって使用されるメッセージのフォーマットを定義する、請求項27に記載のモバイル通信デバイス。
【請求項29】
前記データコンポーネント定義及びメッセージコンポーネント定義は、種々の異なるランタイム環境を受け入れるためプラットフォーム中立である、請求項28に記載のモバイル通信デバイス。
【請求項30】
コンポーネントの前記第1のセットにプレゼンテーションコンポーネントをさらに含み、前記プレゼンテーションコンポーネントは、前記デバイスの前記ユーザインタフェース上に表示される前記コンポーネントアプリケーションプログラムの前記外観を定義する、請求項28に記載のモバイル通信デバイス。
【請求項31】
前記プレゼンテーションコンポーネントは、種々の予め定義されたランタイム環境のための特定のプラットフォームである、請求項30に記載のモバイル通信デバイス。
【請求項32】
前記構造化定義言語は、拡張可能マークアップ言語(eXtensible Markup Language)に基づいている、請求項30に記載のモバイル通信デバイス。
【請求項33】
コンポーネントの前記第2のセットにワークフローコンポーネントをさらに含み、前記ワークフローコンポーネントは、コンポーネントの前記第1のセットの1つによって特定されるアクションが行われることとなるときに生ずる処理を定義する、請求項30に記載のモバイル通信デバイス。
【請求項34】
前記ワークフローコンポーネントのための前記一連の命令は、オブジェクト指向プログラミング言語にて表現されている、請求項33に記載のモバイル通信デバイス。
【請求項35】
前記ワークフローのための前記一連の命令は、スクリプト言語として表現されている、請求項33に記載のモバイル通信デバイス。
【請求項36】
前記スクリプト言語は、ECMAスクリプトに基づいている、請求項35に記載のモバイル通信デバイス。
【請求項37】
前記実行可能バージョンは、ユーザインタフェースエレメントと前記通信デバイスのユーザの対話によって開始されるネットワークメッセージを送信するために構成されており、前記ネットワークメッセージは、前記ユーザインタフェースエレメントに対応する前記ワークフローコンポーネントによって作成されるデータ実体を含んでいる、請求項33に記載のモバイル通信デバイス。
【請求項38】
前記ネットワークメッセージは、前記構造化定義言語に基づく前記データ実体を含むための前記メッセージコンポーネントに従って構成される、請求項37に記載のモバイル通信デバイス。
【請求項39】
前記実行可能バージョンは、前記データ実体に関連するメッセージデータを含む応答ネットワークメッセージを受信するために構成されており、前記応答ネットワークメッセージは、前記通信デバイスの前記ユーザインタフェース上の前記メッセージデータの後続のプレゼンテーションのために構成される、請求項38に記載のモバイル通信デバイス。
【請求項40】
前記メッセージデータは、前記構造化定義言語に基づいてフォーマットされる、請求項39に記載のモバイル通信デバイス。
【請求項41】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するためのモバイル通信デバイスを構成するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、
コンピュータ可読媒体と、
前記ウェブサービスのウェブクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するために前記コンピュータ可読媒体上に格納されたランタイム環境モジュールであり、構造化定義言語にて表現されたデスクリプタを有する前記コンポーネントの第1のセット及び一連の命令として表現されている前記コンポーネントの第2のセットと対話するために構成されている、前記ランタイム環境と、
を有し、
前記実行可能バージョンの前記実行は、前記ウェブサービスと前記ネットワーク越しの前記通信デバイスの間の前記ネットワーク越しの後続の情報の交換を提供する、コンピュータプログラム製品。
【請求項42】
ネットワーク越しにモバイル通信デバイスと対話するためのウェブサービスを提供するために構成されたサーバであって、前記サーバは、
前記ウェブサービスと前記通信デバイスとの間の通信を確立するための要求ネットワークメッセージを受信するためのネットワークインタフェースと、
要求ネットワークメッセージに応答して送信するためにネットワークインタフェースに結合されたコンポーネントアプリケーションプログラムであって、前記コンポーネントアプリケーションプログラムは、複数のコンポーネントを含み、前記コンポーネントの第1のセットは、構造化定義言語で表現されたデスクリプタを有し、且つコンポーネントの第2のセットは、一連の命令として表現されており、前記コンポーネントは、前記ウェブサービスのウェブクライアントとして前記デバイスを構成する前記コンポーネントアプリケーションプログラムの実行可能バージョンを生成するため前記通信デバイスのランタイム環境により供給するために構成されている、前記コンポーネントアプリケーションと、
を有し、
前記実行可能バージョンの実行は、前記ウェブサービスと前記通信デバイスとの間の前記ネットワーク越しでの後続の情報の交換を提供する、サーバ。
【請求項43】
複数のコンポーネントを含むコンポーネントアプリケーションプログラムの実行可能バージョンを用いてウェブサービスとネットワーク越しに対話するために構成されたモバイル通信デバイスであって、前記デバイスは、
前記実行可能バージョンを実行するためモバイルデバイスを動作させるためのインフラストラクチャ手段と、
前記実行可能バージョンと通信するために構成された前記インフラストラクチャ手段に結合されたユーザインタフェース手段と、
前記デバイスインフラストラクチャに結合され且つ前記ネットワークと通信するために構成されたトランシーバ手段と、
前記ウェブサービスのウェブクライアントとして前記デバイスを構成するために前記実行可能バージョンの実行を調整するためのランタイム手段であり、構造化定義言語にて表現されたデスクリプタを有する前記コンポーネントの第1のセット及び一連の命令として表現されている前記コンポーネントの第2のセットと対話するために構成されている、前記ランタイム手段と、
を有し、
前記実行可能バージョンの前記実行は、前記ウェブサービスと前記ネットワーク越しの前記通信デバイスの間の前記ネットワーク越しの後続の情報の交換を提供する、モバイル通信デバイス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2006−517695(P2006−517695A)
【公表日】平成18年7月27日(2006.7.27)
【国際特許分類】
【出願番号】特願2005−509677(P2005−509677)
【出願日】平成15年12月24日(2003.12.24)
【国際出願番号】PCT/CA2003/001980
【国際公開番号】WO2004/059957
【国際公開日】平成16年7月15日(2004.7.15)
【出願人】(500043574)リサーチ イン モーション リミテッド (531)
【氏名又は名称原語表記】Research In Motion Limited
【住所又は居所原語表記】295 Phillip Street, Waterloo, Ontario N2L 3W8 Canada
【Fターム(参考)】