(57)【特許請求の範囲】
【請求項１】
命令を取得し、
前記命令に関連付けられた引数、復帰値、実行結果出力情報が記憶されたコマンド仕様を参照し、前記実行結果出力情報に基づいて、実行結果を所定の記憶領域に格納する機能と、格納した実行結果を参照する機能と、を自動生成し、
自動生成した前記格納した実行結果を参照する機能を呼び出す機能を自動生成し、
前記命令の実行指示を受けたときに、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する、処理をコンピュータに実行させる自動実行プログラム。
【請求項２】
前記実行結果を所定の記憶領域に格納する機能は、第一のプログラム言語による記述により実現され、
前記格納した実行結果を参照する機能と、前記格納した実行結果を参照する機能を呼び出す機能と、は、第二のプログラム言語による記述により実現される請求項１記載の自動実行プログラム。
【請求項３】
前記第一のプログラム言語は、前記命令を実行させる機器に対応した言語であり、前記第二のプログラム言語は、予め決められた所定のプログラム言語である、請求項２記載の自動実行プログラム。
【請求項４】
複数の命令を取得し、
前記複数の命令について、前記命令毎に、前記実行結果を所定の記憶領域に格納する機能と、前記格納した実行結果を参照する機能と、前記格納した実行結果を参照する機能を呼び出す機能と、を自動生成し、
前記複数の命令による処理の実行指示を受けたとき、
前記命令毎に、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する、処理を前記コンピュータに実行させる請求項１乃至３の何れか一項に記載の自動実行プログラム。
【請求項５】
コンピュータによる自動実行方法であって、該コンピュータが、
命令を取得し、
前記命令に関連付けられた引数、復帰値、実行結果出力情報が記憶されたコマンド仕様を参照し、前記実行結果出力情報に基づいて、実行結果を所定の記憶領域に格納する機能と、格納した実行結果を参照する機能と、を自動生成し、
自動生成した前記格納した実行結果を参照する機能を呼び出す機能を自動生成し、
前記命令の実行指示を受けたときに、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する、自動実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コマンドを自動で実行させる自動実行プログラム及び自動実行方法に関する。
【背景技術】
【０００２】
近年では、情報システムにおける運用管理の自動化がすすめられている。運用管理の自動化では、情報システムにおいて、ユーザから指示された所定の作業を実行させる機器に、ＯＳ（Operating System）上でのコマンドの形式で処理の実行指示を提供することが多い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−３０４６６０号公報
【特許文献２】特開２００４−１３２１８号公報
【特許文献３】特開２００１−１０９６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、ＯＳ上でコマンドなどをリモート実行する場合には、コマンドの実行結果としてリモート実行の呼び出し側に返される情報は復帰値のみであり、復帰値以外の情報は出力されない。このため、例えば複数のコマンドを含む処理をリモート実行させようとした場合に、リモート実行されたコマンドの復帰値以外の実行結果を、次にリモート実行するコマンドに継承することができない。
【０００５】
１つの側面では、復帰値以外の情報を取得することが可能な自動実行プログラム及び自動実行方法を提供することを目的としている。
【課題を解決するための手段】
【０００６】
開示の技術は、命令を取得し、前記命令に関連付けられた引数、復帰値、実行結果出力情報が記憶されたコマンド仕様を参照し、前記実行結果出力情報に基づいて、実行結果を所定の記憶領域に格納する機能と、格納した実行結果を参照する機能と、を自動生成し、自動生成した前記格納した実行結果を参照する機能を呼び出す機能を自動生成し、前記命令の実行指示を受けたときに、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する、処理をコンピュータに実行させる。
【０００７】
上記各処理は、上記各処理を実現する機能部、上記各処理を手順としてコンピュータにより実行させる方法、プログラムを記憶したコンピュータ読み取り可能な記憶媒体とすることもできる。
【発明の効果】
【０００８】
復帰値以外の情報を取得することができる。
【図面の簡単な説明】
【０００９】
【図１】第一の実施形態の運用管理の自動化の仕組みについて説明する図である。
【図２】自動実行装置のハードウェア構成の一例を示す図である。
【図３】第一の実施形態の自動実行装置の機能を説明する図である。
【図４】第一の実施形態の自動実行装置の動作を説明するフローチャートである。
【図５】格納機能付加部における格納命令生成部の処理を説明するフローチャートである。
【図６】コマンド仕様の一例を示す図である。
【図７】格納命令生成部による格納命令の生成を説明する図である。
【図８】格納機能付加部による格納命令付加部の処理を説明するフローチャートである。
【図９】格納命令付加部による格納命令の付加を説明する図である。
【図１０】実行結果格納データベースに格納された実行結果の一例を示す図である。
【図１１】ＡＰＩ生成部における実行結果読出部の処理を説明するフローチャートである。
【図１２】ＡＰＩ生成部における実行結果読出部の処理を説明する図である。
【図１３】実行結果読出部により生成された命令リストの一例を示す図である。
【図１４】ＡＰＩ生成部における読出ＡＰＩ生成部の処理を説明するフローチャートである。
【図１５】読出ＡＰＩ生成部による生成される読み出しＡＰＩを説明する図である。
【図１６】読み出しＡＰＩの記述例を示す図である。
【図１７】ＡＰＩ生成部における実行ＡＰＩ生成部の処理を説明するフローチャートである。
【図１８】実行ＡＰＩの記述例を示す図である。
【図１９】自動実行装置においてＡＰＩを介してコマンドを実行する処理を説明するフローチャートである。
【図２０】端末装置からコマンドを呼び出す記述の例を示す図である。
【図２１】第二の実施形態の自動実行システムを説明する図である。
【図２２】第三の実施形態の自動実行システムを説明する図である。
【発明を実施するための形態】
【００１０】
（第一の実施形態）
以下に、図面を参照して、第一の実施形態について説明する。図１は、第一の実施形態の運用管理の自動化の仕組みについて説明する図である。
【００１１】
図１において、本実施形態の自動実行装置１００は、サーバ２００−１、２００−２、２００−３に所定の作業を行わせることで、サーバ２００−１、２００−２、２００−３の運用管理を自動化する。サーバ２００−１、２００−２、２００−３は、自動実行装置１００による管理対象のサーバであり、それぞれを区別しない場合にはサーバ２００と呼ぶ。尚、自動実行装置１００による管理対象のサーバ２００の数は、任意の数であって良い。
【００１２】
本実施形態の自動実行装置１００は、例えば端末装置３００からの指示に応じて、サーバ２００上で運用作業を行う。言い換えれば、本実施形態の自動実行装置１００は、端末装置３００から実行指示を受けた命令（コマンド）に対応する記述（フロー）をサーバ２００に実行させることで、サーバ２００にコマンドを実行させ、作業の手順として決められた処理を実行させる。
【００１３】
また、本実施形態の自動実行装置１００では、コマンドの実行結果として、コマンドの成否を示す戻り値（復帰値）以外の情報を記憶装置１１０に格納させ、次のコマンドを実行する際に記憶装置１１０に格納された情報を参照させる。
【００１４】
本実施形態の自動実行装置１００では、このような仕組みを有することで、複数のコマンドを組み合わせた処理を実行する際に、実行済みのコマンドの実行結果を次のコマンドに参照させることができる。よって、本実施形態によれば、複数のコマンドを含む処理をサーバ２００に実行させることができる。
【００１５】
また、本実施形態では、この仕組みを用いることで、記憶装置に格納された情報を、汎用されているプログラム言語で記述されたプログラムにより呼び出して、利用することができる。
【００１６】
自動実行基盤やジョブ管理機構では、サーバ２００等にコマンドを実行させるために複数のコマンドを組み合わせるフロー（自動実行手順）は専用の言語で記述されている。したがって、例えば、サーバ２００にコマンドを実行させる場合には、この専用の言語でフローを記述する必要があり汎用プログラム言語ではなく専用言語の習得が必要であった。このため、例えばサーバ２００の運用管理者以外の一般的な利用者が、サーバ２００に対して所定の作業を行わせることは困難であった。
【００１７】
本実施形態では、上述した仕組みを用いることで、汎用プログラム言語で記述されたプログラムにより、コマンドの実行結果を呼び出すことができる。したがって、本実施形態によれば、汎用プログラム言語で記述されたプログラムにより、コマンドの実行結果を用いてサーバ２００に所定の作業を実行させることができる。
【００１８】
以下の説明では、汎用プログラム言語により、記憶装置に格納された実行結果を参照する形態を説明する。また、以下の説明では、サーバ２００に搭載されたＯＳや、サーバ２００のハードウェアでコマンドのリモート実行の制御を行う自動実行の処理系に依存した専用の言語（フロー）を専用言語と呼び、端末装置などからＡＰＩ経由でリモート実行機能を呼びだすＪａｖａ（登録商標）等のプログラミング言語を汎用プログラム言語と呼ぶ。
【００１９】
本実施形態の自動実行装置１００は、コマンドからコマンド仕様の一覧を取得する（ステップＳ１）。そして、自動実行装置１００は、取得したコマンド仕様を用いて、格納機能付きフロー１０を生成する（ステップＳ２）。格納機能付きフロー１０は、コマンドに対応するフローを実行した結果を記憶装置１１０に格納させる機能をコマンドに付加したものであり、フローと同様の言語で記述されたものである。
【００２０】
また、本実施形態の自動実行装置１００は、ＡＰＩ（Application Programming Interface）２０を生成する（ステップＳ３）。ＡＰＩ２０は、コマンドの実行指示をフロー実行制御部１６０に通知する処理と、コマンドと対応するフローが実行された結果を記憶装置１１０から読み出す処理と、を自動実行装置１００に実行させる命令群である。ＡＰＩ２０は、例えば端末装置３００において用いられる汎用プログラム言語で記述される。
【００２１】
自動実行装置１００において、ＡＰＩ２０は、コマンドの実行指示を受け付けると、この実行指示をフロー実行制御部１６０へ通知する（ステップＳ４）。フロー実行制御部１６０は、実行指示を受けたコマンドと対応し、且つ格納機能が付加された格納機能付きフロー１０をサーバ２００に実行させる（ステップＳ５）。
【００２２】
続いて、自動実行装置１００は、格納機能付きフロー１０の実行結果を記憶装置１１０へ格納する（ステップＳ６）。実行結果が格納されると、ＡＰＩ２０は、記憶装置１１０にアクセスし、格納機能付きフロー１０の実行結果を読み出して（ステップＳ７）、端末装置３００に渡す（ステップＳ８）。尚、格納機能付きフロー１０は、実行指示を受けたコマンドをサーバ２００に実行させるためのフローであるため、以下の説明では、格納機能付きフロー１０の実行結果を、コマンドの実行結果と呼ぶ。
【００２３】
以上のように、本実施形態の自動実行装置１００は、コマンドに対応するフローに、コマンドの実行結果を格納する機能を付加した格納機能付きフローを生成する。本実施形態では、格納機能付きフローを生成することで、コマンドの実行結果として、実行の成否を示す復帰値（戻り値）以外の実行結果を記憶装置１１０に格納できる。
【００２４】
記憶装置１１０に格納される実行結果は、コマンドを実行した結果の値等であり、専用言語で記述されたコマンドと、汎用プログラム言語で記述されたプログラムとを連携させたり、次のコマンドを続けて実行する際に参照される情報である。
【００２５】
また、本実施形態の自動実行装置１００は、コマンドの実行指示を行う機能と、記憶装置１１０に格納されたコマンドの実行結果の読み出しを行う機能とを有するＡＰＩ２０を生成する。ＡＰＩ２０は、汎用プログラム言語で記述される。
【００２６】
したがって、本実施形態によれば、汎用プログラム言語で記述されたプログラムは、ＡＰＩ２０を介してコマンドを実行させ、その結果の情報を取得することができる。よって、本実施形態によれば、汎用プログラム言語で記述されたプログラムに、コマンドの実行結果を用いた各種の処理を実行させることができ、汎用プログラム言語で記述されたプログラムと、専用言語で記述されたフローと、を連携させることができる。
【００２７】
例えば、本実施形態の自動実行装置１００は、端末装置３００において、サーバ２００の運用におけるトラブルの有無を診断する診断プログラムがインストールされていた場合等には、診断プログラムが記述された言語（例えばＪａｖａ言語等）と同じ言語のＡＰＩ２０を生成する。本実施形態では、このＡＰＩ２０を生成することで、端末装置３００における診断プログラムと、サーバ２００を制御するフローとを連携させることができ、診断プログラムに従って、サーバ２００に実行させる処理を制御することができる。よって、本実施形態によれば、専用言語の知識を有していなくても、診断プログラムとフローとを容易に連携させることができる。
【００２８】
また、自動実行装置１００は、例えば、端末装置３００がネットワークを介して自動実行装置１００と接続されており、ＰＨＰ（Hypertext Preprocessor）等の言語により記述されたプログラムがインストールされていた場合、ＰＨＰで記述されたＡＰＩ２０を生成する。本実施形態では、ＰＨＰで記述されたＡＰＩ２０を生成することで、端末装置３００において、ＰＨＰで記述されたプログラムにより、サーバ２００に実行させる処理を制御することができる。
【００２９】
以上のように、本実施形態によれば、専用言語の知識を有していなくても、サーバ２００に実行させる処理を制御することができ、多様なプログラミング言語によりコマンドを実行させ、さらにコマンドの実行結果を読み出すことができる。また、本実施形態によれば、専用言語以外の汎用プログラム言語で記述されたプログラムによりサーバ２００の動作を制御することが可能となり、サーバ２００の運用管理を自動化における汎用性を向上させることができる。
【００３０】
尚、図１では、ＡＰＩ２０を汎用プログラム言語で記述されたものとしたが、これに限定されない。ＡＰＩ２０に相当する命令群は、専用言語で記述されたものであっても良い。例えばＡＰＩ２０に相当する命令群を専用言語で記述した場合には、実行されたコマンドの実行結果を次に実行されるコマンドが用いることができるため、複数のコマンドを含む処理を自動で実行させることができる。
【００３１】
以下に、本実施形態の自動実行装置１００について説明する。図２は、自動実行装置のハードウェア構成の一例を示す図である。
【００３２】
本実施形態の自動実行装置１００は、それぞれバスＢで相互に接続されている入力装置１１、出力装置１２、ドライブ装置１３、補助記憶装置１４、メモリ装置１５、演算処理装置１６及びインターフェース装置１７を含む。
【００３３】
入力装置１１はキーボードやマウス等を含み、各種信号を入力するために用いられる。出力装置１２はディスプレイ装置等を含み、各種ウィンドウやデータ等を表示するために用いられる。インターフェース装置１７は、モデム、ＬＡＮカード等を含み、ネットワークに接続する為に用いられる。
【００３４】
自動実行プログラムは、自動実行装置１００を制御する各種プログラムの少なくとも一部である。自動実行プログラムは例えば記録媒体１８の配布やネットワークからのダウンロードなどによって提供される。自動実行プログラムを記録した記録媒体１８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３５】
また、自動実行プログラムは、自動実行プログラムを記録した記録媒体１８がドライブ装置１３にセットされると記録媒体１８からドライブ装置１３を介して補助記憶装置１４にインストールされる。ネットワークからダウンロードされた自動実行プログラムは、インターフェース装置１７を介して補助記憶装置１４にインストールされる。
【００３６】
補助記憶装置１４は、インストールされた自動実行プログラムを格納すると共に、必要なファイル、データ等を格納する。メモリ装置１５は、コンピュータの起動時に補助記憶装置１４から自動実行プログラムを読み出して格納する。そして、演算処理装置１６はメモリ装置１５に格納された自動実行プログラムに従って、後述するような各種処理を実現している。
【００３７】
また、本実施形態の自動実行装置１００は、実行性能等の問題が無ければ、例えばタブレット型のコンピュータ等であっても良い。その場合、入力装置１１及び出力装置１２の代わりに、表示機能を有するタッチパネル等の表示操作装置を有していても良い。
【００３８】
次に、図３を参照して、本実施形態の自動実行装置１００の機能について説明する。図３は、第一の実施形態の自動実行装置の機能を説明する図である。
【００３９】
本実施形態の自動実行装置１００は、記憶装置１１０、フロー記憶部１１１、ＡＰＩ記憶部１２１、自動実行処理部１３０を有する。
【００４０】
本実施形態の記憶装置１１０は、例えば補助記憶装置１４等であり、自動実行処理部１３０によるコマンドの実行結果が格納される実行結果格納データベースである。以下の説明では、記憶装置１１０を、実行結果格納データベース１１０と呼ぶ。
【００４１】
フロー記憶部１１１、ＡＰＩ記憶部１２１は、補助記憶装置１４、メモリ装置１５等に設けられた所定の記憶領域である。フロー記憶部１１１には、格納機能付きフロー１０が格納される。ＡＰＩ記憶部１２１には、ＡＰＩ２０が格納される。ＡＰＩ２０は、実行ＡＰＩ２１と、読み出しＡＰＩ２２とを含む。
【００４２】
本実施形態の自動実行処理部１３０は、フロー記憶部１１１に格納された格納機能付きフロー１０をサーバ２００に実行させる。
【００４３】
本実施形態の自動実行処理部１３０は、ＡＰＩ生成部１４０、格納機能付加部１５０、フロー実行制御部１６０を有する。
【００４４】
ＡＰＩ生成部１４０は、実行ＡＰＩ２１と、呼び出す読み出しＡＰＩ２２と、を生成する。格納機能付加部１５０は、コマンドの実行結果を実行結果格納データベース１１０に格納する機能をコマンドに付与した格納機能付きフロー１０を生成する。フロー実行制御部１６０は、実行指示を受けたコマンドと対応する格納機能付きフロー１０をサーバ２００に実行させる。
【００４５】
本実施形態のＡＰＩ生成部１４０は、実行ＡＰＩ生成部１４１、実行結果読出部１４２、読出ＡＰＩ生成部１４３を有する。
【００４６】
実行ＡＰＩ生成部１４１は、フロー実行制御部１６０に対してコマンドの実行指示を、汎用プログラム言語により呼び出す機能を実現する命令群を自動生成する。以下の説明では、コマンドの実行指示を呼び出す機能を実現する命令群を、実行ＡＰＩ２１と呼ぶ。
【００４７】
実行結果読出部１４２は、実行結果格納データベース１１０に格納された実行結果を読み出す機能を自動生成する。
【００４８】
読出ＡＰＩ生成部１４３は、実行結果読出部１４２により生成された読み出し機能を、汎用プログラム言語により呼び出す機能を自動生成する。以下の説明では、読み出し機能を汎用プログラム言語により呼び出す機能を実現する命令群を、読み出しＡＰＩ２２と呼ぶ。本実施形態のＡＰＩ２０は、実行ＡＰＩ２１と、読み出しＡＰＩ２２を含むものとした。
【００４９】
本実施形態の格納機能付加部１５０は、フローに、コマンドの実行結果を実行結果格納データベース１１０に格納させる格納命令を付加する。尚、本実施形態の自動実行装置１００では、格納命令が付加される前のフローは、コマンド仕様取得部１５１により取得したコマンド仕様から生成されても良い。
【００５０】
本実施形態の格納機能付加部１５０は、コマンド仕様取得部１５１、格納命令生成部１５２、格納命令付加部１５３を有する。
【００５１】
コマンド仕様取得部１５１は、コマンド毎のコマンド仕様を取得する。コマンド仕様は、予め自動実行装置１００に与えられても良いし、サーバ２００の定義されたものを取得しても良いし、サーバ２００以外の外部の装置から取得しても良い。
【００５２】
格納命令生成部１５２は、コマンド仕様を用いて、コマンドの実行結果を実行結果格納データベース１１０へ格納させる命令を生成する。
【００５３】
格納命令付加部１５３は、格納命令生成部１５２が生成した命令をコマンドに付加し、格納機能付きコマンドを生成する。
【００５４】
本実施形態のフロー実行制御部１６０は、実行ＡＰＩ２１からコマンドの実行指示を受けると、フロー記憶部１１１を参照し、実行が指示されたコマンドと対応する格納機能付きフロー１０をサーバ２００に実行させる。
【００５５】
次に、図４を参照し、本実施形態の自動実行装置１００の動作について説明する。図４は、第一の実施形態の自動実行装置の動作を説明するフローチャートである。
【００５６】
図４のステップＳ４０１からステップＳ４０３は、格納機能付加部１５０による処理である。図４のステップＳ４０４からステップＳ４０６は、ＡＰＩ生成部１４０による処理である。
【００５７】
本実施形態の自動実行装置１００は、格納機能付加部１５０のコマンド仕様取得部１５１により、コマンド仕様を取得する（ステップＳ４０１）。本実施形態のコマンド仕様は、本実施形態の自動実行装置１００において用いられるコマンドのコマンド仕様の一覧であっても良い。
【００５８】
続いて、格納機能付加部１５０は、格納命令生成部１５２により、コマンド仕様を参照し、コマンド毎に、コマンドの実行の成否（復帰値）以外の実行結果を実行結果格納データベース１１０に格納する格納命令を生成する（ステップＳ４０２）。
【００５９】
続いて、格納機能付加部１５０は、格納命令付加部１５３により、ステップＳ４０２で生成された格納命令を、コマンドに付加して格納機能付きフロー１０とし、フロー記憶部１１１へ格納する（ステップＳ４０３）。
【００６０】
続いて、自動実行装置１００は、ＡＰＩ生成部１４０の実行結果読出部１４２により、実行結果格納データベース１１０に格納された実行結果を読み出す機能を自動で生成する（ステップＳ４０４）。続いて、ＡＰＩ生成部１４０は、読出ＡＰＩ生成部１４３により、実行結果を読み出す機能を汎用プログラム言語から呼び出す読み出しＡＰＩ２２を生成する（ステップＳ４０５）。
【００６１】
続いて、ＡＰＩ生成部１４０は、実行ＡＰＩ生成部１４１により、格納機能付きフローが生成されたコマンドの実行指示を汎用プログラム言語から呼び出す実行ＡＰＩ２１を生成し（ステップＳ４０６）、処理を終了する。
【００６２】
次に、図４に示した各処理について、詳細に説明する。図５は、格納機能付加部における格納命令生成部の処理を説明するフローチャートである。図５で説明する処理は、図４のステップＳ４０２の詳細を示している。
【００６３】
本実施形態の格納機能付加部１５０は、格納命令生成部１５２により、生成した命令を格納する命令リストを空にする（ステップＳ５０１）。続いて、格納機能付加部１５０は、コマンド仕様取得部１５１により、コマンド仕様を取得する（ステップＳ５０２）。
【００６４】
続いて、格納命令生成部１５２は、コマンド仕様から、復帰値の仕様を取得する（ステップＳ５０３）。続いて、格納命令生成部１５２は、コマンド仕様から、実行結果出力の仕様を取得する（ステップＳ５０４）。
【００６５】
次に、格納命令生成部１５２は、コマンドの復帰値を出力させる格納命令を生成する（ステップＳ５０５）。次に、格納命令生成部１５２は、ステップＳ５０５で生成した格納命令を命令リストに追加する（ステップＳ５０６）。
【００６６】
続いて格納命令生成部１５２は、コマンドの実行結果出力より、１つの実行結果出力を取得する（ステップＳ５０７）。実行結果出力の詳細は後述する。
【００６７】
続いて格納命令生成部１５２は、取得した実行結果出力を出力する格納命令を生成する（ステップＳ５０８）。続いて、格納命令生成部１５２は、ステップＳ５０８で生成した格納命令を、命令リストに追加する（ステップＳ５０９）。
【００６８】
続いて、格納命令生成部１５２は、取得した実行結果出力が最後の実行結果出力であるか否かを判定する（ステップＳ５１０）。
【００６９】
ステップＳ５１０において、最後の実行結果出力でなかった場合、格納命令生成部１５２は、次の実行結果出力を取得し（ステップＳ５１１）、ステップＳ５０８へ戻る。ステップＳ５１０において、最後の実行結果出力であった場合、格納命令生成部１５２は、格納命令を生成する処理を終了する。
【００７０】
以下に、図６、図７を参照し、本実施形態の格納命令生成部１５２の処理について具体的に説明する。
【００７１】
図６は、コマンド仕様の一例を示す図である。図６では、コマンド名「ｆｏｏ．ｓｈ」のコマンド仕様６１と、コマンド名「ｆｏｏ２．ｓｈ」のコマンド仕様６２と、を例として示している。
【００７２】
本実施形態のコマンド仕様６１では、コマンド名「ｆｏｏ．ｓｈ」のコマンドは、引数として、文字列型のｓａｖｅｒＮａｍｅを指定し、復帰値として０又は１を得る。また、コマンド名「ｆｏｏ．ｓｈ」のコマンドが実行されると、実行結果の出力（実行結果出力）とし、［名前、タイプ、出力、フィルタ／変更条件］が得られる。
【００７３】
同様に、コマンド仕様６２では、コマンド名「ｆｏｏ２．ｓｈ」のコマンドは、引数として、文字列型のｓａｖｅｒＮａｍｅと、ｔａｒｇｅｔを指定し、復帰値として０又は１を得る。また、コマンド名「ｆｏｏ．ｓｈ」のコマンドが実行されると、実行結果出力として、ｎａｍｅ，ｌｉｓｔ０１が得られる。
【００７４】
以下の説明では、コマンド仕様６１を用いた格納機能付きフロー１０を生成する場合について説明する。
【００７５】
図７は、格納命令生成部による格納命令の生成を説明する図である。本実施形態の格納命令生成部１５２は、命令リスト７１を生成する。命令リスト７１は、コマンド仕様６１により定義されるコマンドを実行した結果を実行結果格納データベース１１０に格納させる格納命令を含む。
【００７６】
具体的には、命令リスト７１は、コマンド仕様６１の復帰値を実行結果格納データベース１１０に格納させる格納命令７１−１と、コマンド仕様６１の実行結果出力を実行結果格納データベース１１０に格納させる格納命令７１−２、７１−３を含む。
【００７７】
格納命令生成部１５２は、コマンド仕様６１から、復帰値の仕様と、実行結果出力の仕様と、取得する。そして、格納命令生成部１５２は、復帰値を実行結果格納データベース１１０に格納させる格納命令７１−１を生成し、命令リスト７１に追加する。
【００７８】
また、格納命令生成部１５２は、実行結果出力のうち、「ｎａｍｅ」と言う名前の実行結果出力を実行結果格納データベース１１０へ格納させる格納命令７１−２を生成し、命令リスト７１に追加する。また、格納命令生成部１５２は、「ｌｉｓｔ０１」と言う名前の実行結果出力を実行結果格納データベース１１０へ格納させる格納命令７１−３を生成し、命令リスト７１に追加する。
【００７９】
格納命令生成部１５２により生成された命令リスト７１は、例えば自動実行装置１００のメモリ装置１５等に一時的に保持される。
【００８０】
尚、本実施形態の格納命令生成部１５２は、各格納命令を生成する際に、格納命令毎に各格納命令を識別するためのＩＤを付加するものとした。尚、各格納命令を識別するために付加されるものは、ＩＤでなくても良い。例えば、コマンドの実行指示を行ったユーザのユーザ名と、各命令が生成された時刻と、を各格納命令に対応付けても良い。さらには、コマンドの実行指示を行ったユーザの権限等を示す情報をユーザＩＤと共に格納命令に付与しても良い。
【００８１】
以上が、格納命令生成部１５２による格納命令の生成の処理である。
【００８２】
次に、本実施形態の格納命令付加部１５３による、格納命令をコマンドに付加する処理について説明する。
【００８３】
図８は、格納機能付加部による格納命令付加部の処理を説明するフローチャートである。図８で説明する処理は、図４のステップＳ４０３の詳細を示す。
【００８４】
本実施形態の格納命令付加部１５３は、コマンド仕様を取得する（ステップＳ８０１）。続いて、格納命令付加部１５３は、コマンド仕様で記述されたコマンドを実行する自動実行系の命令を生成する（ステップＳ８０２）。
【００８５】
続いて、格納命令付加部１５３は、格納命令生成部１５２が生成した命令リスト７１の最後から、格納命令を１つ選択する（ステップＳ８０３）。続いて、格納命令付加部１５３は、選択された格納命令を実行する自動実行系の命令を生成し、ステップＳ８０２で生成された命令に追加する（ステップＳ８０４）。
【００８６】
続いて、格納命令付加部１５３は、ステップＳ８０３で選択した格納命令が、命令リスト７１における最初の格納命令であるか否かを判定する（ステップＳ８０５）。ステップＳ８０５において、最初の格納命令でない場合、格納命令付加部１５３は、１つ前の格納命令を選択し（ステップＳ８０６）、ステップＳ８０４に戻る。
【００８７】
ステップＳ８０５において、最初の格納命令であった場合、格納命令付加部１５３は、処理を終了する。
【００８８】
次に、図９、図１０を参照し、格納命令付加部１５３による格納命令の付加と、格納機能付きフロー１０をサーバ２００に実行させた結果の実行結果の格納について、具体的に説明する。
【００８９】
図９は、格納命令付加部による格納命令の付加を説明する図である。図９に示すフロー９１は、格納命令が付加される前のコマンド名「ｆｏｏ．ｓｈ」のコマンドに対応したフローである。
【００９０】
フロー９２は、フロー９１のコマンド名「ｆｏｏ．ｓｈ」のコマンドに格納命令７１−１、７１−２、７１−３が付加された格納機能付きフローである。格納機能付きフロー９２は、命令９２−１、９２−２を含む。命令９２−１は、実行指示を受けたコマンド名「ｆｏｏ．ｓｈ」のコマンドを呼び出して実行させる。命令９２−２は、命令９２−２ａ、命令９２−２ｂ、命令９２−２ｃを含む。命令９２−２ａは、格納命令７１−１を呼び出して実行させる。命令９２−２ｂは、命令７１−２を呼び出して実行させる。命令９２−２ｃは、命令７１−３を呼び出して実行させる。
【００９１】
図１０は、実行結果格納データベースに格納された実行結果の一例を示す図である。図１０では、格納機能付きフロー９２が実行された際に、実行結果格納データベース１１０に格納される情報を示している。
【００９２】
格納機能付きフロー９２では、命令９２−１が実行された後に、命令９２−２が実行される。図１０の例では、命令９２−２ａが実行されると、命令７１−１に従って実行結果出力情報が格納された結果格納テーブル１１２が実行結果格納データベース１１０に格納される。また、命令９２−２ｂが実行されると、命令７１−２に従って実行結果出力情報が格納された結果格納テーブル１１３が実行結果格納データベース１１０に格納される。また、命令９２−２ｃが実行されると、命令７１−３に従って実行結果出力情報が格納された結果格納テーブル１１４が実行結果格納データベース１１０に格納される。
【００９３】
結果格納テーブル１１２〜１１４には、それぞれを識別するために付与されたＩＤと、実行指示を受けたコマンドのコマンド名とが含まれる。
【００９４】
結果格納テーブル１１２に格納された実行結果出力情報は、ＩＤと、コマンド名と、ｒｅｔｕｒｎＣｏｄｅ（復帰値）の値を含む。結果格納テーブル１１３に格納された実行結果出力情報は、ＩＤと、コマンド名と、ｎａｍｅの値である、ｓｔｄｏｕｔ出力の１行目を含む。結果格納テーブル１１４に格納された実行結果出力情報は、ＩＤと、コマンド名と、ｌｉｓｔ０１の値である、ｌｉｓｔ０１の内容を文字列に変換したもの含む。
【００９５】
本実施形態では、実行結果格納データベース１１０に格納された結果格納テーブル１１２〜１１４が、ＡＰＩ２０により参照される。
【００９６】
次に、図１１を参照して、ＡＰＩ生成部１４０の実行結果読出部１４２の処理について説明する。図１１は、ＡＰＩ生成部における実行結果読出部の処理を説明するフローチャートである。図１１で説明する処理は、図４のステップＳ４０４の詳細を示す。
【００９７】
本実施形態のＡＰＩ生成部１４０の実行結果読出部１４２は、実行結果格納データベース１１０に格納された実行結果を読み出す機能を自動生成する。
【００９８】
図１１のステップＳ１１０１からステップＳ１１０４までの処理は、図５のステップＳ５０１からステップＳ５０４までの処理と同様であるから、説明を省略する。
【００９９】
ステップＳ１１０４において、コマンド仕様から実行結果出力の仕様を取得すると、実行結果読出部１４２は、コマンドの復帰値を取得する命令を生成する（ステップＳ１１０５）。続いて、実行結果読出部１４２は、ステップＳ１１０５で生成した命令を命令リストに追加する（ステップＳ１１０６）。
【０１００】
続いて、実行結果読出部１４２は、コマンドの実行結果出力より、１つの実行結果出力を取得する（ステップＳ１１０７）。続いて、実行結果読出部１４２は、取得した実行結果出力を取得する命令を生成する（ステップＳ１１０８）。続いて、実行結果読出部１４２は、生成した命令を命令リストに追加する（ステップＳ１１０９）。
【０１０１】
次に、実行結果読出部１４２は、ステップＳ１１０８で取得した実行結果出力が、最後の実行結果出力か否かを判定する（ステップＳ１１１０）。ステップＳ１１１０で最後でない場合、実行結果読出部１４２は、次の実行結果出力を取得し（ステップＳ１１１１）、ステップＳ１１０８へ戻る。ステップＳ１１１０において、最後の実行結果出力であった場合、実行結果読出部１４２は、処理を終了する。
【０１０２】
以下に、図１２及び図１３を参照し、実行結果読出部１４２による実行結果を読み出す機能を自動生成する処理について、さらに説明する。
【０１０３】
図１２は、ＡＰＩ生成部における実行結果読出部の処理を説明する図である。本実施形態の実行結果読出部１４２は、実行結果格納データベース１１０において、ＩＤと、実行されたコマンド名と、実行結果出力の名前と、をキーとして、対応する値を取得する。
【０１０４】
例えば、実行結果読出部１４２は、結果格納テーブル１１４に格納された実行結果出力情報の値を取得する場合には、本実施形態では、実行結果格納データベース１１０を［ＩＤ、コマンド名、ｌｉｓｔ０１］をキーとし、対応する値［ＹＹＹＹＹＹＹＹＹ］を取得する。
【０１０５】
尚、図１２の例では、［ＩＤ、コマンド名、ｌｉｓｔ０１］をキーとするものとしたが、これに限定されない。例えば、複数のコマンド実行者を区別するためにキーとしてコマンドの実行者のＩＤを追加する必要がある。またＩＤは、各コマンドに固定的に与えるのではなく、呼び出しごとに同一のコマンドに別のＩＤを与えることが実際の運用では必要である。
【０１０６】
実行結果読出部１４２は、実行結果格納データベース１１０から復帰値の値を取得する命令と、実行結果出力情報の値を取得する命令と、を生成し、後述する命令リスト１３１に保持する。本実施形態では、命令リスト１３１に保持された命令により、実行結果を読み出す機能が実現される。
【０１０７】
図１３は、実行結果読出部により生成された命令リストの一例を示す図である。図１３に示す命令リスト１３１では、実行結果読出部１４２により生成された命令が保持される。
【０１０８】
図１３に示す命令リスト１３１は、実行結果を読み出す機能を実現する命令をＳＱＬ文で示している。命令リスト１３１には、命令１３１−１、１３１−２、１３１−３が含まれる。尚、図１３の示す命令リスト１３１では、ＳＱＬ文のｗｈｅｒｅの条件中の「コマンド名」はｃｏｍｍａｎｄＮａｍｅ、「名前」はｎａｍｅといった英字にしても良い。また、図１３の例では、結果格納テーブル名をｒｅｓｕｌｔとした。
【０１０９】
図１３において、命令１３１−１は、結果格納テーブル１１２の値を取得する命令であり、命令１３１−２は、結果格納テーブル１１３の値を取得する命令であり、命令１３１−３は、結果格納テーブル１１４の値を取得する命令である。
【０１１０】
次に、図１４を参照し、ＡＰＩ生成部１４０の読出ＡＰＩ生成部１４３の処理について説明する。図１４は、ＡＰＩ生成部における読出ＡＰＩ生成部の処理を説明するフローチャートである。図１４の処理は、図４のステップＳ４０５の詳細を示す。
【０１１１】
本実施形態の読出ＡＰＩ生成部１４３は、実行結果読出部１４２により生成された読み出し機能を、汎用プログラム言語により呼び出す読み出しＡＰＩ２２を生成する。
【０１１２】
ＡＰＩ生成部１４０において、読出ＡＰＩ生成部１４３は、読み出しＡＰＩ２２を作成するプログラム言語のテンプレートを取得する（ステップＳ１４０１）。テンプレートは、例えば端末装置３００から取得されても良いし、ネットワーク上の外部装置から取得されても良い。
【０１１３】
続いて、読出ＡＰＩ生成部１４３は、命令リスト１３１から、［ＩＤ、コマンド名、名前、命令］の組を１つ取得する（ステップＳ１４０２）。続いて、読出ＡＰＩ生成部１４３は、テンプレートに対して関数（メソッド名）を名前で置き換える（ステップＳ１４０３）。
【０１１４】
続いて、読出ＡＰＩ生成部１４３は、テンプレートにおける実行部分を、命令の記述に置き換える（ステップＳ１４０４）。具体的には、読出ＡＰＩ生成部１４３は、テンプレートにおける実行部分の記述を、実行結果格納データベース１１０にアクセスし、命令リスト１３１から取得した組の命令を呼び出して実行する記述に置き換える。
【０１１５】
続いて、読出ＡＰＩ生成部１４３は、テンプレートにおいて、ステップＳ１４０５で取得した命令の実行結果の値を、タイプで指定された型となるように変換する命令で置き換える（ステップＳ１４０５）。続いて、読出ＡＰＩ生成部１４３は、各ステップで置き換えたテンプレートを保存する（ステップＳ１４０６）。このとき、関数（メソッド名）を名称とする。
【０１１６】
続いて、読出ＡＰＩ生成部１４３は、ステップＳ１４０２で取得した組が、命令リスト１３１の最後の組であるか否かを判定する（ステップＳ１４０７）。ステップＳ１４０７において、最後の組でなかった場合、読出ＡＰＩ生成部１４３は、次の組を取得し（ステップＳ１４０８）、ステップＳ１４０３へ戻る。ステップＳ１４０７において、最後の組であった場合、読出ＡＰＩ生成部１４３は、処理を終了する。
【０１１７】
次に、図１５を参照し、本実施形態の読出ＡＰＩ生成部１４３の処理についてさらに説明する。図１５は、読出ＡＰＩ生成部による生成される読み出しＡＰＩを説明する図である。
【０１１８】
図１５に示す読み出しＡＰＩは、Ｊａｖａ言語にて作成されるものとした。図１５に示すＡＰＩ名のリスト１５４は、命令リスト１３１に含まれる各命令から生成された読み出しＡＰＩの一覧を示す。
【０１１９】
図１５では、命令リスト１３１に含まれる命令１３１−１を含む組から生成された読み出しＡＰＩ１５４−１、命令１３１−２を含む組から生成された読み出しＡＰＩ１５４−２、命令１３１−３を含む組から生成された読み出しＡＰＩ１５４−３となる。
【０１２０】
具体的には、読み出しＡＰＩ１５４−１は、コマンドｆｏｏ．ｓｈの実行結果から、復帰値を取得する命令を呼び出して実行させる機能を有する。すなちわ、読み出しＡＰＩ１５４−１は、自動実行装置１００に対し、コマンドｆｏｏ．ｓｈの実行結果から、復帰値を取得させる。
【０１２１】
また、読み出しＡＰＩ１５４−２は、コマンドｆｏｏ．ｓｈの実行結果から、「ｎａｍｅ」の値を取得する命令を呼び出して実行させる機能を有する。すなちわ、読み出しＡＰＩ１５４−２は、自動実行装置１００に対し、コマンドｆｏｏ．ｓｈの実行結果から、「ｎａｍｅ」の値を取得させる。また、読み出しＡＰＩ１５４−３は、コマンドｆｏｏ．ｓｈの実行結果から、「ｌｉｓｔ０１」の値を取得する命令を呼び出して実行させる機能を有する。すなちわ、読み出しＡＰＩ１５４−３は、自動実行装置１００に対し、コマンドｆｏｏ．ｓｈの実行結果から、「ｌｉｓｔ０１」の値を取得させる。
【０１２２】
尚、本実施形態では、命令リスト１３１に含まれる組毎に、読み出しＡＰＩ１５４−１、１５１−２、１５１−３を生成するものとしたが、これに限定されない。本実施形態の読出ＡＰＩ生成部１４３は、命令リスト１３１に含まれる各組から１つの読み出しＡＰＩを生成してもよい。この場合、生成される読み出しＡＰＩの名前は、ｆｏｏ．ｇｅｔＲｅｓｕｌｔ（ｃｏｄｅ，ｒｅｔｕｒｎＣｏｄｅ，ｎａｍｅ，ｌｉｓｔ０１）となる。
【０１２３】
図１６は、読み出しＡＰＩの記述例を示す図である。図１６に示す記述１６１は、読み出しＡＰＩ１５４−１をＪａｖａ言語で記述した例を示している。
【０１２４】
記述１６１における記述１６２は、命令１３１−１により示される実行結果を読み出す機能を呼び出す記述である。また、記述１６３は、取得した実行結果の値を、タイプで指定された型となるように変換する記述である。
【０１２５】
次に、図１７を参照し、ＡＰＩ生成部１４０の実行ＡＰＩ生成部１４１の処理について説明する。図１７は、ＡＰＩ生成部における実行ＡＰＩ生成部の処理を説明するフローチャートである。図１７で説明する処理は、図４のステップＳ４０６の詳細を示す。
【０１２６】
本実施形態のＡＰＩ生成部１４０は、実行ＡＰＩ生成部１４１により、実行ＡＰＩを生成するプログラム言語のテンプレートを取得する（ステップＳ１７０１）。続いて、実行ＡＰＩ生成部１４１は、テンプレートの処理を実行する機能の記述の部分を、格納機能付きフローを実行する機能の記述に置き換える（ステップＳ１７０２）。
【０１２７】
続いて、実行ＡＰＩ生成部１４１は、該当箇所を置き換えたテンプレートを保存する（ステップＳ１７０３）。
【０１２８】
図１８は、実行ＡＰＩの記述例を示す図である。図１８に示す記述１８１は、コマンド「ｆｏｏ．ｓｈ」を呼び出す機能を呼び出す実行ＡＰＩをＪａｖａ言語で記述した例を示している。
【０１２９】
次に、図１９を参照し、本実施形態の自動実行装置１００における、ＡＰＩ２０を介したコマンドの実行について説明する。
【０１３０】
図１９は、自動実行装置においてＡＰＩを介してコマンドを実行する処理を説明するフローチャートである。
【０１３１】
図１９において、以下に説明するステップＳ１９０１からステップＳ１９０３までの処理は、実行指示を受けたコマンドを呼び出す機能に相当する。
【０１３２】
本実施形態の自動実行装置１００は、端末装置３００からコマンドの実行指示を受け付けて、実行ＡＰＩ生成部１４１により生成された実行ＡＰＩ２１を呼び出す（ステップＳ１９０１）。続いて、呼び出された実行ＡＰＩ２１は、フロー実行制御部１６０に対し、実行ＡＰＩ２１に対応するコマンドの実行要求を行う（ステップＳ１９０２）。
【０１３３】
次に、フロー実行制御部１６０は、フロー記憶部１１１に格納された、実行要求を受けたコマンドと対応する格納機能付きフロー１０をサーバ２００に実行させる（ステップＳ１９０３）。
【０１３４】
以下に説明するステップＳ１９０４、１９０５の処理は、コマンドを実行した結果の実行結果を取得する処理に相当する。
【０１３５】
ステップＳ１９０３に続いて、自動実行装置１００は、読出ＡＰＩ生成部１４３により生成された読み出しＡＰＩ２２を読み出す（ステップＳ１９０４）。続いて、読み出しＡＰＩ２２は、実行結果読出部１４２により自動生成された、実行結果格納データベース１１０から実行結果を読み出す機能を呼び出す（ステップＳ１９０５）。
【０１３６】
尚、本実施形態の自動実行装置１００において、実行ＡＰＩ生成部１４１による実行ＡＰＩ２１を生成する処理は、コマンドの実行指示を受け付けたときに行われても良いし、予めコマンド毎の実行ＡＰＩ２１を生成しておいても良い。
【０１３７】
また、本実施形態の自動実行装置１００において、格納機能付きフロー１０は、フロー実行制御部１６０がコマンドと対応するフローの実行指示を受け付けたとき、格納機能付加部１５０により生成されても良い。また、格納機能付きフロー１０は、予めコマンド毎に生成されていても良い。
【０１３８】
本実施形態において、実行ＡＰＩ２１と格納機能付きフロー１０は、例えばコマンド仕様が更新されたときに、自動的に生成されて、ＡＰＩ記憶部１２１とフロー記憶部１１１にそれぞれ格納されても良い。また、実行ＡＰＩ２１と格納機能付きフロー１０は、運用管理者による生成指示を受け付けたときに生成されても良い。運用管理者による生成指示は、任意のタイミングで行われても良い。
【０１３９】
図２０は、端末装置からコマンドを呼び出す記述の例を示す図である。図２０に示す記述２０１は、Ｊａｖａ言語によりコマンド「ｆｏｏ．ｓｈ」を呼び出し、コマンド「ｆｏｏ．ｓｈ」の実行結果を得るための記述である。つまり、記述２０１は、ＡＰＩ２０を記述したものである。
【０１４０】
記述２０１のうち、記述２０２は、コマンドを呼び出して実行させるための記述であり実行ＡＰＩ２１に相当する。また、記述２０３は、コマンドを実行した結果を出力させるための記述であり、読み出しＡＰＩ２２に相当する。
【０１４１】
以上のように、本実施形態では、コマンド仕様を参照して、実行指示を受け付けたコマンドの実行結果を実行結果格納データベース１１０に格納される格納機能を付加した格納機能付きフロー１０を自動生成する。格納機能付きフロー１０は、専用言語により記述される。また、本実施形態では、格納した実行結果を参照させる機能を自動生成し、この機能を呼び出す読み出しＡＰＩ２２を生成する。読み出しＡＰＩ２２は、端末装置３００で使用される汎用プログラム言語により記述される。
【０１４２】
そして、本実施形態の自動実行装置１００は、端末装置３００からコマンドの実行指示を受けて、コマンドと対応した格納機能付きフローを実行し、コマンドの実行結果を実行結果格納データベース１１０に格納する。続いて、本実施形態の自動実行装置１００は、読み出しＡＰＩ２２により、格納した実行結果を参照させる機能を呼び出して、実行結果格納データベース１１０に格納された実行結果を端末装置３００へ出力する。
【０１４３】
したがって、本実施形態では、端末装置３００において、端末装置３００で使用される汎用プログラム言語により、コマンドの実行指示を行い、復帰値以外のコマンドの実行結果として出力された実行結果出力情報を得ることができる。よって、本実施形態によれば、端末装置３００において、汎用プログラム言語で記述されたプログラムと、自動実行処理部１３０による処理と、を連携させることができる。
【０１４４】
また、本実施形態では、ＡＰＩ２０に含まれる実行ＡＰＩ２１と、読み出しＡＰＩ２２とが、汎用プログラム言語で記述される場合を説明したが、これに限定されない。
【０１４５】
自動実行装置１００では、格納機能付きフローと、ＡＰＩ２０とが、両方とも専用言語で記述されても良い。この場合、自動実行装置１００は、所定の処理の実行指示を受けて、フロー実行制御部１６０が、所定の処理に含まれるコマンドに対応した格納機能付きフローを実行すれば良い。
【０１４６】
また、この場合、ＡＰＩ２０は、実行指示を受けた所定の処理に、複数のコマンドが含まれる場合に生成されても良い。
【０１４７】
所定の処理に複数のコマンドが含まれる場合、最初に実行されたコマンドの実行結果を次に実行されるコマンドへ引き継ぐことが求められるからである。この場合、自動実行装置１００は、最初のコマンドの実行指示を受けて、このコマンドに対応する格納機能付きフローを実行し、このコマンドの実行結果を読み出す機能を呼び出す読み出しＡＰＩ２２を生成する。
【０１４８】
このとき、読み出しＡＰＩ２２は、例えば読み出した実行結果を次のコマンドに渡すように記述されていても良い。
【０１４９】
具体的には、例えば、図２０の記述２０３において、コマンドの実行結果を端末装置３００の画面に出力させる記述を、コマンドの実行結果を次のコマンドに渡す記述とすれば良い。実行結果を次のコマンドに渡す記述とすれば、次に実行されるコマンドは、前に実行されたコマンドの実行結果を入力とすることができる。
【０１５０】
また、本実施形態では、例えば端末装置３００からコマンドの実行指示を受け付けたとき、ＡＰＩ２０を介してコマンドの実行結果を端末装置３００に出力するものとして説明したが、これに限定されない。
【０１５１】
自動実行装置１００は、例えば端末装置３００からコマンドの実行指示を受け付けると、コマンドに対応したＡＰＩ２０を生成し、ＡＰＩ２０を端末装置３００に対して出力しても良い。この場合、ＡＰＩ２０が提供された端末装置３００が、実行結果格納データベース１１０にアクセスして実行結果を取得することになる。
【０１５２】
以上のように、本実施形態によれば、自動実行処理部１３０によりコマンドを実行した際に、復帰値以外の実行結果出力情報を取得することができる。
【０１５３】
（第二の実施形態）
以下に図面を参照して、第二の実施形態について説明する。第二の実施形態は、ＡＰＩ生成部１４０を外部の装置に設けた点が、第一の実施形態と相違する。よって、以下の第二の実施形態の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号を付与し、その説明を省略する。
【０１５４】
図２１は、第二の実施形態の自動実行システムを説明する図である。本実施形態の自動実行システム４００は、自動実行装置１００Ａと、ＡＰＩ生成装置１４０Ａとを有する。
【０１５５】
本実施形態の自動実行装置１００Ａは、格納機能付加部１５０と、フロー実行制御部１６０と、実行結果格納データベース１１０と、を有する。自動実行装置１００Ａと、ＡＰＩ生成装置１４０Ａとは、ネットワーク等を介して通信を行う。
【０１５６】
本実施形態のＡＰＩ生成装置１４０は、演算処理装置と、記憶装置とを有する一般的なコンピュータであり、ＡＰＩ生成部１４０と、ＡＰＩ記憶部１２１とを有する。
【０１５７】
本実施形態では、ＡＰＩ生成部１４０を外部に設けることで、自動実行装置１００Ａの処理負荷を軽減できる。
【０１５８】
（第三の実施形態）
以下に図面を参照して、第三の実施形態について説明する。第三の実施形態は、ＡＰＩ生成部１４０と、実行結果格納データベース１１０とを外部の装置に設けた点が、第一の実施形態と相違する。よって、以下の第三の実施形態の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号を付与し、その説明を省略する。
【０１５９】
図２２は、第三の実施形態の自動実行システムを説明する図である。本実施形態の自動実行システム４００Ａは、自動実行装置１００Ｂと、ＡＰＩ生成装置１４０Ａとを有し、自動実行装置１００Ｂと、ＡＰＩ生成装置１４０Ａとは、ネットワーク等を介して通信を行う。
【０１６０】
本実施形態の自動実行装置１００Ｂは、格納機能付加部１５０と、フロー実行制御部１６０とを有し、実行結果格納データベース１１０が格納される実行結果格納装置１１０Ａと通信を行う。また、本実施形態のＡＰＩ生成装置１４０Ａも、実行結果格納装置１１０Ａと通信を行い、実行結果を取得する。
【０１６１】
本実施形態では、実行結果格納データベース１１０を自動実行装置１００Ｂの外部に設けたため、自動実行装置１００Ｂを簡素な構成のコンピュータとすることができる。
【０１６２】
開示の技術では、以下に記載する付記のような形態が考えられる。
（付記１）
命令を取得し、
前記命令に関連付けられた引数、復帰値、実行結果出力情報が記憶されたコマンド仕様を参照し、前記実行結果出力情報に基づいて、実行結果を所定の記憶領域に格納する機能と、格納した実行結果を参照する機能と、を自動生成し、
自動生成した前記格納した実行結果を参照する機能を呼び出す機能を自動生成し、
前記命令の実行指示を受けたときに、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する、処理をコンピュータに実行させる自動実行プログラム。
（付記２）
前記実行結果を所定の記憶領域に格納する機能は、第一のプログラム言語による記述により実現され、
前記格納した実行結果を参照する機能と、前記格納した実行結果を参照する機能を呼び出す機能と、は、第二のプログラム言語による記述により実現される付記１記載の自動実行プログラム。
（付記３）
前記第一のプログラム言語は、前記命令を実行させる機器に対応した言語であり、前記第二のプログラム言語は、予め決められた所定のプログラム言語である、付記２記載の自動実行プログラム。
（付記４）
複数の命令を取得し、
前記複数の命令について、前記命令毎に、前記実行結果を所定の記憶領域に格納する機能と、前記格納した実行結果を参照する機能と、前記格納した実行結果を参照する機能を呼び出す機能と、を自動生成し、
前記複数の命令による処理の実行指示を受けたとき、
前記命令毎に、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する、処理を前記コンピュータに実行させる付記１乃至３の何れか一項に記載の自動実行プログラム。
（付記５）
前記格納した実行結果を参照する機能を呼び出す機能は、
前記実行結果を、前記命令の実行指示を行った端末装置へ出させる付記１乃至４の何れか一項に記載の自動実行プログラム。
（付記６）
前記格納した実行結果を参照する機能を呼び出す機能は、
前記実行結果を、前記命令の次に実行される命令に参照させる付記１乃至４の何れか一項に記載の自動実行プログラム。
（付記７）
コンピュータによる自動実行方法であって、該コンピュータが、
命令を取得し、
前記命令に関連付けられた引数、復帰値、実行結果出力情報が記憶されたコマンド仕様を参照し、前記実行結果出力情報に基づいて、実行結果を所定の記憶領域に格納する機能と、格納した実行結果を参照する機能と、を自動生成し、
自動生成した前記格納した実行結果を参照する機能を呼び出す機能を自動生成し、
前記命令の実行指示を受けたときに、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する、自動実行方法。
（付記８）
命令を取得して、前記命令に関連付けられた引数、復帰値、実行結果出力情報が記憶されたコマンド仕様を参照し、前記実行結果出力情報に基づいて、実行結果を所定の記憶領域に格納する機能を自動生成する格納機能付加部と、
前記格納した実行結果を参照する機能と、前記格納した実行結果を参照する機能を呼び出す機能とを、自動生成する第一の生成部と、
前記命令の実行指示を受けたときに、前記実行結果を所定の記憶領域に格納する機能、及び、前記格納した実行結果を参照する機能を呼び出す機能から、前記命令を呼び出して前記命令の実行結果を取得するための命令群を生成する第二の生成部と、を有する自動実行装置。
【０１６３】
本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１６４】
１００、１００Ａ、１００Ｂ  自動実行装置
１１０  実行結果格納データベース
１１１  フロー記憶部
１２１  ＡＰＩ記憶部
１４０  ＡＰＩ生成部
１４１  実行ＡＰＩ生成部
１４２  実行結果読出部
１４３  読出ＡＰＩ生成部
１５０  格納機能付加部
１５１  コマンド仕様取得部
１５１  格納命令生成部
１５３  格納命令付加部
１６０  フロー実行制御部
２００  サーバ
３００  端末装置
４００、４００Ａ  自動実行システム
【図１】
0006555138.tif 000002
【図２】
0006555138.tif 000003
【図３】
0006555138.tif 000004
【図４】
0006555138.tif 000005
【図５】
0006555138.tif 000006
【図６】
0006555138.tif 000007
【図７】
0006555138.tif 000008
【図８】
0006555138.tif 000009
【図９】
0006555138.tif 000010
【図１０】
0006555138.tif 000011
【図１１】
0006555138.tif 000012
【図１２】
0006555138.tif 000013
【図１３】
0006555138.tif 000014
【図１４】
0006555138.tif 000015
【図１５】
0006555138.tif 000016
【図１６】
0006555138.tif 000017
【図１７】
0006555138.tif 000018
【図１８】
0006555138.tif 000019
【図１９】
0006555138.tif 000020
【図２０】
0006555138.tif 000021
【図２１】
0006555138.tif 000022
【図２２】
0006555138.tif 000023