KR20010040980A - 공유 메모리 공간을 위한 인터렉티브 설계 툴 - Google Patents

공유 메모리 공간을 위한 인터렉티브 설계 툴 Download PDF

Info

Publication number
KR20010040980A
KR20010040980A KR1020007008971A KR20007008971A KR20010040980A KR 20010040980 A KR20010040980 A KR 20010040980A KR 1020007008971 A KR1020007008971 A KR 1020007008971A KR 20007008971 A KR20007008971 A KR 20007008971A KR 20010040980 A KR20010040980 A KR 20010040980A
Authority
KR
South Korea
Prior art keywords
shared memory
memory space
computing resource
image
information describing
Prior art date
Application number
KR1020007008971A
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 KR20010040980A publication Critical patent/KR20010040980A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • 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/451Execution arrangements for user interfaces
    • 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Digital Computer Display Output (AREA)

Abstract

인터넥티브 설계 툴은 설계자가 분산 컴퓨팅 시스템에서 자원과 공유 메모리 공간 간의 오브젝트 흐름을 시각적으로 정의하는 것을 가능하게 한다. 이 설계 툴은 오브젝트 흐름의 시각적 설명을 설명된 오브젝트 흐름을 구현하는 컴퓨터 코드로 자동적으로 변환한다.

Description

