KR20110021719A - 객체 지향 환경에서 다중 트랜잭션 기술을 사용해서 객체들을 복사하는 방법 및 장치 - Google Patents

객체 지향 환경에서 다중 트랜잭션 기술을 사용해서 객체들을 복사하는 방법 및 장치 Download PDF

Info

Publication number
KR20110021719A
KR20110021719A KR1020107022060A KR20107022060A KR20110021719A KR 20110021719 A KR20110021719 A KR 20110021719A KR 1020107022060 A KR1020107022060 A KR 1020107022060A KR 20107022060 A KR20107022060 A KR 20107022060A KR 20110021719 A KR20110021719 A KR 20110021719A
Authority
KR
South Korea
Prior art keywords
objects
predecessor
copy
group
database
Prior art date
Application number
KR1020107022060A
Other languages
English (en)
Other versions
KR101320221B1 (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 KR20110021719A publication Critical patent/KR20110021719A/ko
Application granted granted Critical
Publication of KR101320221B1 publication Critical patent/KR101320221B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Light Sources And Details Of Projection-Printing Devices (AREA)
  • Cleaning In Electrography (AREA)
  • Non-Silver Salt Photosensitive Materials And Non-Silver Salt Photography (AREA)

Abstract

객체 지향 엔터프라이즈 엔지니어링 시스템(an object-oriented enterprise engineering system)에서 빔들 및 열들을 나타내는 객체들 등의 다수의 객체들은 특정 기준들에 따라 객체들을 다수의 순서화된 소규모 복사 그룹들로 분할하고 각 그룹의 객체들을 원자적 오퍼레이션(atomic operation)으로서 복사함으로써 모델 데이터베이스에서 복사될 수 있다. 복사될 객체들은 순서화된 그룹들로 조직화되고, 그룹들은 순서대로 복사되어서, 소정의 객체의 모든 전임자들(predecessros)이 소정의 객체 전에 또는 소정의 객체와 동일한 소규모 오퍼레이션에서 데이터베이스에 복사된다. 모든 소규모 복사 오퍼레이션들이 완료되기 전에 대규모 복사 오퍼레이션이 비정상적으로 종료되면, 모델 데이터베이스는 결국 일관된 상태로 남겨지고, 복사 오퍼레이션은 인터럽션 지점으로부터 재개될 수 있다. 또한, 복사될 수 있는 객체들의 수는 시스템에서 유효한 메모리의 양에 의해 제약을 받지 않는다.

Description

객체 지향 환경에서 다중 트랜잭션 기술을 사용해서 객체들을 복사하는 방법 및 장치{METHOD AND APPARATUS FOR COPYING OBJECTS IN AN OBJECT-ORIENTED ENVIRONMENT USING A MULTIPLE-TRANSACTION TECHNIQUE}
본 출원은, 모든 면에서, 전체 콘텐츠가 본 명세서에 참조용으로 인용된 "Method and Apparatus for Copying Objects in an Object-Oriented Environment Using a Multiple-Transaction Technique"라는 제목으로 2008년 6월 3일에 출원된 미국 임시 특허 출원 번호 제61/058,531호의 이익을 주장한다.
본 발명은 CAD(computer-aided design) 및 CAM(computer-aided manufacturing) 소프트웨어 시스템에 관한 것으로, 특히, 상기 시스템에 의해 사용되는 데이터베이스에서 다수의 객체들 및 관계들을 복사하는 방법들 및 장치들에 관한 것이다.
종종 SIM(spatial information management) 시스템이라고도 하는 엔터프라이즈 엔지니어링 시스템들(enterprise engineering systems)은 2D 및 3D 모델링 및 가시화(visualization)을 용이하게 해주는 CAD 시스템들이다. 이러한 시스템들은 디자인, 건설, 정유 공장 및 발전소 등의 공단의 오퍼레이션 및 변경 뿐만 아니라 고층 빌딩, 배, 광업 및 다른 재료 처리 설비 등의 다른 대규모 복합 구조물에서 사용된다. GUI(graphical user interface)들과 함께, 엔터프라이즈 엔지니어링 시스템들은 디자이너가 구조적, 배관(piping), 전기적, HVAC(heating, ventilating and air conditioning) 및 다른 복합 시스템들을 레이아웃할 수 있게 하며, 구성 또는 오퍼레이션의 각종 단계들에서 프로젝트의 선택된 일부 또는 전부를 가시화할 수 있게 한다.
대부분의 현대 엔터프라이즈 엔지니어링 시스템은 객체 지향 패러다임들을 이용하는데, 여기서, "객체들"이라고 하는 소프트웨어 구성물은 빔, 벽, 바닥, 파이프, 밸브, 도관, 스위치, 팬, 덕트 등의 현실 세계의 아이템들을 나타낸다. 객체들은 통상 각 객체에 의해 표현된 특정 아이템에 대한 정보(아이템 표현에 적합한 길이, 폭, 색, 용량 등) 뿐만 아니라, 표현된 현실 세계의 아이템들의 타입을 식별하는 정보를 저장하는 데이터 구조들(데이터 요소들로 순서화된 그룹들)로서 소프트웨어로 구현된다.
대부분의 객체들은 다른 객체들과 관련된다. 예를 들어, 파이프가 빔에 부착되면, 파이프를 나타내는 객체는 대응 빔 객체와 관련된다. 관계들은 또한 통상 데이터 구조들로서 표현된다. 예를 들어, 파이프 객체와 빔 객체 간의 관계는 파이프의 빔에 대한 물리적 부착을 식별하는 정보를 포함할 수 있다. 또한, 관계는 다름이 아니라 빔이 파이프를 지탱함을 나타내는 정보를 포함할 수도 있다.
객체들 간의 관계들은 순서화된 개념들이다. 관계는 객체들이 모델에 추가되는 논리적 순서를 나타낼 수도 있다. 예를 들어, 발전소를 모델링할 때, 디자이너는 통상 열들(columns)을 추가하고 열들을 희망 좌표들에 배치한 후, 열들 아래에서 기초(footings)를 생성한다. 기초 객체들(footing objects)은 열 객체와 관련되어서, 예를 들어, 열이 차후에 이동되거나 웨이트 변경을 감내해야만 한다면, 엔터프라이즈 엔지니어링 시스템들은 새로운 웨이트를 감내하기 위해 필요한 크기로 자동으로 크기를 변경시키거나 자동으로 기초를 이동시킨다.
본 일례에서, 빔 객체 및 기초 객체는 부모-자식 관계를 갖는다. 여기서, 빔은 기초 객체의 "부모"라고도 하며, 기초는 빔 객체의 "자식"이라고 하는데, 그 이유는 기초가 빔의 특성에 좌우되기 때문이다. 기초의 특성 뿐만 아니라 빔의 자식들인 임의의 다른 객체들의 특성들은 빔 특성이 변경될 때마다 엔터프라이즈 엔지니어링 시스템에 의해 자동으로 재계산된다.
다수의 객체들은 다른 객체들로 이루어진다. 예를 들어, 보일러는 버너, 일련의 파이프들, 및 파이프에서 유체가 흐르게 하는 펌프를 포함할 수 있다. 이러한 경우, 개별 객체들은 보일러, 버너, 파이프 및 펌프를 나타내고, 보일러 객체와 다른 객체들 간의 관계들은 보일러가 다른 아이템들을 포함하거나 다른 아이템들로 구성되며 다른 아이템들이 보일러의 부품들임을 나타낸다. 객체들 간의 관계들을 나타내는 데이터 구조들은 대응 객체 데이터 구조들에 대한 포인터들 또는 기준들을 포함할 수 있다.
다수의 현대 엔터프라이즈 엔지니어링 시스템들은 객체들 및 객체들 간의 관계들을 저장하기 위해 관계 데이터베이스(RDB; relational database) 또는 다른 데이터베이스 관리 시스템(DBMS; database management system)을 이용한다. 이러한 시스템들에서, RDB 레코드들은 객체 및 관계 데이터 구조들을 저장하는데 사용될 수 있다.
엔터프라이즈 엔지니어링 시스템의 특별히 유용한 한가지 특징은, 모델의 하나 이상의 객체들을 대응 관계들과 함께 복사하고, 복사본들을 모델의 다른 부분에 또는 다른 모델에 붙이는 기능이다. 예를 들어, 고층 사무실 빌딩 모델에서, 소정의 층의 수도관(plumbing)을 나타내는 객체들 및 관계들이 복사되어 다른 층들에 붙여질 수 있다. 복사 오퍼레이션은 복사되는 객체들과 관계들을 나타내는 데이터 구조들의 복사본들을 생성하는 것을 포함한다. 복사 오퍼레이션은, 또한, 새롭게 생성된 데이터 구조들의 값들을 조정해서, 새롭게 생성된 객체들에게 유일한 식별자들을 부여하고, 새로운 객체들과 객체들이 붙여질 모델의 부분(층 등) 간의 관계들을 설정한다.
모델의 데이터베이스에서 객체들 및 관계들의 타당성(validity)을 유지하기 위해, 복사 오퍼레이션은 "원자적"이어야만 한다. 즉, 전체 복사 오퍼레이션은 에러 없이 완료되거나 - 데이터베이스에서 새롭게 생성된 객체들을 저장("위탁(committing)")하는 것을 포함함 - , 또는, 어떠한 복사 오퍼레이션도 수행되지 않으며 어떠한 새로운 객체도 데이터베이스에 저장되지 않는다. 원자적이지 않은(non-atomic) 복사 오퍼레이션이 시스템 고장("크래시(crash)") 또는 오류가 있는 데이터 구조를 복사하려는 시도 등에 의해 비정상적으로 종료되면, 복사 오퍼레이션은 부분적으로만 완료되고, 소정의 부모 객체들 또는 부모-자식 관계들은 결과 모델로부터 손실될 수 있어서, 모델의 가치를 심각하게 손상시키게 된다. 손실 객체들 또는 관계들을 갖는 데이터베이스는 "무효하다(invalid)"거나 또는 "일관성이 없다(inconsistent)"고 한다.
따라서, 원자성(atomicity)을 보증하기 위해, 엔터프라이즈 엔지니어링 시스템들은 복사 오퍼레이션들을 3 스텝들로 수행한다. 제1 스텝에서, 복사될 객체들 및 관계들을 나타내는 데이터 구조들은 모두 메모리로 이동되고 새롭게 생성된 모든 객체들을 나타내는 데이터 구조들은 메모리에서 생성된다. 그 후, 제2 스텝에서, 새롭게 생성된 데이터 구조들에서 필요한 값 조정들이 모두 데이터 구조들이 메모리에 있는 동안 수행된다. 제2 스텝은 새롭게 생성된 객체들 간의 모든 관계들과 새롭게 생성된 객체들과 기존 객체들 간의 모든 관계들을 설정하는 것을 포함한다. 그 후, 제3 스텝에서, 새로운 객체들 및 관계들을 나타내는 새롭게 생성된 데이터 구조들은 데이터베이스에 위탁된다. 따라서, 데이터베이스는, 임의의 중간 단계가 아니라, 임의의 복사 오퍼레이션이 수행되기 전에 또는 전체 복사 오퍼레이션이 완료된 후에 모델을 반영한다. 원자적 오퍼레이션은 "트랜잭션(transactions)"이라고도 한다.
다수의 공단 모델들은 아주 많은 수의 객체들 및 관계들을 포함하여, 엔터프라이즈 엔지니어링 시스템에 문제점을 부가한다. 이렇게 아주 많은 수의 객체들 및 관계들을 복사하는 것은, 시스템의 메모리 용량을 초과할 수도 있다. 주지된 바와 같이, 시스템이 메모리는 복사될 객체들 및 관계들을 나타내는 모든 데이터 구조들뿐 만 아니라 상기 데이터 구조들의 복사본들을 저장할 정도로 커야만 한다. 시스템이 주어진 복사 오퍼레이션에 충분한 메모리를 갖더라도, 다수의 객체들 및 관계들을 복사하는데는 상당한 시간, 때때로 몇 시간이 걸릴 수 있다. 비정상적으로 종료하는 긴 복사 오퍼레이션은 부분적인 복사를 원래로 되돌리도록 "롤 백(rolled back)"되어야만 하고, 그 후, 복사 오퍼레이션은 처음부터 다시 시작될 수도 있으며, 이는 모두 귀중한 사용자 및 컴퓨터 시간을 낭비한다.
본 발명의 일 실시예는 객체 지향 엔터프라이즈 엔지니어링 시스템 내에서 표시된 복수의 전임 및 후임 객체들(predecessor and successor objects)을 복사하기 위한 컴퓨터화된 방법을 제공한다. 본 시스템에서, 각 후임 객체는 전임 객체와 전임 관계(predecessor relationship)를 갖는다. 입력은, 복사될 복수의 객체들을 선택하는 사용자로부터 수용된다. 각각의 선택된 객체에 대해, 선택된 객체에 대응하는 전임 객체들은 자동으로 식별된다. 선택된 객체들 및 식별된 전임 객체들은 복수의 순서화된 객체 그룹들로 분할되어서, 임의의 소정의 선택된 객체 또는 전임 객체의 경우, 대응 전임 객체들은 소정의 객체와 동일한 그룹에 있거나 선행 그룹(a preceding group)에 있다.
순서대로 각 그룹에서, 원자성 데이터베이스 트랜잭션이 수행된다. 트랜잭션 중에, 그룹 내의 객체들에 대응하는 복사 객체들은 데이터베이스에 저장된다. 또한, 트랜잭션 중에, 그룹 내의 한 객체에 대응하는 적어도 하나의 저장된 복사 객체에 대해, 정보는 저장된 복사 객체와 데이터베이스 내의 다른 복사 객체 간의 전임 관계를 설정하기 위해 데이터베이스에 저장된다. 그 밖의 객체는 그룹 내의 어떠한 객체에도 대응하지 않으며, 저장된 복사 객체는 그 밖의 객체의 후임이다.
그룹들 중 한 그룹의 객체와 그룹들 중 다른 그룹의 다른 객체 간에 적어도 하나의 전임 관계가 존재할 수 있다. 그룹 내의 한 그룹의 원자성 데이터베이스 트랜잭션의 부분으로서, 정보는 그룹들 중 한 그룹의 객체에 대응하는 저장된 복사 객체와 다른 복사 객체에 대응하는 복사 객체 간의 전임 관계를 설정하기 위해 데이터베이스에 저장될 수 있다.
전임 객체들을 식별하는 부분으로서, 선택된 객체에서 시작하는 경로를 식별하는 데이터가 수신될 수 있다. 경로는, 선택된 객체에 하위(subordinate)인 적어도 하나의 객체를 통해 연장한다. 경로는 적어도 하나의 스텝을 포함한다. 각 스텝은 관계 타입 및 방향을 갖는다.
전임 객체들의 식별은 제1 경로 및 제2 경로를 식별하는 데이터의 수신을 포함할 수 있다. 각 경로는 선택된 객체에서 시작한다. 각 경로는 선택된 객체에 하위인 적어도 하나의 객체를 통해 연장한다. 각 경로는 적어도 하나의 스텝을 포함한다. 각 스텝은 관계 타입 및 방향을 갖는다. 제1 경로는 선택된 객체에 하위가 아닌 타겟 객체에서 종료하고, 제2 경로는 선택된 객체에 하위인 타겟 객체에서 종료한다. 전임 객체들의 식별은 경로들 중 적어도 하나의 경로로부터의 정보로부터 형성된 질의(query)로 데이터베이스를 질의하는 것을 포함할 수 있다.
전임 객체들의 식별은 선택된 객체들의 컴퓨터 판독 가능 표시(복사 전임 객체 그래프 등)의 생성을 포함할 수 있다. 표시(representation)는 정렬되고, 정렬된 표시는 분할된다.
순서대로 각 그룹에서, 원자성 데이터베이스 트랜잭션 중에, 그룹 내의 각각의 선택된 객체에 대해, 하위 객체들은 선택된 객체에 대응해서 자동으로 식별될 수 있다. 또한, 식별된 하위 객체들에 대응하는 복사 객체들은 데이터베이스에 저장될 수 있다.
각 그룹에서, 그룹내의 객체들에 대응하는 복사 객체들을 저장하는 부분으로서, 복사 객체들 중 적어도 하나의 복사 객체의 객체 식별자는 그룹 내의 대응 객체의 객체 식별자와 관련하여 저장될 수 있다.
본 발명의 다른 실시예는 객체 지향 엔터프라이즈 엔지니어링 시스템 내에서 표시된 복수의 전임 및 후임 객체들을 복사하는 시스템을 제공한다. 본 시스템에서, 각 후임 객체는 전임 객체와 전임 관계를 갖는다. 시스템은, 복사될 복수의 객체들을 선택하는 사용자로부터 입력을 수용하는 사용자 인터페이스를 포함한다. 각 선택된 객체에 대해, 선택된 객체에 대응하는 전임 객체들은 자동으로 식별하도록, 식별 모듈이 구성된다. 선택된 객체들 및 식별된 전임 객체들을 복수의 순서화된 객체 그룹들로 자동으로 분할하도록 분할 모듈이 구성된다. 임의의 소정의 선택된 객체 또는 전임 객체에 대해, 대응 전임 객체들은 소정의 객체와 동일한 그룹에 있거나 선행 그룹에 있다. 순서대로 각 그룹에서, 원자성 데이터베이스 트랜잭션 중에, 그룹 내의 객체들에 대응하는 복사 객체들을 데이터베이스에 저장하도록 저장 모듈이 구성된다. 또한, 그룹 내의 한 객체에 대응하는 적어도 하나의 저장된 복사 객체에 대해, 저장 모듈은, 저장된 복사 객체와 데이터베이스 내의 다른 복사 객체 간의 전임 관계를 설정하기 위해 정보를 데이터베이스에 저장한다. 그 밖의 객체는 그룹 내의 어떠한 객체에도 대응하지 않는다. 저장된 복사 객체는 그 밖의 객체의 후임이다.
그룹들 중 한 그룹의 객체와 그룹들 중 다른 그룹의 다른 객체 간에 적어도 하나의 전임 관계가 존재할 수 있다. 저장 모듈은, 또한, 그룹들 중의 한 그룹의 원자성 데이터베이스 트랜잭션의 부분으로서, 그룹들 중 한 그룹의 객체에 대응하는 저장된 복사 객체와 다른 복사 객체에 대응하는 복사 객체 간의 전임 관계를 설정하기 위해 데이터베이스에 정보를 저장하도록 구성될 수 있다.
식별 모듈은, 또한, 선택된 객체에서 시작하는 경로를 식별하는, 복사 클래스 기술자 파일 등의 데이터를 수신하도록 구성될 수 있다. 경로는, 선택된 객체에 하위인 적어도 하나의 객체를 통해 연장한다. 경로는 적어도 하나의 스텝을 포함하고, 각 스텝은 관계 타입 및 방향을 갖는다.
식별 모듈은, 또한, 제1 경로 및 제2 경로를 식별하는, 복사 클래스 기술자 파일 등의 데이터를 수신하도록 구성될 수 있다. 각 경로는 선택된 객체에서 시작한다. 각 경로는 선택된 객체에 하위인 적어도 하나의 객체를 통해 연장한다. 각 경로는 적어도 하나의 스텝을 포함한다. 각 스텝은 관계 타입 및 방향을 갖는다. 제1 경로는 선택된 객체에 하위가 아닌 타겟 객체에서 종료하고, 제2 경로는 선택된 객체에 하위인 타겟 객체에서 종료한다.
식별 모듈은, 또한, 제1 경로 및 제2 경로 중 적어도 하나의 경로로부터의 정보로부터 형성된 질의로 데이터베이스를 질의하도록 구성될 수 있다.
식별 모듈은, 또한, 선택된 객체들의 컴퓨터 판독 가능 표시(복사 전임 객체 그래프 등)를 생성하도록 구성될 수 있다. 또한, 식별 모듈은, 선택된 객체들의 표시를 정렬하고, 선택된 객체들의 정렬된 표시를 분할한다.
저장 모듈은, 또한, 순서대로 각 그룹에서, 원자성 데이터베이스 트랜잭션 중에, 그룹 내의 각각의 선택된 객체에 대해, 선택된 객체에 대응하는 하위 객체들을 자동으로 식별하도록 구성될 수 있다. 저장 모듈은, 또한, 식별된 하위 객체들에 대응하는 복사 객체들을 데이터베이스에 저장할 수 있다.
저장 모듈은, 또한, 각 그룹에서, 그룹 내의 대응 객체의 객체 식별자와 관련하여 복사 객체들 중 적어도 하나의 복사 객체의 객체 식별자를 저장하도록 구성될 수 있다.
본 발명의 또 다른 실시예는 객체 지향 엔터프라이즈 엔지니어링 시스템 내에서 표시된 복수의 전임 및 후임 객체들을 복사하는 컴퓨터 시스템에서 사용되는 컴퓨터 프로그램 제품을 제공한다. 본 시스템에서, 각 후임 객체는 전임 객체와 전임 관계를 갖는다. 컴퓨터 프로그램 제품은 컴퓨터 명령들이 저장되어 있는 컴퓨터 판독 가능 매체를 포함한다. 명령들이 프로세서에 의해 실행될 때, 명령들은, 프로세서가 복사될 복수의 객체들을 선택하는 사용자로부터의 입력을 수용하게 한다. 또한, 각 선택된 객체에 대해, 선택된 객체에 대응하는 전임 객체들은 자동으로 식별된다. 또한, 선택된 객체들 및 식별된 전임 객체들은 복수의 순서화된 객체 그룹들로 자동으로 분할되어서, 임의의 소정의 선택된 객체 또는 전임 객체의 경우, 대응 전임 객체들은 소정의 객체와 동일한 그룹에 있거나 선행 그룹에 있다. 순서대로 각 그룹에서, 원자성 데이터베이스 트랜잭션 중에, 그룹 내의 객체들에 대응하는 복사 객체들은 데이터베이스에 저장된다. 또한, 그룹 내의 한 객체에 대응하는 적어도 하나의 저장된 복사 객체에 대해, 저장된 복사 객체와 데이터베이스 내의 다른 복사 객체 간의 전임 관계를 설정하기 위해 정보가 데이터베이스에 저장된다. 그 밖의 객체는 그룹 내의 어떠한 객체에도 대응하지 않는다. 저장된 복사 객체는 그 밖의 객체의 후임이다.
본 발명은 도면들과 함께 특정 실시예들의 이하의 상세한 설명을 참조함으로써 더욱 더 충분히 이해될 것이다.
도 1은 본 발명의 일 실시예의 오퍼레이션을 도시하는 플로우챠트이다.
도 2 내지 도 9는 본 발명의 일 실시예에 따른 일례의 사용자 인터페이스의 양상들을 도시한다.
도 10은 본 발명의 일 실시예에 따른 일례의 후임 및 전임 객체들의 개략도이다.
도 11은 본 발명의 일 실시예에 따른 일례의 복사 전임 객체 그래프의 개략도이다.
도 12는 본 발명의 일 실시예에 따른 복사 클래스 기술자 파일의 개략도이다.
도 13은 본 발명의 일 실시예에 따른 복사 클래스 기술자 파일의 보다 더 상세한 개략도이다.
도 14는 본 발명의 실시예들에 따른 루프 관계들(looped relationships)의 일례들을 도시한 개략도이다.
도 15는 본 발명의 실시예들에 따른 두개의 조이닝 객체들(joining objects)의 개략도이다.
종래 기술의 메모리 제약 없이, 모델 데이터베이스의 완전성(integrity)을 유지하면서, 다수의 객체들 및 관계들을 복사하는, 본 발명에 따른 방법들 및 장치들이 기술된다. 대규모 복사 오퍼레이션은 다수의 보다 더 소규모의 원자적 오퍼레이션들로 분할된다. 각 소규모 오퍼레이션은 객체들 및 관계들의 부집합을 모델 데이터베이스에 복사한다. 따라서, 모든 소규모 오퍼레이션들이 완료되기 전에 대규모 복사 오퍼레이션이 비정상적으로 종료하면, 모델 데이터베이스는 결국 일관된 상태로 남겨지고, 복사 오퍼레이션은 인터럽션 지점으로부터 재개될 수 있다. 각 소규모 복사 오퍼레이션이 비교적 소량의 데이터만을 복사하기 때문에, 실패하거나 중단된 소규모 복사 오퍼레이션이 비교적 신속하게 롤링 백(rolling back)될 수 있다.
객체들이 복사되는 순서가 중요함을 알 것이다. 객체들이 임의의 순서로 복사되고, 대규모 복사 오퍼레이션이 비정상적으로 종료되면, 약간의 새롭게 생성된 객체들이 다른 객체들과의 관계에 의해 연결되지 않고 부모 객체들이 데이터베이스로부터 손실될 수도 있기 때문에, 데이터베이스는 일관성 없는 상태로 남겨진다.
본 방법들 및 장치들에 따라, 객체들은 특정 규칙들에 따라 순서화된 객체 집합들로 분할되고, 집합들이 순서대로 복사되어서, 각 객체 집합은 원자적 오퍼레이션으로 복사되어, 대규모 복사 오퍼레이션이 비정상적으로 종료하더라도, 데이터베이스는 일관성 있게 남겨진다. 대규모 복사 오퍼레이션이 비정상적으로 종료되면, 복사 오퍼레이션은 종료된 지점에서 재개될 수 있다. 따라서, 객체 집합들을 종료 지점까지 복사하는데 소비되는 사용자 및 컴퓨터 시간이 낭비되지 않는다. 또한, 오직 하나의 객체 집합 및 그 복사본들만이 임의의 시간에 메모리에 저장될 필요가 있기 때문에, 객체들을 충분히 큰 수의 집합들로 분할함으로써, 유효한 메모리의 양과 관계 없이, 아주 많은 수의 객체들이 복사될 수 있다. 각 집합의 복사본들이 일단 데이터베이스에 위탁되면, 메모리는 재사용될 수 있다.
"후임(successor)" 객체는 "전임(predecessor)" 객체라고 하는 다른 객체와의 전임 관계를 가져야만 하는 객체이며, 전임 객체는, 후임 객체가 존재하는 한 존재해야만 한다. 빔 객체는, 예를 들어, 빔 상의 연결점들(connection points)을 나타내는 하나 이상의 객체들에 대한 전임자일 수 있다. 빔 객체가 부재하면, 연결점 객체들은 존재할 수 없다. 그러나, 몇몇 상황에서, 빔 객체는 어떠한 연결점 객체들 없이도 존재할 수도 있다. 따라서, 전임 객체는 임의의 후임 객체들을 반드시 가질 필요는 없다.
본 규칙에 따르면, 복사될 전임 객체들은 각 후임 객체들 보다 후에 복사되어서는 안된다. 따라서, 복사될 객체들은 순서화된 그룹들로 조직화되며, 그룹들은 순서대로 복사되어서, 소정의 객체의 전임자들은, 소정의 객체 전에, 또는 소정의 객체와 동일한 소규모 오퍼레이션에서, 데이터베이스에 복사된다. 각 소규모 오퍼레이션은 원자적이다.
본 발명의 실시예들이 엔터프라이즈 엔지니어링 시스템의 환경에서 기술된다. 그러나, 본 발명의 실시예들이 다른 타입들의 시스템들에서도 사용될 수 있다. 주지된 바와 같이, 엔터프라이즈 엔지니어링 시스템은 대규모 복합 공단들의 2D 및 3D 모델링 및 가시화를 용이하게 해주는 CAD(computer-aided design) 시스템들이다. 이러한 시스템들은 통상 객체 지향 패러다임들을 사용하며 사용자들이 객체들을 조작할 수 있게 해준다. 몇몇 객체들은 다른 객체들과 관련되며, 시스템들은 사용자 조작들에 응답해서 관련 객체들의 특징들을 자동으로 재계산할 수 있다. 예를 들어, 사용자가 파이프 런(pipe run)에 연결된 펌프를 이동하면, 시스템은 새로운 펌프 로케이션을 수용하기 위해 파이프 런의 길이를 자동으로 변경할 수 있다. 본 예에서의 파이프 런과 같은 "재계산 후임(recalculation successor)" 객체의 특징은 펌프와 같은 "재계산 전임(recalculation predecessor)" 객체의 특징에 좌우된다. 이러한 시스템 내에서의 객체들의 복사는 복사될 객체들 및 관계들을 나타내는 데이터 구조들의 복사본들의 생성을 포함한다.
도 1은 본 발명의 일 실시예의 오퍼레이션을 도시하는 플로우챠트를 포함한다. (100)에서, 복사될 객체 집합을 지정하기 위해 사용자 입력들이 수용된다. 사용자 인터페이스는 사용자가 선택 사항 메뉴로부터 객체들을 선택하거나 필터 기준들을 입력 또는 선택하도록 할 수 있으며, 그 후, 시스템이 사용되어 기준을 만족시키는 객체들이 자동으로 선택된다. 대안으로, 사용자 인터페이스는, 선택 커서 또는 "러버 밴드(rubber band)" 선택 사각형(또는 다른 형태), 또는 임의의 다른 적합한 선택 도구 등의 그래픽 선택 도구를 제공할 수 있다. 사용자에게 프롬프팅하고 사용자의 입력들을 수용하며 복사 오퍼레이션에 대한 정보를 디스플레이하기 위한 일례의 "마법사(wizard)" 스타일 사용자 인터페이스의 양상들이 도 2 내지 도 9에 도시되어 있다.
도 3에 도시된 대화 상자를 사용해서, 시스템은 복사될 현재 모델의 일부를 선택하는 사용자 입력들을 수용할 수 있다. 일례의 대화 상자에서 사용되는 용어 "플랜트(plant)"는 데이터베이스를 나타낸다. 따라서, 도 3에 도시된 예에서, 사용자는 "토르티야(Tortilla)"라는 이름의 "소스 플내트(Source plant)"(300)(즉, 데이터베이스)를 선택했다. 각 데이터베이스는 모델에 대한 정보를 "시스템(systems)" 계층에 저장한다. 일례의 시스템들은 구조적 시스템들(기초, 빔 및 열 등의 객체들을 포함할 수 있음), 전기적 시스템(도관, 전선(wire run), 스위치 등을 포함할 수 있음), 장비 시스템들(펌프 및 탱크를 포함할 수 있음), 배관 시스템들(파이프, 팔꿈치 모양의 굽은 관, T-커넥션(T-connection), 밸브 등을 포함할 수 있음)을 포함한다.
계층의 입도(granularity)는 사용중인 특정 엔터프라이즈 엔지니어링 시스템 및 사용자 요구 사항에 좌우된다. 사용자 인터페이스는 스크롤 박스(303)에 이러한 계층의 레벨들을 디스플레이한다. 도 3에 도시된 예에서, 사용자는 "UnitSystem-1-0001"(306) - 계층의 빌딩, 장비 및 배관부를 포함 - 로 식별된 계층의 일부를 복사하기를 선택했다.
엔터프라이즈 엔지니어링 시스템은 사용자 인터페이스를 통해 사용자에게 공개된 객체들("주 객체들(primary objects)"), 및 공개되지 않은 다른 객체들("하위 객체들(subordinate objects)")을 포함할 수 있다. 예를 들어, 시스템은, 기초, 열 및 빔 등의 주 구조 객체들을 공개할 수 있다. 사용자는 사용자 인터페이스를 통해 주 객체들을 조작할 수 있다. 예를 들어, 사용자는 열을 이동하거나 크기를 지정할 수 있다. 시스템은 비공개 하위 객체들을 이용해서 공개 객체들에 대한 정보를 저장할 수 있다. 예를 들어, I-빔 주 객체는 빔의 탑 플랜지(top flange), 바텀 플랜지(bottom flange) 및 웹(web)을 나타내는 하위 객체들, 및, 다른 객체들이 빔에 연결될 수 있는 로케이션 또는 길(ways)을 나타내는 하위 객체들과 관련될 수 있다.
도 4는 복사될 객체들에 자동으로 포함되는 하위 객체들의 카테고리들("부문들(disciplines)"을 선택하기 위한 사용자 입력들을 수용하는 대화 상자를 도시한다. 사용자는 모든 부문들(400) 또는 하나 이상의 사용자 지정 부문들(403)을 선택할 수 있으며, 또는, 시스템이 하위 객체들을 선택하기 위해 이용하는 선택 기준들을 제공하는 커스텀 필터(406)를 입력할 수도 있다.
도 5는 복사 객체들의 복사본들이 저장될 곳을 지정하기 위한 사용자 입력들을 수용하는 대화 상자를 도시한다. 도 5에 도시된 예는, 사용자가 도 3의 대화 상자에서 수개의 소스 시스템들을 선택했다고 가정한다. 이러한 소스 시스템들은 표제 "소스 시스템(Source System)"(500) 아래에 열거된다. 사용자 인터페이스는 행선 시스템들(503)의 이름들을 자동으로 제안할 수 있으며, 이러한 이름들을 번복하거나 수용할 수 있다.
도 6은 객체 복사본에 적용될 변환(transformations)을 지정하기 위한 사용자 입력들을 수용하는 대화 상자를 도시한다. 예를 들어, 새롭게 생성된 객체들은 고유 객체들(original objects)의 좌표들로부터 이동될 수 있다(600). 도시된 예에서, 새롭게 생성된 객체들은 고유 (복사) 객체들로부터 동쪽으로 100ft 북쪽으로 25ft에 위치한다.
도 7은 확인 대화 상자를 도시한다. 사용자가 일단 복사 오퍼레이션을 개시하면, 시스템은 진행 표시기(a progress indicator)를 디스플레이할 수 있는데, 이 예는 도 8에 도시되어 있다.
도 1을 다시 참조하면, 객체가 복사되는 경우, 객체의 전임 객체 및 사용자 지정 하위 객체들과 그 전임자들도 또한 복사된다. 이러한 요구에 부응해서, (103)에 도시된 바와 같이, 사용자가 복사될 객체들의 집합을 선택한 후에, 시스템은 선택된 객체들의 리스트를 생성하고, 복사중인 지정된 객체들의 결과로서 복사되는 다른 객체들을 구비한 리스트로 자동으로 증대한다. 시스템은 선택된 객체들의 전임 객체들 및 선택된 객체들의 사용자 지정 또는 자동 선택 하위 객체들을 자동으로 식별한다. 각 전임 객체 또는 하위 객체가 자체적으로 전임 객체 또는 하위 객체들을 갖기 때문에, 반복 프로세스(recursive process)에 의해 자동 식별이 수행될 수 있다. 전임 객체들을 식별하는데 사용될 수 있는 일례의 방법 및 관련 데이터가 보다 더 상세히 후술된다.
메모리를 보존하기 위해, (103)에서 식별된 객체들은 아직 메모리로 이동되지 않는다. 대신, 객체들 자체 보다는 훨씬 더 작은 객체들의 객체 식별자들(OIDs)만이 메모리에 저장된다. OID는 객체를 유일하게 식별하고, 데이터베이스로부터 객체를 메모리로 페치(fetch)(객체 "바인딩(binding)"이라고도 함)하는데 사용될 수 있는 번호, 스트링, 데이터베이스 키 또는 다른 양(quantity)이다.
(106)에서, 복사될 객체들의 리스트는 다수의 순서화된 객체 그룹들로 분할된다. 객체들은 그룹 단위로 복사되며, 그룹들은 오름차순으로 복사된다. 객체들은 그룹들에 할당되고, 그룹들은 순서화되어서, 객체의 모든 전임 객체들은 객체와 동일한 그룹의 멤버들이되거나, 객체 보다 낮은 순서의 그룹의 멤버들이 된다. 따라서, 전임 객체들은 객체와 함께 또는 객체 보다 더 일찍 복사된다.
(110)에 도시된 바와 같이, 오름차순으로 각 그룹에서, 그룹 내의 객체들, 및 그룹 내의 객체들의 하위 객체들이 원자적 오퍼레이션으로 데이터베이스에 복사된다. 이는 수개의 중간 오퍼레이션들을 수반한다. OID가 그룹내에 있는 객체들을 나타내는 데이터 구조들, 및 이러한 객체들의 하위 객체들의 데이터 구조들이 메모리에 바인딩된다(즉, 데이터베이스로부터 판독된다). 이러한 데이터 구조들의 복사본들은 메모리에서 생성되어 데이터베이스에 저장된다. 데이터 구조들이 여전히 메모리 내에 있는 동안, 또는 데이터 구조들이 데이터베이스에 저장된 후지만, 그룹 복사 트랜잭션이 완료된 것으로 선언되기 전에, 메모리 내의 데이터 구조들 간의 관계들이 설정될 수 있다. 현 그룹의 부분으로서 생성된 데이터베이스 내의 데이터 구조들과 보다 더 낮은 순서(즉, 보다 더 일찍 복사되는) 그룹들의 부분들로서 생성된 데이터 구조들 간에 관계들이 설정된다. 또한, 현 그룹의 부분으로서 생성된 데이터베이스 내의 데이터 구조들과 모델의 다른 부분들을 나타내는 데이터 구조들 간에 관계들이 설정된다. 예를 들어, 배관 시스템이 빌딩 모델의 한 층으로부터 모델의 다른 층으로 복사되면, 새롭게 생성된 객체들 중 일부 또는 전부가 행선 층(destination floor)을 나타내는 객체와 관련되게 될 수도 있다. 모든 중간 오퍼레이션들이 완료되면, 원자적 오퍼레이션(즉, 트랜잭션)은 완료된 것으로 선언된다.
모든 그룹 복사 오퍼레이션들이 성공적으로 완료된 후에, 또는 대규모 복사 오퍼레이션이 비정상적으로 종료되면, 도 9에 도시된 바와 같이, 결과 대화 상자는 상태를 보고하도록 사용자에게 디스플레이될 수 있다.
전임 객체 식별
일 실시예에서, 전임 객체들은 복사될 각각의 주 객체를 전임 객체들과 관련시키는 유도된 그래프(a directed graph)("복사 전임 객체 그래프")를 구성함으로써 식별된다. 복사 전임 객체 그래프는 복사될 각각의 주 객체에 대한 노드를 포함한다. 그래프의 에지들은 각각의 객체 노드들 간의 관계들을 나타낸다. 이 그래프의 트래버설(traversal)은 복사될 주 객체들의 순서화된 리스트를 산출한다. 이러한 순서화된 리스트로부터의 연속 주 객체들의 집합들 뿐만 아니라 그 하위 객체들은 상술된 바와 같이 복사되는 연속 그룹들에 할당된다. 복사될 객체들은 모두 그룹들로 분할된다. 이 오퍼레이션들은 이제부터 상세히 기술될 것이다.
주지된 바와 같이, 복사를 위해 선택된 주 객체는 종종 선택된 객체와 함께 복사되는 관련 객체들을 갖는다. 예를 들어, 빔 객체는 수개의 비공개 하위 연결 객체들 또는 다른 하위 객체들을 가질 수 있다. 또한, 빔 객체는 사용자에게 공개되는 전임 열 객체에 연결될 수 있다. 열 객체와 관련된 비공개 하위 연결점 객체를 통해 연결이 달성될 수 있다.
이러한 상황의 그래픽 표현은 도 10에 도시되어 있다. 복사 그룹 1(1000)은 빔 객체를 나타내고, 복사 그룹 2(1003)는 열을 나타낸다. 주 빔 객체(1006)는, 모두 다 전임 객체들이어서, 공개 빔 객체(1006)와 함께 복사되는 다수의 하위 및/또는 공개 객체들(1010, 1013, 1016, 1020)과 관련된다. 객체(1020)가 빔 상의 연결점을 나타낸다고 가정하자. 유사하게, 주 열 객체(1023)는, 다수의 하위 및/또는 공개 객체들(1026, 1030, 1033)과 관련된다. 객체(1033)가 열 상의 연결점을 나타내고, 관계 X(1036)가 각각 빔 및 열 상의 연결점들(1020, 1033) 간의 연결을 나타낸다고 가정하자.
다른 객체로부터 연결 객체(1033)로 관계가 설정될 수 있기 때문에, 객체들(1023-1022)의 열의 복사 그룹의 연결 객체(1033)는 "타겟" 객체라고 한다. 이러한 관계가 설정되면, 객체들을 복사하기 위해, 열 객체(1023)는 전임 객체가 되고, 다른 객체는 후임 객체가 된다. 객체는 하나 보다 많은 타겟을 가질 수도 있다. 또한, 물리적 연결이 아닌 관계들이 설정될 수도 있다. 예를 들어, 객체는 좌표 시스템 객체 또는 측정 객체의 유닛(unit)과 관련될 수 있다. 유사하게, 빔 등의 객체는 하나 보다 많은 객체를 가질 수도 있으며, 이를 통해 객체는 다른 객체와 관련될 수 있다.
엔터프라이즈 엔지니어링 시스템은 통상 플랜트 또는 모델 내의 시스템들을 관리하는 하나 이상의 소프트웨어 애플리케이션들을 포함한다. 주지된 바와 같이, 일례의 시스템들은 구조적 시스템들, 전기적 시스템들, 장비 시스템들, 배관 시스템들을 포함한다. 이러한 소프트웨어 애플리케이션들은, 예를 들어, 사용자가 빔 또는 열을 모델에 추가할 때와 같이, 사용자 입력들에 응답해서 객체들을 생성한다. 객체 지향 패러다임에서, "클래스(class)"는 객체의 정의 또는 프로토타입(prototype)이다. 객체 지향 시스템들은 생성될 수도 있는 객체의 각각의 타입에 대한 클래스 정의를 갖는다.
본 발명에 따라, 각각의 클래스 정의는 객체와 관련해서 두개의 타입들의 경로들을 선회(traverse)하기 위해 해당 클래스의 객체들을 복사하는 소프트웨어를 가능케 하는 정보를 제공한다: (a) 객체로부터, 복사 그룹의 내부 관계들을 통해, 다른 객체의 타겟 객체 - 객체와 관계를 가질 수 있음 - 까지의 경로, 및 (b) 객체로부터, 복사 그룹의 내부 관계들을 통해, 복사 그룹 내의 타겟, 즉, 상기 객체에 대한 관계가 설정될 수 있는 타겟 객체까지의 경로.
두 타입의 경로들은 도 10에 예시되어 있다. 주지된 바와 같이, 빔은 다른 객체에 연결될 수 있으며, 빔의 연결 객체(1020)는 연결 관계(1036)가 설정되는 객체이다. 주지된 바와 같이, 빔의 다른 객체들(1010-1016)도 또한 관계들이 설정될 수 있는 객체들일 수 있다. 객체(1020)가 다른 객체와의 관계를 설정하는데 사용될 수 있기 때문에, 경로(1040)는 제1 타입의 경로, 즉, 객체(1006)로부터, 복사 그룹의 내부 관계들을 통해, 다른 객체 복사 그룹의 타겟 객체(1033) - 객체(1006)와 관계(1036)를 가질 수 있음 - 까지의 경로의 일례이다. 경로(1043)는 제2 타입의 경로, 즉, 객체(1023)로부터, 복사 그룹의 내부 관계들을 통해, 복사 그룹 내의 타겟(1033)까지의 경로를 예시한다.
소정의 실시예들에서, 각각의 클래스 정의는, 클래스의 객체들이 타겟들일 수 있는지의 여부 또는 객체들이 다른 객체들과 설정된 관계들을 가질 수 있는지의 여부에 따라, 두가지 타입들의 경로들 중 하나 또는 둘 다를 식별하기 위해 복사 애플리케이션이 사용할 수 있는 정보를 포함하는 "복사 클래스 기술자" 파일을 제공한다. 소정의 실시예들에서, 이러한 파일은 XML(extensible markup language) 명세에 따라 포맷된다. 이러한 XML 파일에 대한 보다 더 상세한 기술은 후술된다.
주지된 바와 같이, 전형적인 엔터프라이즈 엔지니어링 시스템은 객체들 및 관계들에 대한 정보를 관계 데이터베이스(RDB) 또는 다른 타입의 데이터베이스에 저장한다. 이러한 몇몇 시스템들은 각각의 타입의 객체에 대한 개별 데이터베이스 표들을 유지한다. 예를 들어, 이러한 시스템은 열 객체들에 대한 표 및 빔 객체들에 대한 개별 표를 유지할 수 있다. 객체들 간의 관계들에 대한 정보는 객체 표들 또는 개별 표들에 유지될 수 있다. 예를 들어, 표 1에 의해 예시된 관계 표는 한 쌍의 객체들 및 객체들 간의 관계를 표의 각각의 행에 기록(record)할 수 있다. 따라서, 시스템의 두개의 객체들 간의 각각의 관계에 있어서, 표는 하나의 행을 포함한다. 표 행 필드들은 객체 식별자(OID)들을 포함할 수 있다. 명칭 "OID(B)"는 "객체 B의 객체 식별자"를 의미한다. 표 1의 제2 행에 도시된 관계는 도 10에 도시된 관계 X(1036)에 대응하며, 빔(1006)상의 연결점 B(1020)가 열 D(1023) 상의 연결점 C(1033)에 웰딩됨(welded)을 나타낸다.
고유 행선 관계 타입
OID(X) OID(Y) 볼팅 연결
OID(B) OID(C) 웰딩 연결
표 1의 열 표제들("고유" 및 "행선")에 나타난 바와 같이, 관계들이 유도된다. 관계의 방향은 두개의 대응 객체들 간의 후임/전임 관계를 암시할 수도 있는데, 반듯이 그런 것은 아니다.
주지된 바와 같이, 각각의 클래스 정의는 클래스에 따라 예시되는 객체들에 관련하여, 소프트웨어가 두가지 타입들의 경로들을 선회하도록 하는 정보를 포함하는 복사 클래스 기술자 파일을 제공한다. 도 12는 이러한 정보를 제공하기 위한 XML 파일의 개략도이다. 다른 적합한 파일 포맷들이 사용될 수도 있다.
소정의 객체 클래스에서, 파일은 두가지 타입들의 경로들에 대한 정보를 각각 제공하는 두개의 부분들(1200, 1203)을 포함한다. 제1 부분(1200)("TargetsInPredecessors")은 객체로부터, 복사 그룹의 내부 관계들을 통해, 다른 객체의 타겟 객체 - 객체와 관계를 가질 수 있음 -, 즉, 객체의 전임자인 객체까지의 각각의 가능한 경로에 대한 정보를 제공한다.
도 12에 도시된 예는 이러한 두 경로들(1206, 1210)을 정의한다. 각각의 경로는 적어도 하나의 "스텝(step)"을 포함한다. 한 스텝은 두개의 객체들 간의 관계를 기술하며, 관계 타입의 기술(RelType) 및 관계의 방향(Dir)을 포함한다. 예를 들어 도 10의 빔 객체를 보면, 경로(1040)는 관계들(1046, 1050, 1053)에 대응하는 3개의 스텝들을 갖는 것으로 기술된다. 객체에서 시작해서, 지정된 스텝(들)의 번호, 지정된 관계 타입(들)(RelType) 및 지정된 방향(들)(Dir)에 매치하는 임의의 경로는 TargetsInPredecessors 경로로서 간주된다.
도 12를 다시 참조하면, XML 파일의 제2 부분(1203)("TargetsInSelf")은 객체로부터, 복사 그룹의 내부 관계들을 통해, 복사 그룹 내의 타겟까지의 각각의 가능한 경로에 대한 정보를 제공한다. 도 13은 XML 복사 클래스 기술자 파일의 보다 더 완전한 일례이다.
객체가 사용자에 의해 선택되거나 복사될 객체로서 자동으로 식별될 때, 시스템은 객체의 전임자들을 자동으로 식별한다. 전임자들을 식별하기 위해, 시스템은 선택된 객체 또는 하위 객체들 중 하나와 관련된 전임자들의 타겟 객체들을 식별한다. 타겟 객체를 식별하기 위해, 시스템은 객체 클래스에 대해 정의된 각각의 TargetsInPredecessors 경로에 대한 질의를 생성한다. 질의는 경로의 각각의 스텝의 JOIN을 포함한다. 질의는 데이터베이스에 대해 실행된다. 질의의 결과는 OID 쌍들을 포함하는 표이다. 각각의 OID 쌍은 빔(1006)(OID "A")과 같은 복사될 객체의 OID, 및 연결점(1033)(OID "C")과 같은 타겟 객체의 OID를 포함한다. 표 2는 이러한 질의의 일례의 결과의 일부분을 도시한다.
복사될 객체의 OID 타겟 객체의 OID
A C
시스템은 또한 객체 클래스에 대해 정의된 각각의 TargetsInSelf 경로에 대한 질의를 생성한다. 질의는 경로의 각각의 스텝의 JOIN을 포함한다. 질의는 데이터베이스에 대해 실행된다. 질의는 OID 쌍들을 포함하는 표를 야기한다. 각각의 OID 쌍은 연결점(1003)(OID "C")과 같은 타겟 객체의 OID, 및 열 객체(1023)(OID "D")와 같은 복사될 선택된 객체의 전임자의 OID를 포함한다. 표 3은 이러한 질의의 일례의 결과의 일부분을 도시한다.
타겟 객체의 OID 전임 객체의 OID
C D
상술된 질의들은 복사를 위해 선택된 객체의 각각의 클래스에 대해 실행되며, 질의의 결과들은 두개의 결과 표들에 누적된다. 두개의 표들은 그 후 "타겟 객체의 OID"로 명명된 표 열에서 조인되어서(joined), 제3의 표를 야기한다. 표 4는 이러한 데이터베이스 JOIN 오퍼레이션의 일례의 결과의 일부분을 도시한다. 표 4의 행들은 복사될 객체들 간의 전임 관계들을 나타낸다. 예를 들어, 표 4의 제1 행에 따라, 객체 D(열(1023))는 객체 A(빔(1006)) 보다 늦게 복사되지 않는데, 객체 D가 객체 A의 전임자이기 때문이다.
복사될 객체의 OID 전임 객체의 OID
A D
주지된 바와 같이, 복사 전임 객체 그래프는 복사될 각각의 주 객체에 대한 노드를 포함하고, 그래프의 에지들은 각각의 객체 노드들 간의 관계들을 나타낸다. 시스템은 사용자가 선택한 각각의 주 객체에 대한 노드를 그래프에서 생성한다. 또한, 시스템은 표 3에서 식별된 각각의 주 전임 객체에 대한 노드를 그래프에 추가한다.
조인된 표(표 4)의 각각의 행은 복사될 객체와 전임 객체 간의 전임 관계를 나타낸다. 시스템은 이러한 각각의 전임 관계에 대한 복사 전임 객체 그래프에 에지를 추가한다. 도 11은 일례의 복사 전임 객체 그래프를 도시한다. 전임 관계(1100)가 복사 순서를 결정하기 위해 생성되었음을 주지해야만 한다. 이러한 관계는 복사 전임 객체 그래프에 유일하게 존재할 수도 있다. 즉, 복사 그룹 1(1000) 및 복사 그룹 2(1003)(도 10)의 객체들을 나타내는 데이터 구조들은 전임 관계(1100)에 대한 정보를 저장하지 않을 수도 있다.
복사 객체 정렬
전임 관계들이 복사 전임 객체 그래프에 추가된 후에, 그래프의 복사 객체들은 복사 순서로 정렬되어서, 각 객체는, 모든 전임 객체들이 나타난 후에 나타난다. 복사 순서는, 복사 전임 객체 그래프의 노드들을 통해 연장하는 스레드(예를 들어, 전방 및 후방 포인터들)에 의해 또는 개별 복사 순서 리스트에 의해, 또는 임의의 다른 적합한 표시기에 의해 표현될 수 있다.
복사 전임 객체 그래프는 임의의 적합한 방법에 의해 정렬될 수 있다. 두가지 일례의 방법들이 후술된다. 폭 우선 정렬 방법(a breadth-first sorting method)에서, 복사 객체들의 리스트에 걸쳐 다중 패스들이 달성될 수 있다. 각 패스 중에, 모든 전임 객체들이 이미 추가된 복사 객체들이 리스트에 추가될 수 있다. 이 정렬 방법은 서로 근접한 관계 없는 객체들을 복사 순서 리스트에 넣는 경향이 있다. 따라서, 관계없는 객체들이 소정의 객체 그룹에 할당될 가능성이 있으며, 이는 크로스-파티션(cross-partiton) 관계들을 야기할 수도 있다.
서로 근접한 관계 있는 객체들을 복사 순서 리스트에 넣는 깊이 우선 정렬 방법(a depth-first sorting method)을 사용하는 것이 바람직할 수 있다. 후임 객체들이 없는 모든 복사 객체들을 식별하기 위해, 즉, 임의의 다른 객체들에 대한 전임 객체가 없는 객체들을 식별하기 위해, 복사 전임 객체 그래프에 걸쳐 싱글 패스가 달성될 수 있다. 후임 객체들이 없는 각각의 객체에 대해, 객체를 리스트에 추가하는 반복적 함수(a recursive function)가 호출될 수 있다. 함수는 객체의 각각의 전임자에 대해 자체적으로 호출되며, 그 후, 함수는 리스트에 객체를 추가한다. 따라서, 객체 자체가 리스트에 추가되기 전에, 객체의 모든 전임자들이 리스트에 추가된다.
선택적으로, 객체들은 모델 내의 물리적 로케이션에 따라 그룹 객체들로 미리 정렬될 수도 있다. 모델링 중인 설비에서 서로 멀리 떨어진 객체들 보다는, 물리적으로 서로 근접하게 위치한 빔들 및 열들과 같은 객체들이 관계를 맺을 가능성이 크다. 따라서, 물리적으로 근접한 객체들이 복사 전임 객체 그래프에서 함께 가까이 있도록, 객체들을 미리 정렬해서, 크로스-파티션 관계들의 수를 감소시킬 수도 있다.
두개 이상의 객체들이 서로 관련되어서 루프들을 형성할 수 있다. 이러한 관계들의 일례들은 도 14에 도시되어 있다. 루프들은 정렬 프로세스 동안 검출될 수 있다. 루프가 검출되면, 소정의 루프의 모든 복사 객체들은 복사될 객체들의 동일한 그룹에 함께 할당된다.
각각 다른 객체를 전임 객체로 간주하는 두개의 복사 객체들은 "상호 전임 객체들(mutual predecessors)"이라고 한다. 상호 전임 객체들은 동일한 복사 그룹에 할당된다. 유사하게, 상호 전임 객체들의 루프들은 동일한 복사 그룹에 할당된다.
복사 전임 객체 그래프의 복사 객체들이 정렬되면, 복사 객체들은 연속 그룹들에 할당될 수 있으며, 정렬된 복사 전임 객체 그래프의 처음의 복사 객체로 시작해서 정렬 순서대로 그래프의 끝까지 계속된다. "복사 확대(copy propagation)"는, 복사될 주 객체들의 선택된 집합이 관련된 하위 객체들을 모두 포함하도록 연장된 프로세스이다. 각 그룹에 있어서, OID들이 복사 전임 객체 그래프 내에 있는 주 객체들은 메모리에 바인드되고, 주 객체들은 주 객체들의 하위 객체들을 메모리에 바인드하도록 확대된다. 주 객체들 및 하위 객체들은 그 후 복사될 수 있으며, 복사본들은 데이터베이스에 저장될 수 있다.
각 그룹의 객체들의 수는 루프 또는 상호 전임 객체들이 발견되는지의 여부에 좌우될 수 있다. 또한, 하위 객체들은 부모 객체와 동일한 그룹에 포함된다. 다른 경우, 그룹 내의 객체들의 수는 하나 이상의 기준들을 기반으로 선택될 수 있다. 예를 들어, 보다 더 작은 그룹들이 강건성(robustness)을 증가시키는 경향이 있으며, 작은 그룹 복사 오퍼레이션이 실패하면, 회복은, 더 큰 규모의 복사 오퍼레이션이 실패한 경우 보다 더 작은 양의 롤백 등을 수반한다. 그러나, 보다 더 소규모의 그룹 복사 오퍼레이션들은 보다 더 큰 수의 오퍼레이션들을 암시하며, 이는 데이터베이스 성능에 부정적인 영향을 끼칠 수 있다. 그룹들은 겨우 하나의 객체만을 포함할 수도 있다. 모든 복사 그룹들이 동일한 수의 객체들을 포함할 필요는 없다. 하나의 주 객체, 즉, 객체 및 모든 하위 객체들의 그룹 크기가 강건성 및 성능 간에 양호한 밸런스를 제공함을 알았다.
객체 복사본들과의 관계 재설정
함께 복사될 객체들의 그룹 내의 객체들 간의 관계들은 "내부 관계(internal relationships)"라고 한다. 모든 객체들이 함께 복사되기 때문에, 이러한 관계들은 객체들과 함께 복사된다.
함께 복사될 객체들의 그룹 내의 객체들과 복사되지 않는 객체들 간의 관계들은 "외부 관계(external relationships)"라고 한다. 시스템에 의해 외부 관계가 필수적인 것으로 정의되면, 복사 후에, 새롭게 생성된 객체와 디폴트 타겟(시스템에 의해 정의됨) 간에 관계가 설정되거나, 또는, 사용자가 사용자 인터페이스(도시되지 않음)를 통해 새로운 타겟 객체를 선택했으면, 관계는 사용자 지정 객체와 설정된다. 시스템에 의해 외부 관계가 선택적인 것으로 정의되면, 새롭게 생성된 객체와 관계가 설정될 필요가 없다.
몇몇 관계들은 파티션들(partitions)을 스팬(span)할 가능성이 있다. 즉, 함께 복사될 객체들의 상이한 그룹들 내의 객체들 간에 연장될 가능성이 있다. 이러한 관계들은 "크로스-파티션(cross-partitoin)" 관계들이라고 한다. 객체들의 그룹들이 순서대로 복사되기 때문에, 각각의 객체가 복사될 때마다, 전임 객체들은 이미 복사되어 있거나, 동일한 그룹의 부분으로서 복사될 것이다. 임의의 경우에, 그룹의 모든 객체들이 복사될 때까지, 모든 관련 전임 객체들이 복사될 것이다. 따라서, 전임 객체들과의 관계들은 원자적 그룹 복사 오퍼레이션 중에 설정될 수 있다.
이전 그룹 복사 오퍼레이션들 중에 생성된 객체들에 대한 관계들의 설정을 용이하게 하기 위해, 시스템은 "전역 복사 맵(global copy map)"을 유지한다. 전역 복사 맵은 차후 그룹 복사 오퍼레이션들의 부분들로서 재설정되는 관계들의 타겟들일 수 있는 객체들의 OID들을 저장한다. 표 5는 일례의 전역 복사 맵을 도시한다.
복사될 객체의 OID 복사 객체의 클론의 OID
C C'
B B'
다른 객체(예를 들어, 객체 B(1020))와의 관계를 갖는 객체(예를 들어, 도 10의 객체 C(1033))가 복사될 때, 객체 C의 OID 뿐만 아니라 객체의 복사본(즉, 새롭게 생성된 객체, "클론(clone)"이라고 함)의 OID도 전역 복사 맵에 저장되고 상관된다. 후에, 관련 객체(본 예에서는 객체 B(1020))가 복사될 때, 시스템은 객체 B와 객체 C 간의 관계를 검출한다. 예를 들어, 시스템은, 객체 B가 임의의 관계들을 갖고 있는지를 결정하기 위해 관계 표(예를 들어, 표 1을 참조)에 질의할 수 있다. 객체 B가 객체 C에 대한 관계를 갖고 있으면, 시스템은 객체 C의 클론의 OID를 사용해서 객체 C의 클론과 객체 B의 클론 간의 관계를 설정한다.
전역 복사 맵은 메모리에 저장될 수 있다. 대안으로, 전역 복사 맵은 디스크 등의 보조 기억 장치에 저장될 수도 있어서, 메모리의 양은 맵의 크기를 제약하지 않는다. 물론, 종래 기술에 공지되어 있는 바와 같이, 맵의 부분들은 메모리에 캐싱(cached)되어서 성능을 향상시킬 수 있다.
객체들 간의 몇몇 관계들은 "조이닝(joining)" 객체들을 통해 설정된다. 도 15는 이러한 두개의 조이닝 객체들(1500, 1503)을 도시한다. 조이닝 객체들(1500, 1503)을 통해 관련된 객체들의 그룹들(1506, 1510)이 모두 복사될 것이지만, 두 그룹들(1506, 1510)이 상이한 복사 객체 그룹들, 즉, 상이한 파티션들에 할당되면, 조이닝 객체들의 양 측들로부터 복사가 확대됨을 나타내도록 플래그들이 설정된다. 객체(1513)를 포함하는 그룹이 복사될 때, 객체(1513) 및 조이닝 객체들(1500, 1503)은 모두 클론되고, 클론에 대한 관계들이 설정된다. 그러나, 프로세스에서 차후에, 조이닝 객체들(1500, 1503)의 각 클론은, 두개의 객체들을 현재 조인하지 않음을 검출하고, 삭제된다. 객체(1513)의 복사본은 조이닝 객체 없이 위탁되고, 객체(1513) 및 그 클론은 전역 복사 맵에 추가된다.
후에, 다른 객체(1516)를 포함하는 그룹이 복사될 때, 객체(1516) 및 조이닝 객체들(1500, 1503)은 모두 클론된다. 상술된 바와 같이, 객체(1513)의 클론은 전역 복사 맵을 사용해서 식별된다. 조이닝 객체들(1500, 1503) 및 객체들(1513, 1516)의 클론들 간의 관계들이 설정된다. 결과 객체들 및 관계들은 그 후 상술된 바와 같이 위탁된다.
상술된 방법들은, 메모리에 저장된 적합한 명령들을 실행함으로써, 프로세서를 포함해서, 컴퓨터 시스템에 의해 수행될 수 있다.
다수의 객체들을 복사하는 방법들 및 장치들은 메모리에 저장된 명령들에 의해 제어되는 프로세서를 포함하는 것으로 기술되었다. 메모리는 RAM(random access memory), ROM(read-only memory), 플래시 메모리 또는 임의의 다른 메모리, 또는 제어 소프트웨어 또는 다른 명령들 및 데이터를 저장하기에 적합한 그 조합물일 수 있다. 복사 메카니즘에 의해 수행되는 몇몇 함수들이 플로우챠트들 및/또는 블록도들을 참조해서 기술되었다. 당업자는, 플로우챠트들 또는 블록도들의 각각의 블록의 일부 또는 전부 또는 블록들의 조합의 함수, 오퍼레이션, 결정(decisions) 등이 컴퓨터 프로그램 명령들, 소프트웨어, 하드웨어, 펌웨어 또는 그 조합물로서 구현될 수 있음을 쉽게 알 것이다. 또한, 당업자는, 본 발명의 기능들을 정의하는 명령들 또는 프로그램들이, 기록 불가능 기억 매체(예를 들어, ROM 등의 컴퓨터 내의 판독 전용 메모리 디바이스, 또는 CD-ROM 또는 DVD 디스크 등의 컴퓨터 I/O 연결 장치에 의해 판독 가능한 디바이스)에 영구적으로 저장된 정보, 기록 가능 기억 매체(예를 들어, 플로피 디스크, 리무버블 플래시 메모리 및 하드 드라이브)에 변경 가능하게 저장된 정보, 또는 유선 또는 무선 컴퓨터 네트워크들을 포함하는 통신 매체를 통해 컴퓨터에 전달되는 정보를 포함하지만, 이로만 제한되지 않는 각종 형태들로 프로세서에 전달될 수 있음을 쉽게 알 것이다. 또한, 본 발명이 소프트웨어로 구현될 수 있지만, 본 발명을 구현하는데 필요한 기능들은 조합 로직(combinatorial logic), ASIC(Application Specific Integrated Circuit), FPGA(Field-Programmable Gate Array) 또는 다른 하드웨어 또는 하드웨어, 소프트웨어 및/또는 펌웨어 컴포넌트들의 몇몇 조합물 등의 펌웨어 및/또는 하드웨어 컴포넌트들을 사용해서 부분적으로 또는 전체적으로, 선택적으로 또는 대안적으로 구현될 수 있다.
본 발명이 상술된 일례의 실시예들을 통해 기술되었지만, 도시된 실시예들에 대한 변경 및 변형이 본 명세서에 기술된 본 발명의 개념들 내에서 이루어질 수 있음을 당업자들을 알 것이다. 예를 들어, 복사 메카니즘의 몇몇 양상들이 플로우챠트를 참조해서 기술되었지만, 당업자는, 플로우챠트의 각각의 블록의 일부 또는 전부, 또는 블록들의 조합의 함수, 오퍼레이션, 결정 등이 결합되거나, 개별 오퍼레이션들로 개별화되거나, 다른 순서들로 수행될 수도 있음을 쉽게 알 것이다. 또한, 실시예들이 다양한 예시적인 데이터 구조들과 연관해서 기술되지만, 당업자는 시스템이 다양한 데이터 구조들을 사용해서 구현될 수 있음을 알 것이다. 또한, 기술된 양상들, 또는 양상들의 일부분들이 상술되지 않은 방법들로 결합될 수도 있다. 따라서, 본 발명은 기술된 실시예(들)에 제한되는 것으로 간주되지 않는다.

Claims (17)

  1. 객체 지향 엔터프라이즈 엔지니어링 시스템(an object-oriented enterprise engineering system) 내에 표시된 복수의 전임 및 후임 객체들(predecessor and successor objects)을 복사하기 위한 컴퓨터화된 방법 - 각 후임 객체는 전임 객체와 전임 관계(predecessor relationship)를 가짐 - 으로서,
    복사될 복수의 객체들을 선택하는 사용자로부터의 입력을 수용하는 단계(100)와,
    각각의 선택된 객체에 대해, 선택된 객체에 대응하는 전임 객체들을 자동으로 식별하는 단계와,
    선택된 객체들 및 식별된 전임 객체들을 복수의 순서화된 객체 그룹들로 자동으로 분할해서, 임의의 주어진 선택된 객체 또는 전임 객체에 대해, 그 대응하는 전임 객체들이 상기 주어진 객체와 동일한 그룹내에 있거나 선행 그룹(a preceding group)에 있도록 하는 단계(106)와,
    각각의 그룹에서, 원자성 데이터베이스 트랜잭션(atomic database transaction) 동안에(110), 순서대로
    상기 그룹 내의 객체들에 대응하는 복사 객체들을 상기 데이터베이스에 저장하는 단계와,
    상기 그룹 내의 한 객체에 대응하는 적어도 하나의 저장된 복사 객체에 대해, 상기 저장된 복사 객체와 상기 데이터베이스 내의 다른 복사 객체 간의 전임 관계를 설정하는 정보를 상기 데이터베이스에 저장하는 단계 - 그 밖의 객체는 상기 그룹 내의 어떠한 객체에도 대응하지 않으므로, 상기 저장된 복사 객체는 그 밖의 객체의 후임임 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 그룹들 중 한 그룹 내의 객체와 상기 그룹들 중 다른 그룹 내의 다른 객체 간에 적어도 하나의 전임 관계가 존재하며,
    상기 그룹들 내의 한 그룹에 대한 상기 원자성 데이터베이스 트랜잭션의 부분으로서, 상기 그룹들 중 한 그룹 내의 객체에 대응하는 상기 저장된 복사 객체와 다른 객체에 대응하는 복사 객체 간의 전임 관계를 설정하는 정보를 상기 데이터베이스에 저장하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 전임 객체들을 식별하는 단계는 상기 선택된 객체에서 시작하는 경로를 식별하는 데이터를 수신하는 단계를 포함하며, 상기 경로는 상기 선택된 객체에 하위(subordinate)인 적어도 하나의 객체를 통해 연장하고, 상기 경로는 적어도 하나의 스텝(step)을 포함하며, 각 스텝은 관계 타입 및 방향을 갖는 방법.
  4. 제1항에 있어서,
    상기 전임 객체들을 식별하는 단계는 제1 경로 및 제2 경로를 식별하는 데이터를 수신하는 단계를 포함하며, 각각의 경로는 상기 선택된 객체에서 시작하며, 각각의 경로는 상기 선택된 객체에 하위인 적어도 하나의 객체를 통해 연장하고, 각각의 경로는 적어도 하나의 스텝을 포함하며, 각각의 스텝은 관계 타입 및 방향을 갖고, 상기 제1 경로는 상기 선택된 객체에 하위가 아닌 타겟 객체에서 종료하며, 상기 제2 경로는 상기 선택된 객체에 하위인 타겟 객체에서 종료하는 방법.
  5. 제4항에 있어서,
    상기 전임 객체들을 식별하는 단계는 상기 제1 경로 및 상기 제2 경로 중 적어도 하나의 경로로부터의 정보로부터 형성된 질의(query)로 데이터베이스에 질의하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 전임 객체들을 식별하는 단계는,
    상기 선택된 객체들의 컴퓨터 판독 가능 표시(a computer-readable representation)를 생성하는 단계와,
    상기 선택된 객체들의 표시(representation)를 정렬하는 단계와,
    상기 정렬된 선택된 객체들의 표시를 분할(partitioning)하는 단계
    를 포함하는 방법.
  7. 제1항에 있어서,
    각 그룹에서, 원자성 데이터베이스 트랜잭션 동안에, 순서대로
    상기 그룹 내의 각각의 선택된 객체에 대해, 상기 선택된 객체에 대응하는 하위 객체들을 자동으로 식별하는 단계와,
    상기 식별된 하위 객체들에 대응하는 복사 객체들을 상기 데이터베이스에 저장하는 단계
    를 더 포함하는 방법.
  8. 제1항에 있어서,
    각각의 그룹에 대해, 상기 그룹 내의 상기 객체들에 대응하는 복사 객체들을 상기 데이터베이스에 저장하는 단계는, 상기 복사 객체들 중 적어도 하나의 복사 객체의 객체 식별자를 상기 그룹 내의 대응 객체의 객체 식별자와 관련하여 저장하는 단계를 포함하는 방법.
  9. 객체 지향 엔터프라이즈 엔지니어링 시스템 내에 표시된 복수의 전임 및 후임 객체들을 복사하는 시스템 - 각각의 후임 객체는 전임 객체와 전임 관계를 가짐 - 으로서,
    복사될 복수의 객체들을 선택하는 사용자로부터의 입력을 수용하도록 구성된 사용자 인터페이스와,
    각각의 선택된 객체에 대해, 상기 선택된 객체에 대응하는 전임 객체들을 자동으로 식별하도록 구성된 식별 모듈과,
    상기 선택된 객체들 및 상기 식별된 전임 객체들을 복수의 순서화된 객체 그룹들로 자동으로 분할하도록 구성된 분할 모듈 - 임의의 주어진 선택된 객체 또는 전임 객체에 대하여, 그 대응하는 전임 객체들은 상기 주어진 객체와 동일한 그룹에 있거나 선행 그룹에 있음 - 과,
    각각의 그룹에서, 원자성 데이터베이스 트랜잭션 동안에, 순서대로
    상기 그룹 내의 객체들에 대응하는 복사 객체들을 데이터베이스에 저장하고,
    상기 그룹 내의 한 객체에 대응하는 적어도 하나의 저장된 복사 객체에 대해, 상기 저장된 복사 객체와 상기 데이터베이스 내의 다른 복사 객체 간의 전임 관계를 설정하는 정보를 상기 데이터베이스에 저장하도록 구성된 저장 모듈 - 그 밖의 객체는 그룹 내의 어떠한 객체에도 대응하지 않으므로, 상기 저장된 복사 객체는 상기 그 밖의 객체의 후임임 -
    을 포함하는 복수의 전임 및 후임 객체들을 복사하는 시스템.
  10. 제9항에 있어서,
    상기 그룹들 중 한 그룹 내의 객체와 상기 그룹들 중 다른 그룹 내의 다른 객체 간에 적어도 하나의 전임 관계가 존재하며,
    상기 저장 모듈은, 상기 그룹들 중 한 그룹에 대한 원자성 데이터베이스 트랜잭션의 부분으로서, 상기 그룹들 중 한 그룹 내의 객체에 대응하는 상기 저장된 복사 객체와 다른 객체에 대응하는 복사 객체 간의 전임 관계를 설정하는 정보를 데이터베이스에 저장하도록 더 구성된, 복수의 전임 및 후임 객체들을 복사하는 시스템.
  11. 제9항에 있어서,
    상기 식별 모듈은 상기 선택된 객체에서 시작하는 경로를 식별하는 데이터를 수신하도록 더 구성되며, 상기 경로는 상기 선택된 객체에 하위인 적어도 하나의 객체를 통해 연장하고, 상기 경로는 적어도 하나의 스텝을 포함하며, 각각의 스텝은 관계 타입 및 방향을 갖는, 복수의 전임 및 후임 객체들을 복사하는 시스템.
  12. 제9항에 있어서,
    상기 식별 모듈은 제1 경로 및 제2 경로를 식별하는 데이터를 수신하도록 더 구성되며, 각각의 경로는 상기 선택된 객체에서 시작하고, 각각의 경로는 상기 선택된 객체에 하위인 적어도 하나의 객체를 통해 연장하며, 각각의 경로는 적어도 하나의 스텝을 포함하고, 각각의 스텝은 관계 타입 및 방향을 가지며, 상기 제1 경로는 상기 선택된 객체에 하위가 아닌 타겟 객체에서 종료하고, 상기 제2 경로는 상기 선택된 객체에 하위인 타겟 객체에서 종료하는, 복수의 전임 및 후임 객체들을 복사하는 시스템.
  13. 제12항에 있어서,
    상기 식별 모듈은 상기 제1 경로 및 상기 제2 경로 중 적어도 하나의 경로로부터의 정보로부터 형성된 질의로 데이터베이스에 질의하도록 더 구성된, 복수의 전임 및 후임 객체들을 복사하는 시스템.
  14. 제9항에 있어서,
    상기 식별 모듈은,
    상기 선택된 객체들의 컴퓨터 판독 가능 표시를 생성하고,
    상기 선택된 객체들의 표시를 정렬하며,
    상기 정렬된 선택된 객체들의 표시를 분할하도록 더 구성된,
    복수의 전임 및 후임 객체들을 복사하는 시스템.
  15. 제9항에 있어서,
    상기 저장 모듈이, 각각의 그룹에서, 원자성 데이터베이스 트랜잭션 중에, 순서대로
    상기 그룹 내의 각각의 선택된 객체에 대해, 상기 선택된 객체에 대응하는 하위 객체들을 자동으로 식별하고,
    상기 식별된 하위 객체들에 대응하는 복사 객체들을 상기 데이터베이스에 저장하도록 더 구성된, 복수의 전임 및 후임 객체들을 복사하는 시스템.
  16. 제9항에 있어서,
    상기 저장 모듈은, 각각의 그룹에서, 상기 그룹 내의 대응 객체의 객체 식별자와 관련하여 상기 복사 객체들 중 적어도 하나의 복사 객체의 객체 식별자를 저장하도록 더 구성된, 복수의 전임 및 후임 객체들을 복사하는 시스템.
  17. 객체 지향 엔터프라이즈 엔지니어링 시스템 내에 표시된 복수의 전임 및 후임 객체들을 복사하는 컴퓨터 시스템에서 사용하기 위한 컴퓨터 프로그램 제품 - 각각의 후임 객체는 전임 객체와 전임 관계를 가짐 - 로서,
    컴퓨터 명령어들이 저장되어 있는 컴퓨터 판독 가능 매체를 포함하며, 상기 명령어들이 프로세서에 의해 실행될 때, 상기 명령어들은, 상기 프로세서로 하여금,
    복사될 복수의 객체들을 선택하는 사용자로부터의 입력을 수용하게 하고,
    각각의 선택된 객체에 대해, 상기 선택된 객체에 대응하는 전임 객체들은 자동으로 식별하게 하며,
    상기 선택된 객체들 및 상기 식별된 전임 객체들을 복수의 순서화된 객체들의 그룹들로 자동으로 분할해서, 임의의 주어진 선택된 객체 또는 전임 객체에 대해, 그 대응하는 전임 객체들이 상기 주어진 객체와 동일한 그룹에 있거나 선행 그룹에 있도록 하며,
    각각의 그룹에 대해, 원자성 데이터베이스 트랜잭션 동안에, 순서대로
    상기 그룹 내의 객체들에 대응하는 복사 객체들을 상기 데이터베이스에 저장하도록 하고,
    상기 그룹 내의 한 객체에 대응하는 적어도 하나의 저장된 복사 객체에 대해, 상기 저장된 복사 객체와 상기 데이터베이스 내의 다른 복사 객체 간의 전임 관계를 설정하는 정보를 상기 데이터베이스에 저장하도록 하는 - 그 밖의 객체는 상기 그룹 내의 어떠한 객체에도 대응하지 않으므로, 상기 저장된 복사 객체는 상기 그 밖의 객체의 후임임 -
    컴퓨터 프로그램 제품.
KR1020107022060A 2008-06-03 2009-06-02 객체 지향 환경에서 다중 트랜잭션 기술을 사용해서 객체들을 복사하는 방법 및 장치 KR101320221B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5853108P 2008-06-03 2008-06-03
US61/058,531 2008-06-03
PCT/US2009/045910 WO2009149045A2 (en) 2008-06-03 2009-06-02 Method and apparatus for copying objects in an object-oriented environment using a multiple-transaction technique

Publications (2)

Publication Number Publication Date
KR20110021719A true KR20110021719A (ko) 2011-03-04
KR101320221B1 KR101320221B1 (ko) 2013-10-21

Family

ID=41319926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107022060A KR101320221B1 (ko) 2008-06-03 2009-06-02 객체 지향 환경에서 다중 트랜잭션 기술을 사용해서 객체들을 복사하는 방법 및 장치

Country Status (11)

Country Link
US (1) US8793218B2 (ko)
EP (1) EP2281253B1 (ko)
KR (1) KR101320221B1 (ko)
CN (1) CN101981575B (ko)
AT (1) ATE534087T1 (ko)
AU (1) AU2009256381B2 (ko)
BR (1) BRPI0910994A2 (ko)
CA (1) CA2717802C (ko)
TW (1) TWI451276B (ko)
WO (1) WO2009149045A2 (ko)
ZA (1) ZA201006504B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180030480A (ko) * 2015-06-05 2018-03-23 헥사곤 테크놀로지 센터 게엠베하 다중 트랜잭션 기술을 사용하여 객체 지향 환경에서 객체들에 대한 기하학적 변환을 수행하기 위한 방법 및 장치
KR20200072987A (ko) * 2018-12-13 2020-06-23 주식회사 한글과컴퓨터 문서에 삽입되어 있는 개체들 간의 서식 속성의 동기화를 처리하는 문서 편집용 전자 단말 장치 및 그 동작 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2784688A1 (en) 2009-12-17 2011-06-23 Fluor Technologies Corporation Plant deliverable management system
US8831920B2 (en) 2010-12-15 2014-09-09 Fluor Technologies Corporation Automated cabling layout systems and methods
US10719537B2 (en) 2012-02-09 2020-07-21 Hexagon Technology Center Gmbh Method and apparatus for performing a geometric transformation on objects in an object-oriented environment using a multiple-transaction technique
US20130212505A1 (en) 2012-02-09 2013-08-15 Intergraph Corporation Method and Apparatus for Performing a Geometric Transformation on Objects in an Object-Oriented Environment using a Multiple-Transaction Technique
CN103123576B (zh) * 2012-12-14 2015-12-09 厦门市美亚柏科信息股份有限公司 一种基于续点的计算机存储介质复制方法
US20140214801A1 (en) * 2013-01-29 2014-07-31 Vito Anthony Ciliberti, III System and Method for Enterprise Asset Management and Failure Reporting
EP3514693A1 (en) 2013-10-29 2019-07-24 Huawei Technologies Co., Ltd. Transaction processing method and apparatus
CN104220982B (zh) * 2013-10-29 2017-03-29 华为技术有限公司 一种事务处理方法与装置
US10372834B2 (en) 2016-01-15 2019-08-06 DISCUS Software Company Creating and using an integrated technical data package
CN108182281B (zh) * 2018-01-26 2022-02-01 创新先进技术有限公司 基于流式计算的数据处理控制方法、装置、服务器及介质
CN113010599B (zh) * 2019-12-19 2023-07-21 中国移动通信集团四川有限公司 Mysql数据库组复制状态监控方法、装置和系统
TWI729793B (zh) * 2020-04-29 2021-06-01 國立臺灣科技大學 組合複數3維建築物模型的方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633869B1 (en) * 1995-05-09 2003-10-14 Intergraph Corporation Managing object relationships using an object repository
US5692184A (en) * 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
TW360831B (en) * 1997-04-10 1999-06-11 Ibm Mobil objects method for controlling mobile objects, method and apparatus for generating mobile object group, and memory medium for storing program for generating mobile object group
US6721713B1 (en) * 1999-05-27 2004-04-13 Andersen Consulting Llp Business alliance identification in a web architecture framework
JP3897948B2 (ja) * 2000-02-14 2007-03-28 富士通株式会社 支援システムおよび支援プログラムを記録したコンピュータ読み取り可能な記録媒体
US7386529B2 (en) * 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing content with event driven actions to facilitate workflow and other features
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7430732B2 (en) * 2003-10-23 2008-09-30 Microsoft Corporation Design of application programming interfaces (APIs)
US20050182775A1 (en) * 2003-12-01 2005-08-18 George Fitzgerald Method of storing fast throughput experimentation information in a database
US7502820B2 (en) * 2004-05-03 2009-03-10 Microsoft Corporation System and method for optimized property retrieval of stored objects
US20060129745A1 (en) * 2004-12-11 2006-06-15 Gunther Thiel Process and appliance for data processing and computer program product
US7627893B2 (en) * 2005-10-20 2009-12-01 International Business Machines Corporation Method and system for dynamic adjustment of computer security based on network activity of users
US7467268B2 (en) * 2006-04-14 2008-12-16 Hewlett-Packard Development Company, L.P. Concurrent data restore and background copy operations in storage networks
US8527721B2 (en) * 2008-12-26 2013-09-03 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
WO2010101540A1 (ru) * 2009-03-02 2010-09-10 Panchenko Borys Evgenijovich Способ каркасного полно-модифицируемого размещения данных в хранилище с учетом их предварительной этимологической сепарации
US8589451B1 (en) * 2012-05-24 2013-11-19 Sap Ag Systems and methods for generating a common data model for relational and object oriented databases

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180030480A (ko) * 2015-06-05 2018-03-23 헥사곤 테크놀로지 센터 게엠베하 다중 트랜잭션 기술을 사용하여 객체 지향 환경에서 객체들에 대한 기하학적 변환을 수행하기 위한 방법 및 장치
KR20200072987A (ko) * 2018-12-13 2020-06-23 주식회사 한글과컴퓨터 문서에 삽입되어 있는 개체들 간의 서식 속성의 동기화를 처리하는 문서 편집용 전자 단말 장치 및 그 동작 방법

Also Published As

Publication number Publication date
TW201011578A (en) 2010-03-16
CN101981575B (zh) 2012-11-28
WO2009149045A3 (en) 2010-01-28
KR101320221B1 (ko) 2013-10-21
CA2717802A1 (en) 2009-12-10
CA2717802C (en) 2015-12-22
ATE534087T1 (de) 2011-12-15
AU2009256381A1 (en) 2009-12-10
BRPI0910994A2 (pt) 2016-01-19
US20090300083A1 (en) 2009-12-03
AU2009256381B2 (en) 2014-09-18
CN101981575A (zh) 2011-02-23
ZA201006504B (en) 2011-05-25
EP2281253B1 (en) 2011-11-16
EP2281253A2 (en) 2011-02-09
WO2009149045A2 (en) 2009-12-10
US8793218B2 (en) 2014-07-29
TWI451276B (zh) 2014-09-01

Similar Documents

Publication Publication Date Title
KR101320221B1 (ko) 객체 지향 환경에서 다중 트랜잭션 기술을 사용해서 객체들을 복사하는 방법 및 장치
US20130212505A1 (en) Method and Apparatus for Performing a Geometric Transformation on Objects in an Object-Oriented Environment using a Multiple-Transaction Technique
Halfawy et al. Building integrated architecture/engineering/construction systems using smart objects: Methodology and implementation
CN107563628A (zh) Bim构件与施工任务关联关系的建立方法及系统
CN105243237A (zh) 一种装配工艺结构树及其构建方法
US10719537B2 (en) Method and apparatus for performing a geometric transformation on objects in an object-oriented environment using a multiple-transaction technique
US7765240B2 (en) Computer-aided modeling
CN105426601A (zh) 一种基于bim的多样性设计方案汇报方法及其系统
KR102039974B1 (ko) 객체의 위치별 작업분류체계와 자동 수량 산출을 이용한 wbs 공사비 자동산출 시스템 및 방법
KR102248977B1 (ko) 플랜트엔지니어링의 3차원 배관경로 자동 생성방법
KR102499332B1 (ko) 다중 트랜잭션 기술을 사용하여 객체 지향 환경에서 객체들에 대한 기하학적 변환을 수행하기 위한 방법 및 장치
Toogood et al. Pro/MECHANICA tutorial structure
Anil et al. Information requirements for design and detailing of reinforced concrete frames in multiuser environments
JPH07103400A (ja) 配管系統のモデリング方法
Vaclav Consistency in the business system model
Vyčítal On BIM Based Automatized ND Modelling for Construction Management
Miroslav On BIM based automatized nD modelling for construction management
JP2015118416A (ja) プラント情報データ付与システム
Haymaker The perspective approach: Enabling engineers to construct and integrate views and generate an evolving project model
Witan The optimization of SQL queries by means of drawing up query diagrams
Pilehchian et al. This file was downloaded from: http://eprints. qut. edu. au/80080
JPH06131273A (ja) プロトコル設計装置

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 6