説明

データ処理装置、データ処理装置のデータ処理方法、データ処理プログラム、データ処理要求装置、データ処理要求装置のデータ処理要求方法、データ処理要求プログラム、データ処理システムおよびデータ処理システムのデータ処理方法

【課題】ネットワーク負荷を高めないまま、サービスリクエスタ200の様々な要望に対応できるようにすることを目的とする。
【解決手段】サービスプロバイダ300のリクエスト受信部311は、データ処理の動作を指定するリクエストパラメータとデータ処理により得られるデータを処理する処理ロジックとを含んだリクエスト110をサービスリクエスタ200から受信する。データ処理部321は、リクエスト110に含まれるリクエストパラメータに基づいて所定のデータ処理を実行し、データ処理を実行して得られた処理結果データを出力する。処理ロジック起動部322は、処理結果データに対してリクエスト110に含まれる処理ロジックを実行し、処理ロジックを実行して得られた後処理データを出力する。レスポンス送信部314は、後処理データを含んだレスポンス120をサービスリクエスタ200へ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、ネットワークを介して要求されたデータ処理を行うデータ処理装置、データ処理装置のデータ処理方法、データ処理プログラム、データ処理要求装置、データ処理要求装置のデータ処理要求方法、データ処理要求プログラム、データ処理システムおよびデータ処理システムのデータ処理方法に関するものである。
【背景技術】
【0002】
従来のサービス要求応答システムにおいて、サービスリクエスタは、サービスプロバイダに対するデータ処理のリクエストにリクエストパラメータを指定できる。リクエストパラメータとは、データ処理の対象/検索キー/動作オプションを指定するものである(例えば、特許文献1)。
サービスリクエスタは、リクエストパラメータに自分が望む指定の指定値を設定して、そのリクエストパラメータを含めてリクエストをサービスプロバイダに送信する。
サービスプロバイダは、リクエストを受信するとリクエスト中のリクエストパラメータに従ってデータ処理を実行し、その実行結果をレスポンスとしてサービスリクエスタに送信する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2003−531412号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のサービス要求応答システムは、リクエストパラメータのみでデータ処理を制御しているため、以下の3つの課題を有する。
1番目の課題は、サービスリクエスタが望むデータ加工に対応するリクエストパラメータをサービスプロバイダに定義していない場合である。この場合、サービスリクエスタは、自分でデータ加工する必要があり、その加工のために必要なデータ全てをサービスプロバイダから送信してもらう必要がある。これでは、ネットワーク上にデータサイズが大きいレスポンスが流れて、ネットワーク負荷を高めてしまう。
2番目の課題は、サービスリクエスタが望むデータ加工に対応するリクエストパラメータをサービスプロバイダに定義する場合である。この場合、サービスリクエスタによってリクエストパラメータは様々に異なるので、全てのサービスリクエスタの要望に対応させるにはサービスプロバイダに定義するリクエストパラメータが膨大で複雑になってしまう。
3番目の課題は、サービスリクエスタが望むデータ加工に対応するリクエストパラメータをサービスプロバイダに追加し続ける場合である。この場合、サービスリクエスタの要望は時間とともに変化するので、リクエストパラメータが常に追加または変更され続け、サービスプロバイダを保守するコストが膨大になってしまう。
【0005】
本発明は、例えば、ネットワーク負荷を高めないまま、サービスリクエスタの様々な要望に対応できるようにすることを目的とする。
【課題を解決するための手段】
【0006】
本発明のデータ処理装置は、所定のデータ処理を実行するデータ処理装置であって、
前記データ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを含んだデータをデータ処理要求としてデータ処理要求装置から受信するデータ処理要求受信部と、
前記データ処理要求受信部により受信されたデータ処理要求に含まれる処理パラメータに基づいて前記データ処理を実行し、前記データ処理を実行して得られたデータを処理結果データとして出力するデータ処理部と、
前記データ処理部により出力された処理結果データに対して前記データ処理要求に含まれる後処理プログラムを実行し、前記後処理プログラムを実行して得られたデータを後処理データとして出力する後処理プログラム実行部と、
前記後処理プログラム実行部により出力された後処理データを含んだデータをデータ処理応答として前記データ処理要求装置へ送信するデータ処理応答送信部とを備える。
【発明の効果】
【0007】
本発明によれば、例えば、サービスリクエスタ(データ処理要求装置)からサービスプロバイダ(データ処理装置)に後処理プログラムを送信することにより、ネットワーク負荷を高めないまま、サービスリクエスタの様々な要望に対応することができる。
【図面の簡単な説明】
【0008】
【図1】実施の形態1におけるサービス要求応答システム100の概要図。
【図2】実施の形態1におけるサービスリクエスタ200の機能構成図。
【図3】実施の形態1におけるサービスプロバイダ300の機能構成図。
【図4】実施の形態1におけるサービスリクエスタ200の動作を示すフローチャート。
【図5】実施の形態1におけるサービスプロバイダ300のサービスコンテナ310の動作を示すフローチャート。
【図6】実施の形態1におけるサービス実装部320の動作を示すフローチャート。
【図7】実施の形態1におけるサービスリクエスタ200およびサービスプロバイダ300のハードウェア資源の一例を示す図。
【図8】実施の形態2におけるサービスプロバイダ300の機能構成図。
【図9】実施の形態2におけるサービスコンテナ310の動作を示すフローチャート。
【図10】実施の形態3におけるサービスプロバイダ300の機能構成図。
【図11】実施の形態3におけるサービスコンテナ310の動作を示すフローチャート。
【発明を実施するための形態】
【0009】
実施の形態1.
サービスリクエスタが所定のデータ処理を行うサービスプロバイダに対してデータ処理の動作を指定するパラメータとデータ処理により得られる処理結果を処理する処理ロジックとを指定するサービス要求応答システムの形態について説明する。
【0010】
図1は、実施の形態1におけるサービス要求応答システム100の概要図である。
実施の形態1におけるサービス要求応答システム100の概要について、図1に基づいて説明する。
【0011】
サービス要求応答システム100(データ処理システムの一例)は、サービスリクエスタ200とサービスプロバイダ300とを有する。
【0012】
サービスリクエスタ200とサービスプロバイダ300は、ネットワーク101に接続してデータ通信を行う装置である。インターネットに接続するパーソナルコンピュータはサービスリクエスタ200の一例であり、WEBサーバはサービスプロバイダ300の一例である。
【0013】
サービスリクエスタ200は、リクエストパラメータと処理ロジックとを含んだリクエスト110をサービスプロバイダ300へ送信する。
サービスプロバイダ300は、リクエスト110を受信し、受信したリクエスト110に含まれるリクエストパラメータに基づいて所定のデータ処理(サービス)を行う。
さらに、サービスプロバイダ300は、データ処理により得られたデータに対してリクエスト110に含まれる処理ロジックを実行し、処理ロジックの実行により得られたデータを含んだレスポンス120をサービスリクエスタ200へ送信する。
【0014】
リクエスト110に含まれるリクエストパラメータは、サービスプロバイダ300のデータ処理の動作を指定するデータである。
リクエスト110に含まれる処理ロジックは、データ処理により得られるデータを処理する後処理プログラムである。例えば、処理ロジックはインタプリタ型言語(スクリプト言語)で記述されたプログラムのソースコード(ソースプログラム)である。以下、JavaScript(登録商標)、Ruby、Groovy、Scalaなどの言語で記述されたソースプログラムを処理ロジックとして使用するものとする。但し、処理ロジックはコンパイルされたオブジェクトコードであっても構わない。
【0015】
次に、サービスリクエスタ200とサービスプロバイダ300の機能構成について説明する。
【0016】
図2は、実施の形態1におけるサービスリクエスタ200の機能構成図である。
実施の形態1におけるサービスリクエスタ200の機能構成について、図2に基づいて説明する。
【0017】
サービスリクエスタ200(データ処理要求装置の一例)は、リクエスト送信部210、レスポンス受信部220、リクエストパラメータ格納部231、処理ロジック格納部232および後処理データ記憶部233を備える。
【0018】
リクエスト送信部210(データ処理要求送信部の一例)は、サービスプロバイダ300のデータ処理(サービス)の動作を指定するリクエストパラメータ(処理パラメータ)をリクエストパラメータ格納部231から入力する。
リクエスト送信部210は、サービスプロバイダ300のデータ処理により得られるデータを処理する処理ロジック(後処理プログラム)を処理ロジック格納部232から入力する。
リクエスト送信部210は、入力したリクエストパラメータと処理ロジックとを含んだデータをリクエスト110(データ処理要求)として生成し、生成したリクエスト110を送信する。
【0019】
レスポンス受信部220(データ処理応答受信部の一例)は、サービスプロバイダ300からレスポンス120(データ処理応答)を受信し、受信したレスポンス120に含まれる後処理データを後処理データ記憶部233に記憶する。
【0020】
リクエストパラメータ格納部231は、リクエスト110に含めるリクエストパラメータを記憶する。
【0021】
処理ロジック格納部232は、リクエスト110に含める処理ロジックを記憶する。
【0022】
後処理データ記憶部233は、レスポンス120に含まれる後処理データを記憶する。
【0023】
図3は、実施の形態1におけるサービスプロバイダ300の機能構成図である。
実施の形態1におけるサービスプロバイダ300の機能構成について、図3に基づいて説明する。
【0024】
サービスプロバイダ300(データ処理装置の一例)は、サービスコンテナ310、サービス実装部320、リクエストパラメータ格納部331、処理ロジック格納部332、レスポンス格納部333およびデータリソース340を備える。
【0025】
サービス実装部320は、図3では1つであるがデータ処理(サービス)の数だけ存在する。
【0026】
サービスコンテナ310は、リクエスト受信部311、リクエストパラメータ抽出部312、処理ロジック抽出部313およびレスポンス送信部314を備える。
【0027】
リクエスト受信部311(データ処理要求受信部の一例)は、リクエスト110(データ処理要求)をサービスリクエスタ200から受信する。
【0028】
リクエストパラメータ抽出部312は、リクエスト110からリクエストパラメータ(処理パラメータ)を抽出し、抽出したリクエストパラメータをリクエストパラメータ格納部331に記憶する。
【0029】
処理ロジック抽出部313は、リクエスト110から処理ロジック(後処理プログラム)を抽出し、抽出した処理ロジックを処理ロジック格納部332に記憶する。
【0030】
レスポンス送信部314(データ処理応答送信部の一例)は、サービス実装部320の処理ロジック起動部322により記憶されたレスポンス120をレスポンス格納部333から入力し、入力したレスポンス120をサービスリクエスタ200へ送信する。
【0031】
サービス実装部320は、データ処理部321と処理ロジック起動部322とを備える。
【0032】
データ処理部321は、リクエストパラメータ格納部331からリクエストパラメータを入力し、入力したリクエストパラメータに基づいて所定のデータ処理(サービス)を実行する。
データ処理部321は、データ処理を実行して得られたデータ(2次データ)を処理結果データとして出力する。
データ処理部321は、処理ロジック起動部322により出力される後処理データを含んだデータをレスポンス120としてレスポンス格納部333に記憶する。
【0033】
処理ロジック起動部322(後処理プログラム実行部の一例)は、処理ロジック格納部332から処理ロジックを入力する。
処理ロジック起動部322は、データ処理部321により出力された処理結果データに対して処理ロジックを実行する。
処理ロジック起動部322は、処理ロジックを実行して得られたデータ(3次データ)を後処理データとして出力する。
【0034】
リクエストパラメータ格納部331は、リクエスト110に含まれるリクエストパラメータを記憶する。
【0035】
処理ロジック格納部332は、リクエスト110に含まれる処理ロジックを記憶する。
【0036】
レスポンス格納部333は、レスポンス120に含める後処理データを記憶する。
【0037】
データリソース340は、サービスプロバイダ300の所定のデータ処理で処理対象とする1次データを記憶するデータベース装置である。
【0038】
次に、サービスリクエスタ200とサービスプロバイダ300の動作について説明する。
以下の説明において、サービスプロバイダ300は、所定のデータ処理(サービス)として「データ検索」を実行する。但し、サービスプロバイダ300の所定のデータ処理はデータ検索以外のデータ処理(例えば、特定の計算処理、データ解析処理)であっても構わない。
【0039】
図4は、実施の形態1におけるサービスリクエスタ200の動作を示すフローチャートである。
実施の形態1におけるサービスリクエスタ200の動作について、図4に基づいて説明する。
【0040】
S110において、リクエスト送信部210は、リクエストパラメータ格納部231からリクエストパラメータを入力する。
リクエストパラメータは、利用者により生成され、リクエストパラメータ格納部231に予め記憶されているものとする。
リクエストパラメータには、検索対象のデータ、検索キー、検索結果に対する加工・編集オプション(例えば、ソート方法)など、データ検索の動作を指定する情報が設定される。
S110の後、S120に進む。
【0041】
S120において、リクエスト送信部210は、処理ロジック格納部232から処理ロジックを入力する。
処理ロジックは、利用者により生成され、処理ロジック格納部232に予め記憶されているものとする。
例えば、処理ロジックは、検索結果に含まれる情報から特定の条件に該当する情報を抽出し、また、検索結果に含まれる情報を解析するスクリプトである。具体例として、処理ロジックは、検索結果に含まれる多数の商品情報から価格が高い順に上位5つの商品の商品情報を抽出する。また、処理ロジックは、検索結果に含まれる多数の商品情報について価格の統計値(合計金額、平均金額)を算出する。
S120の後、S130に進む。
【0042】
S130(データ処理要求送信ステップの一例)において、リクエスト送信部210は、リクエストパラメータと処理ロジックとデータ処理種別とを含んだリクエスト110を生成し、生成したリクエスト110をサービスプロバイダ300へ送信する。
データ処理種別は、サービスプロバイダ300が行う複数のデータ処理(サービス)のうち特定のデータ処理を識別する情報であり、利用者により指定される。
S130の後、S140に進む。
【0043】
S140において、レスポンス受信部220は、リクエスト110に対するレスポンス120がサービスプロバイダ300から送信されるのを待つ。
S140の後、S150に進む。
【0044】
S150(データ処理応答受信ステップ)において、レスポンス受信部220は、サービスプロバイダ300から送信されたレスポンス120を受信し、受信したレスポンス120から後処理データを抽出する。後処理データは処理ロジックにより得られたデータである。
レスポンス受信部220は、抽出した後処理データを後処理データ記憶部233に記憶し、また、表示装置に表示する。
S150により、サービスリクエスタ200の動作は終了する。
【0045】
図5は、実施の形態1におけるサービスプロバイダ300のサービスコンテナ310の動作を示すフローチャートである。
実施の形態1におけるサービスプロバイダ300のサービスコンテナ310の動作について、図5に基づいて説明する。
【0046】
S201において、リクエスト受信部311は、サービスリクエスタ200からリクエスト110が送信されるのを待つ。
S201の後、S202に進む。
【0047】
S202(データ処理要求受信ステップ)において、リクエスト受信部311は、サービスリクエスタ200から送信されたリクエスト110を受信する。
S202の後、S210に進む。
【0048】
S210において、リクエスト受信部311は、リクエスト110を引数にしてリクエストパラメータ抽出部312を呼び出す。
リクエストパラメータ抽出部312は、リクエスト110からリクエストパラメータを抽出し、抽出したリクエストパラメータをリクエストパラメータ格納部331に記憶する。
リクエストパラメータ抽出部312は、リクエストパラメータ抽出部312に処理完了を通知する。
S210の後、S220に進む。
【0049】
S220において、リクエスト受信部311は、リクエスト110を引数にして処理ロジック抽出部313を呼び出す。
処理ロジック抽出部313は、リクエスト110から処理ロジックを抽出し、抽出した処理ロジックを処理ロジック格納部332に記憶する。
処理ロジック抽出部313は、リクエスト受信部311に処理完了を通知する。
S220の後、S230に進む。
【0050】
S230において、リクエスト受信部311は、リクエスト110からデータ処理種別を抽出し、抽出したデータ処理種別で識別されるデータ処理に対応するサービス実装部320を起動する。
S230の後、S231に進む。
【0051】
S231において、リクエスト受信部311は、サービス実装部320の処理完了を待つ。
S231の後、S240に進む。
【0052】
S240(データ処理応答送信ステップの一例)において、リクエスト受信部311は、サービス実装部320の処理完了を受けてレスポンス送信部314を呼び出す。
レスポンス送信部314は、サービス実装部320により生成されたレスポンス120をレスポンス格納部333から入力し、入力したレスポンス120をサービスリクエスタ200へ送信する。
S240の後、S201に戻る。
【0053】
図6は、実施の形態1におけるサービス実装部320の動作を示すフローチャートである。
上記のS230(図5参照)で起動されたサービス実装部320の動作について、図6に基づいて説明する。
【0054】
S311において、データ処理部321は、リクエストパラメータ格納部331からリクエストパラメータを入力する。
S311の後、S320に進む。
【0055】
S312(データ処理ステップの一例)において、データ処理部321は、リクエストパラメータに基づいてデータ処理(データ検索)を行う。
データ処理として、データ処理部321は、データリソース340を検索して検索条件に合うデータ項目をデータリソース340から抽出し、抽出したデータ項目をリクエストパラメータに基づいて加工・編集する。
実施の形態において、データ処理により得られたデータを「処理結果データ」という。
【0056】
例えば、リクエストパラメータには、検索対象のデータとして「書籍データ」が指定され、検索キーとして「ABC」が指定され、加工・編集オプションとして「名前順のソート」が指定されているものとする。
また、データリソース340には書籍データを含む複数種類のデータが記憶されているものとする。
データ処理部321は、データリソース340に記憶されるデータのうち「書籍データ」を対象にして「ABC」をタイトルに含む書籍の書籍情報を検索する。
データ処理部321は、ヒットした書籍情報を「名前順」にソートして処理結果データを生成する。
【0057】
S312の後、S313に進む。
【0058】
S313において、データ処理部321は、処理結果データを引数にして処理ロジック起動部322を呼び出す。
S313の後、S321に進む。
【0059】
S321において、処理ロジック起動部322は、処理ロジック格納部332から処理ロジックを入力する。
S321の後、S322に進む。
【0060】
S322(後処理プログラム実行ステップの一例)において、処理ロジック起動部322は、処理結果データを入力データにして処理ロジックを実行する。
実施の形態において、処理ロジックを実行して得られたデータを「後処理データ」という。
【0061】
例えば、処理ロジックが、価格の高い順に上位5つの商品の商品名を抽出するスクリプトであると仮定する。
この場合、処理ロジック起動部322は、処理ロジックを実行して、処理結果データに含まれる多数の商品情報(書籍情報)の情報から価格が高い上位5つの商品の商品情報を抽出する。抽出した商品情報で構成されるデータが後処理データである。
【0062】
S322の後、S323に進む。
【0063】
S323において、処理ロジック起動部322は、後処理データをデータ処理部321に出力する。
S323の後、S331に進む。
【0064】
S331において、データ処理部321は、後処理データを含んだレスポンス120を生成し、生成したレスポンス120をレスポンス格納部333に記憶する。
S331の後、S332に進む。
【0065】
S332において、データ処理部321は、サービスコンテナ310のリクエスト受信部311に処理完了を通知する。
S332により、サービス実装部320の動作は終了する。
【0066】
図7は、実施の形態1におけるサービスリクエスタ200およびサービスプロバイダ300のハードウェア資源の一例を示す図である。
図7において、サービスリクエスタ200およびサービスプロバイダ300は、CPU911(Central・Processing・Unit)(マイクロプロセッサ、マイクロコンピュータともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、ドライブ装置904、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置904は、FD(Flexible・Disk・Drive)、CD(Compact Disc)、DVD(Digital・Versatile・Disc)などの記憶媒体を読み書きする装置である。
【0067】
通信ボード915は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
【0068】
磁気ディスク装置920には、OS921(オペレーティングシステム)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
【0069】
プログラム群923には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、CPU911により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【0070】
ファイル群924には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
【0071】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
【0072】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【0073】
実施の形態1において、例えば、以下のようなサービス要求応答システム100について説明した。
【0074】
サービスリクエスタ200はサービスプロバイダ300に処理ロジックを送信し、サービスプロバイダ300は受信した処理ロジックを実行する。
【0075】
これにより、ネットワーク負荷を小さくすることができる。処理ロジックを実行するサービスプロバイダ300は、処理結果データよりデータ量が少ない後処理データをサービスリクエスタ200へ応答するからである。
また、サービスプロバイダ300は、サービスリクエスタ200の様々な要望に対応することができる。サービスプロバイダ300は、サービスリクエスタ200の要望に対応する処理ロジックをサービスリクエスタ200から受信するためである。
【0076】
即ち、サービス要求応答システム100は以下のような効果を奏する。
第1に、サービスリクエスタ200が必要とするデータだけがレスポンス120として送信されるので、ネットワーク負荷を高めない。
第2に、サービスリクエスタ200が望むデータ加工の処理ロジックをリクエスト110に含めるので、リクエストパラメータを単純化することができる。
第3に、サービスプロバイダ300は受信した処理ロジックを動的に実行するので、サービスプロバイダ300は処理ロジックを事前に決定する必要がない。つまり、サービスプロバイダ300の変更が不要である。
【0077】
実施の形態2.
サービスプロバイダ300が処理ロジックの実行前に処理ロジックの文法を検査する形態について説明する。
以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項は実施の形態1と同様である。
【0078】
図8は、実施の形態2におけるサービスプロバイダ300の機能構成図である。
実施の形態2におけるサービスプロバイダ300の機能構成について、図8に基づいて説明する。
【0079】
サービスプロバイダ300のサービスコンテナ310は、実施の形態1(図3参照)で説明した処理ロジック抽出部313の代わりに、処理ロジック抽出・検査部315と文法検査コード格納部316とを備える。
【0080】
処理ロジック抽出・検査部315(後処理プログラム検査部の一例)は、リクエスト110(データ処理要求)に含まれる処理ロジック(後処理プログラム)が所定の実行要件を満たす有効プログラムであるか否かを所定の検査プログラム(文法検査コード、試験コード)を用いて判定する。
有効プログラムとは、コーディングのバグが無く実行しても異常終了しない実行可能なプログラムのことである。
【0081】
具体的に、リクエスト110は所定のプログラミング言語(インタプリタ型言語、スクリプト言語)で記述されたソースプログラム(スクリプト)を処理ロジックとして含み、処理ロジック抽出・検査部315は、処理ロジックが所定のプログラム文法に従って記述された有効プログラムであるか否かを判定する。
【0082】
処理ロジック起動部322(後処理プログラム実行部の一例)は、処理ロジック抽出・検査部315により処理ロジックが有効プログラムであると判定された場合に処理ロジックを実行して後処理データを出力し、処理ロジック抽出・検査部315により処理ロジックが有効プログラムでないと判定された場合に処理ロジックを実行しない。
【0083】
レスポンス送信部314(データ処理応答送信部の一例)は、処理ロジック起動部322が処理ロジックを実行した場合に後処理データを含んだレスポンス120(データ処理応答)を送信し、処理ロジック起動部322が処理ロジックを実行しなかった場合に異常終了を示すレスポンス120(異常終了通知)を送信する。
【0084】
文法検査コード格納部316は、処理ロジックを記述する言語として定められた所定のプログラミング言語に対応する文法検査コードを予め記憶する。
文法検査コードは、処理ロジックを構文解析および字句解析して処理ロジックの記述が所定のプログラミング言語の記述規則(プログラム文法)に従っているか否かを判定するプログラムである。
【0085】
図9は、実施の形態2におけるサービスコンテナ310の動作を示すフローチャートである。
実施の形態2におけるサービスコンテナ310の動作について、図9に基づいて説明する。
【0086】
サービスコンテナ310は、実施の形態1で説明した処理(図5参照)に加えて、S250、S251およびS241を実行する。また、S220の代わりにS221を実行する。
以下、S250、S251、S221およびS241について主に説明する。
【0087】
S250において、リクエスト受信部311は、リクエスト110を引数にして処理ロジック抽出・検査部315を呼び出す。
処理ロジック抽出・検査部315は、リクエスト110から処理ロジックを抽出し、文法検査コード格納部316から文法検索コードを入力する。
処理ロジック抽出・検査部315は、処理ロジックを入力データにして文法検査コードを実行して処理ロジックのプログラム文法を検査する。
文法検査コードを実行することにより、「検査合格」または「検査不合格」を示す検査結果が得られる。「検査合格」は処理ロジックが所定のプログラム文法に従って記述された有効プログラムであることを意味し、「検査不合格」は処理ロジックが所定のプログラム文法に従って記述されていない無効プログラムであることを意味する。
S250の後、S251に進む。
【0088】
S251において、処理ロジック抽出・検査部315は、文法検査コードの実行により得られた処理ロジックの検査結果を判定する。
処理ロジックの検査結果が「検査合格」を示す場合(YES)、S221に進む。
処理ロジックの検査結果が「検査不合格」を示す場合(NO)、S241に進む。
【0089】
S221において、処理ロジック抽出・検査部315は、処理ロジックを処理ロジック格納部332に記憶し、リクエスト受信部311に処理完了を通知する。
S221の後、S230に進む。
【0090】
S241において、処理ロジック抽出・検査部315は、リクエスト受信部311に異常完了を通知する。
リクエスト受信部311は、異常完了を通知してレスポンス送信部314を呼び出す。
レスポンス送信部314は、リクエストエラー(処理ロジックの文法エラー)を示すレスポンス120を生成し、生成したレスポンス120をサービスリクエスタ200へ送信する。
S241の後、S201に戻る。
【0091】
実施の形態2において、例えば、以下のようなサービス要求応答システム100について説明した。
【0092】
サービスプロバイダ300は、受信した処理ロジックがプログラム文法に則っているか否かを検査する。
サービスプロバイダ300は、受信した処理ロジックがプログラム文法に則っていなければその処理ロジックを実行せずにレスポンス120を送信する。
【0093】
これにより、サービスプロバイダ300が文法に則っていない処理ロジックを実行して異常終了してしまうことを防止し、サービスプロバイダ300の動作を安全に継続させることができる。
【0094】
実施の形態3.
サービスプロバイダ300が処理ロジックの実行前に処理ロジックの動作を検査する形態について説明する。
以下、実施の形態1および実施の形態2と異なる事項について主に説明する。説明を省略する事項は実施の形態1または実施の形態2と同様である。
【0095】
図10は、実施の形態3におけるサービスプロバイダ300の機能構成図である。
実施の形態3におけるサービスプロバイダ300の機能構成について、図10に基づいて説明する。
【0096】
サービスプロバイダ300のサービスコンテナ310は、実施の形態1(図3参照)で説明した処理ロジック抽出部313の代わりに、処理ロジック抽出・試験部317を備える。
また、データ処理毎に備わる各サービス実装部320(図10では1つのみ図示)は、実施の形態1で説明した構成に加えて、試験コード格納部323を備える。
【0097】
処理ロジック抽出・試験部317(後処理プログラム検査部の一例)は、処理ロジック(後処理プログラム)を用いて所定の試験データを処理し、処理ロジックが所定の試験基準を満たした有効プログラムであるか否かを処理結果に基づいて判定する。
処理ロジック抽出・試験部317は、試験コード格納部323に記憶される試験コードを実行することにより、上記の判定を行う。
【0098】
試験コード格納部323は、試験データと試験プログラムとを含んだ試験コードを予め記憶する。
試験プログラムは、試験データを入力データにして処理ロジックを動作させ、処理ロジックが所定の試験基準を満たすか否かを動作結果に基づいて判定する。
例えば、試験基準(試験項目)として、例外が発生しないこと、所定の制限時間内に処理が完了すること、リターン値の型が定義通りであること、などが挙げられる。
【0099】
図11は、実施の形態3におけるサービスコンテナ310の動作を示すフローチャートである。
実施の形態3におけるサービスコンテナ310の動作について、図11に基づいて説明する。
【0100】
サービスコンテナ310は、実施の形態1で説明した処理(図5参照)に加えて、S260、S261およびS242を実行する。また、S220の代わりにS222を実行する。
以下、S260、S261、S222およびS242について主に説明する。
【0101】
S260において、リクエスト受信部311は、リクエスト110を引数にして処理ロジック抽出・試験部317を呼び出す。
処理ロジック抽出・試験部317は、リクエスト110から処理ロジックを抽出する。
処理ロジック抽出・試験部317は、リクエスト110からデータ処理種別を抽出し、抽出したデータ処理種別で識別されるデータ処理に対応するサービス実装部320を特定し、特定したサービス実装部320の試験コード格納部323から試験コードを入力する。
処理ロジック抽出・試験部317は、処理ロジックを入力データにして試験コード(試験プログラム)を実行して処理ロジックの動作を試験する。
試験コードを実行することにより、「試験合格」または「試験不合格」を示す試験結果が得られる。「試験合格」は処理ロジックが試験基準を満たした有効プログラムであることを意味し、「試験不合格」は処理ロジックが試験基準を満たさない無効プログラムであることを意味する。
S260の後、S261に進む。
【0102】
S261において、処理ロジック抽出・試験部317は、試験コードの実行により得られた処理ロジックの試験結果を判定する。
処理ロジックの試験結果が「試験合格」を示す場合(YES)、S222に進む。
処理ロジックの試験結果が「試験不合格」を示す場合(NO)、S242に進む。
【0103】
S222において、処理ロジック抽出・試験部317は、処理ロジックを処理ロジック格納部332に記憶し、リクエスト受信部311に処理完了を通知する。
S222の後、S230に進む。
【0104】
S242において、処理ロジック抽出・試験部317は、リクエスト受信部311に異常完了を通知する。
リクエスト受信部311は、異常完了を通知してレスポンス送信部314を呼び出す。
レスポンス送信部314は、リクエストエラー(処理ロジックの動作エラー)を示すレスポンス120を生成し、生成したレスポンス120をサービスリクエスタ200へ送信する。
S242の後、S201に戻る。
【0105】
実施の形態3において、例えば、以下のようなサービス要求応答システム100について説明した。
【0106】
サービスプロバイダ300は、受信した処理ロジックを試験し、試験に合格しなければその処理ロジックを実行せずにレスポンス120を送信する。
【0107】
これにより、サービスプロバイダ300が問題のある処理ロジックを実行して異常終了してしまうことを防止し、サービスプロバイダ300の動作を安全に継続させることができる。
【0108】
実施の形態3において、サービスコンテナ310は実施の形態2(図8参照)と同様に文法検査コード格納部316を備え、処理ロジック抽出・試験部317は実施の形態2で説明した処理ロジック抽出・検査部315と同様に処理ロジックの文法を検査してもよい。
処理ロジック抽出・試験部317は、処理ロジックが文法検査と試験との両方に合格した場合に、処理ロジックを処理ロジック格納部332に記憶する。
レスポンス送信部314は、処理ロジックが文法検査と試験との少なくともいずれかで不合格であった場合に、リクエストエラーを示すレスポンス120をサービスリクエスタ200へ送信する。
【符号の説明】
【0109】
100 サービス要求応答システム、101 ネットワーク、110 リクエスト、120 レスポンス、200 サービスリクエスタ、210 リクエスト送信部、220 レスポンス受信部、231 リクエストパラメータ格納部、232 処理ロジック格納部、233 後処理データ記憶部、300 サービスプロバイダ、310 サービスコンテナ、311 リクエスト受信部、312 リクエストパラメータ抽出部、313 処理ロジック抽出部、314 レスポンス送信部、315 処理ロジック抽出・検査部、316 文法検査コード格納部、317 処理ロジック抽出・試験部、320 サービス実装部、321 データ処理部、322 処理ロジック起動部、323 試験コード格納部、331 リクエストパラメータ格納部、332 処理ロジック格納部、333 レスポンス格納部、340 データリソース、901 表示装置、902 キーボード、903 マウス、904 ドライブ装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

【特許請求の範囲】
【請求項1】
所定のデータ処理を実行するデータ処理装置において、
前記データ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを含んだデータをデータ処理要求としてデータ処理要求装置から受信するデータ処理要求受信部と、
前記データ処理要求受信部により受信されたデータ処理要求に含まれる処理パラメータに基づいて前記データ処理を実行し、前記データ処理を実行して得られたデータを処理結果データとして出力するデータ処理部と、
前記データ処理部により出力された処理結果データに対して前記データ処理要求に含まれる後処理プログラムを実行し、前記後処理プログラムを実行して得られたデータを後処理データとして出力する後処理プログラム実行部と、
前記後処理プログラム実行部により出力された後処理データを含んだデータをデータ処理応答として前記データ処理要求装置へ送信するデータ処理応答送信部と
を備えたことを特徴とするデータ処理装置。
【請求項2】
前記データ処理装置は、さらに、
前記データ処理要求に含まれる後処理プログラムが所定の実行要件を満たす有効プログラムであるか否かを所定の検査プログラムを用いて判定する後処理プログラム検査部を備え、
前記後処理プログラム実行部は、前記後処理プログラム検査部により前記後処理プログラムが有効プログラムであると判定された場合に前記後処理プログラムを実行して後処理データを出力し、前記後処理プログラム検査部により前記後処理プログラムが有効プログラムでないと判定された場合に前記後処理プログラムを実行せず、
前記データ処理応答送信部は、前記後処理プログラム実行部が前記後処理プログラムを実行した場合に前記後処理データを含んだデータ処理応答を送信し、前記後処理プログラム実行部が前記後処理プログラムを実行しなかった場合に異常終了を示す異常終了通知を前記データ処理応答の代わりに送信する
ことを特徴とする請求項1記載のデータ処理装置。
【請求項3】
前記データ処理要求は、所定のプログラミング言語で記述されたソースプログラムを前記後処理プログラムとして含み、
前記後処理プログラム検査部は、前記後処理プログラムが所定のプログラム文法に従って記述された有効プログラムであるか否かを判定する
ことを特徴とする請求項2記載のデータ処理装置。
【請求項4】
前記後処理プログラム検査部は、前記後処理プログラムを用いて所定の試験データを処理し、前記後処理プログラムが所定の試験基準を満たしたプログラムであるか否かを処理結果に基づいて判定し、前記後処理プログラムが前記プログラム文法に従って記述され前記後処理プログラムが前記試験基準を満たしている場合に前記後処理プログラムが有効プログラムであると判定する
ことを特徴とする請求項3記載のデータ処理装置。
【請求項5】
前記後処理プログラム検査部は、前記後処理プログラムを用いて所定の試験データを処理し、前記後処理プログラムが所定の試験基準を満たした有効プログラムであるか否かを処理結果に基づいて判定する
ことを特徴とする請求項2記載のデータ処理装置。
【請求項6】
所定のデータ処理を実行するデータ処理装置のデータ処理方法において、
データ処理要求受信部が、前記データ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを含んだデータをデータ処理要求としてデータ処理要求装置から受信し、
データ処理部が、前記データ処理要求受信部により受信されたデータ処理要求に含まれる処理パラメータに基づいて前記データ処理を実行し、前記データ処理を実行して得られたデータを処理結果データとして出力し、
後処理プログラム実行部が、前記データ処理部により出力された処理結果データに対して前記データ処理要求に含まれる後処理プログラムを実行し、前記後処理プログラムを実行して得られたデータを後処理データとして出力し、
データ処理応答送信部が、前記後処理プログラム実行部により出力された後処理データを含んだデータをデータ処理応答として前記データ処理要求装置へ送信する
ことを特徴とするデータ処理装置のデータ処理方法。
【請求項7】
所定のデータ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを含んだデータをデータ処理要求としてデータ処理要求装置から受信するデータ処理要求受信ステップと、
前記データ処理要求受信ステップにより受信されたデータ処理要求に含まれる処理パラメータに基づいて前記データ処理を実行し、前記データ処理を実行して得られたデータを処理結果データとして出力するデータ処理ステップと、
前記データ処理ステップにより出力された処理結果データに対して前記データ処理要求に含まれる後処理プログラムを実行し、前記後処理プログラムを実行して得られたデータを後処理データとして出力する後処理プログラム実行ステップと、
前記後処理プログラム実行ステップにより出力された後処理データを含んだデータをデータ処理応答として前記データ処理要求装置へ送信するデータ処理応答送信ステップと
をコンピュータに実行させるデータ処理プログラム。
【請求項8】
所定のデータ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを入力し、入力した処理パラメータと後処理プログラムとを含んだデータをデータ処理要求として生成し、生成したデータ処理要求を送信するデータ処理要求送信部と、
前記データ処理要求を受信して前記処理パラメータに基づいて前記データ処理を実行して前記データ処理により得られる処理結果データに対して前記後処理プログラムを実行して前記後処理プログラムにより得られる後処理データを含んだデータ処理応答を送信するデータ処理装置から前記データ処理応答を受信するデータ処理応答受信部と
を備えたことを特徴とするデータ処理要求装置。
【請求項9】
データ処理要求装置のデータ処理要求方法において、
データ処理要求送信部が、所定のデータ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを入力し、入力した処理パラメータと後処理プログラムとを含んだデータをデータ処理要求として生成し、生成したデータ処理要求を送信し、
データ処理応答受信部が、前記データ処理要求を受信して前記処理パラメータに基づいて前記データ処理を実行して前記データ処理により得られる処理結果データに対して前記後処理プログラムを実行して前記後処理プログラムにより得られる後処理データを含んだデータ処理応答を送信するデータ処理装置から前記データ処理応答を受信する
ことを特徴とするデータ処理要求装置のデータ処理要求方法。
【請求項10】
所定のデータ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを入力し、入力した処理パラメータと後処理プログラムとを含んだデータをデータ処理要求として生成し、生成したデータ処理要求を送信するデータ処理要求送信ステップと、
前記データ処理要求を受信して前記処理パラメータに基づいて前記データ処理を実行して前記データ処理により得られる処理結果データに対して前記後処理プログラムを実行して前記後処理プログラムにより得られる後処理データを含んだデータ処理応答を送信するデータ処理装置から前記データ処理応答を受信するデータ処理応答受信ステップと
をコンピュータに実行させるデータ処理要求プログラム。
【請求項11】
所定のデータ処理の実行を要求するデータ処理要求装置と、前記データ処理を実行するデータ処理装置とを有するデータ処理システムにおいて、
データ処理装置は、
前記データ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを含んだデータをデータ処理要求としてデータ処理要求装置から受信するデータ処理要求受信部と、
前記データ処理要求受信部により受信されたデータ処理要求に含まれる処理パラメータに基づいて前記データ処理を実行し、前記データ処理を実行して得られたデータを処理結果データとして出力するデータ処理部と、
前記データ処理部により出力された処理結果データに対して前記データ処理要求に含まれる後処理プログラムを実行し、前記後処理プログラムを実行して得られたデータを後処理データとして出力する後処理プログラム実行部と、
前記後処理プログラム実行部により出力された後処理データを含んだデータをデータ処理応答として前記データ処理要求装置へ送信するデータ処理応答送信部とを備え、
データ処理要求装置は、
前記処理パラメータと前記後処理プログラムとを入力し、入力した処理パラメータと後処理プログラムとを含んだデータをデータ処理要求として生成し、生成したデータ処理要求を前記データ処理装置へ送信するデータ処理要求送信部と、
前記データ処理装置から前記データ処理応答を受信するデータ処理応答受信部とを備える
ことを特徴とするデータ処理システム。
【請求項12】
所定のデータ処理の実行を要求するデータ処理要求装置と、前記データ処理を実行するデータ処理装置とを有するデータ処理システムのデータ処理方法において、
データ処理要求装置のデータ処理要求送信部が、前記データ処理の動作を指定する処理パラメータと前記データ処理により得られるデータを処理する後処理プログラムとを入力し、入力した処理パラメータと後処理プログラムとを含んだデータをデータ処理要求として生成し、生成したデータ処理要求をデータ処理装置へ送信し、
データ処理装置のデータ処理要求受信部が、前記データ処理要求をデータ処理要求装置から受信し、
データ処理装置のデータ処理部が、前記データ処理要求受信部により受信されたデータ処理要求に含まれる処理パラメータに基づいて前記データ処理を実行し、前記データ処理を実行して得られたデータを処理結果データとして出力し、
データ処理装置の後処理プログラム実行部が、前記データ処理部により出力された処理結果データに対して前記データ処理要求に含まれる後処理プログラムを実行し、前記後処理プログラムを実行して得られたデータを後処理データとして出力し、
データ処理装置のデータ処理応答送信部が、前記後処理プログラム実行部により出力された後処理データを含んだデータをデータ処理応答として前記データ処理要求装置へ送信し、
データ処理要求装置のデータ処理応答受信部が、前記データ処理装置から前記データ処理応答を受信する
ことを特徴とするデータ処理システムのデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−8901(P2012−8901A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−145877(P2010−145877)
【出願日】平成22年6月28日(2010.6.28)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】