KR19980045022A - User event control device and control method using the same - Google Patents

User event control device and control method using the same Download PDF

Info

Publication number
KR19980045022A
KR19980045022A KR1019960063179A KR19960063179A KR19980045022A KR 19980045022 A KR19980045022 A KR 19980045022A KR 1019960063179 A KR1019960063179 A KR 1019960063179A KR 19960063179 A KR19960063179 A KR 19960063179A KR 19980045022 A KR19980045022 A KR 19980045022A
Authority
KR
South Korea
Prior art keywords
window
message
event
mapping table
shared
Prior art date
Application number
KR1019960063179A
Other languages
Korean (ko)
Other versions
KR100233825B1 (en
Inventor
조성빈
김혜규
Original Assignee
양승택
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 양승택, 한국전자통신연구원 filed Critical 양승택
Priority to KR1019960063179A priority Critical patent/KR100233825B1/en
Publication of KR19980045022A publication Critical patent/KR19980045022A/en
Application granted granted Critical
Publication of KR100233825B1 publication Critical patent/KR100233825B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 사용자 이벤트 제어장치 및 이를 이용한 제어방법에 관한 것으로, 중앙 집중식 제어 구조의 장점과 복제형 제어 구조의 장점을 취하는 완전 분산 제어 구조 하에서 객체들에 대한 사용자 이벤트의 동기화 문제를 잠김 기법을 사용하여 동기화 문제를 해결하고 클라이언트에서의 사용자 입력 이벤트를 인지하고, 인지된 이벤트에 대하여 사용자 이벤트 맵핑 테이블을 참조하여 메시지 오퍼레이션으로 치환하고, 메시지 오퍼레이션을 윈도우즈에게 직접적으로 전달하여 처리하므로써 공동 작업의 생산성을 향상시키는 효과와 기타 그룹웨어, CSCW(Computer Supported Cooperative Work) 등의 분야에 분산 객체 제어 엔진으로 활용될 수 있는 효과가 있다.The present invention relates to a user event control apparatus and a control method using the same, using a technique for locking a user event synchronization problem for objects under a fully distributed control structure that takes advantage of a centralized control structure and a duplicated control structure. To improve synchronization productivity by resolving synchronization issues, recognizing user input events on the client, substituting them for message operations by referring to the user event mapping table, and passing message operations directly to Windows for processing. There is an effect that can be used as a distributed object control engine in areas such as improving and other groupware, Computer Supported Cooperative Work (CSCW).

Description

사용자 이벤트 제어장치 및 이를 이용한 제어방법User event control device and control method using the same

본 발명은 사용자 이벤트 제어장치 및 이를 이용한 제어방법에 관한 것으로, 분산 환경에서 노드의 네트워크 트래픽, 이벤트 처리 부하 및 공유 객체에 대한 이벤트의 동기화 문제를 해결할 수 있는 사용자 이벤트 제어장치 및 이를 이용한 제어방법에 관한 것이다.The present invention relates to a user event control apparatus and a control method using the same, and to a user event control apparatus and a control method using the same, which can solve the problem of synchronization of events to the network traffic, event processing load and shared objects of the node in a distributed environment It is about.

일반적으로 RTCAL 시스템은 참여자의 실시간 일정표로부터 공유 정보 공간을 구축하여 서로의 정보를 공유, 제어하는 복제형 시스템이고, MBlink는 다중 워크 스테이션의 비트맵 공유를 통한 정보 공유 방법을 택하고 있다. Cantata는 스위치 보드라 불리는 공유 뷰 서브-시스템에서 실행되는 표준 애플리케이션 공유 보다는 오히려 터미널 에뮬레이터를 통해서 참여자의 시리얼 포트에의 접근을 공유하게 한다. 공유-X(Shared-X)는 전체 스크린 공유보다 윈도우 공유를 통해서 디스플레이된 하나 혹은 그 이상의 공유 윈도우를 선택할 수 있고, 공유할 수 있으며 한 참여자는 그의 스크린 위에 개인 윈도우와 공유 윈도우 모두를 디스플레이하는 것으로 X 윈도우 시스템을 기반으로 하였으며 중앙 집중식 방식을 사용하고 있다. 그리고 다이얼로그(Dialog)는 모든 워크스테이션에 각 애플리케이션을 복제하는 복제형 구조를 가지고 있다. 란디뷰(Rendezvous) 시스템은 공동작업을 위한 다중 사용자의 이벤트들의 동기화를 목적으로 구성된 시스템들로서 중앙 집중식 구조를 사용하고 있다. 그러나 종단 사용자에게 알맞은 사용자 인터페이스를 제공해야 하는데, 공동작업을 위해 발생되는 많은 문제점으로 인해 명백한 공유 방법을 제공하지 못하고 있다. 세피아(SEPIA)는 하이퍼 텍스트 작업자들 간의 하이퍼 텍스트 저작 도구를 사용하여 공동작업을 지원하는 시스템으로 객체 잠김 기능을 제공하고 있으며 중앙 집중식 제어 구조를 사용하고 있다. 멀르메이드(MERMAID)는 복제 구조를 가지는 시스템으로써 분산된 여러 사용자를 위한 데스크 탑 회의 시스템으로 그룹 공동작업의 폭 넓은 지원을 목적으로 하고 잇으며, 이벤트들 간의 동기화 문제는 플로어(Floor) 패싱(Passing) 제어를 사용하고 있다. 위의 시스템들은 복제형 구조나 중앙 집중형 구조하에서 뷰 공유를 지원하고 있다. 복제형 구조는 이벤트 공유 방법을 사용하고 있으나 공동작업할 모든 사이트에 공유할 애플리케이션이 공히 탑재되어 있어야 한다. 그리고 중앙 집중형 구조의 시스템들은 모든 사이트에 애플리케이션을 탑재할 필요는 없으나 공유할 애플리케이션에 대하여 화면 캡춰링한 이미지 정보를 서로 전달하는 방법을 사용하고 있다. 현재 국내에서는 중앙 집중형 구조 하에서의 화면 이미지 캡춰링에 의한 마우스 움직임에 따른 사용자 이벤트 처리 방법을 사용하고 있으며 동기적인 이벤트 처리 메카니즘은 연구 단계에 있다. 따라서 상기의 방법은 사용자 이벤트에 대하여 마우스의 입력 좌표를 계산하여 서버로 전달하고, 서버에서는 좌표값을 사용자 인터페이스 액션으로 맵핑을 하여 처리한다.In general, the RTCAL system is a replica type system that shares and controls each other's information by building a shared information space from the participants' real time schedules. Cantata allows a participant to share access to a serial port through a terminal emulator rather than sharing a standard application running on a shared view sub-system called a switch board. Shared-X allows you to select and share one or more shared windows displayed via window sharing rather than full screen sharing, and one participant displays both a personal window and a shared window on his screen. It is based on the X Window System and uses a centralized approach. Dialogs have a clone structure that replicates each application to every workstation. The Rendezvous system uses a centralized structure as a system configured for synchronization of multi-user events for collaboration. However, there is a need to provide an appropriate user interface for end users, and many of the problems that arise for collaboration do not provide a clear way of sharing. Sepia is a system that supports collaboration using hypertext authoring tools among hypertext workers, providing object locking and using a centralized control structure. MERMAID is a replication system, a desktop conferencing system for distributed, multi-user users that aims to provide broad support for group collaboration. The problem of synchronization between events is floor passing. ) You are using control. The above systems support view sharing under either a replicated or centralized structure. The replica architecture uses an event sharing method, but all sites to collaborate must have an application to share. In addition, centralized systems do not need to load applications at every site, but use a method of communicating screen-captured image information about applications to be shared. Currently, in Korea, the user event processing method according to mouse movement by screen image capturing under centralized structure is used, and the synchronous event processing mechanism is in the research stage. Therefore, the method calculates the input coordinates of the mouse for the user event and delivers them to the server, and the server processes the coordinate values by mapping them to user interface actions.

