KR102411691B1 - 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법 - Google Patents

외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법 Download PDF

Info

Publication number
KR102411691B1
KR102411691B1 KR1020180000869A KR20180000869A KR102411691B1 KR 102411691 B1 KR102411691 B1 KR 102411691B1 KR 1020180000869 A KR1020180000869 A KR 1020180000869A KR 20180000869 A KR20180000869 A KR 20180000869A KR 102411691 B1 KR102411691 B1 KR 102411691B1
Authority
KR
South Korea
Prior art keywords
electronic device
protocol
data
external electronic
ocf
Prior art date
Application number
KR1020180000869A
Other languages
English (en)
Other versions
KR20190083214A (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 KR1020180000869A priority Critical patent/KR102411691B1/ko
Priority to PCT/KR2018/016765 priority patent/WO2019135551A1/ko
Priority to US16/960,176 priority patent/US11265361B2/en
Publication of KR20190083214A publication Critical patent/KR20190083214A/ko
Application granted granted Critical
Publication of KR102411691B1 publication Critical patent/KR102411691B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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]
    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명의 다양한 실시예들에 따른 전자 장치는, 통신 회로, 적어도 하나의 메모리, 및 상기 통신 회로 및 상기 적어도 하나의 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가, 상기 통신 회로를 통해 제1 외부 전자 장치와 연결하고, 제1 프로토콜을 이용하는 제1 어플리케이션이 제2 외부 전자 장치에 전송하기 위해 생성한 제1 데이터에 제2 프로토콜에 기반한 헤더를 포함시키고, 상기 제2 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 제2 데이터를 생성하고, 및 상기 제2 데이터를 상기 제1 외부 전자 장치에 전송하는 인스트럭션들을 저장할 수 있다. 그 밖의 다양한 실시예가 가능하다.

Description

