KR102216103B1 - 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법 - Google Patents

홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법 Download PDF

Info

Publication number
KR102216103B1
KR102216103B1 KR1020190082700A KR20190082700A KR102216103B1 KR 102216103 B1 KR102216103 B1 KR 102216103B1 KR 1020190082700 A KR1020190082700 A KR 1020190082700A KR 20190082700 A KR20190082700 A KR 20190082700A KR 102216103 B1 KR102216103 B1 KR 102216103B1
Authority
KR
South Korea
Prior art keywords
message
electronic device
proxy
information
server
Prior art date
Application number
KR1020190082700A
Other languages
English (en)
Other versions
KR20190084932A (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 한국전자통신연구원
Publication of KR20190084932A publication Critical patent/KR20190084932A/ko
Application granted granted Critical
Publication of KR102216103B1 publication Critical patent/KR102216103B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords

Abstract

본 발명은 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법에 관한 것으로, 본 발명은 전자 장치로부터 광고 메시지를 수신하는 과정과; 상기 전자 장치에 상기 전자 장치의 등록을 위한 제1 등록 메시지를 전송하는 과정과; 상기 전자 장치로부터 상기 전자 장치의 등록을 위한 제2 등록 메시지를 수신하는 과정과; 상기 전자 장치에 상기 전자 장치의 등록을 위한 제3 등록 메시지를 전송하는 과정과;서버에 상기 전자 장치의 등록을 위한 제4 등록 메시지를 전송하는 과정을 포함할 수 있다.

Description

홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법{APPARATUS FOR PROVIDING HOME NETWORK SERVICE AND METHOD THEREOF}
본 발명은 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법에 관한 것으로, 웹 인터페이스를 갖는 장치들이 인터넷에 연결되어 다양한 서비스를 사용자에게 제공할 수 있는 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법에 관한 것이다.
최근 Wi-Fi 기술이 많이 이용됨에 따라 냉장고, 세탁기, 밥솥 등 홈 전자장치가 Wi-Fi 인터페이스를 통해 인터넷에 연결되어 사용자에게 다양한 서비스를 제공해 줄 것으로 기대하고 있다. 이러한 서비스를 제공하기 위한 최적의 솔루션으로 고려되는 것이 HTTP(hypertext transfer protocol) 웹 프로토콜인데, 이는 TCP(transmission control protocol)를 기반으로 하고 있기 때문에 일반적인 MCU(micro controller unit) 수준의 하드웨어에 올라가기에는 무리가 있다. 이러한 문제점을 해결하기 위해 IETF CORE (Constrained RESTful Environments) 워킹그룹에서는 경량화 된 웹 기반 프로토콜인 CoAP(constrained application protocol)을 표준화하였다. 그러나, CoAP 프로토콜은 UDP(user datagram protocol)를 기반으로 하기 때문에 인터넷 환경에서의 메시지 전달 신뢰성의 문제가 있으며, 이를 위해 IETF CORE에서는 로컬망에서는 CoAP, 인터넷망에서는 HTTP를 활용하는 모델을 제시하고 있다.
한편, 다양한 홈 전자장치를 인터넷에 연결시켜 네트워크 서비스를 사용자에게 제공하기 위한 노력을 하고 있지만, 인터넷이나 전자장치에 익숙하지 않은 사용자에게 전자 장치를 인터넷에 연결하고 등록하는 등의 초기 설정은 쉽지 않다. 이를 위해 다양한 장치 제어 및 관리를 위한 미들웨어 프로토콜 기술이 개발되고 있지만, 네트워크 환경의 복잡성, 구현의 복잡성 등으로 인해 활용이 제한적이라는 문제가 있다.
본 발명은 홈 전자 장치를 이용하여 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법에 관한 것이다.
또한, 본 발명은 Restful 웹 서비스를 기반으로 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법에 관한 것이다.
또한, 본 발명은 Restful 웹 서비스를 기반으로 홈 전자장치의 설정을 용이하게 수행할 수 있는 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법에 관한 것이다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
일실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 프록시에 광고 메시지를 전송하는 과정과; 상기 프록시로부터 전자 장치의 등록을 위한 제1 등록 메시지를 수신하는 과정과; 상기 프록시에 상기 전자 장치의 등록을 위한 제2 등록 메시지를 전송하는 과정과; 상기 프록시로부터 상기 전자 장치의 등록을 위한 제3 등록 메시지를 수신하는 과정을 포함할 수 있다.
일실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 전자 장치로부터 광고 메시지를 수신하는 과정과; 상기 전자 장치에 상기 전자 장치의 등록을 위한 제1 등록 메시지를 전송하는 과정과; 상기 전자 장치로부터 상기 전자 장치의 등록을 위한 제2 등록 메시지를 수신하는 과정과; 상기 전자 장치에 상기 전자 장치의 등록을 위한 제3 등록 메시지를 전송하는 과정과; 서버에 상기 전자 장치의 등록을 위한 제4 등록 메시지를 전송하는 과정을 포함할 수 있다.
일실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 프록시로부터 전자 장치의 등록을 위한 제4 등록 메시지를 수신하는 과정과; 단말에 상기 전자 장치의 등록을 위한 제5 등록 메시지를 전송하는 과정과; 상기 프록시에 상기 전자 장치의 등록을 위한 제6 등록 메시지를 전송하는 과정을 포함할 수 있다.
일실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 전자 장치로부터 광고 메시지를 수신하는 과정과; 상기 전자 장치에 광고 메시지를 전송하는 과정과; 서버로부터 상기 전자 장치 등록을 위한 제5 등록 메시지를 수신하는 과정을 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 광고 메시지는 바이너리 프로토콜을 이용하며, 프로토콜 버전, 메시지 유형, URI 길이, 전자 장치의 URI, 전자 장치의 등록 여부에 관한 정보 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 광고 메시지를 수신하는 과정은, 상기 서버에 상기 광고 메시지를 수신함을 알려주는 알림 메시지를 전송하는 과정을 포함하며, 상기 알림 메시지는 메시지 전달을 위한 URI, Restful 메시지 형식(Method), 전달하고자 하는 요청(Request) 중 적어도 하나를 포함하며, 상기 요청은 프록시에서 전자 장치를 매핑하고 있는 외부 URI, 프록시에 전자 장치의 등록 여부에 관한 정보 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 서버에 발견 정보를 요청하기 위한 요청 메시지를 전송하는 과정을 더 포함하며, 상기 요청 메시지는 메시지 전달을 위한 URI, Restful 메시지 형식(Method), 요청에 대한 응답(Response) 중 적어도 하나를 포함하며, 상기 응답은 프록시에서 전자 장치를 매핑하고 있는 외부 URI, 프록시에 전자 장치의 등록 여부에 관한 정보 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 제1 등록 메시지, 상기 제2 등록 메시지 및 상기 제3 등록 메시지는 CoAP 프로토콜을 사용하며, 확인형 메시지인지 여부에 관한 메시지 유형(Message Type), Restful 메시지 형식(Method), 시리얼 코드와 사용자 정보 및 등록 상태 업데이트에 관한 URI, 전자 장치의 등록 여부에 관한 정보를 포함하는 페이로드, 전자 장치의 시리얼 코드와 사용자 정보 및 등록 업데이트 수행 결과에 관한 정보를 포함하는 ACK 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 제4 등록 메시지는 메시지 전달을 위한 URI, Restful 메시지 형식, 요청 메시지에 대한 응답 중 적어도 하나를 포함하며, 상기 요청은 프록시에 전자 장치를 매핑하고 있는 외부 URI, 전자 장치의 고유 코드, 사용자 ID, 사용자 비밀번호, 사용자 전화번호 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 제5 등록 메시지는 바이너리 프로토콜을 사용하며, 프로토콜 버전, 메시지 유형, URI 길이, 전자 장치의 URI 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 전자 장치에 상기 전자 장치에 관한 정보를 요청하기 위한 정보 메시지를 전송하는 과정을 더 포함하며, 상기 정보 메시지는 확인형 메시지인지 여부에 관한 메시지 유형(Message Type), Restful 메시지 형식(Method), 전자 장치의 정보에 관한 URI, 전자 장치에 관한 정보를 포함하는 ACK 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 프록시에 상기 전자 장치에 관한 정보를 요청하기 위한 정보 메시지를 전송하는 과정과; 상기 단말에 상기 전자 장치에 관한 정보를 전송하기 위한 정보 메시지를 전송하는 과정을 더 포함하며, 상기 정보 메시지는 메시지 전달을 위한 URI, Restful 메시지 형식, 전달하고자 하는 요청(Request) 및 요청 메시지에 대한 응답 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 프록시에 이벤트 메시지를 전송하는 과정을 더 포함하며, 상기 이벤트 메시지는 바이너리 프로토콜을 사용하고, 프로토콜 버전, 메시지 유형, URI 길이, 이벤트 정보를 관리하는 인터넷 주소에 관한 URI 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 전자 장치에 이벤트 메시지를 전송하는 과정을 더 포함하며, 상기 이벤트 메시지는 바이너리 프로토콜 또는 CoAP 프로토콜을 사용하며, 상기 이벤트 메시지는 URI 길이, 이벤트 정보를 관리하는 인테넛 주소에 관한 URI, 확인형 메시지인지 여부에 관한 메시지 유형(Message Type), Restful 메시지 형식(Method) 및 업데이트된 URI 컨텐츠 값에 관한 정보를 포함하는 ACK 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 프로시로부터 이벤트 메시지를 수신하는 과정과; 상기 단말로부터 이벤트 메시지를 수신하는 과정을 더 포함하며, 상기 이벤트 메시지는 메시지 전달을 위한 인터넷 주소에 관한 URI, Restful 메시지 형식, 전달하고자 하는 요청(Request) 및 요청 메시지에 대한 응답 중 적어도 하나를 포함하며, 상기 요청 및 상기 방법은 이벤트 이름, 이벤트 값을 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 단말로부터 상기 전자 장치의 기능 수행을 위한 적용 메시지를 수신하는 과정과; 프록시에 상기 전자 장치의 기능 수행을 위한 적용 메시지를 전송하는 과정을 더 포함하며, 상기 적용 메시지는 메시지 전달을 위한 인터넷 주소에 관한 URI, Restful 메시지 형식, 전달하고자 하는 요청(Request) 및 요청 메시지에 대한 응답 중 적어도 하나를 포함하며, 상기 요청은 펌웨어를 다운로드 할 수 있는 URI, 롤백(Rollback) 하고자 하는 펌웨어 버전, 접속하고자 하는 SSID, 접속하고자 하는 SSID의 암호, 적용 수행 결과에 대한 정보 중 적어호 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 전자 장치에게 기능 수행을 위한 적용 메시지를 전송하는 과정을 더 포함하며,상기 적용 메시지는 CoAP 프로토콜을 사용하고, 확인형 메시지인지 여부에 관한 메시지 유형(Message Type), Restful 메시지 형식(Method), 적용의 인터넷 주소에 관한 URI, 적용되는 기능에 관한 정보를 포함하는 페이로드, 응답을 위한 ACK 중 적어도 하나를 포함할 수 있다.
다른 실시예에 따른, 홈 네트워크 서비스를 제공하기 위한 방법에 있어서, 상기 전자 장치로부터 기능 수행을 위한 적용 메시지를 수신하는 과정을 더 포함하며, 상기 적용 메시지는 바이너리 프로토콜을 사용하며, 프로토콜 버전, 메시지 유형, URI 길이, 적용의 인터넷 주소에 관한 URI, 적용 결과에 관한 정보 중 적어도 하나를 포함할 수 있다.
본 발명은 홈 네트워크 서비스를 제공함에 있어 Restful 웹 서비스를 기반으로 홈 전자 장치의 설정을 용이하게 수행할 수 있다. 이로 인해 사용자에게 편리함을 제공할 수 있으며, 홈 전자 장치의 제조자들이 용이하게 기술 개발을 수행할 수 있다.
도 1은 본 발명의 일 실시예에 의한 홈 네트워크 시스템의 구성을 나타내는 도면.
도 2는 본 발명의 일 실시예에 의한 홈 네트워크 시스템에서 이용하는 메시지 타입을 설명하기 위한 도면.
도 3은 본 발명의 일 실시예에 의한 홈 네트워크 시스템의 초기 설정 방법을 설명하기 위한 흐름도.
도 4a 내지 도 4d는 본 발명의 일 실시예에 의한 홈 네트워크 시스템에서 이용하는 메시지 구조를 설명하기 위한 도면.
이하, 본 발명의 실시예를 도면과 함께 상세히 설명한다. 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
도 1은 본 발명의 일 실시예에 의한 홈 네트워크 시스템의 구성을 나타내는 도면이다.
도 1을 참조하면, 본 발명의 홈 네트워크 시스템은 WoT 가전(100), WoT 프록시(110), 클라우드 서버(120) 및 스마트 단말(130)을 포함한다.
WoT(web of things) 가전(100)(이하, 전자 장치)은 웹 인터페이스를 갖고 홈에서 이용하는 전자 장치로서 냉장고, 세탁기, 밥솥 등이 해당될 수 있다. 전자 장치(100)는 웹컨넥티비티를 지원하기 위한 웹 소프트웨어(CoAP)(156)와 디바이스 제어 및 관리를 위한 미들웨어(Middleware)(153) 및 응용 프로그램(Device Application)(150)을 포함할 수 있다.
미들웨어(153)는 서버/클라이언트 구조의 단방향 메시지 전달이라는 웹 소프트웨어(CoAP)(156)의 단점을 보완하기 위해 바이너리(Binary)라는 경량화 프로토콜을 포함할 수 있다. 미들웨어(153)와 웹 소프트웨어(CoAP)(156)는 무선랜 규격인 802.11과 IP를 기반으로 데이터를 전송하는 UDP 스택을 포함하는 임베디드 OS(RTOS)(159) 상위에 위치할 수 있다.
WoT 프록시(110)(이하, 프록시)는 홈 내부 망과 홈 외부 인터넷 망을 연결시켜주는 것으로 게이트웨이 역할을 수행한다. 프록시(110)는 전자 장치(100)와의 통신을 위한 CoAP 라이브러리(169)와 디바이스 관리를 위한 미들웨어(163) 및 외부 인터넷에 연결된 서비스 노드와 통신하기 위한 HTTP 기반의 마이크로 웹서버/클라이언트(MWS/C)(166)를 포함할 수 있다. 또한, HTTP 기반으로 수신한 메시지를 전자 장치(100)에 CoAP 프로토콜로 전달하기 위한 WoT 프록시 모듈(WoT Proxy)(160)을 포함할 수 있으며, WoT 포록시 모듈(160)은 기기에서 CoAP으로 전달된 메시지를 외부 서비스 노드에 HTTP 기반으로 전달 하는 기능도 지원할 수 있다. 이때, 프록시 플랫폼(Proxy Platform)은 IP를 기반으로 데이터를 전송하는 UDP와 TCP 프로토콜을 수용할 수 있는 운영체제라면 어떤 운영 체제도 이용할 수 있다.
클라우드 서버(120)(이하, 서버)는 프록시(110)와 통신하며 외부로 open API(application program interface)를 제공할 수 있다. 인터넷 망을 통해 HTTP 기반으로 전자 장치(100)를 모니터링하고 관리할 수 있으며, 이 기능을 오픈 API로 제공할 수 있는 웹 서버/클라이언트(Web Server/Client)(173)와 응용 서비스(WoT Service)(170)를 포함할 수 있다. 서버 플랫폼(Server Platform)은 IP를 기반으로 하는 TCP 프로토콜을 수용할 수 있는 운영체제라면 어떤 운영 체제도 사용할 수 있으며, TCP 프로토콜 상위에는 일반적인 웹 통신규약인 HTTP를 사용할 수 있어야 한다.
스마트 단말(130)(이하, 단말)은 사용자가 open API를 이용하여 전자 장치(100)를 모니터링하고 제어할 수 있도록 한다. 단말(130)은 전자 장치(100)의 통신을 위한 CoAP 라이브러리(190)와 전자 장치(100)의 초기설정, 접근 제어 기능들을 지원하기 위한 미들웨어(189) 및 전자 장치(100)를 모니터링하고 제어할 수 있는 WoT 서비스(180) 및 오픈 API지원을 위한 웹 클라이언트(Web Client)(183)를 포함할 수 있다. 스마트 장치 플랫폼(Smart Device Platform)은 IP를 기반으로 데이터를 전송하는 UDP와 TCP 프로토콜을 수용할 수 있는 운영체제라면 어떤 운영체제라도 사용할 수 있으며, TCP 프로토콜 스택 위에는 일반적인 통신규약인 HTTP(186)를 사용하고 UDP 프로토콜 스택 위에는 웹 소프트웨어(CoAP)(190)과 미들웨어(189)가 위치할 수 있다.
도 2는 본 발명의 일 실시예에 의한 홈 네트워크 시스템에서 이용하는 메시지 타입을 설명하기 위한 도면이다.
도 2를 참조하면, 전자 장치(100)와 프록시(110) 사이에서는 CoAP 기반의 바이너리 형태의 메시지를 사용하며, 프록시(110)와 서버(120), 단말(130) 사이에는 HTTP를 기반으로 하는 Json(javascript standard object notation) 형태의 메시지를 사용할 수 있다.
본 발명에서 이용하는 미들웨어 프로토콜은 Restful 기반의 CoAP 프로토콜과 HTTP 프로토콜을 활용하여 URI와 Method(Get, Put, Delete, Post), 페이로드(Paylaod)를 정의하고 있으며, 서버(120)에서는 메시지를 능동적으로 전달할 수 없는 서버/클라이언트 구조의 CoAP 프로토콜의 제약 조건을 해결하기 위해 UDP 브로드 캐스팅을 위한 간단한 바이너리 프로토콜을 포함할 수 있다. 이때 method는 발견, 광고, 인증 등을 위한 것으로 get은 발견, 등록, 정보, 이벤트 등에 put은 광고, 발견, 등록, 정보, 이벤트, 제어, 인증 등인 경우 이용한다. WoT 가전(100)에서는 기계간 통신을 위한 프로토콜인 MQTT-S(MQ Telemetry Transport For Sensors) 등 다양한 프로토콜을 사용할 수도 있다.
도 3은 본 발명의 일 실시예에 의한 홈 네트워크 시스템의 초기 설정 방법을 설명하기 위한 흐름도이다.
도 3을 참조하면, 사용자는 단말(130)을 이용하여 서버(120)에 계정을 생성하며(300), 이때 사용자는 전자 장치(100)에 있는 QR 코드나 NFC 기능 등을 이용하여 앱을 다운로드한 후 서버(120)에 사용자의 아이디(ID) 및 비밀번호, 사용자 전화번호 정보 등을 등록할 수 있다.
또한, 전자 장치(100)는 최초 전원이 켜지면 고유의 SSID(Service Set Identifier)를 생성하고, software AP(access point) 모드로 동작한다(303). 단말(130)은 전자 장치(100)의 SSID를 입력하여 전자 장치(100)에 접속하는데, 이때 전자 장치(100)에서 단말(130)에 광고 메시지를 전송하면(305), 단말(130)은 전자 장치(100)에 광고 메시지를 전송한다(310). 단말(130)은 전자 장치(100)의 SSID를 미리 알 수 있으며, 필요에 따라 비밀번호를 사용할 수 있다.
단말(130)과 전자 장치(100)는 접속한 후 초기 설정을 위한 정보를 송수신하는데(315,320), 일 예로 초기 설정을 위한 정보는 전자 장치(100)의 고유코드, 프록시(110)의 SSID 및 비밀번호, 단말(130)이 서버(120)에 등록한 아이디 및 비밀번호, 단말(130) 정보 등이다. 프록시(110)의 SSID 및 비밀번호는 단말(130)이 전자 장치(100)에 전송하는데, 일 예로, 단말(130)의 응용 어플리케이션을 통해 사용자가 프록시(110)의 SSID와 비밀번호를 입력할 수 있으며, 입력된 정보는 단말(130)의 미들웨어를 통해 전자 장치(100) 미들웨어로 전달될 수 있다.
단말(130)과 전자 장치(100)가 초기 설정 정보를 송수신하면 단말(130)과 전자 장치(100)는 프록시(110)의 SSID 및 비밀번호를 이용하여 프록시(110)에 접속하며(325,330), 단말(130)은 프록시(110)를 통해 서버(120)에 접속한다(333). 이때, 프록시(110)에서 전자 장치(100)에 광고 메시지를 전송하면(335), 전자 장치(100)는 광고 메시지를 프록시(110)에 전송한다(340).
프록시(110)는 전자 장치(100)가 프록시(110)에 등록되어 있는지 살펴보는데, 등록되어 있지 않은 경우 등록을 위한 정보를 전자 장치(100)에 요청하며(343), 전자 장치(100)가 등록을 위한 정보를 전송하면(345), 전자 장치(100)를 등록한다(347). 이때, 일 예로, 등록을 위한 정보는 단말(130)이 서버(120)에 등록한 아이디 및 비밀번호, 단말(130) 정보, 전자 장치(100)의 고유코드 등이다.
프록시(110)는 전자 장치(100)를 등록한 후 등록 상태 업데이트 메시지를 전자 장치(100)에 전송하며(350), 전자 장치(100)는 이에 대한 응답 메시지를 프록시(110)에 전송한다(355). 또한, 프록시(110)는 서버(120)에 전자 장치(100)의 등록을 요청하고 등록을 위한 정보를 전송하며(360), 서버(120)는 전자 장치(100)의 등록을 완료하고(363), 등록 완료 메시지를 프록시에 전송하는데(370), 이때, 서버(120)는 단말(130)에 전자 장치(100)가 서버(120)에 등록됨을 알리는 새로운 장치의 등록에 관한 메시지를 전송할 수 있다(365). 프록시(110)는 서버(120)로부터 등록 완료 메시지를 수신하면 전자 장치(100)에 등록 상태 업데이트를 요청하며(375), 전자 장치(100)는 이에 대한 응답 메시지를 프록시(110)에 전송한다(380). 프록시(110)는 전자 장치(100)로부터 등록 상태 업데이트에 대한 응답 메시지를 수신하면, 단말(130)에게 서버(120)에 전자 장치(100)가 등록됨을 알리는 새로운 장치의 등록에 관한 메시지를 전송할 수 있는데, 이는 서버(120)에서 새로운 장치의 등록에 관한 메시지를 단말(130)에 전송하지 않은 경우 이용할 수 있다.
한편, 단말(130)은 사용자 인증을 위한 정보를 서버(120)에 전송하고(385), 서버(120)는 단말(130)로부터 수신한 사용자 인증을 위한 정보를 이용하여 서버 인증을 완료한다(391). 서버(120)는 인증이 완료되면 단말(130)로부터 수신한 사용자 인증을 위한 정보를 프록시(110)에 전송하고(390), 프록시(110)는 인증을 완료한 후(393) 인증 완료 메시지를 서버(120)에 전송하며(395), 서버(120)는 인증 완료 메시지를 단말(130)에 전송한다(399). 이때, 사용자 인증을 위한 정보는 일 예로, 전자 장치(100)의 고유코드, 사용자 ID와 비밀번호 등이다.
도 4a 내지 도 4b는 본 발명의 일 실시예에 의한 홈 네트워크 시스템에서 이용하는 메시지 구조를 설명하기 위한 도면이다.
본 발명에서 이용하는 미들웨어 프로토콜은 CoAP 프로토콜과 바이너리 프로토콜을 포함할 수 있는데, 도 4a를 참조하면, 바이너리 프로토콜은 프로토콜 버전(Version)(400), 메시지 유형(Message type)(405), URI 길이(Length)(410), URI(415), 페이로드(Payload)(445)로 구성될 수 있으며, 관련 설명은 [표 1]에 나타내었다.
Field Name Field Size (Byte) Description
Version 1 - 프로토콜 버전
· 0x01
Message Type 1 - 메시지 기능
· 0x01 : Advertisement
· 0x02 : Discovery
· 0x03 : Event Notification
· 0x04 : Apply Complete
· 0x05 : New Device Added
· 0x06 : Authentication Complete
URI Length 2 - URI 문자열의 크기 (Byte)
URI N - 장치 및 기능별로 다르게 기술
Payload 1 - Message Type별로 다르게 기술
광고(ADVERTISEMENT) 메시지는 소정의 장치가 네트워크에 처음 연결되거나, 전원이 켜질 때, 프록시(110) 또는 네트워크에 연결된 다른 장치에게 자신의 URI 정보 또는 등록 여부를 알려주는 메시지이다.
일 예로, 전자 장치(100)와 프록시(110) 사이에서, 광고 메시지는 CoAP 프로토콜을 사용하지 않고 바이너리 프로토콜만을 사용하며, 이때 광고 메시지 구조는 도 4b를 참조하면 버전(425), 메시지 유형(430), URI 길이(435), URI(440), 등록(Registration)(445)으로 구성될 수 있다.
Field Name Field Size (Byte) Description
Version 1 - 프로토콜 버전 : 0x01
Message Type 1 - Advertisement : 0x01
URI Length 2 - URI 문자열의 크기 (Byte)
URI N - 전자 장치 또는 프록시 또는 단말 자신의 URI (IP Address)
Registration 1 - 프록시 및 서버에 전자 장치가 등록되어 있는지 아닌지에 대한 여부
· 0x00 : Not Registered
· 0x01 : Registered in Proxy
· 0x11 : Registered in Cloud Server
· 0x12 : Registered in Cloud Server but IP
address Changed
전자 장치(100)의 미들웨어는 IP 정보를 가지고 있으며 부팅시 자신의 IP가 바뀌면 v{1}/config/registration의 값을 0x12로 업데이트 한다. 광고시 바이너리 메시지의 등록 필드는 0x12로 브로드캐스트 되고, 프록시(110) 미들웨어는 등록 필드값이 0x12이면 전자 장치(100)로부터 시리얼 코드를 읽어(get v{1}/config/serial) 프록시(110)에 알려준 후 성공적으로 IP 주소가 업데이트되면 프록시(110) 미들웨어는 디바이스의 v{1}/config/registration 값을 다시 0x11로 변경한다(put v{1}/config/registration).
또한, 프록시(110)와 서버(120) 사이에서, 프록시(110)가 전자 장치(100)로부터 광고 메시지를 수신하면, 프록시(110)는 서버(120)에게 광고 메시지를 수신하였음을 알려주는 광고 메시지를 전송할 수 있다. 일 예로, 광고 메시지의 구조 및 관련 내용은 [표 3] 및 [표 4]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/advertisement PUT advertisement AdvInfo
(Object Array)
true 400,500 시 Error 메시지 참고
‘URI’는 메시지 전달을 위한 인터넷 주소이며, ‘Method’는 Restful 메시지의 형식, ‘Requst’ 는 전달하는 메시지 이며, ‘Members’는 전달하는 메시지의 세부 내용들 이고, ‘Value’ 는 세부 내용의 실제 값이며, ‘Required’는 필수 항목인지에 대한 여부를 나타낸다. ‘{serverId}/v{1}/advertisement’는 광고 메시지를 전달할 클라우드 서버의 주소이며, ‘AdvInfo(Object Array)’는 광고를 위해 필요한 내용들이며, ‘true’는 필수항목이라는 의미이다. ‘Method’에 ‘put’이 기재된 경우, ‘Request’에 관련 내용이 기재된다.
Object Name Members Type Description
AdvInfo uri string 프록시에서 전자 장치를 매핑하고 있는 외부 URI (deviceId)
ex) 129.254.86.142/a
registration hex 프록시에 전자 장치가 등록되어 있는지 여부
· 0x00 : Not Registered
· 0x01 : Registered in Proxy
· 0x11 : Registered in Proxy and
CloudServer
‘Objection Name’ 은 ‘Request Value’명이고, ‘Members’는 ‘Object Name’의 상세 내용들이며, ‘type’은 ‘Member’ 값들의 자료형이고, ‘AdvInfo’는 광고를 위한 요청값이며, ‘string’은 문자열이고, ‘hex’는 16진법 표기법 이다.
Json 형태의 광고 메시지는 다음과 같다.
{
"advertisement": [
{
"uri": "129.254.86.142/a/",
"Registration": 00
},
{
"uri": "129.254.86.142/b/",
"Registration": 01
}
]
}
한편, 발견(DISCOVERY) 메시지는 네트워크에 연결된 소정의 장치의 존재를 확인하기 위한 것이며, 발견 메시지를 수신한 장치는 광고 메시지를 전송하여 응답할 수 있다. 단말(130)은 주기적으로 폴링(polling)을 하며, 서버(120)는 광고 메시지 정보를 저장한다. 일 예로, 단말(130)과 서버(120) 사이에서, 단말(130)은 서버(120)로부터 발견 정보를 읽어올 수 있으며, 이를 위해서는 서버(120)에 장치 광고 정보가 저장되어 있어야 한다. 일 예로, 발견 메시지 구조 및 관련 내용은 [표 5] 및 [표 6]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/{userId}/discovery
(Discovery 정보 요청)
GET discovery DisInfo
(Object Array)
true 400,500 시 Error 메시지 참고
‘URI’는 메시지 전달을 위한 인터넷 주소이며, ‘Method’는 Restful 메시지의 형식, ‘Response’는 요청 메시지에 대한 응답이고, ‘Members’는 응답메시지의 세부 내용들이며, ‘Value’는 세부 내용의 실제 값이고, ‘Required’는 필수 항목인지에 대한 여부이다. ‘{serverId}/v{1}/{userId}/discovery’는 발견 메시지를 요청할 클라우드 서버의 주소이며, ‘DisInfo(Object Array)’는 발견을 위해 필요한 내용들이며, ‘true’는 필수항목이라는 의미이다. ‘Method’에 ‘GET’이 기재된 경우, ‘Response’에 관련 내용이 기재된다.
Object Name Members Type Description
disInfo uri string 프록시에서 관리되는 전자 장치 URI를 클라우드에서 매핑하고 있는 외부 URI (deviceId)
registration hex 프록시에 전자 장치가 등록되어 있는지 여부
· 0x00 : Not Registered
· 0x01 : Registered in Proxy
· 0x11 : Registered in Proxy and Cloud Server
‘Objection Name’ 은 ‘Response Value’명이고, ‘Members’는 ‘Object Name’의 상세 내용들이며, ‘type’은 ‘Member’ 값들의 자료형이고, ‘disInfo’는 발견 요청에 응답값 이며, ‘string’은 문자열이고, ‘hex’는 16진법 표기법 이다.
Json 형태의 발견 메시지는 다음과 같다.
{
"discovery": [
{
"uri": "111.245.11.10/v1/129.254.86.142/a/",
"Registration": 11
},
{
"uri": "111.245.11.10/v1/129.254.86.142/b/",
"Registration": 11
}
]
}
또한, 서버(120)와 프록시(110) 사이에서, 프록시(110)는 서버(120)에 광고 메시지를 보낼 수 있으며, 광고 메시지를 수신한 후 서버(120)는 v{1}/{userId}/discovery정보를 업데이트 한다. 이때, 발견 메시지의 구조 및 관련 설명은 [표 3] 및 [표 4]를 참고한다.
또한, 프록시(110)와 전자 장치(100) 사이에서, 프록시(110)는 전자 장치(100)에 발견 메시지를 전송할 수 있으며, 전자 장치(100)는 발견 메시지를 수신하면 광고 메시지로 응답한다. 이때, 발견 메시지는 CoAP 프로토콜을 사용하지 않고, 바이너리 프로토콜만을 사용한다. 도 4c를 참조하면, 발견 메시지는 버전(450), 메시지 유형(455), URI 길이(460), URI(465)로 구성되며, 관련 설명은 [표 7]에 나타내었다.
Field Name Field Size Description
Version 1 - 프로토콜 버전 : 0x01
Message Type 1 - Device Discovery : 0x02
URI Length 2 - URI 문자열의 크기 (Byte)
URI N - Discovery를 요청하는 디바이스의 URI (Proxy의 IP address)
한편, 등록(REGISTRATION) 메시지는 전자 장치(100)를 프록시(110)와 서버(120)에 등록시키기 위한 메시지이다.
일 예로, 전자 장치(100)와 프록시(110) 사이에서, 프록시(110)에서 전자 장치(100)의 광고 메시지를 수신했을 때, 페이로드인 Registration 필드값이 0x00이면, 프록시(110)는 CoAP 메시지를 통해 고유 시리얼 코드를 읽어오고, 프록시(110)에 등록이 완료되면 전자 장치(100)의 등록 상태를 갱신한다. 이때, 등록 메시지는 CoAP 프로토콜을 사용하며, 메시지 구조 및 관련 내용은 [표 8]에서 나타내었다.
Field Name Field Size Description
Client (Proxy) Message Type 확인형(confirmable) 메시지인 CON을 사용
Method - 시리얼 코드 및 사용자 정보를 읽어오기 위해 GET을 사용
- 전자 장치의 등록상태를 업데이트하기 위해 PUT을 사용
URI 시리얼코드 v{1}/config/serial
사용자정보 v{1}/config/user
등록상태 업데이트 v{1}/config/registration
Payload 등록갱신 - 프록시에 등록 완료 시 (PUT method 사용 시) "0x01"을 사용
- 서버에 등록 완료 시 (PUT method 사용 시) "0x11"을 사용
Server (Device) ACK - 시리얼코드 : 디바이스 고유 시리얼코드 전달 (32Bytes text)
- 사용자정보 : 어플리케이션 등으로부터 수신한 사용자 정보 전달 (48Bytes text)
- ID (16Bytes)
- Password (16Bytes)
- Phone Number (16Bytes)
- 등록갱신
· 200 (OK) response SHOULD be returned
· If no resource exists then the server MAY create a new resource with that URI, resulting in a 201 (Created) response
· If the resource could not be created or modified, then an appropriate error response code SHOULD be sent.
‘Client(Proxy)’는 프록시(110)에서 사용하는 메시지이고, ‘Server(Device)’는 전자 장치(100)에서 사용하는 메시지이며, ‘ACK(acknowledge)’은 프록시(110)가 ‘GET’이나 ‘PUT’ 요청을 전자 장치(100)로 보냈을 때 그에 대한 응답이다.
또한, 프록시(110)와 서버(120) 사이에서, 프록시(110)에 전자 장치(100)가 등록되면 프록시(110)는 전자 장치(100)의 ‘URI’와 매핑되는 외부 ‘URI(ID)’를 생성한 후 전자 장치(100)의 고유코드와 ‘URI’ 정보를 서비스 노드로 전달한다. 이때, 등록 메시지의 구조 및 관련 내용은 [표 9] 및 [표 10]에서 나타내었다. [표 10]에서 ‘RegReqInfo’는 등록 요청을 위한 값이다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/config/
registration
(registration 요청)
PUT registrationReq RegReqInfo
(Object)
true 400,500 시 Error 메시지 참고
Object Name Members Type Description
RegReqInfo uri string 프록시에서 내부 디바이스를 매핑하고 있는 외부 URI (deviceId)
serialCode string WoT 장치의 고유 코드
id string 사용자 ID
password string 사용자 Password
phone string 사용자 전화번호
Json 형태의 등록 메시지는 다음과 같다.
# Registration Request
{
"registrationReq": {
"uri": "129.554.55.12/a",
"serialCode": "56543dswdfs-0ri0",
"id": "etri",
"password": "123456",
"phone": "01111112222"
}
}
또한, 프록시(110)와 단말(130) 사이에서, 서버(120)에 전자 장치(100)의 등록이 완료되고, 등록 결과가 전자 장치(100)에 전송되면 프록시(110)는 브로드캐스트 메시지를 통해 단말(130)에게 전자 장치(100)의 등록이 완료됨을 알릴 수 있다. 이때 등록 메시지는 바이너리 프로토콜만을 사용한다. 도 4c를 참조하면, 등록 메시지는 버전(450), 메시지 유형(455), URI 길이(460), URI(465)로 구성되며, 관련 설명은 [표 11]에 나타내었다.
Field Name Field Size Description
Version 1 - 프로토콜 버전 : 0x01
Message Type 1 - New Device Added : 0x05
URI Length 2 - URI 문자열의 크기 (Byte)
URI N - 등록된 디바이스의 URI (Proxy에서 관리하는 URI)
서버(120)에서 단말(130)로 전자 장치(100)의 등록이 완료됨을 직접 알려 줄 경우에는 Json 형태의 메시지를 사용할 수 있. 이때, uri는 등록 완료된 전자 장치(100)의 외부 URI(external URI, 외부 IP 주소), serialCode는 등록 완료된 전자 장치(100)의 시리얼코드, id는 등록 완료된 전자 장치(100)를 등록한 사용자 아이디, password는 등록 완료된 전자 장치(100)를 등록한 사용자 암호이다.
Json 형태의 등록 메시지는 다음과 같다.
{
“newDevice”:{
"uri": "129.254.86.142/device0",
"serialCode": "1234r3-r3r3klnff ",
"id": “test”,
"password": "test" /
}
}
한편, 정보(INFORMATION) 메시지는 전자 장치(100)에 관한 정보를 요청하기 위해 이용되며, 전자 장치(100)에 관한 정보는 이름, 타입(type), 모델명, 제조사명, 하드웨어(H/W) 및 펌웨어(firmware) 버전 등이 해당될 수 있다.
일 예로, 단말(130)과 서버(120) 사이에서, 단말(130)은 서버(120)에 전자 장치(100)에 관한 정보를 요청하고 ‘Ack’으로 정보를 수신할 수 있는데, 이를 위해 서버(120)는 전자 장치(100)에 관한 정보를 등록한다. 이때, 정보 메시지의 구조 및 이에 관한 설명은 [표 12] 및 [표 13]에 나타내었다. [표 12]에서 ‘informationRes’는 장치정보 요청에 대한 응답 값이다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/{deviceId}/info GET informationRes DeviceInfo
(Object
Array)
true 400,500 시 Error 메시지 참고
Object Name Members Type Description
DeviceInfo deviceName string 디바이스 이름
deviceType hex 디바이스 타입
modelName string 모델 이름
manufacturer string 제조사 이름
serverURI string 서비스 서버 URI
hwVersion string H/W 버전
firmwareVersion string 펌웨어 버전
Json 형태의 정보 메시지는 다음과 같다.
# Information Response
{
"informationRes": [
{
"deviceName": "test",
"deviceType": 1600,
"modelName": "test",
"manufacturer": "test",
"serverURI": "122.11.5.5",
"hwVersion": "1.1.1",
"firmwareVersion": "1.1.2"
}
]
}
또한, 서버(120)와 프록시(110) 사이에서, 서버(120)는 프록시(110)에 정보를 요청하는 정보 메시지를 전송할 수 있으며, 이때 정보 메시지는 HTTP 프로토콜을 사용한다. 정보 메시지의 구조 및 이에 관한 설명은 [표 14] 및 [표 15]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/{deviceId}/info PUT informationRes DeviceInfo
(Object
Array)
true 400,500 시 Error 메시지 참고
Object Name Members Type Description
DeviceInfo deviceName string 디바이스 이름
deviceType hex 디바이스 타입 (Annex A 참조)
modelName string 모델 이름
manufacturer string 제조사 이름
serverURI string 서비스 서버 URI
hwVersion string H/W 버전
firmwareVersion string 펌웨어 버전
Json 형태의 정보 메시지는 다음과 같다.
# Information Response
{
"informationRes": [
{
"deviceName": "test",
"deviceType": 1600,
"modelName": "test",
"manufacturer": "test",
"serverURI": "122.11.5.5",
"hwVersion": "1.1.1",
"firmwareVersion": "1.1.2"
}
]
}
또한, 프록시(110)와 전자 장치(100) 사이에서, 프록시(110)는 전자 장치(100)에게 정보를 요청할 수 있으며, 서버(120)로부터 정보를 요청하는 정보 메시지를 수신하면 수신된 정보 메시지를 전자 장치(100)에 전송한다. 프록시(110)와 전자 장치(100) 사이에서 사용하는 정보 메시지는 CoAP 프로토콜을 사용하며, 정보 메시지의 구조 및 이에 관한 설명은 [표 16]에 나타내었다. [표 16]에서 메시지 유형(Message Type)은 응답이 필요한 ‘CON’ 메시지인지 응답이 필요없는 ‘NON’ 메시지인지에 관한 것이다.
Field Name Field Size Description
Client (Proxy) Message Type - 확인형(confirmable) 메시지인 CON을 사용
Method - 전자 장치 정보를 읽어오기 위해 GET을 사용
URI - 디바이스 이름 : IP address/device/info/name
- 디바이스 타입 : IP address/device/info/type
- 모델 이름 : IP address/device/info/model
- 제조사 이름 : IP address/device/info/manufacturer
- 서비스 서버 URI : IP address/device/info/serveruri
- H/W 버전 : IP address/device/info/hwversion
- 펌웨어 버전 : IP address/device/info/fwversion
Server (Device) ACK - 디바이스 이름 : 16Bytes String
- 디바이스 타입 : 2Bytes Hexcode (Annex A 참조)
- 모델 이름 : 16Bytes String
- 제조사 이름 : 16Bytes String
- 서비스 서버 URI : 32Bytes String
- H/W 버전 : 16Bytes String
- 펌웨어 버전 : 16Bytes String
한편, 이벤트 알림(EVENT_NOTIFICATION) 메시지는 센서와 같이 특정 이벤트를 주기적으로 발생시키는 경우 관련 정보를 전송하기 위해 사용된다.
일 예로, 전자 장치(100)와 프록시(110) 사이에서, 전자 장치(100)에서 이벤트가 발생하면, 이벤트가 발생한 상황을 브로드캐스트를 통해 프록시(110)에 알리고, 프록시(110)는 CoAP 메시지를 통해 이벤트 URI로부터 이벤트 값을 알 수 있다. 이때, 이벤트 알림 메시지는 바이너리 프로토콜 또는 CoAP 프로토콜을 사용하며, 메시지 구조 및 이에 관한 설명은 도 4c, [표 17] 및 [표 18]에 나타내었다.
Field Name Field Size Description
Version 1 - 프로토콜 버전 : 0x01
Message Type 1 - Event Notification: 0x03
URI Length 2 - URI 문자열의 크기 (Byte)
URI N - Event 정보를 관리하는 URI를 기술
- URI의 기술 방식은 /v{1}/event/{event_name} 으로 기술하며 event_name은 기기별 프로파일을 참고한다.
Field Name Field Size Description
Client (Proxy) Message Type - 확인형(confirmable) 메시지인 CON을 사용
Method - URI의 값을 읽어오기 위한 GET을 사용
URI - EVENT_NOTIFICATION 바이너리 메시지에 포함되어 있는 URI를 사용 (EVENT URI)
Server (Device) ACK - 업데이트 된 URI content 값을 ACK로 client에 전달
- ACK 값은 기기별 프로파일을 참고한다.
또한, 프록시(110)와 서버(120) 사이에서, 프록시(110)가 전자 장치(100)로부터 이벤트 알림 메시지를 수신하면 프록시(110)는 서버(120)에 이벤트 알림 메시지를 전송한다. 이때, 이벤트 알림 메시지의 구조 및 이에 관한 설명은 [표 19] 및 [표 20]에 나타내었다. [표 19]에서 ‘event’는 이벤트 전달을 위한 요청 메시지이고, ‘EventInfo (Object Array)’는 이벤트 세부 값이다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/event PUT event EventInfo
(Object Array)
true 400,500 시 Error 메시지 참고
Object Name Members Type Description
EventInfo eventName string 이벤트 이름
eventValue string 이벤트 값
Json 형태의 이벤트 알림 메시지는 다음과 같다.
# Event
{
"event": [
{
"eventName": “a”,
"eventValue": "1"
},
{
"eventName": “b”,
"eventValue": "2"
}
]
}
또한, 서버(120)와 단말(130) 사이에서, 서버(120)가 이벤트 알림 메시지를 수신하면, 단말(130)은 필요한 경우 이벤트 정보를 알 수 있으며, 이때 이벤트 알림 메시지의 구조 및 이에 관한 설명은 [표 21] 및 [표 22]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/{deviceId}/event GET event EventInfo
(Object Array)
true 400,500 시 Error 메시지 참고
Object Name Members Type Description
EventInfo eventName hex 이벤트 이름
eventValue string 이벤트 값
Json 형태의 이벤트 알림 메시지는 다음과 같다.
# Event
{
"event": [
{
"eventName": “a”,
"eventValue": "1"
},
{
"eventName": “b”,
"eventValue": "2"
}
]
}
한편, 제어(CONTROL) 메시지는 장치 제어를 위해 사용되며, 단말(130)은 원격에서 전자 장치(100)를 제어할 수 있다.
일 예로, 단말(130)과 서버(120) 사이에서, 서버(120)는 단말(130)로부터 제어를 요청하는 제어 메시지를 수신하며, 기기별 제어 uri 및 메시지는 미리 결정된 기기별 WoT 프로파일을 참조할 수 있다.
또한, 서버(120)와 프록시(110) 사이에서, 서버(120)는 단말(130)로부터 제어를 요청하는 제어 메시지를 수신하면 이를 프록시(110)에 전송하는데, 이때, 제어 메시지는 HTTP 프로토콜을 사용하며, 기기별 제어 uri 및 메시지는 미리 결정된 기기별 WoT 프로파일을 참조할 수 있다. 일 예로, 미리 결정된 기기별 WoT 프로파일은 [표 23], [표 24]과 같이 구성될 수 있으며, [표 23], [표 24]는 전등(light) 에 관한 것이다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
/v1/lights
(전체 상태조회, 설정, 삭제)
GET ControlReq Object true 400,500 시 Error 메시지 참고
PUT ControlReq Object true
DELETE
Object Name Members Type Description
ControlReq proxyId String 프록시 ID
lights Array[Light] Light의 Array
light Object
error Object
Light deviceId String Light ID
onOff Int On, Off
dimming Int 0~10, Dimming level
color Int 0~3
Error Status String 401, 404, 501 등
Message String 에러 메시지
errorCode int 에러 코드
또한, 프록시(110)와 전자 장치(100) 사이에서, 프록시(110)는 서버(120)로부터 제어를 요청하는 메시지를 수신하면 이를 전자 장치(100)에 전송하는데, 이때, 제어 메시지는 CoAP 프로토콜을 사용하며, 제어 메시지의 구조 및 이에 관한 설명은 [표 25]에 나타내었다.
Field Name Field Size Description
Client (Proxy) Message Type - 확인형(confirmable) 메시지인 CON을 사용
Method - 제어코드를 전달(업데이트)하기 위해 PUT을 사용
URI - IP/v{1}/{controlName} 으로 기술
Payload - controlName에 따라 다르게 기술하며 전자 장치의 프로파일을 참조한다.
Server (Device) ACK - 200 (OK) response SHOULD be returned
- If no resource exists then the server MAY create a new resource with that URI, resulting in a 201 (Created) response
- If the resource could not be created or modified, then an appropriate error response code SHOULD be sent.
한편, 적용(APPLY) 메시지는 업데이트, Wi-Fi connection 등 시스템 관련 기능을 수행하기 위한 메시지이다.
일 예로, 서버(120)와 단말(130) 사이에서, 서버(120)는 단말(130)로부터 적용을 요청하는 적용 메시지를 수신할 수 있으며, 적용 메시지는 Request, Response, Result 메시지로 구성된다. 적용 메시지의 구조 및 이에 관한 설명은 [표 26] 및 [표 27]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/{deviceId}/apply/update
(Update 요청)
PUT firmwareUri string true 400,500 시 Error 메시지 참고
{serverId}/v{1}/{deviceId}/apply/rollBack
(RollBack 요청)
PUT rollback
(object)
RollBackInfo true 400,500 시 Error 메시지 참고
{serverId}/v{1}/{deviceId}/apply/apConnection
(Connection 요청)
PUT apConnection
(object)
ConnectionInfo true 400,500 시 Error 메시지 참고
{serverId}/v{1}/{deviceId}/apply/{applyName}/result
(Apply 결과)
GET result hex true 400,500 시 Error 메시지 참고
‘firmwareUri’는 펌웨어를 다운로드 할 수 있는 주소이고, ‘rollback(object)’는 시스템 롤백 요청을 위한 메시지이며, ‘apConnection(object)’는 AP 접속 요청을 위한 메시지이다.
Object Name Members Type Description
- firmwareUri string Firmware를 다운로드 할 수 있는 URI
RollBackInfo firmwareVersion string Rollback하고자 하는 펌웨어 버전
firmwareUri string Firmware를 다운로드 할 수 있는 URI
ConnectionInfo ssid string 접속하고자 하는 SSID
password string 접속하고자 하는 SSID의 암호
- result hex 0x01 : Success
0x00 : Fail
Json 형태의 적용 메시지는 다음과 같다.
# ApplyRequest
{
"apConnection": {
"ssid": “test”,
"password": "test"
}
}
#Apply Result
{
"result": 01
}
또한, 서버(120)와 프록시(110) 사이에서, 서버(120)는 단말(130)로부터 적용을 요청하는 메시지를 수신하면 이를 프록시(110)에 전송하는데, 이때 적용 메시지는 HTTP프로토콜을 사용하며, 적용 메시지의 구조 및 이에 관한 설명은 [표 28] 및 [표 29]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{deviceId}/v{1}/apply/update
(Apply 요청)
PUT firmwareUri string true 400,500 시 Error 메시지 참고
{deviceId}/v{1}/apply/rollBack
(Apply 요청)
PUT rollback
(object)
RollBackInfo true 400,500 시 Error 메시지 참고
{deviceId}/v{1}/apply/apConnection
(Apply 요청)
PUT apConnection
(object)
ConnectionInfo true 400,500 시 Error 메시지 참고
{serverId}/v{1}/{deviceId}/apply/{applyName}/result
(Apply 결과)
PUT result hex true 400,500 시 Error 메시지 참고
Object Name Members Type Description
- firmwareUri string Firmware를 다운로드 할 수 있는 URI
RollBackInfo firmwareVersion string Rollback하고자 하는 펌웨어 버전
firmwareUri string Firmware를 다운로드 할 수 있는 URI
ConnectionInfo ssid string 접속하고자 하는 SSID
password string 접속하고자 하는 SSID의 암호
- result hex 0x01 : Success
0x00 : Fail
Json 형태의 적용 메시지는 다음과 같다.
# ApplyRequest
{
"apConnection": {
"ssid": “test”,
"password": "test"
}
}
#Apply Result
{
"result": 01
}
또한, 프록시(110)와 전자 장치(100) 사이에서, 프록시(110)는 서버(120)로부터 적용 요청 메시지를 수신하면 CoAP 메시지를 통해 전자 장치(100)에 적용을 요청하고, 전자 장치(100)는 적용 작업이 완료되면 바이너리 프로토콜을 사용하여 그 결과를 프록시(110)에 알린다. 프록시(110)와 전자 장치(100) 사이에서의 적용 메시지는 바이너리 프로토콜과 CoAP 프로토콜을 함께 사용하는데, 바이너리 프로토콜의 구조는 도 4d를 참조하면, 버전(470), 메시지 유형(475), URI 길이(480), URI(485) 및 적용 결과(Apply Result)(490_)으로 구성되며, 이에 관한 설명 및 CoAP 프로토콜에 관한 설명은 [표 30] 및 [표 31]에 나타내었다.
Field Name Field Size Description
Version 1 - 프로토콜 버전 : 0x01
Message Type 1 - Apply Complete : 0x04
URI Length 2 - URI 문자열의 크기 (Byte)
URI N - v{1}/apply/{applyName} 으로 기술
Apply Result 1 - 적용 결과가 정상적으로 잘 이루어졌는지에 대한 여부
· 0x01 : Success
· 0x00 : Fail
Figure 112019070261077-pat00001
페이로드에 기술할 수 있는 데이터는 적용 요청 종류에 따라 업데이트 요청일 때는 업데이트 가능한 파일, 롤백 요청일 때는 원하는 시기의 롤백 파일, AP 접속 요청일 때는 AP의 SSID와 Password로 기술한다. Ack는 일반적인 웹 Ack를 사용한다.
한편, 인증(AUTHENTICATION) 메시지는 단말(130)이 전자 장치(100)의 제어 및 관리를 위해 프록시(110)에게 접근 권한 승인을 요청하기 위한 것이다. 단말(130)은 프록시(110)로부터 새로운 장치가 등록되었다는 메시지를 수신하면, 해당 장치에 대한 접근 권한 요청을 위해 전자 장치(100)의 고유 코드를 프록시(110)에 전송한다.
일 예로, 단말(130)과 서버(120) 사이에서, 인증 메시지는 ‘Request’ 메시지와 ‘Response’ 메시지로 구성되며, 인증이 완료되면 ‘v{1}/{userId}/discovery’의 장치 정보도 함께 업데이트 한다. 인증 메시지의 구조 및 및 이에 관한 설명은 [표 32] 및 [표 33]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{serverId}/v{1}/{userId}/authen
(Authentication 요청)
PUT authenticationReq AuthenCode
(object)
true 400,500 시 Error 메시지 참고
Object Name Members Type Description
AuthenCode uri string 클라우드에서 관리하는 프록시에 연결된 디바이스의 URI
serialCode string 전자 장치의 고유 코드
id string 사용자 ID
password string 사용자 Password
type hex 0x01 : Master Add
0x02 : Master Delete
0x11 : Sub Add
0x12 : Sub Delete
Json 형태의 인증 메시지는 다음과 같다.
#Authentication Request
{
"authenticationReq": {
"uri": "111.25.51.10/129.254.86.10/a",
"serialCode": "1234r3-r3r3klnff ",
"id": “test”,
"password": "test",
“type”:00
}
}
또한, 서버(120)와 프록시(110) 사이에서, 인증 메시지는 ‘Request’ 메시지와 ‘Response’ 메시지로 구성되며, 인증 메시지의 구조 및 및 이에 관한 설명은 [표 34] 및 [표 35]에 나타내었다.
URI Method Request Response
(200 OK)
Error
Members Value Required Members Value Required
{deviceId}/v{1}/authen
(Authentication 요청)
PUT authenticationReq AuthenCode
(object)
true 400,500 시 Error 메시지 참고
Object Name Members Type Description
AuthenCode serialCode string 전자 장치의 고유 코드
id string 사용자 ID
password string 사용자 Password
type hex 0x01 : Master Add
0x02 : Master Delete
0x11 : Sub Add
0x12 : Sub Delete
Json 형태의 인증 메시지는 다음과 같다.
#Authentication Request
{
"authenticationReq": {
"serialCode": "1234r3-r3r3klnff ",
"id": “test”,
"password": "test",
“type”:00
}
}
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다.
그러므로 본 발명의 범위는 설명된 실시 예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100: WoT 가전 110: WoT 프록시
120: 클라우드 서버 130: 스마트 단말

Claims (3)

  1. 삭제
  2. 단말이 수행하는 서비스 제공 방법에 있어서,
    어플리케이션을 이용하여 서버에 사용자 계정을 생성하는 단계;
    전자 장치가 소프트웨어 AP 모드로 동작하면, 상기 전자 장치의 접속 정보(SSID)를 이용하여 전자 장치에 접속하는 단계;
    상기 전자 장치에 접속한 이후에, 프록시의 접속 정보 및 상기 서버에 생성된 사용자 계정에 대한 정보를 전자 장치에 제공하는 단계;
    상기 프록시의 접속 정보를 이용하여 프록시에 접속하는 단계
    를 포함하고,
    상기 전자 장치와 단말은, 프록시의 접속 정보를 이용하여 프록시에 접속하고,
    상기 전자 장치가 프록시를 통해 전자 장치의 등록을 위한 정보에 기초하여 서버에 등록되고,
    상기 전자 장치의 등록을 위한 정보는, 상기 서버에 생성된 사용자 계정에 대한 정보 및 상기 전자 장치에 대한 정보를 포함하며,
    상기 단말은, 상기 서버에 전자 장치가 새로운 장치로 등록되었다는 메시지를 식별하는 서비스 제공 방법.
  3. 전자 장치가 수행하는 서비스 제공 방법에 있어서,
    소프트웨어 AP 모드로 전환하는 단계;
    상기 소프트웨어 AP 모드로 전환하면, 상기 전자 장치의 접속 정보로 연결한 단말로부터 프록시의 접속 정보 및 서버에 생성된 사용자 계정에 대한 정보를 수신하는 단계;
    상기 프록시의 접속 정보를 이용하여 프록시에 접속하는 단계;
    상기 전자 장치를 서버에 등록하기 위해 상기 사용자 계정에 대한 정보와 상기 전자 장치에 대한 정보를 프록시에 제공하는 단계
    를 포함하고,
    상기 전자 장치와 단말은, 프록시의 접속 정보를 이용하여 프록시에 접속하고,
    상기 전자 장치가 프록시를 통해 전자 장치의 등록을 위한 정보에 기초하여 서버에 등록되고,
    상기 전자 장치의 등록을 위한 정보는, 상기 서버에 생성된 사용자 계정에 대한 정보 및 상기 전자 장치에 대한 정보를 포함하며,
    상기 단말은, 상기 서버에 전자 장치가 새로운 장치로 등록되었다는 메시지를 식별하는 서비스 제공 방법.
KR1020190082700A 2014-10-21 2019-07-09 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법 KR102216103B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140142682 2014-10-21
KR20140142682 2014-10-21

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150105364A Division KR102000234B1 (ko) 2014-10-21 2015-07-24 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190084932A KR20190084932A (ko) 2019-07-17
KR102216103B1 true KR102216103B1 (ko) 2021-02-16

Family

ID=55915807

Family Applications (6)

Application Number Title Priority Date Filing Date
KR1020150105364A KR102000234B1 (ko) 2014-10-21 2015-07-24 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020150105267A KR102005059B1 (ko) 2014-10-21 2015-07-24 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020190082700A KR102216103B1 (ko) 2014-10-21 2019-07-09 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020190089012A KR102216111B1 (ko) 2014-10-21 2019-07-23 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020210017735A KR102258608B1 (ko) 2014-10-21 2021-02-08 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020210066715A KR102312994B1 (ko) 2014-10-21 2021-05-25 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020150105364A KR102000234B1 (ko) 2014-10-21 2015-07-24 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020150105267A KR102005059B1 (ko) 2014-10-21 2015-07-24 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020190089012A KR102216111B1 (ko) 2014-10-21 2019-07-23 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020210017735A KR102258608B1 (ko) 2014-10-21 2021-02-08 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
KR1020210066715A KR102312994B1 (ko) 2014-10-21 2021-05-25 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법

