KR100237182B1 - 응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법 - Google Patents

응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법 Download PDF

Info

Publication number
KR100237182B1
KR100237182B1 KR1019970017617A KR19970017617A KR100237182B1 KR 100237182 B1 KR100237182 B1 KR 100237182B1 KR 1019970017617 A KR1019970017617 A KR 1019970017617A KR 19970017617 A KR19970017617 A KR 19970017617A KR 100237182 B1 KR100237182 B1 KR 100237182B1
Authority
KR
South Korea
Prior art keywords
application
event
central processing
processing unit
view data
Prior art date
Application number
KR1019970017617A
Other languages
English (en)
Other versions
KR19980082610A (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 정선종
Priority to KR1019970017617A priority Critical patent/KR100237182B1/ko
Publication of KR19980082610A publication Critical patent/KR19980082610A/ko
Application granted granted Critical
Publication of KR100237182B1 publication Critical patent/KR100237182B1/ko

Links

Images

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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 분산 환경에서 상호 협동하는 멀티미디어 플랫폼간에 직접적인 프로그램의 복사 과정이 없이도 복수 개의 비공유형 응용 프로그램을 네트워크를 통하여 다수의 사용자간에 공유 사용할 수 있게 하여 주는 응용 프로그램 공유 서버 및 응용 프로그램 공유 방법에 관한 것으로, 동시에 다수의 비공유형 응용 프로그램 공유를 무리 없이 수행하기 힘든 종래의 비공유형 응용 프로그램 공유 기술에 대한 제반 문제점들을 해결하여 복수의 윈도우 응용 프로그램들을 상호 참여형 응용 프로그램들로 전환시켜서 한 번에 여러 응용 프로그램들을 사용하여 공동 작업이 가능하도록 하는 응용 프로그램 공유 시스템이 제공되며, 상기의 기술적 과제를 해결하는 기능 구현을 위해 별도의 응용 프로그램 공유 서버를 시스템 내에 운영하여 시스템 운영체제의 훅 제어, 경로 재배정, 재분배 처리 하므로써 원격지의 사용자들과 응용 프로그램을 운영하는 측과의 사이를 협동 환경으로 구성할 수 있도록 한 응용 프로그램 공유 방법이 제시된다.

Description

응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법
본 발명은 응용 프로그램 공유 시스템 및 응용 프로그램 공유 방법에 관한 것으로, 특히 복수의 비공유형 윈도우 응용 프로그램들을 상호 참여형 응용 프로그램으로 전환시키는 응용 프로그램 공유 시스템에 관한 것이다.
종래 컴퓨터에서의 응용프로그램들은 기본적으로 데스크탑 형태의 사용을 전제로 단일 사용용으로 작성되었다. 또한 통신망을 통한 네트워크형의 응용 및 분산 환경을 통한 다중 사용자형의 소프트웨어라 할지라도 개개의 소프트웨어는 한번에 하나의 사용자를 서비스하도록 구성되었다. 그러나 네트워크의 용량과 속도가 증가하고 컴퓨터를 이용한 공동 작업의 개념인 컴퓨터 지원 협동 작업(Computer Supported Cooperated Work ;CSCW) 기술의 발전에 힘입은 그룹웨어 분야의 소프트웨어 구현은 여러 사용자가 통신망을 통해서 공동 작업을 하는 방식의 소프트웨어 사용을 증대시키게 되었다.
이러한 공유형 및 협동형 작업을 가능케 하는 그룹웨어의 구성 방식은 해당 응용프로그램이 공유를 위해 새로이 제작된 것인가, 아니면 기존의 비공유형 응용 프로그램을 활용하여 구현하는 것인가에 따라 비공유용 응용 공유형(Collaboration Transparent Type)과 공유용 응용형(Collaboration Awareness Type)의 두 가지 방식으로 구분되어진다.
먼저, 비공유용 응용 공유형은 기존의 비공유형 응용을 그대로 활용하는 방식으로 이를 원격지의 다자간에 공유할 수 있도록 하는 운영체제, 윈도우 시스템 및 툴킷 등의 시스템 보조 기능을 개발하여 적용함으로서 공유 협동 작업을 가능케 하는 방식이다.
또한 공유용 응용형은 공유 기능을 자체 내에 보유하고 있는 새로운 공유 협동형 응용 프로그램을 개발하는 방식이다.
기본적으로 공유 응용은 공유용 응용형 방식과 같이 새로이 만들어지는 것으로 생각되는 경향이 있으나, 공동 작업을 지원하도록 구성된 응용 프로그램의 경우에는 해당 응용이 반드시 모든 사용자의 컴퓨터에 있어야만 서로 공동 작업을 할 수 있다는 문제점이 있다.
따라서 공동 작업형의 사용을 고려하지 않고 만들어진 대부분의 기존의 응용 프로그램들을 통신망을 통하여 공유하는 것은 매우 중요하다. 이것은 비공유용 응용 공유형과 같이 다양한 방법으로 구현 가능하지만 이러한 공유 윈도우 시스템이나 공유 툴킷 등 기존의 응용 프로그램 공유 시스템들은 그 지원 범위가 좁아서 한번에 하나의 응용 프로그램만 공동 작업에서 사용할 수 있다는 기능상의 문제점을 가지고 있다.
따라서, 본 발명은 동시에 다수의 비공유형 응용 프로그램 공유를 무리 없이 병행하여 공유 수행하기 어려운 종래 기술에 대한 제반 문제점들을 해결하기 위하여, 별도의 응용 프로그램 공유 서버를 시스템 내에 운영하여 시스템 운영체제의 훅(hook)을 제어하므로써 원격지 컴퓨터에서 응용 프로그램을 가지지 않고서도 원격지의 응용 프로그램을 공동 이용할 수 있도록 하고, 동시에 복수의 윈도우 응용 프로그램들을 상호 참여형 응용 프로그램들로 전환시켜서 한 번에 여러 응용 프로그램들을 사용하여 공동 작업이 가능하도록 하는 응용 프로그램 공유 시스템 및 응용 프로그램 공유 방법을 제공하는데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명에 따른 응용 프로그램 공유 시스템은 응용 프로그램과 운영체제를 저장하고 이벤트 정보, 뷰 정보 및 응용 프로그램 공유를 위한 데이터를 저장하는 주 기억 장치와, 각종 주변장치를 통합하여 운영하는 운영체제를 상기 주 기억 장치로부터 로딩하여 수행시키는 중앙 처리부와, 상기 주 기억 장치와 중앙 처리부에 연결되어 응용 프로그램 공유에 대한 지원을 하는 응용 프로그램 공유 서버와, 상기 중앙 처리부에 연결되어 사용자의 명령을 전달하는 입력 장치와, 상기 중앙 처리부에 연결되어 사용자의 명령에 대한 결과를 사용자에게 알려주는 출력 장치와, 상기 중앙 처리부에 연결되어 통신망을 통하여 적어도 하나 이상의 타 응용 프로그램 공유 장치와 통신을 하기 위한 네트워크 카드로 이루어 지는 것을 특징으로 한다.
또한 상술한 목적을 달성하기 위한 본 발명에 따른 응용 프로그램 공유 방법은 윈도우즈 운영체제 내에 메시지를 가로채기 위한 훅을 설정하는 단계와, 상기 훅 설정 후 윈도우 핸들을 획득하기 위하여 공유할 응용 프로그램을 선택하는 단계와, 상기 응용 프로그램 선택 후 메시지 가로채기 및 메시지 재생을 수행하기 위해 이벤트 필터를 설정하는 단계와, 상기 이벤트 필터 설정 후 초기자인지 참여자인지를 판단하는 단계와, 상기 초기자인지 참여자인지의 판단 결과 응용 프로그램을 실제 가지고 있는 초기자인 경우에는 통신망에 연결된 타 응용 프로그램 공유 장치에서 보내는 이벤트를 수신하는 단계와, 상기 수신한 이벤트를 공유하는 응용 프로그램별 구별자에 따라 자신이 가진 응용 프로그램으로 보내서 처리하는 단계와, 상기 이벤트 처리 후 상기 공유할 응용 프로그램 선택시 얻은 윈도우 핸들을 통해서 처리 결과인 뷰 데이터를 켑쳐하는 단계와, 상기 뷰 데이터 캡쳐 후 통신망 대역폭의 효율적 사용을 위해 뷰 데이터를 압축하는 단계와, 상기 압축한 뷰 데이터를 공유하는 응용 프로그램별 구별자를 첨부하여 다른 응용 프로그램 공유 장치로 전송하는 단계와, 상기 뷰 데이터 전송 후 종료 여부를 판단하는 단계와, 상기 종료 여부 판단 결과 종료하지 않는 경우는 다시 초기자인지 참여자인지를 판단하는 과정부터 반복 수행하는 단계와, 상기 초기자인지 참여자인지의 판단 결과 통신망에 연결되어 있는 초기자의 응용 프로그램을 통해서 공동 작업을 하고자 하는 참여자의 경우에는 초기자 측에서 보내온 뷰 데이터를 수신하는 단계와, 상기 수신한 뷰 데이터를 공유하는 응용 프로그램별 구별자에 따라서 화면에 출력하는 단계와, 상기 뷰 데이터 출력 후 사용자가 발생한 이벤트를 캡쳐하는 단계와, 상기 캡쳐한 이벤트를 공유하는 응용 프로그램별 구별자를 첨부하여 초기자 측의 응용 프로그램 공유 장치로 전송하는 단계와, 상기 이벤트 전송 후 종료 여부를 판단하는 단계와, 상기 종료 여부 판단 결과 종료하지 않는 경우는 다시 초기자인지 참여자인지를 판단하는 과정부터 반복 수행하는 단계로 이루어지는 것을 특징으로 한다.
도 1은 본 발명에 따른 응용 프로그램 공유 시스템의 개괄적인 구조도.
도 2는 본 발명에 따른 응용 프로그램 공유 장치 내의 응용 프로그램 공유 서버의 구조도.
도 3은 본 발명에 따른 응용 프로그램 공유 서버 내의 훅 제어기의 구조도.
도 4는 본 발명에 따른 응용 프로그램 공유 서버의 동작 과정을 도시한 흐름도.
*도면의 주요 부분에 대한 부호 설명*
1 : 주 기억 장치 2 : 응용프로그램 공유 서버
3 : 중앙 처리부 4 : 입력 장치
5 :출력 장치 6 : 네트워크 카드
7 및 9 : 응용 프로그램 공유 장치
8 : 통신망 10 : 훅 제어기
11 : 이벤트 분배기 12 : 뷰 분배기
21 : 훅 설정부 22 : 이벤트 필터부
23 : 이벤트 레코드부 24 : 이벤트 플레이부
이하, 첨부된 도면은 참조하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명에 따른 응용 프로그램 공유 시스템의 개괄적인 구성도이다.
본 발명에 따른 응용 프로그램 공유 시스템은 입력 장치(4), 출력 장치(5), 네트워크 카드(6) 등의 주변장치와 주 기억 장치(1) 등을 통합하여 운영하는 운영체제를 주 기억 장치(1)로부터 로딩하여 수행시키는 중앙 처리부(3), 상기 중앙 처리부(3)에 연결되어 응용 프로그램과 운영체제를 저장하고 이벤트 정보, 뷰 정보 및 응용 프로그램 공유를 위한 데이터를 저장하는 주 기억 장치(1), 상기 중앙 처리부(3)와 주 기억 장치(1)에 연결되어 응용 프로그램 공유에 대한 지원을 하는 응용 프로그램 공유 서버(2), 상기 중앙 처리부(3)에 사용자의 명령을 전달하는 입력장치(4), 상기 중앙 처리부(3)에 연결되어 사용자의 명령에 대한 결과를 사용자에게 알려 주는 출력 장치(5) 및 상기 중앙 처리부(3)에 연결되어 통신망(8)을 통하여 타 응용 프로그램 공유 장치(9)와 통신을 하기 위한 네트워크 카드(6)를 구비한다.
사용자 입력이 입력 장치(4)를 통해 중앙 처리부(3)로 입력되면 응용프로그램 공유 서버(2)는 중앙 처리부(3)로부터 전달되는 사용자의 이벤트를 가로챈다. 이후, 중앙 처리부(3)와 네트워크 카드(6)를 통해서 공유하는 응용 프로그램별 구별자를 붙여서 다른 사용자의 응용 프로그램 공유 장치(9)로 보내진다. 다른 사용자의 응용 프로그램 공유 장치(9)의 네트워크 카드(6')와 중앙 처리부(3')로 사용자의 이벤트가 전달되면, 응용 프로그램 공유 서버(2')로 전달되어 공유하는 응용 프로그램별 구별자에 따라서 원하는 응용 프로그램에서 처리된다. 이후, 처리 과정에서 주 기억장치(1')에 일시 저장되어 있는 뷰 데이터 즉, 사용자에게 출력될 화상 데이터는 공유하는 응용 프로그램별 구별자를 붙여서 중앙 처리부(3')와 네트워크 카드(6')를 통해 다시 원래 사용자의 응용 프로그램 공유 장치(7)로 전달된다. 이때의 전송방법은 네트워크 전송방법인 사용자 데이터그램 프로토콜(User Datagram Protocol ;UDP)을 사용한다. 원래의 응용 프로그램 공유 장치(7)의 응용 프로그램 공유 서버(2)는 네트워크 카드(6)와 중앙 처리부(3)를 통하여 뷰 데이터를 전달받아 공유하는 응용 프로그램별 구별자에 따라서 중앙 처리부(3)와 출력 장치(5)를 통해서 사용자에게 출력된다. 이와 같이 사용자가 입력장치(4)를 통해서 응용 프로그램 공유 장치(7)에 이벤트를 발생시키면, 이것은 응용 프로그램 공유 서버(2)를 통해서 공유하는 응용 프로그램별 구별자를 붙여서 원격지의 다른 사용자에게 전달된다. 이후, 이를 공유하는 응용 프로그램별 구별자에 따라서 실제 응용 프로그램으로 전달하며, 이 결과를 공유하는 응용 프로그램별 구별자를 붙여서 다시 응용 프로그램 공유 서버를 통해서 원래의 사용자 측의 응용 프로그램 공유 서버(2)로 보내 준다. 이렇게 하므로써 사용자가 마치 자신의 응용 프로그램을 사용하고 있는 것처럼 느끼게 할 수 있다.
도 2는 본 발명에 따른 응용 프로그램 공유 장치 내의 응용 프로그램 공유 서버의 구성도이다. 응용 프로그램 공유 서버(2)가 입력장치(4)와 중앙 처리부(3)를 통하여 입력받은 사용자의 이벤트를 훅 제어기(10)에서 가로채어 이벤트 분배기(11)로 보낸다. 사용자의 이벤트를 받은 이벤트 분배기(11)는 공유하는 응용 프로그램별 구별자를 붙여서 중앙 처리부(3)와 네트워크 카드(6) 및 통신망(8)을 통하여 다른 응용 프로그램 공유 장치(9)로 이벤트를 전달한다. 다른 응용 프로그램 공유 장치(9)의 이벤트 분배기는 통신망(8')과 네트워크 카드(6') 및 중앙 처리부(3')를 통하여 사용자 이벤트를 전달받으며, 공유하는 응용 프로그램별 구별자에 따라서 그 곳의 훅 제어기와 중앙 처리부(3')를 거쳐서 원하는 응용 프로그램의 입력으로 전달한다. 응용 프로그램에서 처리를 한 뒤의 뷰 데이터는 중앙 처리부(3')를 통하여 훅 제어기에 의해서 획득되어지고 공유하는 응용 프로그램별 구별자를 붙여서 다시 중앙 처리부(3')와 네트워크 카드(6')를 통하여 원래의 사용자 측의 응용 프로그램 공유 장치(7)로 전달된다. 원래의 응용 프로그램 공유 장치(7)의 뷰 분배기(12)는 통신망(8)과 네트워크 카드(6) 및 중앙 처리부(3)를 통하여 뷰 데이터를 전달받는다. 이후, 뷰 데이터는 공유하는 응용 프로그램별 구별자에 따라서 중앙 처리부(3)와 출력장치(5)를 통하여 사용자에게 출력된다.
여기에서 훅 제어기(10)는 중앙 처리부(3)의 메시지 처리 통로 상에 훅을 설정해서 중앙 처리부(3)로 전달되는 사용자의 이벤트를 모두 가로채어 일정한 처리를 수행한 후에 다시 전송하거나, 다른 응용 프로그램 공유 장치(9)의 이벤트 분배기(11')로부터 전달되는 이벤트를 중앙 처리부(3)를 통해서 공유하는 응용 프로그램별 구별자에 따라 응용 프로그램으로 전달하여 처리한 후 뷰 데이터를 획득한다. 이벤트 분배기(11)는 통신망(8)에 연결된 다른 사용자의 응용 프로그램 공유 장치(9)상의 이벤트 분배기(11')로부터 전달받은 이벤트를 공유하는 응용 프로그램별 구별자에 따라서 다시 자신의 훅 제어기(10)로 보내거나 훅 제어기(10)로부터 받은 자신의 이벤트를 공유하는 응용 프로그램별 구별자를 붙여서 통신망(8)에 연결된 다른 사용자의 응용 프로그램 공유 장치(9)상의 이벤트 분배기(11')로 보내서 상대방의 훅 제어기(10')가 공유하는 응용 프로그램별 구별자에 따라서 처리할 수 있도록 한다. 이렇게 함으로써 이벤트 분배기(11)는 훅 제어기(10)로부터 캡쳐(capture)된 즉, 데이터를 복사하듯이 획득된 이벤트를 공유하는 응용 프로그램별 구별자를 붙여서 통신망(8)에 연결된 다른 사용자의 응용 프로그램 공유 장치(9)로 분배한다. 뷰 분배기(12)는 응용 프로그램이 화면에 출력한 결과, 즉 화면에 나타나는 모습을 캡쳐해서 공유하는 응용 프로그램별 구별자를 붙인다. 이후 이를 통신망(8)에 연결된 다른 사용자의 응용 프로그램 공유 장치(9)상의 뷰 분배기(12')로 전송하거나, 통신망(8)에 연결된 다른 사용자의 응용 프로그램 공유 장치(9)상의 뷰 분배기(12')가 전송한 뷰 데이터를 공유하는 응용 프로그램별 구별자에 따라서 사용자에게 출력함으로써 통신망(8)에 연결된 응용 프로그램 공유 장치들(7 및 9) 사이에 뷰 데이터를 분배 또는 공유한다. 이렇게 해서 사용자는 원격지의 응용 프로그램을 마치 자신의 응용 프로그램인 것처럼 사용할 수 있게 된다.
도 3은 본 발명에 따른 응용 프로그램 공유 서버 내의 훅 제어기의 구성도이다. 훅 설정부(21)는 중앙 처리부(3)에 훅을 설정한다. 즉, 이벤트 필터부(22)와 중앙 처리부(3) 사이에 데이터 통로를 설정하여 중앙 처리부(3) 상에서의 메시지, 특히 사용자가 발생시킨 마우스나 키보드 메시지를 이벤트 필터부(22)에서 가로채기할 수 있도록 서로 연결시킨다.
여기에서 이벤트 필터부(22)는 중앙 처리부(3)를 통과하는 모든 메시지 통로를 중간에서 가로채어서 이벤트 레코드부(23)가 기능을 수행할 수 있도록 한다. 이벤트 레코드부(23)에서는 이벤트 필터부(22)를 통과하는 메시지 중에서 마우스나 키보드 등의 사용자가 발생시킨 메시지들을 분류해서 이를 이벤트 분배기(12)로 보내며, 이를 통신망(8)에 연결된 다른 프로그램 공유 장치(9)의 이벤트 분배기가 받아서 이벤트 플레이부(24)로 전달하여 이벤트 필터부(22)를 통해 중앙 처리부(3)상의 메시지 통로로 보낸다. 이렇게 함으로써 훅 설정부(21), 이벤트 필터부(22), 이벤트 레코드부(23) 및 이벤트 플레이부(24)를 포함하는 훅 제어기(11)에서는 이벤트를 수집하고 재생하는데 필요한 기능을 제공한다.
도 4는 본 발명에 따른 응용 프로그램 공유 서버의 동작 과정을 도시한 흐름도이다. 먼저, 메시지 가로채기를 위한 훅을 윈도우즈 운영체제 내에 설정 한 후(31) 공유할 응용 프로그램을 선택한다. 이 때 응용 프로그램의 선택은 사용자가 공유할 응용 프로그램의 제목 표시 부분인 캡션 바(Caption Bar)를 선택하므로써 이루어 진다. 이렇게 얻어진 마우스의 위치 정보를 통해서 공유할 응용 프로그램의 윈도우 핸들을 얻어낸다. 이 윈도우 핸들은 후에 뷰 데이터를 획득하는 데 사용된다(32). 이후, 이벤트를 가로채기 위한 이벤트 필터 설정 과정에서는 중앙 처리부(3)의 운영체제 상에 메시지 가로채기를 위한 이벤트 필터를 설정해서 메시지 가로채기 및 메시지 재생을 수행하도록 준비(33)한다. 이후 초기자인지 참여자인지를 판단하여 그 결과에 따라 두 가지로 수행 과정이 나누어진다(34). 판단 결과 응용 프로그램을 실제 가지고 있는 초기자인 경우에는, 즉 응용 프로그램을 가지고 있는 응용 프로그램 공유 장치(7)인 경우에는 먼저 통신망(8)에 연결된 다른 응용 프로그램 공유 장치(9)에서 보내는 이벤트를 수신하여(35) 이를 공유하는 응용 프로그램별 구별자에 따라서 자신이 가진 응용 프로그램으로 보내서 처리하도록 하며(36), 위에서 얻은 윈도우 핸들을 통해서 응용 프로그램이 처리한 결과인 뷰 데이터를 캡쳐한다(37). 이후, 통신망(8)의 대역폭을 효율적으로 사용하기 위해서 뷰 데이터를 압축하여(38) 이를 공유하는 응용 프로그램별 구별자를 붙여서 다른 응용 프로그램 공유 장치(9)로 전송한다(39). 판단 결과 응용 프로그램을 가지고 있지 않고 통신망(8)에 연결되어 있는 초기자의 응용 프로그램을 통해서 공동작업을 하고자 하는 참여자인 경우에는, 초기자 측에서 보내온 뷰 데이터를 수신하여(40) 이를 공유하는 응용 프로그램별 구별자에 따라서 사용자가 볼 수 있도록 화면에 출력한다(41). 그리고 사용자가 발생한 이벤트를 캡쳐하여(42) 이를 공유하는 응용 프로그램별 구별자를 붙여서 초기자 측의 응용 프로그램 공유 장치(7)로 전송한다(43). 상기 뷰 데이터나 이벤트를 전송하는 과정을 수행한 후에 종료할 것인지를 판단하여(44) 종료가 아니면 상기 초기자인지 참여자인지를 판단하는 과정(34)부터 반복 수행한다.
상술한 바와 같이 본 발명에 의하면, 훅 제어기를 사용한 응용 프로그램 공유 서버에 의해서 일반 윈도우 응용 프로그램을 단일 사용자 환경 이외에 공동 작업이 가능한 상호 참여형 응용 프로그램으로 전환될 수 있고, 이벤트 분배기와 뷰 분배기에 의해서 한 곳에만 응용이 존재하더라도 모든 참여자가 그 응용을 통해서 공동 작업을 수행할 수 있도록 해줌으로써 고가의 응용 프로그램을 보다 효율적이고 경제적으로 이용할 수 있으며, 또한 동시에 하나 이상의 응용 프로그램들을 공유할 수 있도록 해줌으로써 공동 작업시 작업성을 높일 수 있는 탁월한 효과가 있다.

Claims (4)

  1. 응용 프로그램과 운영체제를 저장하고 이벤트 정보, 뷰 정보 및 응용 프로그램 공유를 위한 데이터를 저장하는 주 기억 장치와,
    각종 주변장치를 통합하여 운영하는 운영체제를 상기 주 기억 장치로부터 로딩하여 수행시키는 중앙 처리부와,
    상기 주 기억 장치와 중앙 처리부에 연결되어 응용 프로그램 공유에 대한 지원을 하는 응용 프로그램 공유 서버와,
    상기 중앙 처리부에 연결되어 사용자의 명령을 전달하는 입력 장치와,
    상기 중앙 처리부에 연결되어 사용자의 명령에 대한 결과를 사용자에게 알려주는 출력 장치와,
    상기 중앙 처리부에 연결되어 통신망을 통하여 적어도 하나 이상의 타 응용 프로그램 공유 장치와 통신을 하기 위한 네트워크 카드로 구성된 것을 특징으로 하는 응용 프로그램 공유 시스템의 구조.
  2. 제 1 항에 있어서, 상기 응용 프로그램 공유 서버는 상기 중앙 처리부의 메시지 통로 상에 훅을 설정하여 상기 중앙 처리부로 전달되는 이벤트를 모두 가로채거나, 타 응용 프로그램 공유 장치의 이벤트 분배기로부터 전달되는 이벤트를 상기 중앙 처리부를 통해 응용 프로그램으로 전달하여 처리한 후 뷰 데이터를 획득하는 훅 제어기와,
    상기 통신망에 연결된 타 응용 프로그램 공유 장치의 이벤트 분배기로부터 전달받은 이벤트를 상기 훅 제어기로 보내거나, 상기 훅 제어기로부터 전달받은 이벤트를 공유하는 응용 프로그램별 구별자를 붙여서 상기 통신망에 연결된 타 응용 프로그램 공유 장치의 이벤트 분배기로 전달하는 이벤트 분배기와,
    뷰 데이터를 캡쳐하여 공유하는 응용 프로그램별 구별자를 붙여서 상기 통신망에 연결된 타 응용 프로그램 공유 장치의 뷰 분배기로 전송하거나, 상기 통신망에 연결된 타 응용 프로그램 공유 장치의 뷰 분배기가 전송한 뷰 데이터를 공유하는 응용 프로그램별 구별자에 따라서 사용자에게 출력하는 뷰 분배기로 구성된 것을 특징으로 하는 응용 프로그램 공유 시스템의 구조.
  3. 제 2 항에 있어서, 상기 훅 제어기는 상기 중앙 처리부를 통과하는 모든 메시지 통로를 중간에서 가로채는 이벤트 필터부와,
    상기 중앙 처리부에 훅을 설정하여 상기 이벤트 필터부와 상기 중앙 처리부 사이에 데이터 통로를 형성하므로써 상기 중앙 처리부 상에서의 메시지를 이벤트 필터부에서 가로채기 할 수 있도록 서로 연결시키는 훅 설정부와,
    상기 이벤트 필터부를 통과하는 메시지 중에서 마우스나 키보드 등을 이용하여 사용자가 발생시킨 메시지들을 분류하여 저장한 후에 상기 이벤트 분배기로 전송하는 이벤트 레코드부와,
    상기 이벤트 분배기를 통하여 타 응용 프로그램 공유 장치의 이벤트를 받아서 상기 이벤트 필터부를 통해서 상기 중앙 처리부 상의 메시지 통로로 전송하는 이벤트 플레이부로 구성된 것을 특징으로 하는 응용 프로그램 공유 시스템의 구조.
  4. 윈도우즈 운영체제 내에 메시지를 가로채기 위한 훅을 설정하는 단계와,
    상기 훅 설정 후 윈도우 핸들을 획득하기 위하여 공유할 응용 프로그램을 선택하는 단계와,
    상기 응용 프로그램 선택 후 메시지 가로채기 및 메시지 재생을 수행하기 위해 이벤트 필터를 설정하는 단계와,
    상기 이벤트 필터 설정 후 초기자인지 참여자인지를 판단하는 단계와,
    상기 초기자인지 참여자인지의 판단 결과 응용 프로그램을 실제 가지고 있는 초기자인 경우에는 통신망에 연결된 타 응용 프로그램 공유 장치에서 보내는 이벤트를 수신하는 단계와,
    상기 수신한 이벤트를 공유하는 응용 프로그램별 구별자에 따라 자신이 가진 응용 프로그램으로 보내서 처리하는 단계와,
    상기 이벤트 처리 후 상기 공유할 응용 프로그램 선택시 얻은 윈도우 핸들을 통해서 처리 결과인 뷰 데이터를 켑쳐하는 단계와,
    상기 뷰 데이터 캡쳐 후 통신망 대역폭의 효율적 사용을 위해 뷰 데이터를 압축하는 단계와,
    상기 압축한 뷰 데이터를 공유하는 응용 프로그램별 구별자를 첨부하여 다른 응용 프로그램 공유 장치로 전송하는 단계와,
    상기 뷰 데이터 전송 후 종료 여부를 판단하는 단계와,
    상기 종료 여부 판단 결과 종료하지 않는 경우는 다시 초기자인지 참여자인지를 판단하는 과정부터 반복 수행하는 단계와,
    상기 초기자인지 참여자인지의 판단 결과 통신망에 연결되어 있는 초기자의 응용 프로그램을 통해서 공동 작업을 하고자 하는 참여자의 경우에는 초기자 측에서 보내온 뷰 데이터를 수신하는 단계와,
    상기 수신한 뷰 데이터를 공유하는 응용 프로그램별 구별자에 따라서 화면에 출력하는 단계와,
    상기 뷰 데이터 출력 후 사용자가 발생한 이벤트를 캡쳐하는 단계와,
    상기 캡쳐한 이벤트를 공유하는 응용 프로그램별 구별자를 첨부하여 초기자 측의 응용 프로그램 공유 장치로 전송하는 단계와,
    상기 이벤트 전송 후 종료 여부를 판단하는 단계와,
    상기 종료 여부 판단 결과 종료하지 않는 경우는 다시 초기자인지 참여자인지를 판단하는 과정부터 반복 수행하는 단계로 이루어지는 것을 특징으로 하는 응용 프로그램 공유 방법.
KR1019970017617A 1997-05-08 1997-05-08 응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법 KR100237182B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970017617A KR100237182B1 (ko) 1997-05-08 1997-05-08 응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970017617A KR100237182B1 (ko) 1997-05-08 1997-05-08 응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법

Publications (2)

Publication Number Publication Date
KR19980082610A KR19980082610A (ko) 1998-12-05
KR100237182B1 true KR100237182B1 (ko) 2000-01-15

Family

ID=19505146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970017617A KR100237182B1 (ko) 1997-05-08 1997-05-08 응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법

Country Status (1)

Country Link
KR (1) KR100237182B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100318566B1 (ko) * 1999-10-19 2001-12-28 서호석 화이트보드상에서 명령순서를 이용한 객체에 대한 잠금 장치 및 그 방법
KR100359310B1 (ko) * 2000-10-20 2002-10-31 아이원더넷 주식회사 프로그램간 자료공유 방법
KR20010079365A (ko) * 2001-07-09 2001-08-22 유영진 네트웍 컴퓨터의 프로그램 실시간 이벤트 공유 처리 방법및 시스템

Also Published As

Publication number Publication date
KR19980082610A (ko) 1998-12-05

Similar Documents

Publication Publication Date Title
JP3694167B2 (ja) パーソナル会議方法及びシステム
JP7058654B2 (ja) リソース共有方法、装置およびシステム
US7937452B2 (en) Framework for rendering plug-ins in remote access services
US20170171262A1 (en) Method and software for enabling n-way collaborative work over a network of computers
EP1376927B1 (en) Data projection system and method
JP2006101522A (ja) ビデオ会議システム、参加者による共同作業モデルのカスタマイズを可能にするビデオ会議システム、及びビデオ会議セッション向けのデータ・ストリームのミキシングを制御する方法
GB2289186A (en) Collaborative working method and system
Shirmohammadi et al. Applet-based telecollaboration: A network-centric approach
CN109032768A (zh) 应用会话的迁移方法、装置、终端、服务器及存储介质
JPH08116370A (ja) 双方向性マルティメディアシステム
US7237006B1 (en) Method for managing the simultaneous utilization of diverse real-time collaborative software applications
CN114598931A (zh) 一种多开云游戏的串流方法、系统、装置及介质
KR100237182B1 (ko) 응용 프로그램 공유 시스템의 구조 및 응용 프로그램 공유 방법
JPH10207797A (ja) 高速画面共有ネットワークシステム
KR100227151B1 (ko) 다중점 통신을 지원하는 응용프로그램 공유 방법
KR100215426B1 (ko) 윈도우 응용프로그램을 상호참여형 응용프로그램으로 전환시키는응용프로그램 공유 시스템 및 그 방법
CN109086123A (zh) 应用会话的迁移方法、装置、终端、服务器及存储介质
US20020054205A1 (en) Videoconferencing terminal
KR100307194B1 (ko) 상호 참여형 멀티미디어 응용 개발 시스템에서의 세션 관리 및 컴포넌트 관리장치와 그 방법
CN112395035B (zh) 一种基于3d大屏的动画播放方法、装置、设备及介质
Coulson et al. Group presentation of multimedia applications in IXION
US11012479B2 (en) Methods for capturing and broadcasting user computer sessions and related computer program products
CN114887326A (zh) 一种信息处理方法、设备及可读存储介质
KR100248264B1 (ko) 상호 참여형 멀티미디어 응용 개발 환경에서의 세션 관리 시스템 및 그 방법
Pozzer et al. CSVTool-A tool for video-based collaboration

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101001

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee