KR20020045883A - 브라우저 공유 시스템 및 그 방법 - Google Patents

브라우저 공유 시스템 및 그 방법 Download PDF

Info

Publication number
KR20020045883A
KR20020045883A KR1020000075300A KR20000075300A KR20020045883A KR 20020045883 A KR20020045883 A KR 20020045883A KR 1020000075300 A KR1020000075300 A KR 1020000075300A KR 20000075300 A KR20000075300 A KR 20000075300A KR 20020045883 A KR20020045883 A KR 20020045883A
Authority
KR
South Korea
Prior art keywords
module
server
client
browser
mouse
Prior art date
Application number
KR1020000075300A
Other languages
English (en)
Inventor
최우성
이준오
Original Assignee
최우성
주식회사 디온텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 최우성, 주식회사 디온텍 filed Critical 최우성
Priority to KR1020000075300A priority Critical patent/KR20020045883A/ko
Publication of KR20020045883A publication Critical patent/KR20020045883A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 통신망을 통해 인터넷 망과 접속되는 시스템에서 임의의 브라우저를 공유하기 위한 브라우저 공유 시스템 및 공유 방법에 관한 것으로, 전송매체를 통해 각 클라이언트 단말기들의 클라이언트 모듈이 소킷 모듈을 통해 메인 서버 단말기의 서버 모듈과 연결된 후에 서버 모듈에서 생성된 마우스 후킹 모듈에 의해 캡쳐링된 이벤트 정보를 전송받아 그에 연동하여 메인 서버 모듈에서 현재 표시되고 있는 브라우저를 선택 실행함으로서, 브라우저를 공유하는 효과를 얻을 수 있다.

Description

