KR100445523B1 - 데이터처리시스템및방법 - Google Patents
데이터처리시스템및방법 Download PDFInfo
- Publication number
- KR100445523B1 KR100445523B1 KR1019970707111A KR19970707111A KR100445523B1 KR 100445523 B1 KR100445523 B1 KR 100445523B1 KR 1019970707111 A KR1019970707111 A KR 1019970707111A KR 19970707111 A KR19970707111 A KR 19970707111A KR 100445523 B1 KR100445523 B1 KR 100445523B1
- Authority
- KR
- South Korea
- Prior art keywords
- cell
- program
- instructions
- file
- module
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
셀윈도우 상부에 벡터 이미지가 그려질 때, 임의의 스크린이 표시되며, 이 벡터 이미지의 선택과 관계하여 실행되는 액션 등을 지정하기 위해 사용자로 하여금 매개변수들을 설정하도록 한다. 스크린에 보여지는 것에 따라, 사용자는 예를 들어 새로운 파일을 열고, 소정 파일의 이미지를 표시하기 위한 매개변수들을 설정한다. 나중에 사용자가 마우스 등으로 이 벡터 이미지를 더블-클릭할 때, 새로운 임의의 셀이 열리고, 관련 이미지가 그곳에 표시된다. 임의의 실행 프로그램은 윈도우를 열거나 닫는 단지 기초적인 조작만을 수행하기 위한 기능을 가지며, OS(운영체제)의 멀티태스크 기능에 의해 병행하여 동시에 실행할 수 있다.
Description
본 발명은 주로 이미지나 음성 처리를 수반하는 컴퓨터 애플리케이션을 쉽게 작성하는 것이 가능한 데이터 처리시스템에 관한 것이다. 또한 본 발명은 컴퓨터 프로그램 아키텍처 및 또다른 프로그램 모듈에 의해 제어되지 않는 프로그램 모듈을 위한 방법에 관한 것이다.
종래의 컴퓨터 프로그램 아키텍처는 주프로그램과 복수개의 프로그램 모듈로 구성되어 있다. 주프로그램은 대체로 프로그램 모듈의 동작을 제어하고 조화시킨다. 도 22는 그런 구조를 갖는 프로그램(100)의 개략도이다. 도 22에서 주프로그램(102)은 104 및 106 등의 복수개의 문을 포함한다. 몇몇의 문은 문 108 및 110과 같이 호출문일 것이다. 이들 두 호출문은 실행될 때 프로그램 모듈(120 및 130)을 호출한다. 주프로그램(102)은 루프를 계속해서 실행할 수 있게 하는 루프문을 포함할 수 있다. 또한 주프로그램(102)은 프로그램을 종료하기 위한 스톱문을 포함한다. 프로그램(100)은 다른 프로그램 언어로 기록될 수도 있다는 것을 알아둘 필요가 있다. 문의 정밀한 신택스 및 프로그램 구조는 프로그램밍 언어와 함께 변할 수 있다.
프로그램(100)은 주프로그램(102)에 의해 호출되는 모듈(120 및 130)과 같은 복수개의 프로그램 모듈을 포함한다. 모듈(120)은 문 122 및 124와 같은 복수개의 문을 포함한다. 또한 이것은 문 126 등의 복수개의 호출문을 포함한다. 이 문은 실행될 때 다른 모듈(140)을 호출한다. 결국 모듈(120)은 리턴문을 포함한다.
호출문(108)이 실행될 때 주프로그램(102)은 모듈(120)로 건너뛴다. 문(122,124) 및 나머지 프로그램이 실행된다. 모듈(120)에서 리턴문이 실행됨과 동시에 프로그램(100)은 호출문(108)을 따르는 문인 문 106으로 되돌아 간다. 이때 프로그램(100)의 제어는 주프로그램(102)으로 되돌아 간다. 주프로그램(102)은 실행을 계속한다.
모든 모듈구조는 모듈 120과 유사하다. 유사하게, 상술한 점프-리턴 매커니즘은 프로그램(100)에서 모든 호출문에 의해 실행된다. 따라서 이에 관한 것은 명세서에서 더 이상 설명하지 않는다.
이런 점프-리턴 메커니즘을 실행하기 위해 호출문의 리턴주소는 RAM에 저장될 필요가 있다(대개 스택으로 불리는 메모리구조). 레지스터값과 같은 호출된 모듈로 점프하기에 앞서 컴퓨터의 다른 필수 상태 정보가 필요하다면 저장될 수 있다(예를들면 인터럽트 서비스 루틴으로 점프할 때). 따라서 주프로그램(102)이 모듈(120)을 호출할 때 이들 레지스터의 내용은 스택에 넣어질 수 있다(즉, 저장될 수 있다). 유사하게, 모듈(120)이 모듈(140)을 호출할 때 모듈(120)의 리턴주소는 저장될 필요가 있다. 적당한 레지스터의 내용은 스택에 넣어져야 한다. 따라서 스택의 크기는 다수의 호출문이 실행될 때 클 것이다.
리턴문이 실행될 때 리턴주소는 호출 프로그램으로 되돌아 가는데 이용된다. 또한 저장된 정보가 검색된다.
일반적으로 상술한 종래의 프로그램 아키텍처는 많은 호출문과 많은 모듈을 포함한다. 이들 모듈은 다른 모듈을 호출하여(예를들면 모듈(120)은 모듈(140)을 호출할 수 있다) 일련(chain)의 호출문을 형성한다. 이 체인의 정확한 히스토리는 마지막에 호출된 모듈이 주프로그램으로 돌아갈 수 있도록 보전될 필요가 있다. 종래 아키텍처의 문제 중에 하나는 체인을 이동하는 시간이 매우 오래 걸릴 수 있다는 것이다. 위에 지적한 바와 같이 호출문이 호출될 때마다 저장될 필요가 있는 상태정보의 어느정도가 실행에서 오버헤드를 가져온다. 리턴문이 실행될 때마다 재기록되어야 하는 저장된 정보는 실행시에 다시 오버헤드가 필요하다. 그 결과 종래의아키텍처를 이용하여 기록된 프로그램 실행속도가 느리다.
다음은 종래 아키텍처의 몇가지 특징이다. (a) 제어("보스(boss)")프로그램, 예컨대 주프로그램(102)이 있고, (b) 모든 연계정보(예컨대 리턴주소 및 레지스터)는 프로그램의 한 부분(주프로그램(102)이나 몇 개의 모튤같은 호출 프로그램)이 실행을 또하나(호출된 프로그램)에 전송할 때 보전되어야 하고. (c) 연계정보는 리턴제어 및 호출 프로그램에 대한 정보에 이용된다. 이런 아키텍처는 "보스"구조로 불린다. 호출모듈이 마스터로 고려될 수 있는 반면에 호출된 모듈은 마스터에 의해 명령을 받은 슬레이브 실행명령으로 고려될 수 있다. 그런 다음 마스터에 보고 결과를 준다.
최근에 프로그램밍 아키테처가 발달되어 왔다. 그러나 이들 역시 보스아키텍처에 기초를 둔다. 한 예는 객체중심 프로그램밍이다. 이 방법으로 코드가 재이용될 수 있어서 애플리케이션이 비교적 빠르게 발달했다. 그러나 애플리케이션은 여전히 거대한 오버헤드를 부가하는 제어 몸체를 갖는다.
프로그램 아키텍처에서 유리한 점은 동작환경에서 이루졌다. 한 예는 마이크로소프트사의 MS 윈도우즈 환경에서 사용된 동적 데이터 교환(DDE)이라 불린 프로세스간 통신 프로토콜이다. DDE는 프로세스와 프로토콜 사이의 데이터를 교환하는데 분할된 메모리를 이용하여 데이터의 통과를 동기화 한다. DDE 프로토콜의 핵심은 DDE 메시지이다. 프로세스(클라이언트)는 서비스를 수행하기 위해 다른 프로세스(서버)에게 질문할 수 있다. 자세히 말하자면 클라이언트는 글로벌 메모리블록에 명령스트링을 기억시킴으로써 그리고 글로벌 메모리블록에 대한 핸들을 서버에 넘김으로써 서버에게 명령을 통지하도록 WM_DDE_EXECUTE 메시지를 명령한다. 서버는 WM_DDE_ACK메시지를 클라이언트에게 순차적으로 되돌린다. 만일 서버가 명령을 성공적으로 실행한다면 WM_DDE_ACK 메시지는 "fAck"로 레이블된 DDEACK구조 멤버로 TRUE 값을 되돌려 보낸다. 만일 명령이 성공적으로 실행되지 않으면 WM_DDE_ACK 메시지를 FALSE로 설정된 "fAck"와 함께 통지한다. 클라이언트는 서버로부터 WM_DDE_ACK 메시지를 수신할 때 글로벌 메모리에서 명령스트링을 지우고 적당한 동작을 취하기 위한 절차로 간다.
DDE를 거친 프로세스간 통신이 도 22에 도시한 종래 아키텍쳐의 많은 특징을 갖는다는 것은 명백하다. 특히 연계정보의 보전 및 클라이언트에 대한 제어리턴은 DDE의 중요한 형태이다. 도 22의 아키텍처가 각 프로세스간 통신에서 몇몇 레지스터의 내용 및 리턴주소를 기억하는 동안 DDE는 정교한 명령 및 데이터 구조를 이용한다. 그 결과 DDE는 도 22의 아키텍쳐보다 훨씬 덜 효과적이다.
동작환경에서 새로운 개발품의 또다른 예는 OLE(개체의 연결 및 포함기능)라 불리는 MS 윈도우즈에서 사용된 아키텍쳐이다. 이런 아키텍처는 하나의 애플리케이션(예컨대 워드프로세서 프로그램)이 하나 혹은 그 이상의 애플리케이션(예컨대 스프레드시트 프로그램)에 연결될 수 있도록 한다. MS 윈도우즈는 "등록 데이터베이스"를 이용하여 OLE 애플리케이션에 대하여 정보수집을 유지하고 MS 윈도우즈 애플리케이션을 위한 파일 확장을 유지한다. 애플리케이션 사이의 모든 통신은 OLE에 의해 취급된다. 특히, OLE 애플리케이션은 3개의 동적-링크 라이브러리인 OLECLI.DLL, OLESRV.DLL, SHELL.DLL을 사용하여 통신한다. SHELL.DLL은 애플리케이션으로 하여금 등록 데이터베이스와 통신하도록 가능케한다. OLECLI.DLL은 OLE 클라이언트 라이브러리이고 OLESRRV.DLL은 서버 라이브러리이다. OLE서버 및 클라이언트 라이브러리는 DDE 메시지를 통해 서로 통신한다. OLE 기능에 대한 통신의 일반경로는 기능의 호출, OLE 라이브러리 사이의 DDE 메시지, 클라이언트 및 서버 애플리케이션에 대한 산포정보를 포함한다.
한 예에서 OLESRV.DLL 라이브러리는 클라이언트 애플리케이션이 개체를 필요로 한다는 것을 OLECLI.DLL로부터 통보를 수신할 때 OLESRV.DLL 라이브러리는 적당한 서버 방식을 호출한다. 예를들어 OLESRV.DLL은 OLE 즉, 클라이언트 애플리케이션에서 개체를 활동화시킬 때 서버오픈() 방식을 호출한다. 그 다음에 서버 애플리케이션은 서버오픈() 방식의 동작을 수행한다. 만일 서버오픈()이 성공적으로 수행되면 방식은 OLE_OK를 리턴한다. 서버오픈()이 성공적으로 수행되지 않으면 OLE_ERROR_OPEN이 리턴된다. 그 다음에 클라이언트 애플리케이션은 적당한 액션을 취할 수 있다.
OLE에서 등록 데이터베이스는 애플리케이션의 연계 혹은 히스토리를 포함한다. OLE의 등록 데이터베이스 및 클라이언트-서버 구조는 보스 아키텍쳐를 형성한다. 또한 애플리케이션 사이의 간단한 통신 조차도 많은 성가신 윈도우즈 구성요소(예컨대 DDE , 동적 링크 라이브러리 등)가 필요하다. MS 윈도우즈 애플리케이션이 많은 메모리 및 프로세서 대역폭을 필요로 한다는 것은 잘 알려져 있다. MS 윈도우즈 구성요소의 복잡한 구조와 함께 보스 아키텍처는 성능이 느린 한가지 이유가 될 수 있다.
도 1은 본 발명의 제1실시예에 따른 데이터 처리시스템에서 데이터 처리의 흐름을 도시한 도이다.
도 2는 본 발명의 제1실시예에 따른 데이터 처리시스템의 물리적 구조를 도시한 블록도이다.
도 3은 본 발명의 제1실시예에 따른 데이터 처리시스템의 논리구조를 도시한 블록도이다.
도 4는 윈도우의 한 예를 도시한 도이다.
도 5a 내지 5d는 매개변수를 설정하기 위한 절차를 도시한 도이다.
도 6은 액션 설정처리을 도시한 흐름도이다.
도 7은 액션 설정화면의 구조를 도시한 도이다.
도 8은 벡터이미지가 지시될 때 동작을 도시한 흐름도이다.
도 9는 자동 호출처리를 설명하기 위한 흐름도이다.
도 10a 내지 10g는 제어액션의 흐름을 설명하기 위한 차트이다.
도 11a 및 11b는 종래기술의 아키텍처와 본 발명의 제2실시예에 따른 아키텍쳐 사이의 비교를 나타낸다.
도 12는 본 발명의 제2실시예에 따른 셀의 대화(interaction)를 도시한 도이다.
도 13은 본 발명의 제2실시예에 따른 DNA 파일 구조의 블록도이다.
도 14는 본 발명의 제2실시예에 따른 셀 구조의 블록도이다.
도 15는 본 발명의 제2실시예에 따른 애플리케이션을 실행하는 컴퓨터 시스템의 블록도이다.
도 16은 본 발명의 제2실시예에 따른 멀티미디어 개발 시스템의 실행중에 비주얼 셀과 연관된 다양한 윈도우즈를 도시한다.
도 17은 본 발명의 제2실시예에 따른 DNA 파일에 사용자가 정보를 입력하는 윈도우즈를 도시한다.
도 18은 본 발명의 제2실시예에 따른 멀티미디어 개발 시스템의 실행중에 버튼 셀 및 비주얼 셀과 연관된 다양한 윈도우즈를 도시한다.
도 19는 본 발명의 제2실시예에 따라 사용자가 버튼을 지정하는 포맷을 도시한 윈도우즈이다.
도 20은 본 발명의 제2실시예에 따라 버튼 셀과 연관된 비주얼 셀을 사용자가 지정하는 포맷을 도시한 윈도우즈이다.
도 21은 본 발명의 제2실시예에 따른 셀 통보 절차를 도시한 흐름도이다.
도 22은 종래기술의 프로그래밍 아키텍처를 도시한 도이다.
<도면의 주요부분에 대한 부호의 설명>
11: 메모리 12: MPU 13: 마우스
14: 키보드 15: 입출력포트 16: VRAM
17: CRT 18: 외부기억장치 19: 버스
31: 하드웨어 32: OS 33: DLL
34: DDE 35: OLE 36: 셀
37: 래스터 38: 벡터 39: 매개변수파일
따라서 본 발명의 목적은 데이터 처리시스템과 컴퓨터 프로그램 아키텍쳐, 그리고 실행속도가 빠른 애플리케이션을 이루고 쉽게 준비하는 방법을 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명의 제1실시예에 따른 데이터 처리시스템은:
화면상에 형성된 윈도우에 벡터이미지를 그리기 위한 그리기수단과;
벡터이미지가 상기 그리기수단에 의해 벡터이미지의 그리기에 응답하여 지시될 때, 액션이 실행되도록 정의하는 매개변수를 설정하는 설정화면을 표시하기 위한 수단과;
설정화면상에 매개변수를 설정하기 위한 매개변수 설정수단과;
매개변수 설정수단에 의해 설정된 매개변수를 기억하기 위한 매개변수 기억수단과;
그리기수단에 의해 생성된 벡터이미지를 지시하기 위한 지시수단과;
지시수단에 의해 벡터이미지의 지시를 검파하고 매개변수에 따라 액션을 실행하기 위한 실행수단을 포함한다.
본 발명의 제1실시예에 따라 데이터 처리시스템은 벡터이미지에 소정의 액션을 할당할 수 있고 이 벡터이미지를 지정함으로써 액션을 실행할 수 있다. 그러므로 윈도우 열기, 윈도우 닫기, 이미지표시, 뮤직사운드 발생 등의 처리를 수행하는 것이 쉽게되고 전체로서 하나의 고급 애플리케이션을 이루도록 윈도우즈와 서로 순차적으로 연관시키는 것이 가능하다.
본 발명의 제2실시예에 따른 데이터 처리시스템은:
화면상에 형성된 윈도우에 벡터이미지를 그리기 위한 그리기수단과;
벡터이미지가 그리기수단에 의해 벡터이미지의 그리기에 응답하여 지시될 때, 윈도우의 내용이 열리도록 정의하는 매개변수를 설정하는 설정화면을 표시하기 위한 수단과;
설정화면상의 매개변수를 설정하기 위한 매개변수 설정수단과;
매개변수 설정수단에 의해 설정된 매개변수를 기억하기 위한 매개변수 기억수단과;
그리기수단에 의해 생성된 벡터이미지를 지시하기 위한 지시수단과;
지시수단에 의해 벡터이미지의 지시를 검파하고 매개변수에 따라 또하나의 윈도우를 열기 위한 호출수단을 포함한다.
예를들어 호출수단은 새로이 열린 윈도우에서 래스터 이미지나 벡터이미지를 표시한다.
매개변수는 윈도우 타이틀, 윈도우 위치, 윈도우 크기, 윈도우 디자인, 윈도우상에 표시된 이미지, 재생된 음성, 윈도우를 닫기 위한 조건 등을 결정할 수 있다. 예를들어 매개변수는 텍스트파일 포맷으로 준비된다.
본 발명의 제3실시예에 따라 프로그램이 전체로서 하나의 애플리케이션으로 실행하도록 하나의 프로그램 멀티플 타임을 동시에 실행하기 위한 데이터 통신시스템이 제공된다. 상기 시스템은:
화면상에 형성된 윈도우에 벡터이미지를 그리기 위한 그리기수단과;
벡터이미지가 상기 그리기수단에 의해 벡터이미지의 그리기에 응답하여 지시될 때, 액션이 실행되도록 정의하는 매개변수를 설정하는 설정화면을 표시하기 위한 수단과;
설정화면상에 매개변수를 설정하기 위한 매개변수 설정수단과;
프로그램과 매개변수 설정수단에 의해 설정된 매개변수를 기억하기 위한 기억수단과;
그리기수단에 의해 생성된 벡터이미지를 지시하기 위한 지시수단과;
지시수단에 의해 벡터이미지의 지시를 검파하고 매개변수에 따라 액션을 실행하기 위한 실행수단을 포함한다.
본 발명의 제4실시예에 따라 셀이 전체로서 하나의 애플리케이션으로 동작하도록 실행 프로그램으로 구성된 복수개 셀의 공존을 가능케 하기 위한 데이터 처리시스템이 제공된다. 상기 시스템은:
프로그램과 이 프로그램을 호출하는 매개변수를 보유하는 복수개의 매개변수 파일을 기억하기 위한 기억수단과;
각 셀을 호출하는 매개변수를 이미지에 할당하기 위한 수단과;
지시수단에 의해 이미지의 선택에 응답하여 기억수단에 기억된 매개변수 파일을 지정하고, 매개변수 파일에 보유된 매개변수에 따라 프로그램을 동시에 실행하기 위한 실행수단을 포함한다. 상기 셀은 3개의 트리 형태로 연결가능하다.
본 발명의 제2, 제3, 제4실시예에 따라 데이터 처리시스템은 소정의 매개변수를 벡터이미지에 할당할 수 있고 이 매개변수에 따라 액션을 실행할 수 있다. 그러므로 사용자가 벡터이미지 및 매개변수를 단지 설정하기 때문에 윈도우즈는 순차적으로 서로 연관될 수 있어서 전체로서 하나의 고급 애플리케이션을 이룰 수 있다. 게다가 각 윈도우즈의 상호관리는 윈도우즈의 일반적 관리를 수행하는 특별한 관리 프로그램이 필요없게 된다.
본 발명의 제5실시예에 따른 데이터 처리시스템은:
화면상에 이미지를 그리기 위한 그리기수단과;
액션과 이미지를 연관시키기 위한 연관수단과;
그리기수단에 의해 그려진 이미지를 이동시키기 위한 시프트 수단과;
윈도우상의 이미지 위치를 검파하기 위한 위치검파수단과;
이미지가 소정위치로 이동될 때 상기 위치검파수단에 의한 검파에 따라 이미지와 연관된 액션을 실행하기 위한 실행수단을 포함한다.
예를들어, 실행수단은 이미지가 완전히 사라질 때, 혹은 이미지 일부가 나타날 때, 혹은 이미지 일부가 사라질 때 위치검파수단에 의한 검파에 따라 윈도우 열기, 윈도우 닫기, 표시된 이미지제어, 혹은 음향 발생과 같은 처리를 실행한다.
본 발명의 제5실시예에 따른 데이터 처리시스템은 이미지에 액션을 할당하고 이미지 위치가 소정위치가 될 때 위 액션을 실행한다. 그러므로 화면 등의 화면이동에 따라 변화하는 애플리케이션을 쉽게 준비하는 것이 가능하다.
본 발명의 제6실시예에 따라 컴퓨터 프로그램 아키텍처는:
프로그램 명령을 포함하는 적어도 제1 및 제2프로그램 셀과;
하나 혹은 그 이상의 명령의 제1세트를 명령하기 위한 프로그램 명령을 포함하는 제2프로그램 셀과;
실행결과를 제2셀로 되돌리지 않고 명령의 제1세트를 자동적으로 실행하고, 하나 혹은 그 이상의 명령의 제2세트를 명령하기 위한 프로그램 명령을 포함하는 제1프로그램 셀과;
실행결과를 제1셀로 되돌리지 않고 명령의 제2세트를 자동적으로 실행하기 위한 프로그램 명령을 포함하는 제2프로그램 셀을 포함한다.
제1프로그램 셀은 제3프로그램 셀을 호출하기 위한 프로그램 명령을 포함하고 제3프로그램 셀은 실행결과를 제1프로그램 셀에 되돌리지 않고 자신의 프로그램 명령을 실행할 수 있다.
제1프로그램 셀은 제3프로그램 셀이 실행되는 동안 종결될 수 있다.
제3프로그램 셀은 제1프로그램 셀을 종결시키는 명령을 내릴 수 있다.
하나 혹은 그 이상 명령의 제1 및 제2세트는 이들의 원(origins)정보를 포함하지 않을 수 있다.
이런 구조 때문에 각 프로그램 셀은 명령실행 결과를 다른 프로그램 셀에 되돌릴 필요가 없어서 각 셀의 프로그램 명령 실행을 빠르게 한다.
본 발명의 제7실시예에 따라 컴퓨터에서 애플리케이션 실행을 위한 컴퓨터 아키텍처가 제공된다. 상기 컴퓨터 아키텍처는:
프로그램 명령을 각각 포함하며 다른 셀로부터 문을 받아들일 수 있는 분리파일과 연관되는 적어도 제1 및 제2프로그램 셀과;
하나 혹은 그 이상 문의 제1세트를 제1프로그램 셀과 연관된 제1파일로 보내기 위한 프로그램 명령을 포함하는 제2프로그램 셀과;
실행결과를 제2프로그램 셀에 되돌리지 않고 하나 혹은 그 이상의 제1세트를 자동적으로 실행하기 위한 프로그램 명령과, 하나 혹은 그 이상 문의 제2세트를 제2프로그램 셀과 연관된 제2파일로 보내기 위한 프로그램 명령을 추가로 포함하는 제1프로그램 셀과;
실행결과를 제1프로그램 셀로 되돌리지 않고 하나 혹은 그 이상의 문을 자동적으로 실행하기 위한 프로그램 명령을 포함하는 제2프로그램 셀을 포함한다.
제1파일은 다른 프로그램 셀에서 보내진 문을 수신하기 위한 제1 섹션과, 제1파일의 상태를 지시하는 제2 섹션을 포함하며;
제2프로그램 셀은 하나 혹은 그 이상 문의 제1세트를 보내기에 앞서 제2 섹션을 검사할 수 있다.
제2 섹션은 제1파일에 있는 문 중의 하나와 연관된 제1포인터를 포함할 수 있고;
제2프로그램 셀은 하나 혹은 그 이상 문의 상기 제1세트를 제1파일에 부가함고 동시에 제1포인터를 갱신하기 위한 프로그램 명령을 포함할 수 있다.
제1 섹션은 제1프로그램 셀에 의해 현재 실행되는 제1파일에 있는 문을 가리키는 제2포인터를 포함할 수 있다.
제2 섹션은 제1파일이 새로운 문을 받아들일 준비가 되어 있다는 것과 제1파일이 새로운 문을 받아들일 수 없다는 것을 지시할 수 있다.
제1파일은 한 세트의 매개변수를 가질 수 있고;
상기 제1프로그램 셀은 제1프로그램 셀이 호출될 때 매개변수를 이용하기 위한 프로그램 명령을 포함할 수 있다.
위와 같은 구조 때문에 제1파일은 존재하는 문의 마지막 위치를 지시하고 연관된 프로그램 셀이 문을 수신할 수 있는지 없는지를 지시한다. 보내져야하는 문은 프로그램 셀이 수신할 수 있을 때 현재 문에 다음 위치에 기록된다. 이것은 또다른 문이 보내질 때 현재 문이 중복기재되지 못하게 하고 통신시간을 줄일 수 있다. 명령실행 결과를 다른 프로그램 셀에 되돌릴 필요가 없기 때문에 프로그램의 실행속도가 보다 빠르게 된다.
본 발명의 제8실시예에 따라 각 셀이 프로그램 명령을 포함하며 분리파일과 연관되는 애플리케이션에서 적어도 2개의 프로그램 셀과 대화하는 방법이 제공된다. 상기 방법은:
제2프로그램 셀로 하여금 하나 혹은 그 이상 문의 제1세트를 제1프로그램 셀과 연관된 제1파일로 보내도록 하는 제1송출단계와;
제1프로그램 셀로 하여금 실행결과를 제2프로그램 셀로 되돌리지 않고 하나 혹은 그 이상 문을 자동적으로 실행하도록 하는 제1실행단계를 포함한다.
이 방법은 제3프로그램 셀로 하여금 제1송출단계를 따르는 제1프로그램 셀과 연관된 제1파일로 하나 혹은 그 이상의 문을 보내게 하는 제2송출단계와;
제1프로그램 셀로 하여금 제1실행단계의 완료를 따르는 하나 혹은 그 이상의 문을 자동적으로 실행하도록 하는 제2실행단계를 추가로 포함한다.
제2송출단계는 하나 혹은 그 이상 문의 제1세트를 실행하는 제1실행단계의 완료에 앞서 시작될 수 있다.
제1송출단계는 제1파일이 하나 혹은 그 이상의 문의 제1세트를 받아들일 수 있는 상태일 때, 제1파일을 위치시키고 하나 혹은 그 이상 문의 제1세트를 송출할 수 있다.
이런 구조 때문에 각 프로그램 셀은 실행결과를 다른 프로그램 셀로 매번 되돌리지 않고 연관된 파일에서 문을 순차적으로 실행할 수 있다. 그래서 프로그램 실행속도가 향상된다.
본 발명의 제9실시예에 따라 연관 프로그램의 기능을 수행하도록 프로그램 셀을 서로 연관시키는 방법이 제공된다. 여기서 각각의 프로그램 셀은 프로그램 명령을 포함하며 분리파일과 연관된다. 상기 방법은:
제2프로그램 셀로 하여금 하나 혹은 그 이상의 문의 제1세트를 제1프로그램 셀과 연관된 제1파일로 보내도록 하는 제1송출단계와;
제3프로그램 셀로 하여금 하나 혹은 그 이상의 문의 제1세트 뒤에 논리적으로 위치한 하나 혹은 그 이상의 문의 제2세트를 제1프로그램 셀과 연계된 제1파일로 보내도록 하는 제2송출단계와;
제1프로그램 셀로 하여금 논리적 위치에 따라 제1파일에 있는 문을 실행케하여 하나 혹은 그 이상의 문의 제2세트 앞에 하나 혹은 그 이상의 문의 제1세트를 실행하고, 제1프로그램 셀로 하여금 제2프로그램 셀과 통신하지 않고 하나 혹은 그 이상의 문의 제2세트의 실행을 시작하도록 하는 실행단계를 포함한다.
이런 구조 때문에 한 프로그램 셀에서 각 실행단계는 실행결과를 다른 프로그램으로 되돌리지 않고 수신 메시지를 순차적으로 실행할 수 있어서 프로그램 실행속도가 증가된다.
(제1실시예)
이하 본 발명의 제1실시예에 따른 데이터 처리시스템(프로그램 개발 도구 및 이 도구에 의해 만들어진 응용 프로그램)을 기술한다.
도 1은 본 발명의 제1실시예에 따른 데이터 처리시스템에 의해 실행되는 데이터 처리의 흐름을 도시한다.
이 예에서 빌딩을 포함하는 맵은 주어진 윈도우(즉,셀 1)에 표시된다. 이 상황에서 사용자가 마우스로 빌딩(기호 1 혹은 4)을 클릭할 때 셀 2와 5로 도시한 바와 같이 빌딩의 확대된 투시도를 나타내며 추가 윈도우즈가 열린다. 사용자가 셀 2의 확대된 투시도상의 "단면도(기호 2)"나 "평면도(기호 3)"를 마우스로 클릭하면 셀 3과 4에 도시한 바와 같이 빌딩의 단면도 및 평면도를 나타내는 새로운 윈도우가 열린다.
사용자가 셀 5의 확대된 투시도(기호 5)를 클릭할 때 외부프로그램으로서의 워드프로세서는 빌딩에 대한 문서데이터가 편집되도록 실행된다. 사용자가 워드프로세서에 의해 준비된 문서상의 기호 6을 클릭할 때 셀 6이 호출되어 그 빌딩의 설계자의 사진을 나타내는 새로운 윈도우가 열린다.
종래에 그런 프로그램은 셀 1 내지 6과 워드프로세서를 포함하는 싱글 프로그램으로 설계된다. 이런 싱글 프로그램은 싱글 관리프로그램(관리자)에 의해 관리되는 피라미드 구조를 갖는다. 그런 프로그램을 기록하는 일은 필요한 프로그램 언어를 이해하는 전문가의 작업을 필요로 한다. 게다가 그런 프로그램은 너무 커서 동작속도를 줄일 수 없다.
이런 단점을 극복하기 위해 호출되는 프로그램(EXE 파일)은 이 실시예에서 기본 액션만을 실행하도록 설계되어 있다. "기본 액션"은 윈도우의 열고 닫기, 이미지 화면이동, 또다른 애플리케이션 호출, 표시 층 선택, 음향발생 등을 의미한다. 프로그램을 실행하도록 액션을 지정하는 매개변수는 각 기호와 연관되어 각 기호를 클릭하면 연관 매개변수에 따라 프로그램이 실행된다. 그러므로 예를들면, 원도우상에 윈도우를 열고 원하는 이미지를 표시하는 처리를 쉽게 수행하는 것이 가능하다. 윈도우즈가 기호 및 매개변수와 순차적으로 연관되어 있으므로 도 1에서의 데이터 처리가 가능하게 된다. 데이터 처리에서 실행되는 싱글 프로그램을 "셀"이라 부른다. 그러므로 도 1에 있는 예에서 최대 6개 실행 프로그램이 동시에 실행되고 최대 6개의 셀이 공존한다. 이들 6개 셀은 싱글 애플리케이션을 구성한다.
각 셀은 한때 호출된 분리 EXE 파일에 의해 형성되며 다른 EXE 파일과는 무관하다. 예를들어 셀 2는 셀 1에서 호출명령에 의해 호출되지 않는다. 셀 2를 닫을 때 셀 1의 처리로 돌아올 필요가 없다. 그러므로 셀 2가 열려져야 할 때, 셀 1에 린턴주소, 연관 레지스터의 상태 등을 저장할 필요가 없다. 셀 2는 셀 1의 동작에 관계없이 자기처리(self-processing)에 따라 닫혀질 수 있다. 셀 1은 셀 2가 열린상태로 남아있는 동안 닫혀질 수 있다.
셀은 서로 통신하여 명령 및 데이터를 교환하고 각각은 다른 셀들 및/또는 자신을 닫을 수 있고 몇가지 처리를 요구할 수 있다.
일반적으로 이들 셀을 관리하는 OS(Operation System)에 대한 프로그램은 없다. 다시 말하면, 얼마나 많은 윈도우즈가 열려있고 각 윈도우에 대해서 상태, 표시내용 등에 대한 일반적 관리를 수행하는 프로그램은 없다.
이런 구조 때문에 기호와 매개변수를 연관시키는 것만으로 다른 윈도우즈(셀)은 하나씩 열려 이미지를 나타낼 수 있어 프로그램 언어를 이해하지 못하는 일반사람이 애플리케이션을 작성할 수 있다. 실행되는 프로그램의 크기가 작기 때문에 일반적 관리를 수행하는 프로그램이 없고 오버헤드가 없어서 처리가 빨리 이루어진다.
이하 위에서 기술한 데이터 처리를 실행하는 데이터 처리시스템의 구조에 대해 설명한다.
도 2는 제1실시예에 따른 데이터 처리시스템의 구조를 도시한다. 도시한 바와 같이 이 데이터 처리시스템은 메모리(11), MPU(MicroProcess Unit)(12), 마우스(13), 키보드(14), 입출력포트(15), VRAM(display data RAM)(16), CRT(17), 외부기억장치(18), 버스(19)를 포함한다.
메모리(11)는 앞서 언급한 실행프로그램(EXE 파일), 매개변수 파일, OS, 데이터 등을 기억한다. MPU(12)는 메모리(11)에 기억된 프로그램에 따라 동작하여 데이터를 처리한다. 입출력포트(15)는 마우스(13)와 키보드(14)에서 입력된 것을 MPU(12)에 알린다. VRAM(16)은 표시이미지를 정의하는 비트맵 데이터를 기억한다. CRT(17)는 VRAM(16)에 기억된 비트맵 데이터를 표시한다. 외부기억장치(18)는 OS, 이미지 데이터 파일(이미지 데이터 파일 라이브러리), 오디오 데이터 파일(오디오 데이터 파일 라이브러리) 등이 기억된 하드디스크 장치, CO-ROM 장치 혹은 그런 종류의 다른 것을 포함하고 실행되는 프로그램 및 데이터를 메모리(11)에 전송한다. 버스(19)는 데이터를 전송한다.
이런 데이터 처리시스템의 논리구조는 최하위층에 하드웨어(31)가 위치하고 이 층(31) 위에 OS(32)가 위치한 도 3에 도시되어 있다. OS(32)로서 이용할 수 있는 것은 MS-윈도우즈, 마이크로소프트사의 생산품 혹은 MS-윈도우즈와 동등하거나 나은 성능을 갖는 것 등의 DLL(Dynamic Link Library)(33), DDE(Dynamic Data Exchange)(34), OLE(Object Linking Embedding)를 갖는 운영체제이다.
DLL(33)은 스크롤 기능, 게임기능, 래스터 표시(비트맵 이미지데이터 표시)기능, 벡터표시(벡터이미지 데이터 표시)기능, 층 관리기능, 그리기(벡터이미지 생성)기능을 포함한다. 복수개의 셀(36)은 DLL(33)상에서 독립적으로 실행된다. 각 셀(36)은 같은 실행프로그램을 실행함으로써 형성된다. 셀(36)은 같은 레벨에 논리적으로 위치하고 각각의 셀은 자신이나 다른 셀(36)을 관리한다(예컨대 호출, 닫기등등). OS에 대하여 셀의 일반제어를 수행하는 예를들어 셀의 수, 셀 간의 상호관계, 셀의 내용 등을 제어하는 프로그램이 없다. 각각의 셀(36)은 다음의 기능을 수행한다.
(i) 인터페이스를 거쳐 래스터 이미지 파일(비트맵 패턴 이미지파일)(37)에 액세스하고 윈도우상에 래스터 이미지를 표시하는 기능(래스터 열기). 이때 초기의 표시스케일은 매개변수를 설정함으로써 자유로이 설정될 수 있다.
(ii) 인터페이스를 거쳐 벡터이미지 파일(38)로 액세스하고 벡터이미지를 표시하는 기능(벡터 열기). 이때 초기의 표시스케일은 후에 기술되는 매개변수를 설정함으로써 자유로이 설정될 수 있다.
(iii) OS(32)의 OLE(35)를 거쳐 워드프로세서나 CAD 등의 외부프로그램을 호출하는 기능(프로그램 실행). 만일 외부프로그램이 매개변수에 의해 지정된 파일을 판독함으로써 호출되는 형태라면, 똑같은 프로그램이 다양한 형태로 이용될 수 있다. 그러므로 사용할 때 OS를 동작시키는 모든 소프트웨어 자원을 이용하는 것이 가능하다.
(iv) 지정된 이미지 데이터가 윈도우에 맞추기에 큰 크기를 가질 때 스크롤 바를 사용하는 스크롤 및 자유로운 스크롤을 위한 기능(윈도우의 중심에서 마우스커서의 방향 및 거리에 따라 스크롤 속도 및 스크롤 방향을 제어하는 것). 이때 각각의 중복된 그랙픽 데이터는 배경과 동시에 스크롤된다. DLL 기능에 의해 자동스크롤이 이루어질 수 있다.
(v) 표시층을 설정하고 바꾸는 기능(후에 기술됨); n층의 래스터 이미지(비트맵 이미지)BMP 및 벡터이미지 TIF는 서로 임으로 겹치면서 표시될 수 있다. 예를들어 두가지 이미지 모두 서로 겹치면서 나타나도록, 맵 이미지는 래스터 이미지로 표시될 수 있고 빌딩의 벡터이미지는 임의 층상에 형성될 수 있어서 도 1의 셀에 도시한 바와같은 이미지가 표시될 수 있다. 또한 윈도우의 상단에 나타낸 층 바(44)(후에 기술됨)는 클릭되어 층 메뉴를 표시할 수 있어 n층의 벡터이미지가 임의로 설정되거나 변경될 수 있고 혹은 표시가 전환될 수 있다.
(vi) 지정된 음성파일(WAV, MID 혹은 그런 종류의 다른것)이 재생되고 소리가 날 수 있다.
(vii) 셀을 닫는 기능. 셀은 자신이나 다른 셀을 닫을 수 있다.
또한 윈도우상에 표시된 래스터 데이터나 벡터데이터에 대한 이미지를 그리고 편집하는 기능이 있다. 이들 이미지가 벡터형태로 모두 그려지기 때문에 이미지를 복사하고 이동하고 변경하고 지우는 기능이 이루어진다.
도 4는 한 셀(36)의 윈도우(41)의 화면이미지를 도시한다.
윈도우(41)는 이것의 상단에 윈도우 타이틀을 지시하는 윈도우 타이틀바(42), 편집도구를 표시하기 위한 도구 바(43), 표시층을 설정하고 바꾸기 위한 층바(44), 표시된 이미지를 확대하고 축소하기 위한 줌 바(45), 제어 바(46), 닫기 바(47), 스크롤 바(48)를 포함한다.
도 3을 참고로하여, 매개변수 파일(39)은 실행프로그램을 호출하기 위한 호출정보가 기억되는 텍스트 형태의 파일이다.
각각의 셀(36)은 인터페이스(IF)를 거쳐 연관된 매개변수 파일(39)을 참조하고 지정된 모드 및 기능을 수행한다. 복수개의 셀(36)은 함께 연결될 때 단일화된 싱글 애플리케이션으로 동작한다.
매개변수 파일(39)은 다음의 정보를 포함한다.
(1) 윈도우 타이틀
(2) 표시되는 윈도우의 초기 표시위치
(3) 표시되는 윈도우의 초기크기
(4) 표시되는 윈도우의 디자인
(i) 프레임 라인의 존재/부재
(ii) 타이틀을 표시하는지 안하는지
(iii) 도구 바를 표시하는지 안하는지
(iv) 표시 우선순위
(5) 셀 유형
(i) 래스터 표시형
(ii) 벡터 표시형
(iii) 프로그램 실행형
(iv) 스크롤 실행형
(v) 층 표시형
(vi) 오디오 재생형
(vii) 셀 종결형
도 1과 관련하여 설명하였듯이 윈도우(41)에 그려진 각 이미지 요소에 대해 액션이 등록될 수 있다.
도 1의 예에서 마우스로 기호(1 및 4)를 지정함으로써 연관된 윈도우에서 확대된 투시도를 표시하기 위한 동작후에, 셀 1에 있는 빌딩의 기호(1 및 4)에 대해 새로운 윈도우가 열리고 확대된 투시도를 표시하는 액션이 등록된다. 이런 액션은모든 벡터파일을 등록할 수 있으므로 여러 가지 처리를 이용할 수 있다.
등록될 수 있는 액션은 기본적으로 실행프로그램이 실행할 수 있는 즉, 액션 셀(36)이 실행할 수 있는 액션이다. 등록가능한 액션은 다음과 같다.
(1) 래스터 액션열기(래스터 열기)
(2) 벡터액션 열기(벡터 열기)
이들 두 액션은 일반적으로 새로운 윈도우를 여는 액션이다.
(3) 프로그램 실행(프로그램 실행하기)
(4) 자동 스크롤 액션(스크롤 하기)
이 액션은 매개변수에 의해 지정된 하나의 이미지에서 매개변수에 의해 지정된 또다른 이미지까지, 혹은 계속적인 직선을 따라 표시이미지를 자동적으로 스크롤 한다.
(5) 층 표시액션(층 선택)
이 액션은 지정된 층을 표시한다.
(6) 음향 발생액션(음향재생)
이 액션은 지정된 음성파일을 재생하여 음향을 재생한다.
(7) 셀 닫기액션(셀 닫기)
이 액션은 지정된 셀(윈도우)을 닫는다. 셀은 자신을 닫을 수 있거나 다른 셀을 닫을 수 있다. 또한 모든 셀을 닫는 것이 가능하다.
벡터이미지가 윈도우상에 그려질때마다 액션의 등록이 수행된다. 액션의 등록은 이미지가 간단한 이미지가 될 경우에 무시될 수도 있다.
또한 액션은 한 셀의 윈도우상에 복수개의 이미지에 대해 등록될 수 있다. 게다가, 싱글 이미지에 대해 복수개의 액션이 등록될 수 있다. 예를들어, 음향을 재생하는 동안 싱글 이미지에 대한 하나의 셀을 열어 래스터 이미지를 표시하고 다른 윈도우에서의 이미지를 자동적으로 스크롤 하는 것이 가능하다. 더욱이 한때 등록된 매개변수 파일의 파일명은 액션 자신을 그밖의 어딘가에 복사하는데 다시 사용될 수 있다.
각 셀은 OS가 사용되는 DDE기능과 부합한다. 이 기능은 셀 사이 및 외부 애플리케이션과 각 셀 사이의 실시간에 다음의 다양한 정보가 교환되도록 한다.
(1) 입력 측
i) 좌표값이 셀에 입력될 때 표시위치는 좌표위치로 전환된다(위치는 몇가지의 액션에 의한 외부 애플리케이션에 의해 검색될 수 있다).
ii) 이미지형, 이미지 속성, 표시위치가 입력될 때 지정된 이미지는 지정된 위치에서 자동적으로 그려진다.
iii) 윈도우 크기, 윈도우 표시위치, 윈도우 디자인은 외부적으로 변경될 수 있다.
iv) 표시층은 외부적으로 전환될 수 있다
v) 표시스케일이 외부적으로 변경될 수 있다.
vi) 자동 스크롤이 외부적으로 호출될 수 있다.
vii) 다른 다양한 제어정보가 외부적으로 입력되어 세밀한 셀 제어에 영향을 줄 수 있다.
(2) 출력 측
i) 필요할 때 현재 표시좌표는 DDE의 지정에 근거하여 외부에 출력된다.
ii) 마우스에 의해 지시된 이미지형, 이미지 속성, 층수 등이 출력된다.
iii) 윈도우의 자세한 속성이 출력된다.
iv) 현재 표시층 수가 외부에 출력된다.
v) 현재 표시스케일이 외부에 출력된다.
vi) 각 셀의 다른 자세한 상태가 외부에 출력된다.
또한 각 셀은 OS에 의해 지시된 정규 OLE 및 OLE2기능에 부합한다. 이들 기능은 외부 애플리케이션 및 각 셀이 객체 연결 처리(object-linked processing)를 실행하도록 한다. 즉, 동적 이미지를 재생하기 위해 셀을 호출하거나 워드프로세서 화면이나 테이블을 또다른 애플리케이션내의 셀에 붙이는 것이 가능하다.
이하, 이렇게 구성된 데이터 처리시스템의 동작을 셀이 도 1에 도시한 바와같이 순차적으로 호출되는 경우에 대하여 도 5 내지 10을 참고로 기술한다.
우선, 래스터 이미지를 포함하는 맵이 도 5a에 도시한 바와 같이 셀(1)의 윈도우상에 표시된다고 가정하자.
이런 상황하에 빌딩(1)의 벡터이미지(기호 1)는 도 5b에 도시한 바와 같이 마우스(13)를 이용하여 래스터 이미지상의 임의 층에 그려진다. 택일적으로 빌딩(1)을 지시하는 기호가 라이브러리에서 선택될 수 있고 원하는 위치에 놓여질 수 있다.
DLL은 윈도우상의 벡터이미지의 그리기를 검파하고 셀(1)에 그 사상을 알린다. 벡터이미지에 액션을 할당하기 위하여 셀(1)은 도 6에 도시한 액션 설정처리를 시작한다. 먼저, 도 7에 도시한 액션 설정화면이 표시된다(단계 S1). 그 다음에 액션설정화면의 내용에 따라 매개변수 파일명, 열리는 새로운 윈도우 타이틀, 윈도우를 열기위한 타이밍, 액션, 표시되는 이미지가 기억되는 이미지 파일명, 현재의 열린 윈도우를 닫는지 안닫는지, 재생되는 음향을 기억하는 뮤직파일명 등의 설명내용이 나온다(단계 S2).
매개변수 파일명이 CELL2이고 빌딩(1)의 외부 투시도의 래스터 이미지가 드라이브 C상에 디렉토리 RASTER에서 파일 GAIKAN1.BMP에 기억될 때, 예를들어 "C:\RASTER\GAIKN1.BMP"이 이미지 파일명으로 지정되고 "새로운 윈도우 열기"가 액션으로 지정된다. 빌딩(1)의 외부 투시도가 소정의 파일로 벡터이미지 포맷에 기억되면 그 파일명은 지정되어야 한다.
설정이 완료될 때 이 윈도우가 닫힌다. DLL은 서로와 관련하여 메모리(11)에 단계 S2에서 설정된 기호(1) 및 매개변수 파일을 기억한다(단계 S3).
이 단계에서 윈도우 표시는 도 5b에 도시한 바와 같이 된다. 기호(1)가 이 상태에서 더블크릭될 때 DLL은 사상을 검파하고 도 8에 도시한 흐름이 시작된다. 먼저, 더블클릭된 기호(1)와 연관된 매개변수 파일인지가 결정된다(단계 T1). 매개변수 파일 CELL2가 이 경우에 존재하므로 이 파일은 판독된다(단계 T2). 그 다음에 벡터이미지를 지정하는 동작(더블클릭)이 매개변수 파일에서 "언제?"필드에 설정된 동작과 일치하는지가 결정된다(단계 T3). 이 경우 서로 일치하기 때문에 프로그램이 매개변수 파일 CELL2의 내용에 따라 호출된다(단계 T4). 그 결과, 매개변수 파일의 내용과 일치하는 위치에 새로운 윈도우가 열린다. 파일 GAIKAN1.BMP에 기억된 빌딩(1)의 확대된 투시도(래스터 이미지)는 그 윈도우의 타이틀 바에 나타낸 "CELL2"와 함께 표시된다. 이 상태에서 두 개의 셀인 셀(1) 및 셀(2)이 공존한다.
셀(2)은 호출-리턴처리를 통해 셀(1)에 의해 호출되지 않는다. 즉, 셀(1) 및 셀(2)는 독립한 EXE파일에 의해 각각 형성되고 독립적으로 호출되고 실행된다. 그러므로 셀(1)에 대해 리턴주소를 저장할 필요가 없고 셀(2)이 열리는 시간에서의 레지스터값를 저장할 필요가 없다. 이런 구조는 저장 및 재저장에 필요한 시간을 줄일 수 있어 전체처리를 빠르게 한다.
그 다음에, 사용자는 셀(2)의 표시된 이미지상에서 커서를 움직여 키보드에서 문자 "CROSS SECTION"을 입력하고 문자 위에 투명한 정사각 벡터 이미지(기호 2)를 그린다. DLL은 액션 설정화면을 표시하면서 셀(2)에 그리기 액션을 알리고 도 6에 도시한 흐름이 시작된다(단계 S1). 표시된 내용에 따라 사용자는 매개변수 파일명 빌딩(1)의 단면도가 기억된 파일명 등을 설정한다(단계 S2). 그 다음에 기호(2)의 이미지 파일과 매개변수 파일명이 서로와 관련하여 기억된다(단계 S3).
마찬가지로 사용자는 셀(2)의 표시된 이미지상에 문자 "PLAN VIEW"(기호 3)을 키보드에서 입력하여 문자 위에 투명한 정사각 이미지를 그린다. 이런 그리기 액션은 도 6에 있는 단계 S1에서 검파되고 액션 설정화면이 표시된다(단계 S1). 적당한 매개변수가 설정될때(단계 S2), 기호 3 및 매개변수 파일은 서로와 관련하여 기억된다(단계 S3).
위의 설정후에 기호 3 혹은 문자열 "CROSS SECTION" 더블클릭되므로 셀 3이 열려 빌딩(1)의 단면도를 보여준다. 기호 4 혹은 문자열 "PLAN VIEW"가 더블클릭될 때 셀 5가 열려 빌딩(1)의 평면도를 보여준다.
마찬가지로, 빌딩(2)의 벡터이미지(기호 4)가 셀(1)의 화면상에 그려진다. 그 다음에 연관된 액션, 다시말하면 윈도우 열기가 지정될 때 빌딩(2)의 투시도를 유지하는 파일명이 이미지 파일명으로 지정된다. 마찬가지로 다른 설정이 수행된다.
설정이 완료되고 매개변수 설정화면이 닫혀진 후에 기호(4)를 더블클릭하여 빌딩(2)의 확대된 투시도를 보여주면서 새로운 윈도우를 연다.
투명한 벡터 이미지가 표시된 확대된 빌딩(2)의 투시도상에 기호(5)로 그려진다. 그 다음에 외부 프로그램으로서 워드프로세서를 호출하라는 명령이 기호(5)와 연관된 액션으로 설정된다.
설정이 완료된 후 기호(5)가 더블클릭될 때 워드프로세서 프로그램은 OLE 기능을 거쳐 호출된다. 그 다음에 사용자는 이 워드프로세서를 이용하여 원하는 문자정보를 준비할 수 있다. 게다가, 사용자는 준비된 문서상에 벡터이미지를 그리고 액션으로써 새로운 벡터 이미지의 열기를 벡터이미지에 지정하고 이미지 정보로서 빌딩(2) 설계자의 사진을 포함하는 파일을 지정한다. 그런 후에 기호(6)를 더블클릭하여 설계자의 사진을 보여준다.
상술한 방법으로 도 1에 도시한 복수개 셀 사이의 상호관계를 설정하는 것이 가능하다.
위에서 명백한 바와 같이 이 실시예는 윈도우상의 임의의 벡터 이미지와 매개변수 파일을 연관시킴으로써 그리고 더블클릭된 벡터 이미지와 관련된 매개변수 파일에 따라 실행프로그램을 호출함으로써 복수개의 셀이 공존하도록 하고 이들 셀이 전체로서 싱글 애플리케이션으로 기능을 수행토록 하는 데이터 처리시스템을 쉬게 작성할 수 있다. 또한 각 셀은 윈도우 열기 혹은 닫기 등의 기본동작을 수행하는 실행프로그램으로 구성되고 각 셀을 조직적으로 관리하는 OS(32)상에 보스(관리프로그램)가 없다. 그러므로 실행프로그램은 비교적 작은 크기로 기록될 수가 있어서 빠른동작을 보장할 수 있다. 바꾸어 말하면, 일반 프로그램은 피라미드 구조를 가지며 복수개의 실행프로그램을 조직적으로 관리하는 보스는 피라미드 구조의 탑에 위치한다. 그러나 이 실시예에서 각 셀은 서로를 관리하고 보스에 동등한 관리프로그램이 없다.
이 데이터 처리시스템이 워드프로세서, 데이터베이스, 스프레드시트, CAD 등의 외부프로그램을 이용하기 때문에 OS의 OLE를 거친 데이터는 보다 훌륭한 보편성을 갖는다. 예를들어 시장에서 구입할 수 있는 CD-ROM에 기억된 래스터 데이터는 맵으로서 이용될 수 있고, 층 표시기능은 층(1)상에서 각 교차점에서 교통신호의 벡터 이미지를 위치시키는데, 층(2)상에 지하 파이프의 벡터이미지를 위치시키는데, 층(3)상에 지하철로 지도의 벡터이미지를 위치시키는데 이용될 수 있고, 이들 층은 서로 전환될 수 있고 혹은 맵상의 또하나 위에 하나가 위치될 수 있다.
각 벡터 이미지에 할당된 래스터 액션 열기 때문에 특별한 프로그래밍 기술이나 지식없이 지하파이프의 이름을 표시하기 위해 교통신호의 이미지를 더블클릭하자마자 교통신호의 사진과 이것의 단면도를 표시하고 지하파이프의 이미지를 더블클릭하여 내부 배선을 , 혹은 지하철로 지도를 더블클릭 하자마자 시간표를 표시하는 것과 같은 애플리케이션을 쉬게 준비하는 것이 가능하다.
액션을 실행하는 타이밍이 상술한 실시예에서 더블클릭하는 시간으로 지정되더라도 싱글 클릭하는 시간과 같은 벡터 이미지를 지정하는 또다른 동작을 수행하는 타이밍으로 변경될 수 있다.
화면스크롤 혹은 그런 종류의 다른 것에 대하여 윈도우에 그려진 벡터이미지를 참고로, 할당된 액션은 "전체 벡터 이미지가 윈도우내에 나타날때,""일부가 윈도우상에 나타날 때," "전체 벡터 이미지가 사라질때(윈도우에서 이동할 때)," "일부가 사라질 때"등으로 실행될 수 있다. 이 경우에서 이들 상태는 도 7에 도시한 액션설정 화면상에 "언제?"필드에 설정되어야 한다.
도 9를 참고로, 이하 표시된 이미지가 위의 설정하에 이동되는 시간에 동작에 대해 설명한다.
이미지가 스크롤될 때, 예를들어 VRAM(16)의 내용이 재기록될때마다 각 셀은 도9에 도시한 흐름을 실행한다. 우선 각 셀은 DLL로부터 각 벡터이미지의 위치정보를 수신한다(단계 U1).
윈도우에 있는 각 벡터이미지의 n수는 초기화된다(단계 U2).
그 다음에 각 벡터이미지와 연관된 매개변수 파일이 있는지가 결정된다(단계 U3).
그런 매개변수 파일이 존재할 때 연관된 매개변수 파일에 있는 "언제?"필드에 설정된 내용이 검파된 내용과 부합되는지가 결정된다(단계 U4).
부합될 때 매개변수 파일에 있는 "액션"필드에 설정된 액션이 실행된다(단계 U5).
그 다음에 모든 벡터이미지에 대한 처리가 완료되는지가 결정된다(단계 U6). 만일 처리가 완료되지 않으면 벡터이미지의 수(n)는 갱신된다(단계 U7). 그런 후에 흐름은 단계 U3으로 돌아가 다음 벡터 이미지에 대한 처리를 실행한다.
"일부가 사라질때"가 도 1에 있는 셀(2)의 매개변수 파일에 있는 "언제?필드에 설정되고 "새로운 윈도우 열기"가 "액션"필드에 설정된다고 가정하자.
이 경우 셀(1)의 표시된 이미지가 전환되고 기호(1)가 윈도우의 프레임과 결칠 때 그 기호의 일부는 셀(2)이 호출되어 새로운 윈도우를 열도록 사라진다.
이 실시예에서 호출타이밍은 위에서 설명한 형태에 제한되지는 않고 더블클릭하고부터 "10초 후에" 혹은 "전체 이미지가 사라진 후의 1초"와 같은 지연시간이 설정될 수 있다. 이 경우에 도 8에 있는 흐름도에서 단계 T1에서의 결정 혹은 도 9에 있는 흐름도에서의 단계 U3에서의 결정은 매개변수 파일에 있는 "언제?"필드에 설정된다. 만일 설정된 지연시간이 없다면 흐름은 단계 T3이나 단계 U5로 진행한다. 한편으로 지연시간이 설정되면 시간 시작을 측정하고 지정시간이 경과할 때 흐름은 단계 T3이나 단계 U5로 간다.
윈도우에 그려진 임의의 선(벡터이미지)에 따라 표시된 이미지를 자동적으로 스크롤하고 전체이미지가 감춰질 때 새로운 이미지를 여는 것이 가능하다. 투명선로서의 선을 설계함으로써 관찰자가 선을 보지 않고도 프로그램이 자동적으로 실행될 수 있다. 예를들어, 윈도우상에 제1이미지를 표시하는 것과 같은 프로그램을 자동적으로 실행하는 것이 가능하고, 그 다음에 스크롤하고 스크롤이 완료될 때 윈도우를 닫고 다음 윈도우를 열고, 제2이미지를 스크롤하고 다음 윈도우를 열고 스크롤이 완료될 때 제1이미지를 다시 표시하는 것이 가능하다.
본 실시예의 전술한 설명은 액션으로서 새로운 윈도우를 여는 경우에 중심을 두었다. 이 경우에서 셀 사이의 관계는 도 10a 및 10b에 도시되어 있다. 도 10a는 새로운 셀이 호출되어 윈도우상에 래스터 이미지를 표시할 때 파일 구조와 동작흐름을 도시하고 도 10b는 새로운 셀이 호출되어 윈도우상에 벡터이미지를 표시할 때 파일구조와 동작흐름을 도시한다.
다른 액션은 매개변수 파일에서 지정될 수 있고 같은 방법으로 실행될 수 있다.
도 10c는 또하나의 애플리케이션이 한 윈도우상에 호출되는 경우를 도시한다. 좀더 자세히 말하면 매개변수 파일은 셀(1)의 벡터이미지에 의해 지정되고 워드프로세서, 데이터베이스 혹은 스프레드시트 등의 또다른 프로그램이 매개변수 파일의 내용에 따라 호출될 수 있다.
도 10d는 윈도우에 표시된 이미지가 같은 윈도우상에 스크롤되는 경우를 도시한다. 좀더 자세히 말하면 매개변수 파일은 셀(1)의 벡터이미지(벡터)에 의해 지정되고 표시된 이미지(래스터 및/또는 벡터)는 이 매개변수 파일의 내용에 따라 스크롤된다.
도 10e는 실제로 표시되는 층이 그 윈도우상에 표시가능한 복수개의 층으로부터 윈도우에 표시되는 경우를 도시한다. 그리고 선택된 층을 윈도우상에 표시한다. 좀더 자세히 말하자면 매개변수 파일은 셀(1)의 벡터이미지(벡터)에 의해 지정되고 셀(1)의 윈도우상에 표시되는 층은 매개변수 파일의 내용에 따라 선택되고 표시된다.
도 10f는 음향을 재생하는 처리가 윈도우상에 몇가지 처리 순서로 수행된다. 좀더 자세히 말하면 매개변수 파일은 셀(1)의 벡터이미지에 의해 지정되고 소정의 뮤직파일이 매개변수 파일의 내용에 따라 판독되어 음향을 재생한다.
도 10g는 윈도우가 그 자체를 닫는 경우를 도시한다. 좀더 자세히 말하자면 매개변수 파일은 셀(1)의 벡터이미지에 의해 지정되고 이런 셀은 매개변수 파일의 내용에 따라 닫혀진다.
"다른 윈도우 닫기"혹은 "새로운 윈도를 열고 자신을 닫기"와 같은 또다른 액션이 설정될 수 있다.
상술한 실시예에서 디폴트값은 윈도우의 위치 및 크기에 대해 직접 사용된다. 그러나, 어떤 디자인 변경으로 사용자가 초기 표시위치, 초기크기, 윈도우 디자인과 같은 전술한 것과 다른 매개변수를 변경하는 것이 가능하다. 이 경우에 사용자가 도 4에 도시한 윈도우상의 제어 바(46)를 클릭할 때, 예를들면 매개변수를 설정하고 변경하기 위한 화면이 표시된다. 이 화면에 표시된 것에 따라 매개변수가 설정되거나 변경될 수 있고 설정되거나 변경된 매개변수는 매개변수 파일에 텍스트 포맷으로 기억된다.
기호(4)가 셀(1)에 위치한 도 1에 도시한 예에서 만일 기호 4가 셀 3내에서 이동되어야 한다면 기호 4는 OS의 DLL의 벡터 그리기기능을 이용하여 셀 3으로 이동될 수 있다. 이 경우에 기호 4와 기호 4를 지정함으로써 실행되는 액션 사이의 관계는 기호 4가 할당된 파일명이 바뀌지 않는다면 변경되지 않는다. 그러므로 셀 3의 기호 4를 더블클릭하여 셀 5의 윈도우를 열 수 있다.
각 셀에 있는 기호가 이 실시예에서의 매개변수 파일과 연관되더라도 기능은 매개변수 파일을 셀과 무관한 벡터 이미지(이하 "버튼"으로 부른다)에 할당하고 버튼의 더블클릭에 응답하여 그 버튼과 연관된 매개변수 파일에 따라 실행프로그램을 호출하는 것으로 부가될 수 있다.
다음은 버튼을 준비하고 매개변수를 설정하고 실행프로그램을 실행하는 과정을 설명한다.
버튼을 준비하기 위하여 사용자는 OS의 그리기기능을 이용하여 버튼의 디자인을 결정한다. 버튼은 아이콘이나 문자열일 수 있다. 이 버튼을 클릭하여 실행되어야하는 액션을 등록하기 위하여 액션 설정모드가 설정되어 액션 설정화면을 표시한다.
버튼에 할당가능한 액션은 1) 래스터 액션 열기, 2) 벡터 액션 열기, 3) 프로그램 실행, 4) 자동 스크롤 액션, 5) 층 표시액션, 6) 음향발생 액션, 7) 셀 닫기 액션을 포함한다. 사용자는 하나 혹은 그 이상의 액션을 선택하고 등록한다. 액션을 실행하는 필요한 셀을 호출하고 비트맵과 벡터이미지를 표시하고 매개변수 파일명, 이미지 파일명, 뮤직 파일명 등과 같은 액션에 관하여 지정된다.
또한, 버튼은 연관된 매개변수 파일을 거쳐 셀에 있는 벡터이미지에서 호출가능하도록 설계될 수 있다.
이런 구조로 인해 새로운 셀을 호출하는 버튼을 작동시켜 혹은 연관버튼을 판독하는 셀에서 기호를 조작하여 애플리케이션을 자유로이 준비할 수 있다.
또한 이 버튼은 OS의 편집기능을 이용함으로써 3개의 다이어그램에 있는 또다른 위치로 복사되거나 이동될 수 있다. 이 경우 이런 버튼에 속하는 셀 및 버튼은 동시에 복사되고 이동될 수 있다.
본 발명에 따라 전술한 바와 같이 매개변수 파일은 기호나 버튼으로 할당된다. 그 결과 매개변수로 정의된 액션은 기호나 버튼을 지정함으로써 실행된다. 그러므로 벡터이미지와 액션을 연관시키는 것이 가능하여 애플리케이션을 쉽게 준비할 수 있다. 실행프로그램이 단지 윈도우 열기 혹은 닫기 등의 기본기능을 수행하기 때문에 빠른 실행속도가 유지될 수 있도록 비교적 작은 크기를 필요로 한다.
비록 마우스가 이 실시예에서 벡터이미지를 지시하는 입력장치로써 예시되지만 트랙볼이나 조이스틱등의 또다른 입력장치도 이용될 수 있다. 표시장치는 CRT에 제한되지 않고 LCD 같은 기타 다른 구조도 이용될 수 있다. 본 발명은 전술한 실시예에 국한되지 않고 여러 가지 다른 형태로 변경되고 적용될 수 있다.
(제2실시예)
이하 본 발명의 제1실시예를 이루기에 적당한 프로그램 아키텍처에 대해 설명한다.
요컨대, 본 발명으로 사용자는 고급 애플리케이션을 쉽게 만들 수 있고 또한 프로그램 실행속도를 향상시킬 수 있다.
본 발명의 아키텍처는 모든 프로그램 모듈이 다른 프로그램 모듈과 동등한 푸팅(footing) 때문에 "보스없는"아키텍처로 불린다. 프로그램의 전체동작을 제어하는 모듈은 없다(즉, 보스가 없다). 보스없는 아키텍처와 보스아키텍처의 비교는 도 11에 도시되어 있다. 도 11a는 보스 아키텍처에 기초한 애플리케이션(150)의 개략도이다. 이 아키텍처는 계층구조 형태이고 보스 모듈(152)은 모듈(154-157)과 같은 복수개의 모듈을 제어한다. 보스에서 각 모듈까지 연결되는 실선은 명령계통 및 연계를 도식적으로 그리는데 이용된다. 최하위 레벨(즉, 가지 끝에서의 모듈(157)에 있는 프로그램 모듈이 실행될 때, 보스에서 그 프로그램 모듈까지 실선(즉 링크)(151, 153, 158)이 유지되어야 한다.
도 11b는 본 발명의 보스없는 아키텍처에 기초한 애플리케이션의 개략도이다. 애플리케이션(160)은 모듈(162-165) 등의 복수개의 프로그램 모듈을 포함한다. 각 프로그램 모듈(본 발명에서 "셀"이라 불림)은 계층적 의미에서 다른 셀과 같다. 셀은 히스토리나 연계정보가 보유될 필요가 없는 색다른 방법으로 함께 연결된다. 각 링크는 독립적이다. 예를들어 동시에 활동적인 링크가 필요없다. 각 링크는 직접적이다. 즉, 두 셀은 하나 혹은 그 이상의 중간 링크를 이용할 필요없이 직접적으로 연결될 수 있다. 예를들어, 셀(162 및 164)은 선(167 및 168)을 이용하는 대신에 선 166을 사용하여 그리고 중간 셀을 지나 직접연결될 수 있다. 애플리케이션은 연관된 셀을 정의하고 본 발명의 색다른 링크를 이용하여 형성될 수 있다. 이것은 보스에서 최하위 레벨에 있는 모듈까지의 링크가 모듈이 실행되고 있는 모든 시간에 활동적이어야 하는 도 11a의 상황과 다르다. 도 11b에서 파선은 본 발명의 색다른 대화를 도식적으로 나타내는데 이용된다.
도 12는 본 발명의 보스없는 아키텍처를 이용하는 애플리케이션(200)의 구조를 도시한 그림이다. 애플리케이션(200)은 RAM에서 C1-C4로 레이블되고 적재되고 실행하는 복수개의 셀을 포함한다. 각 셀은 연관 파일(D1-D4로 레이블됨), DNA파일을 가지며 셀 정보를 포함한다. 여기서 용어 "DNA"는 활발한 셀과 이것의 DNA사이의 생물학적 관계와 함께 유비(analogy)에서 사용된다. 원하는 시간에 셀 C1은 디지털 시프팅 기능("DSF") 프로토콜을 이용하여 문("DSF문")을 셀 C2로 보낼수 있다. 셀 C2는 이들 문을 실행할 것이다. 이하, 셀의 자세한 구조, DNA 파일 및 DSF 프로토콜을 설명한다.
본 발명이 종래의 프로세스간 통신과 구별되는 중요한 것은 셀 C2가 이들 문의 원래정보를 보유하지 않는다는 것이다. 즉 프로세스간 통신의 어떤 히스토리도 유지되지 않는다. 따라서 셀 C1이 셀 C2에 DSF의 기록을 완료할 때 셀 C1과 C2 사이에 더 이상의 연계가 없다. 셀 C2는 실행중에 이들 문의 원(origin)을 알지 못한다. 또하나의 문 세트를 C2로 보냄으로써 셀 C1이 셀 C2와 통신을 후에 설립하는 것이 가능하다. 그러나 이런 통신은 이전의 통신과 구별된다. 새로운 세트의 DSF문이 보내질 때 종결된다.
각 셀은 DSF문을 바람하다면 셀의 어느것에도 보낼 수 있다. 따라서 셀 C1은 문을 셀 C3으로도 보낼 수 있다. 유사하게 셀 C2는 문을 셀 C4로 보낼 수 있다. 반대로 문을 셀 C1에 보낼 수 있다. 또한 셀 C3은 문을 셀 C1에 보낼 수 있다.
이 예에서, 셀 C1 및 C2는 C4에 대한 보스가 아니다. 예를들면 C4가 DSF문을 실행하고 있을 때 셀 C1과 C2사이 그리고 셀 C2와 셀 C4사이에 어떤 링크도 유지할 필요가 없다. 셀 C4는 애플리케이션(200)에 있는 어떤 셀에게도 실행결과를 보고할 의무가 없다. 링크는 DSF문이 전송되는 시간에만 유지된다. 또한 셀 C1에 의해 문을 셀 C2에 기록하는 것은 셀 C2에 의해 셀 C4에 문을 기록하는 것과 무관할 것이다. 게다가 셀 C4는 문을 실행할 뿐 문이 어디서 오는지는 상관하지 않는다. 도 12에서 파선은 셀 사이의 색다른 관계를 도식적으로 나타내는데 사용된다.
위에서 지적한 바와 같이 종래 아키텍처의 문제 가운데 하나는 연계정보의 초과량이 보유되어 이것에 의해 프로그램의 실행속도가 느려진다는 것이다. 본 발명의 아키텍처에서 셀 C2가 셀 C1에 의해 기록된 문을 실행할 때 스택에 래지스터값을 저장하고 재기억할 필요가 없다. 명령을 보내기에 앞서 중앙 데이터베이스에 셀을 등록할 필요가 없다. 실행상태를 보고하기 위해 메시지를 앞뒤로 보낼 필요가 없다. 그 결과 애플리케이션이 빨리 실행될 수 있다.
연계 프로그램에서 사실상 오버헤드가 없기 때문에 다수의 작은 셀을 이용한 애플리케이션을 설계하는 것이 가능하다. 바람직한 실시예에서 셀의 크기는 작다. 예를들면 보통 약 10킬로바이트이다. 각 셀의 기능은 정의가 잘 되어있고 초점이 맞춰진다. 그 결과로서 애플리케이션을 설계하는 데 있어서 유동성이 있고 실행 효율이 향상된다.
또한 셀이 RAM에 이미 적재되어 있지 않고 실행되고 있다면 또다른 셀을 호출할 수 있다(예를들어 셀 C1은 2중 파선에 의해 나타낸 바와 같이 셀 C5를 호출할 수 있다). 호출된 셀(즉, 셀 C5)은 호출 후에 호출셀(즉, 셀 C1)과 완전히 독립적이다. 따라서 호출셀은 호출된 셀의 보스가 아니고 두 셀은 계층적으로 같은 레벨에 있다. 이것은 호출 프로그램 모듈이 호출된 프로그램 모듈로서 계층적인 다른 레벨에 있는 종래기술과는 완전히 다르다.
아래에 설명된 바와 같이 셀은 "EXE"파일(MS 도스나 MS 윈도우즈 환경에서)로서 이행될 수 있고, 동작환경에 따라 잘 알려진 방법을 이용하여 실행을 위해 RAM에 적재될 수 있다. 또한 셀의 연관 DNA 파일이 RAM에 적재될 수 있다. 호출된 셀은 DNA셀에 기억된 속성을 이용한다. 또한 셀이 호출될 때 혹은 파일(ASCII파일일 것이다) 기록에 의해 실행되는 동안 DNA 파일을 변경하는 것이 가능하다. 그 결과 아키텍처는 애플리케이션을 만드는 데 유동적 접근을 제공한다.
보스없는 아키텍처는 도 22 및 11a의 계층적 아키텍처 대신에 평평한 구조를 갖는다는 것을 도 12에서 알 수 있다. 어떤 셀도 다른 셀에 대해 보스로서 기능을 수행하지 않는다. 따라서 이런 아키텍처를 보스없는 아키텍처라 부른다.
이런 아키텍처는 어떤 셀에서도 애플리케이션을 시작하는 것이 가능하고, 다른 셀은 필요할 때 호출될 수 있다. 전개할 체인이 없기 때문에 셀은 즉시 종결될 수 있다. 애플리케이션을 나가기 전에 "보스"프로그램으로 돌아갈 필요가 없다. 본 발명의 한 실시예에서 셀은 새로운 셀의 호출 후 선결된 시간에 애플리케이션을 나갈수 있다. 본 발명의 다른 실시예에서 다른 셀은 DSF문을 이 셀에 보낼 수 있는데 이것을 종결시키는 것이 요구된다.
도 13은 셀 CA와 같은 셀과 연관된 DNA 파일(250)의 논리구조를 도시한 블록도이다. 파일(250)은 셀 CA 자체의 특징과 관계된 매개변수("자체 매개변수")를 포함하는 섹션(252)을 갖는다. 예를들어 섹션(252)은 셀 CA가 호출될 때 그 자체를 명백히 하는 방식과 관련된 매개변수 즉, 셀 CA의 윈도우크기 및 배경색, 셀 CA의 이름, 호출 및 종료와 연관된 오디오 파일명 등을 포함할 수 있다.
또한 파일(250)은 셀 CA와 관련된 셀에 대한 연계 매개변수("링크 매개변수")를 포함하는 섹션(254)을 포함한다. 이 섹션에 포함된 매개변수의 예는 다른 셀의 이름, 기호, 위치이다. 매개변수 중의 하나는 "닫기"인데 이것은 이 매개변수와 연관된 셀이 호출될 때 셀 CA를 닫는 것으로 번역된다.
파일(250)은 DSF 정보섹션(256)을 추가로 포함한다. 이 섹션은 정규문 섹션(257) 및 탑 위선순위 기능 섹션(264)을 포함한다. 정규 섹션(257)과 탑 우선순위 기능 섹션(264)은 탑 우선순위 기능 섹션(264)이 문 실행에서 더 높은 우선순위를 갖는 것을 제외하고 사실상 같다. 이들 두 섹션은 섹션을 식별하기 위한 각 헤더를 포함한다(예를들면 각 섹션은 다른 이름이나 기호에 의해 표제가 붙여진다).
정규 섹션(257)은 "조건"섹션(258)과 문 섹션(260)을 포함한다. 문 섹션(260)은 다른 셀에 의해 셀 CA로 보내진 DSF 문을 포함한다. 문 섹션(260)에 있는 문은 순차적으로 실행된다. 문의 예는 "원그리기", "선그리기", "화면이동"이다. 또한 각 문은 문 실행에 필요한 매개변수를 포함한다(예를들면, 윈의 위치나 직경). 조건 섹션(258)은 3가지 구성요소 즉, (i) 문 섹션(260)에 현재 존재하는 마지막 DSF문에 대한 제1포인터, (ii) 셀 CA에 의해 처리되는 현재 DSF문에 대한 제2포인터, (iii) 셀의 현재상태를 포함한다. 상태의 예는 준비상태, 바쁜상태, 잠금상태, 네버(never)상태이다. 톱 우선순위 기능 섹션(264)은 조건 섹션(266) 및 명령라인 섹션(268)을 포함한다. 조건 섹션(266)의 구조는 조건 섹션(258)의 구조와 유사하다(예를들어 이들 두 섹션은 두 포인터를 포함한다). 명령라인 섹션(268)은 DSF(혹은 유사한 것)프로토콜을 이용하여 다른 셀에 의해 보내진 실행가능한 명령라인을 포함한다. 명령라인은 문 섹션(260)에서의 문 보다 높은 실행우선순위를 갖는다(실행 우선순위의 자세한 것은 도 14를 참고로 아래에 설명한다). 명령라인 섹션(268)에서의 명령라인은 순차적으로 실행된다. 섹션(268)에서의 명령 예는 닫기, 최소(윈도우를 최소화하는 것), 최대(윈도우를 최대화 하는 것), 재기억등이다.
도 13에 도시한 논리구조는 하나 혹은 그 이상의 물리 파일을 이용하여 이행될 수 있다는 것을 인식해야 한다. 또한 논리 섹션의 일부분은 물리적으로 혼합될 수 있다. 본 발명의 한 실시예에서 DNA 파일은 텍스트 파일이다. 따라서 DNA 파일의 내용은 정규 텍스트 편집기를 이용하여 변경될 수 있다.
한 셀에서 다른 셀로 보내진 문은 DSF 프로토콜을 따른다. 셀(예를들면 셀 CS)을 보내 셀 CA와 연관된 DNA파일(250)과 통신링크를 셋업한다. 특히 DNA 파일(250)의 주소를 룩업하고 조건 섹션(258)에서 상태를 조사함으로써 DNA 파일(250)이 DSF문(예를들면 "준비"상태에서)을 받아들일 수 있는지가 결정된다. 문은 셀 CA가 이들을 받아들일 준비가 되어 있을 때만 셀 C6에 의해 명령이 내려질 수 있다. 한 실시예에서 문 명령은 DNA 파일(250)의 문 섹션(260)에 ASCII 문자(예를들면 "원그리기"에 대한 ASCII문자)의 기록을 수반한다.
셀 CS가 셀 CA에 문을 명령하는 것으로 허가될 때 셀 CS는 DSF문을 기록하는 적당한 주소를 결정하기 위해 마지막 DSF문에 대한 제1포인터(조건 섹션(258)에서)를 판독한다. 셀 CA에 이미 존재한 DSF문을 중복기재하지 않는 것이 중요하다. 셀 CS는 DNA 파일(250)의 문 섹션에 DSF문을 기록한다. 또한 셀 CS는 문 섹션(260)에 새로이 기록된 마지막 DSF문을 지시하기 위하여 조건섹션(258)에 있는 제1포인터를 갱신한다. 셀 CA와 CA 사이의 통신링크가 종결된다. 셀 CA 및 DNA 파일(250)은 이들 새로운 문이 셀 CS에서 기원하는 것으로 지시된 기록(예를들면 히스토리)을 유지하지 않는다는 것을 알 수 있다.
상기한 DSF 프로토콜은 단지 예시적인 프로토콜이라는 것을 숙지해야한다. 다른 프로토콜은 DSF 문을 셀에 기록하기 위해 사용될 수 있다. 예를 들면 서로 다른 포인터 구조가 사용될 수 있다. 예를 들면 제1 포인터는 최종 DSF 문 다음에 위치를 지시할 수 있다. 상태 정보를 체크하기 위해 서로 다른 형식의 상태 및 방법이 사용될 수 있다. 더욱이, 문은 순차적인 방식으로 물리적으로 저장되는 대신에 논리 구조에 따라 저장될 수 있다. 예를 들면, 문은 포인터에 의해 지시되는 각 그룹의 주소를 갖는 그룹으로 조직될 수 있다.
커맨드 라인은 본질적으로는 DSF 프로토콜과 동일한 프로토콜을 이용하여 한 셀에 의해 다른 셀로 송신된다. 정규문 섹션(257) 및 탑 우선 순위 기능 섹션(264)이 서로 다른 헤더를 가지므로, 송신 셀은 이 두 섹션을 구별할 수 있으며 적당한 섹션에 기록할 수 있다. 이 두 섹션을 식별하기 위한 다른 수단도 또한 사용될 수 있다(예를 들면, 문 및 명령 라인의 분리 링크된 리스트를 유지하는 것).
DSF 문/명령가 순차적으로(물리적 또는 논리적으로)실행되므로, 셀CA는 셀CS에 의해 기록된 상기한 문/명령에 선행하는 문/명령의 실행을 완료할 필요가 있다. 전에 기록된 문/명령의 설정은 다른 셀에 의해 기록되는 것이 바람직하다(비록 우선 통신 링크에서 셀 CS에 의해 기록되는 것도 가능하지만)
전에 기록된 문/명령의 설정이 실행된 후, 그리고 셀 CS에 의해 기록된 문/명령의 실행 전에, 셀 CA는 문/명령의 제1 설정을 기록한 셀과 관련하여 어떠한 조치도 취할 필요가 없다(예를 들면, 어떤 "리턴"도 필요하지 않다.) 본 발명의 이런 양상은 종래의 프로그래밍 아키텍처와는 다르다.
셀 CA 및 CS간의 통신 링크는 셀CS에 의해 송신된 제1 문/명령의 실행 전에 종결될 수 있다(예를 들면, 셀CS가 셀CA로의 DSF문의 송신을 끝마쳤을 때 전에 기록된 DSF 문/명령는 아직 완전히 실행되지 않는다.). 이 것은 두 프로그램 모듈간의 통신 링크가 단지 이런 두 모듈과 관련한 임무가 완전히 실행된 후에야 완료되는 종래의 링크와는 다르다.
탑 우선 순위 기능 섹션(264)의 다른 실시예에서, 명령 라인 섹션(268)은 단지 하나의 명령만을 허용한다. 이 실시예에서, 포인터를 가질 필요는 없다. 그래서, 조건 섹션(266)은 탑 우선 순위 기능 섹션(264)으로부터 제거될 수 있다. 이 섹션이 헤더의 의해 다른 섹션으로부터 분리되므로 다른 셀은 탑 우선 순위 기능 섹션(264)으로 단일 명령를 기록할 수 있다.
도 14는 셀CA의 구조를 도시한다. 그것은 복수의 섹션으로 논리적으로 분류되며, 각각은 컴퓨터에 의해 실행될 수 있는 명령을 이용하여 이행된다. 셀CA는 초기화 섹션(312) 및 DNA 인터페이스 섹션(314)을 포함한다. DNA 인터페이스 섹션(314)은 셀CA가 대응하는 DNA파일(250)로부터 판독하여 기록하는 것을 허용한다. 초기화 섹션(312)은 DNA파일(250)의 "자체 매개변수" 섹션(252)으로부터 판독 매개변수를 포함하며, 호출되었을 때 하우스키핑 임무를 담당한다. 셀CA는 또한 DSF 인터페이스 섹션(316)(DSF프로토콜을 처리하기 위한)을 포함한다. 이 섹션은 DSF프로토콜을 이용하여 문/명령 라인을 송신 및 수신하기 위한 코드(또는 프로그램 명령)를 포함한다.
셀CA는 다른 셀에 의해 기록된 DNA파일(250)에서 자동 실행 문 및 명령 라인을 위한 코드를 포함하는 실행 섹션(318)을 포함한다. 상기 코드는 DNA파일(250)의 문섹션(260)에서 문을 순차적으로 판독하여 실행한다. 각 문이 실행된 후에, 셀CA는 탑 우선 순위 기능 섹션(259)으로 분기 명령을 실행하여 그곳에서 모드 명령 라인을 실행한다. 셀CA는 그리고 나서 문 섹션(260)에서 그 다음 문을 실행한다.
실행 스텝을 도시하기 위해 일 예가 사용된다. 이 예에서, 문 섹션(260)은 두개의 문, "원 그리기" 및 "선 그리기"를 포함하며, 반면에 탑 우선 순위 기능 섹션(259)은 하나의 명령 라인, "맥스"를 포함한다. 셀CA가 "원 그리기"문 및 관련된 매개변수를 판독할 때, 상기 코드는 연관된 매개변수에 의해 결정된 할당 직경으로 적당한 장소에 원을 그리기 위해 그래픽 연산을 수행할 것이다. 셀CA는 그리고 나서 탑 우선 순위 기능 섹션(259)으로 분기 명령을 실행하며 "맥스"명령를 실행하며, 그래서 셀CA와 연관된 윈도우를 확대하게 한다. 셀CA는 문 섹션(260)으로 리턴하여 그 다음 문, 즉, "선 그리기"문을 실행한다. 셀 CA는 "선 그리기"문과 연관된 매개변수와 관련하여 선을 그리는 그래픽 연산을 실행한다.
상기 예에서, 만약 탑 우선 순위 기능 섹션(259)에서 명령 라인이 "닫기"명령를 포함하는 경우, 셀 CA는 닫힐 것이다. 이런 상황에서, "선 그리기"문은 실행되지 않을 것이다.
본 발명의 일 실시예에서, 셀CA는 문이 DNA파일(250)에 존재하는 지에 상관없이 선결된 시간에(즉, 폴링 배열과 유사한) 문 섹션(260)을 판독한다. 본 발명의 또 다른 실시예에서, 한 셀이 DNA파일(250)로 문을 송신한 후에, 직접 혹은 간접적으로(예를 들면, 오퍼레이팅 시스템을 통해) 셀CA로 신호를 송신한다. 신호를 받자마자, 셀CA는 모든 문이 실행될 때까지 문 섹션(260)에서 문을 실행한다. 셀CA는 그리고 나서 또다른 신호를 기다린다. 이 실시예는 인터럽트 배열과 유사하다. 그래서 문의 실행은 양 실시예에서 자동적으로 수행된다.
셀CA는 일시 정보를 저장하기 위해 일시 기억 섹션(322)을 포함한다. 일 예로서, 실행 중에 셀 CA의 속성(예를 들면, 배경색 및 디스플레이 윈도우 사이즈)을 변경할 수 있다. 본 발명의 일 실시예에서, 변경된 속성은 DNA파일(250)에 즉시 기록되는 대신에 일시 기억 섹션(322)에 일시 저장된다. 셀CA의 실시예에서, 일시 기억 섹션(322)에 저장된 속성 정보는 셀 CA가 종결되었을 때만 DNA파일(250)의 "자체 매개변수" 섹션(252)으로 기록된다.
셀 CA는 또한 다른 셀을 호출하기 위한 셀 호출 섹션(324)을 포함한다. 본 발명의 일 실시예에서, 이 섹션은 호출되기에 바람직한 셀에 관한 정보를 획득하여 이 정보를 실제로 바람직한 셀을 호출하는 전문 셀로 전달한다. 셀 CA의 셀 호출 섹션에서의 전문 셀 및 다른 셀의 기능을 결합하는 것도 가능하다.
셀 CA에서 상기한 섹션은 논리적으로 분류되며 이런 섹션 부분들은 물리적으로 혼합될 수 있다.
셀 CA 및 DNA 파일(250)은 둘다 DSF문의 기원을 따르지 않는다는 것은 상기한 셀CA 및 연관된 DNA파일(250)의 구조로부터 이해될 수 있다. 한 셀이 많은 셀로부터 연관된 DNA파일에 저장된 DSF문을 수용할 수 있다.
DSF문이 접수된 후에, 기원 셀 및 목표 셀사이의 연결이 종결된다. 셀은 문이 어떻게 DNA파일에 도착했는 지에 관한 지식도 없이 연관된 DNA파일에 포함된 DSF문을 실행한다. 그 결과, 어떤 셀에도 "리턴"할 필요가 없다.
전형적으로 각 셀의 사이즈는 작으면서 셀의 기능은 잘 규정되어 있다. 결과적으로 실행 속도가 빠르다. 작은 사이즈와 전문화된 기능으로 셀은 컴퓨터의 리소스를 완전히 이용하기 위해 쉽게 기록될 수 있다. 애플리케이션이 처리되는 오퍼레이팅 시스템으로의 최소량의 액세스로, DSF를 이용한 셀간의 통신은 직접적이다. 그 결과 효과가 높다.
본 발명의 아키텍처는 서로 통신할 수 있는 최소한 두개의 셀을 포함한다. 그 셀들은 그들의 예정된 임무를 위해 전문화된 밀폐 프로그램 모듈이다. 그러므로 본 발명의 아키텍처를 이용하여 개발된 애플리케이션들은 독립적으로 혹은 동시에 처리될 수 있는 다수의 실행 가능한 셀들로 구성된다. 셀들은 고안된 DSF프로토콜을 이용하여 서로 상호 작용한다. 각 셀은 다른 셀의 활동을 제어할 수 있다. 예를들면, 제1 셀은 제2 셀을 제어할 수 있고, 제2 셀은 제1 셀을 제어할 수 있다. 그러므로 어떠한 단일 셀도 다른 셀 보다 완전한 제어를 가질 수 없다. 말하자면, 보스는 없다. 한편, 종래의 아키텍처에서, 보스에 종속하는 프로그램 모듈은 보스를 제어할 수 없다. 또하나의 본 발명의 아키텍처의 독특한 특성은 명령을 수신하는 셀이 명령이 유래한 곳에 관한 정보를 보유하지 않는 다는 것이다. 이런 역사적 지식의 부족이 셀을 링크에서 후퇴하는 대신에 전진하게 한다.
본 발명의 기술은 프로그램 모듈 및 그들간의 상호작용 구조가 생물학적인 셀과 유사하여 "디지털 셀 기술"이라 불려진다. 유사한 점은 여기에 기재되어 있다. (i)애플리케이션이 서로서로 다이나믹하게 상호작용하는 많은 셀들로 구성된다. (ii) 많은 셀들이 한번에 활동할 수 있다. (iii) 한 쌍의 셀의 상호작용은 다른 쌍의 셀의 상호작용과 독립될 수 있다. (iv) 제어가 중점화되는 것 대신에 속성화 될 수 있다. (v)각 셀은 셀의 행동을 안내하는 DNA구조와 연관된다.
본 발명의 실시예중의 하나는 마이크로소프트사의 MS윈도우하에서 처리되는 멀티미디어 개발 시스템이다. 이 환경에서, 셀들은 "EXE"파일로서 저장된 프로그램이며 전형적으로 호출되었을 때 컴퓨터 모니터에 윈도우를 도시한다. 이런 셀들의 연결에 의해 사용자는 어셈블링 블록과 같은 애플리케이션 소프트웨어를 구성할 수 있다. 특정 기능으로 각 셀에는 애플리케이션의 다양성을 위해 다른 셀을 갖는 DSF프로토콜을 통해 또 다른 기능 혹은 값이 주어진다.
도 15는 상기한 애플리케이션 개발 시스템을 처리하는 컴퓨터 시스템(380)의 블록도이다. 컴퓨터 시스템(380)은 IBM 호환 컴퓨터와 같은 퍼스널 컴퓨터(382)를 포함한다. 퍼스널 컴퓨터는 CPU, RAM, ROM, 하드디스크 멀티미디어 장치(예를 들면, 사운드 카드, CD-ROM 판독기, 비디오 카드등)와 같은 컴포넌트를 포함한다. 퍼스널 컴퓨터는 MS-DOS(384) 및 MS 윈도우즈(386)로 적재된다. 본 발명의 셀(391∼393)은 MS 윈도우즈(386) 위에서 처리된다. 이 셀들중 몇몇은 표시장치에 그래픽으로 표시될 수 있으며 퍼스널 컴퓨터(382)의 사운드 카드에서 재생될 수 있다.
MS 윈도우즈 환경하에서 처리되는 셀들의 예시적 리스트가 그들의 기능의 설명과 함께 하기와 같이 주어진다.
설명
이름 버튼: 할당된 액션 속성을 갖는 버튼을 만든다.
비디오: 비디오 파일(AVI) 재생을 가능하게 한다.
내용: 텍스트 파일(TXT)을 표시한다(텍스트에 액션 속성을 부가하는 능력을 갖는 텍스트 에디터)
비주얼: 동적 360도 자유 화면이동, 다층 서포트, 래스터 및 벡터, 할당된 액션 속성을 갖는 오버레이 및 객체 오버레이를 갖는 BMP, DXP, TITF, WRI 및 TXT파일의 표시를 가능하게 한다.
나카마: 하나 이상의 비주얼 셀이 좌표를 이용하여 연결되는 것을 가능하게 한다. 두 개의 비주얼 셀에서 이미지를 내부 연결된 윈도우(새의 눈 관찰)를 이용해 인터록되는 것을 가능하게 한다.
처리: DNA 파일 에디터 및 DNA 파일 실행자. 애플리케이션의 연속적인 재생을 가능하게 한다. 이 셀은 상기한 바와 같이 다른 셀을 호출하기 위한 전문 셀로서의 역할을 한다.
복사: 파일 복사를 수행한다.
타이틀: 타이틀 바 기능을 실행한다.
재시작: 운영체제를 종료하거나 재시작하기위해 사용자 선택을 제공한다.
플레이웨이브: 사운드 파일(WAV) 재생을 가능하게 한다.
영역: 비주얼 셀에 기록된 그래픽의 속성을 조작한다.
리스트: 개체/층이 분류되는 것을 가능하게 하며 규정된 그룹에 즉각적인 액세스를 제공한다.
이 셀들은 메모리(예를 들면, 플로피 및/또는 하드디스크)에서 "EXE"파일로서 저장된다. 하나이상의 셀을 동시에 활성하기 위한 시스템 리소스를 효과적으로 할당하기 위해, 대부분의 셀의 사이즈는 대략 10킬로바이트이다. 예외적으로 비주얼 셀은 약 100 킬로바이트이다.
그 시스템을 설명하기 위해 단순화된 일 예가 사용된다. 상기한 단 한가지 형식의 셀인, 비주얼 셀은 이 예에서 사용된다. 이 예에서, 시스템은 MS 윈도우즈의 자원를 이용한다. 예를 들면 셀의 호출(예를 들면, 아이콘을 클릭한 결과인 적당한 파일의 로딩) 및 그래픽 사용자 인터페이스(예를 들면, 리사이즈, 끌기 및 드롭등)는 MS 윈도우즈에의해 조작된다.
멀티미디어 애플리케이션 개발 시스템은 MS 윈도우즈에서 인스톨될 필요가 있다. 인스톨은 분해가능 저장 미디어(예를 들면, 플로피, CD-ROM등)로부터 컴퓨터하드디스크에 있는 적당한 디렉토리에 비트맵, 셀, 사운드 및 비디오 등의 파일을 로딩하는 것에 관한 것이다. 프로그램들은 MS 윈도우즈에 링크되며 아이콘은 적당한 곳에 위치한다. 그래서 사용자는 MS 윈도우즈 하에서 아이콘을 클릭함으로써 개발 시스템을 호출할 수 있다. 개발 시스템이 처리되면, 다양한 셀들은 셀과 관련된 아이콘을 클릭함으로써 호출될 수 있다.
도 16은 MS 윈도우즈(386)의 제어 하에 표시화면(402)에 표시된 제1 비주얼 셀을 표시하는 윈도우(400)를 도시한다. 윈도우(400)는 전형적으로 그래픽 이미지(도시되지 않음) 및 타이틀 바(404)를 포함한다. 사용자는 윈도우즈(400)에서 아이콘(406)을 클릭할 수 있으며, 사이드 바(408)가 표시된다. 사이드 바(408)는 사용자가 윈도우즈(400)와 연관된 제1 비주얼 셀에 기능성을 부가하는 것을 허락하는 아이콘을 표시하기위한 공간을 포함한다.
사이드 바(408)의 공간중 하나는 사용자가 윈도우(400)에 제2 비주얼 셀을 호출하기 위한 아이콘을 첨부하는 것을 허락하기 위한 아이콘(410)을 포함한다. 사용자가 아이콘(410)을 클릭한 후에, 기호는 사용자가 제2 비주얼 셀을 표시하기 위해 윈도우내부에 아이콘을 위치시키는 것을 도와준다. 도 17에 도시된 윈도우(430)는 사용자가 제2 비주얼 셀의 특성을 규정하는 것을 허락한다는 것을 나타낸다. 사이드 바(408)는 또한 사용자가 윈도우(400) 내부에 위치한 비주얼 셀을 삭제할 것을 허락하는 아이콘(424)을 포함한다.
윈도우(430)는 제2 비주얼 셀과 연관된 DNA파일명을 입력하기 위한 사용자를 위한 라인(432)을 포함한다. 윈도우(430)에 입력된 정보는 이 DNA파일에 저장될 것이다. 윈도우(430)는 또한 제2 비주얼 셀을 도시하는 그래픽 윈도우의 타이틀을 입력하기 위한 사용자를 위한 라인을 포함한다. 도 17에서 타이틀 "1-A"가 라인(434)에 입력된다. 라인(436)은 사용자가 제2 비주얼 셀 호출 모드를 선택하는 것을 허락한다. 윈도우(430)에서, "더블 클릭"이 선택되고, 제2 비주얼 셀 지시가 아이콘(412)을 더블클릭하자마자 호출된다.
윈도우(430)는 사용자가 제2 비주얼 셀의 액션을 규정하는 것을 허락하는 라인(438)을 포함한다. 도 17에서, 선택된 액션은 "비트맵 파일 열기"이다. 그래서 제2 비주얼 셀의 의해 수행된 액션은 비트 맵 파일을 여는 것이다. 라인(440)은 사용자가 제2 비주얼 셀이 액션을 수행할 때 열려지는 이미지 파일을 입력할 것을 허락한다. 윈도우(430)는 사용자가 라인(440)에 적당한 파일을 입력할 목적으로 컴퓨터에 이미 저장된 이미지 파일을 조사하는 것을 허락하도록 "검색"버튼(441)을 포함한다. 윈도우(430)는 또한 "스스로 닫기"박스(442)를 포함한다. 선택되었을 때 제1 비주얼 셀은 제2 비주얼 셀이 호출된 때 자동적으로 닫힐 것이다. 이것은 제1 및 제2 비주얼 셀을 연결하는 제1 비주얼 셀과 연관된 DNA 파일의 연결 매개변수로 라인에 "닫기" 매개변수를 첨부함으로써 이행된다.
이 실시예에서, 라인(440-442)은 액션 라인(438)과 관련이 있다. 선택된 액션이 "비트맵 파일열기" 대신에 "비주얼 셀 닫기"이면, 라인(440)은 사용자가 제2 비주얼 셀의 호출 후에 선택된 닫힌 비주얼 셀의 DNA파일을 입력하는 것을 허락하도록 변경된다. 이 실시예에서, 제2 비주얼 셀은 그 셀을 닫을 목적으로 호출한 후에 지정 비주얼셀로 "중단" DSF문을 송신한다.
제2 비주얼 셀에 의해 수행되는 다양한 액션을 입력하기 위해 윈도우(430)를 사용할 수 있다. 상기한 두 가지 예는 단지 설명을 위한 것이다.
윈도우(430)는 사용자가 제2 비주얼 셀의 호출과 연관된 오디오 파일을 입력할 것을 허락하는 라인(444)을 포함한다. 윈도우(430)는 라인(444)에 적당한 파일을 입력할 목적으로 사용자가 컴퓨터에 이미 저장된 오디오(전형적으로 "WAV" 확장자를 갖는)파일을 검색할 수 있도록 "검색" 버튼(445)을 포함한다.
윈도우(430)는 사용자가 지연을 입력할 것을 허락하는 라인(448)을 포함한다. 이 매개변수는 제2 비주얼 셀이 아이콘(412)이 클릭된후에 선결된 시간 간격을 표시할 것을 허락한다.
윈도우(430)에 의해 요구되는 정보의 포맷은 예시적이다. 프로그래머의 고안 목적 및 창작성에 따라, 윈도우(430)는 다른 포맷을 가지고 다른 형식의 정보를 요구할 수 있다. 윈도우(430)가 닫힐 때(모든 필수 정보가 사용자에 의해 입력된 후에), 윈도우에 포함된 정보는 라인(432)에 표시된 DNA파일에 저장된다. 이 실시예에서, DNA파일은 하드 디스크에 저장된 ASCII 텍스트 파일이다.
사용자가 아이콘(412)을 클릭할 때, 윈도우(416)가 제2 비주얼 셀의 한 인스턴스를 표시하기 위해 열린다. 윈도우(416)는 관련 DNA파일에 의해 규정된 특성을 갖는다. 예를 들면, 윈도우(416)는 타이틀 "1-A"(윈도우(430)의 라인(434)로부터 결정된) 및 라인(440)에 규정된 이미지 파일과 연관된 그래픽 이미지(417)를 포함한다. 윈도우(416)의 위치는 통상적인 MS 윈도우즈 방법(즉, 끌기 및 드롭)을 이용하여 이동될 수 있다. 사용자가 아이콘(412)을 다시 클릭했을 때, 제2 비주얼 셀의 또다른 윈도우(418)가 윈도우(416)와 동시에 나타난다. 이 경우에, 두개의 제2 비주얼셀이 RAM에 로드되며, 각각은 동일한 DNA파일과 연관된다.
제2 비주얼 셀이 활동하는 동안 제1 비주얼 셀을 중단할 수 있다. 도 16에서, 각각의 비주얼 셀 윈도우는 사용자가 윈도우를 닫는 것을 허락하기 위해 윈도우(416)에서 버튼(422)과 같은 "닫기" 버튼을 갖는다. 도 16에 도시된 개발 시스템에서, 사용자는 윈도우(416 및 418)가 표시화면(402)에서 계속하여 활동하는 동안 제1 비주얼 셀과 연관된 윈도우(400)를 닫을 수 있다.
제2 비주얼 셀의 의해 등록된 문을 이용해 윈도우(400)를 닫을 수도 있다. 앞에서 설명한 바와 같이, 도 17의 라인(438)은 "비주얼 셀 닫기"로 설정될 수 있으며 비주얼 셀 명은 제1 비주얼 셀로 설정된다. 제2 비주얼 셀은 호출되었을 때, 제1 비주얼 셀을 닫을 목적으로 제1 비주얼 셀과 연관된 DNA 파일로 DSF문을 송신할 것이다.
다른 형태의 두셀인, 비주얼 셀 및 버튼 셀을 도시하는 일 예가 아래에서 설명된다. 도 18은 도 15의 MS 윈도우즈(386)의 제어 하에 디스플레이 화면(462)에 디스플레이된 버튼 셀을 표시하는 윈도우(460)를 도시한다. 윈도우(460)는 타이틀 바(464)를 포함한다. 사용자는 윈도우(460)에서 아이콘(466)을 클릭할 수 있으며 사이드 윈도우(468)가 표시된다. 사이드 윈도우(468)는 사용자가 윈도우(460)에 버튼을 부가하고 윈도우(460)로부터 버튼을 제거하는 것을 허락하는 아이콘을 디스플레이하기 위한 공간을 포함한다.
사이드 윈도우(468)의 공간중 하나는 사용자가 윈도우(460)에 버튼을 첨부하는 것을 허락하기 위한 아이콘(470)을 포함한다. 사용자가 사이드 윈도우(468)에서 아이콘(470)을 클릭한 후에, 사용자가 윈도우(460)의 바람직한 위치에 버튼(472)을 위치하는 것을 돕기 위해 기호가 나타난다. 이 새로운 버튼은 나중에 사용자에 의해 클릭될 수 있으며 일련의 사용자 규정 활동이 발생될 것이다. 사이드 윈도우(468)는 또한 사용자가 윈도우(460)에 존재하는 버튼을 제거하는 것을 허락하는 아이콘(476)을 포함한다.
사용자는 그리고 나서 도 19에 도시된 윈도우(500)을 여는 사이드 윈도우(468)에서 또다른 아이콘(474)을 클릭할 수 있으며, 그래서 사용자가 버튼(474)의 특성을 규정하는 것을 허락한다. 윈도우(500)는 사용자가 윈도우(500)에 입력되는 정보의 형식을 선택할 것을 허락하기 위한 항목 리스트를 도시하는 영역(502)을 포함한다. 예를 들면, "액션"의 선택은 호출되었을 때 사용자가 버튼(472)에 의해 취해지는 액션을 입력할 것을 허락하는 반면에 "아이콘" 선택은 사용자가 단순 직사각형 버튼을 사용하는 대신에 버튼 셀을 나타내기 위해 아이콘을 선택할 것을 허락한다. 그 리스트는 다른 항목을 포함할 수 있다. 리스트에 있는 항목의 선택에 따라, 윈도우(500)의 모양 및 윈도우(500)에 의해 요구되는 정보가 달라질 것이다.
리스트를 보여주는 영역(502)내에서 "액션"이 선택된다. 그러한 선택의 결과로, "액션" 윈도우(504)와 "추가" 윈도우(506)가 표시된다. 액션윈도우(504)는 호출되었을 때, 버튼(475)의 액션을 보여준다. 액션윈도우(504)의 내용은 추가윈도우(506)를 사용하는 사용자에 의해 선택된다.
추가윈도우(506)는 "프로그램 실행", "버튼 실행", "비주얼 실행", "파 재생" 그리고"비트맵 표시"와 같은 복수의 액션들을 포함하고있다. 사용자는 이들 액션중 임의의 하나를 클릭할 수 있고, 사용자로 하여금 액션을 추가로 지정하게 하기 위한 윈도우가 나타날 것이다. "비주얼 실행"을 위한 그러한 윈도우의 예는 도 20에 나타나 있다. 사용자는 추가 윈도우(506)에서 하나 또는 그이상의 액션을 선택할 수 있다.
선택된 액션은 액션 윈도우(504)에 나타난다. 예를 들어, 액션윈도우(504)는 추가 윈도우(506)내에서 "파 재생" 액션이 이전에 이미 선택되었다는 것을 지시하는 라인"뮤직 START. WAV"를 포함한다. "파 재생"(보이지 않음)과 관련한 윈도우은 사용자로 하여금 "START.WAV"라는 이름의 오디오 파일이 재생되어야 한다는 것을 지시하도록 한다. 액션윈도우(504)는 추가윈도우(506) 내에서 "비주얼 실행" 액션이 이전에 선택되었다는 것을 지시하는 라인 "비주얼 샘플 실행"을 또한 포함하고 있다. 사용자가 "OK"버튼(508)을 클릭할 때, 윈도우(500)내에 들어간 정보는 이 버튼 셀과 관련한 DNA파일 내에 기억된다.
비주얼 셀 샘플의 상세한 설명이 지금 기재된다. 도 20의 윈도우(530)는 추가윈도우(506)의 "비주얼 실행" 액션을 선택하는데 요구되는 정보의 타입을 보여준다. 윈도우(530)는 호출되어야 할 비주얼 셀의 DNA 파일을 엔터하기 위해 사용자를 위한 라인(532)을 포함한다. 이 경우에 이름은 액션윈도우(504) 내의 "비주얼 실행"에 해당하는 "샘플"이다. 사용자가 이미 존재하는 DNA 파일명의 리스트를 찾아볼 필요가 있을 경우에 윈도우(530)는 "브로우즈"버튼(534)을 포함한다. 윈도우(530)은 비주얼 셀 윈도우의 타이틀을 엔터하기 위해 사용자를 위한 라인(536)을 또한 포함한다. 윈도우(530)은 사용자로 하여금 요구되는 액션을 엔터하도록 하기 위한 라인(538)을 포함한다. 액션의 예들은 "새로운 윈도우 열기", "새로운 벡터 열기", "새로운 영화 열기" 등 이다. 윈도우(530) 내의 다음 라인인 라인(540)의 내용은 라인(538) 내의 선택에 달려있다. 이 실시예에서, 라인(538) 내의 색션이 "새로운 윈도우 열기" 이므로 라인(540)은 사용자로 하여금 비트맵 파일명을 엔터하도록 한다. 만약 라인(538) 내의 액션이 "새로운 벡터 열기" 또는 "새로운 무비열기"이면, 라인(540)은 벡터파일 또는 비디오파일명을 각각 요구할 것이다. 윈도우(530)는 사용자로 하여금 요구되는 이미존재하는 비트맵 파일을 찾도록 하는 "브로우즈"버튼(542)를 포함한다. 비주얼 셀이 호출될 때 윈도우(530)는 사용자로 하여금 오디오파일을 엔터하도록 하는 라인(544)를 포함한다. 사용자가 "OK" 버튼(549)을 클릭할 때, 윈도우(530) 내에서 엔터된 정보는 버튼(472)과 관련한 선택된 비주얼 셀을 명시하기 위해 사용될 것이다. 윈도우(500) 내에서 엔터된 정보의 나머지는 버튼(472)의 DNA 파일 내에 나중에 기억될 것이다.
버튼(472)에 관련한 모든 정보가 엔터되고 기억될 때, 버튼(472)은 호출될 수 있다. 도 18로 지금 돌아가서, 사이드 윈도우(468)는 아이콘(466)을 클리킹 함으로써 제거될 수 있다. 사이드 윈도우(468)의 제거는 편집 모드(사용자로 하여금 버튼을 추가, 변형 그리고 제거하도록 하기위한)로 부터 윈도우(460)를 편집 모드(사용자로 하여금 윈도우(460) 내에서 버튼을 호출하도록 하기 위한)로 변환시킨다. 본 실시예에서, 버튼(466)은 사이드 윈도우(468)를 표시 그리고 제거하기 위한 토글(toggle)로서 작용한다. 사이드 윈도우(468)가 제거된 후에, 사용자는 버튼(472)을 클릭하여 그것과 관련한 액션을 호출할 수 있다: 뮤직의 일부를 재생 및 비주얼 셀 샘플에 해당하는 윈도우(482)를 표시. 샘플의 윈도우는 "2-B"이며 이것은 도 20의 라인(536)에 해당한다. 본 실시예에서 윈도우(482)는 또다른 비주얼 셀이 호출되도록 하는 아이콘(484)를 포함한다. 이 아이콘(484)은 도 16과 연관하여 상기에서 논의된 운전과 유사한 방법으로 비주얼 셀 샘플 내에 이미 설치된 것이다. 다른 비주얼 셀에 해당되는 또다른 윈도우(490)를 표시하기 위해 사용자는 아이콘(484) 상부를 클릭할 수 있다.
윈도우(500과530)의 포맷 및 그것에 의해 요구되는 정보는 본보기인 것을 염두해 두어야한다. 프로그래머의 설계 목적과 창의성에 따라, 윈도우(500과530)는 다른 포맷을 가지고 또 정보의 다른 타입들을 요구할 수 있었다. 도 15의 시스템 하에서 실행하는 애플리케이션의 또다른 실시예는 컴퓨터의 스크린 상에 표시되는 호텔 인덱스 시스템이다. 애플리케이션은 셀들의 모음을 조합함으로써 형성될 수 있다. 예를 들면, 적용하는 사용자는 인덱스를 포함하는 윈도우를 보여주도록 설계된 셀을 호출(예, 클리킹하여)할 수 있다. 또다른 셀은 사용자가 인덱스 윈도우 내에서 한 아이템 상부를 클릭할 때 시동한다. 이 새로운 셀은 지역적인 맵을 보여주는 또다른 윈도우로서 그 자신을 나타낸다. 사용자는 그 표시에 있어 문장이나 그림을 포함하는 제 3 의 셀을 실행하기 위한 맵 윈도우 상의 한 아이템을 클릭할 수 있다. 이러한 방법으로, 애플리케이션 프로그램을 만들어 내면서 하나 이상의 셀이 동시에 시동한다.
상기에서 언급되었듯이, 본 발명의 한 실시예에서, 한 셀은 DSF 명령문을 기록한 후 또다른 셀에 간접적으로 알릴 수 있다. 도 21은 간접적인 셀 알림의 실시예를 보여주는 플로우 차트(580)이다. 본 실시예에서 도 15의 MS 윈도우(386)는 프로그램 식별을 그곳에서 실행하는 각 프로그램(셀들을 포함하는)에 할당한다. 제 1 셀이 한세트의 DSF 명령문을 제 2 셀의 DSF파일에 기록한 후(단계 S582), 그것은 제 2 셀의 프로그램 식별을 얻는다(단계 S584). 제 2 셀에 인터럽트를 전하도록 요구하면서 제 1 셀은 인터럽트를 MS윈도우(386)에 보낸다(단계 S586). 이 요청에 응답하여, MS 윈도우(386)는 인터럽트를 제 2 셀에 보낸다(단계 S588). 다음 제 2 셀은 관련 DNA 파일에 이미 기록된 DSF 명령문을 실행한다(단계 S590).
상기 플로우 차트에서 MS 윈도우는 단순히 운영 시스템의 한 실시예라는 것을 알아야 한다. MS 도스 및 매킨토시 OS와 같은 다른 운영시스템들은 MS 윈도우 대신에 인터럽트를 수행하기 위해 사용될 수 있다.
본 발명은 상세한 전형적인 실시예를 참고로 하여 기재되었다. 여러 변형과 변화가 본 발명의 폭넓은 정신과 범위로부터 출발하지 않고서 만들어질 수 있다. 상세한 설명과 도면들은 따라서 제한 보다는 설명적 의미로 간주되야 한다; 본 발명은 오직 제공되는 청구항에 의해서만 한정된다.
Claims (23)
- 윈도우 기반 환경에서 애플리케이션 프로그램을 형성하는 프로그램 셀들의 링크방법에 있어서, 각 셀들은 프로그램 명령어들을 포함하고 분리된 파일과 관련되며,상기 윈도우 기반 환경에서 제 1 윈도우로서 실행되는 제 1 프로그램 셀을 제공하는 단계; 상기 제 1 셀은 상기 제 1 셀에 의해 사용된 데이터를 포함하는 제 1 파일과 관련되고,상기 윈도우 기반 환경에서 제 2 윈도우로서 실행되는 제 2 프로그램 셀을 제공하는 단계; 상기 제 2 셀은 상기 제 2 셀에 의해 사용된 데이터를 포함하는 제 2 파일과 관련되고,상기 윈도우 기반 환경에서 제 3 윈도우로서 실행되는 제 3 프로그램 셀을 제공하는 단계; 상기 제 3 셀은 상기 제 3 셀에 의해 사용된 데이터를 포함하는 제 3 파일과 관련되고,상기 제 2 윈도우상의 동작중, 상기 제 2 셀에 의한 하나 또는 그 이상의 명령들의 제 1 세트를 상기 제 1 셀과 관련된 제 1 파일로 전송하는 단계;상기 제 3 윈도우상의 동작중, 상기 제 3 셀에 의한 하나 또는 그 이상의 명령들의 제 2 세트를 상기 제 1 셀과 관련된 제 1 파일로 전송하고, 상기 명령들의 제 2 세트는 명령의 제 1 세트의 논리적 위치 다음에 놓여지고; 그리고상기 제 1 셀에 의해, 명령들의 제 2 세트의 실행에 앞서 명령들의 제 1 세트를 먼저 실행함으로서 논리적 위치에 따라 상기 제 1 파일내의 명령들이 실행되고, 상기 제 1 셀은 상기 제 2 셀과의 통신을 시작하지 않고 명령들의 제 2 세트의 실행을 시작하는 것을 특징으로 하는 애플리케이션 프로그램을 형성하는 프로그램 셀들의 링크방법.
- 각각 프로그램 명령어를 포함하는 복수의 프로그램 셀;상기 복수의 프로그램 셀중 하나씩과 각각 관련된 제 1 타입의 복수 파일, 상기 제 1 타입의 각 파일은 관련된 프로그램 셀의 동작을 안내하고;복수의 멀티미디어 파일들;적어도 첫 번째 상기 멀티미디어 파일 및 적어도 제 2 프로그램 셀에 대해 참조를 만드는 제 1 타입의 제 1 파일과 관련되는 상기 프로그램 셀들중 적어도 제 1 프로그램 셀;호출되었을 때, 상기 제 1 멀티미디어 파일을 검색하여 멀티미디어 프리젠테이션을 생성하고, 상기 제 2 프로그램 셀을 호출하는 상기 제 1 프로그램 셀;적어도 두 번째 상기 멀티미디어 파일에 대해 참조를 만드는 제 1 타입의 제 2 파일과 관련되는 상기 제 2 프로그램 셀;호출되었을 때, 상기 제 2 멀티미디어 파일을 검색하고, 이로서 멀티미디어 프리젠테이션을 생성하는 상기 제 2 프로그램 셀; 및상기 제 1 프로그램 셀에 통보없이 상기 제 2 프로그램 셀을 종료하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 애플리케이션 실행을 위한 시스템.
- 제 2 항에 있어서, 상기 제 1 타입의 제 1 파일과 제 2 파일 각각은 다른 셀들에 의해 전송된 명령들을 검색하기 위한 제 1 섹션을 갖고, 그리고하나 또는 그 이상의 명령의 제 1 세트를 상기 제 1 타입의 제 1 파일로 전송하기 위한 프로그램 명령어를 포함하는 상기 제 2 프로그램 셀;명령의 제 1 세트에 대한 실행 결과를 상기 제 2 프로그램 셀로 복귀시킴 없이 명령의 제 1 세트를 자동적으로 실행하기 위한 프로그램 명령어들이 포함된 상기 제 1 프로그램 셀, 상기 제 1 프로그램 셀은 하나 또는 그 이상의 명령의 제 2 세트를 상기 제 1 타입의 제 2 파일로 전송하기 위한 프로그램 명령어를 더 포함하고; 그리고상기 실행결과를 상기 제 1 프로그램 셀로 복귀시킴 없이 명령의 제 2 세트를 자동적으로 실행하기 위한 프로그램 명령어를 포함하는 상기 제 2 프로그램 셀; 인 것을 특징으로 하는 시스템.
- 제 3 항에 있어서, 상기 제 1 타입의 제 1 파일은,다른 프로그램 셀들에 의해 전송된 명령을 수신하기 위한 제 1 섹션; 및상기 제 1 타입의 제 1 파일의 상태 표시를 포함하는 제 2 섹션;을 포함하고,상기 제 2 프로그램 셀은 명령의 제 1 세트를 전송하기 앞서 상기 표시를 검사하는 것을 특징으로 하는 시스템.
- 제 4 항에 있어서, 상기 제 2 섹션은 상기 제 1 타입의 제 1 파일에서 상기 명령중 하나와 관련된 제 1 포인터를 포함하고,상기 제 1 포인터는 상기 명령의 제 1 세트가 상기 제 1 타입의 제 1 파일로 추가되는 것을 반영하도록 변화 가능한 것을 특징으로 하는 시스템.
- 제 5 항에 있어서, 상기 제 2 섹션은 현재 상기 제 1 프로그램 셀에 의해 실행되는 상기 제 1 타입의 제 1 파일에서의 명령을 지시하기 위한 제 2 포인터를 더 포함하는 것을 특징으로 하는 시스템.
- 제 4 항에 있어서, 상기 표시는 적어도 제 1 상태와 제 2 상태를 갖고,상기 제 1 상태는 상기 제 1 타입의 제 1 파일이 새로운 명령을 받을 수 있도록 준비되어 있다는 것을 나타내고,상기 제 2 상태는 상기 제 1 타입의 제 1 파일이 새로운 명령을 받을 수 없다는 것을 나타내는 것을 특징으로 하는 시스템.
- 제 4 항에 있어서, 상기 제 1 프로그램 셀의 특성과 관련된 매개변수들의 세트를 더 포함하고,상기 제 1 프로그램 셀은 상기 제 1 프로그램 셀이 호출되었을 때 상기 매개 변수들을 사용하기 위한 프로그램 명령어를 포함하는 것을 특징으로 하는 시스템.
- 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치에 있어서, 상기 소프트웨어 애플리케이션은,프로그램 명령어를 각각 포함하는 적어도 제 1 및 제 2 소프트웨어 프로그램 모듈;하나 또는 그 이상의 명령의 제 1 세트를 상기 제 1 모듈로 출력하기 위한 프로그램 명령어를 포함하는 상기 제 2 모듈;실행결과를 상기 제 2 모듈로 복귀시킴 없이 명령의 제 1 세트를 자동적으로 실행하기 위한 프로그램 명령어를 포함하는 상기 제 1 모듈로서, 상기 제 1 모듈은 하나 또는 그 이상의 명령의 제 2 세트를 상기 제 2 모듈로 출력하기 위한 프로그램 명령어를 더 포함하고; 그리고실행결과를 상기 제 1 모듈로 복귀시킴 없이 상기 명령의 제 2 세트를 자동적으로 실행하기 위한 프로그램 명령어를 포함하는 상기 제 2 모듈;로 구성되는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 9 항에 있어서, 상기 제 1 모듈은 제 3 프로그램 모듈을 호출하기 위한 프로그램 명령어를 더 포함하고,상기 제 3 모듈은 자체 프로그램 명령어의 실행결과를 상기 제 1 모듈로 복귀시킴 없이 자체의 프로그램 명령어를 실행하는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 10 항에 있어서, 상기 제 1 모듈은 상기 제 3 모듈이 활성인 상태로 남아있는 동안 종료될 수 있는 것은 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 11 항에 있어서, 상기 제 3 모듈은 상기 제 1 모듈이 종료될 수 있도록 하는 명령을 출력할 수 있는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 9 항에 있어서, 상기 명령의 제 1 세트 및 제 2 세트는 그들의 원정보를 포함하지 않는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치에 있어서, 상기 소프트웨어 애플리케이션은,프로그램 명령어를 각각 포함하고, 다른 모듈로부터 명령을 받아들일 수 있는 분리된 파일과 관련되는 적어도 제 1 및 제 2 소프트웨어 프로그램 모듈;하나 또는 그 이상의 명령의 제 1 세트를 상기 제 1 모듈과 관련된 제 1 파일로 전송하기 위한 프로그램 명령어를 포함하는 상기 제 2 모듈;상기 명령의 제 1 세트의 실행결과를 상기 제 2 모듈로 복귀시킴 없이 명령의 제 1 세트를 자동적으로 실행하기 위한 프로그램 명령어를 포함하는 상기 제 1 모듈이고, 상기 제 1 모듈은 하나 또는 그 이상의 명령의 제 2 세트를 상기 제 2 모듈과 관련된 제 2 파일로 전송하기 위한 프로그램 명령어를 더 포함하고; 그리고실행 결과를 상기 제 1 모듈로 복귀시킴 없이 명령의 제 2 세트를 자동적으로 실행하기 위한 프로그램 명령어를 포함하는 상기 제 2 모듈;로 구성되는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 14 항에 있어서, 상기 제 1 파일은,다른 모듈로부터 전송된 명령을 수신하기 위한 제 1 섹션; 및상기 제 1 파일의 상태 표시를 포함하는 제 2 섹션으로 구성되고,상기 제 2 모듈은 명령의 제 1 세트를 전송하기 앞서 상기 표시를 검사하는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 15 항에 있어서, 상기 제 2 섹션은 상기 제 1 파일내의 상기 명령 중 어느 하나와 관련된 제 1 포인터를 포함하고,상기 제 1 포인터는 상기 명령의 제 1 세트가 상기 제 1 파일로 추가되는 것을 반영하도록 변화 가능한 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 16 항에 있어서, 상기 제 2 섹션은 현재 상기 제 1 모듈에 의하여 실행되는 상기 제 1 파일내의 명령을 가르키는 제 2 포인터를 더 포함하는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 15 항에 있어서, 상기 표시는 적어도 제 1 상태 및 제 2 상태를 갖고,상기 제 1 상태는 상기 제 1 파일이 새로운 명령을 수용하도록 준비된 상태를 나타내고,상기 제 2 상태는 상기 제 1 파일이 새로운 명령을 수용할 수 없는 상태를 나타내는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 제 15 항에 있어서, 상기 제 1 모듈의 특성과 관련된 매개변수 세트를 더 포함하고,상기 제 1 모듈은 상기 제 1 모듈이 호출되었을 때 상기 매개변수를 사용하기 위한 프로그램 명령어를 포함하는 것을 특징으로 하는 소프트웨어 애플리케이션을 실행하는 컴퓨터 장치.
- 컴퓨터 장치내에서 소프트웨어 애플리케이션내에 포함된 적어도 두개의 소프트웨어 프로그램 모듈 사이의 상호 작용을 위한 방법에 있어서,상기 각 모듈은 프로그램 명령어를 포함하고, 그리고 분리된 파일과 관련되며,제 2 모듈에 의하여 하나 또는 그 이상의 명령의 제 1 세트를 제 1 모듈과 관련된 제 1 파일로 전송하는 단계; 및상기 제 1 모듈에 의하여, 상기 명령의 제 1 세트의 실행결과를 상기 제 2 모듈로 복귀시킴 없이 상기 명령의 제 1 세트를 자동적으로 실행하는 단계; 를 포함하는 것을 특징으로 하는 컴퓨터 장치내에서 소프트웨어 애플리케이션내에 포함된 적어도 두개의 소프트웨어 프로그램 모듈 사이의 상호 작용방법.
- 제 20 항에 있어서,상기 첫 번째 전송단계 후, 제 3 모듈에 의하여 하나 또는 그 이상의 명령의 제 2 세트를 상기 제 1 파일로 전송하는 단계; 및상기 명령의 제 2 세트는 상기 명령의 제 1 세트의 실행단계가 완료된 후에 실행되고, 상기 제 1 모듈에 의하여, 상기 명령의 제 2 세트의 실행결과를 상기 제 3 모듈로 복귀시킴 없이 상기 명령의 제 2 세트를 자동적으로 실행하는 단계;를 더 포함하는 것을 특징으로 하는 소프트웨어 프로그램 모듈 사이의 상호 작용방법.
- 제 21 항에 있어서, 두 번째 전송단계는 상기 명령의 제 1 세트를 실행하는 단계가 완료되기 전에 시작되는 것을 특징으로 하는 소프트웨어 프로그램 모듈 사이의 상호 작용방법.
- 제 20 항에 있어서, 상기 명령의 제 1 세트를 전송하는 단계는,상태 정보를 포함하는 상기 제 1 파일의 섹션을 검사하는 단계; 및상기 제 1 파일이 상기 명령의 제 1 세트를 수신할 수 있는 상태에 있을 때, 상기 명령의 제 1 세트를 전송하는 단계;로 구성되는 것을 특징으로 하는 소프트웨어 프로그램 모듈 사이의 상호 작용방법.
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10706695 | 1995-04-07 | ||
JP95-107066 | 1995-04-07 | ||
JP1995-107066 | 1995-04-07 | ||
JP13938595 | 1995-06-06 | ||
JP1995-139385 | 1995-06-06 | ||
JP95-139385 | 1995-06-06 | ||
US8/539806 | 1995-10-05 | ||
US08/539,806 US5799181A (en) | 1995-04-07 | 1995-10-05 | Bossless architecture and digital cell technology for computer programs |
US08/539806 | 1995-10-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980703711A KR19980703711A (ko) | 1998-12-05 |
KR100445523B1 true KR100445523B1 (ko) | 2006-02-28 |
Family
ID=26447132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970707111A KR100445523B1 (ko) | 1995-04-07 | 1996-03-28 | 데이터처리시스템및방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5799181A (ko) |
KR (1) | KR100445523B1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW331612B (en) * | 1996-03-05 | 1998-05-11 | Soft Future Design Kk | Data processing apparatus and register address translation method. |
US6292941B1 (en) * | 1996-04-30 | 2001-09-18 | Sun Microsystems, Inc. | Operating system installation |
US5999174A (en) * | 1997-07-02 | 1999-12-07 | At&T Corporation | Reusable sparing cell software component for a graphical user interface |
EP1251426A1 (de) * | 2001-04-19 | 2002-10-23 | 1PlusON Informationstechnologien GmbH | Applikationsintegrator für Informationsverarbeitungssysteme |
KR102109054B1 (ko) * | 2013-04-26 | 2020-05-28 | 삼성전자주식회사 | 애니메이션 효과를 제공하는 사용자 단말 장치 및 그 디스플레이 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0566482A1 (fr) * | 1992-04-17 | 1993-10-20 | Bull S.A. | Utilisation d'un protocole bidirectionnel de très haut niveau pour la communication entre un système hypermédia et une pluralité d'éditeurs |
WO1994028480A1 (en) * | 1993-05-24 | 1994-12-08 | Media Station, Inc. | Interactive multimedia development system and method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4724521A (en) * | 1986-01-14 | 1988-02-09 | Veri-Fone, Inc. | Method for operating a local terminal to execute a downloaded application program |
JPH05165933A (ja) * | 1991-12-18 | 1993-07-02 | Hitachi Software Eng Co Ltd | 図形処理システム |
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5440677A (en) * | 1992-07-01 | 1995-08-08 | Time Warner Interactive Group Inc. | Method and apparatus for processing audio and graphic images to create an interleaved file suitable for use as a CD-ROM product |
US5369766A (en) * | 1993-03-25 | 1994-11-29 | Taligent, Inc. | Object-oriented loader system with support for different load formats |
US5590271A (en) * | 1993-05-21 | 1996-12-31 | Digital Equipment Corporation | Interactive visualization environment with improved visual programming interface |
US5404529A (en) * | 1993-07-19 | 1995-04-04 | Taligent, Inc. | Object-oriented interprocess communication system interface for a procedural operating system |
-
1995
- 1995-10-05 US US08/539,806 patent/US5799181A/en not_active Expired - Lifetime
-
1996
- 1996-03-28 KR KR1019970707111A patent/KR100445523B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0566482A1 (fr) * | 1992-04-17 | 1993-10-20 | Bull S.A. | Utilisation d'un protocole bidirectionnel de très haut niveau pour la communication entre un système hypermédia et une pluralité d'éditeurs |
WO1994028480A1 (en) * | 1993-05-24 | 1994-12-08 | Media Station, Inc. | Interactive multimedia development system and method |
Also Published As
Publication number | Publication date |
---|---|
KR19980703711A (ko) | 1998-12-05 |
US5799181A (en) | 1998-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2161023C (en) | Interactive user interface | |
US6097391A (en) | Method and apparatus for graphically manipulating objects | |
US5764908A (en) | Network system containing program modules residing in different computers and executing commands without return results to calling modules | |
CN100410931C (zh) | 用于扩展文件系统应用编程接口的方法 | |
US5910803A (en) | Network atlas mapping tool | |
JP3602532B2 (ja) | 増分コマンド・オブジェクトを有する並行処理装置 | |
US5764873A (en) | Lazy drag of graphical user interface (GUI) objects | |
CA2202880C (en) | User definable pictorial interface for accessing information in an electronic file system | |
US5701137A (en) | Method for separating a hierarchical tree control into one or more hierarchical child tree controls in a graphical user interface | |
US5572731A (en) | Sequentially navigated object oriented computer system | |
US6275227B1 (en) | Computer system and method for controlling the same utilizing a user interface control integrated with multiple sets of instructional material therefor | |
US6005570A (en) | Graphical user interface system and methods for improved user feedback | |
US5600833A (en) | Attribute portion based document retrieval system with system query language interface | |
JP4076239B2 (ja) | 情報表示方法及びウィンドウ管理装置 | |
US5883623A (en) | System and methods for building spreadsheet applications | |
US5883626A (en) | Docking and floating menu/tool bar | |
US20040031019A1 (en) | Debugger for a graphical programming environment | |
US20070186176A1 (en) | System and method for window tab organization | |
EP0819274B1 (en) | Method and system for executing an application program | |
JPH04287116A (ja) | ハイパー・メディア・システムおよびそのグラフィカル・ユーザ・インタフェース方法 | |
JPH04274536A (ja) | ハイパーメディア・システム及びハイパーメディア・システムで実施されるリンク・マーカ操作方法 | |
JPH09510567A (ja) | ドキュメント・プロキシィ・フレームワーク | |
JPH04303240A (ja) | オブジェクト指向インタフェース標準を与えるシステムおよび方法 | |
US20030037310A1 (en) | Visual programming tool and execution environment for developing computer software applications | |
KR100445523B1 (ko) | 데이터처리시스템및방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |