(57)【特許請求の範囲】
【請求項１】
複数の部品を組み合わせて構成される連携部品の作成を支援する支援装置において、
データを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置と、データを出力する出力装置と、部品定義記憶部と、項目対応定義記憶部と、入力対応入力部と、出力対応入力部と、経路探索部と、連携パターン出力部とを有し、
上記部品定義記憶部は、上記記憶装置を用いて、複数の部品それぞれについて、上記部品が入力する項目を表わす入力項目データと、入力した項目に基づく処理をした結果として上記部品が出力する項目を表わす出力項目データとを含む部品定義データを記憶し、
上記項目対応定義記憶部は、上記記憶装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうちいずれかの部品定義データに含まれる入力項目データが表わす項目と、他の部品定義データに含まれる出力項目データが表わす項目との間の対応関係を表わす項目対応定義データを記憶し、
上記入力対応入力部は、上記入力装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうち、上記連携部品が入力する項目に対応する項目を入力する部品についての部品定義データを示す入力対応部品データを含む入力対応データを入力し、
上記出力対応入力部は、上記入力装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうち、上記連携部品が出力する項目に対応する項目を出力する部品についての部品定義データを示す出力対応部品データを含む出力対応データを入力し、
上記経路探索部は、上記処理装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データと、上記項目対応定義記憶部が記憶した項目対応定義データと、上記入力対応入力部が入力した入力対応データと、上記出力対応入力部が入力した出力対応データとに基づいて、ある部品が出力する項目と他の部品が入力する対応する項目とを接続して複数の部品を連結することにより、上記連携部品が入力する項目に対応する項目を入力する部品から上記連携部品が出力する項目に対応する項目を出力する部品まで至る経路を探索し、
上記連携パターン出力部は、上記出力装置を用いて、上記経路探索部が探索した経路を含む連携パターンを利用者に提示する画面を表わす連携パターンデータを出力し、
上記部品定義記憶部が記憶した複数の部品定義データのうち少なくともいずれかは、データベースに登録されたテーブルを使用するテーブル使用部品を表わし、
上記テーブル使用部品を表わす部品定義データのうち少なくともいずれかは、上記テーブル使用部品がする処理の手順を表わす処理手順データを含み、
上記連携パターン出力部が出力する連携パターンデータが表わす画面は、上記経路探索部が探索した経路に含まれる部品が上記テーブル使用部品である場合、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含めば、上記処理手順データが表わす処理の手順を上記利用者に提示し、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含まなければ、上記テーブル使用部品がする処理の入力を促す
ことを特徴とする支援装置。
【請求項２】
上記テーブル使用部品を表わす部品定義データは、上記テーブル使用部品が使用するテーブルを示す使用テーブルデータを含み、
上記経路探索部は、上記処理装置を用いて、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含まない場合、上記使用テーブルデータによって示されるテーブルのフィールドのうち任意のフィールドを上記テーブル使用部品が入力する項目及び上記テーブル使用部品が出力する項目とすることができるものとして、上記経路を探索することを特徴とする請求項１に記載の支援装置。
【請求項３】
上記支援装置は、更に、作成パターン入力部と、連携部品定義生成部とを有し、
上記作成パターン入力部は、上記入力装置を用いて、上記連携パターン出力部が出力した連携パターンデータが表わす画面によって上記利用者に提示された連携パターンに基づいて上記利用者が作成した連携パターンを表わす作成パターンデータを入力し、
上記連携部品定義生成部は、上記処理装置を用いて、上記作成パターン入力部が入力した作成パターンデータに基づいて、上記作成パターンデータが表わす連携パターンを使った連携部品についての部品定義データを生成し、
上記部品定義記憶部は、上記記憶装置を用いて、上記連携部品定義生成部が生成した部品定義データを記憶することを特徴とする請求項１又は２のいずれかに記載の支援装置。
【請求項４】
請求項１から請求項３のいずれか１項に記載の支援装置と、利用者が操作する端末装置とを有し、
上記端末装置は、上記連携パターン出力部が出力した連携パターンデータが表わす画面を表示することを特徴とする支援システム。
【請求項５】
データを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置と、データを出力する出力装置とを有するコンピュータを、請求項１から請求項４のいずれか１項に記載の支援装置として機能させることを特徴とするコンピュータプログラム。
【請求項６】
データを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置と、データを出力する出力装置とを有する支援装置が、複数の部品を組み合わせて構成される連携部品の作成を支援する支援方法において、
上記記憶装置が、複数の部品それぞれについて、上記部品が入力する項目を表わす入力項目データと、上記部品が入力した項目に基づく処理をした結果として出力する項目を表わす出力項目データとを含む部品定義データを記憶し、
上記記憶装置が、上記記憶装置が記憶した複数の部品定義データのうちいずれかの部品定義データに含まれる入力項目データが表わす項目と、他の部品定義データに含まれる出力項目データが表わす項目との間の対応関係を表わす項目対応定義データを記憶し、
上記入力装置が、上記記憶装置が記憶した複数の部品定義データのうち、上記連携部品が入力する項目に対応する項目を入力する部品についての部品定義データを示す入力対応部品データを含む入力対応データを入力し、
上記入力装置が、上記記憶装置が記憶した複数の部品定義データのうち、上記連携部品が出力する項目に対応する項目を出力する部品についての部品定義データを示す出力対応部品データを含む出力対応データを入力し、
上記処理装置が、上記記憶装置が記憶した複数の部品定義データと、上記記憶装置が記憶した項目対応定義データと、上記入力装置が入力した入力対応データと、上記入力装置が入力した出力対応データとに基づいて、ある部品が出力する項目と他の部品が入力する対応する項目とを接続して複数の部品を連結することにより、上記連携部品が入力する項目に対応する項目を入力する部品から上記連携部品が出力する項目に対応する項目を出力する部品まで至る経路を探索し、
上記出力装置が、上記処理装置が探索した経路を含む連携パターンを利用者に提示する画面を表わす連携パターンデータを出力し、
上記記憶装置が記憶した複数の部品定義データのうち少なくともいずれかは、データベースに登録されたテーブルを使用するテーブル使用部品を表わし、
上記テーブル使用部品を表わす部品定義データのうち少なくともいずれかは、上記テーブル使用部品がする処理の手順を表わす処理手順データを含み、
上記連携パターンデータが表わす画面は、探索された経路に含まれる部品が上記テーブル使用部品である場合、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含めば、上記処理手順データが表わす処理の手順を上記利用者に提示し、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含まなければ、上記テーブル使用部品がする処理の入力を促す
ことを特徴とする支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、利用者が、サービスなどの部品を複数組み合わせて、より複雑な部品を作成することを支援する支援装置に関する。
【背景技術】
【０００２】
ウェブサービスのようなサービスは、ウェブなどを介して処理を提供する。効率的にサービスの開発をするため、既存のサービスを複数組み合わせることにより、より複雑な連携サービスを作成することが行われている。
しかし、既存のサービスが多数存在する場合など、既存のサービスをどのように組み合わせれば、最も効率よく連携サービスを作成できるか明らかでない場合がある。
このため、過去に作成した連携サービスにおける連携パターンに基づいて、新たに作成する連携サービスにおける連携パターンを推薦し、利用者による連携サービスの作成を支援する装置がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９１８６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
過去の連携パターンに基づく推薦は、過去の連携パターンがなければ連携パターンを推薦できない。また、新しいサービスを使って連携サービスを作成する場合や、過去に作成した連携サービスとはまったく異なる連携サービスを作成する場合には、推薦された連携パターンが参考にならないことがある。
この発明は、例えば上記のような課題を解決するためになされたものであり、過去の連携パターンがない場合などにおいても、適切な連携パターンを推薦し、利用者による連携サービスなどの部品の作成を支援することを目的とする。
【課題を解決するための手段】
【０００５】
この発明にかかる支援装置は、複数の部品を組み合わせて構成される連携部品の作成を支援する支援装置において、
データを記憶する記憶装置と、データを処理する処理装置と、データを入力する入力装置と、データを出力する出力装置と、部品定義記憶部と、項目対応定義記憶部と、入力対応入力部と、出力対応入力部と、経路探索部と、連携パターン出力部とを有し、
上記部品定義記憶部は、上記記憶装置を用いて、複数の部品それぞれについて、上記部品が入力する項目を表わす入力項目データと、入力した項目に基づく処理をした結果として上記部品が出力する項目を表わす出力項目データとを含む部品定義データを記憶し、
上記項目対応定義記憶部は、上記記憶装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうちいずれかの部品定義データに含まれる入力項目データが表わす項目と、他の部品定義データに含まれる出力項目データが表わす項目との間の対応関係を表わす項目対応定義データを記憶し、
上記入力対応入力部は、上記入力装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうち、上記連携部品が入力する項目に対応する項目を入力する部品についての部品定義データを示す入力対応部品データを含む入力対応データを入力し、
上記出力対応入力部は、上記入力装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうち、上記連携部品が出力する項目に対応する項目を出力する部品についての部品定義データを示す出力対応部品データを含む出力対応データを入力し、
上記経路探索部は、上記処理装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データと、上記項目対応定義記憶部が記憶した項目対応定義データと、上記入力対応入力部が入力した入力対応データと、上記出力対応入力部が入力した出力対応データとに基づいて、ある部品が出力する項目と他の部品が入力する対応する項目とを接続して複数の部品を連結することにより、上記連携部品が入力する項目に対応する項目を入力する部品から上記連携部品が出力する項目に対応する項目を出力する部品まで至る経路を探索し、
上記連携パターン出力部は、上記出力装置を用いて、上記経路探索部が探索した経路を含む連携パターンを利用者に提示する画面を表わす連携パターンデータを出力することを特徴とする。
【発明の効果】
【０００６】
この発明にかかる支援装置によれば、部品の入力項目と出力項目との対応関係から、経路探索部が経路を探索し、探索した経路に基づいて連携パターンを推薦するので、適切な連携パターンを推薦し、利用者による連携サービスなどの部品の作成を支援することができる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１におけるコンピュータ９１０のハードウェア資源の一例を示す図。
【図２】実施の形態１における設計支援システム８００の全体構成の一例を示すシステム構成図。
【図３】実施の形態１における連携サービス設計支援処理Ｓ５００の流れの一例を示すスイムレーン図。
【図４】実施の形態１におけるテーブル５８１〜５８５の一例を示す図。
【図５】実施の形態１における連携サービス定義情報５５０，５６０の一例を示す図。
【図６】実施の形態１におけるテーブル間のキーの関係表の一例を示す図。
【図７】実施の形態１におけるスキーマ定義解析機能部２２２が検索したパスの一例を示す図。
【図８】実施の形態１におけるサービス設計画面生成部２１１が生成する連携サービス設計画面の一例を示す図。
【図９】実施の形態１におけるサービス定義生成機能部２３３が生成する連携サービスの定義情報の一例を示す図。
【図１０】実施の形態２における設計支援システム８０１の構成の一例を示す図。
【図１１】実施の形態２における部品定義記憶部２５１が記憶した部品定義データ８５０の一例を示す図。
【図１２】実施の形態２における処理手順データ８８０によって表わされる連携部品の処理手順の一例を示す図。
【図１３】実施の形態２における部品定義記憶部２５１が記憶した部品定義データ８５０の別の例を示す図。
【図１４】実施の形態２における部品定義記憶部２５１が記憶した部品定義データ８５０の更に別の例を示す図。
【図１５】実施の形態２における項目対応定義記憶部２５２が記憶した項目対応定義データ９３０の一例を示す図。
【図１６】実施の形態２における端末装置１０１が支援装置２０１に対して送信する入出力項目対応データ９７０の一例を示す図。
【図１７】実施の形態２における支援処理Ｓ７００の流れの一例を示すフローチャート図。
【図１８】実施の形態２における経路探索工程Ｓ７２０の流れの一例を示すフローチャート図。
【発明を実施するための形態】
【０００８】
実施の形態１．
実施の形態１について、図１〜図９を用いて説明する。
【０００９】
図１は、この実施の形態におけるコンピュータ９１０のハードウェア資源の一例を示す図である。
【００１０】
コンピュータ９１０は、例えば、処理装置９１１と、記憶装置９１４と、入力装置９１２と、出力装置９１３とを有する。
処理装置９１１は、記憶装置９１４が記憶したコンピュータプログラムを実行することにより、記憶装置９１４が記憶したデータを処理し、コンピュータ９１０全体を制御する。
記憶装置９１４は、処理装置９１１が実行するコンピュータプログラムや、処理装置９１１が処理するデータなどを記憶する。記憶装置９１４は、例えば、ＲＯＭなどの不揮発性メモリ、ＲＡＭなどの揮発性メモリ、磁気ディスク装置などの二次記憶装置である。
入力装置９１２は、コンピュータ９１０の外部から情報を入力し、処理装置９１１が処理できる形式のデータに変換する。入力装置９１２が変換したデータは、処理装置９１１が直接処理してもよいし、記憶装置９１４が一時的に記憶してもよい。入力装置９１２は、例えば、キーボードやマウスなど操作者による操作を入力する装置、カメラやスキャナなど画像を入力する装置、マイクなど音声を入力する装置、温度センサなど物理量を測定する装置、アナログ信号をデジタルデータに変換するアナログデジタル変換装置、フレキシブルディスクなどの記録媒体に記録されたデータを読み出す装置、インタフェース装置や通信装置など他の装置が出力した信号を受信する装置である。
出力装置９１３は、処理装置９１１が処理したデータや記憶装置９１４が記憶したデータを変換して、コンピュータ９１０の外部に出力する。出力装置９１３は、例えば、表示装置やプリンタなど視覚的に情報を出力する装置、スピーカなど聴覚的に情報を出力する装置、デジタルデータをアナログ信号に変換するデジタルアナログ変換装置、フレキシブルディスクなどの記録媒体にデータを書き込む装置、インタフェース装置や通信装置など他の装置に対して信号を送信する装置である。
【００１１】
後述する設計者端末装置１００、設計支援装置２００、設計支援情報記憶装置３００、業務サーバ装置４００などの装置は、記憶装置９１４が記憶したコンピュータプログラムをコンピュータ９１０が実行することにより実現される。
なお、これらの装置を構成する機能ブロックのうちのいくつかは、コンピュータ９１０ではなく、他の構成を用いて実現してもよい。また、これらの装置のうちのいくつかは、コンピュータ９１０を用いず、他の構成を用いて実現してもよい。また、これらの装置は、１つのコンピュータ９１０を用いて実現してもよいし、複数のコンピュータ９１０を用いて実現してもよい。また、１つのコンピュータ９１０を用いて、これらの装置のうち複数の装置を実現してもよい。
【００１２】
図２は、この実施の形態における設計支援システム８００の全体構成の一例を示すシステム構成図である。
設計支援システム８００は、複数のサービスを連携させて構成される連携サービスの設計を支援する。設計支援システム８００は、例えば、設計者端末装置１００と、設計支援装置２００と、設計支援情報記憶装置３００と、業務サーバ装置４００とを有する。なお、設計者端末装置１００や業務サーバ装置４００は、複数あってもよい。
【００１３】
設計者端末装置１００は、連携サービスの設計を行う設計者が利用する端末装置である。設計者端末装置１００は、例えば、Ｗｉｎｄｏｗｓ（登録商標）などのＯＳを搭載した一般的なコンピュータであってもよい。設計者端末装置１００は、例えば、クライアントプログラム実行部１１０を有する。クライアントプログラム実行部１１０は、処理装置９１１を用いて、記憶装置９１４が記憶したクライアントプログラムを実行する。クライアントプログラムは、例えば、クライアントサーバ形式のプログラムや、ＩＥやＦｉｒｅＦｏｘ（登録商標）などのウェブブラウザプログラムなどである。設計者端末装置１００は、複数のクライアントプログラムを記憶し、実行してもよい。
【００１４】
設計支援装置２００は、連携サービスの設計を行うための画面を提供する。設計支援装置２００は、例えば、ウェブサーバ装置である。設計支援装置２００は、例えば、サービス設計部２１０と、サービス推薦部２２０と、データ管理部２３０とを有する。
【００１５】
サービス設計部２１０は、処理装置９１１を用いて、記憶装置９１４が記憶したプログラムを実行することにより、設計者端末装置１００からの画面操作を受け付け、サービスを設計するために必要な画面を提供する。サービス設計部２１０は、例えば、サービス設計画面生成部２１１と、連携サービス設計画面生成部２１２とを有する。サービス設計画面生成部２１１は、単体のサービスを設計するためのサービス設計画面を生成する。連携サービス設計画面生成部２１２は、複数のサービスを連携させてサービスを設計する連携サービス設計画面を生成する。サービス設計部２１０は、通信装置などの出力装置９１３を用いて、サービス設計画面生成部２１１が生成したサービス設計画面や、連携サービス設計画面生成部２１２が生成した連携サービス設計画面を、設計者端末装置１００に対して送信する。設計者端末装置１００のクライアントプログラム実行部１１０は、通信装置などの入力装置９１２を用いて、サービス設計画面や連携サービス設計画面を受信し、表示装置などの出力装置９１３を用いて、受信したサービス設計画面や連携サービス設計画面を表示する。
【００１６】
サービス推薦部２２０は、例えば、連携パターン推薦機能部２２１と、スキーマ定義解析機能部２２２とを有する。連携パターン推薦機能部２２１は、処理装置９１１を用いて、記憶装置９１４が記憶したプログラムを実行することにより、設計支援情報記憶装置３００に蓄えられている情報を基に、連携パターンを推薦する。スキーマ定義解析機能部２２２は、外部のデータベースにアクセスしスキーマを解析する。
【００１７】
データ管理部２３０は、処理装置９１１を用いて、記憶装置９１４が記憶したプログラムを実行することにより、サービス設計部２１０が設計に必要となる情報にアクセスするために必要な情報を管理する。データ管理部２３０は、例えば、ＤＢ管理機能部２３１と、サービス管理機能部２３２と、サービス定義生成機能部２３３とを有する。ＤＢ管理機能部２３１は、設計支援装置２００や業務サーバ装置４００のサービスプログラム実行部４２０などがアクセスするデータベースに関する情報を管理する。サービス管理機能部２３２は、設計支援装置２００により設計されたサービスに関する情報を管理する。サービス定義生成機能部２３３は、サービスを定義する情報を生成する。
【００１８】
設計支援情報記憶装置３００は、サービスの設計に必要な情報を格納しておく。設計支援情報記憶装置３００は、例えば、ファイルサーバ装置である。設計支援情報記憶装置３００は、例えば、サービス定義記憶部３１０と、クエリ定義記憶部３２０と、スキーマ定義記憶部３３０と、ＤＢ管理情報記憶部３４０と、サービス管理情報記憶部３５０とを有する。
【００１９】
サービス定義記憶部３１０は、記憶装置９１４を用いて、単体のサービスの定義を記憶しておく。サービス定義記憶部３１０は、例えば、サービス名、サービスの入力項目、サービスの出力項目などの情報を管理する。また、サービスがクエリを利用している場合、サービス定義記憶部３１０は、利用しているクエリ名、サービスの入力項目とクエリの入力項目との間のマッピング定義、サービスの出力項目とクエリの出力項目との間のマッピング定義などの情報を管理する。
【００２０】
クエリ定義記憶部３２０は、記憶装置９１４を用いて、サービスが利用しているクエリの定義を記憶しておく。クエリ定義記憶部３２０は、例えば、クエリ名、クエリ文（ＳＱＬ文）、クエリの入力項目、クエリの出力項目、利用するテーブル名、利用するデータベース名などの情報を管理する。
【００２１】
スキーマ定義記憶部３３０は、記憶装置９１４を用いて、サービスが利用しているデータベースのスキーマを記憶しておく。スキーマ定義記憶部３３０は、例えば、テーブル名、各テーブルの主キー、各テーブルの外部キー、各テーブルの参照可能なキーなどの情報を管理する。
【００２２】
ＤＢ管理情報記憶部３４０は、記憶装置９１４を用いて、サービスが利用するデータベースにアクセスするための情報を記憶しておく。ＤＢ管理情報記憶部３４０は、例えば、データベース名、データベースの種類、データベースへの接続ＵＲＬ、ユーザ名、パスワードなどの情報を管理する。
【００２３】
サービス管理情報記憶部３５０は、記憶装置９１４を用いて、設計されたサービスに関する情報を記憶しておく。サービス管理情報記憶部３５０は、例えば、サービス名、利用しているサービス名、サービスの実行順序、サービス間の入出力のマッピング定義などの情報を管理する。
【００２４】
業務サーバ装置４００は、業務アプリケーションプログラムやサービスプログラムなどを実行する。業務サーバ装置４００は、例えば、サーバ装置である。業務サーバ装置４００は、例えば、業務アプリケーションプログラム実行部４１０と、サービスプログラム実行部４２０と、業務データベース記憶部４３０とを有する。業務アプリケーションプログラム実行部４１０は、処理装置９１１を用いて、記憶装置９１４が記憶した業務アプリケーションプログラムを実行する。業務アプリケーションプログラムは、サービスプログラム実行部４２０が提供するサービスを利用するプログラムである。サービスプログラム実行部４２０は、処理装置９１１を用いて、記憶装置９１４が記憶したサービスプログラムを実行する。サービスプログラムは、任意の処理を行うプログラムである。サービスプログラム実行部４２０は、業務データベース記憶部４３０を参照し、あるいは、更新することがある。業務サーバ装置４００は、複数のサービスプログラムを記憶し、実行してもよい。業務データベース記憶部４３０は、記憶装置９１４を用いて、業務データベースを記憶する。業務サーバ装置４００は、複数の業務データベースを記憶してもよい。
【００２５】
次に、動作について説明する。
【００２６】
サービス設計処理の全体の流れは、例えば、次のとおりである。
まず、設計者端末装置１００のクライアントプログラム実行部１１０が、マウスなどの入力装置９１２を用いて、サービスの設計者（以下「ユーザ」と呼ぶ。）による操作を入力する。クライアントプログラム実行部１１０は、通信装置などの出力装置９１３を用いて、設計支援装置２００に接続する。設計支援装置２００は、通信装置などの入力装置９１２を用いて、クライアントプログラム実行部１１０からの接続を受ける。サービス設計画面生成部２１１が、処理装置９１１を用いて、サービス設計画面を生成し、もしくは、連携サービス設計画面生成部２１２が、処理装置９１１を用いて、連携サービス設計画面を生成する。設計支援装置２００は、通信装置などの出力装置９１３を用いて、生成した画面を設計者端末装置１００に対して送信する。クライアントプログラム実行部１１０は、通信装置などの入力装置９１２を用いて、設計支援装置２００が送信した画面を受信し、表示装置などの出力装置９１３を用いて、受信した画面を表示する。クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、表示した画面に対するユーザによるインタラクティブな操作を入力し、表示装置などの出力装置９１３を用いて、サービス及び連携サービスを実行するために必要な定義情報を表示する。
【００２７】
図３は、この実施の形態における連携サービス設計支援処理Ｓ５００の流れの一例を示すスイムレーン図である。
連携サービス設計支援処理Ｓ５００において、設計支援システム８００は、既存のサービスや前もって作成したサービスを連携させることによりユーザが連携サービスを設計するのを支援する。設計者端末装置１００は、設計支援装置２００の連携サービス設計画面生成部２１２が生成した連携サービス設計画面を表示し、ユーザによる操作を入力し、入力した操作に対してインタラクティブに応答した画面を表示するなどして、連携サービスの設計を支援する。
連携サービス設計支援処理Ｓ５００は、例えば、新規連携サービス作成選択工程Ｓ５０１と、既存資源一覧提示工程Ｓ５０２と、既存資源選択工程Ｓ５０３と、入出力決定工程Ｓ５０４と、関連資源抽出工程Ｓ５０５と、連携パターン生成工程Ｓ５０６と、連携パターン確認工程Ｓ５０７と、連携サービス登録工程Ｓ５０８と、マッピング定義生成工程Ｓ５０９と、定義情報格納工程Ｓ５１０とを有する。
【００２８】
新規連携サービス作成選択工程Ｓ５０１において、設計者端末装置１００のクライアントプログラム実行部１１０は、表示装置などの出力装置９１３を用いて、設計支援装置２００の連携サービス設計画面生成部２１２が生成した連携サービス設計画面を表示する。連携サービス設計画面には、あらかじめ、例えば「新規連携サービスの作成」ボタンが表示されている。ユーザは、例えば、連携サービス設計画面に表示された「新規連携サービスの作成」ボタンをクリックするなどして、新たな連携サービスの作成を開始する。クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、ユーザによるインタラクティブな操作を入力することにより、ユーザが新たな連携サービスの作成を開始しようとしていることを入力する。クライアントプログラム実行部１１０は、通信装置などの出力装置９１３を用いて、新規連携サービス作成の開始を設計支援装置２００に対して通知する。
【００２９】
既存資源一覧提示工程Ｓ５０２において、設計支援装置２００のサービス設計部２１０は、通信装置などの入力装置９１２を用いて、新規連携サービス作成選択工程Ｓ５０１で設計者端末装置１００が送信した新規連携サービス作成開始の通知を受け取る。連携サービス設計画面生成部２１２は、処理装置９１１を用いて、連携サービスを利用する上で使用するデータベースやテーブルなどの既存資源のリストを設計支援情報記憶装置３００から取得する。
例えば、連携サービス設計画面生成部２１２は、処理装置９１１を用いて、ＤＢ管理機能部２３１に対して、利用可能なデータベースごとのテーブルの一覧の取得を指示する。ＤＢ管理機能部２３１は、通信装置などの出力装置９１３を用いて、設計支援情報記憶装置３００に対して、利用可能なデータベースごとのテーブルの一覧の取得要求を通知する。設計支援情報記憶装置３００のＤＢ管理情報記憶部３４０は、通信装置などの入力装置９１２を用いて、設計支援装置２００からの取得要求を受け取る。ＤＢ管理情報記憶部３４０は、処理装置９１１を用いて、受け取った取得要求にしたがって、利用可能なデータベースごとのテーブルの一覧を生成する。ＤＢ管理情報記憶部３４０が生成するテーブルの一覧には、それぞれのテーブルに含まれる項目の一覧も含まれる。ＤＢ管理情報記憶部３４０は、通信装置などの出力装置９１３を用いて、生成した一覧を設計支援装置２００に対して送信する。設計支援装置２００のＤＢ管理機能部２３１は、通信装置などの入力装置９１２を用いて、設計支援情報記憶装置３００が送信した一覧を受信する。連携サービス設計画面生成部２１２は、処理装置９１１を用いて、ＤＢ管理機能部２３１が受信した一覧を取得する。なお、データ管理部２３０は、設計支援情報記憶装置３００以外の外部のデータベースに対する接続情報や、外部のデータベースを参照することにより、データベースやテーブルを取得する構成であってもよいし、あらかじめユーザが登録したデータベースやテーブルを取得する構成であってもよい。また、データ管理部２３０は、ユーザごとにアクセス権限を設定し、設計者端末装置１００のユーザにアクセス権限があるデータベースやテーブルだけを取得する構成であってもよい。
また、連携サービス設計画面生成部２１２は、処理装置９１１を用いて、サービス管理機能部２３２に対して、設計支援情報記憶装置３００に登録されているサービスの一覧の取得を指示する。サービス管理機能部２３２は、通信装置などの出力装置９１３を用いて、設計支援情報記憶装置３００に対して、設計支援情報記憶装置３００に登録されているサービスの一覧の取得要求を通知する。設計支援情報記憶装置３００のサービス定義記憶部３１０は、通信装置などの入力装置９１２を用いて、設計支援装置２００からの取得要求を受け取る。サービス定義記憶部３１０は、処理装置９１１を用いて、受け取った取得要求にしたがって、サービス定義記憶部３１０に登録されているサービスの一覧を生成する。サービス定義記憶部３１０が生成するサービスの一覧には、それぞれのサービスの入出力項目の一覧も含まれる。サービス定義記憶部３１０は、通信装置などの出力装置９１３を用いて、生成した一覧を設計支援装置２００に対して送信する。設計支援装置２００のサービス管理機能部２３２は、通信装置などの入力装置９１２を用いて、設計支援情報記憶装置３００が送信した一覧を受信する。連携サービス設計画面生成部２１２は、処理装置９１１を用いて、サービス管理機能部２３２が受信した一覧を取得する。なお、設計支援情報記憶装置３００は、サービス定義記憶部３１０に登録されているサービスだけでなく、サービス管理情報記憶部３５０に登録されている連携サービスも加えた一覧を生成する構成であってもよい。また、設計支援情報記憶装置３００は、ユーザごとにアクセス権限を設定し、サービス定義記憶部３１０に登録されたサービスやサービス管理情報記憶部３５０に登録された連携サービスのうち、設計者端末装置１００のユーザにアクセス権限があるサービスや連携サービスだけの一覧を生成する構成であってもよい。
連携サービス設計画面生成部２１２は、設計支援情報記憶装置３００から取得した情報をユーザに提示する連携サービス設計画面を生成する。連携サービス設計画面生成部２１２が生成する連携サービス設計画面には、例えば、利用可能なデータベースごとのテーブルの一覧や、設計支援情報記憶装置３００に登録されているサービスなどの一覧などが表示される。連携サービス設計画面生成部２１２は、通信装置などの出力装置９１３を用いて、生成した連携サービス設計画面を設計者端末装置１００に対して送信する。
【００３０】
既存資源選択工程Ｓ５０３において、設計者端末装置１００のクライアントプログラム実行部１１０は、通信装置などの入力装置９１２を用いて、既存資源一覧提示工程Ｓ５０２で設計支援装置２００が送信した連携サービス設計画面を受信する。クライアントプログラム実行部１１０は、表示装置などの出力装置９１３を用いて、表示している連携サービス設計画面を更新し、受信した連携サービス設計画面を表示する。ユーザは、表示された連携サービス設計画面を見て、それぞれのテーブルに含まれる項目や、既存のサービスの入出力項目などを把握し、新たな連携サービスで使用するデータベース、テーブル、サービスなどの既存資源を選択する。クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、ユーザによるインタラクティブな操作を入力することにより、ユーザが選択したデータベース、テーブル、サービスなどを入力する。
【００３１】
入出力決定工程Ｓ５０４において、クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、ユーザによるインタラクティブな操作を入力することにより、ユーザが決定した新たな連携サービスの入出力項目を入力する。また、クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、ユーザによるインタラクティブな操作を入力することにより、ユーザが定義した新たな連携サービスの入出力項目と既存資源選択工程Ｓ５０３で選択したテーブルの項目やサービスの入出力項目との間のマッピング（対応づけ）を入力する。クライアントプログラム実行部１１０は、通信装置などの出力装置９１３を用いて、既存資源選択工程Ｓ５０３で入力した新たな連携サービスで使用する既存資源の一覧と、入出力決定工程Ｓ５０４で入力した新たな連携サービスの入出力項目の一覧とマッピングとを設計支援装置２００に対して送信する。
【００３２】
関連資源抽出工程Ｓ５０５において、設計支援装置２００の連携サービス設計画面生成部２１２は、通信装置などの入力装置９１２を用いて、入出力決定工程Ｓ５０４で設計者端末装置１００が送信した新たな連携サービスで使用する既存資源の一覧や新たな連携サービスの入出力項目の一覧やマッピングを受信する。連携サービス設計画面生成部２１２は、処理装置９１１を用いて、スキーマ定義解析機能部２２２に対して、新たな連携サービスで使用する既存資源に関連する資源の抽出を指示する。スキーマ定義解析機能部２２２は、処理装置９１１を用いて、新たな連携サービスで使用するテーブルに関連するテーブルや、新たな連携サービスで使用するサービスが使用するテーブルやそれに関連するテーブルなどを抽出する。
例えば、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、ＤＢ管理情報記憶部３４０が記憶している情報に基づいて、新たな連携サービスで使用するテーブルが参照しているテーブル（以下「参照テーブル」と呼ぶ。）や、新たな連携サービスで使用するテーブルの主キーを参照しているテーブル（以下「非参照テーブル」と呼ぶ。）を抽出する。更に、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、抽出した参照テーブルや非参照テーブルに対する参照テーブルや非参照テーブルを抽出する。これを繰り返すことにより、スキーマ定義解析機能部２２２は、新たな連携サービスで使用するテーブルに関連するすべてのテーブルを抽出する。
あるいは、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、サービス定義記憶部３１０やクエリ定義記憶部３２０が記憶している情報に基づいて、新たな連携サービスで使用するサービスが使用するテーブルを抽出する。スキーマ定義解析機能部２２２は、抽出したテーブルを起点として、参照関係を辿り、抽出したテーブルに関連するすべてのテーブルを抽出する。
【００３３】
スキーマ定義解析機能部２２２は、処理装置９１１を用いて、抽出したテーブルの間のキーの関係を辿り、新たな連携サービスで使用する複数のテーブルの間を結びつけるパスを抽出する。
例えば、スキーマ定義解析機能部２２２は、新たな連携サービスの入力項目にマッピングされた項目を含むテーブルを起点とし、起点としたテーブルに対する参照関係があるテーブル（参照テーブル及び非参照テーブル）のなかに、新たな連携サービスの出力項目にマッピングされた項目を含むテーブル（以下「終点テーブル」と呼ぶ。）があるか否かを判定する。
起点としたテーブルに対する参照関係があるテーブルのなかに終点テーブルがない場合、スキーマ定義解析機能部２２２は、起点としたテーブルに対する参照関係があるテーブルを新たな起点とし、新たな起点としたテーブルに対する参照関係があるテーブルのなかに終点テーブルがあるか否かを判定する。これを繰り返すことにより、スキーマ定義解析機能部２２２は、新たな連携サービスで使用する複数のテーブルの間を結びつけるパスを抽出する。新たな連携サービスで使用する複数のテーブルの間を結びつけるパスが複数ある場合、スキーマ定義解析機能部２２２は、すべてのパスを抽出する構成であってもよいし、パスの長さが短い（キーの連鎖の数が少ない）ものを優先して、所定数のパスを抽出する構成であってもよい。
なお、スキーマ定義解析機能部２２２は、連携サービスの入力項目から出力項目へ向けてテーブルを辿るのではなく、逆に、出力項目から入力項目へ向けてテーブルを辿る構成であってもよい。
【００３４】
連携パターン生成工程Ｓ５０６において、連携パターン推薦機能部２２１は、処理装置９１１を用いて、関連資源抽出工程Ｓ５０５でスキーマ定義解析機能部２２２が抽出したパスに基づいて、ユーザに推薦する連携パターンを生成する。
例えば、連携パターン推薦機能部２２１は、処理装置９１１を用いて、サービス定義記憶部３１０やクエリ定義記憶部３２０が記憶した情報に基づいて、スキーマ定義解析機能部２２２が抽出したパスに含まれるそれぞれのテーブルについて、そのテーブルに属するサービスやクエリをすべて抽出する。連携パターン推薦機能部２２１は、処理装置９１１を用いて、抽出したそれぞれのサービスやクエリについて、推薦するか否かを決定する。例えば、連携パターン推薦機能部２２１は、スキーマ定義解析機能部２２２が抽出したパスにおいてそのテーブルと次のテーブルとを結びつける項目が出力項目に含まれていないサービスやクエリについて、推薦しないと決定する。同様に、連携パターン推薦機能部２２１は、スキーマ定義解析機能部２２２が抽出したパスにおいて前のテーブルとそのテーブルとを結びつける項目が入出力項目に含まれていないサービスやクエリについて、推薦しないと決定する。連携パターン推薦機能部２２１は、このような絞り込みをして残ったサービスやクエリについて、推薦すると決定する。なお、関連するテーブルをまたがるクエリやサービスがある場合には、それらを優先的に推薦すると決定する構成としてもよい。
なお、クエリが利用している入出力項目と、サービスが利用している入出力項目は名称が異なる場合があるので、連携パターン推薦機能部２２１は、サービス定義記憶部３１０が管理しているサービスの入力項目とクエリの入力項目のマッピング定義や、サービスの出力項目とクエリの出力項目のマッピング定義などに基づいて判断をする。
連携パターン推薦機能部２２１は、このようにして判断したテーブルやクエリを、関連資源抽出工程Ｓ５０５でスキーマ定義解析機能部２２２が抽出したパスにしたがって組み合わせることにより、連携パターンを生成する。
【００３５】
連携サービス設計画面生成部２１２は、処理装置９１１を用いて、関連資源抽出工程Ｓ５０５でスキーマ定義解析機能部２２２が抽出したパスや、連携パターン生成工程Ｓ５０６で連携パターン推薦機能部２２１が生成した連携パターンをユーザに提示する連携サービス設計画面を生成する。連携サービス設計画面生成部２１２は、通信装置などの出力装置９１３を用いて、生成した連携サービス設計画面を設計者端末装置１００に対して送信する。
【００３６】
連携パターン確認工程Ｓ５０７において、設計者端末装置１００のクライアントプログラム実行部１１０は、通信装置などの入力装置９１２を用いて、連携パターン生成工程Ｓ５０６で設計支援装置２００が送信した連携サービス設計画面を受信する。クライアントプログラム実行部１１０は、表示装置などの出力装置９１３を用いて、表示している連携サービス設計画面を更新し、受信した連携サービス設計画面を表示する。ユーザは、連携サービス設計画面に表示された連携パターンを見て、新たな連携サービスが利用するサービスやクエリ、サービスの実行順序やサービス間の入出力マッピングの定義を確認する。複数の連携パターンが推薦された場合、ユーザは、そのなかから使用する連携パターンを選択する。クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、ユーザによるインタラクティブな操作を入力することにより、ユーザが選択した連携パターンを入力する。また、ユーザは、必要があれば、選択した連携パターンを修正する。クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、ユーザによるインタラクティブな操作を入力することにより、ユーザによる修正を入力する。
【００３７】
連携サービス登録工程Ｓ５０８において、クライアントプログラム実行部１１０は、マウスなどの入力装置９１２を用いて、ユーザによるインタラクティブな操作を入力することにより、ユーザが選択した連携パターンの修正が完了したことを入力する。クライアントプログラム実行部１１０は、通信装置などの出力装置９１３を用いて、ユーザが選択し修正した連携パターンを設計支援装置２００に対して送信する。
【００３８】
マッピング定義生成工程Ｓ５０９において、設計支援装置２００の連携サービス設計画面生成部２１２は、通信装置などの入力装置９１２を用いて、連携サービス登録工程Ｓ５０８で設計者端末装置１００が送信した連携パターンを受信する。連携サービス設計画面生成部２１２は、処理装置９１１を用いて、サービス管理機能部２３２に対して、受信した連携パターンによる連携サービスの登録を指示する。サービス定義生成機能部２３３は、処理装置９１１を用いて、関連資源抽出工程Ｓ５０５で連携サービス設計画面生成部２１２が受信した新たな連携サービスの入出力項目やマッピング、マッピング定義生成工程Ｓ５０９で連携サービス設計画面生成部２１２が受信した連携パターンなどに基づいて、新たな連携サービスを定義する情報を生成する。サービス定義生成機能部２３３は、例えば、連携サービスの入出力項目やそのマッピングの定義、テーブル間のキーの関係、確定したサービスの入出力関係などに基づいて、サービス間の入出力変数やデータの入出力定義など、連携サービスにおけるサービス間の入出力関係の定義を生成する。
【００３９】
定義情報格納工程Ｓ５１０において、サービス管理機能部２３２は、処理装置９１１を用いて、マッピング定義生成工程Ｓ５０９でサービス定義生成機能部２３３が生成した情報などに基づいて、作成された連携サービスのサービス名や、利用しているサービス名、サービスの実行順序、サービス間の入出力のマッピング定義など、連携サービスを定義する情報を生成する。設計支援情報記憶装置３００のサービス管理情報記憶部３５０は、記憶装置９１４を用いて、サービス管理機能部２３２が生成した情報を記憶する。
【００４０】
次に、具体例を使って、動作を説明する。
【００４１】
図４は、この実施の形態におけるテーブル５８１〜５８５の一例を示す図である。
【００４２】
テーブル５８１〜５８５そのものは、例えば、業務サーバ装置４００の業務データベース記憶部４３０が記憶している。設計支援情報記憶装置３００のＤＢ管理情報記憶部３４０は、テーブル５８１〜５８５の項目や関係などの定義情報を記憶している。
【００４３】
「変圧器」テーブル５８１は、変圧器を管理するためのテーブルである。「変圧器」テーブル５８１は、「設備ＩＤ」「容量」「電気方式」「型番」「メーカー」「製造年月」「設置年月」「点検日」「点検結果」などの項目を有する。「変圧器」テーブル５８１の主キーは、「設備ＩＤ」である。
「電柱」テーブル５８３は、電柱を管理するためのテーブルである。「電柱」テーブル５８３は、「設備ＩＤ」「丈尺」「材質」「所有者」「メーカー」「製造年月」「設置年月」「点検日」「点検結果」などの項目を有する。「電柱」テーブル５８３の主キーは、「設備ＩＤ」である。
「電柱（地図）」テーブル５８５は、地図上に電柱を表示するためのテーブルである。「電柱（地図）」テーブル５８５は、「地物ＩＤ」「住所」「座標」「形状」「大きさ」「表示属性」「色」などの項目を有する。「電柱（地図）」テーブル５８５の主キーは、「地物ＩＤ」である。
【００４４】
「親子管理」テーブル５８２は、電柱と、その電柱に設置された変圧器との関係を管理するためのテーブルである。「親子管理」テーブル５８２は、「親設備ＩＤ」「子設備ＩＤ」などの項目を有する。
「親設備ＩＤ」は、「電柱」テーブル５８３の「設備ＩＤ」と関係づけられた外部キーである。したがって、「変圧器」テーブル５８１と「親子管理」テーブル５８２との間には、参照関係がある。「変圧器」テーブル５８１は、「親子管理」テーブル５８２に対する参照テーブルであり、「親子管理」テーブル５８２は、「変圧器」テーブル５８１に対する非参照テーブルである。
また、「子設備ＩＤ」は、「変圧器」テーブル５８１の「設備ＩＤ」と関係づけられた外部キーである。したがって、「親子管理」テーブル５８２と「電柱」テーブル５８３との間には、参照関係がある。「親子管理」テーブル５８２は、「電柱」テーブル５８３に対する非参照テーブルであり、「電柱」テーブル５８３は、「親子管理」テーブル５８２に対する参照テーブルである。
「親子管理」テーブル５８２の主キーは、「親設備ＩＤ」及び「子設備ＩＤ」である。
【００４５】
「電柱対応表」テーブル５８４は、電柱の設備ＩＤと地物ＩＤとの関係を管理するためのテーブルである。「電柱対応表」テーブル５８４は、「設備ＩＤ」「地物ＩＤ」などの項目を有する。
「設備ＩＤ」は、「電柱」テーブル５８３の「設備ＩＤ」と関係づけられた外部キーである。したがって、「電柱」テーブル５８３と「電柱対応表」テーブル５８４との間には、参照関係がある。「電柱」テーブル５８３は、「電柱対応表」テーブル５８４に対する参照テーブルであり、「電柱対応表」テーブル５８４は、「電柱」テーブル５８３に対する非参照テーブルである。
また、「地物ＩＤ」は、「電柱（地図）」テーブル５８５の「地物ＩＤ」と関係づけられた外部キーである。したがって、「電柱対応表」テーブル５８４と「電柱（地図）」テーブル５８５との間には、参照関係がある。「電柱対応表」テーブル５８４は、「電柱（地図）」テーブル５８５に対する非参照テーブルであり、「電柱（地図）」テーブル５８５は、「電柱対応表」テーブル５８５に対する参照テーブルである。
「電柱対応表」テーブル５８４の主キーは、「設備ＩＤ」及び「地物ＩＤ」である。
【００４６】
ユーザは、ある期間内に点検した結果が不良だった変圧器の位置を地図上に表示するサービスを設計しようとしている。そのため、ユーザは、点検期間の開始日と、点検期間の終了日とを入力とし、点検不良の変圧器が乗っている電柱の座標を出力とする「点検不良変圧器検索サービス」を作成する。
【００４７】
既存資源選択工程Ｓ５０３において、連携サービス設計画面に表示されたテーブルの一覧のなかから、ユーザは、変圧器の点検日を項目として有する「変圧器」テーブル５８１と、電柱の座標を項目として有する「電柱（地図）」テーブル５８５とを選択する。
入出力決定工程Ｓ５０４において、ユーザは、「点検不良変圧器検索サービス」の入力項目として、点検期間の開始日を表わす「Ｓ変圧器点検日」と、点検期間の終了日を表わす「Ｅ変圧器点検日」とを設定する。ユーザは、「点検不良変圧器検索サービス」の出力項目として、変圧器が乗っている電柱の地物ＩＤを表わす「電柱ＩＤ」と、変圧器が乗っている電柱の住所を表わす「住所」と、変圧器が乗っている電柱の座標を表わす「座標」とを設定する。
ユーザは、選択した「変圧器」テーブル５８１及び「電柱（地図）」テーブル５８５の項目のなかから、設定した入出力項目に対応づける項目を選択する。ユーザは、入力項目である「Ｓ変圧器点検日」に、「変圧器」テーブル５８１の項目「点検日」を対応づける。ユーザは、入力項目である「Ｅ変圧器点検日」に、「変圧器」テーブル５８１の項目「点検日」を対応づける。ユーザは、出力項目である「電柱ＩＤ」に、「電柱（地図）」テーブル５８５の項目「地物ＩＤ」を対応づける。ユーザは、出力項目である「住所」に、「電柱（地図）」テーブル５８５の項目「住所」を対応づける。ユーザは、出力項目である「座標」に、「電柱（地図）」テーブル５８５の項目「座標」を対応づける。
【００４８】
図５は、この実施の形態における連携サービス定義情報５５０，５６０の一例を示す図である。
【００４９】
連携サービス定義情報５５０は、新たに作成する連携サービスの入力項目を定義するとともに、それぞれの入力項目が、どのテーブルのどの項目にマッピングされたかを定義する情報である。この例では、「点検不良変圧器箇所検索サービス」の入力項目「Ｓ変圧器点検日」が「変圧器」テーブル５８１の項目「点検日」にマッピングされ、入力項目「Ｅ変圧器点検日」が「変圧器」テーブル５８１の項目「点検日」にマッピングされていることを表わしている。
連携サービス定義情報５６０は、新たに作成する連携サービスの出力項目を定義するとともに、それぞれの出力項目が、どのテーブルのどの項目にマッピングされたかを定義する情報である。この例では、「点検不良変圧器箇所検索サービス」の出力項目「電柱ＩＤ」が「電柱（地図）」テーブル５８５の項目「地物ＩＤ」にマッピングされ、出力項目「住所」が「電柱（地図）」テーブル５８５の項目「住所」にマッピングされ、出力項目「座標」が「電柱（地図）」テーブル５８５の項目「座標」にマッピングされていることを表わしている。
【００５０】
クライアントプログラム実行部１１０は、処理装置９１１を用いて、ユーザの操作により入力した情報に基づいて、連携サービス定義情報５５０，５６０を生成し、設計支援装置２００に対して送信する。
【００５１】
関連資源抽出工程Ｓ５０５において、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、サービス設計画面生成部２１１が受信した連携サービス定義情報５５０，５６０などに基づいて、新たに作成する連携サービスで、少なくとも、「変圧器」テーブル５８１と、「電柱（地図）」テーブル５８５とが使用されることを把握する。
スキーマ定義解析機能部２２２は、処理装置９１１を用いて、ＤＢ管理情報記憶部３４０が記憶した情報に基づいて、「変圧器」テーブル５８１及び「電柱（地図）」テーブル５８５に対する参照テーブル及び非参照テーブルを検索する。その結果、スキーマ定義解析機能部２２２は、「変圧器」テーブル５８１に対する非参照テーブルである「親子管理」テーブル５８２と、「電柱（地図）」テーブル５８５に対する非参照テーブルである「電柱対応表」テーブル５８４とを見つける。スキーマ定義解析機能部２２２は、この２つのテーブル５８２，５８４が、新たに作成する連携サービスに関連するテーブルであると判断する。
次に、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、ＤＢ管理情報記憶部３４０が記憶した情報に基づいて、新たに関連性が判明した「親子管理」テーブル５８２及び「電柱対応表」テーブル５８４に対する参照テーブル及び非参照テーブルを検索する。その結果、スキーマ定義解析機能部２２２は、「親子管理」テーブル５８２に対する参照テーブルである「変圧器」テーブル５８１及び「電柱」テーブル５８３と、「電柱対応表」テーブル５８４に対する参照テーブルである「電柱」テーブル５８３及び「電柱（地図）」テーブル５８５とを見つける。このうち、「変圧器」テーブル５８１及び「電柱（地図）」テーブル５８５は、既に、新たに作成する連携サービスとの関連性が判明しているので、新たに関連性が判明したテーブルは、「電柱」テーブル５８３だけである。
更に、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、ＤＢ管理情報記憶部３４０が記憶した情報に基づいて、新たに関連性が判明した「電柱」テーブル５８３に対する参照テーブル及び非参照テーブルを検索する。その結果、スキーマ定義解析機能部２２２は、「電柱」テーブル５８３に対する非参照テーブルである「親子管理」テーブル５８２及び「電柱対応表」テーブル５８４を見つける。しかし、「親子管理」テーブル５８２及び「電柱対応表」テーブル５８４は、既に、新たに作成する連携サービスとの関連性が判明しているので、新たに関連性が判明したテーブルは、存在しない。これにより、スキーマ定義解析機能部２２２は、新たに作成する連携サービスに関連するテーブルがすべて見つかったと判断する。
なお、サービス設計画面生成部２１１は、スキーマ定義解析機能部２２２が見つけたテーブルの一覧をユーザに提示する連携サービス設計画面を生成する構成であってもよい。
【００５２】
図６は、この実施の形態におけるテーブル間のキーの関係表の一例を示す図である。
【００５３】
関係表は、例えば、番号６１１、主キー６１２、外部キー６１３、参照可能キー６１４などの項目を有する。
主キー６１２は、あるテーブルの主キーであって、他のテーブルから参照されている項目を表わす。
外部キー６１３は、主キー６１２が表わす項目を参照している他のテーブルにおいて、主キー６１２が表わす項目に対応づけられた外部キーである項目を表わす。
参照可能キー６１４は、主キー６１２が表わす項目を参照している他のテーブルにおいて、外部キー６１３が表わす項目以外に存在する外部キーである項目を表わす。
【００５４】
スキーマ定義解析機能部２２２は、処理装置９１１を用いて、新たに作成する連携サービスに関連するテーブルの間の関係を、例えば、この関係表のような形にまとめて整理する。
なお、サービス設計画面生成部２１１は、スキーマ定義解析機能部２２２がまとめた関係表をユーザに提示する連携サービス設計画面を生成する構成であってもよい。
【００５５】
スキーマ定義解析機能部２２２は、処理装置９１１を用いて、新たに作成する連携サービスの入力項目から出力項目へ至るパスを検索する。
まず、スキーマ定義解析機能部２２２は、「点灯不良変圧器箇所検索サービス」の出力項目にマッピングされた項目「地物ＩＤ」「住所」「座標」を有する「電柱（地図）」テーブル５８５を終点テーブルとする。
次に、スキーマ定義解析機能部２２２は、「点灯不良変圧器箇所検索サービス」の入力項目にマッピングされた項目「点検日」を有する「変圧器」テーブル５８１を起点とする。スキーマ定義解析機能部２２２は、起点とした「変圧器」テーブル５８１の主キーや外部キーに対応づけられた外部キーや主キーを有する他のテーブルを検索する。その結果、スキーマ定義解析機能部２２２は、「変圧器」テーブル５８１の主キーである項目「設備ＩＤ」に対応づけられた外部キーである項目「子設備ＩＤ」を有する「親子管理」テーブル５８２を見つける。
次に、スキーマ定義解析機能部２２２は、「親子管理」テーブル５８２を起点とする。スキーマ定義解析機能部２２２は、起点とした「親子管理」テーブル５８２の主キーや外部キーに対応づけられた外部キーや主キーを有する他のテーブルを検索する。その結果、スキーマ定義解析機能部２２２は、「親子管理」テーブル５８２の外部キーである項目「子設備ＩＤ」に対応づけられた主キーである項目「設備ＩＤ」を有する「変圧器」テーブル５８１と、「親子管理」テーブル５８２の外部キーである項目「親設備ＩＤ」に対応づけられた主キーである項目「設備ＩＤ」を有する「電柱」テーブル５８３とを見つける。このうち、「変圧器」テーブル５８１は、既に通過したテーブルなので、新たにたどり着いたテーブルは、「電柱」テーブル５８３である。
そこで、スキーマ定義解析機能部２２２は、今度は「電柱」テーブル５８３を起点とする。スキーマ定義解析機能部２２２は、起点とした「電柱」テーブル５８３の主キーや外部キーに対応づけられた外部キーや主キーを有する他のテーブルを検索する。その結果、スキーマ定義解析機能部２２２は、「電柱」テーブル５８３の主キーである項目「設備ＩＤ」に対応づけられた外部キーである項目「親設備ＩＤ」を有する「親子管理」テーブル５８２と、「電柱」テーブル５８３の主キーである項目「設備ＩＤ」に対応づけられた外部キーである項目「設備ＩＤ」を有する「電柱対応表」テーブル５８４とを見つける。
次に、スキーマ定義解析機能部２２２は、新たにたどり着いたテーブルである「電柱対応表」テーブル５８４を起点とする。スキーマ定義解析機能部２２２は、起点とした「電柱対応表」テーブルの主キーや外部キーに対応づけられた外部キーや主キーを有する他のテーブルを検索する。その結果、スキーマ定義解析機能部２２２は、「電柱対応表」テーブル５８４の外部キーである項目「設備ＩＤ」に対応づけられた主キーである項目「設備ＩＤ」を有する「電柱」テーブル５８３と、「電柱対応表」テーブル５８４の外部キーである項目「地物ＩＤ」に対応づけられた主キーである項目「地物ＩＤ」を有する「電柱（地図）」テーブル５８５とを見つける。このうち、「電柱（地図）」テーブル５８５は、終点テーブルであるから、スキーマ定義解析機能部２２２は、連携サービスの入力項目から出力項目へ至るパスを一つ発見したと判定する。
また、終点テーブル以外に、新たにたどり着いたテーブルがないので、スキーマ定義解析機能部２２２は、パスの検索が終了したと判定する。
【００５６】
なお、パスの検索の途中で、新たにたどりついたテーブルが複数ある場合、そこで、パスの検索が枝分かれする。スキーマ定義解析機能部２２２は、分かれた複数の枝を並行して検索する構成であってもよいし、分かれた枝の検索を保留し、一つずつ順に検索する構成であってもよい。
【００５７】
スキーマ定義解析機能部２２２は、処理装置９１１を用いて、検索したパスのなかに冗長な部分がないか判定する。冗長な部分があると判定した場合、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、冗長な部分を排除する。
上記の例において、「電柱」テーブル５８３は、参照する必要がない。なぜなら、「電柱」テーブル５８３の「設備ＩＤ」は、「親子管理」テーブル５８２の項目「親設備ＩＤ」に対応づけられているとともに、「電柱対応表」テーブル５８４の項目「設備ＩＤ」に対応づけられている。したがって、「親子管理」テーブル５８２の項目「親設備ＩＤ」から、「電柱対応表」テーブル５８４の「設備ＩＤ」へ直接アクセスすることができる。このため、スキーマ定義解析機能部２２２は、処理装置９１１を用いて、検索したパスのなかから、「電柱」テーブル５８３を参照する部分を削除し、「親子管理」テーブル５８２の項目「親設備ＩＤ」と、「電柱対応表」テーブル５８４の項目「設備ＩＤ」とを対応づける。
【００５８】
図７は、この実施の形態におけるスキーマ定義解析機能部２２２が検索したパスの一例を示す図である。
この例におけるパスは、以下の手順により「点検不良変圧器箇所検索サービス」の入力項目から、出力項目へ至ることができることを示している。まず、「変圧器」テーブル５８１を使って、項目「設備ＩＤ」を取得する。次に、「親子管理」テーブル５８２を使って、項目「子設備ＩＤ」が「変圧器」テーブル５８１から取得した項目「設備ＩＤ」に一致するレコードの「親設備ＩＤ」を取得する。次に、「電柱対応表」テーブル５８４を使って、項目「設備ＩＤ」が「親子管理」テーブル５８２から取得した項目「親設備ＩＤ」に一致するレコードの「地物ＩＤ」を取得する。最後に、「電柱（地図）」テーブル５８５を使って、項目「地物ＩＤ］が「電柱対応表」テーブル５８４から取得した項目「地物ＩＤ」に一致するレコードを取得する。
【００５９】
連携サービスを完成させるためには、スキーマ定義解析機能部２２２が検索したパスにおけるテーブルを使った処理の部分を、具体的なクエリやサービスに置き換える必要がある。
【００６０】
連携パターン生成工程Ｓ５０６において、連携パターン推薦機能部２２１は、処理装置９１１を用いて、サービス定義記憶部３１０やクエリ定義記憶部３２０やサービス管理情報記憶部３５０が記憶した情報によって定義された既存のクエリやサービスを検索して、スキーマ定義解析機能部２２２が検索したパスにおけるテーブルを使った処理の部分を、置き換える具体的なクエリやサービスの候補を探す。連携パターン推薦機能部２２１は、処理装置９１１を用いて、見つけた候補のなかから、推薦するクエリやサービスを決定する。
【００６１】
図８は、この実施の形態におけるサービス設計画面生成部２１１が生成する連携サービス設計画面の一例を示す図である。
【００６２】
例えば、連携パターン推薦機能部２２１は、点検不良設備検索クエリを、「変圧器」テーブル５８１を使った処理の具体化候補として決定する。連携パターン推薦機能部２２１は、親設備検索クエリを、「親子管理」テーブル５８２を使った処理の具体化候補として決定する。連携パターン推薦機能部２２１は、地物検索クエリを、「電柱（地図）」テーブル５８５を使った処理の具体化候補として決定する。また、連携パターン推薦機能部２２１は、「電柱対応表」テーブル５８４を使った処理の具体化候補となるクエリやサービスを発見できなかったとする。
【００６３】
サービス設計画面生成部２１１は、処理装置９１１を用いて、スキーマ定義解析機能部２２２が検索したパスと、連携パターン推薦機能部２２１が決定した処理の具体化候補とに基づいて、連携サービス設計画面を生成する。この図における連携サービス設計画面は、スキーマ定義解析機能部２２２が検索したパスにおけるテーブルを使った処理の部分に、連携パターン推薦機能部２２１が決定した処理の具体化候補を当てはめた形式になっている。
この例において、連携パターン推薦機能部２２１は、「電柱対応表」テーブル５８４を使った処理の具体化候補を発見できなかったので、サービス設計画面生成部２１１が生成する連携サービス設計画面において、「電柱対応表」テーブル５８４を使った処理に対応する部分は、「ＸＸＸ＿サービス」のように記載され、空欄になっている。なお、サービス設計画面生成部２１１は、生成する連携サービス設計画面において、空欄部分の色を変えるなどして、ユーザが空欄を埋める必要があることをユーザに確実に知らせることができるような構成としてもよい。
【００６４】
ユーザは、この画面において、クエリの空欄部分にＳＱＬ文を書き入れるなどして、空欄を埋めるなどして、推薦された連携パターンを修正し、完成させる。
【００６５】
また、スキーマ定義解析機能部２２２が検索したパスが複数ある場合や、１つのテーブルを使った処理に対して連携パターン推薦機能部２２１が推薦する具体化候補が複数ある場合、サービス設計画面生成部２１１は、例えば、ユーザによるインタラクティブな操作により、表示する候補を入れ換えることができる連携サービス設計画面を生成する。
その場合、ユーザは、インタラクティブな操作により、表示される候補を入れ換えて、連携サービスで使用するクエリやサービスなどを選択する。
【００６６】
図９は、この実施の形態におけるサービス定義生成機能部２３３が生成する連携サービスの定義情報の一例を示す図である。
【００６７】
この例における定義情報は、連携サービス「点検不良変圧器箇所検索サービス」の定義を表わす。「点検不良変圧器箇所検索サービス」は、「Ｓ変圧器点検日」と「Ｅ変圧器点検日」とを入力し、「電柱ＩＤ」と「住所」と「座標」とを出力する。入力項目「Ｓ変圧器点検日」の値は、内部変数「点検不良変圧器箇所検索サービス．Ｓ変圧器点検日」に代入される。入力項目「Ｅ変圧器点検日」の値は、内部変数「点検不良変圧器箇所検索サービス．Ｅ変圧器点検日」に代入される。「点検不良変圧器箇所検索サービス」は、出力項目「電柱ＩＤ」として、内部変数「地物検索サービス．地物ＩＤ」の値を出力する。「点検不良変圧器箇所検索サービス」は、出力項目「住所」として、内部変数「地物検索サービス．住所」の値を出力する。「点検不良変圧器箇所検索サービス」は、出力項目「座標」として、内部変数「地物検索サービス．座標」の値を出力する。
【００６８】
「点検不良変圧器箇所検索サービス」は、４つのサービス「点検不良設備点検サービス」「親設備検索サービス」「地図変換サービス」「地物検索サービス」を連携させて実現されている。
【００６９】
「点検不良設備点検サービス」は、「Ｓ点検日」と「Ｅ点検日」とを入力し、「変圧器」テーブルを使って、「設備ＩＤ」と「容量」と「電気方式」と「型番」と「メーカー」と「製造年月」と「設置年月」と「点検日」と「点検結果」とを出力する。入力項目「Ｓ点検日」には、内部変数「点検不良変圧器箇所検索サービス．Ｓ変圧器点検日」を介して、「点検不良変圧器箇所検索サービス」の入力項目「Ｓ変圧器点検日」の値が代入される。入力項目「Ｅ点検日」には、内部変数「点検不良変圧器箇所検索サービス．Ｅ変圧器点検日」を介して、「点検不良変圧器箇所検索サービス」の入力項目「Ｅ変圧器点検日」の値が代入される。出力項目「設備ＩＤ」の値は、内部変数「点検不良設備点検サービス．設備ＩＤ」に代入される。それ以外の出力項目の値は、「点検不良変圧器箇所検索サービス」では使用されない。
【００７０】
「親設備検索サービス」は、「子設備ＩＤ」を入力し、「親子管理」テーブルを使って、「親設備ＩＤ」と「子設備ＩＤ」とを出力する。入力項目「子設備ＩＤ」には、内部変数「点検不良設備点検サービス．設備ＩＤ」を介して、「点検不良設備点検サービス」の出力項目「設備ＩＤ」の値が代入される。出力項目「親設備ＩＤ」の値は、内部変数「親設備検索サービス．親設備ＩＤ」に代入される。出力項目「子設備ＩＤ」の値は、「点検不良変圧器箇所検索サービス」では使用されない。
【００７１】
「地図変換サービス」は、「設備ＩＤ」を入力し、「電柱対応表」テーブルを使って、「地物ＩＤ」と「設備ＩＤ」とを出力する。入力項目「設備ＩＤ」には、内部変数「親設備検索サービス．親設備ＩＤ」を介して、「親設備検索サービス」の出力項目「親設備ＩＤ」の値が代入される。出力項目「地物ＩＤ」の値は、内部変数「地図変換サービス．地物ＩＤ」に代入される。出力項目「設備ＩＤ」の値は、「点検不良変圧器箇所検索サービス」では使用されない。
【００７２】
「地物検索サービス」は、「地物ＩＤ」を入力し、「電柱（地図）」テーブルを使って、「地物ＩＤ」と「住所」と「座標」と「形状」と「大きさ」と「表示属性」と「色」とを出力する。入力項目「地物ＩＤ」には、内部変数「地図変換サービス．地物ＩＤ」を介して、「地図変換サービス」の出力項目「地物ＩＤ」の値が代入される。出力項目「地物ＩＤ」の値は、内部変数「地物検索サービス．地物ＩＤ」に代入され、「点検不良変圧器箇所検索サービス」の出力項目「電柱ＩＤ」として出力される。出力項目「住所」の値は、内部変数「地物検索サービス．住所」に代入され、「点検不良変圧器箇所検索サービス」の出力項目「住所」として出力される。出力項目「座標」の値は、内部変数「地物検索サービス．座標」に代入され、「点検不良変圧器箇所検索サービス」の出力項目「座標」として出力される。それ以外の出力項目の値は、「点検不良変圧器箇所検索サービス」では使用されない。
【００７３】
なお、内部変数の名前は、他の内部変数と区別できれば、他の名前であってもよい。
また、内部変数を介さず、あるサービスの出力項目を他のサービスに直接入力する構成であってもよい。
【００７４】
以上のようにして、設計支援システム８００は、ユーザが、連携サービスを設計することを支援する。
【００７５】
この実施の形態における設計支援装置２００は、サービス定義とクエリ定義とスキーマ定義を管理することにより、サービスの連携パターンを推薦する。
サービス推薦部２２０は、サービス間に直接関連がなくても、クエリやスキーマの関係から関連するサービスを推薦できる。
設計支援装置２００は、データを連携させるために必要なサービスが存在しない場合においても、データベース構造から不足するサービスを検出し、ユーザに通知できる。
サービス推薦部２２０は、不足するサービスがある場合にも、そのサービスを組込んだ形で連携サービスを推薦できる。
【００７６】
データベースのテーブル間の構造を基に連携パターンを推薦するので、過去の連携パターンがなくても連携パターンを推薦可能とすることができる。
また、連携に必要なサービスが不足していた場合には、その箇所をユーザに通知し、クエリの内容を定義しサービスインタフェースを定義させることで、不足しているサービスが組み込まれることを想定した上で連携パターンを推薦することができる。
【００７７】
実施の形態２．
実施の形態２について、図１０〜図１８を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【００７８】
図１０は、この実施の形態における設計支援システム８０１の構成の一例を示す図である。
【００７９】
設計支援システム８０１（支援システム）は、端末装置１０１と、支援装置２０１とを有する。
端末装置１０１は、連携部品（連携サービス）を設計する利用者が操作する装置である。支援装置２０１は、利用者が連携部品を設計するのを支援する装置である。端末装置１０１及び支援装置２０１は、例えば、実施の形態１で説明したコンピュータ９１０である。端末装置１０１と支援装置２０１とは、インターネットなどのネットワークやその他の通信回線などを介して接続している。
【００８０】
端末装置１０１は、マウスなどの入力装置９１２を用いて、利用者の操作を入力することにより、利用者が設計しようとしている連携部品の入力項目や出力項目を入力する。また、端末装置１０１は、マウスなどの入力装置９１２を用いて、利用者の操作を入力することにより、利用者が設計しようとしている連携部品の入力項目や出力項目が、既存の部品（連携サービスやサービスやテーブルなど）の項目のうちどの項目に対応しているかを入力する。端末装置１０１は、通信装置などの出力装置９１３を用いて、入力した連携部品の入力項目を表わす連携部品入力項目データと、それぞれの入力項目が既存のどの部品のどの項目に対応するのかを表わす入力対応データとを、支援装置２０１に対して送信する。端末装置１０１は、通信装置などの出力装置９１３を用いて、入力した連携部品の出力項目を表わす連携部品出力項目データと、それぞれの出力項目が既存のどの部品のどの項目に対応するのかを表わす出力対応データとを、支援装置２０１に対して送信する。
また、端末装置１０１は、通信装置などの入力装置９１２を用いて、支援装置２０１が探索した連携パターンを利用者に提示する画面を表わす連携パターンデータを受信する。端末装置１０１は、表示装置などの出力装置９１３を用いて、受信した連携パターンデータが表わす画面を表示する。
端末装置１０１は、マウスなどの入力装置９１２を用いて、利用者の操作を入力することにより、表示した画面によって提示され連携パターンをもとにして利用者が作成した連携パターンを入力する。端末装置１０１は、通信装置などの出力装置９１３を用いて、入力した連携パターンを表わす作成パターンデータを、支援装置２０１に対して送信する。
【００８１】
支援装置２０１は、例えば、部品定義記憶部２５１と、項目対応定義記憶部２５２と、入力対応入力部２６１と、出力対応入力部２６２と、作成パターン入力部２６３と、経路探索部２７１と、連携パターン生成部２７２と、部品定義生成部２７３と、連携パターン出力部２８１とを有する。
【００８２】
部品定義記憶部２５１は、記憶装置９１４を用いて、使用可能な既存の部品の定義を表わす部品定義データを、あらかじめ複数記憶している。それぞれの部品定義データは、１つの部品を表わす。部品定義記憶部２５１は、使用可能な既存の部品の数と同じ数の部品定義データを記憶している。部品は、いくつかの項目を入力し、入力した項目に対してなんらかの処理をして、処理した結果であるいくつかの項目を出力する。例えば、部品は、データベースに登録されたテーブルを参照して、入力項目が表わす条件に合致するレコードを検索し、検索したレコードのフィールドを出力項目として出力する。このような部品をテーブル使用部品と呼ぶ。なお、部品は、テーブル使用部品に限らず、スクリプト言語やその他のプログラミング言語によって記述された処理を実行するものであってもよい。また、部品は、複数の部品による処理を組み合わせた連携部品であってもよい。連携部品は、ある部品が出力した項目を入力項目として別の部品に入力することにより、複数の部品を連結し、全体として、単独の部品よりも複雑な処理を実現したものである。
また、利用者が新しい連携部品などの部品を作成した場合、部品定義記憶部２５１は、記憶装置９１４を用いて、その部品を表わす部品定義データを、追加して記憶する。利用者が新しい部品を作成するたび、部品定義記憶部２５１が記憶している部品定義データの数が増えていく。
【００８３】
項目対応定義記憶部２５２は、記憶装置９１４を用いて、部品定義記憶部２５１が記憶した部品の入力項目や出力項目の対応関係を項目対応定義データを複数記憶している。それぞれの項目対応定義データは、対応する項目である入出力項目を表わす。対応する項目とは、例えば、ある部品が出力する項目を、入力項目として別の部品に入力することができる場合をいう。すなわち、ある部品の出力項目と、別の部品の入力項目とが対応している場合、その２つの部品を連結することができる。なお、ある部品の１つの出力項目に対して、対応する入力項目を有する他の部品が複数ある場合もある。また、ある部品の１つの入力項目に対して、対応する出力項目を有する他の部品が複数ある場合もある。すなわち、項目の対応関係は、多対多の関係である。
【００８４】
入力対応入力部２６１は、通信装置などの入力装置９１２を用いて、端末装置１０１が送信した連携部品入力項目データと、入力対応データとを受信する。
出力対応入力部２６２は、通信装置などの入力装置９１２を用いて、端末装置１０１が送信した連携部品出力項目データと、出力対応データとを受信する。
【００８５】
経路探索部２７１は、処理装置９１１を用いて、部品定義記憶部２５１が記憶した複数の部品定義データと、項目対応定義記憶部２５２が記憶した複数の項目対応定義データと、入力対応入力部２６１が受信した連携部品入力項目データ及び入力対応データと、出力対応入力部２６２が受信した連携部品出力項目データ及び出力対応データとに基づいて、複数の部品を連結することにより、連携部品の入力項目に対応する項目から、連携部品の出力項目に対応する項目へ至る経路を探索する。
【００８６】
連携パターン生成部２７２は、処理装置９１１を用いて、経路探索部２７１が探索した経路に基づいて、利用者が作成しようとしている連携部品を構成するために考えられる連携パターンを利用者に対して提示する画面を表わす連携パターンデータを生成する。
連携パターン出力部２８１は、通信装置などの出力装置９１３を用いて、連携パターン生成部２７２が生成した連携パターンデータを、端末装置１０１に対して送信する。
【００８７】
作成パターン入力部２６３は、通信装置などの入力装置９１２を用いて、連携パターン出力部２８１が送信した連携パターンデータが表わす画面を利用者が見て、利用者が作成した連携パターンを表わす作成パターンデータを受信する。
部品定義生成部２７３（連携部品定義生成部）は、処理装置９１１を用いて、作成パターン入力部２６３が受信した作成パターンデータに基づいて、利用者が作成した連携部品などの部品の定義を表わす部品定義データを生成する。部品定義記憶部２５１は、記憶装置９１４を用いて、部品定義生成部２７３が生成した部品定義データを、新たに追加して記憶する。また、部品定義生成部２７３は、処理装置９１１を用いて、利用者が新たに作成した連携部品などの部品の入力項目や出力項目が、既存の部品の入力項目や出力項目のうちどれに対応するかに基づいて、項目対応定義記憶部２５２が記憶した項目対応定義データを更新する。項目対応定義記憶部２５２は、記憶装置９１４を用いて、部品定義生成部２７３が更新した項目対応定義データを記憶する。
【００８８】
図１１は、この実施の形態における部品定義記憶部２５１が記憶した部品定義データ８５０の一例を示す図である。
【００８９】
この例に示した部品定義データ８５０は、連携部品を表わす。連携部品についての部品定義データ８５０は、例えば、部品識別子８５１と、入力項目データ群８６０と、出力項目データ群８７０と、処理手順データ８８０とを含む。
部品識別子８５１は、部品定義データ８５０によって定義される部品を、一意に識別するためのデータである。
入力項目データ群８６０は、例えば、必須入力項目データ８６１や、任意入力項目データ８６２を含む。必須入力項目データ８６１は、その部品が必ず入力する必須入力項目を表わす入力項目データである。入力項目データ群８６０は、必須入力項目データ８６１を含んでも含まなくてもよく、複数の必須入力項目データ８６１を含んでもよい。任意入力項目データ８６２は、その部品が入力してもしなくてもよい任意入力項目を表わす入力項目データである。入力項目データ群８６０は、任意入力項目データ８６２を含んでも含まなくてもよく、複数の任意入力項目データ８６２を含んでもよい。それぞれの入力項目データは、１つの入力項目を表わす。入力項目データ群８６０は、その部品が入力する必須入力項目の数と同じ数の必須入力項目データ８６１を含み、その部品が入力する任意入力項目の数と同じ数の任意入力項目データ８６２を含む。入力項目データは、例えば、入力項目の名称を表わす入力項目名称データを含む。
出力項目データ群８７０は、例えば、出力項目データ８７１を含む。出力項目データ８７１は、その部品が出力する出力項目を表わす。出力項目データ群８７０は、少なくとも１つの出力項目データ８７１を含む。出力項目データ群８７０は、複数の出力項目データ８７１を含んでもよい。それぞれの出力項目データ８７１は、１つの出力項目を表わす。出力項目データ群８７０は、その部品が出力する出力項目の数と同じ数の出力項目データ８７１を含む。出力項目データ８７１は、例えば、出力項目の名称を表わす出力項目名称データを含む。
【００９０】
処理手順データ８８０は、その部品がする処理の手順を表わす。連携部品についての処理手順データ８８０は、処理の手順として、連携部品のどの入力項目をどの部品に入力するか、どの部品の出力項目を入力項目として別の部品に入力するか、どの部品の出力項目を連携部品の出力項目として出力するかなどを表わす。処理手順データ８８０は、例えば、複数の使用部品データ８８１と、出力マッピングデータ群８８４とを含む。
それぞれの使用部品データ８８１は、その連携部品が使用する部品の１つを表わす。処理手順データ８８０は、その連携部品が使用する部品の数と同じ数の使用部品データ８８１を含む。使用部品データ８８１は、使用部品識別子８８２と、入力マッピングデータ８８３とを含む。使用部品識別子８８２は、他の部品の識別データであり、その連携部品が使用する他の部品を示す。入力マッピングデータ８８３は、使用部品識別子８８２によって示される他の部品の入力項目に入力する項目（連携部品の入力項目や、更に他の部品の出力項目など）を表わす。使用部品データ８８１は、少なくとも、使用部品識別子８８２によって示される他の部品の必須入力項目の数と同じ数の入力マッピングデータ８８３を含み、多くとも、その部品の必須入力項目の数と任意入力項目の数との合計と同じ数の入力マッピングデータ８８３を含む。それぞれの入力マッピングデータ８８３は、その部品の１つの入力項目について、その入力項目に割り付ける項目を表わす。
出力マッピングデータ群８８４は、その連携部品の出力項目として、どの部品のどの出力項目を出力するかを表わす。出力マッピングデータ群８８４は、出力マッピングデータ８８５を含む。出力マッピングデータ群８８４は、出力項目データ群８７０に含まれる出力項目データ８７１の数、すなわち、その連携部品が出力する出力項目の数と同じ数の出力マッピングデータ８８５を含む。それぞれの出力マッピングデータ８８５は、その連携部品の１つの出力項目について、その出力項目に割り付ける他の部品の出力項目を表わす。
【００９１】
図１２は、この実施の形態における処理手順データ８８０によって表わされる連携部品の処理手順の一例を示す図である。
この例において、連携部品は、３つの部品Ａ〜Ｃを連結することによって実現される。連携部品は、２つの必須入力項目Ａ，Ｂと、１つの任意入力項目Ａとを入力し、２つの出力項目Ａ，Ｂを出力する。
部品Ａは、少なくとも２つの入力項目と、少なくとも２つの出力項目とを有する。部品Ａの入力項目の一つには、連携部品の必須入力項目Ｂが入力される。部品Ａのもう一つの入力項目には、連携部品の任意入力項目Ａが入力される。なお、任意入力項目Ａは入力されない場合があるので、任意入力項目が入力される部品Ａの入力項目は、任意入力項目でなれけばならない。また、部品Ａは、この２つ以外に入力項目を有していてもよいが、この２つの入力項目以外の入力項目には、何も入力されないので、やはり任意入力項目でなければならない。
部品Ｂは、少なくとも２つの入力項目と、少なくとも２つの出力項目とを有する。部品Ｂの入力項目の一つには、連携部品の必須入力項目Ａが入力される。部品Ｂのもう一つの入力項目には、部品Ａの出力項目の一つが入力される。この２つの入力項目は、必須入力項目であってもよいし、任意入力項目であってもよい。なお、部品Ｂは、この２つ以外に入力項目を有していてもよいが、この２つの入力項目以外の入力項目には何も入力されないので、任意入力項目でなければならない。
部品Ｃは、少なくとも２つの入力項目と、少なくとも１つの出力項目とを有する。部品Ｃの入力項目の一つには、部品Ｂの出力項目の一つが入力される。部品Ｃのもう一つの入力項目には、部品Ａのもう一つの出力項目が入力される。
部品Ｂのもう一つの出力項目は、連携部品の出力項目Ａとして、出力される。部品Ｃの出力項目は、連携部品の出力項目Ｂとして、出力される。
なお、部品Ａ〜Ｃは、上記以外に出力項目を有していてもよい。上記以外の出力項目は、単に使用されないだけである。
【００９２】
図１３は、この実施の形態における部品定義記憶部２５１が記憶した部品定義データ８５０の別の例を示す図である。
【００９３】
この例に示した部品定義データ８５０が表わす部品は、連携部品ではなく、単独の部品である。単独の部品についての部品定義データ８５０は、連携部品の場合と同様、部品識別子８５１と、入力項目データ群８６０と、出力項目データ群８７０と、処理手順データ８８０とを含む。このうち、部品識別子８５１、入力項目データ群８６０、出力項目データ群８７０は、連携部品についての部品定義データ８５０に含まれる部品識別子８５１、入力項目データ群８６０、出力項目データ群８７０と同様である。
単独の部品についての処理手順データ８８０は、処理の手順として、その部品がする具体的な処理の内容を表わす。処理手順データ８８０は、例えば、その部品がする具体的な処理の内容を表わす処理内容データ８８７を含む。その部品がテーブル使用部品である場合、処理内容データ８８７は、例えば、ＳＱＬ文を表わす。その場合、その部品がする処理は、そのＳＱＬ文を使ってデータベースにアクセスすることである。あるいは、処理内容データ８８７は、スクリプト言語などのプログラミング言語によって記述されたプログラムを表わす。その場合、その部品がする処理は、そのプログラムを実行することである。
【００９４】
図１４は、この実施の形態における部品定義記憶部２５１が記憶した部品定義データ８５０の更に別の例を示す図である。
【００９５】
この例に示した部品定義データ８５０は、その部品が使用するテーブルのみが定義され、その部品がする処理の手順が定義されていない特別なテーブル使用部品を表わす。部品定義データ８５０は、例えば、部品識別子８５１と、使用テーブルデータ８９０とを含み、処理手順データ８８０を含まない。
使用テーブルデータ８９０は、その部品が使用するテーブルを示す。使用テーブルデータ８９０は、例えば、テーブル情報データ８９１と、フィールドデータ８９２とを含む。
テーブル情報データ８９１は、その部品が使用するテーブルにアクセスするための情報を表わす。テーブル情報データ８９１は、例えば、データベースの所在を表わすアドレスや、そのデータベース内におけるテーブルの名称などを表わす。また、テーブル情報データ８９１は、そのデータベースにアクセスするためのユーザ名やパスワードなどの情報を含んでいてもよい。
フィールドデータ８９２は、そのテーブルのフィールドを表わす。使用テーブルデータ８９０は、そのテーブルのフィールドのうち利用可能なフィールドの数と同じ数のフィールドデータ８９２を含む。それぞれのフィールドデータ８９２は、そのテーブルの１つのフィールドを表わす。フィールドデータ８９２は、例えば、そのフィールドの名称を表わすフィールド名称データを含む。
なお、フィールドデータ８９２は、支援装置２０１の処理を高速化するため、そのテーブルを含むデータベースにアクセスせずにそのテーブルのフィールドを知るために用意されているものであり、使用テーブルデータ８９０は、フィールドデータ８９２を含まない構成であってもよい。その場合、支援装置２０１は、データベースにアクセスして、そのテーブルにどのようなフィールドがあるかを取得すればよい。
【００９６】
テーブル使用部品が使用するテーブルのフィールドは、部品が入力あるいは出力する項目に相当する。ただし、処理の手順が定義されていないので、どのフィールドが入力項目になり、どのフィールドが出力項目になるかは、決まっていない。すなわち、すべてのフィールドが任意入力項目であると同時に、すべてのフィールドが出力項目であるということができる。
【００９７】
なお、部品定義記憶部２５１は、使用可能なすべてのデータベースの使用可能なすべてのテーブルについて、処理手順が定義されていないテーブル使用部品を表わす部品定義データを記憶している。
【００９８】
図１５は、この実施の形態における項目対応定義記憶部２５２が記憶した項目対応定義データ９３０の一例を示す図である。
【００９９】
項目対応定義データ９３０は、例えば、対応出力項目データ９４０と、対応入力項目データ９５０と、対応フィールドデータ９６０とを含む。
項目対応定義データ９３０は、対応出力項目データ９４０を含んでも含まなくてもよく、複数の対応出力項目データ９４０を含んでもよい。それぞれの対応出力項目データ９４０は、対応する複数の項目のうちの１つの出力項目を表わす。対応出力項目データ９４０は、例えば、対応出力部品識別子９４１と、対応出力項目名称データ９４２とを含む。対応出力部品識別子９４１は、部品定義記憶部２５１が記憶した複数の部品定義データ８５０のうちいずれかの部品定義データ８５０に含まれる部品識別子８５１であり、その出力項目を出力する部品を示す。対応出力項目名称データ９４２は、その部品の出力項目のうち、対応する出力項目の名称を表わす。
項目対応定義データ９３０は、対応入力項目データ９５０を含んでも含まなくてもよく、複数の対応入力項目データ９５０を含んでもよい。それぞれの対応入力項目データ９５０は、対応する複数の項目のうちの１つの入力項目を表わす。対応入力項目データ９５０は、例えば、対応入力部品識別子９５１と、対応入力項目名称データ９５２とを含む。対応入力部品識別子９５１は、部品定義記憶部２５１が記憶した複数の部品定義データ８５０のうちいずれかの部品定義データ８５０に含まれる部品識別子８５１であり、その入力項目を入力する部品を示す。対応入力項目名称データ９５２は、その部品の入力項目のうち、対応する入力項目の名称を表わす。
項目対応定義データ９３０は、対応フィールドデータ９６０を含んでも含まなくてもよく、複数の対応フィールドデータ９６０を含んでもよい。それぞれの対応フィールドデータ９６０は、対応する複数の項目のうちの１つの項目を表わす。なお、対応フィールドデータ９６０が表わす項目は、処理手順が定義されていないテーブル使用部品の項目、すなわち、使用するテーブルのフィールドを表わす。上述したように、処理手順が定義されていないテーブル使用部品において、使用するテーブルのフィールドは、入力項目にもなり得るし、出力項目にもなり得る。対応フィールドデータ９６０は、例えば、対応テーブル識別子９６１と、対応フィールド名称データ９６２とを含む。対応テーブル識別子９６１は、部品定義記憶部２５１が記憶した複数の部品定義データ８５０のうち、処理手順が定義されていないテーブル使用部品を表わす部品定義データ８５０のいずれかに含まれる部品識別子８５１であり、そのフィールドを有するテーブルを使用するテーブル使用部品を表わす。対応フィールド名称データ９６２は、そのテーブルのフィールドのうち、対応するフィールドの名称を表わす。
１つの項目対応定義データ９３０は、対応出力項目データ９４０が表わす出力項目と、対応入力項目データ９５０が表わす入力項目と、対応フィールドデータ９６０が表わすフィールドとが対応していることを表わす。
【０１００】
図１６は、この実施の形態における端末装置１０１が支援装置２０１に対して送信する入出力項目対応データ９７０の一例を示す図である。
【０１０１】
入出力項目対応データ９７０は、利用者が作成しようとしている連携部品の入力項目及び出力項目が、既存のどの部品のどの入力項目及び出力項目に対応するかを表わす。入出力項目対応データ９７０は、例えば、入力対応データ９８０と、出力対応データ９９０とを含む。
入出力項目対応データ９７０は、少なくとも１つの入力対応データ９８０を含む。それぞれの入力対応データ９８０は、連携部品が入力する１つの入力項目を表わす。入力対応データ９８０は、例えば、入力対応部品データ９８１と、入力対応項目データ９８２とを有する。入力対応部品データ９８１は、部品定義記憶部２５１が記憶した複数の部品定義データ８５０のうちいずれかの部品定義データ８５０に含まれる部品識別子８５１であり、連携部品の入力項目に対応する入力項目を有する部品を示す。入力対応項目データ９８２は、その部品の入力項目のうち、連携部品の入力項目に対応する入力項目の名称を表わす。端末装置１０１が送信した入力対応データ９８０は、支援装置２０１の入力対応入力部２６１が入力する。
入出力項目対応データ９７０は、少なくとも１つの出力対応データ９９０を含む。それぞれの出力対応データ９９０は、連携部品が出力する１つの出力項目を表わす。出力対応データ９９０は、例えば、出力対応部品データ９９１と、出力対応項目データ９９２とを有する。出力対応部品データ９９１は、部品定義記憶部２５１が記憶した複数の部品定義データ８５０のうちいずれかの部品定義データ８５０に含まれる部品識別子８５１であり、連携部品の出力項目に対応する出力項目を有する部品を示す。出力対応項目データ９９２は、その部品の出力項目のうち、連携部品の出力項目に対応する出力項目の名称を表わす。端末装置１０１が送信した出力対応データ９９０は、支援装置２０１の出力対応入力部２６２が入力する。
【０１０２】
図１７は、この実施の形態における支援処理Ｓ７００の流れの一例を示すフローチャート図である。
【０１０３】
支援処理Ｓ７００において、支援装置２０１は、利用者が新しい連携部品を作成するのを支援する。支援処理Ｓ７００は、例えば、入出力項目入力工程Ｓ７１０と、経路探索工程Ｓ７２０と、連携パターン生成工程Ｓ７３０と、連携パターン出力工程Ｓ７４０と、作成パターン入力工程Ｓ７５０と、部品定義生成工程Ｓ７６０と、部品定義記憶工程Ｓ７７０とを有する。
【０１０４】
入出力項目入力工程Ｓ７１０において、入力対応入力部２６１は、入力装置９１２を用いて、端末装置１０１が送信した入出力項目対応データ９７０のうち入力対応データ９８０を入力する。出力対応入力部２６２は、入力装置９１２を用いて、端末装置１０１が送信した入出力項目対応データ９７０のうち出力対応データ９９０を入力する。
経路探索工程Ｓ７２０において、経路探索部２７１は、処理装置９１１を用いて、入出力項目入力工程Ｓ７１０で入力対応入力部２６１が入力した入力対応データ９８０や出力対応入力部２６２が入力した出力対応データ９９０、あらかじめ部品定義記憶部２５１が記憶した部品定義データ８５０や項目対応定義記憶部２５２が記憶した項目対応定義データ９３０などに基づいて、連携部品の入力項目から出力項目へ至る経路を探索する。
連携パターン生成工程Ｓ７３０において、連携パターン生成部２７２は、処理装置９１１を用いて、経路探索工程Ｓ７２０で経路探索部２７１が探索した経路に基づいて、連携パターンデータを生成する。
連携パターン出力工程Ｓ７４０において、連携パターン出力部２８１は、出力装置９１３を用いて、連携パターン生成工程Ｓ７３０で連携パターン生成部２７２が生成した連携パターンデータを端末装置１０１に対して出力する。
作成パターン入力工程Ｓ７５０において、作成パターン入力部２６３は、入力装置９１２を用いて、端末装置１０１が送信した作成パターンデータを入力する。
部品定義生成工程Ｓ７６０において、部品定義生成部２７３は、処理装置９１１を用いて、作成パターン入力工程Ｓ７５０で作成パターン入力部２６３が入力した作成パターンデータに基づいて、新たに作成された部品を定義する部品定義データ８５０を生成し、項目対応定義記憶部２５２が記憶した項目対応定義データ９３０を更新する。
部品定義記憶工程Ｓ７７０において、部品定義記憶部２５１は、記憶装置９１４を用いて、部品定義生成工程Ｓ７６０で部品定義生成部２７３が生成した部品定義データ８５０を記憶する。項目対応定義記憶部２５２は、記憶装置９１４を用いて、部品定義生成工程Ｓ７６０で部品定義生成部２７３が更新した項目対応定義データ９３０を記憶する。
【０１０５】
図１８は、この実施の形態における経路探索工程Ｓ７２０の流れの一例を示すフローチャート図である。
【０１０６】
経路探索工程Ｓ７２０は、例えば、終点選択工程Ｓ７２１と、再帰処理Ｓ７２２と、経路構築工程Ｓ７２９とを有する。再帰処理Ｓ７２２は、例えば、入力項目選択工程Ｓ７２３と、起点判定工程Ｓ７２４と、中断判定工程Ｓ７２５と、対応出力部品判定工程Ｓ７２６と、対応出力部品選択工程Ｓ７２７と、判定工程Ｓ７２８とを有する。
【０１０７】
終点選択工程Ｓ７２１において、経路探索部２７１は、処理装置９１１を用いて、入出力項目入力工程Ｓ７１０で出力対応入力部２６２が入力した出力対応データ９９０に基づいて、利用者が新たに作成しようとしている連携部品の出力項目に対応する出力項目を有する既存の部品のなかから、まだ選択していない部品を選択する。
すべての部品が選択済であり、選択すべき部品がない場合、経路探索部２７１は、経路探索工程Ｓ７２０を経路構築工程Ｓ７２９へ進める。
まだ選択していない部品がある場合、経路探索部２７１は、処理装置９１１を用いて、まだ選択していない部品のなかから、部品を１つ選択する。経路探索部２７１は、処理装置９１１を用いて、選択した部品について、再帰処理Ｓ７２２を呼び出す。
呼び出した再帰処理Ｓ７２２から戻ったのち、経路探索部２７１は、終点選択工程Ｓ７２１を繰り返し、次の部品を選択する。
【０１０８】
経路探索部２７１は、呼び出された再帰処理Ｓ７２２の処理を、入力項目選択工程Ｓ７２３から開始する。
入力項目選択工程Ｓ７２３において、経路探索部２７１は、処理装置９１１を用いて、部品定義記憶部２５１が記憶した部品定義データ８５０のなかから、再帰処理Ｓ７２２の呼び出し元で選択した部品についての部品定義データ８５０を取得する。経路探索部２７１は、処理装置９１１を用いて、取得した部品定義データ８５０に基づいて、その部品が入力する入力項目のなかから、まだ選択していない入力項目を選択する。
すべての入力項目が選択済であり、選択すべき入力項目がない場合、経路探索部２７１は、再帰処理Ｓ７２２を判定工程Ｓ７２８へ進める。
まだ選択していない入力項目がある場合、経路探索部２７１は、処理装置９１１を用いて、まだ選択していない入力項目のなかから、入力項目を１つ選択する。経路探索部２７１は、再帰処理Ｓ７２２を起点判定工程Ｓ７２４へ進める。
なお、処理手順が定義されていないテーブル使用部品の場合、経路探索部２７１は、処理装置９１１を用いて、使用しているテーブルのフィールドを任意入力項目として選択する。
【０１０９】
起点判定工程Ｓ７２４において、経路探索部２７１は、処理装置９１１を用いて、入出力項目入力工程Ｓ７１０で出力対応入力部２６２が入力した入力対応データ９８０に基づいて、入力項目選択工程Ｓ７２３で選択した入力項目が、利用者が新たに作成しようとしている連携部品の入力項目に対応する入力項目であるか否かを判定する。
選択した入力項目が連携部品の入力項目に対応する入力項目である場合、経路探索部２７１は、再帰処理Ｓ７２２を入力項目選択工程Ｓ７２３に戻し、次の入力項目を選択する。
選択した入力項目が連携部品の入力項目に対応する入力項目でない場合、経路探索部２７１は、再帰処理Ｓ７２２を中断判定工程Ｓ７２５へ進める。
【０１１０】
中断判定工程Ｓ７２５において、経路探索部２７１は、処理装置９１１を用いて、経路探索を中断するか否かを判定する。例えば、再帰処理Ｓ７２２を呼び出す深さの上限をあらかじめ定めておき、再帰処理Ｓ７２２を呼び出した深さが所定の上限に達している場合、経路探索部２７１は、処理装置９１１を用いて、経路探索を中断すると判定する。
経路探索を中断すると判定した場合、経路探索部２７１は、記憶装置９１４を用いて、入力項目選択工程Ｓ７２３で選択した入力項目について、経路探索に失敗したことを記憶する。経路探索部２７１は、再帰処理Ｓ７２２を入力項目選択工程Ｓ７２３に戻し、次の入力項目を選択する。
経路探索を中断せうず継続すると判定した場合、経路探索部２７１は、再帰処理Ｓ７２２を対応出力部品判定工程Ｓ７２６へ進める。
【０１１１】
対応出力部品判定工程Ｓ７２６において、経路探索部２７１は、処理装置９１１を用いて、項目対応定義記憶部２５２が記憶した項目対応定義データ９３０に基づいて、入力項目選択工程Ｓ７２３で選択した入力項目に対応する出力項目を有する部品の一覧を取得する。経路探索部２７１は、処理装置９１１を用いて、取得した一覧のなかに、後述する判定工程Ｓ７２８で起点に到達可能であると判定した部品があるか否かを判定する。
取得した一覧のなかに、起点に到達可能な部品がある場合、経路探索部２７１は、記憶装置９１４を用いて、入力項目選択工程Ｓ７２３で選択した入力項目について、経路探索に成功したことを記憶する。経路探索部２７１は、再帰処理Ｓ７２２を入力項目選択工程Ｓ７２３に戻し、次の入力項目を選択する。
取得した一覧のなかに、起点に到達可能な部品がない場合、経路探索部２７１は、再帰処理Ｓ７２２を対応出力部品選択工程Ｓ７２７へ進める。
【０１１２】
対応出力部品選択工程Ｓ７２７において、経路探索部２７１は、処理装置９１１を用いて、対応出力部品判定工程Ｓ７２６で取得した一覧に含まれる部品のうち、後述する判定工程Ｓ７２８で起点に到達可能か否かをまだ判定していない部品であって、まだ選択していない部品を選択する。
起点に到達可能か否かをまだ判定していない部品がすべて選択済であり、まだ選択していない部品がない場合、経路探索部２７１は、処理装置９１１を用いて、入力項目選択工程Ｓ７２３で選択した入力項目について、経路探索に失敗したことを記憶する。経路探索部２７１は、再帰処理Ｓ７２２を入力項目選択工程Ｓ７２３に戻し、次の入力項目を選択する。
起点に到達可能か否かをまだ判定していない部品で、まだ選択していない部品がある場合、経路探索部２７１は、処理装置９１１を用いて、そのなかから部品を１つ選択する。経路探索部２７１は、処理装置９１１を用いて、選択した部品について、再帰処理Ｓ７２２を再帰的に呼び出す。
呼び出した再帰処理Ｓ７２２から戻ったのち、経路探索部２７１は、処理装置９１１を用いて、選択した部品についての再帰処理Ｓ７２２における判定結果に基づいて、その部品が起点に到達可能な部品であるか否かを判定する。
その部品が起点に到達可能な部品であると判定した場合、経路探索部２７１は、記憶装置９１４を用いて、入力項目選択工程Ｓ７２３で選択した入力項目について、経路探索に成功したことを記憶する。経路探索部２７１は、再帰処理Ｓ７２２を入力項目選択工程Ｓ７２３に戻し、次の入力項目を選択する。
その部品が起点に到達可能な部品でないと判定した場合、経路探索部２７１は、処理装置９１１を用いて、対応出力部品選択工程Ｓ７２７を繰り返し、次の部品を選択する。
【０１１３】
判定工程Ｓ７２８において、経路探索部２７１は、処理装置９１１を用いて、再帰処理Ｓ７２２の呼び出し元で選択した部品が、起点に到達可能な部品であるか否かを判定する。その部品の入力項目に必須入力項目が含まれる場合、すべての必須入力項目について経路探索に成功していれば、経路探索部２７１は、その部品が起点に到達可能であると判定する。また、その部品が、処理手順が定義されていないテーブル使用部品である場合など、入力項目に必須入力項目が含まれず、すべての入力項目が任意入力項目である場合、いずれかの任意入力項目について経路探索に成功していれば、経路探索部２７１は、その部品が起点に到達可能であると判定する。それ以外の場合、経路探索部２７１は、その部品が起点に到達可能でないと判定する。経路探索部２７１は、記憶装置９１４を用いて、その部品についての判定結果を記憶する。経路探索部２７１は再帰処理Ｓ７２２を終了し、経路探索工程Ｓ７２０を呼び出し元に戻す。
【０１１４】
経路構築工程Ｓ７２９において、経路探索部２７１は、処理装置９１１を用いて、起点に到達可能であると判定した部品を辿ることにより、連携部品の入力項目から出力項目へ至る経路を構築する。
【０１１５】
このようにして、それぞれの部品が、連携部品の入力項目に対応する入力項目に到達可能であるか否かを判定することにより、連携部品の入力項目から出力項目へ至る経路を見つけることができる。
処理手順が定義されていないテーブル使用部品について、使用するテーブルの任意のフィールドを、そのテーブル使用部品の入力項目及び出力項目とすることができるものとして、経路を探索する。そのテーブルを使用するテーブル使用部品について、処理の手順がまだ定義されていなくても、共通するテーブルのフィールドであれば、なんらかの処理により、入力項目と出力項目として結びつけることができると考えられる。そこで、処理手順が定義されていないテーブル使用部品を通る経路も、探索対象とすることにより、連携部品の入力項目から出力項目へ至る経路が見つかる可能性が高まる。
【０１１６】
このようにして見つけた経路に基づいて、連携パターンを生成し、利用者に提示することにより、利用者は、その連携パターンを多少修正することにより、簡単に連携部品を作成することができる。
例えば、利用者は、提示された連携パターンのなかに、処理手順が定義されていないテーブル使用部品が含まれている場合、例えばＳＱＬ文を使って、そのテーブル使用部品の処理手順を定義する。
【０１１７】
以上、各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成であってもよいし、本質的でない部分の構成を、他の構成で置き換えた構成であってもよい。
【０１１８】
以上説明した支援装置（２０１；設計支援装置２００、設計支援情報記憶装置３００）は、複数の部品を組み合わせて構成される連携部品の作成を支援する。
支援装置は、データを記憶する記憶装置（９１４）と、データを処理する処理装置（９１１）と、データを入力する入力装置（９１２）と、データを出力する出力装置（９１３）と、部品定義記憶部（２５１；サービス定義記憶部３１０、クエリ定義記憶部３２０、サービス管理情報記憶部３５０）と、項目対応定義記憶部（２５２；スキーマ定義記憶部３３０）と、入力対応入力部（２６１；サービス設計部２１０）と、出力対応入力部（２６２；サービス設計部２１０）と、経路探索部（２７１；スキーマ定義解析機能部２２２）と、連携パターン出力部（２８１；サービス設計部２１０）とを有する。
上記部品定義記憶部は、上記記憶装置を用いて、複数の部品それぞれについて、上記部品が入力する項目を表わす入力項目データと、入力した項目に基づく処理をした結果として上記部品が出力する項目を表わす出力項目データとを含む部品定義データを記憶する。
上記項目対応定義記憶部は、上記記憶装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうちいずれかの部品定義データに含まれる入力項目データが表わす項目と、他の部品定義データに含まれる出力項目データが表わす項目との間の対応関係を表わす項目対応定義データを記憶する。
上記入力対応入力部は、上記入力装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうち、上記連携部品が入力する項目に対応する項目を入力する部品についての部品定義データを示す入力対応部品データを含む入力対応データを入力する。
上記出力対応入力部は、上記入力装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データのうち、上記連携部品が出力する項目に対応する項目を出力する部品についての部品定義データを示す出力対応部品データを含む出力対応データを入力する。
上記経路探索部は、上記処理装置を用いて、上記部品定義記憶部が記憶した複数の部品定義データと、上記項目対応定義記憶部が記憶した項目対応定義データと、上記入力対応入力部が入力した入力対応データと、上記出力対応入力部が入力した出力対応データとに基づいて、ある部品が出力する項目と他の部品が入力する対応する項目とを接続して複数の部品を連結することにより、上記連携部品が入力する項目に対応する項目を入力する部品から上記連携部品が出力する項目に対応する項目を出力する部品まで至る経路を探索する。
上記連携パターン出力部は、上記出力装置を用いて、上記経路探索部が探索した経路を含む連携パターンを利用者に提示する画面を表わす連携パターンデータを出力する。
【０１１９】
複数の部品を連結することにより、連携部品が入力する項目に対応する項目を入力する部品から連携部品が出力する項目に対応する項目を出力する部品までの経路を経路探索部が探索するので、利用者が、その経路をもとにして容易に連携部品を作成することができる。
【０１２０】
以上説明した支援装置（２０１；２００，３００）において、上記部品定義記憶部（２５１；３１０，３２０，３５０）が記憶した複数の部品定義データのうち少なくともいずれかは、データベースに登録されたテーブルを使用するテーブル使用部品を表わす。
【０１２１】
テーブル使用部品は、データベースに登録されたテーブルを使用するので、テーブルのフィールドを入力項目や出力項目にすることができる。また、データベースに設定されたリレーションシップを、項目対応定義記憶部が記憶する項目対応定義データとして利用したり、リレーションシップに基づいて項目対応定義データを容易に生成したりすることができる。このため、利用者が容易に連携部品を作成することができる。
【０１２２】
以上説明した支援装置（２０１；２００，３００）において、上記テーブル使用部品を表わす部品定義データのうち少なくともいずれかは、上記テーブル使用部品がする処理の手順を表わす処理手順データを含む。
上記連携パターン出力部（２８１；２１０）が出力する連携パターンデータが表わす画面は、上記経路探索部（２７１；２２２）が探索した経路に含まれる部品が上記テーブル使用部品である場合、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含めば、上記処理手順データが表わす処理の手順を上記利用者に提示する。また、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含まなければ、上記テーブル使用部品がする処理の入力を促す。
【０１２３】
テーブル使用部品がする処理の手順が定義されていなくても、その部品を通る経路を経路探索部が探索するので、経路が見つかりやすい。このため、利用者が、その経路をもとにして容易に連携部品を作成できる。
【０１２４】
以上説明した支援装置（２０１；２００，３００）において、上記テーブル使用部品を表わす部品定義データは、上記テーブル使用部品が使用するテーブルを示す使用テーブルデータを含む。
上記経路探索部（２７１；２２２）は、上記処理装置（９１１）を用いて、上記テーブル使用部品を表わす部品定義データが上記処理手順データを含まない場合、上記使用テーブルデータによって示されるテーブルのフィールドのうち任意のフィールドを上記テーブル使用部品が入力する項目及び上記テーブル使用部品が出力する項目とすることができるものとして、上記経路を探索する。
【０１２５】
処理の手順が定義されていないテーブル使用部品について、使用するテーブルの任意のフィールドが、そのテーブル使用部品の入力項目または出力項目であるものとして、経路探索部が経路を探索するので、経路が見つかりやすい。このため、利用者が、その経路をもとにして容易に連携部品を作成できる。
【０１２６】
以上説明した支援装置（２０１；２００，３００）は、更に、作成パターン入力部（２６３；サービス設計部２１０）と、連携部品定義生成部（部品定義生成部２７３；サービス定義生成機能部２３３）とを有する。
上記作成パターン入力部は、上記入力装置（９１２）を用いて、上記連携パターン出力部（２８１；２１０）が出力した連携パターンデータが表わす画面によって上記利用者に提示された連携パターンに基づいて上記利用者が作成した連携パターンを表わす作成パターンデータを入力する。
上記連携部品定義生成部は、上記処理装置（９１１）を用いて、上記作成パターン入力部が入力した作成パターンデータに基づいて、上記作成パターンデータが表わす連携パターンを使った連携部品についての部品定義データを生成する。
上記部品定義記憶部（２５１；３１０，３２０，３５０）は、上記記憶装置（９１４）を用いて、上記連携部品定義生成部が生成した部品定義データを記憶する。
【０１２７】
支援装置による支援に基づいて利用者が作成した新しい連携部品についての部品定義データを、連携部品定義生成部が生成し、部品定義記憶部が記憶するので、新しい連携部品を利用者が作成するたびに、部品定義記憶部が記憶している部品定義データが増えていく。これにより、利用者が更に複雑な連携部品を作成することができる。
【０１２８】
以上説明した支援システム（設計支援システム８０１；８００）は、上記支援装置（２０１；２００，３００）と、利用者が操作する端末装置（１０１；設計者端末装置１００）とを有する。
上記端末装置は、上記連携パターン出力部が出力した連携パターンデータが表わす画面を表示する。
【０１２９】
端末装置が表示した画面を見て、利用者が連携部品を作成するので、容易に連携部品を作成することができる。
【符号の説明】
【０１３０】
１００  設計者端末装置、１０１  端末装置、１１０  クライアントプログラム実行部、２００  設計支援装置、２０１  支援装置、２１０  サービス設計部、２１１  サービス設計画面生成部、２１２  連携サービス設計画面生成部、２２０  サービス推薦部、２２１  連携パターン推薦機能部、２２２  スキーマ定義解析機能部、２３０  データ管理部、２３１  ＤＢ管理機能部、２３２  サービス管理機能部、２３３  サービス定義生成機能部、２５１  部品定義記憶部、２５２  項目対応定義記憶部、２６１  入力対応入力部、２６２  出力対応入力部、２６３  作成パターン入力部、２７１  経路探索部、２７２  連携パターン生成部、２７３  部品定義生成部、２８１  連携パターン出力部、３００  設計支援情報記憶装置、３１０  サービス定義記憶部、３２０  クエリ定義記憶部、３３０  スキーマ定義記憶部、３４０  ＤＢ管理情報記憶部、３５０  サービス管理情報記憶部、４００  業務サーバ装置、４１０  業務アプリケーションプログラム実行部、４２０  サービスプログラム実行部、４３０  業務データベース記憶部、５５０，５６０  連携サービス定義情報、５８１〜５８５  テーブル、６１１  番号、６１２  主キー、６１３  外部キー、６１４  参照可能キー、８００，８０１  設計支援システム、８５０  部品定義データ、８５１  部品識別子、８６０  入力項目データ群、８６１  必須入力項目データ、８６２  任意入力項目データ、８７０  出力項目データ群、８７１  出力項目データ、８８０  処理手順データ、８８１  使用部品データ、８８２  使用部品識別子、８８３  入力マッピングデータ、８８４  出力マッピングデータ群、８８５  出力マッピングデータ、８８７  処理内容データ、８９０  使用テーブルデータ、８９１  テーブル情報データ、８９２  フィールドデータ、９１０  コンピュータ、９１１  処理装置、９１２  入力装置、９１３  出力装置、９１４  記憶装置、９３０  項目対応定義データ、９４０  対応出力項目データ、９４１  対応出力部品識別子、９４２  対応出力項目名称データ、９５０  対応入力項目データ、９５１  対応入力部品識別子、９５２  対応入力項目名称データ、９６０  対応フィールドデータ、９６１  対応テーブル識別子、９６２  対応フィールド名称データ、９７０  入出力項目対応データ、９８０  入力対応データ、９８１  入力対応部品データ、９８２  入力対応項目データ、９９０  出力対応データ、９９１  出力対応部品データ、９９２  出力対応項目データ、Ｓ５００  連携サービス設計支援処理、Ｓ５０１  新規連携サービス作成選択工程、Ｓ５０２  既存資源一覧提示工程、Ｓ５０３  既存資源選択工程、Ｓ５０４  入出力決定工程、Ｓ５０５  関連資源抽出工程、Ｓ５０６，Ｓ７３０  連携パターン生成工程、Ｓ５０７  連携パターン確認工程、Ｓ５０８  連携サービス登録工程、Ｓ５０９  マッピング定義生成工程、Ｓ５１０  定義情報格納工程、Ｓ７００  支援処理、Ｓ７１０  入出力項目入力工程、Ｓ７２０  経路探索工程、Ｓ７２１  終点選択工程、Ｓ７２２  再帰処理、Ｓ７２３  入力項目選択工程、Ｓ７２４  起点判定工程、Ｓ７２５  中断判定工程、Ｓ７２６  対応出力部品判定工程、Ｓ７２７  対応出力部品選択工程、Ｓ７２８  判定工程、Ｓ７２９  経路構築工程、Ｓ���４０  連携パターン出力工程、Ｓ７５０  作成パターン入力工程、Ｓ７６０  部品定義生成工程、Ｓ７７０  部品定義記憶工程。
【図１】
0005631270.tif 000002
【図２】
0005631270.tif 000003
【図３】
0005631270.tif 000004
【図４】
0005631270.tif 000005
【図５】
0005631270.tif 000006
【図６】
0005631270.tif 000007
【図７】
0005631270.tif 000008
【図８】
0005631270.tif 000009
【図９】
0005631270.tif 000010
【図１０】
0005631270.tif 000011
【図１１】
0005631270.tif 000012
【図１２】
0005631270.tif 000013
【図１３】
0005631270.tif 000014
【図１４】
0005631270.tif 000015
【図１５】
0005631270.tif 000016
【図１６】
0005631270.tif 000017
【図１７】
0005631270.tif 000018
【図１８】
0005631270.tif 000019