(57)【要約】    【課題】  動作環境が異なったジョブスクリプト記述言語で作成されたジョブスクリプトを動作させるのに、すべてのジョブスクリプト記述言語に対応するジョブスクリプト実行装置を作ることなしに、既存のジョブスクリプト実行手段を利用しながら、多言語によるジョブスクリプトを動作させることを可能とする。    【解決手段】  本発明は、ジョブスクリプト実行装置自体は既存のものを利用しながら、複数のジョブスクリプト記述言語に対応する為にジョブスクリプトの言語種別を判定するジョブスクリプト記述言語判定装置と、判定されたジョブスクリプト記述言語の各々に対応するジョブスクリプト解釈手段と、解釈されたジョブスクリプトを既存のジョブスクリプト実行手段で実行する為に、当該実行装置が実行できる記述言語に翻訳する為のジョブスクリプト翻訳装置とを備える。【選択図】  図２９
2006172500.tif 000002
【特許請求の範囲】
【請求項１】
ジョブスクリプト記述言語の種類を判定するジョブスクリプト記述言語判定手段と、
前記ジョブスクリプト記述言語判定手段により判定されたジョブスクリプト記述言語に対応してジョブスクリプトを解釈する複数のジョブスクリプト解釈手段と、
ジョブスクリプト解釈手段により解釈されたジョブスクリプトを特定のジョブスクリプト記述言語に翻訳し実行可能なジョブスクリプトとして出力するジョブスクリプト翻訳手段と
を備えたことを特徴とするジョブスクリプト実行装置。
【請求項２】
複数のジョブスクリプト実行装置が互いに通信可能な機能を有し、他のジョブスクリプト実行装置からの要求に従って、任意のジョブスクリプトを任意の形式のジョブスクリプトに翻訳するジョブスクリプト翻訳手段選択手段と、選択される複数のジョブスクリプト翻訳手段とを備え、変換したジョブスクリプトを要求元のジョブスクリプト実行装置に送出することを特徴とする請求項１記載のジョブスクリプト実行装置。
【請求項３】
ジョブスクリプト記述言語の種類を判定するジョブスクリプト記述言語判定手段と、前記ジョブスクリプト記述言語判定手段により判定されたジョブスクリプト記述言語に対応してジョブスクリプトを解釈する複数のジョブスクリプト解釈手段と、ジョブスクリプト解釈手段により解釈されたジョブスクリプトを特定のジョブスクリプト記述言語に翻訳し実行可能なジョブスクリプトとして出力するジョブスクリプト翻訳手段とを備えたジョブスクリプト実行装置による実行方法であって、
ジョブスクリプト記述言語判定手段によりジョブスクリプト記述言語の種類を判定するジョブスクリプト記述言語判定ステップと、
前記ジョブスクリプト記述言語判定ステップにより判定されたジョブスクリプト記述言語に対応してジョブスクリプトを解釈する複数のジョブスクリプト解釈手段によるジョブスクリプト解釈ステップと、
ジョブスクリプト解釈ステップにより解釈されたジョブスクリプトを前記ジョブスクリプト翻訳手段により特定のジョブスクリプト記述言語に翻訳し実行可能なジョブスクリプトとして出力するジョブスクリプト翻訳ステップと
を備えたことを特徴とするジョブスクリプト実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記述された順に、複数のアプリケーションプログラムを逐次実行するジョブスクリプト実行装置及び方法に関するものである。
【背景技術】
【０００２】
米国アップルコンピュータ社のＡｐｐｌｅＳｃｒｉｐｔ（商標）や、米国マイクロソフト社のＶｉｓｕａｌ  Ｂａｓｉｃ（商標）言語などの出現や、特開平２−３７４５４号公報に述べられている技術により、従来手作業で行っていた、キーボードからの同じ入力の繰り返しのような反復処理を自動化したり、複数の複雑なアプリケーションプログラムの機能を、あらかじめ決めた順序で順次実行させるなどの、プログラムのオートメーション化が可能になってきている。
特にこれらの技術は、グラフィックユーザインタフェース（ＧＵＩ＝Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を含めた操作の記録と再生、記録したジョブスクリプトの編集による自動化などが容易に行える点が、より以前からあるＵｎｉｘ（登録商標）上のＳｈｅｌｌ  Ｓｃｒｉｐｔなどと異なっている。
【０００３】
特許文献１では、例えばこのようなジョブスクリプトがいくつもの別の書式で書かれていた場合、１つの処理系でこれを解釈実行するための手段が記載されている。
【０００４】
一方で、アドビシステムズ社のＰｈｏｔｏＳｈｏｐ（商標）やＱｕａｒｋ社のＱｕａｒｋＸｐｒｅｓｓ（商標）など幾つかのアプリケーションプログラムでは、アプリケーションプログラム自体の機能を拡張することができるように、プラグインやエクステンションモジュールというものを組み込むことができるようにするためのインタフェースを用意し、自社あるいはサードパーティによって容易に前記アプリケーションプログラムの機能を拡張する手段を提供している。
【特許文献１】特開平７−１２１３８２号公報
【特許文献２】特開平５−１０８２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記ジョブスクリプトは、特定のアプリケーションプログラムを組み合わせた動作を記述するものであるため、ジョブスクリプトが記述されたマシン上の実行環境と、そのジョブスクリプトを受け取り実行するマシン上の実行環境が異なった場合や、アプリケーションプログラムがなかった場合、実行することができなかった。
【０００６】
ジョブスクリプトではなく、ページ記述言語による例であるが、特許文献２に、ページ記述言語にプログラム定義付加手段とプログラム解釈手段とを設け、特定のページ記述言語解釈プログラムが多様なページ記述言語による出力を可能にする技術が提案されている。この従来例と同様に、プログラム定義をジョブスクリプト自体に付加し、そのプログラム定義の解釈実行手段を設ければ、実行環境が異なっていても実行できる可能性はあるが、一般にジョブスクリプトは各種アプリケーションプログラムの外側で、それらを逐次実行することでプログラムのオートメーション化を試みるものであり、各アプリケーションプログラム自体の処理系は既存のものを利用しているだけである。このため、ジョブスクリプトの解釈実行手段にプログラム定義の解釈手段を設けることができず、異なった実行環境で作成されたジョブスクリプトは実行することができなかった。
【０００７】
単にファイルをオープンするという場合に限って言えば、アップルコンピュータ社のパーソナルコンピュータでも、ファイルを生成したアプリケーションプログラムと同一のアプリケーションプログラムが動作マシン上になかった場合に、そのファイルを開くためのアプリケーションプログラムを利用者に問い合わせて指定させることにより、ファイルのオープンを可能にしているが、オープンした後にジョブスクリプトに記載されている各処理を指定されたアプリケーションプログラムによって実行させるための手段は提供されておらず、また２回目以降はファイルタイプにそのアプリケーションプログラムを対応づけてしまうため、逆に当該ファイルタイプを持つ２回目にオープンしたファイルが、対応づけられたアプリケーションプログラムに用意されていない機能を使用していた場合に、オープンできなくなるという問題点もあった。
【０００８】
上記特許文献１の従来技術では、スクリプト記述言語ごとに設けられた解釈手段で解釈した結果を、そのまま実行する、あるいはいったん中間言語にした後に実行するものであるので、スクリプト実行手段がスクリプト解釈手段の解釈結果を実行できる、あるいは中間言語を実行できるものである必要がある。
ところが、一般的には各スクリプト記述言語は、それに対応するスクリプト実行手段を備えた装置上で作成／記述されたものであり、実行手段自体は既存のものを利用する場合が多い。これは既存のものであるが故に、特許文献１のようなスクリプト解釈手段の追加には対応しておらず、その結果スクリプト解釈手段の解釈結果や中間言語を実行するためには、新たにスクリプト実行手段を作る必要があった。
また、上記特許文献１のスクリプト実行手段は、複数のスクリプト記述言語に対応するものであるため、複数のスクリプト記述言語が必要とするすべての機能が実行可能なものでなければならず、その維持管理には、非常に多くのコストがかかるものであった。
【０００９】
本発明は、ジョブスクリプトが記述されたマシン上の実行環境と、そのジョブスクリプトを受け取り実行するマシン上の実行環境が異なった場合、例えばアプリケーションプログラムがなかった場合や、記述言語が異なった場合でも、ジョブスクリプトの実行を可能とすることを課題とする。
又、本発明は、特定のジョブスクリプト記述言語の実行環境しか持たないマシンからのジョブスクリプトの取得要求にも対応可能にすることを課題とする。
【課題を解決するための手段】
【００１０】
本発明は、ジョブスクリプト記述言語の種類を判定するジョブスクリプト記述言語判定手段と、そのジョブスクリプト記述言語判定手段により判定されたジョブスクリプト記述言語に対応してジョブスクリプトを解釈する複数のジョブスクリプト解釈手段と、そのジョブスクリプト解釈手段により解釈されたジョブスクリプトを特定のジョブスクリプト記述言語に翻訳し実行可能なジョブスクリプトとして出力するジョブスクリプト翻訳手段とを備えたことを特徴とする。この構成により、動作環境が異なったジョブスクリプト記述言語で作成されたジョブスクリプトを動作させるのに、すべてのジョブスクリプト記述言語に対応するジョブスクリプト実行装置を作ることなしに、既存のジョブスクリプト実行手段を利用しながら、多言語によるジョブスクリプトを動作させることが可能になる。
又、本発明は、上記発明の複数のジョブスクリプト実行装置が互いに通信可能な機能を有し、他のジョブスクリプト実行装置からの要求に従って、任意のジョブスクリプトを任意の形式のジョブスクリプトに翻訳するジョブスクリプト翻訳手段選択手段と、選択される複数のジョブスクリプト翻訳手段とを備え、変換したジョブスクリプトを要求元のジョブスクリプト実行装置に送出する。複数のジョブスクリプト翻訳手段とそのジョブスクリプト翻訳手段選択手段を設けたことにより、多言語のジョブスクリプトへの変換が可能となり、特定のジョブスクリプト記述言語の実行環境しか持たないマシンからのジョブスクリプトの取得要求にも対応が可能となる。
【発明の効果】
【００１１】
本発明によれば、ジョブスクリプトが記述されたマシン上の実行環境と、そのジョブスクリプトを受け取り実行するマシン上の実行環境が異なった場合でも、ジョブスクリプトの実行が可能となるので、利用者のジョブスクリプト資産を有効に活用することができる。
又、本発明によれば、ジョブスクリプトが記述されたマシンとジョブスクリプトを受け取り実行するマシンとで実行環境に相違があっても、その相違を補うための情報をジョブスクリプトに付加し、その付加情報を基に実行環境の拡張を行うことができるので、ジョブスクリプトの実行が可能となる。
【発明を実施するための最良の形態】
【００１２】
（第１の実施形態）
本発明における第１の実施の形態は、ジョブスクリプトが記述されたマシンから、そのジョブスクリプトを受け取り実行するマシンに対してジョブスクリプトを渡す際に、ジョブスクリプトを受け取り実行するマシンの実行環境を問い合わせ、実行するマシンがジョブスクリプトを実行するのに必要な実行環境をすべて備えていない場合に、欠如している機能を補うための拡張機能モジュールないしはプログラム全部をジョブスクリプトに付加することによりジョブスクリプトの実行を可能にしたものである。
【００１３】
図１は本発明における第１の実施の形態によるジョブスクリプト実行装置の基本的なブロック図である。
このジョブスクリプト実行装置は、マシン１１とマシン１２がネットワーク１３に接続され、互いに通信しあうことが可能となっている。マシン１１は、ジョブスクリプトやアプリケーションプログラム、各種リソースファイル等を格納するデータ格納装置１１１と、格納されたジョブスクリプトを読み込み必要なマシンに送付するためのジョブスクリプト送出装置１１２と、入出力装置としてのキーボード／ディスプレイ装置１１３及びマウス１１４と、それにＣＰＵ装置１１５が内部バス１１５上で結合されている。又、マシン１１は、ネットワークインタフェース１１６を有している。今、マシン１１はマシン１２にジョブスクリプトを送出しようとしているものとする。
【００１４】
ネットワーク１３にネットワークインタフェース１２１を介してつながれたマシン１２は、受け取ったジョブスクリプトを実行するためのジョブスクリプト実行装置１２２と、マシン１１と同様にデータ格納装置１２３、キーボード／ディスプレイ装置１２４とマウス１２５、ＣＰＵ装置１２６などから成り、これらもまた内部バス１２７上で結合されている。
【００１５】
ジョブスクリプト送出装置１１２は更に、図２に示すようにマシン１２に実行環境を問い合わせるための実行環境問合せ部２１と、問い合わせた実行環境をスクリプトで使用されているものと比較するための実行環境比較部２２と、比較した結果、何らかの機能拡張を行わないとマシン１２では当該ジョブスクリプトが実行できないことが判明した場合に、拡張機能をジョブスクリプトに付加するための拡張機能付加部２３から構成される。
【００１６】
マシン１２側のジョブスクリプト実行装置１２２は、マシン１１からの実行環境の問い合わせがあった時に、それに答えるための実行環境応答部３１と、ジョブスクリプトに拡張機能が付加されてきた時にジョブスクリプトから拡張機能を抽出し、拡張機能とジョブスクリプトとを分離するための拡張機能抽出部３２と、抽出された拡張機能と共にジョブスクリプトの記述を逐次実行するアプリケーション実行部３３とを備えている。
【００１７】
ここでのジョブスクリプトは、図４に示すように、複数のアプリケーションプログラムを参照／利用し、目的とする動作を実行する。さらに、各アプリケーションプログラムは、イメージファイルやテキストデータ、キー入力などのシステムの各リソースを使用しながら、各アプリケーションプログラムの目的とする動作を実行する。
【００１８】
今、マシン１２に送出すべきジョブスクリプトは図６に例示すようなものであったとする。
ここでは、「ＰｈｏｔｏＧｒａｐｈｅｒ」というアプリケーションが使われており、その中でファイルのオープン／クローズ、フィルタリングが行われている。
この中で、オープン／クローズは、ほとんどのアプリケーションに共通しているものであり、「ＰｈｏｔｏＧｒａｐｈｅｒ」というアプリケーションが存在すれば必ず保持している機能だが、フィルタリングに関しての、ｆｉｌｔｅｒｌｉｎｇＦｉｌｅという機能はＰｌｕｇＩｎ機能によりＰｈｏｔｏＧｒａｐｈｅｒアプリケーションに追加していないと使用できない。
【００１９】
そこでまず、図８の流れ図に従いマシン１１側では最初に当該ジョブスクリプトを読み込み（ステップ８−１）、ジョブスクリプトに使用されている機能を調査する（ステップ８−２）。ジョブスクリプトの読み込みと使用機能調査は、一般のコンパイラが備えるパーザに用いられる技術で実現可能であり、Ａｈｏ著の”Ｃｏｍｐｉｌｅｒｓ  Ｐｒｉｎｃｉｐｌｅｓ，  Ｔｅｃｈｎｉｑｕｅｓ，  ａｎｄ  Ｔｏｏｌｓ”等に記載されているもので、ここでは詳細については述べない。
【００２０】
次にジョブスクリプトを送出するマシン１２の実行環境をジョブスクリプト送出装置中の実行環境問合せ部２１によって問い合わせる（ステップ８−３）。  ステップ８−３では、マシン１２との通信を行い、その動作を簡単にマシン１２との間のプロトコルとして図９に示す。ここでは接続要求や問い合わせ要求が成功した場合にのみついて記載しているが、失敗した場合や応答がなかった場合の一定時間経過後のタイムアウトの処理については、単に通信失敗として終了するのみであるため、省略する。
【００２１】
ここで問い合わせる実行環境とは、上記の図６のジョブスクリプトの例では、ＰｈｏｔｏＧｒａｐｈｅｒというアプリケーションがマシン１２にあるかどうか、またＰｈｏｔｏＧｒａｐｈｅｒアプリケーションのｆｉｌｔｅｒｌｉｎｇＦｉｌｅという拡張機能がマシン１２にあるかどうかを問い合わせるものであり、例えば図７に示すような使用アプリケーションごとの使用機能名のリストにヘッダーをつけた使用環境問合せファイルを送って、マシン１２からの応答を待つ。この問い合わせにはこの外にも例えば使用環境をリストにして送っても良い。
【００２２】
そうして得たマシン１２の実行環境（ＰｈｏｔｏＧｒａｐｈｅｒというアプリケーションがあるか？、ｆｉｌｔｅｒｌｉｎｇＦｉｌｅ拡張機能があるか？）とジョブスクリプトで使用されている機能とを実行環境比較部２２によって比較し（ステップ８−４）、マシン１２側に拡張機能が必要でなければ（ステップ８−４）、そのままジョブスクリプトをマシン１２に送出して（ステップ８−７）終了する。
しかし、もしもマシン１２側で拡張機能が必要であれば、ジョブスクリプトに、必要な拡張機能をマージ（ステップ８−６）した後にジョブスクリプトをマシン１２に送出して（ステップ８−７）終了する。
ここで実行環境比較部２２は、単にステップ８−２で得た使用機能とステップ８−３の結果得られたマシン１２の実行環境とを１項目ずつ照合確認するのみである。
【００２３】
また、ステップ８−６で拡張機能付加部２３は、マシン１２に対して送出するジョブスクリプトの先頭にジョブスクリプトの実行に用いられる拡張機能５２を、図５に示すように付加し、付加した拡張機能の数と、各々のサイズ等や置くべきディレクトリ（拡張機能フォルダーの名前等）を記載したヘッダー５１と共に、ジョブスクリプト５３にマージする。そして、そのように作成した拡張機能の付加されたジョブスクリプトを送出する（ステップ８−７）。
【００２４】
次に、マシン１２側の流れを図１０に従って説明する。
まず、実行環境の問い合わせがマシン１１から来ると、実行環境応答部３１は、前記使用環境問合せファイルを読み込み、現在のマシン１２側の使用環境と比較する。
ここで、マシン１２側の使用環境として要求されているアプリケーションが存在するかどうかは、マシン１２のコマンドサーチパス中や、ＯＳ自身の持つ検索機能（ＭａｃＯＳならファインダ等）を用いてマシン１２中を探索し、有無を調べる。
また、拡張機能に関しても、拡張機能フォルダー中を含めた探索を行い、有無を調べ、その結果をマシン１１側に応答する（ステップ１０−１）。
【００２５】
次に、マシン１１から送られてきたジョブスクリプトを受信し（ステップ１０−２）、ヘッダーの有無を調べる（ステップ１０−３）、拡張されたジョブスクリプトとしてのヘッダーがなければそのままジョブスクリプトを実行し（ステップ１０−６）、拡張されていれば、拡張機能抽出部３２によってジョブスクリプトから拡張機能とジョブスクリプト本体を分離する（ステップ１０−４）。分離に関しては、ヘッダーに記載されている拡張機能のサイズを見て、ファイルを分けるもので、分離そのものはＵｎｉｘオペレーティングシステムのｓｐｌｉｔコマンドなどに用いられている既存の技術である。
そして、ヘッダーを参照して分離した拡張機能を必要な拡張機能フォルダーに追加し（ステップ１０−５）、アプリケーション実行部３３によりジョブスクリプトを実行する（ステップ１０−６）。
【００２６】
ジョブスクリプトが記述されたマシン１１から、そのジョブスクリプトを受け取り実行するマシン１２に対してジョブスクリプトを渡す際に、マシン１２の実行環境を問い合わせ、そのマシン１２がジョブスクリプトを実行するのに必要な実行環境をすべて備えていない場合に、欠如している機能を補うための拡張機能モジュールないしはプログラム全部をジョブスクリプトに付加して送出する。マシン１２は、その付加情報のあるジョブスクリプトを受け取ると、その付加情報により実行環境の拡張を行う。このように、マシン１２に欠如した環境をジョブスクリプトに付加された情報に基づき補うことができるので、マシン１１とジョブスクリプトを受け取り実行するマシン１２とで実行環境に相違があっても、ジョブスクリプトの実行が可能となる。
したがって、この実施形態により、異なった実行環境を備えたマシン上で作られたジョブスクリプトであっても、実行環境の違いを意識することなく、再実行させることが可能になる。
【００２７】
（第２の実施形態）
本発明の第２の実施形態は、ジョブスクリプトが記述されたマシン上の実行環境と、そのジョブスクリプトを受け取り実行するマシン上の実行環境が異なった場合でも、類似の機能を持つ別のアプリケーションプログラムが存在すれば当該ジョブスクリプトを実行できるように、アプリケーションプログラム名と機能名との対応表を設け、ジョブスクリプトを動作させるのに必要なアプリケーションプログラムが実行環境としてマシン上に存在しなかった場合に、前記対応表を参照して適切な第２のアプリケーションプログラムを起動させるアプリケーションプログラム選択部を設けたものである。
図１１はその第２の実施の形態を構成する基本的なブロック図である。この装置は、ジョブスクリプトやアプリケーションプログラム、各種リソースファイル等を格納するデータ格納装置１１０１と、そのデータ格納装置１１０１に格納されたジョブスクリプトを読み込み実行するジョブスクリプト実行装置１１０２と、入出力装置としてのキーボード／ディスプレイ装置１１０３及びマウス１１０と、ＣＰＵ装置１１０５が内部バス１１０６上で結合された構成になっている。
【００２８】
ジョブスクリプト実行装置１１０２は更に、図１２に示す様にジョブスクリプトファイルを読み込み解析するためのジョブスクリプト解析部１２０１と、本実施形態の中心であるアプリケーションプログラム選択部１２０２と、アプリケーションプログラム実行部１２０３からなっている。
【００２９】
ジョブスクリプトは図４により前述したように、複数のアプリケーションプログラムを参照／利用し、目的とする動作を実行する。さらに、各アプリケーションプログラムは、イメージファイルやテキストデータ、キー入力などのシステムの各リソースを使用しながら、各アプリケーションプログラムの目的とする動作を実行する。
【００３０】
図１３に、この構成でネットワークに接続された例を示す。
今、ネットワークインタフェース１３０８を介して、外部から実行すべきジョブスクリプトと、テストファイル１が送られてきたものとする。ジョブスクリプト記述言語は、例えばアップルコンピュータ社のＡｐｐｌｅＳｃｒｉｐｔの例であり、そのジョブスクリプトの内容は、ここでは図１４に示すようなものであったと仮定する。
このジョブスクリプトの場合、これを送ってきたマシン上には、クラリス社のファイルメーカーＰｒｏ（商標）というアプリケーションプログラムが存在していたため、これを実行することができたが、受け取った図１３で示すシステム側では、このアプリケーションプログラムが存在していないため、このままではこのジョブスクリプトを実行できない。
【００３１】
図１６の流れ図に沿って説明すれば、図１３で示すシステムは、まずネットワークインタフェース１３０８を介して送られてきたジョブスクリプトＡを読み込み（ステップ１６−１）、ジョブスクリプト実行装置中のジョブスクリプト解析部１２０１で解析される。ジョブスクリプト解析部１２０１は、一般のコンパイラが備えるパーザに用いられている技術と同じであり、Ａｈｏ著の”Ｃｏｍｐｉｌｅｒｓ  Ｐｒｉｎｃｉｐｌｅｓ，Ｔｅｃｈｎｉｑｕｅｓ，ａｎｄ  Ｔｏｏｌｓ”等に記載されているもので、ここでは詳細については述べない。次に図１６のステップ１６−２で、ジョブスクリプト実行装置中のアプリケーションプログラム選択部１２０２が、ジョブスクリプト中に記載されたアプリケーションプログラムの存在を確認する。具体的には、アップルコンピュータ社のＭａｃＯＳならばＦｉｎｄｅｒを用いてアプリケーションプログラムをファイルシステム中から探索し、ＵｎｉｘなどのＯＳならばコマンドサーチパス上のディレクトリ内を捜す。アプリケーションプログラムがシステム内にあれば、そのアプリケーションプログラムを実行する（ステップ１６−６）。
【００３２】
またもしステップ１６−２で、ジョブスクリプト中に記載されたアプリケーションプログラムがシステム内に存在しなかった場合、対応表を参照して（ステップ１６−３）、必要とするアプリケーションプログラムと同等の機能を持ったアプリケーションプログラムが存在するかどうかを確認する（ステップ１６−４）。
【００３３】
ここで参照されるアプリケーションプログラムと機能との対応表は、図１７に示すようなもので、各アプリケーションプログラムの機能が別のアプリケーションプログラム中に存在するかどうかの確認が可能である。ここでは、クラリス社のファイルメーカＰｒｏに対し、レコードの作成を要求しているが、この機能を持つアプリケーションプログラムを捜し、例えばマイクロソフト社のＥｘｃｅｌ（商標）というアプリケーションプログラムがこの機能を備えていたとすれば、ファイルメーカＰｒｏの代わりにＥｘｃｅｌでこの機能を実行させる。これは実際にジョブスクリプトを書き換えることはしないが、実行時には、仮想的に図１５のようなジョブスクリプトをジョブスクリプト解析部１２０１で解析したものと同じ実行イメージがメモリ上に展開され、ＣＰＵ装置（プロセッサ）１３０５によって実行される。
【００３４】
また、高速化のために、例えば図１７のアプリケーションプログラム名／機能名対応表をアプリケーションプログラムの種類によって分類し、例えば図１８のようなドロー系ソフトの対応表１８１とペイント系ソフトの対応表１８２にしたものを用いることもできる。この場合、まず求めるアプリケーションプログラムがどのカテゴリーに属するアプリケーションプログラムであるかがわかっていることが前提であり、それはカテゴリー名とアプリケーションプログラム名との対応表とを持っても良いし、またもともとのジョブスクリプト中に、記載しておいても良い。
【００３５】
ステップ１６−４の判定の結果、対応するアプリケーションプログラムが存在すれば、アプリケーションプログラム実行のステップ（ステップ１６−６）に移り、終了する。
【００３６】
もしも対応するアプリケーションプログラムが存在しなかった場合、当該ジョブスクリプトの実行ができないことを警告としてユーザに知らせて終了する。利用者に当該機能に対応するものがなかったことを知らせる警告部として、例えばスピーカの音声による警報とすることもできる。
【００３７】
ここで、同等の機能を持った直接のアプリケーションプログラムの機能が存在しなかった場合に、ユーザへ警告する以外の手段で対処することもできる。
その一例を以下に説明する。
【００３８】
同等の機能を持った直接のアプリケーションプログラムの機能が存在しなかった場合でも、ユーザの判断で、別の機能を組み合せれば、当該機能と同等の機能を構成することができる場合、図１９の流れに従って、まずステップ１９−４で対応する同等の機能を持ったアプリケーションプログラム機能がないのでステップ１９−７を実行し、ここでユーザ定義可能かどうかをユーザに問い合わせる。もしもユーザ定義可能ならば、図２０のユーザ定義部２０−３によって、ユーザは、どれとどの機能を組み合せれば当該機能に相当する機能を構成できるかを指定し（ステップ１９−８）、それに従ってアプリケーションプログラムを起動する。もしもユーザ定義ができない場合は、そのまま終了となる。
【００３９】
ここで作られるユーザ定義機能表は、例えば図２２で示すもので、機能１に対応する直接の機能がアプリケーションプログラム２になかった場合、アプリケーションプログラム２の機能２と機能５と機能６を組み合せれば、機能１と同等の効果が得られるということを利用者は指定し、図２２に示す表が作成される。このユーザ定義機能が作成された時点で、アプリケーションプログラム名／機能名対応表を、図２１に示すように、ユーザ定義機能の有無を保持する。
図２２のユーザ定義機能表は、アプリケーションプログラムごとに持つものであるが、図２３のように、複数のアプリケーションプログラムの機能を組み合せられるような表もありうる。
【００４０】
さらに図１９のステップ１９−７で別の機能を組み合せても当該機能と同等の機能を構成することができない場合でも、特定アプリケーションプログラムの特定機能や、利用者の実行環境中に存在する複数のアプリケーションプログラムを組み合せたもので、当該アプリケーションプログラムの機能を代替しても良いと利用者が判断する場合は、図２４の流れ図に示すように、ステップ２４−９からステップ２４−１０の代替機能定義に移り、利用者によって代替機能が指定され、実行される。ここで定義される代替機能の表は図２６および図２７に示すようなもので、データ構造としてはユーザ定義機能表とほぼ同じものになる。
【００４１】
また、図２８はユーザ定義機能のユーザインタフェースの例で、図２０のユーザ定義部２０−３によって表示される。ここでは、メッセージによる対話形式のものとして表示しているが、アイコンを用いたグラフィカルユーザインタフェースであっても、もち論良い。この対話の結果として、ユーザ定義機能がユーザ定義機能表に書き込まれる。
代替機能に関しても同様である。
【００４２】
ここでユーザ定義機能と代替機能と比較すると、前者は機能的に同等な結果を与えるもので、一方後者は利用者にスクリプトの実行結果を想起させるためのものであり、どんな表示でも構わない、例えば、丸い図形の代わりに「丸」と書かれた単なるボックスが配置されてもよい。
【００４３】
この第２の実施形態によれば、ジョブスクリプトを動作させるのに必要なアプリケーションプログラムが実行環境としてマシン上に存在しなかった場合には、アプリケーションプログラム選択部２０−２は前記対応表を参照して適切な第２のアプリケーションプログラムを選択し、アプリケーションプログラム実行部２０−４は、選択されたアプリケーションプログラムを実行する従って、ジョブスクリプトが記述されたマシン上の実行環境と、そのジョブスクリプトを受け取り実行するマシン上の実行環境が異なった場合でも、類似の機能を持つ別のアプリケーションプログラムが存在すれば当該ジョブスクリプトを実行できる。
【００４４】
（第３の実施形態）
第３の実施形態の第１の例
第３の実施形態の第１の例（実施例）は、ジョブスクリプト実行装置自体は既存のものを利用しながら、複数のジョブスクリプト言語に対応できるようにしたものである。これは、第２の実施形態の図１１に示す基本構成と同じ基本構成を有するので、以下においては図１１を参照して説明する。異なるのは、ジョブスクリプト実行装置１１０２を図２９に示す構成とした点である。
ジョブスクリプト実行装置は、図２９に示す様にジョブスクリプトファイルを読み込み、どの種類のジョブスクリプト記述言語であるかを判定するジョブスクリプト記述言語判定装置２９０１と、判定された各ジョブスクリプト記述言語に対応したジョブスクリプト言語解釈装置２９０２ａ〜２９０２ｎと、解釈されたジョブスクリプトを、特定のジョブスクリプト実行装置で動作させることができるように、特定のジョブスクリプト記述言語に翻訳するジョブスクリプト翻訳装置２９０３とを備え、それが、既存のジョブスクリプト実行部２９０４に入力され実行される構成のものである。
【００４５】
今、図４のジョブスクリプト１がデータ格納装置１１０１に格納された図３０のようなジョブスクリプトＡであるとする。利用者からのスクリプト実行要求が、キーボード／ディスプレイ装置１１０３とマウス１１０４を介して行われると、データ格納装置１１０１内のジョブスクリプトＡが、ジョブスクリプト実行装置１１０２に渡され実行を促される。
【００４６】
するとジョブスクリプト実行装置１１０２内のジョブスクリプト記述言語判定装置は、この図３０のジョブスクリプトＡをスキャンし、特徴的な構文「ｔｅｌｌ  ａｐｐｌｉｃａｔｉｏｎ」という記述を読み読み取ると、図３１の構文／スクリプト言語対応表を参照して、このスクリプトがＡｐｐｌｅＳｃｒｉｐｔで書かれているものであると判定し、ジョブスクリプト実行装置１１０２内の複数のジョブスクリプト言語解釈装置２９０２ａ〜２９０２ｎから、ＡｐｐｌｅＳｃｒｉｐｔ用ジョブスクリプト言語解釈装置（２）２９０２ｂを選択する。選択されたＡｐｐｌｅＳｃｒｉｐｔ用ジョブスクリプト言語解釈装置（２）２９０２ｂは読み込まれたジョブスクリプトＡを解釈していく。ここでのジョブスクリプト言語の解釈は、一般のコンパイラが備えるパーザに用いられる技術で実現可能であり、Ａｈｏ著の”Ｃｏｍｐｉｌｅｒｓ  Ｐｒｉｎｃｉｐｌｅｓ，  Ｔｅｃｈｎｉｑｕｅｓ，  ａｎｄ  Ｔｏｏｌｓ”等に記載されているもので、ここでは詳細については述べない。
【００４７】
次に、このジョブスクリプトＡを実行すべきマシン上には、Ｖｉｓｕａｌ  Ｂａｓｉｃの実行環境しかなかったとすれば、このジョブスクリプト実行装置１１０２内のジョブスクリプト翻訳装置２９０３は、前記解釈されたスクリプトをＶｉｓｕａｌ  Ｂａｓｉｃの構文に逐次翻訳していく。
ここでは、例えば図３２のように、入力されたジョブスクリプト記述言語の解釈結果と、対応するＶｉｓｕａｌ  Ｂａｓｉｃでの命令文の対応表を用いて考えるが、もう少し複雑な文法を持ったジョブスクリプト記述言語でも良く、その場合には目的とするジョブスクリプト実行装置に対応したジョブスクリプト記述言語に翻訳するために、評価順序の入れ替え、ループの展開などいろいろな目的ジョブスクリプト生成技術が必要になってくるが、本発明の実施に必ずしも必要であるものではないため、ここでは最も単純に対応表で変換する例のみを記述した。
【００４８】
ここでは、  ＭｉｃｒｏＳｏｆｔ  Ｅｘｃｅｌを扱ったＡｐｐｌｅＳｃｒｉｐｔの例になっているが、変換されたジョブスクリプトはＭｉｃｒｏＳｏｆｔ  ＥｘｃｅｌのＶＢＡとして表現されるため、ＭｉｃｒｏＳｏｆｔ  Ｅｘｃｅｌを起動する部分の記述はなく、代わりにサブルーチン名としてｄｕｍｍｙ１を与えている。
図３３は、この様にして図３０のジョブスクリプトＡを変換して得られたＶｉｓｕａｌＢａｓｉｃのジョブスクリプトＢを示すものである。
【００４９】
得られたＶｉｓｕａｌＢａｓｉｃのジョブスクリプトを既存のジョブスクリプト実行部２９０４（ＶｉｓｕａｌＢａｓｉｃの実行系）に与えて実行させる。
【００５０】
以上に説明した第３の実施形態の第１の例によれば、動作環境が異なったジョブスクリプト記述言語で作成されたジョブスクリプトを動作させるのに、従来技術（特開平７−１２１３８２号公報）のようにすべてのジョブスクリプト記述言語に対応するジョブスクリプト実行装置を作ることなしに、既存のジョブスクリプト実行手段を利用しながら、多言語によるジョブスクリプトを動作させることが可能になるので、利用者のジョブスクリプト資産を有効に活用することができ、またその維持管理も低廉に行うことができる。
【００５１】
第３の実施形態の第２の例
この第３の実施形態の第２の例は、複数のジョブスクリプト実行装置が、互いに通信可能出会った場合に、あるジョブスクリプト実行装置に対して、他のジョブスクリプト実行装置からジョブスクリプトの取得要求があった際に、取得要求もとのジョブスクリプト実行部で実行可能なジョブスクリプト記述言語に翻訳することができるようにしたものである。図３４は第３実施形態の第２の例によるジョブスクリプト実行装置を有するシステムのブロック図である。
このシステムは、複数のジョブスクリプト実行装置が互いに通信可能に構成されている。すなわち、図１１と同様の構成のマシン３４１が、ネットワークインタフェース３４１６、３４２６を介して、ネットワーク３４３に接続され、マシン３４２と互いに通信しあうことが可能となっている。
【００５２】
ジョブスクリプト実行装置は、図３５に示すように、ジョブスクリプトファイルを読み込み、どの種類のジョブスクリプト記述言語であるかを判定するジョブスクリプト記述言語判定装置３５０１と、判定された各ジョブスクリプト記述言語に対応したジョブスクリプト言語解釈装置３５０２ａ〜３５０２ｎと、解釈されたジョブスクリプトを、複数種のジョブスクリプト実行装置のジョブスクリプト記述言語に翻訳する複数のジョブスクリプト言語翻訳装置３５０４ａ〜３５０４ｎと、ジョブスクリプト言語解釈装置３５０２ａ〜３５０２ｎのいずれか１つの出力を指定された複数種のジョブスクリプト言語のうちの指定された１つにより動作させることができるように、ジョブスクリプト翻訳装置選択装置３５０３により選択された言語解釈装置の解釈出力を指定された特定のジョブスクリプト言語解釈装置に選択的に与えるジョブスクリプト翻訳選択装置３５０３とを備えている
【００５３】
今、マシン３４２からマシン３４１にジョブスクリプトの取得要求があったものとする。ここで、マシン３４１自体にはＡｐｐｌｅＳｃｒｉｐｔの実行環境が整っているが、マシン３４２にはＶｉｓｕａｌＢａｓｉｃの実行環境しかなかった場合、マシン３４２からは実行環境としてＶｉｓｕａｌＢａｓｉｃで実行可能なジョブスクリプトの取得要求が行われる。
【００５４】
マシン３４１側では、これを受けて、要求のあったジョブスクリプトをジョブスクリプト実行装置３４１２を通して第１の例と同様に解釈し、図３５に示す第２の例のジョブスクリプト実行装置構成図中のジョブスクリプト翻訳装置選択装置３５０３によって、各ジョブスクリプト記述言語に対応した複数のジョブスクリプト言語翻訳装置３５０４ａ〜３５０４ｎから、ＶｉｓｕａｌＢａｓｉｃに対応したジョブスクリプト翻訳装置（３）３５０４ｃを選択する。その結果として、第１の例と同様にＡｐｐｌｅＳｃｒｉｐｔからＶｉｓｕａｌＢａｓｉｃに翻訳されたジョブスクリプトは、ジョブスクリプト送出装置３５０３によって、マシン２に送出される。
マシン３４２側では、そのようにして送られてきたジョブスクリプトを自マシンで実行し、処理を終える。このマシン１とマシン２とのやりとりは、図３６に示す。
【００５５】
以上に説明した第３の実施形態の第２の例によれば、第１の例と同様に動作環境が異なったジョブスクリプト記述言語で作成されたジョブスクリプトを動作させるのに、従来技術のようにすべてのジョブスクリプト記述言語に対応するジョブスクリプト実行装置を作ることなしに、既存のジョブスクリプト実行手段を利用しながら、多言語によるジョブスクリプトを動作させることが可能になり、利用者のジョブスクリプト資産を有効に活用することができると共に、さらにジョブ言語解釈装置の出力を多言語のジョブスクリプトへ変換するための選択可能な複数のジョブスクリプト言語翻訳装置を設けたので、特定のジョブスクリプト記述言語の実行環境しか持たないマシンからのジョブスクリプトの取得要求にも対応が可能となる。
【００５６】
本発明によれば、ジョブスクリプトが記述されたマシン上の実行環境と、そのジョブスクリプトを受け取り実行するマシン上の実行環境が異なった場合でも、ジョブスクリプトの実行が可能となるので、利用者のジョブスクリプト資産を有効に活用することができる。
【００５７】
又、本発明によれば、ジョブスクリプトが記述されたマシンとジョブスクリプトを受け取り実行するマシンとで実行環境に相違があっても、その相違を補うための情報をジョブスクリプトに付加し、その付加情報を基に実行環境の拡張を行うことができるので、ジョブスクリプトの実行が可能となる。
【００５８】
本発明によれば、ジョブスクリプトを動作させるのに必要なアプリケーションプログラムが実行環境としてマシン上に存在しなかった場合には、アプリケーションプログラム選択手段は機能対応表を参照して適切な第２のアプリケーションプログラムを選択し、アプリケーションプログラム実行手段は、選択されたアプリケーションプログラムを実行するので、類似の機能を持つ別のアプリケーションプログラムが存在すれば当該ジョブスクリプトを実行することができる。必要な機能を持ったアプリケーションプログラムが存在しなかった場合には、（１）警告手段により利用者に知らせて適切な対処を促すことができ、あるいは、（２）機能構成追加手段により前記機能対応表を複数プログラムの機能の組み合わせをも含むよう拡張することにより、実行環境を拡張し、あるいは、（３）代替機能追加手段により、利用者の判断をも参照して更に一層の実行環境の拡張を図ることができる。
【００５９】
本発明によれば、動作環境が異なったジョブスクリプト記述言語で作成されたジョブスクリプトを動作させるのに、すべてのジョブスクリプト記述言語に対応するジョブスクリプト実行装置を作ることなしに、既存のジョブスクリプト実行手段を利用しながら、多言語によるジョブスクリプトを動作させることが可能になり、利用者のジョブスクリプト資産を有効に活用することができる。
さらに、本発明によれば、多言語のジョブスクリプトへの変換機構として複数の翻訳装置とその選択装置とを設けるので、特定のジョブスクリプト記述言語の実行環境しか持たないマシンからのジョブスクリプトの取得要求にも対応が可能となる。
【図面の簡単な説明】
【００６０】
【図１】本発明の第１の実施形態のブロック図
【図２】第１の実施形態におけるジョブスクリプト送出装置の構成を示す図
【図３】第１の実施形態におけるジョブスクリプト実行装置の構成を示す図
【図４】データ格納装置内の各データ及びその参照関係を示す図
【図５】送出される拡張機能の付加されたジョブスクリプトの構成例を示す図
【図６】実行すべきジョブスクリプトの例を示す図
【図７】使用環境問合せファイルの構成例を示す図
【図８】マシン１１側の処理の流れ図
【図９】実行環境問合せ部によるマシン１１とマシン１２との通信プロトコルの例を示す図
【図１０】マシン１２側の処理の流れ図
【図１１】本発明の第２の実施形態のブロック図
【図１２】ジョブスクリプト実行部の構成を示す図
【図１３】ネットワークに接続される構成例を示す図
【図１４】実行すべきジョブスクリプトの例を示す図
【図１５】実際に処理される図１４に示すジョブスクリプトと同等のジョブスクリプト
【図１６】第２の実施形態の動作を示す流れ図
【図１７】アプリケーションプログラム名／機能名対応表を示す図
【図１８】カテゴリー別アプリケーションプログラム名／機能名対応表を示す図
【図１９】ユーザ定義によって代替機能の追加を行う例の流れ図
【図２０】ジョブスクリプト実行装置の構成例を示す図
【図２１】アプリケーション名／機能名対応表の例を示す図
【図２２】ユーザ定義機能表の例を示す図
【図２３】ユーザ定義機能表の田の例を示す図
【図２４】ユーザ定義によって代替機能の追加ができない場合において、代替機能定義によって代替定義を行う例の流れ図
【図２５】アプリケーション名／機能名対応表の他の例を示す図
【図２６】代替機能表の例を示す図
【図２７】代替機能表の他の例を示す図
【図２８】ユーザ定義機能のユーザインタフェースの例を示す図
【図２９】第３の実施形態のジョブスクリプト実行装置の構成例を示す図
【図３０】実行すべきジョブスクリプトの例を示す図
【図３１】ジョブスクリプト記述言語判定装置で参照される構文／スクリプト言語対応表の例を示す図
【図３２】ジョブスクリプト翻訳装置で参照される意味／命令文対応表の例を示す図
【図３３】変換後のＶｉｓｕａｌＢａｓｉｃのジョブスクリプトの例を示す図
【図３４】第３の実施形態のジョブスクリプト実行装置の他の構成例を示す図
【図３５】図３４におけるスクリプト実行装置の構成例を示す図
【図３６】マシン３４１とマシン３４２との通信プロトコルの例を示す図
【符号の説明】
【００６１】
１１１、１２３…データ格納装置
１１２…ジョブスクリプト送出部
１１３、１２４…キーボード／ディスプレイ装置
１１４、１２５… マウス
１１５、１２６…ＣＰＵ装置（プロセッサ）
１１６、１２１…ネットワークインタフェース
１１７、１２７…内部バス
１３…ネットワーク
１２２…ジョブスクリプト実行装置。
【図１】
2006172500.tif 000003
【図２】
2006172500.tif 000004
【図３】
2006172500.tif 000005
【図４】
2006172500.tif 000006
【図５】
2006172500.tif 000007
【図６】
2006172500.tif 000008
【図７】
2006172500.tif 000009
【図８】
2006172500.tif 000010
【図９】
2006172500.tif 000011
【図１０】
2006172500.tif 000012
【図１１】
2006172500.tif 000013
【図１２】
2006172500.tif 000014
【図１３】
2006172500.tif 000015
【図１４】
2006172500.tif 000016
【図１５】
2006172500.tif 000017
【図１６】
2006172500.tif 000018
【図１７】
2006172500.tif 000019
【図１８】
2006172500.tif 000020
【図１９】
2006172500.tif 000021
【図２０】
2006172500.tif 000022
【図２１】
2006172500.tif 000023
【図２２】
2006172500.tif 000024
【図２３】
2006172500.tif 000025
【図２４】
2006172500.tif 000026
【図２５】
2006172500.tif 000027
【図２６】
2006172500.tif 000028
【図２７】
2006172500.tif 000029
【図２８】
2006172500.tif 000030
【図２９】
2006172500.tif 000031
【図３０】
2006172500.tif 000032
【図３１】
2006172500.tif 000033
【図３２】
2006172500.tif 000034
【図３３】
2006172500.tif 000035
【図３４】
2006172500.tif 000036
【図３５】
2006172500.tif 000037
【図３６】
2006172500.tif 000038