Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5404528B2 - データ処理装置及びデータ処理方法及びプログラム - Google Patents
[go: Go Back, main page]

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

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

Info

Publication number
JP5404528B2
JP5404528B2 JP2010120301A JP2010120301A JP5404528B2 JP 5404528 B2 JP5404528 B2 JP 5404528B2 JP 2010120301 A JP2010120301 A JP 2010120301A JP 2010120301 A JP2010120301 A JP 2010120301A JP 5404528 B2 JP5404528 B2 JP 5404528B2
Authority
JP
Japan
Prior art keywords
server
client
data
common variable
value
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
JP2010120301A
Other languages
English (en)
Other versions
JP2011248574A (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.)
Mitsubishi Electric Corp
Mitsubishi Electric Building Solutions Corp
Original Assignee
Mitsubishi Electric Corp
Mitsubishi Electric Building Techno Service Co 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 Mitsubishi Electric Corp, Mitsubishi Electric Building Techno Service Co Ltd filed Critical Mitsubishi Electric Corp
Priority to JP2010120301A priority Critical patent/JP5404528B2/ja
Publication of JP2011248574A publication Critical patent/JP2011248574A/ja
Application granted granted Critical
Publication of JP5404528B2 publication Critical patent/JP5404528B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、Webサービス等のクライアント装置にサービスを提供するシステムに関する。
Webサービス等のサービス接続とI/F(インタフェース)を管理し、サービスの連携を提供する技術において、従来ではリクエストに目的のサービスのI/Fに一致するデータ型を埋め込み、サービス実行サーバ装置へリクエストを変換・転送する方法が用いられていた(例えば、特許文献1)。
また、シナリオに沿ってサービスを呼び出すような場合は、あらかじめシナリオにメタデータを埋め込んでおき、ユーザがシナリオに定義された次のサービスを実行する際に該当するサービス実行サーバ装置を呼び出す方法が用いられていた(例えば、特許文献2)。
特開2006−190008号公報 特開2008−130033号公報
従来のサービス連携技術は、リクエストをサービス実行サーバ装置へ適切に転送する点においては解決されているが、その結果を次のサービスへ転送するといったような処理が必要な場合に課題がある。
また、従来技術では、サービスの呼び出し順はシナリオによって制御することができているが、呼び出し自体は基本的にユーザがトリガーとなっており、機械的に処理する場合でも別途サービス間をつなぐメッセージの設計もしくは新規モジュールが必要であるため、機械的にサービス間の連携を行うための開発コストが大きいという課題がある。
また、サービスを実行するサーバ装置のI/Fとクライアント装置へ公開するI/Fは必ずしも一致するものではない。
サービス実行サーバ装置が新規に作られる場合はサーバ装置のI/Fとクライアント装置へ公開するI/Fは一致するが、サービスを実行するサーバ装置が既存の外部システムであったりすると、クライアント側が利用しやすいようにクライアント装置に公開するI/Fはサーバ装置のI/Fとは異なるI/Fに設計される場合がある。
このような場合においても、サービス間連携と同様に、従来技術では異なるI/F間(クライアント装置への公開I/Fとサーバ装置のI/F)をつなぐためのメッセージ設計や新規モジュールが必要である。
この発明は上記のような課題を解決することを主な目的とし、クライアント装置用のインタフェースとサービス実行サーバ装置のインタフェースとをつなぐためのメッセージ設計や新規モジュール開発を不要とすることを主な目的の一つとする。
また、サービス間連携において連携のためのメッセージ設計や新規モジュール開発を不要とすることを主な目的の一つとする。
また、登録されているサービスの実行順を指定するだけでサービス間連携を行うことを主な目的の一つとする。
本発明に係るデータ処理装置は、
サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているデータ処理装置であって、
1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信部と、
1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信部と、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理部と、
各共通変数に代入されたデータ値を記憶する共通変数代入値記憶部と、
前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、前記サーバ通信部により前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理部と、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込むサーバ変数処理部とを有することを特徴とする。
本発明によれば、クライアント用インタフェースとサーバ用インタフェースに含まれる引数及び戻り値において共通するデータ種別に対して共通変数を生成し、共通変数を用いてサービス実行サーバ装置への要求発行、サービス実行サーバ装置の実行結果のクライアント装置への応答を行うことができ、クライアント装置のインタフェースとサービス実行サーバ装置のインタフェースとをつなぐためのメッセージ設計や新規モジュール開発が不要となる。
実施の形態1に係るサービス連携サーバ装置の構成例を示す図。 実施の形態1に係るクライアント装置の動作例を示すフローチャート図。 実施の形態1に係るサービス公開部の動作例を示すフローチャート図。 実施の形態1に係る共通変数生成部の動作例を示すフローチャート図。 実施の形態1に係る型マッピング管理部の動作例を示すフローチャート図。 実施の形態1に係るサービスI/F管理部の動作例を示すフローチャート図。 実施の形態1に係るデータ型管理部の動作例を示すフローチャート図。 実施の形態1に係る共通変数入出力部の動作例を示すフローチャート図。 実施の形態1に係るサービス接続部の動作例を示すフローチャート図。 実施の形態1に係るサービス実行サーバ装置の動作例を示すフローチャート図。 実施の形態1に係る処理シーケンスを示す図。 実施の形態1に係る処理シーケンスを示す図。 実施の形態2に係るサービス連携サーバ装置の構成例を示す図。 実施の形態2に係るサービス公開部の動作例を示すフローチャート図。 実施の形態2に係るシナリオ管理部の動作例を示すフローチャート図。 実施の形態2に係る共通変数生成部の動作例を示すフローチャート図。 実施の形態2に係るシナリオ制御部の動作例を示すフローチャート図。 実施の形態2に係る処理シーケンスを示す図。 実施の形態2に係る処理シーケンスを示す図。 実施の形態3に係るサービス連携サーバ装置の構成例を示す図。 実施の形態3に係る変数変換部の動作例を示すフローチャート図。 実施の形態3に係る処理シーケンスを示す図。 実施の形態1に係るデータ型管理部等で管理される情報の例を示す図。 実施の形態1〜3に係るサービス連携サーバ装置のハードウェア構成例を示す図。
実施の形態1.
図1は、本実施の形態に係る、1つのサービスを接続し公開する方式を示すシステム構成図である。
図1において、クライアント装置100は、サービスを呼び出すクライアントプログラムを実行する計算機装置である。
つまり、クライアント装置100はサービス連携サーバ装置200に対してサービスの提供を要求する。
サービス連携サーバ装置200は、クライアント装置100とサービス実行サーバ装置300に接続されている。
サービス連携サーバ装置200は、クライアント装置100から利用することができるサービスを提供するサーバ装置である。
サービス連携サーバ装置200は、データ処理装置の例である。
サービス実行サーバ装置300は、サービス連携サーバ装置200がサービス処理を依頼するサーバ装置である。
つまり、サービス実行サーバ装置300は、クライアント装置100により要求されたサービスを実行する。
サービス実行サーバ装置300は、サービス実体ともいう。
サービス連携サーバ装置200において、サービス公開部201はクライアント装置100へサービス利用のインタフェースを公開する機能である。
サービス公開部201は、クライアント装置100から、リクエスト(クライアント要求ともいう)を受信し、クライアント装置100からのリクエストに対するレスポンス(クライアント応答ともいう)を生成し、レスポンスをクライアント装置100に送信する。
サービス公開部201は、クライアント通信部の例となる。
また、後述する共通変数入出力部206とともにクライアント変数処理部の例となる。
共通変数生成部202はクライアント装置からのリクエストにおける処理実行のための共通変数を生成する機能である。
共通変数は、クライアント装置100からのリクエストがサービス連携サーバ装置200を介してサービス実行サーバ装置300において処理され、クライアント装置100にレスポンスが返されるまでの間に利用される変数である。
つまり、共通変数は、リクエストの受信からレスポンスの送信までの一連の流れの中で共通的に扱われる変数である。
クライアント装置100からの1リクエスト/レスポンスに専用に用いられる共通変数が生成され、他のリクエスト/レスポンスには影響しない。
共通変数の生成方法については、後述する。
なお、共通変数生成部202は、後述するデータ型管理部203、型マッピング管理部204、サービスI/F管理部205とともに共通変数管理部の例となる。
データ型管理部203は、サービス連携サーバ装置200で管理されるサービスが扱うデータ型(種類)と型間の相互関係を管理する機能である。
本実施の形態及び以降の実施の形態において、データ型とは、サービスが扱う情報の型(データ種別)を指している。int型やchar型といったプログラムにおけるデータ型とは異なる。
例えば、品番から品名を検索するサービスの場合、クライアント装置100は「品番」の引数として特定の値を指定してリクエストを発行し、サービス連携サーバ装置200は「品名」の戻り値として特定の値を指定してレスポンスを返す。この場合の「品番」及び「品名」がそれぞれデータ型(データ種別)となる。
つまり、クライアント装置100からのリクエストに含まれる引数のデータ種別、クライアント装置100へのレスポンスに含まれる戻り値のデータ種別、更に、サービス連携サーバ装置200からサービス実行サーバ装置300に送信されるリクエスト(サーバ要求ともいう)に含まれる引数のデータ種別、サービス実行サーバ装置300からサービス連携サーバ装置200に送信されるレスポンス(サーバ応答ともいう)に含まれる戻り値のデータ種別が、本実施の形態及び以降の実施の形態で用いるデータ型である。
このように、データ型管理部203は、上記「品番」、「品名」の他、「価格」、「在庫数」、「納期」、「製造ロット」、「従業員番号」、「従業員氏名」、「所属部署」、「役職」、「センサID」、「温度」、「湿度」、「消費電力」、「重さ」等、サービス連携サーバ装置200が扱うサービスにおける全ての引数、戻り値のデータ種別を管理する。
型マッピング管理部204はサービス連携サーバ装置200で管理されるサービスのI/Fの具体的な項目とデータ型管理部203で管理されている情報の種類のマッピングを管理する機能である。
サービスI/F管理部205はサービス連携サーバ装置200で管理されるサービスのI/Fを管理する機能である。
前述したように、データ型管理部203、型マッピング管理部204、サービスI/F管理部205は、共通変数生成部202とともに共通変数管理部の例となる。
共通変数入出力部206は、共通変数生成部202によって生成された共通変数への値の入出力を行う機能である。
前述したように、共通変数入出力部206は、サービス公開部201とともにクライアント変数処理部の例となる。
また、共通変数入出力部206は、後述するサービス接続部208とともにサーバ変数処理部の例となる。
共通変数代入値記憶部207は、共通変数生成部202によって生成された共通変数への代入値を記憶する。
共通変数代入値記憶部207は、例えば、RAM(Random Access Memory)等のメモリの一部の領域であり、共通変数を格納するために共通変数生成部202により確保された領域である。
サービス接続部208は、サービス連携サーバ装置200からサービス実行サーバ装置300へリクエストを送信するための機能である。
サービス接続部208は、クライアント装置100からのリクエスト(クライアント要求)に基づいて、サービス実行サーバ装置300へのリクエスト(サーバ要求)を送信し、また、サービス実行サーバ装置300からレスポンス(サーバ応答)を受信する。
サービス実行サーバ装置300からのレスポンスはクライアント装置100へのレスポンス(クライアント応答)のもとになる。
サービス接続部208は、サーバ通信部の例である。
また、サービス接続部208は、前述のように、共通変数入出力部206とともにサーバ変数処理部の例となる。
なお、データ型管理部203、型マッピング管理部204、サービスI/F管理部205はそれぞれ別サーバでも良い。
次に、各機能の動作を詳述する前に、以下にて本実施の形態に係るサービス連携サーバ装置200の動作の概要を説明する。
本実施の形態では、共通変数生成部202が、クライアント装置100のクライアント用インタフェースとサービス実行サーバ装置300のサーバ用インタフェースに含まれる引数及び戻り値において共通するデータ型に対して共通変数を生成する。
サービス公開部201は、クライアント装置100からのリクエスト(クライアント要求)に含まれる引数を共通変数に代入し、サービス接続部208は、共通変数のデータ値を引数とするサービス実行サーバ装置300へのリクエスト(サーバ要求)を生成し、サービス実行サーバ装置300のレスポンス(サーバ応答)に含まれる戻り値を共通変数に代入する。
そして、サービス公開部201は共通変数のデータ値を戻り値とするクライアント装置100へのレスポンス(クライアント応答)を生成し、クライアント装置100に送信する。
より具体的には、サービス公開部201は、クライアント装置100から送信されたクライアント要求を受信する。
クライアント要求は、クライアント用インタフェースに従って生成され、1つ以上の引数がクライアント引数として含まれている。
なお、クライアント用インタフェースでは、クライアント引数ごとにクライアント引数のデータ型(データ種別)が定義されている。
このため、クライアント要求には、定義されているデータ型のクライアント引数が含まれ、各クライアント引数として特定のデータ値が含まれている(例えば、「品番」のクライアント引数として「123456」がクライアント要求に含まれる)。
また、サービス公開部201は、クライアント要求に対する応答としてクライアント応答をクライアント装置100に送信する。
クライアント応答は、クライアント用インタフェースに従って生成され、1つ以上の戻り値がクライアント戻り値として含まれている。
クライアント用インタフェースでは、クライアント戻り値ごとにクライアント戻り値のデータ型(データ種別)が定義されている。
このため、クライアント応答には、定義されているデータ型のクライアント戻り値が含まれ、各クライアント戻り値として特定のデータ値が含まれている(例えば、「品名」のクライアント戻り値として「ABC−XYZ」がクライアント応答に含まれる)。
サービス接続部208は、クライアント要求に基づいて生成されたサーバ要求をサービス実行サーバ装置300に送信する。
サーバ要求は、サーバ用インタフェースに従って生成され、1つ以上の引数がサーバ引数として含まれている。
なお、本実施の形態では、クライアント用インタフェースとサーバ用インタフェースは異なっているものとする。
サーバ用インタフェースでは、サーバ引数ごとにサーバ引数のデータ型(データ種別)が定義されている。
このため、サーバ要求には、定義されているデータ型のサーバ引数が含まれ、各サーバ引数として特定のデータ値が含まれている(例えば、「品番」のサーバ引数として「123456」がサーバ要求に含まれる)。
また、サービス接続部208は、サーバ要求に対する応答としてサーバ応答をサービス実行サーバ装置300から受信する。
サーバ応答は、サーバ用インタフェースに従って生成され、1つ以上の戻り値がサーバ戻り値として含まれている。
なお、サーバ用インタフェースでは、サーバ戻り値ごとにサーバ戻り値のデータ型(データ種別)が定義されている。
このため、サーバ応答には、定義されているデータ型のサーバ戻り値が含まれ、各サーバ戻り値として特定のデータ値が含まれている(例えば、「品名」のサーバ戻り値として「ABC−XYZ」がサーバ応答に含まれる)。
共通変数生成部202は、データ型管理部203、型マッピング管理部204、サービスI/F管理部205を用いて、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別とサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する。
また、共通変数生成部202は、クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される共通変数対応付け情報を生成する。
共通変数生成部202は、例えば、クライアント引数Aとサーバ引数Cがデータ型「品番」であればデータ型「品番」に共通変数aを生成し、クライアント戻り値Bとサーバ戻り値Dがデータ型「品名」であればデータ型「品名」に共通変数bを生成する。
そして、共通変数生成部202は、クライアント引数Aとサーバ引数Cと共通変数aとの対応付け及びクライアント戻り値Bとサーバ戻り値Dと共通変数bとの対応付けが示される共通変数対応付け情報を生成する。
また、共通変数生成部202は、相互に異なるデータ種別であるが相互に置換可能な関係にある2以上の同義なデータ型(置換可能なデータ種別)が含まれている場合に、同義なデータ型に対して同じ共通変数を生成する。
更に、共通変数生成部202は、同義なデータ型に対して生成した共通変数に対してクライアント引数及びサーバ引数の対応付けとクライアント戻り値及びサーバ戻り値の対応付けが示される共通変数対応付け情報を生成する。
例えば、クライアント引数Aのデータ型が「品番」であり、サーバ引数Cのデータ型が「シリアルナンバー」であれば、両者は一致していないが同じ内容であるため、同義(置換可能)であり、共通変数生成部202は、クライアント引数Aのデータ型「品番」とサーバ引数Cのデータ型「シリアルナンバー」に共通変数aを生成し、クライアント引数Aとサーバ引数Cと共通変数aとの対応付けが示される共通変数対応付け情報を生成する。
また、共通変数生成部202は、クライアント引数Aのデータ型が「品番」であり、サーバ引数Cのデータ型が「シリアルナンバー」であることを示す情報も生成する。
共通変数代入値記憶部207は、前述したように、共通変数生成部202によって生成された共通変数への代入値を記憶する。
共通変数入出力部206は、サービス公開部201からクライアント要求の各クライアント引数のデータ値を入力し、入力したデータ値を各クライアント引数のデータ型に対応する共通変数に代入して共通変数代入値記憶部207に書き込む。
更に、共通変数入出力部206は、共通変数に代入されたデータ値を共通変数代入値記憶部207から取得し、サービス接続部208に渡す。
サービス接続部208は、共通変数入出力部206から取得したデータ値を、共通変数に対応しているサーバ引数に設定してサーバ用インタフェースに従ってサーバ要求を生成し、サービス実行サーバ装置300に送信する。
前出の例に従えば、共通変数入出力部206はクライアント引数Aのデータ値「123456」を共通変数aに代入して共通変数代入値記憶部207に書き込む、また、共通変数代入値記憶部207から共通変数aの値「123456」を取得し、サーバ引数Cとしてサービス接続部208に渡す。
サービス接続部208は、サーバ引数Cとして「123456」を設定してサーバ要求を生成する。
また、共通変数入出力部206は、サービス接続部208からサーバ応答の各サーバ戻り値のデータ値を入力し、入力したデータ値を各サーバ戻り値のデータ型に対応する共通変数に代入して共通変数代入値記憶部207に書き込む。
更に、共通変数入出力部206は、共通変数に代入されているデータ値を共通変数代入値記憶部207から取得し、サービス公開部201に渡す。
サービス公開部201は、共通変数入出力部206から取得したデータ値を、対応しているクライアント戻り値に設定してクライアント用インタフェースに従ってクライアント応答を生成し、クライアント装置100に送信する。
前出の例に従えば、共通変数入出力部206はサーバ戻り値Dのデータ値「ABC−XYZ」を共通変数bに代入して共通変数代入値記憶部207に書き込む。
また、共通変数代入値記憶部207から共通変数bの値「ABC−XYZ」を取得し、クライアント戻り値Bのデータ値としてサービス公開部201に渡す。
サービス公開部201は、クライアント戻り値Bとして「ABC−XYZ」を設定してクライアント応答を生成する。
次に、本実施の形態に係るサービス連携サーバ装置200の動作を詳細に説明する。
なお、各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
図2はクライアント装置100における処理フローチャートである。
クライアント装置100ではサービス連携サーバ装置200へリクエストを送信し、結果を得る(F0100)。
図3は、サービス連携サーバ装置200のサービス公開部201における処理フローチャートである。
サービス公開部201ではクライアント装置100からのリクエスト(クライアント要求)を受信し(F0200)、どのサービスへのリクエストであるかを共通変数生成部202に通知して共通変数の生成を要求し、共通変数生成部202から共通変数への参照を取得する(F0201)。
この共通変数への参照とは、クライアント引数が代入される共通変数(サーバ引数として値を読み出すべき共通変数)とサーバ戻り値が代入される共通変数(クライアント戻り値として値を読み出すべき共通変数)が示される情報であり、共通変数対応付け情報の例である。
サービス公開部201は、リクエストに含まれるクライント引数の値を共通変数入出力部206を用いて共通変数に代入し(F0202)、サービス接続部208へ共通変数への参照を渡してサービス実行を要求する(F0203)。
つまり、サービス公開部201は、クライアント引数のデータ値を対象となる共通変数の変数名と対応付けて共通変数入出力部206に通知し、共通変数入出力部206がクライアント引数のデータ値を対応する共通変数に代入して共通変数代入値記憶部207に書き込む。
また、サービス公開部201は、サービス接続部208に、クライアント引数の値が代入される共通変数(サーバ引数として値を読み出すべき共通変数)とサーバ戻り値の値が代入される共通変数(クライアント戻り値として値を読み出すべき共通変数)が示される共通変数への参照(共通変数対応付け情報)を通知してサービス実行を要求する。
また、サービス公開部201は、共通変数入出力部206からサービスの実行結果(クライアント戻り値)を取得し(F0204)、取得した実行結果に基づきクライアント用インタフェースに従ったレスポンス(クライアント応答)を生成し、レスポンスをクライアント装置100へ返す(F0205)。
つまり、サービス公開部201は、サービス接続部208からサービス実行サーバ装置300からのレスポンスを得たとの通知を受け、共通変数入出力部206にサーバ戻り値の値が代入される共通変数(クライアント戻り値として値を読み出すべき共通変数)を通知し、共通変数入出力部206からクライアント戻り値の値を取得し、取得した値を用いてレスポンス(クライアント応答)を生成し、レスポンスをクライアント装置100へ返す。
図4は共通変数生成部202における処理フローチャートである。
共通変数生成部202ではサービス公開部201から共通変数の生成要求を受け付けると(F0300)、クライアント装置100から要求されたサービスに対して共通変数化するデータ型を型マッピング管理部204に問い合わせる(F0301)。
次に、共通変数生成部202は、得られたマッピングのデータ型一覧から共通変数を生成し、同義なデータ型も記憶しておく(F0302)。
また、共通変数生成部202は、共通変数の参照(共通変数対応付け情報の例)を生成する。
共通変数の参照は、前述したように、クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される情報である。
生成された共通変数の参照は呼び出し元であるサービス公開部201に返される(F0303)。
図5は型マッピング管理部204における処理フローチャートである。
型マッピング管理部204では共通変数生成部202から共通変数化するデータ型の問い合わせを受けると(F0400)、サービスI/F管理部205から該当するサービスのI/Fを参照する(F0401)。
次に、型マッピング管理部204は、サービスI/Fから得られるサービスへの引数と戻り値について型マッピング管理部204内で管理しているマッピングの情報からデータ型へのマッピング一覧を出す(F0402)。
マッピング一覧の各型についてデータ型管理部203を用いてその種類を取得し、同義(種類が同じ)のデータ型を一覧からはずす(F0403)。
このときデータ型をまとめる方法は同義のデータ型一覧の最初を選ぶ方法でもランダムに選ぶ方法でもよい(例えば、データ型一覧に「データA、データB、データC、データD」があり、データAとデータBとデータCが同義である場合、最初を選ぶと「データA、データD」とまとめられることになる。選ぶルールは特に指定しないのでランダムに「データB、データD」とまとめてもよい)。
整理されたデータ型一覧と、同義であるためはずされたデータ型一覧を返す(F0404)。
より具体的には、マッピング情報も一覧に紐付けられているので、「データA、データD」という一覧は、例えば「データA=クライアント引数1(同義:データB=サービスA引数1)、データD=クライアント戻り値(同義:データC=サービスA戻り値)」といった一覧になる。
図23は、データ型管理部203で管理される情報、型マッピング管理部204で管理される情報、サービスI/F管理部205で管理される情報の例を示す。
データ型管理部203では、データ型と、データ型の相互関係が管理される。
サービスI/F管理部205では各インタフェースにおける引数や戻り値が管理される。
型マッピング管理部204では、マッピング情報が管理される。
マッピング情報はサービスのI/Fとデータ型のマッピング情報である。
マッピング一覧は指定されたサービスのI/Fの引数・戻り値からマッピング情報を引くことで得られるマッピングの一覧である。
図23の例では、サービスI/F管理部205において、クライアント用インタフェースの情報とサービスA用インタフェースの情報を管理している。
クライアント用インタフェースには引数1(int型)、引数2(int型)、戻り値1(int型)が含まれており、サービスA用インタフェースには引数1(string型)、引数2(int型)、戻り値1(string型)が含まれている。
また、型マッピング管理部204では、マッピング情報として、クライアント用インタフェースの引数1、引数2、戻り値のデータ型(引数1=データ型A、引数2=データ型C、戻り値=データ型D)が管理され、また、サービスA用インタフェースの引数1、引数2、戻り値のデータ型(引数1=データ型B、引数2=データ型C、戻り値=データ型E)が管理される。
そして、データ型管理部203では、相互関係として、同義であるデータ型が管理される。具体的には、データ型Aとデータ型Bが同義であり、データ型Dとデータ型Eが同義である。
型マッピング管理部204では、これら情報よりデータ型のマッピング一覧を生成する。
つまり、型マッピング管理部204は、クライアント用インタフェースの引数1(データ型A)とサービスA用インタフェースの引数1(データ型B)は同義であり、クライアント用インタフェースの引数2(データ型C)とサービスA用インタフェースの引数2(データ型C)は同じデータ型であり、クライアント用インタフェースの戻り値(データ型D)とサービスA用インタフェースの戻り値(データ型E)は同義であるというマッピング一覧を生成する。
図6はサービスI/F管理部205における処理フローチャートである。
サービスI/F管理部205ではサービスI/Fの参照を受け付けると(F0500)、サービス名等の識別子から該当するサービスのI/Fを返す(F0501)。
図7はデータ型管理部203における処理フローチャートである。
データ型管理部203ではデータ型の問い合わせを受けると(F0600)、データ型管理部203内で管理しているデータ型から同義(種類が同じ)のデータ型一覧を返す(F0601)。
図8は共通変数入出力部206における処理フローチャートである。
共通変数入出力部206では共通変数の入出力の問い合わせを入力する(F0700)。
より具合的には、共通変数入出力部206は、共通変数へのデータ値の代入の場合は、問い合わせ元の情報(サービス公開部201か、サービス接続部208か)、共通変数に代入すべき値、当該値の対応I/F(引数か、戻り値か)を入力する。
また、共通変数からのデータ値の読み出しの場合は、問い合わせ元の情報(サービス公開部201か、サービス接続部208か)、読み出し対象の対応I/F(引数か、戻り値か)を入力する。
次に、共通変数入出力部206は、F0700での共通変数への代入値の有無を判断して、実行すべき処理が入力か出力かを判断する(F0701)。
具体的には、共通変数への代入値を入力している場合は、F0702において入力となる。
一方、共通変数への代入値を入力していない場合は、F0702において出力となる。
そして、共通変数入出力部206は、F0702の判断において入力の場合は、問い合わせ元から入力した値を、入力したI/Fに対応する変数名の共通変数に代入する(F0703)。
問い合わせがサービス公開部201からの入力(クライアントからのリクエスト入力)である場合は、サービス公開部201から入力した値をクライアント引数に対応する共通変数に代入する。
また、問い合わせがサービス接続部208からの入力(サービス実体からのレスポンス取得)である場合は、サービス接続部208から入力した値をサーバ戻り値に対応する共通変数に代入する。
一方、F0702の判断において出力であった場合は、問い合わせ元から入力したI/Fに対応する変数名の共通変数からデータ値を読み出し、問い合わせ元に出力する(F0704)。
問い合わせがサービス接続部208からの出力(サービス実体へのリクエスト取得)である場合は、サービス接続部208から入力したI/Fに対応する変数名の共通変数からデータ値(サーバ引数に相当する)を読み出して、サービス接続部208に出力する。
また、問い合わせがサービス公開部201からの出力(クライアントへのレスポンス取得)である場合は、サービス公開部201から入力したI/Fに対応する変数名の共通変数からデータ値(クライアント戻り値に相当する)を読み出して、サービス公開部201に出力する。
図9はサービス接続部208における処理フローチャートである。
サービス接続部208では、サービス公開部201からサービス実行の要求を受けると(F0800)、共通変数入出力部206を用いて共通変数からサービスの引数となる値を取得する(F0801)。
前述したように、サービス接続部208は、サービス公開部201から共通変数の参照を取得しているため、サーバ引数として読み出す値が格納されている共通変数の出力を共通変数入出力部206に通知することができる。また、同様の理由により、後述するサーバ戻り値の代入の際にも、サーバ戻り値の代入対象の共通変数への入力を共通変数入出力部206に通知することができる。
次に、サービス接続部208は、共通変数入出力部206から取得した値を用いてサービス実行サーバ装置300に処理を実行させて結果を得る(F0802)。
つまり、共通変数入出力部206から取得した値をサーバ引数に設定してサービス実行サーバ装置300へのリクエストを生成し、サービス実行サーバ装置300へ送信し、また、サービス実行サーバ装置300からレスポンスを受信する。
次に、サービス接続部208は、サービス実行サーバ装置300から得た結果は共通変数入出力部を用いて共通変数に代入する(F0803)。
つまり、サービス接続部208は、レスポンスに含まれるサーバ戻り値と、当該サーバ戻り値であること(I/F)を共通変数入出力部206に渡し、サーバ戻り値を共通変数に代入させる。
共通変数入出力部206は、サーバ戻り値を対応する共通変数に代入して共通変数代入値記憶部207に書き込む。
また、サービス接続部208は、サービス公開部201にサービス実行サーバ装置300からのレスポンスを得た旨を通知する。
図10はサービス実行サーバ装置300における処理フローチャートである。
サービス実行サーバ装置300では、サービス連携サーバ装置200からリクエスト(サーバ要求)を受信し、サービス処理を実行して結果を示すレスポンス(サーバ応答)を生成し、レスポンスをサービス連携サーバ装置200に返す(F0900)。
各機能を組み合わせた全体の動作を、クライアント装置100がサービス連携サーバ装置200上で公開されているサービス実行サーバ装置300のサービスを利用する場合の動作で説明する。
図11及び図12はクライアント装置100がサービス連携サーバ装置200上で公開されているサービス実行サーバ装置300のサービスを利用する動作を示したシーケンス図である。
これを用いてクライアント装置100がサービス実行結果を得るまでの動作を説明する。
クライアント装置100がサービス公開部201で公開されているクライアント用インタフェースに従ったリクエストを送信する(S0100)。
サービス公開部201は、リクエストを受信し、共通変数生成部202に呼び出されたサービス(リクエストで要求されているサービス)に対応する共通変数を生成するように要求する(S0101)。
共通変数生成部202は型マッピング管理部204に呼び出されたサービスで用いるデータ型一覧を問い合わせる(S0102)。
型マッピング管理部204はサービスI/F管理部205から該当するサービスのI/Fを取得し(S0103〜S0104)、サービスI/Fから引数と戻り値のI/Fと型のマッピングを取得する(S0105)。
マッピングから得られる各データ型と同義のデータ型一覧をデータ型管理部203から取得し(S0106〜S0107)、I/Fと型のマッピング一覧から同義な型をまとめる(S0108)。
まとめられたデータ型一覧とその一覧にある各データ型と同義なデータ型一覧を共通変数生成部202に返す(S0109)。
共通変数生成部202は得られたデータ型一覧から共通変数を生成する(S0110)。
このとき、同義なデータ型一覧も記憶される。
つまり、共通変数生成部202は、同じデータ型に対して同じ共通変数を生成する。また、同義なデータ型に対しても同じ共通変数を生成する。
共通変数生成部202は生成した共通変数への参照をサービス公開部201に返す(S0111)。
サービス公開部201は得られた共通変数への参照から共通変数入出力部206を用いてリクエストのクライアント引数を共通変数化し(S0112〜S0113)、サービス接続部208に共通変数の参照を通知してサービス実行を要求する(S0114)。
サービス接続部208は、サービス公開部201から取得した共通変数の参照に基づき、実行するサービスへリクエストするための値(サーバ引数の値)を共通変数入出力部206から取得し(S0115〜S0116)、取得した値を用いてサービス実行サーバ装置300へのリクエストを生成し、サービス実行サーバ装置300にリクエストを送信して、サービス実行サーバ装置300からサービスの実行結果を得る(S0117〜S0118)。
ここで、共通変数入出力部206から得られる値は共通変数生成時にサービスI/Fに合わせて同義の型がまとめられているので、リクエストに用いるべき値が得られることになる。
サービス接続部208は、サービスを実行して得られた結果は共通変数入出力部206を用いて共通変数化し(S0119〜S0120)、サービス公開部201へ実行完了を返す(S0121)。
サービス公開部201は共通変数入出力部206から実行結果(クライアント戻り値の値)を取得し(S0122〜S0123)、取得した値からクライアント装置100へのレスポンスを生成し、生成したレスポンスをクライアント装置100に返す(S0124)。
ここで、共通変数入出力部206から得られる値は共通変数生成時にサービスI/Fに合わせて同義の型がまとめられているので、S0115の場合と同様にレスポンスに用いるべき値が得られることになる。
以上のように、サービスを実行するために必要な情報(サービスI/Fと引数・戻り値の型の種類とそのマッピング)を管理し、同義なデータをまとめて一連の連携処理内で共通変数化することで、連携のための内部メッセージ設計を不要とすることができる。
ここで、連携のための内部メッセージ設計というのは、サービス連携サーバ装置がリクエストを受け取ってからサービス実行サーバ装置へ転送するまでと、サービス実行サーバ装置からの処理結果をクライアント装置へレスポンスするまでのデータフォーマットの設計に相当するものである。
インタフェースに合わせて、バイトデータであれば何バイト目から何バイト目までを引数を格納するための領域にするかといった設計が、XML(Extensible Markup Language)データであればどのようなスキーマにするかといった設計が必要になる。
本実施の形態ではインタフェースに合わせて共通変数が生成されるのでこういった設計が不要になる。
また、共通変数は共通変数生成部によって一時的な記憶領域を確保しているので複数クライアントからの同時リクエストに対してもそれぞれ独立して動作させることが可能である。
以上、本実施の形態では、
任意のクライアントから利用できるサービスを公開する手段と、サービスのI/Fを管理する手段と、情報の種類と相互関係を管理する手段と、I/Fと種類のマッピングを管理する手段と、処理中にその処理において共通的な一時記憶領域を取得する手段と、一時領域へ情報を入出力する手段と、サービス実行サーバ装置への接続手段を備えたサーバを用いてサービスの連携を実行する装置を説明した。
実施の形態2.
以上の実施の形態1では1種類のサービスをクライアントから実行できるようにサービス連携サーバ装置200で連携するようにしたものであるが、次に複数サービスを連携するような場合の実施の形態を示す。
図13は2つのサービスを接続し連携する方式を示すシステム構成図である。
図13において、実施の形態1のシステム構成図(図1)から変更・追加された機能はサービス公開部201、共通変数生成部202、シナリオ管理部209、シナリオ制御部210であり他の機能は実施の形態1と同様である。
また、サービス連携サーバ装置200は、サービス実行サーバ装置A301、サービス実行サーバ装置B302に接続されている。
サービス実行サーバ装置A301、サービス実行サーバ装置B302は実施の形態1におけるサービス実行サーバ装置300と同様にサービスを実行するが、各々の内部のサービス処理が異なるものである。
また、サービス実行サーバ装置A301、サービス実行サーバ装置B302それぞれに固有のサーバ用インタフェースが設けられている。
なお、サービス実行サーバ装置A301、サービス実行サーバ装置B302を区別しない場合は、サービス実行サーバ装置300と表記する。
サービス公開部201はクライアント装置100へサービス利用のインタフェースを公開し、複数サービスを実行するシナリオもサービスとして公開する機能である。
共通変数生成部202は、クライアント装置100からのリクエストにおけるサービス実行と、シナリオ内の各サービス実行のための共通変数を生成する機能である。
シナリオ管理部209は、サービスの実行順序をサービス実行シナリオ(単にシナリオともいう)として管理する機能である。
シナリオ制御部210は、サービスをシナリオに設定された順序で実行する機能である。
シナリオ管理部209とシナリオ制御部210は連携サービス管理部の例である。
なお、シナリオ管理部209は別サーバでも良い。
また、シナリオには実行順序だけでなく実行条件や条件分岐、エラー時に呼び出すサービスの指定などの実行フローが指定されており、判断のための情報はデータ型管理部203で管理されている範囲で指定する。
なお、本実施の形態においても、サービス公開部201はクライアント通信部及びクライアント変数処理部の例であり、共通変数生成部202、データ型管理部203、型マッピング管理部204、サービスI/F管理部205は共通変数管理部の例である。
また、共通変数入出力部206はクライアント変数処理部及びサーバ変数処理部の例であり、サービス接続部208はサーバ通信部及びサーバ変数処理部の例である。
次に、実施の形態1との差分を中心に本実施の形態に係るサービス連携サーバ装置200の動作を概説する。
シナリオ管理部209は、クライアント装置100からのリクエスト(クライアント要求)を解析し、リクエストにおいて要求されているサービスが2以上のサービス実行サーバ装置の連携により実現される連携サービスである場合に、該当するサービス実行シナリオを複数のサービス実行シナリオの中から選択する。
前述のように、サービス実行シナリオには、連携サービスを実現する2以上のサービス実行サーバ装置(連携サービス実行サーバ装置)におけるサービス実行順序が示される。
また、共通変数生成部202は、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ型と、各連携サービス実行サーバ装置300のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ型を解析し、データ型ごとに共通変数を生成する。
共通変数入出力部206は、共通変数に代入されたクライアント引数のデータ値を共通変数代入値記憶部207から取得する。
そして、サービス接続部208が、共通変数入出力部206により取得されたデータ値を、シナリオのサービス実行順序において最初の順序の連携サービス実行サーバ装置300のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して最初の順序の連携サービス実行サーバ装置300のサーバ用インタフェースに従って最初の順序の連携サービス実行サーバ装置300へのサーバ要求を生成し、最初の順序の連携サービス実行サーバ装置300へ送信する。
なお、最後の順序の連携サービス実行サーバ装置300からのサーバ応答まで、サービス接続部208がサーバ応答を受信する度に、共通変数入出力部206は、受信したサーバ応答の各サーバ戻り値に設定されているデータ値を各サーバ戻り値に対応する共通変数に代入して共通変数代入値記憶部207に書き込み、共通変数に代入されているデータ値を共通変数代入値記憶部207から取得し、サービス接続部208が、共通変数入出力部206が取得したデータ値を、シナリオのサービス実行順序において後続の連携サービス実行サーバ装置300のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して後続の連携サービス実行サーバ装置300のサーバ用インタフェースに従って後続の連携サービス実行サーバ装置300へのサーバ要求を生成し、後続の連携サービス実行サーバ装置300へ送信する動作を繰り返す。
なお、後続の連携サービス実行サーバ装置300とは、シナリオのサービス実行順序における次の順序の連携サービス実行サーバ装置300のみならず、次の順序以降の連携サービス実行サーバ装置300も含む。
また、シナリオ制御部210はサービス接続部208がサーバ応答を受信する度に、サービス接続部208に後続の連携サービス実行サーバ装置300を通知する。
サービス接続部208は、共通変数入出力部206が共通変数代入値記憶部207から取得したデータ値を、シナリオ制御部210により通知された後続の連携サービス実行サーバ装置300のサーバ用インタフェースのサーバ引数に設定して後続の連携サービス実行サーバ装置へのサーバ要求を生成する。
そして、シナリオのサービス実行順序において最後の順序の連携サービス実行サーバ装置300からのサーバ応答が受信され、サービス応答に含まれているサーバ戻り値が共通変数代入値記憶部207に格納された後に、共通変数入出力部206は、共通変数に代入されているデータ値を共通変数代入値記憶部207から取得し、サービス公開部201は共通変数代入値記憶部207が取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定してクライアント用インタフェースに従ってクライアント応答を生成し、クライアント装置100に送信する。
次に、本実施の形態に係るサービス連携サーバ装置200の動作を詳細に説明する。
各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
なお、以下では、各機能の動作については実施の形態1と異なる機能についてのみ説明する。
図14はサービス公開部201における処理フローチャートである。
サービス公開部201ではクライアント装置100からのリクエストを受信し(F1000)、リクエストで要求されたサービスが連携サービスの場合は、クライアント装置100からのリクエストに対応するシナリオをシナリオ管理部209から取得してシナリオ内のサービス一覧を得る(F1001)。
サービス一覧には、サービスの実行順序が示される。
次に、サービス公開部201は、サービス一覧を共通変数生成部202に渡して共通変数の生成を要求し、共通変数への参照を取得する(F1002)。
共通変数の参照は共通変数対応付け情報の例である。
本実施の形態では、共通変数の参照は、クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される。
サービス公開部201は、リクエストのクライアント引数は共通変数入出力部206を用いて共通変数に代入し(F1003)、シナリオ制御部210へ共通変数への参照とシナリオを渡してシナリオ実行を要求し(F1004)、共通変数入出力部206からシナリオの実行結果を取得し(F1005)、それをレスポンスとしてクライアント装置100へ返す(F1006)。
図15はシナリオ管理部209における処理フローチャートである。
シナリオ管理部209では、サービス公開部201からシナリオの内容取得を受け付けると(F1100)、サービス公開部201から通知されたリクエストに対応するシナリオの内容を返す(F1101)。
つまり、シナリオ管理部209は、複数のシナリオの中からサービス公開部201から通知されたリクエストで要求されている連携サービスを実現するシナリオを選択する。
図16は共通変数生成部202における処理フローチャートである。
共通変数生成部202では、サービス公開部201からサービス一覧とともに共通変数の生成要求を受け付けると(F1200)、型マッピング管理部204に、サービス公開部201から取得したサービス一覧に含まれる各サービスに対して共通変数化するデータ型を問い合わせる(F1201)。
次に、共通変数生成部202は、得られたマッピングのデータ型一覧から共通変数を生成し、同義なデータ型も記憶しておく(F1202)。
また、生成された共通変数の参照は呼び出し元であるサービス公開部201に返される(F1203)。
本実施の形態では、共通変数生成部202は、サービス一覧に示される各サービスに対して、データ型管理部203、型マッピング管理部204、サービスI/F管理部205を用いて、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ型と、各連携サービス実行サーバ装置300のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ型を解析し、データ型ごとに共通変数を生成する。
そして、共通変数生成部202は、サービス一覧に示されるサービスの実行順序に従って、共通変数の参照を生成する。
前述したように、具体的には、共通変数生成部202は、クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される共通変数の参照を生成する。
図17は、シナリオ制御部210における処理フローチャートである。
シナリオ制御部210では、サービス公開部201から対象となるシナリオとともに、シナリオ実行の要求を受け付けると(F1300)、シナリオに示されたサービスの実行順序に従い、サービス接続部208を用いてサービスを実行する(F1301)。
つまり、シナリオ制御部210はサービス接続部208がサーバ応答を受信する度に、サービス接続部208からサーバ応答を受信した旨の通知を受け、シナリオのサービス実行順序を参照し、サービス接続部208に後続の連携サービス実行サーバ装置300を通知する。
サービス接続部208では、共通変数入出力部206を介して共通変数代入値記憶部207から共通変数に代入されているサーバ戻り値の値を後続の連携サービス実行サーバ装置300のサーバ引数の値として取得し、取得したデータ値を対応するサーバ引数に設定し、後続の連携サービス実行サーバ装置300のサーバ用インタフェースに従ってリクエスト(サーバ要求)を生成し、後続の連携サービス実行サーバ装置300に送信する。
また、シナリオ制御部210は、シナリオ内に条件分岐等の指定(例えば、「サービスAの戻り値が0以上なら」等)があれば、判断のための値は共通変数入出力部206から取得し、次のサービスを実行する。
つまり、シナリオ管理部209は、特定の連携サービス実行サーバ装置300からのサーバ応答の特定のサーバ戻り値により、次のサーバ要求の送信先が2以上の連携サービス実行サーバ装置300に分岐するシナリオを選択する場合がある。
サービス接続部208により受信されたサーバ応答のサーバ戻り値により分岐が生じる場合に、シナリオ制御部210は、当該サーバ戻り値に基づき、2以上の連携サービス実行サーバ装置の中から分岐先の連携サービス実行サーバ装置を選択する。
どのサーバ戻り値に対して分岐判断を行うかは、クライアント装置100からのリクエスト又はいずれかのサービスの実行結果において特定されている。
シナリオ制御部210は、分岐判断の対象となるデータ値(サーバ戻り値)が共通変数代入値記憶部207に格納されると、共通変数入出力部206に分岐判断の対象となるデータ値(サーバ戻り値)を取得するよう指示し、共通変数入出力部206から分岐判断の対象となるデータ値(サーバ戻り値)を取得する。
そして、シナリオ制御部210は、当該サーバ戻り値を分岐判断の条件と照合し、分岐先の連携サービス実行サーバ装置を選択する。
例えば、「分岐判断の対象となるサーバ戻り値の値が0ならばサービスAへ移行し、それ以外はサービスBへ移行する」という条件がシナリオに設定されている場合、シナリオ制御部210は、対象となるデータ値が0かどうかによって分岐先の連携サービス実行サーバ装置を選択する。
シナリオ制御部210は、選択した連携サービス実行サーバ装置をサービス接続部208に通知する。
そして、サービス接続部208は、共通変数入出力部206から共通変数に代入されているデータ値を入力すると、シナリオ制御部210により選択された分岐先の連携サービス実行サーバ装置300のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して分岐先の連携サービス実行サーバ装置300へのサーバ要求を生成する。
各機能を組み合わせた全体の動作を、クライアント装置100がサービス連携サーバ装置200上で公開されているサービス実行サーバ装置A301のサービスAとサービス実行サーバ装置B302のサービスBをシナリオで連携して利用する場合の動作で説明する。
図18及び図19はクライアント装置100がサービス連携サーバ装置200上で公開されているサービス実行サーバ装置A301のサービスAとサービス実行サーバ装置B302のサービスBをシナリオで連携して利用する動作を示したシーケンス図である。
これを用いてクライアント装置100がサービス実行結果を得るまでの動作を説明する。
実施の形態1と同様なシーケンスとなる部分は簡略化している。
クライアント装置100がサービス公開部201で公開されているクライアント用インタフェースに従ったリクエストを送信する(S0200)。
サービス公開部201はシナリオ管理部209から該当するシナリオを取得し(S0201〜S0202)、シナリオ内のサービス一覧を共通変数生成部202に渡して共通変数を生成するように要求する(S0203)。
共通変数生成部202はシナリオ内の各サービスについて型マッピング管理部204へデータ型を問い合わせ(S0204:図11のS0102〜S0109と同様)、共通変数を生成する(S0205:図11のS0110と同様)。
共通変数生成部202は生成した共通変数への参照をサービス公開部201に返す(S0206:図11のS0111と同様)。
サービス公開部201は得られた共通変数への参照から共通変数入出力部206を用いてリクエスト内容を共通変数化し(S0207:図11のS0112〜S0113と同様)、シナリオ制御部210にシナリオ実行を要求する(S0208)。
シナリオ制御部210はシナリオに従いサービスA実行をサービス接続部208に要求する(S0209)。また、このとき、サービスAのサーバ引数及びサーバ戻り値が格納される共通変数の参照がシナリオ制御部210からサービス接続部208に渡される。
サービス接続部208は、シナリオ制御部210から取得した共通変数の参照に基づき、実行するサービスへリクエストするための値(サーバ引数の値)を共通変数入出力部206から取得し、取得した値を用いてサービス実行サーバ装置A301へリクエストを生成し、サービス実行サーバ装置A301にリクエストを送信して、サービス実行サーバ装置A301からサービスの実行結果を得て、共通変数入出力部206を用いて共通変数に結果(サーバ戻り値)を代入する(S0210:図11のS0115〜S0120と同様)。
サービス接続部208が実行完了を返すと(S0211)、シナリオ制御部210は次のサービス実行に移るが、シナリオ中に分岐等があれば共通変数入出力部206を用いて判断に用いる値を得て判断する(S0212)。このシーケンスではそのまま次のサービス実行に移る。
シナリオ制御部210はサービスA実行時(S0209〜S0211)と同様に、サービスBのサーバ引数及びサーバ戻り値が格納される共通変数の参照をサービス接続部208に渡し、サービスBを実行する(S0213〜S0215)。
このとき、サービスBの実行に必要な値(サーバ引数の値)をサービスAの実行結果(サービス戻り値)から取得する必要があったとしても、サービスAの実行結果(サーバ戻り値)は共通変数化されており、サービスBへのリクエスト内容はその共通変数から取得されるため、リクエストに用いるべき値が得られることになる。
シナリオが完了するとシナリオ制御部210はサービス公開部201へ実行完了を返す(S0216)。
サービス公開部201は共通変数入出力部206を用いて実行結果(クライアント戻り値)を取得し(S0217:図11のS0122〜S0123と同様)、取得した値からクライアント装置100へのレスポンスを生成し、生成したレスポンスをクライアント装置100に返す(S0218)。
以上のように、サービスを実行するために必要な情報(サービスI/Fと引数・戻り値の型の種類とそのマッピング)を管理し、同義なデータをまとめて一連の連携処理内で共通変数化することで、シナリオ実行のような複数サービスを連携する場合においても、内部メッセージ設計を不要とすることができる。
また、シナリオの内容は実行順序といった内容でありサービス間のI/Fを意識することが無くなるため、シナリオに変更が生じた際にもその改修コストを抑えることができる。
以上、本実施の形態では、サービス連携シナリオを管理する手段と、そのシナリオを制御する手段を備えたサービス連携装置を説明した。
また、本実施の形態では、シナリオを制御する手段において、一時記憶領域の情報によって条件分岐等の制御ができる手段を備えたサービス連携装置を説明した。
実施の形態3.
以上の実施の形態2では複数サービスを連携するような場合にサービス間を連携するようにしたものであるが、次に連携するサービス間で値の変換が必要となる場合の実施の形態を示す。
図20は連携するサービス間で値の変換をする方式を示すシステム構成図である。
図20において、実施の形態2のシステム構成図(図13)から追加された機能は変数変換部211であり他の機能は実施の形態2と同様である。
変数変換部211は共通変数への入出力時にデータ型に応じて値を変換する機能である。
変数変換部211による変換は、例えば、トンで表記されている重量値を、キログラム表記に変換するというものである。
変数変換部211は、データ変換部の例である。
変数変換部211は、具体的には、共通変数入出力部206から共通変数代入値記憶部207に格納するデータ値を入力し、当該データ値のデータ形式(トン表記、キログラム表記等)が、当該データ値が次に共通変数代入値記憶部207から読み出されてサービス公開部201又はサービス接続部208で用いられる際のデータ形式と一致するか否かを判断し、データ形式が一致しない場合に、当該データ値のデータ形式をサービス公開部201又はサービス接続部208で用いられる際のデータ形式に変換する。
また、変数変換部211は、共通変数入出力部206が共通変数代入値記憶部207から取得したデータ値を入力し、当該データ値のデータ形式が、当該データ値がサービス公開部201又はサービス接続部208で用いられる際のデータ形式と一致するか否かを判断し、データ形式が一致しない場合に、当該データ値のデータ形式をサービス公開部201又はサービス接続部208で用いられる際のデータ形式に変換する。
なお、変数変換部211は、共通変数への参照(クライアント装置100のリクエスト受信からクライアント装置100のレスポンス送信までの共通変数の参照)と同義型の情報を有しているため、共通変数ごとに次に引数又は戻り値として用いられる際のデータ形式を判別することができる。
なお、本実施の形態においても、サービス公開部201はクライアント通信部及びクライアント変数処理部の例であり、共通変数生成部202、データ型管理部203、型マッピング管理部204、サービスI/F管理部205は共通変数管理部の例である。
また、共通変数入出力部206はクライアント変数処理部及びサーバ変数処理部の例であり、サービス接続部208は、サーバ通信部及びサーバ変数処理部の例である。
また、シナリオ管理部209及びシナリオ制御部210は連携サービス管理部の例である。
次に動作について説明する。
各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
各機能の動作については実施の形態2と異なる機能についてのみ説明する。
図21は変数変換部211における処理フローチャートである。
変数変換部211では共通変数への入出力を受け付けると(F1400)、対象の共通変数が入出力するデータ型と完全に一致するかで処理が分かれる(F1401)。
データ型が完全一致する場合は、変数変換部211は、そのまま値を代入または取得し(F1402)、データ型が完全一致しない場合は共通変数と共に記憶されている同義型の情報から一致する型へ変換して代入または取得する(F1403)。
変数変換部211は、例えば、トンとキログラムとの間の変換では、データ値を1000倍する、1000分の1倍するという変換を行う。
各機能を組み合わせた全体の動作を、クライアント装置100がサービス連携サーバ装置200上で公開されているサービス実行サーバ装置A301のサービスAとサービス実行サーバ装置B302のサービスBをシナリオで連携して利用する場合の動作で説明する。
ここでは実施の形態2の場合と異なり、サービスAの戻り値をサービスBに渡す場合にその型(データ形式)が完全一致しないものとする。
図20はクライアント装置100がサービス連携サーバ装置200上で公開されているサービス実行サーバ装置A301のサービスAとサービス実行サーバ装置B302のサービスBをシナリオで連携して利用する動作のうち、共通変数への入出力部分のみを示したシーケンス図である。
全体の動作の大部分は実施の形態2の場合(図18、図19)と同様であり、共通変数への入出力部分のみ異なるので、これを用いて共通変数への入出力部分の動作を説明する。
まず、値の入力について説明する。
共通変数入出力部206が変数変換部211に値の代入を要求すると(S0300)、変数変換部211はその値が共通変数の型(次に読みだされた際に引数又は戻り値として用いるデータ形式)と比較して直接代入可能かチェックする(S0301)。
直接代入可能でなければ共通変数とともに記憶されている同義の型から代入可能な型へ値を変換して代入し(S0302)、共通変数入出力部206へ代入完了を返す。
次に、値の出力について説明する。
共通変数入出力部206が変数変換部211に値の参照を要求すると(S0304)、変数変換部211は共通変数の型を参照して値が参照したい型(引数又は戻り値として用いるデータ形式)かチェックする(S0305)。
異なる型であれば共通変数とともに記憶されている同義の型から値を目的の型へ変換し(S0306)、共通変数入出力部206へ変換後の値を返す(S0307)。
以上のように、サービスを実行するために必要な情報(サービスI/Fと引数・戻り値の型の種類とそのマッピング)を管理し、同義なデータをまとめて一連の連携処理内で共通変数化することで、シナリオ実行のような複数サービスを連携する場合において、値の変換が必要となる場合も、変数変換部を用いることで自動で変換することができ、内部メッセージ設計を不要とすることができる。
また、シナリオの内容は実行順序といった内容でありサービス間のI/Fを意識することが無くなるため、シナリオに変更が生じた際にも実施の形態2の場合と同様にその改修コストを抑えることができる。
なお、本実施の形態では、実施の形態2に示したサービス連携がある場合を例にして説明を進めたが、実施の形態1に示したサービス連携がない場合にも変数変換部211による変換を行うことができる。
つまり、クライアント引数とサーバ引数間でデータ形式が異なる場合やクライアント戻り値とサーバ戻り値でデータ形式が異なる場合に変数変換部211による変換がなされる。
以上、本実施の形態では、一時記憶領域に適切な型へ変換して情報を入出力できる手段を備えたサービス連携装置を説明した。
最後に、実施の形態1〜3に示したサービス連携サーバ装置200のハードウェア構成例について説明する。
図24は、実施の形態1〜3に示すサービス連携サーバ装置200のハードウェア資源の一例を示す図である。
なお、図24の構成は、あくまでもサービス連携サーバ装置200のハードウェア構成の一例を示すものであり、サービス連携サーバ装置200のハードウェア構成は図24に記載の構成に限らず、他の構成であってもよい。
図24において、サービス連携サーバ装置200は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード(登録商標)読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態1〜3で説明した「共通変数代入値記憶部207」は、RAM914等により実現される。
通信ボード915、キーボード902、マウス903、スキャナ装置907、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、ネットワークに接続されている。例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などに接続されている。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911に実行させるオペレーティングシステム921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
サービス連携サーバ装置200の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
上記プログラム群923には、実施の形態1〜3の説明において「〜部」(「共通変数代入値記憶部207」以外、以下同様)、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1〜3の説明において、「〜の判断」、「〜の判定」、「〜の比較」、「〜の代入」、「〜の取得」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1〜3の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1〜3で説明したフローチャートに示すステップ、手順、処理により、本発明に係るデータ処理方法を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1〜3の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1〜3に示すサービス連携サーバ装置200は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
100 クライアント装置、200 サービス連携サーバ装置、201 サービス公開部、202 共通変数生成部、203 データ型管理部、204 型マッピング管理部、205 サービスI/F管理部、206 共通変数入出力部、207 共通変数代入値記憶部、208 サービス接続部、209 シナリオ管理部、210 シナリオ制御部、211 変数変換部、300 サービス実行サーバ装置、301 サービス実行サーバ装置A、302 サービス実行サーバ装置B。

Claims (14)

  1. サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているデータ処理装置であって、
    1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信部と、
    1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信部と、
    前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理部と、
    各共通変数に代入されたデータ値を記憶する共通変数代入値記憶部と、
    前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、前記サーバ通信部により前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理部と、
    前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込むサーバ変数処理部とを有することを特徴とするデータ処理装置。
  2. 前記共通変数管理部は、
    クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される共通変数対応付け情報を生成し、
    前記クライアント変数処理部は、
    前記共通変数対応付け情報に示されるクライアント引数と共通変数との対応付けに基づき、前記クライアント要求の各クライアント引数のデータ値を対応する共通変数に代入し、
    共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるクライアント戻り値と共通変数との対応付けに基づき、対応しているクライアント戻り値に設定し、
    前記サーバ変数処理部は、
    共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるサーバ引数と共通変数との対応付けに基づき、対応するサーバ引数に設定し、
    前記共通変数対応付け情報に示されるサーバ戻り値と共通変数との対応付けに基づき、前記サーバ応答の各サーバ戻り値のデータ値を対応する共通変数に代入することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記共通変数管理部は、
    前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、相互に異なるデータ種別であるが相互に置換可能な関係にある2以上の置換可能データ種別が含まれている場合に、置換可能データ種別に対して同じ共通変数を生成し、
    置換可能データ種別に対して生成した共通変数に対してクライアント引数とサーバ引数との対応付け及びクライアント戻り値とサーバ戻り値との対応付けが示される共通変数対応付け情報を生成することを特徴とする請求項2に記載のデータ処理装置。
  4. 前記データ処理装置は、更に、
    前記クライアント変数処理部又は前記サーバ変数処理部から、前記共通変数代入値記憶部に格納するデータ値を入力し、
    当該データ値のデータ形式が、当該データ値が次に前記共通変数代入値記憶部から読み出されて前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
    データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項1〜3のいずれかに記載のデータ処理装置。
  5. 前記データ処理装置は、更に、
    前記クライアント変数処理部又は前記サーバ変数処理部から、前記クライアント変数処理部又は前記サーバ変数処理部が前記共通変数代入値記憶部から取得したデータ値を入力し、
    当該データ値のデータ形式が、当該データ値が前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
    データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項1〜4のいずれかに記載のデータ処理装置。
  6. 前記データ処理装置は、
    それぞれに固有のサーバ用インタフェースが設けられている複数のサービス実行サーバ装置に接続され、
    前記データ処理装置は、更に、
    クライアント要求を解析し、前記クライアント要求において要求されているサービスが2以上のサービス実行サーバ装置の連携により実現される連携サービスである場合に、前記連携サービスを実現する2以上の連携サービス実行サーバ装置におけるサービス実行順序が示されるサービス実行シナリオを選択する連携サービス管理部を有し、
    前記共通変数管理部は、
    前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と、各連携サービス実行サーバ装置のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに共通変数を生成し、
    前記クライアント変数処理部は、
    前記サービス実行シナリオのサービス実行順序において最後の順序の連携サービス実行サーバ装置からのサーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成し、
    前記サーバ変数処理部は、
    前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記サービス実行順序において最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースに従って最初の順序の連携サービス実行サーバ装置へのサーバ要求を生成し、
    最後の順序の連携サービス実行サーバ装置からのサーバ応答まで、前記サーバ通信部がサーバ応答を受信する度に、受信したサーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記サービス実行順序において後続の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して後続の連携サービス実行サーバ装置のサーバ用インタフェースに従って後続の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項1〜5のいずれかに記載のデータ処理装置。
  7. 前記連携サービス管理部は、
    前記サーバ通信部がサーバ応答を受信する度に、前記サーバ変数処理部に、前記サービス実行順序において後続の連携サービス実行サーバ装置を通知し、
    前記サーバ変数処理部は、
    前記共通変数代入値記憶部から取得したデータ値を、前記連携サービス管理部により通知された後続の連携サービス実行サーバ装置のサーバ用インタフェースのサーバ引数に設定して後続の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項6に記載のデータ処理装置。
  8. 前記共通変数管理部は、
    クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される共通変数対応付け情報を生成し、
    前記クライアント変数処理部は、
    前記共通変数対応付け情報に示されるクライアント引数と共通変数との対応付けに基づき、前記クライアント要求の各クライアント引数のデータ値を対応する共通変数に代入し、
    共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるクライアント戻り値と共通変数との対応付けに基づき、対応しているクライアント戻り値に設定し、
    前記サーバ変数処理部は、
    前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示される最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けに基づき、最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースにおいて対応しているサーバ引数に設定し、
    前記サーバ通信部がサーバ応答を受信する度に、
    前記共通変数対応付け情報に示される前記サーバ応答の送信元の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付けに基づき、前記サーバ応答の各サーバ戻り値のデータ値を対応する共通変数に代入し、
    共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示される後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けに基づき、後続の連携サービス実行サーバ装置のサーバ用インタフェースにおいて対応しているサーバ引数に設定することを特徴とする請求項6又は7に記載のデータ処理装置。
  9. 前記共通変数管理部は、
    前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と各連携サービス実行サーバ装置のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、相互に異なるデータ種別であるが相互に置換可能な関係にある2以上の置換可能データ種別が含まれている場合に、置換可能データ種別に対して同じ共通変数を生成し、
    置換可能データ種別に対して生成した共通変数に対してクライアント引数とサーバ引数との対応付け、クライアント戻り値とサーバ戻り値との対応付け及びサーバ戻り値とサーバ引数との対応付けが示される共通変数対応付け情報を生成することを特徴とする請求項8に記載のデータ処理装置。
  10. 前記データ処理装置は、更に、
    前記クライアント変数処理部又は前記サーバ変数処理部から、前記共通変数代入値記憶部に格納するデータ値を入力し、
    当該データ値のデータ形式が、当該データ値が次に前記共通変数代入値記憶部から読み出されて前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
    データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項6〜9のいずれかに記載のデータ処理装置。
  11. 前記データ処理装置は、更に、
    前記クライアント変数処理部又は前記サーバ変数処理部から、前記クライアント変数処理部又は前記サーバ変数処理部が前記共通変数代入値記憶部から取得したデータ値を入力し、
    当該データ値のデータ形式が、当該データ値が前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
    データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項6〜10のいずれかに記載のデータ処理装置。
  12. 前記連携サービス管理部は、
    特定の連携サービス実行サーバ装置からのサーバ応答の特定のサーバ戻り値のデータ値により、次のサーバ要求の送信先が2以上の連携サービス実行サーバ装置に分岐するサービス実行シナリオを選択する場合があり、
    前記サーバ通信部により受信されたサーバ応答のサーバ戻り値のデータ値が前記サービス実行シナリオにおいてサーバ要求の送信先の分岐が生じるデータ値である場合に、当該データ値に基づき、2以上の連携サービス実行サーバ装置の中から分岐先の連携サービス実行サーバ装置を選択し、
    前記サーバ変数処理部は、
    共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記連携サービス管理部により選択された分岐先の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して分岐先の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項6〜11のいずれかに記載のデータ処理装置。
  13. サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているコンピュータが行うデータ処理方法であって、
    1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記コンピュータが前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記コンピュータが前記クライアント装置に送信するクライント通信ステップと、
    1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記コンピュータが前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記コンピュータが前記サービス実行サーバ装置から受信するサーバ通信ステップと、
    前記コンピュータが、前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理ステップと、
    前記コンピュータが、各共通変数に代入されたデータ値を所定の共通変数代入値記憶領域に記憶する共通変数代入値記憶ステップと、
    前記コンピュータが、前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込み、前記サーバ通信ステップにより前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理ステップと、
    前記コンピュータが、前記クライアント変数処理ステップにより共通変数に代入されたデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込むサーバ変数処理ステップとを有することを特徴とするデータ処理方法。
  14. サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているコンピュータに、
    1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信ステップと、
    1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信ステップと、
    前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理ステップと、
    各共通変数に代入されたデータ値を所定の共通変数代入値記憶領域に記憶する共通変数代入値記憶ステップと、
    前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込み、前記サーバ通信ステップにより前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理ステップと、
    前記クライアント変数処理ステップにより共通変数に代入されたデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込むサーバ変数処理ステップとを実行させることを特徴とするプログラム。
