KR100798565B1 - 자동화된 툴 관리 방법, 컴퓨터 판독가능한 저장 매체 및 시스템 - Google Patents

자동화된 툴 관리 방법, 컴퓨터 판독가능한 저장 매체 및 시스템 Download PDF

Info

Publication number
KR100798565B1
KR100798565B1 KR1020027003021A KR20027003021A KR100798565B1 KR 100798565 B1 KR100798565 B1 KR 100798565B1 KR 1020027003021 A KR1020027003021 A KR 1020027003021A KR 20027003021 A KR20027003021 A KR 20027003021A KR 100798565 B1 KR100798565 B1 KR 100798565B1
Authority
KR
South Korea
Prior art keywords
message
tool
programming
client application
return value
Prior art date
Application number
KR1020027003021A
Other languages
English (en)
Other versions
KR20020055579A (ko
Inventor
레이몬드 월터 엘리스
마크 테오도어 펜들턴
찰스 메리트 베이리스
Original Assignee
도메인 로직스 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 도메인 로직스 코포레이션 filed Critical 도메인 로직스 코포레이션
Publication of KR20020055579A publication Critical patent/KR20020055579A/ko
Application granted granted Critical
Publication of KR100798565B1 publication Critical patent/KR100798565B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/4185Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the network communication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31174Load, use different protocols, formats, emulators for different systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31175Message comprises identification of sender, receiver, command and parameter
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31186TCP-IP internet protocol
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31196SOAP, describes available services and how to call them remotely
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31422Upload, download programs, parameters from, to station to, from server
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32126Hyperlink, access to program modules and to hardware modules in www, web server, browser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34038Web, http, ftp, internet, intranet server
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/45Nc applications
    • G05B2219/45031Manufacturing semiconductor wafers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Manufacturing & Machinery (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Sewing Machines And Sewing (AREA)
  • Automatic Tape Cassette Changers (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Communication Control (AREA)

Abstract

멀티-프로토콜 환경에서 자동화된 툴 관리를 위한 시스템, 컴퓨터 프로그램 제품 및 메소드이다. 사용자는 대응하는 애플리케이션 인터페이스 유닛으로 객체-지향적 상호응용 통신에 따라 메시지를 발한다. 메시지는 선택된 툴에 대한 특정 동작을 수행할 것의 요구이다. 메시지의 콘텐츠는 요구된 동작에 의해 요구된 데이터 및 툴을 표현하는 객체로의 포인터를 포함하는 대응하는 애플리케이션 인터페이스 유닛에 의해 추출된다. 애플리케이션 인터페이스 유닛은 메시지의 포인터에 의해 지시된 객체의 메소드에 호소한다. 툴에 관한 메시지에서 요구된 특정 정보 또는 사용자에게 어떤 이벤트가 발생하였음을 알려주는 통보에서 요구된 값은 설비 모델에 의해 획득된다. 설비 모델은 그 값을 적절한 사용자에게 전달한다.

Description

자동화된 툴 관리 방법, 컴퓨터 판독가능한 저장 매체 및 시스템{A METHOD FOR AUTOMATED TOOL MANAGEMENT, A COMPUTER READABLE STORAGE MEDIUM AND A SYSTEM}
본 출원은 이하의 공동 소유의 공동 계류중인 미국 특허출원들에 관한 것이다:
200년 7월 7일자로 출원된 가출원 일련번호 제60/216,819호, 이는 35 U.S.C. 119(e) 하에서 선 출원일의 장점을 청구하고; 및
본 출원의 일부 연속출원인 2000년 2월 1일자로 출원된 출원 일련번호 제09/496,009호, "Apparatus and Methods for Web-based Tool Management"(Attorney Docket No. 21183-P001US).
본 발명은 제조 공정에 관한 것이며, 보다 구체적으로는 멀티-프로토콜 환경에서 생산 설비를 제어하기 위한 메카니즘의 제공에 관한 것이다.
현대의 제조 설비는 제조 공정을 구현하기 위해 매우 자동화된 툴에 의존한다. 예를 들어, 반도체 제조 설비는 반도체 웨이퍼의 처리를 위한 매우 자동화된 툴 셋을 통합한다. 공정 제어 및 모니터링은 수행될 프로세스 및 모니터링을 구현하기 위해 호출되는 소프웨어 메소드들(methods)의 집합을 통해 조정된다. 제어 및 모니터링 소프트웨어는 다수의 포트를 통해 툴에 연결되는 툴 서버 상에서 실행되고, 다수의 포트 각각은 점대점 형태로 특정 툴을 갖는 툴 서버와 인터페이스 된다. 선택적으로, 툴 서버의 툴은 근거리 통신망에 속한다. 제조 공정을 제어하기 위해, 사용자는 LAN에 속하는 사용자 시스템을 통해 서버와 통신할 수 있거나, 그렇지 않으면 툴 서버와 통신 중이어야 한다. 특히, 툴 상태의 제어 및 모니터링을 위한 툴 서버로의 원격 액세스는, 조금이라도 존재하는 정도까지, 원격 액세스가 제공되는 각 플랫폼 상에 구현된 전문화된 코드의 개발을 필요로 한다. 그러나, 현대의 데이터 처리 시스템은 통상적으로 객체-지향 상호애플리케이션(interapplication) 또는 상호프로세스(interproccess) 통신을 위한 설비들을 포함하는 브라우저 및 스프레드시트 소프트웨어와 같이 다수의 이미 존재하는 소프트웨어 애플리케이션을 제공한다. 이러한 설비들은 서로 다른 플랫폼 및 소프트웨어 환경을 통한 통신을 상호처리(interprocess)한다. 따라서, 다수의 객체-지향 상호처리 통신 프로토콜을 사용하는 애플리케이션 소프트웨어를 제조 설비에 적용시키기 위한 시스템 및 방법이 요구된다. 추가적으로, 그러한 인터페이싱 시스템 및 방법은 보안 정책의 시행 뿐만 아니라 레거시(legacy) 툴 제어 및 애플리케이션의 모니터링을 수용하여야 한다.
위에서 약술된 문제점들은 몇가지 실시예에서 다수의 객체-지향 상호처리 통신 프로토콜을 사용하여 서로 다른 플랫폼 및 소프트웨어 환경을 통한 제조 설비로의 상호처리 통신을 촉진 하므로써 적어도 부분적으로는 해결될 수 있다.
한 실시예에서, 툴 관리를 자동화하기 위한 프로세스는, WAN, LAN과 같은 다양한 방식으로, 객체-지향 상호애플리케이션 통신 프로토콜, (또는 동등하게는 객체-대-객체 프로토콜), 예컨대 COM(Component Object Model), JavaTM RMI(Remote Method Invocation), SOAP(Simple Object Access Protocol), 또는 HTTP(Hypertext Transfer Protocol)과 같은 네트워크 전송 프로토콜에 따라 메시지를 발한다. 메시지는 예컨대, 툴로부터 특정 정보를 추출한다거나, 툴의 객체와 관련된 변수 또는 파라미터를 특정값으로 설정하는 동작을 수행하려는 요구일 수 있다. 툴과 관련 된 개체는 툴의 상태를 정의한다.
메시지는 대응하는 애플리케이션 인터페이스 유닛에 의해 수신된다. 애플리케이션 인터페이스 유닛은 설비 모델, 예컨대 OBEM과 사용자 사이를 인터페이스 하도록 구성된다. 애플리케이션 인터페이스 유닛은 요구된 동작에 의해 요구되는 데이터를 포함하는 수신된 메시지의 콘텐츠를 추출하도록 더 구성될 수 있다. 동작이 수행될 툴을 표현하는 설비 모델의 객체로의 포인터가 메시지에 포함된다. 애플리케이션 인터페이스 유닛은 메시지의 포인터에 의해 지시되는 객체로 향하는 메소드를 동원하여 메시지 콘텐츠를 구성하는 데이터를 상기 메소드로 전달한다. 메소드는 원격 진단 및 수리를 가능케 하는 원격 객체 액세스를 제공한다.
값은 그 값이 메시지의 요구된 동작 및 데이터와 관련되어 있는 설비 모델에 의해 획득된다. 즉, 그 값은 툴에 대한 메시지에서 요구된 특정 정보, 예컨대 온도, 압력, 상태 또는 사용자에게 경보가 꺼졌다는 등의 이벤트를 알려주는 통보와 관련되어 있다. 설비 모델은 사용자의 애플리케이션에 의해 제공된 어드레스를 기초로 적절한 사용자에게 그 값을 전달한다.
이상 본 발명의 특징 및 장점에 대해 다소 넓게 살펴보았고, 이하 상세히 설명하고자 한다. 이하 본 발명의 추가적인 특징 및 효과를 설명한다.
도1은 본 발명에 따라 구성된 시스템의 실시예.
도2는 본 발명의 툴 서버의 실시예.
도3은 멀티-프로토콜 환경에서 자동화된 툴 관리를 제공하도록 구성된 본 발 명의 프로그램의 소프트웨어 구조에 대한 실시예.
도4는 본 발명에 따라 구성된 설비 모델에 대한 UML(Unified Modeling Language) 다이어그램.
도5는 본 발명에 따라 구성된 예시적인 설비 모델에 대한 그래픽 사용자 인터페이스(GUI) 설명.
도6은 본 발명에 따라 구성된 또다른 예시적인 GUI의 일부.
도7은 정보의 검색 및/또는 설비 모델을 거쳐 툴로 및/또는 툴로부터 서비스 요구의 발행을 위한 방법에 대한 흐름도.
도8은 툴 액세스 제어를 위한 방법에 대한 흐름도.
도9는 보안 래퍼(wrapper) 구조에 대한 본 발명의 실시예.
이하에서, 본 발명의 완전한 이해를 위한 다수의 특정 실시예들이 제시된다. 예를 들어, 특정 메시지 포맷 및 상호애플리케이션 통신 프로토콜이 참조되지만, 본 발명이 그러한 특정 설명 없이도 실시될 수 있음은 당업자는 이해할 것이다. 다른 예에서, 잘 알려진 회로들이 불필요하게 본 발명을 모호하게 하지 않기 위해 블록도 형태로 제시되어 있다.
도면을 참조하는데, 여기서 설명된 엘리먼트들은 반드시 스케일될 필요는 없고, 도면 전체에 걸쳐 동일한 참조번호는 동일한 엘리먼트를 지시한다.
도1은 하나 이상의 사용자들(101A-C)이 툴 서버(102)를 통해 하나 이상의 툴들(103A-C)과 통신할 수 있도록 하기 위한 메카니즘을 제공하도록 구성된 시스템(100)에 대한 본 발명의 실시예를 나타낸다. 사용자들(101A-C)은 집합적으로 또는 개별적으로 각각 사용자들(101) 또는 사용자(101)라 칭하기로 한다. 툴들(103A-C)은 집합적으로 또는 개별적으로 각각 툴들(103) 또는 툴(103)이라 칭하기로 한다. 시스템(100)이 임의의 수의 사용자들(101) 및 툴들(103)을 포함할 수 있다는 점과 도1이 설명적이라는 점이 주목된다. 또한, 사용자들(101) 및 툴 서버(102) 간의 연결 및 툴 서버(102) 및 툴들(103) 간의 연결이 예컨대, 무선이나 유선과 같은 임의의 매체 타입일 수 있음도 주목된다. 또한, 사용자(101)는 예컨대, 무선, PDA, 무선 전화, 개인 컴퓨터 시스템, 워크 스테이션, 인터넷 설비와 같은 임의의 타입의 사용자일 수 있으며, 이들은 툴 서버(102)로의 연결 능력을 가지고 있으며, 따라서 툴(103)과 통신할 수 있다.
툴 서버(102)는 툴들(103)로부터 예컨대, 온도와 같은 특정 정보를 추출하도록 구성되어 있다. 정보는 툴 서버를 통해 툴로의 요구 메시지 및 응답 메시지에서 툴에 의해 반환된 정보를 툴 서버를 통해 전송하므로써 얻을 수 있다. 또한, 툴은 툴 서버를 통해 사용자에게 통보 메시지를 전송한다. 통보 메시지는, 예컨대 사용자에게 툴에서 미리 선택된 조건이 발생하였음을 경고한다. 메시지 콘텐츠는 특정 통신 프로토콜에 따라 포맷화된다. 예를 들어, 반도체 제조 툴들에서, 그러한 통신 프로토콜은 SECS(SEMI Communication Standard), 보다 구체적으로는 SECS-II(SECS는 SEMI에 의해 공표된 SEMI 설비 표준에 의해 공표된다)이다. (당업자들은 본 발명이 반도체 제조 산업에 한정되지 않으며, 본 발명의 원리는 자동차 공업과 같은 다른 제조 영역의 툴 자동화 시스템에 적용될 수 있으며, 그러한 실시예들은 본 발명의 범위에 포함된다는 점을 이해할 것이다.) 이하에 더 설명될 본 발명의 원리에 따라, 사용자들(101)은 COM(Component Object Model), JavaTM RMI(Remote Method Invocation), CORBA(Common Object Request Broker Architecture), SOAP(Simple Object Access Protocol) 또는 HTTP(Hypertext Transfer Protocol)등의 네트워크 전달 프로토콜과 같은 객체-지향 상호애플리케이션 통신 프로토콜을 사용하여 스프레드시트, 브라우저 또는 툴 제어 레거시 애플리케이션과 같은 다수의 애플리케이션들로부터의 메시지를 발하므로써, 툴들(103)을 제어하고 툴들(103)로부터 특정 정보를 추출할 수 있다. (당업자라면 이해할 바와 같이, 그러한 프로토콜은 예컨대, SOAP가 HTTP에 따라 전달된 XML 문서의 메시지를 포함하는 상호애플리케이션 메시지 프로토콜을 정의하기 때문에, 층으로 분리될 수 있다.) 메시지는 반도체 제조 설비에서 사용되는 설비와 같은 하나 이상의 툴들(103)로부터 온도, 상태, 압력 같은 특정 정보의 추출 요구하는 것이거나, 툴 동작의 개시/정지를 요구하는 것일 수 있다. 예를 들어, 사용자(101)는, 특정 챔버가 반도체 공정과 같은 제조 공정의 툴(103)을 나타내는 경우에, 특정 챔버의 온도를 요구하는 메시지를 발한다. 툴 서버(102)를 통해 툴(103)에 대한 정보를 획득하는 사용자들(101)에 대한 더 상세한 논의가 도5에 제공된다. 툴 서버(102)에 대한 상세한 설명이 이하에 제공된다.
도2를 참조하면, 도2는 툴 서버(102)에 대한 본 발명의 실시예를 나타낸다. 도2에서, 툴 서버(102)는 시스템 버스(212)에 의해 다양한 다른 컴포넌트들에 연결된 중앙 처리 장치(CPU)를 포함한다. 운영 체제(240)는 CPU(210) 상에서 실행되고 제어 기능을 제공하며 도2의 다양한 컴포넌트들에 대한 기능을 조절한다. 도5에 설명된 하나 이상의 툴들(103)과 제어 및 데이터 제어를 통신하기 위한 프로그램 및, 도7에 설명된 툴 서버(102)에 액세스하는 사용자들(101)의 보안을 제공하기 위한 프로그램과 같은 애플리케이션(250)은 애플리케이션(250)에 의해 수행될 다양한 기능들을 구현하는 운영체제(240)와 함께 실행된다. ROM(216)은 시스템 버스(212)에 연결되고, 툴 서버(102)의 임의의 기본 기능들을 제어하는 BIOS(basic input/output system)를 포함한다. RAM(214), 디스크 어댑터(218) 및 통신 어댑터(234)는 또한 시스템 버스(212)에 연결된다. 운영 체제(240) 및 애플리케이션(250)을 포함하는 소프트웨어 컴포넌트들은 컴퓨터 시스템의 주메모리인 RAM(214)에 로딩됨이 주목된다. 디스크 어댑터(218)는 디스크 드라이브와 같은 디스크 유닛(220)과 통신하는 SCSI(small computer system interface) 어댑터이다. 도5에 설명된 바와 같이, 하나 이상의 툴들(103)로부터 정보를 검색하는 본 발명의 프로그램은 디스크 유닛(220)에 저장되고 그로부터 검색되며, 시작되거나 필요한 경우에 운영 체제에 의해 RAM에 로드된다는 점을 주목할 것. 또한, 도7에 설명된 바와 같이, 툴 서버(102)에 액세스하는 사용자들(101)에게 보안을 제공하는 본 발명의 프로그램은 디스크 유닛(220)에 저장되고, 그로부터 검색되며 시작 되거나 필요한 경우에 운영체제에 의해 RAM에 로드된다는 점도 주목할 것.
통신 어댑터(234)는 버스(212)를, 툴 서버(102)가 이더넷, 토큰 링, ARCnet과 같은 근거리 통신망이나 인터넷과 같은 광대역 통신망을 통해, 그러한 다른 시스템들과 통신할 수 있도록 해주는 외부 네트워크와 상호연결 시킨다.
본 발명의 구현은 여기에 설명된 방법 또는 방법들을 실행하도록 프로그램된 컴퓨터 시스템 및 컴퓨터 프로그램 제품의 구현을 포함한다. 컴퓨터 시스템 구현에 따라, 방법 또는 방법들을 수행하기 위한 명령어들의 집합은 일반적으로 위해 설명된 대로 구성된 하나 이상의 컴퓨터 시스템의 RAM(214)에 존재한다. 툴 서버(102)에 의해 요구될 때까지, 명령어들의 집합은 다른 장치, 예컨대 디스크 드라이브(220)(디스크 드라이브(220)의 궁극적 사용을 위한 광디스크 또는 플로피 디스크를 포함)에 컴퓨터 프로그램 제품으로서 저장된다. 또한, 컴퓨터 프로그램 제품은 또한 또다른 컴퓨터에 저장되고 원하는 경우에는 네트워크나 인터넷과 같은 외부 네트워크에 의해 사용자의 워크스테이션으로 전송될 수 있다. 당업자는 명령어들 집합이 매체가 컴퓨터 판독가능 정보를 포함하게 되도록 그것이 저장되는 매체를 물리적으로 변화시킨다는 점을 인정할 것이다. 그 변화는 전기적, 자기적, 화학적 또는 다른 물리적 변화일 수 있다.
도3은 도5에 설명된 바와 같은 하나 이상의 툴들(103)로부터 정보를 검색하도록 구성된 본 발명의 프로그램에 대한 소프트웨어 구조(300)로 제시된 본 발명의 실시예이다. 소프트웨어 구조(300)는 하나 이상의 애플리케이션 인터페이스 유닛(301A-C), 설비 모델(302) 및 하나 이상의 툴 인터페이스 유닛들(303A-C)을 포함한다. 애플리케이션 인터페이스 유닛(301A-C)은 집합적으로 또는 개별적으로 각각 애플리케이션 인터페이스 유닛들(301) 또는 애플리케이션 인터페이스 유닛(301)으로 참조된다. 툴 인터페이스 유닛들(303A-C)은 집합적으로 또는 개별적으로 각각 툴 인터페이스 유닛들(303) 또는 툴 인터페이스 유닛(303)으로 참조된다. 소프트웨어 구조(300)가 임의의 수의 애플리케이션 인터페이스 유닛들(301) 및 툴 인터페이스 유닛들(303)을 포함한다는 점과 도3이 설명적이라는 점이 주목된다.
애플리케이션 인터페이스 유닛들(301)은 애플리케이션 모델(302)을 사용자들(101)로 인터페이스 하도록 구성된다. 설비 모델(302)은 툴들(103)의 논리적 표현을 제공하여, 사용자들(101)이 툴들(103)과 통신하게 할 수 있도록 구성된다. 즉, 설비 모델(302)은 툴들로 구성되는 물리적 설비에 툴들(103)의 논리적 매핑을 제공한다. 툴 제공자는 설비를, 설비 모델(302)과 같은 설비 모델의 객체들로 분해하여, 물리적 설비를 설비 모델의 객체의 특성들로 매핑한다. 그러한 설비 모델의 하나로는, SEMI 임시 스펙 SEMI E98-1000로서 SEMI에 의해 공표된 OBEM(Object-Based Equipment Model)을 들 수 있으며, 본 명세서에 참고문헌으로 일체화된다. 다른 설비 모델들은 본 발명과 함께 사용된다는 점과, 그러한 실시예들은 본 발명의 범위 내에 속한다는 점은 당업자들에 의해 이해될 것이다. 설비 모델(302)을 예시하는데 사용되는 모델 구성에 대한 설명은 도4에 제공된다. 예시적인 설비 모델은 도5와 함께 설명된다.
도4는 본 발명과 함께 사용되는 설비 모델 구성(402)에 대한 UML(Unified Modeling Language)을 나타낸다. 설비 객체 모델 구성(402)은 다수의 객체들을 포함하는 객체-지향 모델이다. 객체-지향 소프트웨어 구조에 따라, 객체들은 하위객체들로 구성되며, 이것은 상위객체들의 속성 및 메소드들을 상속한다. 설비 모델 구성(402)은 집단 계층(404) 및 인터페이스 상속 계층(406)을 포함한다. 집단 계층(404)의 객체들은 구체적인 객체인 반면에, 상속 계층의 객체들은 구체적인 객체들의 속성 및 메소드들을 정의하는 추상적인 객체일 수 있다. (JavaTM 프로그래밍 언어로 본 발명을 구현할때, 상속 계층(406)의 추상적 객체 타입이 인터페이스일 수 있다.)
집단 계층(404)은 사용자 객체(408)를 포함한다. 장치 객체(410)는 0 (개방 다이아몬드로 표시됨) 또는 그 이상(원으로 표시됨)의 설비 모듈들을 포함한다. 또한, 설비 객체(410)는 0 또는 그 이상의 설비 하위시스템 객체(414) 및 설비 I/O 장치 객체들(416)을 포함한다. 설비 모듈 객체(412) 그 자체는 0개 이상의 설비 모듈 객체(412), 설비 하위시스템 객체(414) 및 설비 I/O 장치(416)를 포함한다. 마찬가지로, 설비 하위시스템 객체(414)는 0개 이상의 설비 하위시스템 객체(414) 및 0개 이상의 설비 I/O 객체(416)를 포함한다. 집단 계층(406)은 계층의 상부에서 하부까지 객체 타입의 복잡성의 감소를 나타낸다.
도5는 도4의 구성에 따른 예시적인 설비 모델(502)에 대한 그래픽 사용자 인터페이스(GUI)(500)를 설명한다. 모델(502)은 본 발명과 함께 사용되는 설비 모델을 설명하고, 당업자는 툴의 모델이 제조 설비의 실시예에 해당하는 객체들의 번호 및 타입들을 갖는다는 점을 이해할 것이다.
모델(502)은 GUI(500)에 계층적 형태로 표현되고, 루트점(504)을 포함한다. 설비 객체(506)는 예시적인 모델(502)의 주입기이다.
GUI(500)의 하위 윈도우(508)는 속성들(510)의 집합 및 설비 객체(504)와 관련된 해당 값들(512)을 나타낸다. 집합(508)에서 objTYPE(514) 속성은 그 값이 "Equipment"(516)이다. 또다른 속성 objID(518)는 그 값이 "Implanter"(520)이다. 하위 윈도우(508)는 속성 집합(510)을 설명하고, 값(512)은 (모델(502)의 객체 식별기 "Implanter"를 강조하므로써 제시되는 바와 같이) 설비 객체(506)를 선택하므로써 GUI(500)에 디스플레이된다. GUI에서 예컨대, "마우스-클릭"에 의한 객체의 선택은 당업자에게 공지된 기술이다.
설비 모델 객체(522)는 모델(502)에서 이온 주입기이고, 설비 객체(506)의 자식 객체이다. 설비 모듈 객체의 속성에 해당하는 속성 리스트 및 관련 값들(도5에 미도시)은 설비 객체(506)와 함께 위에 설명된 것과 같은 방식으로 설비 모듈 객체(522)를 선택하므로써 디스플레이된다.
모델(502)의 다른 객체들은 하위시스템 객체(524) 및 설비 I/O 객체(526)를 포함한다. 하위시스템 객체(524), endstation은 이온 주입기, 설비 모듈 객체(522)의 자식 객체이고, I/O 객체(526), Faraday Cup은 하위시스템 객체(524)의 자식 객체이다.
객체-지향 소프트웨어 원리에 따라, 모델(502)과 같은 설비 모델은 데이터 및 데이터에 대해 동작하는 메소드를 포함하는 클래스의 인스턴스들이다.(위에서 논의된 속성들의 집합은 그러한 데이터의 예시이다.) 따라서, 객체는 데이터에 대한 연산을 위한 데이터 및 코드를 포함하는 데이터 구조이다. 특히, 다시 상기(recall)해보면, 생산 설비의 논리적 표현인 설비 모델의 객체는 특정 객체의 자식 객체를 반환하기 위한 메소드를 포함한다. 즉, 설비 모델에 액세스하는 사용자는 데이터 처리 분야의 당업자에게 공지된 바와 같이, 디렉토리 및 파일들의 계층들 통해 드릴 다운하는 것에 유사하게, 예컨대 모델(502)의 계층을 통해 "드릴 다운"하므로써 모델을 탐색할 수 있다. 이런 식으로, 사용자의 클라이언트 애플리케이션은 모델의 객체로의 포인터들을 획득한다. 이것들은 사용자의 클라이언트 애플리케이션에 의해, 툴로부터 툴 또는 툴의 컴포넌트의 논리 표현에 해당하는 객체의 중재를 통해, 툴로부터 툴 또는 툴의 컴포넌트에 메시지를 전송하는데 사용된다. 그러한 메시징을 도7을 참조하여 이하 설명한다.
도6은 본 발명의 실시예에 사용되는 또다른 예시적 GUI(600)의 일부를 설명한다. GUI(600)는 사용자의 클라이언트 스프레드시트 애플리케이션과 함께 사용된다. 셀 집합(602A-C)은 주입기 객체의 속성들 집합, 셀(604)을 포함한다. 대응하는 값들이 셀 집합들(606A-C)에 디스플레이된다. 셀 집합(602A)에 도시된 속성 ObjType의 값은 "Equipment"이고, 셀 집합(606A)에 디스플레이되며, 속성 ObjID는 값이 도5의 설비 객체(506)에 대응하는 "Implanter"임을 주목할 것. 셀 집합(602A-C)의 속성들 집합 및 셀 집합(606A-C)의 값들이 도5의 속성 집합(510) 및 값 집합(512)의 속성들을 반영한다는 점을 주목할 것.
또한, GUI(600)는 제어 버튼(608)을 포함한다. 사용자에 의한 마우스 클릭 또는 다른 유사한 동작에 의해 이루어지는 제어 버튼(608)의 선택은, 설비 객체 모델을 통해 툴로부터, 예컨대 선택된 속성값에 대한 스프레드시트 애플리케이션으로부터의 요구 메시지를 전송하는데, 이 메시지는 소정의 객체-지향 상호처리 통신 프로토콜, 예컨대 COM을 사용하여 설비 모델로 전달된다.
흐름도 형태로 도시된, 도7을 참조하면, 설비 모델을 통한 예컨대, 도1의 툴들(103) 간의 메시지 통신을 위한 방법을 설명한다.
다시 도3을 참조하면, 애플리케이션 인터페이스 유닛(301)은 사용자들(101) 및 툴들(103) 중 하나 사이에서 메시지를 통신하도록 구성된다. 각 애플리케이션 인터페이스 유닛(301)은 하나 이상의 상호애플리케이션 프로토콜, 예컨대, COM, RMI, CORBA, SOAP, HTTP 또는 SECS 메시지 같은 레거시 네이티브 메시지를 통신하는 사용자 애플리케이션을 통해 사용자(101)로부터 메시지를 수신하도록 구성된다. 또한, 각 애플리케이션 인터페이스 유닛(301)은 특정 방식, 예컨대 WAN, LAN, 공장 시스템에서 사용자들(101)로부터 메시지를 수신하도록 구성된다. 예를 들어, 애플리케이션 인터페이스 유닛(301A)은 LAN을 통해 COM, RMI, CORBA, SOAP 및 XML과 같은 프로토콜로 사용자들(101A)로부터 메시지를 수신하도록 구성된다. 애플리케이션 인터페이스 유닛(301B)은 공장 시스템 네트워크 또는 다른 통신 링크를 통해 SECS와 같은 프로토콜로, 레거시 애플리케이션, 예컨대 MES를 통해 사용자들(101B)로부터 메시지를 수신하도록 구성된다. 애플리케이션 인터페이스 유닛(301C)은 WAN 또는 인터넷을 통해 HTTP 요구와 같은 프로토콜로 사용자들(101C)로부터 메시지를 통신하고, HTML 또는 XML 문서와 같은 문서로 랩된(wrapped) 메시지를 수신하도록 구성된다. 그러한 애플리케이션 인터페이스 유닛에서 사용되는 방법들 및 장치들에 대한 상세한 설명은 출원 계속 중이며 공동 소유된 미국특허 출원 번호 09/496,009, 발명의 명칭 "웹-기반 툴 관리를 위한 장치 및 방법"에 개시되어 있으며, 상기 발명은 본 명세서에 참고문헌으로 일체화 되어 있다.
도7은 본 발명의 실시예인 온도, 압력과 같은 정보 검색 및/또는 OBEMTM과 같은 설비 모델(302)을 통해 하나 이상의 툴들(103)에 제어 메시지와 같은 서비스 요구를 발하기 위한 방법(700)을 설명하는 흐름도이다. 위에 설명된 바와 같이, 툴 서버(102)의 소프트웨어는, 도1의 툴들(103)과 같은 툴 또는 툴들의 논리적 표현을 구현하는, OBEM과 같은 설비 모델을 구성하는 소프트웨어 구조를 구현한다.
스텝(702)에서, 사용자들(101-101C) 중의 하나와 같은 사용자(101)는 특정 애플리케이션 인터페이스 유닛(301), 예컨대 애플리케이션 인터페이스 유닛(301A)에 메시지를 발하여, 온도, 압력, 상태와 같은 정보를 요구하고 및/또는 특정 툴(103)로 및/또는 툴(103)로부터 제어 메시지 같은 서비스 요구를 발한다. 메시지는 멀티태스킹 또는 멀티프로세싱 환경에서의 연결에 의해 특정 사용자(101)와 관련된다.
스텝(704)에서, 메시지는 대응하는 애플리케이션 인터페이스 유닛(301) 중 하나에 의해 수신된다. 위에 언급된 바와 같이, 사용자들(101)은 객체-지향 상호애플리케이션 통신 프로토콜, 또는(동등하게는 객체-대-객체 프로토콜) 예컨대, COM, RMI, CORBA, SOAP, HTTP 등에 따라 메시지를 통신하는 애플리케이션을 사용하여 특정 애플리케이션 인터페이스 유닛들(301)에 액세스 할 수 있다. 예를 들어, 애플리케이션 인터페이스 유닛(301A)은 LAN을 통해 COM, RMI, CORBA, SOAP 및 HTTP와 같은 프로토콜로 사용자들(101A)로부터 메시지를 수신하도록 구성된다. 애플리케이션 인터페이스 유닛(301B)은 공장 시스템 네트워크를 통해 SECS와 같은 네이티 브 프로토콜로 사용자들(101B)로부터 메시지를 수신하도록 구성된다. 애플리케이션 인터페이스 유닛(301C)은 WAN 또는 인터넷을 통해 HTTP와 같은 프로토콜을 사용하여 사용자들(101C)로부터 메시지를 수신하도록 구성된다.
앞서 설명한 바와 같이, 툴 및 사용자 사이에서, 설비 모델의 의해 중재되는, 다수의 애플리케이션 메시지들을 사용하는 서로 다른 데이터 처리 플랫폼을 통한 툴 및 사용자 간의 통신을 촉진하기 위해, 메시지는 객체-지향 상호처리 통신 또는 데이터 교환 프로토콜을 통해 교환된다. 예로서, CORBA, RMI, COM 및 SOAP를 들 수 있다. 또한, 애플리케이션은 SECS와 같은 네이티브 통신 프로토콜, 또는 HTTP 요구나 XML/HTML 페이지의 메시지를 사용한다.
스텝(706)에서, 스텝(704)에서 메시지를 수신한 애플리케이션 인터페이스 유닛(301)은 수신된 메시지의 데이터, 예컨대 요구된 동작에 필요한 데이터를 추출한다. 위에 언급된 바와 같이, 수신된 메시지의 콘텐츠는 하나 이상의 툴들(103)로부터의 온도, 압력, 상태와 같은 특정 정보를 요구하거나; 또는 제어 설정-포인트와 같은 특정 파라미터를 설정할 것을 요구하거나; 또는 파라미터 값의 변화와 같은 통보를 요구할 수 있다. 동작이 수행될 툴(103) 또는 그 컴포넌트 및 영향을 받는 특정 변수 또는 파라미터를 표현하는 설비 모델의 객체로의 포인터가 메시지에 포함된다.
요구가 데이터를 얻거나(get) 데이터를 설정(set)하는 것이 아니고, 통보 요구도 아닌 경우에, 이하에 논의될 바와 같이, 스텝(710, 741 및 763)은 그 "No" 브랜치에 떨어지고, 방법(700)은 적절한 툴 인터페이스를 통해 스텝(708)에서 요구, 예컨대 툴의 시작 또는 정지와 같은 서비스 요구를 처리한다.
그렇지 않으면, 요구가 데이터 얻기, 데이터 설정 또는 통보 요구 중 하나인 경우에, 수행되는 동작들은 툴(103) 또는 그 컴포넌트의 특성에 따라 달라진다.
툴(103)은 이하에 설명될 바와 같이 스텝(706)에서 요구된 데이터의 동기 소스, 변할 수 있는 동기 소스 및/또는 비동기 소스로서 특성화된다. 동기 소스는 온도, 압력, 상태와 같은 특정 정보에 대한 사용자(101)의 요구에 값을 제공하는 툴을 가리킨다. 변할 수 있는 동기 소스는 사용자(101)에 의해 설정되는 툴(103) 설정을 가리킨다. 설정은 특정 툴(103)과 관련된 특정 변수 또는 파라미터를 특정 값으로 설정하는 사용자(101)를 가리킨다. 비동기 소스는 사용자(101)에게 이벤트가 발생하였을때, 예컨대 값이 변화할 때를 알려주는 특정 툴(103)을 가리킨다. 툴 인터페이스 유닛들(303)은 이벤트가 발생하였을 때에 대해 그와 관련된 툴들(103)을 계속 모니터링 하도록 구성된다. 이벤트가 발생하였을때, 툴 인터페이스 유닛(303)은 설비 모델(302)에 이벤트가 발생하였음을 통보한다. 설비 모델(302)은 그 사용자(들)(101)로의 포인터(들)을 기초로 중요한 사용자(들)에게 통보하기 위한 방법을 호출하도록 구성된다.
스텝(712)에서, 상기 방법에 의해 스텝(708)에서 결정된 객체의 파라미터가 비동기 소스에 의해 제공된 값이 존재하는 비동기 소스를 갖는가에 관한 결정이 행해진다. 객체의 파라미터가 비동기 소스에 의해 제공된 값이 존재하는 비동기 소스를 갖는 경우에, 그 존재하는 값은 스텝(713)에서 지역 객체로부터 검색되고, 스텝(728)에서 적절한 애플리케이션 인터페이스로 전달된다. 스텝(730)에서, 적절한 애플리케이션 인터페이스 유닛(301)은 적절한 프로토콜에 따라 사용자(101)에게로의 반환 메시지로 수신된 데이터 값을 통합하도록 구성된다. 스텝(732)에서, 메시지는 사용자의 클라이언트 애플리케이션에 의해 앞서 제공된 어드레스를 기초로 적절한 사용자(101)에게 전달된다.
스텝(710)을 참조하면, 특정 툴(103)이 비동기 소스에 현재 유효한 데이터를 제공하지 않는 경우에, 스텝(734)에서 특정 툴(103)이 동기 소스를 제공하는 가에 관한 결정이 행해진다. 특정 툴(103)이 동기 소스를 제공하는 경우에, 스텝(736)에서 적절한 툴 인터페이스 유닛(303)은 특정 툴(103)로부터 데이터 값을 검색한다. 적절한 툴 인터페이스 유닛(303)은 설비 모델의 네이티브 통신 프로토콜, 예컨대 SECS에 따라 설비 모델(302)의 방법에 의해 데이터 값을 검색하도록 인에이블된다. 스텝(728)에서, 적절한 툴 인터페이스 유닛(303)은 데이터 값을 설비 모델(302)로 전달한다. 스텝(728)에서, 상기 값은 위에서 논의된 바와 같이 사용자에게 전달된다.
특정 툴(103)이 동기 소스가 아닌 경우에, 스텝(737)에서, 특정 툴(103)이 현재 유효한 데이터가 없는 비동기 소스를 제공하는 가에 관한 결정이 행해진다. 그런 경우에, 요구는 스텝(739)에서 실패하고, 스텝(728-739)에서 사용실패 요구는 앞서 설명된 바와 같이 사용자에게로 반환된다.
다른 경우에, 스텝(737)은 "No" 브랜드에 의해 스텝(740)으로 진행하여 지역 객체로부터 데이터 값을 검색한다. 값은 위에서 논의된 대로 스텝(728-732)에서 사용자에게 전달된다.
스텝(710)으로 돌아가서, 요구가 데이터에 대한 요구가 아닌 경우에, 스텝(741)에서, 요구가 데이터 엘리먼트를 변형하고자 하는 요구인가에 관한 결정이 행해진다. 그렇게 결정된 경우에, 다시 행해진 동작들은 툴(103)의 특성에 따라 달라진다. 스텝(751)에서, 앞서 논의된 바와 같이, 툴이 영향을 받은 파라미터에 변형가능한 동기 써포트를 제공하는 가에 관한 결정이 행해진다. 그렇게 결정된 경우에, 스텝(753)은 적절한 툴 인터페이스를 통해 파라미터를 설정한다. 이 동작을 완료한 후에, 스텝(755)은 스텝(765)과 함께 다음에 더 설명될 바와 같이, 통보를 요구한 모든 사용자들에게 영향 받은 파라미터가 설정된 때를 통보한다. 앞서 설명된 바와 같이, 요구는 스텝들(728-732)의 사용자에게 반환된다.
스텝(751)으로 돌아가서, 툴이 중요한 속성에 변화할 수 있는 동기 소스를 제공하지 않는다는 결정이 행해지면, 스텝(757)에서 툴이 그 속성에 동기 또는 비동기 써포트를 제공하는 가에 관한 결정이 행해진다. 그렇게 결정된 경우에, 스텝(759)에서, 요구는 실패하고, 이 상태는 앞서 설명된 바와 같이 스텝들(728-732)에서 사용자에게 반환된다.
스텝(757)으로 돌아가서, 툴이 중요한 속성에 동기 또는 비동기 써포트를 제공하지 않는가에 대한 결정이 행해지면, 스텝(761)은 지역 객체의 속성을 요구된 값을 설정하고, 스텝(755)은 사용자들에게 속성 변화를 통보하며, 다음 스텝들이 앞서 설명된 바와 같이 실행된다.
스텝(741)으로 돌아가서, 요구가 데이터값을 얻으려는 요구가 아닌가에 대한 결정이 행해지면, 스텝(763)에서 요구가 속성 변화와 같은 이벤트가 발생하였때 통 보되는 요구인가에 관한 결정이 행해진다. 그렇게 결정된 경우에, 스텝(765)은 객체 및 거기에 속하는 파라미터와 함께 그 요구를 하는 사용자에 관한 참조를 저장한다. 요구의 수신 응답은 앞서 논의된 스텝들(728-732)에서 사용자에게 반환된다.
도8은 본 발명의 실시예에 따른 툴 액세스 제어용 방법(800)의 흐름도를 나타낸다. 즉, 방법(800)은 사용자 또는 사용자 그룹이 특정 툴에 관해 취하는 동작을 제어하는데 사용된다.
스텝(802)에서, 요구 메시지는, 도1의 예컨대 사용자들(101A-C) 중 한 사용자로부터 수신된다. 메시지는 툴 또는 그 툴의 컴포넌트에 관한 데이터를 요구하거나, 그 툴로부터의 서비스를 요구하고, 따라서 그 메시지는 앞서 설명된 바와 같이, 툴 또는 컴포넌트에 액세스한다.
스텝(803)에서, 방법(800)은 도9의 사용자 객체(950)에 의해 설명된 바와 같이, 특정 사용자(101), 예컨대 사용자(101A)와 관련된 객체를 발생할 수 있다. 객체(950)는 관련된 사용자, 예컨대 사용자(101A)의 식별기를 포함한다.
도9는 본 발명의 원리에 따른 보안 래퍼 구조(900)를 도시한다. 소프트웨어 구조(900)는 또한 루트 객체(912A), 설비 객체(912B), 모듈 객체(912C), 하위 시스템 객체(912D) 및 I/O 객체(912E)와 각각 관련된 래퍼 층(901) 내의 하나 이상의 보안 래퍼 객체(911A-915E)를 더 포함하고, 각 보안 래퍼 객체(911A-915E)는 논리적으로 앞서 설명된 바와 같은 툴 엘리먼트들을 표현한다. 보안 래퍼 객체들(911A-E)은 집합적으로 또는 개별적으로 각각 보안 래퍼 객체(911) 또는 보안 래퍼 객체들(911)이라 칭한다. 보안 래퍼들(911)에 대한 상세한 설명이 이하에 더 제공된다. 소프트웨어 구조(900)는 임의의 수의 보안 래퍼(911)를 포함한다는 점 및 다수의 보안 래퍼(911)는 설비 모델(302)의 특정 계층 상의 다수의 객체들과 관련된다는 점이 주목된다. 예를 들어, 소프트웨어 구조(900)는 다수의 설비 객체들(912B)과 관련된 다수의 보안 래퍼들(911)을 포함한다.
도8을 도9와 함께 더 설명한다.
도8로 돌아가서, 스텝(804)에서, 액세스 제어 정보를 포함하는 구성 파일이 액세스된다. 특히, 구성 파일은 도9의 사용자 객체(950) 또는 선택적으로 사용에게 개별적으로 대응하는 사용자를 포함하는 사용자 그룹에 관한 액세스 제어 정보를 포함한다. 또한, 툴 그 자체, 또는 그 컴포넌트는 사용자로 여겨질 수 있으며, 사용자 객체(950)는 그러한 툴 또는 컴포넌트에 대응한다. 도9의 래퍼층(901)은 사용자 객체(950)와 관련된 사용자에 대응하는 액세스 정보에 응답하여 발생된다.
도9의 래퍼 층(901)과 같은 보안 래퍼 층은 스텝들(806-816)의 방법(800)에 의해 발생될 수 있다. 스텝들(806-816)에서, 보안 래퍼층(901)은 반복적으로 발생된다. 설비 모델 객체들 하나하나에 병렬적으로 대응하는, 발생된 보안 래퍼 객체들은 액세스되는 설비 객체의 설비 모델 계층의 깊이에 따라 달라진다. 즉, 보안 래퍼들은 사요아로부터의 요구 메시지에 따라 요구되는 대로 발생된다. 스텝(806)에서, 래퍼 객체, 예컨대 보안 래퍼 객체들(911A-E)들 중 하나가 발생된다. 스텝(808)에서, 대응하는 설비 모델 객체, 예컨대 객체들(912A-912E) 중 하나로의 포인터는 스텝(806)에서 발생된 보안 래퍼 객체에 저장된다. 또한, 스텝(810)에서, 특정 사용자 및 툴 객체 모델에 의해 액세스되는 툴 또는 툴 컴포넌트가 보안 래퍼 객체에 저장된다. 스텝(812)에서, 현재 설비 모델 객체가 초과 요구가 행해지는 객체에 해당하는 지가 결정된다. 해당하지 않는 경우에, 스텝(814)에서, 프로세스(800)는 현재 설비 모델 객체의 자식으로 진행하고, 스텝(806)으로 돌아가서 자식에 대한 보안 래퍼 객체를 발생시킨다. 즉, 스텝(806-814)은 스텝(816)에서 액세스 요구가 행해지는 객체에 도달할 때까지 설비 모델 계층을 통해 드릴 다운한다. 스텝(816)에서, 해당하는 래퍼 객체로의 리포인터(repointer)는 사용자, 액세스 요구가 발생한 사용자의 클라이언트 애플리케이션으로 반환된다. 스텝(818)에서는, 스텝(810)에서 객체에 저장된 액세스 규칙들을 기초로, 사용자가 데이터에 액세스 하거나 수신된 메시지에 대응하는 이 서비스를 요구할 수 있는지가 결정된다. 그렇게 결정된 경우에, 스텝(820)에서, 보안 래퍼 객체는 요구된 동작을 수행하기 위해 대응하는 설비 모델 객체의 방법을 호출한다. 그렇지 않으면, 스텝(822)에서 액세스는 거부된다.
스텝(805)으로 돌아가서, 액세스되는 설비 모델 객체에 대한 보안 래퍼가 존재하는 경우에, 스텝(807)에서 래퍼 객체로의 포인터가 반환되고, 스텝(818)에서 보안 래퍼 객체로의 포인터가 요구된 설비 객체에 대한 특정 동작을 수행하기 위한 방법으로 전달된다. 스텝(820)에서, 이러한 해당하는 보안 래퍼 객체에 저장된 액세스 제어 정보에 따라 액세스가 허가되는지가 결정된다. 특정 동작에 대해 액세스가 허가되는 경우에, 스텝(822)에서 설비 모델 객체의 해당하는 방법이 호출되고, 그렇지 않으면, 스텝(824)에서 액세스가 거부된다.
이런 식으로, 도9의 보안 래퍼 객체들(911A-911E)과 같은 보안 래퍼 객체들은 툴 및 툴의 컴포넌트로의 액세스를 제어하기 위한 "필터"로서 동작한다. 도9의 층(901)과 같은 추가적인 보안 래퍼 층들은 추가적인 "필터링"을 제공하기 위한 구성 리스트의 제어 정보에 따라 구성된다는 점을 주목할 것. 당업자들은 이런 식으로 구성된 제2 보안 래퍼층은 도9의 객체들(911A-911E)에 유사한 보안 래퍼 객체들을 포함하고, 여기에 제1층의 해당 보안 래퍼 객체들로의 포인터들이 저장될 것임을 이해할 것이다. 이런 식으로, 특정 설비 모델 객체로의 액세스 요구는 직렬로 필터링되고, 스텝(820)에 관해 설명된 바와 같이, 액세스 요구는 제2층의 보안 래퍼 객체로의 포인터를 메소드로 전달할 것이고, 상기 메소드는 스텝(820)과 관련하여 설명된 바와 같이 액세스를 허가할 것인지에 관한 결정을 한 후에, 제1 보안 래퍼 층의 해당하는 보안 래퍼 객체에 포함된 포인터를 전달할 것이고, 메소드 호출에서 포인터 전달에 의해 포인트된 제1층의 해당하는 보안 래퍼 객체는 거기에 포함된 액세스 제어 정보를 기초로 보안 허가 결정을 하여, 액세스가 허가된 경우에, 그 포인터를 설비 객체 메소드의 툴의 호출로 전달한다.
방법, 컴퓨터 프로그램 제품 및 시스템이 몇가지 실시예와 함께 설명되었지만, 본 발명의 범위는 여기에 기술된 특정 형태들로 제한하려는 의도가 아니며, 그 반대로 청구범위에 의해 규정된 것처럼 본 발명의 사상과 범주내에 합리적으로 포함될 수 있는 바와 같은 그러한 대안들, 변형들 및 등가물들을 커버하는 것으로 의도된다. 요약은 구성상의 목적들만을 위해 사용되고 상세한 설명 또는 청구범위의 범주를 제한하는 의미가 아님을 유의한다.

Claims (42)

  1. 자동화된 툴 관리 방법으로서,
    제 1 클라이언트 애플리케이션으로부터 제 1 선택 프로토콜의 제 1 메시지를 수신하는 단계 - 상기 제 1 메시지는 제 1 툴에서 제 1 동작(action)을 수행하기 위한 제 1 요청을 포함함 -;
    설비 모델에서 제 1 객체(object)를 식별하기 위해 상기 제 1 메시지의 콘텐츠로부터 제 1 포인터(pointer)를 추출하는 단계 - 상기 설비 모델은 상기 제 1 툴의 논리 표현을 포함함 -;
    상기 제 1 메시지에 응답하여 상기 제 1 객체의 제 1 프로시저(procedure)를 호출하는 단계;
    상기 제 1 클라이언트 애플리케이션으로 제 1 리턴 값을 전송하는 단계 - 상기 제 1 리턴 값은 상기 제 1 동작과 연관됨 -;
    제 2 클라이언트 애플리케이션으로부터 제 2 선택 프로토콜의 제 2 메시지를 수신하는 단계 - 상기 제 2 메시지는 상기 제 1 툴에서 제 2 동작을 수행하기 위한 제 2 요청을 포함함 -;
    상기 설비 모델에서 상기 제 1 객체를 식별하기 위해 상기 제 2 메시지의 콘텐츠로부터 제 2 포인터를 추출하는 단계 - 상기 제 2 선택 프로토콜은 상기 제 1 선택 프로토콜과 상이함 -;
    상기 제 2 메시지에 응답하여 상기 제 1 객체의 제 2 프로시저를 호출하는 단계; 및
    상기 제 2 클라이언트 애플리케이션으로 제 2 리턴 값을 전송하는 단계 - 상기 제 2 리턴 값은 상기 제 2 동작과 연관됨 -
    를 포함하며, 상기 제 1 요청이 데이터에 대한 요청을 포함하고 상기 제 1 툴이 상기 데이터의 비동기식 소스인 경우, 상기 방법은,
    상기 데이터에 대응되는 유효 정보가 존재하면, 상기 유효 정보를 기초로 상기 제 1 리턴 값을 생성하는 단계;
    상기 데이터에 대응되는 유효 정보가 존재하지 않으면, 상기 설비 모델의 데이터베이스를 기초로 상기 제 1 리턴 값을 생성하는 단계;
    상기 제 1 클라이언트 애플리케이션으로의 리턴 메시지에 상기 제 1 리턴 값을 통합시키는 단계; 및
    상기 클라이언트 애플리케이션에 의해 제공되는 어드레스에 응답하여, 상기 선택 프로토콜의 리턴 메시지를 상기 클라이언트 애플리케이션으로 전송하는 단계
    를 더 포함하는, 자동화된 툴 관리 방법.
  2. 제 1 항에 있어서,
    상기 제 1 프로토콜 및 상기 제 2 프로토콜은 컴포넌트 객체 모델(COM), 원격 메소드 호출(RMI), COBRA, 심플 객체 액세스 프로토콜(SOAP), SECS, GEM, 하이퍼텍스트 마크업 언어(HTML), 확장성 마크업 언어(XML)에서 선택되는 프로토콜들을 포함하는 것을 특징으로 하는 자동화된 툴 관리 방법.
  3. 제 1 항에 있어서,
    상기 제 1 객체의 제 1 프로시저는 상기 제 1 툴을 원격으로 액세스하고 전자적으로 진단하도록 호출되는 것을 특징으로 하는 자동화된 툴 관리 방법.
  4. 제 1 항에 있어서,
    보안 래퍼 층(security wrapper layer)을 생성하는 단계 - 상기 보안 래퍼 층은 상기 설비 모델에 대한 보호층을 제공함 -; 및
    상기 보안 래퍼 층에서 보안 래퍼 객체를 생성하는 단계 - 대응하는 설비 모델 객체로의 포인터가 상기 보안 래퍼 객체에 저장됨 -
    를 더 포함하는 것을 특징으로 하는 자동화된 툴 관리 방법.
  5. 제 4 항에 있어서,
    상기 대응하는 설비 모델 객체가 상기 제 1 요청에 대응되는 객체이면, 상기 대응하는 보안 래퍼 객체로의 포인터는 상기 제 1 클라이언트 애플리케이션으로 전송되는 것을 특징으로 하는 자동화된 툴 관리 방법.
  6. 제 5 항에 있어서,
    상기 제 1 툴의 제 1 선택 동작이 상기 대응하는 보안 래퍼 객체에 저장된 액세스 규칙들에 응답하여 수행될 수 있는지 여부를 결정하는 단계를 더 포함하는 것을 특징으로 하는 자동화된 툴 관리 방법.
  7. 제 6 항에 있어서,
    상기 제 1 툴의 제 1 선택 동작이 수행될 수 있다면, 상기 방법은 상기 선택 동작을 수행하기 위해 상기 대응하는 보안 래퍼 객체에 의해 프로시저를 호출하는 단계를 더 포함하는 것을 특징으로 하는 자동화된 툴 관리 방법.
  8. 제 1 항에 있어서,
    상기 제 1 메시지를 수신하는 단계 및 상기 제 1 리턴 값을 전송하는 단계는 애플리케이션 인터페이스 유닛에 의해 수행되고, 상기 애플리케이션 인터페이스 유닛은 상기 제 1 클라이언트 애플리케이션을 상기 설비 모델과 인터페이싱시키는 것을 특징으로 하는 자동화된 툴 관리 방법.
  9. 자동화된 툴 관리를 위해 기록된 컴퓨터 프로그램 로직을 갖는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 매체로서, 상기 컴퓨터 프로그램은,
    제 1 클라이언트 애플리케이션으로부터 제 1 선택 프로토콜의 제 1 메시지를 수신하기 위해 동작가능한 프로그래밍 - 상기 제 1 메시지는 제 1 툴에서 제 1 동작을 수행하기 위한 제 1 요청을 포함함 -;
    설비 모델의 제 1 객체를 식별하기 위해 상기 제 1 메시지의 콘텐츠로부터 제 1 포인터를 추출하기 위해 동작가능한 프로그래밍 - 상기 설비 모델은 상기 제 1 툴의 논리 표현을 포함함 -;
    상기 제 1 메시지에 응답하여 상기 제 1 객체의 제 1 프로시저를 호출하기 위해 동작가능한 프로그래밍;
    제 1 리턴 값을 상기 제 1 클라이언트 애플리케이션으로 전송하기 위해 동작가능한 프로그래밍 - 상기 제 1 리턴 값은 상기 제 1 동작과 연관됨 -;
    제 2 클라이언트 애플리케이션으로부터 제 2 선택 프로토콜의 제 2 메시지를 수신하기 위해 동작가능한 프로그래밍 - 상기 제 2 메시지는 상기 제 1 툴에서 제 2 동작을 수행하기 위한 제 2 요청을 포함함 -;
    상기 설비 모델의 제 1 객체를 식별하기 위해 상기 제 2 메시지의 콘텐츠로부터 제 2 포인터를 추출하기 위해 동작가능한 프로그래밍 - 상기 제 2 선택 프로토콜은 상기 제 1 선택 프로토콜과 상이함 -;
    상기 제 2 메시지에 응답하여 상기 제 1 객체의 제 2 프로시저를 호출하기 위해 동작가능한 프로그래밍; 및
    제 2 리턴 값을 상기 제 2 클라이언트 애플리케이션으로 전송하기 위해 동작가능한 프로그래밍 - 상기 제 2 리턴 값은 상기 제 2 동작과 연관됨 -;
    을 포함하며, 상기 제 1 요청이 데이터에 대한 요청을 포함하고 상기 제 1 툴이 상기 데이터의 비동기식 소스인 경우, 상기 컴퓨터 프로그램은,
    상기 데이터에 대응되는 유효 정보가 존재한다면, 상기 유효 정보를 기초로 상기 제 1 리턴 값을 생성하기 위해 동작가능한 프로그래밍;
    상기 데이터에 대응되는 유효 정보가 존재하지 않는다면, 상기 설비 모델의 데이터베이스를 기초로 상기 제 1 리턴 값을 생성하기 위해 동작가능한 프로그래밍;
    상기 제 1 클라이언트 애플리케이션에 대한 리턴 메시지에 상기 제 1 리턴 값을 통합시키기 위해 동작가능한 프로그래밍; 및
    상기 클라이언트 애플리케이션에 의해 제공되는 어드레스에 응답하여 상기 선택 프로토콜의 리턴 메시지를 상기 클라이언트 애플리케이션으로 전송하기 위해 동작가능한 프로그래밍
    을 더 포함하는, 컴퓨터 판독가능한 매체.
  10. 제 9 항에 있어서,
    상기 제 1 프로토콜 및 상기 제 2 프로토콜은 컴포넌트 객체 모델(COM), 원격 메소드 호출(RMI), COBRA, 심플 객체 액세스 프로토콜(SOAP), SECS, GEM, 하이퍼텍스트 마크업 언어(HTML), 확장성 마크업 언어(XML)에서 선택되는 프로토콜들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  11. 제 9 항에 있어서,
    상기 제 1 객체의 제 1 프로시저는 상기 제 1 툴을 원격으로 액세스하고 전자적으로 진단하도록 호출되는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  12. 제 9 항에 있어서,
    상기 컴퓨터 프로그램은,
    보안 래퍼 층을 생성하기 위해 동작가능한 프로그래밍 - 상기 보안 래퍼 층은 상기 설비 모델에 보호층을 제공함 -; 및
    상기 보안 래퍼 층에서 보안 래퍼 객체를 생성하기 위해 동작가능한 프로그래밍 - 대응하는 설비 모델 객체에 대한 포인터가 상기 보안 래퍼 포인터에 저장됨 -
    을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  13. 제 12 항에 있어서,
    상기 대응하는 설비 모델 객체가 상기 제 1 요청에 대응되는 제 1 객체이면, 상기 대응하는 보안 래퍼 객체로의 포인터는 상기 제 1 클라이언트 애플리케이션으로 전송되는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  14. 제 13 항에 있어서,
    상기 제 1 툴의 제 1 선택 동작이 상기 대응하는 보안 래퍼 객체에 저장된 액세스 규칙들에 응답하여 수행될 수 있는지 여부를 결정하기 위해 동작가능한 프로그래밍을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  15. 제 14 항에 있어서,
    상기 제 1 툴의 제 1 선택 동작이 수행될 수 있다면, 상기 컴퓨터 프로그램은 제 1 요청 동작을 수행하도록 상기 대응하는 보안 래퍼 객체에 의해 프로시저를 호출하기 위해 동작가능한 프로그래밍을 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  16. 제 9 항에 있어서,
    상기 제 1 메시지를 수신하기 위해 동작가능한 프로그래밍 및 상기 제 1 리턴 값을 전송하기 위해 동작가능한 프로그래밍은 애플리케이션 인터페이스 유닛에 의해 구현되고, 상기 애플리케이션 인터페이스 유닛은 상기 클라이언트 애플리케이션을 상기 설비 모델과 인터페이싱시키는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  17. 프로세서;
    자동화된 툴 관리를 위해 동작가능한 컴퓨터 프로그램을 저장하기 위해 동작가능한 컴퓨터 프로그램을 저장하는 메모리 유닛; 및
    상기 프로세서를 상기 메모리에 결합시키는 버스 시스템
    을 포함하는 시스템으로서, 상기 컴퓨터 프로그램은,
    제 1 클라이언트 애플리케이션으로부터 제 1 선택 프로토콜의 제 1 메시지를 수신하는 프로그래밍 단계 - 상기 제 1 메시지는 제 1 툴에서 제 1 동작을 수행하기 위한 제 1 요청을 포함함 -;
    설비 모델에서 제 1 객체를 식별하기 위해 상기 제 1 메시지로부터 제 1 포인터를 추출하는 프로그래밍 단계 - 상기 설비 모델은 상기 제 1 툴의 논리 표현을 포함함 -;
    상기 제 1 메시지에 응답하여 상기 제 1 객체의 제 1 프로시저를 호출하는 프로그래밍 단계;
    상기 제 1 클라이언트 애플리케이션으로 제 1 리턴 값을 전송하는 프로그래밍 단계 - 상기 제 1 리턴 값은 상기 제 1 동작과 연관됨 -;
    제 2 클라이언트 애플리케이션으로부터 제 2 선택 프로토콜의 제 2 메시지를 수신하는 프로그래밍 단계 - 상기 제 2 메시지는 상기 제 1 툴에서 제 2 동작을 수행하기 위한 제 2 요청을 포함함 -;
    상기 설비 모델에서 상기 제 1 객체를 식별하기 위해 상기 제 2 메시지로부터 제 2 포인터를 추출하는 프로그래밍 단계 - 상기 제 2 선택 프로토콜은 상기 제 1 선택 프로토콜과 상이함 -;
    상기 제 2 메시지에 응답하여 상기 제 1 객체의 제 2 프로시저를 호출하는 프로그래밍 단계; 및
    상기 제 2 클라이언트 애플리케이션으로 제 2 리턴 값을 전송하는 프로그래밍 단계 - 상기 제 2 리턴 값은 상기 제 2 동작과 연관됨 -
    를 수행하기 위해 동작가능하며,
    상기 제 1 요청이 데이터에 대한 요청을 포함하고 상기 제 1 툴이 상기 데이터의 비동기식 소스인 경우, 상기 컴퓨터 프로그램은,
    상기 데이터에 대응되는 유효 정보가 존재하면, 상기 유효 정보를 기초로 상기 제 1 리턴 값을 생성하는 프로그래밍 단계;
    상기 데이터에 대응되는 유효 정보가 존재하지 않으면, 상기 설비 모델의 데이터베이스를 기초로 상기 제 1 리턴 값을 생성하는 프로그래밍 단계;
    상기 제 1 클라이언트 애플리케이션으로의 리턴 메시지에 상기 제 1 리턴 값을 통합시키는 프로그래밍 단계; 및
    상기 클라이언트 애플리케이션에 의해 제공되는 어드레스에 응답하여, 상기 선택 프로토콜의 리턴 메시지를 상기 클라이언트 애플리케이션으로 전송하는 프로그래밍 단계
    를 수행하기 위해 추가적으로 동작가능한, 시스템.
  18. 제 17 항에 있어서,
    상기 제 1 프로토콜 및 상기 제 2 프로토콜은 컴포넌트 객체 모델(COM), 원격 메소드 호출(RMI), COBRA, 심플 객체 액세스 프로토콜(SOAP), SECS, GEM, 하이퍼텍스트 마크업 언어(HTML), 확장성 마크업 언어(XML)에서 선택되는 프로토콜들을 포함하는 것을 특징으로 하는 시스템.
  19. 제 17 항에 있어서,
    상기 제 1 객체의 제 1 프로시저는 상기 제 1 툴을 원격으로 액세스하고 전자적으로 진단하도록 호출되는 것을 특징으로 하는 시스템.
  20. 제 17 항에 있어서,
    상기 컴퓨터 프로그램은,
    보안 래퍼 층을 생성하는 프로그래밍 단계 - 상기 보안 래퍼 층은 상기 설비 모델에 대한 보호층을 제공함 -; 및
    상기 보안 래퍼 층에서 보안 래퍼 객체를 생성하는 프로그래밍 단계 - 대응하는 설비 모델 객체로의 포인터가 상기 보안 래퍼 객체에 저장됨 -
    를 수행하기 위해 추가적으로 동작가능한 것을 특징으로 하는 시스템.
  21. 제 20 항에 있어서,
    상기 대응하는 설비 모델 객체가 상기 제 1 요청에 대응되는 상기 제 1 객체이면, 상기 대응하는 보안 래퍼 객체로의 포인터는 상기 제 1 클라이언트 애플리케이션으로 전송되는 것을 특징으로 하는 시스템.
  22. 제 21 항에 있어서,
    상기 컴퓨터 프로그램은,
    상기 제 1 툴의 제 1 선택 동작이 상기 대응하는 보안 래퍼 객체에 저장된 액세스 규칙들에 응답하여 수행될 수 있는지 여부를 결정하는 프로그래밍 단계를 수행하기 위해 추가적으로 동작가능한 것을 특징으로 하는 시스템.
  23. 제 22 항에 있어서,
    상기 제 1 툴의 제 1 선택 동작이 수행될 수 있다면, 상기 컴퓨터 프로그램은 상기 제 1 선택 동작을 수행하도록 상기 대응하는 보안 래퍼 객체에 의해 프로시저를 호출하는 프로그래밍 단계를 수행하기 위해 추가적으로 동작가능한 것을 특징으로 하는 시스템.
  24. 제 17 항에 있어서,
    상기 제 1 메시지를 수신하는 프로그래밍 단계 및 상기 제 1 리턴 값을 전송하는 프로그래밍 단계는 애플리케이션 인터페이스 유닛에 의해 수행되고, 상기 애플리케이션 인터페이스 유닛은 상기 클라이언트 애플리케이션을 상기 설비 모델과 인터페이싱시키는 것을 특징으로 하는 시스템.
  25. 자동화된 툴 관리 방법으로서,
    제 1 클라이언트 애플리케이션으로부터 제 1 선택 프로토콜의 제 1 메시지를 수신하는 단계 - 상기 제 1 메시지는 제 1 툴에서 제 1 동작을 수행하기 위한 제 1 요청을 포함함 -;
    설비 모델에서 제 1 객체를 식별하기 위해 상기 제 1 메시지의 콘텐츠로부터 제 1 포인터를 추출하는 단계 - 상기 설비 모델은 상기 제 1 툴의 논리 표현을 포함함 -;
    상기 제 1 메시지에 응답하여 상기 제 1 객체의 제 1 프로시저를 호출하는 단계;
    상기 제 1 클라이언트 애플리케이션으로 제 1 리턴 값을 전송하는 단계 - 상기 제 1 리턴 값은 상기 제 1 동작과 연관됨 -;
    제 2 클라이언트 애플리케이션으로부터 제 2 선택 프로토콜의 제 2 메시지를 수신하는 단계 - 상기 제 2 메시지는 상기 제 1 툴에서 제 2 동작을 수행하기 위한 제 2 요청을 포함함 -;
    상기 설비 모델의 제 1 객체를 식별하기 위해 상기 제 2 메시지의 콘텐츠로부터 제 2 포인터를 추출하는 단계 - 상기 제 2 선택 프로토콜은 상기 제 1 선택 프로토콜과 상이함 -;
    상기 제 2 메시지에 응답하여 상기 제 1 객체의 제 2 프로시저를 호출하는 단계;
    상기 제 2 클라이언트 애플리케이션으로 제 2 리턴 값을 전송하는 단계 - 상기 제 2 리턴 값은 상기 제 2 동작과 연관됨 -;
    상기 제 1 클라이언트 애플리케이션으로부터 상기 제 1 선택 프로토콜의 제 3 메시지를 수신하는 단계 - 상기 제 3 메시지는 제 2 툴에서 제 3 동작을 수행하기 위한 제 3 요청을 포함하고, 상기 제 3 메시지는 설비 모델에서 제 2 객체를 식별하며, 상기 설비 모델은 상기 제 2 툴의 논리 표현을 포함함 -;
    상기 제 3 메시지에 응답하여 상기 제 2 객체의 제 3 프로시저를 호출하는 단계; 및
    상기 제 1 클라이언트 애플리케이션으로 제 3 리턴 값을 전송하는 단계 - 상기 제 3 리턴 값은 상기 제 3 동작과 연관됨 -
    를 포함하는 자동화된 툴 관리 방법.
  26. 자동화된 툴 관리를 위해 기록된 컴퓨터 프로그램 로직을 갖는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능한 매체로서, 상기 컴퓨터 프로그램은,
    제 1 클라이언트 애플리케이션으로부터 제 1 선택 프로토콜의 제 1 메시지를 수신하기 위해 동작가능한 프로그래밍 - 상기 제 1 메시지는 제 1 툴에서 제 1 동작을 수행하기 위한 제 1 요청을 포함함 -;
    설비 모델의 제 1 객체를 식별하도록 상기 제 1 메시지의 콘텐츠로부터 제 1 포인터를 추출하기 위해 동작가능한 프로그래밍 - 상기 설비 모델은 상기 제 1 툴의 논리 표현을 포함함 -;
    상기 제 1 메시지에 응답하여 상기 제 1 객체의 제 1 프로시저를 호출하기 위해 동작가능한 프로그래밍;
    제 1 리턴 값을 상기 제 1 클라이언트 애플리케이션으로 전송하기 위해 동작가능한 프로그래밍 - 상기 제 1 리턴 값은 상기 제 1 동작과 연관됨 -;
    제 2 클라이언트 애플리케이션으로부터 제 2 선택 프로토콜의 제 2 메시지를 수신하기 위해 동작가능한 프로그래밍 - 상기 제 2 메시지는 상기 제 1 툴에서 제 2 동작을 수행하기 위한 제 2 요청을 포함함 -;
    상기 설비 모델의 제 1 객체를 식별하도록 상기 제 2 메시지의 콘텐츠로부터 제 2 포인터를 추출하기 위해 동작가능한 프로그래밍 - 상기 제 2 선택 프로토콜은 상기 제 1 선택 프로토콜과 상이함 -;
    상기 제 2 메시지에 응답하여 상기 제 1 객체의 제 2 프로시저를 호출하기 위해 동작가능한 프로그래밍; 및
    제 2 리턴 값을 상기 제 2 클라이언트 애플리케이션으로 전송하기 위해 동작가능한 프로그래밍 - 상기 제 2 리턴 값은 상기 제 2 동작과 연관됨 -;
    제 3 메시지에 응답하여 제 2 객체의 제 3 프로시저를 호출하기 위해 동작가능한 프로그래밍; 및
    상기 제 1 클라이언트 애플리케이션으로 제 3 리턴 값을 전송하기 위해 동작가능한 프로그래밍 - 상기 제 3 리턴 값은 상기 제 3 동작과 연관됨 -
    을 포함하는, 컴퓨터 판독가능한 매체.
  27. 프로세서;
    자동화된 툴 관리를 위해 동작가능한 컴퓨터 프로그램을 저장하기 위해 동작가능한 컴퓨터 프로그램을 저장하는 메모리 유닛; 및
    상기 프로세서를 상기 메모리에 결합시키는 버스 시스템
    을 포함하는 시스템으로서, 상기 컴퓨터 프로그램은,
    제 1 클라이언트 애플리케이션으로부터 제 1 선택 프로토콜의 제 1 메시지를 수신하는 프로그래밍 단계 - 상기 제 1 메시지는 제 1 툴에서 제 1 동작을 수행하기 위한 제 1 요청을 포함함 -;
    설비 모델에서 제 1 객체를 식별하기 위해 상기 제 1 메시지로부터 제 1 포인터를 추출하는 프로그래밍 단계 - 상기 설비 모델은 상기 제 1 툴의 논리 표현을 포함함 -;
    상기 제 1 메시지에 응답하여 상기 제 1 객체의 제 1 프로시저를 호출하는 프로그래밍 단계;
    상기 제 1 클라이언트 애플리케이션으로 제 1 리턴 값을 전송하는 프로그래밍 단계 - 상기 제 1 리턴 값은 상기 제 1 동작과 연관됨 -;
    제 2 클라이언트 애플리케이션으로부터 제 2 선택 프로토콜의 제 2 메시지를 수신하는 프로그래밍 단계 - 상기 제 2 메시지는 상기 제 1 툴에서 제 2 동작을 수행하기 위한 제 2 요청을 포함함 -;
    상기 설비 모델에서 상기 제 1 객체를 식별하기 위해 상기 제 2 메시지로부터 제 2 포인터를 추출하는 프로그래밍 단계 - 상기 제 2 선택 프로토콜은 상기 제 1 선택 프로토콜과 상이함 -;
    상기 제 2 메시지에 응답하여 상기 제 1 객체의 제 2 프로시저를 호출하는 프로그래밍 단계;
    상기 제 2 클라이언트 애플리케이션으로 제 2 리턴 값을 전송하는 프로그래밍 단계 - 상기 제 2 리턴 값은 상기 제 2 동작과 연관됨 -;
    상기 제 1 클라이언트 애플리케이션으로부터 상기 제 1 선택 프로토콜의 제 3 메시지를 수신하는 프로그래밍 단계 - 상기 제 3 메시지는 제 2 툴에서 제 3 동작을 수행하기 위한 제 3 요청을 포함하고, 상기 제 3 메시지는 설비 모델의 제 2 객체를 식별하며, 상기 설비 모델은 상기 제 2 툴의 논리 표현을 포함함 -;
    상기 제 3 메시지에 응답하여 상기 제 2 객체의 제 3 프로시저를 호출하는 프로그래밍 단계; 및
    상기 제 1 클라이언트 애플리케이션으로 제 3 리턴 값을 전송하는 프로그래밍 단계 - 상기 제 3 리턴 값은 상기 제 3 동작과 연관됨 -
    를 포함하는, 시스템.
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
KR1020027003021A 2000-07-07 2001-07-06 자동화된 툴 관리 방법, 컴퓨터 판독가능한 저장 매체 및 시스템 KR100798565B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US21681900P 2000-07-07 2000-07-07
US60/216,819 2000-07-07
US09/899,833 US7403984B2 (en) 2000-02-01 2001-07-05 Automated tool management in a multi-protocol environment
US09/899,833 2001-07-05

Publications (2)

Publication Number Publication Date
KR20020055579A KR20020055579A (ko) 2002-07-09
KR100798565B1 true KR100798565B1 (ko) 2008-01-28

Family

ID=26911367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027003021A KR100798565B1 (ko) 2000-07-07 2001-07-06 자동화된 툴 관리 방법, 컴퓨터 판독가능한 저장 매체 및 시스템

Country Status (10)

Country Link
US (1) US7403984B2 (ko)
EP (1) EP1299780B1 (ko)
KR (1) KR100798565B1 (ko)
CN (1) CN1386220B (ko)
AT (1) ATE310979T1 (ko)
AU (1) AU2001271852A1 (ko)
CA (1) CA2383968A1 (ko)
DE (1) DE60115240T2 (ko)
MX (1) MXPA02002445A (ko)
WO (1) WO2002005043A2 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403984B2 (en) 2000-02-01 2008-07-22 Asyst Technologies, Inc. Automated tool management in a multi-protocol environment
US7873428B2 (en) * 2005-04-15 2011-01-18 PEER Intellectual Property, Inc. Automated job management
US8028049B1 (en) 2000-02-01 2011-09-27 Peer Intellectual Property Inc. Apparatus and method for web-based tool management
US9785140B2 (en) 2000-02-01 2017-10-10 Peer Intellectual Property Inc. Multi-protocol multi-client equipment server
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US6757714B1 (en) * 2000-07-28 2004-06-29 Axeda Systems Operating Company, Inc. Reporting the state of an apparatus to a remote computer
AU2001285480A1 (en) * 2000-08-23 2002-03-04 Pri Automation, Inc. Web based tool control in a semiconductor fabrication facility
US7185014B1 (en) * 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7194544B2 (en) * 2000-12-14 2007-03-20 Borland Software Corporation Method and system for dynamic protocol selection among object-handled specified protocols
US7756963B2 (en) * 2001-07-05 2010-07-13 PEER Intellectual Property, Inc. Automated tool management in a multi-protocol environment
US6819960B1 (en) 2001-08-13 2004-11-16 Rockwell Software Inc. Industrial controller automation interface
US20030055593A1 (en) * 2001-09-18 2003-03-20 Schlotzhauer Ed O. Method for user variation of a measurement process
GB0127552D0 (en) * 2001-11-16 2002-01-09 Abb Ab Analysing events
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7024459B2 (en) * 2002-02-28 2006-04-04 Microsoft Corporation Scalable notification delivery service
WO2003089995A2 (en) * 2002-04-15 2003-10-30 Invensys Systems, Inc. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution
US7178149B2 (en) * 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
CN1317868C (zh) * 2002-05-28 2007-05-23 中兴通讯股份有限公司 一种基于类模板管理器的通讯报文处理设备和方法
FR2841999B1 (fr) * 2002-07-05 2004-09-10 Thales Sa Systeme de mise en reseau oriente objet d'equipements aeronautiques embarques
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US7006882B2 (en) * 2003-05-06 2006-02-28 Macronix International Co., Ltd. Machine control system
US7596803B1 (en) * 2004-07-12 2009-09-29 Advanced Micro Devices, Inc. Method and system for generating access policies
EP1810160A4 (en) * 2004-09-22 2008-05-21 Xyratex Tech Ltd INTERCONTROLLER INTERPROCESSOR COMMUNICATION IN XML / SOAP PROTOCOL
EP1849275B1 (en) * 2005-02-02 2018-04-11 PEER Intellectual Property Inc. Multi-protocol multi-client equipment server
US8677319B2 (en) * 2006-07-25 2014-03-18 International Business Machines Corporation Computer method and system for composite state management of software change requests
JP2008078630A (ja) * 2006-08-24 2008-04-03 Hitachi Kokusai Electric Inc 基板処理システム
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US8478861B2 (en) 2007-07-06 2013-07-02 Axeda Acquisition Corp. Managing distributed devices with limited connectivity
CA2720256C (en) 2008-04-11 2021-11-16 Thomson Licensing Method for automated television production
US9141105B2 (en) * 2008-07-23 2015-09-22 Hurco Companies, Inc. Method and apparatus for monitoring or controlling a machine tool system
US20130166424A1 (en) * 2011-12-27 2013-06-27 Infosys Limited System and method for system integration
US20130310950A1 (en) * 2012-05-15 2013-11-21 Precision Machinery Research & Development Center Method of simultaneously connecting controllers of different branded manufacturing machines
CN103607340B (zh) * 2013-10-23 2017-05-17 上海华力微电子有限公司 Secs/gem消息交换设备和方法
US10210722B2 (en) * 2015-06-15 2019-02-19 Immersion Corporation Haptic notification communication system
CN207096983U (zh) * 2015-06-16 2018-03-13 米沃奇电动工具公司 包括电动工具和外部设备的系统、包括外部设备和服务器的系统和服务器
CN106557030B (zh) * 2015-09-25 2019-08-20 华为技术有限公司 基于实体的操作指示方法及装置
CN105373021B (zh) * 2015-11-13 2018-01-26 苏州博众精工科技有限公司 智能制造接口程序系统的控制方法
CN111279279B (zh) * 2017-10-26 2024-02-20 西门子工业软件有限公司 建立和跟踪自动化工程环境
US11928228B2 (en) * 2020-09-25 2024-03-12 EMC IP Holding Company LLC Facilitating an object protocol based access of data within a multiprotocol environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5453933A (en) * 1993-09-08 1995-09-26 Hurco Companies, Inc. CNC control system
WO1995034866A1 (en) 1994-06-14 1995-12-21 Telefonaktiebolaget Lm Ericsson A method and system for manipulating intelligent representations of real equipment within a graphical computer system
US5826040A (en) * 1992-03-24 1998-10-20 Texas Instruments Incorporated Method and system for production planning

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0162670B1 (en) * 1984-05-19 1991-01-02 British Aerospace Public Limited Company Industrial processing and manufacturing systems
US5291416A (en) * 1991-03-08 1994-03-01 Software Algoritms Incorporated Event feedback for numerically controlled machine tool and network implementation thereof
JP2926282B2 (ja) * 1991-06-06 1999-07-28 株式会社日立製作所 空気調和機及びその運転制御プログラムを記録した媒体
US5719761A (en) 1993-01-15 1998-02-17 Alaris Medical Systems, Inc. Configuration control system for configuring multiple biomedical devices
IT1268517B1 (it) 1993-04-15 1997-03-04 Zeltron Spa Sistema per la gestione di carichi elettrici domestici
US5432702A (en) * 1994-06-17 1995-07-11 Advanced Micro Devices Inc. Bar code recipe selection system using workstation controllers
US5592600A (en) * 1994-09-27 1997-01-07 International Business Machines Corporation Animated display showing execution of object-oriented programs
GB2301746B (en) * 1995-06-02 1999-09-08 Dsc Communications Remote control of wireless telecommunications systems
GB2301754B (en) * 1995-06-02 1999-12-29 Dsc Communications A protocol converter for a telecommunications system
US5696893A (en) 1995-06-07 1997-12-09 Xerox Corporation System for generically describing and scheduling operation of modular printing machine
US5961588A (en) * 1996-02-22 1999-10-05 Alcatel Usa Sourcing, L.P. Handling of commands passed between the server and client stations of a telecommunications system
AU1973697A (en) * 1996-02-22 1997-09-10 Dsc Telecom L.P. A control system for a telecommunications system
US5948063A (en) * 1996-02-22 1999-09-07 Alcatel Usa Sourcing, L.P. Control system for a telecommunications system
US5805442A (en) * 1996-05-30 1998-09-08 Control Technology Corporation Distributed interface architecture for programmable industrial control systems
US6681145B1 (en) * 1996-06-06 2004-01-20 The Boeing Company Method for improving the accuracy of machines
TWI249760B (en) 1996-07-31 2006-02-21 Canon Kk Remote maintenance system
US6016516A (en) * 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
CA2266921A1 (en) * 1996-09-25 1998-04-02 Andrew David Mercer Network-based conference system
US5847957A (en) * 1997-06-16 1998-12-08 Base Ten Systems, Inc. Web access for a manufacturing execution system
US5987135A (en) * 1997-07-25 1999-11-16 Prc Inc. System and method for controlling and monitoring remote distributed processing system
EP1023650B1 (en) * 1997-10-13 2003-09-24 Rosemount Inc. Communication technique for field devices in industrial processes
US6470227B1 (en) * 1997-12-02 2002-10-22 Murali D. Rangachari Method and apparatus for automating a microelectric manufacturing process
US6418352B1 (en) * 1997-12-12 2002-07-09 Brooks Automation Gmbh Integrated material management module
US6167451A (en) * 1998-01-20 2000-12-26 Netscape Communications Corporation Multiple push protocol unifying system
US6535779B1 (en) * 1998-03-06 2003-03-18 Applied Materials, Inc. Apparatus and method for endpoint control and plasma monitoring
US6832120B1 (en) * 1998-05-15 2004-12-14 Tridium, Inc. System and methods for object-oriented control of diverse electromechanical systems using a computer network
US6201996B1 (en) * 1998-05-29 2001-03-13 Control Technology Corporationa Object-oriented programmable industrial controller with distributed interface architecture
US6553403B1 (en) * 1998-06-03 2003-04-22 International Business Machines Corporation System, method and computer program product for monitoring in a distributed computing environment
US6437692B1 (en) * 1998-06-22 2002-08-20 Statsignal Systems, Inc. System and method for monitoring and controlling remote devices
US6615091B1 (en) * 1998-06-26 2003-09-02 Eveready Battery Company, Inc. Control system and method therefor
US6349341B1 (en) * 1998-07-30 2002-02-19 Advanced Micro Devices, Inc. Method and system for providing inter-tier application control in a multi-tiered computing environment
JP2000059459A (ja) * 1998-08-11 2000-02-25 Canon Inc データ通信装置、データ通信システム、データ通信方法、及び記憶媒体
US6198480B1 (en) * 1998-10-07 2001-03-06 Wonderware Corporation Object-oriented tag browser
WO2000034883A2 (en) * 1998-12-11 2000-06-15 Microsoft Corporation Accelerating a distributed component architecture over a network using an implicit flow control
US6463352B1 (en) * 1999-01-21 2002-10-08 Amada Cutting Technologies, Inc. System for management of cutting machines
US6658571B1 (en) * 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US6549199B1 (en) * 1999-03-19 2003-04-15 Corel Inc. System and method for adjusting a graphical object
US6944584B1 (en) * 1999-04-16 2005-09-13 Brooks Automation, Inc. System and method for control and simulation
US6549937B1 (en) * 1999-07-21 2003-04-15 Microsoft Corporation System and method for multi-protocol communication in a computer network
US6421682B1 (en) * 1999-07-26 2002-07-16 Microsoft Corporation Catalog management system architecture having data table objects and logic table objects
US7069101B1 (en) * 1999-07-29 2006-06-27 Applied Materials, Inc. Computer integrated manufacturing techniques
US6332163B1 (en) * 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US6618425B1 (en) * 1999-11-17 2003-09-09 Cymer, Inc. Virtual laser operator
US6640151B1 (en) * 1999-12-22 2003-10-28 Applied Materials, Inc. Multi-tool control system, method and medium
US8028049B1 (en) 2000-02-01 2011-09-27 Peer Intellectual Property Inc. Apparatus and method for web-based tool management
US7403984B2 (en) 2000-02-01 2008-07-22 Asyst Technologies, Inc. Automated tool management in a multi-protocol environment
US6826439B1 (en) * 2000-05-23 2004-11-30 Advanced Micro Devices, Inc. Broadband distribution of SECS-II data
US7031783B2 (en) * 2001-06-29 2006-04-18 Agilent Technologies, Inc. Virtualized generic equipment model data and control router for factory automation
US6842660B2 (en) * 2001-10-31 2005-01-11 Brooks Automation, Inc. Device and method for communicating data in a process control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826040A (en) * 1992-03-24 1998-10-20 Texas Instruments Incorporated Method and system for production planning
US5453933A (en) * 1993-09-08 1995-09-26 Hurco Companies, Inc. CNC control system
WO1995034866A1 (en) 1994-06-14 1995-12-21 Telefonaktiebolaget Lm Ericsson A method and system for manipulating intelligent representations of real equipment within a graphical computer system

Also Published As

Publication number Publication date
ATE310979T1 (de) 2005-12-15
CN1386220B (zh) 2010-05-05
DE60115240D1 (de) 2005-12-29
EP1299780A2 (en) 2003-04-09
WO2002005043A2 (en) 2002-01-17
KR20020055579A (ko) 2002-07-09
EP1299780B1 (en) 2005-11-23
AU2001271852A1 (en) 2002-01-21
CN1386220A (zh) 2002-12-18
MXPA02002445A (es) 2004-09-10
DE60115240T2 (de) 2006-08-03
CA2383968A1 (en) 2002-01-17
US20020026514A1 (en) 2002-02-28
US7403984B2 (en) 2008-07-22
WO2002005043A3 (en) 2002-05-30

Similar Documents

Publication Publication Date Title
KR100798565B1 (ko) 자동화된 툴 관리 방법, 컴퓨터 판독가능한 저장 매체 및 시스템
AU2001292691B2 (en) A method and system for remote configuration of process data access servers
US10007256B2 (en) Multi-protocol multi-client equipment server
US9513785B2 (en) Tool for creating customized user interface definitions for a generic utility supporting on-demand creation of field device editor graphical user interfaces
AU2001292809B2 (en) An extensible manufacturing/process control information portal server
US20040021679A1 (en) Human machine interface
AU2001292691A1 (en) A method and system for remote configuration of process data access servers
AU2001292809A1 (en) An extensible manufacturing/process control information portal server
US7756963B2 (en) Automated tool management in a multi-protocol environment
CN101151865B (zh) 多协议多客户端设备服务器
EP1849275B1 (en) Multi-protocol multi-client equipment server
JP4806513B2 (ja) 複数プロトコル環境における自動ツール管理
AU2006201207B2 (en) Human machine interface

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130109

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140107

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150107

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160111

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170113

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180119

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190201

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200121

Year of fee payment: 13