브라우저 공유 시스템 및 그 방법{BROWSER JOINT OWNERSHIP SYSTEM AND METHOD}
본 발명은 전송매체에 다수의 단말기들이 접속되어 하나의 네트워크를 구성하는 시스템에 관한 것으로, 특히 통신망을 통해 인터넷 망과 접속되는 시스템에서 임의의 브라우저를 공유하기 위한 브라우저 공유 시스템 및 공유 방법에 관한 것이다.
건물 내, 공장, 대학의 캠퍼스 내에 개별로 도입되고 있는 대형 컴퓨터, 미니컴퓨터, 개인용 컴퓨터, 워크스테이션 등을 서로 접속, 정보의 교환을 하여 상호 이용을 도모하는 것이 바로 근거리 통신망(Local Area Network:LAN이라고 함) 또는 구내 통신망이다. 이러한 근거리 통신망은 각 기기의 공용이나 부하의 분산, 신뢰성의 향상을 위한 수단을 제공한다.
일반적으로 LAN은 공중 전화망이나 공중 데이터 통신망과 같은 광역망(WAN)과 대비하여 구내 등 비교적 한정된 장소에 설치된 컴퓨터나 그 관련 기기를 고속 전송로로 접속한 구내 통신망 혹은 사설망이라고 해석되고 있으며, WAN 보다도 고속이고 값싼 통신을 기대할 수 있기 때문에 그 응용 서비스도 고도화되어 가고 있으며, 그 보급이 널리 확산되고 있는 추세이다.
그러나 일반적인 근거리 통신망은 각 기기의 공용, 데이터의 공유 혹은 부하의 분산 수단만을 제공할 뿐, 그룹내 연결된 단말기의 원격 제어 및 관리 등은 이루어지지 않고 있는 실정이다.
따라서 근거리 통신망이 구축된 기업이나 학교와 같은 교육기관에서 직원 및 피교육생들을 효율적으로 교육시키기 위해서는 그룹내 연결된 단말기들의 화면 정보를 공유할 필요성이 있다. 더욱이 정보의 바다라 불리우는 인터넷망과 접속하여특정 정보의 공유 내지는 특정 웹 사이트로의 이동 교육 전달을 목적으로 하는 경우에는 정보 공유 희망자들의 브라우저 공유 및 공유에 따른 의사전달이 필수적이라 할 것이다.
따라서 본 발명의 목적은 인터넷망과 접속되며 하나의 근거리 통신망을 구성하는 그룹내 단말기들이 어느 하나의 단말기 표시부에 표시된 정보를 추종할 수 있도록 하여 임의의 정보를 자동 공유할 수 있는 브라우저 공유 시스템 및 그 방법을 제공함에 있다.
본 발명의 또 다른 목적은 하나의 통신망 그룹을 형성하는 피교육자 그룹의 단말기들이 교육자 단말기의 표시화면을 자동 추종토록 하여 단말기 조작의 편의성을 제공함은 물론, 교육효율성을 증진시킬 수 있는 브라우저 공유 시스템 및 그 방법을 제공함에 있다.
본 발명의 또 다른 목적은 메인 단말기와 클라이언트 단말기들이 하나의 통신망을 형성하고 있는 네트워크상에서 메인 단말기의 제어만으로 동일 정보의 공유에 따른 원격회의가 가능한 브라우저 공유 시스템 및 그 방법을 제공함에 있다.
본 발명의 또 다른 목적은 상담원 1명과 고객 1명 또는 고객 여러명이 동시에 접속할 수 있는 일 대 다 플러그-인 방식으로서 화면 캡쳐에 의한 브라우저 공유 방식이 아닌 마우스 이벤트(event) 정보와 같이 최소한의 정보만을 전송하여 서버의 부하를 최소화할 수 있는 브라우저 공유 시스템 및 그 방법을 제공함에 있다.
도 1은 본 발명의 실시예에 따른 브라우저 공유 시스템 구성도.
도 2는 본 발명의 실시예에 따른 브라우저 공유 시스템 구성에서 하나의 서버 PC(100)와 클라이언트 PC(200a) 각각을 구성하는 프로그램 모듈 구성도.
도 3은 본 발명의 실시예에 따른 주요 소킷(socket) 클래스 함수들.
도 4는 도 2중 클라이언트 모듈의 동작 흐름도.
도 5는 도 2중 클라이언트 소킷(socket) 모듈의 동작 흐름도.
도 6은 도 2중 서버 모듈의 동작 흐름도.
도 7은 도 2중 마우스 후킹(hooking) 모듈의 동작 흐름도.
도 8은 도 2중 서버 소킷 모듈의 동작 흐름도.
도 9 및 도 10은 본 발명의 실시예에 따른 브라우저 공유 화면 표시 예시도.
상기 목적을 달성하기 위한 본 발명은 데이터 전송로인 전송매체와,
각각 상기 전송매체에 접속되고, 메인 서버 모듈과 데이터를 송수신하며 상기 메인 서버 모듈로부터 전송되는 사용자 키입력 이벤트 정보에 연동하여 상기 메인 서버측에 표시된 브라우저 정보를 공유하기 위한 클라이언트 모듈과, 상기 클라이언트 모듈과 메인 서버 모듈을 연결시켜 주기 위한 클라이언트 소킷 모듈을 적어도 포함하는 다수의 클라이언트 단말기들과,
상기 전송매체에 접속되어 임의의 클라이언트 단말기와 데이터를 송수신하기 위한 서버 모듈과, 상기 서버 모듈과 임의의 클라이언트 모듈을 연결시켜 주기 위한 서버 소킷 모듈과, 상기 서버 모듈에서 발생하는 사용자 키입력 이벤트 정보를 캡쳐링하기 위한 마우스 후킹 모듈을 적어도 포함하는 메인 서버 단말기로 구성함을 특징으로 한다.
또한 본 발명은 다수의 클라이언트 단말기들과 메인 서버 단말기가 전송매체에 접속되어 하나의 네트워크를 구성하고 있는 시스템에서의 브라우저 공유 방법에 있어서,
임의의 클라이언트 단말기와 브라우저를 공유하기 위한 선택이 있는 경우 해당 클라이언트 단말기와 연결시켜 주기 위한 서버 소킷 모듈과 마우스 이벤트 정보를 캡쳐링하기 위한 마우스 후킹 모듈을 각각 생성 및 실행시키는 과정과,
상기 메인 서버 단말기와 브라우저를 공유하기 위한 선택이 있는 경우 상기메인 서버 단말기와 연결시켜 주기 위한 클라이언트 소킷 모듈을 생성하여 실행시키는 과정과,
상기 메인 서버 단말기와 선택된 클라이언트 단말기가 서버 접속된 상태에서 상기 메인 서버 단말기에서는 상기 마우스 후킹 모듈을 통해 마우스 이벤트 정보를 캡쳐링하여 상기 선택된 클라이언트 단말기로 전송하는 과정과,
상기 서버 접속상태의 상기 선택된 클라이언트 단말기에서는 전송된 마우스 이벤트 정보 혹은 키보드 이벤트 정보에 연동하여 상기 메인 서버 단말기의 브라우저를 공유하는 과정으로 이루어짐을 특징으로 한다.
이하 첨부 도면을 참조하여 본 발명의 실시예에 따른 브라우저 공유 시스템 및 그 방법을 상세히 설명하기로 한다.
하기 설명 및 첨부 도면에서 근거리 통신망을 구성하는 단말기의 예로서 프린터, 개인용 컴퓨터 및 이들의 수, 교육자 및 피교육자와 같은 특정인의 예시, 그리고 구체적인 처리 흐름 등과 같은 많은 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있다. 이들 특정 상세들 없이 본 발명이 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진 자에게 자명하다 할 것이다. 한편 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략하기로 한다.
우선 도 1은 본 발명의 실시예에 따른 브라우저 공유 시스템의 구성도를 도시한 것이다.
도 1을 참조하면, 본 발명의 실시예에 따른 근거리 통신망을 구성하는 브라우저 공유 시스템은 메인 단말기인 서버 PC(100)와 다수의 클라이언트 단말기인 클라이언트 PC(200a∼200n), 그리고 다수의 프린터들(300a,300b)로 구성되어 있으며, 이러한 단말기들은 상호간에 데이터를 송수신할 수 있도록 고속 전송로인 전송매체(150)에 접속되어 있다. 그리고 각 단말기들은 구비된 통신부를 통해 인터넷망(400)과도 접속된다.
한편 상기 서버 PC(100)와 클라이언트 PC들은 크게 통신부, 제어부, 사용자 인터페이스부, 표시부 및 보조기억장치로 분류할 수 있다.
상기 통신부는 LAN카드 및 모뎀을 포함하는 통신기기로써 전송매체(150)에 접속되어 있는 타 단말기와 데이터를 송수신하는 역할을 수행한다. 제어부는 일반적인 PC에서와 같이 시스템의 전반적인 동작을 제어하는 CPU와 본 발명의 실시예에 따른 브라우저 공유를 위한 다수의 프로그램 모듈을 구성하는 데이터가 저장되는 메모리로 구성된다. 사용자 인터페이스는 유/무선 키보드 혹은 마우스를 포함하는 것으로써 사용자 명령에 따른 데이터를 발생하여 상기 제어부로 출력하여 주는 역할을 수행하며, 표시부는 모니터 혹은 LCD로써 상기 제어부의 제어에 따라 각종 데이터를 외부로 표시하여 준다. 보조기억장치는 HDD(Hard Disk Drive)와 같은 자기 기록/재생장치와 광 기록/재생장치를 포함하는 것으로써 상기 제어부에 의해 액세스 제어된다.
도 2는 본 발명의 실시예에 따른 브라우저 공유 시스템 구성에서 하나의 서버 PC(100)와 클라이언트 PC(200a) 각각을 구성하는 프로그램 모듈 구성을 도시한 것이다. 도 2를 참조하면, 우선 서버 PC(100)의 메모리에는 서버 모듈(110)이 상주하며, 서버 모듈(110)의 하위 레벨 프로그램 모듈로서 서버 소킷 모듈(120)과 마우스 후킹 모듈(mouse hooking module)이 상주한다. 상기 서버 모듈(110)은 본 발명의 실시예에 따른 브라우저 공유를 위한 메인 프로그램 모듈로서 전송매체(150)에 접속되어 있는 클라이언트 단말기들과 데이터를 송수신하는 역할을 수행한다. 서버 소킷 모듈(120)은 클라이언트 모듈(210)과 서버 모듈(110)을 연결시켜 주며 서버 모듈(110)에서 발생하는 마우스의 위치좌표와 서버에서 발생되는 채팅메세지를 클라이언트에게 전송하는 역할을 수행한다. 마우스 후킹 모듈(130)은 서버측의 모든 마우스 이벤트를 가로채어 서버 소킷 모듈(120)을 통해 클라이언트 모듈(210)로 전송한다.
한편 클라이언트 PC(200a)의 메모리에는 클라이언트 모듈(210)과 클라이언트 소킷 모듈(220)이 상주한다. 상기 클라이언트 모듈(210) 역시 전송매체(150)를 통해 서버 모듈(110)과 데이터를 송/수신하기 위한 프로그램 모듈이며, 클라이언트 소킷 모듈(220) 역시 클라이언트 모듈(210)을 서버 모듈(110)과 연결시켜 주는 역할을 수행한다.
이하 클라이언트 모듈(210) 및 서버 모듈(110)의 구조를 좀 더 상세히 설명하면, 우선 서버 모듈(110)의 구조는 크게 나누어 외형적으로는 HTML문서를 보여 주는 뷰(view)창이 있고, 그 밑의 창은 편집(editor)창이 있어 클라이언트와 서버간의 채팅을 할 수 있도록 한다. 내부적으로는 서버에서 발생되는 키보드 이벤트와 마우스 이벤트를 캐치(catch)하여 클라이언트 쪽으로 데이터를 전달해 주는 역할을 수행하는 독립적인 소킷 클래스를 DLL파일로 가지고 있다. 서버의 뷰 클래스는 MFC의 CVIEW 클래스로부터 상속받은 CHTMLVIEW를 탑재하고 있어서 이것 자체만으로도 웹 브라우저의 역할을 한다. 그것을 알 수 있는 것은 MFC 프로젝트를 VC++의 애플리케이션 위자드(wizard)를 사용하여 제작할 때 마지막 스텝 6단계에서 뷰 클래스의 베이스 클래스를 CHtmlView로 바꾸어 주고 자동으로 만들어진 프로젝트를 컴파일해서 실행하여 보면, 그것이 인터넷 익스플로러 웹 브라우저라는 것을 알 수 있다. 인터넷 익스플로러의 웹 브라우저의 기능은 컨트롤러를 플러그인 형식으로도 MFC 프로젝트 안으로 가져올 수 있다는 것을 단적으로 보여 주는 예이다. 인터넷 익스플로러의 웹 브라우저 기능을 본 발명에 포함시킨 이유는 동반 웹 서핑의 개념 때문이다. 도 2에 도시한 서버 모듈(110)의 구조를 보면 마우스 후킹 모듈(130)이 서버 모듈(110)의 하위 레벨로서 존재함으로서 서버측의 모든 마우스 이벤트 메시지를 캐치하는 역할을 수행하며, 이렇게 캐치되어진 데이터는 서버측의 소킷 모듈(120)과 클라이언트측의 소킷 모듈(220)을 통해 클라이언트 모듈(210)로 전송되며, 이 전송되어진 데이터를 이용해서 클라이언트의 마우스가 움직이게 된다.
한편 클라이언트의 구조도 서버와 마찬가지로 뷰 창은 CHtmlView로 이루어져 있으며 데이터를 받아들이고 데이터를 전송하는 소킷 클래스를 포함하고 있다. 서버와 다른점이 있다면 클라이언트측에서는 마우스 이벤트를 서버측으로 전송하지 않고 있다. 그 이유는 양자간에 마우스 이벤트 정보 전송시의 충돌현상 때문이다.
이하 소킷 모듈의 구조를 설명하면, 소킷은 클라이언트와 서버를 연결해 주는 연결부의 역할을 수행하며 서버측에서 발생된 마우스 이벤트와 키보드 이벤트, 그리고 서버에서 클라이언트로 보내는 채팅메세지를 전송해 주는 동시에, 서버에서클라이언트로 채팅메세지를 전송하는 역할을 수행한다. 본 발명에 따른 소킷 구조는 CServerSocket 클래스, CDataSocket 클래스와 CData 클래스로 이루어진다. 이러한 소킷 클래스들은 서로 유기적으로 움직이고 있다.
CServerSocket 클래스는 소킷을 생성하고 소킷을 초기화하며 클라이언트와 서버가 데이터를 주고 받을 수 있도록 해 주는 역할을 하며, 포트를 통해 들어오는 데이터를 윈도우 유저(user) 메시지를 보내는 형식으로 뷰 클래스나 혹은 메인프레임 클래스로 데이터를 보내는 역할을 한다.
CDataSocket은 클라이언트나 서버에서 발생하는 데이터, 즉 마우스 이벤트, 키보드 이벤트, 또는 채팅메세지를 CServerSocket 클래스를 통해 보내 주는 역할을 한다.
CData 클래스는 어떤 형태의 데이터를 보낼 것인가 정의를 해주는 클래스이며, 이 클래스를 통해 어떤 형태의 데이터라도 보낼 수 있다. 참고적으로 클라이언트와 서버의 주요 소킷함수들을 예시한 것이 도 3에 도시되어 있다.
도 3에 도시한 CData 클래스 안에는 6개의 멤버 변수들이 있는데, 클라이언트와 서버에서 발생하는 데이터들이 이 변수들에 저장되며 클라이언트와 서버로 전송된다.
CPoint m_ptNew: // 마우스의 좌표값
LONG m_posX: // 마우스의 x좌표값
LONG m_posY: // 마우스의 y좌표값
UINT m_mouseFlag: // 마우스 클릭 이벤트 값
CString m_strData: // 채팅용
WPARAM m_wParam: // 키보드 이벤트용
상기 변수중에서 CPoint 클래스의 인스턴스(instance)인 m_ptNew는 클라이언트와 서버에서 발생하는 마우스의 좌표값을 저장하는 역할을 한다. 클라이언트에서 발생되는 마우스 이벤트 메시지는 마우스 후킹 모듈(130)에 의해서 캡쳐되기 때문에 현재 이 변수는 사용되어지지 않고 있다.
LONG 데이터형의 m_posX와 m_posY는 마우스의 스크린상의 x포지션과 y포지션을 서버에서 클라이언트로 넘겨 주는 역할을 한다. 마우스가 움직일 때 마다(WM_MOUSE-MOVE) 마우스의 좌표값은 이곳에 저장되며 직렬화(serialization)를 통해 클라이언트나 서버로 전송된다.
UINT(Unsigned INT) 데이터형의 m_mouseFlag는 마우스 버튼의 각 클릭 이벤트를 클라이언트나 서버로 전송하는 역할을 한다.
CString 클래스의 인스턴스인 m_strData는 클라이언트와 서버에서 사용자가 입력한 채팅 스트링을 전송하는 역할을 하는 스트링형 변수이다.
WPARAM은 unsigned int 데이터형으로 WM_KEYDOWN 메시지가 발생했을 때 즉, 웹 브라우저 상의 텍스트 박스 안에서 키보드 입력을 했을 때 발생되는 감지된 키보드 상태(status)가 저장되는 변수이며, 이 변수는 소킷을 통하여 클라이언트로 전송된다. 예를 들어 서치엔진의 서치 텍스트 박스에서 입력을 할 경우 일어나는 키보드의 이벤트(조합키 포함)가 이 변수에 저장된다.
한편 본 발명의 실시예에 따른 마우스 후킹 모듈(130)은 후크마우스(HookMouse) 클래스에 의해서 이루어진다. 후크 마우스 클래스는 서버 프로젝트의 서브 프로젝트의 클래스로 컴파일시 HookMouse.dll 파일이 생성되며 이 dll파일은 서버 실행파일과 같은 Dir. 안이나 시스템 실행경로 상에 존재하여야 서버가 실행된다. 그리고 키보드 후킹은 마우스 후킹과 마찬가지로 서버 프로그램의 PreTranslateMessage()함수에서 WM_KEYDOWN메세지가 발생될 때 캡쳐되며 이 캡쳐된 데이터는 바로 소킷 클래스를 통해 접속된 클라이언트로 접속된다.
이하 도 4 내지 도 8을 참조하여 도 2에 도시된 서버측 및 클라이언트측 단말기를 구성하는 프로그램 모듈의 동작을 구체적으로 설명하기로 한다.
우선 4는 도 2중 클라이언트 모듈(210)의 동작 흐름도를 도시한 것이며, 도 5는 도 2중 클라이언트 소킷(socket) 모듈(220)의 동작 흐름도를 도시한 것이다.
도 4를 참조하면, 우선 클라이언트 PC(200a)의 부팅이 실행되면 500단계에서는 클라이언트 윈도우가 초기화되고, 이러한 초기화 과정에서 클라이언트 모듈(210)의 호출 및 실행에 의해 후술할 510단계 내지 580단계가 순차 수행된다.
우선 510단계에서는 클라이언트 소킷 모듈(220)이 생성되며, 생성된 클라이언트 소킷 모듈(220)에서는 도 5에 도시한 바와 같은 프로세스를 수행하게 되는데, 그 첫 번째 단계(600단계)로서 데이터 변수들을 초기화시킨다. 이후 610단계에서는 소킷을 생성하고, 620단계에서는 생성된 소킷에 포트정보 및 서버 IP정보를 부가하여 소킷을 초기화시킨다. 그리고 630단계에서는 전송매체(150)를 통해 서버 접속을 요구하여 640단계에서 서버접속응답이 있으면 660단계로 진행하여 서버 모듈(110)과 데이터를 송수신한다. 즉, 클라이언트 소킷 모듈(220)은 서버 소킷 모듈(120)로데이터를 전송하거나 수신된 데이터를 클라이언트 모듈(210)로 전송하는 역할을 수행한다. 만약 640단계에서 서버접속응답이 없으면 클라이언트 소킷 모듈(220)은 650단계에서 에러코드를 생성하여 클라이언트 모듈(210)로 전송한다.
상술한 바와 같이 클라이언트 소킷 모듈(220)은 클라이언트 모듈(210) 실행에 의해 생성되어 서버 모듈(110)과 데이터를 송수신하는데 이용되며, 피교육자의 종료 명령(670단계)에 의해 클라이언트 모듈(210)과 함께 프로그램 종료된다.
한편 클라이언트 소킷 모듈을 생성한 클라이언트 모듈(210)은 서버 모듈(110)과의 브라우저 공유를 위해 도 4의 520단계에서 서버 접속을 요구하고, 530단계에서 서버 접속 요구 응답에 따라 서버접속이 완료되면 540단계로 진행하여 서버 소킷 모듈(120)로부터 전송되는 마우스 & 키보드 데이터를 수신한다. 수신된 데이터가 마우스 데이터인 것으로 550단계에서 판명되면 클라이언트 모듈(210)에서는 서버의 마우스 위치좌표에 연동하여 클라이언트의 마우스를 이동시킴은 물론 특정 데이터의 검색, 표시창 열기와 같은 서비스 선택을 실행시킨다. 만약 550단계에서 수신된 데이터가 마우스 데이터가 아니면 클라이언트 모듈(210)에서는 560단계로 진행하여 서버의 키보드 입력에 연동하여 클라이언트의 키보드 명령을 시뮬레이션한다.
이와 같이 570단계 및 560단계의 수행으로 클라이언트 PC(200a)에서는 서버 PC(100)와 공유된 화면이 표시될 수 있는 것이다. 참고적으로 서버 PC(100)와 클라이언트 PC(200a)가 동일한 화면정보를 공유하는 예를 도 9 및 도 10에 예시하였다.
도 9에서는 클라이언트 PC(200a)와 서버 PC(100)의 브라우저 화면이 공유되어 있는 상태에서 피교육생인 클라이언트가 윈도우 메시지 창을 통해 특정 기사의 검색을 요청하는 경우의 공유 화면 예시를 나타낸 것이며, 도 10은 피교육생인 클라이언트 요청에 응답하여 교육자가 기사검색을 수행하는 과정을 예시한 도면이다. 이러한 경우 클라이언트측에서는 서버에서 수행하는 모습을 그대로 볼 수 있다. 이는 도 4에서 언급한 클라이언트 모듈(210)의 수행에 의해서 이루어질 수 있는 것이다.
이하 도 6 내지 도 8을 참조하여 서버 PC(100)에서 생성 및 수행되는 프로그램 모듈에 대하여 상세히 설명하기로 한다.
우선 도 6은 도 2중 서버 모듈(110)의 동작 흐름도를 도시한 것이며, 도 7은 도 2중 마우스 후킹(hooking) 모듈(130)의 동작 흐름도를, 도 8은 도 2중 서버 소킷 모듈(120)의 동작 흐름도를 도시한 것이다.
도 6을 참조하면, 우선 서버 PC(100)의 부팅이 실행되면 700단계에서는 서버 윈도우가 초기화되고, 이러한 초기화 과정에서 서버 모듈(110)의 호출 및 실행에 의해 후술할 710단계 내지 810단계가 순차 수행된다.
우선 710단계에서는 도 8에 도시한 바와 같은 동작을 수행하는 서버 소킷 모듈(120)이 생성된다. 그리고 720단계에서는 도 7에 도시한 바와 같은 동작을 수행하는 마우스 후킹 모듈(130)이 생성된다.
도 7을 참조하여 마우스 후킹 모듈(130)의 동작을 설명하면, 우선 마우스 후킹 모듈(130)에서는 첫 번째 단계(820)로서 마우스 후킹 변수들을 초기화시킨후에 830단계로 진행하여 마우스 위치 데이터 및 상태데이터를 캡쳐링한후 이를 서버 소킷 모듈(120)로 전송(840단계)한다.
즉, 마우스 후킹 모듈(130)은 서버 모듈(110)의 실행에 따라 생성되어 서버측의 모든 마우스 이벤트를 가로채어 서버 소킷 모듈(120)을 통해 클라이언트 모듈(210)로 전송하는 역할을 수행하며, 서버 모듈(110)의 종료에 의해 프로그램 종료된다.
한편 서버측에서 생성되는 서버 소킷 모듈(120) 역시 클라이언트 소킷 모듈(220)과 동일한 동작을 수행한다. 도 8을 참조하면, 900단계에서 서버 소킷 모듈(120)은 우선 데이터 변수들을 초기화시킨다. 이후 910단계에서는 소킷을 생성하고920단계에서는 생성된 소킷에 포트정보를 부가하여 소킷을 초기화시킨다. 그리고 930단계에서는 전송매체(150)를 통해 클라이언트의 서버 접속 요구를 수신하여 서버접속응답 가능한가를 판단(940단계)한다. 판단결과 서버접속응답이 가능하면 접속 응답을 발한 후에 960단계에서 클라이언트 모듈(210)과 데이터를 송수신하고, 그렇지 않으면 950단계로 진행하여 서버 모듈(110)로 에러코드를 전송하여 클라이언트와의 데이터 송수신이 불가능한 상태임을 통보하여 준다.
즉, 서버 소킷 모듈(120) 역시 클라이언트 소킷 모듈(220)과 같이 양자간에 데이터를 송수신하는 역할을 수행한다.
상술한 바와 같이 서버 소킷 모듈(120)은 서버 모듈(110) 실행에 의해 생성되어 클라이언트 모듈(210)과 데이터를 송수신하는데 이용되며, 교육자의 종료 명령(970단계)에 의해 서버 모듈(110)과 함께 프로그램 종료된다.
한편 서버 소킷 모듈(120)을 생성한 서버 모듈(110)은 730단계에서 생성된소킷/마우스 후킹 모듈(120,130)을 초기화한후 740단계로 진행하여 클라이언트 모듈(210)과의 브라우저 공유를 위한 서버 접속 요구를 수신한다. 서버 접속 요구가 수신되면 서버 모듈(110)은 접속요구에 응답 가능한지를 판단하여 서버접속 요구에 응답 가능하면 서버 접속 요구 응답신호를 발생하여 클라이언트 모듈(210)로 전송한다. 이후 760단계에서 서버 모듈(110)은 발생되는 윈도우 이벤트를 캡쳐링하여 마우스 이벤트인지를 770단계에서 검사한다. 만약 마우스 이벤트이면 790단계로 진행하여 마우스 후킹 모듈(130)을 호출하고, 마우스 후킹 모듈(130)에 의해 캡쳐링된 마우스 위치데이터 및 상태데이터를 클라이언트측으로 전송(800단계)한다. 반면에 770단계에서 키보드 이벤트인 것으로 판명되면 서버 모듈(110)은 780단계로 진행하여 키보드 이벤트를 획득하여 이를 클라이언트측으로 전송(800단계)한다.
이와 같이 760단계 내지 800단계의 수행으로 클라이언트 PC(200a)에서는 서버 PC(100)의 마우스 이벤트 정보와 상태정보에 따라 서버 PC(100)에 표시된 화면을 공유할 수 있다. 참고적으로 교육자에 의해 종료 명령이 수신될때까지 서버 모듈(110)은 760단계 내지 800단계를 반복 수행하여 클라이언트 모듈(210)과 동일한 브라우저를 공유한다.
이상에서 설명한 바와 같이 본 발명은 서버측의 마우스 이벤트 정보와 키보드 이벤트 정보를 획득하여 클라이언트측으로 전송해 줌으로써, 서버와 클라이언트들이 동일한 브라우저를 공유할 수 있게 되는 것이다.
상술한 바와 같이 본 발명은 고속 전송로인 전송 매체에 접속되어 있는 다수의 클라이언트 단말기들과 브라우저를 공유할 수 있기 때문에, 클라이언트측에서 단말기 조작의 편의성을 제공받음은 물론, 교육효율성이 증진될 수 있는 효과가 있다. 또한 메인 서버 단말기와 클라이언트 단말기들이 하나의 통신망을 형성하고 있는 네트워크상에서 메인 서버 단말기의 제어만으로 동일 정보를 공유할 수 있기 때문에 원격회의가 가능한 장점이 있으며, 화면 캡쳐에 의한 브라우저 공유 방식이 아닌 마우스 이벤트(event) 정보와 같이 최소한의 정보만을 전송하여 브라우저를 공유할 수 있기 때문에 서버의 부하를 최소화할 수 있는 이점도 있다.

