KR20040054677A - 애플리케이션 클래스 확장 - Google Patents

애플리케이션 클래스 확장 Download PDF

Info

Publication number
KR20040054677A
KR20040054677A KR10-2004-7002739A KR20047002739A KR20040054677A KR 20040054677 A KR20040054677 A KR 20040054677A KR 20047002739 A KR20047002739 A KR 20047002739A KR 20040054677 A KR20040054677 A KR 20040054677A
Authority
KR
South Korea
Prior art keywords
application class
computer readable
code means
program code
class
Prior art date
Application number
KR10-2004-7002739A
Other languages
English (en)
Other versions
KR100909731B1 (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 KR20040054677A publication Critical patent/KR20040054677A/ko
Application granted granted Critical
Publication of KR100909731B1 publication Critical patent/KR100909731B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4492Inheritance

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

제1 애플리케이션 클래스를 확장하기 위한 방법(도 2)은, 확장 특성들을 유지하기 위해 제1 애플리케이션 클래스 내에 제1 데이터 버퍼를 통합시키는 단계, 및 하나 이상의 제1 애플리케이션 클래스의 확장 특성들에 연관시킬 값들을 결정하기 위해 규칙 기반의 엔진을 이용하는 단계를 포함한다.

Description

애플리케이션 클래스 확장{APPLICATION CLASS EXTENSIONS}
기계 코드로 직접 컴파일된 C++ 또는 다른 프로그래밍 언어 내에 애플리케이션 클래스의 런타임 확장을 허용하여, 원래의 프로그램이 변경되지 않은 상태로 두는 방법은 공지되어 있지 않다. 현재는, 이용하는 모든 시스템의 호환성 컴파일러에 액세스가 요구되고, 적절한 애플리케이션 코드가 기입되어 컴파일되어야 하며, 그 다음 최종 실행 가능한 프로그램의 연계에 필요한 바이너리 파일들이 액세스되어야 한다. 이 때문에 광범위한 반복 시험 및 확인에 수반하는 요구를 가진 아주 새로운 프로그램이 필요하다.
원래의 프로그램을 변경하지 않고 애플리케이션 클래스의 거동 및 특성을 확장하고, 따라서 호환성 컴파일러 및 바이너리 파일에의 액세스의 필요를 해소하고, 또한 반복 시험 및 확인의 필요를 해소할 수 있는 것은 유익하다.
본 발명은 애플리케이션 클래스의 거동 및 특성을 확장하는 것에 관한 것으로, 특히, 기존 코드를 변경하지 않고 런타임(runtime) 중에 이들 확장을 제공하는 것에 관한 것이다.
도 1은 메타데이터와 클래스 속성 간의 관계를 도시하는 클래스 구조도,
도 2는 클래스 팩토리와 이것의 클래스 메다데이터와의 통합을 도시하는 클래스 구조도,
도 3은 확장 클래스, 지속 객체, 및 다이나믹 확장 특성 간의 관계를 도시하는 클래스 구조도,
도 4는 본 발명의 특징을 포함하는 전형적인 장치의 일 실시예의 블록도이다.
본 발명은, 애플리케이션 클래스를 확장하기 위한 기술, 즉, 기존 클래스의구조를 변경하고, 새로운 클래스를 생성하거나, 또는 콘텍스트(context)에 의해 클래스의 경우(instance)의 구조를 변경하는 기술에 관한 것이다. 이들 애플리케이션 클래스 확장은 원래의 프로그램을 변경하지 않고 런타임으로 실행된다.
본 발명은, 확장 특성에 의해 나타내어지는 데이터를 유지할 수 있는 기존 클래스 내에 포괄적이고, 크기 조정이 가능한, 데이터 버퍼를 통합시킴으로써, 그리고 이들에 특성에 기초하여 애플리케이션 클래스의 관계와 거동을 결정할 수 있는 규칙-기반의 엔진을 제공함으로써, 동작하여, 원래의 프로그램의 프로그래밍 또는 변경 없이 애플리케이션 시스템의 특성과 거동을 애플리케이션 유저가 변경할 수 있는 메커니즘이다.
일 실시예에서, 본 발명은 제1 애플리케이션 클래스를 확장하기 위한 방법을 포함한다. 이 방법은, 확장 특성들을 유지하기 위해 제1 애플리케이션 클래스 내에 제1 데이터 버퍼를 통합시키는 단계, 및 제1 애플리케이션 클래스의 하나 이상의 확장 특성들에 연관시킬 값들을 결정하기 위해, 규칙 기반의 엔진을 이용하는 단계를 포함한다.
다른 실시예에서, 본 발명은, 컴퓨터로 하여금 제1 애플리케이션 클래스를 확장하게 하는 컴퓨터 독출가능 코드 수단이 구현되어 있는 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품에 관한 것이다. 컴퓨터 프로그램 제품 내 컴퓨터 독취가능한 코드 수단은, 컴퓨터로 하여금 확장 특성들을 유지하기 위한 애플리케이션 내에 제1 데이터 버퍼를 통합시키게 하는 컴퓨터 독취가능 프로그램 코드 수단, 및 제1 애플리케이션 클래스의 확장 특성들에 연관시킬 하나 이상의 확장 특성들을 결정하기 위해, 컴퓨터로 하여금 규칙 기반의 엔진을 이용하게 하는 컴퓨터 독취가능 프로그램 코드 수단을 포함한다.
또 다른 실시예에서, 본 발명은 기판 처리 장치용 제어기에 관한 것이다. 이 제어기는, 확장 특성들을 유지하기 위한 애플리케이션 클래스 내에 제1 데이터 버퍼를 통합시키기 위한 회로를 포함하며, 제1 애플리케이션 클래스를 확장하기 위한 제1 회로, 및 제1 애플리케이션 클래스의 하나 이상의 확장 특성들에 연관시킬 확장 특성들을 결정하기 위해 규칙 기반의 엔진을 이용하는 회로를 포함한다.
본 발명이 도면에 도시된 실시예를 참조하여 설명될 것이나, 본 발명은 다수의 다른 형태들의 실시예들에서 실현될 수 있다는 것이 이해되어야 한다. 또한, 임의의 적절한 크기, 형상 또는 형태의 요소들 또는 재료들이 사용될 수 있다.
도 1은, 특성 맵(1005), 지속 메타데이터(1010), 메타데이터(1015),속성(1020), 속성 디폴트 값(1025)과 객체(object) 값 범위들(1035), 속성 유형들(1030), 및 유형화된 속성(1040), 유형화된 지속 속성(1050)과 지속 속성(1045)에서의 특성들 간의 관계를 도시하는 분류도이다.
도 2는, 클래스 메타데이터(1015)와 통합한 클래스 팩토리(1055)와, 클래스 초기화기(initializer)(1060)와 팩토리 생성자(constructor)(1065)와의 그 관계를 도시한다.
도 3은, 확장 클래스들(1090), 지속 객체들(1075), 가상 객체들(1085), 동적 확장 특성들(1080), 및 지속 메타데이터(1070) 간의 관계를 도시한다.
도 1에 도시된 바와 같이, 본 발명은 일반적으로, 충분한 정보를 가지는 클래스(그 연관된 속성들(1020)을 가지는 메타데이터(1015))의 구조를 설명하는 수단을 구비하여, 도 2에 도시된 클래스 팩토리(1055)가 클래스의 경우를 구성할 수 있다. 도 3은 객체가 속한 클래스의 구조를 변형하지 않고, 어떻게 부가적인 특성들(1080)이 객체(1075)와 동적으로 연관될 수 있는지를 도시한다. 도 3은 또한, 확장 클래스들(1090), 지속 객체들(1075), 및 동적 확장 특성들 간의 관계를 도시한다. 객체 기원(oriented) 프로그래밍에서, 클래스는 클래스의 경우들의 상태를 정의하는 특성들을 포함하는 유형화된 데이터 구조로서 정의된다. 객체는 상태 특성들이 상기 객체의 고유성을 결정하는 클래스의 경우로서 통상 알려져 있다. 적어도, 본 발명의 목적을 위하여, 속성(1020, 1040, 1045, 1050)은 특성의 명칭만을 알아도, 구성되고, 액세스되며, 세팅되고, 파괴되도록 하는 특정 클래스 특성에 관한 정보를 포함한다. 특성은 클래스의 속성일 수도 있고, 클래스의 속성 세트는클래스의 구조를 구성하며, 클래스의 속성의 값들은 클래스의 임의의 특정 경우의 상태를 결정한다. 메타데이터(1010, 1015)는 적용시 데이터의 구조에 관한 정보로서 정의된다. 메타데이터는 모든 연관된 특성들과 속성들을 가지는 클래스의 정의로서 표현될 수도 있다.
본 발명에 따르면, 애플리케이션은 기존 클래스의 구조를 변경할 수도 있고, 애플리케이션시 미리 정의된 임의의 다른 클래스와 같이 사용될 수도 있는 전체적으로 새로운 클래스들을 형성할 수도 있고, 또는 그 특정 객체의 런타임 콘텍스트에 따라 런타임에서 클래스의 경우의 구조를 변형시킬 수도 있다. 본 발명에 따라, 이것은, 코딩, 컴파일링, 또는 어떠한 방식이든 기존 코드 또는 애플리케이션 프로그램 자체의 구조를 변경시키지 않고, 리포지토리(repository)에 이들 변화를 특정하고, 이들을 통과(running) 애플리케이션에 로딩함으로써 달성될 수도 있다. 이것은, 애플리케이션이 새로운 애플리케이션을 생성하지 않고, 그리고 기존 컴퓨터를 변형시키지 않고 상술된 변경을 형성시킬 수 있도록 한다. 클래스를 변경하고, 클래스를 형성하고, 또는 클래스의 구조를 변형시키는 이 능력은 여기서, 애플리케이션 클래스 확장(ACE)(Application Class Extension)이라고 칭한다.
예로서, Java 또는 Visual BASIC 언어들은 적절한 컴퓨터 언어에 기록되고 리컴파일링된 애플리케이션에의 구조적 변경을 요한다. 이것은 프로그램의 기초적인 구조와 거동을 변경시키는 반면, 이하에 설명되는 바와 같이, 본 발명에 따른 클래스들의 애플리케이션 확장은 이러한 변경들을 요하지 않는다.
ACE는 클래스의 구조와 그 특성들에 관한 상세한 정보를 확립하는 단계와,이 구조와 특성들 정보를 사용하기 위한 클래스 팩토리를 형성하는 단계를 포함하여, 구조들을 변경하고, 새로운 클래스들을 생성하고, 또는 콘텍스트에 따라 경우의 구조를 변형한다.
클래스 구조에 관한 정보는 메타데이터에 포함될 수도 있다. 클래스들의 애플리케이션 확장은 클래스의 구조와 그 특성들에 관한 상세한 정보, 즉 클래스 메타데이터(1010, 1015)를 요한다. 이 정보는 애플리케이션에 컴파일링되거나, 리포지토리에 기억되어 런타임시 애플리케이션 메모리에 로딩될 수도 있다. 클래스 메타데이터는 클래스 팩토리(1055)에 의하여 사용되어, 명칭 또는 ID에 의하여 식별될 때 클래스의 새로운 경우를 생성하거나, 유사하게 식별될 때 클래스 특성들에 액세스한다. 다시 말하면, 클래스 팩토리는 명칭 또는 ID로 임의의 클래스의 메타데이터를 참조할 수 있고, 이후 그 정보를 이용하여, 클래스의 확장 특성들을 포함하는 클래스의 새로운 경우를 적절하게 구성할 수 있다. 본 발명은 애플리케이션이 클래스의 메타데이터에 새로운 특성들을 부가할 수 있도록 하여, 클래스 팩토리에 의하여 구성된 경우의 구조를 변경시킬 것이다.
C++ 와 같은 컴파일링된 언어에서, 클래스의 레이아웃은 클래스가 컴파일링될 때 결정된다. 이들 새로운 특성들이 할당된 기억 스페이스와, 실행된 이들의 초기화 코드(필요한 곳에)를 가질 수도 있도록 하는 메커니즘이 요구되어, 클래스의 경우들이 이들 새로운 특성들로의 액세스를 가질 것이다. 본 발명은 각 특성들과 속성 클래스를 연관시키는 방법을 제공한다. 속성 클래스 경우는 각 클래스 특성에 대하여 생성되고, 클래스 메타데이터와 함께 유지된다. 속성 경우들은, 이들이 클래스의 경우들에 속하는 각 특성을 정의한다는 점에서 클래스 메타데이터의 실체(substance)이다.
각 클래스에 대한 메타데이터는 일반적인 정보, 바람직하게는 클래스 명칭과 ID를 포함하여, 클래스 팩토리가 명칭 또는 ID로 클래스를 참조할 수 있다. 다른 정보는, isA(클래스) 및 isKindof(클래스) 질문, 베이스 클래스들에의 링크들은 물론, 클래스의 속성들의 집합(특성 정의들)에의 링크와 같은 런타임 유형 식별 기능들에 대한 지원을 제공한다.
클래스의 각 특성은 클래스 메타데이터와 연관된 속성 객체를 가진다. 이 객체는, 클래스 생성자들이 특성의 메모리를 위치시켜, 이것을 생성자가 완료되기 전에 적절하게 초기화시킬 수 있도록 하는 정보를 포함한다. 클래스로 컴파일링된 특성들은 컴파일러에 의하여 생성된 코드에 의하여 초기화되나, ACE에 대한 특성들은 속성 클래스에 의하여 제어되는 다른 단계에 의하여 초기화되어야 한다. 각 속성 객체는, 적어도, 특성의 명칭, 특성의 형태, 특성 데이터를 위치시키는 메커니즘, 및 특성의 크기의 정보를 포함한다. 선택적으로, 속성 객체는 또한 특성을 적절하게 구성하고 파괴하기 위하여 코드의 어드레스와, 특성을 설정하기 위한 디폴트 값을 포함할 수도 있다.
이 정보는, 특성이 클래스에 컴파일링되지 않아도, 특성이 명칭에 의하여 액세스되도록 하나, 런타임시 애플리케이션 클래스 확장에 의하여 부가된다. 이것은 필수적이어서, 특성이 애플리케이션 코드에 의하여 질문되거나 설정될 수 있다.
본 발명은 동적으로 정의된 클래스 특성들에 대한 기억을 관리하는 단계를더 포함한다. 기억을 관리하는 처리는, 각 특성에 대한 기억 스페이스를 할당하는 단계, 각 특성 객체를 초기화하거나 구성하는 단계, 더 이상 필요하지 않을 때, 각 특성 객체를 파괴하는(적절한 곳에서) 단계, 및 각 특성에 대한 기억 스페이스를 탈할당(deallocating)시키는 단계를 포함한다.
ACE에 대하여 사용된 특성들은 클래스의 구조에 컴파일링되지 않으므로, 특성들이 이용한 스페이스는 어떻게 해서든 클래스의 적절한 경우와 연관되어야 하고, 클래스 경우가 파괴될 때 탈할당되어야 한다. 이것은 가변 크기의 일반 메모리 버퍼를 인캡슐레이팅(encapsulating)하는 클래스의 숨겨진(비밀의(private)) 특성으로 행해진다. 비밀 특성은 클래스의 모든 동적(비컴파일링된) 특성들을 포함하고, 버퍼는 클래스의 경우가 구성될 때 할당된다. 클래스 메타데이터의 속성들은 이들 특성이 이 버퍼 내에 위치될 때를 알게 되어, 이들 속성들이 적절한 때에 관리하는 데이터를 적절하게 초기화하고, 액세스하며, 설정하고 파괴할 수 있다.
상술된 바와 같이, 본 발명의 특성은 기존의 클래스 구조를 변경하는 능력이다. 상술된 바와 같은 대표적인 메타데이터를 가지는 임의의 클래스는 각 새로운 특성을 나타내기 위한 클래스의 메타데이터에 새로운 속성들을 부가함으로써 그 구조가 변경되도록 하는 포텐셜을 가진다. 새로운 특성 데이터를 포함하는 버퍼가 생성되어, 클래스의 각 경우와 연관될 수도 있다. 이후, 버퍼는 초기화되어, 등록된 속성들의 성능들을 적절하게 이용한다. 그 결과, 변경된 클래스의 새로운 경우는 그 메타데이터와 함께 등록된 새로운 특성들은 물론, 이미 존재하는 특성들을 포함한다.
본 발명의 다른 특성은 새로운 클래스들을 생성하는 능력이다. 새로운 클래스의 생성은, 새로운 클래스가 실제로 이미 존재하는 클래스에 기초하므로, 기존의 클래스를 변경하는 것과 상당히 유사하다. 이 새로운 클래스가 시스템에 의하여 인식되도록 하기 위하여, 본 발명은 새로운 명칭과 클래스 ID로 새로운 메타데이터를 생성하고 등록하도록 동작한다. ACE 시스템은 또한 클래스 팩토리와 함께 적절한 구성 방법들을 등록해야 한다. 새로운 메타데이터와 구성 방법의 생성 및 등록에 따라, 애플리케이션은 이의 이름을 클래스 팩토리에 명시함으로써 이 새로운 클래스의 경우를 구성할 수도 있다.
또한, 본 발명은 콘텍스트에 의해 객체 구조를 변경하는 능력을 포함한다. 이의 리얼타임 콘텍스트에 따라 특정 객체의 구조를 변경하기 위해서, ACE 애플리케이션은 객체와 관계가 있는 특성을 결정적으로 확인하고, 특성값을 설정하고, 현재의 객체 콘텍스트와 더 이상 관계가 없는 이전의 특성값을 제거하도록 작용한다.
콘텍스트는 적시의 임의의 소정 점에서 시스템의 전체적인 상태와 관련하여 객체의 상태로서 정의될 수 있다. 문제의 객체, 또는 시스템에서의 임의의 다른 관련된 객체의 상태 변경은 콘텍스트 및 잠재적으로 객체와 관련된 특성을 변경시킨다. 객체의 상태 변경의 예는 후술의 시나리오에서 개시된다.
예로서 제조 시스템을 이용함으로써, 클래스는 제조 장비 1대의 상태를 설계할 수도 있다. 이 장비의 일부의 표준 특성은 이것의 이름, 위치, 용량, 및 기능적 상태일 수 있다. 예를 들면, 상기 기능적 상태는 "정상 가동", "가동 정지", "보수", 또는 "사용 불가"의 상태일 수도 있다. 본 발명자들은 이 기능적 상태에따라 다른 일련의 특성을 이 장비 1대와 관련시켜도 된다. 상기 "정상 가동" 상태에 있는 경우, 본 발명자들은 어떤 공정 로트(lot), 처방, 및 작업자가 적절한지를 알고 있어도 된다. 상기 "가동 정지" 상태에 있는 경우, 본 발명자들은 누구에 의해 언제 가동 정지되었는지를 알고 있어도 된다. 상기 "보수" 상태에 있는 경우, 본 발명자들은 보수의 책임 기술자뿐만 아니라, 실시되고 있는 작업 명령을 알고 있어도 된다. 이들은 아주 다른 정보의 단편이지만, 적시의 각각의 점에서, 장비에 적절하다. 따라서, 정보의 다른 단편을 나타내는 다른 특성은 필요에 따라 장비의 다른 기능적 상태, 또는 콘텍스트와 관계가 있을 수도 있다.
콘텍스트를 결정하는 하나의 방법은 언제 객체 특성이 리얼타임으로 변경되는지를 인지하는 것이다. 특성의 변경을 인지할 때, 규칙은 어떤 특성이 어떤 객체와 관계가 있는지를 결정하고, 요구에 따라 콘텍스트 특성을 변경하는데 사용될 수도 있다. 본 발명은 객체의 콘텍스트를 결정하는 것을 포함하지만, 콘텍스트를 결정하는 임의의 특정 기술 또는 구조로 한정되지 않는다.
객체의 콘텍스트 특성을 변경하는 경우, 새로운 특성은 이들이 설정되어야만 하는 것을 결정하는 일부의 프레임워크 설비 또는 애플리케이션 중의 어느 것에 의해 이들 값을 설정해야만 한다. 애플리케이션이 쉽게 적응될 수 없는 이러한 방식으로 시간에 걸쳐 변화함에 따라, 시스템 프레임워크는 이들 변화를 적용하는 것이 바람직하다. 시스템 프레임워크에 특성값을 설정하는 능력을 제공하는 하나의 방법은 1 세트의 특성 배치 규칙(1005)을 제공하는 것에 의한다. 시스템 상태가 변화하는 경우, 이들 규칙은 저장소에 저장되고, 리얼타임에서 애플리케이션에 의해로드되고, 객체의 관련된 클래스에 인가될 수도 있다.
ACE는 1개 이상의 컴퓨터에서 수행되는 소프트웨어 및 컴퓨터 프로그램에서 실시될 수도 있다. 도 4는 본 발명을 특징을 포함하는 전형적인 장치(4000)의 일실시 형태의 블록도이다. 도시되는 바와 같이, 제1 컴퓨터 시스템(4005)은 제2 컴퓨터 시스템(4010)에 연결될 수도 있어, 제1 및 제2 컴퓨터 시스템(4005, 4010)은 서로 정보를 교환할 수 있다. 제1 실시 형태에 있어서, 제1 컴퓨터 시스템(4005)은 서버를 포함할 수 있고, 제1 및 제2 컴퓨터는 인터넷(4015)으로서 이 실시 형태에 도시되는 네트워크를 통하여 통신할 수도 있다. 제1 및 제2 컴퓨터 시스템( 4005, 4010)은 예를 들면 모뎀, 하드 와이어 접속, 무선 접속, 또는 광섬유 링크를 포함하는 데이터 교환에 적합한 임의의 방법을 사용하여 서로 연결될 수도 있다. 일반적으로, 정보는 통신 프로토콜을 사용하는 제1 및 제2 컴퓨터 시스템(4005, 4010)에 의해 교환될 수도 있다. 제1 및 제2 컴퓨터 시스템(4005, 4010)은 이들이 본 발명의 방법을 실시하는데 적합한 기계 판독식 프로그램 소스 코드를 구현하는 프로그램 저장 장치(4020, 4025)를 이용하는데 일반적으로 적합하다. 본 발명의 특징을 포함하는 이 프로그램 저장 장치(4020, 4025)는 광학, 자기 특성 및/또는 전자 공학을 이용하는 기계의 부품으로서 발명되고, 제조되고 사용되어 본 발명의 순서 및 방법을 실시할 수도 있다. 다른 실시 형태에 있어서, 이 프로그램 저장 장치(4020, 4025)는 컴퓨터로 판독되고 실행될 수 있는 디스켓 또는 컴퓨터 하드 드라이브 등의 자기 매체를 포함할 수도 있다. 다른 실시 형태에 있어서, 프로그램 저장 장치(4020, 4025)는 플로피 디스크, 광학 디스크,리드-온리-메모리("ROM"), 랜덤 액세스 메모리(RAM), 어떤 유형의 반도체계 저장, 또는 정보를 저장하는데 적합한 다른 저장 장치를 포함할 수 있다. 또한, 제1 및 제2 컴퓨터 시스템(4005, 4010) 각각은 저장된 프로그램을 실행하는 프로세서(4030, 4035)를 포함할 수도 있고, 디스플레이 장치(4050, 4055) 및 입력 장치(4060, 4065)를 포함할 수 있는 유저 인터페이스(4040, 4045)를 각각 포함할 수도 있다.
바람직한 실시 형태에 있어서, 제2 컴퓨터 시스템(4010)은, 반도체 웨이퍼, 평판 디스플레이 기판, 또는 다른 유형의 기판 등의 프로세싱 기판(4070)용 장치에 연결된다. 제2 컴퓨터 시스템(4010)은 기판 프로세싱 장치(4070)의 작동을 제어하는 하드웨어 인터페이스, 소프트웨어 및 프로그램을 포함할 수도 있다. 이 소프트웨어 및 컴퓨터 프로그램은 바람직하게는 본 발명의 교시 및 특징을 포함한다.
상기의 설명은 단지 본 발명의 예시라는 것을 알 수 있다. 다양한 변경 및 변형이 본 발명을 벗어나지 않고 당업자에 의해 실시될 수 있다. 따라서, 본 발명은 첨부된 청구항의 요지를 이탈하지 않는 범위 내에서, 모든 이러한 변경, 변형 및 변화를 포함한다.

Claims (28)

  1. 제1 애플리케이션 클래스 확장 방법에 있어서,
    확장 특성들을 유지하기 위해 상기 제1 애플리케이션 클래스 내에 제1 데이터 버퍼를 통합시키는 단계; 및
    상기 제1 애플리케이션 클래스의 하나 이상의 상기 확장 특성들에 연관시킬 값들을 결정하기 위해, 규칙 기반의 엔진을 이용하는 단계를 포함하는 애플리케이션 클래스 확장 방법.
  2. 제1항에 있어서, 상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 이용하여 상기 제1 애플리케이션 클래스의 구조를 변경시키는 단계를 더 포함하는 애플리케이션 클래스 확장 방법.
  3. 제2항에 있어서, 상기 제1 애플리케이션 클래스의 구조를 변경시키는 상기 단계는,
    상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들 각각을 나타내는 속성을 생성하는 단계;
    상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 유지하기 위한 제2 데이터 버퍼를 생성하는 단계; 및
    상기 제2 데이터 버퍼를 각 경우의 상기 제1 애플리케이션 클래스에 연관시키는 단계를 포함하는 애플리케이션 클래스 확장 방법.
  4. 제1항에 있어서, 상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 이용하여 제2 애플리케이션 클래스를 생성하는 단계를 더 포함하는 애플리케이션 클래스 확장 방법.
  5. 제1항에 있어서, 상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 이용하여 상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 단계를 더 포함하는 애플리케이션 클래스 확장 방법.
  6. 제5항에 있어서, 상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 상기 단계는,
    상기 제1 애플리케이션 클래스의 상기 경우의 콘텍스트를 확인하는 단계;
    상기 확인된 콘텍스트에 기초하여 한 세트의 상기 확장 특성들을 확인하는 단계; 및
    상기 애플리케이션 클래스의 상기 경우에 대해서 상기 한 세트의 확장 특성들을 이용하는 단계를 포함하는 애플리케이션 클래스 확장 방법.
  7. 제6항에 있어서, 경우의 상기 콘텍스트를 확인하는 단계는 시스템 상태가 변경된 때를 확인하는 단계를 포함하고, 상기 한 세트의 특성들을 확인하는 단계는,
    특성 매핑 규칙들을 발생하는 단계; 및
    상기 시스템 상태 변경이 확인되었을 때 상기 경우에 상기 특성 매핑 규칙을 적용하는 단계를 포함하는 애플리케이션 클래스 확장 방법.
  8. 컴퓨터로 하여금 제1 애플리케이션 클래스를 확장하게 하는 컴퓨터 독출가능 코드 수단이 구현되어 있는 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품으로서, 이 컴퓨터 프로그램 제품 내 상기 컴퓨터 독출가능 코드 수단은,
    컴퓨터로 하여금, 확장 특성들을 유지하기 위해 제1 애플리케이션 클래스 내에 제1 데이터 버퍼를 통합시키게 하는 컴퓨터 독출가능 프로그램 코드 수단; 및
    상기 제1 애플리케이션 클래스에 연관시킬 하나 이상의 상기 확장 특성들을 결정하기 위해, 컴퓨터로 하여금 규칙 기반의 엔진을 이용하게 하는 컴퓨터 독출가능 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품.
  9. 제8항에 있어서, 상기 컴퓨터 프로그램 제품 내 상기 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 이용하여 상기 제1 애플리케이션 클래스의 구조를 변경시키는 컴퓨터 독출가능 프로그램 코드 수단을 더 포함하는 컴퓨터 프로그램 제품.
  10. 제9항에 있어서, 상기 제1 애플리케이션 클래스의 구조를 변경시키는 상기컴퓨터 독출가능 프로그램 코드 수단은,
    상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들 각각을 나타내는 속성을 생성하는 컴퓨터 독출가능 프로그램 코드 수단;
    상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 유지하기 위한 제2 데이터 버퍼를 생성하는 컴퓨터 독출가능 프로그램 코드 수단; 및
    상기 제2 데이터 버퍼를 상기 제1 애플리케이션 클래스의 각 경우에 연관시키는 컴퓨터 독출가능 프로그램 코드 수단을 더 포함하는 컴퓨터 프로그램 제품.
  11. 제9항에 있어서, 상기 컴퓨터 프로그램 제품 내 상기 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 이용하여 제2 애플리케이션 클래스를 생성하는 컴퓨터 독출가능 코드 수단을 더 포함하는 컴퓨터 프로그램 제품.
  12. 제8항에 있어서, 상기 컴퓨터 프로그램 제품 내 상기 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스에 연관된 상기 하나 이상의 확장 특성들을 이용하여 상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 컴퓨터 독출가능 코드 수단을 더 포함하는 컴퓨터 프로그램 제품.
  13. 제12항에 있어서, 상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스의 상기 경우의 콘텍스트를 확인하는 컴퓨터 독출가능 코드 수단;
    상기 확인된 콘텍스트에 기초하여 한 세트의 상기 확장 특성들을 확인하는 컴퓨터 독출가능 코드 수단; 및
    상기 애플리케이션 클래스의 상기 경우에 대해서 상기 한 세트의 확장 특성들을 이용하는 컴퓨터 독출가능 코드 수단을 더 포함하는 컴퓨터 프로그램 제품.
  14. 제13항에 있어서,
    상기 경우의 콘텍스트를 확인하는 컴퓨터 독출가능 프로그램 코드 수단은, 시스템 상태가 변경되는 때를 확인하는 컴퓨터 독출가능 프로그램 코드 수단을 포함하며,
    상기 한 세트의 특성들을 확인하는 컴퓨터 독출가능 프로그램 코드 수단은,
    특성 매핑 규칙을 생성하는 컴퓨터 독출가능 프로그램 코드 수단; 및
    상기 시스템 상태 변경의 확인 시에, 상기 특성 매핑 규칙을 상기 경우에 적용하는 컴퓨터 독출가능 프로그램 코드 수단을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  15. 제조 물품(article of manufacture)에 있어서,
    제1 애플리케이션 클래스를 컴퓨터가 확장하도록 하는 컴퓨터 독출가능 프로그램 코드 수단을 갖는 컴퓨터 사용가능 매체로서, 상기 제조 물품에 있는 상기 컴퓨터 독출가능 코드 수단은,
    확장 특성들을 유지하기 위해 상기 애플리케이션 클래스 내에 제1 데이터 버퍼를 컴퓨터가 통합시키도록 하는 컴퓨터 독출가능 프로그램 코드 수단; 및
    컴퓨터가 규칙 기반의 엔진을 이용하여, 상기 제1 애플리케이션 클래스와 연관시킬 하나 이상의 상기 확장 특성들을 결정하도록 하는 컴퓨터 독출가능 프로그램 코드 수단을 구비하는 것을 특징으로 하는 제조 물품.
  16. 제15항에 있어서,
    상기 컴퓨터 프로그램 제품에 있는 상기 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 이용하여, 상기 제1 애플리케이션 클래스의 구조를 변경하는 컴퓨터 독출가능 프로그램 코드 수단을 더 구비하는 것을 특징으로 하는 제조 물품.
  17. 제16항에 있어서,
    상기 제1 애플리케이션 클래스의 구조를 변경하는 상기 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들 각각을 나타내는 속성을 생성하는 컴퓨터 독출가능 프로그램 코드 수단;
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 유지하는 제2 데이터 버퍼를 생성하는 컴퓨터 독출가능 프로그램 코드 수단; 및
    상기 제2 데이터 버퍼를 상기 제1 애플리케이션 클래스의 각 경우와 연관시키는 컴퓨터 독출가능 프로그램 코드 수단을 더 구비하는 것을 특징으로 하는 제조 물품.
  18. 제15항에 있어서,
    상기 컴퓨터 프로그램 제품에 있는 상기 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 이용하여, 제2 애플리케이션 클래스를 생성하는 컴퓨터 독출가능 프로그램 코드 수단을 더 구비하는 것을 특징으로 하는 제조 물품.
  19. 제15항에 있어서,
    상기 컴퓨터 프로그램 제품에 있는 상기 컴퓨터 독출가능 코드 수단은,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 이용하여, 상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 컴퓨터 독출가능 프로그램 코드 수단을 더 구비하는 것을 특징으로 하는 제조 물품.
  20. 제19항에 있어서,
    상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 컴퓨터 독출가능프로그램 코드 수단은,
    상기 제1 애플리케이션 클래스의 상기 경우의 콘텍스트를 확인하는 컴퓨터 독출가능 프로그램 코드 수단;
    상기 확인된 콘텍스트에 기초하여, 한 세트의 상기 확장 특성들을 확인하는 컴퓨터 독출가능 프로그램 코드 수단; 및
    상기 애플리케이션 클래스의 상기 경우에 대해 상기 한 세트의 확장 특성들을 이용하는 컴퓨터 독출가능 프로그램 코드 수단을 더 구비하는 것을 특징으로 하는 제조 물품.
  21. 제20항에 있어서,
    상기 경우의 콘텍스트를 확인하는 컴퓨터 독출가능 프로그램 코드 수단은, 시스템 상태가 변경되는 때를 확인하는 컴퓨터 독출가능 프로그램 코드 수단을 포함하고,
    상기 한 세트의 특성들을 확인하는 컴퓨터 독출가능 프로그램 코드 수단은,
    특성 매핑 규칙을 생성하는 컴퓨터 독출가능 프로그램 코드 수단; 및
    상기 시스템 상태 변경의 확인 시에, 상기 특성 매핑 규칙을 상기 경우에 적용하는 컴퓨터 독출가능 프로그램 코드 수단을 포함하는 것을 특징으로 하는 제조 물품.
  22. 기판 처리 장치용 제어기에 있어서,
    제1 애플리케이션 클래스를 확장하는 제1 회로를 구비하고,
    상기 제1 애플리케이션 클래스를 확장하는 제1 회로는,
    확장 특성들을 유지하기 위해 상기 애플리케이션 클래스 내에 제1 데이터 버퍼를 통합시키는 회로; 및
    규칙 기반의 엔진을 이용하여, 상기 제1 애플리케이션 클래스와 연관시킬 하나 이상의 상기 확장 특성들을 결정하는 회로를 구비하는 것을 특징으로 하는 제어기.
  23. 제22항에 있어서,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 이용하여 상기 제1 애플리케이션 클래스의 구조를 변경하는 회로를 더 구비하는 것을 특징으로 하는 제어기.
  24. 제23항에 있어서,
    상기 제1 애플리케이션 클래스의 구조를 변경하는 회로는,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들 각각을 나타내는 속성을 생성하는 회로;
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 유지하는 제2 데이터 버퍼를 생성하는 회로; 및
    상기 제2 데이터 버퍼를 상기 제1 애플리케이션 클래스의 각 경우와 연관시키는 회로를 구비하는 것을 특징으로 하는 제어기.
  25. 제22항에 있어서,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 이용하여 제2 애플리케이션 클래스를 생성하는 회로를 더 구비하는 것을 특징으로 하는 제어기.
  26. 제22항에 있어서,
    상기 제1 애플리케이션 클래스와 연관된 상기 하나 이상의 확장 특성들을 이용하여 상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 회로를 더 구비하는 것을 특징으로 하는 제어기.
  27. 제26항에 있어서,
    상기 제1 애플리케이션 클래스의 경우의 구조를 변경하는 회로는,
    상기 제1 애플리케이션 클래스의 상기 경우의 콘텍스트를 확인하는 회로;
    상기 확인된 콘텍스트에 기초하여, 한 세트의 상기 확장 특성들을 확인하는 회로; 및
    상기 애플리케이션 클래스의 상기 경우에 대해 상기 한 세트의 확장 특성들을 이용하는 회로를 구비하는 것을 특징으로 하는 제어기.
  28. 제27항에 있어서,
    상기 경우의 콘텍스트를 확인하는 회로는, 시스템 상태가 변경되는 때를 확인하는 회로를 포함하고,
    상기 한 세트의 특성들을 확인하는 회로는,
    특성 매핑 규칙을 생성하는 회로; 및
    상기 시스템 상태 변경의 확인 시에, 상기 특성 매핑 규칙을 상기 경우에 적용하는 회로를 포함하는 것을 특징으로 하는 제어기.
KR1020047002739A 2001-08-24 2002-08-23 애플리케이션 클래스 확장 KR100909731B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31489901P 2001-08-24 2001-08-24
US60314899 2001-08-24
PCT/US2002/026882 WO2003019363A1 (en) 2001-08-24 2002-08-23 Application class extensions

Publications (2)

Publication Number Publication Date
KR20040054677A true KR20040054677A (ko) 2004-06-25
KR100909731B1 KR100909731B1 (ko) 2009-07-29

Family

ID=23221962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047002739A KR100909731B1 (ko) 2001-08-24 2002-08-23 애플리케이션 클래스 확장

Country Status (5)

Country Link
US (1) US7185325B2 (ko)
KR (1) KR100909731B1 (ko)
CN (1) CN1561482A (ko)
TW (1) TWI240889B (ko)
WO (1) WO2003019363A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI337310B (en) * 2003-08-21 2011-02-11 Microsoft Corp Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7308679B2 (en) * 2003-09-26 2007-12-11 International Business Machines Corporation Method and computer program product for providing a meta-data programming language level interface
US7720877B1 (en) * 2004-04-14 2010-05-18 Oracle America, Inc. Class structure based enhancer for data objects
US8214799B2 (en) * 2004-07-08 2012-07-03 Microsoft Corporation Providing information to an isolated hosted object via system-created variable objects
US20070168926A1 (en) * 2005-12-16 2007-07-19 Raghuram Rajah Software customization framework
US8490053B2 (en) * 2006-10-23 2013-07-16 Intuit Inc. Software domain model that enables simultaneous independent development of software components
US8381177B2 (en) * 2007-09-28 2013-02-19 Texas Instruments Incorporated Method and system of performing Java language class extensions
US20090193444A1 (en) * 2008-01-29 2009-07-30 Microsoft Corporation Techniques for creating and managing extensions
US20110115702A1 (en) * 2008-07-08 2011-05-19 David Seaberg Process for Providing and Editing Instructions, Data, Data Structures, and Algorithms in a Computer System
US9026989B2 (en) * 2012-06-07 2015-05-05 Microsoft Technology Licensing Llc Object extensions using attributes to decouple base classes from derived classes
US9891930B2 (en) * 2016-05-05 2018-02-13 Sap Se Rapid identification of object properties in an evolving domain model of an enterprise application on the cloud
US10268455B2 (en) 2016-05-20 2019-04-23 Microsoft Technology Licensing, Llc Augmenting an original class with an augmenting class
GB2573775A (en) * 2018-05-16 2019-11-20 Sage Uk Ltd Application Deployment

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857212A (en) * 1995-07-06 1999-01-05 Sun Microsystems, Inc. System and method for horizontal alignment of tokens in a structural representation program editor
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
US6637020B1 (en) * 1998-12-03 2003-10-21 International Business Machines Corporation Creating applications within data processing systems by combining program components dynamically
EP1228404A1 (en) * 1999-10-05 2002-08-07 Togethersoft Corporation Method for generating and defining a pattern
US20020174082A1 (en) * 2000-09-26 2002-11-21 Z-Force Corp. Reusable parts for assembled software systems
US7917888B2 (en) * 2001-01-22 2011-03-29 Symbol Technologies, Inc. System and method for building multi-modal and multi-channel applications
US6816865B2 (en) * 2001-04-18 2004-11-09 International Business Machines Corporation Process for data driven application integration for B2B

Also Published As

Publication number Publication date
TWI240889B (en) 2005-10-01
WO2003019363A1 (en) 2003-03-06
US7185325B2 (en) 2007-02-27
US20030051229A1 (en) 2003-03-13
KR100909731B1 (ko) 2009-07-29
CN1561482A (zh) 2005-01-05

Similar Documents

Publication Publication Date Title
US10740115B2 (en) Structural identification of dynamically-generated, pattern-based classes
US7421716B1 (en) System and method for providing composite applications
US5848419A (en) Methods and apparatus for providing transparent persistence in a distributed object operating environment
US6976262B1 (en) Web-based enterprise management with multiple repository capability
KR100909731B1 (ko) 애플리케이션 클래스 확장
CA2504082C (en) Method and apparatus for generating user interfaces based upon automation with full flexibility
US5418964A (en) System and method for parent class shadowing in a statically linked object hierarchy
US8327346B2 (en) Run-time type conversion
US9015672B2 (en) Interface simulator for test rig in data distribution service
US8869100B1 (en) Data objects for model-based design
US7665014B2 (en) Method and apparatus for generating forms using form types
US6473768B1 (en) System and method for modifying an executing application
JPH10511202A (ja) オブジェクト指向環境における回復可能プロキシ・オブジェクト
US6405360B1 (en) Property container type objects
US6128772A (en) Object-oriented apparatus and method in a computer system for establishing/altering the ownership relationship between objects
Eeles Business component development
US20010007146A1 (en) Method for providing a set of software components
Sharan et al. Classes
Villela et al. Working with Microsoft CRT/UCRT and Memory Management
KR20060130480A (ko) 사용자 정의 타입들에 대한 계승을 지원하기 위한 시스템및 방법
Friesen Static, Non-static, Local, and Anonymous Classes
Hunt et al. Kotlin Classes
CN117369861A (zh) 应用程序的线程管理策略配置方法及相关装置
Soundarajan et al. Reasoning about polymorphic behavior
CN100495329C (zh) 对象过程图系统

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: 20120628

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee