(57)【要約】      （修正有）【課題】第１のコンピュータ（例えば、メインフレーム）の稼働状況を、第１のコンピュータ上に追加ソフトウェア（エージェントソフトウエア）を導入することなく、第２のコンピュータ（UNIX系サーバ、Windowsサーバなどのオープン系サーバ）上でリアルタイムに取得可能とする。【解決手段】第１のコンピュータ１の稼働状況を取得するために、第１のコンピュータ１の画面１４に出力されるメッセージを画面単位で受信１６ａし、メッセージを一行毎に分解して、不要な行を削除し１７２、外部ツール４にこれから送るメッセージのうち前回送ったメッセージ中に含まれる重複部分を削除１８３する。【選択図】  図１
2006085644.tif 000002
【特許請求の範囲】
【請求項１】
第１のコンピュータの稼働状況を取得するためのシステムであって、
第１のコンピュータの画面に出力されるメッセージを画面単位で受信可能な画面受信部と、
前記画面受信部が受信した画面を一行毎に分解して、不要な行を削除するメッセージ整形部と、
前記メッセージ整形部が作成したメッセージのうち外部ツールに前回送ったメッセージ中に含まれる重複部分を削除する重複削除処理部と、を備える稼働状況取得システム。
【請求項２】
前記重複削除処理部は、
前記外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶する最終行記憶部と、
前記最終行記憶部に記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第１行目から順次比較する比較部と、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第１行目から前回メッセージ最終行と同じ内容の行までを削除し、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しない重複行削除部と、を備える請求項１記載の稼働状況取得システム。
【請求項３】
第１のコンピュータの画面縦サイズがｈバイトで、横サイズがｗバイトであって、第１のコンピュータから出力されるメッセージの１行の長さが、ｗバイトを超える場合に、
前記画面受信部は、
前記メッセージの第１行目から第ｈ行目までの各行の第１バイト目から第ｗバイト目までを、第１のオフセット値以降に順次記憶し、
前記メッセージの第１行目から第ｈ行目までの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までを、第２のオフセット値以降に順次記憶することが可能であって、
前記メッセージ整形部は、
前記第１のオフセット値以降に記憶されている前記メッセージの各行の第１バイト目から第ｗバイト目までと、前記第２のオフセット値以降に記憶されている前記メッセージの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までとを順次結合して前記メッセージの第１行目から第ｈ行目までを作成可能である、請求項１又は２に記載の稼働状況取得システム（ｈ及びｗは、任意の自然数）。
【請求項４】
第１のコンピュータの稼働状況を取得するための方法であって、
第１のコンピュータの画面に出力されるメッセージを画面単位で受信する画面受信ステップと、
前記メッセージを一行毎に分解して、不要な行を削除するメッセージ整形ステップと、
前記メッセージのうち外部ツールに前回送ったメッセージ中に含まれる重複部分を削除する重複削除ステップと、を含む稼働状況取得方法。
【請求項５】
前記重複削除ステップは、
前記外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶する最終行記憶ステップと、
記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第１行目から順次比較する比較ステップと、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第１行目から前回メッセージ最終行と同じ内容の行までを削除し、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しない削除実行ステップと、を含む請求項４記載の稼働状況取得方法。
【請求項６】
第１のコンピュータの画面縦サイズがｈバイトで、横サイズがｗバイトであって、第１のコンピュータから出力されるメッセージの１行の長さが、ｗバイトを超える場合に、
前記画面受信ステップは、
前記メッセージの第１行目から第ｈ行目までの各行の第１バイト目から第ｗバイト目までを、第１のオフセット値以降に順次記憶し、
前記メッセージの第１行目から第ｈ行目までの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までを、第２のオフセット値以降に順次記憶し、
前記メッセージ整形ステップは、
前記第１のオフセット値以降に記憶されている前記メッセージの各行の第１バイト目から第ｗバイト目までと、前記第２のオフセット値以降に記憶されている前記メッセージの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までとを順次結合して前記メッセージの第１行目から第ｈ行目までを作成する、請求項４又は５に記載の稼働状況取得方法（ｈ及びｗは、任意の自然数）。
【請求項７】
第１のコンピュータの稼働状況を取得するためのプログラムであって、第２のコンピュータを、
第１のコンピュータの画面に出力されるメッセージを画面単位で受信可能な画面受信部、
前記画面受信部が受信した画面を一行毎に分解して、不要な行を削除するメッセージ整形部、
前記メッセージ整形部が作成したメッセージのうち外部ツールに前回送ったメッセージ中に含まれる重複部分を削除する重複削除処理部、として機能させる稼働状況取得プログラム。
【請求項８】
前記重複削除処理部を、
前記外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶する最終行記憶部、
前記最終行記憶部に記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第１行目から順次比較する比較部、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第１行目から前回メッセージ最終行と同じ内容の行までを削除し、
今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しない重複行削除部、として機能させる請求項７記載の稼働状況取得プログラム。
【請求項９】
第１のコンピュータの画面縦サイズがｈバイトで、横サイズがｗバイトであって、第１のコンピュータから出力されるメッセージの１行の長さが、ｗバイトを超える場合に、
前記画面受信部に、
前記メッセージの第１行目から第ｈ行目までの各行の第１バイト目から第ｗバイト目までを、第１のオフセット値以降に順次記憶させ、
前記メッセージの第１行目から第ｈ行目までの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までを、第２のオフセット値以降に順次記憶させ、
前記メッセージ整形部に、
前記第１のオフセット値以降に記憶されている前記メッセージの各行の第１バイト目から第ｗバイト目までと、前記第２のオフセット値以降に記憶されている前記メッセージの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までとを順次結合して前記メッセージの第１行目から第ｈ行目までを作成させる、請求項７又は８に記載の稼働状況取得プログラム（ｈ及びｗは、任意の自然数）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のコンピュータ（例えば、メインフレーム）の稼働状況を、第１のコンピュータ上に追加ソフトウェア（エージェントソフトウエア）を導入することなく、第２のコンピュータ（UNIX系サーバ、Windowsサーバなどのオープン系サーバ）上にリアルタイムに取得して、第１のコンピュータの稼働状況を取得するシステム、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、メインフレームの稼働状況は、メッセージログを見ることで取得することができる。メッセージログを取得する方法として、以下の３つの方法がある。
【０００３】
第１の方法は、メッセージコンソールでメッセージを見る方法である。メインフレームのコンソール画面または、端末エミュレータにメッセージログの内容を表示し、監視員が目視で確認する。メッセージログに障害を示す文言が表示された場合は、その内容によって対応を行う。主な対応としては、担当者への電話やメールによる連絡、手順書に従ったオペレーションがある。
【０００４】
第２の方法は、メッセージログを印刷する方法である。メインフレームのメッセージログを印刷し、監視員が目視で確認する。メッセージログに障害を示す文言が表示されている場合は、その内容によって対応を行う。主な対応としては、担当者への電話やメールによる連絡、手順書に従ったオペレーションがある。
【０００５】
第３の方法は、メッセージログファイルを取得する方法である（例えば、特許文献１参照）。メインフレームのメッセージログが格納されたファイルを定期的にオープン系のサーバに転送し、オープン系サーバ上のソフトウェアで確認する。オープン系サーバ上で稼働するソフトウェアには、文字列を解析するソフトウェアが数多く存在する。このようなソフトウェアの解析機能を用いてメッセージログファイルの内容を解析し、障害を示す文字列を検出した場合には、ルールに従って対応を行う。主な対応としては、コマンド実行、メール送信、電話連絡等があり、ソフトウェアによって自動化が可能である。
【特許文献１】特開２０００−２４２５２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、メインフレームのメッセージコンソールを監視員が目視で監視する第１の方法は、リアルタイム性が高いという利点があるが、（１）常に監視員がコンソールの前に居る必要がある、（２）見落としが発生する可能性がある、（３）障害を示す文言に対する判断やその後の処理が自動化できず、監視業務の効率化が困難である等の問題点を抱えている。
【０００７】
また、メッセージログを印刷して確認する第２の方法は、メッセージコンソールを監視員が目視で監視する方法に比べて見落としが発生する可能性が低いという利点があるが、（１）リアルタイム性の確保が困難である、（２）見落としが発生する可能性がある、（３）前回の監視時に検知した障害を、重複して検知する可能性がある、（４）障害を示す文言に対する判断やその後の処理が自動化できず、監視業務の効率化が困難である等の問題点を抱えている。
【０００８】
さらに、メッセージログを転送し、オープン系サーバ上のソフトウェアで解析する第３の方法は、一連の作業を自動化することが可能であるため、効率的かつ高品質な監視が可能という利点があるが、（１）定期的に処理を行うためリアルタイム性の確保が困難である、（２）ファイル転送用にメインフレーム上にソフトウェアが必要であるため、変更リスクが発生する等の問題点を抱えている。変更リスクとは、例えばメインフレームにソフトウェアをインストールすることによってシステムのどこかに何らかの影響が発生するおそれを言う。このような変更リスクを最小限に抑えるために、メインフレームにソフトウェアをインストールする際、システム全体を一度停止させ、その後リブートさせることが必要となる場合がある。
【課題を解決するための手段】
【０００９】
本発明の第１の特徴は、第１のコンピュータの稼働状況を取得するために、第１のコンピュータの画面に出力されるメッセージを画面単位で受信し、メッセージを一行毎に分解して、不要な行を削除し、外部ツールにこれから送るメッセージのうち前回送ったメッセージ中に含まれる重複部分を削除することにある。
【００１０】
画面単位での受信は、第１のコンピュータの端末エミュレータを用いて実現する。不要な行とは、例えば、ヘッダー行やフッター行などである。重複部分を削除するとは、前回送ったメッセージの１行又は複数行を記憶しておき、そのメッセージと今回送ろうとするメッセージとを比較して、重複部分の有無を判断する。
【００１１】
本発明の第２の特徴は、外部ツールに前回送ったメッセージのうち、最終行のメッセージを記憶しておき、記憶されている前回メッセージ最終行と今回メッセージとを、今回メッセージの第１行目から順次比較し、今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つかった場合は、今回メッセージの第１行目から前回メッセージ最終行と同じ内容の行までを削除し、一方、今回メッセージ中に前回メッセージ最終行と同じ内容の行が見つからなかった場合は、メッセージを削除しないものとする。
【００１２】
例えば、
（１）前回メッセージ最終行と、今回メッセージの第１行目とを比較し、
（２）前回メッセージ最終行と、今回メッセージの第１行目とが同じでない場合は、前回メッセージ最終行と、今回メッセージの第２行目とを比較し、
（３）前回メッセージ最終行と、今回メッセージの第２行目とが同じでない場合は、前回メッセージ最終行と、今回メッセージの第３行目とを比較し、
（４）前回メッセージ最終行と、今回メッセージの第３行目とが同じである場合は、今回メッセージの第１行目から第３行目までを削除する。
【００１３】
本発明の第３の特徴は、
第１のコンピュータの画面縦サイズがｈバイトで、横サイズがｗバイトであって、第１のコンピュータから出力されるメッセージの１行の長さが、ｗバイトを超える場合に、
画面受信の際は、メッセージの第１行目から第ｈ行目までの各行の第１バイト目から第ｗバイト目までを、第１のオフセット値以降に順次記憶し、
メッセージの第１行目から第ｈ行目までの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までを、第２のオフセット値以降に順次記憶し、
メッセージ整形の際は、第１のオフセット値以降に記憶されているメッセージの各行の第１バイト目から第ｗバイト目までと、第２のオフセット値以降に記憶されているメッセージの各行の第（ｗ＋１）バイト目から第（２×ｗ）バイト目までとを順次結合してメッセージの第１行目から第ｈ行目までを作成する。なお、ｈ及びｗは、任意の自然数とする。
【００１４】
例えば、横サイズが８０バイトであって、第１のコンピュータから出力されるメッセージの１行の長さが、８０バイトを超える場合に、
（１）画面受信の際は、
１行目の１〜８０バイトをメモリの（１０００＋１）番地に記憶し、
２行目の１〜８０バイトをメモリの（１０００＋２）番地に記憶し、
：
ｈ行目の１〜８０バイトをメモリの（１０００＋ｈ）番地に記憶し、
１行目の８１〜１６０バイトをメモリの（２０００＋１）番地に記憶し、
２行目の８１〜１６０バイトをメモリの（２０００＋２）番地に記憶し、
：
ｈ行目の８１〜１６０バイトをメモリの（２０００＋ｈ）番地に記憶し、
（２）メッセージ整形の際は、
メモリの（１０００＋１）番地の内容と（２０００＋１）番地の内容とを結合して、メッセージの１行目を作成し、
メモリの（１０００＋２）番地の内容と（２０００＋２）番地の内容とを結合して、メッセージの２行目を作成し、
：
メモリの（１０００＋ｈ）番地の内容と（２０００＋ｈ）番地の内容とを結合して、メッセージのｈ行目を作成する。
【発明の効果】
【００１５】
本発明の第１の特徴によれば、第１のコンピュータの画面出力に基づいて稼働状況を取得しているので、第１のコンピュータに稼働状況取得のためのソフトウェアをインストールする必要がない。また、前回メッセージと今回メッセージとの重複部分を削除して外部ツールに送るため、例えば第１のコンピュータは１回しかエラーメッセージを発生していないのに、外部ツールがエラーメッセージを２回受け取ることはない。
【００１６】
また、本発明の第２の特徴によれば、前回メッセージの最終行だけを今回メッセージと比較することによって、つまり比較対照行を１行に限定することによって、比較処理に要する時間を短縮できる。
【００１７】
ここで、「第１行目」とは最も上の行を意味し、下から１行目を意味しない。今回メッセージの第１行目（最も上の行）から順次比較することによって、今回メッセージと前回メッセージとの重複部分について削除漏れが生じることはあっても、誤って過剰に削除することを回避できる。例えば、今回メッセージの第３行目と第５行目と第７行目が同じであって、今回メッセージの第１行目から第５行目までが前回メッセージの終わりの５行と同じ内容、つまり今回メッセージの第１行目から第５行目までが削除されるべき場合に基づいて説明する。第２の特徴によれば、前回メッセージの最終行と今回メッセージの第１行目からとが順次比較されれば、第３行目で同一内容行が存在すると判断され、第１行目から第３行目までが削除される。この場合は、重複部分として削除されるべき第４行目から第５行目が削除されない。このような削除漏れは発生しうる。
【００１８】
もし仮に、最も下の行から比較を開始した場合、第７行目で同一内容行が存在すると判断され、第１行目から第７行目までが削除されてしまう。第２の特徴によれば、このように過剰に削除されることはない。
【００１９】
つまり、第２の特徴によれば、重複部分削除の正確性を若干犠牲にして、重複部分削除に要する時間を短縮しているが、仮に不正確な削除がなされるとしても、削除漏れが生じることはあっても、過剰に削除されることはない。このことは、例えば第１のコンピュータから１回しかエラーメッセージが発生していないのに、２回発生しているかのように外部ツールに通知してしまうことが極希に発生することはあっても、エラーメッセージが発生しているのにそれを外部ツールに通知し忘れてしまうことは決してないということを意味する。
【００２０】
さらに、本発明の第３の特徴によれば、第１のコンピュータから出力されるメッセージが第１のコンピュータの画面サイズに収まらない場合であっても、第１のコンピュータに稼働状況取得のためのソフトウェアをインストールする必要はなく、また外部ツールに同じメッセージを重複して送ってしまうこともない。
【発明を実施するための最良の形態】
【００２１】
以下に図面に基づいて、本発明を実施するための最良の形態を説明する。なお、以下の説明は、単なる例示に過ぎず、本発明の技術的範囲は以下の説明に限定されるものではない。
【実施例１】
【００２２】
図１〜５に基づいて、実施例１を説明する。図1は実施例１のシステム構成を表すブロック図であり、図２は実施例１における制御情報の一例を示し、図３及び４は実施例１における情報（メッセージ）の遷移と画面の遷移の一例を示し、図５は実施例１における処理の流れを示すフローチャートである。
【００２３】
＜システム概要＞
図１に示すように、本システムは、稼働状況取得システム１、記憶装置２、メインフレーム３、外部ツール４から構成される。
【００２４】
稼働状況取得システム１は、記憶装置２より読み込んだ制御情報（後述する図2を参照）を元に、メインフレーム３との接続やメッセージログの受信、整形、重複削除、外部ツール４への出力を行う。
【００２５】
記憶装置２には、稼働状況取得システム１の制御情報が格納されている。記憶装置２は、具体的には、フロッピーディスクドライブやハードディスクドライブなどの磁気記憶装置又はCD-ROMドライブやDVDドライブなどの光ディスク記憶装置又はＭＯドライブなどの光磁気ディスク記憶装置に相当する。また、ネットワークに接続された他システムの記憶装置を利用することも可能である。
【００２６】
図２に示すように、制御情報は、例えばメインフレームのＩＰアドレス、メインフレームとの接続プロトコル、ＬＵ（Logical Unit：論理端末）名、アカウント名、パスワード、発行するコマンドの文字列、受信する画面の識別情報、画面を記憶するメモリアドレス、画面受信部で使用する削除対象文字列、外部ツールとのＩ／Ｆ情報、稼働状況取得システムの障害発生時の対応方法、及び繰り返しの間隔などである。
【００２７】
アカウント名やパスワードなど、認証に関わる情報は暗号化することが好ましい。「発行するコマンドの文字列」とは、例えば後述する「SDSF」やそのオプションである。「受信する画面の識別情報」とは、例えば画面上の座標値と文字列などである。そして、識別情報として記憶されている座標値の位置に、識別情報として記憶されている所定の文字列が表示されている画面を受信し、それ以外の画面は受信しないものとする。所定の位置とは、例えば画面の第１行目などでも良く、又は画面の第１行目から第３行目のように複数行にわたるものでも良い。また、所定の文字列とは、例えば「システム状況の処理」、「コマンド」、「SYSTEM」、「STATUS」などである。「画面を記憶するメモリアドレス」とは、例えば画面を記憶するメモリの先頭アドレスなどである。「画面受信部で使用する削除対象文字列」とは、例えば「----1----」などのヘッダー行に表示される文字列やフッター行に表示される文字列などである。「外部ツールとのＩ／Ｆ情報」とは、稼働状況取得システム１と外部ツール４とのインターフェースに関する情報であり、稼働状況取得システム１から外部ツール４へどのようにしてメッセージを渡すかに関する情報である。例えば、どのAPI(アプリケーション  プログラミング  インターフェース)をコールするのか、又はどのような名前のファイルとして出力するのかなどである。「稼働状況取得システムの障害発生時の対応方法」とは、メインフレーム３に障害が発生したときではなく、稼働状況取得システム１そのものに障害が発生したときの対応方法である。「繰り返しの間隔」とは後述するステップＳ１０７からステップＳ１１３を繰り返し実行する時間間隔をいい、例えば５秒程度である。
【００２８】
メインフレーム３は、稼働状況取得システム１から依頼を受けたときに、稼働状況を稼働状況取得システム１に対してメッセージログ３０として入力する。
【００２９】
外部ツール４は稼働状況取得システム１から入力された情報を元に障害の検知を行い、警報装置の鳴動やメールの送信などを行う。外部ツール４は、具体的には、運用管理ツール（例えば、NRIデータサービス株式会社製の『eXsenju』（登録商標））などに相当する。
【００３０】
＜稼働状況取得システム詳細＞
図１に示すように、稼働状況取得システム1は、制御情報読取部１１、制御情報格納部１２、制御部１３、メインフレーム画面１４、通信制御部１５、画面受信部１６ａ、メッセージ整形部１７ａ及び重複削除処理部１８から構成される。
【００３１】
制御情報読取部１１は、記憶装置２から制御情報の読込を行い、制御情報格納部１２に格納する。なお、制御情報には、パスワードなど秘匿性が高い情報が含まれうる。そのような秘匿性が高い情報は、その一部又は全部が暗号化されていることが好ましい。暗号化されている制御情報は、暗号化されたまま制御情報格納部１２に格納される。
【００３２】
制御情報格納部１２は、制御情報読取部１１が読み込んだ制御情報を格納し、制御部１３に送る。なお、暗号化されたまま制御情報格納部１２に格納されている制御情報は、暗号化されたまま制御部１３に送られる。
【００３３】
制御部１３は、制御情報格納部１２から送られた制御情報をもとに、メインフレーム画面１４へ文字列やキーの入力を行う。例えば、IBM社製メインフレームの場合、SDSFコマンドを入力する。また、キー入力の結果としてメインフレーム画面１４に表示される情報について、重複を防ぐ一連の処理の指示を行う。後述するように、重複を防ぐ一連の処理は、画面受信部１６ａ、メッセージ整形部１７ａ、及び重複削除処理部１８によって実行される。
【００３４】
なお、メインフレーム画面１４に表示される情報を取得する際に抜け漏れが発生することを防ぐため、画面が自動的に遷移しないよう文字列やキー（例えば、IBM社製メインフレームの場合、SDSFコマンドのオプション）の入力を行う。「画面が自動的に遷移しないようにする」とは、前回画面取得時と今回画面取得時の間に、メッセージログが1画面分よりも多く出力された場合に、画面を１画面分よりも多くスクロールせず、まず前回と比べて1画面分新しい情報を取得し、その後、残りの情報を取得する。例えば、メッセージが１．５画面分出力された場合、まず１画面分を取得し、その後、既に取得した画面の後半（０．５画面分）とまだ取得していない画面（０．５画面分）とを取得する。
【００３５】
図３に、前回メッセージログ全体３１と、前回メッセージログ全体３１の一部に対応する前回取得画面３２の一例を示す。図３に示す例では、前回メッセージログ全体３１の最終行と前回取得画面３２の最終行は、同一の行である。
【００３６】
図４に、今回メッセージログ全体３５と、今回メッセージログ全体３５の一部に対応する今回取得画面３６及び次回取得画面３７の一例を示す。図４に示すように、前回取得画面３２の最終行の次の行が、今回取得画面３６の先頭行にある。また、図４に示す例は、今回取得画面３６の最終行が、今回メッセージログ全体３５の最終行と一致していない。前回画面取得時と今回画面取得時の間に、メッセージログが1画面分よりも多く出力された場合に該当する。さらに、図４に示す例は、今回取得画面３６と次回取得画面３７とが一部重複してしまっているので、後述するように重複削除処理部１８によって重複部分を削除する。
【００３７】
制御情報格納部１２から送られる制御情報は一部暗号化されている可能性があるため制御部１３で復号化を行う。制御部１３の処理は逐次ログ等に記録されるが、ログ等には暗号化された情報を出力する。
【００３８】
メインフレーム画面１４は、稼働状況取得システム１内部に生成されるメインフレームの画面である。メインフレーム画面１４は、制御部１３から入力された文字列やキーを、通信制御部１５を通してメインフレーム３に送る。また、メインフレーム３から受け取った情報は、メインフレーム画面１４に表示される。
【００３９】
通信制御部１５は、メインフレームとの接続/切断等の通信制御を行う。メインフレームとの通信方式はメインフレームの機種によって異なる（例えば、IBM社製メインフレームの場合は、3270プロトコルで接続）が、通信制御部１５で使用されるプロトコルを変更することによって全ての機種と接続することができる。メインフレーム画面１４と通信制御部１５はメインフレームの端末エミュレータを用いて実現する。ここで、端末エミュレータとは、特定のメインフレーム端末用の通信プロトコルをエミュレートし、パーソナルコンピュータ等の非専用端末を、専用端末として機能させるためのハードウェア又はソフトウェアを意味する。例えば、IBM社製『WebSphere（登録商標） Host Access Transformation Services』等が該当する。
【００４０】
画面受信部１６ａは、図１に示されているように、不要画面判断部１６１及び画面記憶部１６２を備える。画面受信部１６ａは、制御部１３の指示を受けてメインフレーム画面１４に表示される画面を画面単位で取得する。
【００４１】
メインフレーム画面１４に表示される内容は、メインフレームが表示する表示方法に依存するため、不要な画面が表示される可能性がある。不要な画面とは、具体的には、ログイン画面や目的の情報に辿り着くまでの遷移画面などに相当する。不要な画面を破棄するために、制御部１３から指示を受けた画面のみ取得する。具体的には、不要画面判断部１６１が、前記の「受信する画面の識別情報」に従って、受信（取得）が必要か否かを判断し、必要と判断された画面だけを画面記憶部１６２が記憶する。
【００４２】
なお、「受信する画面の識別情報」の代わりに、「受信しない画面の識別情報」を制御情報として記憶し、「受信しない画面の識別情報」に基づいて不要と判断された画面を取得せず、それ以外の画面を取得することもできる。
【００４３】
メッセージ整形部１７ａは、図１に示すように、不要行判断部１７１及び不要行削除部１７２を備える。メッセージ整形部１７ａは、画面受信部１６ａが取得した画面からメッセージを作成する。具体的には、不要行判断部１７１が、受信した画面を行に分解してメッセージを作成し、明らかに不要な行（例えば、空行やヘッダー行、フッター行）かを判断する。具体的には、制御情報として記憶されている前記の「削除対象文字列」と各行を比較して、不要な行かを判断する。不要と判断された行は、不要行削除部１７２によって削除される。
【００４４】
重複削除処理部１８は、図１に示すように、最終行記憶部１８１、比較部１８２及び重複行削除部１８３を備え、メッセージ整形部１７ａが作成したメッセージのうち、既に外部ツール4に送ったメッセージを削除する。重複削除処理部１８は、以下の方法で重複メッセージを削除する。
【００４５】
（１）最終行記憶部１８１が、前回外部ツール4に送ったメッセージ（複数行）のうち最終行のメッセージを記憶し、
（２）比較部１８２が、最終行記憶部１８１に記憶されているメッセージ（最終行のみ）と、メッセージ整形部１７ａによって今回作成されたメッセージ（複数行）とを、1行目から順に比較し、
（３）重複行削除部１８３が、
同じ内容の行が存在する場合は、メッセージ整形部１７ａが今回作成したメッセージのうち、1行目から該当する行までのメッセージを削除し、
同じ内容の行が存在しない場合は、何もしない。
【００４６】
重複するメッセージを削除した後、又は重複するメッセージを発見することなく最終行まで比較が終了した後に、外部ツール4に対してメッセージを送る。
【００４７】
＜処理の流れ＞
図５に示すように、ステップＳ1０１で、制御情報読取部１１が記憶装置２より制御に関する情報を読み込み、制御情報格納部１２に記憶する。  
ステップＳ１０３で、制御部１３が制御情報格納部１２から制御情報を読み取り、制御情報にしたがって、メインフレーム画面１４に対して文字列やキーの入力を行う。  
ステップＳ１０５で、接続制御部１５が、制御部１３からメインフレーム画面１４への入力を受け取り、メインフレーム３との接続、認証を行う。  
ステップＳ１０７で、接続制御部１５が接続、認証を行った後、制御部１３がメインフレーム画面１４に対してメッセージログ取得要求を行う。  
ステップＳ１０９で、画面受信部１６ａが制御部１３の指示に従ってメインフレーム画面１４に表示された画面を取得する。  
ステップＳ１１１で、画面受信部１６ａが受信した画面から、メッセージ整形部１７ａがメッセージを作成し、不要な情報を削除する。  
ステップＳ１１３で、重複削除処理部１８が、重複メッセージを削除し、外部ツール４にメッセージを送信する。  
以上のステップＳ１０７からステップＳ１１３を、制御情報として記憶されている繰り返し間隔で繰り返すことによって、ほぼリアルタイムで稼働状況の把握が可能になる。
【００４８】
前記の如く、実施例１によれば、メインフレームにファイル転送用のソフトウェアが存在しなくても、メッセージを外部ツール４へほぼリアルタイムで渡すことができる。また、前回画面取得時と今回画面取得時との間に、メッセージログが１画面分以上出力された場合であっても、情報を取りこぼすことがない。さらに、図４を用いて説明したように、今回取得画面の内容と次回取得画面の内容とが一部重複する場合であっても、外部ツール４へ二重に情報を渡してしまうこともない。よって、リアルタイム性を確保しつつ、メッセージの検出漏れ、又はメッセージの重複検知を回避することができる。
【実施例２】
【００４９】
メインフレーム画面１４のサイズは、通常、縦２４バイト×横８０バイトに固定されている。そのため、８０バイト以上のメッセージは画面内の１行に納まらず、画面の横スクロールを行って表示する必要がある。実施例１では、１画面に納まるメッセージ（横スクロールが不要なメッセージ）の取得を行ったが、実施例２では、横スクロールを伴って表示される画面の取得も可能である。
【００５０】
実施例２のシステム構成は、実施例１のシステム構成とほぼ同様であるが、画面受信部とメッセージ整形部が相違する。図７に示すように、画面受信部１６ｂは、画面記憶部１６２内に第１画面記憶領域のみならず第２画面記憶領域を備え、またメッセージ整形部１７ｂは、同一行結合部１７３をさらに備える。なお、実施例２では、ステップＳ１０９を複数回繰り返した上でステップＳ１１１及びステップＳ１１３を行う。
【００５１】
図６−１（ａ）に、８０バイト以上の長いメッセージを複数行含むメッセージ６０１の一例を示す。実施例２の画面受信部１６は、図６−１（ｂ）に示すように、メッセージ６０１の各行の前半８０バイトからなる第１の画面６０２ａと、メッセージ６０１の各行の後半８０バイトからなる第２の画面６０２ｂとに分割して、第１の画面６０２ａを第１画面記憶領域に記憶し、第２の画面を第２画面記憶領域に記憶する（ステップＳ１０９）。
【００５２】
そして、例えば、メッセージ６０１の１行目（ヘッダー行）前半８０バイトに相当する画面６０２ａの１行目は、第１画面記憶領域内のアドレス１００１番地に、
メッセージ６０１の２行目前半８０バイトに相当する画面６０２ａの２行目は、第１画面記憶領域内のアドレス１００２番地に、
メッセージ６０１の３行目前半８０バイトに相当する画面６０２ａの３行目は、第１画面記憶領域内のアドレス１００３番地に、
メッセージ６０１の４行目前半８０バイトに相当する画面６０２ａの４行目は、第１画面記憶領域内のアドレス１００４番地にそれぞれ記憶され、画面６０２ａの残りの行も同様に、（１０００＋行数）番地に記憶される。
【００５３】
また、メッセージ６０１の１行目（ヘッダー行）後半８０バイトに相当する画面６０２ｂの１行目は、第２画面記憶領域内のアドレス２００１番地に、
メッセージ６０１の２行目後半８０バイトに相当する画面６０２ｂの２行目は、第２画面記憶領域内のアドレス２００２番地に、
メッセージ６０１の３行目後半８０バイトに相当する画面６０２ｂの３行目は、第２画面記憶領域内のアドレス２００３番地に、
メッセージ６０１の４行目後半８０バイトに相当する画面６０２ｂの４行目は、第２画面記憶領域内のアドレス２００４番地にそれぞれ記憶され、画面６０２ｂの残りの行も同様に、（２０００＋行数）番地に記憶されるものとする。
【００５４】
なお、「ｘｘｘ１番地」に１行目、「ｘｘｘ２番地」に２行目、・・・が記憶されるとしているが、説明を簡単にするためにそのようにしているに過ぎない。記憶対象であるメッセージのバイト数に応じて「ｘｘｘ１番地」に１行目、「ｘｘｘ５番地」に２行目、・・・などのようにアドレスの増分を適宜変更しても良いことは言うまでもない。
【００５５】
そして、メッセージ整形部１７の同一行結合部１７３は、
アドレス１００１番地の内容の後ろにアドレス２００１番地の内容を結合し、
アドレス１００２番地の内容の後ろにアドレス２００２番地の内容を結合し、
アドレス１００３番地の内容の後ろにアドレス２００３番地の内容を結合し、
アドレス１００４番地の内容の後ろにアドレス２００４番地の内容を結合し、残りの行も同様にアドレス（１０００＋行数）番地の内容の後ろにアドレス（２０００＋行数）番地の内容を結合して、図６−２（ｃ）に示すメッセージ６０３を作成する。さらに、不要行判断部１７１と不要行削除部１７２とが、ヘッダー行を削除してメッセージ６０４を作り（ステップＳ１１１）、得られたメッセージ６０４を重複削除処理部１８へ送る。
【００５６】
重複削除処理部１８は、実施例１と同様に、重複の有無を調べ、重複部分を発見したらその重複部分を削除して、外部ツール４にメッセージを送信する（ステップＳ１１３）。
【００５７】
前記の如く、実施例２によれば、実施例１と同様に、（１）メインフレームにファイル転送用のソフトウェアが存在しなくても、メッセージを外部ツール４へほぼリアルタイムで渡すことができ、（２）また、前回画面取得時と今回画面取得時との間に、メッセージログが１画面分以上出力された場合であっても、情報を取りこぼすことがなく、（３）さらに、今回取得画面の内容と次回取得画面の内容とが一部重複する場合であっても、外部ツール４へ二重に情報を渡してしまうこともない。よって、リアルタイム性を確保しつつ、メッセージの検出漏れ、又はメッセージの重複検知を回避することができる。
【００５８】
さらに、実施例２によれば、メインフレーム３から出力されるメッセージが、メインフレーム画面、１画面に収まらない場合にも対応可能である。なお、実施例２はメッセージ１行の長さがメインフレーム画面の横方向サイズを超えるが、同横方向サイズの２倍を超えないことを前提としたが、本発明の技術的範囲はかかる実施例に限定されない。仮に、メッセージ１行の長さが、メインフレーム画面の横方向サイズの２倍を超える場合は、メッセージを横方向に３分割すれば良い。
【００５９】
この場合、画面受信部が、第１の画面の第１行目以降をアドレス１００１番地以降に、第２の画面の第１行目以降をアドレス２００１番地以降に、第３の画面の第１行目以降をアドレス３００１番地以降にそれぞれ記憶する。そして、メッセージ整形部が、アドレス１００１番地の内容の後ろにアドレス２００１番地の内容を付加し、さらにその後ろにアドレス３００１番地の内容を付加し、また同様に、アドレス１００２番地の内容の後ろにアドレス２００２番地の内容を付加し、さらにその後ろにアドレス３００２番地の内容を付加するという処理を繰り返すことによって、メッセージを作成する。
【図面の簡単な説明】
【００６０】
【図１】実施例１におけるシステム構成を表すブロック図である。
【図２】実施例１における制御情報の一例を示す図である。
【図３】実施例１における情報（メッセージ）の遷移と画面の遷移の一例を示す図である。
【図４】実施例１における処理の流れを示すフローチャートであって、図３に示すメッセージが出力された後に出力されるメッセージの一例を示す図である。
【図５】実施例１における処理の流れを示すフローチャートである。
【図６−１】実施例２におけるメッセージ又は画面の一例であって、（ａ）は１画面では表示することができないメッセージの一例を示し、（ｂ）は画面受信部で取得した第１の画面及び第２の画面の一例を示す図である。
【図６−２】実施例２におけるメッセージの一例であって、（ｃ）は第１の画面と第２の画面の同一行がメッセージ整形部によって結合された例を示し、（ｄ）はメッセージ整形部によって不要な行が削除された例を示す図である。
【図７】実施例２におけるシステム構成を表すブロック図である。
【符号の説明】
【００６１】
１…稼働状況取得システム、  ２…記憶装置、
３…メインフレーム、  ４…外部ツール、
１１…制御情報読取部（利用者認証手段）、  １２…制御情報格納部、
１３…制御部、  １４…メインフレーム画面、
１５…通信制御部、  １６…画面受信部、
１７…メッセージ整形部、  １８…重複削除処理部
【図１】
2006085644.tif 000003
【図２】
2006085644.tif 000004
【図３】
2006085644.tif 000005
【図４】
2006085644.tif 000006
【図５】
2006085644.tif 000007
【図６−１】
2006085644.tif 000008
【図６−２】
2006085644.tif 000009
【図７】
2006085644.tif 000010