(57)【特許請求の範囲】
【請求項１】
ソフトウェア更新を自動デプロイメントするための、コンピュータネットワークにおいて用いられるソフトウェア更新システムであって、前記コンピュータネットワークは、ホストを備え、前記ホストは、オペレーティングシステムとプロセス制御ソフトウェアとを実行し、前記プロセス制御ソフトウェアは、プロセスプラントの動作を制御し、前記ソフトウェア更新システムは、
第１の１組の命令としてコンピュータで読み出し可能な媒体上に保存される第１のクライアントアプリケーションであって、前記コンピュータネットワーク内の前記オペレーティングシステムを更新するために、前記オペレーティングシステムと関連付けられたソフトウェアオブジェクトを第１のサーバから受信し、前記第１のサーバは、前記オペレーティングシステムのプロバイダによって操作される、第１のクライアントアプリケーションと、
第２の１組の命令としてコンピュータで読み出し可能な媒体上に保存される第２のクライアントアプリケーションであって、前記ソフトウェアオブジェクトに関連するメタデータを第２のサーバから受信し、前記第２のサーバは、前記プロセス制御ソフトウェアのプロバイダによって操作される、第２のクライアントアプリケーションと、
を含み、
前記メタデータは、前記ソフトウェアオブジェクトのうち、前記ホスト上で実行される前記オペレーティングシステムと前記ホスト上で実行される前記プロセス制御ソフトウェアと共に使用されるものとして承認されているものを指定し、
前記第２のクライアントアプリケーションは、前記ソフトウェアオブジェクトのうち前記ホストに対してデプロイメントすべきものを指定するようにさらに適合される、
ソフトウェア更新システム。
【請求項２】
コンピュータで読み出し可能な媒体上に第３の１組の命令として保存されるデプロイメントアプリケーションであって、１つまたは複数のソフトウェア更新を前記ホスト上に自動インストールさせる、デプロイメントアプリケーションをさらに含み、
前記第２のクライアントアプリケーションは、前記指定されたソフトウェアオブジェクトのデプロイメントを開始せよとのメッセージを前記デプロイメントアプリケーションに送信するように適合される、
請求項１に記載のソフトウェア更新システム。
【請求項３】
前記第２のクライアントアプリケーションは、
前記プロセス制御ソフトウェアと関連付けられたソフトウェアオブジェクトと、
前記プロセス制御ソフトウェアと関連付けられた前記ソフトウェアオブジェクトに関連するメタデータと、
を受信するようにさらに適合される、請求項２に記載のソフトウェア更新システム。
【請求項４】
前記コンピュータネットワークは、前記ホストが内部で動作するプロセス制御層と、前記プロセス制御層を外部ネットワークから分離させるセキュアな層とを含み、
前記第２のクライアントアプリケーションは、
前記セキュアな層内において実行され、前記第２のサーバから前記メタデータを前記外
部ネットワークを介して受信するフロントエンドモジュールと、
前記プロセス制御層内において実行され、前記フロントエンドモジュールから前記メタデータを受信するバックエンドモジュールと、
含む、請求項３に記載のソフトウェア更新システム。
【請求項５】
前記第２のクライアントアプリケーションは、前記プロセス制御ソフトウェアと関連付けられたソフトウェアオブジェクトにラッパーを適用して、ラップされたソフトウェアオブジェクトを生成するためのフォーマット変換モジュールを含み、これにより、前記ラップされたソフトウェアオブジェクトおよび前記オペレーティングシステムと関連付けられた前記ソフトウェアオブジェクトは、共通のデプロイメントアプリケーションと適合する、請求項４に記載のソフトウェア更新システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、主に標的ホスト上へのコンピュータ更新の配布に関し、特に、プロセス制御システムに対するこのような更新のデプロイメントの自動化に関する。
【背景技術】
【０００２】
オペレーティングシステム、広範に用いられているアプリケーションまたは特殊かつ複雑なソフトウェアパッケージなどのプロバイダは、深刻な事態となり得るプログラミング上の過誤、セキュリティ上の欠陥および他の問題などが見つかった場合、更新または修正を公表することが多い。例えば、オペレーティングシステムのベンダーは、或る特定のバージョンのオペレーティングシステムが特定のイベントに適切に対処できないことまたは特定の通信ポートを不正アクセスから保護できていないことを発見する場合がある。数十〜数千ファイルに及び得るオペレーティングシステムを新規公開する代わりに、ベンダーは典型的には、１つまたは複数のオブジェクト（例えば、公開済みバージョンのオペレーティングシステム内のオブジェクトを交換または補完するためのダイナミックリンクライブラリ（ＤＬＬ））を作成する。同様に、標準オペレーティングシステム上のアプリケーションとして実施されるソフトウェアソリューションのプロバイダは、例えば、１つまたは複数の顧客に対してソフトウェアソリューションが公開された後になって初めて問題が見つかったため、パッチを顧客に直接公開したいと望む場合がある。オペレーティングシステムの複雑度は増大する一方であり、また、ソフトウェアソリューションも特化してきているため、典型的な環境において必要とされる更新の数は高いままとなっている。
【０００３】
その上、電子攻撃の脅威に起因して、アンチウイルスデータベースを定期的に更新する必要性も出てきた。これらのデータベースは、一般的に知られているように、アンチウイルスソフトウェアによって検出され得る、ネットワークトラフィックおよびデータパターンを搬送するフラグパケットまたはフレーム中のデータパターンを保存していることが多い。新規な形態のマルウェア（例えば、ウイルス、ワーム、トロイの木馬、スパイウェア）がほとんど毎日出現しているため、アンチウイルスデータベースは、対応するアンチウイルスソフトウェアの有効性を保持するために更新を頻繁に行わなければならない。さらに、インターネットを通じて通信をしているホストの数は増え続けているため、サイバー保護の重要性も高まり続けている。
【０００４】
手短に言うと、今日、多くのソフトウェア製造業者は、既に顧客に公開されているソフトウェア製品に対する定期的更新を要求するかまたは少なくとも推奨している。このような更新の送達およびインストールを行うプロセスを簡単にするために、いわゆる商用オフザシェルフ（ＣＯＴＳ）デプロイメント（ｄｅｐｌｏｙｍｅｎｔ）アプリケーションを提供しているソフトウェア製造業者もある。例えば、マイクロソフト（登録商標）社は、Ｗｉｎｄｏｗｓ（登録商標）サーバ更新サービス（ＷＳＵＳ）を作成している。一般的に、ＷＳＵＳは、ローカルネットワーク内のホスト上で動作するダウンロード可能なクライアントコンポーネントを含み、外部サーバコンポーネントと接触して更新を受信し、サーバコンポーネントから受信した更新を、或るバージョンのＷｉｎｄｏｗｓ(登録商標)オペレーティングシステムを実行している複数のコンピュータ上にインストールする。このようにして、ＷＳＵＳにより、各個々のコンピュータ上に別個に更新をインストールする必要性が無くなる。
【０００５】
パーソナルコンピュータのユーザが、対応するソフトウェアのプロバイダによって維持されている専用ウェブサイトから直接（例えば、Ｗｉｎｄｏｗｓ(登録商標)更新アプリケーションを用いて）更新を安全に入手することができる一方、比較的大型のローカルエリアネットワークをサポートしている企業および他の団体は典型的には、１つまたは複数の中間サーバを介して更新を発行している。ネットワーク管理者は、利用可能な更新のリストを調査し、利用可能な更新をインストールすべき時期を決定し、選択された更新をローカルネットワーク内のホストに配布することを望む場合がある。さらに、ＷＳＵＳは、企業ネットワーク上で親として機能しているＷＳＵＳホストが１つまたは複数の更新を受信しそしてこれらの更新を１つまたは複数の子ＷＳＵＳホストに提供して後でユーザワークステーションに配布できるように、親／子トポロジーをサポートする。
【０００６】
ネットワーク管理者による承認は、オペレーティングシステム環境の変化による影響を受け易い特殊なソフトウェアシステムを実行している団体またはその一部に、特に関係が深い。ホスト上で実行している特定のシステムおよびアプリケーションへ更新を行う効果は不明であることが多い。例えば、セキュリティ更新に起因して、ソフトウェアシステムによって用いられている通信チャンネルまたはポートに悪影響が出る場合がある。そのため、多くの場合、ソフトウェアシステムの製造業者は、オペレーティングシステム更新に対する承認または拒否を行い易いことが多い。
【０００７】
このような複雑なソフトウェアシステムの一例として、Ｅｍｅｒｓｏｎ（登録商標）プロセス管理によって販売されているＷｉｎｄｏｗｓ(登録商標)ベースのＤｅｌｔａＶ（登録商標）制御システムがある。一般的に、ＤｅｌｔａＶは、産業プロセスの管理および制御を行うためのデジタル自動化システムである。一般的に知られているように、多くの現代の産業プロセスは、特定の制御戦略に従って１つの分野における物理的機能を自動実行するコントローラおよび多様なデバイスを備えている。多くの制御戦略は極めて複雑であるため、技術者、オペレータおよび専門家がチームを組んでＤｅｌｔａＶなどの包括的なソフトウェアソリューションを作成して、このような制御戦略を実行する加工プラントを管理する必要がある。今日、ライフサイエンス、バイオテクノロジー、石油、ガス、化学薬品、パルプおよび紙、ならびに食品および飲料などの多様な産業に従事しているプラントオペレータが、多数のプロセスプラントにおいてＤｅｌｔａＶを実行している。
【０００８】
ＤｅｌｔａＶは複数のアプリケーションを含み、これらのアプリケーションは、異なるホスト（例えば、プロセスプラント内の多様な場所にあるワークステーション）内に保存され、これらのホストによって実行される。所望ならば、ＤｅｌｔａＶアプリケーションをいくつかの施設またはプロセス制御プラントにわたってネットワーク化することもできる。例えば、１つ以上のオペレータワークステーション内に存在する構成アプリケーションは、ユーザがプロセス制御モジュールを生成または変更し、これらのプロセス制御モジュールをデータハイウェイを介して専用の配布先コントローラにダウンロードすることを可能にする。別の例として、１つ以上のオペレータワークステーション上で実行可能な視聴アプリケーションは、コントローラアプリケーションからのデータをデータハイウェイを介して受信し、ユーザインターフェースを用いてこのデータをプロセス制御システムの設計者、オペレータまたはユーザに表示する。
【０００９】
ＤｅｌｔａＶなどのプロセス制御システムは、Ｗｉｎｄｏｗｓ(登録商標)などの標準的オペレーティングシステム（ＯＳ）と適合し得、例えば、ＯＳ更新のうちいくつかをこのプロセス制御システムを実行しているワークステーションにインストールすることが適している場合がある。しかし、その他のＯＳ更新のいくつかはプロセス制御システムを適切に動作させるのに不要である場合があり、さらに他のＯＳ更新がプロセス制御システムにとって有害である場合もある。さらに、プロセス制御システムの要求に従ってアンチウイルス更新がいくつかのカテゴリに分類される場合もある。さらに、製造業者がプロセス制御システムワークステーションの更新をプラントオペレータの現場において行うことを望む場合もある。これらの理由および他の理由のため、プロセス制御システムを実行しているホストは、極めて特殊なソフトウェア更新の組み合わせを必要とする場合がある。しかし、ＷＳＵＳなどのＣＯＴＳアプリケーションは、プロセス制御システムなどの特殊なソフトウェアアプリケーションの更新のデプロイメントに適合するように設定されていない。そのため、ＯＳ更新においてプロセス制御システムのオペレータができることといえば、更新を手入力で承認するかまたは拒絶することでＣＯＴＳアプリケーションを使用することくらいである。
【００１０】
さらに、プロセス制御システムワークステーションは典型的にはプラントオペレータのより大型のネットワークのごく一部のみを規定しているため、このようなワークステーションに適した更新が、プラントオペレータのネットワーク内で動作しているがプロセス制御システムとは無関係であるホスト上にインストールされている更新と同一ではない場合がある。そのため、ネットワーク管理者は、各ホストのオペレーティングシステムが同一バージョンである場合でも、ローカルネットワーク内の異なるホストに対する異なる要求を追跡しなければならない場合がある。他の団体において、プロセス制御システムオペレータが専用ワークステーションを含むプロセス制御ネットワークのネットワーク管理を担当し、企業ネットワーク管理者がネットワークの他の部分を担当する場合がある。しかし、このような責任の分担は実際的ではない場合がある。例えば、プロセス制御システムワークステーションに対するＷＳＵＳ更新は典型的には、企業ネットワーク内のＷＳＵＳホストを通じて進行する。ＷＳＵＳホストは、特定のホスト（すなわち、プロセス制御システムワークステーション）が適切にアップグレードされていない旨を企業ネットワーク管理者に通知し得、その場合、プロセス制御システムオペレータは、なぜプロセス制御ネットワーク内におけるアップグレードのうち一部が省略されたのかその理由を後で説明しなければならない場合がある。
【００１１】
これらの要素および他の要素があると、生産性の損失、明瞭性の欠如、およびネットワーク管理の複雑性の増大に繋がる。より小さな問題として、企業またはローカルネットワークの管理者がソフトウェア更新の選択または適用において過誤を犯すか、または、必ずしもソフトウェア更新を優先度の高いタスクとして取り扱っていない可能性もある。その結果、多くの重要な更新が長期間にわたってインストールされなくなる。そのため、プロセス制御システムは、システムクラッシュを修正するための更新の場合と同様に、セキュリティまたはシステムインテグリティに対する脅威に晒され続けることになる。オペレータは、専有技術から離れてよりオープンかつ相互運用可能な標準およびシステムに近付いているため、プロセス制御産業におけるサイバー攻撃の脅威は、より現実味を帯びてきている。さらに、多くの場合において、セキュリティ脅威とは無関係の更新も、システムの安定性および信頼性に関連する問題を取り扱う更新と同様に重要である。
【発明の概要】
【課題を解決するための手段】
【００１２】
ソフトウェア更新システムは、顧客システムに対する更新に関連する承認済みのソフトウェア更新またはメタデータを自動デプロイメントする際、前記承認済みのソフトウェア更新を前記顧客システムのオペレータによる手入力による承認無く１つまたは複数の標的コンピュータ上に安全にインストールできるように、自動デプロイメントを行う。前記ソフトウェア更新システムは、前記顧客システム内において動作するホストにダウンロード可能なクライアントアプリケーションと、メタデータを管理するための前記顧客システムの外部で動作するサーバアプリケーションと、いくつかの場合においてソフトウェア更新とを含み得、前記顧客システム内にインストールすべきソフトウェア更新を決定し得、前記適切なメタデータおよび／または前記ソフトウェア更新を前記クライアントアプリケーションに送達し得る。
【００１３】
いくつかの実施形態において、前記顧客システムは、より大型のネットワーク（例えば、インターネット）に晒される中間ネットワーク層（例えば、いわゆる「非武装地帯」またはＤＭＺ）と、顧客システムを操作している顧客の事業活動に特有のアプリケーションを実行するための特殊なネットワーク層とを含む。これらの実施形態のうち少なくともいくつかにおけるクライアントアプリケーションは、前記ＤＭＺ内において動作するフロントエンドモジュールと、前記特殊なネットワーク層内において動作するバックエンドモジュールとを含む。前記フロントエンドモジュールは、サーバアプリケーションと通信して、利用可能なソフトウェア更新および／または実際のソフトウェア更新に関する情報をダウンロード可能なオブジェクトとしてリクエストする。いくつかの状況において、前記フロントエンドモジュールは、同一サーバ（またはＤＭＺ内の別のサーバ）上で実行している他のアプリケーション（例えば、アンチウイルス更新アプリケーションまたはＯＳ特有のデプロイメントアプリケーションの上流）と通信して、前記特殊なネットワーク層内へインストールされるものとして承認されたアンチウイルスまたはＯＳソフトウェア更新を指定する。その結果、前記バックエンドモジュールは、前記フロントエンドモジュールと通信して、前記ソフトウェア更新および前記メタデータを前記ＤＭＺから取り出し、必要ならば前記取り出されたソフトウェア更新および前記メタデータを復号および解凍し、前記特殊なネットワーク層内への前記ソフトウェア更新の自動インストールを開始する。一実施形態において、前記バックエンドモジュールは、前記特殊なネットワーク層内において実行しているＣＯＴＳデプロイメントアプリケーションへ適切なコマンドを発行することにより、前記自動インストールをトリガする。
【００１４】
いくつかの実施形態において、前記特殊なネットワーク層は、プロセス制御層である。このプロセス制御層において、ソフトウェアベースのプロセス制御システムが１つまたは複数のオペレータワークステーション上で作動して、プロセスプラントのプロセス制御戦略を実行するための各物理的ステップを行う１つまたは複数のコントローラおよび複数のフィールドデバイスを有する前記プロセスプラントを管理および制御する。前記プロセス制御システムの製造業者またはベンダーは、前記プロセス制御システムに特有の更新を生成および分類し、かつ、アンチウイルスソフトウェアおよびオペレーティングシステムの各製造によって公開された更新のうち多様なバージョンのプロセス制御システムに適した更新を特定するように、前記ソフトウェア更新システムを管理することができる。そのため、クライアントアプリケーションからのクエリに応答して、サーバアプリケーションは、可能な更新のレポートをプロセス制御システム、アンチウイルスデータベースおよびオペレーティングシステムに対して生成し、前記レポートを前記クライアントアプリケーションに送信することができる。いくつかの実施形態において、前記クライアントアプリケーションは、前記レポートをＣＯＴＳデプロイメントアプリケーション（例えば、ＷＳＵＳ）に適用して、前記オペレーティングシステムへの更新のダウンロードおよび／またはインストールをトリガする。
【００１５】
いくつかの実施形態において、前記サーバアプリケーションまたは前記クライアントアプリケーションは、前記プロセス制御システムに対する更新にラッパーを適用することで、対応するオペレーティングシステムのためのＣＯＴＳデプロイメントアプリケーションが前記プロセス制御システムの製造業者の代わりにこれらの更新をインストールできるようにする。この目的のため、前記サーバアプリケーションまたは前記クライアントアプリケーションは、前記ＣＯＴＳの製造業者によって提供されるアプリケーションプログラミングインターフェース（ＡＰＩ）を適用し得る。前記ラッパーは、ラッパー更新を配布すべき１つのまたは複数のロケーションならびに他のインストレーションパラメータを指定し得る。所望ならば、前記ラッパーは、セキュリティを保証するために、当該プロセス制御システムの製造業者のデジタル署名を含んでもよい。
【００１６】
いくつかの実施形態において、前記クライアントアプリケーションは、特定のスケジュールに従って、ユーザコマンドに応答して、または他の任意の指定された原理に基づいて、前記サーバアプリケーションにクエリを送るように構成可能である。前記クライアントアプリケーションは、特殊なネットワーク層（例えば、プロセス制御ネットワーク）内において実行しているソフトウェアのバージョンを前記サーバアプリケーションに報告し得、前記サーバアプリケーションは、前記顧客システムにダウンロードすべき更新が有れば当該更新を特定し得る。他の実施形態において、前記クライアントアプリケーションは、顧客の特定用情報を前記サーバアプリケーションに報告し、前記サーバアプリケーションは、前記顧客システム内において実行している特殊なソフトウェアのバージョンを前記顧客特定用情報に基づいて特定する。
【図面の簡単な説明】
【００１７】
【図１】通信システムの模式図である。この通信システムは、顧客システムを含む。この顧客システムは、プロセスプラントの動作を管理するためのプロセス制御層と、プロセス制御システムのベンダーによって操作されるプロセス制御システムベンダー層と、顧客システムとプロセス制御システムベンダー層との間で配布された、ソフトウェア更新を顧客システムに自動デプロイメントするためのソフトウェア更新システムとを含む。
【図２】図１中に示す通信システムのコンポーネントのうちいくつかのブロック図である。
【図３】メッセージシーケンス図であり、図１の通信システムにおけるソフトウェア更新の自動デプロイメントの一例を示す。
【図４】ブロック図であり、図１中に図示されるソフトウェア更新システムによってサポートされる、メッセージの相互作用およびデータ構造の一例を示す。
【図５】図１のソフトウェア更新システムの一部として動作するサーバアプリケーションのブロック図である。
【図６】図１のソフトウェア更新システムの一部として動作するクライアントアプリケーションのブロック図である。
【図７】図５のクライアントアプリケーションがプロセス制御システムのオペレータに対して表示することが可能な例示的なインターフェース画面を示す。
【図８】図４のサーバアプリケーションによって実行され得る顧客からのクエリを処理するための例示的な方法のフロー図である。
【図９】図４のサーバアプリケーションによって実行され得る顧客からの更新リクエストを処理するための例示的な方法のフロー図である。
【図１０】図５のクライアントアプリケーションによって実行され得るソフトウェア更新をクエリ送信およびリクエストするための例示的な方法のフロー図である。
【発明を実施するための形態】
【００１８】
図１は、通信システム１０を示す。通信システム１０において、ソフトウェア更新システム１２は、サーバアプリケーション１４およびクライアントアプリケーション１６を含む。クライアントアプリケーション１６は、フロントエンドモジュール１８およびバックエンドモジュール２０を有する。ソフトウェア更新システム１２は、顧客システム２６のプロセス制御層２４内において動作しているいくつかのホストに対し、ソフトウェア更新を確実かつ効率的にデプロイメントする。本明細書中、ソフトウェア更新システム１２をソフトウェア更新送達サービス（ＳＵＤＳ）とも呼び、アプリケーション１４および１６をそれぞれＳＵＤＳサーバおよびＳＵＤＳクライアントと呼ぶ。プラントオペレータ（例えば、化学プラント、石油精製所または水処理施設を経営している企業）は、プラントＬＡＮ層３２およびプラント「非武装地帯」（ＤＭＺ）層３４により、プロセス制御層２４をインターネット３０から分離し得る。例示的な通信システム１０において、プラントＬＡＮ層３２は、ルータ／ファイアウォール４０を介してインターネット３０に接続され、プラントＤＭＺ層３４は、ルータ／ファイアウォール４２を介してプラントＬＡＮ層３２に接続される。さらに、スイッチ４４により、プロセス制御層２４はＤＭＺ層３４に接続される。
【００１９】
プラントＬＡＮ層３２は、任意の適切な通信標準（例えば、ＩＥＥＥ８０２．３イーサネット（登録商標））と適合する通信リンク５４に接続されたいくつかのワークステーション５０および５２を含む。典型的な場合のように、ワークステーション５０および５２は、ネットワーキング能力（例えば、マイクロソフト社によって製造されているＷｉｎｄｏｗｓ（登録商標））を有するオペレーティングシステム５６を共有する。ユーザは、多様な団体としての機能において、ワークステーション５０を操作して、プラントオペレータの日々の活動を実施する。例えば、プラントオペレータは、技術者、会計士、マーケティングスタッフおよび他の人員を用い得る。ワークステーション５０を操作するユーザは、１組の特定の許可を有し得るが、これらの許可は典型的には、これらのユーザのプロセス制御層２４へのアクセスは許可しない。一方、これらのユーザは、インターネット３０上のホストへのほとんど無制限のアクセスを有するため、ウイルス、マルウェア、ハイジャック試行および他のサイバー脅威へ晒されるリスクが比較的高くなる。
【００２０】
プラントＬＡＮ層３２に配置されているかまたはプラントＬＡＮ層３２の下側に配置されているコンピュータホストを保護するために、ネットワーク管理者（ＩＴ人員とも呼ばれる）は、ワークステーション５２を操作して、通信リンク５４上のトラフィックのモニタリング、ルータ／ファイアウォール４０上で実行しているかまたはワークステーション５０および５２上でローカルに実行しているファイアウォールアプリケーションの構成、多様なユーザへの許可の割り当て、プラントＬＡＮ層３２内の悪質なソフトウェアの特定および除去などを行うことができる。さらに、ネットワーク管理者は、典型的にはオペレーティングシステム５６およびアンチウイルスソフトウェアの各ベンダーからの対応する通知を受信した際、オペレーティングシステムおよびアンチウイルス更新をワークステーション５０および５２上にインストールすることができる。
【００２１】
プラントＤＭＺ層３４は、いくつかのサーバ（例えば、アンチウイルスサーバ６２、データサーバ６４、および履歴サーバ６６）を含み得る。公知のように、ＤＭＺ層は一般的には、より大型のネットワーク（例えば、インターネット３０）への直接的露出をいくつかのホストのみ（すなわち、サーバ６２〜６６、ＤＮＳサーバ（図示せず）、ウェブサーバ（図示せず）など）に限定することにより、ローカルネットワークにさらなるセキュリティを提供する。さらに、上流の更新サーバ７０は、以下により詳細に説明するように、クライアントアプリケーション１６のフロントエンドモジュール１８を実行して、ソフトウェア更新の自動デプロイメントおよび／またはソフトウェア更新に関連するメタデータの伝搬をサポートし得る。ＤＭＺ層３４は一般的には、全ての入来インターネットトラフィックおよび送出インターネットトラフィックを１つまたは複数のホストを介して方向付けることにより顧客システム２６のセキュリティを向上させる任意の中間ネットワーク層でよい点に留意されたい。
【００２２】
続いて図１を参照して、プロセス制御層２４は、いくつかのオペレータワークステーション７１および７２を含み得る。これらのオペレータワークステーション７１および７２はそれぞれ、オペレーティングシステム５６およびプロセス制御システム７４（例えば、ＤｅｌｔａＶ）を実行しており、例えばプロセスプラント７５を制御する。プロセス制御層２４は、いくつかのサーバ（例えば、アプリケーションサーバ７６および構成サーバ７８）も含み得る。さらに、この例示的な構成において、下流サーバ８０は、クライアントアプリケーション１６のバックエンドモジュール２０を実行する。下流サーバ８０は、ソフトウェア更新の実際のデプロイメントをプロセス制御層２４内のホストに対して行い、下流サーバ８０は、更新サーバとも呼ばれる。いくつかの実施形態において、下流サーバ８０は、ゲートウェイのみとして動作するように構成され、プロセス制御システム７４を実行しない。
【００２３】
動作時において、クライアントアプリケーション１６のフロントエンド１８は、ユーザインターフェースからのコマンドまたは事前構成されたイベント（例えば、タイマーの終了）に応答して、活性化される。活性化後、クライアントアプリケーション１６は、プロセス制御システム７４およびオペレーティングシステム５６に対し、例えばベンダー更新サーバ８６上のプロセス制御システムベンダー層８４内において実行し得るサーバアプリケーション１２からの利用可能な更新のリストをリクエストする。クライアントアプリケーション１６からのリクエストに応答して、サーバアプリケーション１２は、ソフトウェア更新が利用可能か否かと、利用可能な更新のうち顧客システム２６内のプロセス制御システム７４およびオペレーティングシステム５６の各バージョンと適合するものとを決定する。その後、サーバアプリケーション１２は、利用可能な更新のリストをクライアントアプリケーション１６に送信する。次に、クライアントアプリケーション１６は、利用可能な更新のリストのうち任意の更新がプラントＤＭＺ層３４内のファイルシステムにダウンロードされていないか否かについて確認する。クライアントアプリケーション１６がソフトウェア更新が必要であると決定した場合、クライアントアプリケーション１６は、対応するリクエストをフォーマットし、サーバアプリケーション１４に送信する。
【００２４】
クライアントアプリケーション１６からのリクエストに応答して、サーバアプリケーション１４は、適切なソフトウェア更新および／またはソフトウェア更新に関連するメタデータをクライアントアプリケーション１６に送信して、ソフトウェアおよび／またはメタデータをＤＭＺ層３４内の特定のロケーション内に保存できるようにする。その後、フロントエンドモジュール１８は、バックエンドモジュール２０と共に機能して、ソフトウェア更新およびメタデータを下流サーバ８０に確実に送達し、最終的にはプロセス制御層２４内の多様なホスト（例えば、ワークステーション７１および７２）に確実に送達できるようにする。さらに、以下により詳細に説明するように、いくつかの実施形態におけるクライアントアプリケーション１６は、サーバアプリケーション１４から受信された承認済みのソフトウェア更新のリストに従って各ベンダーまたは製造業者からのソフトウェア更新を入手するように、１つまたは複数のＣＯＴＳアプリケーション（例えば、ＷＳＵＳ）を自動構成する。
【００２５】
さらに図１を参照して、上流更新サーバ７０は、クライアントアプリケーション１６のフロントエンドモジュール１８に加えて、上流ＷＳＵＳ９０およびアンチウイルス勧誘アプリケーション９２（例えば、シマンテックライブ更新管理者（ＬＵＡ））を実行し得る。さらに、下流サーバ８０は、例えば、下流ＷＳＵＳ９４およびアンチウイルスデプロイメントアプリケーション９６（例えば、シマンテックエンドポイント保護マネージャ（ＳＥＰＭ））を実行し得る。アンチウイルス勧誘アプリケーション９２は、対応する製造業者（例えば、シマンテック）からのアンチウイルス更新を勧誘し、一般的にはＤＭＺ層３４またはプラントＬＡＮ層３２内の任意のホスト上に存在し得る。一方、アンチウイルスデプロイメントアプリケーション９６は、アンチウイルス勧誘アプリケーション９２によって取り出されたアンチウイルス更新をプロセス制御層２４内のホストに対してデプロイメントする。同様に、上流ＷＳＵＳ９０および下流ＷＳＵＳ９４は、親／子トポロジーを実行する。詳細には、上流ＷＳＵＳ９０は、ＯＳ製造業者（例えば、Ｍｉｃｒｏｓｏｆｔ）からのソフトウェア更新を勧誘し、下流ＷＳＵＳ９４は、更新をプロセス制御層２４内のホストに配布するように構成される。プロセス制御層２４は下流（または更新）サーバ８０を介してＤＭＺ層３４に連結することができ、これにより別のレベルの保護をプロセスプラント７５に提供することができる点にさらに留意されたい。
【００２６】
いくつかの実施形態において、バックエンドモジュール２０は、フロントエンドモジュール１８のクエリの後、ＤＭＺ層３４内のロケーションから更新を取り出す。バックエンドモジュール２０は、比較的「軽量の」アプリケーションであり得、ファイル転送機能を行い、取り出されたオブジェクトを必要に応じて解凍し、復号アルゴリズムを適用して、取り出されたオブジェクトのインテグリティおよびセキュリティを検証する。この目的のため、バックエンドモジュール２０は、当該分野において公知の任意の適切な技術（例えば、デジタル証明書の付与）を適用することができる。その後、バックエンドモジュール２０は、プロセス制御システム７５に特有のオブジェクトを下流ＷＳＵＳ９４または別の適切なＣＯＴＳデプロイメントアプリケーションによって認識されているフォーマットに変換し（すなわち、オブジェクトを「ラップ」し）、これらの変換またはラップされたオブジェクトを下流ＷＳＵＳ９４に提供し、配布し得る。所望ならば、バックエンドモジュール２０は、下流ＷＳＵＳ９４とさらに通信して、ラップされたオブジェクトの配布が承認されたことを指定し、これにより、その後の（必要ならば即時の）変換されたオブジェクトのプロセス制御層２４を通じた配布をトリガすることができる。例えば、Ｍｉｃｒｏｓｏｆｔ社からは、Ｗｉｎｄｏｗｓ(登録商標)オペレーティングシステムと無関係のオブジェクトをラップすることで、これらのオブジェクトをＷＳＵＳアプリケーションを介したデプロイメントと適合させるためのＡＰＩが提供されている。いくつかの実施形態において、プロセス制御ベンダー層８４においてオブジェクトをラップすることができる。
【００２７】
実際は、これらの実施形態におけるバックエンドモジュール２０は、プログラムによりソフトウェアオブジェクトおよび承認データを下流ＷＳＵＳ９４に注入して、配布およびインストールさせる。そのため、バックエンドモジュール２０は、ソフトウェア更新の間接的デプロイメントを実施している。この理由のため、バックエンドモジュール２０は、ソフトウェア更新の実際の配布またはインストレーションの複雑な論理をサポートする必要は無く、ＷＳＵＳ９４に対するアドオンとして機能すればよい。しかし、別の実施形態において、配布およびインストレーション論理をバックエンドモジュール２０内に設けることもでき、その場合、バックエンドモジュール２０は本格的なデプロイメントアプリケーションとして機能する。
【００２８】
上記したように、ソフトウェア更新システム１２は、プロセス制御システム７４と、オペレーティングシステム５６と、顧客システム２６において用いられるアンチウイルスソフトウェアと、所望ならばプロセス制御層２４内にインストールされたかまたはインストール可能な他のソフトウェア製品とに関連する更新を（直接的かつ／または間接的な様式で）自動デプロイメントするように構成することができる。このようにして、プロセス制御システム７４の製造業者またはベンダーは、更新をデプロイメントするプロセスを簡略化することができるだけでなく、各更新のインストール後にプロセス制御システム７４が引き続き適切に動作することを保証することができる。もちろん、プロセス制御システム７４のベンダーは、単一の更新サーバ（例えば、ベンダー更新サーバ８６）を操作して、複数の顧客システムと相互作用することができる。そのため、ソフトウェア更新システム１２は、１つのサーバアプリケーション１４および複数のクライアントアプリケーション１６を含み得る。ユーザの作業を簡略化するために、ベンダー更新サーバ８６は、クライアントアプリケーション１６のコピーをダウンロード可能かつ容易にインストール可能なオブジェクト９７として保存することができる。所望ならば、オブジェクト９７を圧縮してもよい。更新を適切にデプロイメントするために、ソフトウェア更新システム１２は好適には、各顧客と、現在使用されているプロセス制御システム７４の各バージョンと、顧客特有のソフトウェア更新の展開に必要な他の情報とに関連するデータを保存している１つまたは複数のデータベースを含むかまたはこのようなデータベースと協働するとよいことがさらに理解される。
【００２９】
図１に示すように、ベンダー更新サーバ８６は、顧客システム（例えば、顧客システム２６）の構成に関連する情報を保存する構成レポジトリ９８に通信可能に連結される。各顧客システムに対して、構成レポジトリ９８は、プロセス制御層２４内にインストールされているプロセス制御システム７４のバージョンの識別子と、オペレーティングシステム５６のバージョンの識別子と、プロセス制御システム７４内のアンチウイルスソフトウェアまたはデータベースの最終更新の日付などを保存し得る。
【００３０】
ベンダー更新サーバ８６は、更新レポジトリ１００にも接続され得る。更新レポジトリ１００において、ベンダーは、プロセス制御システム７４の各ソフトウェア更新のためのソフトウェアオブジェクトを保存する。各バージョンのプロセス制御システム７４は典型的には異なるソフトウェア更新を必要とすることが多いため、更新レポジトリ１００は、バージョンに特有の更新のリストを維持し得る。更新レポジトリ１００はまた、プロセス制御システム７４に対する更新および他のベンダーからのソフトウェアコンポーネント（例えば、オペレーティングシステム５６）に対する更新双方に関連するメタデータも保存し得る。更新レポジトリ９８および１００はそれぞれ、任意の所望の様式で（例えば、別個のデータサーバにおいて、ベンダー更新サーバ８６のファイルシステム内に保存されている関係データベース内に、コンピュータによる読み出しが可能な媒体（例えば、コンパクトディスク（ＣＤ）またはデジタル多用途ディスク（ＤＶＤ））上に保存されているファイルまたは記録の集合として）実装することができる。所望ならば、更新レポジトリ９８および１００を１つの一体型レポジトリとして実装してもよい。
【００３１】
一般的には、メタデータとは電子情報であり、デプロイメントアプリケーション（例えば、下流ＷＳＵＳ９４）がインストールのために適切なコンピュータまたは他のノードを標的として設定する際に用いられる。例えば、通信システム１０において用いられるメタデータは、顧客によって用いられるプロセス制御システムの特定用情報（例えば、プロセス制御システム７４のベンダーから割り当てられた独自の番号）を含み得る。実施形態に応じて、特定用情報は、例えばプロセス制御層２４または顧客システム２６のレベルにおいて、割り当てることができる。下流ＷＳＵＳ９４は、下流サーバ８０において対応するローカルに保存されているパラメータを比較することで、特定のソフトウェア更新が適切に下流ＷＳＵＳ９４にルートされていることを検証することができる。他の例として、メタデータは、標的コンピュータの名称または識別子、更新中に含まれるソフトウェアオブジェクトの名称、更新挙動（例えば、リブート要求、サービス妨害）、ファイルサイズ、更新の詳細、インストール命令を含み得る。
【００３２】
更新レポジトリ１００は、プロセス制御システム７４および他のソフトウェア双方に対する更新に関連するメタデータを保存することができ、一方、更新レポジトリ１００内の実際のソフトウェアオブジェクトは典型的には、プロセス制御システム７４のみに対応する。他の実施形態において、更新レポジトリ１００は、他のソフトウェア製品に対するソフトウェアオブジェクトを含み得る。これらの実施形態において、プロセス制御システム７４のベンダーは実際は、全てのソフトウェア更新の単一の直接的ソースとなる。しかし、いくつかの顧客にとってはこの配置構成が便利であり得るが、他の顧客は当該団体のネットワーク構造（例えば、プラントＬＡＮ層３２およびＤＭＺ層３４）を特殊なソフトウェア（例えば、プロセス制御システム７４）のベンダーに露出することを好まない場合もある点に留意されたい。
【００３３】
プロセス制御システムベンダー層８４内において管理されているデータのセキュリティをさらに向上させるために、セキュアなインターネット対面型ホスト１０２を、インターネット３０に接続されたルータ１０４と、レポジトリ９８および１００を保存しているベンダー更新サーバ８６およびデータサーバとの間に配置することができる。そのため、潜在的な侵入者が私的施設（例えば、レポジトリ９８および１００内に保存されている顧客システム２６）に関する情報にアクセスするのがより困難になる。
【００３４】
さらに図１を参照して、プロセス制御層２４は、ワークステーション７１および７２によるプロセスプラント７５へのアクセスの経路となり得る第１のスイッチ１１０および第２のスイッチ１１２を含む。典型的な場合のように、プロセスプラント７５は、配布型プロセス制御を１つ以上のコントローラ１２０を用いて実行する。これらのコントローラ１２０はそれぞれ、入力／出力（Ｉ／Ｏ）デバイスまたはカード１２６（例えば、フィールドバスインターフェース、プロフィバスインターフェース、ＨＡＲＴインターフェース、標準的４−２０ｍＡインターフェース）を介して、１つ以上のフィールドデバイス１２２またはスマートデバイス１２４に接続される。フィールドデバイス１２２および１２４は、プロセスプラント７５における各物理的機能（例えば、センサ、バルブ、ポンプ、送信器、ポジショナ）を行う任意の種類のデバイスでよい。
【００３５】
明瞭性のため、図２は、ブロック図において上述したコンポーネントのうちのいくつかを示す。図２中の多様なブロックを接続している矢印は必ずしも直接的接続に対応せず、これらの矢印は、ソフトウェア更新システム１２と、ＷＳＵＳコンポーネント９０および９４と、アンチウイルスアプリケーションコンポーネント９２および９６と、オペレーティングシステム５６のベンダー１３０と、顧客システム２６において用いられるアンチウイルスソフトウェアのベンダー１３２との間での情報の伝搬様態を示すためのみに設けられている。一般的に、ソフトウェア更新システム１２は、任意の数のソフトウェア製造業者またはベンダーと相互作用し得る。また、クライアントアプリケーション１６は、必ずしも図１および図２に示す例示的な実施形態の場合のような２つの別個のモジュールを含まなくてもよい。例えば、いくつかの顧客システムは、セキュアなネットワーク層（例えば、ＤＭＺ層３４）を全く実装しない場合があり、これらの実施形態におけるクライアントアプリケーション１６は、上記したモジュール１８および２０の機能を併せ持った単一のモジュールを含み得る。
【００３６】
図２を参照して、ベンダー１３０および１３２は、ソフトウェア更新、メタデータ、またはこれら両方をソフトウェア更新システム１２に供給し得る。上述した理由のため、顧客は、単一のエンティティからではなく対応するベンダーからソフトウェア更新を取り出すことを好み得る。しかし、特殊なソフトウェアのベンダーは、例えば特殊なソフトウェアとベンダー１３０および１３２から提供される更新との間の相互作用を試験および承認できない場合がある。必要な試験は、適合性試験モジュール１３４を用いて、手入力によりまたは自動的に行うことができる。もちろん、特殊なソフトウェアのベンダーは、ベンダー１３０および１３２からのソフトウェア更新のうち承認すべきものを任意の適切な様式で特定することもできる。サーバアプリケーション１４がベンダー１３０および１３２の代わりにソフトウェア更新を直接提供しない状況において、当該特殊なソフトウェアのベンダーは、承認された更新のリストと、必要に応じて、承認された更新と関連付けられたメタデータとを提供し、クライアントアプリケーション１６はこの情報を用いて、例えば下流ＷＳＵＳ９４およびアンチウイルスデプロイメントアプリケーション９６を構成することができる。
【００３７】
次に、ソフトウェア更新を自動デプロイメントするように動作するいくつかのコンポーネント間の例示的なメッセージ交換を図３に示す。さらに、ソフトウェア更新を自動デプロイメントするためのシステム（例えば、ソフトウェア更新システム１２）が１つまたは複数のソフトウェアベンダーからの更新およびメタデータを管理する様態をより深く説明するために、図４は、プロセス制御システムベンダー層８４（図１を参照）におけるいくつかのメッセージとデータ構造との間の相互作用を模式的に示す。次に、図５および図６はそれぞれ、図１中に示す通信システムにおいて動作し得る例示的なサーバおよびクライアントアプリケーションのブロック図を示す。
【００３８】
図３を参照して、ＳＵＤＳサーバ１５０、ＳＵＤＳフロントエンドクライアント１５２、ＳＵＤＳバックエンドクライアント１５４、およびＣＯＴＳデプロイメントアプリケーション１５６は、顧客システムに対するソフトウェア更新を自動的かつ確実にデプロイメントするように、対応する通信システムの異なる部分において動作する。例えば、コンポーネント１５０〜１５４は、図１の通信システム１０において顧客システム２６に対する更新をデプロイメントするように動作し得、従って、図３に示すメッセージングをコンポーネント１４、１８、２０、および９４によって実施することができる。セキュリティ対策として、ＳＵＤＳフロントエンドクライアント１５２は、対応するコンピュータネットワークのＤＭＺにおいて実行し得、ＳＵＤＳバックエンドクライアント１５４は、特殊なネットワーク層（例えば、プロセス制御層）において（または特殊なネットワーク層に通信可能に連結されているサーバ上で）実行し得る。ＳＵＤＳサーバ１５０は、顧客システム内にインストールされている特殊なソフトウェアシステムのベンダーのコンピュータネットワークにおいて実行し得る。しかし、一般的に、コンポーネント１５０〜１５４は、任意の適切なトポロジー、任意の数のネットワーク層などを有する通信ネットワークにおいて動作することが可能である。さらに、ＳＵＤＳサーバ１５０は、各顧客システムにおいて動作するＳＵＤＳフロントエンドクライアント１５２の複数のインスタンスと相互作用し得る。さらに、コンポーネント１５０〜１５４は、プロセスプラントを制御するためのプロセス制御層を含むネットワークに限定されない。そのため、コンポーネント１５０〜１５４のうちいくつかまたは全てが、コンピュータシステムにおいて更新をデプロイメントすることができる。しかし、コンポーネント１５０〜１５４は、コンピュータホストのうち少なくとも一部の上で特殊なソフトウェアアプリケーションを実行するシステムにおいて特に有用であることが企図される。
【００３９】
ブロック１６０において、ＳＵＤＳフロントエンドクライアント１５２は、対応する管理者が技術的要素および事業的要素に鑑みて規定することが可能な任意の所望のスキームに従って、顧客システム内にインストールされている特殊なソフトウェアシステムおよび他のソフトウェアシステム（例えば、ＯＳ、アンチウイルスソフトウェア）に対してソフトウェア更新を開始するように、構成され得る。例えば、ＳＵＤＳフロントエンドクライアント１５２を、毎週「起床」させて更新のためにＳＵＤＳサーバ１５０にクエリを送るようにスケジュール化することができる。タイマー終了イベント１６２に応答して、ＳＵＤＳフロントエンドクライアント１５２は、更新確認メッセージ１６４をフォーマットしてＳＵＤＳサーバ１５０へと送って、利用可能な更新のリストをリクエストする。所望ならば、ＳＵＤＳフロントエンドクライアント１５２は、タイマー終了イベント１６２の受信後でありかつ人間のオペレータからの明示的確認を勧誘するためのメッセージ１６４を送信する前のタイミングでワークステーション７１または７２のうちの１つに対話画面を表示するように構成することができる。
【００４０】
メッセージ１６４は、不正なユーザがＳＵＤＳサーバ１５０に接触するのを回避するために、認証情報（例えば、ログインおよびパスワード）を含み得る。いくつかの実施形態において、メッセージ１６４はまた、顧客システム（例えば、「ＡＣＭＥ企業」）のオペレータの特定用情報も含み、これにより、ＳＵＤＳサーバ１５０は、現在顧客システムにインストールされている多様なソフトウェアシステムのバージョンを特定できる。他の実施形態において、メッセージ１６４は、顧客システムにインストールされている特殊なソフトウェアのバージョン（例えば、「ＤｅｌｔａＶバージョン＝９．０」）を特定する。所望ならば、これらの実施形態におけるメッセージ１６４は、オペレーティングシステム５６のバージョン（例えば、「ＯＳバージョン＝Ｗｉｎｄｏｗｓ(登録商標)ＸＰ（登録商標）」）を、既に顧客システム内にインストールされているパッチならびにアンチウイルスデータベースおよび他の任意の関連ソフトウェアアプリケーションのバージョンと共に特定することもできる。この目的のため、ＳＵＤＳフロントエンドクライアント１５２は、メッセージ１６４をフォーマットする際、ローカル構成データを確認することができる。さらに別の実施形態において、メッセージ１６４は、ＳＵＤＳサーバ１５０を操作しているベンダーから割り当てられた顧客システムの一意的な特定用情報を含み得る。
【００４１】
メッセージ１６４の受信に応答して、ＳＵＤＳサーバ１５０は、ブロック１６６において、メッセージ１６４の発信元である顧客システム内にインストールされている関連ソフトウェアのバージョンを特定し得る。上述したように、いくつかの実施形態におけるメッセージ１６４は、ＳＵＤＳサーバ１５０がブロック１６６において取り出す情報のうち大部分または全てを既に指定している。次に、ブロック１６８において、ＳＵＤＳサーバ１５０は、特殊なソフトウェアシステム（例えば、プロセス制御システム）、オペレーティングシステム、アンチウイルスソフトウェアなどの一部または全てに関連する更新のうち顧客システムに対して推奨かつ／または承認されているものを特定する。ブロック１６６および１６８におけるＳＵＤＳサーバ１５０の動作のいくつかの例について、図４を参照してより詳細に説明する。
【００４２】
引き続き図３を参照して、ＳＵＤＳサーバ１５０は、「利用可能な更新リスト」メッセージ１７０を生成し、このメッセージをＳＵＤＳフロントエンドクライアント１５２に送信し得る。いくつかの実施形態において、メッセージ１７０は、ＸＭＬ規則に従ってフォーマットすることができる。その後、ＳＵＤＳフロントエンドクライアント１５２は、利用可能な更新のリストをローカルレポジトリと比較して、リスト中に記載されている更新のうち、ＳＵＤＳフロントエンドクライアント１５２の動作環境としてのネットワークまたはサブネットワーク内に存在していいないものが有るか否かを決定することができる。一例として、ＳＵＤＳサーバ１５０は、いくつかのＯＳパッチをダウンロードすべきである旨を示し得、ＳＵＤＳフロントエンドクライアント１５２は、同一ＤＭＺ内において実行しているＷＳＵＳアプリケーションがこれらのＯＳ更新を既に取り出してローカルフォルダ内に保存しているか否かを確認し得る。同様に、ＳＵＤＳフロントエンドクライアント１５２は、特殊なコンピュータシステムに対する更新が以前にダウンロードされているか否かを確認し得る。あるいは、ＳＵＤＳサーバ１５０は、以前に各ＳＵＤＳフロントエンドクライアント１５２に送達された更新を追跡することもできる。
【００４３】
その後、ＳＵＤＳフロントエンドクライアント１５２は、ダウンロード対象としてリクエストされている更新をリストしている更新リクエストメッセージ１７４をフォーマットし得る。ＳＵＤＳサーバ１５０は、メッセージ１７４を構文解析し、ソフトウェアオブジェクトおよび／またはメタデータを含む更新データを作成し、更新データをメッセージ１７６に入れてＳＵＤＳフロントエンドクライアント１５２に転送し得る。いくつかの実施形態において、更新データは、ベンダーがＳＵＤＳサーバ１５０と関連付けられている特殊なソフトウェアシステムに対するパッチング、アップグレードおよび他の修正のための実際のソフトウェアオブジェクトを含む。例えば、メッセージ１７６は、最近発見された顧客システムがプロセス制御層において実行しているプロセス制御システムの欠陥に対処するためのＤＬＬを含み得る。更新データは、このような１つまたは複数のオブジェクトに関連するメタデータも含み得る。しかし、上述した理由のため、メッセージ１７６は、必ずしもオペレーティングシステムのパッチングのための実際のソフトウェアオブジェクトまたはアンチウイルスデータベースをアップグレードするためのデータオブジェクトを含まなくてもよい。その代りに、メッセージ１７６は、ＳＵＤＳサーバ１５０に対して「ネイティブではない」オブジェクトに関連するメタデータのみあるいはこれらのオブジェクトの特定用情報のみを含んでよい。
【００４４】
タイマー終了イベント１７８に応答して、ＳＵＤＳバックエンドクライアント１５４は、「オブジェクトおよびメタデータの確認」メッセージ１７９をＳＵＤＳフロントエンドクライアント１５２に送信する。更新データがＳＵＤＳバックエンドクライアント１５４にとってアクセス可能な特定のロケーションに受信および保存されている場合、ＳＵＤＳフロントエンドクライアント１５２は、更新が利用可能である旨をＳＵＤＳバックエンドクライアント１５４に通知し、更新データの更新サーバへの転送（メッセージ１８０）を開始し、そこから、ＳＵＤＳクライアントアプリケーション１５２および１５４により更新データをサブネットワークサービス（例えば、プロセス制御ネットワーク）内にインストールすることができる。ＳＵＤＳバックエンドクライアント１５４は、更新ファイルを必要に応じて解凍および復号し、ラッパーを適用して更新オブジェクトをＣＯＴＳデプロイメントアプリケーション１５６と適合させることができる（ブロック１８２）。メッセージ１８４は、ＣＯＴＳデプロイメントアプリケーション１５６に対し、１つまたは複数のラップされたオブジェクトが利用可能である旨を通知し、ＣＯＴＳデプロイメントアプリケーション１５６は、更新をブロック１８６においてインストールする。
【００４５】
いくつかの場合において、メッセージ１８４は、ＣＯＴＳデプロイメントアプリケーション１５６の提供先となっているアプリケーションに対する更新のために、メタデータおよび／または承認情報を含み得る。例えば、ＣＯＴＳデプロイメントアプリケーション１５６はＷＳＵＳアプリケーションであり得、メッセージ１８４は、現在のバージョンの特殊なソフトウェアシステムと適合するものとして承認されているＷｉｎｄｏｗｓ(登録商標)更新を指定し得る。再度図１および図２を参照して、図１〜図３を参照して説明する技術により、企業ネットワーク管理者からの特殊なネットワーク層に特有の更新を確実な手入力によって承認する必要性が無くなることが理解される。詳細には、バックエンドモジュール２０は、プロセス制御システム７４のベンダーによって承認されているＯＳ特有の更新のみを上流ＷＳＵＳ９０からリクエストおよび入手するように、下流ＷＳＵＳ９４を有効に構成する。顧客システム２６内のネットワークの他の部分に配布される更新と関わりなく、下流ＷＳＵＳ９４は、承認された更新がプロセス制御層２４内に適切にインストールされている限り、上流ＷＳＵＳ９０に対する適合性を報告する。そのため、ソフトウェア更新をモニタリングしている企業ネットワーク管理者は、例えばプロセス制御層２４において実際に適用された更新がプラントＬＡＮ層３２において適用された更新と異なる場合でも、プロセス制御層２４における適合性の欠如を報告する誤警報に遭遇することがない。
【００４６】
再度図３を参照して、他の実施形態におけるＳＵＤＳフロントエンドクライアント１５２は、比較的長期間において１回だけ（例えば、新規バージョンの特殊なソフトウェアシステムがインストールされた際に）メッセージ１６４を送信し得る。メッセージ１６４は、例えば、ＳＵＤＳフロントエンドクライアント１５２の認証情報と、特殊なソフトウェアシステムのバージョンの識別子と、新規ソフトウェア更新に関する自動通知の方法および頻度の指示とを含み得る。これらの実施形態において、ＳＵＤＳサーバ１５０は、新規更新が利用可能となった際に自動通知を受けることを望むＳＵＤＳクライアントのリストを維持し得、新規更新が承認された際にリストを確認し得、適切である場合、ＳＵＤＳフロントエンドクライアント１５２について各メッセージ１７０を生成し得る。所望ならば、ＳＵＤＳサーバ１５０は、認証情報が未だＳＵＤＳサーバ１５０に提供されていない顧客システムも通知し得る。換言すれば、メッセージ１６４は、いくつかの実施形態として任意選択とすることができる。なぜならば、ＳＵＤＳサーバ１５０（または図１および図２を参照して説明したサーバアプリケーション１４）は、ベンダーが開始したソフトウェア更新およびクライアントが開始したソフトウェア更新をサポートすることができるからである。
【００４７】
ここで図４を参照して、プロセス制御システムソフトウェアシステムのベンダーは、多様なバージョンのプロセス制御システムを実行している顧客に関連する構成データと、特殊なソフトウェアシステムに関連する更新と、当該ベンダーの顧客が使用し得る他のソフトウェア製品またはシステムに対するソフトウェア更新に関連するデータとを保存するレポジトリ２００を維持し得る。レポジトリ２００は、コンピュータで読み出し可能な媒体上に保存されたデータであり得る。一例として、レポジトリ２００は、図１および図２に示す構成レポジトリ９８および更新レポジトリ１００として実施され得る。図４中に示すように、レポジトリ２００は、ソフトウェアまたはハードウェアコンポーネント２０２（例えば、サーバアプリケーション１４またはＳＵＤＳサーバ１５０のコンポーネント）と相互作用し得る。
【００４８】
レポジトリ２００は、ユーザテーブル２０４と、更新テーブル２０６と、制御システム更新２１０と、オペレーティングシステム更新２１２とを含む。明瞭性のため、レポジトリ２００をアンチウイルス更新オブジェクトが無い様態で図示しているが、一般的にはレポジトリ２００は、任意の数のソフトウェア製品に関連するものを含むことができる。この例示的な実施形態において、テーブル２０４は、特定の顧客が現在使用しているプロセス制御システムのバージョンを指定し、テーブル２０６は、各バージョンについて承認された更新をリスト化する。そのため、メッセージ１６４がユーザ特定用情報「４５６５４７５６７」によって顧客を特定している場合、テーブル２０４は、バージョン２．１のプロセス制御システムがこの顧客の現場においてインストールされていることを示し、テーブル２０６は、オペレーティングシステム更新識別子ＯＳ８およびプロセス制御システム更新識別子ＣＳ２５をリストに記載する。この例において、制御システム更新２１０は、対応するメタデータと共にソフトウェアオブジェクトとして保存される。ソフトウェアオブジェクトは、ＤＬＬ、データファイル、または１つまたは複数の標的ディレクトリ中にインストール可能なファイルのグループであり得る。いくつかの実施形態において、制御システム更新２１０は、ＣＯＴＳデプロイメントアプリケーション（例えば、下流ＷＳＵＳ９４またはＣＯＴＳデプロイメントアプリケーション１５６）によって用いられるラッパーを生成するために必要なデータをさらに含む。一方、オペレーティングシステム更新データ２１２は、メタデータのみを含むか、または、所望ならば、ソフトウェア更新オブジェクトの特定用情報（例えば、ＯＳ１、ＯＳ５、ＯＳ８）のみを含む。図４に示す例において、ソフトウェアオブジェクトおよびメタデータを含む更新ＯＳ８と、メタデータのみを含む更新ＣＳ２５とがメッセージ１７０に入れられてクライアントアプリケーションへと通信される。
【００４９】
図５は、例えば通信システム１０において動作し得るかまたはＳＵＤＳサーバ１５０として動作し得るサーバアプリケーション３００のブロック図である。サーバアプリケーション３００は、更新レポジトリインターフェース３０２を含む。更新レポジトリインターフェース３０２を通じて、サーバアプリケーション３００は、構成および更新データのレポジトリ（例えば、レポジトリ２００）と通信し得る。より詳細には、更新レポジトリインターフェース３０２は、例えば、レポジトリ２００の多様なテーブルを通じた検索と、更新オブジェクトおよび／または更新オブジェクトの特定用情報の取り出しとのための１組のＡＰＩであり得る。さらに、サーバアプリケーション３００は、顧客施設（例えば、顧客システム２６）内において実行している対応するクライアントアプリケーションからメッセージを受信するための制御システムインターフェース３０４を含む。再度図１および図２を参照して、制御システムインターフェース３０４は、クライアントアプリケーション１６へのメッセージングおよびクライアントアプリケーション１６からのメッセージングをサポートし得る。一実施形態において、制御システムインターフェース３０４は、インターネットに連結されたコンピュータホスト上のＨＴＴＰＳポートと、入来メッセージのインテグリティを確認するための１つまたは複数のセキュアなソケット層（ＳＳＬ）証明書とを含む。
【００５０】
サーバアプリケーション３００はまた、ユーザ認証符号３０６も含む。ユーザ認証符号３０６は、ソフトウェア更新をリクエストしている顧客のログインおよびパスワード情報を確認するために、当該分野において公知の技術を用いて実施される。制御システム識別子３０８は、例えば顧客エンティティが現在使用しているソフトウェアを決定するために、ローカルレポジトリ２００にクエリを送ることができる。所望ならば、制御システム識別子３０８は、顧客が現在使用しているオペレーティングシステムおよび／またはアンチウイルスデータベースの種類およびバージョンを確認することもできる。
【００５１】
さらに、更新リスト生成器３１０を制御システムインターフェース３０４に連結して、承認されているソフトウェア更新を対応するクライアントアプリケーションに報告することができる。さらに、サーバアプリケーション３００は、プロセス制御システムオブジェクトにラッパーを必要に応じて適用して、これらのオブジェクトをＣＯＴＳデプロイメントサービスと適合させるために、制御システム更新ラッパー３１２を含む。あるいは、制御システム更新ラッパー３１２は、対応するクライアントアプリケーション内に存在してもよい。さらに、更新パッケージ生成器３１４は、クライアントアプリケーションのためのソフトウェア更新パッケージ（例えば、ソフトウェアオブジェクト、メタデータおよびソフトウェアオブジェクト識別子のうちいくつかまたはその全て）を生成することができる。
【００５２】
ここで図６を参照して、クライアントアプリケーション３３０は、フロントエンドアプリケーション３３２およびバックエンドアプリケーション３３４を含む。一実施形態において、図１および図２を参照して上述したクライアントアプリケーション１６は、クライアントアプリケーション３３０のアーキテクチャを実施する。フロントエンドアプリケーション３３２は、プロセス制御ベンダーのコンピュータネットワーク内において実行しているアプリケーションと通信するためのベンダーインターフェース３４０を含む。例えば、フロントエンドアプリケーション３３２は、サーバアプリケーション１４と通信し得る。フロントエンドアプリケーション３３２は、クライアントアプリケーション３３０がソフトウェア更新について対応するサーバアプリケーションにクエリを送る際に用いられるスキームを実施するためのスケジューラ３４２をさらに含む。さらに、フロントエンドアプリケーション３３２は、報告された利用可能な更新のうち、フロントエンドアプリケーション３３２の実行環境としてのＤＭＺまたは他の種類のネットワークにおいて欠けているものを確認するための更新リストプロセッサ３４４と、メッセージ（例えば、図３中に示すメッセージ１６４および１７４）をフォーマットするためのメッセージ生成器３４６とを含む。
【００５３】
さらに、クライアントアプリケーション３３０は、ユーザコマンド（例えば、利用可能な更新についてサーバアプリケーションにクエリを送るためのコマンド、または、利用可能なソフトウェア更新のＤＭＺへのへのダウンロードの開始、利用可能なソフトウェア更新に関する情報の表示、以前の更新をリスト化したレポートの表示を行うためのコマンド）を受信するためのオペレータインターフェース３４８を含む。
【００５４】
更新フォルダ３５０は、共有ネットワークロケーション（例えば、ＤＭＺ内の別のホストのファイルシステム）またはフロントエンドアプリケーション３３２およびバックエンドアプリケーション３３４双方にとってアクセス可能な他の任意のロケーションにおいて、フロントエンドアプリケーション３３２を実行しているコンピュータホストのファイルシステム内に配置され得る。更新リストプロセッサ３４４は、サーバアプリケーションから更新フォルダ３５０内へと受信されたソフトウェアオブジェクトおよびメタデータを保存して、後でバックエンドアプリケーション３３４により（そして実施形態のうち少なくともいくつかにおいてＣＯＴＳデプロイメントアプリケーション３５２により）ソフトウェアオブジェクトおよびメタデータのデプロイメントおよびインストールができるようになっている。バックエンドアプリケーション３３４は、更新フォルダ３５０中のファイルの取り出し、暗号解読および解凍をファイル転送モジュール３５６を用いて行い得る。
【００５５】
フォーマット変換モジュール３５８は、ＣＯＴＳデプロイメントアプリケーション３５２が認識していないソフトウェアオブジェクトを注入し得る。例えばＣＯＴＳデプロイメントアプリケーション３５２が下流ＷＳＵＳアプリケーションである場合、フォーマット変換モジュール３５８は、これらのオブジェクトをＷＳＵＳと適合させるために、Ｍｉｃｒｏｓｏｆｔ社から提供されている１つまたは複数のＡＰＩ機能をこれらのプロセス制御オブジェクトに適用する。他のソフトウェア更新については、ファイル転送モジュール３５６は、識別子および／またはメタデータをＣＯＴＳデプロイメントアプリケーション３５２に直接適用し得る。下流ＷＳＵＳの例について引き続いて説明すると、ファイル転送モジュール３５６は、下流ＷＳＵＳが特定された更新のみを上流ＷＳＵＳからリクエストするように、Ｗｉｎｄｏｗｓ(登録商標)更新に関連する識別子またはメタデータを構成データとして直接適用し得る。
【００５６】
一般的には図５および図６について、ブロック３０２〜３１４、３４０〜３４８および３５２〜３５８は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの任意の所望の組み合わせとして実施可能である点に留意されたい。あるいは、ブロック３０２〜３１４、３４０〜３４８および３５２〜３５８のうちいくつかを組み合わせるかまたは逆にこれらのブロックのうちいくつかをより小さいモジュールに分割することも可能である。さらに、ブロック３０２〜３１４、３４０〜３４８および３５２〜３５８のうちいくつかを１つより多くのコンピュータホスト間で配布することも可能である。
【００５７】
次に、図７は、プロセス制御システムのオペレータがクライアントアプリケーション１６を操作する際（図１および図２を参照）に見ることができる例示的なインターフェース画面４００を示す。いくつかの状況において、オペレータは、ソフトウェア更新の検出、ダウンロードおよびデプロイメントを行うプロセスを完全自動化することを好む場合があり、その場合、インターフェース画面４００をディセーブルすることができる。しかし、他の状況において、オペレータは、「ダウンロードリスト」という制御を用いて更新が利用可能か否かを手入力により確認し、「すぐダウンロードする」という制御を用いてダウンロードを開始し、「接続試験」という制御を用いてネットワーク接続性を試験することなどを望む場合もある。図７中にさらに示すように、インターフェース画面４００は、プロセス制御層２４内に現在インストールされているプロセス制御システムのバージョン、最終の更新ダウンロードが行われた時期、ダウンロードを保存すべき場所、ダウンロードに使用することが可能なメモリ量などを示し得る。さらに、オペレータは、「構成」という制御をクリックして、自動更新スケジュールの指定、クライアントアプリケーションのフロントエンドとバックエンドコンポーネントとの間の相互作用の構成などを行うことができる。さらに、「ログを見る」という制御により、オペレータは、以前のダウンロードの履歴および関連するイベントにアクセスすることもできる。
【００５８】
次に、図８〜図１０は、更新の自動デプロイメントのためのシステム（例えば、ソフトウェア更新システム１２）を実施するための例示的な方法の各フロー図を示す。例えば、サーバアプリケーション１４は、方法４５０を実施してクライアントアプリケーション１６から「利用可能な更新を確認する」を処理し、方法４７０を実施してクライアントアプリケーション１６からの「更新リクエスト」メッセージを処理することができ、クライアントアプリケーション１６は、方法５００を実施して、クエリおよびソフトウェア更新リクエストを開始および処理することができる。
【００５９】
図８を参照して、サーバアプリケーション１４は、ブロック４５２において更新を確認するリクエストを受信し、ブロック４５４において対応する顧客を認証し、顧客システムにおいて使用されるオペレーティングシステムおよびプロセス制御システムにとって必要なソフトウェア更新をそれぞれブロック４５６および４５８において特定し得る。上述したように、サーバアプリケーション１４は、プロセス制御システムベンダーの技術スタッフが試験および承認したオペレーティングシステムに対する更新のリストを維持し得る。技術スタッフは、１つまたは複数のアンチウイルスアプリケーションに対する更新を確認および承認または拒絶することもできる。上記において詳述したように、サーバアプリケーション１４は、少なくとも顧客システム２６において現在使用されているオペレーティングシステムのバージョンおよびプロセス制御システム７４の現在のバージョンに鑑みて、ソフトウェア更新をクライアントアプリケーション１６に推奨し得る。ブロック４６０において、サーバアプリケーション１４は、利用可能な更新および承認された更新のリストをクライアントアプリケーション１６に報告し得る。
【００６０】
ここで図９を参照して、サーバアプリケーション１４は、ブロック４７２において、１つまたは複数のソフトウェア更新を指定するリクエストを受信し得る。その後、ブロック４７４において、サーバアプリケーション１４は、リクエストされたソフトウェアオブジェクトおよび／またはメタデータを取り出し、ブロック４７６においてクライアントアプリケーション１６のための更新パッケージを生成し得る。その後、サーバアプリケーション１４は、任意の公知の技術（ＨＴＴＰの経由、ＦＴＰクライアント／サーバの対の使用、または他の任意の適切なプロトコルの経由）を用いて、更新パッケージを１つのまたは複数のメッセージに入れてクライアントアプリケーション１６に送信し得る。
【００６１】
図１０を参照して、クライアントアプリケーション１６は、ブロック５０２において起床（ｗａｋｅ−ｕｐ）イベントを待機し得る。起床イベント（例えば、ユーザコマンド、タイマー終了）に応答して、クライアントアプリケーション１６は、利用可能なソフトウェア更新のリストをブロック５０４においてリクエストし、リストをサーバアプリケーション１４から受信し、ブロック５０６においてリストをネットワークにおいて既に利用可能となっている更新と比較する。クライアントアプリケーション１６がブロック５０８において少なくとも１つのソフトウェア更新が必要であると決定した場合、方法５００はブロック５１０へと進む。そうでない場合、方法５００はブロック５０２に戻る。
【００６２】
ブロック５１０において、クライアントアプリケーション１６は、サーバアプリケーション１４からリクエストされている更新を指定するメッセージを生成および送信する。その後、クライアントアプリケーション１６は、ブロック５１２において、ソフトウェア更新を、別のアプリケーション（例えば、ＷＳＵＳ）によって管理されているソフトウェアオブジェクト、メタデータまたはソフトウェア更新の識別子として受信する。ブロック５１４において、クライアントアプリケーション１６は、ダウンロードされたソフトウェア更新の直接的または間接的デプロイメントを開始する。より詳細には、クライアント１６は、各オブジェクトについてのロケーション、更新挙動およびインストレーションパラメータを記述するメタデータに従ってソフトウェアオブジェクトを配布およびインストールするコンポーネントを含み得る。あるいは、クライアントアプリケーション１６は、別個のデプロイメントアプリケーションと相互作用して、クライアントアプリケーション１６の代わりにプロセス制御更新のインストールをリクエストし、デプロイメントアプリケーションを構成することによりオペレーティングシステムに対するソフトウェア更新のデプロイメントを制御することもできる。
【００６３】
上記から、ソフトウェア更新システム１２および上述した関連技術により、主にソフトウェアシステムおよび詳細には複雑な特殊なソフトウェアシステム（例えば、プロセス制御システム）を使用する顧客にとって多数の利点が得られることが分かる。具体的にプロセス制御産業について考えてみると、プラントオペレータは典型的には、対応するプロセスプラントを安全かつ信頼性を以て管理するためにプロセス制御システムに依存することが多い。このようなプロセス制御産業における上記の利点を非限定的に挙げると、プロセス制御システムの重要機能と矛盾するソフトウェア更新がインストールされて、オペレータの安全の脅威またはプラント停止が発生する危険性の大幅な低減、プロセス制御オペレータが他のタスクを犠牲にしてネットワーク管理を行わなければならなくなる要求の排除、プロセス制御システムのベンダーによる承認後の即時の更新デプロイメント（これにより、重要ソフトウェア更新のデプロイメントの危険な遅延が排除される）、オペレータの時間および労力ならびにネットワークダウンタイムを余儀なくさせるような不要なまたはさらには有害な更新の排除がある。さらに、上記した技術により、プロセス制御システムベンダーは、プロセス制御システムのアップグレードまたはパッチのデプロイメントをオペレーティングシステムに対する更新と同時に行うことができ、これにより、オペレータの労力を節約し、ユーザ側の作業を全体的に向上させることができる。さらに別の局面において、これらの技術により、身近なＣＯＴＳ更新およびデプロイメントアプリケーション（例えば、上流ＷＳＵＳアプリケーションおよび下流ＷＳＵＳアプリケーション）をプロセス制御システムの更新プロセスにシームレスに統合することが可能になる。さらに、これらの技術により、（例えばソフトウェアオブジェクトをラップすることにより）ネイティブではないプロセス制御システム更新をネイティブ更新としてＣＯＴＳアプリケーションに提示することが可能になるため、企業のＩＴ人員は、プロセス制御システムの実施先となっているネットワーク層のセキュリティ更新適合性のモニタリングをプロセス制御ベンダーからのメモを手作業により確認するかまたはプロセス制御オペレータによる要求を確認する必要無く、行うことができる。
【００６４】
本システムおよび方法について具体例を参照しながら説明してきたが、これらの例はひとえに例示的なものであり、本開示を限定することを意図していない。当業者にとって、本開示の意図および範囲から逸脱することなく、上記開示の実施形態に対する変更、付加および／または削除が可能であることが明らかである。
【００６５】
本出願は、２００９年９月２５日に出願された「Ａｕｔｏｍａｔｅｄ  ｄｅｐｌｏｙｍｅｎｔ  ｏｆ  Ｃｏｍｐｕｔｅｒ−Ｓｐｅｃｉｆｉｃ  Ｓｏｆｔｗａｒｅ  ｕｐｄａｔｅ」という名称の米国仮特許出願６１／２４６、００８号（弁理士ドケット番号０６００５／５９２２１９Ｐ）に基づいており、同出願に対する優先権を主張する。本明細書中、ここに、同出願の開示内容全体を参考のため明示的に援用する。
【図１】
0005846730.tif 000002
【図２】
0005846730.tif 000003
【図３】
0005846730.tif 000004
【図４】
0005846730.tif 000005
【図５】
0005846730.tif 000006
【図６】
0005846730.tif 000007
【図７】
0005846730.tif 000008
【図８】
0005846730.tif 000009
【図９】
0005846730.tif 000010
【図１０】
0005846730.tif 000011