JP5031819B2 - サービスシーケンス内の変換のための宣言 - Google Patents

サービスシーケンス内の変換のための宣言 Download PDF

Info

Publication number
JP5031819B2
JP5031819B2 JP2009501422A JP2009501422A JP5031819B2 JP 5031819 B2 JP5031819 B2 JP 5031819B2 JP 2009501422 A JP2009501422 A JP 2009501422A JP 2009501422 A JP2009501422 A JP 2009501422A JP 5031819 B2 JP5031819 B2 JP 5031819B2
Authority
JP
Japan
Prior art keywords
conversion
class
transformation
computer
services
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.)
Active
Application number
JP2009501422A
Other languages
English (en)
Other versions
JP2009530738A (ja
Inventor
コザリ ニキル
クン シャン−ハオ
エヌ.シャーコウ ステファン
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009530738A publication Critical patent/JP2009530738A/ja
Application granted granted Critical
Publication of JP5031819B2 publication Critical patent/JP5031819B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

コンピューティング技術は、人類の進歩に大いに貢献した。コンピューティングシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、電話、ならびに、例えば、冷蔵庫や自動車など、通常、コンピューティングシステムと考えられていないデバイスも含めて、様々な物理的形態で提供されている。それゆえ、コンピューティングシステムは、任意のタイプのプロセッサおよびメモリを有するどんなデバイスまたはシステムであってもよい。コンピューティングシステムは、ネットワークシステム内でのように、共に協働する構成要素としてのコンピューティングシステムさえ有する場合がある。それに応じて、コンピューティングシステムは、手のひらに簡単にフィットし得るものもあれば、全世界に分散させることができるものもある。
最も一般に使用されるアプリケーションの多くは、ネットワーク技術に依拠する。かかるアプリケーションは、例えば、電子メール、インスタントメッセージング、ウェブブラウジング、遠隔ネットワークアクセス、電子ホワイトボード、ボイスオーバIP電話通信、ビデオ会議、遠隔同期、およびその他の多くを含む。現在、インターネット上で提供される多くのサービスが存在する。かかるサービスのバラエティは可算的であり、日々増えている。例えば、中でも、サーチエンジンサービス、会社特定サービス、株価サービス、電子メールサービス、遠隔コンピュータアクセスサービス、オンラインオークションサービスが存在する。
時には、より複雑なタスクの実行は、シーケンス中の複数サービスのサービスを伴う。これらサービスのうちの1つからの出力は、別のサービスの入力に提供され、最終結果に達するまで、以下同様に行われる。ユーザ入力は、そのユーザが人であるか、またはコンピューティングシステムおよび/またはコンピューティングシステム上で稼働している1つまたは複数のプロセスであるかを認識する第1のサービスに提供される。そのユーザ入力は、第1のサービスによって認識される形式に変換される必要がある可能性がある。最終サービスは、結果として生じるデータを、エンドユーザに提示される前に変換される必要がある可能性のある形式で提供する。さらに、1つのサービスがシーケンス中の次のサービスと通信するとき、サービス間でデータを適切に変換するために、変換が必要になる場合もある。それゆえ、サービスがユーザと通信したり、互いに通信したりすることを可能にするために、入力データおよび出力データに対して様々な変換が行われることがある。
通常、変換は、変換の各々について特定の専用のコードを使用して行われる。それゆえ、コードを使用して、ユーザデータが第1のサービスに対する入力のために適切な形式に変換されるであろうし、コードをサービスの各々の間で使用して、適切な変換が行われるであろうし、コードを使用して、結果としてのデータが最終サービスからユーザによって理解される形式に変換されるであろう。かかるコードの起草は時間がかかる活動であり、経験を積んだソフトウェアプログラマの能力を必要とする。
必須ではないが、本発明の実施形態は、複雑なサービス要求を満たすために、順次に実行される、一続きの2つ以上のサービスが存在する環境で適用することができる。これらのサービスの各々の入力および出力で適切な変換を達成するために、変換は、行われる変換のクラスを指定する変換クラスフィールド、ならびに変換をより具体的に定義する(1つまたは複数の)変換パラメータフィールドを使用することによって宣言的に指定することができる。変換宣言は、サービスの各々で利用可能にすることができ、それにより、変換を行う際に適切な指示を与える。
この要約は、詳細な説明において、下記でさらに説明される一揃いの概念を、簡素化された形式で紹介するために提供される。この要約は、特許請求の範囲に記載の主題の主要な特徴または本質的な特徴を特定することも、特許請求の範囲に記載の主題の範囲を決定する際の助けとして使用されることも意図されていない。
添付の図面は、本発明の実施形態をより具体的に説明するために使用される。これらの図面が本発明の典型的な実施形態だけを示し、したがって、その範囲を限定すると考えるべきでない点を理解して、実施形態は、添付の図面の使用を通じて追加の具体性および詳細と共に記載および説明されるであろう。
本発明の実施形態は、より複雑なタスクを達成する一続きのサービスの各サービスの入力および出力で生じ得る適切な変換を指定するための宣言的モデルに及ぶ。サービスの各々は、適切な変換宣言へのアクセスを有することができ、それら宣言を解釈して、それによって変換に関しその入力データおよび/または出力データで生じるよう適切に仕向けることができる。変換を変更するために、各変換を達成する、基礎となるコードを変えるのではなく、変換宣言を変えることができる。
本発明の実施形態は、下記でより詳細に論じられるように、様々なコンピュータハードウェアを含む、専用コンピュータまたは汎用コンピュータを備えることができる。図1は、本発明の特徴を実装するために使用することができる例示的なコンピューティングシステム100の概略図である。説明されるコンピューティングシステムは、かかる適切なコンピューティングシステムの単なる一例であり、本発明の使用または機能の範囲に関して何らの限定を示唆することも意図されない。また、本発明は、図1に例示される構成要素のうちの任意1つまたはそれらの組合せに関して、いかなる依存性または要件を有するものとして解釈するべきではない。
コンピューティングシステムは、現在、ますます、様々な形態をとりつつある。コンピューティングシステムは、例えば、ハンドヘルドデバイス、アプライアンス、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、分散型コンピューティングシステム、または通常、コンピューティングシステムと見なされないデバイスでさえあり得る。この説明および特許請求の範囲において、用語「コンピューティングシステム」は、少なくとも1つのプロセッサと、プロセッサによって実行することができるコンピュータ実行可能命令を有することが可能なメモリとを含む任意のデバイスまたはシステム(またはその組合せ)を含むものとして広く定義される。メモリは、任意の形態をとることが可能であり、コンピューティングシステムの性質および形態に依存することがある。コンピューティングシステムは、ネットワーク環境上で分散されることがあり、構成要素としての複数のコンピューティングシステムを含み得る。
図1を参照すると、その最も基本的な構成において、コンピューティングシステム100は、通常、少なくとも1つの処理ユニット102とメモリ104とを含む。メモリ104は、揮発性、不揮発性、またはそれら2つの組合せであり得るシステムメモリであってよい。揮発性メモリの例は、ランダムアクセスメモリ(RAM)を含む。不揮発性メモリの例は、読出し専用メモリ(ROM)、フラッシュメモリなどを含む。用語「メモリ」はまた、本明細書で、物理的な記憶媒体など、不揮発性の大容量記憶装置を指すために使用することもできる。かかる記憶装置は、リムーバブルまたは非リムーバブルであってよく、PCMCIAカード、磁気ディスクおよび光ディスク、磁気テープなどを含み得る(しかし、それらに限定されない)。
本明細書で使用されるように、用語「モジュール」または「コンポーネント」は、コンピューティングシステム上で実行するソフトウェアオブジェクトまたはルーチンを指すことがある。本明細書で説明される異なるコンポーネント、モジュール、エンジン、およびサービスは、(例えば、個別のスレッドとして)コンピューティングシステム上で実行するオブジェクトまたはプロセスとして実装することができる。本明細書で説明されるシステムおよび方法は、ソフトウェアで実装することが可能であるものの、ハードウェア、およびソフトウェアとハードウェアの組合せでの実装も可能であり、また企図されている。
続く説明では、本発明の実施形態は、1つまたは複数のコンピューティングシステムによって行われるアクトを参照して説明される。かかるアクトがソフトウェアで実施される場合、アクトを行う関連するコンピューティングシステムの1つまたは複数のプロセッサは、コンピュータ実行可能命令を実行したことに応答して、コンピューティングシステムのオペレーションを方向付ける。かかるオペレーションの例は、データの操作を含む。コンピュータ実行可能命令(および操作されたデータ)は、コンピューティングシステム100のメモリ104に格納することができる。
コンピューティングシステム100はまた、コンピューティングシステム100が、例えば、ネットワーク110上で、その他のコンピューティングシステムと通信することを可能にする通信チャネル108を収容することもできる。通信チャネル108は、通信媒体の例である。通信媒体は、通常、搬送波またはその他のトランスポート機構など、変調されたデータ信号に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを具体化し、任意の情報配信媒体を含む。限定ではなく、例として、通信媒体は、有線ネットワークおよび直接配線接続などの有線媒体と、音響媒体、無線媒体、赤外線媒体、およびその他の無線媒体などの無線媒体とを含む。本明細書で使用される用語「コンピュータ可読媒体」は、記憶媒体と通信媒体の両方を含む。
本発明の範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造を格納するか、または担持するためのコンピュータ可読媒体も含む。かかるコンピュータ可読媒体は、汎用コンピュータまたは専用コンピュータによってアクセスすることができる任意の利用可能な媒体であり得る。限定ではなく、例として、かかるコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくはその他の光ディスク記憶装置、磁気ディスク記憶装置もしくはその他の磁気記憶デバイス、またはコンピュータ実行可能命令もしくはデータ構造の形で、所望のプログラムコード手段を担持または格納するために使用することができ、汎用コンピュータまたは専用コンピュータによってアクセスすることができる任意のその他の媒体など、物理的な記憶装置および/またはメモリ媒体を備えることができる。情報が(ハードワイヤード、無線、またはハードワイヤードおよび無線の組合せで)ネットワークまたはその他の通信接続上でコンピュータに転送または提供される場合、コンピュータは、正しくその接続をコンピュータ可読媒体と見なす。それゆえ、任意のかかる接続は、正しくコンピュータ可読媒体と呼ばれる。上記の組合せは、コンピュータ可読媒体の範囲内にも含まれるべきである。
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに一定の機能または一群の機能を行わせる命令およびデータを含む。主題について、構造的な特徴および/または方法論的なアクトに特有の言葉で説明されているが、添付の特許請求の範囲に定義される主題は、本明細書で説明される特定の特徴またはアクトに必ずしも限定されない点を理解されたい。むしろ、本明細書で説明される特定の特徴およびアクトは、特許請求の範囲を実装する例示的な形態として開示される。
図2は、本発明の原理を採用することができる環境200を例示している。環境200は、例えば、シーケンス中の第1のサービス211と、第2のサービス212と、最終サービス213と含む、一続きのサービス210を含む。しかし、第2のサービスおよび最終サービス212および213の間に置かれた横方向の省略記号214によって表されるように追加のサービスが存在し得る。さらに、シーケンス中に2つのサービスだけが存在することもあり、その場合、第2のサービス212は、シーケンス210中の最終サービス213と同じになるかもしれない。環境200はまた、入力データを一続きのサービス210に提供するデータ入力エンティティ201および一続きのサービス210からの結果として生じる出力データを消費するデータ出力エンティティ202も含む。
一続きのサービスは、複雑なタクスが達成されることを可能にするために、順次に行われることができる。例えば、複雑なタクスは所与の地理的地域内のすべての企業に関する株価を得るためであると仮定する。これは、指定されたエリア内の企業のリストを返すことによって緯度および経度の座標範囲に応答するマップサービスの形で第1のサービスを使用することによって達成することができる。財務サービスの形態で第2のサービスは、次いで、第1のサービスによって返された、リストされた企業のすべてに関して株価を取得する。このシナリオは、以下で「マップベースの株価」シナリオと呼ばれるであろう。
必須ではないが、シーケンス中のサービスはネットワークにわたって分散することができる。例えば、第1のサービス211は、1つのネットワークノードに位置することができ、第2のサービス212は、別のネットワークノードに存在することができる。しかし、サービスのいくつかまたはすべては、同じネットワークノードに存在することもある。サービスは、例えば、ウェブサービスであってよく、またはローカルもしくは遠隔でファンクションコールを行うことができる任意のコンポーネントまたはモジュールであってもよい。データ入力エンティティ201およびデータ消費エンティティ202は、同じコンピューティングシステムでも、または異なるコンピューティングシステムであってもよく、サービス210と比べて、異なるネットワークノードに位置することができ、または、おそらくは1つまたは複数のサービス210と同じネットワークノードにあってもよい。この説明および特許請求の範囲において、2つのコンピューティングシステムがネットワークプロトコルを使用して通信する場合、それらは異なるネットアークノードにある。
一連のサービスが通信するために、入力データおよび/または出力データの何らかの変換が有用である可能性がある。例えば、上述のマップベースの株価シナリオでは、マップサービスは企業の名前だけを提供するが、ティッカーシンボル(ticker symbol)は提供せず、財務サービスは株価を期待すると仮定する。その場合、企業名がティッカーシンボルにマップされる点でマッピング変換が生じるであろう。あるいは、マップサービスが企業名をXML形式で生成し、財務サービスは、特定のその他の種類の非XMLオブジェクトとして入力を期待すると仮定する。その場合、何らかの形式コンバージョンが生じるかもしれない。変換はまた、マップサービスへのデータ入力に対して生じた可能性もある。例えば、おそらくはデータ入力エンティティは、「緯度」および「経度」と呼ばれるパラメータを生成し、マップサービスは、それぞれ「lat」および「long」と呼ばれるパラメータを期待するかもしれない。データ出力エンティティによって消費することができる形式で結果としてのデータを提供するために、変換はまた、財務サービスの出力で生じることもある。
図2を参照すると、例えば、第1のサービス211は、入力変換コンポーネント211Aによって表されるように、データ入力エンティティ201から受信されたその入力データ211に対して1つまたは複数の変換を行うことができ、出力変換コンポーネント211Bによって表されるように、その出力データ222に対して1つまたは複数の変換を行うことができる。また、第2のサービス212は、入力変換コンポーネント212Aを使用して、その入力データ222に対して(1つまたは複数の)変換を行うことができ、出力変換コンポーネント212Bを使用して、その出力データ223に対して(1つまたは複数の)変換を行うことができ、一続きのサービス210内のその他のサービスに対して、以下同様である。最後に、最終サービス213は、入力変換コンポーネント213Aを使用して、その入力データ224に対して(1つまたは複数の)変換を行うことができ、出力変換コンポーネント213Bを使用して、その出力データ225に対して(1つまたは複数の)変換を行うことができる。
各変換についてカスタムコードを起草することによってかかる変換を行うのではなく、本発明の実施形態は、データ構造を使用して、宣言的に変換を定義する。図3は、データ構造300の例を示す。データ構造300は、一続きのサービス内の各サービスのためのサービス識別フィールドを含む。例えば、第1のサービス情報301は、第1のサービス(図2の第1のサービス211を参照)を識別するサービス識別子フィールド311を含む。同様に、第2のサービス情報302は、図2の第2のサービス212を識別することができ、最終サービス情報303は、図2の最終サービス213を識別することができる。縦方向の省略記号304は、その他のサービスに関してその他の類似の情報が存在し得ることを表している。
各サービスについて、サービスによって処理されるのに先立って入力データに対して行われる変換のクラスを識別する入力変換クラスフィールド312A、ならびに、変換のクラスの1つまたは複数のパラメータを識別して、それによってより具体的に変換を定義する1つまたは複数の変換パラメータフィールド312Bを含む1つまたは複数の入力変換識別フィールド312が潜在的に存在し得る。縦方向の省略記号312Cによって表されるように、任意の所与のサービスに関して1つより多い入力変換が存在し得る。指定された入力変換が存在しないこともある。
変換クラスおよび(1つまたは複数の)変換パラメータの組合せは、より具体的な変換を指定するために使用することができる。変換のクラスの例は、パラメータマッピング変換またはフォーマットコンバージョン変換を含み得る。例えば、変換クラスはパラメータマッピングクラスであると仮定する。パラメータの例は、例えば、どのパラメータ名(例えば、「緯度」または「経度」)がどのパラメータ名(例えば、それぞれ、「lat」または「long」)にマップされるべきかの識別を含む可能性もある。
同様に、各サービスについて、サービスによって処理されるのに先立って出力データに対して行われる変換のクラスを識別する出力変換クラスフィールド313A、ならびに、変換のクラスの1つまたは複数のパラメータを識別して、それによってより具体的に出力変換を定義する1つまたは複数の変換パラメータフィールド313Bを含む1つまたは複数の出力変換識別フィールド313が潜在的に存在し得る。縦方向の省略記号313Cによって表されるように、任意の所与のサービスに関して1つより多い出力変換が存在し得る。指定された出力変換が存在しないこともある。変換クラスおよび(1つまたは複数の)変換パラメータの組合せもまた、より具体的な出力変換を識別するために使用することもできる。
先に述べたように、第1のサービス情報301に関して上述したフィールドの各々は、対応する第2のサービス212および最終サービス213に関する第2のサービス情報302および最終サービス情報303に含めることができる。データ構造300に関して述べたフィールドのレイアウトは、フィールドに関していかなる位置関係または階層関係も含意しない。例えば、任意の単一の例示されたフィールドは、複数の分散されたフィールドからなることができ、フィールドで説明されたものとして指定された情報だけを含む必要はない。さらに、別のフィールド内に含まれるものとして示されるフィールドは、そのフィールド内にまったく含まれる必要はない。
データ構造300は、テキストを使用して指定することができる。一実施形態では、拡張マークアップ言語(XML)文書をデータ構造に使用することができるが、これは決して必須ではない。宣言的に変換を指定する直観的テキスト文書の使用は、基礎となるコードを手動で変更するという、時間とコストがかかる課題をやり直すことなく、より複雑な変換を指定および変更することを可能にする。データ構造300は、サービス要求より前にサービスの各々にデータ構造300を登録するか、または、サービス要求と共にまたはサービス要求の後でデータ構造300を提供することによって、一続きのサービスにおける各サービスにとって利用可能なものとすることができる。
図4は、変換を行うために使用することができる変換アーキテクチャ400を例示している。解釈コンポーネント401は、変換クラスフィールドおよび1つまたは複数の変換パラメータフィールドを解釈するためのコンピュータ実行可能命令を表す。具体的には、解釈コンポーネント401は、変換クラス宣言412Aと(1つまたは複数の)パラメータ宣言412Bとを受け取り、クラス識別411Aと(1つまたは複数の)パラメータ識別411Bとを変換コンポーネント402に提供する。
変換コンポーネント402は、変換クラスフィールドおよび1つまたは複数の変換パラメータフィールドの組合せによって指定される変換を行うためのコンピュータ実行可能命令を表す。変換コンポーネント402は、いくつかの充当(populate)されていないまたは完全に充当されていない変換クラス403Aから403Cへのアクセスを有する。変換コンポーネント402は、クラス識別子411Aを使用して、適切な変換クラス403Aから403Cを選択する。変換コンポーネント402は、次いで、そのクラスから導出される変換オブジェクトをインスタンス化し、そのオブジェクトを(1つまたは複数の)パラメータ411Bで充当する。結果は、実行されて、それによって入力または出力データ411を受け取り、データを変換された入力または出力データ413に変換することができるオブジェクトである。
図5は、本発明の原理に従って、サービスが適切な入力および/または出力変換と共にデータを処理するための方法500のフロー図を例示している。サービスは、データソースエンティティ201またはサービスシーケンス210中の前のサービスからサービスに関する要求を受信する(アクト501)。このサービス要求は、ネットワーク上でまたは同じコンピューティングシステム内の別のプロセスからローカルに受信することができる。
加えて、サービスは、図3に関して上述したデータ構造にアクセスする(アクト502)。サービスは、サービス要求が受信される前、その間、またはその後にデータ構造にアクセスすることができるので、データ構造は、サービス要求の受信と平行してアクセスされるものとして示される。しかし、特定の実施形態では、データ構造はサービス要求と共に受信することができる。一実施形態では、サービスは、そのサービスに関係するデータ構造の部分だけにアクセスを有する。例えば、第1のサービス211は、第1のサービス情報301だけにアクセスを有することができ、その他のサービスに関して、以下同様である。
サービスは、次いで、サービスがデータ構造中で参照されるかどうかを判定する(決定ブロック503)。換言すると、サービスは、サービスによって受信されたサービス要求が、サービスシーケンス中のサービスのうちの1つに対するものであることを判定する。サービスがデータ構造中で参照されない場合(決定ブロック504の「No」)、要求は、任意の入力および/または出力変換を指定するためにデータ構造に依拠することなく処理される(アクト504)。
サービスがデータ構造中で参照される場合(決定ブロック503の「Yes」)、サービスは、データ構造中で指定された任意の関連する入力変換が存在するかどうかを識別する(決定ブロック505)。何も存在しない場合(決定ブロック505の「No」)、要求は入力データを使用して処理される(アクト508)。他方で、指定された入力変換が存在する場合(決定ブロック505の「Yes」)、入力変換の各々に関して、サービスは変換クラスフィールドおよび1つまたは複数の変換パラメータフィールドを解釈し(アクト506)、変換クラスフィールドおよび1つまたは複数の変換パラメータフィールドの組合せによって指定された入力変換を行う(アクト507)。これは、図4の変換アーキテクチャ400を使用して達成することができる。すべての指定された入力変換が指定されたシーケンスにおいて行われた後、サービス要求は、結果としての出力データを生成するために変換された入力データに関して処理される(アクト508)。
サービスは、次いで、出力データに対して行われる任意の関連する出力変換が存在するか否かを判定する(決定ブロック509)。何も存在しない場合(決定ブロック509の「No」)、結果としてのデータは、データ出力エンティティ202にまたはサービスシーケンス210における次のサービスに提供される(アクト512)。他方で、指定された出力変換が存在する場合(決定ブロック509の「Yes」)、出力変換の各々に関して、サービスは変換クラスフィールドおよび1つまたは複数の変換パラメータフィールドを解釈し(アクト510)、変換クラスフィールドおよび1つまたは複数の変換パラメータフィールドの組合せによって指定された出力変換を行う(アクト511)。この場合も、これは図4の変換アーキテクチャ400を使用して達成することができる。すべての指定された変換が行われた後、結果としての変換されたデータは、データ出力エンティティ202にまたはサービスシーケンス210における次のサービスに提供される。
方法は図5および関連する図面および説明に関して説明されているが、本発明の原理は、サーバコンピューティングシステムの1つまたは複数のプロセッサによって実行されるとき、コンピューティングシステムにこれらの方法のすべてもしくは部分またはいずれかもしくは両方を行わせる1つまたは複数のコンピュータ実行可能命令を有する1つまたは複数のコンピュータ可読媒体を備えたコンピュータプログラムプロダクトに及ぶ。例えば、図1を参照すると、メモリ104および通信チャネル108は、かかるコンピュータ可読媒体の例を表すことができる。メモリ104は、物理的記憶装置および/またはメモリ媒体の形で物理的なコンピュータ可読媒体の例を表す。本発明の原理は、図5の方法の部分のすべてを行うために、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組合せを介して構成されるコンピューティングシステム自体にも及ぶ。
ここで若干詳細に本発明の広い原理を説明したので、次に、より具体的な例について説明する。当業者は、この説明を検討した後で、この例の他に本発明のより広い原理を実装するための可算的な方法が存在することを認識するであろう。それに応じて、この例は、限定ではなく、単なる例示である。
一例では、データ構造300は、明確性のために行番号を加えた以下のXML文書とすることができる。
Figure 0005031819
Figure 0005031819
このデータ構造では、「ブリッジ」要素は、その属性中のBookSearchと呼ばれるサービスを定義する。BookSearchサービスは、図2の一続きのサービス中で例示されたサービスの例である。プロキシタイプも指定することができ、それによってサービスと通信するために使用されることになるプロキシを識別する。プロキシ要素は、第1のサービスと接続するためにプロキシによって使用することができるURLも含む。ブリッジ要素は、BookSearch属性に関連する2つの方法、すなわちSearchと呼ばれる方法とRawSearchと呼ばれる方法とを定義する。
Search方法は、Search方法に対していくつかの入力パラメータを定義する。かかるパラメータは、Service、AWSAccessKeyId、Keywords、OperationおよびSearch Indexを含む。ServerName属性は2つの入力パラメータ、すなわち、ServiceおよびKeywordsのために存在する。ServerName属性名は、変換クラス識別の例である。ServerName属性の値は変換パラメータの例である。例えば、parameter name=「Service」要素中のServerName属性は、「Service」と名づけられたパラメータが名前「BookSearch」にマップされることになるパラメータマッピングクラス変換を示している。同様に、「Keyword」パラメータは「SearchTerms」パラメータにマップされる。したがって、「入力」要素は、2つのパラメータマッピング機能を定義する。
「transform」要素は、結果として生じるデータから名前値ペアを抽出し、それらをXML文書の形態で置く、XPathBridgeTransformerと名づけられた出力変換を指定する。XPathBridgeTransformer参照は変換クラス識別の例である。この場合、Titleフィールド、ProductGroupフィールド、Authorフィールド、およびASINフィールドは、探索結果から抽出され、XML文書内に置かれる。このように、項目名要素は変換パラメータの例である。SearchRaw方法は、出力変換が指定されないことを除いて、Search方法に類似する。
このように、本発明の原理は、サービスへの入力データおよびサービスからの出力データの両方に関する変換を宣言的に指定するために好都合なメカニズムを提供する。変換を変更するために、基礎となるコードは変更されなくてよく、むしろ高レベルの宣言が変えられるであろう。
本発明は、その精神または本質的な特性から逸脱することなくその他の特定の形態で実施することができる。述べた実施形態は、あらゆる点で、限定的ではなく、例示的としてのみ考慮されるべきである。本発明の範囲は、それゆえ、前述の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の均等物の意味および範囲に入るすべての変更はそれらの範囲内に包括されるべきである。
本発明の原理の実施形態が動作し得るコンピューティングシステムを例示する図である。 本発明の実施形態が動作し得る一続きのサービスを含む環境を例示する図である。 サービスからの入力変換および出力変換のための対応するクラスおよびパラメータを有するサービスの識別を含むデータ構造を概略的に例示する図である。 変換を行うためにデータ構造を使用することに関連する論理フローを概略的に例示する図である。 本発明の原理に従って、サービスがサービス要求を処理する方法のフロー図である。

Claims (18)

  1. データ構造が記憶された1つまたはそれより多くのコンピュータ可読記憶媒体であって、前記データ構造は、データへの変換を、2またはそれより多くのサービス間で渡すが、実装しないものとして、定義する宣言型モデルを備え、
    前記データ構造は、
    各々が一続きの2つ以上のサービス中のサービスを識別する複数のサービス識別フィールドと、
    前記一続きのサービスに提供されるのに先立って入力データ、前記一続きのサービス中の前記複数のサービスのうちの2つのサービスの間で提供されるサービス間データ、または前記一続きのサービスから出力される出力データのいずれかに対して行われる変換のクラスを指定する変換クラスフィールドであって、前記入力データ、前記サービス間データ、及び前記出力データは前記データ構造から独立したものである、変換クラスフィールドと、
    前記変換のクラスの1つまたは複数のパラメータを識別して、それによって前記変換を定義する1つまたは複数の変換パラメータフィールドと
    を含み、
    前記コンピュータ可読記憶媒体は、前記変換クラスフィールド及び前記変換パラメータフィールドの組み合わせによって指定される変換を行なうためのコンピュータ実行可能命令及び前記データ構造の変換クラスフィールドにより識別される1またはそれより多くの変換クラスをさらに格納し、
    前記コンピュータ実行可能命令は、コンピューティングシステムの1つまたは複数のプロセッサによって実行されるとき、前記コンピューティングシステムに、
    前記データ構造を受け取って、前記1またはそれより多くの識別された変換クラスから引き出された1またはそれより多くのオブジェクトのインスタンスを作成するステップと、
    前記1またはそれより多くの変換パラメータフィールドの1またはそれより多くの変換パラメータにより前記1またはそれより多くのオブジェクトを充当するステップと、
    インスタンスが作成されることに応答して、前記入力データ、前記サービス間データ及び前記出力データにおける前記データ構造の前記変換クラスフィールドにおいて識別された変換を行うステップと
    を行わせることを特徴とする1つまたは複数のコンピュータ可読記憶媒体。
  2. 前記複数のサービス識別フィールド、前記変換のクラスのクラスフィールド、および前記1つまたは複数の変換パラメータフィールドは、テキストを使用して指定されることを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  3. 前記変換クラスフィールドは、前記一続きのサービスに提供されるのに先立って前記入力データに対して行われる変換のクラスを指定することを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  4. 前記変換クラスフィールドは、前記サービス間データに対して行われる変換クラスを指定することを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  5. 前記変換クラスフィールドは、前記一続きのサービスから出力された前記出力データに対して行われる変換クラスを指定することを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  6. 前記変換クラスフィールドは、第1の変換クラスフィールドであり、前記変換のクラスは、第1のクラス変換であり、前記変換は、第1の変換であり、前記1つまたは複数の変換パラメータフィールドは、第1の1つまたは複数の変換パラメータフィールドであり、前記第1の変換クラスフィールドは、前記一続きの1つまたは複数のサービスに提供されるのに先立って前記入力データに対して行われる変換クラスを指定し、前記コンピュータ可読記憶媒体は、
    前記一続きのサービス中の前記複数のサービスのうちの2つのサービス間で提供される前記サービス間データに対して行われる第2の変換クラスを指定する第2の変換クラスフィールドと、
    前記第2の変換のクラスの1つまたは複数のパラメータを識別して、それによって前記第2の変換をより具体的に定義する第2の1つまたは複数の変換パラメータフィールドと
    をさらに有することを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  7. 前記コンピュータ可読記憶媒体は、
    前記一続きのサービスから出力される前記出力データに対して行われる第3の変換のクラスを指定する前記第3の変換クラスフィールドと、
    前記第3の変換のクラスの1つまたは複数のパラメータを識別して、それによって前記第3の変換をより具体的に定義する第3の1つまたは複数の変換パラメータフィールドと
    をさらに有することを特徴とする請求項6に記載の1つまたは複数のコンピュータ可読記憶媒体。
  8. 前記変換クラスフィールドは、第1の変換クラスフィールドであり、前記変換クラスは、第1のクラス変換であり、前記変換は、第1の変換であり、前記1つまたは複数の変換パラメータフィールドは、第1の1つまたは複数の変換パラメータフィールドであり、前記第1の変換クラスフィールドは、前記一続きの1つまたは複数のサービスに提供されるのに先立って前記入力データに対して行われる変換クラスを指定し、前記コンピュータ可読記憶媒体は、
    前記一続きのサービスから出力される前記出力データに対して行われる第2の変換のクラスを指定する第2の変換クラスフィールドと、
    前記第2の変換のクラスの1つまたは複数のパラメータを識別して、それによって前記第2の変換をより具体的に定義する第2の1つまたは複数の変換パラメータフィールドと
    をさらに有することを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  9. 前記変換クラスフィールドは、第1の変換クラスフィールドであり、前記変換のクラスは、第1のクラス変換であり、前記変換は、第1の変換であり、前記1つまたは複数の変換パラメータフィールドは、第1の1つまたは複数の変換パラメータフィールドであり、前記第1の変換クラスフィールドは、前記一続きのサービス中の前記複数のサービスのうちの2つのサービス間で提供される前記サービス間データに対して行われる変換クラスを指定し、前記コンピュータ可読記憶媒体は、
    前記一続きのサービスから出力される前記出力データに対して行われる第2の変換のクラスを識別する第2の変換クラスフィールドと、
    前記第2の変換のクラスの1つまたは複数のパラメータを識別して、それによって前記第2の変換をより具体的に定義する第2の1つまたは複数の変換パラメータフィールドと
    をさらに有することを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  10. 前記変換クラスは、パラメータマッピング変換を備えたことを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  11. 前記変換のクラスは、フォーマットコンバージョン変換を含むことを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  12. 前記複数のサービスのうちの前記少なくとも1つまたは複数は、前記複数のサービスのうちのその他の少なくとも1つまたは複数と異なるネットワークノードにあることを特徴とする請求項1に記載の1つまたは複数のコンピュータ可読記憶媒体。
  13. 前記複数のサービスは、前記入力データを生成したコンポーネントと比べて、1つまたは複数の異なるネットワークノードにあることを特徴とする請求項12に記載の1つまたは複数のコンピュータ可読記憶媒体。
  14. サービスが別のネットワークノードからの入力データを受信および処理するための方法であって、
    コンピュータが、サービスおよび関連する入力データに関する要求を受信するステップと、
    コンピュータが、コンピュータ可読記憶媒体に記憶されたデータ構造にアクセスするステップであって、前記データ構造は宣言型モデルを含み、前記データ構造は前記入力データから独立し、前記データ構造は、各々が一続きの2つ以上のサービス中のサービスを識別し、そのうちの少なくとも1つが、前記要求されたサービスを識別する複数のサービス識別フィールドと、前記一続きの2つ以上のサービスに提供されるのに先立って入力データに対して行われる変換クラスを指定する変換クラスフィールドと、前記変換のクラスの1つまたは複数のパラメータを識別して、それによって前記変換をより具体的に定義する1つまたは複数の変換パラメータフィールドとを含む、ステップと、
    コンピュータが、前記サービス要求が前記複数のサービスのうちの1つに関することを判定するステップと、
    コンピュータが、前記データ構造の前記変換クラスフィールドにおいて特定される変換クラスのインスタンスを作成するステップと、
    前記入力データに対して前記インスタンスを実行して前記変換を行うことによって、コンピュータが、前記変換クラスフィールドおよび前記1つまたは複数の変換パラメータフィールドの組合せによって指定された前記変換を行なうステップ
    を備えることを特徴とする方法。
  15. 前記変換クラスフィールドは、第1の変換クラスフィールドであり、前記変換のクラスは、第1のクラス変換であり、前記変換は、第1の変換であり、前記1つまたは複数の変換パラメータフィールドは、第1の1つまたは複数の変換パラメータフィールドであり、前記データ構造は、前記一続きのサービス中の次のサービスに提供されるのに先立って、または前記サービスによって出力されるのに先立って、出力データに対して行われる変換のクラスを指定する第2の変換クラスフィールドと、前記変換のクラスの1つまたは複数のパラメータを識別して、それによって前記変換をより具体的に定義する1つまたは複数の変換パラメータフィールドとをさらに含み、前記方法は、
    コンピュータが、前記サービス要求を処理して、結果として生じるデータを生成するステップと、
    コンピュータが、前記第2の変換クラスフィールドおよび前記第2の1つまたは複数の変換パラメータフィールドを解釈するステップと、
    結果として生じるデータに対して前記変換を行なうことによって、コンピュータが、前記変換クラスフィールドおよび前記1つまたは複数の変換パラメータフィールドの組合せによって指定される前記第2の変換を行なうステップ
    をさらに備えることを特徴とする請求項14に記載の方法。
  16. コンピューティングシステムの1つまたは複数のプロセッサによって実行されるとき、前記コンピューティングシステムに請求項14に記載の方法を行わせるコンピュータ実行可能命令を有する1つまたは複数のコンピュータ可読記憶媒体。
  17. サービスが結果として生じるデータを処理するための方法であって、
    コンピュータが、サービス要求を処理して、結果として生じるデータを生成するステップと、
    コンピュータが、コンピュータ可読記憶媒体に記憶されたデータ構造にアクセスするステップであって、前記データ構造は宣言型モデルを含み、前記データ構造は前記結果として生じるデータから独立し、前記データ構造は、前記一続きのサービス中の次のサービスに提供されるのに先立って、または前記サービスによって出力されるのに先立って、結果として生じるデータに対して行われる変換のクラスを指定する変換クラスフィールドと、前記変換クラスの1つまたは複数のパラメータを識別して、それによって前記変換をより具体的に定義する1つまたは複数の変換パラメータフィールドとを含む、ステップと、
    コンピュータが、前記データ構造の前記変換クラスフィールドにおいて特定される変換クラスのインスタンスを作成するステップと、
    結果として生じるデータに対して前記インスタンスを実行して前記変換を行なうことによって、コンピュータが、前記変換クラスフィールドおよび前記1つまたは複数の変換パラメータフィールドの組合せによって指定される前記変換を行なうステップ
    を備えることを特徴とする方法。
  18. コンピューティングシステムの1つまたは複数のプロセッサによって実行されるとき、前記コンピューティングシステムに請求項17に記載の方法を行わせるコンピュータ実行可能命令を有する1つまたは複数のコンピュータ可読記憶媒体。
JP2009501422A 2006-03-17 2007-02-13 サービスシーケンス内の変換のための宣言 Active JP5031819B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/378,711 US7869585B2 (en) 2006-03-17 2006-03-17 Declarations for transformations within service sequences
US11/378,711 2006-03-17
PCT/US2007/004042 WO2007108874A1 (en) 2006-03-17 2007-02-13 Declarations for transformations within service sequences

Publications (2)

Publication Number Publication Date
JP2009530738A JP2009530738A (ja) 2009-08-27
JP5031819B2 true JP5031819B2 (ja) 2012-09-26

Family

ID=38519290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009501422A Active JP5031819B2 (ja) 2006-03-17 2007-02-13 サービスシーケンス内の変換のための宣言

Country Status (6)

Country Link
US (1) US7869585B2 (ja)
EP (1) EP2011073A4 (ja)
JP (1) JP5031819B2 (ja)
KR (1) KR20080104303A (ja)
CN (1) CN101405761B (ja)
WO (1) WO2007108874A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814198B2 (en) 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US8024396B2 (en) * 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7926070B2 (en) 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US20100070535A1 (en) * 2008-09-12 2010-03-18 Microsoft Corporation Data schema transformation using declarative transformations

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212911A (ja) * 1998-01-28 1999-08-06 Mitsubishi Electric Corp 分散サービス連携装置
MXPA00007085A (es) * 1998-11-18 2005-09-20 Software Ag Inc Sistema de integracion de aplicacion de empresa distribuido extensible.
US6941510B1 (en) 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US6941511B1 (en) * 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation
JP2003242127A (ja) * 2002-02-14 2003-08-29 Meidensha Corp 業務統合システム
US20040133635A1 (en) * 2002-11-26 2004-07-08 Axel Spriestersbach Transformation of web description documents
CA2413697A1 (en) * 2002-12-06 2004-06-06 Ibm Canada Limited-Ibm Canada Limitee Transformations as web services
US6976144B1 (en) * 2003-05-06 2005-12-13 Pegasystems, Inc. Methods and apparatus for digital data processing with mutable inheritance
US7519577B2 (en) * 2003-06-23 2009-04-14 Microsoft Corporation Query intermediate language method and system
JP4204493B2 (ja) * 2004-03-03 2009-01-07 富士通株式会社 データ中継プログラム

Also Published As

Publication number Publication date
US20070220177A1 (en) 2007-09-20
EP2011073A1 (en) 2009-01-07
JP2009530738A (ja) 2009-08-27
CN101405761A (zh) 2009-04-08
US7869585B2 (en) 2011-01-11
WO2007108874A1 (en) 2007-09-27
CN101405761B (zh) 2016-02-03
EP2011073A4 (en) 2009-06-10
KR20080104303A (ko) 2008-12-02

Similar Documents

Publication Publication Date Title
JP5031819B2 (ja) サービスシーケンス内の変換のための宣言
US8751558B2 (en) Mashup infrastructure with learning mechanism
TW567437B (en) A personalized product report
JP5075920B2 (ja) ウェブデータ使用のプラットフォーム
US9146955B2 (en) In-memory, columnar database multidimensional analytical view integration
AU2014202725B2 (en) Methods and apparatus for translating forms to native mobile applications
US20070198457A1 (en) Accessing and manipulating data in a data flow graph
US20060212836A1 (en) Personalized user interfaces for presentation-oriented web services
US8849854B2 (en) Method and system for providing detailed information in an interactive manner in a short message service (SMS) environment
US11620444B2 (en) Providing action associated with event detected within communication
RU2479016C2 (ru) Общая система редактирования моделей
JP2005135385A (ja) コンピュータプラットフォームのプログラミングインターフェース
US11461681B2 (en) System and method for multi-modality soft-agent for query population and information mining
JP5677319B2 (ja) ウェブに基づくダイアグラム視覚性の拡張性
TW201610713A (zh) 在文件中識別且呈現相關報告實物
US20230385363A1 (en) Web site preview generation based on web site type
EP2203813A2 (en) Declarative model interpretation
WO2023229693A1 (en) Web site preview generation with action control
US20170330236A1 (en) Enhancing contact card based on knowledge graph
US10114864B1 (en) List element query support and processing
US7293021B1 (en) Method and system for providing dynamic capability discovery and use
CN118409681A (zh) 用于管理工作流的方法、装置、设备和介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120627

R150 Certificate of patent or registration of utility model

Ref document number: 5031819

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250