(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、異常が検知された前記産業制御システムを含み前記通信中継装置をゲートウェイとするネットワークゾーンを生成する請求項1から7の何れか一項に記載の通信制御システム。
異常が検知された前記産業制御システムが正常に戻ったことに応じて、前記制御部は、正常に戻った前記産業制御システムと他の前記産業制御システムの間の通信を、前記通信中継装置を介さずに行わせるように切り換える請求項1から8の何れか一項に記載の通信制御システム。
【発明を実施するための形態】
【0009】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0010】
図1は、本実施形態に係るコンピューティングシステム10の機能構成を示す。本実施形態に係るコンピューティングシステム10は、複数の産業制御システム(ICS)20と、ネットワーク22と、通信中継装置30と、監視部32と、制御部34とを備える。
【0011】
産業制御システム20は、一例として、工業システムおよびインフラストラクチャ(交通およびエネルギ等)システム等の各オブジェクトの管理および制御をするシステムである。産業制御システム20は、一例として、オフィス内または家庭内のネットワークに接続された様々なデバイス(例えば電話機およびコピー機、等々)を管理するシステムであってもよい。また、産業制御システム20は、企業等内のネットワークに接続された複数のコンピュータを管理するシステムであってもよいし、データセンタ等のネットワークに接続された多数のサーバを管理するシステムであってもよい。
【0012】
また、複数の産業制御システム20のそれぞれは、一つの大きな産業制御システム内における一部分のシステムであってもよい。例えば、複数の産業制御システム20のそれぞれは、都市全体を管理する産業制御システムを構成する部分的な管理システム(例えば、ビル管理システム、工場管理システム、水道管理システム、および電気管理システム等)であってもよい。
【0013】
複数の産業制御システム20のそれぞれは、一例として、複数の情報処理装置40および中間サーバ42等を備える。複数の情報処理装置40のそれぞれは、プログラムを実行して、データ処理および機器の制御等を行う。複数の情報処理装置40のそれぞれは、コンピュータであってもよいし、機器に組み込まれたデータ処理ユニットであってもよい。複数の情報処理装置40のそれぞれは、一例として、機器を制御するPLC(Programmable Logic Controller)であってもよい。
【0014】
中間サーバ42は、一例として、当該産業制御システム20内の情報処理装置40を制御および管理する。また、中間サーバ42は、一例として、ネットワーク22を介して行われる他の産業制御システム20との間の通信を制御する。
【0015】
ネットワーク22は、複数の産業制御システム20を接続する。例えば、ネットワーク22は、複数の産業制御システム20間でやり取りされるデータを、インターネット等のプロトコルにより伝送する。
【0016】
通信中継装置30は、2以上の産業制御システム20間の通信を中継する。より具体的には、通信中継装置30は、何れかの産業制御システム20で異常が検知された場合において、異常が検知された産業制御システム20と他の産業制御システム20との間の通信を中継する。そして、通信中継装置30は、何れの産業制御システム20においても異常が検知されていない場合には、2以上の産業制御システム20間の通信を中継しない。
【0017】
本実施形態においては、コンピューティングシステム10は、ネットワーク22に接続され、仮想マシンを配置および実行するサーバ装置を更に備える。そして、本実施形態においては、通信中継装置30は、サーバ装置が実行する仮想マシンにより動的に実現される。
【0018】
より具体的には、仮想マシンにより実現された通信中継装置30は、何れの産業制御システム20においても異常が検知されていない場合においては、ネットワーク22上には配置されていない。しかし、仮想マシンにより実現された通信中継装置30は、何れかの産業制御システム20で異常が検知された場合において、適切なソフトウェアのロードおよび設定がされ、異常が検知された産業制御システム20におけるゲートウェイとしてネットワーク22上にプロビジョニングされる。これにより、仮想マシンにより実現された通信中継装置30は、何れかの産業制御システム20で異常が検知された場合において、ネットワーク22上に配置される。
【0019】
そして、仮想マシンにより実現された通信中継装置30は、異常が検知された産業制御システム20が正常となった場合、設定の解除等がされ、ネットワーク22上からデプロビジョニングされる。これにより、仮想マシンにより実現された通信中継装置30は、何れの産業制御システム20においても異常が検知されていない場合において、実行を停止してネットワーク22上から取り外される。
【0020】
なお、サーバのプロビジョニングについては、例えば、仮想サーバを提供するサービス("IBM Smart Business クラウド・サービス"、[online]、IBMホームページ、[2011年3月28日検索]、インターネット〈URL:http://www-935.ibm.com/services/jp/index.wss/summary/its/k311218v05196i57〉)等の技術を用いて実現することができる。
【0021】
監視部32は、複数の産業制御システム20を監視する。より詳しくは、監視部32は、当該コンピューティングシステム10に備えられる複数の産業制御システム20において、異常が発生したかどうかを検知する。
【0022】
制御部34は、監視部32が少なくとも1つの産業制御システム20の異常を検知したことに応じて、異常が検知された産業制御システム20と他の産業制御システム20の間の通信を、通信中継装置30を介して行わせるように切り換える。これにより、通信中継装置30は、通信中継装置30を異常が検知された産業制御システム20のゲートウェイとして機能させることができる。
【0023】
そして、制御部34は、異常が検知された産業制御システム20が正常に戻ったことに応じて、制御部34は、正常に戻った産業制御システム20と他の産業制御システム20の間の通信を、通信中継装置30を介さずに行わせるように切り換える。これにより、通信中継装置30は、正常に戻った産業制御システム20のゲートウェイとして機能していた通信中継装置30をネットワーク22上から取り外すことができる。
【0024】
図2は、本実施形態に係る制御部34における処理フローを示す。まず、ステップS11において、制御部34は、監視部32によって何れかの産業制御システム20において異常が検知されたか否かを判断する。
【0025】
異常が検知されなければ、即ち、全ての産業制御システム20が正常であれば、制御部34は、処理を待機する(S11のNo)。何れかの産業制御システム20において異常が検知された場合、制御部34は、処理をステップS12に進める(S11のYes)。
【0026】
続いて、ステップS12において、制御部34は、検知した異常の内容、異常の箇所および異常のレベル等に応じて、産業制御システム20を復旧するための処理のプランを生成する。制御部34は、一例として、複数のプランを予め記憶しておき、検知した異常の内容、異常の箇所および異常のレベル等に応じて、予め記憶した複数のプランのうち適切なプランを選択する。
【0027】
本実施形態においては、制御部34は、リルーティング、カリング、ディスコネクトおよびシャットダウンのうち何れか一つの処理またはこれらを組み合わせた処理を実行するプランを生成する。リルーティング、カリング、ディスコネクトおよびシャットダウンの処理については、詳細を後述する。
【0028】
続いて、ステップS13において、制御部34は、通信中継装置30をプロビジョニングによりネットワーク22上に配置して、異常が検知された産業制御システム20のゲートウェイとして機能させる。即ち、制御部34は、仮想マシンにより実現された通信中継装置30に、産業制御システム20のゲートウェイとして機能させるためのソフトウェアのロードおよび設定を行い、ロードしたソフトウェアを実行させる。
【0029】
続いて、ステップS14において、制御部34は、異常が検知された産業制御システム20から他の産業制御システム20へと転送されるパケットが全て通信中継装置30を経由するように、異常が検知された産業制御システム20内に設けられたルータ等の設定を変更する。制御部34は、一例として、異常が検知された産業制御システム20内に設けられたルータに対して、異常が検知された産業制御システム20から外部へと出力されるパケットのヘッダに、中継ポイントとして通信中継装置30のアドレスを書き込むように設定する。
【0030】
さらに、制御部34は、他の産業制御システム20から異常が検知された産業制御システム20へと転送されるパケットが全て通信中継装置30を経由するように、他の産業制御システム20のそれぞれ内に設けられたルータ等の設定を変更する。制御部34は、一例として、他の産業制御システム20のそれぞれ内に設けられたルータに対して、異常が検知された産業制御システム20が宛て先として指定されているパケットの中継ポイントを通信中継装置30とするように、ルーティングテーブルを設定する。
【0031】
これにより、制御部34は、異常が検知された産業制御システム20を含むゾーン内の情報処理装置40に対して入出力される全てのデータを、ネットワーク22上に配置した通信中継装置30を経由させることができる。即ち、制御部34は、異常が検知された産業制御システム20を含み通信中継装置30をゲートウェイとするネットワークゾーンを生成することができる。
【0032】
続いて、ステップS15において、制御部34は、通信中継装置30に対して、ステップS12において生成したプランを実行させる。本実施形態においては、制御部34は、通信中継装置30に対して、リルーティング(S21)、カリング(S22)、ディスコネクト(S23)およびシャットダウン(S24)の何れか、または、これらの組み合わせを実行させる。
【0033】
更に、ステップS15においてプランが実行されている間において、制御部34は、異常が検知された産業制御システム20を正常状態に復旧するための他の処理を実行してもよい。例えば、制御部34は、異常の原因が不正なソフトウェア(マルウェア)によるものであれば、マルウェアの検出および排除の処理を実行する。また、例えば、制御部34は、異常の原因が機器の故障等であれば、故障を管理者へと通知して、故障した機器の修理および交換がされるのを待機してもよい。
【0034】
続いて、ステップS16において、制御部34は、検知されていた異常が治癒して正常となったかどうかを判断する。異常が治癒していない場合には(S16のNo)、制御部34は、ステップS15のプランの実行を継続する。
【0035】
正常となった場合には(S16のYes)、制御部34は、ステップS17において、ステップS14で変更したデータのルーティングを元に戻す。より詳しくは、制御部34は、異常が検知された産業制御システム20から他の産業制御システム20へと転送されるパケットが、通信中継装置30を経由しないように、異常が検知された産業制御システム20内に設けられたルータ等の設定を元に戻す。また、制御部34は、他の産業制御システム20から異常が検知された産業制御システム20へと転送されるパケットが通信中継装置30を経由しないように、他の産業制御システム20のそれぞれに設けられたルータ等の設定を元に戻す。
【0036】
続いて、ステップS18において、制御部34は、ネットワーク22上に配置した通信中継装置30を、ネットワーク22上から取り外す。即ち、制御部34は、仮想マシンにより実現された通信中継装置30の実行を停止させて、ネットワーク22上に通信中継装置30が存在しないように通信中継装置30の設定を解除する。
【0037】
このようなコンピューティングシステム10によれば、異常が検知された産業制御システム20と他の産業制御システム20との間に通信中継装置30を動的に配置してネットワーク的に分離することができる。これにより、コンピューティングシステム10によれば、異常が検知された産業制御システム20以外の産業制御システム20に対する影響を少なくしながら、異常が検出された産業制御システム20を適切な手順で復旧することができる。
【0038】
図3は、一部の産業制御システム20に異常が生じた状態における、コンピューティングシステム10の機能構成を示す。監視部32は、一例として、産業制御システム20に入出力されるデータの流量が予め定められた値以上に増加したことを異常として検知する。より具体的には、例えば、監視部32は、ある一の産業制御システム20が、他の産業制御システム20から過剰なサービス要求を受けた場合、過剰なサービス要求を受けた一の産業制御システム20が異常であると検知する。また、反対に、監視部32は、過剰なサービス要求を発生する産業制御システム20を異常であると検知してもよい。
【0039】
また、監視部32は、一例として、ある一の産業制御システム20の応答速度が著しく低下したり、サーバの温度が上昇したりした場合に、産業制御システム20が異常であると検知してもよい。また、監視部32は、一例として、産業制御システム20にマルウェアが存在している場合に、異常として検知してもよい。そして、監視部32は、このような異常を検知した場合、異常を検知した旨および異常の内容等を制御部34に通知する。
【0040】
図4は、通信中継装置30がネットワーク22に配置された状態における、コンピューティングシステム10の機能構成を示す。通信中継装置30は、何れかの産業制御システム20で異常が検知された場合において、制御部34による制御によって、ネットワーク22における指定されたアドレスにプロビジョニングされる。そして、通信中継装置30は、異常が検知された産業制御システム20のゲートウェイとして機能する。
【0041】
即ち、通信中継装置30は、他の産業制御システム20から出力されたデータを一旦取得し、取得したデータを異常が検知された産業制御システム20へと転送する。また、通信中継装置30は、異常が検知された産業制御システム20から出力されたデータを一旦取得し、取得したデータを他の産業制御システム20へと転送する。従って、通信中継装置30は、他の産業制御システム20から異常が検知された産業制御システム20へと過剰なサービス要求が発生された場合には、他の産業制御システム20からの過剰なサービス要求を中継して異常が検知された産業制御システム20へと転送することができる。
【0042】
図5は、通信中継装置30が通信をリルーティングしている状態における、コンピューティングシステム10の機能構成を示す。制御部34は、産業制御システム20に異常が検知された場合、一例として、通信中継装置30にリルーティングを実行させる。リルーティングの実行において、通信中継装置30は、他の産業制御システム20からのサービス要求を、複数の産業制御システム20のうち当該サービス要求を受け付ける代替の産業制御システム20へとルーティングさせる。
【0043】
この場合、通信中継装置30は、一例として、他の産業制御システム20から異常が検知された産業制御システム20へと与えられるサービス要求またはデータを、異常が検出された産業制御システム20と同様のサービスを提供する他の産業制御システム20へと転送する。また、この場合において、通信中継装置30は、一例として、特定の一の産業制御システム20から異常が検知された産業制御システム20へと大量のサービス要求またはデータが与えられている場合には、異常が検知された産業制御システム20へと与えられる全てのサービス要求およびデータのうちのその特定の一の産業制御システム20から発生された大量のサービス要求およびデータの一方を選択して、代替の産業制御システム20へと転送してもよい。
【0044】
これにより、制御部34は、異常が検知された産業制御システム20の処理負荷を軽減させることができる。そして、制御部34は、異常が検知された産業制御システム20の動作を正常に戻すことができる。
【0045】
図6は、通信中継装置30が通信をカリングしている状態における、コンピューティングシステム10の機能構成を示す。制御部34は、産業制御システム20に異常が検知された場合、一例として、通信中継装置30にカリングを実行させる。カリングの実行において、通信中継装置30は、異常が検知された産業制御システム20と他の産業制御システム20との間の通信を制限する。
【0046】
より詳しくは、通信中継装置30は、他の産業制御システム20から異常が検知された産業制御システム20へのサービス要求およびデータの少なくとも一方を間引きする。また、この場合において、通信中継装置30は、一例として、特定の一の産業制御システム20から異常が検知された産業制御システム20へと大量のサービス要求またはデータが与えられている場合には、異常が検知された産業制御システム20へと与えられる全てのサービス要求およびデータのうちのその特定の一の産業制御システム20から発生された大量のサービス要求およびデータの一方を選択して、間引きしてもよい。
【0047】
これにより、制御部34は、異常が検知された産業制御システム20の処理負荷を軽減させることができる。そして、制御部34は、異常が検知された産業制御システム20の動作を正常に戻すことができる。
【0048】
また、通信中継装置30は、一例として、逆方向のサービス要求およびデータの少なくとも一方を間引きしてもよい。即ち、通信中継装置30は、異常が検知された産業制御システム20から他の産業制御システム20へのサービス要求およびデータの少なくとも一方を間引いてもよい。これにより、制御部34は、異常が検知された産業制御システム20からサービス要求またはデータが与えられる産業制御システム20の処理負荷を軽減させることができる。そして、制御部34は、異常が検知された産業制御システム20からサービス要求またはデータが与えられる産業制御システム20の動作を正常に戻すことができる。
【0049】
図7は、通信中継装置30が通信をディスコネクトしている状態における、コンピューティングシステム10の機能構成を示す。制御部34は、産業制御システム20に異常が検知された場合、一例として、通信中継装置30にディスコネクトを実行させる。ディスコネクトの実行において、通信中継装置30は、異常が検知された産業制御システム20と他の産業制御システム20との間の通信を遮断する。
【0050】
この場合、通信中継装置30は、一例として、他の産業制御システム20から異常が検知された産業制御システム20へと与えられるサービス要求またはデータを、異常が検知された産業制御システム20へと転送せずに破棄する。また、通信中継装置30は、一例として、特定の一の産業制御システム20から異常が検知された産業制御システム20へと大量のサービス要求またはデータが与えられている場合には、異常が検知された産業制御システム20へと与えられる全てのサービス要求およびデータのうちのその特定の一の産業制御システム20から発生された大量のサービス要求およびデータの一方を選択して、破棄してもよい。また、この場合、通信中継装置30は、一例として、サービス要求が破棄されたことをシステム既存の仕組みを用いて通知してもよい。
【0051】
これにより、制御部34は、異常が検知された産業制御システム20の処理負荷を軽減させることができる。そして、制御部34は、異常が検知された産業制御システム20の動作を正常に戻すことができる。
【0052】
また、通信中継装置30は、一例として、逆方向のサービス要求およびデータの少なくとも一方を、転送せずに破棄してもよい。即ち、通信中継装置30は、一例として、異常が検知された産業制御システム20から他の産業制御システム20へのサービス要求およびデータの少なくとも一方を破棄してもよい。これにより、制御部34は、異常が検知された産業制御システム20からサービス要求またはデータが与えられる産業制御システム20の処理負荷を軽減させることができる。そして、制御部34は、異常が検知された産業制御システム20からサービス要求またはデータが与えられる産業制御システム20の動作を正常に戻すことができる。
【0053】
図8は、異常がある産業制御システム20をシャットダウンしている状態における、コンピューティングシステム10の機能構成を示す。制御部34は、産業制御システム20に異常が検知された場合、一例として、異常が検知された産業制御システム20をシャットダウンする。
【0054】
即ち、通信中継装置30は、異常が検知された産業制御システム20の動作を全て停止させる。そして、通信中継装置30は、シャットダウンした後、異常が検知された産業制御システム20を再起動して動作を開始させる。これにより、制御部34は、異常が検知された産業制御システム20の動作を正常に戻すことができる。
【0055】
図9は、対応レベルを段階的に高くしながら、異常を検知した産業制御システム20を正常に復旧させるためのプランを実行する一例を示す。本実施形態においては、異常が発生した産業制御システム20を正常状態に復旧させるための処理には、当該処理がシステム全体に与える影響度等に応じて対応レベルが設定されている。
【0056】
例えば、産業制御システム20を正常に復旧させることができる確率は低いが、実行によってシステムに与える影響が少ない処理は、対応レベルが低く設定される。また、例えば、産業制御システム20を正常に復旧させることができる確率は高いが、実行によってシステムに与える影響が大きい処理は、対応レベルが高く設定される。例えば、本実施形態においては、最も対応レベルが一番低いのがリルーティング、2番目に低いのがカリング、3番目に低いのがディスコネクト、そして最も対応レベルが高いのがシャットダウンとなる。
【0057】
そこで、制御部34は、監視部32の監視結果に基づいて異常が検知された産業制御システム20に対する対応レベルを更に決定する。制御部34は、一例として、検知した異常の内容および深刻度等に応じて、対応レベルを決定する。そして、制御部34は、決定した対応レベルに応じた処理を通信中継装置30に実行させる。また、産業制御システム20の種類によっては、例えば社会インフラストラクチャに関わる産業制御システム20では、何らかの障害が発生したからといって、高い対応レベルを即時に実行することができない場合がある。このような場合、制御部34は、システムを最低限稼働させながら復旧を行うように対応レベルを選定する。
【0058】
また、制御部34は、最初は対応レベルが低い処理を実行し、産業制御システム20が正常な状態に復旧しない場合には、対応レベルを段階的に高くして処理を実行してもよい。例えば、制御部34は、何れかの産業制御システム20において異常が検知された場合、まず、通信中継装置30にリルーティングを実行させる(ステップS11)。リルーティングは、異常が検知された産業制御システム20が処理すべきサービスを異常が検知されていない産業制御システム20が代行するので、システムに与える影響が少ない。
【0059】
次に、リルーティングの実行によっても産業制御システム20が正常な状態に復旧しない場合、制御部34は、通信中継装置30にカリングを実行させる(ステップS12)。カリングは、サービスおよびデータの一部が破棄されるので、システムに与える影響はリルーティングより大きいが、通信量は減少するので、産業制御システム20が正常な状態に復旧する確率はリルーティングより高くなる。
【0060】
次に、カリングの実行によっても産業制御システム20が正常な状態に復旧しない場合、制御部34は、通信中継装置30にディスコネクトを実行させる(ステップS13)。ディスコネクトは、サービスおよびデータの全てが破棄されるので、システムに与える影響はカリングより大きいが、システム全体での通信量はカリングよりも減少するので、産業制御システム20が正常な状態に復旧する確率はカリングより高くなる。
【0061】
次に、ディスコネクトの実行によっても産業制御システム20が正常な状態に復旧しない場合、制御部34は、産業制御システム20をシャットダウンさせる(ステップS14)。シャットダウンは、再起動するまでに時間がかかり機器の制御もできなくなるのでシステムに与える影響は非常に大きいが、異常な産業制御システム20を再起動させるので正常な状態に復旧する確率は非常に高くなる。
【0062】
制御部34は、このように対応レベルに応じて処理のプランを段階的に変えていくことにより、当該コンピューティングシステム10の動作により影響を与えないようなプランから徐々に実行することができる。従って、通信中継装置30は、深刻度の小さい異常に対して過剰な復旧プランを実行することなく、発生した異常に応じた適切なレベルの復旧プランを実行させることができる。
【0063】
図10は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0064】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0065】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0066】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0067】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0068】
コンピュータ1900にインストールされ、コンピュータ1900をコンピューティングシステム10として機能させるプログラムは、監視モジュールと、制御モジュールと、通信中継モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、コンピューティングシステム10としてそれぞれ機能させる。
【0069】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である監視部32、制御部34および通信中継装置30として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のコンピューティングシステム10が構築される。
【0070】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0071】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0072】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0073】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0074】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0075】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0076】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。