국내의 공동작업 처리를 위한 사용자 이벤트 제어 구조는 중앙 집중식 제어 구조를 사용함으로서 중앙 노드로의 네트워크 트래픽, 처리 부하가 가중되어 실시간 처리에 문제가 있다. 복제형 제어 구조는 중앙 집중식 제어 구조의 단점은 없으나 모든 노드가 동일한 수행 환경을 가지고 있어야 하는 문제가 있다. 그리고, 동시 다발적으로 발생되는 사용자 이벤트 처리에 따른 모든 노드들에서의 자원의 무결성 해결을 위한 객체들의 동기화 처리 문제가 있다.The user event control structure for domestic collaborative processing has a problem in real time processing due to the increased network traffic and processing load to the central node by using a centralized control structure. The replication control structure does not have the disadvantage of the centralized control structure, but there is a problem that all nodes have the same execution environment. In addition, there is a problem of synchronization processing of objects for solving the integrity of resources in all nodes according to simultaneous user event processing.

따라서 본 발명은 중앙 집중식 제어 구조의 장점과 복제형 제어 구조의 장점을 취하는 완전 분산 제어 구조 하에서 객체들에 대한 사용자 이벤트의 동기화 문제를 잠김 기법을 사용하여 해결하고 클라이언트에서의 사용자 입력 이벤트를 인지하고, 인지된 이벤트에 대하여 사용자 이벤트 맵핑 테이블을 참조하여 메시지 조작으로 치환하고, 메시지 조작을 윈도우즈에게 직접적으로 전달하여 처리할 수 있는 사용자 이벤트 제어장치 및 이를 이용한 제어방법을 제공하는 것을 그 목적으로 한다.Therefore, the present invention solves the problem of synchronizing user events to objects using a locking scheme under a fully distributed control structure that takes advantage of the centralized control structure and the duplicated control structure, and recognizes the user input event in the client. It is an object of the present invention to provide a user event control apparatus and a control method using the same, which replaces a recognized event with a message manipulation with reference to a user event mapping table, and delivers the message manipulation directly to Windows.

상술한 목적을 실현하기 위한 본 발명에 따른 사용자 이벤트 처리장치는 해석기로부터 전달된 이벤트를 해당 액션 모듈로 호출하기 위한 이벤트 분류기와, 공유 할 객체의 새로운 윈도우를 검사하여 그 정보를 등록하는 메시지 정보 관리기 및 검색을 지원하는 메시지 맵퍼로 구성된 사용자 이벤트 액션 모듈과, 해당 윈도우의 ID를 관리하는 윈도우 관리기와, 윈도우 핸들 정보를 저장하는 윈도우 ID 테이블과, 이벤트를 메시지로 변환하는 참조 정보를 저장하고 잇으며 공유 객체에 대한 동기 제어 정보를 저장하고 있는 메시지 맵핑 테이블과, 상기 메시지 맵핑 테이블을 참조하여 공유 객체에 대한 실질적인 동기를 처리하는 사용자 객체 동기 제어기와, 상기 윈도우 핸들 및 메시지를 이용하여 윈도우 명령어를 생성하는 윈도우 명령어 생성기와, 생성된 윈도우 명령어를 윈도우즈에 전달하여 실질적인 공유 객체에 대한 동작을 하게 하는 프리젠테이터로 이루어진다.A user event processing apparatus according to the present invention for realizing the above object includes an event classifier for calling an event transmitted from an interpreter to a corresponding action module, and a message information manager for inspecting a new window of an object to be shared and registering the information. And a user event action module including a message mapper that supports retrieval, a window manager that manages the ID of the window, a window ID table that stores window handle information, and reference information that converts events into messages. A message mapping table that stores synchronization control information for a shared object, a user object synchronization controller that handles actual synchronization with respect to a shared object by referring to the message mapping table, and generates a window command using the window handle and the message. With the Windows command generator By passing a command to the Windows window comprises a presence mutator that the operation for the real shared object.

그리고, 상술한 목적을 실현하기 위한 본 발명에 따른 사용자 이벤트 처리방법은 이벤트 해석기로부터 이벤트를 전달받아 사용자 이벤트 종류를 분류하는 단계와, 상기 단계로부터 상기 분류된 이벤트가 새로운 공유 객체에 대한 윈도우인지를 조사하고 새로운 공유 객체에 대한 윈도우이면 윈도우 ID 테이블에 새로운 윈도우 ID를 등록하며 새로운 윈도우 ID를 할당 받고, 기존에 등록된 윈도우 ID라면 윈도우 해당 ID를 윈도우 ID 테이블에서 찾아오는 단계와, 상기 단계로부터 상기 할당받은 윈도우 ID와 이벤트를 메시지 맵핑 테이블을 검색하여 메시지 맵핑 테이블에 없으면 이벤트를 메시지로 변환하여 메시지 맵핑 테이블에 저장하고 관련 사용자수를 저장하고, 윈도우 ID가 메시지 맵핑 테이브에 있으면 이벤트에 해당하는 메시지를 찾아온 다음 윈도우 ID의 해당 메시지 사용자수를 1 감소하는 단계와, 상기 단계로부터 공유 객체에 대한 동기화를 해결하기 위하여 사용자 수가 0인지를 조사한 후 사용자 수가 0이면 잠김을 해제하고 그 객체를 메시지 맵핑 테이블에서 삭제하고, 사용자 수가 0이 아니면 해당 메시지에 대한 액션을 종료하는 단계와, 상기 단계로부터 상기 윈도우 ID와 메시지를 이용하여 윈도우 명령어를 생성하는 단계와, 상기 단계로부터 상기 생성된 윈도우 명령어를 윈도우즈에 전달함으로써 실질적인 객체에 대한 프리젠테이션을 하는 단계로 이루어진다.In addition, the user event processing method according to the present invention for realizing the above object is to receive an event from the event interpreter to classify the user event type, and from the step whether the classified event is a window for a new shared object Search and register a new window ID in the window ID table if the window is for a new shared object and receive a new window ID, and retrieve the window ID from the window ID table if the window ID is already registered; If the assigned window ID and the event are not found in the message mapping table by searching the message mapping table, the event is converted into a message and stored in the message mapping table and the number of related users are stored. If the window ID is in the message mapping table, Retrieve the message and then window Reducing the number of message users of the ID by one; and checking whether the number of users is zero to resolve synchronization with the shared object from the above step, unlocking if the number of users is zero and deleting the object from the message mapping table, If the number of users is not zero, ending the action on the message; generating a window command using the window ID and the message from the step; and transmitting the generated window command to the window from the step to the actual object. The presentation consists of a presentation.