외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법{ELECTRONIC DEVICE FOR TRANSMITTING OR RECEIVING DATA VIA EXTERNAL ELECTRONIC DEVICE AND METHOD THEREOF}
본 발명의 다양한 실시예들은, 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법에 관한 것이다.
전자 장치는 외부 전자 장치와 무선 통신으로 연동하여 다양한 기능들을 제공할 수 있다. 전자 장치는 근거리 무선 통신으로 외부 전자 장치와 연결될 수 있고, 전자 장치는 근거리에 위치한 외부 전자 장치에 데이터를 전송하거나 수신할 수 있다. 예를 들어, 웨어러블 전자 장치는 SMS 메시지를 수신하기 위한 무선 통신 회로를 구비하지 않아도 모바일 전자 장치와 블루투스로 연결된 경우, 모바일 전자 장치에 수신된 SMS 메시지를 블루투스로 전달받을 수 있다.
전자 장치가 전자 장치와 연결된 외부 전자 장치의 네트워크 환경을 이용하여 다른 외부 전자 장치와 데이터 통신할 수 있다. 외부 전자 장치에서 지원하는 제1 프로토콜을 전자 장치에서 지원하지 않는 경우, 전자 장치는 제1 프로토콜을 그대로 이용하기 어려울 수 있다. 전자 장치는 제1 프로토콜을 전자 장치가 지원하는 다른 프로토콜로 변환하더라도, 변환한 프로토콜을 수신한 제1 프로토콜을 이용하는 다른 전자 장치에서 이를 해석하기 어려울 수 있다.
다양한 실시예들에 따르면, 외부 전자 장치에서 지원하는 제1 프로토콜을 전자 장치에서 지원하지 않는 경우에도 전자 장치에 제1 프로토콜의 변경 없이, 전자 장치에서 지원하는 제2 프로토콜을 이용하여 제1 프로토콜에 기반한 데이터를 외부 전자 장치를 통해 다른 외부 전자 장치에 전송할 수 있다.
다양한 실시예에 따른 전자 장치는, 통신 회로, 적어도 하나의 메모리, 및 상기 통신 회로 및 상기 적어도 하나의 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가, 상기 통신 회로를 통해 제1 외부 전자 장치와 연결하고, 제1 프로토콜을 이용하는 제1 어플리케이션이 제2 외부 전자 장치에 전송하기 위해 생성한 제1 데이터에 제2 프로토콜에 기반한 헤더를 포함시키고, 상기 제2 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 제2 데이터를 생성하고, 및 상기 제2 데이터를 상기 제1 외부 전자 장치에 전송하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따른 적어도 하나의 프로세서에 의하여 적어도 하나의 동작을 수행하도록 설정된 명령어(instructions)가 저장된 컴퓨터 판독 가능한(computer readable) 기록 매체에 있어서, 상기 적어도 하나의 동작은, 상기 적어도 하나의 프로세서가, 통신 회로를 이용하여 제1 외부 전자 장치와 연결하는 동작, 제1 프로토콜을 이용하는 제1 어플리케이션이 제2 외부 전자 장치에 전송하기 위해 생성한 제1 데이터에 제2 프로토콜에 기반한 헤더를 포함시키는 동작, 상기 제2 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 제2 데이터를 생성하는 동작, 및 상기 제2 데이터를 상기 제1 외부 전자 장치에 전송하는 동작을 포함할 수 있다.
다양한 실시예에 따른 전자 장치는, 제1 통신 회로, 제2 통신 회로, 적어도 하나의 메모리, 및 상기 제1 통신 회로, 상기 제2 통신 회로 및 상기 적어도 하나의 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가, 상기 제1 통신 회로를 통해 제1 외부 전자 장치와 연결하고, 상기 제1 외부 전자 장치로부터 제1 프로토콜에 기반하여 생성되어 제2 프로토콜에 기반한 헤더가 추가된 제1 데이터를 수신하고, 및 상기 제2 프로토콜에 기반한 헤더에 포함된 제2 외부 전자 장치에 대한 정보에 기초하여, 상기 제2 통신 회로를 통해 상기 제1 데이터를 상기 제2 외부 전자 장치에 전송하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따르면, 제1 프로토콜에 따른 네트워크 환경을 지원하지 않는 전자 장치에서 제2 프로토콜을 이용하여 제1 프로토콜에 기반한 데이터를 제2 프로토콜에 따른 네트워크 환경을 지원하는 외부 전자 장치를 통해 전송할 수 있다.
다양한 실시예에 따르면, 제1 프로토콜에 따른 네트워크 환경을 지원하지 않는 전자 장치에서 제1 프로토콜을 이용하는 어플리케이션이 프로토콜의 변경 없이 제2 프로토콜을 이용하여 제1 프로토콜에 따른 네트워크 환경의 다른 외부 전자 장치와 데이터 통신할 수 있다.
도 1은, 다양한 실시예들에 따르면, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다.
도 2는 다양한 실시예들에 따른 OCF(open connectivity foundation) 기반 IoT(internet of things) 클라우드 환경을 도시한다.
도 3은 다양한 실시예들에 따른 웨어러블 전자 장치가 모바일 전자 장치를 통해 OCF 클라우드와 데이터 통신하는 상황을 설명하기 위한 일 예이다.
도 4는 다양한 실시예들에 따른 웨어러블 전자 장치가 모바일 전자 장치를 통해 OCF 클라우드와 TCP 프로토콜에 따라 연결되는 시나리오를 설명하기 위한 시퀀스 다이어그램이다.
도 5는 다양한 실시예에 따른 CoAP 프로토콜을 이용하는 어플리케이션과 CoAP 프로토콜에 기반한 인터페이스를 제공하는 서버에 대한 매핑 정보를 포함하는 테이블의 예시이다.
도 6은 다양한 실시예들에 따라 CoAP 프로토콜을 이용하는 어플리케이션에서 발생한 요청의 예시이다.
도 7은 다양한 실시예들에 따른 전자 장치가 CoAP 프로토콜을 이용하는 어플리케이션에 HTTP 프로토콜에 대한 포트 정보를 제공하는 응답의 예시이다.
도 8a는 다양한 실시예들에 따른 CoAP 프로토콜을 이용하는 어플리케이션이 생성한 데이터의 예시이고, 도 8b는 다양한 실시예들에 따른 웨어러블 전자 장치가 도 8a의 데이터를 모바일 전자 장치에 전송하기 위해 변경한 데이터의 예시이다.
도 9a는 다양한 실시예들에 따른 웨어러블 전자 장치가 모바일 전자 장치로부터 수신한 IP 데이터의 예시이고, 도 9b는 다양한 실시예들에 따른 웨어러블 전자 장치가 도 9a의 IP 데이터를 OCF 어플리케이션에 전달하기 위해 변경한 IP 데이터의 예시이다.
도 10은 다양한 실시예에 따른 전자 장치가 제1 외부 전자 장치를 통해 제2 외부 전자 장치에 데이터를 전송하는 방법을 설명하기 위한 순서도이다.
도 11은 다양한 실시예에 따른 전자 장치가 제1 외부 전자 장치로부터 수신한 데이터를 제2 외부 전자 장치에 전달하는 방법을 설명하기 위한 순서도이다.
도 1은, 다양한 실시예들에 따르면, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, BLE(bluetooth low energy), WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
다양한 실시예에 따른 전자 장치(예: 전자 장치(101))는, 통신 회로(예: 통신 모듈(190)), 적어도 하나의 메모리(예: 메모리(130)), 및 상기 통신 회로 및 상기 적어도 하나의 메모리와 전기적으로 연결되는 적어도 하나의 프로세서(예: 프로세서(120))를 포함하고, 상기 적어도 하나의 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가, 상기 통신 회로를 통해 제1 외부 전자 장치와 연결하고, 제1 프로토콜을 이용하는 제1 어플리케이션이 제2 외부 전자 장치에 전송하기 위해 생성한 제1 데이터에 제2 프로토콜에 기반한 헤더를 포함시키고, 상기 제2 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 제2 데이터를 생성하고, 상기 제2 데이터를 상기 제1 외부 전자 장치에 전송하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따르면, 상기 제1 프로토콜은 CoAP(constrained application protocol) 프로토콜이고, 상기 제1 데이터는 상기 CoAP 프로토콜에 따른 헤더 및 페이로드(payload)를 포함할 수 있다.
다양한 실시예에 따르면, 상기 제2 프로토콜은 HTTP(hypertext transfer protocol) 프로토콜이고, 상기 제1 데이터는 상기 HTTP 프로토콜에 기반한 헤더를 포함할 수 있다.
다양한 실시예에 따르면, 상기 제1 데이터에 포함된 상기 HTTP 프로토콜에 기반한 상기 헤더는, 상기 HTTP 프로토콜에 기반하여 상기 제1 어플리케이션에 할당된 포트(port) 번호를 포함하는 상기 제1 외부 전자 장치에 대한 전용(redirect) 주소를포함할 수 있다.
다양한 실시예에 따르면, 상기 제2 데이터에 포함된 상기 HTTP 프로토콜에 기반한 헤더는, 상기 제2 외부 전자 장치에 대한 주소 및 상기 제2 외부 전자 장치에 대한 포트 번호를 포함할 수 있다.
다양한 실시예에 따르면, 상기 HTTP 프로토콜은 상기 제2 데이터를 수신한 상기 제1 외부 전자 장치가 상기 HTTP 프로토콜에 기반한 헤더 정보에 기초하여, 상기 제2 외부 전자 장치에 상기 제2 데이터를 전송하는 것을 지원할 수 있다.
다양한 실시예에 따른 전자 장치(101)는, 상기 제1 외부 전자 장치로부터 상기 제2 외부 전자 장치가 전송한 제3 데이터를 수신하는 경우, 상기 제3 데이터를 상기 제1 어플리케이션에 전달할 수 있다.
다양한 실시예에 따른 전자 장치(101)에서, 상기 통신 회로(190)는 근거리 무선 통신을 지원하고, 상기 적어도 하나의 프로세서(120)는, 상기 제1 외부 전자 장치와 상기 근거리 무선 통신으로 연결할 수 있다.
다양한 실시예에 따른 전자 장치(101)는 제1 통신 회로(예: 제 1 네트워크 모듈 (198)), 제2 통신 회로(예: 제 2 네트워크 모듈 (199)), 적어도 하나의 메모리(예: 메모리(130)), 및 상기 제1 통신 회로(198), 상기 제2 통신 회로(199) 및 상기 적어도 하나의 메모리(130)와 전기적으로 연결되는 적어도 하나의 프로세서(예: 프로세서(120))를 포함하고, 상기 적어도 하나의 메모리(130)는, 실행 시에, 상기 적어도 하나의 프로세서(120)가, 상기 제1 통신 회로(198)를 통해 제1 외부 전자 장치와 연결하고, 상기 제1 외부 전자 장치로부터 제1 프로토콜에 기반하여 생성되어 제2 프로토콜에 기반한 헤더가 추가된 제1 데이터를 수신하고, 상기 제2 프로토콜에 기반한 헤더에 포함된 제2 외부 전자 장치에 대한 정보에 기초하여, 상기 제2 통신 회로(199)를 통해 상기 제1 데이터를 상기 제2 외부 전자 장치에 전송하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따르면, 상기 제1 프로토콜은 CoAP 프로토콜이고, 상기 제1 데이터는 상기 CoAP 프로토콜에 따른 헤더 및 페이로드를 포함하며, 상기 제2 외부 전자 장치는 OCF 스펙을 따르고 CoAP 프로토콜 기반의 인터페이스를 제공할 수 있다.
다양한 실시예에 따르면, 상기 제2 프로토콜은 HTTP 프로토콜이고, 상기 제1 데이터는 상기 제2 외부 전자 장치에 대한 주소 및 포트 번호를 포함할 수 있다.
다양한 실시예에 따르면, 상기 제1 통신 회로(198)는 근거리 무선 통신을 지원하고, 상기 제2 통신 회로(199)는 원거리 무선 통신을 지원할 수 있다.
도 2는 다양한 실시예들에 따른 OCF(open connectivity foundation) 기반 IoT(internet of things) 클라우드 환경을 도시한다. OCF 스펙(specification)은 IoT 클라우드를 제공하기 위한 기술을 명세할 수 있다. IoT 클라우드 환경은 예를 들어, OCF 클라우드 환경으로 구체화될 수 있다. OCF 클라우드 환경은 IoT 클라우드(예: OCF 클라우드(220)), IoT 기기(예: OCF 컨트롤리(controllee)(210)), 및 OCF 클라우드(220)를 통해 IoT 기기를 제어하는 장치(예: OCF 컨트롤러(controller)(230))를 포함할 수 있다. 다양한 실시예에 따르면, OCF 스펙을 따르는 OCF 클라우드는 CoAP(constrained application protocol) 프로토콜 기반의 인터페이스를 제공할 수 있다. OCF 컨트롤리(210) (예: 도 1의 전자 장치(104)), OCF 컨트롤러(230) (예: 도 1의 전자 장치(101)) 및 OCF 클라우드(220) (예: 도 1의 서버(108))는 CoAP 프로토콜에 기반하여 서로 통신할 수 있다. 예를 들어, OCF 스펙은 http://openconnectivity.org/developer/specifications에 기재된 것일 수 있고, CoAP 프로토콜은 http://tools.ietf.org/html/rfc7252에 기재된 것일 수 있다.
OCF 컨트롤러(230)와 OCF 컨트롤리(210)는 OCF 클라우드(220)와 CoAP 프로토콜 기반으로 TLS(transport layer security)로 연결되어 통신할 수 있다. OCF 컨트롤러(230)는 OCF 컨트롤리(210)를 제어 또는 모니터링하기 위한 기능을 제공할 수 있고, OCF 컨트롤리(210)는 기기로서 OCF 컨트롤러(230)가 제어 또는 모니터링을 할 수 있는 기능을 제공할 수 있다. OCF 클라우드(220)는 사용자 식별 정보에 기초하여 등록된 OCF 컨트롤리(210)와 OCF 컨트롤러(230) 사이의 데이터(예: 명령어, 상태 정보 데이터 등)를 전달할 수 있다. 예를 들어, OCF 컨트롤러(230)는 모바일 전자 장치(예: 도 1의 전자 장치(101))일 수 있고, OCF 컨트롤리(210)는 TV일 수 있다. 모바일 전자 장치는 원격으로 OCF 클라우드(220)를 통해 연결된 TV의 전원을 키거나 끌 수 있다.
도 3은 다양한 실시예들에 따른 웨어러블 전자 장치가 모바일 전자 장치를 통해 OCF 클라우드와 데이터 통신하는 상황을 설명하기 위한 일 예이다. 다양한 실시예에서, 웨어러블 전자 장치(310) 는 모바일 전자 장치(320) 를 통해 OCF 클라우드(330)(예: 도 1의 서버(108))와 데이터 통신할 수 있다. 웨어러블 전자 장치(310)는 모바일 전자 장치(320)를 이용하여 OCF 컨트롤러(예: 도 2의 OCF 컨트롤러(230)) 또는 OCF 컨트롤리(예: 도 2의 OCF 컨트롤리(210))의 역할을 할 수 있다. 다양한 실시예에서, 웨어러블 전자 장치(310) 및 모바일 전자 장치(320)는 도 1의 전자 장치(101)와 적어도 일부 또는 동일한 구성을 가질 수 있다.
다양한 실시예에서, 웨어러블 전자 장치(310)는 모바일 전자 장치(320)와 근거리 무선 통신(301)(예: 도 1의 제 1 네트워크(198))으로 연결될 수 있다. 예를 들어, 웨어러블 전자 장치(310)는 블루투스 또는 BLE를 이용하여 모바일 전자 장치(320)와 데이터 통신할 수 있다. OCF 클라우드(330)는 원거리 무선 통신(302)을 제공할 수 있고, 원거리 무선 통신이 가능한 모바일 전자 장치(320)는 OCF 클라우드(330)와 원거리 무선 통신(302)(예: 도 1의 제 2 네트워크(199))에 따라 연결될 수 있다. 예를 들어, 모바일 전자 장치(320)는 와이파이 또는 셀룰러를 이용하여 OCF 클라우드(330)와 데이터 통신할 수 있다. 다양한 실시예에서, 웨어러블 전자 장치(310)는 모바일 전자 장치(320)를 통해 OCF 클라우드(330)와 데이터 통신할 수 있다. 예를 들어, 웨어러블 전자 장치(310)가 블루투스를 이용하여 모바일 전자 장치(320)에 전송한 데이터를 모바일 전자 장치(320)가 와이파이를 이용하여 OCF 클라우드(330)에 전달할 수 있다. 또는, OCF 클라우드(330)가 와이파이를 이용하여 모바일 전자 장치(320)에 전송한 데이터를 모바일 전자 장치(320)가 블루투스를 이용하여 웨어러블 전자 장치(310)에 전달할 수 있다. 다양한 실시예에 따르는 웨어러블 전자 장치(310)는 모바일 전자 장치(320)의 네트워크 환경을 이용할 수 있고, 모바일 전자 장치(320)는 웨어러블 전자 장치(310)에 네트워크 환경을 제공할 수 있다. 예를 들어, 웨어러블 전자 장치(310)에 셀룰러 통신을 위한 회로를 구비하지 않는 경우에도, 웨어러블 전자 장치(310)에 구비된 블루투스 통신 회로를 이용하여 모바일 전자 장치(310)에 연결하고, 모바일 전자 장치(310)에 구비된 셀룰러 통신을 이용할 수 있다.
OCF 클라우드(330)는 IoT 클라우드 환경을 제공하기 위해 OCF 스펙을 따르고, OCF 컨트롤러 및 OCF 컨트롤리에게 CoAP 프로토콜 기반의 인터페이스를 제공할 수 있다. 예를 들어, OCF 클라우드(330)는 TCP(transmission control protocol) 프로토콜 및 UDP(user datagram protocol) 프로토콜을 제공할 수 있다. 웨어러블 전자 장치(310)는 OCF 컨트롤러로써 TCP 프로토콜을 이용하여 OCF 클라우드(330)에 TCP 연결을 할 수 있다.
도 4는 다양한 실시예들에 따른 웨어러블 전자 장치가 모바일 전자 장치를 통해 OCF 클라우드와 TCP 프로토콜에 따라 연결되는 시나리오를 설명하기 위한 시퀀스 다이어그램이다. 다양한 실시예에 따른 웨어러블 전자 장치(410)(예: 도 3의 웨어러블 전자 장치(310))는 OCF 어플리케이션(411), CoAP 프록시(412) 및 HTTP 프록시 컨슈머(413)을 포함할 수 있고, 웨어러블 전자 장치(410)에 포함된 적어도 하나 이상의 프로세서(예: 도 1의 프로세서(120))는, OCF 어플리케이션(411), CoAP 프록시(412) 및 HTTP 프록시 컨슈머(413)로써 동작할 수 있다. 다양한 실시예에 따른 모바일 전자 장치(420)(예: 도 3의 모바일 전자 장치(320))는 HTTP 프록시 프로바이더(421)을 포함할 수 있고, 모바일 전자 장치(420)에 포함된 적어도 하나 이상의 프로세서(예: 도 1의 프로세서(120))는 HTTP 프록시 프로바이더(421)로써 동작할 수 있다. OCF 클라우드(430)는 CoAP 프로토콜 기반의 인터페이스를 제공할 수 있다.
441 동작에서, OCF 어플리케이션(411)는 OCF 클라우드(430)와 연결하기 위해서 CoAP 프록시(412)에 세션 생성을 요청할 수 있다. 세션 생성을 요청할 때는 OCF 클라우드(430)의 주소 정보(예: "coaps+tcp:// samsungiotcloud.com:443")를 포함할 수 있다. 예를 들어, 도 6은 다양한 실시예에 따라 json 형태로 작성된 세션 생성 요청을 예시한 것으로, 자세한 사항은 후술하겠다.
442 동작에서, CoAP 프록시(412)는 OCF 어플리케이션(411)에 포트 번호를 할당하고, 할당한 포트 정보를 포함한 응답을 제공할 수 있다. 예를 들어, OCF 어플리케이션(411)에 "8791" 포트 번호가 할당될 수 있다. 상기 응답은, 할당된 포트 정보 및 모바일 전자 장치(420)의 주소 정보(예: "127.0.0.1")를 포함할 수 있다. 다양한 실시예에서, 모바일 전자 장치(420)의 주소는 모바일 전자 장치(420)에 포함된 포트 번호(예: transmission control protocol(TCP))를 포함할 수 있다. 예를 들어, 도 7은 다양한 실시예에 따른 세션 생성 요청에 대응하여 json 형태로 작성된 응답을 예시한 것으로, 자세한 사항은 후술하겠다.
CoAP 프록시(412)는 OCF 어플리케이션(411)에 대해서 OCF 어플리케이션(411)이 연결하고자 하는 OCF 클라우드(430)와의 매핑 정보를 저장 및 관리할 수 있다. CoAP 프록시(412)는 OCF 어플리케이션(411)이 OCF 클라우드(430)에 데이터를 전송하는 것을 중계하기 위해서, OCF 어플리케이션(411)에 가상 포트(random port)를 지정하고, OCF 클라우드(430)의 주소 정보를 OCF 어플리케이션(411)에 매핑할 수 있다. 매핑 관계에 기초하여, CoAP 프록시(412)는 OCF 어플리케이션에 할당된 포트에 대한 데이터 전송 또는 수신을 감지할 수 있다. 예를 들어, CoAP 프록시(412)는 할당된 포트에 소켓 리슨(socket listen)할 수 있다. 도 5는 다양한 실시예에 따른 CoAP 프록시(412)가 관리하는 매핑 테이블을 예시한 것으로, 자세한 사항은 후술하겠다.
443 동작에서, OCF 어플리케이션(411)은 할당된 포트 정보를 포함하는 전용 주소(redirect URL)를 이용하여 OCF 클라우드(430)에 대한 TCP 연결을 요청할 수 있다. 전용 주소는 모바일 전자 장치(420)에 대한 주소를 포함할 수 있다. 예를 들어, 전용 주소는 모바일 전자 장치(420)의 주소 "127.0.0.1" 및 할당된 포트 번호 "8791"로 구성될 수 있다.
444 동작에서, CoAP 프록시(412)는 할당된 포트 "8791"로 TCP 연결 요청을 접수한 후, 매핑 테이블에서 할당된 포트 "8791"와 매핑된 OCF 클라우드 주소를 탐색할 수 있다. 예를 들어, 탐색된 OCF 클라우드 주소는 "coaps+tcp:// samsungiotcloud.com:443"가 될 수 있다. CoAP 프록시(412)는 HTTP 프로토콜에서 지원하는 터널링 기능을 이용하기 위해서 HTTP 프록시 컨슈머(413)에게 OCF 클라우드(430)의 주소(예: "coaps+tcp:// samsungiotcloud.com:443")로 CONNECT HTTP method를 보낼 수 있다. 다양한 실시예에서, OCF 클라우드(430)의 주소는 OCF 클라우드(430)에 할당된 포트 번호(예: TCP)를 포함할 수 있다.
445 동작에서, 웨어러블 전자 장치(410)의 HTTP 프록시 컨슈머(413)는 모바일 전자 장치(420)의 HTTP 프록시 프로바이더(421)에 OCF 클라우드 주소로 CONNECT HTTP method를 보낼 수 있다. 웨어러블 전자 장치(410)가 TCP 네트워크 환경을 지원하는지와 무관하게, HTTP 프록시 컨슈머(413)는 웨어러블 전자 장치(410)에 연결된 모바일 전자 장치(420)에게 예를 들어 블루투스를 이용하여 CONNECT HTTP method를 전송할 수 있다.
446 동작에서, 모바일 전자 장치(420)의 HTTP 프록시 프로바이더(421)는 수신한 CONNECT HTTP method를 처리하기 위해 OCF 클라우드(430)의 주소로 TCP 연결을 수행한다. 모바일 전자 장치(420)는 TCP 네트워크 환경을 지원할 수 있고, 모바일 전자 장치(420)는 OCF 어플리케이션(411)을 위해 TCP 네트워크 환경을 이용하여 OCF 클라우드(430)와 TCP 연결을 수행할 수 있다.
447 동작에서, 모바일 전자 장치(420)의 HTTP 프록시 프로바이더(421)는 OCF 클라우드(430)와 TCP 연결이 완료되면, 웨어러블 전자 장치(410)의 HTTP 프록시 컨슈머(413)에 TCP 연결이 완료된 정보를 제공할 수 있다. 예를 들어, HTTP 프록시 프로바이더(421)는 HTTP 프록시 컨슈머(413)에 TCP 프로토콜에 따른 "200 Connection Established" 메시지를 전송할 수 있다.
448 동작에서, HTTP 프록시 컨슈머(413)는 CoAP 프록시(412)에 OCF 클라우드(430)와의 TCP 연결이 완료됨을 알릴 수 있다.
449 동작에서, CoAP 프록시(412)는 OCF 클라우드(430)와의 TCP 연결 완료 정보에서 OCF 클라우드(430)의 주소 정보에 기초하여 OCF 클라우드(430)와 연결된 OCF 어플리케이션(411)을 확인할 수 있다. 예를 들어, CoAP 프록시(412)는 OCF 어플리케이션(411)과 OCF 클라우드(430)와의 매핑 관계를 포함하는 매핑 테이블을 이용하여 TCP 연결이 완료된 OCF 클라우드(430) 및 그에 대응하는 OCF 어플리케이션(411)에 대한 정보를 확인할 수 있다. 확인한 정보에 기초하여, CoAP 프록시(412)는 OCF 어플리케이션(411)에 OCF 클라우드(430)와의 연결이 완료된 것을 모바일 전자 장치(420)의 주소 및 OCF 어플리케이션(411)에 할당된 포트 번호를 통해 알릴 수 있다.
450 동작에서, OCF 어플리케이션(411)은 OCF 클라우드(430)와의 연결에 기초하여, OCF 클라우드(430)에 데이터를 전송하기 위해, 전용 주소를 이용하여 CoAP 메시지를 CoAP 프록시(412)에 전송할 수 있다. CoAP 메시지는 CoAP 프로토콜에 따라 CoAP 헤더와 바디로 구성될 수 있다. CoAP 프로토콜에 따른 바디는 페이로드(payload)를 포함하고, 페이로드를 바디라 할 수 있다. 표 1은 CoAP 메시지의 예시이다.
Header Type: Non-Confirmable
MessageId: 0x7d41
Token: 0x86
URI: /oic/account/session
Content-format: application/cbor
Body Payload: “...”
OCF 어플리케이션(411)은 CoAP 메시지를 인코딩한 후, TCP 프로토콜에 따라 전송하기 위해 인코딩된 CoAP 메시지에 TCP/IP 헤더를 추가함으로써 IP 데이터를 생성할 수 있다. 도 8a는 OCF 어플리케이션(411)이 생성한 IP 데이터를 예시한 것으로, 자세한 사항은 후술하겠다.
451 동작에서, CoAP 프록시(412)는 OCF 어플리케이션(411)과 OCF 클라우드(430)의 매핑 관계에 기초하여, IP 데이터에 포함된 TCP/IP 헤더 중 목적지 주소를 OCF 클라우드(430) 주소로 변경하고, HTTP 프록시 컨슈머(413)에 전송할 수 있다.
452 동작에서, 웨어러블 전자 장치(410)의 HTTP 프록시 컨슈머(413)는 모바일 전자 장치(420)의 HTTP 프록시 프로바이더(421)에 TCP/IP 헤더가 변경된 IP 데이터를 전송할 수 있다.
453 동작에서, 모바일 전자 장치(420)의 HTTP 프록시 프로바이더(421)는 최종 목적지인 OCF 클라우드(430)에 CoAP 메시지를 포함하는 IP 데이터를 전송할 수 있다.
도 5는 다양한 실시예에 따른 CoAP 프로토콜을 이용하는 어플리케이션과 CoAP 프로토콜에 기반한 인터페이스를 제공하는 서버에 대한 매핑 정보를 포함하는 테이블의 예시이다. 다양한 실시예에 따른 전자 장치(예: 도 4의 웨어러블 전자 장치(410))는 CoAP 프로토콜을 이용하는 어플리케이션이(예: 도 4의 OCF 어플리케이션(411)) CoAP 프로토콜에 기반한 인터페이스를 제공하는 OCF 클라우드(예: 도 4의 OCF 클라우드(430))와 연결할 수 있도록 전자 장치에 연결된 외부 전자 장치(예: 도 4의 모바일 전자 장치(420))의 네트워크 환경을 이용할 수 있다. 다양한 실시예에 따른 웨어러블 전자 장치(410)는 CoAP 프로토콜을 이용하는 OCF 어플리케이션(411)과 CoAP 프로토콜에 기반한 인터페이스를 제공하는 OCF 클라우드(430)에 대한 매핑 관계를 포함하는 등록 테이블(registration table)을 생성하여, 웨어러블 전자 장치(410)에 포함된 적어도 하나의 메모리(예: 도 1의 메모리(130))에 저장할 수 있다. 웨어러블 전자 장치(410)는 OCF 어플리케이션(411)과 OCF 클라우드(430) 사이의 연결 상태에 기초하여 등록 테이블의 상태 정보를 업데이트 할 수 있다.
도 5를 참조하면, 등록 테이블은 OCF 어플리케이션에 대한 등록 식별 정보(Registration ID), OCF 어플리케이션의 이름(Client Name), OCF 어플리케이션이 연결하고자 하는 OCF 클라우드의 주소(Destination), OCF 클라우드의 IP 주소(Destination IP), OCF 클라우드의 포트 번호(Destination Port), OCF 어플리케이션에 할당된 포트 번호(Assigned Port), 및/또는 OCF 어플리케이션과 OCF 클라우드 사이의 연결 상태 정보(status)를 포함할 수 있다. 다양한 실시예에 따른 전자 장치(410)는 도 4를 예를 들어, 웨어러블 전자 장치(410)의 CoAP 프록시(412)가 등록 테이블을 생성 및 관리할 수 있다.
CoAP 프록시(412)는 OCF 어플리케이션(411)으로부터 OCF 클라우드(430)와의 세션 연결을 위한 요청을 수신하면, 442 동작에서 OCF 어플리케이션(411)에 대한 가상 포트를 할당할 수 있다. CoAp 프록시(412)가 가상 포트를 할당한 후, 등록 테이블에 OCF 어플리케이션(411)에 대한 정보를 생성할 수 있다. 예를 들어, CoAP 프록시(412)는 OCF 어플리케이션(411)의 식별 번호 및 가상 포트 번호를 생성하고, OCF 어플리케이션(411) 정보 및 OCF 어플리케이션(411)이 연결하고자 하는 OCF 클라우드(430) 정보를 확인하여, 할당 테이블의 1행을 생성할 수 있다.
CoAP 프록시(412)는 444 동작에서 HTTP 프록시 컨슈머(413)에게 OCF 클라우드(430) 주소로 CONNECT HTTP method를 전송한 후, 등록 테이블의 2행과 같이 상태 정보를 업데이트 할 수 있다. HTTP 프로토콜은 모바일 전자 장치(420)가 OCF 클라우드(430)에 데이터를 직접 전송하는 것 뿐 만 아니라, 웨어러블 전자 장치(410)가 모바일 전자 장치(420)를 통해 OCF 클라우드(430)에 데이터를 전송하는 것을 지원할 수 있다. 이를 터널링(tunneling) 기능이라 한다. 예를 들어 HTTP 프로토콜의 경우 CONNECT HTTP method를 정의하여 터널링 기능을 제공할 수 있지만, CoAP 프로토콜의 경우 터널링 기능을 제공하지 않을 수 있다.
CoAP 프록시(412)는 449 동작에서 연결된 OCF 클라우드(430)의 주소와 매핑되는 포트 정보를 할당 테이블에서 탐색하고, 탐색된 포트 정보에 대응하는 OCF 어플리케이션(411)에 해당 포트에 대한 TCP 연결이 되었음을 알릴 수 있다. 등록 테이블은 449 동작 이후에 OCF 어플리케이션(411)과 OCF 클라우드(430)가 연결된 상태임을 나타내기 위해, 상태 정보를 connected로 업데이트 할 수 있다. CoAP 프록시(412)는 OCF 클라우드(430)의 IP 주소 및 포트 번호를 등록 테이블에 3행과 같이 업데이트할 수 있다.
도 6은 다양한 실시예들에 따라 CoAP 프로토콜을 이용하는 어플리케이션에서 발생한 요청의 예시이다. CoAP 프로토콜을 이용하는 어플리케이션(예: 도 4의 OCF 어플리케이션(411))은 연결하고자 하는 OCF 클라우드 주소를 포함하는 세션 생성 요청을 json 형태로 CoAP 프록시(예: 도 4의 CoAP 프록시(412))에 전달할 수 있다.
도 6의 요청은, HTTP 프로토콜에 기반하고, 요청임을 나타내기 위한 "request"를 포함하고, 파라미터로 OCF 클라우드 주소(예: "coaps+tcp://samsungiotcloud.com:443")를 포함할 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치가 CoAP 프로토콜을 이용하는 어플리케이션에 HTTP 프로토콜에 대한 포트 정보를 제공하는 응답의 예시이다. CoAP 프로토콜을 이용하는 어플리케이션(예: 도 4의 OCF 어플리케이션(411))은 OCF 클라우드에 세션 생성을 요청한 후, CoAP 프록시(예: 도 4의 CoAP 프록시(412))로부터 OCF 어플리케이션(411)에 할당된 포트 정보를 포함하는 응답을 수신할 수 있다. 도 7의 응답은, HTTP 프로토콜에 기반하고, 응답임을 나타내기 위한 "response"를 포함하고, 파라미터로 OCF 클라우드 주소(예: "coaps+tcp://samsungiotcloud.com:443")를 포함하고, 전용 주소(예: "127.0.0.1:8791"을 포함할 수 있다. 전용 주소는 HTTP 프로토콜이 지원하는 터널링에 따른 다른 전자 장치의 IP 주소와 어플리케이션에 할당된 포트 번호를 포함할 수 있다.
다양한 실시예에 따른 전자 장치는 CoAP 프로토콜을 이용하는 어플리케이션이 OCF 클라우드에 전송하기 위한 데이터에 HTTP 프로토콜에 기반한 헤더를 포함하여, HTTP 터널링을 이용하여 전자 장치에 연결된 모바일 전자 장치에 상기 데이터를 전송함으로써, 모바일 전자 장치가 OCF 클라우드에 해당 데이터를 전달하도록 할 수 있다. 도 8a는 다양한 실시예들에 따른 CoAP 프로토콜을 이용하는 어플리케이션이 생성한 데이터의 예시이고, 도 8b는 다양한 실시예들에 따른 웨어러블 전자 장치가 도 8a의 데이터를 모바일 전자 장치에 전송하기 위해 변경한 데이터의 예시이다.
CoAP 프로토콜을 이용하는 어플리케이션은 OCF 컨트롤러 또는 OCF 컨트롤리로써 역할할 수 있고, 예를 들어, OCF 어플리케이션(예: 도 4의 OCF 어플리케이션(411))이라 할 수 있다. OCF 어플리케이션은 OCF 클라우드(예: 도 4의 OCF 클라우드(430))에 전송하기 위해 CoAP 프로토콜에 따라 CoAP 메시지를 생성할 수 있다. CoAP 메시지는 데이터 전송을 위해 인코딩 될 수 있고, 예를 들어 Content-format에 따라 인코딩될 수 있다. OCF 어플리케이션은 HTTP 터널링을 이용하기 위해서, 인코딩된 CoAP 메시지에 HTTP 프로토콜에 따른 TCP/IP 헤더를 포함시킬 수 있다. 도 8a의 IP 데이터(800)은 CoAP 프로토콜에 따라 생성된 CoAP 메시지가 인코딩된 헤더(812) 및 페이로드(813)을 포함하고, HTTP 프로토콜에 따라 IP 헤더(810) 및 TCP 헤더(811)을 포함할 수 있다. TCP 헤더는 OCF 어플리케이션에 할당된 포트 번호가 목적지 포트 번호로 포함될 수 있다. IP 헤더는 HTTP 터널링을 위해 통과할 다른 전자 장치(예: 도 4의 모바일 전자 장치(420))의 주소가 목적지 주소로 포함될 수 있다.
다양한 실시예에 따르는 웨어러블 전자 장치(예: 도 4의 웨어러블 전자 장치(410))는 도 8a의 IP 데이터를 OCF 어플리케이션 및 OCF 어플리케이션이 연결하고자 하는 OCF 클라우드 매핑 정보에 기초하여, HTTP 프로토콜에 따르는 헤더(810, 811)를 OCF 클라우드에 대한 정보로 변경하여 새로운 IP 데이터(820)를 생성할 수 있다. 예를 들어, OCF 어플리케이션에 매핑된 OCF 클라우드의 목적지 주소는 "1.2.3.4"일 수 있고, OCF 클라우드의 포트 번호는 "443"일 수 있다. 다양한 실시예에 따르는 웨어러블 전자 장치는 도 5와 같은 할당 테이블로 OCF 어플리케이션과 OCF 클라우드의 매핑 관계를 저장 및 관리할 수 있다. 도 8b의 IP 데이터(820)에서 IP 헤더(821) 및 TCP 헤더(822)는 OCF 클라우드에 대한 정보에 기초하여 변경될 수 있고, CoAP 프로토콜에 기반하여 생성된 CoAP 메시지는 도 8a와 동일한 데이터를 포함할 수 있다. 다양한 실시예에서, CoAP 프로토콜에 기반하여 작성된 CoAP 헤더와 페이로드는 변경되지 않고, 모바일 전자 장치 및/또는 OCF 클라우드에 그대로 전송될 수 있다.
다양한 실시예에 따른 웨어러블 전자 장치는 모바일 전자 장치로부터 OCF 클라우드가 전송한 데이터를 수신하고, OCF 클라우드에 대응하는 OCF 어플리케이션에 수신한 데이터를 전달할 수 있다. 도 9a는 다양한 실시예들에 따른 웨어러블 전자 장치가 모바일 전자 장치로부터 수신한 IP 데이터의 예시이고, 도 9b는 다양한 실시예들에 따른 웨어러블 전자 장치가 도 9a의 IP 데이터를 OCF 어플리케이션에 전달하기 위해 변경한 IP 데이터의 예시이다.
도 9a의 IP 데이터(900)는 CoAP 프로토콜에 따라 인터페이스를 제공하는 OCF 클라우드(예: 도 4의 OCF 클라우드(430))가 전송한 것으로 CoAP 프로토콜에 따라 생성된 CoAP 메시지를 포함한다. 예를 들어, CoAP 메시지는 CoAP 헤더(912) 및 CoAP 페이로드(913)을 포함한다. IP 데이터(900)는 모바일 전자 장치(예: 도 4의 모바일 전자 장치(420))를 통해 웨어러블 전자 장치(예: 도 4의 웨어러블 전자 장치(410))에 전송되기 위해서 HTTP 프로토콜에 기반한 헤더를 포함할 수 있다. HTTP 프로토콜에 기반한 헤더는 IP 헤더(910) 및 TCP 헤더(911)를 포함할 수 있고, OCF 클라우드에 대한 정보에 기초하여 작성된 것일 수 있다. 예를 들어, IP 헤더(910)는 OCF 클라우드의 주소를 소스 IP로 포함할 수 있고, TCP 헤더(911)는 OCF 클라우드의 포트 번호를 소스 포트 번호로 포함할 수 있다.
다양한 실시예에 따른 웨어러블 전자 장치는, 수신한 IP 데이터(900)의 TCP 헤더의 포트 번호에 기초하여, OCF 클라우드에 매핑되는 OCF 어플리케이션(예: 도 4의 OCF 어플리케이션(411))을 탐색할 수 있다. 웨어러블 전자 장치는, 탐색된 OCF 어플리케이션에 대한 정보에 기초하여 IP 데이터(900)를 도 9b와 같이 변경할 수 있다. 도 9b의 IP 데이터(920)는 HTTP 프로토콜에 따른 IP 헤더(921)에 소스 IP를 포함할 수 있고, 소스 IP는 웨어러블 전자 장치에 IP 데이터(900)를 전송한 모바일 전자 장치의 주소가 포함될 수 있다. IP 데이터(920)는 HTTP 프로토콜에 따른 TCP 헤더(922)에 OCF 어플리케이션에 할당된 포트 번호를 포함될 수 있다. 도 9b의 CoAP 메시지는 도 9a의 CoAP 메시지와 동일할 수 있고, OCF 클라우드가 전송한 CoAP 헤더(912) 및 CoAP 페이로드(913)를 그대로 포함하여 OCF 어플리케이션에 전달될 수 있다.
도 10은 다양한 실시예에 따른 전자 장치가 제1 외부 전자 장치를 통해 제2 외부 전자 장치에 데이터를 전송하는 방법을 설명하기 위한 순서도이다.
1010 동작에서, 다양한 실시예에 따른 전자 장치(예: 도 3의 웨어러블 전자 장치(310))는, 통신 회로를 통해 제1 외부 전자 장치(예: 도 3의 모바일 전자 장치(320))와 연결할 수 있다. 예를 들어, 웨어러블 전자 장치(310)는 블루투스로 모바일 전자 장치(320)와 연결될 수 있다.
1020 동작에서, 웨어러블 전자 장치(310)는, 제1 프로토콜을 이용하는 제1 어플리케이션이 제2 외부 전자 장치(예: 도 3의 OCF 클라우드(330))에 전송하기 위한 제1 데이터에 제2 프로토콜에 기반한 헤더를 포함시킬 수 있다. 예를 들어, 제1 프로토콜은 CoAP 프로토콜일 수 있고, 제1 어플리케이션은 OCF 어플리케이션일 수 있다. 제1 데이터는 CoAP 프로토콜에 따라 생성된 CoAP 헤더 및 페이로드를 포함할 수 있다. 다양한 실시예에 따른 웨어러블 전자 장치(310)는 CoAP 메시지를 전송하기 위한 네트워크 환경을 구비하지 못한 경우, 모바일 전자 장치(320)를 통해 OCF 클라우드와 연결하기 위해 모바일 전자 장치(320)가 지원하는 HTTP 프로토콜 기반의 터널링을 이용할 수 있다. HTTP 터널링을 위해, 웨어러블 전자 장치(310)는 CoAP 프로토콜에 기반한 제1 데이터에 HTTP 프로토콜에 기반한 IP/TCP 헤더를 포함시킬 수 있다. 다양한 실시예에서, 웨어러블 전자 장치(310)는 CoAP 프로토콜을 이용하는 OCF 어플리케이션에 가상 포트를 할당하여 식별하고, OCF 어플리케이션이 연결하고자 하는 OCF 클라우드 정보를 포함하여 관리할 수 있다. 다양한 실시예에 따르면, 제1 데이터에 포함된 HTTP 프로토콜에 기반한 헤더는 모바일 전자 장치에 대한 전용 주소 및 OCF 어플리케이션에 할당된 포트 번호를 포함할 수 있다.
1030 동작에서, 웨어러블 전자 장치(310)는, 제1 데이터에서 상기 제2 프로토콜에 기반한 헤더 중 적어도 일부를 변경하여 제2 데이터를 생성할 수 있다. 예를 들어, 제2 프로토콜은 HTTP 프로토콜일 수 있고, 웨어러블 전자 장치(310)는, 제2 외부 전자 장치 즉, OCF 클라우드 정보에 기초하여 제1 데이터에서 TCP/IP 헤더를 변경하여 제2 데이터를 생성할 수 있다.
1040 동작에서, 웨어러블 전자 장치(310)는, 제2 데이터를 제1 외부 전자 장치에 전송할 수 있다. 예를 들어, 웨어러블 전자 장치(310)는 블루투스로 연결된 제1 외부 전자 장치에 블루투스를 이용하여 제2 데이터를 전송할 수 있다.
도 11은 다양한 실시예에 따른 전자 장치가 제1 외부 전자 장치로부터 수신한 데이터를 제2 외부 전자 장치에 전달하는 방법을 설명하기 위한 순서도이다.
1110 동작에서, 전자 장치(예: 도 3의 모바일 전자 장치(320))는, 제1 통신 회로를 통해 제1 외부 전자 장치(예: 도 3의 웨어러블 전자 장치(310))와 연결될 수 있다.
1120 동작에서, 모바일 전자 장치(320)는, 웨어러블 전자 장치(310)로부터 제1 프로토콜에 기반하여 생성되어 제2 프로토콜에 기반한 헤더가 추가된 제1 데이터를 수신할 수 있다. 예를 들어, 제1 프로토콜은 CoAP 프로토콜이고, 제1 데이터는 CoAP 프로토콜에 따른 헤더 및 페이로드를 포함할 수 있다.
1130 동작에서, 모바일 전자 장치(320)는, 제2 프로토콜에 기반한 헤더에 포함된 제2 외부 전자 장치에 대한 정보에 기초하여, 제2 통신 회로를 통해 상기 제1 데이터를 상기 제2 외부 전자 장치에 전송할 수 있다. 예를 들어, 제2 프로토콜은 HTTP 프로토콜일 수 있다. 제2 통신 회로는 HTTP 프로토콜에 따르는 네트워크 환경을 지원할 수 있다. 다양한 실시예에 따른 제2 외부 전자 장치는 OCF 스펙을 따르고 CoAP 프로토콜 기반의 인터페이스를 제공할 수 있다. 예를 들어, 제2 외부 전자 장치는 OCF 클라우드 일 수 있다.
다양한 실시예에 따르면, 적어도 하나의 프로세서에 의하여 적어도 하나의 동작을 수행하도록 설정된 명령어(instructions)가 저장된 컴퓨터 판독 가능한(computer readable) 기록 매체에 있어서, 상기 적어도 하나의 동작은, 상기 적어도 하나의 프로세서(예: 도 1의 프로세서(120))가, 통신 회로(예: 도 1의 통신 모듈(190))를 이용하여 제1 외부 전자 장치와 연결하는 동작, 제1 프로토콜을 이용하는 제1 어플리케이션이 제2 외부 전자 장치에 전송하기 위해 생성한 제1 데이터에 제2 프로토콜에 기반한 헤더를 포함시키는 동작, 상기 제2 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 제2 데이터를 생성하는 동작, 상기 제2 데이터를 상기 제1 외부 전자 장치에 전송하는 동작을 포함할 수 있다.
다양한 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 상기 제1 프로토콜은 CoAP 프로토콜이고, 상기 제1 데이터는 상기 CoAP 프로토콜에 따른 헤더 및 페이로드를 포함할 수 있다.
다양한 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 상기 제2 프로토콜은 HTTP 프로토콜이고, 상기 제1 데이터는 상기 HTTP 프로토콜에 기반한 헤더를 포함할 수 있다.
다양한 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 상기 제1 데이터에 포함된 상기 HTTP 프로토콜에 기반한 상기 헤더는, 상기 HTTP 프로토콜에 기반하여 상기 제1 어플리케이션에 할당된 포트 번호를 포함하는 상기 제1 외부 전자 장치에 대한 전용 주소를 포함할 수 있다.
다양한 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 상기 제2 데이터에 포함된 상기 HTTP 프로토콜에 기반한 상기 헤더는, 상기 제2 외부 전자 장치에 대한 주소 및 상기 제2 외부 전자 장치에 대한 포트 번호를 포함할 수 있다.
다양한 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 상기 HTTP 프로토콜은 상기 제2 데이터를 수신한 상기 제1 외부 전자 장치가 상기 HTTP 프로토콜에 기반한 헤더 정보에 기초하여, 상기 제2 외부 전자 장치에 상기 제2 데이터를 전송하는 것을 지원할 수 있다.
다양한 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 상기 제1 외부 전자 장치로부터 상기 제2 외부 전자 장치가 전송한 제3 데이터를 수신하는 경우, 상기 제3 데이터를 상기 제1 어플리케이션에 전달하는 동작을 더 포함할 수 있다.
다양한 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 상기 통신 회로(190)는 근거리 무선 통신을 지원하고, 상기 적어도 하나의 프로세서(120)는, 상기 제1 외부 전자 장치와 상기 근거리 무선 통신으로 연결할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(101))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 문서에 개시된 실시예에 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 개시의 범위를 한정하는 것은 아니다. 따라서, 본 개시의 범위는, 본 개시의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치에 있어서,
    통신 회로;
    적어도 하나의 메모리; 및
    상기 통신 회로 및 상기 적어도 하나의 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가,
    상기 통신 회로를 통해 제1 외부 전자 장치와 연결하고,
    제2 외부 전자 장치에 전송하기 위해 제1 어플리케이션을 이용하여, CoAP(constrained application protocol) 프로토콜에 기반한 헤더와 페이로드, 및 HTTP(hypertext transfer protocol) 프로토콜에 기반한 헤더를 포함하는 제1 데이터를 생성하고,
    상기 제1 데이터를 기반으로 상기 HTTP 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 제2 데이터를 생성하고, 그리고
    상기 제2 데이터를 상기 제1 외부 전자 장치에 전송하는 인스트럭션들을 저장하는 전자 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 제1 데이터에 포함된 상기 HTTP 프로토콜에 기반한 상기 헤더는, 상기 HTTP 프로토콜에 기반하여 상기 제1 어플리케이션에 할당된 포트(port) 번호를 포함하는 상기 제1 외부 전자 장치에 대한 전용(redirect) 주소를 포함하는 전자 장치.
  5. 제1항에 있어서,
    상기 제2 데이터에 포함된 상기 HTTP 프로토콜에 기반한 헤더는, 상기 제2 외부 전자 장치에 대한 주소 및 상기 제2 외부 전자 장치에 대한 포트 번호를 포함하는 전자 장치.
  6. 제1항에 있어서,
    상기 HTTP 프로토콜은 상기 제2 데이터를 수신한 상기 제1 외부 전자 장치가 상기 HTTP 프로토콜에 기반한 헤더 정보에 기초하여, 상기 제2 외부 전자 장치에 상기 제2 데이터를 전송하는 것을 지원하는 전자 장치.
  7. 제1항에 있어서,
    상기 적어도 하나의 메모리는, 상기 적어도 하나의 프로세서가,
    상기 제1 외부 전자 장치로부터 상기 제2 외부 전자 장치가 전송한 제3 데이터를 수신하는 경우, 상기 제3 데이터를 상기 제1 어플리케이션에 전달하는 인스트럭션들을 더 포함하는 전자 장치.
  8. 제1항에 있어서,
    상기 통신 회로는 근거리 무선 통신을 지원하고,
    상기 적어도 하나의 프로세서는, 상기 제1 외부 전자 장치와 상기 근거리 무선 통신으로 연결하는 전자 장치.
  9. 적어도 하나의 프로세서에 의하여 적어도 하나의 동작을 수행하도록 설정된 명령어(instructions)가 저장된 컴퓨터 판독 가능한(computer readable) 기록 매체에 있어서,
    상기 적어도 하나의 동작은,
    상기 적어도 하나의 프로세서가, 통신 회로를 이용하여 제1 외부 전자 장치와 연결하는 동작;
    제2 외부 전자 장치에 전송하기 위해 제1 어플리케이션을 이용하여, CoAP(constrained application protocol) 프로토콜에 기반한 헤더와 페이로드, 및 HTTP(hypertext transfer protocol) 프로토콜에 기반한 헤더를 포함하는 제1 데이터를 생성하는 동작;
    상기 제1 데이터를 기반으로 상기 HTTP 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 제2 데이터를 생성하는 동작; 및
    상기 제2 데이터를 상기 제1 외부 전자 장치에 전송하는 동작을 포함하는 컴퓨터 판독 가능한 기록 매체.
  10. 삭제
  11. 삭제
  12. 제9항에 있어서,
    상기 제1 데이터에 포함된 상기 HTTP 프로토콜에 기반한 상기 헤더는, 상기 HTTP 프로토콜에 기반하여 상기 제1 어플리케이션에 할당된 포트 번호를 포함하는 상기 제1 외부 전자 장치에 대한 전용 주소를 포함하는 컴퓨터 판독 가능한 기록 매체.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제9항에 있어서,
    상기 제2 데이터에 포함된 상기 HTTP 프로토콜에 기반한 상기 헤더는, 상기 제2 외부 전자 장치에 대한 주소 및 상기 제2 외부 전자 장치에 대한 포트 번호를 포함하는 컴퓨터 판독 가능한 기록 매체.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제9항에 있어서,
    상기 HTTP 프로토콜은 상기 제2 데이터를 수신한 상기 제1 외부 전자 장치가 상기 HTTP 프로토콜에 기반한 헤더 정보에 기초하여, 상기 제2 외부 전자 장치에 상기 제2 데이터를 전송하는 것을 지원하는 컴퓨터 판독 가능한 기록 매체.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제9항에 있어서,
    상기 제1 외부 전자 장치로부터 상기 제2 외부 전자 장치가 전송한 제3 데이터를 수신하는 경우, 상기 제3 데이터를 상기 제1 어플리케이션에 전달하는 동작을 더 포함하는 컴퓨터 판독 가능한 기록 매체.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제9항에 있어서,
    상기 통신 회로는 근거리 무선 통신을 지원하고,
    상기 적어도 하나의 프로세서는, 상기 제1 외부 전자 장치와 상기 근거리 무선 통신으로 연결하는 컴퓨터 판독 가능한 기록 매체.
  17. 전자 장치에 있어서,
    제1 통신 회로;
    제2 통신 회로;
    적어도 하나의 메모리; 및
    상기 제1 통신 회로, 상기 제2 통신 회로 및 상기 적어도 하나의 메모리와 전기적으로 연결되는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가,
    상기 제1 통신 회로를 통해 제1 외부 전자 장치와 연결하고,
    상기 제1 외부 전자 장치로부터 CoAP(constrained application protocol) 프로토콜에 기반한 헤더와 페이로드, 및 HTTP(hypertext transfer protocol) 프로토콜에 기반한 헤더 중 적어도 일부를 변경한 헤더를 포함하는 제1 데이터를 수신하고, 및
    상기 적어도 일부를 변경한 헤더에 포함된 제2 외부 전자 장치에 대한 정보에 기초하여, 상기 제2 통신 회로를 통해 상기 제1 데이터를 상기 제2 외부 전자 장치에 전송하는 인스트럭션들을 저장하는 전자 장치.
  18. 삭제
  19. 삭제
  20. 제17항에 있어서,
    상기 제1 통신 회로는 근거리 무선 통신을 지원하고, 상기 제2 통신 회로는 원거리 무선 통신을 지원하는 전자 장치.
KR1020180000869A 2018-01-03 2018-01-03 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법 KR102411691B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180000869A KR102411691B1 (ko) 2018-01-03 2018-01-03 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법
PCT/KR2018/016765 WO2019135551A1 (ko) 2018-01-03 2018-12-27 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법
US16/960,176 US11265361B2 (en) 2018-01-03 2018-12-27 Electronic device for transmitting/receiving data through external electronic device, and data transmitting/receiving method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180000869A KR102411691B1 (ko) 2018-01-03 2018-01-03 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법

Publications (2)

Publication Number Publication Date
KR20190083214A KR20190083214A (ko) 2019-07-11
KR102411691B1 true KR102411691B1 (ko) 2022-06-22

Family

ID=67143904

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180000869A KR102411691B1 (ko) 2018-01-03 2018-01-03 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법

Country Status (3)

Country Link
US (1) US11265361B2 (ko)
KR (1) KR102411691B1 (ko)
WO (1) WO2019135551A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3092461A1 (fr) * 2019-02-05 2020-08-07 Orange Procédé d’émission à deux protocoles, procédé de réception et dispositifs et signal correspondants.
US11153279B2 (en) * 2020-01-30 2021-10-19 Hewlett Packard Enterprise Development Lp Locally representing a remote application programming interface (API) endpoint within an application platform
CN112492004B (zh) * 2020-11-17 2023-02-17 深圳市晨北科技有限公司 本地通信链接的建立方法及设备、***及存储介质
CN117938973A (zh) * 2022-10-26 2024-04-26 华为技术有限公司 报文处理方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130070745A1 (en) 2011-09-15 2013-03-21 Fisher-Rosemount Systems, Inc. Communicating data frames across communication networks that use incompatible network routing protocols
WO2017113654A1 (zh) 2015-12-28 2017-07-06 歌尔股份有限公司 一种智能手表与微信平台的交互方法、装置和智能手表

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20031853A (fi) * 2003-12-18 2005-06-19 Nokia Corp Tiedonsiirtomenetelmä langatonta pakettidatapohjaista tiedonsiirtoa varten
US8331399B2 (en) * 2007-05-07 2012-12-11 Qualcomm Incorporated Re-using sequence number by multiple protocols for wireless communication
US8923285B2 (en) * 2008-04-30 2014-12-30 Qualcomm Incorporated Apparatus and methods for transmitting data over a wireless mesh network
US8755404B2 (en) * 2012-04-25 2014-06-17 Gainspan Corporation Facilitating communication between resource-constrained devices and wireless communication terminals
JP6149591B2 (ja) * 2013-08-08 2017-06-21 富士通株式会社 無線中継装置、通信システム、及び、通信方法
EP3095294B1 (en) * 2014-01-15 2019-04-03 Nokia Technologies Oy Method and apparatus for direct control of smart devices with a remote source
CN105230068B (zh) * 2014-04-29 2019-06-18 华为技术有限公司 数据传输方法及设备
EP3185640B1 (en) * 2014-09-15 2021-02-17 Huawei Technologies Co., Ltd. Communications method, network connection device, user equipment and communications system
KR20160049969A (ko) * 2014-10-28 2016-05-10 한국전자통신연구원 게이트웨이 기능을 제공하기 위한 방법 및 장치
US20160119166A1 (en) 2014-10-28 2016-04-28 Electronics And Telecommunications Research Institute Method and apparatus for providing gateway function
US9716653B2 (en) * 2014-11-18 2017-07-25 Hauwei Technologies Co., Ltd. System and method for flow-based addressing in a mobile environment
US10021695B2 (en) * 2015-04-14 2018-07-10 Qualcomm Incorporated Apparatus and method for generating and transmitting data frames
US9949259B2 (en) * 2015-05-07 2018-04-17 Qualcomm Incorporated System and method for transmitting data payload in WB SC, aggregate SC, duplicate SC, OFDM transmission frames
US11032219B2 (en) 2015-12-22 2021-06-08 Intel Corporation Network aware application dependent adaptive protocol selection for IoT communications
KR102503257B1 (ko) * 2016-04-18 2023-02-24 한국전자통신연구원 블루투스 통신을 위한 장치 및 방법
CA3061416A1 (en) * 2017-05-05 2018-11-08 Sony Corporation Communications device, infrastructure equipment, wireless communications network and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130070745A1 (en) 2011-09-15 2013-03-21 Fisher-Rosemount Systems, Inc. Communicating data frames across communication networks that use incompatible network routing protocols
WO2017113654A1 (zh) 2015-12-28 2017-07-06 歌尔股份有限公司 一种智能手表与微信平台的交互方法、装置和智能手表

Also Published As

Publication number Publication date
US11265361B2 (en) 2022-03-01
US20210058445A1 (en) 2021-02-25
KR20190083214A (ko) 2019-07-11
WO2019135551A1 (ko) 2019-07-11

Similar Documents

Publication Publication Date Title
KR102411691B1 (ko) 외부 전자 장치를 통해 데이터를 송수신하는 전자 장치 및 그 데이터 송수신 방법
KR102400580B1 (ko) 다른 전자 장치의 인증을 수행하는 전자 장치와 이의 동작 방법
KR102367053B1 (ko) 외부 전자 장치와 통신을 수행하기 위한 전자 장치
KR102523826B1 (ko) 블루투스 통신을 사용하는 전자 장치와 이의 동작 방법
KR20190035076A (ko) 사물인터넷 장치의 네트워크 등록 방법 및 그 장치
KR102458479B1 (ko) 전자 장치 및 전자 장치의 제어 방법
KR20200106741A (ko) 블루투스 네트워크 환경에서 응답 메시지를 전송하기 위한 전자 장치 및 그에 관한 방법
KR102309160B1 (ko) 클럭을 변경시키는 전자 장치
US20210056059A1 (en) Electronic device and operation method of electronic device
KR20200098068A (ko) 단어 추천 방법 및 그 전자 장치
KR20200137302A (ko) 장치를 탐색하는 전자 장치 및 그 방법
CN111902246A (zh) 用于控制外部电子装置的电子装置和方法
US11924894B2 (en) Electronic device connected to external electronic device through wireless communication channel by using TDLS session defined by IEEE 802.11 standard
KR102527868B1 (ko) Nan 프로토콜에 기반한 네트워크 환경에서 데이터 통신을 위한 장치 및 방법
KR20190069247A (ko) 외부 전자 장치와의 통신을 위한 전자 장치
US11425081B2 (en) Message reception notification method and electronic device supporting same
KR102424930B1 (ko) 외부 장치에 따라 다른 서비스를 제공하는 전자 장치
KR20200079081A (ko) 콘텐트 공유 방법 및 그 전자 장치
KR20200068068A (ko) IoT 장치를 등록하는 전자 장치, 서버 및 그 작동 방법
KR20200061210A (ko) 상태 정보에 기반하여 식별 정보를 변경하는 전자 장치 및 상기 식별 정보를 확인할 수 있는 다른 전자 장치
KR102457007B1 (ko) 리치 통신 스위트 서비스를 통한 비디오 공유 제어 방법 및 전자 장치
KR102404421B1 (ko) 외부 전자 장치를 인식하는 방법 및 장치
KR20190095784A (ko) 연결 정보에 기반하여 외부 장치들과 연결하는 전자 장치 및 그 동작 방법
KR20200039053A (ko) 클라우드 서비스를 제공하는 전자 장치 및 그 동작 방법
KR20190076175A (ko) 메쉬 네트워크에서 커버리지를 이탈한 전자 장치를 유지하기 위한 장치 및 방법

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