JP2009054151A - 通信メッセージ・インスタンス投入方法、データ・インスタンス投入方法、通信メッセージ・インスタンス投入装置、および、コンピュータ読取可能媒体 - Google Patents

通信メッセージ・インスタンス投入方法、データ・インスタンス投入方法、通信メッセージ・インスタンス投入装置、および、コンピュータ読取可能媒体 Download PDF

Info

Publication number
JP2009054151A
JP2009054151A JP2008211437A JP2008211437A JP2009054151A JP 2009054151 A JP2009054151 A JP 2009054151A JP 2008211437 A JP2008211437 A JP 2008211437A JP 2008211437 A JP2008211437 A JP 2008211437A JP 2009054151 A JP2009054151 A JP 2009054151A
Authority
JP
Japan
Prior art keywords
message
component
data
field
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008211437A
Other languages
English (en)
Inventor
Bryan R Goring
アール.ゴーリング ブライアン
Michael Shenfield
シェンフィールド マイケル
Kamen B Vitanov
ビー.ヴィタノフ カメン
Viera Bibr
ビブル ヴィエラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
Original Assignee
Research in Motion Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of JP2009054151A publication Critical patent/JP2009054151A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

【課題】デバイス上で実行するコンポーネント・アプリケーションにしたがって、通信メッセージ・インスタンスを投入する。
【解決手段】メッセージ・インスタンス806が生成されるべきことを決定し、対応するメッセージ・コンポーネント404を識別する。対応するメッセージ・コンポーネント404において少なくとも一つの所定の一意のマッピング801を識別する。マッピング801は、データ・コンポーネント400において少なくとも一つのデータ・フィールドを識別するためのものである。マップされたデータ・コンポーネントの少なくとも一つのデータ・フィールドに対応する少なくとも一つのデータ・インスタンス・フィールド値を取得する。少なくとも一つのデータ・インスタンス・フィールド値とともにメッセージ・インスタンス806の少なくとも一つのメッセージ・フィールドを投入する。
【選択図】図8a

Description

本発明は、ネットワークによる装置へのサービスの通信に関する。
携帯電話、ワイヤレス通信機能を持つPDA、パーソナル・コンピュータ、セルフ・サービス・キオスク、および二方向ポケットベルなど、今日使用されている端末装置の数は増加し続けている。これらの装置で動作するソフトウェア・アプリケーションは、それらの実用性を高める。例えば携帯電話は、ある範囲の都市の天候をリトリーブするアプリケーションを含むことができ、あるいはPDAは、ユーザが食料品を買い求めることを可能にするアプリケーションを含むことができる。これらのソフトウェア・アプリケーションは、時宜に適った有用なサービスをユーザに提供するために、ネットワークへの接続を利用する。しかし、一部の装置の限られた資源、および大量のデータを装置に配布する複雑さのため、多種多様な装置用のソフトウェア・アプリケーションを開発することは、依然として困難かつ時間のかかる仕事である。
現在、装置は、インターネット・ベースのブラウザおよび/またはネイティブ・アプリケーションを通して、ウェブ・サービスと通信するように構成される。ブラウザは、多種多様な装置に対しクロス−プラット・フォーム方式で動作するように適応可能であるという利点を有するが、ウェブ・サービスからページ(HTMLのスクリーン定義)を要求し、それはスクリーンに含まれるデータの保持を妨げるという不利点を有する。ブラウザのさらなる不利点は、資源集約的になるおそれのあるスクリーンのレンダリングが実行時に行なわれることである。ネイティブ・アプリケーションは装置プラット・フォームの型専用に開発され、よって各実行時環境に対し比較的最適化されたアプリケーション・プログラムを提供するという利点を有する。しかし、ネイティブ・アプリケーションはプラット・フォーム依存性があり、よって同一アプリケーションの複数のバージョンを開発する必要があるだけでなく、サイズも比較的大きく、よって装置のメモリ資源に負担がかかるという不利点を有する。さらに、アプリケーション開発者は、これらのハード・コード化されたネイティブ・アプリケーションを構築するために、Java(登録商標)およびC++のようなプログラミング言語の経験を必要とする。
本発明のシステムおよび方法は、上記した不利点の少なくとも幾つかを回避または緩和するために、コンポーネント・ベースのアプリケーション環境を提供する。
明示的コード化を行なう必要性を低減すると共に、提供されたときにアプリケーションによって利用される装置資源を低減することにより、ワイヤレス・アプリケーションの開発に関わる複雑さを緩和することが望ましい。一連のアプリケーション・コンポーネントとしてのワイヤレス・アプリケーションおよびそれらのインタラクションを管理するために基本的サービス・セットを提供する、インテリジェンス・ワイヤレス装置実行時環境(装置実行時)を持つことにより、開発努力を簡素化し、かつ資源割当を低減することができる。ワイヤレス・アプリケーションはコンポーネント・セットとして記述される。このカテゴリのアプリケーション用のデータ領域は、最小単位のデータ・コンポーネントを使用して定義される。装置とサーバとの間の通信は、最小単位のメッセージ・コンポーネントを使用して定義される。メッセージおよびデータ・コンポーネントは両方とも、XMLのような構造化定義言語を使用して、メタデータで記述される。メッセージおよびデータ・コンポーネント間の関係は、メッセージ・データ・マッピングの形態でXML定義に埋め込まれる。一般的に、出メッセージは基礎を成す幾つかのデータ・コンポーネントから導出され、入メッセージはアプリケーションの現在の状態(またはデータ表現)に影響を
及ぼす。したがって、データおよびメッセージ・コンポーネントの表現間のメタデータ定義マッピング関係は好ましいことが明らかである。
本発明の第一の態様は、デバイス上で実行するコンポーネント・アプリケーションにしたがって、通信メッセージ・インスタンスを投入する方法であって、前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、コンポーネントの定義は構造化定義言語で表現され、前記方法は、前記メッセージ・インスタンスが生成されるべきことを決定し、対応するメッセージ・コンポーネントを識別し、前記対応するメッセージ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは、前記データ・コンポーネントにおいて少なくとも一つのデータ・フィールドを識別するためのものであり、マップされた前記データ・コンポーネントの少なくとも一つのデータ・フィールドに対応する少なくとも一つのデータ・インスタンス・フィールド値を取得し、前記少なくとも一つのデータ・インスタンス・フィールド値とともに前記メッセージ・インスタンスの前記少なくとも一つのメッセージ・フィールドを投入する。
本発明の第二の態様は、受信したメッセージにもとづいて、デバイス上で実行するコンポーネント・アプリケーションのためにデータ・インスタンスを投入する方法であって、前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、コンポーネントの定義は構造化定義言語で表現され、前記方法は、メッセージを受信し、対応するメッセージ・コンポーネントを識別し、前記対応するメッセージ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは、前記データ・コンポーネントにおいて少なくとも一つのデータ・フィールドを識別するためのものであり、マップされた前記メッセージ・コンポーネントの前記少なくとも一つのメッセージ・フィールドに対応する少なくとも一つのメッセージ・インスタンス・フィールド値を取得し、前記少なくとも一つのメッセージ・インスタンス・フィールド値とともに、前記データ・インスタンスの前記少なくとも一つのデータ・フィールドを投入する。
本発明の第三の態様は、デバイス上で実行するコンポーネント・アプリケーションにしたがって、通信メッセージ・インスタンスを投入する方法であって、前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、コンポーネントの定義は構造化定義言語で表現され、前記方法は、前記メッセージ・インスタンスが生成されるべきことを決定し、対応するメッセージ・コンポーネントを識別し、前記対応するデータ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドを識別するためのものであり、マップされた前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドに対応する少なくとも一つのデータ・インスタンス・フィールド値を取得し、前記少なくとも一つのデータ・インスタンス・フィールド値とともに、前記メッセージ・インスタンスの前記少なくとも一つのメッセージ・フィールドを投入する。
本発明の第四の態様の方法は、受信したメッセージにもとづいて、デバイス上で実行するコンポーネント・アプリケーションのためのデータ・インスタンスを投入する方法であって、前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、コンポーネントの定義は構造化定義言語で表現され、前記方法は、メッセージを受信し、対応するデータ・コンポーネントを識別し、前記対応するデータ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドを識別するためのものであり、マップされた前記メッセージ・コンポーネントの前記少なくとも一つのメッセージ・フィールドに対応する少なくとも一つのメッセージ・インスタンス・フィールド値を取得し、前記少なくとも一つのメッセージ・インスタンス・フィールド値とともに、前記データ・インスタンスの前記少なくとも一つのデータ・フィールドを投入する。
本発明の第五の態様は、デバイス上で実行するコンポーネント・アプリケーションにしたがって、通信メッセージ・インスタンスを投入する装置であって、前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、コンポーネントの定義は構造化定義言語で表現され、前記装置は、メッセージ・インスタンスが生成されるべきことを決定し、対応するメッセージ・コンポーネントを識別する手段と、前記対応するメッセージ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別する手段であって、該マッピングは前記データ・コンポーネントにおいて前記少なくとも一つのデータ・フィールドを識別するためのものである、手段と、マップされた前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドに対応する少なくとも一つのデータ・インスタンス・フィールド値を取得する手段と、前記少なくとも一つのデータ・インスタンス・フィールド値とともに、前記メッセージ・インスタンスの前記少なくとも一つのメッセージ・フィールドを投入する手段と、を含む。
本発明の特長は、単なる例として添付の図面に関連して述べる以下の詳細な説明からさらに明らかになるであろう。
「ネットワーク・システム」
図1を参照すると、ネットワーク・システム10は、インターネットに限らずそのような結合されたワイド・エリア・ネットワーク(WAN)104を介して、一つまたはそれ以上の汎用スキーマ定義サービス106とインタラクションするための複数の汎用端末装置100を含む。これらの汎用端末装置100は、パーソナル・コンピュータ116、ワイヤレス装置101、PDA、セルフ・サービス・キオスク、および類似物のようなものとすることができるが、それらに限らない。サービス106によって提供される汎用サービスはウェブ・サービスおよび/または他のサービス、例えばSQLデータベース、IDLベースのCORBAおよびRMI/IIOPシステム、レガシー・データベース、J2EE、SAP RFC、およびCOM/DCOMコンポーネントとすることができるが、それらに限らない。さらに、システム10は、ローカル・エリア・ネットワーク(LAN)114を介してデスクトップ端末116をサービス106に接続するためのゲートウェイ・サーバ112を持つこともできる。さらに、システム10は、ワイヤレス装置101をWAN104に接続するためのワイヤレス・ネットワーク102を持つこともできる。WAN104および図1に示す以外の関連ネットワークを介して、他の装置およびコンピュータ(図示せず)をウェブ・サービス106に接続することができることが認識される。簡素化するために、以下では、汎用端末装置100、ワイヤレス装置101、およびパーソナル・コンピュータ116を装置100と呼ぶ。簡素化するために、システム10の以下の説明では、ウェブ・サービス106を選択する。しかし、所望するならば、ウェブ・サービス106を他のサービスに置き換えることができることが認識される。さらに、簡素化するために、以下ではシステム10のネットワーク102、104、112をネットワーク104と呼ぶ。
再び図1を参照すると、装置100は、ウェブ・サービス106との通信時に、要求/応答メッセージ105をそれぞれ送信および受信する。装置100は、メッセージ・ヘッダ情報および関連データ内容の形の要求/応答メッセージ105を使用し、例えばオン−ライン・マーチャントからの製品の価格提示および入手可能性を要求しかつ受信することによって、ウェブ・サービス106のウェブ・クライアントとして動作することができる。ウェブ・サービス106は、通信装置100上のクライアント・アプリケーション・プログラム302(図2参照)が、通信装置100のユーザに実用性を提供するために、ワイヤレス・ネットワーク102を介してインタラクションする相手システムの一例である。
適切な要求/応答メッセージ105を満足させるために、ウェブ・サービス106は、装置100に提供されたときに関連ビジネス論理(方法)をクライアント・アプリケーション・プログラム302(図2参照)にさらすための様々なプロトコル(例えばHTTPおよびコンポーネントAPIなどがあるが、それらに限らず)を通して、アプリケーション・サーバ110と通信することができる。アプリケーション・サーバ110がウェブ・サービス106ソフトウェアを含むこともできるので、ウェブ・サービス106はアプリケーション・サーバ110のサブセットとみなすことができる。装置100のアプリケーション・プログラム302は、オブジェクト(または機能)に関する方法を呼び出すのと同様に、アプリケーション・サーバ110のビジネス論理を使用することができる。クライアント・アプリケーション・プログラム302はアプリケーション・サーバ110に関連して、ネットワーク104を介してメッセージ105を通して、装置100に直接ダウンロード/アップロードすることができると認識される。さらに、装置100は、ネットワーク104を介して、一つまたはそれ以上のウェブ・サービス106および関連アプリケーション・サーバ110と通信することができると認識される。
「サーバ環境」
図1を参照すると、ウェブ・サービス106は、装置100上のクライアント・アプリケーション・プログラム302(図2参照)によって使用される情報メッセージ105を提供する。代替的に、または追加的に、ウェブ・サービス106は、装置100上で実行されるクライアント・アプリケーション・プログラム302によって提供される情報メッセージ105を受信して使用するか、あるいは装置100で実行されるクライアント・アプリケーション・プログラム302の代わりにタスクを実行することができる。ウェブ・サービス106は、ウェブ・サービス・レジストリのUniversal Discovery Description and Integration(UDDI)に登録されたウェブ・サービス記述言語(WSDL)を使用して表現されたようなインタフェースを実現することのできるソフトウェア・サービスと定義することができ、ネットワーク104でSimple Object Access Protocol(SOAP)のような適切なプロトコルを通してさらされることによって、メッセージ105を通してクライアント装置100と通信することができる。実現によっては、SOAPは、SOAPエレメントに囲まれたよくまとめられたXMLフラグメントを含む、メッセージ105のXMLフォーマットを定義する仕様書である。SOAPはまた文書スタイル・アプリケーションをサポートし、その場合SOAPメッセージ105はXML文書を取り囲むラッパである。SOAPのさらなるオプション部はHTTPバインディング(つまりヘッダ)を定義する一方、一部のSOAP実現はMSMQ、MQシリーズ、SMTP、またはTCP/IPトランスポート・プロトコルをサポートする。代替的に、ウェブ・サービス106は他の公知の通信プロトコルを使用することができ、メッセージ105のフォーマット、およびインタフェースは、上述した以外のウェブ・サービス言語を使用することができる。
「クライアント環境」
図2を参照すると、コンポーネント・アプリケーション302はネットワーク104を介して伝送され、装置100の装置インフラストラクチャ204のメモリ・モジュール210にロードされる。代替的に、コンポーネント・アプリケーション302はシリアル接続、USB接続、またはIR、802.11(x)ブルートゥースTM(図示せず)のような短距離ワイヤレス通信システムを介してロードすることができる。装置100にロードされると、コンポーネント・アプリケーション302は装置100上のコンポーネント・フレームワーク206によって実行することができ、それはコンポーネント・アプリケーション302をネイティブ・コードに変換することができ、それを装置インフラストラクチャ204のプロセッサ208で実行することができる。代替的に、コンポーネント・アプリケーション302は、装置100上の別のソフトウェア・モジュールまたはオペレーティング・システムによって解釈することができる。いずれにしても、コンポーネント・アプリケーション302は装置100によって提供される端末実行時環境で動作することができるので、実行時環境は、一般的なアプリケーション302の挙動(例えば保持性、メッセージング、スクリーン・ナビゲーションおよび表示)を管理して実行する基本的サービス・セットを提供する、インテリジェンス・ソフトウェア・フレームワークである。
再び図1を参照すると、装置100によって提供されるクライアント実行時環境は、装置100をウェブ・サービス106のウェブ・クライアントとして動作させるように構成することができる。クライアント実行時環境は、装置100をネットワーク104でいずれかの他の汎用スキーマ定義サービスのクライアントにすることもできる。装置100のクライアント実行時環境は、装置100上のクライアント・アプリケーション・プログラム302(コンポーネント・アプリケーションの形態を採る−図4および以下の説明を参照)を生成し、ホスト化し、実行することができることが望ましい。さらに、クライアント実行時環境の特定の機能は、言語のサポート、メモリ割当ての調整、ネットワーキング、I/O動作中のデータの管理、装置100の出力装置上のグラフィックスの調整、ならびにコア・オブジェクト指向クラスおよびサポート・ファイル/ライブラリへのアクセスの提供などを含むことができるが、それらに限らない。装置100によって実現される実行時環境の例は、マイクロソフトによるCommon Language Runtime(CLR)およびサン・マイクロシステムズによるJava(登録商標) Runtime Environment(JRE)を含むことができるが、それらに限らない。
装置100の端末実行時環境は、クライアント・アプリケーション・プログラム302の常駐実行可能バージョンのために、以下の基本的機能をサポートすることが好ましい(図2参照)。
例えば、
●メッセージ105をウェブ・サービス106に送信するか、またはネットワーク104を介して接続されたいずれかの他の汎用スキーマ定義サービスへのメッセージ105を装置100に送信するために通信機能を提供すること、
●ウェブ・サービス106の出メッセージ105(サービスへのメッセージ)用のデータ部を供給するために装置100の入力装置でユーザがデータを入力する機能を提供すること、
●ウェブ・サービス106の応答メッセージ105(入メッセージ)または出力装置に関する無相関通知のためのデータ表示または出力機能を提供すること、
●ローカル・クライアント・データを装置100のメモリ・モジュール210(図2参照)に維持するためにデータ・ストレージ・サービスを提供すること、
●クライアント・アプリケーション・プログラム302のアプリケーション・コンポーネント400、402、404、406(図4参照)の動作を調整するためのスクリプト言語のための実行時環境を提供すること、
などがあるが、それらに限らない。
図2、4、および5を参照すると、クライアント実行時(例えばコンポーネント・フレームワーク206によって提供される)は、コンポーネント400、402、404、406の定義に含まれるメタデータをロードし、次いで、例えばアプリケーション・コンテナ300を介して、装置100上のアプリケーション・プログラム302の実行可能バージョンを作成する。クライアント実行時用に、テンプレート−ベースのネイティブ実行およびメタデータ−ベースの実行の二つのオペレーショナル・モデルなどがあるが、それらに限らない。テンプレート−ベースのネイティブ実行モデルでは、実行時ホスト・データ、メッセージ、およびスクリーン・テンプレート500が、ネイティブ・コードを使用して装置100に事前作成される。アプリケーション・プログラム302の定義がロードされると、コンポーネント・フレームワーク206によって提供されるクライアント環境は、テンプレート500にコンポーネント400、402、404からのメタデータ定義パラメータを充填し、ネイティブ・フォーマットの実行可能なクライアント・アプリケーション・プログラム302を作成する。ワークフロー・コンポーネント406のワークフロー・スクリプト(例えばECMAScript)はネイティブ・コードに変換されるか、あるいは適切なスクリプト・インタプリタ502(例えばECMAScript Interpreter)を使用してネイティブ・コード・リダイレクタ504に対して実行されることができる。リダイレクタ504は、ネイティブ実行時エンジン506を通して、スクリプト言語の呼出しをネイティブ・コンポーネントに対する動作に翻訳する。メタデータ−ベースの実行では、コンポーネント・フレームワーク206の実行時環境は、(例えば)XMLのコンポーネント400、402、404、406の定義を維持し、それが実行時に構文解釈されるか、あるいは(例えば)XMLノードのネイティブ表現を使用するかのいずれかである。実行中に、ネイティブ実行時エンジン506は、ネイティブ・コンポーネント・エンティティに対してではなく、コンポーネント400、402、404、406の定義に対して動作する。
したがって、ネイティブ・クライアント実行時環境は、クライアント・アプリケーション・プログラム302のために、装置100のプロセッサ208の機能および装置インフラストラクチャ204の関連オペレーティング・システムへのインタフェースを提供する。実行時環境は、コンポーネント・アプリケーション・プログラム302が実行される装置100の制御された確実かつ安定な環境を供給することが好ましい。実行時環境は、装置100のそれぞれの各装置インフラストラクチャ204に特定的な実際のウェブ・クライアントを生成するために、コンポーネント400、402、404、406の定義を提供する。簡素化するために、以下の記述では、単なる一例としてコンポーネント・フレームワーク206によって提供されるクライアント実行時環境について言及することを認識されたい。
「通信装置」
再び図2を参照すると、装置100は、携帯電話、PDA、二方向ポケットベル、またはデュアル−モード通信装置のような装置であるが、それらに限らない。装置100は、接続218を介して装置インフラストラクチャ204に結合される、ワイヤレス・トランシーバまたはワイヤード・ネットワーク・インタフェース・カードもしくはモデムのような、ネットワーク接続インタフェース200を含む。接続インタフェース200は装置100の動作中に、ワイヤレス・リンク(例えばRF、IR等)によるワイヤレス・ネットワーク102のようなネットワーク104に接続され、それはネットワーク104を介して装置100が相互におよび外部システム(ウェブ・サービス106のような)と通信し、かつクライアント・アプリケーション・プログラム302とサービス106(図1参照)との間で要求/応答メッセージ105を調整することを可能にする。ネットワーク104はネットワークに接続された、装置と外部システムとの間の要求/応答メッセージ105でのデータの伝送をサポートする。ネットワーク104はまた、装置100とネットワーク104の外部にある装置との間の電話の音声通信をもサポートすることができる。ワイヤレス・ネットワーク102は、DataTAC、GPRS、またはCDMAなどのワイヤレス・データ伝送プロトコルを、それらに限らず、使用することができる。
再び図2を参照すると、装置100は、ユーザ(図示せず)とインタラクションするために、接続222によって装置インフラストラクチャ204に結合されたユーザ・インタフェース202をも有する。ユーザ・インタフェース202は、QWERTYキーボード、キーパッド、トラックホイール、スタイラス、マウス、マイクロホンなど、それらに限らず、一つまたはそれ以上のユーザ入力装置、ならびにLCDスクリーン・ディスプレイおよび/またはスピーカのようなユーザ出力装置を含む。スクリーンがタッチ感応である場合には、ディスプレイは、装置インフラストラクチャ204によって制御されるユーザ入力装置としても使用することができる。ユーザ・インタフェース202は、さらに下述するコンポーネント・フレームワーク206のクライアント・アプリケーション・プログラム302によって使用されるシステム10(図1)での要求/応答メッセージ105を調整するために、装置100のユーザによって使用される。
再び図2を参照すると、装置100の動作は、装置インフラストラクチャ204によって可能になる。装置インフラストラクチャ204はコンピュータ・プロセッサ208および関連メモリ・モジュール210を含む。コンピュータ・プロセッサ208は、メモリ・モジュール210に位置するオペレーティング・システムおよびクライアント・アプリケーション・プログラム302によって提供される関連命令を実行することによって、ネットワーク・インタフェース200、ユーザ・インタフェース202、および通信装置100のコンポーネント・フレームワーク206の動作を操作する。さらに、装置インフラストラクチャ204は、プロセッサに命令を提供するために、かつ/またはメモリ・モジュール210内のクライアント・アプリケーション・プログラム302をロード/更新するために、プロセッサ208に結合されたコンピュータ可読記憶媒体212を含むことができる。コンピュータ可読媒体212は、単なる例として磁気ディスク、磁気テープ、CD/DVD ROMのような光学的可読媒体、およびメモリ・カードのようなハードウェアおよび/またはソフトウェアを含むことができる。各々の場合に、コンピュータ可読媒体212は小型ディスク、フロッピー(登録商標)・ディスケット、カセット、ハード・ディスク・ドライブ、固体メモリ・カード、またはメモリ・モジュール210に設けられたRAMの形態を採ることができる。上に列記した例のコンピュータ可読媒体212は単独でも組み合わせても使用することができることに注目されたい。
「装置のコンポーネント・フレームワーク」
再び図2を参照すると、装置100のコンポーネント・フレームワーク206は、接続220によって装置インフラストラクチャ204に結合される。装置100のクライアント実行時環境はコンポーネント・フレームワーク206によって提供され、かつメタデータ定義からクライアント・アプリケーション・プログラム302(コンポーネント・アプリケーションの形態を採る−下記参照)を生成し、ホスト化し、実行することができることが望ましい。したがって、コンポーネント・フレームワーク206は、クライアント・アプリケーション・プログラム302のためにネイティブ・クライアント実行時環境を提供し、装置100のプロセッサ208の機能および装置インフラストラクチャ204の関連オペレーティング・システムへのインタフェースである。コンポーネント・フレームワーク206は、好ましくはコンポーネント・アプリケーション・プログラム302が例えばアプリケーション・コンテナ300で実行される装置100の制御された確実かつ安定な環境を供給することによって、実行時環境を提供する。アプリケーション・コンテナ300は、クライアント・アプリケーション・プログラム302用のスマート・ホスト・コンテナと呼ぶことができ、(メッセージ105の−図1参照)メッセージ・メタデータの解析、およびメモリ・モジュール210内のメタデータの表現の更新に関与することができる。
図3を参照すると、コンポーネント・フレームワーク206は、端末実行時環境内でクライアント・アプリケーション・プログラム302(ウェブ・サービス・クライアント・アプリケーションなど)を実行するために使用することができ、要求/応答メッセージ105を介して、ウェブ・サービス106および関連アプリケーション・サーバ110(図1参照)へのアクセスをサポートすることができる。コンポーネント・アプリケーション・プログラム302は、コンポーネント・フレームワーク206で実行されるソフトウェア・アプリケーションを含む。コンポーネント・フレームワーク206は、コンポーネント・アプリケーション・プログラム302が実行されるたびに、アプリケーション・プログラム302の各コンポーネント400、402、404、406(図4参照)用のアプリケーション・コンテナ300を生成する。アプリケーション・コンテナ300は、アプリケーション・プログラム302のコンポーネント400、402、404、406をロードし、装置インフラストラクチャ204内のプロセッサによって実行されるネイティブ・コードを生成することができる。したがってコンポーネント・フレームワーク206は、通信装置100のそれぞれの各装置インフラストラクチャ204に特定的な実際のウェブ・クライアントを生成するために、コンポーネント400、402、404、406の定義を提供するためのホスト・アプリケーション・コンテナ300を提供する。アプリケーション・コンテナ300は、単なる例として上述したテンプレート−ベースのネイティブ実行モデルおよびメタデータ−ベースの実行モデルに従って、コンポーネント・アプリケーション302を提供することができる。
再び図3を参照すると、コンポーネント・フレームワーク206は、特定のサービスがコンポーネント400、402、404、406(図4参照)の一部として含まれないかあるいはコンポーネント・アプリケーション・プログラム302の一部として別個のコンポーネント(図示せず)として受信されない場合、クライアント・アプリケーション・プログラム302にフレームワーク・サービス304(汎用サービスの標準セット)を提供することもできる。アプリケーション・プログラム302は、必要に応じてフレームワーク・サービス304との通信216を調整することができるアプリケーション・コンテナ300との通信214を有する。コンポーネント・フレームワーク206のフレームワーク・サービス304は、装置インフラストラクチャ204との接続220を介して通信を調整する。したがって、装置インフラストラクチャ204、ユーザ・インタフェース202、およびネットワーク・インタフェース200へのアクセスは、コンポーネント・フレームワーク206および関連サービス304によってクライアント・アプリケーション・プログラム302に提供される。装置インフラストラクチャ204(図2参照)のオペレーティング・システムの一部分は、アプリケーション・コンテナ300およびフレームワーク・サービス304のいずれかのサービスを表わすことができる。
フレームワーク・サービス304は、通信サービス306、プレゼンテーション・サービス308、パーシステンス・サービス310、アクセス・サービス312、供給サービス314、およびユーティリティ・サービス316などを含むことができるが、それらに限らない。通信サービス306は、コンポーネント・アプリケーション302に代わって(通信サービス306により)ウェブ・サービスに関して送信/受信されるメッセージ105および関連データのような、コンポーネント・アプリケーション・プログラム302と外部システム10との間の接続を管理する。図8a、8b、9a、9b、10a、10bに関連してさらに下述するように、通信サービス306は一連のマッピング800(図8a参照)を実現するために使用することができる。プレゼンテーション・サービス308は、コンポーネント・アプリケーション・プログラム302がユーザ・インタフェース202(図2参照)の出力装置に出力されるときに、コンポーネント・アプリケーション・プログラム302の表現を管理する。パーシステンス・サービス310は、コンポーネント・アプリケーション・プログラム302が装置インフラストラクチャ204のメモリ・モジュール210(図2参照)にデータを格納することを可能にする。パーシステンス・サービス310は、マッピング800(図8a参照)を介してメッセージ・コンポーネント404にリンクされたデータ・コンポーネント400のデータ・インスタンスの変更/生成を調整するために使用することができると認識される。アクセス・サービス312は、コンポーネント・アプリケーション・プログラム302に、通信装置100上に存在する他のソフトウェア・アプリケーションへのアクセスを提供する。供給サービス314は、通信装置100上のソフトウェア・アプリケーションの供給を管理する。アプリケーション供給は、新規および更新コンポーネント・アプリケーション・プログラム302を要求および受信し、ネットワーク104を介してアクセス可能なサービスにアクセスするようにコンポーネント・アプリケーション・プログラム302を構成し、コンポーネント・アプリケーション・プログラム302およびサービスの構成を変更し、コンポーネント・アプリケーション・プログラム302およびサービスを除去することを含むことができる。ユーティリティ・サービス316は、文字列の異なるフォーマットへの変換におけるデータ操作の実行など、様々な一般的タスクを達成するために使用される。
通信装置100のフレームワーク・サービス304はコンポーネント・アプリケーション・プログラム302に機能を提供することができ、それは上述したサービスを含むことができることが認識される。さらに、フレームワーク・サービス304は、アプリケーション302のコンポーネント400、402、404、406を別個のフレームワーク304として提供するのではなく、それらと一体化することができる。いずれにしても、コンポーネント・アプリケーション・プログラム302は、一体化および/または別個のフレームワーク・サービス304を通して、通信装置100の機能性にアクセスすることができる。
「コンポーネント・アプリケーション・プログラム例」
図2を参照すると、ウェブ・サービス(例えば)クライアント・アプリケーション・プログラム302は、コンポーネント・フレームワーク206の端末実行時環境内で実行され、サービス106(図1参照)によって提供されるウェブ・サービス・オペレーションへのアクセスをサポートする。WSDLおよびSOAPプロトコル定義は、メッセージ・データ・パターンを黙示することが明らかである。WSDLウェブ・サービス定義では、オペレーションはメッセージおよびデータ部の表記を使用して定義され、それらはウェブ・サービス・クライアント・アプリケーション・プログラム302を関連データ・セット400およびメッセージ404のコンポーネント(図4参照)として定義するために使用される。
図4を参照すると、コンポーネント・アプリケーション・プログラム302のブロック図は、データ・コンポーネント400、プレゼンテーション・コンポーネント402、およびメッセージ・コンポーネント404を含み、それらはアプリケーション・コンテナ300との通信214を通してワークフロー・コンポーネント406によって調整される。各エレメントが一つまたはそれ以上の値を持つように資源の特定の属性を表わす複数の予め定められたエレメントから成る一連のメタデータとして、コンポーネント400、402、404を構築するために構造化定義言語を使用することができる。メタデータ・スキーマの例として、ダブリン・コア(DC)、アングロ−アメリカン・カタロギング規則(AACR2)、政府情報ロケータ・サービス(GILS)、符号化アーカイブ記述(EAD)、IMSグローバル・ラーニング・コンソシアム(IMS)、およびオーストラリア政府ロケータ・サービス(AGLS)などを含むが、それらに限らない。符号化構文は、コンポーネント400、402、404のメタデータを装置インフラストラクチャ204(図2参照)によって処理することを可能にし、符号化スキームはXML、HTML、XHTML、XSML、RDF、機械可読カタロギング(MARC)、および多目的インターネット・メール・エクステンション(MIME)などを含むが、それらに限らない。
再び図4を参照すると、データ・コンポーネント400は、例えばネイティブ・コードまたはXMLで表現されるアプリケーション・データを含め、コンポーネント・アプリケーション・プログラム302によって使用されるデータ・エンティティを定義する。データ・コンポーネント400が記述することのできるデータ・エンティティの例として注文、ユーザ、および財務トランザクションがある。データ・コンポーネント400はデータ・エンティティを記述するためにどの情報が必要か、および該情報をどのフォーマットで表現するかを定義する。例えば、データ・コンポーネント400は、数字としてフォーマットされる注文の一意の識別子から構成される注文、文字列としてフォーマットされる品目のリスト、日付−時刻フォーマットを有する注文が作成された時間、文字列としてフォーマットされる注文の状態、データ・コンポーネント400の別の一つの定義に従ってフォーマットされる注文を出したユーザなどを定義することができるが、それらに限らない。データ部(エレメント)は通常ウェブ・サービス106の振付規則に従ってメッセージ150からメッセージ105に転送されるので、データ・コンポーネント400の保持性があることが好ましい。データ・コンポーネント400はウェブ・サービス106の振付定義(利用可能ならば)に従って動的に生成するか、あるいは複合型定義および/またはメッセージ相関情報に基づいてアプリケーション設計者によって定義することができる。さらに下述するように、メッセージ・コンポーネント404はマッピング800を介してデータ・コンポーネント400(図8a参照)にリンクすることができる。
再び図4を参照すると、メッセージ・コンポーネント404は、ウェブ・サービス106のような外部システムと通信するためにコンポーネント・アプリケーション・プログラム302によって使用されるメッセージのフォーマットを定義し、かつ、例えば、ネイティブ・コードまたはXMLで表現されるメッセージ・データを含む。例えば、メッセージ・コンポーネント404の一つは、注文の一意の識別子、注文の状態、および注文に関連する注意を含む、注文を出すためのメッセージなどを記述することができるが、それに限らない。構造化定義言語で書かれたメッセージ・コンポーネント404の定義は、WSDLメッセージを一意に表現する(かつそれにマップする)ことができ、かつ実行時に動的に生成することができる。したがって、ウェブ・サービス・インタフェースを表現するために使用される、例えばWSDLおよびBPELに限らずそのような定義言語の標準ウェブ・サービス・メタデータから、クライアント・アプリケーション・メッセージ105および関連データ内容のためのコンポーネント定義の動的生成を行なうことができる。ウェブ・サービス・メッセージ105はオペレーションのコンテクスト内で定義され、コンポーネント・アプリケーション・プログラム302の定義のメッセージ・コンポーネント404間に定義された相関関係がある。この相関は、予め定められたパラメータを使用して、かつ/またはさらに下述するように別個のワークフロー・コンポーネント406を通して行なうことができる。
再び図4を参照すると、プレゼンテーション・コンポーネント402は、ユーザ・インタフェース202によって表示されるときのコンポーネント・アプリケーション・プログラム302の外観および挙動を定義する。プレゼンテーション・コンポーネント402はGUIスクリーンおよび制御、ならびにユーザがユーザ・インタフェース202を使用してコンポーネント・アプリケーション302とインタラクションするときに実行される動作を指定することができる。例えばプレゼンテーション・コンポーネント402はスクリーン、ラベル、編集ボックス、ボタン、およびメニュー、ならびにユーザが編集ボックスに打ち込んだときまたはボタンを押したときに行なわれる動作を定義することができる。大部分のウェブ・サービス消費者はウェブ・サービス・オペレーション結果の視覚的表現を使用し、したがってユーザ・インタフェース・スクリーンを表示することのできる彼らの装置100に実行時環境を提供する。
再び図4を参照すると、コンポーネント・アプリケーション・プログラム302のワークフロー・コンポーネント406は、上述したようにプレゼンテーション・コンポーネント402によって指定された動作、またはシステム10からメッセージ105(図1参照)が到着したときに実行される動作などの動作を実行するときに発生する処理を定義する。プレゼンテーション・ワークフローおよびメッセージ105の処理は、ワークフロー・コンポーネント406によって定義される。ワークフロー・コンポーネント406は、プログラミング言語またはECMAScriptに限らずそのようなスクリプト言語の一連の命令として書かれ、かつ上述したように、アプリケーション・コンテナ300によってネイティブ・コードにコンパイルされ実行される。ワークフロー・コンポーネント406の一例として、データに値を割り当てること、スクリーンを操作すること、あるいはメッセージ105を送信することが挙げられる。ワークフロー・コンポーネント406はメッセージ105間の相関関係をサポートし、他のコンポーネント400、402、404に対するオペレーションの規則セットとしてアプリケーション・フローを定義する。所定のアプリケーション・プログラム302に関し、多数のワークフロー・コンポーネントを定義することができる。
ECMA(欧州コンピュータ製造工業会)スクリプトは標準スクリプト言語であり、スクリプトは、コンピュータ・プロセッサによってではなく、別のプログラムによって翻訳されるか実行される一連の命令と呼ぶことができる。スクリプト言語の幾つかの他の例としてPerl、Rexx、VBScript、Java(登録商標)Script、およびTcl/Tkがある。スクリプト言語は一般的に、装置100のような既存のシステムの機能を操作し、カスタマイズし、自動化するために使用される命令言語である。そのようなシステムでは、有用な機能性はユーザ・インタフェース202(図2参照)を通してすでに利用可能であり、スクリプト言語はその機能性をプログラム制御にさらすための機構である。このようにして装置100は、スクリプト言語の機能を達成する、オブジェクトおよび機能のホスト実行時環境を提供すると言われている。
したがって、図4を参照すると、クライアント・アプリケーション・プログラム302は、XML(または他の適切な構造化定義言語)を使用してプラット・フォーム・ニュートラルなコンポーネント定義セットとして、すなわちデータ400およびメッセージ404コンポーネントならびにプレゼンテーション・コンポーネント402に対して定義することができる。ワークフロー・コンポーネント406は、ECMAScript(またはいずれかの他の適切なプラット・フォーム・ニュートラルなスクリプト言語)を使用して定義することができる。コンポーネント・フレームワーク206(図2参照)のクライアント実行時環境は、コンポーネント・アプリケーション・プログラム302のコンポーネント400、402、404、406が装置100に供給されたときに、さらに下述するように、メタ定義に基づいてコンポーネント・テンプレートを生成することができる。多種多様な端末実行時環境により、XMLまたはECMAScriptのようなクロス−プ
ラット・フォーム標準を使用して、コンポーネント・アプリケーション・プログラム302を事前に作成するのではなく、アプリケーション・コンポーネント・メタデータを定義することができる。この遅延バインディングにより、種々の異なる装置100によって表わされる多種多様な端末システム環境で、コンポーネント・アプリケーション・プログラム302の汎用アプリケーション定義を実行することが可能になる。
XMLまたはその派生語を使用してデータ400、メッセージ404、およびプレゼンテーション402のコンポーネントを表現し、かつECMASCript言語またはそのサブセットを使用してワークフロー・コンポーネント406を表現することにより、アプリケーション開発者は特定のプラット・フォームまたは環境からウェブ・サービス・クライアントを抽出し、主要な「一度作成すればどこででも動く」アプリケーションを実現することが可能になる。以下の例は、XMLのような構造化定義言語(これに限定されるものではない)およびECMAScriptのようなプラット・フォーム・ニュートラルな言語(これに限定されるものではない)で定義されたコンポーネントを使用して、ウェブ・サービス・クライアント・アプリケーション・プログラム302をいかに表現することができるかを示す。
XMLデータ・コンポーネント400の例
Figure 2009054151
XMLメッセージ・コンポーネント404の例
Figure 2009054151
XMLプレゼンテーション・コンポーネント402の例
Figure 2009054151
ECMAScriptワークフロー・コンポーネント406の例
Figure 2009054151
図4を参照すると、上述の通り、メッセージ・コンポーネント404は、メッセージ105の入力および出力のために必要なデータを中継することが分かる。対応するデータ・コンポーネント400は、プレゼンテーション・コンポーネント402によるユーザ・インタフェース202(図2参照)でのその後のプレゼンテーションのために、装置100のメモリ・モジュール210(図2参照)内のデータの格納を調整する。ワークフロー・コンポーネント406は、データ400、プレゼンテーション402、およびメッセージ404コンポーネント間のデータの転送を調整する。
さらに、コンポーネント・アプリケーション・アーキテクチャは、ハード・コード化ネイティブ・アプリケーションおよび有効データ・ストレージおよびパーシステンス・モデルに比較して、相対的に小さいアプリケーション・ダウンロード・サイズ(コンポーネント定義のみから構成される)を提供することができる。クライアント実行時環境は、最小単位のデータ・エンティティを格納しかつ構成することができ、ブラウザ・アプリケーションのためのHTMLページのようなレンダリングされたプレゼンテーションを操作することに対して、最小単位のデータ・エンティティを直接格納し更新することができる。
「コンポーネント・アプリケーション・モデルのオペレーション例」
例えば図1、3および6を参照すると、オペレーション600は、装置100がメッセージ・データを含む応答メッセージ105を受信するときに(602)、適切なワークフロー・コンポーネント406が適切なメッセージ・コンポーネント404に従ってメッセージ105のデータ内容を翻訳する(604)ことを示す。ワークフロー・コンポーネント406は次いでデータ内容を処理し(606)、メモリ・モジュール210(図2参照)へのその後の格納(612)のために、対応するデータ・コンポーネント400にデータを挿入する(610)。さらに、必要ならば、ワークフロー・コンポーネント406は、ユーザ・インタフェース202(図2参照)におけるその後の表示(614)のために、データを適切なプレゼンテーション・コンポーネント402にも挿入する(608)。
図1、3および7を参照すると、オペレーション700は、ボタンを押しあるいはメニュー項目を選択するなどの動作(ユーザがユーザ・インタフェース202(図2参照)を介してユーザ・インタフェース・エレメントに実行する(703))のためのデータ入力(702)を示す。関連ワークフロー・コンポーネント406は、適切なプレゼンテーション・コンポーネント402に従って入力データを翻訳し(704)、適切なデータ・コンポーネント400によって定義されるデータ・エンティティを生成する(706)。ワークフロー・コンポーネント406は次いで、メモリ・モジュール210(図2参照)へのその後の格納(712)のために、ユーザによって提供された入力データをデータ・コンポーネント400に投入する(710)。さらに、ワークフロー・コンポーネント406はまた、メッセージ・コンポーネント404によって定義されるように、メッセージ105で入力データをデータ・エンティティとしてウェブ・サービスに後で送信する(714)ために、適切なメッセージ・コンポーネント404に入力データを挿入する(708)。
「データおよびメッセージ・コンポーネント間のマッピング」
図4に関連して上述したように、ワイヤレス・アプリケーション302は、メッセージ404、データ400、およびコンポーネント402、406の集合として、これらのコンポーネントがどのようにインタラクションするかを指定する情報を含めて表現される。アプリケーション302は、XMLのような構造化定義言語を使用して表現される。メッセージ404およびデータ400両方のコンポーネントとしての表現は、以下の類似性を共有することが注目される。
◎各コンポーネント400、404は一意の名前によって識別される。
◎各コンポーネント400、404は、名前および宣言型から成る一つまたはそれ以上のサブフィールドを指定する。
実際には、一般的に開発者によるコンポーネント400、404の表現はほとんど同一であるが、アプリケーション302のコンポーネント400、404の各々の挙動は区別される。したがって、メッセージ105(図1参照)の内容が基礎を成すデータ・エレメントからしばしば生成されることを認識することにより、かつ、これらのコンポーネント400、404の表現の間の類似性に照らして、さらに下述するように、メッセージ・コンポーネント404の表現に対するマッピング800(図8a参照)を導入すると便利である。これらのマッピング800は本質的に、メッセージ・コンポーネント404に関してメッセージの定義がどのように得られるか、およびアプリケーション302の実行中にメッセージ・コンポーネント404が実行時にどのように挙動するかを指定するメッセージ105の表現の近道である。マッピング800は、メッセージ・コンポーネント404の定義とデータ・コンポーネント400の定義との間の定められた関係である。メッセージ・コンポーネント404に関連して、マッピング800を使用することにより、メッセージ・コンポーネント404を記述するために必要なメタデータの量を低減することができる。したがって、マッピング800の使用は、アプリケーション302を記述するために必要な「コード」の量に直接的な影響を及ぼすことができる。実行時にコンポーネント404がいかに挙動するかに関連して、マッピング800は、リンクされたデータ・エレメント(データ・コンポーネント400によって記述される)をメッセージ状態によっていかに解決しかつ影響を及ぼすかを指定する。これに関し、マッピング800を指定することにより、開発者がアプリケーション302に追加的な特定のメッセージ取扱いコードを設ける必要性を低減することができる。
「マッピング解決規約」
再び図1および8aを参照すると、アプリケーションおよび対応するサービス304は、一意の識別子802(図8a参照)を有するマッピング解決規約またはマッピング規則に依存する。このマッピング規則は、データ・コンポーネント400に付加されたどのマッピング800も、マップされたデータ型毎に厳密に一つのキー・フィールド804をマップすることを定める。このマッピング規則は、マッピング800によって影響されるデータ・インスタンスの一意の識別および変更を規定する。マッピング規則は、対応するメッセージ・コンポーネント404のメッセージ内容がリンクされるデータ・コンポーネント400のインスタンスをマッピング800が分離することを定める。データ・コンポーネント400インスタンスは、一意の識別子802(例えばキー)によって解決される。この識別子802の組成は、単純な一次キーまたは二つ以上のフィールドから発生する複合キーなどとすることができるが、それらに限らないことが注目される。データ・コンポーネント400のデータ定義の単一フィールド804(コンポーネント名など)は、この識別子802を表わすものとして識別される。マッピング解決規約は、リンクされた各データ・コンポーネント400のマッピング800に厳密に一つの一次キー・フィールド804が含まれることを規定する。マッピング800のこの一対一の性質は、さらに下述するように、入メッセージ・データが適用されるデータ・インスタンスの一意の解決をもたらす。特定のデータ・インスタンスは、フィールド名808の各々にデータ値が割り当てられた、選択されたデータ・コンポーネント400として表わされる。メッセージ・インスタンス806は、マッピング800を通して、含まれるメッセージ・フィールドにデータ値が割り当てられる、選択されたメッセージ・コンポーネント404として表わされる。
二つの型のマッピング800、つまりフィールド・レベル・マッピング901およびメッセージ・レベル・マッピング801について記述する。以下で、メッセージ404対データ400のコンポーネント・マッピング800がいかに表現され、メッセージ内容がどこに適用されるかを一意に判断するために存在する実行時解決規約を指定することができるかを詳述する。
「メッセージ・レベル・マッピング801」
再び図8aを参照すると、メッセージ・レベル・マッピング801は、メッセージ・コンポーネント404から指定されたデータ・コンポーネント400の定義への直接のマッピング800であるので、メッセージ806フィールド・プロパティ(メッセージ・インスタンス)はマップされたデータ・コンポーネントのそれと同一である。メッセージ・レベル・マッピング801は、メッセージ・インスタンス806がデータ・コンポーネント400のリンクされたデータ・エレメントからその完全な指定を導出するように定める。リンクされたデータ・コンポーネント400に記述された全てのフィールドが、フィールド名808および型宣言810の両方およびフィールド順序を監視して、メッセージ・インスタンス806に存在する。例えば、この型のメッセージ・レベル・マッピング801は、入または出メッセージ・インスタンス806が、データ・コンポーネント400のデータ・インスタンスによって表わされる情報を厳密に複製する場合に好適であり取得する。図8bを参照すると、「Order」データ・コンポーネント400と「submitOrder」メッセージ・コンポーネント404との間のサンプル・メッセージ・レベル・マッピング801が示されている。マッピング801のマッピング解決規約は、「OrderId」一次キー・フィールド802の暗黙のリンク付けによって満たされる。この関係のサンプル構造化定義言語記述(例えばXML)を図8bに示す。XML表現から、このマッピング801を導入することによって、データ・コンポーネント400の引数812のリストがリンクされたメッセージ・コンポーネント404内で繰り返されないので、アプリケーション302定義(図4参照)のサイズを低減することができることが明らかである。
「フィールド・レベル・マッピング901」
フィールド・レベル・マッピング901(図9a、9b参照)は、メッセージ・コンポーネント404の定義の特定のフィールド904から指定されたデータ・コンポーネント400の定義の指定されたフィールド808へのマッピング800を提供する。フィールド・レベル・マッピング901は、マッピング800のより柔軟な構成が要求される場合に生じることができる。この構成では、各フィールド・マッピング901が、メッセージ・インスタンス906の各選択フィールド904とデータ・コンポーネント400に対応するデータ・インスタンスのフィールド808との間のリンケージを指定する。任意の個数のそのようなフィールド・マッピング901が存在することができる。フィールド・マッピング901は一つのターゲット・データ・コンポーネント400だけを含むことができ(一対一のリンケージ)、あるいは別個のフィールド・マッピング901を通して、複数のデータ・コンポーネント400をメッセージ・インスタンス906にリンクすることができる(一対多数のリンケージ)。マッピング解決規約を満足するために、メッセージ・コンポーネント404にリンクされる全てのデータ・コンポーネント400のためのキー・フィールド802が含まれる。
図9aを参照すると、一対一のマッピング901の構成は、単一のデータ・コンポーネント400へのリンクを含む。一つのフィールド・マッピング901は、データ・コンポーネント400の一次キー802を表わすフィールドに対して行なわれ、したがってメッセージ・インスタンス906がデータ・コンポーネント400のデータ・インスタンスとリンクされる。他のマッピング901は、コンポーネント404の選択されたメッセージ・フィールド904と、コンポーネント400の対応するデータ・フィールド808との間で行なわれる。図9aは、「Part」フィールド808が「priceReduction」メッセージ・フィールド904にリンクされる、一般的なフィールド・レベル・マッピング901の関係を示す。マッピング解決規約は、「Part」のキー・フィールド802として識別される「partNo」フィールドに対しリンク901を形成することによって満たされる。これらの関係のサンプルXML表現を図9bに提示する。ここでキー・フィールド・マッピング901はボールド体で示されている。メッセージ・インスタンス906は二つ以上のメッセージ・フィールド904を持つことができ、同じキー802のもとで各々がそれぞれのデータ・フィールド808にマップされる(つまり、メッセージ・コンポーネント404は同じキー802を使用してデータ・コンポーネント400の二つ以上のデータ・フィールド808にリンクすることができる)ことが認識される。
「複合マッピング1001」
図10aおよび10bを参照すると、複合マッピング1000の構成は、二つ以上のデータ・コンポーネント400へのフィールド・レベル・マッピング901から成る。図8a、8bの一対一のマッピングの場合と同様に、フィールド・マッピング901のセットを通してリンクされた全てのデータ・コンポーネント400に対して、異なる一意の一次キー・フィールド802のマッピングが提供される。図10bは、「orderUpdate」メッセージ404と「Order」および「Inventory」データ・コンポーネント400との間の関係のXML表現を示す。リンクされた二つのデータ・コンポーネント400の各々に対し、キー802によるそれぞれの主フィールド・マッピング901が、つまり「Order」400に対する「orderId」フィールド・キー802および「Inventory」400に対する「partNo」フィールド・キー802が、所定の位置に配置される。これはマッピング解決規約を満足する。これらの一次キー・フィールド・マッピング901はボールド体で示されている。
図8a、8b、9a、9b、10a、10bに示した例に鑑み、他のマッピング800構成が可能である。そのようなものの例として、さらに下述するように、拡張定義、メッセージ・プロトタイピング、および到着イベント処理などがあるが、それらに限らない。拡張定義とは、追加的非マップ・フィールド904を定義することによって、メッセージ801またはフィールド・マッピング901の構成を拡張するメッセージ・コンポーネント404である。この拡張メッセージ・インスタンス906は、マッピング801、901の存在下で、それぞれのデータ・コンポーネント400にマップされないがメッセージ・コンポーネント定義404内のそれ自体の仕様を完全にする、フィールド904を追加することによって、その定義を拡張することができる。これらのフィールド904は、一つまたはそれ以上のフィールド・マッピング801、901を有するメッセージ906、またはそれぞれのデータ・コンポーネント400にマップされるメッセージ906のいずれかに追加することができる。拡張定義は、マップされるメッセージ906の仕様に柔軟性を与える追加的手段を提供することができる。メッセージ・プロトタイピングは、別のメッセージ・コンポーネント404の規定された定義を拡張する機能と定義することができる。このメカニズムは、オブジェクト指向承継と同様の効果を有する。つまり、親メッセージ906の全ての宣言フィールド904が、拡張メッセージ906に利用可能になる。マッピング801、901の関係に関して、拡張メッセージ・マッピング801、901は、親メッセージ906で定められたマッピング仕様を無効にすることができる。メッセージ到着イベント処理の場合、メッセージ受信に対する追加処理コードの関連付けを許可することによって、マッピング・メカニズムをさらに増強することができる。処理コードの本体は、アプリケーションXMLを通してメッセージ・コンポーネント404の仕様を通して識別することができる。処理コードは、アプリケーション302(例えばワークフロー・コンポーネント406)に埋め込まれたスクリプト(ECMAScriptなど)とすることができ、あるいはコンポーネント・フレームワーク206(図2参照)の装置実行時環境によって提供される標準ネイティブ変換を識別することができる。メッセージ到着イベント処理の取扱いについてはさらに下述する。
「メッセージ生成1100」
図8a、8b、9a、9b、11a、11bを参照すると、メッセージ・インスタンス906の発生のために、メッセージ対データのマッピング801、901は、メッセージ・インスタンス906が伝える内容のソースおよびフォーマットを定義する。メッセージ・フォーマットはリンクされたデータ・コンポーネント400から同じように導かれることができ(メッセージ・マッピング801)、あるいは複数のデータ・コンポーネント400関係の集合的効果によって定義することができる(フィールド・レベル・マッピング901)。最後に、幾つかのメッセージ・フィールドはそれ自体の宣言を伝えることができる(拡張定義)。いずれかの型のマッピング801、901を指定する発生メッセージ・インスタンス906を生成するために、全ての従属データ・コンポーネント400インスタンスが生成プロセス1100の入力に供給される。加えて、フィールド904の拡張宣言は、供給されるメッセージ・インスタンス906が必要なフィールド値を提供することを暗に示す。
図9a、9b、11a、11bを参照すると、メッセージ・インスタンス「M」(メッセージ・インスタンス806、906に対応する)の最終的生成1114が、メッセージ宣言「Ms」(メッセージ・コンポーネント404に対応する)を使用して行なわれる。ダイレクト・メッセージ・マッピング801の場合、マップされたデータ・コンポーネント定義「Ds」(データ・コンポーネント400に対応する)が入力データ・インスタンス「d」と共に使用され、最終的メッセージ・インスタンス「M」が判断される。ステップ1102で、メッセージ・コンポーネント「Ms」が得られ、ステップ1104で、コンポーネント「Ms」を検査してメッセージ・レベル・マッピング801が存在するか否かを調べることにより、装置実行時環境(例えば通信サービス306−図3参照)によって判断が行なわれる。肯定の場合、マッピング801によって定義される通り、メタデータ宣言「Ds」が得られる(1106)。サービス306はパーシステンス・サービス310からデータ・インスタンス「d」値を入力し(1108)、メッセージ・インスタンス「Ms」のメッセージ・フィールド904に書き込む(1112)。次いで通信サービス306はデータ・コンポーネント「Ds」を分析して(1110)、マッピング801によって暗示されるメッセージ・インスタンス「M」に関連付けるためのデータ・フィールド808がまだあるかどうかを調べる。肯定の場合、全てのフィールド808がメッセージ・インスタンス「M」に含まれるまで、ステップ1106、1108、および1112が繰り返される。次いでステップ1114でメッセージ・インスタンス「M」が生成される。
フィールド・マッピング901の場合、通信サービス306によってメッセージ・フィールド・レベル・マッピング901を照会することにより、データ・コンポーネント定義「Dsp」および従属データ・フィールド宣言「Ds.fn」が抽出される。入力データ・インスタンス「di」からの適切なフィールド値808(d.fn)が出力メッセージ・インスタンス「M」に追加される。ステップ1104で否定の場合、ステップ1116で、通信サービス306はフィールド・マッピング901があるかどうかを判断し、無い場合には、上述した通り、メッセージ・インスタンス「M」の現在の内容がステップ1114で生成される。そうでない場合、メッセージ・フィールド904の記述が分析され(1118)、フィールド・マッピング901がある場所(1120)で、マップされたデータ・コンポーネント型が得られ(1124)、マップされたフィールド型宣言がデータ・コンポーネント「Ds」から得られ(1126)、宣言に対応するデータ・インスタンスのデータ値がパーシステンス・サービス310から得られる(1128)。次いで値は、データ・コンポーネント「Ds」のフォーマットを使用して、対応するメッセージ・フィールド904に書き込まれる。それ以上マッピング901が無ければ、メッセージ・インスタンス「M」がステップ1114で生成される。最後に、拡張定義の場合、フォーマットは「Ms」から直接採られ(1122)、フィールド値が入力メッセージ・インスタンス「M」を通して入手できると期待される。特に二つ以上の型のマッピングがメッセージ・インスタンス「M」に提供される場合(つまりメッセージ・コンポーネント「Ms」に複数のコンポーネント「Ds」がリンクされる多重マッピング801、901の場合)には、上述した通り、メッセージおよびフィールド・マッピング801、901の組合せを提供することができる。
「メッセージ処理1200」
メッセージ・インスタンス「M」の到着により(図11a、11b参照)、マッピング800は次の二つの効果のうちの一つを持つ。
◎マップされたデータ・コンポーネント・インスタンス「d」でフィールド「d.fn
を更新させる。
◎さらなるマッピング関係800によって判断されるように、フィールド「d.fn」で
新しいデータ・コンポーネント・インスタンス「d」を生成させる。
メッセージ・フィールド値「M.fn」が適用されるデータ・インスタンス「d」は、
メッセージ対データ・マッピング解決規約によって判断される。データ・インスタンス「d」は、データ一次キー・フィールド802(図8a参照)にマップされたメッセージ・フィールド値「M.fn」を採ることによって解決される。使用されるマッピング800
の型に応じて、装置100またはウェブ・サービス106のいずれかにおけるメッセージ「M」の到着によって影響されるデータ・インスタンス「d」は一つ(メッセージ・マッピング801)、または一つ以上(フィールド・マッピング901)存在する。データを見つけて更新するために、データ一次キー・フィールドにマップされたメッセージ・フィールド904(図9a参照)に対応するメッセージ・フィールド値「M.fn」は一意で
はない。一次キー値802を持つマップされた型のデータ・インスタンス「d」がすでに存在している。データ・インスタンス「d」はこの一次キー値802によって解決され、このデータ型に対する他の全てのマッピング800により、このデータ・インスタンス「d」のフィールド「d.fn」は更新される。フィールド・マッピング901が使用され
る場合、このプロセスによって影響される二つ以上のデータ・インスタンス「d」があるかもしれないことが注目される。新しいデータを生成するために、データ一次キー・フィールドにマップされたメッセージ・フィールドに対応するメッセージ・フィールド値「M.fn」は一意である。その結果、関連する一次キー・フィールド値802を持つデータ
の新しいインスタンス「d」が生成される。このデータ型に対するその後のマッピングは全て、新しく生成されたデータ・インスタンス「d」のフィールド「d.fn」を更新す
る。「見つけて更新する」ことにより、フィールド・マッピング901を使用する場合、二つ以上のデータ・インスタンス「d」が生成されることがある。データ解決および更新プロセスについて、到着メッセージ「M」の処理および既存の/新しいデータ・インスタンス「d」に対する影響を図12a、12bに示す。拡張定義(非マップ)フィールドはデータ解決および更新プロセスに関係しない。簡素化するために、このフィールド型を検出する場合については、以下では示さない。図12a、12bは、マッピング800を通してメッセージ・インスタンス「m」に関連付けられたデータ・コンポーネント400の解決および更新プロセスを示す。
ステップ1202で、メッセージ・インスタンス「m」のメタデータ定義がメッセージ・コンポーネント「Ms」から得られ、ステップ1204で、メッセージ・インスタンス「m」はメッセージ・コンポーネント404に関連付けられる。ダイレクト・メッセージ・マッピング801の場合、ステップ1206で、データ・コンポーネント仕様「Ds」がマッピング情報から得られる(1208)。「Ds」の一次キー・フィールドが判断され(1210)、このフィールドに適用される値(m.fpk)が「m」の対応フィールドから得られる(1212)。ステップ1214で、インスタンス「d」の既存のバージョンがメモリ210(図2参照)で探索される。この値を使用して、「Ds」のインスタンスを見つける(1216)か、あるいは作成する(1218)ことができ、これにより「d」が生成される。ステップ1220で、データ・コンポーネント「Ds」のさらなるフィールドが判断される。肯定の場合、対応するフィールドのデータ・コンポーネント定義が分析され(1222)、解決された対応フィールドの各々に「m」の残りのフィールド値が適用され(1224)、これにより更新/作成されたデータ・インスタンス「d」が生成される(1226)。
フィールド・マッピング901の場合、ステップ1228で、各々のフィールド・マッピング901の一次キーが判断される。マッピング情報901からデータ・コンポーネント仕様「Ds」が得られる(1230)。解決プロセスは、データ・コンポーネント主フィールド「Ms.fpki」にマップされる「Ms」から全てのフィールド・レベル・マッ
ピング901を判断することに依存する。フィールド・マッピング901のコンポーネント・データ型は「Ms.fpki」から「Dsi」として判断することができる。このフィールド(m.fpki)の入力メッセージ「m」からキー値802を使用して(1232)、
「Dsi」のデータ・インスタンスを見つける(1236)か、あるいは作成する(12
34)することができ、これにより「Dsi」に対応するデータ・インスタンス「di」が生成される。データ・インスタンス「di」は、各フィールド「di.fn」を順に選択す
ること(1238)によって一度に一つずつ解決され更新される。マップされたメッセージ・フィールド「Ms.fp」が得られ(1240)、対応するマップ・フィールド定義
「Dsi.fn」が得られる(1242)。「Dsi」のフィールドにマップ901された
Msの残りのフィールドは、メッセージ・インスタンス・フィールド「m.fp」から採
られたそれらの値を持ち、「Dsi」の対応するフィールド・フォーマット:「Dsi.fn」を使用して「di.fn」に適用される(1244)。マップされたすべてのデータ・
インスタンスが更新され、これによりステップ1226で「d」が生成されるまで、このプロセスは続く。
図1を参照して前述した通り、メッセージ105が到着したときに、アプリケーション302に追加処理または変換を実行するように、スクリプトまたは他の実行可能なユニット(例えばワークフロー・コンポーネント406)(図4参照)を関連させることが望ましいかもしれない。この目的のために、メッセージ・コンポーネント定義404は、この型のメッセージ105を受信したときに呼び出されるカスタム処理ユニット(フレームワーク206の一部)のアドレスを指定することができる。スクリプトの実行に加えて、インテリジェンス装置実行時は、メッセージ105および全てのそのフィールド値を処理ユニットの範囲で利用可能にする。さらに、マッピング800により影響される全てのデータ・インスタンス「di」、処理装置の範囲で利用可能になる。
本書の開示を一つまたはそれ以上の例示的システムおよび方法に即して示したが、当業熟練者には多くの変形が明白であり、そのような変形は本願の範囲内である。例えば、提示した例ではXMLおよびECMAScriptのサブセットを使用したが、他の言語および改変言語を使用してコンポーネント・アプリケーション302を定義してもよい。上記マッピング800およびオペレーション(1100、1200)の代替例として、データ・フィールド808(図8a参照)の定義はメッセージ・コンポーネント404(図4参照)に含めることができる。したがって、メッセージ・インスタンスの生成は、メッセージ・コンポーネント404の定義に含まれるデータ・フィールド定義に基づくことになり、データ・コンポーネント400は、データ・フィールド定義を含む対応するメッセージ・コンポーネント404にマップされる。これにより、データ・インスタンスの生成は、マップされたメッセージ・コンポーネント404に含まれるデータ・フィールド定義に依存する。
ネットワーク・システムのブロック図である。 図1の装置のブロック図である。 図2の装置のコンポーネント・フレームワークのブロック図である。 図2のコンポーネント・アプリケーション・プログラムのブロック図である。 図1のシステムの例示的アプリケーション・パッケージおよびホスト・モデルのブロック図である。 図4のコンポーネント・アプリケーション・プログラムを実現する方法の一例を示すフローチャートである。 図4のコンポーネント・アプリケーション・プログラムを実現する方法の別の一例を示すフローチャートである。 図4のアプリケーションのメッセージ・レベルのマッピングの例である。 図4のアプリケーションのメッセージ・レベルのマッピングの例である。 図4のアプリケーションのフィールド・レベルのマッピングの例である。 図4のアプリケーションのフィールド・レベルのマッピングの例である。 図4のアプリケーションの複合マッピングの例である。 図4のアプリケーションの複合マッピングの例である。 図8a、8b、9a、9b、10a、10bのメッセージ・マッピングの効果により出メッセージを生成するアルゴリズムを示すフローチャートである。 図8a、8b、9a、9b、10a、10bのメッセージ・マッピングの効果により出メッセージを生成するアルゴリズムを示すフローチャートである。 図8a、8b、9a、9b、10a、10bのメッセージ・マッピングの効果により入メッセージを処理するアルゴリズムを示すフローチャートである。 図8a、8b、9a、9b、10a、10bのメッセージ・マッピングの効果により入メッセージを処理するアルゴリズムを示すフローチャートである。
符号の説明
10 ネットワーク・システム
100 装置
102 ワイヤレス・ネットワーク
104 ワイド・エリア・ネットワーク
106 ウェブ・サービス
110 アプリケーション・サーバ
112 ゲートウェイ・サーバ
114 ローカル・エリア・ネットワーク