도 1은 본 발명에 따른 정보 통신 시스템 소프트웨어 공동 개발 플랫폼의 구성도.1 is a block diagram of an information communication system software joint development platform according to the present invention.

도 2는 본 발명에 따른 공동작업 분산제어 엔진의 구성도.2 is a block diagram of a joint operation distributed control engine according to the present invention.

도 3은 본 발명에 따른 사용자 이벤트 처리기의 구성도.3 is a block diagram of a user event handler according to the present invention;

도 4는 본 발명에 따른 공유 객체에 대한 동기화 기법을 적용한 사용자 이벤트 처리기의 플로우 차트도.4 is a flow chart of a user event handler applying a synchronization technique for shared objects in accordance with the present invention.

*도면의 주요 부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

1 및 6:메시지 디스패춰2 및 7:해석기1 and 6: Message dispatcher 2 and 7: Interpreter

3 및 8:애플리케이션 공유 이벤트 처리기4 및 9:분배기3 and 8: Application Sharing Event Handlers 4 and 9: Distributors

5:애플리케이션11:UIMS5: application 11: UIMS

12:통신 시스템13:공유 작업환경12: Communication System 13: Shared Work Environment

14:이벤트 엔진20:코바(CORBA)14: event engine 20: CORBA

51:이벤트 분류기52:사용자 이벤트 액션51: Event Categorizer 52: User Event Action

53:메시지 정보 관리기54:메시지 맵퍼53: message information manager 54: message mapper

55:사용자 객체 동기 제어기56:윈도우 명령어 생성기55: user object synchronization controller 56: window instruction generator

57:프리젠 테이터58:윈도우 관리기57: Presence Tate 58: Window Manager

59:윈도우 ID 테이블60:메시지 맵핑 테이블59: window ID table 60: message mapping table

이하, 본 발명에 따른 사용자 이벤트 제어장치 및 이를 이용한 제어방법을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.Hereinafter, a user event control apparatus and a control method using the same according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 정보 통신 시스템 소프트웨어 공동개발 플랫폼의 블럭 구성도로서, 분산 제어 엔진은 분산 환경을 중심으로 운영되고 있으며, 분산 환경 하에서 공동작업을 위한 사용자 시스템의 환경은 공동작업을 효과적을 사용할 수 있도록 지원해 주는 UIMS(User Interface Management System)(11)와, 분산 환경하에서 다자간 정보를 교환할 수 있도록 지원해 주는 통신 시스템(12)과, 공동작업을 지원하기 위한 작업 공간으로서의 공유 작업 환경(13)과, 공동작업 수행 시 애플리케이션 공유를 지원하고 공유 애플리케이션의 이벤트를 처리하는 이벤트 엔진(14)과, 사용자 시스템 간의 분산 컴퓨팅 환경을 지원하기 위한 코바(CORBA)(20) 등으로 구성되며 이러한 환경 하에서 공동작업에 필요한 도구(15, 17, 17, 31, 32, 33, 41, 42 및 43)들은 모든 사용자들에게 분산되어 있고, 이러한 환경 하에서 공동개발을 목적으로 도구를 공유하여 공동작업을 할 수 있는 환경을 제공한다. 이 시스템의 동작은 UIMS(11)에서의 공동작업의 목적에 적합 도구와 사용자를 선택하여 공동작업 환경의 설정을 하게 되며 이때, 공유 애플리케이션이 자신의 시스템에 존재하면 이벤트 엔진(14)을 구동하고 서버 노드를 만들고 애플리케이션을 공유 작업 환경(13) 내에 구동한다. 또한 공동작업 참여 대상자에게 공동작업을 요청하고 요청을 승인한 사용자들에게 애플리케이션 공유 정보를 분배하여 공동 작업 환경을 설정하며 공동 작업이 진행되는 과정에서의 사용자 이벤트들은 이벤트 엔진(14)을 통하여 이벤트 정보를 공유하여 처리되도록 한다.1 is a block diagram of an information communication system software co-development platform according to the present invention, wherein a distributed control engine is operated around a distributed environment, and an environment of a user system for collaborating under a distributed environment is effective for collaboration. A user interface management system (UIMS) 11 for supporting use, a communication system 12 for exchanging multi-party information in a distributed environment, and a shared work environment as a work space for supporting collaboration (13) ), An event engine 14 that supports application sharing when collaborating and handles events of shared applications, and CORBA 20 for supporting distributed computing environments between user systems. Tools for collaboration (15, 17, 17, 31, 32, 33, 41, 42, and 43) are distributed to all users In this environment, it is possible to provide a collaborative environment by sharing tools for the purpose of joint development. The operation of this system is to set up the collaboration environment by selecting the appropriate tools and users for the purpose of collaboration in the UIMS (11), when the shared application is present in its system to drive the event engine (14) Create a server node and run the application in the shared work environment 13. In addition, by requesting collaboration to the collaborative participants and distributing application sharing information to users who approved the request, the collaboration environment is set up, and user events during the collaboration process are provided through the event engine 14. To be shared.

도 2는 본 발명에 따른 공동작업 분산제어 엔진을 도시한 구성도로서, 공동 작업할 애플리케이션(5)을 소유하고 있는 노드가 서버의 역할을 한다. 서버 및 클라이언트들로부터 전달된 메시지를 저장된 순서대로 메시지를 가져오는 메시지 디스패춰(1)를 통하여 패치된 메시지를 해석하여 사용자 이벤트(UE:User Event), 시스템 이벤트(SE:System Event) 및 애플리케이션 공유 이벤트(ASE:Application Shuring Event)로 분류하는 해석기(2)가 있으며, 해석된 메시지를 이벤트 처리기(UEP:User Event Processor)(3)로 전달하게 되면 사용자 이벤트 처리기(3)에서는 메시지의 형태에 따라 윈도우 관리기는 해당 노드의 수행 중인 윈도우들의 ID(IDentifier) 구조를 정의하고 있는 부분으로서 서버 측의 전달된 메시지에서 서버의 현재 수행 중인 해당 윈도우 ID와 클라이언트 측에서 수행 할 윈도우 ID의 맵핑(Mapping) 정보를 이용하여 해당 노드의 프리젠테이션할 윈도우 핸들로 변환 된다. 이 윈도우 핸들을 사용하여 사용자 이벤트 액션 모듈(UEA:User Event Action)과 윈도우즈에게 전달할 윈도우 명령어를 생성하기 위하여 메시지 맵핑 테이블의 정보를 사용하여 윈도우즈 명령어를 생성하게 된다. 윈도우즈 명령어를 생성할 때 프리젠테이션할 해당 객체에 대한 정보를 윈도우 메시지 맵핑 테이블에 저장하게 되는데 이는 객체들이 동기화를 제어하는 정보로 사용하게 된다. 프리젠테이션이 끝나면, 즉 객체의 모든 공유가 종료되었다는 정보도 메시지 맵핑 테이블에 저장하여 다른 노드의 사용자가 객체들을 사용하게 한다. 객체를 프리젠테이션하는 도중에 그 객체에 대한 프리젠테이션이 입력되게 되면 잠김 처리 모듈이 작동하게 되어 프리젠테이션을 지연하게 하므로써 객체의 무결성을 보장하게 된다. 해당 객체의 프리젠테이션이 종료하게 되면 분배기(4)는 그 메시지를 분산 객체 참조 모델인 코바에 의해서 모든 노드들에게 전달하게 되며 전달받은 노드들에서는 위의 과정을 거치게 된다. 즉, 클라이언트에서 그 객체에 대한 프리젠테이션은 클라이언트 엔진의 메시지 디스패춰(6), 해석기(7) 및 애플리케이션 공유 이벤트 처리기(8)를 거치면서 프리젠테이션하게 된다. 프리젠테이션이 종료하게 되면 서버로 종료 메시지를 전달하여 잠김 처리를 위한 정보로 사용하게 한다.Fig. 2 is a block diagram showing a collaborative distributed control engine according to the present invention, in which a node owning an application 5 to collaborate serves as a server. The message dispatcher (1) interprets the patched messages through the message dispatcher (1), which retrieves the messages delivered from the server and clients in the order in which they are stored, and shares user events (UE), system events (SE), and applications. There is an interpreter (2) that is classified as an event (ASE: Application Shuring Event), and when the interpreted message is delivered to a user event processor (UEP) 3, the user event processor 3 according to the type of the message The window manager defines the ID (IDentifier) structure of the running windows of the node. Mapping information of the window ID currently being executed by the server with the window ID to be performed by the client in the message sent from the server. Is converted to the window handle of the node to be presented. This window handle is used to create a Windows command using the information in the message mapping table to create a window command to be sent to the User Event Action Module (UEA) and Windows. When generating a Windows command, information about the object to be presented is stored in the window message mapping table, which is used by the objects to control synchronization. At the end of the presentation, that is, all sharing of the object has been completed, the message mapping table is also stored so that users of other nodes can use the object. If the presentation of the object is input while presenting the object, the lock processing module is activated to delay the presentation, thereby ensuring the integrity of the object. When the presentation of the object is finished, the distributor 4 delivers the message to all nodes by COVA, which is a distributed object reference model, and the received nodes go through the above process. That is, the presentation of the object on the client is made through the client engine's message dispatcher 6, the interpreter 7 and the application sharing event handler 8. When the presentation ends, a termination message is sent to the server for use as information for the lock process.

도 3은 사용자 이벤트 처리기를 도시한 구성도로서 해석기로부터 전달된 이벤트를 해당 액션 모듈로 호출하기 위한 이벤트 분류기(51)와, 공유할 객체의 새로운 윈도우를 검사하여 그 정보를 등록하는 메시지 정보 관리기(53) 및 검색을 지원하는 메시지 맵퍼(54)로 구성된 사용자 이벤트 액션 모듈(52)과, 해당 윈도우의 IDentifier(ID)를 관리하는 윈도우 관리기(58)와, 윈도우 핸들 정보(애플리케이션명, 윈도우 ID)를 저장하는 윈도우 ID 테이블(59)과, 이벤트를 메시지로 변환하는 참조 정보(윈도우 ID, 이벤트, 메시지)를 저장하고 있으며 공유 객체에 대한 동기 제어 정보(사용자수)를 저장하고 있는 메시지 맵핑 테이블(60)과, 메시지 맵핑 테이블(60)을 참조하여 공유 객체에 대한 실질적인 동기를 처리하는 사용자 객체 동기 제어기(55)와, 윈도우 핸들, 메시지를 이용하여 윈도우 명령어를 생성하는 윈도우 명령어 생성기(56)와, 그리고 생성된 윈도우 명령어를 윈도우즈에게 전달하여 실질적인 공유 객체에 대한 동작을 하게 하는 프리젠테이터(57)로 구성되어 있다. 공유 객체에 동기화 처리는 메시지 맵핑 테이블(60)의 정보를 이용하여 모든 노드들의 작업이 종료된 후에 공유 객체에 대한 변환을 가할 수 있게 하였다.3 is a diagram illustrating a user event handler, an event classifier 51 for calling an event transmitted from an interpreter to a corresponding action module, and a message information manager for inspecting a new window of an object to be shared and registering its information ( 53) and a user event action module 52 composed of a message mapper 54 supporting search, a window manager 58 that manages the IDentifier (ID) of the corresponding window, and window handle information (application name and window ID). A message mapping table that stores reference information (window ID, event, message) for converting an event into a message, and stores synchronous control information (number of users) for a shared object. 60), the user object synchronization controller 55 which processes the actual synchronization with respect to the shared object with reference to the message mapping table 60, the window handle and the message. Use is configured to command the window generator 56 and, and the resulting window command to create a window command, passing to windows in the presence mutator 57 to make the operation for the real shared object. The synchronization process on the shared object uses the information in the message mapping table 60 to enable the transformation of the shared object after the work of all nodes is finished.

도 4는 도 3에 도시된 사용자 이벤트 처리기의 모듈을 근간으로 한 처리 흐름을 도시하는 플로우 차트도로서, S1 단계에서는 이벤트 해석기(2)로부터 이벤트를 전달받아 사용자 이벤트 종류를 분류한다. S2 단계에서는 분류된 이벤트가 새로운 공유 객체에 대한 윈도우인지를 조사하고, 새로운 공유 객체에 대한 윈도우이면 S3 단계의 윈도우 ID 테이블에 새로운 윈도우 ID를 등록하고 새로운 윈도우 ID를 할당받는다. 기존에 등록된 윈도우 ID라면 S4 단계에서 윈도우 해당 ID를 윈도우 ID 테이블에서 찾아온다. S5 단계에서는 할당 받은 윈도우 ID와 이벤트를 메시지 맵핑 테이블을 검색하여 메시지 맵핑 테이블에 없으면 S6 단계에서 이벤트를 메시지로 변환하여 메시지 맵핑 테이블에 저장하고 관련 사용자 수를 저장한다. 그리고, 윈도우 ID가 메시지 맵핑 테이블에 잇으면 S7 단계에서 이벤트에 해당하는 메시지를 찾아온 다음 S8 단계에서 윈도우 ID의 해당 메시지 사용자수를 1 감소한다. S9 단계에서는 공유 객체에 대한 동기화를 해결하기 위하여 사용자 수가 0인지를 조사한 후 사용자 수가 0이면 S10 단계에서 잠김을 해제하고 그 객체를 메지시 맵핑 테이블에서 삭제한다. 그리고, 사용자 수가 0이 아니면 S11 단계에서 해당 메시지에 대한 액션을 종료한다. S12단계에서는 윈도우 ID와 메시지를 이용하여 윈도우 명령어를 생성하고, S13단계에서는 생성된 윈도우 명령어를 윈도우즈에 전달함으로써 실질적인 객체에 대한 프리젠테이션을 하고 죵료하게 된다. 공유 객체에 대한 공동작업을 하는 각 노드들은 해당 객체의 프리젠테이션이 종료되고 나면 서버에게 종료 메시지를 전달하게 되고 서버는 해당 윈도우 ID와 메시지 정보를 사용하여 사용자수가 0이 될 때 까지 공유 객체에 대한 접근을 허용하지 않게 됨으로서 공유 객체 동기화 문제를 해결한다.FIG. 4 is a flow chart showing a processing flow based on the module of the user event processor shown in FIG. 3. In step S1, an event is received from the event interpreter 2 to classify a user event type. In step S2, it is checked whether the classified event is a window for a new shared object. If the window is for a new shared object, a new window ID is registered in the window ID table in step S3 and a new window ID is assigned. If the window ID is already registered, the window ID is found in the window ID table in step S4. In step S5, if the window ID and the event are allocated, the message mapping table is searched for, and if the message mapping table is not found, the event is converted into a message and stored in the message mapping table in step S6, and the number of related users is stored. If the window ID is in the message mapping table, the message corresponding to the event is retrieved in step S7, and the number of corresponding message users of the window ID is decreased by one in step S8. In step S9, to resolve the synchronization with respect to the shared object, it is checked whether the number of users is 0. If the number of users is 0, the lock is released in step S10 and the object is deleted from the message mapping table. If the number of users is not 0, the action on the message is terminated in step S11. In step S12, a window command is generated using a window ID and a message, and in step S13, the generated window command is transmitted to the windows to present and finish the actual object. Each node that collaborates on a shared object sends a termination message to the server after the presentation of the object is finished, and the server uses the corresponding window ID and message information until the number of users reaches zero. Disallowing access solves the shared object synchronization problem.

상술한 바와 같이 본 발명에 의하면 공동작업의 효율 극대화를 목적으로 분산환경에서의 네트워크 트래픽의 최소화와 실시간 처리를 위하여 노드 간의 처리 부하의 분산을 통하여 노드들의 처리 부담을 줄일 수 있는 완전 분산 제어 구조를 취하고 동시 다발적으로 발생하는 공유 객체에 대한 일관성 문제를 해결하기 위하여 프리젠테이션 시 공유 객체들 간의 동기화 제어 방법을 사용하므로써 공동 작업의 생산성을 향상시키는 효과와 기타 그룹웨어, CSCW(Computer Supported Cooperative Work) 등의 분야에 분산 객체 제어 엔진으로 활용될 수 있는 효과가 있다.As described above, the present invention provides a fully distributed control structure that can reduce the processing load of nodes by distributing the processing load between nodes for minimizing network traffic and real-time processing in order to maximize the efficiency of collaboration. To improve the productivity of collaboration by using the synchronization control method between shared objects in presentations to solve the coherency problem of shared objects that occur simultaneously and simultaneously. There is an effect that can be used as a distributed object control engine in the field of.

Claims (2)

사용자 이벤트 제어장치에 있어서,In the user event control device, 해석기로부터 전달된 이벤트를 해당 액션 모듈로 호출하기 위한 이벤트 분류기와,An event classifier for calling the event delivered from the parser to the corresponding action module, 공유 할 객체의 새로운 윈도우를 검사하여 그 정보를 등록하는 메시지 정보관리기 및 검색을 지원하는 메시지 맵퍼로 구성된 사용자 이벤트 액션 모듈과,A user event action module comprising a message information manager that inspects a new window of an object to be shared and registers the information, and a message mapper that supports retrieval; 해당 윈도우의 ID를 관리하는 윈도우 관리기와,A window manager that manages the ID of the window; 윈도우 핸들 정보를 저장하는 윈도우 ID 테이블과,A window ID table for storing window handle information; 이벤트를 메시지로 변환하는 참조 정보를 저장하고 있으며 공유 객체에 대한 동기 제어 정보를 저장하고 있는 메시지 맵핑 테이블과,A message mapping table that stores reference information for converting events into messages and stores synchronous control information for shared objects; 상기 메시지 맵핑 테이블을 참조하여 공유 객체에 대한 실질적인 동기를 처리하는 사용자 객체 동기 제어기와,A user object synchronization controller which processes the actual synchronization with respect to the shared object by referring to the message mapping table; 상기 윈도우 핸들, 메시지를 이용하여 윈도우 명령어를 생성하는 윈도우 명령어 생성기와,A window command generator for generating a window command using the window handle and a message; 상기 생성된 윈도우 명령어를 윈도우즈에게 전달하여 실질적인 공유 객체에 대한 동작을 하게 하는 프리젠테이터로 이루어지는 것을 특징으로 하는 사용자 이벤트 제어장치.And a presenter which transmits the generated window command to the windows to operate on a substantially shared object. 사용자 이벤트 제어방법에 있어서,In the user event control method, 이벤트 해석기로부터 이벤트를 전달받아 사용자 이벤트 종류를 분류하는 단계와,Classifying a user event type by receiving an event from an event interpreter; 상기 단계로부터 상기 분류된 이벤트가 새로운 공유 객체에 대한 윈도우인지를 조사하고 새로운 공유 객체에 대한 윈도우이면 윈도우 ID 테이블에 새로운 윈도우 ID를 등록하며 새로운 윈도우 ID를 할당 받고, 기존에 등록된 윈도우 ID라면 윈도우 해당 ID를 윈도우 ID 테이블에서 찾아오는 단계와,From the step, it is examined whether the classified event is a window for a new shared object, and if a window is for a new shared object, a new window ID is registered in the window ID table and a new window ID is assigned. Retrieving the ID from the window ID table; 상기 단계로부터 상기 할당 받은 윈도우 ID와 이벤트를 메시지 맵핑 테이블을 검색하여 메시지 맵핑 테이블에 없으면 이벤트를 메시지로 변환하여 메시지 맵핑 테이블에 저장하고 관련 사용자 수를 저장하고, 윈도우 ID가 메시지 맵핑 테이블에 있으면 이벤트에 해당하는 메시지를 찾아온 다음 윈도우 ID의 해당 메시지 사용자수를 1 감소하는 단계와,If the window ID and the event obtained from the step are not found in the message mapping table by searching the message mapping table, the event is converted into a message and stored in the message mapping table, and the number of related users is stored. Retrieving the message corresponding to and decreasing the number of message users of the window ID by 1; 상기 단계로부터 공유 객체에 대한 동기화를 해결하기 위하여 사용자 수가 0인지를 조사한 후 사용자 수가 0이면 잠김을 해제하고 그 객체를 메시지 맵핑 테이블에서 삭제하고, 사용자 수가 0이 아니면 해당 메시지에 대한 액션을 종료하는 단계와,In order to solve the synchronization for the shared object from the above step, it is checked whether the number of users is 0, and if the number of users is 0, the lock is released, and the object is deleted from the message mapping table, and if the number of users is not 0, the action on the message is terminated. Steps, 상기 단계로부터 윈도우 ID와 메시지를 이용하여 윈도우 명령어를 생성하는 단계와,Generating a window command using the window ID and the message from the step; 상기 단계로부터 상기 생성된 윈도우 명령어를 윈도우즈에게 전달함으로써 실질적인 객체에 대한 프리젠테이션을 하는 단계로 이루어지는 것을 특징으로 하는 사용자 이벤트 제어방법.And presenting the actual object by transmitting the generated window command to the window from the step.
KR1019960063179A 1996-12-09 1996-12-09 Method and apparatus of user event control KR100233825B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960063179A KR100233825B1 (en) 1996-12-09 1996-12-09 Method and apparatus of user event control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960063179A KR100233825B1 (en) 1996-12-09 1996-12-09 Method and apparatus of user event control