JP2010120301A 2010-05-26 2010-05-26 データ処理装置及びデータ処理方法及びプログラム Expired - Fee Related JP5404528B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010120301A JP5404528B2 (ja) 2010-05-26 2010-05-26 データ処理装置及びデータ処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010120301A JP5404528B2 (ja) 2010-05-26 2010-05-26 データ処理装置及びデータ処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011248574A JP2011248574A (ja) 2011-12-08
JP5404528B2 true JP5404528B2 (ja) 2014-02-05

Family

ID=45413762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010120301A Expired - Fee Related JP5404528B2 (ja) 2010-05-26 2010-05-26 データ処理装置及びデータ処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5404528B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014241072A (ja) * 2013-06-12 2014-12-25 日本電気通信システム株式会社 命令生成装置、命令生成方法、及び、命令生成プログラム
KR102150545B1 (ko) * 2013-10-07 2020-10-26 에스케이플래닛 주식회사 웹 앱 개발 장치, 방법 및 컴퓨터로 판독 가능한 기록 매체
JP6904476B2 (ja) * 2018-02-20 2021-07-14 日本電信電話株式会社 Api連携実行装置、api連携実行方法及びプログラム
DE112022007875T5 (de) * 2022-12-09 2025-08-07 Mitsubishi Electric Corporation Dienst-Kooperations-Einrichtung und Dienst-Kooperations-Verfahren

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3424597B2 (ja) * 1999-04-28 2003-07-07 日本電気株式会社 異機種間における引数、戻り値の転送方法ならびに装置
JP2004030224A (ja) * 2002-06-26 2004-01-29 Sony Corp プロセッサ、レジスタ退避方法およびレジスタ指定方法
JP2005174120A (ja) * 2003-12-12 2005-06-30 Toshiba Corp Webサービス接続処理方法とシステム、およびプログラム
JP4705758B2 (ja) * 2004-02-12 2011-06-22 横河電機株式会社 サービス連携システム
JP4808558B2 (ja) * 2006-07-12 2011-11-02 日本電信電話株式会社 連携シナリオ作成支援システム及びその方法並びにプログラム
JP2008160198A (ja) * 2006-12-20 2008-07-10 Nippon Telegr & Teleph Corp <Ntt> サービス選択制御方法およびシステム
JP5188284B2 (ja) * 2008-06-17 2013-04-24 三菱電機株式会社 サービス接続システム及びサービス接続方法

Also Published As

Publication number Publication date
JP2011248574A (ja) 2011-12-08

Similar Documents

Publication Publication Date Title
CN104520834B (zh) 用于向第三方应用端到端地暴露原生数据类型的导出的表示的系统和方法
Alpdemir et al. Service-based distributed querying on the grid
US6848079B2 (en) Document conversion using an intermediate computer which retrieves and stores position information on document data
US20100229165A1 (en) Controlling java virtual machine component behavior on a per-classloader basis
US7664782B2 (en) Associating a set of related web services having different input data structures with a common identification name
US8140582B2 (en) Service oriented architecture aggregation
US9766869B2 (en) Parameterized installation packages
US11886939B2 (en) System, device, method and datastack for managing applications that manage operation of assets
WO2008055888A2 (en) Method and system for dynamically specifying a format for data provided by a web service invocation
US20120167206A1 (en) System and method for enabling secure display of external images
US20120290626A1 (en) Converting two-tier resource mapping to one-tier resource mapping
JP5404528B2 (ja) データ処理装置及びデータ処理方法及びプログラム
JP2019067288A (ja) ログ管理装置、情報処理システムおよびプログラム
US8719388B2 (en) Method for installing a web package within a manufacturing executing system
US9300522B2 (en) Information technology asset management
US20210124733A1 (en) Computer System and Data Management Method
US20080307432A1 (en) Method and apparatus for exchanging data using data transformation
US8959126B2 (en) Device management apparatus and device management method
US9727290B2 (en) Management apparatus and method for setting data values on an information processing apparatus
MXPA05002273A (es) Sistema y metodo para construir aplicaciones de componente usando asignacion definida por metadatos entre los dominios de mensaje y datos.
US20250168253A1 (en) Open resource discovery of entity types
US9489219B2 (en) Integration and management apparatus, integration and management system and computer readable information recording medium
Vinoski The more things change
US20130097622A1 (en) Framework for system communication for handling data
JP2014032687A (ja) 統合管理装置、制御方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130919

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131029

R150 Certificate of patent or registration of utility model

Ref document number: 5404528

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

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

LAPS Cancellation because of no payment of annual fees