상기의 목적을 달성하기 위한 본 발명은, 센서 네트워크의 에러위치 및 에러원인 제공방법에 있어서, 에러 발생을 감시하여 에러가 인식되면, 상기 인식된 에러를 구별하여 상기 에러에 대응된 에러위치 데이터 및 에러원인 데이터가 포함된 로그 데이터를 생성하는 제 1 단계; 미전송된 로그 데이터 메시지가 없으면, 메시지 타입을 로그 데이터 메시지로 설정하여 상기 생성된 로그 데이터를 포함하는 로그 데이터 메시지를 구성하여 제 1 외부기기로 전송하는 제 2 단계; 및 미전송된 로그 데이터 메시지가 있으면, 상기 미전송된 로그 데이터 메시지에 상기 생성된 로그 데이터를 부가한 로그 데이터 메시지를 구성하여 상기 제 1 외부기기로 전송하는 제 3 단계를 포함한다.
또한, 본 발명은 상기 제 2 단계 및 상기 제 3 단계에서, 상기 로그 데이터 메시지의 외부 전송이 실패하면, 상기 전송실패한 로그 데이터 메시지를 저장하는 제 4 단계; 및 제 2 외부기기로부터 로그 데이터 메시지를 전달받으면, 상기 전달받은 로그 데이터 메시지에 상기 저장된 로그 데이터 메시지의 로그 데이터를 포함시켜 상기 제 1 외부기기로 전달하는 제 5 단계를 더 포함한다.
또한, 본 발명은 상기 제 4 단계를 수행한 후에 임계 시간이 경과하면, 상기 저장된 로그 데이터 메시지를 상기 제 1 외부기기로 재전송하는 단계를 더 포함한다.
한편, 본 발명은, 프로세서를 구비한 센서 네트워크의 에러위치 및 에러원인 제공장치에, 에러 발생을 감시하여 에러가 인식되면, 상기 인식된 에러를 구별하여 상기 에러에 대응된 에러위치 데이터 및 에러원인 데이터가 포함된 로그 데이터를 생성하는 제 1 기능; 미전송된 로그 데이터 메시지가 없으면, 메시지 타입을 로그 데이터 메시지로 설정하여 상기 생성된 로그 데이터를 포함하는 로그 데이터 메시지를 구성하여 제 1 외부기기로 전송하는 제 2 기능; 및 미전송된 로그 데이터 메시지가 있으면, 상기 미전송된 로그 데이터 메시지에 상기 생성된 로그 데이터를 부가한 로그 데이터 메시지를 구성하여 상기 제 1 외부기기로 전송하는 제 3 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
본 발명을 설명하기에 앞서, 본 발명에서 "로그 데이터(log data)"라 함은 센서노드 또는 게이트웨이에 의해 기 정의된 에러(error)가 인식되는 경우에, 기 정의된 방식에 따라 에러내용이 누적되고 생성되는 히스토리(history) 형태의 데이터를 통칭한다.
도 1은 본 발명이 적용되는 센서 네트워크에 대한 일실시예 구성도이다.
도 1에 도시된 바와 같이, 본 발명이 적용되는 센서 네트워크는, 센서노드(sensor node, 110), 게이트웨이(gateway, 120), 에러 관리 서버(130), 네트워크 관리자 단말기(140)를 포함한다.
일반적으로, 상기 센서노드(110)는 센서부(111), 무선 통신부(112), 로그 데이터 생성부(113)를 포함한다.
여기서, 상기 센서부(111)는 통상의 센서를 이용하여 외부의 물리적 환경을 감지하고 감지한 데이터를 처리하기 위한 센싱부분이다. 상기 무선 통신부(112)는 동일 네트워크 식별자를 가지며 센서 네트워크를 형성하는 인접 센서노드(150) 또는 외부 네트워크에 연결되는 게이트웨이(120)로 근거리 무선통신 방식에 따라 데이터를 교환하는 RF(Radio Frequency) 부분이다. 상기 로그 데이터 생성부(113)는 서로 직렬(serial)로 연결된 상기 센서부(111) 및 상기 무선 통신부(112)를 제어하며, 센서노드 자체(110)에서 에러가 인식되는 경우에 로그 데이터를 생성하여 전송하는 중앙처리부분이다.
이하, 상기 로그 데이터 생성부(113)에 대하여 상세히 설명하기로 한다.
상기 로그 데이터 생성부(113)는 기 정의된 에러가 발생되는지를 감시(monitor)한다. 이후, 상기 로그 데이터 생성부(113)는 에러가 발생된 경우에 기 정의된 에러를 구별하여 인식함으로써, 에러가 발생한 위치 및 에러가 발생한 원인을 판단할 수 있다.
이를 위해, 상기 로그 데이터 생성부(113)는 기 정의된 에러에 대응된 에러 식별자 및 에러원인 데이터를 테이블로 저장하여, 에러가 발생된 경우에 상기 테이블을 이용하여 해당 에러의 로그 데이터를 생성한다.
예를 들어, 상기 로그 데이터 생성부(113)는 하기의 [표 1]과 같은 테이블을 이용하여 해당 에러가 발생된 경우에 해당 에러의 로그 데이터를 생성한다.
에러 식별자 |
에러원인 데이터 |
ID #01 |
DATA #01(센싱값 에러) |
ID #02 |
DATA #02(센서노드 내부간 직렬통신 상태 에러) |
ID #03 |
DATA #03(외부와 근거리 무선통신 상태 에러) |
… |
… |
먼저, 상기 [표 1]은 센서 네트워크 관리자에 의해 정의되는 에러내용에 따라 설정 및 변경(즉, 등록/수정/삭제 등)될 수 있다. 또한, 상기 [표 1]은 에러내용에 대한 일실시예로서, 네트워크 관리자에 의한 에러내용의 정의에 따라 구체적이고 세분화된 내용으로 확장될 수 있다.
상기 [표 1]에서 보는 바와 같이, 상기 로그 데이터 생성부(113)는 센서노드(110) 내부에서 발생된 에러, 센서노드(110)와 게이트웨이(120)[또는 인접 센서노드(150)] 간에 발생된 에러를 구별하여 인식하는 것이 바람직하다.
이하, 상기 [표 1]에 대하여 상세히 설명하기로 한다.
먼저, 에러 식별자 "ID #01"에 대응된 에러원인 데이터 "DATA #01"은 센서노드(110)의 센서부(111)가 감지한 센싱값에 에러가 발생한 경우를 의미한다. 이 경우에, 상기 로그 데이터 생성부(113)는 센서부(111)의 센싱값의 범위를 미리 알고 있어서, 상기 센싱값의 범위를 벗어나는 경우에 "센싱값 에러"로 인식한다.
또한, 에러 식별자 "ID #02"에 대응된 에러원인 데이터 "DATA #02"는 센서노드(110)의 센서부(111) 및 무선 통신부(112) 간의 내부 직렬통신 상태에 에러가 발생한 경우를 의미한다. 이 경우에, 상기 로그 데이터 생성부(113)는 센서부(111) 및 무선 통신부(112)를 제어함으로써, 상호 통신상태가 원활하지 않을 경우에 "센서노드 내부 간 직렬통신 상태 에러"로 인식한다.
마지막으로, 에러 식별자 "ID #03"에 대응된 에러원인 데이터 "DATA #03"은 게이트웨이(120)[또는 인접 센서노드(150)]와의 근거리 무선통신 상태 에러가 발생한 경우를 의미한다. 이 경우에, 상기 로그 데이터 생성부(113)는 게이트웨이(120)[또는 인접 센서노드(150)]로 데이터 전송 후 응답(ACK)이 없는 경우에 "외부와 근거리 무선통신 상태 에러"로 인식한다.
전술한 바와 같이, 상기 로그 데이터 생성부(113)는 에러가 발생한 경우에 에러를 구별하여 인식한 후, 상기 [표 1]을 이용하여 에러 식별자, 에러원인 데이터를 확인한다. 이때, 상기 로그 데이터 생성부(113)는 상기 [표 1]과 같은 테이블을 통해 확인된 에러 식별자 및 에러원인 데이터와 함께, 에러 발생 위치를 나타내기 위한 자신(110)의 식별정보[일례로, 센서노드(110)의 MAC 주소 등]를 포함시켜 로그 데이터를 생성한다.
바람직하게, 상기 로그 데이터 생성부(113)는 상기와 같이 로그 데이터를 생성하는 경우에, 에러 관리 서버(130)로 전송한다. 이때, 상기 로그 데이터 생성부(113)는 메시지 타입[즉, 일반 데이터를 포함하는 메시지 또는 로그 데이터를 포함하는 메시지(이하 "로그 데이터 메시지"라 함)]을 "로그 데이터를 포함하는 메시지"로 결정하여, 로그 데이터 메시지를 에러 관리 서버(130)로 전송하게 된다. 여기서, 상기 로그 데이터 생성부(113)는 로그 데이터 메시지를 에러 관리 서버(130)로 전송하기에 앞서, 이전에 미전송된 로그 데이터가 저장되어 있는 경우(예를 들어, 인접 센서노드의 통신상태 불능으로 인한 미전송 로그 데이터 발생 등)에, 로그 데이터 메시지에 이전에 미전송된 로그 데이터를 포함시켜 에러 관리 서버(130)로 전송한다.
한편, 상기 로그 데이터 생성부(113)는 이전에 미전송된 로그 데이터가 저장되어 있고 인접 센서노드(150)로부터 에러 관리 서버(130)로 전송되는 로그 데이터 메시지가 전달되면, 상기 인접 센서노드(150)에 의해 전달된 로그 데이터 메시지에 이전에 미전송된 로그 데이터를 포함시켜 에러 관리 서버(130)로 전송한다.
부가적으로, 상기 로그 데이터 생성부(113)는 로그 데이터 메시지에 발생된 에러순서에 따라 생성된 로그 데이터를 나열하는 것이 바람직하다.
일반적으로, 상기 게이트웨이(120)는 무선 통신부(121), 유선 통신부(122), 로그 데이터 생성부(123)를 포함한다.
여기서, 상기 무선 통신부(121)는 센서 네트워크 내의 인접 센서노드(110, 150)와 근거리 무선통신 방식에 따라 데이터 통신을 수행하기 위한 RF(Radio Frequency) 부분이다. 상기 유선 통신부(122)는 외부 네트워크[에러 관리 서버(130)를 포함함]와 유선 통신망을 통해 연결하기 위한 유선 통신부분이다. 상기 로그 데이터 생성부(123)는 서로 직렬로 연결된 상기 무선 통신부(121) 및 상기 유선 통신부(122)를 제어하며, 게이트웨이 자체(120)에서 에러가 인식되는 경우에 로그 데이터를 생성하여 전송하는 중앙처리부분이다.
상기 로그 데이터 생성부(123)에 대한 설명은 전술한 센서노드(110)의 로그 데이터 생성부(113)과 설명상 중복되기 때문에, 자세한 설명은 상기 로그 데이터 생성부(113)의 설명을 참조하기로 하고, 여기서는 그 상세한 설명은 생략하기로 한다.
다만, 상기 로그 데이터 생성부(123)는 하기의 [표 2]와 같은 테이블을 이용하여 해당 에러가 발생된 경우에, 해당 에러를 구별하여 인식한다.
에러 식별자 |
에러원인 데이터 |
ID #11 |
DATA #11(수신 데이터 에러) |
ID #12 |
DATA #12(게이트웨이 내부간 직렬통신 상태 에러) |
ID #13 |
DATA #13(외부와 근거리 무선통신 상태 에러) |
… |
… |
이하, 상기 [표 2]에 대하여 상세히 설명하기로 한다.
먼저, 에러 식별자 "ID #11"에 대응된 에러원인 데이터 "DATA #11"은 센서노드(110)로부터 수신된 데이터에 에러가 발생한 경우를 의미한다. 이 경우에, 상기 로그 데이터 생성부(123)는 센서노드(110)로부터 수신된 데이터의 CRC(Cyclic Redundancy Check)를 확인하여, 에러가 검출되는 경우에 "수신 데이터 에러"로 인식한다.
또한, 에러 식별자 "ID #12"에 대응된 에러원인 데이터 "DATA #12"는 게이트웨이(120)의 무선 통신부(121) 및 유선 통신부(122) 간의 내부 직렬통신 상태에 에러가 발생한 경우를 의미한다. 이 경우에, 상기 로그 데이터 생성부(123)는 무선 통신부(121) 및 유선 통신부(122)를 제어함으로써, 상호 통신상태가 원활하지 않을 경우에 "게이트웨이 내부 간 직렬통신 상태 에러"로 인식한다.
마지막으로, 에러 식별자 "ID #13"에 대응된 에러원인 데이터 "DATA #13"은 인접 센서노드(110, 150)와의 근거리 무선통신 상태 에러가 발생한 경우를 의미한다. 이 경우에, 상기 로그 데이터 생성부(123)는 인접 센서노드(110, 150)로 데이터 전송 후 응답(ACK)이 없는 경우에 "외부와 근거리 무선통신 상태 에러"로 인식한다.
부가적으로, 상기 로그 데이터 생성부(123)는 센서 네트워크를 구성하는 센서노드들로 비콘 프레임(beacon frame)을 브로드캐스트(broadcast) 방식으로 전송함으로써, 센서노드들의 무선통신 상태를 확인할 수도 있다.
이후, 상기 로그 데이터 생성부(123)는 전술한 센서노드(110)의 로그 데이터 생성부(113)와 같이, 로그 데이터를 생성한 후 로그 데이터 메시지를 에러 관리 서버(130)로 전송한다.
또한, 상기 로그 데이터 생성부(123)는 센서 네트워크를 구성하는 센서노드에 의해 생성된 로그 데이터 메시지를 전달받고 이전에 미전송된 로그 데이터가 없는 경우에, 로그 데이터 메시지를 에러 관리 서버(130)로 그대로 전달한다. 반면에, 상기 로그 데이터 생성부(123)는 센서 네트워크를 구성하는 센서노드에 의해 생성된 로그 데이터 메시지를 전달받고 이전에 미전송된 로그 데이터가 있는 경우에, 전달받은 로그 데이터 메시지에 이전에 미전송된 로그 데이터를 포함시켜 에러 관리 서버(130)로 전달한다.
상기와 같이, 본 발명에서는 센서노드(110) 내부의 에러, 센서노드(110)와 게이트웨이(120)[또는 인접 센서노드(150)] 간의 에러, 게이트웨이(120) 내부의 에러를 구별하여 인식할 수 있는 경우에 대하여 설명하였으나, 네트워크 관리자의 에러내용 정의에 따라 구체적이고 세부적으로 에러위치 및 에러원인을 확인할 수 있도록 확장될 수 있다.
일례로, 상기 센서노드(110) 및 상기 게이트웨이(120) 사이에 무선통신 중계기(도 1에 미도시)가 설치되는 경우에, 상기 무선통신 중계기에서도 전술한 바와 같은 에러위치 및 에러원인을 확인하도록 확장할 수 있다.
한편, 에러 관리 서버(130)는 게이트웨이(120)와 연결되어, 상기 게이트웨이(120)로부터 전달된 로그 데이터 메시지를 확인함으로써, 센서 네트워크 내에서 에러가 발생한 위치 및 에러가 발생한 원인을 네트워크 관리자 단말기(140)로 제공한다. 이에 따라, 네트워크 관리자는 단말기(140)를 통해 확인되는 센서 네트워크의 에러위치 및 에러원인을 손쉽게 확인할 수 있게 된다.
도 2a는 본 발명이 적용되는 로그 데이터 메시지에 대한 일실시예 설명도이다.
도 2a에 도시된 바와 같이, 본 발명이 적용되는 로그 데이터 메시지는, 일반 데이터를 포함하는 메시지인지 로그 데이터를 포함하는 메시지인지를 구별하기 위한 메시지 타입 필드(210), 다수의 로그 데이터로 포함하기 위한 로그 데이터 필드(220)를 포함한다.
구체적으로, 상기 로그 데이터 필드(220)는 에러 식별자(221), 에러원인 데이터(222), 에러위치 식별자(223)를 포함한다.
상기 에러 식별자(221)는 네트워크 관리자에 의해 정의된 에러내용을 식별하기 위한 부분이며, 상기 에러원인 데이터(222)는 네트워크 관리자가 참고할 수 있는 에러 발생 원인을 나타내기 위한 부분이며, 상기 에러위치 식별자(223)는 에러가 발생한 위치를 네트워크 관리자에게 제공하기 위하여 에러 발생 위치를 나타내는 부분이다.
여기서, 상기 에러원인 데이터(222)는 "외부와 근거리 무선통신 상태 에러"인 경우에, 외부의 어느 기기(즉, 센서노드 또는 게이트웨이)와 근거리 무선통신이 에러 상태인지를 네트워크 관리자에게 제공하기 위해, 송수신자의 식별정보(예를 들어, MAC 주소)가 포함되는 것이 바람직하다. 또한, 상기 에러원인 데이터(222)는 "센싱값 에러" 또는 "수신 데이터 에러"인 경우에, 에러 데이터 자체가 포함되는 것이 바람직하다.
그리고 상기 에러위치 식별자(223)는 에러를 인식한 센서노드(110, 150) 또는 게이트웨이(120)를 식별하기 위한 부분이므로, 상기 센서노드(110, 150) 또는 게이트웨이(120)의 주소정보(일례로, MAC 주소) 또는 상기 센서노드(110, 150) 또는 게이트웨이(120)의 식별정보(일례로, 기기 식별자)가 포함되는 것이 바람직하다.
도 2b는 도 2a의 로그 데이터의 적용에 대한 일실시예 예시도이다.
여기서, 도 2b의 로그 데이터는 상기 [표 1] 및 상기 [표 2]를 이용한 예를 나타낸다.
먼저, 상기 로그 데이터 (a)는 상기 [표 1]에서 "센서노드 내부 간 직렬통신 상태 에러"인 경우이다. 즉, 상기 로그 데이터 (a)는 에러 식별자가 "ID #02"(231)이고, 에러원인 데이터가 "DATA #02"(232)이고, 에러위치 식별자가 "센서노드(110)의 MAC 주소"(233)이다. 이를 통해, 상기 에러 관리 서버(130)는 로그 데이터 (a)를 해석함으로써, 에러 식별자 "ID #02"(231)를 통해 센서노드 내부 간 직렬통신 상태 에러를 판단할 수 있으며, 에러원인 데이터 "DATA #02"(232)를 통해 직렬통신 에러내용을 확인할 수 있으며, 에러위치 식별자 "센서노드(110)의 MAC 주소"(233)를 통해 에러가 발생한 위치가 센서노드(110)임을 판단할 수 있다.
한편, 상기 로그 데이터 (b)는 상기 [표 2]에서 "수신 데이터 에러"인 경우이다. 즉, 상기 로그 데이터 (b)는 에러 식별자가 "ID #11"(241)이고, 에러원인 데이터가 "DATA #11"(242)이고, 에러위치 식별자가 "게이트웨이(120)의 MAC 주소"(243)이다. 이를 통해, 상기 에러 관리 서버(130)는 로그 데이터 (b)를 해석함으로써, 에러 식별자 "ID #11"(241)을 통해 수신 데이터 에러를 판단할 수 있으며, 에러원인 데이터 "DATA #11"(242)을 통해 수신 데이터 에러내용(송신자의 위치정보 포함)을 확인할 수 있으며, 에러위치 식별자 "게이트웨이(120)의 MAC 주소"(243)를 통해 에러가 발생한 위치가 게이트웨이(120)임을 판단할 수 있다.
도 3은 본 발명에 따른 센서 네트워크의 에러위치 및 에러원인 제공방법에 대한 일실시예 흐름도이다.
도 3에 도시된 바와 같이, 센서 네트워크의 센서노드(110) 또는 게이트웨이(120)는 에러위치 및 에러원인에 대한 데이터를 포함하는 로그 데이터 메시지를 에러 관리 서버(130)로 전송하는데, 여기서는 설명의 편의상 센서노드(110)에 한정하여 설명하기로 한다.
상기 센서노드(110)는 기 정의된 에러가 발생하는지를 감시한다(S301).
그리고 상기 센서노드(110)는 에러가 인식되는지 확인하여(S302) 에러가 인식되지 않으면 에러 발생 감시 과정(S301)부터 반복 수행하고, 에러가 인식되면 에러위치 및 에러원인을 확인하여 로그 데이터를 생성한다(S303). 여기서, 상기 센서노드(110)는 기 정의된 에러내용에 대응된 에러위치 및 에러원인에 대한 테이블을 이용하여, 에러위치 및 에러원인을 확인하는 것이 바람직하다.
그런 후, 상기 센서노드(110)는 이전에 미전송된 로그 데이터 메시지가 있는지를 확인하여(S304), 이전 미전송 로그 데이터 메시지가 없으면 신규 로그 데이터 메시지에 상기 생성된 로그 데이터를 포함하고(S305), 이전 미전송 로그 데이터 메시지가 있으면 이전 미전송 로그 데이터 메시지에 상기 생성된 로그 데이터를 포함한다(S306).
이후, 상기 센서노드(110)는 신규 또는 이전 미전송 로그 데이터 메시지를 에러 관리 서버(130)로 전송한다(S307).
도 4는 도 3에서 로그 데이터 메시지 전송실패의 경우 로그 데이터 메시지를 재전송하는 과정에 대한 일실시예 흐름도이다.
상기 센서노드(110)는 에러 관리 서버(130)로의 로그 데이터 메시지 전송이 실패한 경우에(S401), 전송실패한 미전송된 로그 데이터 메시지를 저장한다(S402).
이때, 상기 센서노드(110)가 미전송된 로그 데이터 메시지를 재전송하는 경우를 살펴보면, 도 3에서 전술한 바와 같이 신규로 로그 데이터가 생성되는 경우(S306) 또는 외부로부터 로그 데이터 메시지를 전달받은 경우로 구분하는 것이 바람직하다. 여기서, 도 3에서 신규로 로그 데이터가 생성되는 경우는 전술하였으므로, 이하에서는 외부로부터 로그 데이터 메시지를 전달받은 경우에 한하여 설명하기로 한다.
부가적으로, 상기 센서노드(110)는 미전송된 로그 데이터 메시지를 지정된 시간(예 : 5분마다)에 재전송하도록 미리 설정할 수도 있다.
이후, 상기 센서노드(110)는 외부[인접 센서노드(150)]로부터 로그 데이터 메시지를 전달받으면(S403), 상기 로그 데이터 메시지에 상기 저장된(미전송) 로그 데이터를 포함시켜 에러 관리 서버(130)로 전송한다(S404).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.