KR100221374B1 - 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치 - Google Patents

이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치 Download PDF

Info

Publication number
KR100221374B1
KR100221374B1 KR1019950067117A KR19950067117A KR100221374B1 KR 100221374 B1 KR100221374 B1 KR 100221374B1 KR 1019950067117 A KR1019950067117 A KR 1019950067117A KR 19950067117 A KR19950067117 A KR 19950067117A KR 100221374 B1 KR100221374 B1 KR 100221374B1
Authority
KR
South Korea
Prior art keywords
event
data processing
processing system
events
predetermined
Prior art date
Application number
KR1019950067117A
Other languages
English (en)
Other versions
KR960029973A (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 KR960029973A publication Critical patent/KR960029973A/ko
Application granted granted Critical
Publication of KR100221374B1 publication Critical patent/KR100221374B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Abstract

본 발명의 방법 및 시스템은 데이타 처리 시스템(a data processing system)의 환경에서 발생되는 이벤트(events)를 효율적으로 처리한다. 데이타 처리 시스템은 상이한 환경에서 사용될 수 있는 다수의 환경 및 객체(multiple environments and objects)를 포함한다. 각각의 객체는 이벤트에 응답하여 트리거(trigger)되는 동작(a action)을 포함한다. 이벤트 관리자 객체(an event manager object)는 상이한 환경으로 부터 이벤트를 처리하기 위해 생성된다. 이벤트는 객체에 대해 등록된다. 동작은 데이타 처리 시스템에서 발생되는 이벤트 검출에 응답하여 이벤트 관리자 객체를 사용함으로써 트리거되고, 하나의 환경에서 발생되는 이벤트는 효율적으로 처리된다.

Description

이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 방법과, 저장장치
제1도는 본 발명에서 사용될 수 있는 퍼스널 컴퓨터 형태의 데이타 처리 시스템을 도시한 도면.
제2도는 본 발명에 따른 퍼스널 컴퓨터 시스템의 각종 구성 요소를 예시한 퍼스널 컴퓨터 시스템의 블럭도.
제3도는 본 발명의 바람직한 실시예에 따라 객체 지향 시스템의 객체들을 도시한 도면.
제4도는 본 발명의 바람직한 실시예에 따른 콜 백 등록 프로세스를 도시한 도면.
제5도는 본 발명의 바람직한 실시예에 따라 이벤트 관리자를 통해 이벤트를 등록하는 프로세스의 흐름도.
제6도는 본 발명의 바람직한 실시예에 따라 등록 테이블 즉, 해쉬 테이블을 도시한 도면.
제7도는 본 발명의 바람직한 실시예에 따라 이벤트 처리 루프를 도시한 도면.
제8도는 본 발명의 바람직한 실시예에 따른 이벤트 루프 프로세스의 흐름도.
제9도는 본 발명의 바람직한 실시예에 따라 이벤트 처리 과정 동안 논리 이벤트로 매핑하는 프로세스의 흐름도.
제10도는 본 발명의 바람직한 실시예에 따라 이벤트 처리 과정 동안 콜 백을 발생하는 프로세스의 흐름도.
* 도면의 주요부분에 대한 부호의 설명
10 : 데이타 처리 시스템 11 : 플래너
12 : 시스템 장치 14 : 디스플레이
16 : 키보드 18 : 마우스
22 : 디스켓 드라이브 24 : CPU 로컬 버스
26 : CPU 28 : 캐쉬 제어기
30 : 캐쉬 32, 36, 66 : 버퍼
34 : 시스템 버스 38 : 버스제어/타이밍 장치
40 : 직접 메모리 액세스 장치 41 : DMA 제어기
44 : 마이크로 채널 버스 46a, 86 : ROM
46b : CD-ROM 46c : 하드 디스크
46d : I/O 슬롯 48 : 중앙 중재기
50 : 메모리 제어기 68 : 플래너 I/O 버스
70 : 디스플레이 어댑터 72 : 클럭
74 : 비휘발성 RAM 78 : 병렬 어댑터
80 : 타이머 82 : 디스켓 어댑터
본 발명은 향상된 데이타 처리 시스템(improved data processing system)에 관한 것으로, 특히 그래픽 사용자 인터페이스(graphic user interface)의 이벤트들(events)을 관리하는 향상된 방법 및 시스템에 관한 것이다. 특히, 본 발명은 환경(environment)에 대해 독립적인 방식으로 사용자 인터페이스의 이벤트들을 관리하는 방법 및 시스템에 관한 것이다.
데이타 처리 시스템에 대한 응용 소프트웨어 및 시스템 소프트웨어의 개발은 통상적으로 시간 소모가 많은 작업이었다. 소프트웨어 공학 분야에서는 새롭고 보다 효율적인 소프트웨어 개발 모델을 제안함으로써 통상적인 기법의 한계를 극복하기 위해 많은 노력을 해왔다. 객체 지향 프로그래밍(object oriented programming)은 객체들(objects)의 신속한 개발, 실시 및 커스텀화(customization)를 가능케 하는 전도 유망한 기법으로서 출현하게 되었다. 각각의 새로운 객체는 소정의 데이타 속성들과 그 데이타를 조작하는 프로세스들(processes) 또는 메쏘드들(methods)을 포함하고 있다. 데이타는 객체에 의해 "캡슐화(encapsulated)" 되는 것으로 일컬어지며, 객체 메쏘드(object methods)에 의해서만 수정될 수 있다. 이러한 객체 메쏘드들은 그 메쏘드를 식별하는 객체에 메시지(message)를 전송하고 필요한 모든 인자들(arguments)을 제공함으로써 호출된다.
객체 지향 시스템은 캡슐화(encapsulation) 뿐만 아니라 두가지 중요한 특성을 갖고 있다. "상속(ingeritance)"은 기존의 객체로부터 새로운 객체를 도출하여, 기존의 객체로부터 메쏘드 및 데이타 구조를 포함하는 모든 특성을 상속하는 기능이다. 새로운 객체는 기존의 클래스(existing class)를 오버라이드(override)하거나 혹은 수정함으로써 제공되는 소정의 고유 특성들을 가질 수도 있다. 예를 들어, 새로운 하위클래스(new subclass)는 기존의 보다 일반적인 클래스로부터 새로운 클래스를 구별하는 기능 및 데이타만을 지정할 필요가 있다.
기존의 메쏘드 기술(existing method description)을 오버라이드하는 기능은 다상성(polymorphism), 즉 객체로의 단일 메세지를 객체 자체에 의존하는 각종 방법으로 처리시키는 기능을 가능하게 한다.
상속 및 다상성은 새로운 소프트웨어 시스템을 구현하는 강력한 구조를 구축한다. 소프트웨어 개발자는 그 시스템의 각각의 소부분을 개발할 필요는 없고, 단지 그 시스템의 고유 특성들만을 지정할 필요가 있다.
객체 지향 시스템은 "프레임워크 (framewofk)" 시스템의 개발을 통해 구현된다. 프레임워크는 최종적인 시스템 제품이 제조될 수 있도록 시스템 구현자에 의해 사용될 수 있는 기본 클래스들의 집합체(collection of base classes)이다. 프레임워크는 시스템과 함께 동작이 가능하도록 정의되고 개발된다. 개념적으로, 프레임워크는 컴퓨터 하드웨어 설계작에 의해 사용되는 일 군의 표준 하드웨어 구성 요소와 매우 유사하다. 이러한 각각의 하드웨어 구성 요소에는 소정의 정의된 기능 및 인터페이스가 구비되어 있으며, 엔지니어(engineer)는 고유의 하드웨어 시스템을 구축하기 위해 특정 설계에 따라 이들 구성 요소를 어셈블링(assembling)하고 있다.
객체 지향 프로그래밍 시스템의 일예로는 시스템 객체 모델(System Object Model : SOM)이 있다. 이 SOM에 관한 다양한 정보는 1993년 6월 IBM사에 의해 간행된 SOMobjects Developer ToolKit User Gukde, version 2.0에 개시되고 있다.
객체 지향 시스템 등에 있어서, 데이타는 데이타 액세싱(data accessing), 데이타 인코딩(data encoding), 데이타 통신(data communication), 데이타 압축(data compresstion), 데이타 변환(data conversion), 데이타 엔트리(data entry), 데이타 교환(data exchange), 데이타 기록(data recording), 데이타 정렬(data sorting) 및 데이타 전송(data transferring)을 포함하는 데이타 처리 시스템에서 다양한 방식으로 조작될 수 있다. 데이타 처리 시스템에서 사용자에 의해 사용되는 대량의 데이타는 종종 데이타 처리 시스템의 크기 및 복잡도를 매우 크게 할 수 있다.
데이타 처리 시스템의 복잡도가 증가함에 따라, 사용자와 데이타 처리 시스템내에 제공된 대량의 데이타 간의 인터페이스를 단순화하려고 하는 시도가 행해져 왔다. 사용자와 데이타 처리 시스템 간의 인터페이스를 단순화하려고 하는 일예로서, 사용자와 데이타 처리 시스템 간에 시각적인 그래픽 인터페이스(intuitive and graphical interface)를 제공하기 위한 그래픽 사용자 인터페이스( Graphical User Interface : GUI)가 사용되어 왔다. 그래픽 사용자 인터페이스는, 제각기 마우스(mouse)를 통해 액세스가능한 그래픽 아이콘(graphic icons), 메뉴(menus), 클립보드(clipboards), 데스크 부속품(desk accessories) 및 경고 상자(alert boxes)를 포함한다. 공통 사용자 액세스( Common User Access : CUA) 인터페이스는 GUI의 일예이다. "Common User Access" 및 CUI는 IBM사의 등록 상표이다. 공통 사용자 액세스 인터페이스는 보통 대량의 데이타를 사용자에게 제공하여 시각적인 그래픽 방식으로 구성(organize)되도록 하는데 사용된다. 공통 사용자 액세스 인터페이스에 관한 다수의 정보는 IBM사에 의해 "system application Architecture Common User Access Interface Design"란 명칭으로 간행된 제 SC34-42900-00 호에도 발견될 수 있다.
이벤트 관리(management of events)라는 것은 GUI 프로그래밍에서 제어 흐름을 구동하는 것이다. 각각의 이벤트는 특정 이벤트에 대해 수행될 필요가 있는 연관된 동작(associated actions)을 가질 수도 있다. 이벤트 관리 시스템(event management system)은 그 연관된 동작을 인식하고 수행(디스패치(dispatch))해야할 임무를 갖고 있다.
이벤트에는 두 가지 유형의 이벤트 즉, 외부(물리적) 이벤트 및 내부(논리)이벤트가 존재한다. 외부 이벤트(external events)는 마우스, 키보드, 터치 스크린(touch screen) 등과 같은 몇몇 물리적 장치에 의해 발생된다. 한편, 내부 이벤트(internal events)는 프로그램 또는 객체와 같은 몇몇 논리에 의해 발생된다. 통상적으로, 내부 이벤트는 데이타 처리 시스템에서 실행되는 프로그램 내의 모듈(modules)에 의해 발생된다. 교차-플랫폼 프로그래밍(cross-platform programming)이 보다 더 바람직한 것으로 됨에 따라, 플랫폼 독립 이벤트 관리(platform independent event management)는 이벤트 구동 시스템 예를 들어, IBM사의 OS/2와 마이크로소프트사의 Windows, NT 및 Windows95에서 보다 더 중요해지고 있다.
통상적으로, 각각의 플랫폼은 그 자신의 이벤트 관리 시스템을 갖는다. 이벤트 관리는 프로그램의 흐름 제어를 구동하기 때문에, 데이타 처리 시스템의 다른 코드는 주어진 이벤트 관리에 따라 쉽게 달라질 수 있다. 예를 들어, 드래그 동작(darg action)은 OS/2하에서 우측 마우스 버튼을 누르고 나서 마우스를 이동시킴으로써 개시된다. 윈도우(Windows)하에서의 드래그 동작은 좌측 마우스 버튼을 누르고 나서 마우스를 이동시킴으로써 개시된다. AIX하에서의 드래그 동작은 중간 마우스 버튼을 누르고 나서 마우스를 이동시킴으로써 개시된다. "OS/2"는 IBM사의 등록 상표이다. AIX는 "UNIX System Laboratories, Inc."의 상표명인 IBM사의 UNIX의 실시 형태이며, "AIX"는 IBM사의 등록 상표이다. 이 경우, 드래그 이벤트(drag enent)의 인식이 이벤트 관리 레벨에서 분리되지 않으면, 코드 버젼 각각이 "환경"이라 불리는 플랫폼의 각각에 의존하는, 드래그 동작에 대한 세 개의 상이한 코드 버젼이 존재하게 된다.
그러므로, 환경에 대해 독립적인 이벤트 관리 시스템에서 플랫폼 특정의 이벤트 인식(platform specific event recongnition)을 행하기 위한 방법 및 시스템을 구비하는 것이 유리할 것이다.
본 발명의 목적은 향상된 데이타 처리 시스템을 제공하는 데 있다. 본 발명의 다른 목적은 그래픽 사용자 인터페이스의 이벤트를 관리하는 향상된 방법 및 시스템을 제공하는 데 있다.
본 발명의 또 다른 목적은 그래픽 사용자 인터페이스의 이벤트를 플랫폼과 독립적적인 방식(manner ondependent of platform)으로 인식하고 응답하는 방법 및 시스템을 제공하는데 있다.
본 발명은 데이타 처리 시스템내의 소정의 환경에서 발생하는 이벤트를 효율적으로 처리하는 방법 및 시스템을 제공한다. 데이타 처리 시스템은 상이한 환경에서 사용될 수 있는 다중 환경 및 객체를 포함한다. 각각의 객체는 소정의 이벤트에 응답하여 트리거(trigger)되는 소정의 동작(action)을 포함한다. 상이한 환경으로부터의 이벤트를 처리하기 위한 이벤트 관리자 객체(event manager object)가 생성된다. 이벤트는 객체에 대해 등록(register)된다. 소정의 동작은 데이타 처리 시스템에서 발생하는 소정의 이벤트의 검출에 응답하여 이벤트 관리자 객체를 사용함으로써 트리거되며, 이에 의해 소정의 환경에서 발생하는 이벤트들이 효율적으로 처리된다.
본 발명의 상술한 목적 및 다른 목적, 특징 및 장점들은 후술되는 상세한 설명을 참조하면 명백해질 것이다.
본 발명의 신규한 특징은 첨부된 특허 청구범위에 개시되어 있다. 그러나, 본 발명의 목적 뿐만 아니라 바람직한 사용 모드, 다른 목적 및 장점들은 다음의 예시적인 실시예의 상세한 설명을 첨부된 도면과 함께 참조하면 명확하게 이해될 것이다.
제1도를 참조하면, 본 발명에서 사용되는 데이타 처리 시스템 즉, 퍼스널 컴퓨터 시스템(10)이 도시되어 있다. 제1도에 도시된 바와 같이, 퍼스널 컴퓨터 시스템(10)은 서로 상호접속된 다수의 구성 요소를 포함한다. 특히, 시스템장치(system unit)(12)는 (종래의 비디오 디스플레이(video disply)와 같은) 선택 사양적인 모니터(optional monitor)(14)와 접속되고 이를 구동할 수 있다. 또한, 시스템 장치(12)는 PC 키보드(16) 또는 마우스(18) 등의 입력 장치에 선택사양적으로 접속될 수 있다. 마우스(18)는 우측 및 좌측 버튼(도시되지 않음)을 포함한다. 일반적으로, 좌측 버튼은 메인 선택기 버튼으로 사용되고, 제1마우스 버튼 또는 마우스 버튼 1로 지칭한다. 통상적으로, 우측 버튼은 이하 기술된 바와 같이 보조 기능을 선택하기 위해 사용된다. 우측 마우스 버튼은 제2마우스 버튼 또는 마우스 버튼 2로 지칭한다. 또한, 프린터(20) 등의 선택사양적 출력 장치는 시스템 장치(12)와 접속될 수 있다. 마지막으로, 시스템 장치(12)는 디스켓 드라이브(diskette drive)(22) 등의 하나 이상의 대용량 저장 장치를 포함할 수 있다.
이하 기술되는 바와 같이, 시스템 장치(12)는 PC 키보드(16), 마우스(18) 또는 근거리망 인터페이스(local area networking interfaces) 등의 입력 장치에 응답한다. 또한, 플로피 디스켓 드라이브(22), 디스플레이(14), 프린터(20) 및 근거리망 통신 시스템 등의 입/출력(I/O) 장치는 잘 알려진 방식으로 시스템 장치(12)와 접속된다. 물론, 본 기술 분야에 통상의 지식을 가진 자라면 종래의 다른 구성 요소도 이들과 상호 동작하는 시스템 장치(12)에 접속될 수도 있음을 또한 이해할 것이다. 본 발명에 따르면, 퍼스널 컴퓨터 시스템(10)은 랜덤 액세스 메모리(random access memory : RAM), 판독 전용 메모리(read only memory : ROM) 및 다수의 I/O 장치와 상호접속되는 시스템 프로세서(system processor)를 포함한다.
정규 사용시에, 퍼스널 컴퓨터 시스템(10)은 서버 혹은 단독의 사용자와 같은 소그룹의 사용자에게 독립적인 계산 능력을 부여되도록 설계될 수 있으며, 개인 혹은 소기업에 의한 구매를 위해 저렴하게 가격 설정되어 있다. 동작시, 시스템 프로세서는 IBM의 OS/2 운영체제 또는 DOS 등의 운영체제하에서 기능을 수행한다. OS/2는 IBM사의 등록 상표이다. 이러한 유형의 운영체제는 I/O 장치와 운영체제간의 기본 입/출력 시스템( Basic Input/Outpup System : BIOS) 인터페이스를 포함한다. 마더보드(motherboard) 또는 플래너(planar)상의 ROM에 저장될 수 있는 BIOS는 POST로 지칭되는 전원 인가시 셀프 테스트(power on self test : POST)에 포함된 진단 루틴(diagnostic routines)을 포함한다.
전술의 구조를 본 발명과 관련짓기 전에 퍼스널 컴퓨터 시스템(10)의 일반적인 동작 개요를 재고하는 것이 유익할 수 있다. 제2도를 참조하면, 본 발명에 따른 퍼스널 컴퓨터 시스템(10)의 각종 구성 요소를 예시한 퍼스널 컴퓨터 시스템(10)의 블럭도가 도시되어 있다. 제2도를 참조하면, 플래너(1)의 구성 요소와 퍼스널 컴퓨터 시스템(10)의 플래너(11)에 접속된 I/O 슬롯(slots)(46a-46d) 및 다른 하드웨어가 또한 도시되어 있다. 플래너(11)에 접속된 시스템 중앙 처리 장치(central processing unit : CPU)(26)는 마이크로프로세서로 구성되고, 고속의 CPU 로컬 버스(local bus)(24)에 의해 버시 제어 타이밍 장치(bus controlled timing unit)(38)를 통해 메모리 제어기(memory control unit)(50)에 접속되며, 메모리 제어기(50)는 휘발성 랜덤 액세스 메모리(RAM)(58)에 또한 접속된다. 소정의 적절한 마이크로프로세서가 CPU(26)로 사용될 수도 있지만, 적절한 마이크로프로세서는 인텔사에 의해 제조된 펜티엄(Pentium)마이크로세서이다. "Pentium"은 인텔사의 등록 상표이다.
본 발명은 특히 제2도의 시스템 블럭도를 참조하여 이하 기술될 것이지만, 본 발명에 따른 장치 및 방법은 플래너 기판의 다른 하드웨어와 함께 사용될 수도 있음을 이해하여야 한다. 예를 들어, 시스템 프로세서는 인텔 80286, 80386 또는 80486 마이크로프로세서일 수 있다. 이러한 특정 마이크로프로세서는 실 어드레싱 모드(real addressing mode) 또는 보호 어드레싱 모드(protected addressing mode)로 동작할 수 있다. 각각의 모드는 마이크로프로세서 메모리 각종 영역을 액세스하는 어드레싱 방안을 제공한다.
제2도를 참조하면, (데이타, 어드레스 및 제어 구성 요소를 포함하는) CPU 로컬 버스(24)는 CPU(26), 선택사양적인 수치 연산 보조 프로세서(optional math coprocessor)(27), 캐쉬 제어기(cache controller)(28) 및 캐쉬 메모리(30)의 접속을 제공한다. 또한, 버퍼(buffer)(32)는 CPU 로컬 버스(24)상에 접속된다. 버퍼(32)는 자체적으로 (CPU 지역 버스에 비교해) 저속인 시스템 버스(34)와 접속되며, 어드레스, 데이타 및 제어 구성 요소를 포함한다. 시스템 버스(34)는 버퍼(32)와 버퍼(36)를 연결하고 있다. 또한, 시스템 버스(34)는 버스 제어/타이밍 장치(bus control and timing unit)(38) 및 직접 메모리 액세스(Direct Memory Access : DMA) 장치(40)에 접속된다. DMA 장치(40)는 중앙 중재기(central arbitration unit)(48)와 DMA 제어기(41)로 구성된다. 버퍼(36)는 시스템 버스(34)와 마이크로 채널 버스(Micro Channel bus)(44)와 같이 선택사양적 특성을 갖는 버스 사이에 인터페이스를 제공한다. "Micro Channel"은 IBM사의 등록 상표이다. 다수의 I/O 슬롯(46a-46d)은 버스(44)에 접속되고, I/O 장치 또는 메모리에 접속될 수 있는 마이크로 채널 어댑터 카드(Micro Channel adapter cards)를 수용한다. 제2도에 도시된 바와 같이, I/O 슬롯(46a)은 버스(44)에 접속된 어댑터 카드상의 ROM을가지며, I/O 슬롯(46b)은 버스(44)에 접속된 CD-ROM 드라이브를 가지며, I/O 슬롯(46c)은 버스(44)에 접속된 하드 디스크 드라이브를 갖는다. 모뎀(modem)과 같은 다른 장치는 I/O 슬롯에 접속될 수 있다.중재 제어 버스(42)에 의해 DMA 제어기(41) 및 중앙 중재기(48)는 I/O 슬롯(46) 및 디스켓 어댑터(82)에 접속된다. 메모리 제어기(memory controller)(52), 어드레스 멀티플렉서(address multiplexer)(54) 및 데이타 버퍼(data buffer)(56)로 구성된 메모리 제어기(50)는 시스템 버스(34)에 또한 접속된다. 또한, 메모리 제어기(50)는 RAM 모듈(58)로 도시된 랜덤 액세스 메모리와 접속된다. 메모리 제어기(52)는 CPU(26)로/로부터의 어드레스를 RAM(58)의 특정 영역에 매핑하는 논리를 포함한다. 퍼스널 컴퓨터 시스템(10)은 기본적인 1 메가바이트(megabyte) RAM 모듈을 포함하는 것으로 도시되어 있지만, 제2도에 도시된 바와 같이 선택사양적 메모리 모듈(60-64)에 의해 부가적인 메모리가 상호접속될 수도 있음을 이해하여야 한다.
버퍼(66)는 시스템 버스(34)와 플래너 I/O 버스(68)사이에 접속된다. 플래너 I/O 버스(68)는 어드레스, 데이타 및 제어 구성 요소를 제각기 포함한다. 클럭(clock)(72), 비휘발성(nonvolatile) RAM(74)(이하. "NVRAM"으로 칭함), RS232 어댑터(76), 병렬 어댑터(78), 다수의 타이머(80), 디스켓 어댑터(82), PC 키보드/마우스 제어기(84) 및 판독 전용 메모리(ROM)(86)와 같은 (선택사양적 디스플레이(14)를 구동하는데 사용되는) 다수의 I/O 어댑터 및 다른 주변 구성 요소는 플래너 버스(68)를 통해 접속된다. ROM(86)은 다수의 I/O 장치 간의 사용자에게 투명한 통신(user transparent communications)을 제공하는 BIOS를 포함한다.
클럭(72)은 날짜 계산을 위한 시간용으로 사용된다. NVRAM(74)는 시스템 구성 데이타를 저장하는데 사용된다. 즉, NVRAM은 현 시스템 구성을 나타내는 값을 포함할 것이다. 예를 들어, NVRAM(74)은 고정 디스크 또는 디스켓의 용량, 디스켓의 유형, 메모리의 크기 등을 나타내는 정보를 포함한다. 특히, NVRAM(74)은 시스템 콘솔 구성(system console configuration) 즉, PC 키보드가 키보드/마우스 제어기(84)에 접속되는지, 디스플레이 제어기가 사용가능한 지 혹은 ASCII 터미널이 RS232 어댑터(76)에 접속되는 지의 여부를 나타내는데 사용되는 데이타를 포함하고 있다. 또한, 이들 데이타는 특정의 구성 프로그램(configuration program)이 실행될 때마다 NVRAM(74)에 저장된다. 이 구성 프로그램의 목적은 시스템의 전원이 제거될 경우 이 시스템의 구성을 특징짓는 값을 NVRAM(76)에 저장하는데 있다.
포트(A)와 포트(B)는 키보드/마우스 제어기(84)에 접속된다. 이들 포트(A, B)는 (ASCII 단자에 대해 반대 위치에 있는) PC 키보드 및 마우스를 PC 시스템에 접속하는데 사용된다. RS232 커넥터는 RS232 어댑터 장치(76)에 접속된다. 선택사양적인 ASCII 단자는 RS232 커넥터를 통해 시스템에 접속될 수 있다.
특히, 퍼스널 컴퓨터 시스템(10)은 뉴욕(New York) 아몬크(Armonk)에 위치한 IBM사 제품인 IBM PS/2 컴퓨터 또는 IBM RISC SYSTEM/6000 컴퓨터와 같은 적절한 컴퓨터를 사용하여 구현될 수 있다. "RISC SYSTEM/6000"은 IBM사의 등록 상표이고, "PS/2"도 IBM사의 등록 상표이다.
제3도를 참조하면, 본 발명의 바람직한 실시예에 다른 객체 지향 시스템의 객체들이 도시되어 있다. 소정의 객체는 데이타 및 이 데이타를 조작하는데 필요한 메쏘드를 캡슐화한다. 객체들은 제3도에 도시된 바와 같이 "도너츠 형태"로 나타낼 수 있다. 중심에 위치한 객체 데이타는 적용가능한 메쏘드들(304 내지 314)에 의해 둘러싸여 있다. 데이타(302)는 객체의 메쏘드들에 의해서만 수정될수 있다. 메쏘드들(304-314)은 다른 객체들로부터 메시지를 수신함으로써 호출(invoke)된다. 통상적인 객체 지향 시스템은 객체들 간의 메시지를 라우팅(route)하는 메시지 라우터(message router)(320)를 가질 것이다. 따라서, 객체(330)는, 메시지(332)를 메시지 라우터(320)에 전송하고 그 후 메시지 라우터(320)는 상기 메시지(322)를 객체(300)의 메쏘드 C(308)에 전송함으로써 메쏘드 C(308)를 호출할 수 있다.
객체 프레임워크들은 응용 및 시스템 개발자에게 객체 세트를 제공하도록 하여, 전송 시스템을 형성하도록 구성된다. 예를 들어, IBM 시스템 객체 모델(System Object Model :SOM) 프레임워크는 시스템 개발에 사용되는 언어 독립 객체 세트(language independent set of objects)를 제공한다.
객체들은 관련된 객체들의 클래스로 그룹화된다. 클래스 기술(class description)에는 각각의 객체 및 사용가능한 객체 메쏘드들에 의해 유지되는 인스탄스 변수들의 기술(description of instance variables)을 비롯한, 소정의 클래스내의 모든 객체와 관련된 정보가 포함되어 있다. 객체 인스탄스(object instance)는 상기 정보에 기초하여 생성되고(혹은 "인스탄트화되고(instantiate)"), 객체 클래스 내에서 정의되는 특성들을 갖는다. 예를 들어, 객체 클래스 DOG는 인스탄스 변수 "dog-type" 및 "dog-name"와 바크 메시지(bark message)에 대한 응답을 구현하는 "bark" 메쏘드(bark method)를 포함한다. dog의 인스탄스 예를 들어, ROVER은 그 자신에 대한 유형 및 명칭 인스탄스 변수를 보유하며, 상기 바크 메시지에 응답할 것이다.
추상적 클래스(abstract classes)는 소정의 클래스에 의해 사용될 것으로 예상되는 인터페이스 및 메쏘드들을, 그 메쏘드의 구현에 관한 세부내용을 제공함이 없이 기술하기 위해 사용된다. 추상적 클래스는 구현 세부내용(implementation details)이 구현자에게 맡겨지는 프레임워크에서 유용하다. 구체적 클래스(concrete classes)는 추상적 클래스의 하위클래스(subclasses)로서 생성되고, 이들 클래스를 구현한다.
객체 지향 시스템은 본 발명의 바람직한 실시예가 구현되는 소정의 환경이다. 본 발명은 이벤트 관리자로 지칭되는 이벤트 관리 객체(event management object) 내에서 플랫폼 특정 이벤트 인식을 분리한다. 시스템 논리 또는 응용의 잔여 부분은 이벤트 관리자에 의해 발생된 논리 이벤트를 위해 코딩된다. 이벤트 관리자는 플랫폼-특정 외부 이벤트(platform-independent logical events)를 플랫폼-독립 논리 이벤트(platform-independent logical events)에 매핑(mapping)시키는데 사용된다. 그 결과, 시스템 코드의 잔여 부분은 이벤트 관리자를 제외하고는 플랫폼과 무관하게 된다.
동작은 특수한 객체 및 논리 이벤트 조합에 대해 트리거될 수 있다. 소정의 객체에 관한 논리 이벤트의 트리거는 이벤트 객체를 이벤트 큐(event queue)에 부가한다. 이 이벤트 객체는 그 논리 이벤트의 명칭 및 타겟 객체(target object)에 관한 정보를 포함한다.
객체 지향 환경내의 다른 객체는 논리 이벤트에 대한 콜 백(call back)을 이벤트 관리자에게 요구할 것이다. 이 프로세스는 콜 백의 등록으로 지칭한다. 콜 백 메카니즘(call back mechanism)은 기존의 소프트웨어 모듈 또는 객체가 런타임(run time)시에만 사용가능한 서브루틴들 또는 다른 객체를 호출하도록 하는데 사용된다. 런타임시 서브루틴 또는 객체의 호출은 "콜 백"으로 지칭된다. 통상적으로, 등록 정보를 해쉬 테이블(hash table)에 배치하여, 명칭을 해쉬 키(hash key)로서 사용함으로써 콜 백 어드레스가 신속하게 검색될 수 있도록 한다. 외부 이벤트는 본 발명의 바람직한 실시예에 따라 실행될 동작 또는 메쏘드를 정의하기 위해 해쉬 테이블을 사용하여 논리 이벤트로 변환된다.
제4도를 참조하면, 본 발명의 바람직한 실시예에 따른 콜 백의 등록에 대한 프로세스가 도시되어 있다. 이벤트 관리자(400)는 콜 백 등록을 보유하는 등록 테이블(registry table)(이는 또한 해쉬 테이블로 지칭되기도 함)을 포함한다. 이벤트 관리자(400)는 콜 백 데이타를 등록하는 각각의 객체로부터 객체 식별자(object identification: Object ID), 이벤트, 및 취해질 동작(콜 백 데이타(CallBackData))을 수신함으로써 객체들(1-N)로부터 콜 백등을 등록한다. 객체 1과 같은 객체는 논리 이벤트 및 콜 백 데이타를 이벤트 관리자(400)에 등록시킨다. 콜 백 데이타는 그 객체에 대한 메쏘드 또는 호출할 기능에 관한 정보, 및 메쏘드/기능 호출에 의해 전송될 데이타를 포함한다. "객체 식별자"는 콜 백을 위해 등록되고 있는 객체 ID이거나 혹은 아닐 수 있다. 객체 식별자는 항상 소정의 이벤트가 인식되는 객체 ID이다. 예를 들어, 데이타 엔트리 유형(data entry form)이 엔트리 필드상에서 <포커스변화(FocusChange)> 이벤트에 대한 콜 백 등록을 원한다면, 객체 식별자는 엔트리 필드의 ID가 된다.
제5도를 참조하면, 본 발명의 바람직한 실시예에 따른 이벤트 관리자를 사용하여 이벤트를 등록하는 프로세스의 흐름도가 도시되어 있다. 본 발명의 바람직한 실시예에 따른 프로세스는 콜 백을 등록하기 위한 데이타를 수신함으로써 개시된다. 그 정보에는 객체 식별자, 소정의 이벤트, 및 실행될 동작 또는 메쏘드(콜 백 데이타) 등이 있으며, 단계(500)에서 프로세스는 그 객체 대한 엔트리가 존재하는지 및 소정의 객체가 존재하지 않을 경우 이벤트에 대한 엔트리가 존재하는 지의 여부를 판정한다. 그 후, 단계(502)에서 프로세스는 해쉬 테이블에 소정의 엔트리를 생성한다. 그 후, 단계(504)에서 콜 백 데이타가 리스트(list)에 부가된다. 각각의 이벤트에 대한 콜 백 데이타는 리스트에 저장된다. 리스트는 저장된다. 리스트는 노드들(nodes)을 포함하는데, 리스트내의 각각의 노드는 데이타 및 후속 노드(nextnode)에 대한 포인터(pointer)를 포함한다. 리스트 클래스(list class)는 SOM 집합체 클래스(collection classes)에서 발견될 수 있다, 리스트 클래스는 리스트에 대해 항목(item)을 삽입(부가)하고 제거하는 API를 제공한다. 다시 단계(500)를 참조하면, 객체 및 이벤트에 대한 엔트리가 존재하면, 프로세스는 단계(504)로 진행하여 해쉬 테이블에 엔트리를 생성하지 않고 콜 백 데이타를 리스트에 부가한다. 그후, 프로세스는 종료된다.
제6도에는 본 발명의 바람직한 실시예에 따른 등록 테이블(또는 해쉬 테이블로 지칭됨)이 도시되어 있다. 해쉬 테이블(600)은 객체 식별자, 이벤트, 및 리스트에 대한 포인터의 엔트리들을 포함한다. 리스트는 순차적으로 연결된 노드들의 집합체이다. 리스트 내의 각각의 노드는 데이타, 및 후속 노드에 대한 포인터를 포함한다. 리스트에는 최초 노드(first node) 및 최종 노드(last node)가 있다. 최종 노드는 후속 노드에 대한 포인터를 갖지 않는다. 리스트 클래스는 SOM내의 SOM 집합체 클래스에서 발견될 수 있다. 라스트 클래스는 노드(데이타 항목)를 리스트에 대해 삽입(부가)하고 제거하는 API를 제공한다. 해쉬 테이블(600)의 고유 키는 객체 식별자 및 이벤트이다. 각각의 키 조합에서, 해쉬 테이블(600)은 콜 백 리스트에 대한 포인터를 저장한다. 해쉬 테이블(600)내의 소정의 이벤트는 환경 독립 논리 이벤트(environment independent logical event)이다.
리스트에 대한 포인터는 그 이벤트에 대해 수행(디스패치)될 필요가 있는 콜 백의 연결 리스트이다. 리스트 내의 각각의 노드는 콜 백 데이타(메쏘드/기능 포인터와 콜 백에 의해 전송되는 데이타)를 포함한다.
제7도를 참조하면, 본 발명의 바람직한 실시예에 따른 이벤트 처리 루프가 도시되어 있다. 이벤트 관리자는 시스템의 메인 응용 이벤트 루프를 포함하고, 플랫폼 특정 이벤트 루프들을 인계받는다. 이벤트 관리자(700)는 플랫폼 발생 이벤트들(platform generated events)을 입력으로서 수신한다. 이어서, 이벤트 관리자는 다음 이벤트를 획득하고, 그 이벤트를 논리 요소(logical elements)에 매핑하고, 제각기 발생된 논리 이벤트에 대한 콜 백을 발생한다. 이벤트 관리자(700)로부터의 출력은 디스패치 콜 백(dispatch call backs)의 형태이다.
제8도를 참조하면, 본 발명의 바람직한 실시예에 따른 이벤트 루프 프로세스의 흐름도가 도시되어 있다. 단계(800)에서 프로세스는 후속 이벤트를 획득함으로써 개시된다. 그후, 단계(800)에서 프로세스는 이벤트를 논리 이벤트에 매핑한다. 그후, 단계(804)에서 프로세스는 제각기 발생된 논리 이벤트에 대한 콜 백을 발생한 다음 종료된다.
제9도를 참조하면, 본 발명의 바람직한 실시예에 따른 이벤트 처리시 논리 이벤트에 매핑하는 프로세스의 흐름도가 도시되어 있다. 제9도는 제8도의 블럭(802)에 도시된 프로세스의 흐름도를 더욱 상세히 도시한 것이다. 프로세스는 플랫폼 이벤트를 논리 이벤트에 매핑하는 환경 종속 테이블(environment dependent tables)을 사용한다. 단계(809)에서 프로세스는 플랫폼 특정 이벤트를 수신함으로써 개시되고, 단계(900)에서 이벤트를 논리 이벤트로 변환한다. 플랫폼 이벤트를 논리 이벤트로의 변환은 매핑 테이블을 사용함으로써 수행된다. 매핑 테이블은 각각의 플랫폼에 특정된 테이블이다. 본 발명의 바람직한 실시예에 따른 테이블에는 두개의 열(columns)이 제공된다. 제1열은 플랫폼-특정 이벤트 명칭을 포함하고, 제2열은 논리 플랫폼-독립 이벤트 명칭을 포함한다. 예를 들어, OS/2 매핑 테이블은 플랫폼 특정 이벤트(즉, OS/2)를 논리 이벤트(즉. 선택 이벤트)로 변환하도록, 제1열의 OS/2 이벤트(WM-BUTTON1DOWN) 및 독립 이벤트(SELECTION-EVENT)를 포함한다.
변환 단계인 단계(900)에서, 이러한 매핑 테이블은 플랫폼 이벤트를 논리 이벤트에 매핑하는데 사용된다.
그 후, 단계(902)에서 프로세스는 그 이벤트가 새로운 논리 이벤트를 개시하는 지를 판정한다. 새로운 논리 이벤트가 개시되면, 단계(904)에서 프로세스는 그 이벤트에 대한 기장(bookkeeping)을 개시한다. 기장은 상태를 유지하기 위해 수행된다. 예를 들어, 버튼이 눌러져 그 상태가 유지되고, 그 후 버튼이 해제되기 전에 마우스가 이동되면 기장은 드래그 이벤트가 된다. 그 후, 단계(906)에서 프로세스는 이벤트가 논리 이벤트를 발생하는 지를 판정한다. 이벤트가 논리 이벤트를 발생하면, 단계(908)에서 프로세스는 콜 백을 발생한다. 다시 단계(906)를 참조하면, 이벤트가 논리 이벤트를 발생하지 않으면 프로세스는 종료된다. 다시 단계(902)를 참조하면, 이벤트가 새로운 논리 이벤트를 개시하지 않으면, 프로세스는 상술한 바와 같이 단계(906)로 직접 진행한다.
제10도를 참조하면, 이벤트 처리시 본 발명의 바람직한 실시예에 따른 콜 백을 발생하는 프로세스의 흐름도가 도시되어 있다. 이 흐름도는 제9도의 블럭(908)의 흐름도를 더욱 상세히 도시한 것이다. 단계(998)에서 프로세스는 논리 이벤트를 입력으로서 수신함으로써 개시된다. 그 후, 단계(1000)에서 프로세스는 추가적인 논리 이벤트가 존재하는 지의 여부를 판정한다. 추가적인 이벤트가 존재하면, 단계(1002)에서 프로세스는 추가적인 노드들이 연결 리스트내에 존재하는지의 여부를 판정한다. 추가적인 노드들이 연결 리스트내에 존재하지 않으면, 프로세스는 단계(1000)로 복귀된다.
그러나, 추가적인 노드들이 연결 리스트 내에 존재하면, 단계(1004)에서 프로세스는 그 이벤트 및 관련 객체에 대한 콜 백 데이타를 획득한다. 그 후, 단계(1006)에서 프로세스는 콜 백에 대한 동작 객체(action object)를 생성한다. 동작 객체는 콜 백에 관한 정보를 포함한다. 예를 들어, 버튼 클릭 이벤트(button click event)가 발생되면, 동작 객체는 버튼 클릭이 발생될 때 스크린(screen)상에 위치한 포인터의 좌표(x 및 y)에 대한 정보를 포함할 것이다. 그것은 어떤 객체상에서 버튼 클릭이 발생한 것인지 등을 또한 포함할 수 있다. 따라서, 콜 백의 수신자는 소정의 이벤트에 대한 필요한 정보를 질의(query)하기 위해 이러한 동작 객체를 사용할 수 있다. 동작 객체의 생성은 본 발명의 바람직한 실시예에 따라 객체의 인스탄스(instance)를 생성하고 이벤트 정보를 채워넣기 위해 사용된다. 그 후, 단계(1008)에서 프로세스는 동작 객체와 함께 콜 백을 디스패치하고, 이어서 프로세스는 단계(1002)로 복귀한다. 추가적인 이벤트들이 존재하지 않으면 프로세스는 종료된다.
본 발명의 바람직한 실시예에 따르면, 이벤트 관리자는 환경 특정 이벤트 루프 처리를 수용한 다음 애플리케이션들을 관리하도록 설계된다. 또한, 외부 이벤트들은 환경 특정 맵 테이블을 사용함으로써 논리 이벤트에 매핑된다. 예를 들어, OS/2상에서의 PM-mouse-button-1-Pressed external event 외부 이벤트와 AIX상에서의 X-mouse-button-1-Pressed external event 외부 이벤트가 있다. 또한, 그 객체는 이벤트 관리자에 의해 주어진 타겟 객체상의 특정 논리 이벤트에 대한 동작을 등록할 수 있다. 이 동작은 프로시져/메쏘드 콜 또는 스크립트(procedure/method calls or script)일 수 있다. 이벤트들은 객체 지향 방식으로 설계되고, 사용자는 추상적인 동작 개체를 하위클래스화하여 새로운 커스텀 객체(new custom calls or script)를 생성할 수 있다.
제4도 내지 제10도에 도시된 프로세스는 본 기술 분야에 통상의 지식을 가진 자에 의해 제1도 및 제2도 도시된 데이타 처리 시스템내에서 구현될 수 있다. 또한, 본 발명의 프로세스는 데이타 처리 시스템에 의해 판독가능한 프로그램 저장 장치(program storage device)에서 구현될 수 있으며, 프로그램 저장 장치는 본 발명의 프로세스를 인코딩하는 데이타 처리 시스템의 실행가능한 인스트럭션(data processing system executable instructions)을 인코딩한다. 프로그램 저장 장치는 본 기술 분야에 통상의 지식을 가진 자에게 잘 알려진 바와 같이, 예를 들어 하드 디스크 드라이브, 플로피 디스크, 광 디스크, ROM 및 EPROM을 포함하지만 이에 국한하지 않고 여러가지 형태를 가질 수 있다. 프로그램 저장 장치상에 저장된 프로세스는 프로그램 저장 장치가 데이타 처리 시스템에 의해 활성화될 때까지 동작하지 않는다. 예를 들어, 본 발명에 대한 데이타 처리 시스템의 실행 가능한 인스트럭션을 포함하는 하드 드라이브(hard drive)는 데이타 처리 시스템에 접속될 수 있다. 본 발명에 대한 데이타 처리 시스템의 실행가능한 인스트럭션을 포함하는 플로피 디스크는 데이타 처리 시스템의 실행가능한 인스트럭션을 포함하는 플로피 디스크는 데이타 처리 시스템의 플로피 디스크 드라이브에 삽입될 수 있다. 또한, 본 발명의 데이타 처리 시스템의 실행가능한 인스트럭션을 포함하는 ROM은 I/O 슬롯에 접속된 카드 또는 어댑터를 통해 데이타 처리 시스템에 접속될 수 있다.
본 발명은 특히 바람직한 실시예를 참조하여 도시되고 기술되었지만, 본 기술 분야에 통상의 지식을 가진 자라면 본 발명의 정신 및 영역을 벗어나지 않고서도 형태 및 세부사항에 있어 다양한 변경이 일어날 수 있음을 이해하여야 할 것이다.

Claims (15)

  1. 데이타 처리 시스템내의 소정의 환경(environment)에서 발생하는 이벤트들(events)을 효율적으로 처리하는 방법으로서, 상기 데이타 처리 시스템은 다수의 환경(multiple environments) 및 상이한 환경들에서 사용될 수 있는 다수의 객체(a plurality of objects)를 포함하고, 상기 객체 각각은 소정의 이벤트에 응답하여 트리거(trigger)되는 소정의 동작(an action)을 포함하는, 효율적인 이벤트 처리 방법에 있어서, ① 상이한 환경들로부터의 이벤트들을 처리하기 위한 이벤트 관리자 객체(an event manager object)를 생성하는 단계와, ② 상기 다수의 객체에 대한 이벤트들을 등록(register)하는 단계와, ③ 상기 데이타 처리 시스템에서 발생하는 소정의 이벤트의 검출에 응답하여 상기 이벤트 관리자 객체를 사용하여 소정의 동작(action)을 트리거시키는 단계- 여기서, 소정의 환경에서 발생되는 이벤트들이 효율적으로 처리됨-를 포함하는 효율적인 이벤트 처리 방법.
  2. 제1항에 있어서, 상기 등록 단계는 상기 객체의 식별자(identification), 이벤트, 및 상기 이벤트에 응답하여 트리거되는 연관된 동작(an ascociated action)을 등록하는 단계를 포함하는 효율적인 이벤트 처리 방법.
  3. 제2항에 있어서, 상기 등록 단계는 상기 객체의 상기 식별자, 상기 이벤트, 및 해쉬 테이블(a hash table)의 이벤트에 응답하여 트리거되는 연관된 동작을 등록하는 단계를 포함하는 효율적인 이벤트 처리 방법.
  4. 데이타 처리 시스템내의 소정의 환경(environment)에서 발생하는 이벤트들(events)을 효율적으로 처리하는 데이타 처리 시스템 - 상기 데이타 처리 시스템은 다수의 환경(multiple environments) 및 상이한 환경들에서 사용될 수 있는 다수의 객체(a plurality of objects)를 포함하고, 상기 객체 각각은 소정의 이벤트에 응답하여 트리거(trigger)되는 소정의 동작(an action)을 포함함 - 에 있어서, ① 상이한 환경들로부터의 이벤트들을 처리하기 위한 이벤트 관리자 객체(an event manager object)를 생성하는 생성 수단과, ② 상기 다수의 객체에 대한 이벤트들을 등록(register)하는 등록 수단과, ③ 상기 데이타 처리 시스템에서 발생하는 소정의 이벤트의 검출에 응답하여 상기 이벤트 관리자 객체를 사용하여 소정의 동작(action)을 트리거시키는 트리거수단 - 여기서, 소정의 환경에서 발생되는 이벤트들이 효율적으로 처리됨 - 을 포함하는 데이타 처리 시스템.
  5. 제4항에 있어서, 상기 등록 수단은 상기 객체의 식별자, 이벤트, 및 상기 이벤트에 응답하여 트리거되는 연관된 동작을 등록하는 수단을 포함하는 데이타 처리 시스템.
  6. 제5항에 있어서, 상기 객체의 식별자, 이벤트, 및 상기 이벤트에 응답하여 트리거되는 연관된 동작을 등록하는 수단은 상기 객체의 식별자, 상기 이벤트, 및 해쉬 테이블의 이벤트에 응답하여 트리거되는 연관된 동작을 등록하는 수단을 포함하는 데이타 처리 시스템.
  7. 데이타 처리 시스템내의 소정의 환경에서 발생하는 이벤트들을 효율적으로 처리하는 데이타 처리 시스템 - 상기 데이타 처리 시스템은 상이한 환경으로부터 발생하는 외부 이벤트들과 단일 독립 메카니즘(a single independent mechanism)에 의해 처리되는 논리 이벤트(logical events)를 포함해 - 에 있어서, ① 소정의 외부 이벤트를 검출하는 검출 수단과, ② 상기 외부의 이벤트를 상기 논리 이벤트로 변환하는 변환 수단과, ③ 논리 이벤트들을 처리하는 메카니즘을 사용하여 상기 변환된 외부 이벤트를 처리하는 처리 수단 - 여기서, 외부 이벤트들이 효율적으로 처리됨 - 을 포함하는 데이타 처리 시스템.
  8. 데이타 처리 시스템에 의해 판독가능하고, 상기 데이타 처리 시스템내의 환경에서 발생하는 이벤트들을 처리하기 위해 데이타 처리 시스템이 실행할 수 있는 인스트럭션(data processing system executable instructions)을 인코딩하는 저장 장치 - 상기 데이타 처리 시스템은 다수의 환경 및 상이한 환경에서 사용될 수 있는 다수의 객체를 포함하고, 상기 객체 각각은 소정의 이벤트에 응답하여 트리거되는 소정의 동작을 포함함 - 에 있어서, ① 상이한 환경으로부터의 이벤트들을 처리하기 위한 이벤트 관리자 객체를 생성하는 수단과, ② 다수의 객체에 대한 이벤트들을 등록하는 수단과, ③ 상기 데이타 처리 시스템에서 발생하는 이벤트의 검출에 응답하여 상기 이벤트 관리자 객체를 사용하여 소정의 동작을 트리거시키는 수단 - 여기서, 상기 수단은 상기 저장 장치가 상기 데이타 처리 시스템에 접속되어 상기 데이타 처리 시스템에 의해 액세스될 때, 활성화됨 - 을 포함하는 저장 장치.
  9. 제8항에 있어서, 상기 저장 장치는 하드 디스크 드라이브인 저장 장치.
  10. 제8항에 있어서, 상기 저장 장치는 데이타 처리 시스템과 함께 사용되는 ROM인 저장 장치.
  11. 제8항에 있어서, 상기 저장 장치는 플로피 디스켓인 저장 장치.
  12. 제8항에 있어서, 상기 저장 장치는 데이타 처리 시스템내에 위치한 RAM인 저장 장치.
  13. 데이타 처리 시스템내의 소정의 환경에서 발생하는 이벤트들을 효율적으로 처리하는 데이타 처리 시스템에 있어서, ① 상기 데이타 처리 시스템내의 다수의 환경들과, ② 상기 다수의 환경들내에서 실행되는 다수의 객체들 - 상기 객체 각각은 소정의 이벤트에 응답하여 트리거되는 소정의 동작을 포함함 - 과, ③ 이벤트 관리자를 포함하되, 상기 이벤트 관리자는 ⓐ 소정의 환경에 특정되는 소정의 이벤트를 수신하는 수신 수단과, ⓑ 소정의 환경에 특정되는 상기 수신된 이벤트를 논리 이벤트에 매핑하는 매핑 수단과, ⓒ 각각의 논리 이벤트에 대한 적어도 하나의 콜 백을 발생시키는 발생 수단을 포함하는 데이타 처리 시스템.
  14. 제13항에 있어서, 상기 이벤트 관리자 객체내의 발생 수단은 각각의 논리 이벤트에 대한 콜 백 데이타를 획득하는 수단과, 소정의 동작 개체를 생성하여 그 동작 객체와 상기 콜 백을 연관시키는 수단과, 상기 동작 객체와 함께 상기 콜 백을 디스패치하는 수단을 포함하는 데이타 처리 시스템.
  15. 제14항에 있어서, 상기 이벤트 관리자 객체는 다수의 객체에 대한 이벤트들을 등록하는 수단을 더 포함하는 데이타 처리 시스템.
KR1019950067117A 1995-01-19 1995-12-29 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치 KR100221374B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US37514995A 1995-01-19 1995-01-19
US08/375,149 1995-01-19
US8/375,149 1995-01-19

Publications (2)

Publication Number Publication Date
KR960029973A KR960029973A (ko) 1996-08-17
KR100221374B1 true KR100221374B1 (ko) 1999-09-15

Family

ID=23479700

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950067117A KR100221374B1 (ko) 1995-01-19 1995-12-29 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치

Country Status (4)

Country Link
US (1) US6226693B1 (ko)
EP (1) EP0727741A1 (ko)
JP (1) JPH08320789A (ko)
KR (1) KR100221374B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100809290B1 (ko) 2006-03-14 2008-03-04 삼성전자주식회사 Pdr을 이용한 프로세스 별 관리 장치 및 그 방법
KR100970729B1 (ko) * 2003-12-26 2010-07-16 삼성전자주식회사 입력 관리 장치 및 방법

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2207746A1 (en) * 1997-06-13 1998-12-13 Ironside Technologies Inc Method of manipulating software components through a network with enhanced performance and reduced network traffic
GB2328049B (en) * 1997-07-04 1999-11-10 Balaena Limited Computer system
US6553403B1 (en) * 1998-06-03 2003-04-22 International Business Machines Corporation System, method and computer program product for monitoring in a distributed computing environment
US6427163B1 (en) 1998-07-10 2002-07-30 International Business Machines Corporation Highly scalable and highly available cluster system management scheme
US6971109B1 (en) * 1998-07-24 2005-11-29 Micron Technology, Inc. Integrated application management system
WO2000060455A2 (en) * 1999-04-02 2000-10-12 Powerware Corporation Systems, methods and computer program products for event and action management in data processing systems using event handler intermediaries
US6853868B1 (en) * 1999-10-15 2005-02-08 Sun Microsystems, Inc. Cross-platform audio feedback for GUI components
TW476903B (en) * 1999-11-12 2002-02-21 Ibm Method, system, and program for processing data from an input device
US7349945B1 (en) * 2000-03-23 2008-03-25 I2 Technologies Us, Inc. System and method for managing event publication and subscription
US6735772B1 (en) * 2000-04-13 2004-05-11 International Business Machines Corporation System and method for handling orphaned cause and effect objects
US6665650B1 (en) * 2000-06-15 2003-12-16 Agilent Technologies, Inc. Intelligent logic activity resolution
WO2002025431A2 (en) * 2000-09-22 2002-03-28 Curl Corporation Dynamic event handlers for structured text
KR20020031505A (ko) * 2000-10-20 2002-05-02 김영돈, 정춘보 하나 이상의 이벤트를 다수의 객체에 적용시키는 방법
US7668900B2 (en) * 2001-05-31 2010-02-23 Access Systems Americas, Inc. System and method for scheduling an event over a network
US7331050B2 (en) * 2001-06-06 2008-02-12 Intel Corporation System and method for communicating information between application programs
US7111305B2 (en) * 2002-10-31 2006-09-19 Sun Microsystems, Inc. Facilitating event notification through use of an inverse mapping structure for subset determination
US7636919B2 (en) * 2003-09-16 2009-12-22 International Business Machines Corporation User-centric policy creation and enforcement to manage visually notified state changes of disparate applications
US20050240372A1 (en) * 2004-04-23 2005-10-27 Monk John M Apparatus and method for event detection
US7552447B2 (en) * 2004-05-26 2009-06-23 International Business Machines Corporation System and method for using root cause analysis to generate a representation of resource dependencies
US7962922B2 (en) * 2006-08-28 2011-06-14 Microsoft Corporation Delivering callbacks into secure application areas
KR100932896B1 (ko) 2006-12-08 2009-12-21 한국전자통신연구원 웹서비스 기반의 규칙 처리를 위한 디바이스 및 그 방법
US20090183160A1 (en) * 2008-01-16 2009-07-16 Morinville Paul V Automated Execution of Business Processes Using Dual Element Events
US8923890B1 (en) 2008-04-28 2014-12-30 Open Invention Network, Llc Providing information to a mobile device based on an event at a geographical location
US8219110B1 (en) * 2008-04-28 2012-07-10 Open Invention Network Llc Providing information to a mobile device based on an event at a geographical location
US8412231B1 (en) 2008-04-28 2013-04-02 Open Invention Network, Llc Providing information to a mobile device based on an event at a geographical location

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4672532A (en) 1982-06-14 1987-06-09 Tektronix, Inc. Software/hardware integration control system
US4734854A (en) 1985-10-08 1988-03-29 American Telephone And Telegraph Company System for generating software source code components
US5097533A (en) 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
US5280613A (en) 1990-06-25 1994-01-18 Hewlett-Packard Company ANDF installer using the HPcode-Plus compiler intermediate language
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5237684A (en) 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
US5233686A (en) 1991-09-24 1993-08-03 Ceridian Corporation Open systems software backplane architecture for federated execution of independent application programs
JPH05324339A (ja) 1992-05-20 1993-12-07 Pfu Ltd 連携処理制御方式
US5438659A (en) * 1992-10-08 1995-08-01 Hewlett-Packard Company Object-action user interface management system
US5430875A (en) * 1993-03-31 1995-07-04 Kaleida Labs, Inc. Program notification after event qualification via logical operators
US5613090A (en) * 1993-10-05 1997-03-18 Compaq Computer Corporation Computer system for disparate windowing environments which translates requests and replies between the disparate environments
US5566337A (en) * 1994-05-13 1996-10-15 Apple Computer, Inc. Method and apparatus for distributing events in an operating system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100970729B1 (ko) * 2003-12-26 2010-07-16 삼성전자주식회사 입력 관리 장치 및 방법
US8051431B2 (en) 2003-12-26 2011-11-01 Samsung Electronics Co., Ltd. Apparatus and method for input management
KR100809290B1 (ko) 2006-03-14 2008-03-04 삼성전자주식회사 Pdr을 이용한 프로세스 별 관리 장치 및 그 방법

Also Published As

Publication number Publication date
EP0727741A1 (en) 1996-08-21
JPH08320789A (ja) 1996-12-03
KR960029973A (ko) 1996-08-17
US6226693B1 (en) 2001-05-01

Similar Documents

Publication Publication Date Title
KR100221374B1 (ko) 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치
US5729739A (en) Persistent object mapping system and method with abstract schema mapper
US6185609B1 (en) Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system
US5590330A (en) Method and system for providing a testing facility in a program development tool
TW401558B (en) Generic software state machine system and method of constructing dynamic objects for an application program
US6519605B1 (en) Run-time translation of legacy emulator high level language application programming interface (EHLLAPI) calls to object-based calls
US5537630A (en) Method and system for specifying method parameters in a visual programming system
US5822585A (en) System and method for cooperative processing using object-oriented framework
US5893106A (en) Object oriented server process framework with interdependent-object creation
US5327559A (en) Remote and batch processing in an object oriented programming system
US5430875A (en) Program notification after event qualification via logical operators
US7739693B2 (en) Generic application program interface for native drivers
US6470375B1 (en) System and method for managing the execution of system management tasks
AU769815B2 (en) Distributed objects for a computer system
US5758351A (en) System and method for the creation and use of surrogate information system objects
US8141104B2 (en) Integrating non-compliant providers of dynamic services into a resource management infrastructure
US20020120924A1 (en) System of reusable software parts for distributing event flows and methods of use
EP0755007B1 (en) Method of using an object-oriented communication system with support for multiple remote machine types
EP0575073A2 (en) Objects with run-time classes
WO1995017719A1 (en) Object oriented interrupt system
CA2110417A1 (en) Message dispatching in an event-driven architecture
US5778369A (en) Method and apparatus for managing exceptions
WO2005103915A2 (en) Method for collecting monitor information
US5630141A (en) Hierarchical apparatus and method for processing device interrupts in a computer system
WO2000058829A1 (en) Object-oriented property linking

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee