KR101126797B1 - 센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법 - Google Patents

센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법 Download PDF

Info

Publication number
KR101126797B1
KR101126797B1 KR1020080127260A KR20080127260A KR101126797B1 KR 101126797 B1 KR101126797 B1 KR 101126797B1 KR 1020080127260 A KR1020080127260 A KR 1020080127260A KR 20080127260 A KR20080127260 A KR 20080127260A KR 101126797 B1 KR101126797 B1 KR 101126797B1
Authority
KR
South Korea
Prior art keywords
update
execution code
rule
sensor node
execution
Prior art date
Application number
KR1020080127260A
Other languages
English (en)
Other versions
KR20100068785A (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 KR1020080127260A priority Critical patent/KR101126797B1/ko
Priority to US12/630,328 priority patent/US8667481B2/en
Publication of KR20100068785A publication Critical patent/KR20100068785A/ko
Application granted granted Critical
Publication of KR101126797B1 publication Critical patent/KR101126797B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

센서 네트워크에 포함되는 센서 노드의 업데이트에 관한 것으로, 센서 네트워크에 포함되는 다수의 센서 노드들 각각에 대한 수행 코드를 관리하는 수행코드 관리부; 상기 수행코드 관리부에서 관리되는 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드의 비교 결과에 기초하여 업데이트 규칙을 생성하는 규칙 생성부; 및 상기 규칙 생성부에서 생성되는 업데이트 규칙을 해당 센서 노드로 다운로드시키는 다운로드 수행부;를 포함하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버에 의해 적은 양의 데이터 네트워크 전송을 통해 수행코드 업데이트를 수행할 수 있다.

Description

센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법{Update server and sensor node for updating of senser node, Method for updating of sensor node}
본 발명은 센서 네트워크에 관한 것으로, 특히 센서 네트워크에 포함되는 센서 노드의 업데이트에 관한 것이다.
본 연구는 지식경제부 및 정보통신연구진흥원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다. [과제관리번호 : 2008-F-053-01, 과제명 : QoS 및 확장성지원(S-MoRe) 센서네트워크 고도화 기술개발(표준화연계)]
센서 네트워크는 일반적으로 센서를 통한 측정이 필요한 환경에 센서 노드들을 설치하고, 이를 네트워크로 연결하여, 센서에 의해 측정된 값들을 수집하고자 하는 목적으로 활용된다. 센서 네트워크는 다양한 환경에 설치되기 때문에, 설치 환경이 처음 의도했던 환경과 상이할 수도 있고, 혹은 시간이 경과 함에 따라 환경이 변화하여 설치 시 센서 노드에 수록된 프로그램이 환경과 맞지 않게 되는 경우가 발생할 수도 있다. 이런 경우 실제 환경에 맞지 않는 프로그램으로 센서를 통해 수집된 정보는 그만큼 가치가 낮아진다는 문제가 발생하게 된다.
이런 경우에는 센서 노드에 현재 환경에 적합한 프로그램을 새로 설치함으로써, 문제를 해결할 수 있다. 그러나 이미 설치된 센서 노드 하나하나에 새로 프로그램을 설치하는 것은 쉬운 일이 아니다. 이를 위해서는 무선으로 새로운 프로그램을 설치하는 방법이 필요하다. 이런 방법에 있어서 제한된 무선 자원을 사용하기 때문에, 가급적 작은 전송 크기를 갖는 방식으로 센서 노드에 새 프로그램을 전달해야할 필요가 있다.
종래는 각각의 센서 노드에 적절한 수행 코드로 업데이트 함에 있어서, 스크립트 수준의 낮은 변경을 실시하든지, 아니면 수행을 대비하여 미리 센서 노드에 여러 용도의 수행 코드를 두고 서버에서 이를 관리하며 적절한 수행을 지시하는 수준이다.
새로운 업데이트를 위해 수행코드 다운로드를 하더라도, 센서 노드의 새로운 수행 코드 모두를 다운로드 하는 방식을 사용하였다. 이러한 방식은 원하는 프로그램의 수행은 가능하지만, 제한된 네트워크 자원을 과도하게 사용하게 되기 때문에, 실제 운용중인 망에 많은 부하를 주게 된다. 따라서, 실용적인 측면에서 실제 사용하기에는 어려움이 많다.
본 발명은 이 같은 배경에서 도출된 것으로, 센서 노드가 업데이트 서버로부터 새로운 기능을 갖는 수행 코드를 다운로드하여, 새로운 기능의 프로그램도 새로이 수행 가능하면서, 수행 코드의 다운로드를 기존 수행 코드와 비교하여 최소한의 통신 부하만으로 전달될 수 있는 부분 업데이트 방식을 제공하는 센서 노드 업데이트 방법을 제공하는 것을 목적으로 한다.
상기 기술적 과제는 센서 네트워크에 포함되는 다수의 센서 노드들 각각에 대한 수행 코드를 관리하는 수행코드 관리부; 상기 수행코드 관리부에서 관리되는 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드의 비교 결과에 기초하여 업데이트 규칙을 생성하는 규칙 생성부; 및 상기 규칙 생성부에서 생성되는 업데이트 규칙을 해당 센서 노드로 다운로드시키는 다운로드 수행부;를 포함하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버에 의해 달성된다.
또한, 업데이트 서버는 상기 센서 노드와 동일하게 수행코드 실행 환경을 갖는 가상 센서 노드; 및 상기 규칙 생성부에서 생성된 업데이트 규칙을 상기 가상 노드로 제공하여, 모의 실행되도록 하는 모의 실행부;를 더 포함하는 것을 특징으로 한다.
이때, 다운로드 수행부는 상기 규칙 생성부에서 생성되는 적어도 하나의 업 데이트 규칙들 중, 상기 모의 실행부에서의 모의 실행 결과에 따라 전송량이 가장 낮은 업데이트 규칙을 선택하여 상기 센서 노드로 다운로드 시키는 것을 특징으로 한다.
또한, 상기 규칙 생성부는 상기 업데이트 규칙을 기존의 수행코드와 상기 업데이트 수행코드에 대한 함수 주소 테이블(FAT:Function Address Table) 형태로 생성하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행한다.
또한, 상기 기술적 과제는 업데이트 서버로부터 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드를 비교하여, 상기 수행 코드 전송이 최소가 되도록 생성된 업데이트 규칙을 수신하는 규칙 수신부; 및 상기 규칙 수신부로 수신되는 업데이트 규칙을 해석하여, 기 저장된 수행 코드를 업데이트하는 업데이트 수행부;를 포함하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드에 의해서도 달성된다.
한편, 상기 기술적 과제는 센서 네트워크에 포함되는 다수의 센서 노드들 각각에 대한 수행 코드를 관리하는 단계; 상기 관리되는 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드를 비교하여, 상기 수행코드 전송이 최소가 되도록 업데이트 규칙을 생성하는 단계; 및 상기 생성되는 업데이트 규칙을 해당 센서 노드로 다운로드 시키는 단계;를 포함하는 것을 특징으로 하는 업데이트 서버에서 수행되는 센서 노드의 업데이트 방법에 의해 달성된다.
또한, 업데이트 서버로부터 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드를 비교하여, 상기 수행 코드 전송이 최소가 되도록 생성된 업데이트 규칙을 수신하는 단계; 및 상기 규칙 수신부로 수신되는 업데이트 규칙을 해석하여, 기 저장된 수행 코드를 업데이트하는 단계;를 포함하는 것을 특징으로 하는 센서 노드에서 수행되는 센서 노드의 업데이트 방법에 의해서도 달성된다.
센서 네트워크의 경우 다양한 환경에 적용될 수 있으며, 센서 네트워크에 포함되는 센서 노드에 한번 설치가 이루어지면 장시간에 걸쳐 해당 동작을 해야하는 경우가 많다. 따라서, 환경의 변화로 센서 노드의 역할이 변경되거나, 기능이 변경되거나, 수행코드에 문제점이 발견되어 문제점 수정을 위한 버그 패치 작업이 필요한 경우가 발생될 수 있다.
이런 경우에 기존 센서 노드에서 수행되던 수행 코드에서 변경된 부분들에 대한 규칙을 찾아, 이 규칙들을 전송함으로써, 적은 양의 데이터 네트워크 전송을 통해 수행코드 업데이트를 수행할 수 있다. 즉, 센서 네트워크의 부하를 최소화하면서 효과적으로 센서 노드의 업데이트를 실행할 수 있는 효과가 있다.
전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면들을 참조하여 설명되는 바람직한 실시예들을 통해 더욱 명확해질 것이다. 이하에서는 본 발명을 이러한 실시예들을 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.
도 1은 센서 네트워크를 포함하는 전체 네트워크 시스템의 예시도이다.
센서 네트워크와 외부 인터넷망은 게이트웨이를 통해 연결될 수 있다. 도 1 에 도시된 바와같이, 센서 네트워크는 다양한 종류의 노드로 구성된다. 본 실시예에 있어서 노드들은 트리(tree)기반의 연결 구조로 연결될 수 있다. 일반적으로 센서 네트워크는 라우팅 기능이 없는 제한된 기능을 갖는 노드인 RFD(Reduced Function Device)와, 라우팅 기능을 갖는 노드인 FFD(Full Function Device)와, 이들을 하나의 팬으로 관리하는 팬 코디네이터(PAN coordinator)로 구성된다.
FFD는 FFD 및 RFD와 모두 통신을 할 수 있으며 RFD는 FFD와만 통신을 할 수 있고 RFD끼리는 통신을 할 수 없다. RFD는 최소의 자원과 메모리를 가지므로 센서노드 등의 종단 기기로 이용된다.
게이트웨이(14)는 센서 네트워크의 노드들이 외부와 통신을 원할 때, 이를 연결하는 통로 역할을 수행한다. 센서 네트워크는 게이트웨이(14)를 통해 외부 인터넷 망과 통신이 가능하다.
업데이트 서버(10)는 인터넷 망인 IP 네트워크를 통해 센서 네트워크와 연결된다. 본 실시예에 있어서 업데이트 서버(10)는 독자적으로 센서 네트워크의 각 노드별로 업데이트 자료를 관리할 수 있다. 업데이트 서버(10)는 기존의 네트워크를 통해 센서 네트워크와 연결되는 것으로 한정되지 않는다. 예를 들어 RF-sink 장치(12)를 통해 직접 센서 네트워크와 연결될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 업데이트 서버 및 센서 노드의 블록도이다.
업데이트 서버(10)는 수행코드 저장부(100), 수행코드 관리부(110), 규칙 생성부(120), 다운로드 수행부(130), 가상 센서 노드(140) 및 모의 실행부(150)를 포함한다.
수행코드 저장부(100)는 각 노드들에 대한 수행 코드들을 저장한다. 수행코드 관리부(110)는 센서 네트워크에 포함되는 노드들에서 수행되는 수행 코드를 관리할 수 있다.
규칙 생성부(120)는 특정 노드에 새로운 수행 코드를 업데이트 해야 하는 상황이 발생하면, 컴파일을 다시하거나, 이미 컴파일되어 준비된 수행 코드를 선정한다. 그리고, 수행코드 관리부(110)를 통해 수행코드 저장부(100)에 저장된 현재 해당 노드의 수행 코드를 파악하여, 전체적인 수행코드 업데이트 진행을 수행한다.
규칙 생성부(120)는 현재 해당 노드의 수행 코드와 업데이트된 수행코드를 비교하여, 가상 센서 노드(140)를 통해 최소한의 전송량으로 해당 센서 노드가 업데이트 될 수 있는 업데이트 규칙(rule)을 생성한다.
다운로드 수행부(130)는 규칙 생성부(120)에서 생성된 업데이트 규칙들을 패킷 형태로 가공하여 센서 노드(20)로 전송한다.
모의 실행부(150)는 실제 센서 노드(20)로 업데이트 규칙이 전송된 것과 동일하게 가상 센서 노드(140)에서 모의 실행한다. 이 후에, 규칙 생성부(120)는 모의 실행부(150)에서의 모의 실행 결과에 따라 효과적인 규칙을 선정하는 것이 가능하고, 최종적인 규칙이 적용되었을 때 수행코드 업데이트가 정확히 수행되었는지를 확인할 수 있다. 일 실시예에 있어서, 다운로드 수행부(130)는 모의 실행부(150) 에서의 모의 실행 결과를 먼저 확인한 후 센서 노드(20)로 업데이트 규칙들의 전송을 수행한다.
센서 노드(20)는 규칙 수신부(202) 및 업데이트 수행부(204)를 포함한다.
규칙 수신부(202)는 업데이트 서버(10)로부터 업데이트 규칙들을 수신한다.
업데이트 수행부(204)는 규칙 수신부(202)를 통해 수신한 업데이트 규칙들을 해석하고, 이를 프로그램 메모리에 반영한다.
본 실시예에 있어서, 규칙 수신부(202) 및 업데이트 수행부(204)는 부트로더 플래시 영역(200)에 위치하고, 업데이트 수행부(204)는 규칙 수신부(202)로 수신된 업데이트 규칙의 해석을 통해 실제 수행 코드가 위치한 응용 플래시 영역(210)에 반영한다.
이하, 도 3 내지 8을 참조하여 업데이트 절차에 대해 보다 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 업데이트 규칙 생성 과정의 예시도이다.
도시된 바와 같이 업데이트 규칙은 함수 주소 테이블(FAT : Function Address Table) 형태일 수 있다. 본 실시예에 있어서, 규칙 생성부(120)는 변경 전 수행 코드와 변경 후 수행 코드에서 컴파일 시에 생성되는 함수 맵 파일 등을 통해 수행코드의 수행 함수들의 위치 변화에 대한 함수 주소 테이블(FAT : Function Address Table)을 작성한다.
도 4는 본 발명의 일 실시예에 따른 센서 노드에서 업데이트 규칙에 따른 업데이트 과정의 예시도이다.
본 실시예에 있어서, 센서 노드(20)의 업데이트 수행부(204)는 업데이트 서버(10)의 다운로드 수행부(130)로부터, 함수 주소 테이블(FAT)을 전달받는다. 그리고 센서 노드(20)의 부트로더에 포함되는 업데이트 수행부(204)는 함수 주소 테이블에 기초하여, 각 함수의 수행 코드를 이동한다. 이때 프로그램 메모리 공간에서 이동작업으로 인한 오버라이트(overwrite)를 막기 위해 수행 코드를 메모리의 주소가 증가되는 아래 방향으로 이동하는 경우에는 맨 뒤 함수의 맨 아래 주소부터 위 주소 순서로 이동 작업을 수행한다. 즉, 화살표(아래)방향으로 함수 수행코드 이동시에 메모리 주소가 큰 Function 3, Function 2 순서로 이동 작업을 수행한다. 반대로, 수행코드를 주소가 감소하는 방향으로 이동하는 경우에는 반대로 위 함수부터 아래 함수로 진행하며, 같은 함수 내에서도 낮은 주소값의 자료부터 이동을 시작한다.
도 5는 본 발명의 일 실시예에 따른 센서 노드에서 함수의 호출 코드를 변경하는 예시도이다.
센서 노드(20)의 업데이트 수행부(204)는 업데이트 서버(10)로부터 수신되는 함수 주소 테이블에 기초하여 함수 호출 코드를 업데이트 한다. 도 5 에서 알 수 있듯이, Fuction 2의 시작 주소가 기존에 0x0200에서 0x0400으로 변경되었음을 알 수 있다. 따라서, call F2에 대한 수행 코드에서 호출 주소를 0x0200에서 0x0400으로 변경하여야 한다. 즉, 업데이트 수행부(204)는 함수 주소 테이블에 근거하여, 이동된 함수 위치로 호출이 이루어질 수 있도록 수행코드를 업데이트 한다.
실제 센서 노드의 수행코드 상의 기계어 명령들(instructions)의 표현인 오 피코드(opcode)에 있어서의 호출 주소 표기는, 호출 주소와 동일한 주소값이 아닌 정해진 규칙에 의한 비트 조작(bit operation)을 통해 주소값을 변형하여 표시하는 경우가 있다. 이 경우에도 역시 해당 호출 주소값에 대한 동일한 비트 조작을 통해, 본 발명에서 제안한 함수 주소 테이블에 근거하여 이동된 함수 위치로의 호출이 가능하다.
도 6은 본 발명의 일 실시예에 따른 센서 노드에서 수행 코드 추가 과정을 도시한 예시도이다.
새로 추가되는 코드가 컴파일되면, 이 부분에 대해서는 새로 수행 코드가 추가되며, 이는 기존 수행코드에는 없는 부분이다. 따라서, 업데이트 서버(10)는 이와 같이 추가가 필요한 수행코드 일부를 다운로드 시킨다. 업데이트 수행부(204)는 업데이트 서버(10)로부터 전송되는 추가가 필요한 새로운 수행 코드 일부를 반영할 주소를 확인하여, 프로그램 메모리에 반영한다.
도 7은 센서 노드에서 함수 추가 과정을 도시한 예시도이다.
센서 노드(20)의 업데이트 수행부(204)는 도 6 의 함수 수행코드 일부를 추가한 경우와 마찬가지로, 함수 전체가 추가되는 경우에도, 업데이트 서버(10)로부터 수신되는 함수 수행코드를 기존의 수행 코드에 반영한다.
도 8은 본 발명의 일 실시예에 따른 업데이트 서버에서 업데이트 코드 수정 과정을 도시한 예시도이다.
본 실시예에 있어서, 업데이트 서버(10)의 모의 실행부(150)는 규칙 생성부(120)에서 생성된 업데이트 규칙에 따라 가상 센서 노드(140)에서 업데이트를 모 의 실행한다. 가상 센서 노드(140)에 모의 실행을 통해 변경중인 수행 코드를 만들고, 규칙 생성부(120)는 가상 센서 노드(140)에서 생성된 변경 중인 수행 코드와 최종 목표인 업데이트된 수행 코드를 비교한다. 그리고, 비교 결과 상이한 부분이 발견되면, 이를 수정 테이블(MT:Modification Table)로 작성하여 실제 센서 노드(20)로 전달하여 프로그램 메모리에 수정할 부분을 반영토록 한다.
이 같이 가상 센서 노드(140)를 통해 모의 실행을 실시함으로써, 업데이트 규칙을 실제 센서 노드(20)로 전송하기 이전에 미리 실시하여 결과를 확인하는 것이 가능하다. 즉, 규칙들을 모두 실시하는 경우와 부분적으로 규칙들을 적용하는 경우에 대해 모의 실행을 실시함으로써, 전송량이 가장 작은 방법을 선택할 수 있다. 그리고, 선택된 방법에 따라 업데이트 규칙이 전송되면, 최종 목표인 업데이트 된 수행 코드로 맞게 바뀌는지 여부도 미리 확인하는 것이 가능하다. 이러한 모의 실행을 통해 선정된 전송량이 가장 적은 방법에 따른 업데이트 규칙을 실제 센서 노드(20)로 전송함으로써, 네트워크 자원을 절약하고 효과적으로 수행코드 업데이트를 실행할 수 있다는 효과가 있다.
도 9는 업데이트 서버에서 수행되는 센서 노드 업데이트 방법의 흐름도이다.
먼저 업데이트 서버는 센서 네트워크의 각 노드들에 대한 수행 코드들을 저장하고, 센서 노드들에서 수행되는 수행 코드를 관리한다(S900). 이 후에, 센서 노드에 대한 기능 추가등의 이유로 수행 코드 업데이트가 필요한 경우에, 해당 센서 노드에 대한 업데이트 규칙을 생성한다(S910). 이때, 현재 해당 노드의 수행 코드와 업데이트된 수행코드를 비교하여, 최소한의 전송량으로 해당 센서 노드가 업데이트 될 수 있는 업데이트 규칙(rule)을 생성할 수 있다.
이 후에, 생성되는 업데이트 규칙에 따라 업데이트 서버 내의 가상 노드에 업데이트를 모의 실행한다(S920). 그리고 이를 통해, 최소한의 전송 량으로 업데이트가 수행될 수 있는 업데이트 규칙을 선택할 수 있다(S930). 이 후에, 선택된 업데이트 규칙들을 패킷 형태로 가공하여 센서 노드로 전송한다.
도 10은 센서 노드에서 수행되는 센서 노드 업데이트 방법의 흐름도이다.
센서 노드는 업데이트 서버로부터 업데이트 규칙을 수신하면(S100), 수신되는 업데이트 규칙들을 해석하고(S110), 이를 프로그램 메모리에 반영한다.
본 실시예에 있어서, 업데이트 규칙은 함수 주소 테이블(FAT : Function Address Table) 형태일 수 있다. 즉, 변경 전 수행 코드와 변경 후 수행 코드에서 컴파일 시에 생성되는 함수 맵 파일 등을 통해 수행코드의 수행 함수들의 위치 변화에 대한 함수 주소 테이블(FAT : Function Address Table) 형태의 업데이트 규칙을 해석할 수 있다.
그리고 함수 주소 테이블의 해석 결과에 기초하여, 각 함수의 수행 코드를 메모리 공간상에서 이동한다(S120). 이때 프로그램 메모리 공간에서 이동작업으로 인한 오버라이트(overwrite)를 막기 위해 수행 코드를 메모리의 주소가 증가되는 아래 방향으로 이동하는 경우에는 맨 뒤 함수의 맨 아래 주소부터 위 주소 순서로 이동 작업을 수행한다. 즉, 화살표(아래)방향으로 함수 수행코드 이동시에 메모리 주소가 큰 Function 3, Function 2 순서로 이동 작업을 수행한다. 반대로, 수행코드를 주소가 감소하는 방향으로 이동하는 경우에는 반대로 위 함수부터 아래 함수 로 진행하며, 같은 함수 내에서도 낮은 주소값의 자료부터 이동을 시작한다.
이 후에, 함수 주소 테이블 형태의 업데이트 코드 해석 결과에 기초하여 함수 호출 코드를 업데이트 한다(S130). 도 5 에서 알 수 있듯이, Fuction 2의 시작 주소가 기존에 0x0200에서 0x0400으로 변경되었음을 알 수 있다. 따라서, call F2에 대한 수행 코드에서 호출 주소를 0x0200에서 0x0400으로 변경하여야 한다. 즉, 함수 주소 테이블에 근거하여, 이동된 함수 위치로 호출이 이루어질 수 있도록 수행코드를 업데이트 한다.
또한, 이 후에 새로 추가되는 함수 일부 수행코드 혹은 함수 전체가 컴파일되면, 이 부분에 대해서는 새로 수행 코드가 추가되며, 이는 기존 수행코드에는 없는 부분이다. 따라서, 업데이트 서버로부터 이와 같이 추가가 필요한 수행코드 일부를 다운로드 받는다. 그리고 센서 노드는 전송되는 추가가 필요한 새로운 수행 코드 일부를 반영할 주소를 확인하여, 프로그램 메모리에 반영한다(S140).
이 후에, 업데이트 서버는 모의 실행 결과와 실제 업데이트 결과를 비교하여, 상이한 부분으로 발견되어 수정 테이블(MT:Modification Table)로 작성되었던 규칙을 실제 센서 노드로 전달한다. 그러면, 센서 노드는 수신되는 수정 테이블에 기초하여 프로그램 메모리에 수정할 부분을 반영하여 업데이트 한다(S150).
한편, 전술한 센서 노드 업데이트 방법은 컴퓨터 프로그램으로 작성 가능하다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보 저장 매체(computer readable media)에 저장되고, 컴퓨터에 의해 읽혀지고 실행됨으로써 구현될 수 있다. 상기 저장매체는 자기 기록매체, 광 기록 매체 등을 포함한다.
이제까지 본 발명에 대해 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1 은 센서 네트워크를 포함하는 전체 네트워크 시스템의 예시도,
도 2 는 본 발명의 일 실시예에 따른 업데이트 서버 및 센서 노드의 블록도,
도 3 은 본 발명의 일 실시예에 따른 업데이트 규칙 생성 과정의 예시도,
도 4 는 본 발명의 일 실시예에 따른 센서 노드에서 업데이트 규칙에 따른 업데이트 과정의 예시도,
도 5 는 본 발명의 일 실시예에 따른 센서 노드에서 함수의 호출 코드를 변경하는 예시도,
도 6 은 본 발명의 일 실시예에 따른 센서 노드에서 수행 코드 추가 과정을 도시한 예시도,
도 7 은 센서 노드에서 함수 추가 과정을 도시한 예시도,
도 8 은 본 발명의 일 실시예에 따른 업데이트 서버에서 업데이트 코드 수정 과정을 도시한 예시도,
도 9 는 업데이트 서버에서 수행되는 센서 노드 업데이트 방법의 흐름도,
도 10 은 센서 노드에서 수행되는 센서 노드 업데이트 방법의 흐름도이다.

Claims (19)

  1. 센서 네트워크에 포함되는 다수의 센서 노드들 각각에 대한 수행 코드를 관리하는 수행코드 관리부;
    상기 수행코드 관리부에서 관리되는 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드의 비교 결과에 기초하여 업데이트 규칙을 생성하는 규칙 생성부; 및
    상기 규칙 생성부에서 생성되는 업데이트 규칙을 해당 센서 노드로 다운로드시키는 다운로드 수행부;
    를 포함하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버.
  2. 제 1 항에 있어서,
    상기 센서 노드와 동일하게 수행코드 실행 환경을 갖는 가상 센서 노드; 및
    상기 규칙 생성부에서 생성된 업데이트 규칙을 상기 가상 노드로 제공하여, 모의 실행되도록 하는 모의 실행부;
    를 더 포함하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버.
  3. 제 2 항에 있어서,
    상기 다운로드 수행부는 상기 규칙 생성부에서 생성되는 적어도 하나의 업데이트 규칙들 중, 상기 모의 실행부에서의 모의 실행 결과에 따라 전송량이 가장 낮은 업데이트 규칙을 선택하여 상기 센서 노드로 다운로드 시키는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버.
  4. 제 1 항에 있어서,
    상기 규칙 생성부는 상기 업데이트 규칙을 기존의 수행코드와 상기 업데이트 수행코드에 대한 함수 주소 테이블(FAT:Function Address Table) 형태로 생성하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버.
  5. 제 4 항에 있어서,
    상기 규칙 생성부는 상기 비교 결과 업데이트 되는 함수에 대해, 추가되는 함수 코드 정보 및 해당 함수 실행 시작 주소 정보를 상기 업데이트 규칙에 포함시키는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버.
  6. 제 2 항에 있어서,
    상기 규칙 생성부는 상기 업데이트 규칙을 상기 가상 노드에서의 모의 실행 결과에 기초하여 코드 변경이 필요한 메모리 정보를 포함하는 수정 테이블 형태로 생성하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드의 업데이트를 수행하는 업데이트 서버.
  7. 업데이트 서버로부터 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드를 비교하여, 상기 수행 코드 전송이 최소가 되도록 생성된 업데이트 규칙을 수신하는 규칙 수신부; 및
    상기 규칙 수신부로 수신되는 업데이트 규칙을 해석하여, 기 저장된 수행 코드를 업데이트하는 업데이트 수행부;
    를 포함하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드.
  8. 제 7 항에 있어서,
    상기 업데이트 수행부는 상기 규칙 수신부를 통해 수신되는 함수 주소 테이블 형태의 업데이트 규칙에 기반하여, 상기 기 저장된 각 함수의 수행 코드를 메모리 공간상에서 이동하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드.
  9. 제 8 항에 있어서,
    상기 업데이트 수행부는 상기 메모리 공간상에서의 이동 방향에 따라, 메모리 주소가 증가하는 방향으로 이동시에는 메모리 주소가 큰 함수 수행 코드부터 이동하고, 메모리 주소가 감소하는 방향으로 이동시에는 메모리 주소가 작은 함수 수행 코드부터 이동하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드.
  10. 제 8 항에 있어서,
    상기 업데이트 수행부는 상기 수행 코드 이동에 따라 변경되는 함수 시작 주소를 반영하여, 상기 수행 코드에 포함되는 함수 호출 코드를 수정하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드.
  11. 제 10 항에 있어서,
    상기 업데이트 수행부는 업데이트 서버로부터 다운로드 되는 추가 수행코드를 상기 기 저장된 수행 코드에 추가하여 업데이트 하는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드.
  12. 제 7 항에 있어서,
    상기 규칙 수신부 및 상기 업데이트 수행부는 상기 센서 노드의 부트로더에 포함되는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드.
  13. 제 7 항에 있어서,
    상기 기 저장된 수행 코드는 응용 플래쉬 영역에 저장되는 것을 특징으로 하는 센서 네트워크에 포함되는 센서 노드.
  14. 센서 네트워크에 포함되는 다수의 센서 노드들 각각에 대한 수행 코드를 관 리하는 단계;
    상기 관리되는 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데이트를 위해 필요한 업데이트 수행코드를 비교하여, 상기 수행코드 전송이 최소가 되도록 업데이트 규칙을 생성하는 단계; 및
    상기 생성되는 업데이트 규칙을 해당 센서 노드로 다운로드 시키는 단계;를 포함하는 것을 특징으로 하는 업데이트 서버에서 수행되는 센서 노드의 업데이트 방법.
  15. 제 14 항에 있어서,
    상기 생성된 업데이트 규칙에 따라 가상 노드에서 기능 업데이트를 모의 실행하는 단계;를 더 포함하는 것을 특징으로 하는 업데이트 서버에서 수행되는 센서 노드의 업데이트 방법.
  16. 제 15 항에 있어서,
    상기 다운로드 시키는 단계는 상기 생성되는 적어도 하나의 업데이트 규칙들 중, 상기 모의 실행 결과에 따라 전송량이 가장 낮은 업데이트 규칙을 선택하여 상기 센서 노드로 다운로드 시키는 것을 특징으로 하는 업데이트 서버에서 수행되는 센서 노드의 업데이트 방법.
  17. 업데이트 서버로부터 기존 수행 코드와 상기 센서 노드의 새로운 기능 업데 이트를 위해 필요한 업데이트 수행코드를 비교하여, 상기 수행 코드 전송이 최소가 되도록 생성된 업데이트 규칙을 수신하는 단계; 및
    상기 규칙 수신부로 수신되는 업데이트 규칙을 해석하여, 기 저장된 수행 코드를 업데이트하는 단계;
    를 포함하는 것을 특징으로 하는 센서 노드에서 수행되는 센서 노드의 업데이트 방법.
  18. 제 17 항에 있어서, 상기 업데이트하는 단계는,
    상기 수신되는 함수 주소 테이블 형태의 업데이트 규칙을 해석하여, 기 저장된 각 함수의 수행 코드를 메모리 공간상에서 이동하는 단계; 및
    상기 수행 코드 이동에 따라 변경되는 상기 함수 시작 주소를 반영하여, 상기 수행 코드에 포함되는 함수 호출 코드를 수정하는 단계;
    를 포함하는 것을 특징으로 하는 센서 노드에서 수행되는 센서 노드의 업데이트 방법.
  19. 제 18 항에 있어서, 상기 업데이트하는 단계는,
    상기 업데이트 서버로부터 추가 수행 코드를 수신하는 단계;
    상기 수신된 추가 수행 코드를 상기 기 저장된 수행코드에 추가하여 업데이트 하는 단계;
    를 더 포함하는 것을 특징으로 하는 센서 노드에서 수행되는 센서 노드 업데 이트 방법.
KR1020080127260A 2008-12-15 2008-12-15 센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법 KR101126797B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080127260A KR101126797B1 (ko) 2008-12-15 2008-12-15 센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법
US12/630,328 US8667481B2 (en) 2008-12-15 2009-12-03 Sensor node included in sensor network, update server updating the same, and method of updating sensor node

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080127260A KR101126797B1 (ko) 2008-12-15 2008-12-15 센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법

Publications (2)

Publication Number Publication Date
KR20100068785A KR20100068785A (ko) 2010-06-24
KR101126797B1 true KR101126797B1 (ko) 2012-03-29

Family

ID=42241586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080127260A KR101126797B1 (ko) 2008-12-15 2008-12-15 센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법

Country Status (2)

Country Link
US (1) US8667481B2 (ko)
KR (1) KR101126797B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100937872B1 (ko) * 2007-12-17 2010-01-21 한국전자통신연구원 무선 센서네트워크에서 센서모듈을 위한센서노드동적관리장치 및 방법
KR20100070899A (ko) * 2008-12-18 2010-06-28 한국전자통신연구원 가상 파티션 기법을 이용한 노드 갱신 시스템 및 그 제어방법
WO2012174709A1 (en) * 2011-06-21 2012-12-27 Renesas Mobile Corporation Methods and apparatus for facilitating offline small data transmission
KR101475704B1 (ko) * 2013-08-09 2014-12-23 고려대학교 산학협력단 무선 센서 네트워크 내 노드의 어플리케이션 관리 방법
EP3532954A1 (en) * 2016-10-31 2019-09-04 Charbel Joseph El Kaed Semantic search and rule methods for a distributed data system
US11526510B2 (en) 2017-11-21 2022-12-13 Schneider Electric USA, Inc. Semantic search method for a distributed data system with numerical time series data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100799567B1 (ko) 2005-12-08 2008-01-31 한국전자통신연구원 무선 센서 네트워크 시스템 및 무선 센서 네트워킹 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968375B1 (en) * 1997-03-28 2005-11-22 Health Hero Network, Inc. Networked system for interactive communication and remote monitoring of individuals
US7216342B2 (en) * 2002-03-14 2007-05-08 Stmicroelectronics Limited Code generation
JP2004164554A (ja) * 2002-09-24 2004-06-10 Hitachi Ltd プログラム実行監視装置および方法
US7890464B2 (en) * 2003-06-20 2011-02-15 Innopath Software, Inc. Processing software images and generating difference files
US7089270B2 (en) * 2003-06-20 2006-08-08 Innopath Software Processing software images for use in generating difference files
US7395195B2 (en) * 2004-12-27 2008-07-01 Sap Aktiengesellschaft Sensor network modeling and deployment
US7378962B2 (en) * 2004-12-30 2008-05-27 Sap Aktiengesellschaft Sensor node management and method for monitoring a seal condition of an enclosure
US20060253570A1 (en) * 2005-01-25 2006-11-09 Pratik Biswas Self-organizing sensor node network
EP1850261A1 (en) * 2005-02-10 2007-10-31 Matsushita Electric Industrial Co., Ltd. Program conversion device and program execution device
US20070169086A1 (en) * 2005-12-30 2007-07-19 Siliconmotion Inc. System and method for updating in-system program
US8107397B1 (en) * 2006-06-05 2012-01-31 Purdue Research Foundation Protocol for secure and energy-efficient reprogramming of wireless multi-hop sensor networks
JP4866692B2 (ja) * 2006-09-14 2012-02-01 株式会社日立製作所 センサノードに接続されるセンサネットサーバ
CN101001186A (zh) * 2006-11-29 2007-07-18 程伟明 基于传感网络技术的监控系统
US7991915B2 (en) * 2008-05-05 2011-08-02 Sentilla Corporation Software platform for radio network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100799567B1 (ko) 2005-12-08 2008-01-31 한국전자통신연구원 무선 센서 네트워크 시스템 및 무선 센서 네트워킹 방법

Also Published As

Publication number Publication date
US8667481B2 (en) 2014-03-04
KR20100068785A (ko) 2010-06-24
US20100153088A1 (en) 2010-06-17

Similar Documents

Publication Publication Date Title
KR101126797B1 (ko) 센서 노드의 업데이트를 수행하는 업데이트 서버 및 센서 노드, 센서 노드의 업데이트 방법
CN104063239B (zh) 移动终端的应用程序更新方法及服务器、客户端
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
US8966438B2 (en) System and methods for end-users to graphically program and manage computers and devices
US7747995B2 (en) Method and system for controlling software version updates
US20080256225A1 (en) Osgi-Based Dynamic Service Management Method for Context-Aware Systems
US8214810B2 (en) Method of compiling source code, compiler, computer system, and computer program product
CN107205055A (zh) 终端升级方法及装置
US20060026584A1 (en) Explicit linking of dynamic link libraries
US20100153928A1 (en) Developing and Maintaining High Performance Network Services
CN112702195A (zh) 网关配置方法、电子设备及计算机可读存储介质
Polakovic et al. Experience with safe dynamic reconfigurations in component-based embedded systems
CN109857432A (zh) 一种游戏应用的热更新方法和装置
CN113312046A (zh) 子应用页面处理方法、装置和计算机设备
CN109840103A (zh) 应用程序容器的更新方法、装置和存储介质
CN108694049A (zh) 一种更新软件的方法和设备
CA2491188A1 (en) Versioning support in object-oriented programming languages and tools
KR100724943B1 (ko) 통신장비 관리 장치 및 방법
Pfannemüller et al. REACT: A model-based runtime environment for adapting communication systems
CN114816475A (zh) 一种嵌入式操作系统的更新方法、装置、设备和介质
CN109947407B (zh) 一种数据获取方法及装置
CN112527306A (zh) 项目开发中模块的独立化实现方法、装置、设备及介质
KR100670797B1 (ko) 보조 저장장치가 없는 환경에서 실시간 패치 장치 및 그방법
CN106528134A (zh) 一种运行游戏的方法及装置
Dressler et al. Dynamic software management on BTnode sensors

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 7