JP4574197B2 - データ処理方法、プログラム、及び、装置 - Google Patents

データ処理方法、プログラム、及び、装置 Download PDF

Info

Publication number
JP4574197B2
JP4574197B2 JP2004074536A JP2004074536A JP4574197B2 JP 4574197 B2 JP4574197 B2 JP 4574197B2 JP 2004074536 A JP2004074536 A JP 2004074536A JP 2004074536 A JP2004074536 A JP 2004074536A JP 4574197 B2 JP4574197 B2 JP 4574197B2
Authority
JP
Japan
Prior art keywords
program
service
processing
data
message
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.)
Expired - Fee Related
Application number
JP2004074536A
Other languages
English (en)
Other versions
JP2005266908A5 (ja
JP2005266908A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004074536A priority Critical patent/JP4574197B2/ja
Priority to PCT/JP2005/002605 priority patent/WO2005088451A1/ja
Priority to EP05719275A priority patent/EP1729217A4/en
Priority to CNB2005800083446A priority patent/CN100414509C/zh
Publication of JP2005266908A publication Critical patent/JP2005266908A/ja
Priority to US11/517,340 priority patent/US7885997B2/en
Publication of JP2005266908A5 publication Critical patent/JP2005266908A5/ja
Application granted granted Critical
Publication of JP4574197B2 publication Critical patent/JP4574197B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Description

本発明は、データ処理方法、プログラム、及び、装置に関するものである。
図1は従来技術におけるクライアントサーバ方式のメッセージを用いた分散処理の概要を示したものである。
サーバS1、S2とクライアントC1は、それぞれに処理プログラムP1、P2、P3を有しており、内部にこの処理プログラムの処理対象となるデータD1のみを格納したメッセージM1が、クライアントC1とサーバS1、S2の間で送受信されることで、分散的に処理が実行される。
この時に送受信されるのはデータのみであるので、サーバS1とS2が相互に異なる計算機言語あるいはオペレーティングシステムやサーバソフトウエアなどの実行環境で構成されている場合においても、同一のメッセージM1をクライアントC1とサーバS1あるいはS2は用いることができるのがメッセージを基本とした分散処理のメリットの一つである。この図では、実行環境E1と実行環境E2の二つの相互に異なる実行環境を有するノードがクライアントとサーバにおいて混在している。
しかしながら、この方式でそのままメッセージにデータだけではなくプログラムも入れて送受信しようとするとサーバ側とクライアント側での実行環境、特にプログラム処理環境が同一でなければならないという問題が発生する。これはデータの解釈は任意のプログラミング言語・計算機環境で行うことが可能であるが、プログラムの実行はそのプログラムの記述計算機言語に依存した実行環境を必要とするからである。これにより、プログラムの送受信を行うことを可能とした場合、異種環境での混在処理というメリットを失うという問題がメッセージ交換を基本とした分散処理技術にはあった。
このような背景から成立している従来技術としては、例えば特許文献1がある。これはクライアントとサーバにおける処理の呼び出しにおいて、パラメータ(データ)をXML変換することでインターネット環境との連携を容易にしようというものである。しかしながら、当該技術ではリクエストのパラメータのみがXML化されているに過ぎず、最終的にデータとプログラムを合わせた存在であるオブジェクトを実行する環境が送信側と受信側で一致していなければならないという問題の解決にはなっていない。
こうした問題を解決する手段として、実行環境の上にさらに仮想的な実行環境(バーチャルマシン・VM)を重ねることで共通した実行環境を構築する手法がある。しかしながら、これは結局のところ実行環境を同一にすることを容易にしているのに過ぎず、また計算機言語自体の仕様は従来型の記法を用いたものであるため、現実的には次項に述べるメッセージの中におけるデータとプログラムの記述方式のミスマッチを発生させるという問題があった。
また、計算機における分散処理の構築手法であるWebサービス技術がある。Webサービス技術においては、メッセージは拡張可能なマークアップ言語であるXML(eXtensible Markup Language)によって記述される。XMLとはWWWコンソーシアム(W3C)が1998年にインターネット上で構造化文書を活用することを目標として制定したものである。XMLについてはhttp://www.w3.org/XML/で仕様を参照することができる。また、こうしてXMLによって記述されたメッセージの仕様をWebサービス技術ではSOAP(Simple Object Access Protocol)と呼称する。SOAPはメッセージの記述仕様を定めたものであり、どのようなデータをどのように表現するかと言った方法について規定する。Webサービス技術におけるSOAPを用いることで図1における分散処理は容易に実現できることとなる。SOAPもXMLと同様にWWWコンソーシアム(W3C)が仕様を公開しており、http://www.w3.org/TR/SOAP/にてその内容を参照することができる。
Webサービス技術を用いたメッセージ送受信においてはXMLで記述されたSOAPを用いるのが基本である。XMLを用いたSOAPは、またメッセージを構造化文書として取り扱うことを可能としている。これはメッセージを文書とみなし、その任意の部分に関して処理を自由に行うことが可能となっているということである。
特開2003−157178号公報
このようにSOAPを用いたメッセージ送受信においては、XML文書という枠組みをメッセージの書式として維持することが非常に重要になってくる。しかしながら、前述の仮想的な実行環境をお互いに有することによってSOAPの仕組みの中でプログラムを送受信しようとすると、プログラムの記述箇所部分のみがXMLの枠組みから外れることになるという問題が顕在化する。
なぜならば、プログラムの記述方法そのものは特にXMLとの親和性を勘案したものではない、従来型の記法を用いる必要があるからであるである。これは、特にSOAPあるいはXML文書が流通することを前提として構築されているWebサービス技術を用いた各ノードにおいて、メッセージの内容に解釈不能な部分が内包されているという状況を作り出すことになり、前述した部分的な暗号化や署名などのXMLを用いたメッセージングというSOAPのメリットを失わせることになってしまう。
また、仮想的な環境を作成してプログラムを動作させる方式においては、仮想的な環境がその計算機言語において記述可能なプログラム全般の実行を想定しなければならないため比較的巨大なものとならざるを得ず、潤沢な計算機資源を要求するという問題点も存在する。すなわち、本来の計算機環境とは別の多重な計算機環境を構築する必要からくるオーバヘッドが無視できないという問題もある。
また、本格的な処理の記述までをカバーしようとする言語であればコンパイラ方式を採用する場合も多く、この場合は実行時にコンパイル処理という負荷をさらに支払う必要がある。もしコンパイル済みのオブジェクトをバイナリー形式で送信した場合は、実行前に実行内容が確認できないという問題が発生してしまう。
上記課題を解決するため、本発明のデータ処理方法は、データ部と、前記データ部を処理するサービスの仕様を示す仕様部と、前記仕様部を参照する命令を含むプログラム部とを備えるSOAPメッセージを受信し、受信した前記SOAPメッセージ中のBPEL4WSで記述されたプログラム部に含まれる命令の実行時に、実行する命令が参照し、前記仕様部により仕様が示されるサービスにより、前記SOAPメッセージに備えられた前記データ部を処理することを特徴とする。
以上説明したように、本発明によれば、データ部と、前記データ部を処理するサービスの仕様を示す仕様部と、前記仕様部を参照する命令を含むプログラム部とを備えるSOAPメッセージを受信し、受信した前記SOAPメッセージ中のBPEL4WSで記述されたプログラム部に含まれる命令の実行時に、実行する命令が参照し、前記仕様部により仕様が示されるサービスにより、前記SOAPメッセージに備えられた前記データ部を処理することで、メッセージを記述する枠組みの範囲内で、プログラム及び必要なデータを記述することができる。
また、本発明によれば、プログラムを少ない計算機資源で実行することが可能である。
以下、図面を参照して本発明の一実施形態を詳細に説明する。具体的な処理例の記載を併記しているが、本発明はこの具体的な処理例に限定されるものではない。
まず、SOAPメッセージの概要について説明する。全体の構成はエンベローブ部、ヘッダー部、ボディー部で構成される。また、エンベローブ部、ヘッダー部は従来技術と同様の内容で構成されており、SOAPを処理対象とする既存の処理系に対して変更を要求しない。本形態では、ボディー部においては、通常のSOAPで格納するデータ部D1以外に、仮想サービス部S1およびプログラム部P1を格納する。
図2は本形態でのメッセージ送受信について概要を示したものである。まずクライアントC1が外部の処理系(サーバS1)にて行いたい処理を決定し、SOAP処理プログラムP3においてSOAPメッセージM1を生成する。この時、データD1のみを格納するのではなく、そのデータD1をどのように処理して欲しいかを示したプログラムP1も同時に格納して生成する。この時、プログラムP1はXMLを用いたSOAPメッセージと親和性の高い計算機言語であるサービス連携記述言語により記述される。この点は詳細に後述する。
その後、クライアントC1はメッセージM1をサーバS1に送信する。受信したサーバS1は通常のSOAPメッセージであればSOAP処理プログラムP2にて処理を行うが、プログラムP1が内包されたSOAPメッセージの場合は仮想サービス処理プログラムP4に処理を移行する。仮想サービス処理プログラムP4はメッセージに格納されている仮想サービス部S1を通じて、プログラム部P1と処理対象のデータであるデータD1を結びつける。そしてサービス連携処理プログラムP5にてプログラムP1の実行を行う。その後、実行後の結果がサーバS1からクライアントC1に返却される。
図3は上記の処理ステップをフローチャートにて表現したものである。まず、図3(A)のステップS301にてクライアントC1が外部の処理系にて行いたい処理を決定する。次にSOAP処理プログラムP3においてSOAPメッセージM1を生成する。すなわち、ステップS302にてデータD1をSOAPメッセージM1に格納し、ステップS303にてそのデータD1をどのように処理して欲しいかを示したプログラムP1と仮想サービス部S1を生成してSOAPメッセージM1に格納する。次にステップS304にてクライアントC1はSOAPメッセージM1をサーバS1に送信する。ステップS303の処理については、さらに詳細に後述する。なお、仮想サービス部S1は、データD1を処理する仕様を示す仕様部である。
サーバS1は、図3(B)のステップS305にてSOAP処理プログラムP2により当該メッセージを受信し、ステップS306にて通常のSOAPメッセージであるかどうかを判別し、もし通常であればステップS307にて通常のSOAP処理プログラムP2にて処理を行う。プログラム部P1が内包されていれば、仮想サービス処理プログラムP4に処理を移行する。ステップS308で仮想サービス処理プログラムP4は仮想サービスを構成するために必要な情報を、メッセージに格納されている仮想サービス部S1の情報から取得し、ステップS309でプログラム部P1と処理対象のデータであるデータD1を結びつけるための仮想サービスを構築する。そして、その情報をステップS310でサービス連携処理プログラムP5に送る。ステップS311でサービス連携処理プログラムP5はプログラムP1の実行を行う。その後、ステップS312にて実行後の結果がサーバS1からクライアントC1に返却される。ステップS309においては、さらに詳細な処理を後述する。
以下に、上記形態にてクライアントC1にてSOAPメッセージM1が生成されるときにプログラムP1の記述言語として採用されるサービス連携記述言語について説明する。本形態においては、サービス連携記述言語とはWebサービス技術においてサービス連携に供される連携記述言語を称している。すなわち、Webサービス技術において複数のサービスを提供する側の機能を逐次呼び出していき、あるいはその処理結果において条件分岐を行いながら特定のより大きな処理を実行することを記述するために用いられる技術である。具体的な技術としてはBPEL4WSあるいはWSCIといったものが挙げられる。
BPEL4WSとはBusiness Process Execution Language for Web Services(BPEL4WS)の略であり、複数のサービスを連携させた複合サービス記述のための標準として位置付けられているサービス連携記述言語である。仕様はOASIS(http://www.oasis−open.org/)のOASIS Web Services Business Process Execution Language TCが管理している。BPEL4WSを使用すると、例えば、Webサービス呼び出しの実行、データの操作、障害(fault)の通知、またはプロセスの終了などのさまざまなアクティビティーを作成し、それらを結び合わせることによって、複雑なプロセスを作成することが可能である。これらのアクティビティーは、その実行方法 (例えば、順番に実行するのか、並列して実行するのか、あるいは特定の条件に基づいて実行するのか)を定義する、構造化されたアクティビティーの中でネストさせることができるようになっている。
また、WSCIはWeb Service Choreography Interfaceの略であり、やはり同様に複合サービスを連携させたサービス記述のためのサービス連携記述言語である。仕様はWWWコンソーシアム(W3C)が管理しており、http://www.w3.org/TR/wsci/で参照することができる。
これらのサービス連携記述言語はどれもXMLで記述されるという特徴を有しており、従来型の計算機言語を仮想的な計算機環境を用いる従来技術に比較してSOAPメッセージに格納する際の問題が無い。すなわち、従来言語をXML文書であるSOAPメッセージに格納する際に生じていたXMLの利点である部分的な処理が可能であるメリットの消失という問題が発生しない。また、プログラムを格納してもなおメッセージ全体を通して処理可能なXML文書という状態を維持できるため、従来の通常のSOAPメッセージとの互換性が非常に高く、例えばメッセージの転送等と言った中間処理を実行するノードなどに新たな処理プログラムなどの追加を強いる必要がない。
しかしながらサービス連携記述言語を用いる場合には、そもそもこれらはみなWebサービス技術においてサービスを提供するノードの機能を連携させることを主目的としており、SOAPメッセージに格納されているデータを操作することを目的としていないという問題がある。すなわち、サービス連携記述言語は通常Webサービス技術を用いたサーバ(サービス提供ノード)への働きかけを行うための能力しか有しておらず、特定のSOAPメッセージに格納されているデータに対する働きかけを行うことができない。従って、そのままではSOAPメッセージに格納されたデータを対象とした処理を記述するための計算機言語として用いることは困難である。
こうした問題の対処方法として、まずサービス連携記述言語を当該問題に対処した形で拡張するという解決策が考えられる。これはサービス連携記述言語の仕様にSOAPメッセージ内におけるデータへの参照手段を拡張的に設けるというものである。しかしながら、こうした手法では本来のサービス連携記述言語として不要な拡張を行うという言語仕様上の問題以外にも、従来存在したサービス連携記述言語の処理系実装においても当該拡張仕様のサポートを要求するという問題がある。また、言語仕様の変更はサービス連携記述言語毎に行わなければならないため、使用するサービス連携記述言語が変更するたびに実施する必要が発生してしまう。
そこで、本形態では、さらにサービス連携記述言語の仕様および処理系には一切修正を加えずに、SOAPメッセージ内に格納されたデータの参照を実現するために、メッセージM1内に仮想サービス部S1を設けるとともに、サーバ部S1に仮想サービス処理プログラムP4を設けることで対処する。
以下に、メッセージM1内における仮想サービス部S1と、サーバS1における仮想サービス処理プログラムP4の本形態における具体的な機能と処理について示す。前述のようにサービス連携記述言語の処理対象はWebサービス技術におけるサービスのみとなっており、SOAPメッセージに同時に格納されるデータ等への参照あるいは操作機能は有さない。従って、本形態においてはサービス連携記述言語の仕様および処理系には一切修正を加えずにSOAPメッセージ内にあるデータ部への参照あるいは操作を実現するために、当該SOAPメッセージ処理中にのみ適用できる仮想的なWebサービスのサービス提供部を、サービス連携記述言語の実行処理部(P5)に対して与えることで、サービス連携記述言語の処理部(P5)は通常通りWebサービスに対する処理を実行すれば、実際には当該SOAPメッセージに格納されたデータへの参照あるいは操作に変換されるという仕組みを実現する。
より具体的には、図2におけるSOAPメッセージM1を構成する際に格納したデータ部D1を参照するための仮想的なサービスの記述をサービス部S1として格納しておき、プログラム部P1とデータ部D1との関係をサーバS1にある仮想サービス処理プログラムP4が処理できるようにしておく。仮想サービス処理プログラムP4は、これらの情報を基に仮想的なWebサービス提供部を構築し、これをサービス連携処理プログラムP5へ与えることで、通常のサービス連携処理と同様の実行をサービス連携処理プログラムP5が行うだけで、実際には仮想サービス処理プログラムP4を通じてデータD1への操作が実施されるということになる。このサービス部S1は、データ部D1を処理する仕様を示す仕様部である。
図4は本処理を説明するために、図3(A)のフローチャート内におけるステップS303をさらに詳細化した処理をフローチャートにて示したものである。ステップS401において、ステップS302において格納されたデータD1を取得する。ステップS402において、ステップS301において決定された内容に基づいた処理プログラムP1を生成しメッセージM1に格納する。この時生成されるプログラムP1は、図2におけるサービス連携処理プログラムP5が処理可能なサービス連携記述言語にて記述される。ステップS403において、データD1のうち、ステップS402において生成されたプログラムP1が使用(参照あるいは操作)しているデータを抽出する。そしてステップS404において、これらのデータを変更する機能をもつ仮想的なWebサービスの仕様を求め、これをステップS405にて図2の仮想サービス部S1として作成しメッセージM1に格納する。
このように動的にプログラムを生成し、かつそれをメッセージに組み込むという行為を行う従来技術としては、例えば、特開2003−223376号公報がある。これはメッセージの内容を、アプリケーションプログラミングモデルを用いて構築し、これによりコードジェネレータがクライアントとサーバ間のプロトコルを処理する個別のプログラムを自動的に生成するというものである。当該技術はメッセージの転送部分であるプロトコルに処理をしぼったプログラムの自動生成を目的としており、本形態におけるステップS402のプログラムの生成は、あくまでも当該メッセージの内容を処理する方法の計算機言語による記述を実現するものである点が異なる。
図5は本処理を説明するために、図3(B)のフローチャート内におけるステップS309をさらに詳細化した処理をフローチャートにて示したものである。仮想サービス処理プログラムP4はステップS308でメッセージに格納されている仮想サービス部S1の情報を取得し、ステップS411でその情報を受け取る。ステップS412では仮想サービス部S1から仮想的に生成すべきWebサービスの提供機能の仕様を決定し、ステップS413で仮想サービスが提供する実際の機能を構成してWebサービスの実行を開始する。これにより、プログラム部P1と処理対象のデータであるデータD1を結びつけることが可能となる。次にその情報をステップS310でサービス連携処理プログラムP5に送る。ステップS311でサービス連携処理プログラムP5はプログラムP1の実行を行うことになる。
図6はデータのみで構成されたメッセージの例である。これは従来技術であるWebサービス技術で処理されるものであり、XML技術を用いたSOAPによるメッセージとなっている。SOAPメッセージなのでエンベローブ部の中にヘッダー部とボディー部があり、さらにボディー部の中にここでは、データとしてvalue1とvalue2という名称をもった内容が格納されている。
図7は本形態により生成されたメッセージの例である。従来技術であるWebサービス技術で処理することができる互換性を保ちながら、データだけではなくプログラムも同時に格納しているということが示されている。図6と同様にSOAPメッセージなのでエンベローブ部の中にヘッダー部とボディー部があり、さらにボディー部の中にここでは、データとしてvalue1とvalue2という名称をもった内容が格納されている。また、仮想サービス部とプログラム部が追加されている。仮想サービス部は、データ部を処理する仕様を示す仕様部である。
以下に図7におけるSOAPメッセージを処理する場合の実際の流れを説明する。この例は2つの値を受領し合計を演算して返却するという単純な処理を示したものである。
まず送信されるSOAPメッセージであるが、図2においてクライアントC1上にある実行環境E1で動作するSOAP処理プログラムP3にて生成されるSOAPメッセージM1に相当する。
まず、図3のステップS301にて外部の処理系(サーバS1)にて実行したい処理とは2つの数字の合計を演算する処理であるということが決定される。次に、ステップS302でSOAP処理プログラムP3において、通常のSOAPメッセージ生成処理と同様に、図7における<env:Envelope>要素で構成されるエンベロープ部、<env:Header>要素で構成されるヘッダー部、<env:Body>要素で構成されるボディー部、そして<m:data>要素で構成されるデータ部D1が生成される。さらにデータ部D1の中には、<m:value1>および<m:value2>という要素内に100と200という2つの値が格納される。
さらにステップS303にて図7におけるプログラム部P1および仮想サービス部S1が追加される。プログラム部P1は上記2つの値の合計を算出する内容のものであり、<p:program>要素の中に追加される。このプログラムはXMLで表現されたサービス連携記述言語であるBPEL4WSで記述される。この時対象とするデータはこのSOAPメッセージのデータ部D1に記述された<m:value1>および<m:value2>要素の中身であるため、これらの要素の情報をアクセスするためにプログラム部P1の<p:partnerLink>要素に仮想サービスである“virtualService”への参照を埋め込んでおく。
次に仮想サービス部S1が生成される。仮想サービス部S1は<v:virtualService>要素にて示され、さらに内部の<v:definitions>要素におけるname属性によって先ほどの参照を受ける形で“VirtualService”という名称が付与される。また、仮想サービス内のアクセス手段が返却するデータの型を示すvalue1という名称のメッセージが<v:message>要素として定義される。さらに、データ部D1が保持する<m:value1>および<m:value2>というデータへのアクセス手段であるgetValue1およびgetValue2が<v:portType>要素の中で定義される。なお、getValue2は、図7では、省略されている。仮想サービス部S1は、データ部D1を処理する仕様を示す仕様部である。図7では、データ部、仮想サービス部(仕様部)、プログラム部のそれぞれは、data、virtualService、programの名前が付けられたタグで定義される。
こうして図7に示されたSOAPメッセージが作成されたら、ステップS304にて送信される。
送信されたSOAPメッセージは図2におけるサーバS1におけるSOAP処理プログラムP2が受信する。受信されたSOAPメッセージは図3(B)におけるステップS305以降の処理に回される。ステップS306でプログラム部P1がメッセージM1のボディー部にあるかどうかが判定される。図7におけるSOAPメッセージは<envelope:Body>要素内に<v:virtualService>要素および<p:program>要素を含んでいるため、仮想サービス部S1およびプログラム部P1を含むSOAPメッセージであると判断される。
ここで図2における仮想サービス処理プログラムP4に制御が移行する。次にステップS308で仮想サービス構築に必要な情報が取得される。そして、ステップS309で図7のSOAPメッセージM1のボディー部にある仮想サービス部S1である<v:virtualService>要素の内容から構築すべき仮想サービスの仕様を決定していく。例えば<v:definitions>要素のname属性から仮想サービスの名称は“VirtualService”となる。その後、獲得した仕様をもとに図2における仮想サービスプログラムP4が仮想サービスの提供を開始する。
そしてステップS310において仮想サービス処理プログラムP4は、サービス連携処理プログラムP5に対し、こうして構築した仮想サービスの情報とSOAPメッセージM1に格納されていたプログラム部P1の情報を合わせて送信する。この場合ではサービス連携処理プログラムP5はWebサービス連携言語であるBPEL4WSを実行することができるので、プログラム部P1に記述された処理の逐次実行をステップS311として開始する。この時、処理プログラム部P1中にある<p:partnerLink>で示されたサービスである“VirtualService”はさきほど構築された仮想サービスである。例えば処理プログラム部P1中にある<p:invoke partnerLink=“VirtualService” operation=“getValue1”>が実行され、サービス連携処理プログラムP5が通常のサービスへのアクセス手順を行っていくと、実際には仮想サービス処理プログラムP4によってその要求が受け入れられ、SOAPメッセージM1のデータ部D1で記述された<m:value1>100</m:value>から100が実行結果として返却される。
すなわち、<p:invoke partnerLink=“VirtualService” operation=“getValue1”>の実行時に、まず、サービス連携処理プログラムP5がサービスの名前(“VirtualService”)からサービスのアドレスを解決するための問い合わせを発行し、もしそれが“VirtualService”という名前の問い合わせであれば、仮想処理プログラムP4はローカルホストのアドレスを回答する。このローカルホストのアドレスは、例えば、IPv4では127.0.0.1である。複数の仮想サービスを仮想サービス処理プログラムP4がホスティング(提供)する場合には、IPアドレスと仮想サービスの識別子の組み合わせ、例えばhttp://127.0.0.1/virtualServiceになる。すなわち、受信したメッセージM1中のプログラム部に含まれる命令<p:invoke partnerLink=“VirtualService” operation=“getValue1”>の実行時に、実行する命令により行われる処理の仕様を示す仕様部を決定するが(サービスの名前(“VirtualService”)からサービスのアドレス解決)、ここでは、メッセージM1中の仮想サービス部S1が、実行する命令<p:invoke partnerLink=“VirtualService” operation=“getValue1”>により行われる処理の仕様を示すと決定される。
なお、“VirtualService”は、この命令により行われる処理の仕様を示す仕様部を識別するための仕様部識別子であり、“getValue1”は、データを処理する仕様を識別するための仕様識別子であり、それぞれ、メッセージM1中に仮想サービス部S1、及び、仮想サービス都S1中で規定されたデータの処理仕様を示す。“getValue1”は、データ識別子がValue1であるデータをデータD1から取得することを示す。
この回答を受けて、サービス連携処理プログラムP5は、そのローカルホストのアドレスに向かって当該サービス(“VirtualService”)内にある特定の処理(“getValue1”)の実行を要求する。その要求は仮想サービス処理プログラムP4によって受け入れられる。仮想サービス処理プログラムP4は、処理名として“get”が前置されるもの(例えばgetValue1)の処理が要求された場合、getを取ったあとの値(この場合はValue1)という名前の要素(データ)がメッセージM1のデータD1内に存在するかどうかをチェックし、あればそれの値(100)をサービス連携処理プログラムP5に返却する。すなわち、受信したメッセージM1中のプログラム部P1に含まれる命令<p:invoke partnerLink=“VirtualService” operation=“getValue1”>の実行時に、実行する命令により行われる処理の仕様を、受信したメッセージ中の仮想サービス部S1(仕様部)が示す場合、仮想サービス部S1により示される仕様により、データ部D1を処理する。ここでは、サービスの仕様は、“getValue1”なので、データ識別子がValue1であるデータの値(100)をデータ部D1から取得する。
このようにしてSOAPメッセージM1内に存在するデータ部D1に格納されたデータに対する処理を実行した後に、ステップS312として結果が返却される。このSOAPメッセージの処理目的は2つの値を受領し合計を演算することなので、100+200なので300が返却されることとなる。
上記実施の形態ではメッセージ中に格納するプログラム部のプログラムを記述する計算機言語としてサービス連携記述言語であるBPEL4WSを用いたが、これはWSCI等の他のサービス連携記述を目的とした計算機言語であってもかまわない。その際には、当該計算機言語はWebサービスをその操作の対象とすること、および記述にXML形式を採用する。
上記実施の形態においては、単一のクライアントと単一のサーバの関係についてのみ記載したが、これは複数のクライアントと複数のサーバの関係について適用してもかまわない。
なお、本発明は複数の装置(例えばAV装置、家庭用電化製品装置、コンピュータ装置、インタフェース装置など)から構成される装置に適用しても、一つの装置からなる装置に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した媒体を、装置あるいは装置に供給し、その装置あるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読みだし実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することとなる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティング装置)などが実際の処理の一部または全部を行い、その処理によって実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、そのプログラムコードの支持に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合には、その記憶媒体には先に説明したフローチャートに対応する処理を実行するプログラムコードを格納することになる。
従来技術における計算機間における分散処理について示した図である。 本発明の実施の形態にかかるメッセージの処理の概要について示した図である。 本発明の実施の形態にかかる処理の概要についてフローチャートにおいて示した図である。 本発明の実施の形態にかかる処理の詳細についてフローチャートにおいて示した図である。 本発明の実施の形態にかかる処理の詳細についてフローチャートにおいて示した図である。 メッセージの構成について具体的な例によって示した図である。 本発明の実施の形態にかかるメッセージの構成について具体的な例によって示した図である。
符号の説明
P1 プログラム部
S1 仮想サービス部
D1 データ部
P2 SOAP処理風呂グラム
P4 仮想サービス処理プログラム
P5 サービス連携処理プログラム

Claims (3)

  1. データ部と、前記データ部を処理するサービスの仕様を示す仕様部と、前記仕様部を参照する命令を含むプログラム部とを備えるSOAPメッセージを受信し、
    受信した前記SOAPメッセージ中のBPEL4WSで記述されたプログラム部に含まれる命令の実行時に、実行する命令が参照し、前記仕様部により仕様が示されるサービスにより、前記SOAPメッセージに備えられた前記データ部を処理することを特徴とするデータ処理方法。
  2. コンピュータに、
    データ部と、前記データ部を処理するサービスの仕様を示す仕様部と、前記仕様部を参照する命令を含むプログラム部とを備えるSOAPメッセージを受信する手順と、
    受信した前記SOAPメッセージ中のBPEL4WSで記述されたプログラム部に含まれる命令の実行時に、実行する命令が参照し、前記仕様部により仕様が示されるサービスにより、前記SOAPメッセージに備えられた前記データ部を処理する手順を実行させるためのデータ処理プログラム。
  3. データ部と、前記データ部を処理するサービスの仕様を示す仕様部と、前記仕様部を参照する命令を含むプログラム部とを備えるSOAPメッセージを受信する受信手段と、
    受信した前記SOAPメッセージ中のBPEL4WSで記述されたプログラム部に含まれる命令の実行時に、実行する命令が参照し、前記仕様部により仕様が示されるサービスにより、前記SOAPメッセージに備えられた前記データ部を処理する処理手段を有することを特徴とするデータ処理装置。
JP2004074536A 2004-03-16 2004-03-16 データ処理方法、プログラム、及び、装置 Expired - Fee Related JP4574197B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004074536A JP4574197B2 (ja) 2004-03-16 2004-03-16 データ処理方法、プログラム、及び、装置
PCT/JP2005/002605 WO2005088451A1 (ja) 2004-03-16 2005-02-18 データ処理方法、プログラム、装置、メッセージの構造、メッセージ生成方法、及び、メッセージ送信方法
EP05719275A EP1729217A4 (en) 2004-03-16 2005-02-18 DATA PROCESSING, PROGRAM, DEVICE, NEWS STRUCTURE, MESSAGE PRODUCTION METHOD AND MESSAGE TRANSMISSION PROCEDURE
CNB2005800083446A CN100414509C (zh) 2004-03-16 2005-02-18 数据处理方法和数据处理装置
US11/517,340 US7885997B2 (en) 2004-03-16 2006-09-08 Data processing method, program, device, message structure, message generation method, and message transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004074536A JP4574197B2 (ja) 2004-03-16 2004-03-16 データ処理方法、プログラム、及び、装置

Publications (3)

Publication Number Publication Date
JP2005266908A JP2005266908A (ja) 2005-09-29
JP2005266908A5 JP2005266908A5 (ja) 2007-01-18
JP4574197B2 true JP4574197B2 (ja) 2010-11-04

Family

ID=34975761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004074536A Expired - Fee Related JP4574197B2 (ja) 2004-03-16 2004-03-16 データ処理方法、プログラム、及び、装置

Country Status (5)

Country Link
US (1) US7885997B2 (ja)
EP (1) EP1729217A4 (ja)
JP (1) JP4574197B2 (ja)
CN (1) CN100414509C (ja)
WO (1) WO2005088451A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4574197B2 (ja) 2004-03-16 2010-11-04 キヤノン株式会社 データ処理方法、プログラム、及び、装置
KR100937310B1 (ko) 2006-08-17 2010-01-18 주식회사 케이티 단말 관리 오퍼레이션 호출 장치 및 방법
JP4789817B2 (ja) 2007-01-29 2011-10-12 キヤノン株式会社 通信装置及び通信装置の通信方法、プログラム
JP5084355B2 (ja) * 2007-06-07 2012-11-28 キヤノン株式会社 フロー処理実行装置、フロー処理実行方法及びプログラム
JP5279296B2 (ja) * 2008-02-22 2013-09-04 キヤノン株式会社 通信装置、通信方法、プログラム、記憶媒体

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10171701A (ja) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd 手続実行装置及び方法
JPH10304417A (ja) * 1997-04-24 1998-11-13 Matsushita Electric Ind Co Ltd 無線装置
JP2000250735A (ja) * 1999-03-02 2000-09-14 Mitsubishi Electric Corp データ変換方式及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US20030074401A1 (en) * 2001-05-23 2003-04-17 Brian Connell Method and system for communication between computer systems
JP2004007452A (ja) * 2002-03-05 2004-01-08 Matsushita Electric Ind Co Ltd Ipmpにより保護されるコンテンツを処理するために使用されるツールを規定する情報の転送方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157467A (en) * 1990-09-12 1992-10-20 Canon Kabushiki Kaisha Quantum interference device and method for processing electron waves utilizing real space transfer
EP0475403B1 (en) * 1990-09-13 1997-01-08 Canon Kabushiki Kaisha Quantum interference devices and methods for processing interference current
DE69721471T2 (de) * 1996-12-26 2004-03-18 Canon K.K. Fernsteuereinrichtung und zugehöriges System
KR100304609B1 (ko) * 1997-07-15 2001-09-28 윤종용 이메일처리방법
EP0910011A3 (en) * 1997-10-14 2000-12-06 Canon Kabushiki Kaisha Apparatus and method for displaying job list, and storage medium for such a program
US7577834B1 (en) * 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
JP4789321B2 (ja) * 2000-12-27 2011-10-12 キヤノン株式会社 無線通信システム、入出規制装置、無線通信装置、無線通信システムの制御方法、入出規制装置の制御方法及び無線通信装置の制御方法
TW586069B (en) * 2001-03-01 2004-05-01 Ibm A method and a bridge for coupling a server and a client of different object types
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
US8166006B2 (en) 2001-09-28 2012-04-24 International Business Machines Corporation Invocation of web services from a database
US7194553B2 (en) * 2001-10-16 2007-03-20 Microsoft Corporation Resolving virtual network names
US20030074482A1 (en) * 2001-10-16 2003-04-17 Christensen Erik B. Composable messaging protocol
JP4261156B2 (ja) 2001-10-16 2009-04-30 マイクロソフト コーポレーション 組み立て可能なメッセージプロトコル
JP2003157178A (ja) 2001-11-21 2003-05-30 Hitachi Ltd Xmlデータによる遠隔オブジェクト呼出し方法
CN1186956C (zh) * 2002-03-05 2005-01-26 联想(北京)有限公司 通过短消息修改手机的设置和内容的方法
JP4508596B2 (ja) * 2002-11-06 2010-07-21 キヤノン株式会社 通信装置、画像記憶装置およびそれらの制御方法
CA2413697A1 (en) * 2002-12-06 2004-06-06 Ibm Canada Limited-Ibm Canada Limitee Transformations as web services
US20050080930A1 (en) * 2003-10-14 2005-04-14 International Business Machines Corporation Method and apparatus for processing service requests in a service-oriented architecture
JP4574197B2 (ja) 2004-03-16 2010-11-04 キヤノン株式会社 データ処理方法、プログラム、及び、装置
JP4693364B2 (ja) * 2004-05-12 2011-06-01 キヤノン株式会社 光波長変換装置、その制御方法、およびそれを用いた画像投影装置
JP2005354032A (ja) * 2004-05-12 2005-12-22 Canon Inc 分布ブラッグ反射型半導体レーザの制御方法および画像投影装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10171701A (ja) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd 手続実行装置及び方法
JPH10304417A (ja) * 1997-04-24 1998-11-13 Matsushita Electric Ind Co Ltd 無線装置
JP2000250735A (ja) * 1999-03-02 2000-09-14 Mitsubishi Electric Corp データ変換方式及びプログラムを記録したコンピュータ読み取り可能な記録媒体
US20030074401A1 (en) * 2001-05-23 2003-04-17 Brian Connell Method and system for communication between computer systems
JP2004007452A (ja) * 2002-03-05 2004-01-08 Matsushita Electric Ind Co Ltd Ipmpにより保護されるコンテンツを処理するために使用されるツールを規定する情報の転送方法

Also Published As

Publication number Publication date
EP1729217A1 (en) 2006-12-06
EP1729217A4 (en) 2009-12-30
CN1934537A (zh) 2007-03-21
US7885997B2 (en) 2011-02-08
US20070002739A1 (en) 2007-01-04
CN100414509C (zh) 2008-08-27
WO2005088451A1 (ja) 2005-09-22
JP2005266908A (ja) 2005-09-29

Similar Documents

Publication Publication Date Title
Volter et al. Remoting patterns
US8161472B2 (en) Methods and apparatus for incorporating a partial page on a client
US7051084B1 (en) Methods and apparatus for regenerating and transmitting a partial page
US8424020B2 (en) Annotating portions of a message with state properties
US8806506B2 (en) System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture
KR101159364B1 (ko) 분산형 애플리케이션의 객체 지향 표현과 서비스 지향 표현 간의 매핑
Ezenwoye et al. TRAP/BPEL-A Framework for Dynamic Adaptation of Composite Services.
US7509422B2 (en) System and method for locating web services
US20070106998A1 (en) Mobility system and method for messaging and inter-process communication
US10223108B2 (en) System and method of reconstructing complex custom objects
US7392060B2 (en) Mobile exchange infrastructure
Tosic et al. On dynamic service composition and its applicability to e-business software systems
US7885997B2 (en) Data processing method, program, device, message structure, message generation method, and message transmission method
US7849472B1 (en) System for instrumenting resources utilizing WS-management resource MBean wrappers for JAXB beans
JP2008040722A (ja) ソフトウエアモジュール連携システム及び方法
EP2101474A1 (en) Service bindings for web services
JP2008305205A (ja) フロー処理構築装置、フロー処理構築方法及びプログラム
Tosic et al. Dynamic service composition and its applicability to e-business software systems–the icaris experience
van Gurp et al. Service grid variability realization
JP4669245B2 (ja) フレームワーク間連携プログラム、フレームワーク間連携方法、フレームワーク間連携装置、およびフレームワーク間連携システム
Lu et al. A RMI protocol for Aglets
Govindaraju et al. Design and implementation issues for distributed CCA framework interoperability
Téllez et al. Spyro: Simple python remote objects
Sward Using ada in a service-Ooriented architecture
JP2000148460A (ja) プログラム変換方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070529

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080128

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080204

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100201

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100715

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: 20100818

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees