KR100366824B1 - 실시간 원격제어 방법 - Google Patents

실시간 원격제어 방법 Download PDF

Info

Publication number
KR100366824B1
KR100366824B1 KR10-2000-0025725A KR20000025725A KR100366824B1 KR 100366824 B1 KR100366824 B1 KR 100366824B1 KR 20000025725 A KR20000025725 A KR 20000025725A KR 100366824 B1 KR100366824 B1 KR 100366824B1
Authority
KR
South Korea
Prior art keywords
terminal
remote control
packet
data
area
Prior art date
Application number
KR10-2000-0025725A
Other languages
English (en)
Other versions
KR20010104522A (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 KR10-2000-0025725A priority Critical patent/KR100366824B1/ko
Publication of KR20010104522A publication Critical patent/KR20010104522A/ko
Application granted granted Critical
Publication of KR100366824B1 publication Critical patent/KR100366824B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q9/00Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
    • H04Q9/02Automatically-operated arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 실시간 원격제어 방법에 관한 것으로 상세하게는 상호 원격 연결된 단말기간의 양방향 통신(양방향 제어)을 가능하게 할뿐만 아니라, 연결을 끊지 않은 상태에서 상호 제어권을 주고받을 수 있는 원격제어 엔진을 이용한 실시간 원격제어 방법에 관한 것이며, 보다 상세하게는 원격제어 엔진을 구성하는 메인 애플리케이션(main application) 및 각 서브 프로그램(sub program)들로부터 발생하는 데이터의 특성에 따라 각 데이터의 특성에 맞게 전송 전용 포트를 설정하는 멀티 패킷 프로토콜을 사용함으로써, 데이터 처리 속도의 향상 및 데이터 전송의 정확성을 기할 수 있는 데이터 처리 방법을 이용한 실시간 원격제어 방법에 관한 것이다.

Description

실시간 원격제어 방법 {Method for Real Time Distant Control in communications net}
본 발명은 실시간 원격제어 방법에 관한 것으로, 상세하게는 상호 원격 연결된 단말기간의 양방향 통신(양방향 제어)을 가능하게 할뿐만 아니라, 연결을 끊지 않은 상태에서 상호 제어권을 주고받을 수 있는 원격제어 엔진을 이용한 실시간 원격제어 방법에 관한 것이며, 보다 상세하게는 원격제어 엔진을 구성하는 메인 애플리케이션(main application) 및 각 서브 프로그램(sub program)으로부터 발생하는 데이터의 특성에 따라 각 데이터의 특성에 맞게 전송 전용 포트를 설정하는 멀티패킷 프로토콜을 사용함으로써, 데이터 처리 속도의 향상 및 데이터 전송의 정확성을 기할 수 있는 데이터 처리 방법을 이용한 실시간 원격제어 방법에 관한 것이다.
기존의 원격으로 상호 연결된 정보 단말기간 원격제어 엔진에 의한 제어 방법에 대하여 간단히 설명하면 다음과 같다. 편의상 상호 연결된 정보 단말기를 각각 제1 단말기, 제2 단말기라 칭한다.
제1 단말기와 제2 단말기가 통신망을 통하여 연결된 상태에서 제1 단말기에서 원격 제어 명령어를 전송하면 제2 단말기에서는 원격 제어가 가능하다는 응답을 제1 단말기에 전송한다. 응답을 받은 제1 단말기는 원격 제어를 통해 제2 단말기에 내장된 구동시키고자 하는 애플리케이션 프로그램을 직접 핸들링하여 해당 작업을 한다. 제1 단말기는 해당 작업의 종료 후 제어 종료 명령어를 제2 단말기에 전송하고 제2 단말기는 종료 명령을 받았음을 제1 단말기에 응답, 종료 메시지를 전송하고 연결을 종료시킴으로써, 원격 제어가 종료된다.
이를 구체적 예를 들어 설명하면 만약 제2 단말기의 IP(Internet Protocol) 어드레스가 100.100.100.100 이라 하면 제1 단말기에서는 우선 제2 단말기에 접속을 시도하게 되는데 이를 제1 단말기상에서 입력하는 명령어 형태로 표현하면
rlogin 100.100.100.100
여기서 rlogin은 remote login의 약어로서 원격 접속한다는 뜻이고 상기한 명령어는 제1 단말기에서 IP 어드레스 100.100.100.100을 가진 제2 단말기에 접속을 요구하는 의미이다. 상기한 명령어는 소정의 방식으로 인코딩된 후 제2 단말기에 전송되며(통상 소정의 방식으로 패킷화된 데이터로 전송된다), 제2 단말기에서는 패킷화된 데이터를 디코딩한 후 제1 단말기로부터 전송된 명령어를 해석한다. 제2 단말기는 제1 단말기로 제어 요청을 받았음을 응답하고 제어 가능 메시지를 제1 단말기로 전송하게 되면 제1 단말기상에는 제2 단말기의 초기화면이 뜨게되며 제1 단말기에서 제2 단말기의 여러 애플리케이션 프로그램을 직접 동작시킬 수 있다. 예를 들어, 제1 단말기상에서 C언어로 작성된 어떤 프로그램을 컴파일(compile)하기를 원하는데 자신에게는 C언어 애플리케이션 프로그램이 없고 제2 단말기에는 있다고 가정하면 우선 제1 단말기상에서 C언어 포맷으로 제작된 프로그램 소스 코드를 제2 단말기로 전송한 뒤 제2 단말기에 내장된 C 컴파일러를 구동시켜 상기한 소스 코드에 대한 컴파일을 실행할 수 있다. 이 과정을 명령어 형태로 표현하면
ftp A.c 100.100.100.100/test
cc A.c
다시 말해 A.c라는 프로그램 소스 코드를 ftp(file transfer protocol) 명령어를 사용하여 100.100.100.100 단말기의 test 디렉토리에 전송한 후 cc(c compile) 명령어를 이용하여 A.c를 컴파일하게 된다.
제1 단말기는 원하는 작업 처리가 종료되면 제2 단말기로 제어 종료(접속 종료) 명령을 전송하며 제2 단말기는 제1 단말기에 제어 종료 응답을 함으로써 제1 단말기에 의한 제2 단말기의 원격 제어는 종료된다. 이 과정을 명령어 형태로 표현하면
logout 100.100.100.100
그러나 상기한 원격 제어 방법은 제1 단말기와 제2 단말기의 입장이 바뀔 시에는 제1 단말기에서 제2 단말기로의 연결 상태를 끊고 난 후 제2 단말기에서 제1 단말기로의 연결을 재 시도해야만 양방향 제어가 가능한 문제가 있다. 다시 말해 원격 제어를 먼저 요구한 쪽만이 제어권을 가지고 있으며 이 제어권의 방향이 바뀌기 위해서는 기 연결된 원격 연결을 끊은 후 상대방 쪽에서 원격 제어 연결 요구를 하여야만 제어권의 방향이 바뀌는 비효율점이 있다.
또한 원격 제어를 위한 두 단말기간에 필요한 데이터의 전송시 상기한 데이터는 소정의 패킷 형태를 갖추게 되는데 이 패킷에는 여러 가지 정보, 예를 들어, 통신을 위한 포트 정보, 송/수신을 위한 메모리 영역 정보, 실제 데이터 정보 등이 실려있으나 이들 각 정보의 특성이 반영되지 않은 혼재된 상태로 단일 패킷을 이루고 있기 때문에 전송 데이터의 양이 많을 경우 전송 속도의 지연 및 데이터의 부정확한 전송 현상이 발생할 수 있다.
따라서 본 발명은 이와 같은 문제를 해결하기 위해 안출된 것으로 본 발명의 목적은 상호 원격 연결된 단말기간의 양방향 통신(양방향 제어)을 가능하게 하며 상호 연결을 끊지 않고 서로 제어권을 교환할 수 있는 원격제어 엔진을 이용한 실시간 원격제어 방법을 제공하는데 있다.
또한, 본 발명의 다른 목적은 상기한 원격제어 엔진을 구성하는 메인 애플리케이션(main application) 및 서브 프로그램들(sub program)로부터 발생하는 데이터의 특성에 따라 각 데이터의 특성에 맞게 전송 전용 포트를 설정하는 멀티 패킷 프로토콜을 사용함으로써, 데이터 처리 속도의 향상 및 데이터 전송의 정확성을 기할 수 있는 데이터 처리 방법을 이용한 실시간 원격제어 방법을 제공하는데 있다.
도 1은 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법이 통신망으로 상호 연결된 제1 단말기와 제2 단말기에 적용되었을 때의 프로세스를 나타낸 흐름도 이다.
도 2는 본 발명의 바람직한 실시 예에 따른 원격제어 엔진의 패킷생성을 설명하기 위한 블록도 이다.
도 3a는 멀티 패킷 프로토콜에 의한 전송 데이터의 기본 구조이고 도 3b는 Packet Header의 구조이고 도 3c는 Source의 구조이다.
도 4는 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법의 송신 프로세스를 나타내는 흐름도 이다.
도 5은 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법의 송신 프로시져의 흐름을 나타낸 흐름도 이다.
도 6는 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법의 수신 프로세스를 나타내는 흐름도 이다.
도 7은 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법의 수신 프로시져의 흐름을 나타낸 흐름도 이다.
< 도면 주요부분에 대한 부호의 설명 >
100 : 원격제어 엔진
101 : 메인 애플리케이션(main application)
102 : 서브 프로그램(sub program)
103 : 패킷 드라이버(패킷 관리자)
104 : 메인 패킷(main packet)
105 : 패킷(packet)
200 : 통신망(communications net)
이러한 목적을 달성하기 위한 본 발명에 따른 실시간 원격제어 방법을 간단히 설명하면, 통신망으로 상호 연결된 제1 단말기와 제2 단말기가 있을 때, 제1 단말기가 제2단말기로 원격제어를 수행하려면, 먼저 제1 단말기와 제2 단말기에 각각 설치된 원격제어 엔진을 통하여 전송할 데이터를 패킷으로 생성하여 패킷 드라이브의 패킷 메모리 영역에 저장하는 패킷 생성단계를 거치고, 이어서 제1 단말기는 제2 단말기에 제어 가능 여부를 묻는 제어 요청 명령어를 원격지에 있는 제2 단말기로 전송한다.
원격제어 요청 명령어를 전송 받은 제2 단말기는 제1 단말기에 제어를 허가한다는 원격제어 가능 메시지를 제1 단말기로 전송한다. 상술한 과정을 완료하면 제1 단말기는 제2 단말기의 제어권을 장악하고 제2 단말기의 데이터 업데이트, 마우스 제어, 키보드 제어, 애플리케이션 프로그램 수행 모니터 제어 등 원하는 작업을 수행하는 원격제어를 수행하게 된다.
만약, 제1 단말기가 제2 단말기의 원격제어를 통하여 수행하던 작업이 종료되면 원격제어 종료 메시지를 제2 단말기에 전송하고, 제2 단말기가 제1 단말기의 원격제어 종료 메시지에 대한 응답 메시지를 전송하면 원격제어 가능 상태를 종료시키게 된다.
부가적으로, 만약, 제2 단말기가 제1 단말기로 원격제어 요청 명령어를 전송하여 제1 단말기의 원격제어를 시도하고자 하는 경우 제1 단말기와 제2 단말기의 지위가 바뀌어 상술한 과정들을 반복 수행할 수 있다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 이 발명의 바람직한 실시 예를 첨부된 도면을 참조로 설명하기로 한다.
우선, 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 동일한 부호를 가지도록 하고 있음을 유의하여야 한다.
도 1은 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법이 통신망으로 상호 연결된 제1 단말기와 제2 단말기에 적용되었을 때의 프로세스를 나타낸 흐름도 이고,
도 2는 본 발명의 바람직한 실시 예에 따른 원격제어 엔진의 패킷생성을 설명하기 위한 블록도 이다.
상호 원격 연결된 제1 단말기와 제2 단말기가 상호 실시간 원격제어를 수행하려면 먼저 제1 단말기 및 제2 단말기에 설치된 메인 애플리케이션 프로그램(101)이 패킷 드라이버(패킷 관리자)(110)를 메모리로 로드(Load)하고 이어서, 원격제어 엔진(100)의 각 서브 프로그램(102)들이 패킷 드라이버의 메모리 영역을 이용하여 각각 상대방 단말기에 전송할 데이터(300)를 패킷(112)으로 생성하는 패킷 생성단계를 거치게 된다(S1).
이때, 원격제어 엔진(100)이란 소프트웨어로 구현된 패킷(111,112) 생성 프로그램으로 메인 애플리케이션 프로그램(101)과 서브 프로그램(각 서브 프로그램들은 패킷 드라이브의 메모리 영역에 상대방 단말기로 전송할 데이터를 패킷으로 생성시키며, 상대방 단말기에서 전송되어 패킷 드라이브에 저장된 패킷들을 데이터화시킨다.)(102) 및 패킷 드라이버(110)로 구성되는데, 패킷(112)을 생성할 때 각 데이터(300)의 특성에 따라 각각의 서브 프로그램(102)들이 독립적으로 패킷(112)을 패킷 드라이버(110)의 메모리 영역에 생성하고 관리한다.
만약, 원격제어 엔진(100)이 통신을 하는 도중 서브 프로그램(102)을 실행시킬 때, 메인 애플리케이션 프로그램(101)에서 서브 프로그램(102)들의 통신 데이터(300)를 관리하면 프로그램이 복잡해지고 관리하기가 힘들어 진다. 이에 원격제어 엔진(100)에서 서브 프로그램(102)들을 실행시킬 때, 패킷 드라이버(110)에 각각의 서브 프로그램(102)들의 관리 패킷(112)을 등록하며, 서브 프로그램(102)에서는 원격제어 엔진(100)이 가지고 있는 패킷 드라이버(110) 정보를 갖게 된다. 이를 위하여, 각각의 서브 프로그램(102)에서는 자신에게 해당하는 데이터(300) 처리 프로세스와 데이터(300) 분석기능을 갖는다.
한편, 패킷 드라이버(110)에서는 패킷(112)의 데이터 정보를 파악하고, 이와 일치하는 서브 프로그램(해당 패킷을 생성한 서브 프로그램)(102)으로 메시지를 통보함으로써 자료를 처리한다. 또한, 서브 프로그램(102)에서는 패킷 드라이버(110)를 통해서 데이터(300)를 송신하게 된다. 한편, 원격제어 엔진(100)의 메인 애플리케이션 프로그램(101)은 자신만의 메모리를 할당하여 단말기간의 연결 역할을 하는 메인 패킷(연결 패킷)(111)을 생성하고, 이를 패킷 드라이버(110)에 등록한다.
상술한 과정들을 실현하기 위하여, 본 발명은 '멀티 패킷 프로토콜'이라는 새로운 프로토콜을 제시한다. 여기서 멀티의 개념은 동시에 여러 애플리케이션 프로그램을 수행할 수 있음을 뜻하는 것으로 상대방 단말기를 원격제어하면서 파일을 송수신하거나 원격 모니터링을 하면서 상대방 단말기에 데이터를 업데이트할 수 있는 것 등을 의미한다.
이러한 원격 멀티태스킹이 동시에 원만히 수행되기 위해서는 각 패킷에 따른 데이터(300)의 구분이 명확히 되어야 하는데 이렇게 하기 위해서는 원격제어 엔진(100)을 구성하는 여러 모듈(101,102), 즉 메인 애플리케이션(101)과 여러 서브 프로그램(102) 들에서 발생되는 각각의 데이터를 패킷(111,112) 단위로 구분, 처리하며(멀티 패킷화 하며) 각 패킷(111,112)을 구분할 수 있는 구분자를 제시함으로써 가능하다.
도 3a는 멀티 패킷 프로토콜에 의한 전송 데이터의 기본 구조이고 도 3b는 Packet Header의 구조이고 도 3c는 Source의 구조이다.
도시된 바와 같이, 멀티 패킷 프로토콜에 따른 원격제어 엔진(100)의 각 모듈의 데이터 기본 패킷(400)은 각각 패킷의 시작과 끝을 의미하는 'Block_Start'영역(410)과 'Block_End'영역(440), 패킷 정보를 저장하는 'Packet Header'영역(420), 각 모듈에서 정의된 명령어 및 실제 데이터가 실리는 '전송 자료'영역(430)으로 구성된다. 전송 패킷의 기본 구조(400) 중 'Packet Header'영역(420)은 패킷 관리자(110)에 의해 관리되는 메모리 블록에서 각 모듈의 고유 정보를 함유하는 'Source'영역(421)과, 접속하고자하는 상대방 서브 프로그램의 영역에 대한 정보를 저장하는 'Target'영역(422), 패킷간에 주고받는 명령어를 함유한 '명령어'영역(423), 명령어 및 데이터가 올바르게 전달되었는지 확인하는 코드를 함유한 'CRC(Cyclic Rule Check)'영역(424)으로 구성되어 있다. 여기서, 'Source'영역(421)은, 도 1c에서 나타낸 것과 같이, 패킷구조 자신의 메모리 영역을 가리키는 정보를 저장한 'hKPacket'영역(500)과, 통신을 하기 위한 포트 번호를 나타내며 각 모듈에 따른 패킷의 구분자 역할을 하는 'dwPort'영역(501), 명령어 및 데이터의 송/수신을 위한 메모리 영역인 '송/수신 버퍼'영역(502), 송/수신되는 데이터를 임시 저장하는 '임시 송/수신 버퍼'영역(503), 패킷과 통신을 하기 위한 서브 프로그램의 윈도우의 저장 영역인 'hWnd'영역(504), 서브 프로그램과 패킷간의 통신을 위한 메시지를 저장하는 'Message'영역(505)으로 구성되어 있다.
상술한 패킷 생성 단계(단계 S1)가 종료되면, 제2 단말기의 원격제어 엔진은 메인 및 서브 프로그램을 나타내는 프로그램 고유 포트에 포트값을 저장하고 원격제어 연결 대기상태로 기다린다. 이를 명령어 형태로 표현하면,
struct KPACKET -> dwPort
로 표현되는데, 이때 dwPort(501)는 상술한 멀티 패킷 프로토콜에서 설명된 것과 같이, 통신을 하기 위한 포트 번호를 나타내며 각 모듈에 따른 패킷(111,112)의 구분자 역할을 한다. 이어서, 제1 단말기는 제2 단말기를 실시간으로 원격제어하기 위하여 제2 단말기에 원격제어 연결을 요청하는 원격제어 요청 명령어(예를 들면, CMD_KCONNECT)를 전송하는 원격제어 요청단계를 거치게 된다(단계 S2). 이때, 제1 단말기는 제2 단말기에 대기하고 있는 포트로 연결을 시도하게 된다. 이를 명령어 형태로 표현하면,
struct KPACKET -> Target = dwPort
로 표현되는데, 이때의 Target(422)은 접속하고자 하는 상대방 서브 프로그램의 메모리 영역에 대한 정보를 나타낸다. 즉, 제1 단말기의 원격제어 엔진(100)은 패킷의 Target(422) 값을 참조하여 이 값이 가리키는 제2 단말기의 포트값 (dwPort)(501)으로 연결을 시도하는 것이다.
이어서, 제2 단말기는 원격제어 가능 메시지(예를 들어, ACK_KCONNECT)를 제1 단말기로 전송하는 원격제어 접수단계를 거치게 되는데 이 단계에서 제2 단말기는 원격제어 연결을 접수시키고 제1 단말기에 원격제어 연결 승인 명령어를 전송한다(단계 S3).
제2 단말기로부터 원격제어 연결 승인 명령어가 제1 단말기로 접수되면 제1 단말기의 원격제어 엔진(100)은 원격제어가 가능한 원격제어 연결이 완료되었음을 인식하고, 각 모듈(101,102)들의 명령어를 제2 단말기로 보내기 시작한다(단계 S4). 이때부터는, 제1 단말기가 제2 단말기의 제어권을 장악하고 제2 단말기의 애플리케이션 프로그램을 수행시켜 원하는 작업을 수행하는 원격제어를 수행할 수 있다. 예를 들어, 제1 단말기는 제2 단말기에 직접 명령어를 전송하여 워드 프로세서나 웹브라우저 등을 마치 제1 단말기에 설치된 애플리케이션 프로그램처럼 사용할 수 있음은 물론이고, 데이터의 업데이트, 마우스 제어, 키보드 제어, 화면 제어 및 파일 송수신 등을 제어할 수 있게 된다.
제1 단말기가 제2 단말기의 원격제어를 통하여 수행하던 작업이 종료되면 원격제어 종료 메시지를 제2 단말기에 전송하는 원격제어 종료 요청단계를 수행하고(단계 S5), 제2 단말기가 제1 단말기의 원격제어 종료 메시지에 대한 응답 메시지를 전송하고 원격제어 연결을 종료시킨다(단계 S6).
이때, 만약 제2 단말기에서 제1 단말기로 원격제어를 수행하기 위하여 원격제어 요청 명령어를 전송하면(단계 S7) 메인 애플리케이션이 독립적으로 단말기간의 연결을 수행하므로 단말기간의 상호 연결을 끊지 않은 상태에서 원격제어 연결의 교환으로 다시 상술한 단계들을 거쳐 실시간 원격제어를 수행할 수 있는데, 이때는, 제1 단말기와 제2 단말기의 지위가 바뀌어 수행되게 된다(단계 S8).
도 4는 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법의 송신 프로세스를 나타내는 흐름도이다.
데이터의 송신을 위해 패킷 드라이버(110)는 송신할 패킷(111,112)의 포인터를 구한다(단계 S11). 이어서 송신 버퍼에 송신할 데이터가 남아 있는지 검사하고 송신할 데이터가 없으면 데이터가 발생할 때까지 기다린다. 만약, 송신할 데이터가 송신 버퍼에 채워지면(단계 S12), 송신 프로시져(WriteProcedure())가 수행되고(단계 S13) 송신 프로시져는 데이터를 송신한다.
도 5은 송신 프로시져의 흐름을 나타낸 흐름도 이다.
송신 프로시져(소프트웨어적으로 구현될 수 있는 프로그램이다.)는 현재 패킷의 송신 데이터 처리가 종료되었는지 검사하고(단계 S20), 만약, 데이터 처리가 종료되면 송신 버퍼에서 송신 데이터를 구한다(단계 S22). 이때, 송신 데이터는 인코딩(encoding)과정을 거침과 동시에 데이터의 시작코드와 종료코드를 붙이게 되며 이어서, 처리된 데이터는 패킷 송신 버퍼(502)에 저장되고 송신을 시작하게 된다(단계 S24). 이때, 송신 패킷이 일정한 크기를 넘어 갈 경우(단계 S26) 데이터를 나누어서 보낸다(단계 S28). 이런 과정들을 통하여 데이터를 모두 보내면, 패킷 드라이버(110)는 자료 송신 완료 명령어를 수신 측에 보내고(단계 S14) 송신 이벤트(send event)를 종료한다(단계 S15).
도 6는 본 발명의 바람직한 실시 예에 따른 실시간 원격제어 방법의 수신 프로세스를 나타내는 흐름도이다.
수신 측에서는 데이터의 수신을 위해 패킷 드라이버(110)는 수신할 패킷(112)의 포인터를 구한다(단계 S31). 이어서, 패킷 드라이버(110)의 수신 버퍼에 이전에 수신된 데이터의 처리가 완료되었는지 검사하고(단계 S32), 이전 데이터가 모두 처리되었으면, 수신 프로시져(ReadProcedure())룰 수행하고(단계 S33), 수신프로시져는 데이터를 수신한다.
도 7은 수신 프로시져의 흐름을 나타낸 흐름도 이다.
수신 프로시져(소프트웨어적으로 구현될 수 있는 프로그램이다.)는 통신 버퍼에서 패킷 데이터를 받아온다(단계 S40). 이때, 현재 연결된 상태인지 검사하고(단계 S42) 연결이 종료되었으면, 프로시져를 종료하고 수신 이벤트(receive event)를 종료하며, 연결이 된 상태이면, 받은 자료가 있는 지 검사한다(단계 S44). 만약, 수신되는 데이터가 많을 경우 나누어서 받으며, 데이터 송신 완료 명령어를 받으면 수신을 종료한다. 이와 같은 과정을 거쳐서 통신 버퍼로부터 받은 데이터는 디코딩(decoding)을 거치며, CRC 체크(에러 체크)를 하여 데이터의 정확성을 유지하는 데이터 분석을 거친다(단계 S46). 이때, 디코딩은 패킷의 이상 여부를 검사 할 수 있는 시기를 마련해 준다. 이어서, 받은 데이터는 패킷 메모리 영역의 수신 버퍼(502)에 저장되고(단계 S48) 패킷을 생성한 서브 프로그램으로 자료 수신을 통보함으로써(단계 S34), 수신 이벤트를 종료하고(단계 S35) 데이터의 처리를 완료한다. 한편, 데이터 수신을 통보 받은 메인 애플리케이션(101) 및 서브 프로그램(102)에서는 고유의 수신 버퍼를 참조하여 받은 데이터를 처리한다.
이상, 본 발명의 바람직한 실시 예에 대해 상세히 기술하였지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구 범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는, 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서, 본 발명의 앞으로의 실시 예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
이와 같이 본 발명에 따르면, 통신망으로 연결된 단말기간의 실시간 원격제어 시 양방향 제어가 가능할 뿐만 아니라 상호간의 연결을 끊지 않은 상태에서 제어권을 주고받을 수 있으며 멀티 패킷 프로토콜을 사용함으로써, 동시에 여러 작업을 수행할 수 있는 원격 멀티태스킹이 가능하고, 다량의 데이터를 처리할 때, 원격제어 엔진을 구성하는 메인 애플리케이션 프로그램 및 여러 서브 프로그램들로부터 발생하는 데이터의 특성에 따라 각 데이터의 특성에 맞게 전송 전용 포트를 설정하여 데이터 처리 속도의 향상 및 데이터 전송의 정확성을 기할 수 있는 효과가 있다.

Claims (8)

  1. 통신망으로 상호 연결된 제1 단말기와 제2 단말기가 상호 원격 제어하는 방법에 있어서,
    제1 단말기와 제2 단말기에 각각 설치된 원격제어 엔진이 상대방 단말기로 전송할 데이터를 패킷으로 생성하여 패킷 드라이브에 저장하는 패킷 생성단계;
    상기 제1 단말기에서 제어 요청 명령어를 원격지에 있는 상기 제2 단말기로 전송하는 원격제어 요청단계;
    상기 원격제어 요청 명령어를 전송받은 상기 제2 단말기가 원격제어 가능 메시지를 상기 제1 단말기로 전송하는 원격제어 접수단계;
    상기 제1 단말기가 상기 제2 단말기의 제어권을 장악하고 상기 제2 단말기를 통하여 원하는 작업을 수행하는 원격제어 수행단계;
    상기 제1 단말기가 상기 제2 단말기의 원격제어를 통하여 상기 수행하던 작업이 종료되면 원격제어 종료 메시지를 상기 제2 단말기에 전송하는 원격제어 종료 요청단계;
    상기 제2 단말기가 상기 제1 단말기의 상기 원격제어 종료 메시지에 대한 응답 메시지를 전송하고 원격제어 가능 상태를 종료시키는 원격제어 종료단계;
    상기 원격제어 종료단계가 종료된 후 상기 제1 단말기와 상기 제2 단말기가 상호 연결을 끊지 않은 상태에서 상기 제2 단말기에서 상기 제1 단말기로 상기 제어 요청 명령어를 전송하면 상기 제1 단말기와 상기 제2 단말기의 지위가 바뀌어상기 단계들이 수행될 수 있는 제어권 교환단계를 포함하는 것을 특징으로 하는 실시간 원격제어 방법.
  2. 제 1항에 있어서, 상기 원격제어 엔진은,
    상대방 단말기로 전송할 패킷들과 상대방 단말기로부터 전송된 패킷들을 저장하고 상기 패킷들을 송수신하는 패킷 드라이버;
    상기 상대방 단말기로 전송할 데이터들을 패킷으로 생성하여 상기 패킷 드라이버에 저장하거나, 상기 상대방 단말기로부터 전송되어 상기 패킷 드라이버에 저장된 패킷들을 데이터로 전환시키는 메인 애플리케이션 프로그램 및 서브 프로그램들을 포함하는 것을 특징으로 하는 실시간 원격제어 방법.
  3. 제 2항에 있어서, 상기 메인 애플리케이션 프로그램 및 상기 서브 프로그램들은 각각 자신에게 해당하는 데이터의 패킷생성 및 패킷의 데이터화 프로세스와 데이터 분석기능을 갖고 각각 독립적으로 상기 패킷을 생성하고 관리하는 것을 특징으로 하는 실시간 원격제어 방법.
  4. 제 2항에 있어서, 상기 메인 애플리케이션 프로그램은 상기 통신망에서의 상기 단말기간의 연결을 독자적으로 수행하는 것을 특징으로 하는 것을 특징으로 하는 실시간 원격제어 방법.
  5. 제 2항에 있어서, 상기 패킷은,
    패킷의 시작을 의미하는 'Block_Start'영역;
    패킷의 끝을 의미하는 'Block_End'영역;
    패킷의 정보가 실리는 'Packet Header'영역;
    상기 메인 애플리케이션 및 상기 서브 프로그램들에서 정의된 명령어 및 전송될 실제 데이터가 실리는 '전송 자료'영역을 포함하는 것을 특징으로 하는 실시간 원격제어 방법.
  6. 제 5항에 있어서, 상기 'Packet Head'영역은,
    패킷 드라이버에 의해 관리되는 메모리 영역에서 상기 메인 애플리케이션 및 상기 서브 프로그램들의 고유 정보를 함유하는 'Source'영역;
    접속하고자하는 상대방 메인 애플리케이션 및 서브 프로그램들의 영역에 대한 정보를 저장하는 'Target'영역;
    패킷간에 주고받는 명령어를 함유한 '명령어'영역;
    전송된 명령어 및 데이터가 올바르게 전달되었는지 확인하는 에러 체크 코드를 함유한 'CRC(Cyclic Rule Check)'영역을 포함하는 것을 특징으로 하는 실시간 원격제어 방법.
  7. 제 6항에 있어서, 상기 'Source'영역은,
    상기 패킷구조 자신의 메모리 영역을 가리키는 정보를 저장한 'hKPacket'영역;
    통신을 하기 위한 포트 번호를 나타내며 메인 애플리케이션 및 각 서브 프로그램에서 생성된 패킷의 구분자 역할을 하는 'dwPort'영역;
    송신 및 수신될 명령어 및 데이터의 송/수신을 위한 메모리 영역인 '송/수신 버퍼'영역;
    송/수신되는 데이터를 임시 저장하는 '임시 송/수신 버퍼'영역;
    패킷과 통신을 하기 위한 메인 애플리케이션 및 각 서브 프로그램의 윈도우의 저장 영역인 'hWnd'영역;
    메인 애플리케이션 및 각 서브 프로그램과 패킷간의 통신을 위한 메시지를 저장하는 'Message'영역을 포함하는 것을 특징으로 하는 실시간 원격제어 방법.
  8. 제 1항에 있어서, 상기 원격제어 수행단계는 상기 제1 단말기가 상기 제2 단말기의 제어권을 장악하고 상기 제2 단말기의 데이터 업데이트, 마우스, 키보드,화면, 파일 송수신을 제어하거나 상기 제2 단말기에 설치된 애플리케이션 프로그램을 실행시켜서 상기 제1 단말기가 원하는 작업을 수행할 수 있는 단계임을 특징으로 하는 실시간 원격제어 방법.
KR10-2000-0025725A 2000-05-15 2000-05-15 실시간 원격제어 방법 KR100366824B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0025725A KR100366824B1 (ko) 2000-05-15 2000-05-15 실시간 원격제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0025725A KR100366824B1 (ko) 2000-05-15 2000-05-15 실시간 원격제어 방법

Publications (2)

Publication Number Publication Date
KR20010104522A KR20010104522A (ko) 2001-11-26
KR100366824B1 true KR100366824B1 (ko) 2003-01-09

Family

ID=45812885

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0025725A KR100366824B1 (ko) 2000-05-15 2000-05-15 실시간 원격제어 방법

Country Status (1)

Country Link
KR (1) KR100366824B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040018288A (ko) * 2002-08-22 2004-03-03 이승재 개인용 단말기 및 그 제어방법
JP4673588B2 (ja) * 2004-08-11 2011-04-20 株式会社東芝 情報機器遠隔操作システムおよび情報機器
KR101506656B1 (ko) * 2013-10-29 2015-03-27 주식회사 레인트 애플리케이션 품질 관리를 위한 시스템 및 그 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980076749A (ko) * 1997-04-14 1998-11-16 윤종용 통신처리장치와 터미널장치 간의 인터페이스 장치 및 방법
JPH11120148A (ja) * 1997-10-09 1999-04-30 Hitachi Ltd 非同期通信装置およびシステム
KR20000012756A (ko) * 1999-12-23 2000-03-06 이재혁 클러스터링 서버에서의 분산 처리 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980076749A (ko) * 1997-04-14 1998-11-16 윤종용 통신처리장치와 터미널장치 간의 인터페이스 장치 및 방법
JPH11120148A (ja) * 1997-10-09 1999-04-30 Hitachi Ltd 非同期通信装置およびシステム
KR20000012756A (ko) * 1999-12-23 2000-03-06 이재혁 클러스터링 서버에서의 분산 처리 제어 방법

Also Published As

Publication number Publication date
KR20010104522A (ko) 2001-11-26

Similar Documents

Publication Publication Date Title
US8140688B2 (en) Method and system for establishing connections between nodes in a communication network
US7428690B2 (en) Packet communication apparatus
EP1564959B1 (en) System and method for trivial file transfer protocol including broadcasting function
EP1659754A1 (en) System and method for remotely controlling a debugging unit
CN1446425A (zh) 在无线射频介质上提供远程网络驱动器接口规范服务
CN111277600B (zh) 数据传输方法及装置
WO2022032984A1 (zh) 一种mqtt协议仿真方法及仿真设备
CN111541688B (zh) 一种兼容多协议的嵌入式系统、数据处理方法及装置
US20090106401A1 (en) System and method for Intra Network Internet Protocol (IP) address modification by dual controller
KR100366824B1 (ko) 실시간 원격제어 방법
CN102609353A (zh) 对程序调试进行管理的方法、装置及系统
US7562109B2 (en) Connectivity confirmation method for network storage device and host computer
US7448069B2 (en) Access-request control method, driver program for communication device, and communication device
US7529812B2 (en) Socket connections over a serial link
KR100900963B1 (ko) 네트워크 프로토콜 패킷 전송을 위한 하드웨어 장치 및 그방법
KR100412237B1 (ko) 사용자 수준의 소켓 계층과 그를 이용한 통신 인터페이스방법
US6757773B1 (en) System and method for determining support capability of a device coupled to a bus system
CN118041704B (zh) Kubernetes容器访问方法、装置、计算设备及存储介质
Moritz et al. Real-time service-oriented communication protocols on resource constrained devices
Hattig et al. Roadmap for mobile robot specifications
CN114615233A (zh) 数据传输方法、装置及系统、网关设备、终端设备及介质
JP4456556B2 (ja) ネットワーク装置
CN115037795A (zh) 一种嵌入式设备多机通信方法
CN113301130A (zh) 缝纫设备控制器的通讯方法、装置、终端设备及存储介质
CN114145000A (zh) 云应用的高效的心跳机制

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

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20131217

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20141215

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20151207

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20171211

Year of fee payment: 16