공유 메모리 공간을 위한 인터렉티브 설계 툴{An interactive design tool for shared memory spaces}
분산 컴퓨터 시스템은, 컴퓨터가 조작하는 프로그래밍과 데이타가 흔히 많은 컴퓨터를 갖는 네트워크에 걸쳐 하나 이상의 컴퓨터를 통해 확산되는 시스템이다. 분산 시스템을 구성하기 위한 한가지 종래 기술의 방법은 클라이언트-서버 모델을 사용하는 것인데, 여기에서는 분산 시스템(클라이언트)의 한 부분이 분산 시스템(서버)의 다른 부분으로부터 일부 서비스를 요청한다. 서버가 응답한 후에 클라이언트의 요청을 적절히 처리한다.
클라이언트-서버 모델에서는, 클라이언트가 서버에 위치된 프로시져를 만나게 되면, 프로시져는 원격 프로시져 호출(RPC)의 일부 형태를 사용하여 구현될 수 있는데, 클라이언트는 서버에게 임의의 파라메타를 사용하여 실행되는 프로시져와 같이 행동하고, 서버는 프로시져를 실행하고 서버는 그 실행 결과를 클라이언트에 반환한다.
클라이언트-서버 분산 시스템 모델은 "메소드-호출-스타일"을 구현하는데, 여기서, 클라이언트와 서버는 상호 직접 협동하여, 소정의 메소드를 실행한다. 그러나, 플로우-오브-오브젝트 방법(flow-of-objects approach)를 사용하는 많은 분산 알고리즘이 더욱 양호하게 모델될 수 있는데, 여기서 분산 시스템 프로토콜은 오브젝트를 보유하도록 지정된 "공간"(가상 공유 메모리)내로 및 그 밖으로 오브젝트를 이동시키는 것에 기초하고 있다. Linda 프로그래밍 모델에서와 같은 지속적인 공유 메모리 공간은 기술분야에 공지되어 있다. 예를 들어, 이에 대해서는 "Generative Computing in Linda", David Gelernter, ACM Transactions on Programming Language and Systems, Vol. 7, No. 1, pp.80-112(January 1995); "Persistent Linda: Linda+Transactions+Query Processing", Brian G. Anderson, Dennis Shasha; 및 "Adding Fault-tolerant Transaction Processing to LINDA", Scott R. Cannon, David Dunn, Software- Practice and Experience, Vol. 24(5), pp. 446-449(May 1994).
도 1은 모델 분산 알고리즘에 대한 오브젝트 방법의 흐름을 사용하는 예시적인 분산 "책 주문 시스템"(100)을 도시하는 도면이다. 이 시스템에서, 오브젝트(즉, 행위 및/또는 데이타를 포함한 데이타 구조)는 컴퓨터(110-115)에 의해 조작되어 공간(102-105) 내로 및 그 밖으로 "흐른다(flow)". 분산 시스템(100)은 구매자 컴퓨터(110), 중개자 컴퓨터(111) 및 판매자 컴퓨터(112-114)를 포함한다. 공간(110-105)은 컴퓨터(110-115) 중의 하나 또는 도 1에 도시되지 않은 다른 컴퓨터 상에 호스트될 수 있다.
책 구매자(110)가 특정 책의 50권을 사고자 한다고 가정한다. 구매자(110)는 소정의 책에 대한 경매 요청을 포함하는 공간(102)에 오브젝트를 제출한다. 중개자(111)는 공간(102)으로부터 경매 요청을 제거하고, 중개자(111)로서 등록된 특정 책 도매자(112-114)의 공간에 대응하는, 경매 요청 또는 적절히 수정된 버젼의 경매 요청을 공간(103-105)에 기록한다. 각 도매자(112-114)에 있는 서버는 그 지정된 공간(103-105)으로부터 각각 경매 요청을 제거하고, 사람에게 요청을 제시한다. 사람은 경매를 준비한 다음, 중개자(111)에 의해 공간(102)으로 전달하기 위해 경매를 다시 도매자 공간에 기록한다.(선택적으로, 경매는 도매자(112-114)에 의해 공용 공간(102)에 직접 기록될 수 있다.) 경매 기간이 끝나면, 구매자(110)는 공간(102)으로부터 경매를 제거하고, 낙찰 경매를 선택하도록 인간에게 제시한다.
책 주문 시스템(100)은 컴퓨터(110-114)가 인터렉트하는, 단일 인터페이스, 공유 메모리 공간 인터페이스만을 사용하여 분산 책 주문 알고리즘을 구현한다.
비록 상술한 공유 메모리 공간 인터페이스가 분산 컴퓨팅 자원을 구성하기 위한 강력한 방법론을 제시하지만, 프로그래머가 모든 원격 프로시져 호출을 수동적으로 코드화하고 메모리 공간에 의해 사용되는 오브젝트의 타입을 포함한 공유 메모리 공간에 대한 조작을 수동적으로 지정할 것을 필요로 하기 때문에, 연관된 오브젝트 및 컴퓨팅 자원과 공간의 구성을 설계하기 위한 현재의 툴은 조악하다. 따라서, 기술분야에서는 공간 및 플로우-오브-오브젝트 모델을 사용하여 분산 알고리즘을 설계하기 위한 보다 세련된 사용자에게 친근한 툴의 필요성이 존재한다.
본 발명은 총체적으로 분산 컴퓨터 시스템에 관한 것으로, 더 상세하게는 분산 컴퓨터 시스템에서 오브젝트 흐름의 모델링에 관한 것이다.
본 발명에 일체화되고 본 명세서의 일부를 구성하는 첨부 도면들은 본 발명에 따른 몇몇 실시예를 예시하며, 상세한 설명과 함께 본 발명의 원리를 설명하는데 도움이 된다.
도 1은 분산 시스템을 모델하기 위해 오브젝트 접근방법의 흐름을 사용하여 예시적인 분산 시스템을 도시하는 도면.
도 2는 예시적인 분산 시스템도.
도 3은 예시적인 분산 시스템 내의 예시적인 컴퓨터를 도시하는 도면.
도 4A-4D는 본 발명에 따른 인터렉티브 설계 툴의 예시적인 그래픽 인터페이스를 도시하는 도면.
도 5는 컴퓨터 코드를 발생시키기 위한, 본 발명에 따른 방법을 도시하는 순서도.
도 6은 발생된 컴퓨터 코드의 예시적인 부분을 도시하는 도면.
본 발명의 목적 및 장점은 부분적으로 이하에 설명되는 상세한 설명에 개진되며, 부분적으로 상세한 설명으로부터 명확 또는 실용상 본 발명을 알 수 있을 것이다. 본 발명의 목적 및 장점은, 첨부하는 특허청구범위에서 특별하게 지적된 구성요소 및 결합에 의해 실현되고 달성될 것이다.
본 명세서에 예시적으로 그리고 포괄적으로 설명된 바와 같이, 본 발명에 따른 목적을 달성하기 위해, 본 발명에 따른 제1 특징은, 공유 메모리 내의 오브젝트흐름을 정의하는 컴퓨터 코드를 발생하는 방법을 포함하되, 상기 방법이 (1) 컴퓨터 자원을 나타내는 이미지 및 공유 메모리 공간을 나타내는 이미지가 놓이는 그래픽 인터페이스를 디스플레이하는 단계; (2) 그래픽 인터페이스를 통해 입력되며, 컴퓨팅 자원과 공유 메모리 공간 간의 오브젝트 흐름을 설명하는 정보를 저장하는 단계; 및 (3) 공유 메모리 공간과 컴퓨팅 자원 간에 기술되는 오브젝트 흐름을 구현하는 컴퓨터 코드를 발생시키는 단계를 포함한다.
본 발명에 따른 제2 특징은, 공유 메모리에서의 오브젝트 흐름을 정의하는 컴퓨터 코드를 발생시키는 방법을 포함하되, 상기 방법이 (1) 그래픽 디스플레이 영역 상에 컴퓨팅 자원의 그래픽 표현을 위치시키는 단계; (2) 그래픽 디스플레이 영역 상에 공유 메모리 공간의 그래픽 표현을 위치시키는 단계; (3) 컴퓨팅 자원의 그래픽 표현과 공유 메모리 공간의 그래픽 표현 간의 데이타 흐름을 설명하는 정보를 입력하는 단계; 및 (4) 공유 메모리 공간의 그래픽 표현에 대응하는 공유 메모리 공간과, 컴퓨팅 자원의 그래픽 표현에 대응하는 컴퓨팅 자원 간의 오브젝트 흐름을 구현하는 컴퓨터 코드를 자동적으로 발생시키는 단계를 포함한다.
제1 특징에 관련된 본 발명의 부수적인 특징은 컴퓨터 판독가능 매체 및 컴퓨터 시스템에 관한 것이다.
인터넥티브 설계 툴은 설계자가 분산 컴퓨팅 시스템에서 자원과 공유 메모리 공간 간의 오브젝트 흐름을 시각적으로 정의하는 것을 가능하게 한다. 이 설계 툴은 오브젝트 흐름의 시각적 설명을 설명된 오브젝트 흐름을 구현하는 컴퓨터 코드로 자동적으로 변환한다.
첨부 도면을 참조하여 지금부터 바람직한 실시예의 상세한 설명을 설명한다.
시스템 개관
본 발명에 따른 방법 및 시스템은 하드웨어와 소프트웨어를 포함한 다양한 구성요소와 함께 분산 시스템("예시적인 분산 시스템")에서 동작한다. 예시적인 분산 시스템은 (1) 시스템의 사용자가 많은 장치의 네트워크를 통해 서비스와 자원을 공유할 수 있게 하며, (2) 신뢰성있고 안전한 분산 시스템의 개발을 가능하게 하는 툴과 프로그래밍 패턴을 프로그래머에게 제공하며, 그리고 (3) 분산 시스템을 관리하는 작업을 간단하게 한다. 이와 같은 목표를 달성하기 위해, 예시적인 분산 시스템은 일관성있는 방식으로 장치에서 장치로 코드 및 데이타 모두가 이동될 수 있게 하는 자바(Java)TM프로그래밍 환경을 이용한다. 따라서, 예시적인 분산 시스템은 자바 프로그래밍 환경의 상부 상에 계층화되어 있고, 그것에 의해 제공된 보안과 그것에 의해 제공된 강력한 타이핑을 포함한 환경의 특성을 이용한다. 자바 프로그래밍 환경은 본 발명의 참조로서 일체화되어 있는 Jaworski, Java 1.1 Developer's Guide, Sams.net(1997)에 보다 명확히 설명되어 있다.
예시적인 분산 시스템에서, 서로 다른 컴퓨터 및 장치들이 사용자에게 단일 시스템으로 보이는 것에 통합된다. 단일 시스템으로 보이게 함으로써, 예시적인 분산 시스템은 퍼스널 컴퓨터 또는 워크스테이션의 유연성 및 전용화 응답을 포기하지 않고 단일 시스템에 의해 제공될 수 있는 액세스의 간편성과 공유력을 제공한다. 예시적인 분산 시스템은 그래픽하게 분산되어 있지만, 신탁, 관리 및 정책의 기본적인 주석을 충족하는 사용자에 의해 운영되는 수많은 장치를 포함할 수 있다.
예시적인 분산 시스템은 하나의 이상의 장치에 의해 제공되는 서비스의 다양한 논리적 그룹핑이며, 각각의 이와 같은 논리적 그룹핑은 Djinn으로 알려져 있다. "서비스"는 사용자, 프로그램, 장치 또는 다른 서비스에 의해 액세스될 수 있으며,연산, 기억 관련, 통신 관련 또는 다른 사용자에의 액세스를 제공하는 것에 관련될 수 있는 자원, 데이타, 또는 기능을 가리킨다. Djinn의 일부로서 제공된 서비스의 예는 프린터, 디스플레이, 및 디스크와 같은 장치; 및 프로그램 또는 유틸리티와 같은 소프트웨어; 데이타베이스 및 파일과 같은 정보; 및 시스템의 사용자를 포함한다.
사용자 및 장치 모두는 Djinn일 수 있다. Djinn을 결합하면, 사용자 또는 장치는 Djinn에 제로 이상의 서비스를 부가하며, 보안 제한에 따라 포함하고 있는서비스중 임의의 서비스를 액세스할 수 있다. 따라서, 장치 및 사용자는 그 서비스에의 액세스를 위해 Djinn에 통합된다. Djinn의 서비스는, 프로그래밍적으로, 다른 오브젝트, 서로 다른 프로그래밍 언어로 작성된 소프트웨어 구성요소 또는 하드웨어 장치를 포함할 수 있는 자바 프로그래밍 환경의 오브젝트로서 보인다. 서비스는 해당 서비스를 요청할 수 있는 연산을 정의하는 인터페이스를 가지고 있으며, 서비스의 종류는 서비스를 구성하는 인터페이스를 결정한다.
도 2는 네트워크(208)에 의해 상호연결된 컴퓨터(202), 컴퓨터(204), 및 장치(206)를 포함하는 예시적은 분산 시스템(200)을 도시한다. 장치(206)는 프린터, 팩스밀리기, 기억장치, 컴퓨터 또는 다른 장치와 같은 많은 장치중 임의의 장치일 수 있다. 네트워크(208)는 국부 영역 네트워크, 광대역 네트워크 또는 인터넷일 수 있다. 비록 두개의 컴퓨터와 하나의 장치만이 예시적인 분산 시스템(200)을 구성하는 것으로 도시되어 있지만, 기술분야의 숙련자는 예시적인 분산 시스템(200)은 부수적인 컴퓨터 또는 장치를 포함할 수 있다는 것을 알 것이다.
도 3는 분산 시스템(200)의 많은 소프트웨어 및 하드웨어 구성요소를 상세히 도시하는 컴퓨터(202)를 도시한다. 기술분야의 숙련자는 컴퓨터(204) 또는 장치(206)가 유사하게 구성될 수 있다는 것을 알 것이다. 컴퓨터(202)는 메모리(302), 보조 기억장치(304), 중앙 처리 장치(CPU)(306), 입력 장치(308), 및 비디오 디스플레이 또는 모니터(310)를 포함한다. 메모리(302)는 룩업 서비스(312), 디스커버리 서버(314), 및 자바 런타임 시스템(316)을 포함한다. 자바 런타임 시스템(316)은 자바TM원격 메소드 호출(RMI) 시스템(318) 및 자바 버츄얼 머신(320)을 포함한다. 보조 기억장치(304)는 JavaSpace(322)를 포함한다.
상술한 바와 같이, 예시적인 분산 시스템(200)은 자바 프로그래밍 환경에 기초하며, 따라서 자바 런타임 시스템(316)을 이용한다. 자바 런타임 시스템(316)은 자바 런타임 시스템의 상부 상에서 실행하는 프로그램들이 플랫폼에 독립하는 방식으로, 호스트 운영체제의 윈도우잉 능력 및 네트워킹 능력을 포함한 다양한 시스템 기능에 액세스하는 것을 가능하게 하는 자바 API를 포함한다. 자바 API가 자바 런타임 시스템이 포트되어 있는 모든 운영체제에 걸쳐 단일의 공통 API를 제공하기 때문에, 자바 런타임 시스템의 상부 상에서 실행하는 프로그램들은 호스트 플랫폼의 운영 체제 또는 하드웨어 구성에 무관하게 플랫폼에 독립하는 방식으로 실행한다. 자바 런타임 시스템(316)은 캘리포니아주, 마운틴 뷰에 위치한 선 마이크르시스템즈, 인크.로부터 입수할 수 있는 자바 소프트웨어 개발 킷의 일부로서 제공된다.
자바 버츄얼 머신(320)은 또한 플랫폼 독립을 용이하게 한다. 자바 버츄얼 머신(320)은 바이트코드 형태로 프로그램으로부터 명령을 수신하고, 이들 바이트코드를 오브젝트 코드와 같은 실행 형태로 동적으로 변환하여 이를 실행함으로써 해석하는 추상 컴퓨팅 머신과 같이 행동한다. RMI(318)는 하나의 컴퓨터 또는 장치 상에서 실행하는 오브젝트가 다른 컴퓨터 또는 장치 상에서 실행하는 오브젝트의 메소드를 호출하게 함으로써, 원격 메소드 호출을 용이하게 한다. RMI 및 자바 버츄얼 머신 모두는 또한 자바 소프트웨어 개발 킷의 일부로서 제공된다.
룩업 서비스(312)는 특정 Djinn에 이용가능한 서비스를 정의한다. 즉, 하나 이상의 Djinn, 결국 예시적인 분산 시스템(200) 내에 하나 이상의 룩업 서비스가 존재할 수 있다. 룩업 서비스(312)는 Djinn 내의 각각의 서비스를 위한 하나의 오브젝트를 포함하고, 각각의 오브젝트는 대응하는 서비스에의 액세스를 용이하게 하는 다양한 메소드를 포함한다. 룩업 서비스(312)는 본 발명의 참조로서 일체화되어 있는 "Method and System for Facilitating Access to a Lookuo Service"라는 제목의 현재 계류중인 미국특허출원 제 에 상세히 설명되어 있다.
디스커버리 서버(314)는 부트와 조인(join) 또는 디스커버리라고 하는 프로세스 동안 새로운 장치가 분산 시스템(200)에 부가된 때를 검출하고, 이와 같은 새로운 장치가 검출되면, 디스커버리 서버는 새로운 장치로 룩업 서비스(312)에 대한 참조를 전달함으로써, 새로운 장치가 룩업 서비스로서 그 서비스를 등록할 수 있으며, Djinn의 멤버가 된다. 등록후에, 새로운 장치는 Djinn의 멤버가 되며, 결국, 룩업 서비스(312)에 포함된 모든 서비스를 액세스할 수 있다. 부트 및 결합의 프로세스는 본 발명의 참조로서 일체화되어 있는 "Apparatus and Method for providing Downlodable Code for Use in Communicating with a Device in a Distributed System"이라는 제목의 미국특허출원 제 호에 설명되어 있다.
기술분야의 숙련자는 예시적인 분산 시스템(200)은 많은 룩업 서비스, 디스커버리 서버 및 JavaSpace를 포함할 수 있다는 것을 알 것이다.
비록 본 발명에 따른 시스템 및 방법이 예시적인 분산 시스템 및 자바 프로그래밍 환경에서 동작하는 것으로 설명되지만, 기술분야의 숙련자는 본 발명의 다른 시스템 및 다른 프로그래밍 환경에서 실행될 수 있다는 것을 알 것이다. 부수적으로, 본 발명의 특징이 메모리에 기억되는 것으로 설명되지만, 기술분야의 숙련자는 이와 같은 특징들은 또한 하드 디스크, 플로피 디스크 또는 CD-ROM과 같은 보조 기억 장치와 같은 다른 형태의 컴퓨터 판독 매체; 인터넷으로부터의 반송파 또는 다른 형태의 RAM 또는 ROM 상에 기억되거나 그로부터 판독될 수 있다는 것을 알 것이다.
JavaSpace 모델 및 용어
본 발명에 따른 인터렉티브 설계 툴은 설계자가 분산 컴퓨팅 시스템을 모델링하는 것에 대한 플로우-오브-오브젝트 방법에서의 공유 메모리 공간을 사용하여 분산 프로그램을 개발하는 것을 용이하게 한다. 본 명세서 전반에 걸쳐 사용된 바와 같이, "공유 메모리 공간"은 하나 이상의 프로세스에 의해 보여질 수 있거나 또는 모델될 수 있는 임의의 메모리를 지칭한다.
비록 본 발명의 개념이 분산 시스템을 모델링하는 것에 대한 플로우-오브-오브젝트 방법을 구현하는 임의의 유형의 공유 메모리 공간에 동등하게 적용되지만, 본 발명의 실시예에서는 JavaSpace(322)와 같은 JavaSpace가 사용된다.
JavaSpace(322)는 오브젝트를 저장하는 분산 시스템(200) 내의 프로그램에 의해 사용되는 오브젝트 저장고(repository)이다. 프로그램은 JavaSpace(322)를 사용하여 자바 분산 시스템 내의 다른 장치에 액세스가능하게 하는 것은 물론 오브젝트를 지속적으로 저장한다. JavaSpace는 본 발명의 참조로서 일체화되어 있고 본 출원의 양수인에게 양도된 "Database System Employing Polymorphic Entry and Matching"(1997년, 11월 17일 출원)이라는 제목의 현재 계류중인 미국특허출원 제08/971,529호에 상세히 설명되어 있다.
JavaSpace는 엔트리가 오브젝트의 타입된 그룹인 엔트리를 보유한다. 엔트리는 JavaSpace내의 엔트리의 복사본을 생성하는 JavaSpace로 작성될 수 있다. 엔트리는 정확하게 일치되어야만 하는 지정된 값들로 설정된 일부 또는 모든 필드를 갖는 엔트리 오브젝트인 템플릿을 사용하여 JavaSpace에서 룩업될 수 있다. 나머지 필드들은 와일드카드로서 남아있거나 이들 필드들은 룩업에서 사용되지 않는다.
JavaSpace는 두가지 종류의 룩업 연산: 판독(read)과 테이크(take)를 지원한다. JavaSpace에 대한 판독 요청은 판독가 실행되는 템플릿에 일치하는 엔트리, 또는 어떠한 일치도 발견되지 않았다는 표시를 반환한다. 테이크 요청은 판독과 같이 동작하지만, 만일 일치가 발견되면 일치 엔트리가 JavaSpace으로부터 제거된다. 지정된 템플릿에 일치하는 엔트리가 기록되면 JavaSpace가 요청자에게 통지하도록, JavaSpace에게 대기 요청이 이루어질 수 있다.
JavaSpace을 수정하는 모든 연산은 바람직하게 해당 공간에 대해 거래상 안전하게 수행된다. 즉, 만일 기록 연산이 성공적으로 반환하면, 그 엔트리가 공간에 기록된다. 만일 테이크 연산이 엔트리를 반환하면, 그 엔트리가 공간으로부터 제거되고, 어떠한 미래의 연산도 동일한 엔트리를 판독하거나 또는 테이크하지 않는다. 다른 말로 표현하면, 비록 JavaSpace 내의 두개 이상의 엔트리가 정확하게 동일한 값을 가질 수 있더라도, JavaSpace내의 각각의 엔트리는 기껏해야 한번 테이크될 수 있다.
인터렉티브 설계 툴
본 발명에 따른 인터렉티브 설계 툴(IDT)은 사용자가 JavaSpace을 통해 오브젝트 데이타 흐름을 인터렉티브하고 시각적으로 설계하는 것을 가능하게 한다. IDT의 사용자는 오브젝트 흐름을 관리하는 프로토콜을 시각적으로 그리고 그래픽하게 정의할 수 있다. 이때 IDT는 프로토콜을 구현하는 컴퓨터 코드를 생성할 수 있다.
도 4A-4D는 본 발명에 따른 예시적인 그래픽 인터페이스를 도시하는 도면이다. IDT는 바람직하게 메모리(302)에 기억되며, 컴퓨터(202)에 의해 실행되고, 디스플레이(30) 상에 그래픽 인터페이스를 제시하는 프로그램이다.
도 4A에 도시한 바와 같이, 그래픽 인터페이스(400)는 설계 영역(402)과 툴 바(406)를 포함한다. 설계 영역(402)에서, 프로그래머는 JavaSpace의 그래픽 표현, 및 JavaSpace를 액세스하는 클라이언트를 조작한다. JavaSpace 및 클라이언트 컴퓨팅 자원(즉, 컴퓨터)의 표현이 툴 바(406) 상에 디스플레이된다. 예를 들어, 도시한 바와 같이, JavaSpace는 아이콘(408)로서 표현되고 컴퓨팅 자원은 아이콘(407)로서 표현된다. 설계 영역(402)에 JavaSpace을 부가하기 위해, 프로그래머는 간단히 JavaSpace 아이콘(308)을 클릭하고, 그것을 설계 영역(402)으로 드래그한다. 유사하게 클라이언트 컴퓨터는 아이콘(407)을 클릭함으로써 부가될 수 있다.
"코드 생성(create code)"이라고 표시된 버튼(409)이 활성화되면 IDT가 JavaSpace의 엔트리 타입을 정의하는 클래스 필드를 생성하고/거나 설계 영역(402)에 놓인 클라이언트의 스켈턴(skeleton) 코드 또는 부분 스켈턴 코드를 발생하게 한다. 다른 말로 표현하면, 설계 영역(402)에 시각적으로 그려진 정보에 따라, IDT는 설계 영역(402)에 프로그래머에 의해 정의된 기능을 표현하는 컴퓨터 코드를 발생함으로써, 프로그래머가 코드를 수동적으로 작성하는 부담을 절약하게 한다. 특히, 컴퓨터 코드는 적당한 JavaSpace에 대해 클라이언트에 의해 수행되는 원격 프로시져 호출의 구현을 포함한다.
IDT의 비록 그래픽 사용자 인터페이스(400)가 두개의 아이콘과 하나의 버튼을 갖는 툴 바를 구비하는 것으로 도시되어 있지만, 기술분야의 숙련자는 설계 영역(402)과 툴 바(406)의 가능한 많은 구현이 존재한다는 것을 알 것이다. 예를 들어, 툴 바(406)는 서로 다른 유형의 컴퓨팅 자원을 표현하는 부수적인 아이콘을 포함할 수 있거나 또는 풀 다운 메뉴로 구현될 수 있다.
상술한 바와 같이, 본 발명에 따른 개념 및 특징을 보다 명확히 하기 위해, 지금부터 IDT를 사용하는 예시적인 분산 시스템의 생성을 분산 컴퓨팅 시스템의 구성에서 다양한 포인트에서의 인터페이스(400)의 예를 도시하는 도 4B 및 도 4D를 참조하여 설명한다.
도 4B는 프로그래머가 JavaSpace(410)를 설계 영역(402)에 부가한 후의 설계 영역(402)을 도시한다. 예시로서, JavaSpace(410)는 이미지의 일부를 저장하는 "그래픽 오브젝트"를 포함하는 엔트리를 보유한다.
도 4C는 프로그래머가 클라이언트 컴퓨터 시스템(412)을 부가하고, 클라이언트 컴퓨터 시스템(412)이 JavaSpace(410)에의 그래픽 오브젝트 엔트리를 기록할 것이라는 것(선(413)으로 표시)을 가리킨 후의 설계 영역(402)을 도시한다. 이때, IDT는 다이얼로그 박스(415)를 표시할 수 있는데, 여기서 사용자는 JavaSpace(410)에 기록된 엔트리의 명칭(즉, "이미지 세그먼트") 및 종류(즉, 그래픽 오브젝트)를 입력할 수 있다. 유사하게, 프로그래머가 JavaSpace에 대한 새로운 오브젝트 타입을 정의할 수 있게 하는 것과 같은 부수적인 다이얼로그 박스를 사용할 수 있다.
도 4D는 프로그래머가 제2, 제3 및 제4 클라이언트 컴퓨터 시스템(416-418)을 각각 부가한 후의 설계 영역(402)을 도시한다. 클라이언트(4156 및 417)는 JavaSpace(410)로부터 엔트리를 테이크(takes)하고 JavaSpace(410)에 엔트리를 기록한다. 클라이언트(416 및 417)는 예를 들어, JavaSpace(410) 내의 그래픽 오브젝트 엔트리에 대한 이미지 처리 연산을 수행하는 전용 고속 그래픽 워크스테이션일 수 있다. 보다 상세하게, 클라이언트(416 및 417)는 "그래픽 오브젝트"가 ㅗㅇ간(410)에 기록될 때마다 일치를 가리키는 템플릿을 사용하여 공간(410)을 모니터한다. 이때 일치된 오브젝트가 JavaSpace(410)에 대해 조작되며 다시 이곳으로 기록되는 공간(410)으로부터 클라이언트(416 및 417)중의 하나에 의해 테이크된다. 클라이언트(418)는 JavaSpace(410)으로부터 클라이언트(416 및 417)에 의해 조작되는 엔트리를 테이크한다.
상술한 바와 같이, 클라이언트가 JavaSpace으로부터 엔트리를 기록, 테이크 또는 판독하는 표시는, 오브젝트 플로우를 그래픽하게 도시하는 다른 방법들이 선택적으로 사용될 수 있지만, 바람직하게 도 4C와 도 4D에 도시된 선을 사용하여 프로그래머에게 가리켜진다.
클라이언트 코드 버튼(409)가 프로그래머에 의해 활성화되면, IDT는 설계 영역(410) 내의 각 클라이언트에 대해 컴퓨터 코드를 발생한다. 도 4D에 도시한 예에서, IDT는 클라이언트(412,417 및 418)에 대한 컴퓨터 코드를 발생할 것이다. 일반적으로, 각각의 클라이언트의 경우, IDT는 프로그래머에 의해 지정된 엔트리 타입을 사용하여 지정된 JavaSpace(s)에 대한 기록, 테이크 또는 판독 동작을 수행하는 코드를 발생한다.
도 5는 IDT에 의한 컴퓨터 코드의 발생을 도시하는 순서도이다. IDT는 설계 영역 내의 각각의 클라이언트의 각 JavaSpace 연산(즉, 각각의 기록, 판독 또는 테이크 연산마다)용 코드를 발생한다. 일반적으로, IDT는 각각의 클라이언트에 대해 개별적인 프로그램 또는 코드 모듈을 기록할 것이다(단계 502, 503). 각각의 코드 모듈에서, IDT는 각각의 JavaSpace 연산에 대응하는 코드를 발생한다(단계 504 및 505). 바람직하게, JavaSpace 연산용 코드를 기록할 때, IDT는 또한 코드에 상관하는 정보를 시각 디스플레이 영역에 저장하고(단계 506), 그로 인해 IDT는 프로그래머가 분산 시스템의 시각적 표면을 변경하면 코드를 적절히 갱신하거나 또는 프로그래머가 코드를 수동적으로 변경하면 시각적 표현을 갱신하는 것을 가능하게 한다. 시각적 설명과 컴퓨터 코드 간의 상관은 컴퓨터 코드 내의 코멘트 주석을 사용하여 또는 발생된 코드 및 시각적 설명 간의 대응을 저장하는 데이타베이스를 생성함으로써 구현될 수 있다.
도 6은 클라이언트(416 및 417)중의 한 클라이언트에 대해 발생된 예시적인 코드 모듈을 도시하는 도면이다. 도 4D에 도시한 바와 같이, 각각의 클라이언트(416 및 417)는 그래픽 오브젝트를 테이크하고 그래픽 오브젝트를 기록한다. 이들 두개의 JavaSpace 연산은 각각 코드 섹션(602 및 604)로 도시되어 있다. 프로그래머는 코드 섹션(601,603 및 605)과 같은 부수적인 코드를 부가할 수 있다. 예를 들어, 코드 섹션(603)은 코드 섹션(602)에 의해 테이크된 그래픽 오브젝트에 대한 이미지 유연화 연산과 같은 이미지 처리 연산을 수행할 수 있다. 코드 섹션(604)은 JavaSpace(410)에 다시 유연화된 코드 섹션을 기록한다.
IDT는 JavaSpace 연산을 구현하는데 필요한 명령(들)을 참조하고, 예를 들어조작될 JavaSpace의 이름 또는 어드레스 및 JavaSpace로부터 기록, 테이크 또는 판독될 엔트리의 식별과 같은 적당한 파라메타 데이타를 명령에 부가함으로써, 각각의 JavaSpace 연산에 대응하는 코드의 선들을 발생한다. JavaSpace 연산을 구현하는데 필요한 명령의 이 리스트가 IDT에 미리 정의된다.
본 발명에 설명된 인터렉티브 설계 툴은 프로그래머가 분산 시스템 내의 공유 메모리 공간을 통해 하이 레벨의 흐름을 시각적으로 설계한 다음, 설계를 구현하는 컴퓨터 코드를 발생하는 것을 가능하게 한다. 시각적 표현 및 컴퓨터 코드가 링크되어 있어, 그들중의 하나에 대해 후속하는 변화가 발생되면, 다른 하나가 자동적으로 갱신된다. 이는 프로그래머가 분산 시스템에서의 오브젝트 흐름을 용이하게 설계하고 레이아웃하는 것을 가능하게 하기 때문에 장점이 되고 있다. 이때 프로그래머는 컴퓨터 코드에 상세한 설명과 부수적인 기능을 부가할 수 있다.
비록 본 발명의 바람직한 실시예 및 방법으로 간주되는 것이 예시되고 설명되었지만, 기술분야의 숙련자는 본 발명의 범위를 일탈하지 않고도 다양한 변형과 수정이 있을 있다는 것과 그 구성요소를 대체할 수 있다는 것을 알 것이다. 예를 들어, 상기 시스템 및 방법이 JavaSpace를 이용한 자바에 기초한 런타임 환경을 참조하여 설명되었지만, 다른 런타임 환경 및 공유 메모리가 사용될 수 있다. 또한, 비록 상기 시스템 및 방법이 오브젝트의 전통적인 오브젝트 지향 정의를 사용하여 오브젝트 플로에서의 오브젝트를 지칭하였지만(즉, 함수와 데이타 모두를 갖는 능력을 구비한 데이타 구조), C 언어 "구조"와 같은 단순한 데이타 전용 구조가 사용될 수 있다.
부수적으로, 본 발명의 범위를 일탈하지 않고 본 발명의 가르침에 대한 특정 구성요소, 기법 또는 구현에 맞도록 많은 변형이 이루어질 수 있다. 따라서, 본 발명은 본 명세서에 기술된 특정 실시예 및 방법에 제한되지 않고, 그보다는 본 발명은 첨부하는 특허청구범위의 범위 내에 포괄하는 모든 실시예를 포함하도록 의도되어 있다.