Claims (6)

  1. 데이터 전송로인 전송매체와,
    각각 상기 전송매체에 접속되고, 메인 서버 모듈과 데이터를 송수신하며 상기 메인 서버 모듈로부터 전송되는 사용자 키입력 이벤트 정보에 연동하여 상기 메인 서버측에 표시된 브라우저 정보를 공유하기 위한 클라이언트 모듈과, 상기 클라이언트 모듈과 메인 서버 모듈을 연결시켜 주기 위한 클라이언트 소킷 모듈을 적어도 포함하는 다수의 클라이언트 단말기들과,
    상기 전송매체에 접속되어 임의의 클라이언트 단말기와 데이터를 송수신하기 위한 서버 모듈과, 상기 서버 모듈과 임의의 클라이언트 모듈을 연결시켜 주기 위한 서버 소킷 모듈과, 상기 서버 모듈에서 발생하는 사용자 키입력 이벤트 정보를 캡쳐링하기 위한 마우스 후킹 모듈을 적어도 포함하는 메인 서버 단말기로 구성되어 인터넷망과 접속됨을 특징으로 하는 브라우저 공유 시스템.
  2. 제1항에 있어서, 상기 사용자 키입력 이벤트 정보는 마우스 이벤트 정보와 키보드 이벤트 정보를 적어도 포함함을 특징으로 하는 브라우저 공유 시스템.
  3. 제1항에 있어서, 상기 클라이언트 단말기들과 메인 서버 단말기는 각각의 소킷 모듈을 통해 채팅메세지를 송수신함을 특징으로 하는 브라우저 공유 시스템.
  4. 다수의 클라이언트 단말기들과 메인 서버 단말기가 전송매체에 접속되어 하나의 네트워크를 구성하며 통신부를 통해 인터넷망과 접속되는 시스템에서의 브라우저 공유 방법에 있어서,
    임의의 클라이언트 단말기와 브라우저를 공유하기 위한 선택이 있는 경우 해당 클라이언트 단말기와 연결시켜 주기 위한 서버 소킷 모듈과 마우스 이벤트 정보를 캡쳐링하기 위한 마우스 후킹 모듈을 각각 생성 및 실행시키는 과정과,
    상기 메인 서버 단말기와 브라우저를 공유하기 위한 선택이 있는 경우 상기 메인 서버 단말기와 연결시켜 주기 위한 클라이언트 소킷 모듈을 생성하여 실행시키는 과정과,
    상기 메인 서버 단말기와 선택된 클라이언트 단말기가 서버 접속된 상태에서 상기 메인 서버 단말기에서는 상기 마우스 후킹 모듈을 통해 마우스 이벤트 정보를 캡쳐링하여 상기 선택된 클라이언트 단말기로 전송하는 과정과,
    상기 서버 접속상태의 상기 선택된 클라이언트 단말기에서는 전송된 마우스 이벤트 정보 혹은 키보드 이벤트 정보에 연동하여 상기 메인 서버 단말기의 브라우저를 공유하는 과정으로 이루어짐을 특징으로 하는 브라우저 공유 방법.
  5. 제4항에 있어서, 상기 클라이언트 소킷 모듈과 서버 소킷 모듈 각각의 소킷은;
    소킷을 생성하고 소킷을 초기화하며 클라이언트와 서버가 데이터를 송수신할 수 있도록 해 주며, 포트를 통해 입력되는 데이터를 뷰 클래스 혹은 메인 프레임 클래스로 전송하여 주는 씨서버소킷(CServerSocket) 클래스와,
    상기 클라이언트와 서버에서 발생하는 마우스 이벤트, 키보드 이벤트 혹은 채팅메세지를 상기 씨서버소킷 클래스를 통해 전송하여 주는 씨데이터소킷(CDataSocket) 클래스와,
    상기 클라이언트와 서버 사이의 데이터 전송시 데이터 형태의 정의를 내려 주는 씨데이터(CData) 클래스 구조를 가짐을 특징으로 하는 브라우저 공유 방법.
  6. 제4항에 있어서, 상기 클라이언트 단말기와 메인 서버 단말기는 공유된 브라우저 화면의 일부를 채팅메세지창으로 사용함을 특징으로 하는 브라우저 공유 방법.
KR1020000075300A 2000-12-11 2000-12-11 브라우저 공유 시스템 및 그 방법 KR20020045883A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000075300A KR20020045883A (ko) 2000-12-11 2000-12-11 브라우저 공유 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000075300A KR20020045883A (ko) 2000-12-11 2000-12-11 브라우저 공유 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20020045883A true KR20020045883A (ko) 2002-06-20

Family

ID=27680985

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000075300A KR20020045883A (ko) 2000-12-11 2000-12-11 브라우저 공유 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20020045883A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012118296A3 (en) * 2011-03-02 2012-12-20 Samsung Electronics Co., Ltd. Browsing method, device, and computer-readable storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012118296A3 (en) * 2011-03-02 2012-12-20 Samsung Electronics Co., Ltd. Browsing method, device, and computer-readable storage medium
EP2681664A4 (en) * 2011-03-02 2015-05-20 Samsung Electronics Co Ltd SEARCH METHOD AND DEVICE AND COMPUTER READABLE STORAGE MEDIUM

Similar Documents

Publication Publication Date Title
US11785056B2 (en) Web browser interface for spatial communication environments
US6928464B2 (en) Systems and methods for unified remote control access
US10326807B2 (en) Method and software for enabling n-way collaborative work over a network of computers
US9813463B2 (en) Phoning into virtual communication environments
Fox et al. Integrating information appliances into an interactive workspace
Johanson et al. The interactive workspaces project: Experiences with ubiquitous computing rooms
US6351777B1 (en) Computer software for converting a general purpose computer network into an interactive communications system
JP4722861B2 (ja) 異種のアプリケーション間での同期コラボレーションおよび非同期コラボレーション
JPH10303893A (ja) パーソナル会議方法及びシステム
Bergenti et al. A collaborative platform for fixed and mobile networks
WO2022048677A1 (zh) 基于云手机的vr应用设计方法及***
KR100611255B1 (ko) 작업 공간을 공유하는 원격 회의 방법
US6404430B1 (en) Virtual space information processor
US5664103A (en) System for using an independent mediator for monitoring control data and transferring selected control data to a remote computer for concurrent processing
Anumba et al. Telepresence in concurrent lifecycle design and construction
KR20020045883A (ko) 브라우저 공유 시스템 및 그 방법
CN102387118B (zh) 一种数据输出方法及装置
Shih et al. Teamspace: A simple, low-cost and self-sufficient workspace for small-group collaborative computing
Miller The remote application controller
KR20210007936A (ko) 원격제어를 통한 온라인 회의 방법
KR20000025069A (ko) 분산 환경에서의 어플리케이션 공유를 위한지.유.아이 객체제어기 및 이를 이용한 공유 정보의 송수신 방법
Haji-Ismail et al. JACIE-an authoring language for rapid prototyping net-centric, multimedia and collaborative applications
TW202420166A (zh) 對話群組專案管理系統
Kubo et al. Framework for CSCW applications by using virtual reality
TWM638964U (zh) 對話群組專案管理系統

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application