(57)【特許請求の範囲】
【請求項１】
自動ツール管理の方法であって、
選択されたプロトコルでユーザからメッセージを発行するステップであって、前記メッセージが、前記ツールに対する選択された動作を行う要求を含み、前記メッセージが、データと前記ツールの装置モデル中のオブジェクトを指すポインタとのうちの１つまたは複数を含み、前記装置モデルが前記ツールの論理表現を含むステップと、
オブジェクト指向プロセス間を介して前記メッセージを受信するステップと、
前記ポインタおよび前記選択された動作に応答して前記オブジェクトのメソッドを呼び出すステップであって、前記メッセージがデータを含む場合は前記データを前記メソッドに渡すステップと、
前記要求された動作および前記データに関連する値を前記ユーザに転送するステップとを含む方法。
【請求項２】
前記受信したメッセージの前記データおよび前記ポインタを１つまたは複数抽出するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記ツールが非同期ソースであり、かつ前記要求された動作に関連する前記値が現在である場合は、
前記値を前記装置モデルからアプリケーション・インタフェース・ユニットに転送するステップであって、前記アプリケーション・インタフェース・ユニットが前記ユーザを前記装置モデルとインタフェースするステップと、
前記値を前記ユーザへの返信メッセージに組み込むステップと、
前記ユーザから提供されたアドレスに応答して、前記オブジェクト指向プロセス間通信を介して前記返信メッセージを前記ユーザに転送するステップとをさらに含む、請求項１に記載の方法。
【請求項４】
前記ツールが同期ソースである場合は、
ツール・インタフェース・ユニットによって前記ツールから前記値を取り出すステップであって、前記ツール・インタフェース・ユニットが前記ツールを前記装置モデルとインタフェースするステップと、
前記値を前記装置モデルに転送するステップとをさらに含む、請求項１に記載の方法。
【請求項５】
前記値を前記ユーザへの返信メッセージに組み込むステップと、
前記ユーザから提供されたアドレスに応答して、前記返信メッセージを前記ユーザに転送するステップとをさらに含む、請求項４に記載の方法。
【請求項６】
前記ツールが、非同期ソースと同期ソースのうちの一方でない場合、または、前記要求された動作に関連する現在の値を供給しない非同期ソースである場合は、
前記装置モデルのデータベースから前記値を取り出すステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記値を前記ユーザへの返信メッセージに組み込むステップと、
前記ユーザから提供されたアドレスに応答して、前記返信メッセージを前記ユーザに転送するステップとをさらに含む、請求項６に記載の方法。
【請求項８】
前記プロセス間通信が、ＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）、ＲＭＩ（Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ）、ＣＯＲＢＡ、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）、ＳＥＣＳ、ＧＥＭ、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のうちから選択されるプロトコルを含む、請求項１に記載の方法。
【請求項９】
前記ツールにリモート・アクセスして前記ツールを電子的に診断するために前記オブジェクトの前記メソッドを呼び出す、請求項１に記載の方法。
【請求項１０】
前記メッセージ中の前記データが通知データである、請求項１に記載の方法。
【請求項１１】
自動ツール管理のためのコンピュータ・プログラム論理を記録したコンピュータ可読媒体であって、
選択されたプロトコルでユーザからメッセージを発行するように動作可能なプログラミングであって、前記メッセージが、前記ツールに対する選択された動作を行う要求を含み、前記メッセージが、データと前記ツールの装置モデル中のオブジェクトを指すポインタとのうちの１つまたは複数を含み、前記装置モデルが前記ツールの論理表現を含むプログラミングと、
オブジェクト指向プロセス間通信を介して前記メッセージを受信するように動作可能なプログラミングと、
前記ポインタおよび前記選択された動作に応答して前記オブジェクトのメソッドを呼び出すように動作可能なプログラミングであって、前記メッセージがデータを含む場合は前記データを前記メソッドに渡すプログラミングと、
前記要求された動作および前記データに関連する値を前記ユーザに転送するように動作可能なプログラミングとを含む、コンピュータ可読媒体。
【請求項１２】
前記受信したメッセージの前記データおよび前記ポインタを１つまたは複数抽出するように動作可能なプログラミングをさらに含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
前記ツールが非同期ソースであり、かつ前記要求された動作に関連する前記値が現在である場合は、
前記値を前記装置モデルからアプリケーション・インタフェース・ユニットに転送するように動作可能なプログラミングであって、前記アプリケーション・インタフェース・ユニットが前記ユーザを前記装置モデルとインタフェースするプログラミングと、
前記値を前記ユーザへの返信メッセージに組み込むように動作可能なプログラミングと、
前記ユーザから提供されたアドレスに応答して、前記オブジェクト指向プロセス間通信を介して前記返信メッセージを前記ユーザに転送するように動作可能なプログラミングとをさらに含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１４】
前記ツールが同期ソースである場合は、方法はさらに、
ツール・インタフェース・ユニットによって前記ツールから前記値を取り出すように動作可能なプログラミングであって、前記ツール・インタフェース・ユニットが前記ツールを前記装置モデルとインタフェースするプログラミングと、
前記値を前記装置モデルに転送するように動作可能なプログラミングとのステップを含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１５】
前記値を前記ユーザへの返信メッセージに組み込むように動作可能なプログラミングと、
前記ユーザから提供されたアドレスに応答して、前記返信メッセージを前記ユーザに転送するように動作可能なプログラミングとをさらに含む、請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記ツールが、非同期ソースと同期ソースのうちの一方でない場合、または前記要求された動作に関連する現在の値を供給しない非同期ソースである場合は、
前記装置モデルのデータベースから前記値を取り出すように動作可能なプログラミングをさらに含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１７】
前記値を前記ユーザへの返信メッセージに組み込むように動作可能なプログラミングと、
前記ユーザから提供されたアドレスに応答して、前記返信メッセージを前記ユーザに転送するように動作可能なプログラミングとをさらに含む、請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記プロセス間通信が、ＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）、ＲＭＩ（Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ）、ＣＯＲＢＡ、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）、ＳＥＣＳ、ＧＥＭ、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のうちから選択されるプロトコルを含む、請求項１１に記載のコンピュータ可読媒体。
【請求項１９】
前記ツールにリモート・アクセスして前記ツールを電子的に診断するために前記オブジェクトの前記メソッドを呼び出す、請求項１１に記載のコンピュータ可読媒体。
【請求項２０】
前記メッセージ中の前記データが通知データである、請求項１１に記載のコンピュータ可読媒体。
【請求項２１】
プロセッサと、
自動ツール管理のために動作可能なコンピュータ・プログラムを記憶するように動作可能なコンピュータ・プログラムを記憶するメモリ・ユニットと、
プロセッサをメモリに結合するバス・システムとを備えるシステムであって、コンピュータ・プログラムが、
選択されたプロトコルでユーザからメッセージを発行するプログラミング・ステップであって、前記メッセージが、前記ツールに対する選択された動作を行う要求を含み、前記メッセージが、データと前記ツールの装置モデル中のオブジェクトを指すポインタとのうちの１つまたは複数を含み、前記装置モデルが前記ツールの論理表現を含むプログラミング・ステップと、
オブジェクト指向プロセス間を介して前記メッセージを受信するプログラミング・ステップと、
前記ポインタおよび前記選択された動作に応答して前記オブジェクトのメソッドを呼び出すプログラミング・ステップであって、前記メッセージがデータを含む場合は前記データを前記メソッドに渡すプログラミング・ステップと、
前記要求された動作および前記データに関連する値を前記ユーザに転送するプログラミング・ステップとを実施するように動作可能であるシステム。
【請求項２２】
コンピュータ・プログラムがさらに、
前記受信したメッセージの前記データおよび前記ポインタを１つまたは複数抽出するプログラミング・ステップを実施するように動作可能である、請求項２１に記載のシステム。
【請求項２３】
前記ツールが非同期ソースであり、かつ前記要求された動作に関連する前記値が現在である場合は、コンピュータ・プログラムはさらに、
前記値を前記装置モデルからアプリケーション・インタフェース・ユニットに転送するプログラミング・ステップであって、前記アプリケーション・インタフェース・ユニットが前記ユーザを前記装置モデルとインタフェースするプログラミング・ステップと、
前記値を前記ユーザへの返信メッセージに組み込むプログラミング・ステップと、
前記ユーザから提供されたアドレスに応答して、前記オブジェクト指向プロセス間通信を介して前記返信メッセージを前記ユーザに転送するプログラミング・ステップとを実施するように動作可能である、請求項２１に記載のシステム。
【請求項２４】
前記ツールが同期ソースである場合は、コンピュータ・プログラムはさらに、
ツール・インタフェース・ユニットによって前記ツールから前記値を取り出すプログラミング・ステップであって、前記ツール・インタフェース・ユニットが前記ツールを前記装置モデルとインタフェースするプログラミング・ステップと、
前記値を前記装置モデルに転送するプログラミング・ステップとを実施するように動作可能である、請求項２１に記載のシステム。
【請求項２５】
コンピュータ・プログラムがさらに、
前記値を前記ユーザへの返信メッセージに組み込むプログラミング・ステップと、
前記ユーザから提供されたアドレスに応答して、前記返信メッセージを前記ユーザに転送するプログラミング・ステップとを実施するように動作可能である、請求項２４に記載のシステム。
【請求項２６】
前記ツールが、非同期ソースと同期ソースのうちの一方でない場合、または前記要求された動作に関連する現在の値を供給しない非同期ソースである場合は、コンピュータ・プログラムがさらに、
前記装置モデルのデータベースから前記値を取り出すプログラミング・ステップを実施するように動作可能である、請求項２１に記載のシステム。
【請求項２７】
コンピュータ・プログラムがさらに、
前記値を前記ユーザへの返信メッセージに組み込むプログラミング・ステップと、
前記ユーザから提供されたアドレスに応答して、前記返信メッセージを前記ユーザに転送するプログラミング・ステップとを実施するように動作可能である、請求項２６に記載のシステム。
【請求項２８】
前記プロセス間通信が、ＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）、ＲＭＩ（Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ）、ＣＯＲＢＡ、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）、ＳＥＣＳ、ＧＥＭ、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のうちから選択されるプロトコルを含む、請求項２１に記載のシステム。
【請求項２９】
前記ツールにリモート・アクセスして前記ツールを電子的に診断するために前記オブジェクトの前記メソッドを呼び出す、請求項２１に記載のシステム。
【請求項３０】
前記メッセージ中の前記データが通知データである、請求項２１に記載のシステム。
【請求項３１】
ツール・アクセス制御の方法であって、
オブジェクト指向プロセス間を介してユーザから送信されたメッセージを受信するステップであって、前記メッセージが、ツールに対する選択された動作を行う要求を含み、前記メッセージが、前記ツールの装置モデル中のオブジェクトを指すポインタを含むステップと、
セキュリティ・ラッパ層を生成するステップと、
前記セキュリティ・ラッパ層中にセキュリティ・ラッパ・オブジェクトを生み出すステップであって、対応する装置モデル・オブジェクトへのポインタが前記セキュリティ・ラッパ・オブジェクトに記憶されるステップとを含む方法。
【請求項３２】
前記対応する装置モデル・オブジェクトが、前記要求に対応する前記オブジェクトである場合は、前記対応するセキュリティ・ラッパ・オブジェクトへのポインタが前記ユーザに転送される、請求項３１に記載の方法。
【請求項３３】
前記ツールに対する前記選択された動作を、前記対応するセキュリティ・ラッパ・オブジェクトに記憶されたアクセス規則に応じて行うことができるかどうか判定するステップをさらに含む、請求項３２に記載の方法。
【請求項３４】
前記ツールに対する前記選択された動作を行うことができる場合は、
前記対応するセキュリティ・ラッパ・オブジェクトからメソッドを呼び出して、前記選択された動作を行うステップをさらに含む、請求項３３に記載の方法。
【請求項３５】
ツール・アクセス制御のためのコンピュータ・プログラム論理を記録したコンピュータ可読媒体であって、
オブジェクト指向プロセス間を介してユーザから送信されたメッセージを受信するように動作可能なプログラミングであって、前記メッセージが、ツールに対する選択された動作を行う要求を含み、前記メッセージが、前記ツールの装置モデル中のオブジェクトを指すポインタを含むプログラミングと、
セキュリティ・ラッパ層を生成するように動作可能なプログラミングであって、前記セキュリティ・ラッパ層が前記装置モデルに対する保護層を提供するプログラミングと、
前記セキュリティ・ラッパ層中にセキュリティ・ラッパ・オブジェクトを生み出すように動作可能なプログラミングであって、対応する装置モデル・オブジェクトへのポインタが前記セキュリティ・ラッパ・オブジェクトに記憶されるプログラミングとを含むコンピュータ可読媒体。
【請求項３６】
前記対応する装置モデル・オブジェクトが、前記要求に対応する前記オブジェクトである場合は、前記対応するセキュリティ・ラッパ・オブジェクトへのポインタが前記ユーザに転送される、請求項３５に記載のコンピュータ可読媒体。
【請求項３７】
前記ツールに対する前記選択された動作を、前記対応するセキュリティ・ラッパ・オブジェクトに記憶されたアクセス規則に応じて行うことができるかどうか判定するように動作可能なプログラミングをさらに含む、請求項３６に記載のコンピュータ可読媒体。
【請求項３８】
前記ツールに対する前記選択された動作を行うことができる場合は、
前記対応するセキュリティ・ラッパ・オブジェクトからメソッドを呼び出して、前記選択された動作を行うように動作可能なプログラミングをさらに含む、請求項３７に記載のコンピュータ可読媒体。
【請求項３９】
プロセッサと、
ツール・アクセス制御のために動作可能なコンピュータ・プログラムを記憶するように動作可能なコンピュータ・プログラムを記憶するメモリ・ユニットと、
プロセッサをメモリに結合するバス・システムとを備えるシステムであって、コンピュータ・プログラムは、
オブジェクト指向プロセス間を介してユーザから送信されたメッセージを受信するプログラミング・ステップであって、前記メッセージが、ツールに対する選択された動作を行う要求を含み、前記メッセージが、前記ツールの装置モデル中のオブジェクトを指すポインタを含むプログラミング・ステップと、
セキュリティ・ラッパ層を生成するプログラミング・ステップと、
前記セキュリティ・ラッパ層中にセキュリティ・ラッパ・オブジェクトを生み出すプログラミング・ステップであって、対応する装置モデル・オブジェクトへのポインタが前記セキュリティ・ラッパ・オブジェクトに記憶されるプログラミング・ステップとを実施するように動作可能であるシステム。
【請求項４０】
前記対応する装置モデル・オブジェクトが、前記要求に対応する前記オブジェクトである場合は、前記対応するセキュリティ・ラッパ・オブジェクトへのポインタが前記ユーザに転送される、請求項３９に記載のシステム。
【請求項４１】
コンピュータ・プログラムがさらに、
前記ツールに対する前記選択された動作を、前記対応するセキュリティ・ラッパ・オブジェクトに記憶されたアクセス規則に応答して行うことができるかどうか判定するプログラミング・ステップを実施するように動作可能である、請求項４０に記載のシステム。
【請求項４２】
前記ツールに対する前記選択された動作を行うことができる場合は、コンピュータ・プログラムがさらに、
前記対応するセキュリティ・ラッパ・オブジェクトからメソッドを呼び出して、前記選択された動作を行うプログラミング・ステップを実施するように動作可能である、請求項４１に記載の方法。
【発明の詳細な説明】
【０００１】
（関連出願の相互参照）
本出願は、本出願の所有者が所有する、以下の同時係属の米国特許出願に関連する。
２０００年７月７日に出願され、米国特許法第１１９条第（ｅ）項に基づいてより早い出願日の利益を請求する仮出願第６０／２１６８１９号、および、
２０００年２月１日に出願され、本出願がその一部継続である出願第０９／４９６００９号「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｗｅｂ−ｂａｓｅｄ  Ｔｏｏｌ  Ｍａｎａｇｅｍｅｎｔ」（弁理士整理番号２１１８３−Ｐ００１ＵＳ）。
【０００２】
（技術分野）
本発明は製造処理に関し、より詳細には、複数プロトコル環境で製造装置を制御する機構を提供することに関する。
【０００３】
（背景情報）
今日の製造設備は、高度に自動化されたツールに依拠して製造プロセスを実施する。例えば、半導体ファブリケーション（「ファブ」）設備は、半導体ウェハーを加工するために高度に自動化されたツール・セットを組み入れている。プロセス制御および監視はソフトウェア・メソッドのセットによって媒介され、このセットを呼び出して、実施すべきプロセスおよび監視を行うことができる。制御監視ソフトウェアはツール・サーバ上で実行され、ツール・サーバは、ツール・サーバを特定のツールとポイント・ツー・ポイント方式でそれぞれインタフェースする複数のポートを介して、ツールに結合させることができる。別法として、ツール・サーバ中のツールは、ローカル・エリア・ネットワーク（ＬＡＮ）上にある場合もある。製造プロセスを制御するには、ユーザは、ＬＡＮ上にあるユーザ・システムを介して、または他の方法によるツール・サーバとの通信において、ツール・サーバと通信できなければならない。具体的には、ツールの状況を制御および監視するためにツール・サーバにリモート・アクセスすることが仮にあったとすると、これには、リモート・アクセスを提供すべき各プラットフォーム上に実装する専用コードの開発が必要である。しかし、今日のデータ処理システムは通常、ブラウザや表計算ソフトウェアなど、オブジェクト指向アプリケーション間通信またはプロセス間通信のための機能を備えた複数の既存ソフトウェアを提供する。これらの機能は、異なるプラットフォームおよびソフトウェア環境にまたがる通信を相互処理する。したがって、製造装置に対して複数のオブジェクト指向プロセス間通信プロトコルを使用することのできるインタフェース用アプリケーション・ソフトウェアを適合させるシステムおよび方法が当技術分野で必要とされている。加えて、このようなインタフェースのためのシステムおよび方法は、レガシー・ツール制御監視アプリケーションならびに施行するセキュリティ・ポリシーに適応すべきである。
【０００４】
（概要）
以上に概説した問題は、いくつかの実施形態で、製造装置に対する複数のオブジェクト指向プロセス間通信プロトコルを使用して異なるプラットフォームおよびソフトウェア環境にまたがるプロセス間通信を容易にすることによって、少なくとも部分的に解決することができる。
【０００５】
一実施形態では、ツール管理を自動化する方法は、オブジェクト指向アプリケーション間通信プロトコル（言い換えればオブジェクト・ツー・オブジェクト・プロトコル）、例えばＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）、Ｊａｖａ（登録商標）ＲＭＩ（Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ）、ＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）や、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などのネットワーク転送プロトコルに従って、例えばワイド・エリア・ネットワーク（ＷＡＮ）やローカル・エリア・ネットワーク（ＬＡＮ）など様々な方式でメッセージを発行することのできるアプリケーションを、ユーザが使用するステップを含むことができる。メッセージは、例えば特定の情報をツールから抽出したり、ツールのオブジェクトに関連する変数またはパラメータを特定の値に設定したりする特定の動作を行うことを求める要求とすることができる。ツールに関連するオブジェクトがツールの状態を定義することができる。
【０００６】
メッセージは、対応するアプリケーション・インタフェース・ユニットが受信することができる。アプリケーション・インタフェース・ユニットは、例えばＯＢＥＭなどの装置モデルとユーザとの間をインタフェースするように構成することができる。アプリケーション・インタフェース・ユニットはさらに、要求された動作に必要なデータを含む場合のある受領メッセージの内容を抽出するように構成することができる。メッセージには、動作を行う対象となるツールを表す装置モデル中のオブジェクトへのポインタが含まれる場合がある。アプリケーション・インタフェース・ユニットは、メッセージ中のポインタが指すオブジェクトのメソッドを呼び出し、メッセージ内容を構成するデータをメソッドに渡すことができる。次いでメソッドは、リモート診断および修理を可能にすることのできるリモート・オブジェクト・アクセスを提供することができる。
【０００７】
次いで、装置モデルは、要求された動作およびメッセージ中のデータに関連する値を獲得することができる。すなわちこの値は、メッセージ中で要求された、ツールに関する特定の情報、例えば温度、圧力、状況に関連するものとすることができ、あるいは例えば警報が鳴るなどのイベントが発生したことをユーザに知らせる通知に関連するものとすることができる。装置モデルは、ユーザのアプリケーションから提供されるアドレスに基づいて、この値を適切なユーザに転送することができる。
【０００８】
以上、後続の本発明の詳細な説明がよりよく理解できるように、本発明の特徴および技術的利点をいくぶん大まかに概説した。以下に、本発明の特許請求の範囲の主題を形成する、本発明の追加の特徴および利点を述べる。
【０００９】
本発明は、後続の詳細な説明を後続の図面と共に考察すればよりよい理解を得ることができる。
【００１０】
（詳細な説明）
以下の記述では、本発明の完全な理解を実現するために、多くの具体的な詳細を述べる。例えば、特定のメッセージ・フォーマットおよびアプリケーション間通信プロトコルに言及する。ただし、このような具体的な詳細がなくても本発明を実施できることは、当業者には理解されるであろう。他の例では、本発明を必要以上の詳細で不明瞭にしないために、周知の回路はブロック図の形で示してある。
【００１１】
これから図面を参照するが、図示の要素は必ずしも一定の縮尺で示してあるわけではなく、また、いくつかの図を通して同じまたは同様の要素は同じ参照番号で示してある。
【００１２】
図１に、１人または複数のユーザ１０１Ａ〜Ｃがツール・サーバ１０２を介して１つまたは複数のツール１０３Ａ〜Ｃと通信できるようにする機構を提供するように構成された、本発明の一実施形態によるシステム１００を示す。ユーザ１０１Ａ〜Ｃは、総称的にまたは個別にユーザ１０１と呼ぶ場合がある。ツール１０３Ａ〜Ｃは、総称的にまたは個別にツール１０３と呼ぶ場合がある。システム１００は任意の数のユーザ１０１およびツール１０３を含むことができ、図１は例示的なものであることに留意されたい。さらに、ユーザ１０１とツール・サーバ１０２との間の接続、およびツール・サーバ１０２とツール１０３との間の接続は、例えば無線や有線など任意の媒体タイプとすることができることにも留意されたい。さらに、ユーザ１０１は、ツール・サーバ１０２に接続してそれによりツール１０３と通信する能力を伴って構成された任意のタイプのデバイス、例えば無線、パーソナル・ディジタル・アシスタント（ＰＤＡ）、セル・ホン、パーソナル・コンピュータ・システム、ワークステーション、インターネット・アプライアンスのユーザとすることができることにも留意されたい。
【００１３】
ツール・サーバ１０２は、特定の情報、例えば温度をツール１０３から抽出するように構成することができる。情報は、ツール・サーバを介してツールに要求メッセージを送信し、ツール・サーバを介して情報がツールから返信メッセージ中で返されることによって得られる。ツールはさらに、ツール・サーバを介してユーザに通知メッセージを送信することもできる。通知メッセージは、例えば、ツール中で事前選択済みの条件が発生したことをユーザに警告することができる。メッセージ内容は、特定の通信プロトコルに従ってフォーマットすることができる。例えば半導体ファブリケーション・ツールの場合、このような通信プロトコルは、ＳＥＭＩ通信規格（ＳＥＣＳ）、特にＳＥＣＳ−ＩＩとすることができる（ＳＥＣＳは、国際半導体製造装置材料協会（ＳＥＭＩ）によって発布されたＳＥＭＩ装置規格によって広められている）。（本発明は半導体ファブリケーション産業に限定したものではなく、本発明の原理は他の製造分野、例えば自動車産業のツール自動化システムにも適用することができ、このような実施形態も本発明の趣旨および範囲に含まれることを当業者なら理解するであろう。）以下にさらに述べる本発明の原理によれば、ユーザ１０１は、オブジェクト指向のアプリケーション間通信プロトコル、例えばＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）、Ｊａｖａ（登録商標）ＲＭＩ（Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ）、ＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｔｅｃｔｕｒｅ）、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）や、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などのネットワーク転送プロトコルを使用して、例えば表計算、ブラウザ、ツール制御レガシー・アプリケーションなど複数のアプリケーションからツール・サーバ１０２にメッセージを発行することにより、ツール１０３を制御してツール１０３から特定の情報を抽出することができる。（当業者には理解されるであろうが、このようなプロトコルは階層型であることに留意されたい。例えば、ＳＯＡＰはＨＴＴＰに従って転送されるＸＭＬドキュメント中にメッセージをラッピングするためのアプリケーション間メッセージング・プロトコルを定義する点で階層型である。）メッセージは、例えば半導体ファブリケーション設備で使用される装置など１つまたは複数のツール１０３に対して、例えば温度、状況、圧力など特定の情報を抽出することを求める要求とすることができ、あるいは例えばツール動作の開始／停止などのサービスを要求することができる。例えば、ユーザ１０１は、特定のチャンバ中の温度を要求するメッセージを発行することができ、この特定のチャンバは、例えば半導体プロセスなどの製造プロセス中のツール１０３を表す。ユーザ１０１がツール・サーバ１０２を介してツール１０３に関する情報を獲得することに関するより詳細な考察は、図５で提供する。以下、ツール・サーバ１０２に関する詳細な考察を提供する。
【００１４】
ここで、本発明の一実施形態によるツール・サーバ１０２を示す図２を参照する。図２を参照すると、ツール・サーバ１０２は、システム・バス２１２によって他の様々なコンポーネントに結合された中央処理装置（ＣＰＵ）２１０を備えることができる。ＣＰＵ２１０上では、オペレーティング・システム２４０が稼働し、制御を提供し、図２の様々なコンポーネントの機能を調整する。アプリケーション２５０、例えば、１つまたは複数のツール１０３と制御およびデータ管理を通信するためのプログラム（図５で述べる）や、ユーザ１０１がツール・サーバ１０２にアクセスする際のセキュリティを提供するためのプログラム（図７で述べる）が、オペレーティング・システム２４０と共に稼働し、オペレーティング・システム２４０は、アプリケーション２５０によって実施される様々な機能を実現する。システム・バス２１２には読出し専用メモリ（ＲＯＭ）２１６が結合され、これは、ツール・サーバ１０２のいくつかの基本機能を制御するＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）を含む。システム・バス２１２には、ランダム・アクセス・メモリ（ＲＡＭ）２１４、ディスク・アダプタ２１８、および通信アダプタ２３４もまた結合されている。オペレーティング・システム２４０およびアプリケーション２５０を含めたソフトウェア・コンポーネントは、コンピュータ・システムのメイン・メモリであるＲＡＭ２１４にロードされることに留意されたい。ディスク・アダプタ２１８は、例えばディスク・ドライブなどのディスク・ユニット２２０と通信するＳＣＳＩ（ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）アダプタとすることができる。図５で述べる、１つまたは複数のツール１０３から情報を取り出す本発明のプログラムは、ディスク・ユニット２２０に記憶し、起動されたときまたは他の方法で必要とされたときにオペレーティング・システムによってそこから取り出してＲＡＭにロードすることができることに留意されたい。さらに、図７で述べる、ツール・サーバ１０２にアクセスするユーザ１０１にセキュリティを提供する本発明のプログラムも、ディスク・ユニット２２０に記憶し、起動されたときまたは他の方法で必要とされたときにオペレーティング・システムによってそこから取り出してＲＡＭにロードすることができることに留意されたい。
【００１５】
通信アダプタ２３４は、バス２１２を外部ネットワークと相互接続し、ツール・サーバ１０２が例えばイーサネット（登録商標）、トークン・リング、ＡＲＣｎｅｔなどのローカル・エリア・ネットワーク（ＬＡＮ）や、例えばインターネットなどのワイド・エリア・ネットワーク（ＷＡＮ）を介して他のこのようなシステムと通信できるようにする。
【００１６】
本発明の実装形態は、本明細書に述べる方法を実行するようにプログラムされたコンピュータ・システム、およびコンピュータ・プログラム製品としての実装形態を含む。コンピュータ・システムの実装形態によれば、この方法を実行するための命令のセットが、前述のように一般に構成された１つまたは複数のコンピュータ・システムのランダム・アクセス・メモリ２１４中にある。命令セットは、ツール・サーバ１０２によって必要とされるまで、コンピュータ・プログラム製品として別のデバイス、例えばディスク・ドライブ２２０（最終的にディスク・ドライブ２２０中で使用するための光学ディスクやフロッピー（登録商標）・ディスクなど取外し可能メモリを含めることができる）に記憶することができる。さらに、コンピュータ・プログラム製品はまた、別のコンピュータに記憶し、望まれるときにネットワークによって、またはインターネットなどの外部ネットワークによってユーザのワークステーションに送信することもできる。記憶媒体がコンピュータ可読情報を搬送するように、命令セットの物理記憶域は媒体を物理的に変更することを、当業者なら理解するであろう。変更は、電気的、磁気的、化学的、またはその他の何らかの物理的変更である場合がある。
【００１７】
図３に、本発明の一実施形態による、図５で述べる１つまたは複数のツール１０３から情報を取り出すように構成された本発明のプログラムのソフトウェア・アーキテクチャ３００を示す。ソフトウェア・アーキテクチャ３００は、１つまたは複数のアプリケーション・インタフェース・ユニット３０１Ａ〜Ｃ、装置モデル３０２、および１つまたは複数のツール・インタフェース・ユニット３０３Ａ〜Ｃを備えることができる。アプリケーション・インタフェース・ユニット３０１Ａ〜Ｃは、総称的にまたは個別にアプリケーション・インタフェース・ユニット３０１と呼ぶ場合がある。ツール・インタフェース・ユニット３０３Ａ〜Ｃは、総称的にまたは個別にツール・インタフェース・ユニット３０３と呼ぶ場合がある。ソフトウェア・アーキテクチャ３００は、任意の数のアプリケーション・インタフェース・ユニット３０１およびツール・インタフェース・ユニット３０３を備えることができ、図３は例示的なものであることに留意されたい。
【００１８】
アプリケーション・インタフェース・ユニット３０１は、アプリケーション・モデル３０２をユーザ１０１にインタフェースするように構成することができる。装置モデル３０２は、ツール１０３の論理表現を提供するように構成することができ、それによりユーザ１０１はツール１０３と通信することができる。すなわち、装置モデル３０２は、ツール１０３と、ツールを構成する物理装置との論理マッピングを提供することができる。ツール供給側は、装置を装置モデルのオブジェクトに分解して、装置モデル３０２などの装置モデルのオブジェクト特性に物理装置をマッピングすることができる。このような装置モデルの１つは、参照により本明細書に組み込むＳＥＭＩ  Ｐｒｏｖｉｓｉｏｎａｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ＳＥＭＩ  Ｅ９８−１０００としてＳＥＭＩによって広められているＯＢＥＭ（Ｏｂｊｅｃｔ−Ｂａｓｅｄ  Ｅｑｕｉｐｍｅｎｔ  Ｍｏｄｅｌ）である。その他の装置モデルを本発明と共に使用することもできることに留意されたい。また、そのような実施形態が本発明の趣旨および範囲に含まれることは、当業者には理解されるであろう。図４に、装置モデル３０２をインスタンス化するのに使用できるモデル・スキーマに関する記述を提供する。例示的な装置モデルについては、図５に関連して述べる。
【００１９】
図４に、本発明と共に使用できる装置モデル・スキーマ４０２のＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）の図を示す。装置オブジェクト・モデル・スキーマ４０２は、複数のオブジェクトを含むオブジェクト指向モデルとすることができる。オブジェクト指向ソフトウェア・アーキテクチャによれば、オブジェクトはサブオブジェクトで構成することができ、サブオブジェクトはスーパーオブジェクトの属性およびメソッドを継承することができる。装置モデル・スキーマ４０２は、集約階層４０４およびインタフェース継承階層４０６を含む。集約階層４０４中のオブジェクトは具象的なオブジェクトとすることができ、継承階層４０６のオブジェクトは、具象的なオブジェクトの属性および方法を定義する抽象的なオブジェクトとすることができる。（Ｊａｖａ（登録商標）プログラミング言語における本発明の一実装形態では、継承階層４０６中の抽象的なオブジェクトのタイプはインタフェースとすることができる。）
【００２０】
集約階層４０４は、ユーザ・オブジェクト４０８を含む。装置オブジェクト４１０は、０個またはそれ以上の装置モジュール・オブジェクト４１２（円で示す）を含む（開いた菱形で示す）ことができる。加えて、装置オブジェクト４１０は、０個またはそれ以上の装置サブシステム・オブジェクト４１４および装置入出力デバイス・オブジェクト４１６を含むこともできる。装置モジュール・オブジェクト４１２自体は、０個またはそれ以上の装置モジュール・オブジェクト４１２、装置サブシステム・オブジェクト４１４、および装置入出力デバイス４１６を含むことができる。同様に、装置サブシステム・オブジェクト４１４も、０個またはそれ以上の装置サブシステム・オブジェクト４１４、および０個またはそれ以上の装置入出力オブジェクト４１６を含むことができる。集約階層４０６は、階層の上から下にいくにつれてオブジェクト・タイプが複雑でなくなるのを示すことができる。
【００２１】
次に図５を参照するが、この図は、図４のスキーマに従った例示的な装置モデル５０２のグラフィカル・ユーザ・インタフェース（ＧＵＩ）表現５００を示している。モデル５０２は、本発明と共に使用できる装置モデルの例であり、ツールのモデルは製造設備の実施形態に対応して他の数およびタイプのオブジェクトを有する場合もあることは、当業者なら理解するであろう。
【００２２】
モデル５０２は、ＧＵＩ５００中に階層型で提示されており、ルート・ノード５０４を含む。装置オブジェクト５０６は、例示的なモデル５０２では注入装置である。ＧＵＩ５００の枠５０８は、装置オブジェクト５０４に関連する属性セット５１０および対応する値５１２を示す。セット５０８中の属性の１つはｏｂｊＴｙｐｅ（５１４）であり、これは値「Ｅｑｕｉｐｍｅｎｔ」（５１６）を有することに留意されたい。別の属性はｏｂｊＩＤ（５１８）であり、これは値「ｉｍｐｌａｎｔｅｒ」（５２０）を有する。属性セット５１０および値５１２を示す枠５０８は、装置オブジェクト５０６を選択することによってＧＵＩ５００中に表示することができる（モデル５０２中のオブジェクト識別子「ｉｍｐｌａｎｔｅｒ」を「ハイライト表示」することで示すように）。例えば「マウス・クリック」によってＧＵＩ中のオブジェクトを選択することは、当業者には知られている。
【００２３】
装置モジュール・オブジェクト５２２は、モデル５０２ではイオン注入装置であり、装置オブジェクト５０６の子オブジェクトである。装置オブジェクト５０６に関して先に論じたのと同じ方式で装置モジュール・オブジェクト５２２を選択することにより、装置モジュール・オブジェクトの属性に対応する属性リストおよび関連する値（図５には示さず）を表示することができる。
【００２４】
モデル５０２中のその他のオブジェクトには、サブシステム・オブジェクト５２４および装置入出力オブジェクト５２６が含まれる。サブシステム・オブジェクト５２４すなわちエンドステーションは、装置モジュール・オブジェクト５２２すなわちイオン注入装置の子オブジェクトであり、入出力オブジェクト５２６すなわちファラデー・カップは、サブシステム・オブジェクト５２４の子オブジェクトである。
【００２５】
オブジェクト指向ソフトウェア原理によれば、モデル５０２などの装置モデルのオブジェクトは、データとデータに作用するメソッドとを含むクラスのインスタンスである。（上で論じた属性セットは、このようなデータの例である。）したがって、オブジェクトは、データとデータに作用するためのコードとのデータ構造である。具体的には、装置モデルのオブジェクト（製造設備の論理表現であることを想起されたい）は、特定のオブジェクトの子オブジェクトを返すメソッドを含む。言い換えれば、装置モデルにアクセスするユーザは、データ処理技術の当業者にはよく知られているように例えばディレクトリおよびファイルの階層の中を掘り下げるのと同様の仕方でモデル５０２の階層の中を「掘り下げる」ことによって、モデルを展開することができる。このようにして、ユーザのクライアント・アプリケーションは、モデルのオブジェクトへのポインタを得る。次いで、ユーザのクライアント・アプリケーションはこれらを使用して、ツールまたはツールのコンポーネントの論理表現に対応するオブジェクトを媒介としてツールまたはそのコンポーネントにデータまたはサービスを要求するためのメッセージをツールに送信することができる。このようなメッセージングについては、後で図７に関連して述べる。
【００２６】
図６に、本発明の一実施形態で使用できる別の例示的なＧＵＩ６００の一部を示す。ＧＵＩ６００は、ユーザのクライアント表計算アプリケーションと共に使用することができる。セル・セット６０２Ａ〜Ｃは、注入装置オブジェクトであるセル６０４に関する属性のセットを含む。対応する値がセル・セット６０６Ａ〜Ｃに表示されている。セル・セット６０２Ａ中に示す属性ＯｂｊＴｙｐｅの値は、セル・セット６０６Ａ中に表示された値「ｅｑｕｉｐｍｅｎｔ」を有し、属性ＯｂｊＩＤは、図５の装置属性５０６に対応する値「ｉｍｐｌａｎｔｅｒ」を有することに留意されたい。セル・セット６０２Ａ〜Ｃ中の属性およびセル・セット６０６Ａ〜Ｃ中の値は、図５の属性セット５１０および値セット５１２を反映していることに留意されたい。
【００２７】
さらに、ＧＵＩ６００は制御ボタン６０８も備える。ユーザが「マウス・クリック」や同様の動作で制御ボタン６０８を選択すると、例えば選択した属性値をツールから装置オブジェクト・モデルを介して送信するように求める要求メッセージを、表計算アプリケーションから開始することができる。このメッセージは、所定のオブジェクト指向プロセス間通信プロトコル、例えばＣＯＭを使用して、装置モデルに渡すことができる。
【００２８】
次に図７を参照するが、この図には、図１のツール１０３などツールとの間で装置モデルを介してメッセージを通信する方法７００を、フローチャートの形で示してある。
【００２９】
図３を再び参照すると、アプリケーション・インタフェース・ユニット３０１は、ユーザのうちの１人１０１とツール１０３との間でメッセージを通信するように構成することができる。各アプリケーション・インタフェース・ユニット３０１は、１つまたは複数のオブジェクト指向アプリケーション間プロトコル、例えばＣＯＭ、ＲＭＩ、ＣＯＲＢＡ、ＳＯＡＰ、ＨＴＴＰや、ＳＥＣＳメッセージなどのレガシー・ネイティブ・メッセージで通信するユーザ・アプリケーションを介して、ユーザ１０１からメッセージを受信するように構成することができる。さらに、各アプリケーション・インタフェース・ユニット３０１は、特定の方式、例えばＷＡＮ、ＬＡＮ、ファクトリー・システムで、ユーザ１０１からメッセージを受信するように構成することもできる。例えば、アプリケーション・インタフェース・ユニット３０１Ａは、ＣＯＭ、ＲＭＩ、ＣＯＲＢＡ、ＳＯＡＰ、ＸＭＬなどのプロトコルで、ＬＡＮを介してユーザ１０１Ａからメッセージを受信するように構成することができる。アプリケーション・インタフェース・ユニット３０１Ｂは、レガシー・アプリケーション、例えばＭＥＳによって、ＳＥＣＳなどのプロトコルで、ファクトリー・システム・ネットワークまたは他の通信リンクを介してユーザ１０１Ｂからメッセージを受信するように構成することができる。アプリケーション・インタフェース・ユニット３０１Ｃは、ユーザ１０１ＣからのメッセージをＨＴＴＰ要求などのプロトコルで、ＷＡＮまたはインターネットを介して通信し、ＨＴＭＬやＸＭＬドキュメントなどのドキュメント中にラッピングされたメッセージを受信するように構成することができる。このようなアプリケーション・インタフェース・ユニット中で使用できる方法および装置の詳細な記述は、「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｗｅｂ−ｂａｓｅｄ  Ｔｏｏｌ  Ｍａｎａｇｅｍｅｎｔ」という名称の、本出願の所有者が所有する同時係属の米国特許出願第０９／４９６００９号に出ており、この全体を本明細書に組み込む。
【００３０】
図７に、本発明の一実施形態による、例えば温度や圧力などの情報を取り出す方法、および／または例えばＯＢＥＭ（登録商標）などの装置モデル３０２を介して例えば制御メッセージなどのサービス要求を１つまたは複数のツール１０３に発行する方法７００のフローチャートを示す。先に論じたように、ツール・サーバ１０２中のソフトウェアは、図１のツール１０３などのツールの論理表現を実装する装置モデル（例えばＯＢＥＭ）を構成するソフトウェア・アーキテクチャを具体化することができる。
【００３１】
ステップ７０２で、ユーザ１０１〜１０１Ｃのうちの１人などユーザ１０１が、特定のアプリケーション・インタフェース・ユニット３０１、例えばアプリケーション・インタフェース・ユニット３０１Ａにメッセージを発行して、例えば温度、圧力、状況などの情報を要求することができ、かつ／あるいは、例えば制御メッセージなどのサービス要求を特定のツール１０３から、および／または特定のツール１０３に発行するように要求することができる。メッセージは、マルチタスキングまたはマルチプロセッシング環境で、スレッドによって特定のユーザ１０１に関連付けることができる。
【００３２】
ステップ７０４で、アプリケーション・インタフェース・ユニット３０１のうちの対応する１つがメッセージを受信することができる。前述のように、ユーザ１０１は、オブジェクト指向アプリケーション間通信プロトコル（言い換えればオブジェクト・ツー・オブジェクト・プロトコル）、例えばＣＯＭ、ＲＭＩ、ＣＯＲＢＡ、ＳＯＡＰ、ＨＴＴＰなどに従ってＷＡＮやＬＡＮなど様々な方式でメッセージを通信できるアプリケーションを使用して、特定のアプリケーション・インタフェース・ユニット３０１にアクセスすることができる。例えば、アプリケーション・インタフェース・ユニット３０１Ａは、ＣＯＭ、ＲＭＩ、ＣＯＲＢＡ、ＳＯＡＰ、ＨＴＴＰなどのプロトコルで、ＬＡＮを介してユーザ１０１Ａからメッセージを受信するように構成することができる。アプリケーション・インタフェース・ユニット３０１Ｂは、ＳＥＣＳなどのネイティブ・プロトコルで、ファクトリー・システム・ネットワークを介してユーザ１０１Ｂからメッセージを受信するように構成することができる。アプリケーション・インタフェース・ユニット３０１Ｃは、ＨＴＴＰなどのプロトコルを使用して、ＷＡＮまたはインターネットを介してユーザ１０１Ｃからメッセージを受信するように構成することができる。
【００３３】
前述のように、装置モデルを媒介とするツールとユーザの間で複数のアプリケーション・メッセージを使用して、異なるデータ処理プラットフォームを介したツールとユーザの間の通信を容易にするために、オブジェクト指向プロセス間通信またはデータ交換プロトコルを介してメッセージを交換することができる。例として、ＣＯＲＢＡ、ＲＭＩ、ＣＯＭ、およびＳＯＡＰが挙げられる。加えて、アプリケーションは、ＳＥＣＳなどのネイティブ通信プロトコル、あるいはＨＴＴＰ要求またはＸＭＬ／ＨＴＭＬページのメッセージを使用することもできる。
【００３４】
ステップ７０４でメッセージを受信したアプリケーション・インタフェース・ユニット３０１は、ステップ７０６で、受信したメッセージの内容、例えば要求された動作に必要なデータを抽出することができる。前述のように、受信したメッセージの内容は、特定の情報、例えば温度、圧力、状況を、１つまたは複数のツール１０３に求める要求とすることができる。あるいは、特定のパラメータ、例えば制御設定値を設定するように要求することもできる。あるいは、例えばパラメータの値の変化を通知するように要求することもできる。メッセージには、動作を行う対象となるツール１０３またはそのコンポーネントを表す装置モデル中のオブジェクトへのポインタと、影響を受ける特定の変数またはパラメータが含まれる。
【００３５】
要求が、データを得る要求でもなく、データを設定する要求でもなく、通知要求でもない場合は、後でさらに述べるステップ７１０、７４１、および７６３は「Ｎｏ」の枝を下り、方法７００はステップ７０８で、例えばツールを始動させたり停止したりするサービス要求などの要求を、適切なツール・インタフェースを介して処理する。
【００３６】
そうではなく、要求が、データを得る要求、データを設定する要求、通知要求のうちの１つである場合は、実施される動作はツール１０３またはそのコンポーネントの特性によって決まる。
【００３７】
ツール１０３は、後で述べるように、ステップ７０６で要求されたデータの同期ソース、可変同期ソース、および／または非同期ソースとして特徴付けることができる。同期ソースは、例えば温度、圧力、状況などの特定情報を求めるユーザ１０１の要求に対して値を供給するツールを指すことができる。可変同期ソースは、ユーザ１０１によって設定できるツール１０３の設定を指すことができる。設定は、ユーザ１０１が特定のツール１０３に関連する特定の変数またはパラメータを特定の値に設定することを指すことができる。非同期ソースは、例えば値の変化など特定のイベントが発生したときにユーザ１０１に通知する特定のツール１０３を指すことができる。ツール・インタフェース・ユニット３０３は、イベントが発生するときがあるかどうか、それに関連するツール１０３を絶えず監視するように構成することができる。イベントが発生したときは、ツール・インタフェース・ユニット３０３は、イベントが発生したことを装置モデル３０２に通知することができる。次いで装置モデル３０２は、当該ユーザ１０１へのポインタに基づいて当該ユーザ１０１に通知するメソッドを呼び出すように構成することができる。
【００３８】
ステップ７１２では、ステップ７０８で決定されたオブジェクトのパラメータが非同期ソースを有し、かつ非同期ソースから供給される値が現在であるかどうかをそのメソッドによって判定することができる。オブジェクトのパラメータが非同期ソースを有し、かつ非同期ソースから供給される値が現在である場合は、ステップ７１３でこの現在の値をローカル・オブジェクトから取り出し、ステップ７２８で適切なアプリケーション・インタフェースに転送する。次いでステップ７３０で、適切なアプリケーション・インタフェース・ユニット３０１が、受信したデータ値を適切なプロトコルに従ってユーザ１０１への返信メッセージに組み込むように構成することができる。ステップ７３２で、メッセージは、前にユーザのクライアント・アプリケーションから提供されたアドレスに基づいて、適切なユーザ１０１に転送することができる。
【００３９】
ステップ７１０を参照すると、特定のツール１０３が、現在有効なデータを有する非同期ソースを供給しない場合は、ステップ７３４で、特定のツール１０３が同期ソースを供給するかどうかを判定することができる。特定のツール１０３が同期ソースを供給する場合は、ステップ７３６で、適切なツール・インタフェース・ユニット３０３が特定のツール１０３からデータ値を取り出すことができる。適切なツール・インタフェース・ユニット３０３は、装置モデル３０２のネイティブ通信プロトコル、例えばＳＥＣＳに従って、装置モデル３０２のメソッドによってデータ値を取り出せるものとすることができる。次いでステップ７２８で、適切なツール・インタフェース・ユニット３０３は、データ値を装置モデル３０２に転送することができる。この値は、先に論じたようにステップ７２８でユーザに通信することができる。
【００４０】
特定のツール１０３が同期ソースでない場合は、ステップ７３７で、特定のツール１０３が、現在有効なデータのない非同期ソースを供給するかどうかを判定することができる。そうである場合は、ステップ７３９で要求は失敗し、ステップ７２８〜７３９で前述のように失敗応答がユーザに返される。
【００４１】
そうでない場合は、ステップ７３７は、「Ｎｏ」の印によってステップ７４０に進み、ローカル・オブジェクトからデータ値を取り出す。この値は、ステップ７２８〜７３２で前述のようにユーザに通信することができる。
【００４２】
ステップ７１０に戻り、要求がデータを求める要求でない場合は、ステップ７４１で、要求がデータ要素を変更する要求かどうかを判定する。そうである場合は、実施される動作は、やはりツール１０３の特性によって決まる。ステップ７５１で、先に論じたように、影響を受けるパラメータに対する可変同期サポートをツールが供給するかどうかを判定する。そうである場合は、ステップ７５３で、適切なツール・インタフェースを介してパラメータを設定する。この動作の完了時には、ステップ７５５で、影響を受けるパラメータが設定されたときに、通知を要求したすべてのユーザに通知する。これについては後で、ステップ７６５でさらに述べる。次いで、ステップ７２８〜７３２で前述のように要求をユーザに返す。
【００４３】
ステップ７５１に戻り、ツールが当該のプロパティに対する可変同期ソースを供給しないと判定された場合は、ステップ７５７で、ツールがこのプロパティに対する同期または非同期サポートを供給するかどうかを判定する。そうである場合は、ステップ７５９で要求は失敗し、前述のようにステップ７２８〜７３２でこの状況がユーザに返される。
【００４４】
ステップ７５７に戻り、ツールが当該のプロパティに対する同期または非同期サポートを供給しないと決定された場合は、ステップ７６１で、ローカル・オブジェクト中のプロパティを要求された値に設定し、ステップ７５５で、プロパティ変更をユーザに通知し、ついで前述のように後続のステップを実行する。
【００４５】
ステップ７４１に戻り、要求がデータ値を得る要求ではないと判定された場合は、ステップ７６３で、要求が、プロパティ変化などのイベントが発生したときに通知を受ける要求であるかどうかを判定する。そうである場合は、次いでステップ７６５で、要求を出したユーザへの参照を、それに関係するオブジェクトおよびパラメータと共に記憶する。次いで、先に論じたステップ７２８〜７３２で、要求の確認をユーザに返す。
【００４６】
図８に、本発明の一実施形態によるツール・アクセス制御方法８００のフローチャートを示す。すなわち、方法８００を用いて、特定のツールに関してユーザまたはユーザのクラスが行うことのできる動作を制御することができる。
【００４７】
ステップ８０２で、ユーザ、例えば図１のユーザ１０１Ａ〜Ｃのうちの１人から、要求メッセージを受信する。メッセージは、ツールまたはツールのコンポーネントに関するデータを要求することもあり、ツールにサービスを要求することもあり、したがってこのメッセージは、前述のようにツールまたはコンポーネントにアクセスする。
【００４８】
ステップ８０３で、方法８００は、図９のユーザ・オブジェクト９５０で示すように、特定のユーザ１０１、例えばユーザ１０１Ａに関連するオブジェクトを生み出すことができる。オブジェクト９５０は、関連するユーザ、例えばユーザ１０１Ａの識別子を含むことができる。
【００４９】
図９に、本発明の原理によるセキュリティ・ラッパ・アーキテクチャ９００を示す。このソフトウェア・アーキテクチャ９００はさらに、１つまたは複数のセキュリティ・ラッパ・オブジェクト９１１〜９１５Ａをラッパ層９０１に含むことができ、これらはそれぞれ、前述のようにツール要素を論理的に表すルート・オブジェクト９１２Ａ、装置オブジェクト９１２Ｂ、モジュール・オブジェクト９１２Ｃ、サブシステム・オブジェクト９１２Ｄ、および入出力オブジェクト９１２Ｅに関連する。セキュリティ・ラッパ・オブジェクト９１１Ａ〜Ｅは、総称的にまたは個別にセキュリティ・ラッパ・オブジェクト９１１と呼ぶ場合がある。以下、セキュリティ・ラッパ９１１に関する詳細な考察をさらに提供する。ソフトウェア・アーキテクチャ９００は、任意の数のセキュリティ・ラッパ９１１を含むことができ、複数のセキュリティ・ラッパ９１１が装置モデル３０２の特定の階層上にある複数のオブジェクトに関連することもできることに留意されたい。例えば、ソフトウェア・アーキテクチャ９００は、複数の装置オブジェクト９１２Ｂに関連する複数のセキュリティ・ラッパ９１１を含むこともできる。図８を、図９との関連でさらに述べる。
【００５０】
図８に戻ると、ステップ８０４で、アクセス制御情報を含むことのできる構成ファイルにアクセスする。具体的には、構成ファイルは、図９のユーザ・オブジェクト９５０に対応するユーザを含むユーザ・グループあるいはユーザ個人に関するアクセス制御情報を含むことができる。さらに、ツール自体またはそのコンポーネントをユーザと見なすこともでき、ユーザ・オブジェクト９５０は、このようなツールまたはコンポーネントに対応することもできる。図９のラッパ層９０１は、ユーザ・オブジェクト９５０に関連するユーザに対応するアクセス情報に応答して生成することができる。
【００５１】
方法８００により、図９のラッパ層９０１などのセキュリティ・ラッパ層をステップ８０６〜８１６で生成することができる。ステップ８０６〜８１６では、セキュリティ・ラッパ層９０１を再帰的に生成することができる。生み出されたセキュリティ・ラッパ・オブジェクトは、装置モデル・オブジェクトの１つ１つと並列に対応し、アクセスされる装置オブジェクトの、装置モデル階層における深さに依存する。言い換えれば、セキュリティ・ラッパは、ユーザからの要求メッセージに従って必要に応じて生み出される。ステップ８０６で、ラッパ・オブジェクト、例えばセキュリティ・ラッパ・オブジェクト９１１Ａ〜Ｅのうちの１つを生み出す。ステップ８０８で、対応する装置モデル・オブジェクト、例えばオブジェクト９１２Ａ〜９１２Ｅのうちの１つへのポインタを、ステップ８０６で生み出したセキュリティ・ラッパ・オブジェクトに記憶する。さらにステップ８１０で、対応する特定のユーザ、およびツール・オブジェクト・モデルからアクセスされているツールまたはツール・コンポーネントを、セキュリティ・ラッパ・オブジェクトに記憶する。ステップ８１２で、過度の要求が出されているオブジェクトに現在の装置モデル・オブジェクトが対応するかどうかを判定する。対応しない場合は、ステップ８１４で、プロセス８００は現在の装置モデル・オブジェクトの子に進み、ステップ８０６に戻って、子に対するセキュリティ・ラッパ・オブジェクトを生み出す。言い換えれば、ステップ８０６〜８１４では、ステップ８１６でアクセス要求が出されているオブジェクトに達するまで装置モデル階層の中を掘り下げる。次いでステップ８１６で、対応するラッパ・オブジェクトへのリポインタを、ユーザに、すなわちアクセス要求の出所であるユーザのクライアント・アプリケーションに返す。ステップ８１８では、ステップ８１０でオブジェクトに記憶したアクセス規則に基づいて、ユーザがデータにアクセスできるか、または受信したメッセージに対応するこのサービスを要求できるかどうかを判定する。できる場合は、ステップ８２０で、セキュリティ・ラッパ・オブジェクトは、対応する装置モデル・オブジェクト中のメソッドを呼び出して、要求された動作を行う。そうでない場合は、ステップ８２２でアクセスを拒否する。
【００５２】
ステップ８０５に戻ると、アクセスされている装置モデル・オブジェクトに対するセキュリティ・ラッパが存在する場合は、ステップ８０７で、ラッパ・オブジェクトへのポインタを返し、ステップ８１８で、セキュリティ・ラッパ・オブジェクトへのポインタを、要求された装置オブジェクトに関する特定の動作を行うメソッドに渡す。ステップ８２０で、この対応セキュリティ・ラッパ・オブジェクトに記憶されたアクセス制御情報に従って、アクセスが許可されるかどうかを決定する。特定の動作のためにアクセスが許可される場合は、ステップ８２２で装置モデル・オブジェクトの対応メソッドを呼び出し、そうでない場合は、ステップ８２４でアクセスを拒否する。
【００５３】
このようにして、図９のセキュリティ・ラッパ・オブジェクト９１１Ａ〜９１１Ｅなどのセキュリティ・ラッパ・オブジェクトは、ツールおよびそのコンポーネントへのアクセスを制御するための「フィルタ」として働く。図９の層９０１などの追加セキュリティ・ラッパ層を構成リスト中の制御情報に従って構築して、追加の「フィルタリング」を実現することもできることに留意されたい。このようにして構築された第２のセキュリティ・ラッパ層は、図９のオブジェクト９１１Ａ〜９１１Ｅに類似するセキュリティ・ラッパ・オブジェクトを含み、これらの中に、第１の層中の対応するセキュリティ・ラッパ・オブジェクトへのポインタが記憶されることは、当業者には理解されるであろう。このようにして、特定の装置モデル・オブジェクトへのアクセス要求が順次フィルタリングされ、ステップ８２０に関して述べたようにアクセス要求は第２の層中のセキュリティ・ラッパ・オブジェクトへのポインタをメソッドに渡し、次いでメソッドは、ステップ８２０に関して述べたようにアクセス許可決定を行った後で、第１のセキュリティ・ラッパ層中の対応するセキュリティ・ラッパ・オブジェクト中に含まれるポインタを渡す。次いで、メソッド呼出しにおけるポインタ・パスによって指された第１の層中の対応するセキュリティ・ラッパ・オブジェクトが、それに含まれるアクセス制御情報に基づいてセキュリティ許可決定を行い、アクセス許可時に、そのポインタを装置オブジェクト・メソッドのツールの呼び出しに渡す。
【００５４】
方法、コンピュータ・プログラム製品、およびシステムをいくつかの実施形態に関連して述べたが、本明細書に述べる特定の形に限定するものではなく、反対に、添付の特許請求の範囲によって定義する本発明の趣旨および範囲に無理なく収まるこのような代替、修正、および均等物を包含するものである。各見出しは、構成上の目的で使用したに過ぎず、記述または特許請求の範囲を限定するものではないことに留意されたい。
【図面の簡単な説明】
【図１】  本発明によって構成されたシステムの一実施形態を示す図である。
【図２】  本発明の一実施形態によるツール・サーバを示す図である。
【図３】  複数プロトコル環境で自動化されたツール管理を実現するように構成された、本発明のプログラムのソフトウェア・アーキテクチャの一実施形態を示す図である。
【図４】  本発明によって構成された装置モデルのＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）図である。
【図５】  本発明によって構成された例示的な装置モデルのグラフィカル・ユーザ・インタフェース（ＧＵＩ）表現を示す図である。
【図６】  本発明によって構成された別の例示的なＧＵＩの一部を示す図である。
【図７】  装置モデルを介して、情報を取り出し、かつ／あるいは、サービス要求をツールから、および／またはツールに発行する方法のフローチャートである。
【図８】  ツール・アクセス制御の方法のフローチャートである。
【図９】  本発明の一実施形態によるセキュリティ・ラッパ・アーキテクチャを示す図である。
【図１】
0004806513.tif 000002
【図２】
0004806513.tif 000003
【図３】
0004806513.tif 000004
【図４】
0004806513.tif 000005
【図５】
0004806513.tif 000006
【図６】
0004806513.tif 000007
【図７】
0004806513.tif 000008
0004806513.tif 000009
0004806513.tif 000010
0004806513.tif 000011
0004806513.tif 000012
【図８】
0004806513.tif 000013
0004806513.tif 000014
【図９】
0004806513.tif 000015