Country Status (1)

Country Link
KR (6) KR102000234B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023090647A1 (ko) * 2021-11-17 2023-05-25 삼성전자 주식회사 가전 기기를 서버에 등록하는 장치 및 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210009670A (ko) * 2019-07-17 2021-01-27 삼성전자주식회사 홈 네트워크 시스템, 서버 및 서버의 제어 방법
KR102042186B1 (ko) 2019-08-08 2019-11-27 마인엔지니어링건축사사무소 주식회사 사용자 맞춤 설정 및 제어가 가능한 홈 네트워킹 시스템 제공 방법
KR102042194B1 (ko) 2019-08-08 2019-11-07 마인엔지니어링건축사사무소 주식회사 효율적 제어가 가능한 홈 네트워크 시스템
KR102319511B1 (ko) * 2020-10-15 2021-10-28 김재학 IoT 플랫폼의 운영 및 서비스 제공을 위한 시스템
KR20220102261A (ko) * 2021-01-13 2022-07-20 삼성전자주식회사 전자 장치 및 바이너리 변경 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7703134B2 (en) * 2005-01-28 2010-04-20 Sony Corporation De-authentication of network component
KR20070021903A (ko) * 2005-08-19 2007-02-23 한국전자통신연구원 무선 휴대 인터넷 시스템에서의 방송형 메시지 전송 방법
US7956735B2 (en) * 2006-05-15 2011-06-07 Cernium Corporation Automated, remotely-verified alarm system with intrusion and video surveillance and digital video recording
CN101207613B (zh) * 2006-12-21 2012-01-04 松下电器产业株式会社 跨网域信息通信的认证方法、系统及其装置
US20110047253A1 (en) * 2009-08-19 2011-02-24 Samsung Electronics Co. Ltd. Techniques for controlling gateway functionality to support device management in a communication system
CN102123494B (zh) * 2010-01-09 2014-08-20 华为终端有限公司 微基站退网、撤销注册的方法、装置和系统
CA2795128A1 (en) * 2010-03-31 2011-10-06 Mediamath, Inc. Systems and methods for integration of a demand side platform
EP2854423B1 (en) * 2011-02-11 2019-10-23 IOT Holdings, Inc. Systems, methods and apparatus for managing machine-to-machine (M2M) entities
KR101867813B1 (ko) * 2011-04-12 2018-06-18 엘지전자 주식회사 단말 관리를 위한 서버시스템 및 온라인 서비스
KR102069876B1 (ko) * 2012-12-21 2020-01-23 삼성전자주식회사 전자 기기, 개인 클라우드 기기, 개인 클라우드 시스템 및 이들의 개인 클라우드 기기 등록 방법
US20140254466A1 (en) * 2013-02-21 2014-09-11 Qualcomm Incorporated Interleaving Advertising Packets For Improved Detectability And Security
KR102056080B1 (ko) * 2013-03-19 2019-12-16 삼성전자주식회사 상태 정보 제공 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023090647A1 (ko) * 2021-11-17 2023-05-25 삼성전자 주식회사 가전 기기를 서버에 등록하는 장치 및 방법

Also Published As

Publication number Publication date
KR20210019046A (ko) 2021-02-19
KR20160046711A (ko) 2016-04-29
KR102000234B1 (ko) 2019-07-16
KR102005059B1 (ko) 2019-07-30
KR20210064147A (ko) 2021-06-02
KR102312994B1 (ko) 2021-10-13
KR102216111B1 (ko) 2021-02-16
KR20190084932A (ko) 2019-07-17
KR20190089811A (ko) 2019-07-31
KR20160046710A (ko) 2016-04-29
KR102258608B1 (ko) 2021-06-01

Similar Documents

Publication Publication Date Title
KR102216103B1 (ko) 홈 네트워크 서비스를 제공하기 위한 장치 및 그 방법
US10965473B2 (en) Smart object identification in the digital home
US11082421B2 (en) Bootstrap mechanism for endpoint devices
US9749146B2 (en) Apparatus and methods for providing home network service
US10575153B2 (en) Enhanced operations between service layer and management layer in an M2M system by allowing the execution of a plurality of commands on a plurality of devices
KR102210748B1 (ko) 홈 네트워크 시스템에서 홈 디바이스를 서버에 등록하는 장치 및 방법
US20180213040A1 (en) Enabling Communications Between Devices
US10972428B2 (en) Assignment of tenancy to devices
US11671306B2 (en) Enhancing native service layer device management functionality
KR20190065405A (ko) 서비스 계층 그룹 동작을 위한 멀티캐스트의 인에이블
KR20150097254A (ko) 무선 통신 시스템에서 인증 정보 송수신 방법 및 장치
WO2012130048A1 (zh) 设备管理系统中对网关进行初始化的方法及装置
Lee et al. Automating Configuration System and Protocol for Next‐Generation Home Appliances
KR102647498B1 (ko) M2m 시스템에서 통지 메시지 전송 방법 및 그 장치
US20150334672A1 (en) Method, control node, gateway and computer program for enabling communication with a newly detected device
EP3918775A1 (en) Electronic device subscription
KR20140095410A (ko) 인터넷 환경에서의 무선 게이트웨이를 이용한 무선 디바이스 초기 환경설정 방법 및 장치
WO2020088787A1 (en) Compressed lwm2m registration

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant