KR20060050489A - 디맨드 이벤트를 위한 오브젝트 복제 - Google Patents

디맨드 이벤트를 위한 오브젝트 복제 Download PDF

Info

Publication number
KR20060050489A
KR20060050489A KR1020050074833A KR20050074833A KR20060050489A KR 20060050489 A KR20060050489 A KR 20060050489A KR 1020050074833 A KR1020050074833 A KR 1020050074833A KR 20050074833 A KR20050074833 A KR 20050074833A KR 20060050489 A KR20060050489 A KR 20060050489A
Authority
KR
South Korea
Prior art keywords
attribute
shared
event
replicated
duplicated
Prior art date
Application number
KR1020050074833A
Other languages
English (en)
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 KR20060050489A publication Critical patent/KR20060050489A/ko

Links

Images

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

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

공유 오브젝트 또는 디맨드 이벤트를 위한 속성 수집의 속성으로 복제된 오브젝트를 구성하고, 복제된 오브젝트상에서 개시된 디자인 이벤트를 위한 복제된 오브젝트를 구성하지 않음으로써, 오브젝트를 복제하기 위한 시스템 및 방법이 개시된다. 디자인 이벤트 동안, 복제된 오브젝트는 공유 오브젝트 또는 속성 수집을 지시하거나 이들과 연관될 수 있다. 복제된 오브젝트상에서 수행되는 디자인 이벤트는 사용자가 인식하거나 또는 하지 않거나 공유 오브젝트 또는 속성 수집상에서 실제로 수행될 수 있다. 부가적으로, 본 발명의 실시예는, 속성 표현의 변수를 변경함으로써, 디맨드 시간에 복제된 오브젝트의 동적 실행을 허용한다.
공유 오브젝트, 디맨드 이벤트, 속성 표현, 컴퓨팅 환경, 애플리케이션 프로그램

Description

디맨드 이벤트를 위한 오브젝트 복제{OBJECT CLONING FOR DEMAND EVENTS}
전술한 요약 및 다음의 예시적 실시예의 상세한 설명은 부가된 도면을 참조할 때 더 잘 이해된다. 본 발명의 설명을 위한 목적으로, 본 발명의 예시적인 구성이 도면에 도시되지만, 본 발명은 개시된 특정 설명 및 수단에만 한정되는 것은 아니다.
도 1은 본 발명이 구현되는 양태에 따른 예시적 컴퓨팅 환경을 도시하는 블록도.
도 2는 디자인 이벤트 동안 나타나는 오브젝트 복제를 위한 시스템의 예시적 실시예를 도시하는 블록도.
도 3은 디맨드 이벤트 동안 나타나는 오브젝트 복제를 위한 시스템의 예시적 실시예를 도시하는 블록도.
도 4는 오브젝트의 디맨드 이벤트 복제를 위한 시스템내의 디자인 이벤트를 수행하기 위한 방법의 순서도.
도 5는 오브젝트의 디맨드 이벤트 복제를 위한 시스템내의 디자인 이벤트를 수행하기 위한 방법의 순서도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 컴퓨터
120 : 처리 유닛
134 : 오퍼레이팅 시스템
135 : 애플리케이션 프로그램
137 : 프로그램 데이터
170 : 네트워크 인터페이스
185 : 원격 애플리케이션 프로그램
220 : 공유 오브젝트
224 : 속성
234 : 속성 쉘
320 : 공유 오브젝트
본 발명의 분야는 일반적으로 오브젝트 모델 소프트웨어 애플리케이션에 관한 것이며, 특히 오브젝트중에서 구성 속성(configuration property)을 공유하는 것에 관한 것이다.
소프트웨어 애플리케이션은 애플리케이션의 기능을 정의하는 다수의 오브젝트를 포함할 수 있다. 애플리케이션내의 몇몇 오브젝트는, 오브젝트가 애플리케이션내의 다른 오브젝트와 동일한 속성을 갖지 않을 수 있다는 점에서 다른 것과 구별가능할 수 있다. 그러나, 애플리케이션내의 다수의 다른 오브젝트는 근본적으로 동일할 수 있다. 이러한 근본적으로 동일한 오브젝트는 애플리케이션내의 동일한 기능을 근본적으로 공유할 수 있다. 이러한 오브젝트는 동일한 애플리케이션내의 여러 장소에 위치할 수 있고, 근본적으로 동일한 액션의 실행을 요구하거나 동일한 목적에 기여할 수 있다.
오브젝트는 실질상 동일할 수 있지만, 이러한 오브젝트 각각의 속성은 실행 이전에 개별적으로 구성될 수 있다. 이러한 구성은 상이한 로케이션에서 복제되는 거의 동일한 코드를 필요로할 수 있다. 오브젝트의 코딩은 상당히 길고 복잡하다. 연관된 오브젝트의 세트를 구현하는 코드, 또는 코드에 의해 구현되는 하부 알고리즘이 변한다면, 다음에 이러한 변화는 연관된 오브젝트의 다양한 로케이션에 적용되어야 한다. 수많은 동일하거나 실질상 동일한 오브젝트를 편집하는 것은 노동 집약적이고 시간이 많이 소요될 수 있다. 이러한 편집은 또한 에러가 발생하기 쉬워서, 애플리케이션내에서 다수의 로케이션에서 에러를 가질 수 있는 기능정지(defunct) 또는 오작동(malfunctioning) 애플리케이션을 디버깅하기 위한 노력이 많이 들고 시간이 소모되는 결과가 된다.
따라서, 애플리케이션내에서 다수의 유사하거나 거의 동일한 오브젝트의 유지 및 디버깅에 들이는 노고 및 소모되는 시간을 감소시킬 필요가 있다.
본 발명은 사용자가 하나의 오브젝트의 속성을 구성할 수 있도록 하고, 이러한 속성이 여러 유사한 오브젝트간에 자동적으로 공유되도록 한다. 속성의 이러한 공유 또는 복제(cloning)는 예컨대, 복수의 오브젝트를 포함하는 오브젝트 모델 애 플리케이션에서 이용될 수 있고, 여기서 이러한 오브젝트 몇몇은 동일하지만 부(parent) 오브젝트내의 상이한 위치에 존재한다. 오브젝트는 부 오브젝트내의 상이한 범주(scope)에 있거나, 상이한 작업량(workflow) 제약에 영향받을 수 있다.
디자인 시간(예컨대, 편집) 및 디맨드 시간(예컨대, 실행)을 갖는 오브젝트 모델 애플리케이션에서, 애플리케이션은 속성으로 구성되거나 예시되는 공유 오브젝트를 포함할 수 있다. 이러한 공유 오브젝트의 복제인 오브젝트는 양호하게는 디자인 시간 동안에는 속성으로 구성되지 않고, 대신에 공유 오브젝트에 대한 포인트로 구성된다. 공유 오브젝트의 복제품(clone)은, 공유 오브젝트와 연관된 오브젝트의 쉘(shell)일 수 있다. 디맨드 시간에서, 복제된 오브젝트는 공유 오브젝트의 속성을 이용하여 구성되거나 예시될 수 있다. 따라서, 디맨드 시간에서, 복제된 오브젝트는 물리적으로 생성되고 그 자체상에서 기능할 수 있다. 디맨드 이벤트가 완료될 때, 복제된 오브젝트는 구성되거나 예시되지 않을 수 있고, 따라서, 디자인 시간 모드로 복귀하여 이들은 공유 오브젝트에 대한 오브젝트 포인팅의 쉘이 된다.
본 발명은, 단지 하나의 공유 오브젝트만이 속성으로 구성되기 때문에, 애플리케이션에 대한 오브젝트를 개발 및 유지하는 시간을 절감할 수 있다. 공유 오브젝트의 복제품이 되는 다른 오브젝트는 단지 공유 오브젝트를 지시한다. 이것은 애플리케이션의 개발 및 애플리케이션 유지에 대한 시간 및 노력을 감소시킨다. 오브젝트가 변경 또는 편집을 요구하면, 공유 오브젝트만이, 시간이 소모되는 편집 및 애플리케이션의 코딩에서의 에러를 감소시키면서, 어텐션(attention)을 요구한 다. 복제된 오브젝트는 이들이 런타임에서만 구성될 수 있으므로 편집을 요구하지 않고, 따라서 공유 오브젝트의 속성으로 자동적으로 구성될 수 있다. 부가적으로, 오브젝트가 크거나 복잡하면, 디자인 시간 동안 오브젝트 중 하나만을 구성 또는 예시하는 것이 메모리를 절감하는데 용이하다.
개관
본 발명의 일 실시예는 사용자가, 동일한 속성(property)(즉, 속성(attribute) 또는 설정)을 공유하는 복제된 오브젝트로 불리는 하나 이상의 오브젝트를 공유 오브젝트로 불리는 다른 오브젝트로서 생성하도록 한다. 디자인 시간에서, 공유 오브젝트만이 물리적으로 생성된다. 이러한 방식에서, 공유 오브젝트는 다른 카피(copy)가 구성되는 마스터(master)와 유사할 수 있다. 복제된 오브젝트는 실질적으로 공유 오브젝트를 지시하거나 연관되는 빈 쉘(shell)일 수 있다. 복제된 오브젝트는 상이한 범주내에 있을 수 있고, 상이한 작업량 제한에 영향을 받을 수 있다. 임의의 복제된 오브젝트 또는 공유 오브젝트가 편집될 때, 이것은 공유 오브젝트의 코딩을 물리적으로 갱신하는 것과 동일한 효과를 가질 수 있다. 디맨드 시간에서, 이러한 편집은 오브젝트가 이용될 때 복제된 오브젝트 모두에 의해 반영될 수 있다. 디맨드 시간에서, 복제된 오브젝트는 물리적으로 적절하게 생성되거나 이용될 수 있다. 디맨드 이벤트의 완결시에, 복제된 오브젝트는 구성되지 않게 되고, 공유 오브젝트에 대한 포인터를 갖는 쉘로서 그 디자인 시간 상태로 반환될 수 있다. 즉, 복제된 오브젝트의 속성은 지속되지 않을 수 있고, 공유 오브 젝트의 속성만이 지속된다.
예시적 컴퓨팅 환경
도 1 및 다음 설명은, 본 발명의 예시적 실시예가 구현되는 적절한 컴퓨팅 환경의 간단하고 일반적인 설명을 제공한다. 그러나, 핸드헬드, 휴대용, 및 다른 모든 종류의 컴퓨팅 장치가 본 발명에 따라 이용될 수 있다는 것을 알 수 있다. 범용 컴퓨터가 이하 기술되지만, 이것은 하나의 예이다. 본 발명은 또한, 상호 동작 및 상호 작용을 하는 네트워크 서버를 갖는 씬(thin) 클라이언트에서도 동작가능하다. 따라서, 본 발명의 일 실시예는, 예컨대, 클라이언트 장치가 월드 와이드 웹에 대한 브라우저 또는 인터페이스로서만 기능하는 네트워킹된 환경인, 매우 작거나 최소인 클라이언트 자원이 관련된 네트워킹된 호스팅 서비스의 환경에서 구현될 수 있다.
필수적이지는 않지만, 본 발명은 개발자 또는 시험자에 의해 이용되는 애플리케이션 프로그래밍 인터페이스(API)를 통해 구현될 수 있고, 또는, 하나 이상의 컴퓨터(예컨대, 클라이언트 워크스테이션, 서버 또는 다른 장치)에 의해 실행되는, 프로그램 모듈과 같은, 컴퓨터 실행가능 명령의 일반적 콘텍스트로 기술되는 네트워크 브라우징 소프트웨어내에 포함될 수 있다. 일반적으로, 프로그램 모듈은, 특정 오브젝트를 수행하거나, 특정한 추상적 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 콤포넌트, 데이터 구조등을 포함한다. 전형적으로, 프로그램 모듈의 기능은 다양한 실시예에 따라 조합 또는 분배될 수 있다. 또한, 당업자는 본 발명이 다른 컴퓨터 시스템 구성에서도 실현될 수 있다는 것을 알 수 있다. 본 발 명에 적합한 다른 공지의 컴퓨팅 시스템, 환경, 및/또는 구성은, 개인용 컴퓨터, 자동 텔러(teller) 머신, 서버 컴퓨터, 헨드헬드 또는 랩탑 장치, 멀티 프로세서 시스템, 마이크로 프로세서 기반 시스템, 프로그래머블 가전 제품, 네트워크 PC, 미니 컴퓨터, 메인 프레임 컴퓨터등을 포함하지만 이에 제한되는 것은 아니다. 본 발명의 실시예는, 통신 네트워크 또는 다른 데이터 전송 매체를 통해 링크되는 원격 처리 장치에 의해 오브젝트가 수행되는, 분산 컴퓨팅 환경에서도 실현될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은, 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체에 위치할 수 있다.
도 1은 본 발명이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 나타내지만, 전술한 바에서 알 수 있는 바와 같이, 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 컴퓨팅 환경(100)은 예시적인 오퍼레이팅 환경(100)에 도시된 컴포넌트들 중의 임의의 하나 또는 조합에 관하여 임의의 종속성(dependency) 또는 요구사항(requirement)을 갖는 것으로 해석되어서는 안된다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 컨트롤 러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 산업 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 인핸스드 ISA(Enhanced ISA; EISA) 버스, 비디오 일렉트로닉스 표준 어소시에이션(VESA) 로컬 버스, 및 (메자닌(Mezzanine) 버스로도 알려진) 주변 컴포넌트 상호접속(PCI) 버스를 포함하지만, 이에 한정되는 것은 아니다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 분리형(removable) 및 비분리형(non-removable) 매체를 둘다 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광학 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용 어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 또는 그 이상을 갖는 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 프로세싱 유닛(120)에 즉시 액세스될 수 있고 및/또는 프로세싱 유닛(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 1은 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다. RAM(132)은 다른 데이터 및/또는 프로그램 모듈을 포함할 수 있다.
컴퓨터(110)는 또한 다른 제거가능/제거 불가능, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 제거불가능 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(140), 제거가능 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광학 매체 등의 분리형 비휘발성 광학 디스크(156)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브 (155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고체 RAM, 고체 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비분리형 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 분리형 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 이들 컴포넌트는 오퍼레이팅 시스템(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다. 오퍼레이팅 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(146), 및 프로그램 데이터(147)는 최소한 다른 복사본(different copies)임을 나타내기 위하여 다른 번호를 부여하였다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 프로세싱 유닛(120a-f)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB)와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다.
모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속된다. 모니터외에도, 컴퓨터는 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위 한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 1은 메모리 장치(181)에 상주하는 원격 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
당업자는 컴퓨터(110) 또는 다른 클라이언트 장치가 컴퓨터 네트워크의 일부로서 이용될 수 있다는 것을 알 수 있다. 이와 관련하여, 본 발명은 임의의 수의 저장 장치 또는 메모리를 갖는 임의의 컴퓨터 시스템 또는 임의의 수의 애플리케이션을 포함하고, 임의의 수의 저장 유닛 또는 볼륨(volume)을 통해 발생하는 프로세스를 포함할 수 있다. 본 발명의 실시예는 서버 컴퓨터 및 원격 또는 로컬 저장 장치를 갖는 네트워크 환경에서 이용되는 서버 컴퓨터 및 클라이언트 컴퓨터를 갖는 환경에 적용될 수 있다. 본 발명은 또한 프로그래밍 언어 기능, 해석 및 실행 능력을 갖는 독립형 컴퓨팅 장치에도 적용될 수 있다.
디맨드 이벤트를 위한 오브젝트 복제
도 2는 디자인 시간 이벤트 동안 나타나는, 디맨드 이벤트를 위한 오브젝트 복제를 위한 시스템(200)의 일례를 도시하는 블록도이다. 시스템(200)은 도 1에 도시된 컴퓨터(110)와 같은 하나 이상의 컴퓨터에 상주할 수 있다. 시스템(200)은 속성 집합(210), 속성 집합(210)과 통신하는 공유 오브젝트(220), 및 공유 오브젝 트(220)을 지시하는(예컨대, 이에 대해 알거나 관련된) 복제된 오브젝트 쉘(230, 240, 250)을 포함한다.
시스템(200)은 작업량 오브젝트 모델에 기초할 수 있다. 오브젝트 모델은 오브젝트 및 관계(relationship)의 수집으로서 정의된다. 오브젝트 각각은 오브젝트의 실행 행위를 관리하는 하나 이상의 속성과 연관된다. 오브젝트 모델은 일반적으로 디자인 시간 및 디맨드 시간의 2개의 상태를 포함한다.
시스템(200)은 디자인 시간동안 기술되는 애플리케이션이다. 디자인 시간은 디자인 이벤트가 발생하는 기간을 포함한다. 디자인 이벤트는 디맨드 이벤트가 아닌 임의의 이벤트이다. 디자인 이벤트는 시스템(200)의 알고리즘 또는 코딩을 편집하는 것을 포함한다. 디자인 이벤트는 또한 시스템(200)에 대한 알고리즘 또는 코드를 유지 또는 로딩하는 것을 포함한다. 디맨드 시간은 디맨드 이벤트가 발생하는 기간을 포함한다. 디맨드 이벤트는, 오브젝트가 개발되는 목적으로 이용되는 동안의 임의의 이벤트이다. 예컨대, 디맨드 이벤트는 애플리케이션의 오브젝트의 실행을 포함한다. 디맨드 이벤트는 또한 애플리케이션 또는 애플리케이션내의 오브젝트를 확인하는 것을 포함한다. 확인은 컴파일링과 유사하고, 애플리케이션을 실행하지 않고, 애플리케이션 또는 원하는 애플리케이션의 일부가 적절하게 실행되는 컨퍼밍(confirming)으로서 정의된다.
오브젝트는 기능을 수행하거나 그렇지 않으면 하나의 목적에 기여하는 다른 오브젝트를 포함할 수 있다. 각각의 오브젝트는 거대한 오브젝트내에서 수행되는 작업 아이템을 정의할 수 있다. 오브젝트는 예컨대, 파일을 복사, 파일을 다운로 드, 전자 메일을 송신, 데이터를 클리닝, 질문의 수행등을 하여, 애플리케이션의 작업을 수행할 수 있다. 공유 오브젝트(220)는 이러한 오브젝트일 수 있다. 공유 오브젝트(220)는 디자인 시간(및 전술한 바와 같이, 디맨드 시간)에 속성 수집(210)으로부터의 속성 또는 애트리뷰트(attribute)로 구성 또는 예시될 수 있다.
속성 집합(210)은 예컨대, 시스템(200)의 서버(도시되지 않음)상에 상주할 수 있다. 속성 집합(210)은 공유 오브젝트(220)와 같은 오브젝트를 예시하는데 이용되는 임의의 유형의 속성 또는 애트리뷰트를 포함할 수 있다. 예컨대, 공유 오브젝트(220)가 전자 메일(e-메일) 메시지를 송신하는 단계를 포함하면, 공유 오브젝트는, 구성 또는 예시될 때, 어드레스명, 수신지 어드레스, 서브젝트 및 메시지 텍스트등의 속성을 포함할 수 있다. 이러한 속성은 속성 집합(210)으로부터 구성되거가 예시된다. 당업자는, 공유 오브젝트(220)가 하나 이상의 속성 집합으로부터의 속성으로 구성 또는 예시된다는 것을 알 수 있다.
복제된 오브젝트 쉘(230, 240, 및 250)은 오브젝트의 "쉘"일 수 있고, 이것은 이들이 디자인 시간동안에는 구성되거나 예시되지 않는 오브젝트라는 것을 의미한다. 대신에, 복제된 오브젝트 쉘(230, 240, 및 250)은 공유 오브젝트(220)를 지시한다. 화살표(231, 241, 251)는 이러한 "지시(pointing)"를 나타낸다. 복제된 오브젝트 쉘(230, 240, 및 250)을 나타내는 화살표는 디맨드 시간에 공유 오브젝트(220)의 속성으로 구성 또는 예시된다. 즉, 디맨드 시간에, 복제된 오브젝트 쉘(230, 240, 및 250)은 물리적으로 생성될 수 있다. 디맨드 시간에, 복제된 오브젝트 쉘(230, 240, 및 250)은 독립적으로 기능할 수 있는 독립적 실행가능 오브젝트 가 된다.
복제된 오브젝트 쉘(230, 240, 및 250) 각각은 하나 이상의 속성 쉘(234, 244, 254)를 포함한다. 복제된 오브젝트 쉘(230, 240, 및 250)의 속성을 기술하는 속성 쉘(234, 244, 254)은 디자인 시간에는 구성 또는 예시되지 않는다. 예컨대, 복제된 오브젝트 쉘(230, 240, 및 250) 각각은, 구성되거나 예시될 때, e-메일 메시지를 송신할 수 있다. 그러나, 이러한 e-메일 복제된 오브젝트 쉘은, 디자인 시간에 e-메일을 송신하기 위한 임의의 속성을 포함하지 않을 수 있다. 하나 이상의 e-메일 오브젝트 쉘(230, 240, 및 250) 각각이 실행될 때, 복제된 오브젝트 쉘의 속성은 공유 오브젝트(220)의 속성으로 파퓰레이팅된다. 공유 오브젝트(220)는, (실행시) 더 이상 쉘이 아니고, 실행가능 오브젝트인, 복제된 오브젝트 쉘(230, 240, 및 250)의 실행에 필요한 속성의 모두를 제공한다.
디자인 시간 동안, 공유 오브젝트(220)의 코딩은, 예컨대, 편집되거나 유지된다. 사용자는 시스템(200)의 오브젝트(220, 230, 240 및 250)를 변경하길 원하게 된다. 사용자는, 단지 공유 오브젝트(220)를 편집하여 오브젝트(220, 230, 240 및 250)의 모두를 변경 또는 편집할 수 있다. 공유 오브젝트(220)에 수행되는 임의의 변경은 디맨드 이벤트 동안 복제된 오브젝트 쉘(230, 240, 및 250)에서 명백해질 수 있다.
부가적으로, 사용자는 공유 오브젝트(220) 및 복제된 오브젝트 쉘(230, 240, 및 250)을 사용자 인터페이스로부터 볼 수 있다. 사용자는 이것을 사용자 인터페이스로부터 선택하여 공유 오브젝트(220) 또는 속성 집합(210)을 편집할 수 있다. 사용자는 또한 임의의 복제된 오브젝트 쉘(230, 240, 및 250)을 선택하여 공유 오브젝트(220) 또는 속성 수집(210)을 편집할 수 있다. 복제된 오브젝트 쉘(230, 240 및 250)을 선택할 때, 사용자는 실제로 공유 오브젝트(220) 또는 속성 집합(210)을 개방한다. 다음에, 사용자는 공유 오브젝트(220) 또는 속성 집합(210)을 편집할 수 있다. 사용자는 그 또는 그녀가 공유 오브젝트를 편집한다는 것 조차 알 수 없으며, 이러한 편집이 복제된 오브젝트에 적용된다고 생각할 수 있다. 이를 유추하여, 이것은, 프로그램이 실행되도록 하고 문서가 사용자에게 나타나도록 하는 컴퓨터 데스크탑상의 "숏컷" 아이콘을 선택하는 것과 유사한 것으로 간주될 수 있다. 사용자는 이러한 문서를 편집할 수 있고, 이러한 편집은, 문서가 이러한 숏컷을 이용하여 액세스되었음에도 문서 자체상에서 수행된다.
도 3은 오브젝트의 디맨드 시간 복제를 위한 시스템(300)의 일례를 도시하는 블록도이다. 시스템(300)은, 디맨드 시간 대 디자인 시간으로 기술된 것을 제외하고는, 도 2에 도시된 시스템(200)과 동일한 시스템이 될 수 있다. 시스템(300)은 도 1에 도시된 컴퓨터(110)와 같은 하나 이상의 컴퓨터에 상주할 수 있다. 시스템(300)은 속성 집합(310), 속성 집합(310)과 통신하는 공유 오브젝트(320) 및 공유 오브젝트(320)과 통신하는 복제 오브젝트(330, 340 및 350)를 포함한다.
시스템(300)은 디맨드 시간에 기술되는 애플리케이션이다. 애플리케이션은 오브젝트 모델에 기초할 수 있다. 전술한 바와 같이, 디맨드 시간은 오브젝트가 생성되는 목적을 위하여 이용되는 기간을 포함할 수 있다. 이러한 디맨드 시간은 오브젝트의 실행 및 확인을 포함한다.
디맨드 시간에, 공유 오브젝트(320)는 속성 집합(310)을 이용하여 구성 또는 예시된다. 속성 집합(310)은 실질적으로 속성 집합(210)과 유사하다. 속성 집합(310)은 공유 오브젝트(320)과 같은 오브젝트를 예시 또는 구성하는데 이용되는 임의의 유형의 속성 또는 애트리뷰트를 포함할 수 있다. 예컨대, 공유 오브젝트(320)가 e-메일 메시지를 송신하는 단계를 포함하면, 다음에 공유 오브젝트(320)가, 구성되거나 예시될 때, 어드레스명, 수신지 어드레스, 서브젝트, 및 메시지 텍스트등의 속성을 포함할 수 있다.
또한, 디맨드 시간에, 하나 이상의 복제된 오브젝트 쉘(230, 240 및 250)이 공유 오브젝트(320)의 속성을 이용하여 구성 또는 예시되고, 복제된 오브젝트(330, 340 및 350)이 된다. 대안적으로, 디맨드 시간에, 하나 이상의 복제된 오브젝트 쉘(230, 240 및 250)이 속성 집합(310)의 속성을 이용하여 구성 또는 예시되고, 복제된 오브젝트(330, 340, 및 350)이 된다. 복제된 오브젝트(330, 340, 및 350)은 다음에, 공유 오브젝트(320)의 속성(334, 344 및 354)를 포함한다. 이러한 구성 또는 예시는 사용자가 볼 수 없다. 예컨대, 복제된 오브젝트(330, 340, 및 350)각각은, 공유 오브젝트(320)와 같이, 각각의 특정 이벤트가 발생할 때, e-메일 메시지를 송신한다. 구성되거나 예시된 복제된 오브젝트(330, 340, 및 350)는 어드레스명, 수신지 어드레스, 서브젝트, 및 메시지 텍스트등의 속성을 포함할 수 있다. 복제된 오브젝트(330, 340, 및 350)의 하나 이상이 실행될 때, 사용자는 복제된 오브젝트(330, 340, 및 350) 또는 공유 오브젝트(320) 중 하나에 의해 e-메일 메시지가 송신되었는지 여부를 알 수 없다.
본 발명의 일 실시예에서, 공유 오브젝트(320) 및 구성되거나 예시된 복제된 오브젝트(330, 340 및 350)는 동일한 속성 및 동일한 방식으로 실행될 수 있다. e-메일 예에 계속하여, 공유 오브젝트(320) 및 구성되거나 예시된 복제된 오브젝트(330, 340 및 350) 모두는 동일한 어드레스명으로부터 동일한 수신시로 동일한 서브젝트를 갖는 동일한 메시지를 송신한다.
본 발명의 대안적인 실시예에서, 복제된 오브젝트(330, 340 및 350)는 두개로 나누어진다. 디자인 시간으로부터의 복제된 오브젝트 쉘(230, 240, 및 250)은 디맨드 시간에 구성 또는 예시되어, 복제된 오브젝트(330, 340 및 350)이 된다. 그러나, 다음에 다른 하나로부터 및 공유 오브젝트(320)로부터 몇몇 측면에서 복제된 오브젝트(330, 340 및 350)를 상이하게 하는 것이 사용자에게는 중요하다. 즉, 사용자는 동일한 수신지로 동일한 어드레스명으로 송신되는 동일한 서브젝트를 갖는 동일한 메시지를 원치 않게 된다. 사용자는 복제된 오브젝트의 하나에 대하여 상이하게 되는 메시내의 헤더를 원하거나, 사람 X, 다른 사람 Y, 및 다른 사람 Z에 대한 메시지 중 하나를 원하게 된다. 복제된 오브젝트의 이러한 수정은 디맨드 시간에 동적으로 구성될 수 있다. 이것은 속성 표현내의 변수를 변경하여 완료될 수 있다. 이러한 변경은 임의의 오브젝트에 의해 완료될 수 있다. 2개로 나누어진 예시는, 복제된 오브젝트(330, 340 및 350)에 변경을 허용하고, 복제된 오브젝트(330, 340 및 350)에 적용되는 디자인 시간동안 공유 오브젝트(320)의 편집을 허용하여 유연성을 부가할 수 있다.
디맨드 시간이 완료될 때, 구성되거나, 예시된 복제된 오브젝트(330, 340 및 350)는 디자인 시간 상태로 복귀할 수 있다. 즉, 복제된 오브젝트(330, 340 및 350)는 도 2에 도시된 복제된 오브젝트 쉘(230, 240 및 250)이 다시 될 수 있다. 전과 같이, 공유 오브젝트(320)는 디자인 시간동안 구성 또는 예시될 수 있다. 이러한 방식에서, 사용자가 공유 오브젝트(320)를 편집하면, 공유 오브젝트(320)의 속성을 통해 구성 또는 예시되는 모든 복제된 오브젝트(330, 340 및 350)은 디맨드 시간에 따라, 공유 오브젝트(320)에 대해 수행되는 변화를 반영한다.
도 4는 복제된 오브젝트상에서의 디자인 시간 이벤트를 수행하기 위한 방법(400)에 대한 순서도를 도시한다. 이러한 디자인 시간 이벤트는 복제된 오브젝트의 편집일 수 있다. 다른 디자인 시간 이벤트는 복제된 오브젝트를 지속하는 것일 수 있다. 단계(405)에서, 복제된 오브젝트 B와 같은 복제된 오브젝트는 디자인 시간 이벤트 동안 선택될 수 있다. 복제된 오브젝트 B는 공유 오브젝트 A의 복제물 일 수 있다. 즉, 복제된 오브젝트 B는 공유 오브젝트 A에 대한 "지시" 또는 연관일 수 있지만, 공유 오브젝트 A의 속성으로 구성 또는 예시되지는 않는다. 복제된 오브젝트 B는 사용자 인터페이스내의 마우스로 복제된 오브젝트 B상에서 "클릭"등의 임의의 적절한 방법으로 선택될 수 있다. 선택에 따라, 사용자는 단계(410)에서, 공유 오브젝트 A로 자동적으로 지시할 수 있다. 이것은 사용자의 인식 없이 발생한다. 즉, 사용자는 복제된 오브젝트 B상에서 클릭하고, 사용자가 가정하는 것으로 나타나는 알고리즘을 구현하기 위한 코딩 또는 다른 방식은 복제된 오브젝트 B에 대한 코딩이다. 실제로, 사용자는 코딩을 볼 수 있고, 공유 오브젝트 A를 위한 알고리즘을 구현하기 위한 몇몇 다른 방식도 볼 수 있다. 단계(415)에서, 디 자인 시간 이벤트는 공유 오브젝트 A상에서 수행될 수 있다. 다시, 사용자는 디자인 시간 이벤트가, 실제로, 이벤트가 공유 오브젝트 A에 적용될 때, 복제된 오브젝트 B상에서 수행되는 것을 믿게 된다. 디자인 시간 이벤트의 완료에 따라, 공유 오브젝트 A는 단계(420)에서 폐쇄된다. 요컨대, 사용자는, 디자인 시간 이벤트가 공유 오브젝트 A에 대해 적용되고, 복제된 오브젝트 B에는 적용되지 않는다는 것을 알 수 없다. 복제된 오브젝트 B가 디맨드 시간에 있을 때, 복제된 오브젝트 B는 공유된 오브젝트 A에 적용된 디자인 시간 이벤트에 따라 동작한다. 이런 식으로, 본 방법은 여러 로케이션에 위치한 많은 수의 유사한 오브젝트들을 포함하는 애플리케이션상에서 노동 집약적 유지 관리를 감소시키는데 도움을 준다. 예컨대, 복제된 오브젝트 B를 편집하는 것은 공유 오브젝트 A를 실제로 편집하는 결과를 가져온다. 공유 오브젝트 B를 편집하는 것은 공유 오브젝트 A(따라서 이의 복제가 됨)를 나타내는 애플리케이션을 통해 위치하는 많은 수의 다른 오브젝트를 편집하는 결과를 가져온다.
도 5는 디맨드 시간 이벤트를 복제된 오브젝트에 적용하는 방법(500)을 도시한다. 복제된 오브젝트는 복제물인 복제된 오브젝트 B일 수 있거나, 또는 공유 오브젝트 A의 속성을 공유한다. 단계 505에서, 복제된 오브젝트 B 디맨드 시간 이벤트는 시작한다. 복제된 오브젝트 B는 공유 오브젝트 A의 속성으로 단계 501에서 구성 또는 예시된다. 대안적으로, 전술한 바와 같이, 복제된 오브젝트 B는 도 3에 관해서 설명된 속성 수집(310)과 같은 속성 수집의 속성으로 구성 또는 예시된다. 단계 515에서, 복제된 오브젝트 B는 그 디맨드 시간 이벤트를 개시한다. 단계 520 에서, 디맨드 시간 이벤트는 완료된다. 결국, 단계 525에서, 복제된 오브젝트 B는 그 비 디맨드-시간 상태(non-demand-time state)로 복귀한다. 즉, 복제된 오브젝트 B는 더이상 구성 또는 예시되지 않고, 공유 오브젝트 A를 나타내는 상태로 복귀한다. 이런 식으로, 공유 오브젝트 A가 편집된다면, 복제된 오브젝트 B는 그 다음 디맨드 시간 이벤트에 따라 자동적으로 이들 편집을 반영한다.
이하 개시된 여러 기술은 하드웨어 또는 소프트웨어, 적당한 경우 이들의 조합과 연결되어 구현된다. 따라서, 본 발명의 방법 및 장치, 또는 이들의 임의의 속성 또는 부분은 플로피 디스크, CD-ROM, 하드 드라이버, 또는 임의의 다른 기계 판독가능한 저장 매체와 같은 유형 매체에서 구현되는 프로그램 코드(즉, 지시)의 형태를 취하며, 여기서 프로그램 코드가 컴퓨터와 같은 기계에 의해 로딩되고 실행될 때, 기계는 본 발명을 실행하기 위한 장치가 된다. 프로그램가능한 컴퓨터상에서의 프로그램 코드 실행의 경우에, 컴퓨팅 디바이스는 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 소자들), 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스를 포함할 것이다. 예를 들면, 데이터 프로세싱 API 등의 이용을 통해, 본 발명의 특정 도메인 프로그래밍 모델 양상의 생성 및/또는 수행을 활용할 수도 있는 하나 이상의 프로그램들은 컴퓨터 시스템과 통신하는 하이 레벨의 절차 또는 오브젝트 기반의 프로그래밍 언어로 수행되는 것이 바람직하다. 그러나, 프로그램은 원하면 어셈블리 또는 기계어로 구현될 수 있다. 어느 경우에나, 언어는 컴파일된 또는 해석된 언어일 수 있고, 하드웨어 구성과 조합될 수 있다.
본 발명이 다양한 도면의 양호한 실시예에 따라 기술되었지만, 본 발명을 벗어남이 없이 본 발명의 동일한 기능을 수행하기 위한 다른 실시예, 변형 및 부가례가 만들어지고 이용될 수 있다는 것은 명백하다. 예컨대, 본 발명의 실시예는 편집 또는 지속과 같은 어떤 디자인 시간 이벤트에 따라 기술되었다. 임의의 디자인 시간 이벤트는 본 발명의 실시예를 동일하게 형성할 수 있다. 이와 같이, 디맨드 시간 이벤트는 실행 및 확인으로서 기술되었지만, 임의의 다른 디맨드 시간 이벤트도 본 발명의 범주에 포함된다. 본 발명의 다른 실시예는 임의의 수의 복제된 오브젝트 및 공유 오브젝트를 포함할 수 있다. 본 발명은 도시되고 예시된 실시예에 한정되는 것은 아니다. 따라서, 본 발명은 일 실시예로 제한되어서는 안되며, 부가된 특허청구범위에 따른 범위 및 범주내에서 해석되어야 한다.
본 발명에 의하면, 사용자가 하나의 오브젝트의 속성을 구성할 수 있도록 하고, 이러한 속성이 여러 유사한 오브젝트간에 자동적으로 공유되도록 하며, 복제된 오브젝트는 이들이 런타임에서만 구성될 수 있으므로 편집을 요구하지 않고, 따라서 공유 오브젝트의 속성으로 자동적으로 구성될 수 있다. 부가적으로, 오브젝트가 크거나 복잡하면, 디자인 시간 동안 오브젝트 중 하나만을 구성 또는 예시하여 메모리를 절감하는데 용이하게 된다.

Claims (18)

  1. 오브젝트의 디맨드 이벤트 복제(demand event cloning)를 위한 방법에 있어서,
    오브젝트 쉘(shell)상에서 디맨드 이벤트를 개시하는 단계 - 상기 오브젝트 쉘은 공유 오브젝트와 속성 수집(property collection) 중의 적어도 하나를 지시함 -;
    상기 공유 오브젝트와 상기 속성 수집 중의 적어도 하나로부터의 속성으로 상기 오브젝트 쉘을 구성하여 복제된 오브젝트를 생성하는 단계; 및
    디맨드 이벤트를 상기 복제된 오브젝트에 적용하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 디맨드 이벤트의 완료에 따라, 상기 복제된 오브젝트를 복제된 오브젝트 쉘에 반환하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    하나의 속성의 하나의 속성 표현으로 변수를 변경하는 단계를 더 포함하는 방법.
  4. 복제된 오브젝트상에서 디자인 이벤트(design event)를 수행하기 위한 방법 에 있어서,
    공유 오브젝트와 속성 수집 중 적어도 하나를 지시하는 복제된 오브젝트 쉘을 생성하는 단계;
    상기 복제된 오브젝트 쉘의 선택을 수신하는 단계;
    상기 공유 오브젝트와 상기 속성 수집 중 적어도 하나를 나타내는 단계;
    디자인 이벤트를 수신하는 단계; 및
    상기 공유 오브젝트와 상기 속성 수집 중 적어도 하나에 상기 디자인 이벤트를 적용하는 단계를 포함하는 방법.
  5. 오브젝트-지향(object-oriented) 애플리케이션에서 오브젝트를 복제하기 위한 시스템에 있어서,
    관련된 하나 이상의 속성을 갖는 공유 오브젝트; 및
    상기 공유 오브젝트와 연관된 복제된 오브젝트를 포함하고,
    상기 복제된 오브젝트는,
    상기 복제된 오브젝트상에서 디맨드 이벤트의 개시에 따른 상기 속성으로 구성되고,
    상기 복제된 오브젝트상에서 개시된 디자인 이벤트 동안 상기 속성을 지시하는 시스템.
  6. 제5항에 있어서,
    상기 속성을 포함하는 속성 수집을 더 포함하고,
    상기 디맨드 이벤트의 개시에 따라, 상기 복제된 오브젝트는 상기 속성 수집의 상기 속성으로 구성되는 시스템.
  7. 제6항에 있어서,
    상기 복제된 오브젝트상에서 개시되는 상기 디자인 이벤트는 상기 속성 수집에 적용되는 시스템.
  8. 제6항에 있어서,
    상기 공유 오브젝트는, 상기 공유 오브젝트상에서의 디자인 이벤트와 디맨드 이벤트 중 적어도 하나의 개시에 따른 상기 속성 수집의 상기 속성으로 구성되는 시스템.
  9. 제5항에 있어서,
    상기 복제된 오브젝트상에서 개시된 상기 디자인 이벤트는 상기 공유 오브젝트에 적용되는 시스템.
  10. 제5항에 있어서,
    상기 디자인 이벤트는 편집 및 지속(persist) 중 적어도 하나를 포함하는 시스템.
  11. 제5항에 있어서,
    상기 디맨드 이벤트는 실행 및 확인(validating) 중 적어도 하나를 포함하는 시스템.
  12. 제5항에 있어서,
    상기 복제된 오브젝트는 상기 복제된 오브젝트상에서의 디맨드 이벤트의 완료에 따라 구성하지 않는(unconfigure) 시스템.
  13. 제5항에 있어서,
    상기 복제된 오브젝트상에서의 상기 디맨드 이벤트의 개시에 따라, 속성 표현내의 변수가 변경되는 시스템.
  14. 단계를 수행하기 위한 컴퓨터-실행가능 명령을 갖는 컴퓨터-판독가능 매체에 있어서,
    오브젝트 쉘상에서 디맨드 이벤트를 개시하는 단계 - 상기 오브젝트 쉘은 공유 오브젝트와 속성 수집 중의 적어도 하나를 지시함 -; 및
    상기 공유 오브젝트와 상기 속성 수집 중의 적어도 하나로부터의 속성으로 상기 오브젝트 쉘을 구성하여 복제된 오브젝트를 생성하는 단계를 포함하는 컴퓨터 -판독가능 매체.
  15. 제14항에 있어서,
    디맨드 이벤트를 상기 복제된 오브젝트에 적용하기 위한 단계를 더 포함하는 컴퓨터-판독가능 매체.
  16. 제15항에 있어서,
    상기 디맨드 이벤트의 완료에 따라, 상기 복제된 오브젝트를 복제된 오브젝트 쉘에 반환하는 단계를 더 포함하는 컴퓨터-판독가능 매체.
  17. 제14항에 있어서,
    하나의 속성의 하나의 속성 표현으로 변수를 변경하는 단계를 더 포함하는 컴퓨터-판독가능 매체.
  18. 단계를 수행하기 위한 컴퓨터-실행가능 명령을 갖는 컴퓨터-판독가능 매체에 있어서,
    상기 복제된 오브젝트 셀의 선택을 수신하는 단계 - 상기 복제된 오브젝트 쉘은 공유 오브젝트와 속성 수집 중 적어도 하나를 지시함 -;
    상기 공유 오브젝트와 상기 속성 수집 중 적어도 하나를 나타내는 단계;
    디자인 이벤트를 수신하는 단계; 및
    상기 공유 오브젝트와 상기 속성 수집 중 적어도 하나에 상기 디자인 이벤트 를 적용하는 단계를 포함하는 컴퓨터-판독가능 매체.
KR1020050074833A 2004-10-05 2005-08-16 디맨드 이벤트를 위한 오브젝트 복제 KR20060050489A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/958,849 US20060090164A1 (en) 2004-10-05 2004-10-05 Object cloning for demand events
US10/958,849 2004-10-05

Publications (1)

Publication Number Publication Date
KR20060050489A true KR20060050489A (ko) 2006-05-19

Family

ID=36129854

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050074833A KR20060050489A (ko) 2004-10-05 2005-08-16 디맨드 이벤트를 위한 오브젝트 복제

Country Status (5)

Country Link
US (1) US20060090164A1 (ko)
EP (1) EP1669859A3 (ko)
JP (1) JP2006107483A (ko)
KR (1) KR20060050489A (ko)
CN (1) CN100470466C (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146532B2 (en) * 2001-02-05 2006-12-05 Affiniti, Inc. Persistent session and data in transparently distributed objects
US7107081B1 (en) 2001-10-18 2006-09-12 Iwao Fujisaki Communication device
US8090402B1 (en) 2003-09-26 2012-01-03 Iwao Fujisaki Communication device
US7917167B1 (en) 2003-11-22 2011-03-29 Iwao Fujisaki Communication device
CA2550734C (en) * 2003-12-22 2015-06-30 Donaldson Company, Inc. Filter element comprising a seal arrangement and method for making the same
JP4144885B2 (ja) * 2004-12-28 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーション・オブジェクトの再利用方法
US8340726B1 (en) 2008-06-30 2012-12-25 Iwao Fujisaki Communication device
US20100057787A1 (en) * 2008-08-28 2010-03-04 International Business Machines Corporation Method, system, and computer program product for cloning of distributed and stateful systems
US9760380B2 (en) 2012-03-14 2017-09-12 Microsoft Technology Licensing, Llc Using grammar to serialize and de-serialize objects
KR101960305B1 (ko) * 2012-07-04 2019-03-20 엘지전자 주식회사 터치 스크린을 포함하는 디스플레이 장치 및 그 제어 방법
KR102058990B1 (ko) 2012-09-19 2019-12-24 엘지전자 주식회사 모바일 디바이스 및 그 제어 방법
US10325032B2 (en) * 2014-02-19 2019-06-18 Snowflake Inc. Resource provisioning systems and methods
CN103929497B (zh) * 2014-04-30 2017-09-15 天脉聚源(北京)传媒科技有限公司 一种实时推送消息的方法及服务器
CN107908727B (zh) * 2017-11-14 2021-06-29 郑州云海信息技术有限公司 存储对象克隆方法、装置、设备及计算机可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314558B1 (en) * 1996-08-27 2001-11-06 Compuware Corporation Byte code instrumentation
US6401101B1 (en) * 1998-06-01 2002-06-04 Trident Systems, Inc. Method, server/computer and data structure for implementation of complex objects in an object-oriented database
US8640090B2 (en) * 2003-11-10 2014-01-28 Sap Ag Active and modifiable data dictionary
US7925729B2 (en) * 2004-12-07 2011-04-12 Cisco Technology, Inc. Network management

Also Published As

Publication number Publication date
EP1669859A3 (en) 2008-12-31
CN100470466C (zh) 2009-03-18
CN1758219A (zh) 2006-04-12
JP2006107483A (ja) 2006-04-20
EP1669859A2 (en) 2006-06-14
US20060090164A1 (en) 2006-04-27

Similar Documents

Publication Publication Date Title
KR20060050489A (ko) 디맨드 이벤트를 위한 오브젝트 복제
JP4643915B2 (ja) 複製ファイルの複数のファイル状態を管理する方法
RU2398266C2 (ru) Использование механизма привязки данных для выполнения привязки команд
US8396846B2 (en) Database trigger modification system and method
JP4812337B2 (ja) フォームタイプを使用してフォームを生成する方法および装置
US20140052840A1 (en) Versatile application configuration for deployable computing environments
US7870536B2 (en) Computer implemented method and system for sharing resources among hierarchical containers of resources
US8510712B1 (en) Testing in-container software objects
US9251222B2 (en) Abstracted dynamic report definition generation for use within information technology infrastructure
KR20040077501A (ko) 이 메일 첨부물들에 대해 서버 기반 협력을 초기화하는 방법
EP1428115A2 (en) General and reusable components for defining net-centric application program architectures
KR20060101221A (ko) 풍부한 데이터 바인딩된 애플리케이션
US9965257B2 (en) Automatic configuration of project system from project capabilities
US8543975B2 (en) Behavior-first event programming model
JP5938031B2 (ja) プラットフォーム非依存プレゼンテーションの構成
WO2018103223A1 (zh) 一种操作数据库的方法及装置
US20060041870A1 (en) Systems and methods for varying software build properties using primary and supplemental build files
WO2023278484A1 (en) Method and apparatus for implementing changes to a file system that is emulated with an object storage system
Sochat et al. The flux operator
CN112363700A (zh) 智能合约的协同创建方法、装置、计算机设备和存储介质
US8615730B2 (en) Modeled types-attributes, aliases and context-awareness
US7493351B2 (en) Rapid integration mechanism for directory based applications
JP2021515301A (ja) システムにおけるガベージ・コレクション処理中の障害からのリカバリのための方法、システムにおけるガベージ・コレクション処理中の障害からのリカバリのためのコンピュータ・プログラム、および装置
US20090006942A1 (en) Embedded markup resources
US10545742B2 (en) Annotation-driven framework for generating state machine updates

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid