以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理装置の構成例および処理例を示す図である。情報処理装置1aは、データ取得部2およびデータ変換部3を有する。データ取得部2およびデータ変換部3の処理は、例えば、情報処理装置1aが備えるプロセッサが所定のプログラムを実行することにより実現される。
データ取得部2は、情報を表示するための表示データを複数の装置から取得する。データ変換部3は、これら複数の装置から取得した表示データを、各表示データに付加された付加情報に基づく変換方法で1つの表示データに変換し、変換後の表示データを表示端末装置10に送信する。これにより、複数の装置から取得された情報を、表示端末装置10の表示画面11上にまとめて表示させることができる。
図1では例として、データ取得部2は、情報処理装置1aと、この情報処理装置1aに接続された他の情報処理装置1b,1cとから、それぞれ表示データD1,D2,D3を取得する。例えば、表示データD1は“XXX・・・”という情報を表示するためのデータであり、表示データD2は“YYY・・・”という情報を表示するためのデータであり、表示データD3は“ZZZ・・・”という情報を表示するためのデータであるとする。
なお、表示データD1,D2,D3は、例えば、次のようにして取得される。情報処理装置1aは、表示端末装置10から処理要求を受信すると、受信した処理要求を、情報処理装置1a,1b,1cに分配する。
情報処理装置1bは、分配された処理要求に応じた処理を実行し、その処理結果として“YYY・・・”を得て、“YYY・・・”を表示するための表示データD2を情報処理装置1aに返信する。情報処理装置1cも同様に、分配された処理要求に応じた処理を実行し、その処理結果として“ZZZ・・・”を得て、“ZZZ・・・”を表示するための表示データD3を情報処理装置1aに返信する。また、情報処理装置1aは、分配された処理要求に応じた処理を実行し、その処理結果として“XXX・・・”を得て、“XXX・・・”を表示するための表示データD1を出力する。このようにして、表示データD1,D2,D3が取得される。
表示データD1,D2,D3には、それぞれ付加情報Da1,Da2,Da3が付加されている。付加情報Da1,Da2,Da3は、複数の表示データを1つの表示データに変換する際の変換方法を指示する情報である。データ変換部3は、取得された表示データD1,D2,D3を、それぞれに付加された付加情報Da1,Da2,Da3に基づく変換方法で、1つの表示データD10に変換して、表示端末装置10に送信する。表示端末装置10が表示データD10に基づく表示処理を行うことで、表示画面11には、“XXX・・・”、“YYY・・・”、“ZZZ・・・”がまとめて表示される。
ここで、データ変換部3は、付加情報に基づく変換方法で表示データの変換を行うことで、表示される情報に応じた様々な変換処理を行うことが可能になる。従って、例えば、各表示データを単に結合する場合と比較して、高度な変換処理を行うことができる。例えば、各情報処理装置1a,1b,1cから取得した情報の表示状態を適正化し、無駄な情報が省かれた見やすい状態で、取得した各情報を1つの画面上に表示させることができる。また、複数の情報処理装置1a,1b,1cについての情報を、あたかも1つの情報処理装置の情報を見ているかのように、閲覧者に見せることもできる。
〔第2の実施の形態〕
次に、上記の情報処理装置を含むシステムの例として、記録媒体として磁気テープを用いたストレージシステムを挙げて説明する。
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、複数のテープライブラリ装置100を有する。
各テープライブラリ装置100には、ネットワーク51を介してホスト装置200が接続されている。ネットワーク51は、例えば、FC(Fibre Channel)ネットワークである。
各テープライブラリ装置100は、複数の磁気テープが格納されたテープ格納部と、1つ以上のテープドライブとを内蔵する。各テープライブラリ装置100は、内蔵されたテープドライブを用い、ホスト装置200からの要求に応じて、磁気テープに対するデータの読み書きを行う。例えば、テープライブラリ装置100は、ホスト装置200から、アクセス対象のテープボリューム名と、読み出しまたは書き込みの要求とを受信すると、受信したテープボリューム名に対応する磁気テープをテープ格納部から取得してテープドライブにマウントし、要求に従ってデータの読み出しまたは書き込みを行う。
このように、各テープライブラリ装置100は、内部に格納された複数の磁気テープによって実現される記憶領域を、ホスト装置200に提供する。そして、このようなテープライブラリ装置100が複数台連結されて使用されることで、多数の磁気テープによる大容量の記憶領域がホスト装置200に提供される。
なお、各テープライブラリ装置100には、複数のホスト装置200が接続されていてもよい。また、各テープライブラリ装置100は、例えば、各テープライブラリ装置100内の磁気テープを階層型ストレージシステムのバックエンドとして用いるように制御する制御装置を介して、ホスト装置200と接続されていてもよい。
また、各テープライブラリ装置100は、保守管理用のネットワーク52を介して相互に接続されている。ネットワーク52は、例えば、LAN(Local Area Network)である。そして、ネットワーク52には、管理端末300が接続されている。
管理端末300は、各テープライブラリ装置100を管理する管理者が操作する端末装置である。管理者は例えば、管理端末300を用いて、各テープライブラリ装置100の構成や設定の情報を閲覧したり、各テープライブラリ装置100に対する各種の設定操作を行うことができる。
ネットワーク52上では、HTTP(HyperText Transfer Protocol)に従って通信が行われる。各テープライブラリ装置100は、Webサーバ機能を備える。一方、管理端末300は、Webブラウザ機能を備え、各テープライブラリ装置100のWebサーバ機能に対して処理を要求するクライアントとして動作する。管理端末300には、各テープライブラリ装置100に対して情報の閲覧や設定を要求するためのインタフェース画面が表示される。各テープライブラリ装置100は、管理端末300からインタフェース画面を通じて送信された要求に応じて処理を行い、処理結果を返信する。
本実施の形態において、管理端末300は、複数のテープライブラリ装置100のうちの1つと通信する。そして、複数のテープライブラリ装置100のうち、管理端末300と通信する装置は、マスタ装置として動作し、それ以外の装置は、スレーブ装置として動作する。以下、管理端末300と通信するテープライブラリ装置100を“マスタ装置100a”と呼ぶ場合があり、管理端末300と通信しないテープライブラリ装置100を“スレーブ装置100b”と呼ぶ場合がある。
マスタ装置100aは、管理端末300から各テープライブラリ装置100へのHTTPリクエストを一括して受信する。マスタ装置100aは、受信したHTTPリクエストがスレーブ装置100bに対するものである場合、受信したHTTPリクエストをネットワーク52を介してスレーブ装置100bへ転送する。HTTPリクエストを受信したスレーブ装置100bは、要求に応じた処理を行い、HTTPレスポンスを、管理端末300の代わりにマスタ装置100aに送信する。マスタ装置100aは、スレーブ装置100bから送信されたHTTPレスポンスを中継して、管理端末300へ送信する。
また、後述するように、マスタ装置100aは、管理端末300から各テープライブラリ装置100に共通なHTTPリクエストを受信したとき、受信したHTTPリクエストを、各スレーブ装置100bおよび自装置に分配する。そして、マスタ装置100aは、各スレーブ装置100bおよび自装置から返信されるHTMLデータを変換して1つのHTMLデータに統合し、管理端末300に送信することが可能である。これにより、管理端末300において、各テープライブラリ装置100に関する情報を1つの画面に集約して表示できるようになる。
図3は、テープライブラリ装置のハードウェア構成例を示す図である。テープライブラリ装置100は、プロセッサ101、RAM102(Random Access Memory)、フラッシュメモリ103、読み取り装置104、ネットワークインタフェース105,106、テープインタフェース107、ロボットインタフェース108、テープドライブ109、搬送ロボット110およびテープ格納部111を有している。
プロセッサ101は、テープライブラリ装置100全体を統括的に制御する。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス112を介して、RAM102および複数の周辺機器が接続されている。
RAM102は、テープライブラリ装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス112には、周辺機器として、フラッシュメモリ103、読み取り装置104、ネットワークインタフェース105,106、テープインタフェース107およびロボットインタフェース108が接続されている。
フラッシュメモリ103は、テープライブラリ装置100の二次記憶装置として使用される。フラッシュメモリ103には、ファームウェアプログラムおよび各種データが格納される。なお、二次記憶装置としては、HDD(Hard Disk Drive)などの他の種類の不揮発性記憶装置が使用されてもよい。
読み取り装置104には、可搬型記録媒体104aが脱着される。読み取り装置104は、可搬型記録媒体104aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体104aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ネットワークインタフェース105は、ネットワーク51を介して、ホスト装置200との間でデータを送受信する通信インタフェースである。ネットワークインタフェース106は、ネットワーク52を介して、他のテープライブラリ装置100および管理端末300との間でデータを送受信する通信インタフェースである。
テープインタフェース107は、テープドライブ109との間でデータを送受信する通信インタフェースである。ロボットインタフェース108は、搬送ロボット110との間でデータを送受信する通信インタフェースである。
テープドライブ109は、テープライブラリ装置100内に1つ以上搭載されている。各テープドライブ109は、搬送ロボット110によって搬送されたテープカートリッジを1つずつマウントし、プロセッサ101の制御の下で、マウントしたテープカートリッジ内の磁気テープに対するデータの書き込みや、磁気テープからのデータの読み出しを行う。
テープ格納部111には、複数のテープカートリッジが格納されている。搬送ロボット110は、プロセッサ101による制御の下で、テープカートリッジを搬送する。搬送ロボット110は、例えば、テープ格納部111に格納されたテープカートリッジを、いずれかのテープドライブ109に搬送してマウントする。また、搬送ロボット110は、テープドライブ109からテープカートリッジをアンマウントし、テープ格納部111に搬送して格納する。
以上のようなハードウェア構成によって、テープライブラリ装置100の処理機能を実現することができる。
図4は、管理端末のハードウェア構成例を示す図である。管理端末300は、例えば、図4のようなコンピュータとして実現される。
管理端末300は、プロセッサ301によって装置全体が制御されている。プロセッサ301は、マルチプロセッサであってもよい。プロセッサ301は、前述のプロセッサ101と同様に、例えばCPU、MPU、DSP、ASICまたはPLDである。またプロセッサ301は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ301には、バス308を介して、RAM302と複数の周辺機器が接続されている。
RAM302は、管理端末300の主記憶装置として使用される。RAM302には、プロセッサ301に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM302には、プロセッサ301による処理に必要な各種データが格納される。
バス308に接続されている周辺機器としては、HDD303、グラフィック処理装置304、入力インタフェース305、読み取り装置306およびネットワークインタフェース307がある。
HDD303は、管理端末300の補助記憶装置として使用される。HDD303には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置304には、表示装置304aが接続されている。グラフィック処理装置304は、プロセッサ301からの命令に従って、画像を表示装置304aの画面に表示させる。表示装置304aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース305には、入力装置305aが接続されている。入力インタフェース305は、入力装置305aから出力される信号をプロセッサ301に送信する。入力装置305aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置306には、可搬型記録媒体306aが脱着される。読み取り装置306は、可搬型記録媒体306aに記録されたデータを読み取ってプロセッサ301に送信する。可搬型記録媒体306aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ネットワークインタフェース307は、ネットワーク52を介して、マスタ装置100aとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、管理端末300の処理機能を実現することができる。
次に、管理端末300と各テープライブラリ装置100との間の処理について説明する。始めに、管理端末と複数のテープライブラリ装置との間の通信方法の参考例について述べ、その後に本実施の形態の処理について説明する。
管理端末と複数のテープライブラリ装置との通信方法としては、例えば次のようなものが考えられる。
(参考例1)管理端末が、複数のテープライブラリ装置のそれぞれに直接アクセスする方法。
(参考例2)管理端末が、複数のテープライブラリ装置のうちの1つ(マスタ装置)にアクセスする方法。
参考例1の場合、管理者がアクセス先の装置のアドレスを指定することで、管理端末から所望のテープライブラリ装置に対してHTTPリクエストが送信される。HTTPリクエストを受信したテープライブラリ装置は、受信したHTTPリクエストによって指定されるCGI(Common Gateway Interface)プログラムを実行し、HTTPレスポンスを管理端末へ送信する。このような処理により、管理端末では、アクセス先のテープライブラリ装置ごとに情報が表示される。
参考例2の場合、マスタ装置の処理により管理者の操作性を改善できる。例えば、マスタ装置は、アクセス先の装置をプルダウンメニューなどによって簡単に指定できるようにしたトップ画面を、管理端末に表示させる。トップ画面からアクセス先の装置が指定されると、マスタ装置は、トップ画面処理用のCGIプログラムを実行することで、指定された装置にHTTPリクエストを送信する。そして、マスタ装置は、HTTPリクエストの送信先装置からのHTTPレスポンスを管理端末へ転送して、その装置に関する情報を、例えばトップ画面内の所定フレーム位置に表示させる。
ここで、上記の参考例1、参考例2のいずれの方法でも、管理端末では、あくまでテープライブラリ装置ごとに情報が表示される。このため、管理者は、複数のテープライブラリ装置に関する情報を画面上に一覧表示させて、それらを一度に閲覧することはできない。また、複数のテープライブラリ装置に関する情報を取得するためには、管理者はテープライブラリ装置ごとに情報取得のための操作を行う必要がある。
また、複数のテープライブラリ装置に関する情報を管理端末の画面上に一度に表示させる方法としては、各テープライブラリ装置から返信されたHTMLデータをマスタ装置で結合して管理端末に転送する方法が考えられる。しかし、この方法では、管理端末の画面には、返信された各HTMLデータに基づく表示情報が単に並んで表示されるだけであり、管理者にとって閲覧しやすい表示状態にはならない。
そこで、本実施の形態では、管理端末300からの1回の要求に応じて、マスタ装置100aがすべてのテープライブラリ装置100に要求に応じた処理を実行させる。そして、それらの処理の実行によって返信される各HTMLデータをマスタ装置100aで1つのHTMLデータに変換させ、変換後のHTMLデータが管理端末300に送信されるようにする。これにより、簡単な操作で、複数のテープライブラリ装置に関する情報を管理端末300の画面上に一度に表示させることを可能にする。
また、各テープライブラリ装置100から返信されるHTMLデータには、Webブラウザでの表示処理には影響しない形式の変換キーワードが埋め込まれる。マスタ装置100aは、HTMLデータに埋め込まれた変換キーワードに基づいて各HTMLデータの所定範囲の記述を所定の方法で変換し、1つのHTMLデータに統合して管理端末300に送信する。これにより、HTMLデータを統合する際の高度な変換処理を可能にする。例えば、複数のテープライブラリ装置に関する情報を表示させる際の表示状態を適正化し、管理者が必要な情報を無駄なく表示させることができるようにする。
図5は、HTMLデータに対する変換キーワードの埋め込み例を示す図である。図5の右側に示すHTMLデータD12は、左側に示すHTMLデータD11に対して“<!−−Ex=COLLECT−−>”および“<!−−Ex=END−−>”というコメントが追加されている。そして、各コメントにおける“Ex=COLLECT”および“Ex=END”が、変換キーワードに相当する。
HTMLデータD12における“Ex=END”は、変換範囲の末尾を示す。マスタ装置100aは、“<!−−Ex=COLLECT−−>”の位置から“<!−−Ex=END−−>”の位置までのHTMLデータを、“Ex=COLLECT”によって示される変換方法を用いて変換する。すなわち、変換キーワードにより、HTMLデータの変換方法と変換範囲とが指定される。
また、変換キーワードは、上記のように、Webブラウザでの表示処理には影響しない“コメント”の形式でHTMLデータに埋め込まれる。従って、例えば、変換キーワードが埋め込まれた状態のHTMLデータがそのまま管理端末300に送信されたとしても、管理端末300はそのHTMLデータに基づく文書を正常に表示できる。
各テープライブラリ装置100には、クライアント側に返信するHTMLデータを作成するためのテンプレートが、あらかじめ記憶される。このようなテンプレートは、クライアント側からの要求ごとに用意される。そして、本実施の形態では、これらのテンプレートのうちの必要なものに、変換キーワードがあらかじめ埋め込まれる。
上記のように変換キーワードがコメントの形式で埋め込まれることで、各テープライブラリ装置100は、図2のように複数のテープライブラリ装置100を接続して使用される状態でも、自装置が単体で使用される状態(すなわち、上記の参考例1のように管理端末300から直接アクセスされる状態)でも、変換キーワードが埋め込まれたテンプレートを共通に使用することができる。
図6は、管理端末およびテープライブラリ装置が備える処理機能の構成例を示す図である。
管理端末300は、Webブラウザ処理部310を有する。Webブラウザ処理部310の処理は、例えば、管理端末300のプロセッサ301が所定のプログラムを実行することで実現される。
Webブラウザ処理部310は、Webサーバから送信されたHTMLデータに基づくGUI(Graphical User Interface)画面を、管理端末300の表示装置304aに表示させる。また、Webブラウザ処理部310は、GUI画面に対する操作入力に応じたHTTPリクエストをWebサーバに送信し、Webサーバから返信されたHTMLデータに基づく画像を表示装置304aに表示させる。以下、HTMLデータに基づいて表示される画像を“Web画像”と呼ぶ場合がある。
一方、テープライブラリ装置100は、Webサーバ処理部120、メンテナンス処理部130およびHTML統合処理部140を有する。Webサーバ処理部120、メンテナンス処理部130およびHTML統合処理部140の処理は、例えば、テープライブラリ装置100のプロセッサ101が所定のプログラムを実行することで実現される。
また、各テープライブラリ装置100の記憶装置には、制御情報151およびシステム構成情報152が記憶される。制御情報151およびシステム構成情報152は、例えば、テープライブラリ装置100のフラッシュメモリ103に記憶される。
なお、HTML統合処理部140は、テープライブラリ装置100がマスタ装置100aとして動作する場合のみ起動する。また、システム構成情報152は、テープライブラリ装置100がマスタ装置100aとして動作する場合のみ、HTML統合処理部140によって参照される。このため、図6では、HTML統合処理部140およびシステム構成情報152を、マスタ装置100aにのみ図示し、スレーブ装置100bには図示していない。
Webサーバ処理部120は、Webサーバとしての基本機能を実現する処理ブロックである。Webサーバとしての基本機能とは、クライアントからHTTPリクエストを受信し、そのリクエストに応じたHTMLデータをクライアントに返信する機能である。
なお、図示しないが、各テープライブラリ装置100の記憶装置には、クライアントに返信するHTMLデータを作成するためのテンプレートが、対応する要求の内容ごとに記憶されている。また、これらのテンプレートのうちのいくつかには、前述した変換キーワードが記述されている。また、本実施の形態では、少なくとも変換キーワードが記述されたテンプレートについては、マスタ装置100aかスレーブ装置100bかに関係なく、すべてのテープライブラリ装置100で共通のものが記憶されて使用される。
また、Webサーバとしての基本機能には、受信したHTTPリクエストに含まれるURL(Uniform Resource Locator)によって指定されたCGIプログラムを実行させ、CGIプログラムの実行結果をHTMLデータに含めてクライアントに返信する機能も含まれる。本実施の形態では、Webサーバ処理部120が受信したHTTPリクエストに応じて、メンテナンス処理部130の処理を実現するCGIプログラムが指定されて実行される。
メンテナンス処理部130は、クライアントからの要求に応じて、テープライブラリ装置100のメンテナンスに関する処理を実行する。メンテナンスに関する処理としては、画面表示のためにクライアントから要求された、テープライブラリ装置100の構成や設定の情報を収集する処理や、クライアントから要求された各種の設定を行う処理などがある。
制御情報151は、メンテナンス処理部130による情報の収集対象や、情報の設定対象となる情報である。制御情報151の代表的な例としては、ホスト装置200からの要求に応じて磁気テープへのアクセスを制御するための情報がある。ここで、次の図7に、磁気テープへのアクセスを制御するための情報の例として、ボリューム管理テーブルを挙げる。
図7は、ボリューム管理テーブルの例を示す図である。ボリューム管理テーブル151aは、論理ボリュームを管理するためのテーブル情報であり、ボリューム名、サイズおよびテープ名の各項目を有する。ボリューム名の項目には、論理ボリュームの識別番号が登録される。サイズの項目には、対応する論理ボリュームのサイズが登録される。テープ名の項目には、対応する論理ボリュームのデータが格納されている磁気テープの識別番号が登録される。
メンテナンス処理部130は、このようなボリューム管理テーブル151aを参照することにより、例えば、各論理ボリュームのサイズを収集してサイズの一覧情報を生成する、所定サイズ以上の論理ボリュームを抽出する、論理ボリュームのデータが記録されている磁気テープの一覧と、各磁気テープに記録されている論理ボリュームの一覧とを抽出する、などの処理を行うことができる。
なお、制御情報151の他の例としては、テープライブラリ装置100に内蔵または外付けされたデバイスの構成に関する情報、各デバイスのステータスを示す情報などがある。
以下、図6に戻って説明を続ける。
メンテナンス処理部130の処理や、Webサーバ処理部120によるWebサーバとしての基本機能の処理は、マスタ装置100aかスレーブ装置100bかに関係なく、すべてのテープライブラリ装置100において実行される。これに加えて、Webサーバ処理部120は、HTTPリクエストに含まれるURLの記述方法に応じて、次のような処理を行う。
Webサーバ処理部120は、自装置宛てのHTTPリクエストに含まれるURLにホスト名が記述されている場合、自装置をマスタ装置100aとして動作させる。マスタ装置100aでは、HTML統合処理部140が起動する。
一方、Webサーバ処理部120は、自装置宛てのHTTPリクエストに含まれるURLにIP(Internet Protocol)アドレスが記述されている場合、自装置をスレーブ装置100bとして動作させる。この場合、後述するように、受信したHTTPリクエストは、マスタ装置100aとして動作する他のテープライブラリ装置100から送信されたものとなる。換言すると、ネットワーク52を介したマスタ装置100aとスレーブ装置100bとの通信では、URLにおける送信先がIPアドレスによって指定される。
なお、例えば、管理端末300とマスタ装置100aとを接続するネットワークと、マスタ装置100aとスレーブ装置100bとを接続するネットワークとが、物理的に分離されていてもよい。この場合、Webサーバ処理部120は、例えば、HTTPリクエストをどのネットワークから受信したかによって、自装置をマスタ装置100aとして動作させるか、スレーブ装置100bとして動作させるかを判断してもよい。
マスタ装置100aのWebサーバ処理部120は、受信したURLをHTML統合処理部140に出力して、HTML統合処理部140の処理を開始させる。HTML統合処理部140は、仮想的なクライアントとして動作し、各スレーブ装置100bのWebサーバ処理部120、およびマスタ装置100a自身のWebサーバ処理部120に対して、HTTPリクエストを分配する。
スレーブ装置100bのWebサーバ処理部120は、マスタ装置100aからHTTPリクエストを受信すると、要求された処理をメンテナンス処理部130に実行させる。そして、スレーブ装置100bのWebサーバ処理部120は、処理結果を含むHTMLデータを作成して、マスタ装置100aに返信する。すなわち、スレーブ装置100bのWebサーバ処理部120は、マスタ装置100aを仮想的なクライアントと認識して、前述したWebサーバとしての基本機能のみを果たす。
一方、マスタ装置100aにおいては、HTML統合処理部140から出力された自装置宛てのHTTPリクエストを、Webサーバ処理部120が受信する。マスタ装置100aのWebサーバ処理部120は、HTML統合処理部140からのHTTPリクエストに応じた処理をメンテナンス処理部130に実行させ、処理結果を含むHTMLデータを作成して、HTML統合処理部140に返信する。すなわち、マスタ装置100aのWebサーバ処理部120は、HTML統合処理部140を仮想的なクライアントと認識して、前述したWebサーバとしての基本機能を果たす。
HTML統合処理部140は、各スレーブ装置100bおよび自装置のWebサーバ処理部120から返信されたHTMLデータを、それらのHTMLデータに記述された変換キーワードに基づいて、1つのHTMLデータに変換する。HTML統合処理部140は、変換された1つのHTMLデータをWebサーバ処理部120に出力し、Webサーバ処理部120は、そのHTMLデータをHTTPレスポンスとして管理端末300に送信する。これにより、管理端末300のWebブラウザ処理部310は、各テープライブラリ装置100における処理結果を1つの画面上に集約して表示させることが可能となる。
なお、HTML統合処理部140は、HTTPリクエストを各スレーブ装置100bおよび自装置へ分配する際に、システム構成情報152を参照することで、分配すべき各装置を認識する。システム構成情報152には、マスタ装置100aに接続されている各スレーブ装置100bのIPアドレスが登録されている。これらのIPアドレスは、例えば、マスタ装置100aの電源投入直後に、各スレーブ装置100bから収集されて登録される。
前述のように、管理端末300からマスタ装置100aへ送信されるHTTPリクエストでは、URLにホスト名が記述される。HTML統合処理部140は、管理端末300から受信したHTTPリクエストに含まれるURLのホスト名を、システム構成情報152に基づき、分配先の各装置のIPアドレスに書き替え、書き替え後のHTTPリクエストをネットワーク52に送信する。
これにより、管理端末300からの1回のHTTPリクエストに応じて、各テープライブラリ装置100に対して同じ処理が要求される。これとともに、スレーブ装置100bは、マスタ装置100aからのHTTPリクエストであることを認識して、スレーブ装置100bとして動作できるようになる。
さらに、各テープライブラリ装置100は、IPアドレスが記述されたURLを含むHTTPリクエストを受信することで、それぞれ単体で(すなわち、管理端末300から直接的にアクセスを受けて)動作することが可能になる。換言すると、テープライブラリ装置100は、スレーブ装置100bとして動作するとき、管理端末300からHTTPリクエストを直接的に受信する場合と、マスタ装置100aのHTML統合処理部140によって仮想的に実現されるクライアントからHTTPリクエストを受信する場合とで、同じ処理を実行する。これにより、テープライブラリ装置100に実装するプログラムを変えることなく、テープライブラリ装置100を複数連結して運用することも、あるいはテープライブラリ装置100を単体で運用することもできるようになり、プログラムの開発工数や装置の製造コストを削減することができる。
図8は、HTML統合処理部の内部構成を示すブロック図である。HTML統合処理部140は、制御部141、HTTPクライアント処理部142、HTML変換処理部143およびサブミット処理部144を有する。なお、サブミット処理部144の処理は、所定のCGIプログラムによって実現される。
また、HTML統合処理部140は、RAM102の記憶領域に受信バッファ161、中間バッファ162および送信バッファ163を確保する。受信バッファ161および中間バッファ162は、それぞれ連結されたテープライブラリ装置100の数だけ確保される。
制御部141は、管理端末300から受信したURLをWebサーバ処理部120から受け取ると、HTTPクライアント処理部142を起動する。HTTPクライアント処理部142は、テープライブラリ装置100の数だけ起動され、制御部141は、各HTTPクライアント処理部142に対して、受け取ったURLと、各テープライブラリ装置100のIPアドレスとを渡す。
HTTPクライアント処理部142は、対応するテープライブラリ装置100に対する仮想的なクライアントとして動作する。HTTPクライアント処理部142は、受け取ったURLにおけるホスト名を、制御部141から渡されたIPアドレスに書き替え、書き替え後のURLを含むHTTPリクエストを、対応するテープライブラリ装置100に出力する。
ここで、対応するテープライブラリ装置100が自装置以外、すなわちスレーブ装置100bである場合、HTTPリクエストは対応するスレーブ装置100bへ送信され、送信先のスレーブ装置100bのWebサーバ処理部120に受信される。一方、対応するテープライブラリ装置100が自装置である場合、HTTPリクエストは自装置、すなわちマスタ装置100aのWebサーバ処理部120へ出力される。
HTTPクライアント処理部142は、出力先のWebサーバ処理部120から返送されたHTMLデータを、出力先装置に対応する受信バッファ161へそれぞれ格納する。制御部141は、各HTTPクライアント処理部142によるHTMLデータの格納が完了すると、HTML変換処理部143にHTMLデータの変換処理を実行させる。
HTML変換処理部143は、受信バッファ161に格納されたHTMLデータを読み出し、記述されている変換メッセージに応じた変換方法で、各受信バッファ161のHTMLデータを1つのHTMLデータに変換し、送信バッファ163に格納する。
また、HTML変換処理部143は、変換の過程で中間バッファ162を利用する。例えば、HTML変換処理部143は、ある受信バッファ161から読み出したHTMLデータの一部を、同じ装置に対応する中間バッファ162に一時的に格納する。
サブミット処理部144は、管理端末300のWebブラウザ処理部310がサブミット(Submit)操作を受け付けた場合に、Webサーバ処理部120によって起動される。具体的には、サブミット操作が行われてフォームへの入力内容が送信されると、Webサーバ処理部120は、受信したURLに記述されたCGIプログラムを実行させる。これによりサブミット処理部144が起動する。
サブミット処理部144は、受信したURLに記述されたCGIプログラムの名称を変換する。なお、詳しくは後述するが、変換後のCGIプログラムの名称は、フォーム画面を表示させるために各テープライブラリ装置100から出力されたHTMLデータにおいて、HTML変換処理部143によって変換される前に記述されていたCGIプログラムの名称である。
サブミット処理部144は、HTTPクライアント処理部142をテープライブラリ装置100の数だけ起動し、各HTTPクライアント処理部142に対して、プログラム名を変換したURLと、各テープライブラリ装置100のIPアドレスとを渡す。
次に、図9は、管理端末からマスタ装置へHTTPリクエストが送信された場合の処理の流れの例を示すシーケンス図である。この図9では、例として、マスタ装置100aに2台のスレーブ装置100bが接続されているものとする。
管理端末300のWebブラウザ処理部310は、管理者の入力操作に応じてHTTPリクエストを送信する(ステップS11)。このとき、URLには、テープライブラリ装置100のうちの1つ(すなわち、マスタ装置100a)のホスト名が指定される。
マスタ装置100aのWebサーバ処理部120は、管理端末300からの自装置宛てのHTTPリクエストを受信する。このとき、Webサーバ処理部120は、URLに自装置のホスト名が記述されていることで、自装置をマスタ装置100aとして動作させると判定する。この判定に基づき、マスタ装置100aのWebサーバ処理部120は、受信したHTTPリクエストに含まれるURLを、処理のパラメータとしてHTML統合処理部140の制御部141に通知する(ステップS12)。
制御部141は、システム構成情報152に登録された装置の数だけ、すなわち、自装置を含むテープライブラリ装置100の数だけ、HTTPクライアント処理部142を起動する。これにより、テープライブラリ装置100ごとに個別のHTTPクライアントプロセスの実行が開始される。このとき、制御部141は、起動したHTTPクライアント処理部142のそれぞれに対して、Webサーバ処理部120から通知されたURLを転送する。これとともに、制御部141は、起動したHTTPクライアント処理部142のそれぞれに対して、システム構成情報152に登録された各装置のIPアドレスの中から、それぞれ異なるIPアドレスを通知する(ステップS13)。
各HTTPクライアント処理部142は、対応するテープライブラリ装置100へリクエストを発行する仮想的なクライアントとして動作する。具体的には、各HTTPクライアント処理部142は、制御部141から通知されたURLにおけるホスト名を、制御部141から通知された、対応する装置のIPアドレスに書き替える。そして、各HTTPクライアント処理部142は、書き替え後のURLを含むHTTPリクエストを、対応する装置のWebサーバ処理部120に出力する(ステップS14)。対応する装置が他のテープライブラリ装置100、すなわちスレーブ装置100bである場合、HTTPリクエストは、対応するスレーブ装置100bのWebサーバ処理部120へ、ネットワーク52を介して送信される。また、対応する装置が自装置である場合、HTTPリクエストは、自装置すなわちマスタ装置100aのWebサーバ処理部120へ通知される。
スレーブ装置100bのWebサーバ処理部120は、自装置宛てのHTTPリクエストに含まれるURLに自装置のIPアドレスが記述されていることで、自装置をスレーブ装置100bとして動作させると判定する。この場合、各スレーブ装置100bのWebサーバ処理部120は、自装置のメンテナンス処理部130に要求された処理を実行させ、処理結果を記述したHTMLデータを作成する(ステップS15)。また、マスタ装置100aのWebサーバ処理部120も同様に、自装置のメンテナンス処理部130に要求された処理を実行させ、処理結果を記述したHTMLデータを作成する(ステップS15)。
ここで、ステップS14で各テープライブラリ装置100に出力されるHTTPリクエストは、同じ処理を要求するものである。このため、ステップS15において、各テープライブラリ装置100のWebサーバ処理部120がHTMLデータを作成するために使用するテンプレートは、同じものとなる。また、これらのテンプレートには、同じ位置に同じ変換キーワードが記述されている。
各テープライブラリ装置100のWebサーバ処理部120は、作成したHTMLデータを、マスタ装置100aにおける対応するHTTPクライアント処理部142へ出力する(ステップS16)。スレーブ装置100bのWebサーバ処理部120によって作成されたHTMLデータは、ネットワーク52を介して、マスタ装置100aの対応するHTTPクライアント処理部142へ送信される。また、マスタ装置100aのWebサーバ処理部120によって作成されたHTMLデータは、自装置の対応するHTTPクライアント処理部142へ通知される。
マスタ装置100aの各HTTPクライアント処理部142は、受信したHTMLデータを、対応する受信バッファ161へ格納し、処理の完了を制御部141に通知する(ステップS17)。制御部141は、起動したすべてのHTTPクライアント処理部142から処理の完了通知を受けると、HTML変換処理部143を起動する(ステップS18)。
HTML変換処理部143は、受信バッファ161に格納されたHTMLデータを参照し、HTMLデータに記述された変換キーワードに基づいて、これらのHTMLデータを変換し、1つのHTMLデータに統合する(ステップS19)。この処理において、HTML変換処理部143は、必要に応じて中間バッファ162を使用する。そして、HTML変換処理部143は、最終的に、変換されたHTMLデータを送信バッファ163に格納し、処理の完了を制御部141に通知する(ステップS20)。
制御部141は、一連の処理が完了したことをWebサーバ処理部120に通知する(ステップS21)。Webサーバ処理部120は、送信バッファ163から変換後のHTMLデータを読み出し、管理端末300へ送信する(ステップS22)。管理端末300のWebブラウザ処理部310は、受信したHTMLデータに基づくWeb画像を表示装置304aに表示させる。このとき、各テープライブラリ装置100における処理結果が1つのWeb画面上に集約して表示される。
次に、HTML統合処理部140のHTML変換処理部143の処理について説明する。図10は、HTML変換処理部の処理例を示すフローチャートである。この図10の処理は、図9のステップS19の処理に対応する。
[ステップS101]HTML変換処理部143は、以下の処理で使用するポインタP1〜Pn,Q1〜Qnを、“0”に初期化する。
ここで、ポインタP1〜Pnは、それぞれHTMLデータの送信元の装置に対応する。また、ポインタQ1〜Qnも同様に、それぞれHTMLデータの送信元の装置に対応する。すなわち、nの上限はテープライブラリ装置100の台数に相当する。
そして、ポインタP1〜Pnは、対応する装置のHTMLデータの行のうち、読み出し対象(参照の対象)の行の番号を示す。また、ポインタQ1〜Qnは、対応する装置のHTMLデータの行のうち、バッファへ出力する範囲の先頭の行を保持するために使用される。
なお、添え字“1”〜“n”は、テープライブラリ装置100に個別に付与された識別番号を示すが、どの装置にどの識別番号を付与するかは、HTML変換処理部143が任意に決定できる。
また、以下の説明では、どの装置に対応するポインタかを特に限定しない場合には、ポインタP1〜Pn、ポインタQ1〜Qnを、それぞれ“ポインタP”、“ポインタQ”と表す場合がある。さらに、以下の説明では、各テープライブラリ装置100を、識別番号xを付与した“装置#x”と表す場合がある。例えば、装置#1に対応するポインタP,Qは、それぞれポインタP1,Q1である。
[ステップS102]HTML変換処理部143は、装置#1のポインタP1を“1”だけインクリメントする。
[ステップS103]HTML変換処理部143は、装置#1のHTMLデータのP1行目を読み出す。なお、装置#1のHTMLデータは、装置#1に対応する受信バッファ161に格納されている。
[ステップS104]HTML変換処理部143は、ポインタP1が示す行が存在しないか、すなわち、HTMLデータの終端まですでに読み出し済みかを判定する。読み出し済みである場合、ステップS107の処理が実行され、読み出し済みでない場合、ステップS105の処理が実行される。
[ステップS105]HTML変換処理部143は、ステップS103で読み出された内容が変換キーワードであるかを判定する。変換キーワードである場合、ステップS106の処理が実行され、変換キーワードでない場合、ステップS102の処理に戻る。
[ステップS106]HTML変換処理部143は、読み出された変換キーワードに応じたHTMLデータの変換処理を行う。変換処理の詳細については後述する。変換処理の終了後、ステップS102の処理に戻る。
[ステップS107]HTML変換処理部143は、装置#1のHTMLデータのうち、ポインタQ1が示す行から、ポインタP1の値より“1”小さい行までのデータを、装置#1に対応する受信バッファ161から送信バッファ163へ出力する。
次に、変換キーワードの具体例を挙げて、変換キーワードに応じたHTMLデータの変換処理例について説明する。前述のように、変換キーワードは、コメントの中に“Ex=・・・”と記述される。また、“Ex=END”は、変換範囲の末尾を示す。
まず、変換キーワード“Ex=COLLECT”について説明する。
図11は、“Ex=COLLECT”を含むHTMLデータの変換例を示す図である。なお、図11では、例として、テープライブラリ装置100は2台であるものとする。
図11に示すHTMLデータは、各テープライブラリ装置100に登録された論理ボリュームのボリューム名および容量を、「ボリューム・リスト」としてWeb画面に一覧表示するためのデータである。受信バッファ161aには、装置#1から出力されたHTMLデータが格納され、受信バッファ161bには、装置#2から出力されたHTMLデータが格納されている。
図10のステップS102〜S105の処理の繰り返しにより、装置#1のHTMLデータの1行目から順に変換キーワードの有無が判定され、6行目に変換キーワード“Ex=COLLECT”が記述されていると判定される。変換キーワード“Ex=COLLECT”は、その次の行から始まる変換範囲において、全テープライブラリ装置100から出力されたHTMLデータを結合するように指示するものである。HTML変換処理部143は、装置#1のHTMLデータの1行目から5行目までを送信バッファ163に出力した後、次のような処理を行う。
まず、HTML変換処理部143は、装置#1のHTMLデータのうち、変換キーワード“Ex=COLLECT”が記述された行の次の7行目から、変換キーワード“Ex=End”が記述された行の前の9行目までを、装置#1に対応する中間バッファ162aに出力する。次に、HTML変換処理部143は、装置#2のHTMLデータのうち、変換キーワード“Ex=COLLECT”が記述された行の次の7行目から、変換キーワード“Ex=End”が記述された行の前の8行目までを、装置#2に対応する中間バッファ162bに出力する。
次に、HTML変換処理部143は、中間バッファ162a,162bの内容を順に送信バッファ163に出力する。これにより、装置#1,#2のそれぞれからのHTMLデータのうち、変換範囲のHTMLデータが結合される。この後、HTML変換処理部143は、装置#1のHTMLデータの11行目から最終行までのデータを、送信バッファ163に出力する。このようにして送信バッファ163に格納されたHTMLデータが、変換後のHTMLデータとなる。
図12は、図11に対応するWeb画面の表示例を示す図である。
Web画面401は、装置#1から出力されたHTMLデータに基づいてWebブラウザ上に表示される画面の例である。Web画面401においては、装置#1には論理ボリューム“VOL_001”,“VOL_010”,“VOL_100”が登録され、各論理ボリュームの容量がいずれも100MBであることが表示される。なお、これらの論理ボリューム名および容量の値は、装置#1のメンテナンス処理部130によって抽出されたものである。
また、Web画面402は、装置#2から出力されたHTMLデータに基づいてWebブラウザ上に表示される画面の例である。Web画面402においては、装置#2には論理ボリューム“VOL_002”,“VOL_020”が登録され、各論理ボリュームの容量がいずれも200MBであることが表示される。なお、これらの論理ボリューム名および容量の値は、装置#2のメンテナンス処理部130によって抽出されたものである。
Web画面403は、図11に示した処理によって変換されたHTMLデータに基づいてWebブラウザ上に表示される画面の例である。Web画面403においては、論理ボリューム“VOL_001”,“VOL_010”,“VOL_100”に関する情報に続いて、論理ボリューム“VOL_002”,“VOL_020”に関する情報が表示される。これにより、管理者は、装置#1,#2のそれぞれに登録された論理ボリュームのボリューム名および容量を1つの画面上で視認でき、例えば、それらを容易に比較したり、全容量を足し合わせることができる。
また、各装置から出力されるHTMLデータにおいては、変換キーワード“Ex=COLLECT”,“Ex=End”の記述位置によって変換範囲が任意に指定される。図11の例では、変換範囲は、“ボリューム名”および“容量”という項目名を表示するための行の次の位置に設定される。このため、変換後のHTMLデータに基づくWeb画面403においては、“ボリューム名”および“容量”という項目名の領域は1つだけ表示され、その後に、装置#1,#2からそれぞれ出力された情報が並列される。
従って、装置#1,#2からそれぞれ出力されたHTMLデータを単に結合した場合と比較して、HTMLデータの高度な変換処理を行うことができる。例えば、無駄な情報を画面上に表示しないようにすることができ、管理者にとって見やすい画面を表示させることができる。また、複数のテープライブラリ装置100についての情報を、あたかも1つのテープライブラリ装置100についての情報を見ているかのように、管理者に見せることができる。
図13は、“Ex=COLLECT”が検知された場合のデータ変換処理例を示すフローチャートである。この図13は、図10のステップS105で変換キーワード“Ex=COLLECT”が検知された場合に、ステップS106で実行される処理を示す。
[ステップS111]HTML変換処理部143は、装置#1のHTMLデータにおけるQ1行目から(P1−1)行目までを、装置#1に対応する受信バッファ161から送信バッファ163へ出力する。
[ステップS112]HTML変換処理部143は、ポインタP1に“1”を加算した値を、ポインタQ1に設定する。
[ステップS113]HTML変換処理部143は、ポインタP1の値を、他のテープライブラリ装置100に対応するポインタP2〜Pnに設定し、ポインタQ1の値を、他のテープライブラリ装置100に対応するポインタQ2〜Qnに設定する。
[ステップS114]HTML変換処理部143は、ループ端であるステップS120までの処理を、テープライブラリ装置100ごとに実行する。なお、処理順は、例えば、テープライブラリ装置100の識別番号順とする。
[ステップS115]HTML変換処理部143は、処理対象の装置に対応するポインタPを“1”だけインクリメントする。例えば、処理対象が装置#2である場合、ポインタP2が“1”だけインクリメントされる。
[ステップS116]HTML変換処理部143は、処理対象の装置のHTMLデータのP行目を読み出す。例えば、処理対象が装置#2である場合、装置#2のHTMLデータのP2行目が読み出される。
[ステップS117]HTML変換処理部143は、ステップS116で読み出された内容が変換キーワード“Ex=END”であるかを判定する。“Ex=END”である場合、ステップS118の処理が実行され、“Ex=END”でない場合、ステップS115の処理に戻る。
[ステップS118]HTML変換処理部143は、処理対象の装置のHTMLデータにおけるQ行目から(P−1)行目までを、この装置に対応する受信バッファ161から、この装置に対応する中間バッファ162へ出力する。例えば、処理対象が装置#2である場合、装置#2のHTMLデータにおけるQ2行目から(P2−1)行目までが、装置#2に対応する受信バッファ161から装置#2に対応する中間バッファ162へ出力される。
[ステップS119]HTML変換処理部143は、処理対象の装置に対応するポインタPに“1”を加算した値を、処理対象の装置に対応するポインタQに設定する。例えば、処理対象が装置#2である場合、(P2+1)の値がポインタQ2に設定される。
[ステップS120]HTML変換処理部143は、すべてのテープライブラリ装置100についての処理が終了すると、ステップS121の処理を実行する。このとき、すべてのテープライブラリ装置100に対応する中間バッファ162に、変換範囲のHTMLデータが格納された状態となる。
[ステップS121]HTML変換処理部143は、各中間バッファ162の内容を、装置の識別番号順に送信バッファ163へ出力する。
次に、変換キーワード“Ex=ONLY_ONE”について説明する。
図14は、“Ex=ONLY_ONE”を含むHTMLデータの変換例を示す図である。なお、図14では、例として、テープライブラリ装置100は2台であるものとする。
図10のステップS102〜S105の処理の繰り返しにより、装置#1のHTMLデータの1行目から順に変換キーワードの有無が判定され、5行目に変換キーワード“Ex=ONLY_ONE”が記述されていると判定される。変換キーワード“Ex=ONLY_ONE”は、その次の行から始まる変換範囲について、装置ごとに内容が同じであるため、それらのうちの1つだけを残すように明示的に指示するものである。
例えば、図14に示すHTMLデータは、装置番号(装置No.)を選択するための「選択メニュー」をWeb画面に表示するためのデータである。「選択メニュー」において選択される装置とは、連結されている各テープライブラリ装置100である。各テープライブラリ装置100のメンテナンス処理部130は、例えば、自装置のシステム構成情報152を参照することで、連結されている各テープライブラリ装置100の識別番号を抽出できるが、各メンテナンス処理部130によって抽出される識別番号(図14では“No.1”,“No.2”)は同じである。このため、「選択メニュー」を表示するためのHTMLデータは1つの装置分だけあればよいことになる。
そこで、HTML変換処理部143は、装置#1のHTMLデータの1行目から4行目までを送信バッファ163に出力した後、次のような処理を行う。HTML変換処理部143は、装置#1のHTMLデータのうち、変換キーワード“Ex=ONLY_ONE”が記述された行の次の6行目から、変換キーワード“Ex=End”が記述された行の前の9行目までを、装置#1に対応する中間バッファ162aに出力する。また、HTML変換処理部143は、他の装置#2に対応するHTMLデータについての処理をスキップして、中間バッファ162aの内容を送信バッファ163へ出力する。これにより、変換範囲のHTMLデータについては、装置#1のデータのみが変換後のHTMLデータに残る。この後、HTML変換処理部143は、装置#1のHTMLデータの11行目から最終行までのデータを、送信バッファ163に出力する。
図15は、図14に対応するWeb画面の表示例を示す図である。
Web画面411は、装置#1から出力されたHTMLデータに基づいてWebブラウザ上に表示される選択メニュー画面の例である。Web画面411には、情報表示部411aとボタン411bとが表示される。図示しないが、ボタン411bに対するマウスクリック操作が行われると、選択肢が一覧表示された、いわゆる“プルダウンメニュー”が表示される。そして、選択肢の中からマウス操作によって選択された情報が、情報表示部411aに表示される。この例では、プルダウンメニューは、選択肢として、システム内で連結されている各テープライブラリ装置100の識別情報が表示される。
Web画面412は、装置#2から出力されたHTMLデータに基づいてWebブラウザ上に表示される選択メニュー画面の例である。Web画面412には、Web画面411と同様に、情報表示部412aとボタン412bとが表示される。また、ボタン412bに対するマウスクリック操作によって表示されるプルダウンメニューには、選択肢として、Web画面411と同様にシステム内で連結されている各テープライブラリ装置100の識別情報が表示される。
このように、装置#1,#2のそれぞれから出力されるHTMLデータは同じ選択メニュー画面を表示させるものであるので、これらのHTMLデータを単純に連結させてしまうと、連結後のHTMLデータに基づく画面には全く同じ選択メニューが2つ表示されてしまう。これに対して、HTMLデータに変換キーワード“Ex=ONLY_ONE”を記述しておくことにより、図15のWeb画面413に示すように、選択メニューが1つだけ表示されるように、HTMLデータを1つに統合することができる。
図16は、“Ex=ONLY_ONE”が検知された場合のデータ変換処理例を示すフローチャートである。この図16は、図10のステップS105で変換キーワード“Ex=ONLY_ONE”が検知された場合に、ステップS106で実行される処理を示す。
[ステップS131]HTML変換処理部143は、装置#1のHTMLデータにおけるQ1行目から(P1−1)行目までを、装置#1に対応する受信バッファ161から送信バッファ163へ出力する。
[ステップS132]HTML変換処理部143は、ポインタP1に“1”を加算した値を、ポインタQ1に設定する。
[ステップS133]HTML変換処理部143は、ポインタP1を“1”だけインクリメントする。
[ステップS134]HTML変換処理部143は、装置#1のHTMLデータのP1行目を読み出す。
[ステップS135]HTML変換処理部143は、ステップS134で読み出された内容が変換キーワード“Ex=END”であるかを判定する。“Ex=END”である場合、ステップS136の処理が実行され、“Ex=END”でない場合、ステップS133の処理に戻る。
[ステップS136]HTML変換処理部143は、装置#1のHTMLデータにおけるQ1行目から(P1−1)行目までを、装置#1に対応する受信バッファ161から装置#1に対応する中間バッファ162へ出力する。
[ステップS137]HTML変換処理部143は、ポインタP1に“1”を加算した値を、ポインタQ1に設定する。
[ステップS138]HTML変換処理部143は、中間バッファ162の内容を、装置の識別番号順に送信バッファ163へ出力する。
なお、図16の処理例では、変換範囲のHTMLデータを一旦中間バッファ162に格納した後、送信バッファ163へ出力したが、変換範囲のHTMLデータを送信バッファ163へ直接出力してもよい。
次に、変換キーワード“Ex=SUBMIT”と、これに関連する変換キーワードについて説明する。変換キーワード“Ex=SUBMIT”は、フォーム画面を表示するためのHTMLデータに記述される。
図17は、フォーム画面の表示例を示す図である。フォーム画面は、入力された情報を表示する入力情報領域と、入力された情報の送信を要求するための送信ボタンとを含む。図17に示すフォーム画面421は、例として、2つの入力情報領域421a,421bと、送信ボタン421cとを含む。
入力情報領域421a,421bに情報が入力され、送信ボタン421cに対するマウスクリック操作、すなわちサブミット操作が行われると、入力情報領域421a,421bに入力された情報と、呼び出すべきCGIプログラムのプログラム名が記述されたURLとを含むHTTPリクエストが、Webサーバへ送信される。
サブミット操作が行われたときに呼び出されるCGIプログラムのプログラム名は、フォーム画面421を表示するための元のHTMLデータに記述されている。変換キーワードの一例として、このようにリクエスト時に呼び出すべきCGIプログラムのプログラム名が記述されたHTMLデータについて、そのプログラム名を任意のプログラム名に変更するという変換方法を指定することが可能である。
HTMLデータに記述されたプログラム名を変更することで、管理端末300からHTTPリクエストを受信したマスタ装置100aが、元々指定されていたCGIプログラムではなく、任意のCGIプログラムを呼び出すようにすることができる。変換キーワード“Ex=SUBMIT”は、このように呼び出すべきCGIプログラムのプログラム名を変更するという変換方法を指定する変換キーワードの例である。
図18は、“Ex=SUBMIT”を含むHTMLデータの変換例を示す図である。なお、図18では、例として、テープライブラリ装置100は2台であるものとする。
図18に示すHTMLデータは、図17に示したフォーム画面421をWebブラウザ上に表示するためのデータである。受信バッファ161aには、装置#1から出力されたHTMLデータが格納され、受信バッファ161bには、装置#2から出力されたHTMLデータが格納されている。
図10のステップS102〜S105の処理の繰り返しにより、装置#1のHTMLデータの1行目から順に変換キーワードの有無が判定され、4行目に変換キーワード“Ex=SUBMIT”が記述されていると判定される。変換キーワード“Ex=SUBMIT”は、その次の行から始まる変換範囲において、呼び出すべきCGIプログラムのプログラム名を所定のプログラム名に書き替えるように指示するものである。
装置#1のHTMLデータにおいては、変換キーワード“Ex=SUBMIT”が記述された行の次の行に、呼び出すべきCGIプログラムのプログラム名として“example.cgi”が記述されている。HTML変換処理部143は、プログラム名“example.cgi”を、あらかじめ決められた“_SubmitProgram.cgi”に書き替えて、送信バッファ163に出力する。
さらに、HTML変換処理部143は、プログラム名を書き替えた行の次の行に、書き替え後のプログラム名に対応するCGIプログラムの実行時に引き渡すパラメータを記述した文を追加する。図18の例では、パラメータとして、変換前のプログラム名“example.cgi”を記述した文が追加される。なお、以上のプログラム名の書き替えおよび新たな文の追加は、装置#1のHTMLデータに対してのみ行われる。
また、図18では、変換キーワード“Ex=SUBMIT”に関連する変換キーワードとして、“Ex=SUBMIT_ARG_SAME”および“Ex=SUBMIT_ARG_INCREMENT”を例示している。
変換キーワード“Ex=SUBMIT_ARG_SAME”は、変換範囲におけるHTMLデータの変換が不要であることを明示的に指示するものである。従って、図18の例では、装置#1のHTMLデータにおける8行目の文が、そのまま送信バッファ163に出力される。
変換キーワード“Ex=SUBMIT_ARG_INCREMENT”は、対応する入力情報領域に入力された値を、各テープライブラリ装置100へ転送する際に“1”ずつインクリメントさせるように、文を変換することを指示するものである。具体的には、対応する行の文において、書き替え後のプログラム名に対応するCGIプログラムの実行時に引き渡すパラメータが追加される。図18の例では、パラメータとして、「装置No.」の入力情報領域に入力された値をインクリメントするように指示するための“value=Increment”が追加される。なお、以上のパラメータの追加は、装置#1のHTMLデータに対してのみ行われる。
図19は、“Ex=SUBMIT”が検知された場合のデータ変換処理例を示すフローチャートである。この図19は、図10のステップS105で変換キーワード“Ex=SUBMIT”が検知された場合に、ステップS106で実行される処理を示す。
[ステップS141]HTML変換処理部143は、装置#1のHTMLデータにおけるQ1行目から(P1−1)行目までを、装置#1に対応する受信バッファ161から送信バッファ163へ出力する。
[ステップS142]HTML変換処理部143は、ポインタP1に“1”を加算した値を、ポインタQ1に設定する。
[ステップS143]HTML変換処理部143は、ポインタP1を“1”だけインクリメントする。
[ステップS144]HTML変換処理部143は、装置#1のHTMLデータのP1行目を読み出す。
[ステップS145]HTML変換処理部143は、ステップS144で読み出された内容が、フォーム要素の属性を指定する文であるかを判定する。フォーム要素の属性を指定する文である場合、ステップS146の処理が実行され、フォーム要素の属性を指定する文でない場合、ステップS143の処理に戻る。
[ステップS146]HTML変換処理部143は、装置#1のHTMLデータにおけるQ1行目から(P−1)行目までを、装置#1に対応する受信バッファ161から送信バッファ163へ出力する。
[ステップS147]HTML変換処理部143は、装置#1のHTMLデータのP1行目の文のうち、アクション属性として記述されたプログラム名を、“_SubmitProgram.cgi”に書き替える。HTML変換処理部143は、書き替え後の文を送信バッファ163へ出力する。
[ステップS148]HTML変換処理部143は、書き替え後のプログラム名に対応するCGIプログラムの実行時に引き渡すパラメータを記述した文を生成し、その文を送信バッファ163へ出力する。これにより、生成された文が追加される。追加される文においては、value属性として、ステップS147でP1行目の文に記述されていたプログラム名が設定される。
[ステップS149]HTML変換処理部143は、ポインタP1に“1”を加算した値を、ポインタQ1に設定する。
[ステップS150]HTML変換処理部143は、ポインタP1を“1”だけインクリメントする。
[ステップS151]HTML変換処理部143は、装置#1のHTMLデータのP1行目を読み出す。
[ステップS152]HTML変換処理部143は、ステップS151で読み出された内容が変換キーワード“Ex=END”であるかを判定する。“Ex=END”である場合、ステップS153の処理が実行され、“Ex=END”でない場合、ステップS150の処理に戻る。
[ステップS153]HTML変換処理部143は、装置#1のHTMLデータにおけるQ1行目から(P1−1)行目までを、装置#1に対応する受信バッファ161から送信バッファ163へ出力する。
[ステップS154]HTML変換処理部143は、ポインタP1に“1”を加算した値を、ポインタQ1に設定する。
なお、図10のステップS105で、変換キーワード“Ex=SUBMIT_ARG_SAME”が検知された場合には、図16と同様の処理が行われる。
また、図10のステップS105で、変換キーワード“Ex=SUBMIT_ARG_INCREMENT”が検知された場合には、図19のフローチャートを次のように変更した処理が行われる。
ステップS145では、ステップS144で読み出された内容が、input要素の属性を指定する文であるかが判定される。ステップS147では、P1行目の文が、書き替えられずにそのまま送信バッファ163へ出力される。ステップS148では、P1行目の文と同様の要素、すなわちinput要素の属性を指定する文が追加される。追加される文においては、type属性として“hidden”が設定され、name属性として、P1行目の文に記述されていたname属性と同じことを示す“__no__”が設定され、value属性として、入力値のインクリメントを指示する“Increment”が設定される。
次に、図18のように変換されたHTMLデータが管理端末300に送信され、このHTMLデータに基づくフォーム画面が管理端末300で表示された状態から、サブミット操作が行われた場合の処理について、図20を用いて説明する。
図20は、サブミット操作に応じてHTTPリクエストが送信された場合の処理の流れの例を示すシーケンス図である。この図20では、例として、マスタ装置100aに2台のスレーブ装置100bが接続されているものとする。
管理端末300のWebブラウザ処理部310は、送信ボタンへのマウスクリック操作(サブミット操作)に応じてHTTPリクエストを送信する(ステップS31)。
このとき、HTTPリクエストに含まれるURLには、テープライブラリ装置100のうちの1つ(すなわち、マスタ装置100a)のホスト名が指定される。また、このURLには、CGIプログラムのプログラム名として、図19のステップS147で書き替えられた“SubmitProgram.cgi”が設定される。
さらに、送信されるHTTPリクエストにおいては、URLで指定されたCGIプログラムに対する引数として、図19のステップS148で追加された文に基づくプログラム名“example.cgi”が設定される。また、HTTPリクエストにおいては、「装置No.」の入力情報領域421bに入力された値に対応する引数として“Increment”が設定される。
マスタ装置100aのWebサーバ処理部120は、管理端末300からの自装置宛てのHTTPリクエストを受信する。このとき、Webサーバ処理部120は、URLに自装置のホスト名が記述されていることで、自装置をマスタ装置100aとして動作させると判定する。これとともに、Webサーバ処理部120は、URLに、サブミット処理部144の処理を実現するCGIプログラムのプログラム名、すなわち“SubmitProgram.cgi”が設定されていることを検知すると、このCGIプログラムを呼び出す(ステップS32)。これにより、サブミット処理部144が起動する。
サブミット処理部144は、受信したURLに設定されているプログラム名を、引数として設定されていたプログラム名“example.cgi”に書き替える(ステップS33)。そして、サブミット処理部144は、システム構成情報152に登録された装置の数だけ、すなわち、自装置を含むテープライブラリ装置100の数だけ、HTTPクライアント処理部142を起動させる(ステップS34)。
各HTTPクライアント処理部142をさせたとき、サブミット処理部144は、起動した各HTTPクライアント処理部142に、プログラム名を書き替えたURLを通知する。また、サブミット処理部144は、起動したHTTPクライアント処理部142のそれぞれに対して、システム構成情報152に登録された各装置のIPアドレスの中から、それぞれ異なるIPアドレスを通知する。さらに、サブミット処理部144は、引数“Increment”に基づき、受信したHTTPリクエストに含まれる、「装置No.」の入力情報領域に入力された値を、“1”ずつインクリメントしながら、各HTTPクライアント処理部142に順に通知する。
サブミット処理部144はさらに、制御部141に対して処理が終了したことを通知する(ステップS35)。通知を受けた制御部141は、起動した各HTTPクライアント処理部142からの応答を待つ状態になる。
各HTTPクライアント処理部142は、対応するテープライブラリ装置100へリクエストを発行する仮想的なクライアントとして動作する。すなわち、各HTTPクライアント処理部142は、サブミット処理部144から通知されたURLにおけるホスト名を、サブミット処理部144から通知された、対応する装置のIPアドレスに書き替える。そして、各HTTPクライアント処理部142は、書き替え後のURLを含むHTTPリクエストを、対応する装置のWebサーバ処理部120に出力する(ステップS36)。
ここで、出力されるHTTPリクエストにおいては、出力先の装置ごとに、「装置No.」の入力情報領域に入力された値が異なるものとなる。例えば、図17のフォーム画面421において、「装置名」の入力情報領域421aに“xxx”と入力され、「装置No.」の入力情報領域421bに“1”と入力された場合には、「装置名」に対応する入力情報としては、すべてのテープライブラリ装置100へ同じ値が送信される。一方、「装置No.」に対応する入力値としては、装置#1に対して値“1”が送信され、装置#2に対して値“2”が送信され、装置#3に対して値“3”が送信されるというように、“1”ずつインクリメントされた値がテープライブラリ装置100ごとに送信される。これにより、各テープライブラリ装置100に対して同じ装置名を設定するように要求されるようになる。
スレーブ装置100bのWebサーバ処理部120は、URLに自装置のIPアドレスが設定されたHTTPリクエストを受信すると、自装置のメンテナンス処理部130に要求された処理を実行させる。マスタ装置100aのWebサーバ処理部120も同様に、自装置のメンテナンス処理部130に要求された処理を実行させる。
各テープライブラリ装置100のメンテナンス処理部130は、入力された装置名と装置番号とを対応付けて設定する。各テープライブラリ装置100では、メンテナンス処理部130による設定処理が完了すると、Webサーバ処理部120が、設定完了を示すWeb画面を表示するためのHTMLデータを作成する(ステップS37)。なお、各テープライブラリ装置100のWebサーバ処理部120によって、HTMLデータを作成するための使用されるテンプレートは、同じものとなる。
各テープライブラリ装置100のWebサーバ処理部120は、作成したHTMLデータを、マスタ装置100aにおける対応するHTTPクライアント処理部142へ出力する(ステップS38)。マスタ装置100aの各HTTPクライアント処理部142は、受信したHTMLデータを、対応する受信バッファ161へ格納し、処理の完了を制御部141に通知する(ステップS39)。
制御部141が、起動したすべてのHTTPクライアント処理部142から処理の完了通知を受けた後の処理は、図9のステップS18以降の処理と基本的に同じである。すなわち、HTML変換処理部143が起動し、HTMLデータに記述された変換キーワードに基づいて、1つのHTMLデータに統合される。そして、統合されたHTMLデータが管理端末300へ送信される。これにより、管理端末300のWebブラウザ上では、各テープライブラリ装置100における処理結果が1つのWeb画面上に集約して表示される。
以上説明した第2の実施の形態では、マスタ装置100aは、各テープライブラリ装置100から出力されるHTMLデータを、各HTMLデータに埋め込まれた変換キーワードに基づいて1つに統合する。これにより、管理者は、各テープライブラリ装置100に対して要求した処理の結果を、統合された1つのHTMLデータに基づいて表示される同一の画面上で閲覧することが可能になる。
また、変換キーワードが埋め込まれた位置によって、HTMLデータにおける変換範囲が指定され、マスタ装置100aは、HTMLデータにおける指定された変換範囲を、変換キーワードによって指定される変換方法を用いて変換処理を行う。これにより、各HTMLデータを単に結合した場合とは異なる、HTMLデータの高度な変換処理が可能になる。
また、前述した参考例1のように管理端末300が各テープライブラリ装置100に直接アクセスする構成と比較した場合に、少なくともスレーブ装置100bに備えるべき処理機能には変化がない。また、マスタ装置100aに関しては、Webサーバ処理部120にマスタ装置100aとして動作することを判断する機能を付加するとともに、HTML統合処理部140の処理機能を実現するプログラムを追加するだけで済む。従って、テープライブラリ装置100の開発工数を削減することができる。さらに、各テープライブラリ装置100は、連結した状態だけでなく、管理端末300から個別にアクセスを受けて動作することも可能であるので、汎用性も向上する。
なお、上記の各実施の形態に示した装置(情報処理装置1a〜1c、表示端末装置10、テープライブラリ装置100、管理端末300)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 情報を表示するための表示データを複数の装置から取得するデータ取得部と、
前記複数の装置から取得した表示データを、各表示データに付加された付加情報に基づく変換方法で1つの表示データに変換し、変換後の表示データを表示端末装置に送信するデータ変換部と、
を有することを特徴とする情報処理装置。
(付記2) 前記データ変換部は、前記複数の装置から取得した各表示データにおける、各表示データに付加された同じ前記付加情報に基づく変換範囲のデータを、当該付加情報に基づく変換方法で変換することを特徴とする付記1記載の情報処理装置。
(付記3) 前記データ変換部は、前記複数の装置から取得した各表示データにおける、各表示データに付加された同じ前記付加情報に基づく変換範囲のデータを、当該付加情報に基づく変換方法で変換して変換データを作成し、前記複数の装置のうちの1つから取得した表示データにおける当該付加情報に基づく変換範囲のデータを、前記変換データで置換することにより、前記表示端末装置に送信する1つの表示データを作成することを特徴とする付記2記載の情報処理装置。
(付記4) 前記付加情報の1つは、前記複数の装置から取得した各表示データにおける、当該付加情報に基づく変換範囲のデータを結合するように指示する情報であることを特徴とする付記3記載の情報処理装置。
(付記5) 前記付加情報の1つは、前記複数の装置から取得した各表示データにおける、当該付加情報に基づく変換範囲のデータの少なくとも1つに、所定のデータを追加するように指示する情報であることを特徴とする付記3記載の情報処理装置。
(付記6) 前記付加情報の1つは、前記複数の装置のうちの1つから取得した表示データにおける、当該付加情報に基づく変換範囲に含まれる特定の情報を、あらかじめ決められた他の情報に置き換えるように指示する情報であることを特徴とする付記3記載の情報処理装置。
(付記7) 前記複数の装置から取得した各表示データが、入力操作を受け付ける操作画面を表示するためのデータであり、取得した各表示データに、前記操作画面に対する入力操作に応じて実行を要求するプログラムの名称が含まれる場合に、前記データ変換部は、取得した各表示データに付加された前記付加情報に基づき、前記複数の装置のうちの1つから取得した表示データにおける、当該付加情報に基づく変換範囲に含まれる前記プログラムの名称を、あらかじめ決められた他のプログラムの名称に置き換えることを特徴とする付記3記載の情報処理装置。
(付記8) 前記データ取得部は、前記表示端末装置から受信した処理要求を前記複数の装置に分配し、前記複数の装置のそれぞれから、分配された処理要求に応じて実行された処理の結果を表示するための表示データを取得することを特徴とする付記1〜7のいずれか1つに記載の情報処理装置。
(付記9) 前記変換部は、前記複数の装置から取得した表示データを、取得した各表示データに付加された前記付加情報に基づき、前記複数の装置でそれぞれ実行された処理の結果を示す情報を並べて表示させる1つの表示データに変換することを特徴とする付記8記載の情報処理装置。
(付記10) 前記複数の装置のうちの1つは前記情報処理装置であり、前記複数の装置のうちの残りはそれぞれ他の情報処理装置であり、
前記データ取得部は、前記表示端末装置から受信した処理要求を、前記情報処理装置と前記他の情報処理装置のそれぞれとに分配し、前記情報処理装置と前記他の情報処理装置のそれぞれとから、分配された処理要求に応じて実行された処理の処理結果を表示するための表示データを取得する、
ことを特徴とする付記1〜7のいずれか1つに記載の情報処理装置。
(付記11) 前記付加情報は、当該付加情報が付加された表示データに基づく情報の表示処理に影響を与えない情報であることを特徴とする付記1〜10のいずれか1つに記載の情報処理装置。
(付記12) 複数の情報処理装置を有する情報処理システムにおける情報処理方法であって、
前記複数の情報処理装置のうち、一の情報処理装置が、
情報を表示するための表示データを他の情報処理装置のそれぞれと当該一の情報処理装置の内部とから取得し、
前記取得した各表示データを、各表示データに付加された付加情報に基づく変換方法で1つの表示データに変換し、変換後の表示データを表示端末装置に送信する、
ことを特徴とする情報処理方法。
(付記13) 前記表示データの変換では、前記取得した各表示データにおける、各表示データに付加された同じ前記付加情報に基づく変換範囲のデータを、当該付加情報に基づく変換方法で変換することを特徴とする付記12記載の情報処理方法。
(付記14) 前記表示データの変換では、前記取得した各表示データにおける、各表示データに付加された同じ前記付加情報に基づく変換範囲のデータを、当該付加情報に基づく変換方法で変換して変換データを作成し、前記取得した各表示データのうちの1つにおける当該付加情報に基づく変換範囲のデータを、前記変換データで置換することにより、前記表示端末装置に送信する1つの表示データを作成することを特徴とする付記13記載の情報処理方法。
(付記15) 前記付加情報の1つは、前記取得した各表示データにおける、当該付加情報に基づく変換範囲のデータを結合するように指示する情報であることを特徴とする付記14記載の情報処理方法。
(付記16) 前記付加情報の1つは、前記取得した各表示データにおける、当該付加情報に基づく変換範囲のデータの少なくとも1つに、所定のデータを追加するように指示する情報であることを特徴とする付記14記載の情報処理方法。
(付記17) 前記付加情報の1つは、前記取得した各表示データのうち1つにおける、当該付加情報に基づく変換範囲に含まれる特定の情報を、あらかじめ決められた他の情報に置き換えるように指示する情報であることを特徴とする付記14記載の情報処理方法。
(付記18) 前記表示データの取得では、前記表示端末装置から受信した処理要求を他の情報処理装置のそれぞれと前記一の情報処理装置とに分配し、分配先の情報処理装置のそれぞれから、分配された処理要求に応じて実行された処理の結果を表示するための表示データを取得することを特徴とする付記12〜17のいずれか1つに記載の情報処理方法。
(付記19) 前記表示データの変換では、前記取得した各表示データを、各表示データに付加された前記付加情報に基づき、前記処理要求の分配先の各情報処理装置でそれぞれ実行された処理の結果を示す情報を並べて表示させる1つの表示データに変換することを特徴とする付記18記載の情報処理方法。
(付記20) コンピュータに、
情報を表示するための表示データを複数の装置から取得し、
前記複数の装置から取得した表示データを、各表示データに付加された付加情報に基づく変換方法で1つの表示データに変換し、変換後の表示データを表示端末装置に送信する、
処理を実行させることを特徴とする情報処理プログラム。