(57)【要約】【課題】ウィルスおよび他の悪質なもしくは望まざる内容を調べる技術を提供する。【解決手段】本発明は、サーバに保存されたオブジェクトに対するリクエストを受け取るステップと、リクエストに応じて、クラスタ装置に、オブジェクトと関連するデータに対する操作を実行させるか否かの決定をするステップと、オブジェクトが別のユーザによってロックされている場合に、サーバが、クラスタ装置に操作を実行させるためにクラスタ装置がオブジェクトへアクセスすることを許可するステップを含んでいる、クラスタ装置に操作を実行させるステップと、クラスタ装置から操作の結果を受け取るステップと、操作の結果に基づいて、ユーザに対し、オブジェクトへアクセスすることを許可するステップ、を有する方法である。【選択図】図１
2008305418.tif 000002
【特許請求の範囲】
【請求項１】
サーバにおいて、ユーザからの、該サーバに保存されたオブジェクトに対するリクエストを受け取るステップと、
前記サーバにおいて、前記ユーザからのリクエストに応じて、クラスタ装置に、前記オブジェクトと関連するデータに対する操作を実行させるか否かの決定をするステップであって、前記操作は前記サーバに保存された前記オブジェクトへアクセスすることを含み、前記クラスタ装置は前記サーバとは別個の装置であり、前記クラスタ装置は前記ユーザから前記オブジェクトへの経路上になく、当該決定をするステップは、前記オブジェクトのタイプと、前記ユーザからの前記リクエストに伴うアクセスのタイプと、前記オブジェクトを格納するファイル空間と、に基づいて、前記クラスタ装置に前記操作を実行させるか否かを決定するステップを含んでいる、決定をするステップと、
前記決定をするステップの特定の結果に応じて、前記クラスタ装置に前記操作を実行させるステップであって、当該前記クラスタ装置に前記操作を実行させるステップは、前記オブジェクトが別のユーザによってロックされている場合に、前記サーバが、前記クラスタ装置に前記操作を実行させるために前記クラスタ装置が前記オブジェクトへアクセスすることを許可するステップを含んでいる、前記クラスタ装置に前記操作を実行させるステップと、
前記サーバにおいて、前記クラスタ装置から前記操作の結果を受け取るステップと、
前記サーバにおいて、前記操作の結果に基づいて、前記ユーザに対し、前記オブジェクトへアクセスすることを許可するステップ、を有する方法。
【請求項２】
前記操作が、複数の処理を含み、個々の処理が別個のクラスタ装置において実行される、請求項１に記載の方法。
【請求項３】
前記サーバが前記操作に対するタイムアウトを実施し、
たとえ前記タイムアウトが終了しようとも、前記クラスタ装置は前記操作を完了し、また、前記操作の前記結果を前記サーバに報告し、かつ、
前記サーバが、前記操作の前記結果を見込まれる後の使用のために記憶する、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記操作にウィルススキャンが含まれる、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記クラスタ装置が前記オブジェクトへのアクセスのためのスキャン用開放許可を有する場合に限り、前記操作が実行され、かつ、
前記クラスタ装置が前記オブジェクトへのアクセスのためのスキャン用開放許可を有する場合、たとえ前記オブジェクトが他のユーザまたは装置によってロックされていようとも前記操作が実行される、ことを特徴とする請求項４に記載の方法。
【請求項６】
複数のオブジェクトからなるオブジェクトのセットを保存し、かつ、ネットワークインターフェースを備えるサーバと、
ユーザから前記サーバに保存された前記オブジェクトへの経路上になく、かつ、前記サーバに接続された、クラスタ装置と、を有する装置であって、
前記サーバが、ユーザから、前記オブジェクトのセットのうちの１つのオブジェクトに対するリクエストを、前記ネットワークインターフェースを介して、受け取った場合には、前記サーバは、前記クラスタ装置に、前記１つのオブジェクトと関連するデータに対する操作を実行させるか否かの決定をし、前記操作は前記サーバに保存された前記１つのオブジェクトへアクセスすることを含み、前記サーバは、前記１つのオブジェクトのタイプと、前記ユーザからの前記リクエストに伴うアクセスのタイプと、前記１つのオブジェクトを格納するファイル空間と、に基づいて、前記クラスタ装置に前記操作を実行させるか否かの決定をし、オブジェクトの前記タイプは、ファイル名、ファイルタイプ、および、共有ファイルシステム、の少なくとも１つを含み、前記サーバは、前記クラスタ装置に対し、前記１つのオブジェクトを示す第１メッセージを送り、前記決定の結果に応じて、前記クラスタ装置に前記操作を実行させ、前記１つのオブジェクトが別のユーザによってロックされている場合に、前記サーバは、前記クラスタ装置に前記操作を実行させるために前記クラスタ装置が前記オブジェクトへアクセスすることを許可し、前記クラスタ装置は、前記サーバに対し、前記操作の結果を示す第２メッセージを送り、前記サーバは、前記第２メッセージにもとづいて、前記ユーザからの前記リクエストに対する応答において、前記ユーザに対し、前記１つのオブジェクトへアクセスすることを許可する、ことを特徴とする装置。
【請求項７】
前記サーバが前記第２メッセージに対するタイムアウトを実施し、
前記クラスタ装置は、たとえ前記タイムアウトが終了しようとも、前記第２メッセージを前記サーバに対して送信し、かつ、
前記サーバが、前記操作の結果を見込まれる後の使用のために記憶する、ことを特徴とする請求項６に記載の装置。
【請求項８】
前記操作にウィルススキャンが含まれる、ことを特徴とする請求項６に記載の装置。
【請求項９】
前記クラスタ装置が前記１つのオブジェクトへのアクセスのためのスキャン用開放許可を有する場合に限り、前記操作が実行され、かつ、
前記クラスタ装置が前記１つのオブジェクトへのアクセスのためのスキャン用開放許可を有する場合、たとえ前記１つのオブジェクトが他のユーザまたは装置によってロックされていようとも前記操作が実行される、ことを特徴とする請求項８に記載の装置。
【請求項１０】
オブジェクトの前記タイプは、ファイル名、ファイルタイプ、および、共有ファイルシステム、の少なくとも１つを含む、請求項１に記載の方法。
【請求項１１】
サーバにおいて、ユーザからの、該サーバに保存されたオブジェクトに対するリクエストを受け取るステップと、
前記オブジェクトが別のユーザによってロックされている場合に、前記サーバが、クラスタ装置に前記オブジェクトに対する操作を実行させるために前記クラスタ装置が前記オブジェクトへアクセスすることを許可するステップと、
前記サーバにおいて、前記クラスタ装置に、前記操作を実行させるステップと、
前記サーバにおいて、前記クラスタ装置から前記操作の結果を受け取るステップと、
前記ユーザのリクエストに対する応答において、前記操作の結果に基づいて、前記ユーザに対し、前記オブジェクトへアクセスすることを許可するステップと、を有する方法。
【請求項１２】
複数のオブジェクトからなるオブジェクトのセットを保存し、かつ、ネットワークインターフェースを備えるサーバと、
ユーザから前記サーバに保存された前記オブジェクトへの経路上になく、かつ、前記サーバに接続された、クラスタ装置と、を有する装置であって、
前記サーバは、ユーザから、前記オブジェクトのセットのうちの１つのオブジェクトに対するリクエストを、前記ネットワークインターフェースを介して、受け取り、
前記１つのオブジェクトが別のユーザによってロックされている場合に、前記サーバは、前記サーバとは別個の装置である前記クラスタ装置に前記１つのオブジェクトに対する操作を実行させるために前記クラスタ装置が前記１つのオブジェクトへアクセスすることを許可し、
前記サーバは、前記クラスタ装置に、前記操作を実行させ、
前記サーバは、前記クラスタ装置から前記操作の結果を受け取り、
前記サーバは、前記ユーザのリクエストに対する応答において、前記操作の結果に基づいて、前記ユーザに対し、前記１つのオブジェクトへアクセスすることを許可する、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばネットワーク化されている環境における、記憶されているデータに対する分散的ウィルススキャンに関する。
【背景技術】
【０００２】
関連技術
コンピュータネットワークおよびインターネットにより、エンドユーザはあらゆる種類の情報への国際的な共通基盤に基づく、新しいアクセスを享受している。情報へのアクセスは、電話線を用いてある種のコンピュータ装置をネットワークに接続するように簡便にできる。ワイヤレス通信の急増に伴い、今やユーザは事実上、どこからでもコンピュータネットワークにアクセスできる。
【０００３】
このような規模の接続性が、コンピュータウィルスの影響度を拡大している。「メリッサ(Melissa)」および「アイラブユー(I love you)」といったウィルスは、全世界のコンピュータシステムに壊滅的な打撃を与えた。ウィルス処置に要するコストはしばしば、数百万ドルにもまた数千万ドルにも達する。近年、ハンドヘルド型コンピュータ装置もまたウィルスに感染しやすいことがわかっている。
【０００４】
ウィルス保護ソフトウェアはウィルス対策において非常に効果的であり、またウィルス保護ソフトウェアはパーソナルコンピュータのような一般的なコンピュータ装置向けのものが広く流通している。しかしながら、例えば、サーバ、ファイルサーバ、記憶システム、ならびに、あらゆる種類のデータの記憶および検索を行う装置のような特殊なコンピュータ装置に固有の問題が存在する。市販のウィルス保護ソフトウェアは、特殊なコンピュータ装置上では、修正を加えない限り、実行されず、別のプラットフォームで稼動するようにソフトウェアを書き替えることは非常に高くつく。
【０００５】
第１の周知の方法はデータソースにおけるウィルススキャンである。特殊なコンピュータ装置によってデータが提供されようとすれば、その特殊なコンピュータ装置をスキャンする必要がある。装置内のファイルをスキャンするために、その装置用のウィルス保護ソフトウェアを記述しなければならない。
【０００６】
この第１の周知の方法は、ファイルに対してウィルススキャンをするには効果的な方法だが、幾つかの不利益を有する。先ず、特殊なコンピュータ装置を有する会社は、かなりの資産をかけてウィルス保護ソフトウェアを作りあげ、そして、現われる新しいウィルスから保護してくれるよう、データファイルを最新型に維持しなければならない。
【０００７】
そのうえ、特殊なコンピュータ装置の製造業者は、主流となっているウィルス保護ソフトウェアを作っている法人の賛助を得てカスタムアプリケーションを記述し、ライセンシーになることは可能だが、このことが、選択したアンチ−ウィルスソフトウェアベンダーの信頼性、ハードウェアがアップグレードされた場合の互換性に関する課題、および、多大な財務費用といった問題を引き起こしている。
【０００８】
第２の周知の、コンピュータウィルスから保護する方法は、エンドユーザに彼らのクライアント装置上でアンチ−ウィルスソフトウェアを実行させることである。アンチ−ウィルスソフトウェアは、マカフィー(McAfee)やシマンテック(Symantec)といった会社から提供されている。これらのプログラムはコンピュータのブート段階中にロードされ、バックグラウンドジョブとして動作してメモリおよびファイルを開いたり、保存したりしながら監視している。
【０００９】
この第２の周知の方法はクライアント装置の感染を阻止し、保護する上では効果的だが、幾つかの不利益を有する。これは連鎖における最終可能リンクに、検出の負担を設定している。いかなる理由があろうと、エンドユーザに到達するよりも先にウィルスを検出しなければ、ウィルスは最大の被害（ファイルの破壊、ならびに、他のコンピュータユーザおよびシステムへの拡大）を及ぼすであろうコンピュータ装置に到達する。
【００１０】
何百万というユーザへ送信されるかもしれないソースからファイルを駆除(sanitize)するほうが、そのファイルを送信し、そして、エンドユーザに、ファイルが感染している場合にそのファイルに対処するための用意をしておくことを期待するよりもずっとよい。エンドユーザはしばしば古いバージョンのアンチ−ウィルスソフトウェア、および／または、そのソフトウェアが新しく発見されたウィルスから確実に護れるようにするためのデータファイルにアップデートしていない。従って、大量配信されるポイントにおける検出を行うことがより重要である。
【００１１】
また、ハンドヘルド型コンピュータ装置もウィルスに感染しやすいが、これら装置のウィルスに対処する装備は不十分である。一般に、ハンドヘルド型コンピュータ装置はデスクトップシステムと比較して、非常に制限されたメモリリソースを有する。これらのリソースの一部分をウィルス保護に費やすと、ハンドヘルド型装置が効率的に動作する能力を厳しく制限する。情報ソースにおける信頼できるウィルススキャンが最も効率的でありかつ効果的な方法である。
【００１２】
ウィルスからの保護は絶え間の無い戦いである。新しいウィルスは毎日創出され、ウィル保護ソフトウェア製造者は新しいデータファイル（アンチ−ウィルスソフトウェアが使用する解決用アルゴリズム）を作り出す必要に迫られる。ファイルのソースにおいて保護することで、ウィルスはさらに効率よく、効果的に除去可能である。
【００１３】
一般にデータのセキュリティーは重要である。同程度に重要なのがエンドユーザの信用である。これは会社に先行する評判に由来し、また、ウェブコマースに従事する会社は、その評判によって生きることも死ぬこともる。それは丁度、エンドユーザがウェブベースの売買取引のために開示したクレジットカードの番号が安全であると信じているように、受信するファイルも安全であることを望んでいる。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
従い、特殊なコンピュータ装置をスキャンして、変更、削除、または、修正の必要があるかもしれない、ウィルスおよび他の悪質なもしくは望まざる内容を調べる技術を提供することが望まれている。
【課題を解決するための手段】
【００１５】
本発明は、第２のコンピュータ装置により、記憶システム、ファイラ、または、その他のデータの記憶および検索を行うサーバのファイルのウィルスをスキャンするといった、サーバのファイルに対する専門的なサービスを行う方法およびシステムを提供する。（ファイラのような）サーバは１以上の補助的コンピュータ装置と接続されており、この補助的コンピュータ装置がエンドユーザへの送信の前に、リクエストによって要求されたファイルをスキャンしてウィルスフリーであることを確かめる。エンドユーザがサーバからファイルを要求すると、以下のステップが実施される。サーバが、ユーザにより要求されたファイルまたは他のオブジェクトは、ユーザに向けて送信する前に、または、ユーザが使用した後で、スキャンされなければならないかどうかを判断する。サーバは外部コンピュータ装置の１つへのチャンネルを開き、ファイル名（または、ファイルハンドルもしくはｉノードポインタ、つまり「ファイル名(filename)」、「ファイル名空間(file name space)」、および、ファイルもしくは他の種類のオブジェクトの指定子(designators)の可能な収集体を指す同等物、のような、ファイルもしくはオブジェクトの別の指定子）を送る。その外部コンピュータ装置がそのファイルを開いてスキャンする。（例えば、ウィルスファイルを浄化する、ファイルを隔離または削除する、といった、）できる限りの改善的アクションをとった後、外部コンピュータ装置がファイラへファイルスキャン操作のステータスを報告する。サーバは、前記ステータスが送信してもよいことを示せば、ファイルをエンドユーザに送る。
【００１６】
本システムは、ファイルが修正されるか、または、新しいウィルスから保護するための新しいデータファイルが付加されないかぎり、たった一度だけファイルをウィルススキャンする必要があるという点で、非常に効率的でありまた効果的である。スキャンしたファイルのスキャンレポートは、１以上の外部コンピュータ装置、１以上のサーバに記憶されてもよく、そして、スキャンレポートのある部分はエンドユーザに送信されてもよい。
【００１７】
本発明の代替的実施形態においては、１以上のコンピュータ装置が、データの圧縮および解凍(decompression)、データの暗号化および解読、ならびに、データベース短縮といった他の補助的アプリケーションを独立に、または、組み合わせて、実行していてもよい。
【発明を実施するための最良の形態】
【００１８】
以下の説明にて、本発明の好適な実施形態を、その好適な処理工程およびデータ構造に着目し、説明する。当業者であれば本出願を精読した後には、本発明の実施形態は１以上の一般目的もしくは特殊目的プロセッサ、または、他の、本明細書に記載の特定の処理工程およびデータ構造に適合した回路を用いて実施可能であること、ならびに、必要以上の試験または更なる発明を必要とせずに本明細書に記載の処理工程およびデータ構造を実施することができることを理解するであろう。
【００１９】
辞書編集(Lexicography)
以下の用語は、以下に説明する本発明の態様を、言及または関連する。これら用語に関する一般的な意味についての記載は、制限を加えることを目的としたものではなく、単に例示目的にすぎない。
・ファイラ−一般的に、あらゆる記憶システム、ファイルサーバ、または、その他の、データの記憶および検索を行う装置をいう。記憶システムは、数多くある方法の中のどの方法を用いて実施してもよく、それらには、それらに限定されないが、ネットワークに加えられた記憶装置環境、記憶領域ネットワーク、クライアント装置、サーバ装置、もしくは、ホストコンピュータにつながれたディスク機構、または、それらのうちのある組み合わせが含まれる。
記憶システムの１つに、ファイルサーバがある。ファイルサーバまたはファイラは、配列状のメモリ、テープ、もしくは、ディスクのような、書きこみ可能な持続性の記憶装置に関する情報の編成に関するファイルサービスを提供するコンピュータを含んでいる。ファイラは、ディレクトリの階層構造、および、例えばディスク上の、ファイルの情報を論理的に編成するファイルシステムを実施する記憶オペレーティングシステムを含んでもよい。各「ディスク上の」ファイルは、例えば、ファイルの実際のデータのような情報を記憶する目的で構成された、ディスクブロックのような、一組のデータ構造体として実施されてもよい。他方、ディレクトリは、他のファイルおよびディレクトリに関する情報を記憶する、特別なフォーマットのファイルとして実施されてもよい。一般的に、用語「記憶オペレーティングシステム」とは、ファイルシステムセマンティクスのように、データ記憶を機能的に実施する、コンピュータが実行可能なコードをいい、データアクセスを管理している。記憶オペレーティングシステムは、ユニックス(UNIX)（登録商標）もしくはウィンドウズＮＴ(Windows NT)（登録商標）のような汎用オペレーティングシステム上で動作するアプリケーションプログラムとして、または、記憶アプリケーションとして構成可能な、機能性、もしくは、記憶の機能を備えた汎用オペレーティングシステムとして、もしくは、記憶ならびに関連する、記憶装置およびその他の装置におけるタスクを含んだ制限的な範囲の機能を実行することに特化した特定目的オペレーティングシステムとして、実施可能である。
他に、記憶システムは、情報の受け渡しに関する、クライアント／サーバモデルに基づいて動作するように構成されてもよく、それにより、多くのクライアントがサーバ上に記憶されているファイル、例えば記憶システムにアクセス可能となる。本モデルにおいては、クライアントはコンピュータ上で実行可能な、二点間リンク、共有ローカルエリアネットワーク、ワイドエリアネットワーク、または、インターネットのような公衆ネットワークを介して実施される仮想プライベートネットワークのような、コンピュータネットワークを介して記憶システムと「接続」するアプリケーションを備えていてもよい。各クライアントは、ファイルシステムのプロトコルのメッセージを（パケットの形態で）ネットワークを介してシステムに向けて発行することにより、記憶システム上のファイルシステムのサービスを要求してもよい。しかし、注目すべきことは、記憶システムは、（例えばクライアントまたは「ホスト」）コンピュータに直接的に取り付けられている記憶装置のアセンブリとして動作するように構成されてもよいことである。ここでは、ユーザは、記憶装置から／に、データアクセス（例えば、読み出しおよび／または書きこみ）する、ファイルシステムのサービスを要求してもよい。
本発明は、「ファイラ」に関連させて、本明細書にて説明されているが、本発明は、ファイラ、ファイルサーバ、記憶システム、または、類似の装置に、特に限定されるものではない。当業者であれば、本出願を精読の後には、あらゆる種類のサーバ装置に対し、ここで説明されているアイデアおよび技術を如何にして実施すればよいかは理解するであろう。これらの実施については、必要以上の試験または更なる発明を必要とせず、また、本発明の範囲および本発明の思想に含まれる。
ｉノード−一般的に、データの記憶および検索を行うシステムによって持続的に保持されるディレクトリ項目(entry)または他のファイル記述子の項目のことをいう。好適な実施形態においては、ｉ-ノードを有し、ｉ-ノードは、そのファイルのために、持続的にディレクトリに記録される。当業界においては、用語「ｉ-ノード」は時に、特にユニックスオペレーティングシステムおよびその変形物に特有とされるが、ここに注記したように、本明細書中ではより一般的に用いている。本発明においては、ｉ-ノードはいかなる特定の構造を持たなくてはならないとも、もしくは、ｉ-ノードが特定のフォーマットもしくは位置に記憶されねばならないとも、または、特定のオペレーティングシステム、記憶オペレーティングシステム、記憶構造、階層化ファイルシステム、ファイル名空間、もしくは、記憶パラダイムを有さねばならないとも、要請されていない。
・ファイルまたは他のオブジェクト−一般的に、連続するバイトのセット、データベースにおけるレコードのセット、オブジェクト指向データベースもしくはオブジェクト指向言語開発環境におけるソフトウェアオブジェクト、または、適当なユーザのリクエストに対して動的に生成されるデータのセットであろうとも、サーバにおけるあらゆるデータオブジェクトのことをいう。好適な実施形態においては、ファイルは、持続的に階層化ネーム空間に記録されているデータのセットを含み、また、ファイル属性のセットを有している。このことは好ましいが、ユーザのリクエストするファイルまたは他のオブジェクトがこれらの性質を有すること、または、他のいかなる性質を有することも、特に要請されていない。なぜならば、本発明の範囲および思想は、あらゆる種類のオブジェクトを含有するのに十分なほどに広いからである。
・ウィルス−一般的に、人間が作り出したプログラムまたはコードの断片であって、コンピュータユーザの認識なしに、そのコンピュータにロードされ、そして、ユーザの意に反して実行される。たいていのウィルスは自己複製可能であり、さらに危険なタイプのウィルスにあってはネットワークを介して自身を送信し、セキュリティーシステムを迂回する能力を有する。また、「ウィルス」はあらゆる悪意のあるコード、プログラム、または、他の内部コンポーネントを含み（これらに限定されないが、コンピュータウィルス、コンピュータワーム、コンピュータ時限爆弾、トロイの木馬、または、同様の効果を有するコンポーネントを含む。）、ソフトウェア、ファームウェア、もしくは、ハードウェアを、傷つけたり、破壊したり、改変したり、もしくは、制御することが可能で、また、様々な方法で、コンピュータによってアクセスもしくは処理されるあらゆるデータもしくは他の情報を、さまざまな方法で漏洩、損傷、破壊、もしくは、改変することが可能である。
・クライアントおよびサーバ−一般的に、これら用語は２つの装置間の関係性について述べている。特に、クライアントおよびサーバという関係性を述べる上で必ずしも特定の物理的な装置を必要としない。
例えば、これに制限されないが、第１サーバ装置と第１の関係性を有する特定のクライアント装置が、第２クライアント装置と第２の関係性を有してサーバ装置として機能することが可能である。好適な実施形態においては一般に、比較的少数のサーバ装置が比較的多数のクライアント装置に対して情報提供を行う。
・クライアント装置およびサーバ装置−一般に、これら用語は、（ＨＴＴＰウェブクライアントおよびウェブサーバのように）クライアント−サーバ関係においてクライアント装置またはサーバ装置の役割を果たす装置をいう。いかなるクライアント装置またはサーバ装置も個別的な物理的装置でなければならないという特別な要求はない。これらは単一の装置であっても、協働する装置群であっても、装置の部分であっても、または、それらのうちのある組み合わせであってもよい。
例えば、これに制限されないが、クライアント−サーバ関係におけるクライアント装置およびサーバ装置は、実際には物理的に同一の装置とすることが可能であり、第１ソフトウェア要素群によりクライアント機能が発揮され、第２ソフトウェア要素群によりサーバ機能が発揮される。
本発明はクライアント−サーバモデルについて説明しているが、本発明においては、クライアント−サーバモデルを用いて、記憶されたデータは保持され、また、ユーザ間で通信されるという要請はない。例えば、ユーザのデータオブジェクトに対するリクエストが、１以上のコンピュータ装置群による分散的処理を始動させるような、別形態の分散型コンピューティングも、本発明の範囲内であり、また、本発明の思想に含まれる。
【００２０】
上述のように、これらの用語に関する一般的な意味についての説明は、それらに限定することを意図したものではなく、例示を目的としている。本発明の他の、そして、さらなる適用は、これらの用語および概念の拡張も含まれているが、本出願を精読した後には、当業者にとっては明瞭であろう。これらの他の、そして、さらなる適用は本発明の範囲および本発明の思想の一部であり、それらは当業者であれば別の発明または必要以上の試験をせずとも明らかである。
【００２１】
システムの要素
図１は分散化装置によるウィルススキャンのためのシステムに関するブロック図を示す。
【００２２】
システム１００はユーザ１１１と関連するクライアント装置１１０、通信ネットワーク１２０、ファイラ１３０、および、処理クラスタ１４０を有する。
【００２３】
クライアント装置１１０はプロセッサ、主メモリ、および、命令を実行するためのソフトウェア（図示せず、だが当業者であれば理解する。）を有する。クライアント装置１１０およびファイラ１３０は別個の装置として示されるが、これらが物理的に分離していることを要求しない。
【００２４】
好適な実施形態において、通信ネットワーク１２０はインターネットを含む。代替的実施形態において、通信ネットワーク１２０は、イントラネット、エクストラネット、仮想プライベートネットワーク、ダイレクト通信リンク、または、それらの組み合わせもしくは結合といった、代替的通信形態を含んでもよい。
【００２５】
通信リンク１１５はクライアント装置１１０と通信ネットワーク１２０を接続している。
【００２６】
ファイラ１３０はプロセッサ、主メモリ、命令を実行するためのソフトウェア（図示せず、だが当業者であれば理解する。）、および、大容量記憶装置１３１を有する。クライアント装置１１０およびファイラ１３０は個別の装置として示されているが、これらが個別的な装置である必要性はない。さらに、本発明は単一のファイラ１３０について説明しているが、本発明は等しく処理クラスタ１４０と共に動作するファイラ１３０群に対しても適用可能である。一組の複数ファイラ１３０では、各ファイラが独立的に動作し、かつ、各ファイラが個別的に処理クラスタ１４０を使用しても、もしくは、１グループとして連動して動作し、かつ、集合体として処理クラスタ１４０を利用してもよく、また、それらの組み合わせでもよい。以下に記すように、処理クラスタ１４０は１以上のクラスタ装置１４１を備えることが可能であり、本発明は、あらゆるＭ個のファイラの組み合わせとあらゆるＮ個のプロセッサの組み合わせにより実施可能である。ＭおよびＮが固定されなければならない必要性は特になく、ファイラ１３０またはクラスタ装置１４１は、ファイラ１３０およびクラスタ装置１４１が動作している間に、操作者のコマンドもしくはハンドシェイクプロトコルにより、追加されてもよい。ファイラ１３０は通信ネットワーク１２０に接続されている。
【００２７】
ファイラ１３０は、ファイラ１３０のプロセッサが容易にコンフィグレーション情報１３７にアクセスできるように、コンフィグレーション情報１３７を配置している。好適な実施形態においては、ファイラ１３０は、操作者の命令により、あるいは、指定された権限を有するリモートユーザにより、コンフィグレーション情報１３７をレビュー、レポート、または、修正するためのソフトウェア命令(software instruction)を有する。コンフィグレーション情報１３７には以下のものが含まれる。
・第１組ファイルタイプ、および、第２組ファイルタイプを示す情報。第１組ファイルタイプは、（しばしばファイル名の拡張子ＥＸＥで指定される、実行可能ファイルのように）ウィルススキャンを使用可能である。第２組ファイルタイプは、（しばしばファイル名の拡張子ＴＸＴで指定される、そのままのテキストファイル(raw text files)のように）ウィルススキャンを使用することはできない。
・第１ファイル空間、第２ファイル空間、および、第３ファイル空間を示す情報。第１ファイル空間は、（例えば、/users/Swernofskyといったルートディレクトリによって指定される第１ＣＩＦＳ「共有」のように）全てのファイル操作に対してウィルススキャンを使用可能である。第２ファイル空間は、（第２ＣＩＦＳ「共有」のように）ファイル書き込み操作に対してのみウィルススキャンを使用可能である。第３ファイル空間は、（第３ＣＩＦＳ「共有」のように）ウィルススキャンを使用することはできない。
および、
・各ファイルに対し、そのファイルがウィルススキャンされてきたことを示す情報。そして、もしスキャンされてきたのであれば、（タイムスタンプのように、）スキャンが実行された日時、（型式およびスキャンソフトウェアのバージョン番号のように、）どのようなスキャン装置およびスキャンソフトウェアにより、スキャンが実行されたか、ならびに、（ウィルスが検出されたのかどうか、および、実際にウィルスが検出されたのであれば、どのようなアクションがとられたのか、といった、）スキャンの結果がいかなるものであるのか、といった情報が示される。好適な実施形態においては、この情報はファイルのｉ-ノードに記録される。または、この情報は、（ファイルが読み出しオンリーのスナップショットの部分である場合のように、）ファイルが読み出しオンリーもしくはｉ-ノードが書き込み不可であれば、別のスキャン履歴データベースに記録される。
【００２８】
大容量記憶装置１３１は、クライアント装置１１０からリクエスト可能な、少なくとも１つのファイル１３３を有する。処理クラスタ１４０は、１以上のクラスタ装置１４１を有し、クラスタ装置１４１それぞれはプロセッサ、主メモリ、命令を実行するためのソフトウェア、および、大容量記憶装置（図示せず、だが当業者であれば理解する。）を備えている。ファイラ１３０および処理クラスタ１４０は個別の装置として示されているが、これらが個別的な装置である必要性はない。
【００２９】
好適な実施形態においては、処理クラスタ１４０は、相互通信およびファイラ１３０との直接通信可能な相互接続クラスタにおける複数のパーソナルコンピュータである。処理クラスタ１４０が統合されたクラスタとして編成されなければならないこと、または、ファイル１３０に対してローカルになければならないこと、または、処理装置の性質が均質でなければならないこと、または、他の特別な特性を有することは、特に要求されない。例えば、代替的実施形態においては、処理クラスタ１４０は、インターネットのようなネットワークにより、ファイラ１３０と接続されたＰＣ、ワークステーション、サーバ、または、他の装置のセットを有する。
【００３０】
好適な実施形態において、処理クラスタ１４０におけるクラスタ装置１４１は、自身の存在をファイラ１３０に登録しており、そうすることで、スキャン（または、その他の）操作での装置の利用可能性に関する認識をファイラ１３０に与える。このことは望ましいことだが、本発明にとっては登録することは特に必要ではない。なぜなら、代替的実施形態におけるファイラ１３０は、クラスタ装置１４１に対して「無名の(John Doe)」リクエストを送信して、ユーザのリクエストしたファイルを処理することを要求するように構成されている。
【００３１】
クラスタリンク１３５は、処理クラスタ１４０とファイラ１３０とを接続する。クラスタリンク１３５は不均等メモリアクセス、または、イントラネット、エクストラネット、仮想プライベートネットワーク、ダイレクト通信リンク、または、それらの組み合わせもしくは結合による通信を含んでいてもよい。
【００３２】
操作方法
図２は分散化装置のウィルススキャンのためのシステムの処理流れ図である。
【００３３】
方法２００は、一組の流れのポイントおよび一組のステップを有する。システム１００が方法２００を実施する。方法２００は連続的に説明されているが、個々の要素は連動的または並列的に、非同期的にパイプライン方式で、また、その他の方式で、方法２００のステップを実施可能である。方法２００は、そのように指示されている場合を除き、本明細書に羅列したステップの順番と同一の順番で実施される必要性を有しない。
【００３４】
流れのポイント２００において、システム１００は方法２００を実施開始する用意ができている。
【００３５】
ステップ２１１において、ユーザ１１１はクライアント装置１１０を利用し、ファイル１３３に対するリクエストを開始する。リクエストは通信ネットワーク１２０を介してファイラ１３０に送信される。好適な実施形態においては、ファイラ１３０はＮＦＳまたはＣＩＦＳのようなファイルサーバプロトコルに応答して、ファイルの検索および記憶を実行する独立したファイルサーバである。代替的実施形態においては、ファイラ１３０は、補助的記憶装置、または、ウェブサーバのように、他のサーバの指示で動作するファイル保持サーバであってもよい。
【００３６】
ステップ２１２において、ファイラ１３０はファイル１３３に対するリクエストを受け取り、ファイル１３３をウィルススキャンしなければならないかを決定する。本ステップの部分として、ファイラ１３０は以下の下位ステップを実行する。
・下位ステップ２１２（ａ）において、ファイラ１３０は、ファイル１３３が既にウィルススキャンを受けたかどうかについての情報をレビューする。好適な実施形態においては、この情報には、スキャンが既に実行されたかどうかについて、スキャンが実行された（タイムスタンプのような、）日時について、スキャンが実行された（型式およびスキャンソフトウェアのバージョン番号のような、）スキャン装置およびスキャンソフトウェアの種類について、ならびに、（ウィルスが検出されたかどうか、また、ウィルスが実際に検出されたのであれば、どのようなアクションがとられたのか、といった、）スキャンの結果についての情報が含まれる。上に記したように、好適な実施形態においては、この情報はファイル１３３に対するｉ-ノードに記録される。ファイル１３３が既にスキャンされ、使用可能であるとマークされれば（、かつ、再スキャンは不要と判断されれば）、ファイラ１３０は、スキャン操作を実行せずにそのファイルをユーザに対して使用可能とする。
・下位ステップ２１２（ｂ）において、ファイラ１３０は、ウィルススキャンされるべきファイルのタイプをレビューする。ファイラは、（１）実行可能ファイル、マクロ、スクリプト、等、のようなウィルススキャンされるべき、および、（２）そのままのテキストファイル等のような、スキャンされるべきではない、ファイルタイプの組について記載しているコンフィグレーション情報１３７をレビューする。このファイルタイプの組の選択は、ファイラ１３０の操作者によってなされてよく、コンフィグレーション情報１３７で保持される。好適な実施形態においては、ファイルタイプは、ファイル名拡張子のような、ファイル１３３のファイル名の部分で識別される。周知のファイル名拡張子には、実行可能ファイルに対するＥＸＥ、そのままのテキストファイルに対するＴＸＴがある。
・下位ステップ２１２（ｃ）において、ファイラ１３０はウィルススキャンすべきファイル空間についての情報をレビューする。ファイラは、（１）全てのファイル操作に対してスキャンされるべき、（２）ファイルへの書き込み操作に対してのみスキャンされるべき、または、（３）一切のファイル操作に対してスキャンされずともよい、ファイル空間について記載しているコンフィグレーション情報をレビューする。全てのファイル操作に対してスキャンされるべきファイル空間では、ファイラ１３０は、ファイル１３３を、あらゆる読み出し操作で開かれる前にスキャンされるようにし、また、書き込み操作の後、閉じられた後にスキャンされるようにしている。書き込み操作に対してのみスキャンされるべきファイル空間では、ファイラ１３０は、ファイル１３３を、書き込み操作の後、閉じられた後にスキャンされるようにしている。
【００３７】
ステップ２１３において、ファイル１３３をスキャンすべきと判断したファイラ１３０は、ファイル１３３のファイルＩＤおよびパスを処理クラスタ１４０に対して送信し、それをクラスタ装置１４１のうちの１つが受信する。本ステップの部分として、ファイラ１３０は、以下の下位ステップを実行する。
・下位ステップ２１３（ａ）において、ファイラ１３０はクラスタのプロセッサに対してタイマを設定し、そのタイムアウト値は、ファイラ１３０が、クラスタ装置の処理のために待機することを厭わない時間間隔を示している。
・下位ステップ２１３（ｂ）において、ファイラ１３０は、クラスタ装置１４１が処理を完了するのを待つ。その間に、クラスタ装置１４１が、（願わくば、）以下に記載のステップ２１５、ステップ２１７、および、ステップ２１９を実行する。
・下位ステップ２１３（ｃ）において、クラスタ装置１４１がタイムアウトまでに応答すれば、ファイラ１３０は、クラスタ装置１４１からの結果を用い、以下のステップ２１９に移行する。
・下位ステップ２１３（ｄ）において、クラスタ装置１４１がタイムアウトまでに応答しなければ、ファイラ１３０は以下の２つの道筋のうちの１つに進んでもかまわない。（ａ）ファイラ１３０は、あたかもクラスタ装置１４１がファイルへのユーザのアクセスを拒否したかのように振舞い、ステップ２１９以下に移行する。この場合、ファイラ１３０は、スキャン失敗のため、ファイルは利用できない旨をレポートする。（ｂ）ファイラ１３０がクラスタ装置１４１に対し、機能していますか？(ARE-YOU-WORKING?)メッセージを送信する。この場合、タイムアウトよりも短く、１秒以内に(within a second but shorter timeout)、クラスタ装置１４１が、まだファイル１３３の処理中であると応答すれば、ファイラ１３０は下位ステップ２１３（ｂ）に戻って、タイムアウトをリセットする。
好適な実施形態においては、１よりも多い数のクラスタ装置１４１が存在するので、クラスタ装置１４１が特定の１つのファイル１３３のスキャンに非常に長い時間を費やしていても、ファイラ１３０は別のファイル１３３に対するサービスのリクエストに進むことができる。代替的実施形態においては、ファイラ１３０が、第１クラスタ装置は実際にはクラッシュしている、使用不可能となっている、または、そうではないとしてもファイル１３３に対するウィルススキャンの結果に関しては上手く応答していない、と推測すれば、ファイラ１３０は、そのスキャンのタスクを第２クラスタ装置に再び委託(reaasign)してもよい。
・ファイル１３３に対し、もともとのリクエストをしているユーザが、ファイル１３３についてのクラスタ装置１４１のレポートが出る前に、そのリクエストを放棄するような事象において、ファイラ１３０はそれでもなお、クラスタ装置１４１からのレポートを待ち、クラスタ装置１４１によってなされたウィルススキャンの結果でファイル１３３をマークする。よって、クラスタ装置１４１が、ファイル１３３は一切のウィルスを含まない（または、代わりに、ウィルスを発見したが成功裡に除去されている）と判断すれば、ファイラ１３０が、そのファイルは首尾よくスキャンされ、利用可能であるようにマークする。同一のユーザまたは別のユーザが後に同一のファイル１３３をリクエストすれば、ファイラ１３０は、以下に記すように、さらなるスキャンなしでそのファイル１３３を利用可能にする。
【００３８】
ステップ２１５において、クラスタ装置１４１はファイルＩＤおよびパスを利用してファイラ１３０の大容量記憶装置１３１のファイル１３３を開く。
【００３９】
ステップ２１７において、クラスタ装置１４１はファイル１３３のウィルススキャンを行う。好適な実施形態においては、ファイルは総当り方式(round robin fashion)で処理クラスタに課せられる(be tasked to the processing cluster 140)。代替的実施形態において、ファイルはクラスタ装置１４１によって個別的に処理されてもよく、複数のクラスタ装置１４１によって同時的にされてもよく、また、それらの組み合わせでもよい。処理クラスタ１４０内における処理の最大効率化を確保する目的で、負荷分散(load balancing)を用いてもよい。
【００４０】
好適な実施形態において、ファイラ１３０は、クラスタ装置１４１を、プライマリやセカンダリのような、１以上のクラスにグループ化し、ここで、全てのプライマリ・クラスタ装置１４１は、セカンダリ・クラスタ装置１４１を従えて、指定される。これにより、操作者は、例えば比較的高速な接続を用いることが可能であるような、第１クラスタ装置１４１のみをファイラ１３０に使用させることが可能であり、また、何らかの理由で第１クラスタ装置１４１が使用不可能な場合には、例えばそれほど高速ではない接続を用いることが可能な、第２に指定されているクラスタ装置１４１を用いるために通信速度を落とさせる(fall back)ことが可能である。
【００４１】
パーソナルコンピュータ向けのウィルス保護ソフトを提供するベンダーは数社あるので、ファイラ１３０の操作者は、使用したい、本明細書に記載のファイラ１３０との通信プロトコルをサポートしている製品なら何を選んでもよい。また、本明細書に記載のファイラ１３０との通信プロトコルを用いて動作可能な組み合わせであれば、処理クラスタ１４０において複数ベンダーの製品を組み合わせて使用することすらかまわない。代替的実施形態においては、ファイラ１３０は、本明細書に記載のファイラ１３０との通信プロトコルをサポートしていないウィルス保護ソフトウェア形式で動作してもよく、その場合、そのようなウィルス保護ソフトウェア形式に対しては、（タイムアウト、および、機能していますか？メッセージのような）幾つかの特徴は利用できない。本発明のさらなる代替的実施形態においては、ファイラ１３０のあらゆるファイル１３３に対して継続的にスキャンが行われてもよい。
【００４２】
処理クラスタ１４０は高度な拡張性を有する。パーソナルコンピュータの価格は、ファイラのような専用の装置に較べて低価格であるので、このような構成は非常に望ましいものである。加えて、クラスタの構成により、クラスタ装置１４１が機能停止した場合における代理機能システム(redundant systems)を提供し、処理クラスタ内部においてフェイルオーバー(failover)およびテイクオーバー(takeover)も可能である。
【００４３】
クラスタ装置１４１は、（ここでは「スキャン用開放(OPEN-FOR-SCANNING)」と称する）特別なタイプのアクセスがアサインされており、それにより、クラスタ装置１４１はファイル１３３が他のユーザにより既にロックされていようとなかろうと、ファイル１３３をスキャン可能である。好適な実施形態においては、スキャン用開放モードは、ファイラ１３０が本当にクラスタ装置１４１であると確かめることができる装置に限定されている。好適な実施形態において、ファイラ１３０は、スキャン用開放モードを以下の基準の１つ以上に従う装置に制限することができる。
・１以上の選択されたＩＰアドレスを有すること。
・１以上の選択されたＩＰサブネットを含んでいること。
・１以上の選択されたＤＮＳドメインを含んでいること。
・１以上の選択された物理的インターフェースを介してファイラ１３０にアクセス可能であること。
・クラスタ装置１４１において、（「管理者(Administrator)」または「バックアップオペレータ(Backup Operator)」といった）選択されたユーザ名またはユーザ権限を有すること。
【００４４】
好適な実施形態において、スキャン用開放モードのアクセスは、クラスタ装置１４１上でＮＴ「サービス」として実行している処理に限定される。従って、選択されたクラスタ装置１４１を、何ら特定の特殊な権限を持たないユーザが使用してもよく、またその一方で、クラスタ装置１４１は同時に「管理者」として実行されているサービスで動作しており、ファイラ１３０によるスキャン用開放モードのアクセスを可能としている。
【００４５】
ステップ２１９において、クラスタ装置１４１はスキャンリポートをファイラ１３０に送信する。スキャンリポートは主としてファイルが送信しても安全であるかについて報告する。別の情報についても、データベースに統計上の目的で保存してもよい（例えば、どれくらいのファイルが感染していると特定されたか、ウィルスソフトウェアはそのファイルを駆除(sanitize)できたか、または、ファイルは削除されたか）。続いて受信されたリクエストに基づく送信に際し、その前にファイル１３３をスキャンする必要があるかどうかを、前記データベースを参考にして決定してもよい。ファイル１３３が、最後にスキャンを受けて以来、変更を受けておらず、かつ、さらなるウィルスデータファイルが処理クラスタに付加されていなければ、ファイル１３３は、おそらくスキャンを受ける必要はない。つまり、ファイル１３３はさらに迅速に送信可能である。
【００４６】
他の中間的アプリケーションも、処理クラスタ１４０内において独立して実行しても、他のアプリケーションと結合して実行しても、または、その組み合わせとして実行してもよい。圧縮および暗号化ユーティリティはこれらアプリケーションの例である。ウィルススキャンを含むこれらのアプリケーションは、非常にＣＰＵに負担をかけるものであり、したがってアウトソーシングによりファイラのような専用の装置が最もすべきことを実行し、他のタスクは処理クラスタ１４１に請け負わせることが可能となり、よりよいパフォーマンスをもたらす。
【００４７】
本ステップの部分として、ファイラ１３０はまた、以下の下位ステップを実行してもよい。
・下位ステップ２１９（ａ）において、ファイラ１３０は、ファイル１３３に対するｉ-ノード内に、または、ファイルが読み出しオンリーの場合、上述の如く、別個のスキャン履歴データベース内に、スキャンレポートからの情報を記録する。
・好適な実施形態においては、ファイラ１３０は、操作者または権限を有するリモートユーザによるファイルに対するスキャン情報のリセットに応じるための、ソフトウェア的命令を備えている。これにより、操作者または権限を有するリモートユーザは、ファイラ１３０に１以上の選択されたファイル１３３を再スキャンさせることができる。
【００４８】
ステップ２２１において、ファイラ１３０は、処理クラスタ１４０によるスキャンを受けて報告される利用可能性に基づいてファイル１３３をクライアント１１０に向けて送信する、または、送信しない。スキャンレポートのある部分については、ユーザへ送信してもよい。本ステップの部分として、ファイラ１３０は以下の下位ステップを実行する。
・下位ステップ２２１（ａ）において、クラスタ装置１４１からのレポートが、ファイル１３３は感染していることを理由として使用不可（、かつ、ファイル１３３はクラスタ装置１４１によって感染したのではない）ならば、ファイラ１３０はリクエストしたユーザに、クラスタ装置１４１からのレポートの情報の、少なくとも幾分かを示している、メッセージボックスを送信する。ファイラ１３０は、このメッセージボックスを、ＣＩＦＳリクエストを作成して、ユーザへ送信可能である。なぜならば、ＣＩＦＳプロトコルにより、ファイラ１３０がユーザのＩＰ（インターネットプロトコル）アドレスを知ることができるからである。ＮＦＳの場合、ファイラ１３０はリクエストされたファイル１３３のパスを示す文字列を構成し、ユーザに、この文字列を含めたメッセージを送信する。
【００４９】
本ステップにおいて、ファイル１３３に対するリクエストは受信されており、前記リクエストは処理され、そして、可能であるのならばファイル１３３は配信される。本処理は後のリクエストに対して、ステップ２１１から繰り返されてよい。
【００５０】
本発明の一般性
本発明は、ファイルに対する処理要求の別の態様に対して広範な利用可能性および一般性を有する。
【００５１】
本発明は、１以上の、以下を含むような環境に、または、それらの組み合わせに対して利用可能である。
・ファイル圧縮および解凍―ユーザへ送信するデータを解凍する目的、および、ユーザから受け取った記憶すべきデータを圧縮する目的で、クラスタのプロセッサを使用することができる。
・ファイル暗号化および解読―ユーザへ送信するデータを解読する目的、および、ユーザから受け取った記憶すべきデータを暗号化する目的で、クラスタのプロセッサを使用することができる。
・データベース簡潔化(database compaction)―ユーザへ送信するための、データベース、もしくは、他の構造を有するフォーマットのデータを簡潔(compact)にする目的、または、ユーザから受け取った記憶すべきデータを簡潔にする目的で、クラスタのプロセッサを使用することができる。
・ＣＰＵに負担をかけるタスクを専用装置から多目的コンピュータへ委託する、一般的なアウトソーシング―１つの例としては、第１形式で記憶されているデータとユーザに提示される第２形式のデータとの間の変換に、クラスタのプロセッサを使用することができる。
【００５２】
代替的実施形態
本明細書において好適な実施形態について開示したが、本発明の概念、範囲、および、思想の範囲内においてさまざまな変形例が可能である。これらの変形例は、本出願を精読の後には当業者にとって明白である。
【図面の簡単な説明】
【００５３】
【図１】分散化された装置でのウィルススキャンのためのシステムのブロック図である。
【図２】分散的ウィルススキャンのためのシステムの処理の流れ図である。
【符号の説明】
【００５４】
１００  ・・  システム                １１０  ・・  クライアント装置
１１１  ・・  ユーザ                  １１５  ・・  通信リンク
１２０  ・・  通信ネットワーク        １３０  ・・  ファイラ
１３１  ・・  大容量記憶装置          １３３  ・・  ファイル
１３５  ・・  クラスタリンク          １３７  ・・  コンフィグレーション情報
１４０  ・・  処理クラスタ            １４１  ・・  クラスタ装置
【図１】
2008305418.tif 000003
【図２】
2008305418.tif 000004