JP2006134344A - 電子計算機間のジョブ転送方法およびジョブ転送システム - Google Patents
電子計算機間のジョブ転送方法およびジョブ転送システム Download PDFInfo
- Publication number
- JP2006134344A JP2006134344A JP2005336432A JP2005336432A JP2006134344A JP 2006134344 A JP2006134344 A JP 2006134344A JP 2005336432 A JP2005336432 A JP 2005336432A JP 2005336432 A JP2005336432 A JP 2005336432A JP 2006134344 A JP2006134344 A JP 2006134344A
- Authority
- JP
- Japan
- Prior art keywords
- job
- computer
- request
- result
- script
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】
計算機間でジョブ転送する場合に、複数のスクリプトを転送すると同時に実行指示することができなかった。複数のスクリプトを事前に転送しておき、実行時には実行指示のみを行なうこともできるが、この方式では、実行コマンドが送られてくるまでスクリプト・ファイルの管理を行なわなければならず、そのバージョン管理などが煩雑で、転送を忘れると間違ったジョブを実行したり、実行の直前にスクリプトを作成または変更してジョブを実行させることができないという問題があった。
【解決手段】
第1の計算機から第2の計算機にリクエストを送ってジョブを登録し実行させるジョブ転送方法において、第2の計算機により前記ジョブを実行した結果作成される複数の結果ファイルを、第2の計算機から第1の計算機に送信するステップと、第1の計算機により、前記複数の結果ファイルを受信するステップとを備えようにする。
【選択図】 図9
計算機間でジョブ転送する場合に、複数のスクリプトを転送すると同時に実行指示することができなかった。複数のスクリプトを事前に転送しておき、実行時には実行指示のみを行なうこともできるが、この方式では、実行コマンドが送られてくるまでスクリプト・ファイルの管理を行なわなければならず、そのバージョン管理などが煩雑で、転送を忘れると間違ったジョブを実行したり、実行の直前にスクリプトを作成または変更してジョブを実行させることができないという問題があった。
【解決手段】
第1の計算機から第2の計算機にリクエストを送ってジョブを登録し実行させるジョブ転送方法において、第2の計算機により前記ジョブを実行した結果作成される複数の結果ファイルを、第2の計算機から第1の計算機に送信するステップと、第1の計算機により、前記複数の結果ファイルを受信するステップとを備えようにする。
【選択図】 図9
Description
本発明は、電子計算機のジョブ転送方法およびシステムに関し、特に複数のスクリプトの転送を可能にしたジョブ転送方法およびシステムに関する。
従来より、あるコンピュータから別のコンピュータにバッチ・ジョブを投入し、当該コンピュータで当該バッチ・ジョブを実行し、その結果をジョブ転送元のコンピュータに返すジョブ転送方式が知られている。バッチ・ジョブは、ある業務を実行したいがその間に別の業務も実行したいときに有用である。ジョブ(ある業務)を投入すると、当該ジョブは一旦キューに登録され、この時点より次のジョブ(別の業務)が投入可能となる。登録されたジョブは、システムが順次取り出して実行する。データの集計処理などのように日次あるいは月次で実行する業務の定形化・自動化を実現するためには、このようなバッチ・ジョブの運用が必須である。
このようなジョブ転送方式としては各種の方式のものが知られているが、大別すると以下の3つのタイプがある。第1は、あるコンピュータから他のコンピュータにジョブ実行指示のみを行なうものである。後述するスクリプトの転送は行なわない。ジョブ実行指示を発行したコンピュータは、指示したジョブの実行状態および結果を、ジョブを実行したコンピュータからステータス情報として受け取る。第2は、あるコンピュータから他のコンピュータに対してジョブ実行指示を行なう直前に1つのスクリプトを転送するものである。この場合、指示したジョブの実行結果は1つの結果ファイルとして返される。スクリプトとは、ジョブを実行するコンピュータに与える複数のコマンドの集合であり、条件分岐などの簡単な制御を行なうことができるようにしたものもある。スクリプトを用いることにより、1回のジョブ投入で、複数のコマンドの一連の実行を行なわせることができる。第3は、ファイル転送またはファイル配布としてジョブの実行指示とは別に事前にスクリプトファイルを転送しておき、後でジョブ実行指示を行なうものである。
ジョブ転送において、転送先のコンピュータで1つのスクリプトから他のスクリプトを呼び出して実行させたい場合がよくある。この場合、1つのジョブが複数のスクリプトファイルから構成されることになるが、上述の第1〜第3の従来の方式では、何れも、複数のスクリプトを転送すると同時に実行指示することができなかった。このため、複数のスクリプトを事前に転送しておき、実行時には実行指示のみを行なう手法を採らざるを得ない。これは上述の従来技術の第3の方式と第1の方式を組み合わせたものである。しかし、この方式では、実行コマンドが送られてくるまでスクリプト・ファイルの管理を行なわなければならず、そのバージョン管理などが煩雑で、転送を忘れると間違ったジョブを実行したり、実行の直前にスクリプトを作成または変更してジョブを実行させることができないという問題があった。
本発明は、上述の従来技術における問題点に鑑み、電子計算機間のジョブ転送方式において、複数のスクリプトの転送を行なうと同時にジョブ実行指示を行なうことのできるジョブ転送方法およびシステムを提供することを目的とする。
上記目的を達成するため、請求項1に係る発明は、第1の計算機から第2の計算機にリクエストを送ってジョブを登録し実行させるジョブ転送方法において、第2の計算機により前記ジョブを実行した結果作成される複数の結果ファイルを、第2の計算機から第1の計算機に送信するステップと、第1の計算機により、前記複数の結果ファイルを受信するステップとを備えたことを特徴とする。
請求項2に係る発明は、第1の計算機から第2の計算機にリクエストを送ってジョブを登録し実行させるジョブ転送方法において、第2の計算機により前記ジョブを実行した結果作成される複数の結果ファイルの内容を含むレスポンス・データ・ストリームを作成するステップと、作成したレスポンス・データ・ストリームを、第2の計算機から第1の計算機に送信するステップと、第1の計算機により、前記レスポンス・データ・ストリーム中の複数の結果ファイルの内容を抽出して、各結果ファイルごとに格納するステップとを備えたことを特徴とする。
請求項3に係る発明は、請求項2において、前記レスポンス・データ・ストリームは、テキストデータ形式であることを特徴とする。
請求項4に係る発明は、ジョブを登録して実行させるためのリクエストを第2の計算機に送信する第1の計算機と、第1の計算機から送信されるリクエストを受信しそのリクエストに基づいてジョブを登録し実行する第2の計算機とを含むジョブ転送システムにおいて、第2の計算機は、前記ジョブを実行した結果作成される複数の結果ファイルを、第2の計算機から第1の計算機に送信する手段を備え、第1の計算機は、前記複数の結果ファイルを受信する手段を備えたことを特徴とする。
請求項5に係る発明は、ジョブを登録して実行させるためのリクエストを第2の計算機に送信する第1の計算機と、第1の計算機から送信されるリクエストを受信しそのリクエストに基づいてジョブを登録し実行する第2の計算機とを含むジョブ転送システムにおいて、第2の計算機は、前記ジョブを実行した結果作成される複数の結果ファイルの内容を含むレスポンス・データ・ストリームを作成する手段と、作成したレスポンス・データ・ストリームを、第2の計算機から第1の計算機に送信する手段とを備え、第1の計算機は、前記レスポンス・データ・ストリーム中の複数の結果ファイルの内容を抽出して、各結果ファイルごとに格納する手段を備えたことを特徴とする。
請求項6に係る発明は、請求項5において、前記レスポンス・データ・ストリームは、テキストデータ形式であることを特徴とする。
以上説明したように、本発明によれば、1回のジョブ転送で複数のスクリプトの転送とその実行の指示を行なえるので、スクリプトの管理が不要になり、間違ったジョブを実行する誤りも無くなる。実行の直前にスクリプトを作成または変更してジョブを実行させることもできる。
以下、図面を用いて本発明の実施の形態を説明する。
図1は、本発明に係るジョブ転送方法を適用したシステムの全体構成例を示す。図1において、101〜103は、それぞれサーバとなる計算機を示す。111〜114はクライアントとなる計算機を示す。サーバ101〜103およびクライアント111〜114はネットワークに接続されており、各装置間で各種の情報を授受することができる。各クライアント111〜114からは、サーバ101〜103にジョブを登録し、各サーバで当該ジョブをバッチ的に実行させ、その結果を各クライアントに返す、という処理が行なえる。ジョブの登録とは、具体的には、所定のジョブ制御言語で記載されたプログラム実行指示をサーバに転送することである。この転送の際、転送データ中に、サーバで実行すべき複数のスクリプトを含めることができる。これにより、1回のジョブ登録で、複数のスクリプトの転送とその実行とを同時に指示することができ、サーバに複雑な処理を行なわせることができる。複数のスクリプトに分けて転送できるので、スクリプトの作成や管理が容易になる。実行の直前にスクリプトを作成または変更してジョブを実行させることもできる。
各サーバおよび各クライアントは、それぞれ独立のプラットフォーム(例えば、UNIX、メインフレーム、またはWindows NT(マイクロソフト社の商品名)など)を使用することができる。クライアントとしては、ジョブ・ランチャ・クライアント、WWWブラウザ・クライアントなどの各種の方式を用いることができ、また各種のユーザ・プログラムから所定のAPI(アプリケーション・プログラム・インターフェース)を用いてジョブ登録することも可能である。クライアントからサーバへジョブを登録する操作は、例えば、所定のコマンドを入力すること、あるいは所定のGUI(グラフィカル・ユーザ・インタフェース)を用いて指示することなどの操作による。サーバに登録したジョブは一旦キューに登録され、クライアントではサーバに問い合わせて当該キューの状態を表示したり、キューに登録したジョブの取り消しを行なうこともできる。クライアントとサーバとの間にサーバ・ゲートウェイを設けても良い。サーバ・ゲートウェイは、各クライアントからの各種リクエスト(要求)を受け付け、それらのリクエストをどのサーバに転送するかを判別し、当該リクエストをそのサーバに転送し、サーバからのリクエスト実行結果をレスポンスデータとして受け取ってまとめ、要求発行元のクライアントに返す、といった処理を行なうものである。
図2は、クライアントとサーバとの間の通信プロトコルの基本動作を説明するための図である。ここではクライアントとサーバとの間にサーバ・ゲートウェイを設ける例を示す。
リクエスト発行側がクライアント201である。クライアント201では、コマンドの入力あるいはGUIによる指示などに基づいて、サーバに対して各種のリクエストを発行するプログラムが動作する。このプログラムは、ユーザ指定のポートに接続し、各種のリクエストを発行し、接続を解除する、という手順で処理を行なう。発行するリクエストとしては、SUBMIT(ジョブの登録)、ALTER(ジョブの状態変更)、CANCEL(ジョブの削除要求)、ENUMRATE(キュー内にあるジョブの列挙)、およびGET(ジョブ情報の取得)などがある。これらのリクエストは、リクエスト・ブロック202と呼ばれるテキスト・ベースのリクエスト・データ・ストリームによってサーバ・ゲートウェイ203に転送される。
サーバ・ゲートウェイ203は、各クライアントから転送されるリクエスト・ブロック202を受信し、そのリクエストを解析し、どのサーバに転送するかを判断し、そのリクエストを当該サーバ204に転送し、サーバ204から転送されてくる実行結果を受け取ってレスポンスデータを作成し、レスポンス・ブロック205と呼ばれるテキスト・ベースのレスポンス・データ・ストリーム205を作成してリクエスト発行元のクライアント201に返送する。なお、これらのサーバ/クライアント間のコネクションは、リクエスト単位で接続/切断する。また、サーバ・ゲートウェイはサーバ本体と同一サーバ上にあってもよい。
なお、サーバ・ゲートウェイ203を設けずに、クライアント201とサーバ204との間でリクエスト・ブロック202およびレスポンス・ブロック205を用いて直接通信するようにしてもよい。ただし、サーバ・ゲートウェイ203を設ければ、ネットワーク上のリクエスト・ブロック202およびレスポンス・ブロック205を用いたプロトコル(さらに詳細は図3〜図6で説明する)をサーバ・ゲートウェイ203で変換し、サーバ204が従来より備えているプロトコルでサーバ204とサーバ・ゲートウェイ203との間の通信を行なえるので、サーバ204側で新たなプロトコルをサポートする必要はない。したがって、サーバ204側の修正が不要になるので便宜である。
図3は、ジョブ登録(SUBMIT)、状態変更(ALTER)、削除要求(CANCEL)、およびキュー列挙(ENUMRATE)のリクエストを発行する際の具体的な通信シーケンスを示す。サーバ301は、アクセプト命令accept()311でクライアント302からのコネクト要求を待つ。クライアント302は、コネクト命令connect()321を発行し、サーバ301との接続を確立する。接続確率後、クライアント302は、ライト命令write()322で、上述のジョブ登録(SUBMIT)、状態変更(ALTER)、削除要求(CANCEL)、およびキュー列挙(ENUMRATE)の何れかのリクエストを送信する。サーバ301は、リード命令read()312で当該リクエストを受信し、当該リクエストに応じて処理を行ない、その結果をwrite()313でクライアント302に返す。クライアント302は、read()323でその結果を受け取る。これらのreadおよびwriteは、データ量に応じて複数回繰り返される。これらの処理の後、サーバ301ではクローズclose()314を行ない、クライアント302ではクローズclose()324を行ない、通信シーケンスを終了する。
図4は、ジョブ情報取得(GET)のリクエストを発行する際の具体的な通信シーケンスを示す。ジョブ情報の取得(GET)では、大量のデータを送受信する場合があるので、一度に送受信するデータ量を制限して通信する。具体的には、seriesタグを用いてデータの継続および送受信終了を制御する。また、ジョブ情報取得(GET)では、サーバは取得条件(時刻範囲やジョブ名など)によるフィルタ機能を持つようにしてもよい。
seriesタグを用いたジョブ情報取得(GET)の通信シーケンスについて説明する。図4において、サーバ401は、アクセプト命令accept()411でクライアント402からのコネクト要求を待つ。クライアント402は、コネクト命令connect()421を発行し、サーバ401との接続を確立する。接続確率後、クライアント402は、write()422でジョブ情報取得要求のリクエストを送信する。サーバ401は、read()412で当該ジョブ情報取得要求を受信し、当該リクエストに応じて応答すべきジョブ情報を用意する。この応答すべきジョブ情報は大量データであるので、その一部分をwrite()413でseries=1としてクライアント402に送信する。クライアント402は、read()423でそのジョブ情報を受信するが、series=1で送られてきているので、引き続き継続データを取得するための要求をwrite()424でseries=1として発行する。サーバ401は、read()414で当該ジョブ情報取得要求を受信し、当該要求に応じて、継続するジョブ情報をwrite()415でseries=1としてクライアント402に送信する。以上のようにして、必要な回数だけseries=1でwriteおよびread(415,416,425,426,…)を繰り返し、サーバ401から送るジョブ情報が最終データになったとき、write()417でseries=0として最終のジョブ情報を送信し、クライアント402ではread()427でそのジョブ情報を受信する。read()427ではseries=0として受信するので、クライアント402ではジョブ情報の最終データであることが分かる。これらの処理の後、サーバ401ではclose()418を行ない、クライアント402ではクローズclose()428を行ない、通信シーケンスを終了する。
図5は、図3や図4の通信シーケンスで各リクエストをサーバに送る際に、実際にreadおよびwriteされる通信データの形式を示す。クライアントからwriteされサーバでreadされるリクエスト・データ・ストリーム(図2の202)は、ヘッダ部510とボディ部520からなる。ヘッダ部510は、一般ヘッダ511およびリクエスト・ヘッダ512からなる。ボディ部520は、リクエスト・ボディ521からなる。サーバからwriteされクライアントでreadされるレスポンス・データ・ストリーム(図2の205)は、ヘッダ部530とボディ部540からなる。ヘッダ部530は、一般ヘッダ531およびレスポンス・ヘッダ532からなる。ボディ部540は、レスポンス・ボディ541からなる。これらのデータは、テキスト・ベースで「タグ名=値;」の形式で記述される。タグ名と指定値の文字コードはすべてASCIIコードである。
一般ヘッダ511,531は、この通信シーケンスのプロトコルのバージョンなどの一般的な情報を含む。リクエスト・ヘッダ512は、サーバに対する要求(ジョブ登録(SUBMIT)、状態変更(ALTER)、削除要求(CANCEL)、キュー列挙(ENUMRATE)、あるいはジョブ情報取得(GET))を示す文字列や、ボディ部長さなどの当該リクエストに固有の情報を含む。レスポンス・ヘッダ532は、ボディ部長さなどの当該レスポンスに固有の情報を含む。リクエスト・ボディ521は、リクエストの内容(例えば、SUBMITであれば、ジョブを登録するキュー名、ジョブに付ける名称、ジョブとして実行するファイル名など)を含む。レスポンス・ボディ541は、レスポンスの内容を含む。
特に、リクエスト・ボディ521には複数のスクリプトを記述することができる。図6は、リクエスト・ボディ521中のスクリプトの記述例を示す。SENDSCRIPT=yes;は、この位置からスクリプトを転送するという宣言である。SCRIPTNAME=script/scripta;は、実際に転送するスクリプトのファイル名であり、ここではscriptaがそのファイル名である。SCRIPTLINES=4;はその後に続くスクリプトの内容の行数を示す。ここでは、SCRIPTLINES=4;の次からの4行分のSCRIPTBODY=…;の行が実際のscriptaの内容である。SUBSET=ENDでscriptaの終わりを示す。同様にして、次にscriptbが記述されている。これを繰り返すことにより、リクエスト・ボディ521に複数のスクリプトを記述できる。最後の(NULL)は、転送するリクエスト・データ・ストリームの終わりを示す。
図7は、クライアントがWindows NTである場合に上述した各種リクエストを発行するときに使用するジョブパラメタ定義ファイルを示す。クライアントからサーバにジョブを登録する場合、このような内容のジョブパラメタ定義ファイルを作成して、後述するコマンド解析部(図9の911)に渡すと、このコマンド解析部がこのジョブパラメタ定義ファイルを解析して上述したリクエスト・データ・ストリームを作成し、サーバに転送する。
図7のジョブパラメタ定義ファイルは、いわゆるINIファイル形式のテキスト・ベースのファイルである。その内容は、ユーザによるジョブ登録を受け付けるアプリケーション・プログラムで設定・編集するようにしてもよいし、各種のテキスト・エディタで設定・編集することもできる。ジョブパラメタ定義ファイル中、[Trans]で示す部分が、転送すべき複数のファイルを指定する部分である。これにより、複数のスクリプトを転送データ中に含ませることができる。具体的には、各スクリプトをそれぞれ1つのスクリプト・ファイルとして作成し、それらのスクリプト・ファイルを[Trans]の転送ファイルとして指定する。なお、スクリプトを1つ2つと数える単位はそのスクリプトを記述する文法によるものであるから、1つのスクリプト・ファイルに複数のスクリプトを記述することも可能であり、その場合はそのスクリプト・ファイルを[Trans]の転送ファイルとして指定すればよい。
図8は、UNIXの場合のジョブ登録コマンドの例を示す。図8(a)に示すようにqsubコマンドでジョブを登録する。その際、オペランドに「-t 転送元ファイル名=転送先ファイル名」と指定することにより(「=転送先ファイル名」は指定しなくてもよい)、指定したファイルを転送することができ、これによりスクリプト・ファイルを転送できる。図8(b)は、qsubコマンドでスクリプト・ファイルを転送する具体例である。unix上のスクリプト・ファイルtest.jclを転送先にOJE00001.JCL(JCL01)という名前で格納することを指示している。図8(c)は、2つのスクリプト・ファイルを転送する例である。unix上のスクリプト・ファイルtest01.jclを転送先にOJE00001.JCL(JCL01)という名前で格納し、unix上のスクリプト・ファイルtest01.datを転送先にOJE00001.DATAという名前で格納する。
図9は、ジョブの登録および実行結果の応答に係るクライアントおよびサーバの内部構成を示す。クライアント910は、コマンド解析部911、登録部912、および状態表示部913を備えている。サーバ920は、リクエスト解析部921、ジョブキュー管理部922、ジョブキュー923、実行管理部924、実行部925、スクリプト・ファイル格納部926、および実行結果格納部927を備えている。
コマンド解析部911は、ユーザからの指示に基づいてリクエスト・データ・ストリームを作成する。例えば、クライアント910がWindows NTベースのマシンであれば、図7で説明したようなジョブパラメタ定義ファイルを作成してコマンド解析部911に渡すと、コマンド解析部911が当該ジョブパラメタ定義ファイルの内容に基づいて図5および図6で説明したようなリクエスト・データ・ストリームを作成する。クライアント910がUNIXベースのマシンであれば、図8で説明したようなqsubコマンドをコマンド解析部911に入力すると、コマンド解析部911が当該qsubコマンドの指定に基づいて図5および図6で説明したようなリクエスト・データ・ストリームを作成する。何れの場合も、複数のスクリプトを含めてジョブの登録を行なうことができる。
コマンド解析部911で作成されたリクエスト・データ・ストリームは、登録部912を経由して、サーバ920のリクエスト解析部921に入力する。このときのデータ授受のプロトコルは、図2〜図6で説明した通りである。サーバ920のリクエスト解析部921は、受信したリクエスト・データ・ストリームを解析し、当該リクエスト・データ・ストリーム中にスクリプトが含まれている場合は、そのスクリプトを抽出して、スクリプト・ファイル格納部926に格納する。その際、リクエスト・データ・ストリーム中に複数のスクリプトが含まれていた場合は、各スクリプトをそれぞれ1つのスクリプト・ファイルとしてスクリプト・ファイル格納部926に格納する。例えば、図6のようなデータ・ストリームが入力した場合は、scriptaとscriptbの2つのスクリプト・ファイルとしてスクリプト・ファイル格納部926に格納する。
図10は、リクエスト解析部921におけるリクエスト・データ・ストリームの解析処理の一部であり、SENDSCRIPT=yes;を検出したときに実行されるスクリプト抽出処理の手順を示す。SENDSCRIPT=yes;を検出したとき、ステップ1001で、次の行がSCRIPTNAME=の行か否か判別する。SCRIPTNAME=の行なら、ステップ1002で、指定された名称のスクリプト・ファイルをスクリプト・ファイル格納部926に作成する。次にステップ1003で、SCRIPTNAME=の行の次のSCRIPTLINESを読み出し、その行数分だけSCRIPTBODYを読み出し、前記スクリプト・ファイルに書き込む。ステップ1004で当該スクリプト・ファイルをクローズし、ステップ1001に戻って、次のSCRIPTNAME=があるか否かを判別する。以降は、同様の処理を繰り返し、リクエスト・データ・ストリーム中のすべてのスクリプトを抽出してスクリプト・ファイルに書き込む。これにより、スクリプト・ファイル格納部926には、送られてきたリクエスト・データ・ストリーム中のすべてのスクリプトが格納される。
図9に戻って、リクエスト解析部921は、上記のようなスクリプトの抽出とともに、ジョブキュー管理部922を介して、ジョブキュー923にジョブを登録する。クライアントから送信されたリクエスト・データ・ストリームがスクリプトを含まず1つのコマンド(プログラム・ファイル)のみを実行するリクエストであった場合は、そのコマンドの実行命令がジョブキュー923に登録される。また、クライアントから送信されたリクエスト・データ・ストリームが1つのスクリプトを含むものであった場合は、そのスクリプトの実行命令がジョブキュー923に登録される。クライアントから送信されたリクエスト・データ・ストリームが複数のスクリプトを含むものであった場合は、それらのスクリプトのうち最初に実行すべきスクリプト(以下、メイン・スクリプトと呼ぶ)の実行命令がジョブキュー923に登録される。
なお、クライアントが作成してサーバに送るリクエスト・データ・ストリーム中には、サーバで最初に実行すべきファイル名が指定される。したがって、リクエスト・データ・ストリームがスクリプトを含まず1つのコマンド(プログラム・ファイル)のみを実行するリクエストであった場合は、リクエスト・データ・ストリーム中の最初に実行すべきファイル名としてそのコマンドのファイル名が指定されているはずである。同様に、リクエスト・データ・ストリームがスクリプトを含むものである場合は、リクエスト・データ・ストリーム中の最初に実行すべきファイル名として最初に実行すべきスクリプトのファイル名が指定されているはずである。言い替えると、クライアントから送られてくるリクエスト・データ・ストリームは最初に実行すべきコマンドやスクリプトの実行命令を含むものであるから、リクエスト・データ・ストリームからその実行命令を取り出してジョブキューに登録していると見なすことができる。
図11は、実行管理部924の処理ルーチン(一部)を示す。実行管理部924は、まずステップ1101で、ジョブキュー923から次に実行すべきジョブを取り出す。次に実行すべきジョブがどれであるかの判断は、OS(オペレーティング・システム)の仕様に基づく。次に、ステップ1102で、取り出したジョブを実行925に渡して実行する。取り出したジョブが1つのコマンドのみの実行命令である場合は、そのコマンドを実行すればよい。取り出したジョブがスクリプトの実行命令である場合は、そのスクリプトを実行する。複数のスクリプトが送られてきているときは、メイン・スクリプトが実行される。メイン・スクリプト実行中に下位のスクリプトが呼び出されて実行される場合があるが、すべてのスクリプトは既に図10の処理でスクリプト・ファイル格納部926に格納されているので、必要なスクリプトはスクリプト・ファイル格納部926から取り出して実行する。
次に、ステップ1103で、スクリプト(コマンドの実行のときはコマンド)の実行終了を待つ。終了したら、ステップ1104で、終了状態を実行結果格納部926にログとして記録し(実際には実行部925が記録する)、処理を終了する。ログとして記録するのは、例えば、ジョブ名、スクリプト名、結果ファイル名などである。結果ファイル名とは、ステップ1102で実行されたコマンド(スクリプトの実行の場合は、そのスクリプト中で実行された各コマンド)ごとに作成された結果ファイルの名称である。各コマンドを実行することにより、そのコマンドに特有の名称で結果ファイルが作成され、実行結果格納部927に格納される。したがって、スクリプトの実行により複数のコマンドが実行された場合(通常は、1つのスクリプトは複数のコマンドを含む)は、各コマンドの結果ファイルが作成される。
以上のようにして、バッチ・ジョブの登録と実行が行なわれる。さらにクライアント910は、状態表示部913を備えており、これにより、登録したジョブに関するジョブ情報取得(GET)を行なうことができる。すなわち、図9において、状態表示部913は、例えばユーザからの指示に基づいて、登録したジョブが現在どのような状態にあるかを問い合わせるジョブ情報取得(GET)のリクエストをサーバ920のリクエスト解析部921に発行する。このジョブ情報取得(GET)のリクエストは、ジョブ情報を取得する対象のジョブを特定するジョブ名などの情報を含む。リクエスト解析部921は、実行管理部924にジョブ情報取得を要求されたジョブを特定するジョブ名などの情報を渡し、ジョブ情報取得を指示する。
図12は、リクエスト解析部921からの指示に基づいて実行管理部924が行なうジョブ情報のGET処理の手順を示す。ステップ1201で、ジョブキュー923を参照し、指定されたジョブがキュー923内にあるか否か判別する。キュー923内にあれば、現在実行待ちあるいは実行中であるということだから、その状態を要求発行元のクライアント910の状態表示部913に返す。指定されたジョブがキュー923内にないときは、既に実行終了しているということだから、実行結果格納部927に格納されているログを参照し、ログの内容のうち返すべき情報を、レスポンスデータとしてまとめ、状態表示部913に返す。
特にこの実施の形態では、スクリプトを実行することにより複数の結果ファイルが実行結果格納部927に格納されるので、ジョブ情報取得(GET)では複数の結果ファイルをまとめてクライアントに返せるようにしている。すなわち、図9のクライアント910の状態表示部913からジョブ情報取得(GET)を発行するとき、そのリクエスト中に、返してもらいたい結果ファイルの名称を複数指定しておき、ステップ1203では、実行管理部924がそれら指定された名称の複数の結果ファイルを集め、それらの結果ファイルの内容を含むレスポンス・データ・ストリーム(図6)を作成し、図2および図4で説明したような通信シーケンスで状態表示部913に返す。
なお、複数の結果ファイルの内容を含むレスポンス・データ・ストリームを作成して状態表示部913に送り、状態表示部913でそれら複数の結果ファイルを再現するため、実行管理部924は複数の結果ファイルの内容を含むレスポンス・データ・ストリームを作成する機能を備え、状態表示部913は受信したレスポンス・データ・ストリーム中からそれら複数の結果ファイルを再現する機能を備えている。具体的には、実行管理部924は、図5で説明したような複数のスクリプト・ファイルの内容を含むリクエスト・データ・ストリームを作成するのと同様にして、結果ファイルを送ることを宣言するタグでその宣言をし、結果ファイルの名称を指定するタグで結果ファイル名を指定し、ライン数のタグで結果ファイルのライン数を指定し、その後に結果ファイルの内容を並べ、SUBSET=ENDで結果ファイルの終わりを指定し、以上の結果ファイル名の指定からSUBSET=ENDまでを繰り返すことにより任意の数の結果ファイルの内容を含めたレスポンス・データ・ストリームを作成する。また、そのようなリクエスト・データ・ストリームを受信した状態表示部913は、図10で複数のスクリプトを抽出してそれぞれファイルに再現したのと同様にして、リクエスト・データ・ストリーム中から複数の結果ファイルを再現する。
図13は、クライアント910におけるジョブ登録画面の例を示す。ユーザは予めテキスト・エディタなどを用いてスクリプト・ファイルtest01.jclとtest01.datを作成しておく。ジョブを登録するときには、図13の画面を表示させ、スクリプト転送定義1301で指定1302をチェックしてスクリプト転送を指定できる。スクリプト・ファイルの指定領域1303には、サーバに転送すべき複数のスクリプト・ファイルを記載することができる。図13の画面で各種情報を設定し、了解ボタン1304をオンすることにより、例えば図8(c)で説明したqsubコマンドが図9のコマンド解析部911に入力し、上述したように複数のスクリプトを含むジョブ登録を行なうことができる。
図14は、図9の状態表示部913によるジョブ状態表示の例である。状態表示部913は、所定時間間隔でジョブ情報取得(GET)を発行し、上述したようにジョブの現在の状態や結果ファイルを取得し、それらを図14のように一覧表示する。1401はジョブの連番、1402は当該ジョブの現在の状態が「実行中」であることを示す表示、1403は当該ジョブのジョブ名称を示す。1404は当該ジョブに含まれるスクリプト・ファイルの名称を示す。ジョブが複数のスクリプトを含む場合は、それら複数のスクリプト・ファイル名がすべて表示される。1405はジョブJob2が既に終了状態にあることを示す「終了」の表示である。1406は当該ジョブが終了した結果、サーバから受け取っている結果ファイルのファイル名を示す。複数の結果ファイルを受け取っている場合は、それらすべてのファイル名が表示される。
なお、上記実施の形態では、クライアントからサーバにジョブを登録する例で説明したが、同様にして、サーバから別のサーバにジョブを登録して実行させる際にも上述のプロトコルを利用して複数スクリプトを転送することができる。UNIXではサーバ/サーバ間でジョブ転送して負荷分散するのが通常であるので、UNIXベースのクライアントからのジョブの登録は、当該クライアントの側にあるサーバを一旦経由して、ネットワークを介して別のサーバに登録することになる。その場合は、サーバ/サーバ間で上述のプロトコルを利用した通信が行なわれる。
以上説明した実施の形態によれば、ジョブ転送のプロトコルとしてプレーン・テキストのデータ・ストリームを用いているので、ネットワークの種類に依存することなく実装が容易である。また、プレーン・テキスト中でタグを用いた表現で各種のパラメータを指定するので、プロトコルの拡張が容易にできる。プロトコルが拡張され、上位バージョンではタグの種類が増えている場合でも、下位バージョンのシステムが知らないタグを無視することでバージョンが異なるシステム間でも相互接続が可能になる。ユーザインターフェースや実装方法は、システムの事情により種々のバリエーションで実現できる。
101〜103…サーバ計算機、111〜114…クライアント計算機、201…クライアント、202…リクエスト・ブロック(リクエスト・データ・ストリーム)、203…サーバ・ゲートウェイ、204…サーバ、205…レスポンス・ブロック(レスポンス・データ・ストリーム)、910…クライアント、911…コマンド解析部、912…登録部、913…状態表示部、920…サーバ、921…リクエスト解析部、922…ジョブキュー管理部、923…ジョブキュー、924…実行管理部、925…実行部、926…スクリプト・ファイル格納部、927…実行結果格納部。
Claims (6)
- 第1の計算機から第2の計算機にリクエストを送ってジョブを登録し実行させるジョブ転送方法において、
第2の計算機により前記ジョブを実行した結果作成される複数の結果ファイルを、第2の計算機から第1の計算機に送信するステップと、
第1の計算機により、前記複数の結果ファイルを受信するステップと
を備えたことを特徴とするジョブ転送方法。 - 第1の計算機から第2の計算機にリクエストを送ってジョブを登録し実行させるジョブ転送方法において、
第2の計算機により前記ジョブを実行した結果作成される複数の結果ファイルの内容を含むレスポンス・データ・ストリームを作成するステップと、
作成したレスポンス・データ・ストリームを、第2の計算機から第1の計算機に送信するステップと、
第1の計算機により、前記レスポンス・データ・ストリーム中の複数の結果ファイルの内容を抽出して、各結果ファイルごとに格納するステップと
を備えたことを特徴とするジョブ転送方法。 - 前記レスポンス・データ・ストリームは、テキストデータ形式である請求項2に記載のジョブ転送方法。
- ジョブを登録して実行させるためのリクエストを第2の計算機に送信する第1の計算機と、第1の計算機から送信されるリクエストを受信しそのリクエストに基づいてジョブを登録し実行する第2の計算機とを含むジョブ転送システムにおいて、
第2の計算機は、前記ジョブを実行した結果作成される複数の結果ファイルを、第2の計算機から第1の計算機に送信する手段を備え、
第1の計算機は、前記複数の結果ファイルを受信する手段を備えた
ことを特徴とするジョブ転送システム。 - ジョブを登録して実行させるためのリクエストを第2の計算機に送信する第1の計算機と、第1の計算機から送信されるリクエストを受信しそのリクエストに基づいてジョブを登録し実行する第2の計算機とを含むジョブ転送システムにおいて、
第2の計算機は、
前記ジョブを実行した結果作成される複数の結果ファイルの内容を含むレスポンス・データ・ストリームを作成する手段と、
作成したレスポンス・データ・ストリームを、第2の計算機から第1の計算機に送信する手段と
を備え、
第1の計算機は、
前記レスポンス・データ・ストリーム中の複数の結果ファイルの内容を抽出して、各結果ファイルごとに格納する手段を
備えたことを特徴とするジョブ転送システム。 - 前記レスポンス・データ・ストリームは、テキストデータ形式である請求項5に記載のジョブ転送システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005336432A JP2006134344A (ja) | 2005-11-21 | 2005-11-21 | 電子計算機間のジョブ転送方法およびジョブ転送システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005336432A JP2006134344A (ja) | 2005-11-21 | 2005-11-21 | 電子計算機間のジョブ転送方法およびジョブ転送システム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11114335A Division JP2000305796A (ja) | 1999-04-22 | 1999-04-22 | 電子計算機間のジョブ転送方法およびジョブ転送システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006134344A true JP2006134344A (ja) | 2006-05-25 |
Family
ID=36727766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005336432A Pending JP2006134344A (ja) | 2005-11-21 | 2005-11-21 | 電子計算機間のジョブ転送方法およびジョブ転送システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006134344A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020500345A (ja) * | 2016-09-02 | 2020-01-09 | アイイーエックス グループ,インコーポレーテッド | 時間的に正確なイベントストリームの作成のためのシステム及び方法 |
-
2005
- 2005-11-21 JP JP2005336432A patent/JP2006134344A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020500345A (ja) * | 2016-09-02 | 2020-01-09 | アイイーエックス グループ,インコーポレーテッド | 時間的に正確なイベントストリームの作成のためのシステム及び方法 |
JP7200455B2 (ja) | 2016-09-02 | 2023-01-10 | アイイーエックス グループ,インコーポレーテッド | 時間的に正確なイベントストリームの作成のためのシステム及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2000305796A (ja) | 電子計算機間のジョブ転送方法およびジョブ転送システム | |
US8104043B2 (en) | System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller | |
JP3179513B2 (ja) | 異種ネットワーク環境における適用業務プログラムの統合システム | |
US20100146396A1 (en) | Systems and methods for web service function, definition, implementation, and/or execution | |
JPH01320551A (ja) | フアイル転送方法 | |
US20030208528A1 (en) | Remote execution model for distributed application launch and control | |
JPH11231927A (ja) | 監視制御システム | |
US7107574B1 (en) | Managing computer program configuration data | |
US20050172264A1 (en) | Architecture for converting control types in a data bound user interface | |
US6671659B2 (en) | System and method for monitoring controller diagnostics | |
US7237222B1 (en) | Protocol for controlling an execution process on a destination computer from a source computer | |
CN116088818A (zh) | 将机器人过程自动化机器人动态绑定到资源的系统和方法 | |
US7328234B1 (en) | Agent architecture for triggering remotely initiated data processing operations | |
US8245182B2 (en) | Class selectable design sharing | |
JP4287830B2 (ja) | ジョブ管理装置、ジョブ管理方法及びジョブ管理プログラム | |
JP2006134344A (ja) | 電子計算機間のジョブ転送方法およびジョブ転送システム | |
JPH11305998A (ja) | 計算機システム | |
US10592227B2 (en) | Versioned intelligent offline execution of software configuration automation | |
CN116893807A (zh) | 使用浏览器设计机器人流程自动化机器人的系统和方法 | |
US20010015732A1 (en) | Setting up a communication procedure between instances and a protocol tester using the method | |
US11340968B1 (en) | Executing repetitive custom workflows through API recording and playback | |
US7469286B2 (en) | Data-transparent measurement management system | |
JP2007011728A (ja) | 汎用計算機の操作手順作成装置及び方法、並びにプログラム | |
US20100037240A1 (en) | Non Intrusive Application Mechanism | |
JP5251197B2 (ja) | メッセージ処理方法、メッセージ処理装置、及びプログラム |