Claims (18)

  1. 공유 메모리 공간에서의 오브젝트 흐름(object flow)을 정의하는 컴퓨터 코드를 발생하는 방법에 있어서,
    자원을 표현하는 이미지와 상기 공유 메모리 공간을 표현하는 이미지가 놓여있는 그래픽 인터페이스를 디스플레이하는 단계;
    상기 그래픽 인터페이스를 통해 입력되며, 컴퓨터 자원과 공유 메모리 공간 간의 오브젝트 흐름을 설명하는 정보를 저장하는 단계; 및
    공유 메모리 공간과 컴퓨팅 자원 간에 기술된 오브젝트 흐름을 구현하는 컴퓨터 코드를 발생시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 공유 메모리 공간은 JavaSpace인 방법.
  3. 제1항에 있어서, 상기 공유 메모리 공간과 상기 컴퓨팅 자원 간의 오브젝트 흐름을 설명하는 정보를 저장하는 상기 단계는, 상기 컴퓨팅 자원이 상기 공유 메모리 공간으로부터 엔트리를 테이크(take)하는 것을 설명하는 정보를 저장하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 공유 메모리 공간과 상기 컴퓨팅 자원 간의 오브젝트 흐름을 설명하는 정보를 저장하는 상기 단계는, 상기 컴퓨팅 자원이 상기 공유 메모리 공간에의 엔트리를 기록하는 것을 설명하는 정보를 저장하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 공유 메모리 공간과 상기 컴퓨팅 자원 간의 오브젝트 흐름을 설명하는 정보를 저장하는 상기 단계는, 상기 컴퓨팅 자원이 상기 공유 메모리 공간으로부터 엔트리를 판독하는 것을 설명하는 정보를 저장하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 그래픽 인터페이스 상의 이미지가 수정될 때 상기 발생된 컴퓨터 코드를 자동적으로 갱신하는 단계를 더 포함하는 방법.
  7. 공유 메모리에서의 오브젝트 흐름을 정의하는 컴퓨터 코드를 발생시키는 방법에 있어서,
    그래픽 디스플레이 영역 상에 컴퓨팅 자원의 그래픽 표현을 위치시키는 단계;
    상기 그래픽 디스플레이 영역 상에 공유 메모리 공간의 그래픽 표현을 위치시키는 단계;
    상기 컴퓨팅 자원의 그래픽 표현과 상기 공유 메모리 공간의 그래픽 표현 간의 데이타 흐름을 설명하는 정보를 입력하는 단계; 및
    상기 공유 메모리 공간의 그래픽 표현에 대응하는 공유 메모리 공간과, 상기 컴퓨팅 자원의 그래픽 표현에 대응하는 컴퓨팅 자원 간의 오브젝트 흐름을 구현하는 컴퓨터 코드를 자동적으로 발생시키는 단계
    를 포함하는 방법.
  8. 제7항에 있어서, 상기 공유 메모리 공간은 JavaSpace인 방법.
  9. 제7항에 있어서, 상기 공유 메모리 공간의 그래픽 표현과 상기 컴퓨팅 자원 의 그래픽 표현 간의 데이타 흐름을 설명하는 정보를 입력하는 상기 단계는, 상기 컴퓨팅 자원이 상기 공유 메모리 공간의 그래픽 표현으로부터 엔트리를 테이크(take)하는 것을 설명하는 정보를 입력하는 단계를 더 포함하는 방법.
  10. 제7항에 있어서, 상기 공유 메모리 공간의 그래픽 표현과 상기 컴퓨팅 자원 의 그래픽 표현 간의 데이타 흐름을 설명하는 정보를 입력하는 상기 단계는, 상기 컴퓨팅 자원이 상기 공유 메모리 공간의 그래픽 표현에의 엔트리를 기록하는 것을 설명하는 정보를 입력하는 단계를 더 포함하는 방법.
  11. 제7항에 있어서, 상기 공유 메모리 공간의 그래픽 표현과 상기 컴퓨팅 자원 의 그래픽 표현 간의 데이타 흐름을 설명하는 정보를 입력하는 상기 단계는, 상기 컴퓨팅 자원이 상기 공유 메모리 공간의 그래픽 표현으로부터 엔트리를 판독하는 것을 설명하는 정보를 입력하는 단계를 더 포함하는 방법.
  12. 제7항에 있어서, 상기 그래픽 디스플레이의 이미지가 수정될 때 상기 발생된 컴퓨터 코드를 자동적으로 갱신하는 단계를 더 포함하는 방법.
  13. 공유 메모리에서의 오브젝트 흐름을 정의하는 컴퓨터 코드를 발생시키기 위한 컴퓨터 상에 실행가능한 명령을 포함하는 컴퓨터 판독가능 매체에 있어서,
    상기 명령은, 상기 컴퓨터 상에서 실행될 때,
    컴퓨팅 자원을 표현하는 이미지와 상기 공유 메모리를 표현하는 이미지가 놓인 그래픽 인터페이스를 디스플레이하는 단계;
    상기 그래픽 인터페이스를 통해 입력되고, 상기 컴퓨팅 자원과 상기 공유 메모리 공간 간의 오브젝트 흐름을 설명하는 정보를 저장하는 단계; 및
    상기 공유 메모리 공간과 상기 컴퓨팅 자원 간에 설명된 상기 오브젝트 흐름을 구현하는 컴퓨터 코드를 발생하는 단계
    를 수행하는 컴퓨터 판독가능 매체.
  14. 컴퓨터 시스템에 있어서,
    컴퓨팅 자원을 표현하는 이미지와 공유 메모리 공간을 표현하는 이미지가 놓인 그래픽 인터페이스를 디스플레이하기 위한 디스플레이;
    인터페이스 설계 툴(IDT) 프로그램을 포함하는 메모리 - 상기 IDT 프로그램은 상기 그래픽 인터페이스를 제어하기 위한 수단, 상기 그래픽 인터페이스에 입력되고 상기 컴퓨팅 자원의 이미지 및 상기 공유 메모리 공간의 이미지 간의 오브젝트 흐름을 설명하는 정보를 저장하기 위한 수단, 및 상기 공유 메모리 공간과 상기 컴퓨팅 자원 간에 설명되는 오브젝트 흐름을 구현하는 컴퓨터 코드르 발생시키기 위한 수단을 포함함-;
    상기 메모리 내의 상기 IDT 프로그램을 실행하도록 구성된 프로세서; 및
    상기 프로세서에 결합되어 있으며, 상기 컴퓨팅 자원을 표현하는 이미지, 상기 공유 메모리 공간을 표현하는 이미지, 및 상기 컴퓨팅 자원과 상기 공유 메모리의 이미지 간의 오브젝트를 설명하는 정보를 사용자가 수정할 수 있게 하는 입력 장치
    를 구비하는 컴퓨터 시스템.
  15. 제14항에 있어서, 상기 공유 메모리는 JavaSpace인 컴퓨터 시스템.
  16. 제14항에 있어서, 상기 그래픽 인터페이스에 입력되고 상기 컴퓨팅 자원의 이미지 및 상기 공유 메모리 공간의 이미지 간의 오브젝트 흐름을 설명하는 정보를 저장하기 위한 상기 수단은, 상기 컴퓨팅 자원이 상기 공유 메모리 공간으로부터 엔트리를 테이크(take)하는 것을 설명하는 정보를 저장하기 위한 수단을 더 포함하는 컴퓨터 시스템.
  17. 제14항에 있어서, 상기 그래픽 인터페이스에 입력되고 상기 컴퓨팅 자원의 이미지 및 상기 공유 메모리 공간의 이미지 간의 오브젝트 흐름을 설명하는 정보를 저장하기 위한 상기 수단은, 상기 컴퓨팅 자원이 상기 공유 메모리 공간에의 엔트리를 기록하는 것을 설명하는 정보를 저장하기 위한 수단을 더 포함하는 컴퓨터 시스템.
  18. 제14항에 있어서, 상기 그래픽 인터페이스에 입력되고 상기 컴퓨팅 자원의 이미지 및 상기 공유 메모리 공간의 이미지 간의 오브젝트 흐름을 설명하는 정보를 저장하기 위한 상기 수단은, 상기 컴퓨팅 자원이 상기 공유 메모리 공간으로부터 엔트리를 판독하는 것을 설명하는 정보를 저장하기 위한 수단을 더 포함하는 컴퓨터 시스템.
KR1020007008971A 1998-02-26 1999-02-17 공유 메모리 공간을 위한 인터렉티브 설계 툴 KR20010040980A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US60/076,048 1998-02-26
US4493698A 1998-03-20 1998-03-20
US09/044,936 1998-03-20
PCT/US1999/003397 WO1999044140A2 (en) 1998-02-26 1999-02-17 An interactive design tool for shared memory spaces

Publications (1)

Publication Number Publication Date
KR20010040980A true KR20010040980A (ko) 2001-05-15

Family

ID=26722181

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007008971A KR20010040980A (ko) 1998-02-26 1999-02-17 공유 메모리 공간을 위한 인터렉티브 설계 툴

Country Status (6)

Country Link
EP (1) EP1057114A2 (ko)
JP (1) JP2002505479A (ko)
KR (1) KR20010040980A (ko)
CN (1) CN1292113A (ko)
AU (1) AU2770399A (ko)
WO (1) WO1999044140A2 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE523112C2 (sv) * 2001-07-05 2004-03-30 Anoto Ab Förfaringssätt för kommunikation mellan en användarenhet som har möjlighet att läsa information från en yta, och servrar som exekverar tjänster som stöder användarenheten
US7484110B2 (en) * 2006-03-16 2009-01-27 Microsoft Corporation Adaptive power management
US8060603B2 (en) * 2008-06-18 2011-11-15 Qualcomm Incorporated Persistent personal messaging in a distributed system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992009948A1 (en) * 1990-11-30 1992-06-11 Vpl Research, Inc. Improved method and apparatus for creating virtual worlds
US5386568A (en) * 1992-12-01 1995-01-31 Yamaha Corporation Apparatus and method for linking software modules
US5455952A (en) * 1993-11-03 1995-10-03 Cardinal Vision, Inc. Method of computing based on networks of dependent objects

Also Published As

Publication number Publication date
WO1999044140A2 (en) 1999-09-02
AU2770399A (en) 1999-09-15
CN1292113A (zh) 2001-04-18
JP2002505479A (ja) 2002-02-19
WO1999044140A3 (en) 1999-11-25
EP1057114A2 (en) 2000-12-06

Similar Documents

Publication Publication Date Title
US6738077B1 (en) Dynamic generation and automated distribution of user interface from database model
US7093247B2 (en) Installation of a data processing solution
US6532471B1 (en) Interface repository browser and editor
US6970883B2 (en) Search facility for local and remote interface repositories
US8296720B2 (en) Framework to access a remote system from an integrated development environment
US5019961A (en) Computer apparatus and method for logical modelling
EP1603034B1 (en) Method and apparatus for generating user interfaces based upon automation with full flexibility
US8635540B2 (en) Method and apparatus for managing internet transactions
JP4471250B2 (ja) アプリケーションフレームワーク用アーキテクチャ
EP1643424A2 (en) Contextual Action Publishing
US20060074967A1 (en) Visual query modeling for configurable patterns
EP1061446A2 (en) Web-based enterprise management with multiple repository capability
Clark et al. Beginning C# object-oriented programming
JPH1091447A (ja) 分散オブジェクトシステムにおいて分散オブジェクトの再利用を促進するカタログ装置
US20040025157A1 (en) Installation of a data processing solution
CA2391756A1 (en) Accessing a remote iseries or as/400 computer system from the eclipse integrated development environment
US6266708B1 (en) Object oriented application program development framework mechanism
WO1997044745A1 (en) Relational database compiled/stored on a memory structure
Baudel From information visualization to direct manipulation: extending a generic visualization framework for the interactive editing of large datasets
US20080172601A1 (en) Tool for configuring available functions of an application
KR20010040980A (ko) 공유 메모리 공간을 위한 인터렉티브 설계 툴
Schattkowsky et al. Uml model mappings for platform independent user interface design
Almendros-Jiménez et al. UML modeling of user and database interaction
Jern Information visualization on the Web
Karastoyanova et al. Conventional workflow technology for scientific simulation

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination