JP2013073400A - サービスモジュール生成プログラム、該装置、及びサービス情報管理方法 - Google Patents
サービスモジュール生成プログラム、該装置、及びサービス情報管理方法 Download PDFInfo
- Publication number
- JP2013073400A JP2013073400A JP2011211604A JP2011211604A JP2013073400A JP 2013073400 A JP2013073400 A JP 2013073400A JP 2011211604 A JP2011211604 A JP 2011211604A JP 2011211604 A JP2011211604 A JP 2011211604A JP 2013073400 A JP2013073400 A JP 2013073400A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- service
- information
- difference
- input
- 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.)
- Withdrawn
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】サービスモジュールの変更に応じて、インターフェースを管理する技術を提供する。
【解決手段】コンピュータに、格納部に格納された第1のソースコードと、第1のソースコードよりも前のバージョンの第2のソースコードに基づいて、第1のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義と、第2のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義との差分を示す差分情報を生成し、生成した差分情報を外部装置に送信する処理を実行させることにより、上記課題の解決を図る。
【選択図】図1
【解決手段】コンピュータに、格納部に格納された第1のソースコードと、第1のソースコードよりも前のバージョンの第2のソースコードに基づいて、第1のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義と、第2のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義との差分を示す差分情報を生成し、生成した差分情報を外部装置に送信する処理を実行させることにより、上記課題の解決を図る。
【選択図】図1
Description
本明細書は、サービス情報管理技術に関する。
近年、SOA(Service Oriented Architecture、サービス指向アーキテクチャ)の普及により、独立した複数の業務システムで提供される機能を組み合わせ、1つの業務処理として提供する処理形態へのニーズが高まっている。SOAは、アプリケーションソフトウェア又はその機能の一部を共通の「サービス」としてコンポーネント化(部品化)し、それらサービスを必要に応じて組み合わせることにより、新たなシステムを構築しようという設計手法である。
SOA(Service Oriented Architecture)によるサービス情報管理では、企業のネットワーク内にどのようなWebサービスがあり、どのようなインターフェースであるかの情報(以降、サービスIFと呼ぶ)がデータベースで管理されている。
そのようなWebサービス及びサービスIFに関する情報をユーザが手動で登録するには、手間がかかり、また登録漏れが発生しやすいため、自動的に情報を収集することが求められている。そこで、例えば、次のモニタシステムを利用することができる。
そのモニタシステムの技術では、まず、コンピュータ・ネットワーク上で所定のサービスを提供するサービスシステムに新たにモニタサーバを導入する。また、サービスのサーバにはモニタサーバと通信可能なモニタ埋め込みモジュールを組み込む。モニタサーバは、サービスシステムの各サーバのモニタ埋め込みモジュールに対してサーバの動作状況の報告を要求するとともに、その応答を受信してこれに対応する処理を実行する。このことにより、サービスの情報を自動的にモニタサーバが収集することができるようになる。
サービスの変更のためサービスIFに変更があった場合、その変更による影響は、サービスIF間の不整合のため他のサービスにも及ぶ。そのため、サービスの情報管理においては、サービスの名前や稼動場所などの基本情報に加え、サービスIFにどのような変化があったか検出し、利用者に知らせることが求められている。
しかしながら、上記モニタシステムの技術は、サービス稼動時の動作状況を、サービス自身に埋め込まれたプログラムロジックが取得して、情報通知を行う技術である。そのため、上記モニタシステムの技術では、サービスの変更があった場合に、インターフェースの不整合を検知し管理することはできなかった。
1つの側面では、本発明は、サービスモジュールの変更に応じて、インターフェースを管理する技術を提供する。
サービスモジュールプログラムは、コンピュータに、次の処理を実行させる。コンピュータは、格納部に格納された第1のソースコードと、該第1のソースコードよりも前のバージョンの第2のソースコードに基づいて、差分情報を生成する。差分情報は、第1のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義と、第2のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義との差分を示す。コンピュータは、生成した前記差分情報を外部装置に送信する。
1実施態様によれば、サービスモジュールの変更に応じて、インターフェースを管理することができる。
上記モニタシステムの技術では、サービスのモジュール作成時に、そのモジュールに自身の動作状況の情報を送信/受信するライブラリ・ルーチンが埋め込まれる。モジュール稼動時には、その動作状況の情報がモニタ用の別ソフトウェア(以降、モニタサーバと呼ぶ)に対して送信される。
仮に、個々のサービスモジュールごとに、サービスIFの情報又は過去のサービスIFとの相違点に関する情報を送信するようなロジックを埋め込むこととする。これにより、個々のサービスモジュールごとに、サービスIFの情報又は過去のサービスIFとの相違点に関する情報を送信することができる。
このとき、個々のサービスごとにIF情報が異なり、さらに、そのIF情報はサービスの実装方法が変更されたときに変更となる可能性がある。しかしながら、どのサービスについても、自動でサービスIFの情報又は過去のサービスIFとの相違点に関する情報を送信することを可能とする技術はなかった。
そこで、本実施形態では、上記モニタシステムの技術に対し、モニタサーバからサービス情報管理用のデータベースに情報を書き込むロジックを加えることにより、サービスの情報を、データベースに自動的に反映する技術について説明する。
図1は、本実施形態におけるサービスモジュール生成装置を示す。サービスモジュール生成装置1は、格納部2、コード取得部3、インターフェース定義作成部4、差分取得部5、送信コード埋め込み部6、コンパイル処理部7を含む。
格納部2には、サービスモジュールのソースコードが格納されている。格納部2の一例は、格納部17である。
コード取得部3は、格納部2から、第1のソースコードと、第1のソースコードの以前のバージョンの第2のソースコードを取得する。コード取得部3の一例は、プレコンパイラ12である。
コード取得部3は、格納部2から、第1のソースコードと、第1のソースコードの以前のバージョンの第2のソースコードを取得する。コード取得部3の一例は、プレコンパイラ12である。
インターフェース定義作成部4は、第1のソースコードから第1のインターフェース関数を抽出し、第1のインターフェース関数の入出力パラメータを用いて第1のインターフェース定義を作成する。インターフェース定義作成部4は、第2のソースコードから第2のインターフェース関数を抽出し、第2のインターフェース関数の入出力パラメータを用いて第2のインターフェース定義を作成する。インターフェース定義作成部4の一例は、解析部14である。
差分取得部5は、第1のインターフェース定義と第2のインターフェース定義との差分を差分情報として取得する。差分取得部5の一例は、解析部14である。
送信コード埋め込み部6は、差分情報を含むサービス情報を外部装置に送信する送信コードを、第1のソースコードに埋め込む。送信コード埋め込み部6の一例は、埋込み部15である。外部装置の一例は、モニタサーバ22である。
送信コード埋め込み部6は、差分情報を含むサービス情報を外部装置に送信する送信コードを、第1のソースコードに埋め込む。送信コード埋め込み部6の一例は、埋込み部15である。外部装置の一例は、モニタサーバ22である。
コンパイル処理部7は、送信コードを書き込んだ第1のソースコードをコンパイルする。コンパイル処理部7の一例は、コンパイラ16である。
差分情報は、新たに追加され、削除され、または変更されたインターフェースかを示す種別情報と、インターフェース名と、入出力パラメータのデータ型を含む。
差分情報は、新たに追加され、削除され、または変更されたインターフェースかを示す種別情報と、インターフェース名と、入出力パラメータのデータ型を含む。
このように構成することにより、変更後と変更前のソースコードのIF定義の差分をモニタモジュールに送信する送信コードを、変更後のソースコードに埋め込んだサービスモジュールを生成することができる。
なお、本実施形態では、送信コード埋め込み部6を用いて、差分情報を含むサービス情報を外部装置に送信する送信コードを、第1のソースコードに埋め込んだが、これに限定されない。例えば、差分取得部5により取得した差分情報を外部装置に送信するようにしてもよい。すなわち、サービスモジュール生成装置1は、格納部に格納された第1のソースコードと、第1のソースコードよりも前のバージョンの第2のソースコードに基づいて、差分情報を生成する。ここで、差分情報は、第1のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義と、第2のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義との差分を示す。そして、サービスモジュール生成装置1は、生成した差分情報を外部装置に送信するようにしてもよい。
この場合、差分情報は、差分の種別を示す種別情報と、インターフェース名と、前記入出力パラメータのデータ型と、を含む。差分の種別は、追加、削除、または変更である。
サービスモジュール生成装置1は、さらに、差分情報を外部装置に送信させる送信コードを前記第1のソースコードに追加する。サービスモジュール生成装置1は、送信コードを追加した第1のソースコードをコンパイルする。
サービスモジュール生成装置1は、さらに、差分情報を外部装置に送信させる送信コードを前記第1のソースコードに追加する。サービスモジュール生成装置1は、送信コードを追加した第1のソースコードをコンパイルする。
以下では、本実施形態の詳細を説明する。
図2は、本実施形態におけるサービスモジュール生成装置の構成の一例を示す。サービスモジュール生成装置11は、プレコンパイラ12、コンパイラ16、格納部17を含む。格納部17には、サービスモジュールのソースコード18が格納されている。コンパイラ16は、サービスモジュールのソースコード18をコンパイルしてオブジェクトコードを生成するプログラムである。
図2は、本実施形態におけるサービスモジュール生成装置の構成の一例を示す。サービスモジュール生成装置11は、プレコンパイラ12、コンパイラ16、格納部17を含む。格納部17には、サービスモジュールのソースコード18が格納されている。コンパイラ16は、サービスモジュールのソースコード18をコンパイルしてオブジェクトコードを生成するプログラムである。
プレコンパイラ12は、サービスモジュールのソースコード18のコンパイル前に、動作するプログラムである。プレコンパイラ12は、ID生成部13、解析部14、埋め込み部15を含む。ID生成部13、解析部14、埋め込み部15の機能については、図3を用いて説明する。
図3は、本実施形態におけるサービスモジュール生成装置によるコンパイル処理のフローを示す。以下では、図2を参照しながら、図3について説明する。
プレコンパイラ12は、コンパイラ16の前処理として、格納部17に格納されたサービスモジュールのソースコード18を読み出す(S1)。すると、ID生成部13は、格納部17から読み出したサービスモジュールのソースコード18に、サービスモジュールを識別するための識別情報(モジュールID)が割り当てられていない場合、モジュールIDを生成する。ID生成部13は、その読み出したソースコード18に対して、その生成したモジュールIDを割り当てる(S2)。
プレコンパイラ12は、コンパイラ16の前処理として、格納部17に格納されたサービスモジュールのソースコード18を読み出す(S1)。すると、ID生成部13は、格納部17から読み出したサービスモジュールのソースコード18に、サービスモジュールを識別するための識別情報(モジュールID)が割り当てられていない場合、モジュールIDを生成する。ID生成部13は、その読み出したソースコード18に対して、その生成したモジュールIDを割り当てる(S2)。
解析部14は、そのソースコード18を解析し、サービスIF定義を取得する。サービスIF定義とは、そのソースコード18をコンパイルして得られるサービスモジュールで用いられているインターフェース関数に入力されるパラメータ及びそのインターフェース関数が出力するパラメータに関して定義された情報である。また、解析部14は、その取得したサービスIF定義と、以前のバージョンのソースコード18aのサービスIF定義と比較し、サービスIF定義の差分を抽出する(S3)。
埋め込み部15は、サービスIF定義の差分情報を含むサービス情報を自動送信するコードを、その解析したソースコード18に埋め込む(S4)。
コンパイラ16は、S4においてサービスIF定義の差分情報を含むサービス情報を自動送信するコードを埋め込まれたソースコード18をコンパイルし、サービスモジュールを生成する(S5)。
コンパイラ16は、S4においてサービスIF定義の差分情報を含むサービス情報を自動送信するコードを埋め込まれたソースコード18をコンパイルし、サービスモジュールを生成する(S5)。
このように、サービスモジュールのソースコードのコンパイル前にサービスIF情報を解析し、その結果の情報と、その情報を送信するコードを、そのソースコード18に埋め込む。これにより、稼動されたサービスモジュールのサービスIFの変更情報の自動送信が可能となる。
なお、サービスモジュール変更前のサービスIF定義を取得する方法については、例えば、次のいずれかの方法を用いることができる。第1の方法としては、サービスモジュールのソースコード18のバージョンの管理がされた格納部17から変更前のバージョンのソースコードを取り出し、サービスモジュール変更前のサービスIF定義を生成する方法がある。第2の方法としては、最初にプレコンパイラ12を実行したときに、サービスIF定義をテキストデータとしてコメント行として埋め込んでおき、次回のプレコンパイル時からはそのコメント行からサービス変更前のサービスIF定義を取り出す方法がある。
コンパイル後、サービスモジュールのソースコードがコンパイルされて得られたサービスモジュールは、所定のサーバにインストールされる。そのサーバ上でサービスモジュールが稼動した場合、そのサービスモジュールは、どのサービスのどのインターフェースが変更されたかという情報を送信することができる。これについて、図4を用いて説明する。
図4は、本実施形態におけるサービス実行時のネットワークの構成例を示す。サーバ21には、サービスモジュール20がインストールされている。サービスモジュール20は、サービスIF定義の差分情報を含むサービス情報を自動送信するコードが埋め込められたソースコードがコンパイルされて得られたサービスモジュールである。
モニタサーバ22は、モニタモジュール23とサービス情報管理データベース(DB)24を含む。モニタモジュール23は、サーバ21のサービスモジュール20から送信される差分情報を含むサービス情報を収集する。モニタモジュール23は、収集したサービス情報をサービス情報管理DB24に格納する。
これにより、オペレータは、サービス情報管理DB24を参照することにより、サービスモジュールのサービスIFの変更を確認することができる。また、モニタサーバ22は、サービス情報管理DB24に格納したサービス情報を、予め登録された関係者(例えば、情報システムの管理者、メンテナンス担当者、システムエンジニア等)の端末にe-mailなどの手段を用いて通知するようにしてもよい。
図5は、サービスモジュールが稼動しているサーバから、モニタサーバへ送信されるサービス情報の構成の一例を示す。サービス情報30は、モジュールID31、バージョン番号32、サービス名33、差分情報1(34−1)、差分情報2(34−2)、差分情報3(34−3)・・・を含む。以下では、差分情報1(34−1)、差分情報2(34−2)、差分情報3(34−3)・・・を総称して、差分情報34と称する。
モジュールID31には、サービスモジュールを識別するIDが設定される。バージョン情報32には、サービスモジュールのバージョン番号が設定される。サービス名33には、サービスモジュールの名称が設定される。差分情報34には、変更前のサービスモジュールのソースコード18aのサービスIF定義と変更後のサービスモジュールのソースコード18のサービスIF定義の差分が設定される。
差分情報34は、変更種別35、インターフェース名36、パラメータ型37−1、パラメータ型37−2、パラメータ形37−3、・・・を含む。
変更種別には、「追加」、「削除」、「変更」などの種別が設定される。「追加」は、新たに追加されたインターフェースであることを示す種別情報である。「削除」は、削除されたインターフェースであることを示す種別情報である。「変更」は、パラメータ等が変更されたインターフェース情報であることを示す種別情報である。
変更種別には、「追加」、「削除」、「変更」などの種別が設定される。「追加」は、新たに追加されたインターフェースであることを示す種別情報である。「削除」は、削除されたインターフェースであることを示す種別情報である。「変更」は、パラメータ等が変更されたインターフェース情報であることを示す種別情報である。
インターフェース名36には、サービスIFの名称が設定される。パラメータ型37(37−1,37−2,37−3,・・・)には、サービスIFで用いられるパラメータのデータ型が設定される。
上記では、サービスモジュールの生成、及び利用について説明した。以下では、サービスモジュールの生成について、さらに詳述する。
図6は、変更前後のサービスモジュールのサービスIF定義の一例を示す。図6(A)は、変更前のサービスモジュールのサービスIF定義40aである。図6(B)は、変更後のサービスモジュールのサービスIF定義40bの一例である。サービスIF定義40a,40bは、「モジュールID」41、「バージョン」42、「サービス名」43、「IF名」44、「パラメータリスト」45を含む。
図6は、変更前後のサービスモジュールのサービスIF定義の一例を示す。図6(A)は、変更前のサービスモジュールのサービスIF定義40aである。図6(B)は、変更後のサービスモジュールのサービスIF定義40bの一例である。サービスIF定義40a,40bは、「モジュールID」41、「バージョン」42、「サービス名」43、「IF名」44、「パラメータリスト」45を含む。
「モジュールID」41には、サービスモジュールを識別するIDが設定される。「バージョン」42には、サービスモジュールのバージョン番号が設定される。「サービス名」43には、サービスモジュールの名称が設定される。「IF名」44には、サービスIFの名称が設定される。「パラメータリスト」45には、サービスIFで用いられるパラメータのデータ型が設定される。
次に、サービスモジュールの作成について、さらに詳述する。
図7は、図3の処理の詳細を示すフローである。以下では、図2を用いて、図7を説明する。
図7は、図3の処理の詳細を示すフローである。以下では、図2を用いて、図7を説明する。
プレコンパイラ12は、格納部17よりサービスモジュールのソースコード18を取得する(S11)。ID生成部13は、取得したソースコード18のコメント行にモジュールIDと、バージョン番号とが埋め込まれているか検索する(S12)。
S12での検索の結果、取得したソースコードのコメント行にモジュールIDと、バージョン番号が埋め込まれていなかった場合(S13で「No」)、ID生成部13は、一意のモジュールIDと、バージョン番号を生成する(S18)。S18の処理では、例えば、UUID(Universal Unique IDentifier)等の技術を用いてもよい。バージョン番号の初期値は、例えば、「1.0」であるとする。
ID生成部13は、その取得したソースコード18中のコメント行に、生成したモジュールIDと、バージョン番号を埋め込む(S19)。解析部14は、ソースコード18を解析し、サービスIF定義を抽出する(S20)。その後、S21の処理が実行される。
S12での検索の結果、取得したソースコード18のコメント行にモジュールIDと、バージョン番号が埋め込まれていた場合(S13で「Yes」)、解析部14は、バージョン番号をカウントアップする(S14)。それから、解析部14は、その埋め込められたモジュールIDをキーとして、格納部17よりその埋め込められたバージョン番号の直近のバージョン番号を含むソースコード18aを取得する(S15)。例えば、取得したソースコード18のモジュールIDが「00000103-0000-0010-8000-00AA006D2EA4」、バージョン番号が「2」の場合、解析部14は、次の処理を実行する。すなわち、解析部14は、そのモジュールIDをキーとして、格納部17よりバージョン番号「2」の直近のバージョン番号「1」のソースコード18aを取得する。
解析部14は、ソースコード18を解析して、ソースコード18のサービスモジュールのIF関数を抽出する。解析部14は、そのIF関数の入出力パラメータに基づいて、サービスIF定義を作成する。ソースコード18を解析して抽出されたサービスIF定義が、例えば、図6(B)であるとする。また、解析部14は、ソースコード18aを解析して、ソースコード18aのサービスモジュールのIF関数を抽出する。解析部14は、そのIF関数の入出力パラメータに基づいて、サービスIF定義を作成する(S16)。ソースコード18aを解析して抽出されたサービスIF定義が、例えば、図6(A)であるとする。
解析部14は、ソースコード18のサービスIF定義と、ソースコード18aのサービスIF定義を比較して、その差分情報を抽出する(S17)。図6(A)に示すように、変更前のサービスモジュール「Service1」は、IF「Multiply」を含む。また、図6(B)に示すように、変更後のサービスモジュール「Service1」は、IF「Multiply」及びIF「Divide」を含む。
図6(A)と図6(B)を比較すると、図6(B)のサービスIF定義は、IF「Divide」が追加されている点が図6(A)のサービスIF定義と異なる。そこで、解析部14は、差分情報として、図6(B)のIF「Divide」を含むレコードを抽出する。その後、S21の処理が実行される。
S17またはS20の処理終了後、埋め込み部15は、情報をモニタモジュール23に送信するための情報送信コードをソースコード18に埋め込む。その際、埋め込み部15は、図5に示すフォーマットを用いて、サービスモジュールのモジュールID31、新バージョン番号32、サービス名33、サービスIF定義の差分情報34を含むサービス情報30を生成する。埋め込み部15は、そのサービス情報30を送信用データとして、情報送信コードに加える(S21)。このとき、図6の例では、変更後のソースコードに、IF「Divide」が追加されているので、変更種別35には、「追加」が設定される。
埋め込み部15は、S21において変更を加えたソースコード18を格納部17にコピーする(S22)。コンパイラ16は、S21において変更を加えたソースコード18をコンパイルし、サービスモジュール20を生成する(S23)。
このようにして、変更前のサービスIF定義と変更後のサービスIF定義との差分を取得し、その差分を含むサービス情報を送信する情報送信コードを変更後のソースコードに埋め込むことができる。
次に、S21において変更を加えたソースコード18をコンパイルして得られたサービスモジュール20の利用について、図8を用いて、説明する。
図8は、サービス実行時における、サービスモジュール、モニタモジュール、及びサービス情報管理DBの処理フローを示す。図8は、図4のサービスモジュール20、モニタモジュール23、及びサービス情報管理DB24の処理フローを示す。モニタモジュール23、及びサービス情報管理DB24は、モニタサーバ22に格納されている。
図8は、サービス実行時における、サービスモジュール、モニタモジュール、及びサービス情報管理DBの処理フローを示す。図8は、図4のサービスモジュール20、モニタモジュール23、及びサービス情報管理DB24の処理フローを示す。モニタモジュール23、及びサービス情報管理DB24は、モニタサーバ22に格納されている。
まず、サーバ21は、サービスモジュール20を実行し、サービスの実行を開始させる(S31)。すると、サービスモジュール20は、自身に埋め込められた情報送信コードに基づいて、サービス情報30を送信する(サービス情報登録処理)(S32)。
その後、サービスモジュール20は、本来のサービス処理を実行し(S33)、サービス処理が終了する(S34)。
モニタサーバ22において、モニタモジュール23は、サービスモジュール20より送信されたサービス情報30を受信する(S35)。モニタモジュール23は、サービス情報30に含まれる変更種別35に基づいて、受信したサービス情報30の内容をサービス情報管理DB24に反映する(S36)。仮に、変更種別35が「追加」である場合、モニタモジュール23は、サービス情報30に含まれる差分情報34の内容をサービス情報管理DB24に追加する。仮に、変更種別35が「削除」である場合、モニタモジュール23は、サービス情報30に含まれる差分情報34の内容に対応する情報をサービス情報管理DB24から削除する。仮に、変更種別35が「変更」である場合、モニタモジュール23は、サービス情報管理DB24において、サービス情報30に含まれる差分情報34の「インターフェース名」に対応する内容を更新する。
モニタサーバ22において、モニタモジュール23は、サービスモジュール20より送信されたサービス情報30を受信する(S35)。モニタモジュール23は、サービス情報30に含まれる変更種別35に基づいて、受信したサービス情報30の内容をサービス情報管理DB24に反映する(S36)。仮に、変更種別35が「追加」である場合、モニタモジュール23は、サービス情報30に含まれる差分情報34の内容をサービス情報管理DB24に追加する。仮に、変更種別35が「削除」である場合、モニタモジュール23は、サービス情報30に含まれる差分情報34の内容に対応する情報をサービス情報管理DB24から削除する。仮に、変更種別35が「変更」である場合、モニタモジュール23は、サービス情報管理DB24において、サービス情報30に含まれる差分情報34の「インターフェース名」に対応する内容を更新する。
このように、サービスモジュール20の実行により、変更前後のサービスIFの差分情報を含むサービス情報30をモニタモジュール23に送信し、サービス情報管理DB24に登録することができる。
ここで、サーバ21からモニタサーバ22へはネットワーク通信により必要なデータを送信する。データの送信ロジックについては、HTTP(HyperText Transfer Protocol)プロトコルや、FTP(File Transfer Protocol)等のプロトコルによる汎用の通信方法を使ってよい。
送信先のネットワークアドレス、ポート番号についてはいくつかの方法で送信前に特定できるようなロジックを、プレコンパイラがサービスモジュールのソースコードに埋め込んでおくこができる。第1の例としては、サービスモジュールのコンパイル時に、プレコンパイラが送信先のネットワークアドレス、ポート番号のデータをソース中に自動的に埋め込むようにしてもよい。また、第2の例としては、社内のLDAP(Lightweight Directory Access Protocol)サーバに、サービス情報管理DBのモニタモジュールのネットワークアドレス、ポート番号の情報を管理者が予め入力しておく。そして、サービスモジュールのソースコードにはプレコンパイラがLDAPサーバへ情報問い合わせをするロジックを埋め込む。
図9は、本実施形態におけるサービスモジュールの起動時に送付するサービス情報の一例を示す。図9のサービス情報30aは、図5のサービス情報30の一例である。サービス情報30aは、「モジュールID」31a、「バージョン」32a、「サービス名」33a、差分情報34aを含む。差分情報34aは、「種別」35a、「インターフェース名」36a、「パラメータ型」37aを含む。
図10は、本実施形態におけるサービス情報管理DBのデータ構造の一例を示す。サービス情報管理DB24には、サービス基本テーブル24−1、インターフェース管理テーブル24−2、パラメータ管理テーブル24−3がある。サービスモジュール20より受信したサービス情報は、これらのテーブルに格納される。
サービス基本テーブル24−1には、サービス名とそのサービスの補足情報が格納される。インターフェース管理テーブル24−2には、各サービスモジュールに含まれるインターフェース名と、そのインターフェースの補足情報が格納される。パラメータ管理テーブル24−3は、各サービスモジュールに含まれるインターフェース名のパラメータを管理するテーブルである。
図11は、コンピュータのハードウェア環境の構成ブロック図である。コンピュータ50は、サービスモジュール生成装置11、サーバ21、またはモニタサーバ22である。コンピュータ50は、CPU52、ROM53、RAM56、通信I/F54、記憶装置57、出力I/F51、入力I/F55、読み取り装置58、バス59、出力機器61、入力機器62によって構成されている。
ここで、CPUは、中央演算装置を示す。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。バス59には、CPU52、ROM53、RAM56、通信I/F54、記憶装置57、出力I/F51、入力I/F55、及び読み取り装置58が接続されている。読み取り装置58は、可搬型記録媒体を読み出す装置である。出力機器61は、出力I/F51に接続されている。入力機器62は、入力I/F55に接続にされている。
記憶装置57としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。コンピュータ50がサービスモジュール生成装置11の場合、記憶装置57またはROM53には、CPU52をプレコンパイラ12、コンパイラ16として機能させるプログラム及びサービスモジュールのソースコード18,18aが格納されている。また、コンピュータ50がサーバ21の場合、記憶装置57またはROM53には、CPU52により実行されるサービスモジュール20が格納されている。また、コンピュータ50がモニタサーバ22の場合、記憶装置57またはROM53には、CPU52により実行されるモニタモジュール23、サービス情報管理DB24が格納されている。
CPU52は、記憶装置57等に格納した上記実施形態で説明した処理を実現するプログラムを読み出し、当該プログラムを実行する。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク60、および通信I/F54を介して、例えば記憶装置57に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置58にセットされて、CPU52によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置58によって読み取られる。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク60、および通信I/F54を介して、例えば記憶装置57に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置58にセットされて、CPU52によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置58によって読み取られる。
また、入力機器62には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器61には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク60は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
本実施形態によれば、サービスモジュールにどのような変化があったかを自動的に収集することができる。これにより、例えば、サービスモジュールの入出力インターフェースが変更されたことを検知できる。その結果、サービスの情報管理システムから、その変更内容を、予め登録された関係者にe-mailなどの手段により通知することが可能となる。
また、サービスの既存インターフェースが削除された場合には、ソースコードに情報送信コードを埋め込むだけではなく、そのインターフェースを実装したダミー用のコードを挿入しておく。そして、サービス実行時に削除されたインターフェースを外部から呼び出された場合に、呼び出し不整合があったことを自動的に知らせることができる。
このように、サービスモジュールの変更があったことと、その内容を自動的に検知することができ、サービスモジュールの変更の影響を通知したり、インターフェースの不整合検知をしたりすることが可能となる。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
1 サービスモジュール生成装置
2 格納部
3 コード取得部
4 インターフェース定義作成部
5 差分取得部
6 送信コード埋め込み部
7 コンパイル処理部
11 サービスモジュール生成装置
12 プレコンパイラ
13 ID生成部
14 解析部
15 埋め込み部
16 コンパイラ
17 格納部
18,18a ソースコード
20 サービスモジュール
21 サーバ
22 モニタサーバ
23 モニタモジュール
24 サービス情報管理DB
2 格納部
3 コード取得部
4 インターフェース定義作成部
5 差分取得部
6 送信コード埋め込み部
7 コンパイル処理部
11 サービスモジュール生成装置
12 プレコンパイラ
13 ID生成部
14 解析部
15 埋め込み部
16 コンパイラ
17 格納部
18,18a ソースコード
20 サービスモジュール
21 サーバ
22 モニタサーバ
23 モニタモジュール
24 サービス情報管理DB
Claims (9)
- コンピュータに、
格納部に格納された第1のソースコードと、該第1のソースコードよりも前のバージョンの第2のソースコードに基づいて、前記第1のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義と、前記第2のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義との差分を示す差分情報を生成し、
生成した前記差分情報を外部装置に送信する
処理を実行させるプログラム。 - 前記差分情報は、前記差分の種別を示す種別情報と、インターフェース名と、前記入出力パラメータのデータ型と、を含む
ことを特徴とする請求項1に記載のプログラム。 - 前記差分の種別は、追加、削除、または変更である、
ことを特徴とする請求項2に記載のプログラム。 - 前記コンピュータに、さらに、
前記差分情報を前記外部装置に送信させる送信コードを前記第1のソースコードに追加し、
前記送信コードを追加した前記第1のソースコードをコンパイルする、
ことを特徴とする請求項1又は2に記載のプログラム。 - 第1のソースコードが格納されている格納部と、
該第1のソースコードよりも前のバージョンの第2のソースコードに基づいて、前記第1のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義と、前記第2のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義との差分を示す差分情報を生成する生成部と、
生成した前記差分情報を外部装置に送信する送信部と、
を備えることを特徴とする情報処理装置。 - 前記差分情報は、前記差分の種別を示す種別情報と、インターフェース名と、前記入出力パラメータのデータ型と、を含む
ことを特徴とする請求項5に記載の差分情報生成装置。 - 前記差分の種別は、追加、削除、または変更である、
ことを特徴とする請求項6に記載の情報処理装置。 - 前記情報処理装置は、さらに、
前記差分情報を前記外部装置に送信させる送信コードを前記第1のソースコードに追加する追加部と、
前記送信コードを追加した前記第1のソースコードをコンパイルするコンパイル部と、
を備えることを特徴とする請求項5又は6に記載の情報処理装置。 - ソースコードの変更に応じて、入出力パラメータを管理する入出力パラメータ管理方法であって、
第1のコンピュータは、
格納部に格納された第1のソースコードと、該第1のソースコードよりも前のバージョンの第2のソースコードに基づいて、前記第1のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義と、前記第2のソースコードに含まれるインターフェース関数に用いられる入出力パラメータの定義との差分を示す差分情報を生成し、
生成した前記差分情報を第2のコンピュータに送信し、
前記第2のコンピュータは、
前記差分情報を収集し、
前記収集した差分情報を格納部に格納する
処理を行う入出力パラメータ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011211604A JP2013073400A (ja) | 2011-09-27 | 2011-09-27 | サービスモジュール生成プログラム、該装置、及びサービス情報管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011211604A JP2013073400A (ja) | 2011-09-27 | 2011-09-27 | サービスモジュール生成プログラム、該装置、及びサービス情報管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013073400A true JP2013073400A (ja) | 2013-04-22 |
Family
ID=48477859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011211604A Withdrawn JP2013073400A (ja) | 2011-09-27 | 2011-09-27 | サービスモジュール生成プログラム、該装置、及びサービス情報管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013073400A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022545489A (ja) * | 2019-09-16 | 2022-10-27 | 杭州趣鏈科技有限公司 | スマートコントラクトのクライアントプログラムの生成方法、システム、機器、及び媒体 |
-
2011
- 2011-09-27 JP JP2011211604A patent/JP2013073400A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022545489A (ja) * | 2019-09-16 | 2022-10-27 | 杭州趣鏈科技有限公司 | スマートコントラクトのクライアントプログラムの生成方法、システム、機器、及び媒体 |
JP7315786B2 (ja) | 2019-09-16 | 2023-07-26 | 杭州趣鏈科技有限公司 | スマートコントラクトのクライアントプログラムの生成方法、システム、機器、及び媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5966270B2 (ja) | システム及び機器管理プログラム | |
US20160179495A1 (en) | Device and method for packaging application | |
US9864736B2 (en) | Information processing apparatus, control method, and recording medium | |
JP4354314B2 (ja) | サーバ差分管理システム及び情報処理装置の制御方法 | |
JP2009169860A (ja) | 構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム | |
CN109284106A (zh) | 业务规则的发布管理方法、电子装置及可读存储介质 | |
JP5064912B2 (ja) | 管理装置及びネットワークシステム及びプログラム及び管理方法 | |
JP6683386B2 (ja) | データ転送システム、及びデータ転送方法 | |
JP6576160B2 (ja) | 管理システム、管理システムの制御方法、およびプログラム | |
JP2010250548A (ja) | ログ出力装置 | |
JP2013073400A (ja) | サービスモジュール生成プログラム、該装置、及びサービス情報管理方法 | |
JP6182915B2 (ja) | システム、データ処理方法およびスキャナ装置 | |
TW201417029A (zh) | 原始程式碼管理系統、原始程式碼管理方法以及原始程式碼管理程式 | |
US20170262439A1 (en) | Information processing apparatus and non-transitory computer readable medium | |
JP2009169863A (ja) | 構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム | |
JP2007200047A (ja) | アクセスログ表示システムおよび方法 | |
JP6045707B2 (ja) | ライセンス管理装置、ライセンス管理方法、及びプログラム | |
Miksa et al. | Identifying impact of software dependencies on replicability of biomedical workflows | |
WO2019220480A1 (ja) | 監視装置、監視方法及びプログラム | |
JP2008287663A (ja) | リソース管理装置 | |
JP2022100891A (ja) | 情報処理装置、方法及びプログラム | |
JP6471644B2 (ja) | 情報処理装置、情報処理システム及び情報処理プログラム | |
JP4337948B2 (ja) | ファイル管理システム、ファイル管理方法 | |
KR100706948B1 (ko) | 단순 네트워크 관리 프로토콜 시스템에서의관리정보베이스 구성 및 관리 방법 | |
JP6992593B2 (ja) | ファイル状態確認装置、ファイル状態確認方法、及びファイル状態確認プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141202 |