상기의 기술적 과제를 해결하기 위한, 본 발명에 따른 네트워크 시스템에서 매개 디바이스의 통신 방법은, (a) 방화벽, 내부 네트워크 및 외부 네트워크를 통하여, 상기 내부 네트워크 내 적어도 하나의 디바이스들을 관리하는 관리서버와 상기 적어도 하나의 디바이스들과 매개 디바이스가 연결되는 단계; (b) 상기 관리서버와의 연결을 유지하는 패킷을 수신하는 단계; 및 (c) 상기 관리서버로부터 상기 적어도 하나의 디바이스 중 제1디바이스로 연결을 요청하는 메시지가 수신되면, 상기 매개 디바이스가 상기 수신된 메시지를 상기 제1디바이스로 전송하는 단계;를 포함한다.
바람직하게는, (d) 상기 제1디바이스는 상기 수신된 메시지를 이용하여 상기 관리서버와 연결하고, 상기 관리서버의 요청에 응답하는 단계;를 더 포함한다.
상기 (c) 단계는 상기 수신된 메시지를 분석하여 상기 수신된 메시지가 상기 제1디바이스에 대응되는 것으로 확인되면, 상기 수신된 메시지를 상기 제1디바이스에게 전송한다.
보다 바람직하게는, 상기 관리서버는 상기 관리서버에 최초로 등록되는 상기 매개 디바이스에게 상기 관리서버와의 연결을 유지하도록 지정한다.
또한, 상기 (c) 단계는 상기 제1디바이스로부터 전송된 상태정보를 기초로 상기 제1디바이스의 관리가 필요하면, 상기 제1디바이스와의 연결을 요청하는 메시지를 생성하여 전송한다.
상기 (b) 단계에서 상기 관리서버와 상기 매개 디바이스는 지정된 시간동안 연결되며, 상기 연결되는 시간은 연장가능하다.
상기 복수의 디바이스들 및 상기 매개 디바이스는 화상형성장치이며, 상기 네트워크에 의해 통신가능하도록 연결된다.
한편, 상기의 기술적 과제를 해결하기 위한, 본 발명에 따른 네트워크 디바이스 관리 시스템은, 내부 네트워크에 연결되는 적어도 하나의 디바이스; 상기 내부 네트워크, 방화벽 및 외부 네트워크를 통해 상기 적어도 하나의 디바이스와 설정된 시간 단위로 연결되어 상기 적어도 하나의 디바이스를 관리하며, 상기 적어도 하나의 디바이스 중 제1디바이스와의 연결을 요청하는 메시지를 송신하는 관리서버; 및 상기 적어도 하나의 디바이스를 대표하여 상기 관리서버와의 연결을 유지하며, 상기 관리서버로부터 상기 메시지가 수신되면, 상기 제1디바이스에게 상기 메시지를 전송하는 매개 디바이스;를 포함한다.
상세하게는, 상기 매개 디바이스는, 상기 관리서버로부터 상기 메시지를 수신하는 디바이스 통신부; 상기 수신된 메시지를 확인하여 상기 수신된 메시지에 대응되는 상기 제1디바이스에게 전송하도록 상기 디바이스 통신부를 제어하는 메시지 처리부; 및 상기 관리서버와의 연결을 유지하도록 상기 디바이스 통신부를 제어하는 등록/연결제어부;를 포함한다.
상기 매개 디바이스는 상기 관리서버로부터 상기 매개 디바이스로 선택되었음을 통지하는 패킷이 수신되면, 상기 관리서버와의 연결을 유지한다.
상기 제1디바이스는 상기 수신된 메시지를 이용하여 상기 관리서버와 연결하고, 상기 관리서버의 요청에 응답한다.
보다 상세하게는, 상기 관리서버는, 상기 연결을 유지할 매개 디바이스를 설정된 방식에 의해 선택하고, 상기 매개 디바이스로 선택되었음을 통지하기 위한 패킷을 생성하는 매개 디바이스 선택부; 및 상기 생성된 패킷을 상기 선택된 매개 디바이스에게 전송하고, 상기 매개 디바이스와의 연결을 유지하는 서버 통신부;를 포함한다.
상기 관리서버는 상기 관리서버에 최초로 등록되는 디바이스에게 상기 매개 디바이스로 선택되었을 통지한다.
특히, 상기 관리서버는, 상기 제1디바이스와의 연결을 요청하기 위한 상기 메시지를 생성하여 상기 서버 통신부에게 출력하는 메시지 생성부;를 더 포함하며, 상기 서버 통신부는 상기 생성된 메시지를 상기 매개 디바이스에게 전송한다.
상기 적어도 하나의 디바이스 및 상기 매개 디바이스는 인입된 용지에 화상을 형성하는 화상형성장치이며, 상기 내부 네트워크에 의해 통신가능하도록 연결된다.
이하에서는 첨부된 도면들을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 네트워크 디바이스 관리 시스템을개략적으로 도시한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 네트워크 디바이스 관리 시스템은 적어도 하나의 디바이스(200-1, …, 200-n, 여기서 n은 상수), 매개 디바이스(300) 및 관리서버(400)를 포함한다.
매개 디바이스(300) 및 적어도 하나의 디바이스들(200-1, …, 200-n)은 사내 네트워크 또는 댁내 네트워크와 같은 그룹 네트워크(10)를 통해 통신가능하도록 연결되는 기기로서, 사무실 내에 설치되는 프린터, 복합기, 팩시밀리와 같은 화상형성장치를 들 수 있다. 그룹 네트워크(10)는 게이트 웨이(10a) 및 LAN과 같은 방식에 의해 구축가능하다.
관리서버(400)는 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200- n)의 등록정보 및 상태정보를 기초로 매개 디바이스(300) 및 복수의 디바이스들 (200-1, …, 200-n)를 관리하는 서버이다. 즉, 관리서버(400)는 관리서버(400)에 등록된 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)로부터 상태정보를 수집하고, 수집한 상태정보를 기초로 각종 명령, 스케쥴 정보를 전달하여 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)을 관리한다. 이러한 관리서버(400)는 그룹 네트워크(10), 방화벽(20) 및 외부 인터넷망(30)을 통해 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)과 통신가능하도록 연결된다.
방화벽(20)은 외부기기가 인터넷망(30)을 통해 그룹 네트워크(10)로 침입하 는 것을 방지한다. 본 발명에서, 복수의 디바이스들(200-1, …, 200-n)는 최초 관리서버(400)에 등록을 요청한 후, 스케쥴링된 시간마다 관리서버(400)에 연결하여 상태정보 등을 전송한다. 스케쥴링된 시간은 관리서버(400)에 의해 설정되거나 또는 복수의 디바이스들(200-1, …, 200-n)가 자체적으로 설정할 수 있다.
반면, 매개 디바이스(300)는 관리서버(400)에 의해 지정된 디바이스로서, 복수의 디바이스들(200-1, …, 200-n)을 대표하여 관리서버(400)와 끊임없이 지속적으로 연결을 유지한다. 그리고, 관리서버(400)로부터 복수의 디바이스들(200-1, …, 200-n) 중 어느 하나의 디바이스(이하, ‘제1디바이스‘라 칭함)와의 연결을 요청하는 연결요청 메시지가 전송되면, 매개 디바이스(300)는 전송된 메시지에 대응되는 제1디바이스(200-1)에게 그룹 네트워크(10)를 통해 연결요청 메시지를 전송 한다. 이로써, 제1디바이스(200-1)는 스케쥴링된 시간이 아니어도, 전송된 연결요청 메시지에 따라 관리서버(400)에 연결하여 관리서버(400)와 통신을 수행한다.
즉, 관리서버(400)는 통신을 원하는 디바이스가 연결될 때까지 기다리지 않고, 매개 디바이스(300)에게 요청 메시지를 전송함으로써 통신을 원하는 디바이스와 통신할 수 있다.
도 2는 도 1에 도시된 네트워크 디바이스 관리 시스템의 시퀀스를 개략적으로 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, 그룹 네트워크(10)에 연결된 매개 디바이스(300)는 관리서버(400)와의 연결을 시도한 후, 연결되면 관리서버(400)에게 등록정보를 전송하여 등록을 요청한다(S1). 관리서버(400)는 전송된 등록정보를 데이터 베이 스에 저장한 후, 등록 ack 및 스케쥴 정보를 매개 디바이스(300)에게 전송한다(S2). 등록 ack는 등록완료되었음을 나타내며, 스케쥴 정보는 매개 디바이스(300)와 관리서버(400)의 연결이 끊긴 후, 매개 디바이스(300)가 재접속할 시간 및 재접속시 제공할 상태정보 등을 나타낸다.
그리고, 복수의 디바이스들(200-1, …, 200-n) 중 제1디바이스(200-1)로부터 연결이 시도된 후, 등록정보가 전송되면(S3), 관리서버(400)는 제1디바이스(200-1)의 등록정보를 저장한 후, 등록 ack 및 스케쥴 정보를 제1디바이스(200-1)에게 전송한다(S4). 이와 유사한 방식으로 복수의 디바이스들(200-1, …, 200-n)의 등록이 수행되므로 자세한 설명은 생략한다.
복수의 디바이스들(200-1, …, 200-n) 중 적어도 하나의 디바이스 및 매개 바이스(300)가 관리서버(400)에 연결하여 등록되면, 관리서버(400)는 등록된 디바이스들 중 하나를 선택하여 실제 매개 디바이스로 지정한다(S5). 즉, S5단계가 수행되기 이전까지는 실제 매개 디바이스는 존재하지 않는 것이다. S5단계는 관리 서버(400)가 선택된 디바이스에게 매개 디바이스로 지정되었음을 통지하는 패킷을 전송함으로써 수행된다. 선택된 매개 디바이스(300)는 패킷을 수신하였음을 나타내는 지정 ack를 관리서버(400)에게 전송하고, 관리서버(400)와의 연결을 유지한다(S6).
S6단계 이후, 관리서버(400)가 관리서버(400)에 등록된 복수의 디바이스들(200-1, …, 200-n) 중 제1디바이스(200-1)와 연결되기를 원하는 경우, 관리서버(400)는 제1디바이스(200-1)와의 연결을 요청하는 연결요청 메시지를 매개 디바 이 스(300)에게 전송한다(S7). 매개 디바이스(300)는 전송된 연결요청 메시지를 연결 요청 메시지에 대응되는 제1디바이스(200-1)에게 전송(forwarding)한다(S8). 제1디바이스(200-1)는 수신된 연결요청 메시지에 응답하여 관리서버(400)에게 연결하여 관리서버(400)와의 통신을 수행한다(S9). 즉, 제1디바이스(200-1)는 스케쥴링된 시간이 아니어도, 관리서버(400) 및 매개 디바이스(300)를 통해 전송된 연결요청 메시지에 따라 관리서버(400)에 연결하여 관리서버(400)와 통신을 수행한다.
여기서, 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)는 지정된 시간동안 연결되며, 지정된 시간이 만료되면 연결되는 시간은 연장가능하다.
보다 자세히 설명하면, 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)는 TCP/IP(Transmission Control Protocol/Internet Protocol) 기반에 의해 관리서버(400)에 연결되어 통신한다. 따라서, 선택된 매개 디바이스(300)와 관리서버(400)는 TCP 커넥션에 의해 끊임없이 연결되는 것이 가능하다. 즉, 매개 디바이스(300)와 관리서버(400)는 TCP/IP 기반에 의해 통신하므로, 매개 디바이스(300)와 관리서버(400)는 TCP 커넥션이 이루어진 상태이다. 따라서, 매개 디바이스(300)와 관리서버(400)는 설저된 TCP 타임 아웃 시간동안 연결을 유지할 수 있으며, TCP 타임 아웃 시간에 도달하면 관리서버(400)의 요청에 의해 연장할 수 있다.
도 3은 도 1에 도시된 매개 디바이스를 보다 자세히 도시한 블록도이다.
도 1 내지 도 3을 참조하면, 매개 디바이스(300)와 복수의 디바이스들(200-1, …, 200-n)은 그룹 네트워크(10)를 통해 통신가능하도록 연결되며, 매개 디바이 스(300), 제1디바이스(200-1)를 포함하는 복수의 디바이스들(200-1, …, 200-n) 및 관리서버(400)는 그룹 네트워크(10), 방화벽(20) 및 외부 인터넷망(30)을 통해 통신가능하도록 연결된다.
먼저, 매개 디바이스(300)는 관리서버(400)에 의해 실제 매개 디바이스로 선택된 디바이스로서, 복수의 디바이스들(200-1, …, 200-n)을 대표하여 관리서버(400)와의 연결을 유지한다. 그리고, 매개 디바이스(300)는 관리서버(400)로부터 제1디바이스(200-1)와의 연결을 요청하는 연결요청 메시지가 수신되면, 제1디바이스(200-1)에게 연결요청 메시지를 전송한다.
이를 위하여, 매개 대바이스(300)는 데이터 베이스(Data Base, 이하, ‘DB'라 칭함)(310), 등록/연결 제어부(320), 정보 제공부(330), 메시지 처리부(340) 및 디바이스 통신부(350)를 포함하며, 상술한 동작을 수행하는데 필요한 관련 프로그램이 저장된 메모리(미도시)가 구비된다.
DB(310)는 매개 디바이스(300)와 관련된 등록정보 및 상태정보를 저장한다. 등록정보는 매개 디바이스(300)의 식별정보, 모델명, 시리얼 넘버, 제조년월일 등의 기본 정보를 포함하며, 상태정보는 현재 잔여 토너량, 인쇄된 페이지수 등 현재 매개 디바이스(300)의 상태를 알리는 정보를 포함하며, 상태정보는 매개 디바이스(300)의 상태에 따라 업데이트되는 것이 바람직하다.
매개 디바이스(300)가 최초 그룹 네트워크(10)에 설치되면, 등록/연결 제어부(320)는 관리서버(400)와의 연결을 시도하도록 디바이스 통신부(350)를 제어한다. 그리고, 등록/연결 제어부(320)는 DB(310)로부터 등록정보를 독출한 후, 독출 된 등록정보를 관리서버(400)에게 전송하여 매개 디바이스(300)의 등록을 요청하도록 디바이스 통신부(350)를 제어한다.
또한, 관리서버(400)에 등록된 후, 등록/연결 제어부(320)는 스케쥴링된 시간마다 관리서버(400)에 연결하도록 디바이스 통신부(350)를 제어한다. 스케쥴링된 시간은 관리서버(400)에 의해 지정되거나 매개 디바이스(300)가 자체적으로 설정할 수 있으며, 본 발명에서는 관리서버(400)에 의해 지정되는 경우를 예로 들어 설명한다.
또한, 매개 디바이스(300)가 관리서버(400)에 의하여 실제 매개 디바이스로 지정되면, 등록/연결 제어부(320)는 관리서버(400)와의 연결을 유지하도록 디바이스 통신부(350)를 제어한다. 즉, 등록/ 연결 제어부(320)는 디바이스 통신부(350)를 통해 관리서버(400)로부터 전송된 지정 패킷을 입력받으면 실제 매개 디바이스로 동작하기 시작하고, 관리서버(400)와의 연결을 종료하지 않도록 디바이스 통신부(350)를 제어한다.
또한, 등록/연결 제어부(320)는 관리서버(400)로부터 디바이스 통신부(350)를 통해 수신된 각종 요청, 명령 및 스케쥴 정보를 정보 제공부(330)로 출력한다.
정보 제공부(330)는 수신된 각종 요청, 명령 및 스케쥴 정보에 대응되는 매개 디바이스(300)의 상태정보를 DB(310)로부터 독출하여 독출된 상태정보를 디바이스 통신부(350)에게 제공한다. 이에 의해, 디바이스 통신부(350)는 상태정보를 연결된 관리서버(400)에 게 전송한다.
메시지 처리부(340)는 디바이스 통신부(350)를 통해 관리서버(400)로부터 전 송된 복수의 디바이스들(200-1, …, 200-n) 중 제1디바이스(200-1)와의 연결을 요청하는 메시지를 분석한다. 분석 결과, 복수의 디바이스들(200-1, …, 200-n) 중 제1디바이스(200-1)와의 연결을 요청하는 메시지인 것으로 확인되면, 메시지 처리부(340)는 전송된 연결 요청 메시지를 제1디바이스(200-1)에게 전송(forwarding)하도록 디바이스 통신부(350)를 제어한다.
디바이스 통신부(350)는 등록/연결 제어부(320)의 제어에 의해 관리서버(400)에게 연결을 요청하며, 등록정보 또는 상태정보를 관리서버(400)에게 전송한다. 또한, 디바이스 통신부(350)는 관리서버(400)로부터 상태정보의 보고를 요청하는 패킷, 또는 추후 접속할 스케쥴링 시간을 수신하여 등록/연결 제어부(320)에 게 출력한다. 여기서, 디바이스 통신부(350)는 그룹 네트워크(10), 방화벽(20) 및 외부 인터넷망(30)을 통해 관리서버(400)와 연결된다.
본 발명에서, 디바이스 통신부(350)는 관리서버(400)로부터 전송된 패킷 또는 메시지의 특성을 분석하여, 분석된 특성 별로 패킷 또는 메시지를 출력한다.
보다 자세히 설명하면, 디바이스 통신부(350)는 관리서버(400)와 연결된 후, 관리 서버(400)로부터 전송되는 각종 명령 및 스케쥴 정보를 등록/연결 제어부(320)로 출력한다. 그리고, 디바이스 통신부(350)는 등록/연결 제어부(320) 및 정보 제공부(330)로부터 출력되는 등록정보, 상태정보, 각종 ack 등을 관리서버(400)로 전송하며, 메시지 처리부(340)로부터 출력되는 연결 요청 메시지를 제1디바이스(200-1)에게 전송(forwarding)한다.
또한, 디바이스 통신부(350)는 관리서버(400)로부터 복수의 디바이스들(200- 1, …, 200-n) 중 일원인 매개 디바이스(300)가 실제 매개 디바이스로 지정되었음을 통지하는 패킷을 수신하면, 수신된 패킷을 등록/연결 제어부(320)로 출력한다.
또한, 디바이스 통신부(350)는 관리서버(400)로부터 복수의 디바이스들(200-1, …, 200-n) 중 제1디바이스(200-1)와의 연결을 요청하는 메시지를 수신하면, 수신된 메시지를 메시지 처리부(340)로 출력한다.
상술한 매개 디바이스(300)의 등록/연결 제어부(320), 정보 제공부(330) 및 메시지 처리부(340)는 원칩으로 구현가능하다.
도 4는 도 1에 도시된 관리서버를 보다 자세히 도시한 블록도이다.
먼저, 관리서버(400)는 그룹 네트워크(10)에 연결된 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)을 인터넷망(30)을 통해 관리하는 서버로서, 관리서버(400)에 의해 선택된 매개 디바이스(300)와의 연결을 유지한다. 그리고, 관리서버(400)는 복수의 디바이스들(200-1, …, 200-n) 중 제1디바이스(200-1)와의 연결이 필요한 경우, 제1디바이스(200-1)와의 연결을 요청하는 메시지를 생성하여 매개 디바이스(300)에게 전송한다. 이에 의해, 관리서버(400)는 스케쥴링된 시간 이전에 제1디바이스(200-1)와 연결되어 통신한다.
이를 위하여, 도 1 내지 도 4를 참조하면, 관리서버(400)는 서버 통신부(410), 연결 제어부(420), 디바이스 관리부(430), DB(440), 매개 디바이스 선택부(450) 및 메시지 생성부(460)를 포함하며, 상술한 동작을 수행하는데 필요한 관련 프로그램이 저장된 메모리(미도시)가 구비된다.
서버 통신부(410)는 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n) 중 어느 하나로부터 연결을 요청하는 패킷, 등록정보 또는 상태정보가 수신되면, 수신된 패킷, 등록정보, 상태정보 등을 연결 제어부(420)에게 출력한다. 이하에서는, 실제 매개 디바이스로 지정되기 이전의 매개 디바이스(300)가 관리 서버(400)에게 최초로 연결을 요청하는 경우를 예로 들어 설명한다.
연결 제어부(420)는 서버 통신부(410)로부터 연결을 요청하는 패킷이 입력되면, 연결을 요청하는 패킷을 전송한 매개 디바이스(300)와의 연결을 맺도록 서버 통신부(410)를 제어한다. 그리고, 연결 제어부(420)는 매개 디바이스(300)로부터 전송된 등록정보, 상태정보를 디바이스 관리부(430)에게 제공한다.
또한, 연결 제어부(420)는 연결된 매개 디바이스(300) 또는 복수의 디바이스들(200-1, …, 200-n)에게 각종 요청, 명령, 스케쥴 정보를 전송하도록 서버 통신부(410)를 제공한다.
디바이스 관리부(430)는 매개 디바이스(300)로부터 전송된 등록정보, 상태정보를 DB(440)에게 출력하며, DB(440)에 저장된 상태정보를 기초로 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)을 관리한다. 즉, 디바이스 관리부(430)는 연결된 매개 디바이스(300) 또는 복수의 디바이스들(200-1, …, 200-n)에게 전송할 각종 요청, 명령, 스케쥴 정보를 DB(440)에 저장된 상태정보를 기초로 생성하여 연결 제어부(420)에게 제공한다. 연결 제어부(420)는 제공된 각종 요청, 명령, 스케쥴 정보를 해당 디바이스에게 전송하도록 서버 통신부(410)를 제어한다.
또한, 디바이스 관리부(430)는 매개 디바이스(300) 또는 복수의 디바이스들 (200-1, …, 200-n)이 등록될 때마다 각 디바이스(300, 200-1, …, 200-n)의 등록 정보 및 상태정보를 매개 디바이스 선택부(450)에게 제공한다.
또한, 후술할 매개 디바이스 선택부(450)에 의해 매개 디바이스(300)가 선택된 후, 디바이스 관리부(430)는 DB(440)에 저장된 상태정보에 의해 제1디바이스(200-1)에게 각종 명령을 내려야 하는 것으로 판단되면, 제1디바이스(200-1)에게 연결을 요청하는 메시지를 생성하도록 메시지 생성부(460)를 제어한다.
DB(440)는 디바이스 관리부(430)로부터 제공되는 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)로부터 전송되는 등록정보 및 상태정보를 저장한다. 이로써, 관리서버(400)에 최초로 연결되는 매개 디바이스(300) 또는 복수의 디바이스들(200-1, …, 200-n)은 관리서버(400)에 등록된다. DB(440)에 저장되는 상태정보는 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)로부터 스케쥴링된 시간마다 제공되므로 주기적으로 업데이트된다.
매개 디바이스 선택부(450)는 디바이스 관리부(430)로부터 제공되는 매개 디바이스(300) 및 복수의 디바이스들(200-1, …, 200-n)의 등록정보 또는 상태정보를 기초로 매개 디바이스(300)를 선택한다. 그리고, 매개 디바이스 선택부(450)는 설정된 방식에 의해 선택된 디바이스에게 실제 매개 디바이스로 선택되었음을 통지하기 위한 지정 패킷을 생성하여 서버 통신부(410)에게 제공한다.
서버 통신부(410)는 매개 디바이스 선택부(450)에서 생성된 지정 패킷을 선택된 매개 디바이스(300)로 전송한다. 소정 시간 경과 후, 선택된 매개 디바이스(300)로부터 지정 패킷을 수신하였음을 의미하는 지정 ack가 수신되면, 매개 디바이스(300)와 관리서버(400)와의 지속적인 연결이 실행된다.
본 발명에 있어서, 매개 디바이스 선택부(450)는 관리서버(400)에 최초로 등록된 디바이스를 매개 디바이스(300)로 선택한다. 즉, 매개 디바이스 선택부(450)는 디바이스 관리부(430)로부터 최초로 제공되는 등록정보에 대응되는 디바이스를 매개 디바이스로 선택한다.
또 다른 예로, 매개 디바이스 선택부(450)는 디바이스 관리부(430)로부터 제공되는 각 디바이스(300, 200-1, …, 200-n)의 상태정보를 분석하여 현재 성능이 가장 우수한 디바이스를 매개 디바이스로 선택할 수 있다. 이러한 경우, 매개 디바이스 선택부(450)는 설정된 주기마다 매개 디바이스(300)를 선택하도록 설계될 수 있다.
메시지 생성부(460)는 디바이스 관리부(430)의 제어에 의해 제1디바이스(200-1)와의 연결을 요청하는 메시지를 생성하여 서버 통신부(410)에게 제공한다.
서버 통신부(410)는 제공된 제1디바이스(200-1)와의 연결을 요청하는 메시지를 연결 유지 중인 매개 디바이스(300)에게 전송한다.
소정 시간 경과 후, 제1디바이스(200-1)로부터 연결을 요청하는 패킷이 수신되면, 서버 통신부(410)는 수신된 패킷을 연결 제어부(420)에게 제공한다. 연결 제어부(420)는 수신된 패킷에 의해 제1디바이스(200-1)와의 연결을 허가하도록 서버 통신부(410)를 제어한다. 그리고, 디바이스 관리부(430)는 저장된 상태정보를 기초로 제1디바이스(200-1)에게 요청할 각종 명령, 스케쥴 정보 등을 생성하며, 연결 제어부(420)는 생성된 명령, 스케쥴 정보를 제1디바이스(200-1)에게 전송하도록 서버 통신부(410)를 제어한다.
도 5는 도 1에 도시된 제1디바이스를 보다 자세히 도시한 블록도이다.
먼저, 제1디바이스(200-1)는 스케쥴링된 시간마다 관리서버(400)에 접속하여 관리서버(400)와 통신 하는 디바이스로서, 매개 디바이스(300)와는 그룹 네트워크(10)에 의해 연결된다.
이를 위하여, 도 1 내지 도 5를 참조하면, 제1디바이스(200-1)는 제1DB(210), 제1등록/연결 제어부(220), 제1정보 제공부(230), 제1메시지 처리부(240) 및 제1디바이스 통신부(250)를 포함하며, 상술한 동작을 수행하는데 필요한 관련 프로그램이 저장된 메모리(미도시)가 구비된다.
도 5에 도시된 제1DB(210), 제1등록/연결 제어부(220), 제1정보 제공부(230), 제1메시지 처리부(240) 및 제1디바이스 통신부(250)는 도 3에 도시된 DB(310), 등록/연결 제어부(320), 정보 제공부(330), 메시지 처리부(340) 및 디바이스 통신부(350)와 유사한 동작을 수행하므로 상세한 설명은 생략한다.
다만, 매개 디바이스(300)의 디바이스 통신부(350)로부터 연결요청 메시지가 전송되면, 제1디바이스 통신부(250)는 전송된 연결 요청 메시지를 제1등록/연결 제 어부(220)로 제공한다. 제1등록/연결 제어부(220)는 제공된 연결 요청 메시지가 관리서버(400)와의 연결을 요청하는 메시지인 것으로 확인되면, 관리서버(400)에 연결하도록 제1디바이스 통신부(250)를 제어한다.
관리서버(400)와 연결된 후, 관리서버(400)로부터 각종 명령, 스케쥴 정보 등이 전송되면, 제1등록/연결 제어부(220)는 전송된 명령, 스케쥴 정보에 대응되는 상태정보를 제1DB(210)로부터 독출한 후, 독출된 상태정보를 관리서버(400)에 전송하도록 제1디바이스 통신부(250)를 제어한다.
이로써, 관리서버(400) 및 매개 디바이스(300)를 통해 연결 요청 메시지가 수신되기 이전에 설정된 스케쥴링 시간이 경과하지 않아도, 제1디바이스(200-1)는 관리서버(400)의 연결 요청에 의해 관리서버(400)에 연결하여 통신할 수 있다.
도 6은 도 1의 디바이스가 매개 디바이스로 지정되는 과정을 설명하기 위한 흐름도이다.
도 1 내지 도 6을 참조하면, 매개 디바이스(300)의 등록/연결 제어부(320)는 그룹 네트워크(10), 방화벽(20) 및 외부 인터넷망(30)을 통해 관리서버(400)에 연결하도록 디바이스 통신부(350)를 제어한다(S610). S610단계의 연결이 매개 디바이스(300)와 관리서버(400)가 처음으로 맺은 연결이면(S620), 등록/연결 제어부(320)는 DB(310)에 저장된 등록정보를 관리서버(400)에게 전송하여 등록요청을 하도록 디바이스 통신부(350)를 제어한다(S630). 여기서, 매개 디바이스(300)는 실제 매개 디바이스로 지정되기 이전의 디바이스이다.
S630단계 후, 관리서버(400)로부터 각종 요청, 명령 또는 스케쥴 정보가 외부인터넷망(30), 방화벽(20), 그룹 네트워크(10) 및 디바이스 통신부(350)를 통해 수신되면, 등록/연결 제어부(320)는 수신된 각종 요청, 명령에 대응되는 동작을 수행하거나 상태정보를 관리서버(400)에게 전송하도록 디바이스 통신부(350)를 제어한다(S640, S650).
소정 시간 경과 후, 관리서버(400)로부터 실제 매개 디바이스로 지정되었음 을 통지하는 지정 패킷이 수신되면(S660), 등록/연결 제어부(320)는 실제 매개 디바이스로 동작하여 관리서버(400)와의 연결을 계속 유지하도록 디바이스 통신부(350)를 제어한다(S670). 여기서, 선택된 매개 디바이스(300)와 관리서버(400)는 TCP 커넥션에 의해 끊임없이 연결된다.
한편, S620단계에서 S610단계에서 매개 디바이스(300)와 관리서버(400)가 처음으로 맺은 연결이 아닌 것으로 판단되면(S620), 등록/연결 제어부(320)는 스케쥴링된 매개 디바이스(300)의 상태정보를 관리서버(400)에게 전송하도록 디바이스 통신부(350)를 제어한다(S680).
그리고, 매개 디바이스(300)는 관리서버(400)에 의해 실제 매개 디바이스로 지정되지 않았으므로, 등록/연결 제어부(320)는 관리서버(400)와의 연결을 종료하도록 디바이스 통신부(350)를 제어한다(S690).
도 7은 도 1의 매개 디바이스가 관리서버로부터 수신되는 메시지에 따라 적응적으로 동작하는 과정을 설명하기 위한 흐름도이다.
도 1 내지 도 7을 참조하면, 선택된 매개 디바이스(300)의 디바이스 통신부(350)는 등록/연결 제어부(320)의 제어하에 관리서버(400)와의 연결을 유지한다(S710).
관리서버(400)와의 연결이 유지되는 중, 관리서버(400)로부터 제1디바이스(200-1)와의 연결을 요청하는 연결요청 메시지가 수신되면(S720), 디바이스 통신부(350)는 수신된 연결요청 메시지를 메시지 처리부(340)로 제공하며, 메시지 처리부(340)는 연결요청 메시지의 목적지가 제1디바이스(200-1)임을 확인하고, 연결요 청메시지를 제1디바이스(200-1)로 전송하도록 디바이스 통신부(350)를 제어한다(S730). 여기서, 제1디바이스(200-1)로부터 연결요청 메시지를 수신하였음을 통지하는 ack가 전송되지 않으면, 디바이스 통신부(350)는 연결요청 메시지를 재전송한다.
한편, S720단계 이후, TCP 타임 아웃의 연장을 요청하는 메시지가 관리서버 (400)로부터 수신되면(S740), 등록/연결 제어부(320)는 TCP 타임 아웃의 연장을 허가하는 메시지를 관리서버(400)에게 전송하도록 디바이스 통신부(350)를 제어한다(S750). 이로써, 관리서버(400)와 매개 디바이스(300)는 지속적으로 연결을 유지한다.
또한, 관리서버(400)로부터 매개 디바이스(300)의 상태정보를 요청하거나 각종 명령을 요청하는 메시지가 수신되면, 매개 디바이스(300)는 요청된 메시지에 대응되는 프로세싱 후 관리서버(400)에게 응답한다.
도 8은 도 1의 제1디바이스가 연결 요청 메시지를 수신한 경우의 동작을 설명하기 위한 흐름도이다.
도 1 내지 도 8을 참조하면, 제1디바이스 통신부(250)는 매개 디바이스(300)로부터 전송된 연결요청 메시지를 수신하여 제1등록/연결 제어부(220)에게 제공한다(S810). 제1등록/연결 제어부(220)는 제공된 연결요청 메시지를 분석하여 관리서버(400)와의 연결을 요청하는 메시지인 것으로 확인되면, 관리서버(400)에 연결하도록 제1디바이스 통신부(250)를 제어한다(S820).
S820단계에 의하여 관리서버(400)와 연결된 후, 관리서버(400)로부터 각종 명령, 스케쥴 정보 등이 수신되면, 제1등록/연결 제어부(220)는 수신된 명령, 스케쥴 정보에 대응되는 동작을 수행한다(S840). 예를 들어, 관리서버(400)가 현재 제1DB(210)에 저장된 상태정보의 전송을 요청하면 제1등록/연결 제어부(220)는 제1DB(210)에 저장된 최신 상태정보를 관리서버(400)에게 전송하도록 제1디바이스 통신부(250)를 제어한다.
그리고, 수신된 스케쥴 정보를 업데이트한 후, 관리서버(400)와의 연결을 종료하도록 제1디바이스 통신부(250)를 제어한다(S850). 업데이트된 스케쥴 정보는 제1디바이스(200-1)가 관리서버(400)와의 연결을 종료한 후, 관리서버(400)에 재연결할 시간, 즉, 스케쥴링된 시간 정보를 포함한다.
S850단계 후, 업데이트된 스케쥴링 시간에 도달하면, 제1디바이스(200-1)는 S820단계 내지 S850단계를 수행한다.