Claims (40)

  1. デバイス上で実行するコンポーネント・アプリケーションにしたがって、通信メッセージ・インスタンスを投入する方法であって、
    前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、
    コンポーネントの定義は構造化定義言語で表現され、
    前記方法は、
    前記メッセージ・インスタンスが生成されるべきことを決定し、対応するメッセージ・コンポーネントを識別し、
    前記対応するメッセージ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは、前記データ・コンポーネントにおいて少なくとも一つのデータ・フィールドを識別するためのものであり、
    マップされた前記データ・コンポーネントの少なくとも一つのデータ・フィールドに対応する少なくとも一つのデータ・インスタンス・フィールド値を取得し、
    前記少なくとも一つのデータ・インスタンス・フィールド値とともに前記メッセージ・インスタンスの前記少なくとも一つのメッセージ・フィールドを投入する、
    方法。
  2. 前記データ・コンポーネントの複数のデータ・フィールド定義が、前記マッピングによって表わされる、メッセージ・コンポーネントとデータ・コンポーネントとの間で共有される、請求項1に記載の方法。
  3. 一意の前記マッピングによって表わされる、複数の前記データ・フィールド定義を前記メッセージ・コンポーネントのメッセージ・フィールドの対応する一つにリンクするステップをさらに含む、請求項2に記載の方法。
  4. 前記メッセージ・インスタンスの処理を支援するために、前記メッセージ・コンポーネントに結合された追加処理コードを識別するステップをさらに含む、請求項2に記載の方法。
  5. 処理コードが該処理コードを取り扱うための供給ユニットのアドレスを指定する、請求項4に記載の方法。
  6. 一意の前記マッピングに関連してメッセージ・フィールド定義の追加的な非マップ定義を識別するステップをさらに含む、請求項3に記載の方法。
  7. マッピングが、メッセージ・フィールド定義の第一の一つをデータ・フィールド定義の第一の一つにリンクし、メッセージ・フィールド定義の第二の一つをデータ・フィールド定義の第二の一つにリンクする、フィールド・レベル・マッピングである、請求項2に記載の方法。
  8. 前記メッセージ・コンポーネントのメッセージ・フィールド定義の数が、マップされた前記データ・コンポーネントのデータ・フィールド定義の数より少ない、請求項7に記載の方法。
  9. 第一メッセージ・フィールド定義が一意のマッピングの第一の一つによってデータ・コンポーネントの第一の一つにマップされ、第二のメッセージ・フィールド定義が一意のマッピングの第二の一つによって第一のデータ・コンポーネントとは異なるデータ・コンポーネントの第二の一つにマップされる、請求項7に記載の方法。
  10. 第一メッセージ・フィールド定義および第二メッセージ・フィールド定義が個別の一意のマッピングを使用して同一データ・コンポーネントにマップされる、請求項8に記載の方法。
  11. 前記構造化定義言語がXMLベースである、請求項2に記載の方法。
  12. 前記アプリケーションがワイヤレス・アプリケーションであり、前記装置がワイヤレス装置である、請求項11に記載の方法。
  13. 一意のマッピングが単純な一次キーである、請求項2に記載の方法。
  14. 一意のマッピングが複合キーである、請求項2に記載の方法。
  15. 前記メッセージ・コンポーネントが従属メッセージ・コンポーネントに結合された親メッセージ・コンポーネントを定義する、請求項2に記載の方法。
  16. 従属メッセージ・コンポーネントのマッピングのそれぞれ一つによって親メッセージ・コンポーネントのマッピングの一つを無効にするステップをさらに含む、請求項15に記載の方法。
  17. 通信メッセージ・インスタンスの生成は、前記装置で実行されるアプリケーションとのインタラクションのためのデータ・インスタンスにもとづく、請求項1に記載の方法。
  18. 受信したメッセージにもとづいて、デバイス上で実行するコンポーネント・アプリケーションのためにデータ・インスタンスを投入する方法であって、
    前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、
    コンポーネントの定義は構造化定義言語で表現され、
    前記方法は、
    メッセージを受信し、対応するメッセージ・コンポーネントを識別し、
    前記対応するメッセージ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは、前記データ・コンポーネントにおいて少なくとも一つのデータ・フィールドを識別するためのものであり、
    マップされた前記メッセージ・コンポーネントの前記少なくとも一つのメッセージ・フィールドに対応する少なくとも一つのメッセージ・インスタンス・フィールド値を取得し、
    前記少なくとも一つのメッセージ・インスタンス・フィールド値とともに、前記データ・インスタンスの前記少なくとも一つのデータ・フィールドを投入する、
    方法。
  19. 前記データ・コンポーネントの複数のデータ・フィールド定義が、前記マッピングによって表わされる、メッセージ・コンポーネントとデータ・コンポーネントとの間で共有される、請求項18に記載の方法。
  20. 一意の前記マッピングによって表わされる、複数の前記データ・フィールド定義を前記メッセージ・コンポーネントのメッセージ・フィールドの対応する一つにリンクするステップをさらに含む、請求項19に記載の方法。
  21. 前記メッセージ・インスタンスの処理を支援するために、前記メッセージ・コンポーネントに結合された追加処理コードを識別するステップをさらに含む、請求項19に記載の方法。
  22. 処理コードが該処理コードを取り扱うための供給ユニットのアドレスを指定する、請求項21に記載の方法。
  23. 一意の前記マッピングに関連してメッセージ・フィールド定義の追加的な非マップ定義を識別するステップをさらに含む、請求項20に記載の方法。
  24. 前記マッピングが、メッセージ・フィールド定義の第一の一つをデータ・フィールド定義の第一の一つにリンクし、メッセージ・フィールド定義の第二の一つをデータ・フィールド定義の第二の一つにリンクするフィールド・レベル・マッピングである、請求項19に記載の方法。
  25. 前記メッセージ・コンポーネントのメッセージ・フィールド定義の数が、マップされた前記データ・コンポーネントのデータ・フィールド定義の数より少ない、請求項24に記載の方法。
  26. 第一メッセージ・フィールド定義が一意のマッピングの第一の一つによってデータ・コンポーネントの第一の一つにマップされ、第二のメッセージ・フィールド定義が一意のマッピングの第二の一つによって第一のデータ・コンポーネントとは異なるデータ・コンポーネントの第二の一つにマップされる、請求項24に記載の方法。
  27. 第一メッセージ・フィールド定義および第二メッセージ・フィールド定義が個別の一意のマッピングを使用して同一データ・コンポーネントにマップされる、請求項25に記載の方法。
  28. 前記構造化定義言語がXMLベースである請求項19に記載の方法。
  29. 前記アプリケーションがワイヤレス・アプリケーションであり、前記装置がワイヤレス装置である、請求項28に記載の方法。
  30. 一意の前記マッピングが単純な一次キーである、請求項19に記載の方法。
  31. 一意の前記マッピングが複合キーである、請求項19に記載の方法。
  32. 前記メッセージ・コンポーネントが従属メッセージ・コンポーネントに結合された親メッセージ・コンポーネントを定義する、請求項19に記載の方法。
  33. 従属メッセージ・コンポーネントのマッピングのそれぞれ一つによって親メッセージ・コンポーネントのマッピングの一つを無効にするステップをさらに含む、請求項32に記載の方法。
  34. デバイス上で実行するコンポーネント・アプリケーションにしたがって、通信メッセージ・インスタンスを投入する方法であって、
    前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、
    コンポーネントの定義は構造化定義言語で表現され、
    前記方法は、
    前記メッセージ・インスタンスが生成されるべきことを決定し、対応するメッセージ・コンポーネントを識別し、
    前記対応するデータ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドを識別するためのものであり、
    マップされた前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドに対応する少なくとも一つのデータ・インスタンス・フィールド値を取得し、
    前記少なくとも一つのデータ・インスタンス・フィールド値とともに、前記メッセージ・インスタンスの前記少なくとも一つのメッセージ・フィールドを投入する、
    方法。
  35. 受信したメッセージにもとづいて、デバイス上で実行するコンポーネント・アプリケーションのためのデータ・インスタンスを投入する方法であって、
    前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、
    コンポーネントの定義は構造化定義言語で表現され、
    前記方法は、
    メッセージを受信し、対応するデータ・コンポーネントを識別し、
    前記対応するデータ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別し、該マッピングは前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドを識別するためのものであり、
    マップされた前記メッセージ・コンポーネントの前記少なくとも一つのメッセージ・フィールドに対応する少なくとも一つのメッセージ・インスタンス・フィールド値を取得し、
    前記少なくとも一つのメッセージ・インスタンス・フィールド値とともに、前記データ・インスタンスの前記少なくとも一つのデータ・フィールドを投入する、
    方法。
  36. デバイス上で実行するコンポーネント・アプリケーションにしたがって、通信メッセージ・インスタンスを投入する装置であって、
    前記コンポーネント・アプリケーションは、少なくとも一つのデータ・フィールド定義を有する少なくとも一つのデータ・コンポーネントと、少なくとも一つのメッセージ・フィールド定義を有する少なくとも一つのメッセージ・コンポーネントと、を有し、
    コンポーネントの定義は構造化定義言語で表現され、
    前記装置は、
    メッセージ・インスタンスが生成されるべきことを決定し、対応するメッセージ・コンポーネントを識別する手段と、
    前記対応するメッセージ・コンポーネントにおいて少なくとも一つの所定の一意のマッピングを識別する手段であって、該マッピングは前記データ・コンポーネントにおいて前記少なくとも一つのデータ・フィールドを識別するためのものである、手段と、
    マップされた前記データ・コンポーネントの前記少なくとも一つのデータ・フィールドに対応する少なくとも一つのデータ・インスタンス・フィールド値を取得する手段と、
    前記少なくとも一つのデータ・インスタンス・フィールド値とともに、前記メッセージ・インスタンスの前記少なくとも一つのメッセージ・フィールドを投入する手段と、
    を含む、装置。
  37. 通信メッセージ・インスタンスの生成が当該装置で実行されるアプリケーションとインタラクションするためのデータ・インスタンスにもとづくように、当該装置は設定される、請求項36に記載の装置。
  38. データ・インスタンスの生成が当該装置で実行されるアプリケーションに対応するメッセージ・インスタンスにもとづくように、当該装置は設定される、請求項36に記載の装置。
  39. 請求項1〜35の何れか1項に記載の方法を装置に実行させるためのプログラム・コードを含むコンピュータ読取可能媒体。
  40. 当該コンピュータ読取可能媒体は前記装置の部分を含む、請求項39に記載のコンピュータ読取可能媒体。
JP2008211437A 2004-02-27 2008-08-20 通信メッセージ・インスタンス投入方法、データ・インスタンス投入方法、通信メッセージ・インスタンス投入装置、および、コンピュータ読取可能媒体 Pending JP2009054151A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP04251155A EP1569109A1 (en) 2004-02-27 2004-02-27 A system and method for mapping between message and data domains using a metadata defined mapping

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005053699A Division JP2005285105A (ja) 2004-02-27 2005-02-28 通信メッセージ・インスタンスを生成する方法および装置、および、データ・インスタンスを生成する方法

Publications (1)

Publication Number Publication Date
JP2009054151A true JP2009054151A (ja) 2009-03-12

Family

ID=34746123

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2005053699A Pending JP2005285105A (ja) 2004-02-27 2005-02-28 通信メッセージ・インスタンスを生成する方法および装置、および、データ・インスタンスを生成する方法
JP2008211437A Pending JP2009054151A (ja) 2004-02-27 2008-08-20 通信メッセージ・インスタンス投入方法、データ・インスタンス投入方法、通信メッセージ・インスタンス投入装置、および、コンピュータ読取可能媒体

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2005053699A Pending JP2005285105A (ja) 2004-02-27 2005-02-28 通信メッセージ・インスタンスを生成する方法および装置、および、データ・インスタンスを生成する方法

Country Status (9)

Country Link
EP (1) EP1569109A1 (ja)
JP (2) JP2005285105A (ja)
KR (1) KR100752564B1 (ja)
CN (1) CN100596139C (ja)
AU (1) AU2005200849B2 (ja)
CA (1) CA2498539C (ja)
MX (1) MXPA05002273A (ja)
SG (2) SG135200A1 (ja)
TW (1) TWI313819B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698383B2 (en) * 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
EP1818813A1 (en) 2006-02-02 2007-08-15 Research In Motion Limited System and method and apparatus for using UML tools for defining web service bound component applications
US20070239504A1 (en) * 2006-04-11 2007-10-11 Austin Paul R Forms for business case management
CN101840230B (zh) * 2010-06-04 2012-02-01 浙江中控技术股份有限公司 一种监控和管理数据的方法及系统
US20140129934A1 (en) * 2012-11-08 2014-05-08 Microsoft Corporation Dynamic model-based management tooling
US10216504B2 (en) * 2015-06-05 2019-02-26 Oracle International Corporation System and method for insulating a web user interface application from underlying technologies in an integration cloud service
CN109725901B (zh) * 2018-05-31 2024-03-29 中国平安人寿保险股份有限公司 前端代码的开发方法、装置、设备和计算机存储介质
CN112380477B (zh) * 2020-11-13 2024-04-30 广东巴金斯科技有限公司 表单组件结构
CN114610725B (zh) * 2022-05-11 2022-08-16 成都九洲电子信息系统股份有限公司 一种计算机设备及其应用方法、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998030962A2 (en) * 1997-01-07 1998-07-16 New Era Of Networks, Inc. Method for content-based dynamic formatting for interoperation of computing and edi systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356933B2 (en) 1999-09-07 2002-03-12 Citrix Systems, Inc. Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language
AU2002217033A1 (en) * 2001-11-15 2003-06-10 Softplumbers S.A. Method for developing and managing large-scale web user interfaces
CA2467782C (en) * 2001-11-23 2011-05-10 Research In Motion Limited System and method for processing extensible markup language (xml) documents
KR100467005B1 (ko) * 2002-03-15 2005-01-24 김영신 무선 어플리케이션 서비스 프로바이더 시스템
US7290215B2 (en) * 2002-06-03 2007-10-30 Microsoft Corporation Dynamic wizard interface system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998030962A2 (en) * 1997-01-07 1998-07-16 New Era Of Networks, Inc. Method for content-based dynamic formatting for interoperation of computing and edi systems

Also Published As

Publication number Publication date
AU2005200849B2 (en) 2008-12-04
JP2005285105A (ja) 2005-10-13
CN100596139C (zh) 2010-03-24
CN1662011A (zh) 2005-08-31
TW200602891A (en) 2006-01-16
AU2005200849A1 (en) 2005-09-15
TWI313819B (en) 2009-08-21
SG114767A1 (en) 2005-09-28
EP1569109A1 (en) 2005-08-31
MXPA05002273A (es) 2008-11-24
SG135200A1 (en) 2007-09-28
CA2498539C (en) 2010-09-07
KR20060043231A (ko) 2006-05-15
CA2498539A1 (en) 2005-08-27
KR100752564B1 (ko) 2007-08-29

Similar Documents

Publication Publication Date Title
US7698383B2 (en) System and method for building component applications using metadata defined mapping between message and data domains
JP5248964B2 (ja) ワイヤレス・アプリケーションのスクリーン・エレメント又はデータ・オブジェトを生成する方法及びシステム
US8108830B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components
US6985939B2 (en) Building distributed software services as aggregations of other services
US7814404B2 (en) System and method for applying workflow of generic services to component based applications for devices
US7509649B2 (en) System and method for conversion of generic services' applications into component based applications for devices
US8335862B2 (en) Programmatic management of software resources in a content framework environment
US7756905B2 (en) System and method for building mixed mode execution environment for component applications
JP2009054151A (ja) 通信メッセージ・インスタンス投入方法、データ・インスタンス投入方法、通信メッセージ・インスタンス投入装置、および、コンピュータ読取可能媒体
EP1816562A1 (en) System and method for extending a component-based application platform with custom services
EP1818820A1 (en) System and method for installing custom services on a component-based application platform
US20070271554A1 (en) Dynamic, Real-Time Integration of Software Resources through Services of a Content Framework
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
CA2538531C (en) System and method for applying workflow of generic services to component based applications for devices
AU2008202421B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20081128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20081204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120416