JP5404528B2 - データ処理装置及びデータ処理方法及びプログラム - Google Patents
データ処理装置及びデータ処理方法及びプログラム Download PDFInfo
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Description
サービス実行サーバ装置が新規に作られる場合はサーバ装置のI/Fとクライアント装置へ公開するI/Fは一致するが、サービスを実行するサーバ装置が既存の外部システムであったりすると、クライアント側が利用しやすいようにクライアント装置に公開するI/Fはサーバ装置のI/Fとは異なるI/Fに設計される場合がある。
このような場合においても、サービス間連携と同様に、従来技術では異なるI/F間(クライアント装置への公開I/Fとサーバ装置のI/F)をつなぐためのメッセージ設計や新規モジュールが必要である。
また、サービス間連携において連携のためのメッセージ設計や新規モジュール開発を不要とすることを主な目的の一つとする。
また、登録されているサービスの実行順を指定するだけでサービス間連携を行うことを主な目的の一つとする。
サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているデータ処理装置であって、
1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信部と、
1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信部と、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理部と、
各共通変数に代入されたデータ値を記憶する共通変数代入値記憶部と、
前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、前記サーバ通信部により前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理部と、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込むサーバ変数処理部とを有することを特徴とする。
図1は、本実施の形態に係る、1つのサービスを接続し公開する方式を示すシステム構成図である。
つまり、クライアント装置100はサービス連携サーバ装置200に対してサービスの提供を要求する。
サービス連携サーバ装置200は、クライアント装置100から利用することができるサービスを提供するサーバ装置である。
サービス連携サーバ装置200は、データ処理装置の例である。
つまり、サービス実行サーバ装置300は、クライアント装置100により要求されたサービスを実行する。
サービス実行サーバ装置300は、サービス実体ともいう。
サービス公開部201は、クライアント装置100から、リクエスト(クライアント要求ともいう)を受信し、クライアント装置100からのリクエストに対するレスポンス(クライアント応答ともいう)を生成し、レスポンスをクライアント装置100に送信する。
サービス公開部201は、クライアント通信部の例となる。
また、後述する共通変数入出力部206とともにクライアント変数処理部の例となる。
共通変数は、クライアント装置100からのリクエストがサービス連携サーバ装置200を介してサービス実行サーバ装置300において処理され、クライアント装置100にレスポンスが返されるまでの間に利用される変数である。
つまり、共通変数は、リクエストの受信からレスポンスの送信までの一連の流れの中で共通的に扱われる変数である。
クライアント装置100からの1リクエスト/レスポンスに専用に用いられる共通変数が生成され、他のリクエスト/レスポンスには影響しない。
共通変数の生成方法については、後述する。
なお、共通変数生成部202は、後述するデータ型管理部203、型マッピング管理部204、サービスI/F管理部205とともに共通変数管理部の例となる。
本実施の形態及び以降の実施の形態において、データ型とは、サービスが扱う情報の型(データ種別)を指している。int型やchar型といったプログラムにおけるデータ型とは異なる。
例えば、品番から品名を検索するサービスの場合、クライアント装置100は「品番」の引数として特定の値を指定してリクエストを発行し、サービス連携サーバ装置200は「品名」の戻り値として特定の値を指定してレスポンスを返す。この場合の「品番」及び「品名」がそれぞれデータ型(データ種別)となる。
つまり、クライアント装置100からのリクエストに含まれる引数のデータ種別、クライアント装置100へのレスポンスに含まれる戻り値のデータ種別、更に、サービス連携サーバ装置200からサービス実行サーバ装置300に送信されるリクエスト(サーバ要求ともいう)に含まれる引数のデータ種別、サービス実行サーバ装置300からサービス連携サーバ装置200に送信されるレスポンス(サーバ応答ともいう)に含まれる戻り値のデータ種別が、本実施の形態及び以降の実施の形態で用いるデータ型である。
このように、データ型管理部203は、上記「品番」、「品名」の他、「価格」、「在庫数」、「納期」、「製造ロット」、「従業員番号」、「従業員氏名」、「所属部署」、「役職」、「センサID」、「温度」、「湿度」、「消費電力」、「重さ」等、サービス連携サーバ装置200が扱うサービスにおける全ての引数、戻り値のデータ種別を管理する。
サービスI/F管理部205はサービス連携サーバ装置200で管理されるサービスのI/Fを管理する機能である。
前述したように、データ型管理部203、型マッピング管理部204、サービスI/F管理部205は、共通変数生成部202とともに共通変数管理部の例となる。
前述したように、共通変数入出力部206は、サービス公開部201とともにクライアント変数処理部の例となる。
また、共通変数入出力部206は、後述するサービス接続部208とともにサーバ変数処理部の例となる。
共通変数代入値記憶部207は、例えば、RAM(Random Access Memory)等のメモリの一部の領域であり、共通変数を格納するために共通変数生成部202により確保された領域である。
サービス接続部208は、クライアント装置100からのリクエスト(クライアント要求)に基づいて、サービス実行サーバ装置300へのリクエスト(サーバ要求)を送信し、また、サービス実行サーバ装置300からレスポンス(サーバ応答)を受信する。
サービス実行サーバ装置300からのレスポンスはクライアント装置100へのレスポンス(クライアント応答)のもとになる。
サービス接続部208は、サーバ通信部の例である。
また、サービス接続部208は、前述のように、共通変数入出力部206とともにサーバ変数処理部の例となる。
サービス公開部201は、クライアント装置100からのリクエスト(クライアント要求)に含まれる引数を共通変数に代入し、サービス接続部208は、共通変数のデータ値を引数とするサービス実行サーバ装置300へのリクエスト(サーバ要求)を生成し、サービス実行サーバ装置300のレスポンス(サーバ応答)に含まれる戻り値を共通変数に代入する。
そして、サービス公開部201は共通変数のデータ値を戻り値とするクライアント装置100へのレスポンス(クライアント応答)を生成し、クライアント装置100に送信する。
クライアント要求は、クライアント用インタフェースに従って生成され、1つ以上の引数がクライアント引数として含まれている。
なお、クライアント用インタフェースでは、クライアント引数ごとにクライアント引数のデータ型(データ種別)が定義されている。
このため、クライアント要求には、定義されているデータ型のクライアント引数が含まれ、各クライアント引数として特定のデータ値が含まれている(例えば、「品番」のクライアント引数として「123456」がクライアント要求に含まれる)。
また、サービス公開部201は、クライアント要求に対する応答としてクライアント応答をクライアント装置100に送信する。
クライアント応答は、クライアント用インタフェースに従って生成され、1つ以上の戻り値がクライアント戻り値として含まれている。
クライアント用インタフェースでは、クライアント戻り値ごとにクライアント戻り値のデータ型(データ種別)が定義されている。
このため、クライアント応答には、定義されているデータ型のクライアント戻り値が含まれ、各クライアント戻り値として特定のデータ値が含まれている(例えば、「品名」のクライアント戻り値として「ABC−XYZ」がクライアント応答に含まれる)。
サーバ要求は、サーバ用インタフェースに従って生成され、1つ以上の引数がサーバ引数として含まれている。
なお、本実施の形態では、クライアント用インタフェースとサーバ用インタフェースは異なっているものとする。
サーバ用インタフェースでは、サーバ引数ごとにサーバ引数のデータ型(データ種別)が定義されている。
このため、サーバ要求には、定義されているデータ型のサーバ引数が含まれ、各サーバ引数として特定のデータ値が含まれている(例えば、「品番」のサーバ引数として「123456」がサーバ要求に含まれる)。
また、サービス接続部208は、サーバ要求に対する応答としてサーバ応答をサービス実行サーバ装置300から受信する。
サーバ応答は、サーバ用インタフェースに従って生成され、1つ以上の戻り値がサーバ戻り値として含まれている。
なお、サーバ用インタフェースでは、サーバ戻り値ごとにサーバ戻り値のデータ型(データ種別)が定義されている。
このため、サーバ応答には、定義されているデータ型のサーバ戻り値が含まれ、各サーバ戻り値として特定のデータ値が含まれている(例えば、「品名」のサーバ戻り値として「ABC−XYZ」がサーバ応答に含まれる)。
また、共通変数生成部202は、クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される共通変数対応付け情報を生成する。
共通変数生成部202は、例えば、クライアント引数Aとサーバ引数Cがデータ型「品番」であればデータ型「品番」に共通変数aを生成し、クライアント戻り値Bとサーバ戻り値Dがデータ型「品名」であればデータ型「品名」に共通変数bを生成する。
そして、共通変数生成部202は、クライアント引数Aとサーバ引数Cと共通変数aとの対応付け及びクライアント戻り値Bとサーバ戻り値Dと共通変数bとの対応付けが示される共通変数対応付け情報を生成する。
更に、共通変数生成部202は、同義なデータ型に対して生成した共通変数に対してクライアント引数及びサーバ引数の対応付けとクライアント戻り値及びサーバ戻り値の対応付けが示される共通変数対応付け情報を生成する。
例えば、クライアント引数Aのデータ型が「品番」であり、サーバ引数Cのデータ型が「シリアルナンバー」であれば、両者は一致していないが同じ内容であるため、同義(置換可能)であり、共通変数生成部202は、クライアント引数Aのデータ型「品番」とサーバ引数Cのデータ型「シリアルナンバー」に共通変数aを生成し、クライアント引数Aとサーバ引数Cと共通変数aとの対応付けが示される共通変数対応付け情報を生成する。
また、共通変数生成部202は、クライアント引数Aのデータ型が「品番」であり、サーバ引数Cのデータ型が「シリアルナンバー」であることを示す情報も生成する。
更に、共通変数入出力部206は、共通変数に代入されたデータ値を共通変数代入値記憶部207から取得し、サービス接続部208に渡す。
サービス接続部208は、共通変数入出力部206から取得したデータ値を、共通変数に対応しているサーバ引数に設定してサーバ用インタフェースに従ってサーバ要求を生成し、サービス実行サーバ装置300に送信する。
前出の例に従えば、共通変数入出力部206はクライアント引数Aのデータ値「123456」を共通変数aに代入して共通変数代入値記憶部207に書き込む、また、共通変数代入値記憶部207から共通変数aの値「123456」を取得し、サーバ引数Cとしてサービス接続部208に渡す。
サービス接続部208は、サーバ引数Cとして「123456」を設定してサーバ要求を生成する。
更に、共通変数入出力部206は、共通変数に代入されているデータ値を共通変数代入値記憶部207から取得し、サービス公開部201に渡す。
サービス公開部201は、共通変数入出力部206から取得したデータ値を、対応しているクライアント戻り値に設定してクライアント用インタフェースに従ってクライアント応答を生成し、クライアント装置100に送信する。
前出の例に従えば、共通変数入出力部206はサーバ戻り値Dのデータ値「ABC−XYZ」を共通変数bに代入して共通変数代入値記憶部207に書き込む。
また、共通変数代入値記憶部207から共通変数bの値「ABC−XYZ」を取得し、クライアント戻り値Bのデータ値としてサービス公開部201に渡す。
サービス公開部201は、クライアント戻り値Bとして「ABC−XYZ」を設定してクライアント応答を生成する。
なお、各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
クライアント装置100ではサービス連携サーバ装置200へリクエストを送信し、結果を得る(F0100)。
サービス公開部201ではクライアント装置100からのリクエスト(クライアント要求)を受信し(F0200)、どのサービスへのリクエストであるかを共通変数生成部202に通知して共通変数の生成を要求し、共通変数生成部202から共通変数への参照を取得する(F0201)。
この共通変数への参照とは、クライアント引数が代入される共通変数(サーバ引数として値を読み出すべき共通変数)とサーバ戻り値が代入される共通変数(クライアント戻り値として値を読み出すべき共通変数)が示される情報であり、共通変数対応付け情報の例である。
つまり、サービス公開部201は、クライアント引数のデータ値を対象となる共通変数の変数名と対応付けて共通変数入出力部206に通知し、共通変数入出力部206がクライアント引数のデータ値を対応する共通変数に代入して共通変数代入値記憶部207に書き込む。
また、サービス公開部201は、サービス接続部208に、クライアント引数の値が代入される共通変数(サーバ引数として値を読み出すべき共通変数)とサーバ戻り値の値が代入される共通変数(クライアント戻り値として値を読み出すべき共通変数)が示される共通変数への参照(共通変数対応付け情報)を通知してサービス実行を要求する。
つまり、サービス公開部201は、サービス接続部208からサービス実行サーバ装置300からのレスポンスを得たとの通知を受け、共通変数入出力部206にサーバ戻り値の値が代入される共通変数(クライアント戻り値として値を読み出すべき共通変数)を通知し、共通変数入出力部206からクライアント戻り値の値を取得し、取得した値を用いてレスポンス(クライアント応答)を生成し、レスポンスをクライアント装置100へ返す。
次に、共通変数生成部202は、得られたマッピングのデータ型一覧から共通変数を生成し、同義なデータ型も記憶しておく(F0302)。
また、共通変数生成部202は、共通変数の参照(共通変数対応付け情報の例)を生成する。
共通変数の参照は、前述したように、クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される情報である。
生成された共通変数の参照は呼び出し元であるサービス公開部201に返される(F0303)。
次に、型マッピング管理部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戻り値)」といった一覧になる。
データ型管理部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)は同義であるというマッピング一覧を生成する。
データ型管理部203ではデータ型の問い合わせを受けると(F0600)、データ型管理部203内で管理しているデータ型から同義(種類が同じ)のデータ型一覧を返す(F0601)。
より具合的には、共通変数入出力部206は、共通変数へのデータ値の代入の場合は、問い合わせ元の情報(サービス公開部201か、サービス接続部208か)、共通変数に代入すべき値、当該値の対応I/F(引数か、戻り値か)を入力する。
また、共通変数からのデータ値の読み出しの場合は、問い合わせ元の情報(サービス公開部201か、サービス接続部208か)、読み出し対象の対応I/F(引数か、戻り値か)を入力する。
次に、共通変数入出力部206は、F0700での共通変数への代入値の有無を判断して、実行すべき処理が入力か出力かを判断する(F0701)。
具体的には、共通変数への代入値を入力している場合は、F0702において入力となる。
一方、共通変数への代入値を入力していない場合は、F0702において出力となる。
問い合わせがサービス公開部201からの入力(クライアントからのリクエスト入力)である場合は、サービス公開部201から入力した値をクライアント引数に対応する共通変数に代入する。
また、問い合わせがサービス接続部208からの入力(サービス実体からのレスポンス取得)である場合は、サービス接続部208から入力した値をサーバ戻り値に対応する共通変数に代入する。
一方、F0702の判断において出力であった場合は、問い合わせ元から入力したI/Fに対応する変数名の共通変数からデータ値を読み出し、問い合わせ元に出力する(F0704)。
問い合わせがサービス接続部208からの出力(サービス実体へのリクエスト取得)である場合は、サービス接続部208から入力したI/Fに対応する変数名の共通変数からデータ値(サーバ引数に相当する)を読み出して、サービス接続部208に出力する。
また、問い合わせがサービス公開部201からの出力(クライアントへのレスポンス取得)である場合は、サービス公開部201から入力したI/Fに対応する変数名の共通変数からデータ値(クライアント戻り値に相当する)を読み出して、サービス公開部201に出力する。
前述したように、サービス接続部208は、サービス公開部201から共通変数の参照を取得しているため、サーバ引数として読み出す値が格納されている共通変数の出力を共通変数入出力部206に通知することができる。また、同様の理由により、後述するサーバ戻り値の代入の際にも、サーバ戻り値の代入対象の共通変数への入力を共通変数入出力部206に通知することができる。
次に、サービス接続部208は、共通変数入出力部206から取得した値を用いてサービス実行サーバ装置300に処理を実行させて結果を得る(F0802)。
つまり、共通変数入出力部206から取得した値をサーバ引数に設定してサービス実行サーバ装置300へのリクエストを生成し、サービス実行サーバ装置300へ送信し、また、サービス実行サーバ装置300からレスポンスを受信する。
次に、サービス接続部208は、サービス実行サーバ装置300から得た結果は共通変数入出力部を用いて共通変数に代入する(F0803)。
つまり、サービス接続部208は、レスポンスに含まれるサーバ戻り値と、当該サーバ戻り値であること(I/F)を共通変数入出力部206に渡し、サーバ戻り値を共通変数に代入させる。
共通変数入出力部206は、サーバ戻り値を対応する共通変数に代入して共通変数代入値記憶部207に書き込む。
また、サービス接続部208は、サービス公開部201にサービス実行サーバ装置300からのレスポンスを得た旨を通知する。
サービス実行サーバ装置300では、サービス連携サーバ装置200からリクエスト(サーバ要求)を受信し、サービス処理を実行して結果を示すレスポンス(サーバ応答)を生成し、レスポンスをサービス連携サーバ装置200に返す(F0900)。
これを用いてクライアント装置100がサービス実行結果を得るまでの動作を説明する。
サービス公開部201は、リクエストを受信し、共通変数生成部202に呼び出されたサービス(リクエストで要求されているサービス)に対応する共通変数を生成するように要求する(S0101)。
型マッピング管理部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)。
ここで、共通変数入出力部206から得られる値は共通変数生成時にサービスI/Fに合わせて同義の型がまとめられているので、リクエストに用いるべき値が得られることになる。
サービス接続部208は、サービスを実行して得られた結果は共通変数入出力部206を用いて共通変数化し(S0119〜S0120)、サービス公開部201へ実行完了を返す(S0121)。
サービス公開部201は共通変数入出力部206から実行結果(クライアント戻り値の値)を取得し(S0122〜S0123)、取得した値からクライアント装置100へのレスポンスを生成し、生成したレスポンスをクライアント装置100に返す(S0124)。
ここで、共通変数入出力部206から得られる値は共通変数生成時にサービスI/Fに合わせて同義の型がまとめられているので、S0115の場合と同様にレスポンスに用いるべき値が得られることになる。
ここで、連携のための内部メッセージ設計というのは、サービス連携サーバ装置がリクエストを受け取ってからサービス実行サーバ装置へ転送するまでと、サービス実行サーバ装置からの処理結果をクライアント装置へレスポンスするまでのデータフォーマットの設計に相当するものである。
インタフェースに合わせて、バイトデータであれば何バイト目から何バイト目までを引数を格納するための領域にするかといった設計が、XML(Extensible Markup Language)データであればどのようなスキーマにするかといった設計が必要になる。
本実施の形態ではインタフェースに合わせて共通変数が生成されるのでこういった設計が不要になる。
任意のクライアントから利用できるサービスを公開する手段と、サービスのI/Fを管理する手段と、情報の種類と相互関係を管理する手段と、I/Fと種類のマッピングを管理する手段と、処理中にその処理において共通的な一時記憶領域を取得する手段と、一時領域へ情報を入出力する手段と、サービス実行サーバ装置への接続手段を備えたサーバを用いてサービスの連携を実行する装置を説明した。
以上の実施の形態1では1種類のサービスをクライアントから実行できるようにサービス連携サーバ装置200で連携するようにしたものであるが、次に複数サービスを連携するような場合の実施の形態を示す。
また、サービス連携サーバ装置200は、サービス実行サーバ装置A301、サービス実行サーバ装置B302に接続されている。
サービス実行サーバ装置A301、サービス実行サーバ装置B302は実施の形態1におけるサービス実行サーバ装置300と同様にサービスを実行するが、各々の内部のサービス処理が異なるものである。
また、サービス実行サーバ装置A301、サービス実行サーバ装置B302それぞれに固有のサーバ用インタフェースが設けられている。
なお、サービス実行サーバ装置A301、サービス実行サーバ装置B302を区別しない場合は、サービス実行サーバ装置300と表記する。
共通変数生成部202は、クライアント装置100からのリクエストにおけるサービス実行と、シナリオ内の各サービス実行のための共通変数を生成する機能である。
シナリオ管理部209は、サービスの実行順序をサービス実行シナリオ(単にシナリオともいう)として管理する機能である。
シナリオ制御部210は、サービスをシナリオに設定された順序で実行する機能である。
シナリオ管理部209とシナリオ制御部210は連携サービス管理部の例である。
なお、シナリオ管理部209は別サーバでも良い。
また、シナリオには実行順序だけでなく実行条件や条件分岐、エラー時に呼び出すサービスの指定などの実行フローが指定されており、判断のための情報はデータ型管理部203で管理されている範囲で指定する。
また、共通変数入出力部206はクライアント変数処理部及びサーバ変数処理部の例であり、サービス接続部208はサーバ通信部及びサーバ変数処理部の例である。
前述のように、サービス実行シナリオには、連携サービスを実現する2以上のサービス実行サーバ装置(連携サービス実行サーバ装置)におけるサービス実行順序が示される。
また、共通変数生成部202は、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ型と、各連携サービス実行サーバ装置300のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ型を解析し、データ型ごとに共通変数を生成する。
そして、サービス接続部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のサーバ用インタフェースのサーバ引数に設定して後続の連携サービス実行サーバ装置へのサーバ要求を生成する。
各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
なお、以下では、各機能の動作については実施の形態1と異なる機能についてのみ説明する。
サービス一覧には、サービスの実行順序が示される。
次に、サービス公開部201は、サービス一覧を共通変数生成部202に渡して共通変数の生成を要求し、共通変数への参照を取得する(F1002)。
共通変数の参照は共通変数対応付け情報の例である。
本実施の形態では、共通変数の参照は、クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される。
つまり、シナリオ管理部209は、複数のシナリオの中からサービス公開部201から通知されたリクエストで要求されている連携サービスを実現するシナリオを選択する。
次に、共通変数生成部202は、得られたマッピングのデータ型一覧から共通変数を生成し、同義なデータ型も記憶しておく(F1202)。
また、生成された共通変数の参照は呼び出し元であるサービス公開部201に返される(F1203)。
本実施の形態では、共通変数生成部202は、サービス一覧に示される各サービスに対して、データ型管理部203、型マッピング管理部204、サービスI/F管理部205を用いて、クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ型と、各連携サービス実行サーバ装置300のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ型を解析し、データ型ごとに共通変数を生成する。
そして、共通変数生成部202は、サービス一覧に示されるサービスの実行順序に従って、共通変数の参照を生成する。
前述したように、具体的には、共通変数生成部202は、クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される共通変数の参照を生成する。
つまり、シナリオ制御部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がサービス実行結果を得るまでの動作を説明する。
実施の形態1と同様なシーケンスとなる部分は簡略化している。
サービス公開部201はシナリオ管理部209から該当するシナリオを取得し(S0201〜S0202)、シナリオ内のサービス一覧を共通変数生成部202に渡して共通変数を生成するように要求する(S0203)。
共通変数生成部202は生成した共通変数への参照をサービス公開部201に返す(S0206:図11のS0111と同様)。
サービス接続部208は、シナリオ制御部210から取得した共通変数の参照に基づき、実行するサービスへリクエストするための値(サーバ引数の値)を共通変数入出力部206から取得し、取得した値を用いてサービス実行サーバ装置A301へリクエストを生成し、サービス実行サーバ装置A301にリクエストを送信して、サービス実行サーバ装置A301からサービスの実行結果を得て、共通変数入出力部206を用いて共通変数に結果(サーバ戻り値)を代入する(S0210:図11のS0115〜S0120と同様)。
シナリオ制御部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を意識することが無くなるため、シナリオに変更が生じた際にもその改修コストを抑えることができる。
以上の実施の形態2では複数サービスを連携するような場合にサービス間を連携するようにしたものであるが、次に連携するサービス間で値の変換が必要となる場合の実施の形態を示す。
変数変換部211による変換は、例えば、トンで表記されている重量値を、キログラム表記に変換するというものである。
変数変換部211は、データ変換部の例である。
また、変数変換部211は、共通変数入出力部206が共通変数代入値記憶部207から取得したデータ値を入力し、当該データ値のデータ形式が、当該データ値がサービス公開部201又はサービス接続部208で用いられる際のデータ形式と一致するか否かを判断し、データ形式が一致しない場合に、当該データ値のデータ形式をサービス公開部201又はサービス接続部208で用いられる際のデータ形式に変換する。
なお、変数変換部211は、共通変数への参照(クライアント装置100のリクエスト受信からクライアント装置100のレスポンス送信までの共通変数の参照)と同義型の情報を有しているため、共通変数ごとに次に引数又は戻り値として用いられる際のデータ形式を判別することができる。
また、共通変数入出力部206はクライアント変数処理部及びサーバ変数処理部の例であり、サービス接続部208は、サーバ通信部及びサーバ変数処理部の例である。
また、シナリオ管理部209及びシナリオ制御部210は連携サービス管理部の例である。
各機能の動作はフローチャートを用いて説明し、各機能を組み合わせた全体の動作はシーケンス図を用いて説明する。
各機能の動作については実施の形態2と異なる機能についてのみ説明する。
変数変換部211では共通変数への入出力を受け付けると(F1400)、対象の共通変数が入出力するデータ型と完全に一致するかで処理が分かれる(F1401)。
変数変換部211は、例えば、トンとキログラムとの間の変換では、データ値を1000倍する、1000分の1倍するという変換を行う。
ここでは実施の形態2の場合と異なり、サービスAの戻り値をサービスBに渡す場合にその型(データ形式)が完全一致しないものとする。
全体の動作の大部分は実施の形態2の場合(図18、図19)と同様であり、共通変数への入出力部分のみ異なるので、これを用いて共通変数への入出力部分の動作を説明する。
共通変数入出力部206が変数変換部211に値の代入を要求すると(S0300)、変数変換部211はその値が共通変数の型(次に読みだされた際に引数又は戻り値として用いるデータ形式)と比較して直接代入可能かチェックする(S0301)。
直接代入可能でなければ共通変数とともに記憶されている同義の型から代入可能な型へ値を変換して代入し(S0302)、共通変数入出力部206へ代入完了を返す。
共通変数入出力部206が変数変換部211に値の参照を要求すると(S0304)、変数変換部211は共通変数の型を参照して値が参照したい型(引数又は戻り値として用いるデータ形式)かチェックする(S0305)。
異なる型であれば共通変数とともに記憶されている同義の型から値を目的の型へ変換し(S0306)、共通変数入出力部206へ変換後の値を返す(S0307)。
また、シナリオの内容は実行順序といった内容でありサービス間のI/Fを意識することが無くなるため、シナリオに変更が生じた際にも実施の形態2の場合と同様にその改修コストを抑えることができる。
つまり、クライアント引数とサーバ引数間でデータ形式が異なる場合やクライアント戻り値とサーバ戻り値でデータ形式が異なる場合に変数変換部211による変換がなされる。
図24は、実施の形態1〜3に示すサービス連携サーバ装置200のハードウェア資源の一例を示す図である。
なお、図24の構成は、あくまでもサービス連携サーバ装置200のハードウェア構成の一例を示すものであり、サービス連携サーバ装置200のハードウェア構成は図24に記載の構成に限らず、他の構成であってもよい。
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などは、出力装置の一例である。
プログラム群923のプログラムは、CPU911がオペレーティングシステム921、ウィンドウシステム922を利用しながら実行する。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
サービス連携サーバ装置200の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりオペレーティングシステム921が起動される。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
すなわち、実施の形態1〜3で説明したフローチャートに示すステップ、手順、処理により、本発明に係るデータ処理方法を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1〜3の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
Claims (14)
- サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているデータ処理装置であって、
1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信部と、
1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信部と、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理部と、
各共通変数に代入されたデータ値を記憶する共通変数代入値記憶部と、
前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、前記サーバ通信部により前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理部と、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込むサーバ変数処理部とを有することを特徴とするデータ処理装置。 - 前記共通変数管理部は、
クライアント引数とサーバ引数と共通変数との対応付け及びクライアント戻り値とサーバ戻り値と共通変数との対応付けが示される共通変数対応付け情報を生成し、
前記クライアント変数処理部は、
前記共通変数対応付け情報に示されるクライアント引数と共通変数との対応付けに基づき、前記クライアント要求の各クライアント引数のデータ値を対応する共通変数に代入し、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるクライアント戻り値と共通変数との対応付けに基づき、対応しているクライアント戻り値に設定し、
前記サーバ変数処理部は、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるサーバ引数と共通変数との対応付けに基づき、対応するサーバ引数に設定し、
前記共通変数対応付け情報に示されるサーバ戻り値と共通変数との対応付けに基づき、前記サーバ応答の各サーバ戻り値のデータ値を対応する共通変数に代入することを特徴とする請求項1に記載のデータ処理装置。 - 前記共通変数管理部は、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、相互に異なるデータ種別であるが相互に置換可能な関係にある2以上の置換可能データ種別が含まれている場合に、置換可能データ種別に対して同じ共通変数を生成し、
置換可能データ種別に対して生成した共通変数に対してクライアント引数とサーバ引数との対応付け及びクライアント戻り値とサーバ戻り値との対応付けが示される共通変数対応付け情報を生成することを特徴とする請求項2に記載のデータ処理装置。 - 前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記共通変数代入値記憶部に格納するデータ値を入力し、
当該データ値のデータ形式が、当該データ値が次に前記共通変数代入値記憶部から読み出されて前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項1〜3のいずれかに記載のデータ処理装置。 - 前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記クライアント変数処理部又は前記サーバ変数処理部が前記共通変数代入値記憶部から取得したデータ値を入力し、
当該データ値のデータ形式が、当該データ値が前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項1〜4のいずれかに記載のデータ処理装置。 - 前記データ処理装置は、
それぞれに固有のサーバ用インタフェースが設けられている複数のサービス実行サーバ装置に接続され、
前記データ処理装置は、更に、
クライアント要求を解析し、前記クライアント要求において要求されているサービスが2以上のサービス実行サーバ装置の連携により実現される連携サービスである場合に、前記連携サービスを実現する2以上の連携サービス実行サーバ装置におけるサービス実行順序が示されるサービス実行シナリオを選択する連携サービス管理部を有し、
前記共通変数管理部は、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と、各連携サービス実行サーバ装置のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに共通変数を生成し、
前記クライアント変数処理部は、
前記サービス実行シナリオのサービス実行順序において最後の順序の連携サービス実行サーバ装置からのサーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成し、
前記サーバ変数処理部は、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記サービス実行順序において最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースに従って最初の順序の連携サービス実行サーバ装置へのサーバ要求を生成し、
最後の順序の連携サービス実行サーバ装置からのサーバ応答まで、前記サーバ通信部がサーバ応答を受信する度に、受信したサーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶部に書き込み、共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記サービス実行順序において後続の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して後続の連携サービス実行サーバ装置のサーバ用インタフェースに従って後続の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項1〜5のいずれかに記載のデータ処理装置。 - 前記連携サービス管理部は、
前記サーバ通信部がサーバ応答を受信する度に、前記サーバ変数処理部に、前記サービス実行順序において後続の連携サービス実行サーバ装置を通知し、
前記サーバ変数処理部は、
前記共通変数代入値記憶部から取得したデータ値を、前記連携サービス管理部により通知された後続の連携サービス実行サーバ装置のサーバ用インタフェースのサーバ引数に設定して後続の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項6に記載のデータ処理装置。 - 前記共通変数管理部は、
クライアント引数と最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付け、クライアント戻り値と最後の順序の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付け及び各連携サービス実行サーバ装置のサーバ戻り値と後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けが示される共通変数対応付け情報を生成し、
前記クライアント変数処理部は、
前記共通変数対応付け情報に示されるクライアント引数と共通変数との対応付けに基づき、前記クライアント要求の各クライアント引数のデータ値を対応する共通変数に代入し、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示されるクライアント戻り値と共通変数との対応付けに基づき、対応しているクライアント戻り値に設定し、
前記サーバ変数処理部は、
前記クライアント変数処理部により共通変数に代入されたデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示される最初の順序の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けに基づき、最初の順序の連携サービス実行サーバ装置のサーバ用インタフェースにおいて対応しているサーバ引数に設定し、
前記サーバ通信部がサーバ応答を受信する度に、
前記共通変数対応付け情報に示される前記サーバ応答の送信元の連携サービス実行サーバ装置のサーバ戻り値と共通変数との対応付けに基づき、前記サーバ応答の各サーバ戻り値のデータ値を対応する共通変数に代入し、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記共通変数対応付け情報に示される後続の連携サービス実行サーバ装置のサーバ引数と共通変数との対応付けに基づき、後続の連携サービス実行サーバ装置のサーバ用インタフェースにおいて対応しているサーバ引数に設定することを特徴とする請求項6又は7に記載のデータ処理装置。 - 前記共通変数管理部は、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と各連携サービス実行サーバ装置のサーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、相互に異なるデータ種別であるが相互に置換可能な関係にある2以上の置換可能データ種別が含まれている場合に、置換可能データ種別に対して同じ共通変数を生成し、
置換可能データ種別に対して生成した共通変数に対してクライアント引数とサーバ引数との対応付け、クライアント戻り値とサーバ戻り値との対応付け及びサーバ戻り値とサーバ引数との対応付けが示される共通変数対応付け情報を生成することを特徴とする請求項8に記載のデータ処理装置。 - 前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記共通変数代入値記憶部に格納するデータ値を入力し、
当該データ値のデータ形式が、当該データ値が次に前記共通変数代入値記憶部から読み出されて前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項6〜9のいずれかに記載のデータ処理装置。 - 前記データ処理装置は、更に、
前記クライアント変数処理部又は前記サーバ変数処理部から、前記クライアント変数処理部又は前記サーバ変数処理部が前記共通変数代入値記憶部から取得したデータ値を入力し、
当該データ値のデータ形式が、当該データ値が前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式と一致するか否かを判断し、
データ形式が一致しない場合に、前記データ値のデータ形式を前記クライアント変数処理部又は前記サーバ変数処理部で用いられる際のデータ形式に変換するデータ変換部を有することを特徴とする請求項6〜10のいずれかに記載のデータ処理装置。 - 前記連携サービス管理部は、
特定の連携サービス実行サーバ装置からのサーバ応答の特定のサーバ戻り値のデータ値により、次のサーバ要求の送信先が2以上の連携サービス実行サーバ装置に分岐するサービス実行シナリオを選択する場合があり、
前記サーバ通信部により受信されたサーバ応答のサーバ戻り値のデータ値が前記サービス実行シナリオにおいてサーバ要求の送信先の分岐が生じるデータ値である場合に、当該データ値に基づき、2以上の連携サービス実行サーバ装置の中から分岐先の連携サービス実行サーバ装置を選択し、
前記サーバ変数処理部は、
共通変数に代入されているデータ値を前記共通変数代入値記憶部から取得し、取得したデータ値を、前記連携サービス管理部により選択された分岐先の連携サービス実行サーバ装置のサーバ用インタフェースにおいて前記共通変数に対応しているサーバ引数に設定して分岐先の連携サービス実行サーバ装置へのサーバ要求を生成することを特徴とする請求項6〜11のいずれかに記載のデータ処理装置。 - サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているコンピュータが行うデータ処理方法であって、
1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記コンピュータが前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記コンピュータが前記クライアント装置に送信するクライント通信ステップと、
1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記コンピュータが前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記コンピュータが前記サービス実行サーバ装置から受信するサーバ通信ステップと、
前記コンピュータが、前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理ステップと、
前記コンピュータが、各共通変数に代入されたデータ値を所定の共通変数代入値記憶領域に記憶する共通変数代入値記憶ステップと、
前記コンピュータが、前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込み、前記サーバ通信ステップにより前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理ステップと、
前記コンピュータが、前記クライアント変数処理ステップにより共通変数に代入されたデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込むサーバ変数処理ステップとを有することを特徴とするデータ処理方法。 - サービスの提供を要求するクライアント装置と、前記クライアント装置により要求されたサービスを実行するサービス実行サーバ装置に接続されているコンピュータに、
1つ以上の引数と1つ以上の戻り値がクライアント引数及びクライアント戻り値として指定され、クライアント引数ごとにクライアント引数のデータ種別が定義され、クライアント戻り値ごとにクライアント戻り値のデータ種別が定義されているクライアント用インタフェースに従って生成され各クライアント引数に特定のデータ値が設定されているクライアント要求を前記クライアント装置から受信し、前記クライアント用インタフェースに従って生成され各クライアント戻り値に特定のデータ値が設定されているクライアント応答を前記クライアント装置に送信するクライント通信ステップと、
1つ以上の引数と1つ以上の戻り値がサーバ引数及びサーバ戻り値として指定され、サーバ引数ごとにサーバ引数のデータ種別が定義され、サーバ戻り値ごとにサーバ戻り値のデータ種別が定義されているサーバ用インタフェースに従って生成され各サーバ引数に特定のデータ値が設定されているサーバ要求を前記サービス実行サーバ装置に送信し、前記サーバ用インタフェースに従って生成され各サーバ戻り値に特定のデータ値が設定されているサーバ応答を前記サービス実行サーバ装置から受信するサーバ通信ステップと、
前記クライアント用インタフェースの各クライアント引数及び各クライアント戻り値に対して定義されているデータ種別と前記サーバ用インタフェースの各サーバ引数及び各サーバ戻り値に対して定義されているデータ種別を解析し、データ種別ごとに、共通するデータ種別に対して共通に用いられる共通変数を生成する共通変数管理ステップと、
各共通変数に代入されたデータ値を所定の共通変数代入値記憶領域に記憶する共通変数代入値記憶ステップと、
前記クライアント要求の各クライアント引数のデータ値を各クライアント引数に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込み、前記サーバ通信ステップにより前記サーバ応答が受信された後に、共通変数に代入されているデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているクライアント戻り値に設定して前記クライアント用インタフェースに従ってクライアント応答を生成するクライアント変数処理ステップと、
前記クライアント変数処理ステップにより共通変数に代入されたデータ値を前記共通変数代入値記憶領域から取得し、取得したデータ値を、前記共通変数に対応しているサーバ引数に設定して前記サーバ用インタフェースに従ってサーバ要求を生成し、前記サーバ応答の各サーバ戻り値のデータ値を各サーバ戻り値に対応する共通変数に代入して前記共通変数代入値記憶領域に書き込むサーバ変数処理ステップとを実行させることを特徴とするプログラム。
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)
| 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)
| 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 | 三菱電機株式会社 | サービス接続システム及びサービス接続方法 |
-
2010
- 2010-05-26 JP JP2010120301A patent/JP5404528B2/ja not_active Expired - Fee Related
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 |