Publications (2)

Publication Number Publication Date
KR19980045022A true KR19980045022A (en) 1998-09-15
KR100233825B1 KR100233825B1 (en) 1999-12-01

Family

ID=19486643

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960063179A KR100233825B1 (en) 1996-12-09 1996-12-09 Method and apparatus of user event control

Country Status (1)

Country Link
KR (1) KR100233825B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100513509B1 (en) * 2002-09-30 2005-09-07 현대자동차주식회사 Hmi message notify apparatus of total display device in vehicle and method thereof
KR101229264B1 (en) * 2011-03-04 2013-02-04 삼성탈레스 주식회사 Common meessage distributor and method for transmitting window message thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100513509B1 (en) * 2002-09-30 2005-09-07 현대자동차주식회사 Hmi message notify apparatus of total display device in vehicle and method thereof
KR101229264B1 (en) * 2011-03-04 2013-02-04 삼성탈레스 주식회사 Common meessage distributor and method for transmitting window message thereof

Also Published As

Publication number Publication date
KR100233825B1 (en) 1999-12-01

Similar Documents

Publication Publication Date Title
US10326807B2 (en) Method and software for enabling n-way collaborative work over a network of computers
JP3161725B2 (en) Workstations and collaborative information processing systems
US5293619A (en) Method and apparatus for collaborative use of application program
JP3753207B2 (en) Collaborative work support system and collaborative work support method
US6697840B1 (en) Presence awareness in collaborative systems
CA2637718A1 (en) Subsystem-scoping architecture for breakout rooms in a virtual space
CN101576978A (en) Formulating method, implementing method and implementing system of distribution type workflow
Bergenti et al. A collaborative platform for fixed and mobile networks
US6598073B2 (en) Processing common work using flexible command strings
Sarin et al. Software for interactive on-line conferences
KR100240657B1 (en) Application shared event control apparatus and method thereof
JP3931941B2 (en) Work process management apparatus and work process management method
Anumba et al. Telepresence in concurrent lifecycle design and construction
KR19980045022A (en) User event control device and control method using the same
JPH0934843A (en) Processing system and processor
Ensor How can we make groupware practical?(panel)
JP2005084969A (en) Conference support system and method and computer program
KR20000025069A (en) Gui controller for shared application at disperse environment and method for sending and receiving shared information using thereof
Bates A framework to support large-scale active applications
Hussein Communication facilitators for a distributed collaborative engineering environment
Cheverst Development of a group service to support collaborative mobile groupware
JP3371436B2 (en) Screen display control method
Osais et al. A multilayer peer-to-peer framework for distributed synchronous collaboration
JPH06119298A (en) Method and device for processing common information
Xue The research on data synchronization of distributed real-time mobile network

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee