KR20200063959A - Method and system for providing data communication between iot and blockchain platforms - Google Patents

Method and system for providing data communication between iot and blockchain platforms Download PDF

Info

Publication number
KR20200063959A
KR20200063959A KR1020190058406A KR20190058406A KR20200063959A KR 20200063959 A KR20200063959 A KR 20200063959A KR 1020190058406 A KR1020190058406 A KR 1020190058406A KR 20190058406 A KR20190058406 A KR 20190058406A KR 20200063959 A KR20200063959 A KR 20200063959A
Authority
KR
South Korea
Prior art keywords
data
platform
iot
protocol
blockchain
Prior art date
Application number
KR1020190058406A
Other languages
Korean (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 KR20200063959A publication Critical patent/KR20200063959A/en

Links

Images

Classifications

    • 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/562Brokering proxy services
    • H04L67/2809
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • 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/133Protocols for remote procedure calls [RPC]
    • H04L67/40

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Telephonic Communication Services (AREA)

Abstract

The present invention provides a method for providing data communication between an Internet of things (IoT) platform and a blockchain platform. The method comprises the steps of: transmitting first data according to a lightweight message protocol between the IoT platform and a proxy; performing conversion between the first data according to the lightweight message protocol and second data according to a remote procedure call protocol in the proxy; and transmitting the second data according to the remote procedure call protocol between the blockchain platform and the proxy.

Description

IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING DATA COMMUNICATION BETWEEN IOT AND BLOCKCHAIN PLATFORMS}Method and system for providing data communication between IoT platform and blockchain platform{METHOD AND SYSTEM FOR PROVIDING DATA COMMUNICATION BETWEEN IOT AND BLOCKCHAIN PLATFORMS}

본 발명은 IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 방법 및 시스템에 관한 것으로, 보다 구체적으로, IoT 플랫폼과 블록체인 플랫폼의 데이터 연동과 상호 통신을 위한 원격 프로시저 호출(RPC) 인터프록시를 이용한 프로토콜 구현 방법 및 시스템에 관한 것이다.The present invention relates to a method and system for providing data communication between an IoT platform and a blockchain platform, and more specifically, a remote procedure call (RPC) interproxy for data interworking and mutual communication between the IoT platform and the blockchain platform. It relates to a protocol implementation method and system using the.

블록체인(blockchain) 기술은, 네트워크 통신상에서 이루어지는 거래내용을 신뢰성 있고 안전한 방법으로 기록하고 저장하는 기술이다. 블록체인 네트워크는, 디지털화된 자산이나 거래내역(transaction)의 교환이 가능한 분산 환경의 시스템으로, 공유된 장부(ledger)를 이용하여 P2P(peer-to-peer) 네트워크에서 발생되는 전자적 거래 내역의 이력을 기록한다. 블록체인 네트워크는 탈중앙화된 또는 분산된 합의 프로토콜(decentralized consensus mechanism)을 이용한다. 특히, 네트워크 상의 모든 검증 노드(validating node)는 동일한 거래내역에 대해 동일한 (또는 합의된) 합의 알고리즘을 실행함으로써 그 거래내역을 승인(또는 비승인)한다. 블록체인 P2P 네트워크는, 이러한 탈중앙화된 구조와 합의 알고리즘을 이용하기 때문에, 제3자에 의한 거래내역의 위변조가 사실상 불가능하게 되어, 거래 내역의 신뢰성과 투명성을 보장할 수 있다.Blockchain technology is a technology that records and stores transactions made on network communications in a reliable and secure way. Blockchain network is a distributed environment system that can exchange digitized assets or transactions, and records the history of electronic transactions generated in peer-to-peer networks using a shared ledger. Record. Blockchain networks use a decentralized consensus mechanism. In particular, all validating nodes on the network approve (or disapproval) the transaction by executing the same (or agreed upon) consensus algorithm for the same transaction. Since the blockchain P2P network uses such a decentralized structure and consensus algorithm, it is virtually impossible to forge and falsify the transaction history by a third party, thereby ensuring the reliability and transparency of the transaction details.

한편, IoT(Internet of Things), 즉 사물인터넷은 각종 사물에 센서와 통신 기능을 내장하여 인터넷이나 무선 통신을 통해 각종 사물을 상호 연결하는 기술을 의미한다. 즉, 사물인터넷은, 인터넷으로 연결된 사물들이, 인간의 명시적 개입 없이도 상호 연동되어 데이터를 상호 송수신하고 그 데이터를 분석한 결과를 사용자에게 제공하거나, 사용자가 그 사물들을 원격 조정할 수 있는 기술이다. 여기서 사물은, 가전제품, 모바일 장비, 웨어러블 컴퓨터, 차량, 교량 등 다양한 물리적 사물을 포함할 수 있다. 일반적으로 사물인터넷에 연결되는 사물들은 자신을 구별할 수 있는 유일한 식별자(ID)를 가지고 인터넷으로 연결되며, 외부 환경으로부터 데이터 취득을 위해 센서를 내장할 수 있다. IoT 환경에서는, 모든 사물이 해킹의 대상이 될 수 있어 IoT 기술의 확산에 따라 보안을 강화하는 방법에 대한 요구가 증가하고 있다.On the other hand, the Internet of Things (IoT), that is, the Internet of Things, refers to a technology in which sensors and communication functions are embedded in various objects to interconnect various objects through the Internet or wireless communication. That is, the Internet of Things (IoT) is a technology in which objects connected to the Internet are interlocked without human intervention, to transmit and receive data, and to analyze and analyze the data, or to remotely control the objects. Here, the object may include various physical objects such as home appliances, mobile equipment, wearable computers, vehicles, and bridges. In general, objects connected to the Internet of Things are connected to the Internet with a unique identifier (ID) to distinguish themselves, and a sensor can be built in to acquire data from an external environment. In the IoT environment, all things can be targeted for hacking, and according to the proliferation of IoT technology, there is an increasing demand for a method for enhancing security.

IoT 환경에서는, 사물들이 인터넷으로 연결될 수 있다. 그러나 인터넷은 전통적으로 많은 전력과 메모리, 연결 옵션을 갖는 리소스가 풍부한 기기들이 연결되기 때문에, 그와 같은 통신 프로토콜은 리소스가 제한되는 센서 등과 같은 소형 전자기기에 적용하기에 적절하지 않을 수 있다. 따라서, IoT 환경에서는, 많은 양의 리소스를 요구하지 않는 새롭고 더 가벼운 경량 프로토콜이 필요할 수 있다. 예를 들어, IoT에 사용되는 MQTT 및 CoAP는, 작은 메시지 크기, 메시지 관리 및 경량 메시지 오버헤드를 통해 이러한 요구를 충족한다.In the IoT environment, things can be connected to the Internet. However, since the Internet is traditionally connected with resource-rich devices having a lot of power, memory, and connection options, such a communication protocol may not be suitable for application in small electronic devices such as sensors with limited resources. Therefore, in an IoT environment, a new and lighter lightweight protocol that does not require a large amount of resources may be needed. For example, MQTT and CoAP used in IoT fulfills these needs through small message size, message management and lightweight message overhead.

IoT 플랫폼은 넓은 지역적인 범위에 리소스가 제한되어 있는 다수의 사물들(예를 들어, 센서 또는 장치들)이 분산되어 구성되기 때문에, 각 사물의 보안이 취약할 수 있다. 또한, IoT 플랫폼의 각 사물은 그 주변의 사용자에 관한 데이터를 수집 또는 분석할 수 있는데, 이러한 사용자 데이터의 개인정보 보호를 확보할 수 있는 수단이 필요하다. 예를 들면, IoT 기반의 스마트 홈 환경에서, 사용자가 주택의 스마트 잠금장치를 이용하는 경우, 사용자가 언제 집에서 나가고, 언제 집으로 들어오는지에 대한 데이터가 IoT 플랫폼에 축적되는데, 이러한 개인정보 데이터가 유출되고 오용된다면 사회적인 문제가 될 수 있다.Since the IoT platform is configured by dispersing a large number of objects (for example, sensors or devices) with limited resources in a wide area, security of each object may be weak. In addition, each object of the IoT platform can collect or analyze data about users around it, and a means to secure the privacy of such user data is needed. For example, in an IoT-based smart home environment, when a user uses a smart lock in a house, data on when the user leaves the house and when entering the house is accumulated on the IoT platform, and such personal information data is leaked. If used and misused, it can be a social problem.

본 개시는, 위와 같은 종래기술의 문제점을 해결하기 위해, IoT 플랫폼에서 발생하는 데이터를 블록체인에 기록 및 관리할 수 있도록, IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 연동이 가능한 통신 방법을 제공한다.In order to solve the problems of the prior art as described above, the present disclosure provides a communication method capable of data linkage between the IoT platform and the blockchain platform, so that data generated in the IoT platform can be recorded and managed on the blockchain.

본 개시의 일 실시예에 따르면, IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 방법이 제공된다. 이 방법은, IoT 플랫폼과 프록시 사이에서 경량 메시지 프로토콜에 따른 제1 데이터의 전송을 수행하는 단계, 상기 프록시에서 상기 경량 메시지 프로토콜에 따른 제1 데이터와 원격 프로시저 호출 프로토콜에 따른 제2 데이터 사이의 변환을 수행하는 단계, 및 상기 블록체인 플랫폼과 상기 프록시 사이에서 상기 원격 프로시저 호출 프로토콜에 따른 상기 제2 데이터의 전송을 수행하는 단계를 포함한다.According to an embodiment of the present disclosure, a method for providing data communication between an IoT platform and a blockchain platform is provided. The method comprises: transmitting first data according to a lightweight message protocol between an IoT platform and a proxy, between the first data according to the lightweight message protocol and the second data according to a remote procedure call protocol in the proxy. And performing a conversion, and transmitting the second data according to the remote procedure call protocol between the blockchain platform and the proxy.

본 개시의 다른 실시예에 따르면, IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 시스템이 제공된다. 이 시스템은, 상기 IoT 플랫폼과의 경량 메시지 프로토콜에 따른 제1 데이터의 통신과, 상기 블록체인 플랫폼과의 원격 프로시저 호출 프로토콜에 따른 제2 데이터의 통신을 실행하는 프록시를 포함하며, 상기 프록시는, 상기 경량 메시지 프로토콜에 따른 상기 제1 데이터와 상기 원격 프로시저 호출 프로토콜에 따른 상기 제2 데이터 사이의 변환을 수행한다.According to another embodiment of the present disclosure, a system for providing data communication between an IoT platform and a blockchain platform is provided. The system includes a proxy that performs communication of first data according to a lightweight message protocol with the IoT platform and communication of second data according to a remote procedure call protocol with the blockchain platform, wherein the proxy comprises: , Convert between the first data according to the lightweight message protocol and the second data according to the remote procedure call protocol.

본 개시의 다양한 실시예들에 따르면, 블록체인 플랫폼 상의 데이터 통신에 있어서 상위계층은 원격 프로시저 호출(RPC)과 같은 상위계층 통신 프로토콜을 통해 실행하고, 하위 계층은 경량 프로토콜을 통해 실행한다. 이와 같이 블록체인 플랫폼의 통신 프로토콜을 구현함으로써, 데이터 통신에 경량 프로토콜을 이용하는 IoT 플랫폼 상의 기기들과의 통신이 가능해진다. 또한, IoT 플랫폼 상에 연결된 기기들을 블록체인 플랫폼 상의 노드들로서 연결 가능해짐으로써, IoT 기기가 신규 노드로 쉽게 전체 플랫폼에 참가 가능하여 시스템 구축 비용 절감과 확장성이 높아지는 효과가 있다. According to various embodiments of the present disclosure, in data communication on a blockchain platform, the upper layer executes through a higher layer communication protocol such as remote procedure call (RPC), and the lower layer executes through a lightweight protocol. By implementing the communication protocol of the blockchain platform as described above, communication with devices on the IoT platform using a lightweight protocol for data communication becomes possible. In addition, since devices connected on the IoT platform can be connected as nodes on the blockchain platform, IoT devices can easily participate in the entire platform as new nodes, thereby reducing system construction cost and increasing scalability.

또한, IoT 기기들을 블록체인 플랫폼으로 연결하면, 블록체인의 분산 구조로 인해 외부 해킹 공격의 예방이 가능하고, IoT 기기인 각 노드가 생성 또는 보유한 데이터를 검증 가능하여 데이터 위조 및 변조가 어렵다. 따라서, IoT 플랫폼 상의 각 기기의 고장이나 기기들 간의 연결에 문제가 발생하여도, 그러한 기기의 이상이 전체 시스템에 미치는 영향이 감소하여 안정성이 개선되는 효과도 있다.In addition, when IoT devices are connected to a blockchain platform, external hacking attacks can be prevented due to the distributed structure of the blockchain, and data generated or held by each node, which is an IoT device, can be verified, making data forgery and tampering difficult. Accordingly, even if a failure of each device on the IoT platform or a problem occurs in connection between devices, the effect of abnormality of the device on the entire system is reduced to improve stability.

도 1은 본 개시의 일 실시예에 따른 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 제공하는 시스템을 나타내는 도면이다.
도 2은 본 개시의 일 실시예에 따른 블록체인 노드의 구조를 나타내는 도면이다.
도 3은 본 개시의 일 실시예에 따른 블록체인 플랫폼의 구조를 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따른 블록체인 플랫폼과 DApp 및 클라이언트의 연동 구조를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 프록시의 구조를 나타내는 도면이다.
도 6은 본 개시의 일 실시예에 따른 IoT 플랫폼의 구조를 나타내는 도면이다.
도 7은 본 개시의 일 실시예에 따른 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동 절차를 나타내는 도면이다.
도 8은 본 개시의 다른 실시예에 따른 프록시가 블록체인 플랫폼 내 하나의 노드로 참여하는 경우에서 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 나타내는 도면이다.
도 9은 본 개시의 또 다른 실시예에 따른 블록체인 노드가 각각의 프록시를 운영하는 경우에서 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 나타내는 도면이다.
도 10는 본 개시의 또 다른 실시예에 따른 IoT 플랫폼에서 프록시를 운영하는 경우에서 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 나타내는 도면이다.
1 is a diagram illustrating a system for providing data interworking between an IoT platform and a blockchain platform according to an embodiment of the present disclosure.
2 is a diagram showing the structure of a blockchain node according to an embodiment of the present disclosure.
3 is a diagram showing the structure of a blockchain platform according to an embodiment of the present disclosure.
4 is a diagram illustrating an interworking structure of a blockchain platform, a DApp, and a client according to an embodiment of the present disclosure.
5 is a diagram illustrating the structure of a proxy according to an embodiment of the present disclosure.
6 is a diagram illustrating the structure of an IoT platform according to an embodiment of the present disclosure.
7 is a diagram illustrating a data linking procedure between an IoT platform and a blockchain platform according to an embodiment of the present disclosure.
8 is a diagram illustrating data linkage between an IoT platform and a blockchain platform when a proxy according to another embodiment of the present disclosure participates as one node in the blockchain platform.
9 is a diagram illustrating data interworking between an IoT platform and a blockchain platform in a case where a blockchain node operates each proxy according to another embodiment of the present disclosure.
10 is a diagram illustrating data linkage between an IoT platform and a blockchain platform in the case of operating a proxy in an IoT platform according to another embodiment of the present disclosure.

이하, 본 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다. Hereinafter, with reference to the accompanying drawings, specific details for the practice of the present disclosure will be described in detail. However, in the following description, when there is a risk of unnecessarily obscuring the subject matter of the present disclosure, detailed descriptions of well-known functions or configurations will be omitted.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다. In the accompanying drawings, identical or corresponding components are given the same reference numerals. In addition, in the following description of the embodiments, the same or corresponding elements may be omitted. However, although descriptions of components are omitted, it is not intended that such components are not included in any embodiment.

본 개시에서의 용어 “IoT”는 사물인터넷(Internet of Things)을 지칭하는 것으로, 하나 이상의 사물에 통신 기능과 센서 기능을 장착하여 데이터를 수집하고 수집된 정보를 실시간으로 유무선 통신망을 통해 상호 공유하고 분석하는 기술이나 환경을 지칭할 수 있다. The term “IoT” in the present disclosure refers to the Internet of Things, which is equipped with a communication function and a sensor function on one or more objects to collect data and share the collected information in real time through a wired or wireless communication network. It can refer to the technology or environment being analyzed.

본 개시에서의 용어 “원격 프로시저 호출” 또는 “RPC(Remote Procedure Call)”는 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술을 지칭할 수 있다. 예를 들어, 본 개시에는 원격 프로시저 호출이 블록체인 플랫폼과 프록시 서버 사이에서 수행되는 통신을 위한 프로토콜로 사용될 수 있다.The terms “remote procedure call” or “remote procedure call” (RPC) in this disclosure may refer to an inter-process communication technology that enables functions or procedures to be executed in different address spaces without coding for separate remote control. have. For example, in the present disclosure, a remote procedure call can be used as a protocol for communication performed between a blockchain platform and a proxy server.

본 개시에서의 용어 “경량 메시지”는 경량화된 IoT 노드의 데이터 송수신 수요에 대처하기 위해 구현된 프로토콜로서, IoT 인터페이스를 위한 저전력의 경량화된 프로토콜을 지칭할 수 있다.The term “lightweight message” in the present disclosure is a protocol implemented to cope with data transmission/reception demands of a lightweight IoT node, and may refer to a low-power, lightweight protocol for the IoT interface.

도 1은 본 개시의 일 실시예에 따른 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 제공하는 시스템(100)을 나타내는 도면이다. 도시된 시스템(100)에서, IoT 장치(110)는 센서 등을 통해 데이터를 수집하고, 수집한 데이터들을 저장하고 관리하기 위해 블록체인 플랫폼(140)을 활용할 수 있다. 이를 위해 IoT 플랫폼(120)에 접속된 IoT 장치(110)는, 수집된 데이터를 프록시(130)를 통해 블록체인 플랫폼(140)으로 전송할 수 있다. 1 is a diagram illustrating a system 100 for providing data interworking between an IoT platform and a blockchain platform according to an embodiment of the present disclosure. In the illustrated system 100, the IoT device 110 may utilize the blockchain platform 140 to collect data through sensors, etc., and to store and manage the collected data. To this end, the IoT device 110 connected to the IoT platform 120 may transmit the collected data to the blockchain platform 140 through the proxy 130.

IoT 플랫폼(120)은, IoT 장치(110)들 사이의 연결을 지원하여, IoT 장치(110)들과 같은 사물들의 주변에서 수집된 데이터를 상호 전송하는 응용 서비스를 제고하는 사물 연결 플랫폼이다. 이러한 사물 연결 플랫폼을 구현하기 위해, IoT 플랫폼(120)은 IoT 장치들(110) 사이의 통신을 위해 HTTP와 유사한 목적으로 제한적인 환경에서 사용하도록 만들어진 사물인터넷 응용 프로토콜을 구현할 수 있다. 여기서, 사물인터넷 응용 프로토콜은, 경량 메시지 프로토콜인 MQTT(Message Queueing Telemetry Transport), CoAP(Constrained Application Protocol)를 포함할 수 있지만, 이에 한정되지 않는다.The IoT platform 120 is an object connection platform that supports connection between IoT devices 110 and enhances an application service that mutually transmits data collected around objects such as the IoT devices 110. To implement such an object connection platform, the IoT platform 120 may implement an IoT application protocol made to be used in a limited environment for purposes similar to HTTP for communication between IoT devices 110. Here, the IoT application protocol may include, but is not limited to, Message Queuing Telemetry Transport (MQTT) and Constrained Application Protocol (CoAP), which are lightweight message protocols.

프록시(130)는, 컴퓨터 네트워크에서 다른 서버로의 자원 요청을 중계하는 서버일 수 있다. 클라이언트 장치가 서버로부터 필요한 파일, 연결 등과 같은 리소스를 프록시(130)에 요청하면, 프록시(130)는 클라이언트와 서버의 사이에서 대신 통신을 수행할 수 있다. 일 실시예에서, 프록시(130)는 IoT 플랫폼(120)과 블록체인 플랫폼(140)간의 통신을 중계하는 서버로 구성될 수 있으며, 각각의 플랫폼과 데이터를 주고받을 때의 표준 프로토콜을 설정하여 통신을 수행할 수 있다. The proxy 130 may be a server relaying a resource request from a computer network to another server. When a client device requests a resource such as a file or connection required from the server to the proxy 130, the proxy 130 may perform communication between the client and the server instead. In one embodiment, the proxy 130 may be configured as a server that relays communication between the IoT platform 120 and the blockchain platform 140, and communicates by setting a standard protocol when exchanging data with each platform. You can do

도시된 바와 같이, IoT 장치(110)들 사시의 연결을 지원하여 응용 서비스를 제공하는 IoT 플랫폼(120)은, 프록시(130)와 데이터를 주고받기 위해서 경량 메시지 프로토콜을 사용할 수 있다. 예를 들어, IoT 플랫폼(120)은 경량 메시지 프로토콜인 MQTT 또는 CoAP를 사용하여 프록시(130)와 데이터를 주고받을 수 있다. 또한 블록체인 플랫폼(140)은 프록시(130)와 원격 프로시저 호출(RPC) 프로토콜을 사용하여 데이터를 주고받을 수 있다.As illustrated, the IoT platform 120 that provides application services by supporting the connection of the IoT devices 110 in perspective, may use a lightweight message protocol to exchange data with the proxy 130. For example, the IoT platform 120 may exchange data with the proxy 130 using MQTT or CoAP, which are lightweight message protocols. In addition, the blockchain platform 140 may exchange data with the proxy 130 using a remote procedure call (RPC) protocol.

도 2은 본 개시의 일 실시예에 따른 블록체인 노드(200)의 구조를 나타내는 도면이다. 블록체인 노드(200)는, 블록체인 플랫폼(140)의 블록체인 네트워크를 구성하는 컴퓨팅 장치를 나타낼 수 있다. 일 실시예에서, 블록체인 노드(200)는, 블록체인 네트워크에서 실행되는 거래(또는 트랜잭션)의 내역을 저장, 갱신, 승인 할 수 있는 컴퓨팅 장치를 나타낼 수 있으며, 여기서, 컴퓨팅 장치는 데스크탑 컴퓨터, 랩탑 컴퓨터, 스마트폰 등과 같은 휴대용 컴퓨터 등과 같은 다양한 컴퓨팅 장치들 중의 하나를 나타낼 수 있다. 2 is a diagram showing the structure of a blockchain node 200 according to an embodiment of the present disclosure. The blockchain node 200 may represent a computing device constituting the blockchain network of the blockchain platform 140. In one embodiment, the blockchain node 200 may represent a computing device capable of storing, updating, and approving transactions (or transactions) executed in the blockchain network, where the computing device is a desktop computer, It may represent one of various computing devices, such as a laptop computer, a portable computer such as a smart phone, and the like.

블록체인 노드(200)는, 블록체인 네트워크에서 실행되는 거래 내역들의 전부 또는 적어도 일부를 포함하는 분산 원장(Distributed Ledger)를 저장 관리할 수 있다. 예를 들어, 도 2에 도시된 바와 같이 블록체인 노드(200)는 트랜잭션이 실행되면, 그 내역을 포함하는 블록(210)을 생성하여 저장하며, 이 거래 내역은 블록체인 네트워크의 다른 노드로 전파 및 공유될 수 있다.The blockchain node 200 may store and manage a distributed ledger including all or at least a part of transaction details executed in the blockchain network. For example, as shown in FIG. 2, when the blockchain node 200 executes a transaction, it generates and stores a block 210 containing the history, and this transaction history propagates to other nodes in the blockchain network. And can be shared.

한편, 블록체인 노드(200)는, 스마트 컨트랙트(smart contract)를 포함하는 블록(220)을 추가로 저장할 수도 있다. 스마트 컨트랙트는 사전 결정된 계약 조건을 만족시키면 자동으로 실행되는 프로그램 코드로, 블록체인 노드(200)가 관리하는 분산 원장에 저장될 수 있다. 일 실시예에서, 스마트 컨트랙트(220)는, IoT 플랫폼(120)에 연결된 IoT 장치(110)가 수집한 정보에 따라 사전 결정된 계약 조건이 만족되면 자동으로 필요한 작업을 실행할 수 있다.Meanwhile, the blockchain node 200 may additionally store a block 220 including a smart contract. The smart contract is program code that is automatically executed when a predetermined contract condition is satisfied, and may be stored in a distributed ledger managed by the blockchain node 200. In one embodiment, the smart contract 220 may automatically execute a necessary task when a predetermined contract condition is satisfied according to information collected by the IoT device 110 connected to the IoT platform 120.

도 3은 본 개시의 일 실시예에 따른 블록체인 플랫폼(300)의 구조를 나타내는 도면이다. 3 is a diagram showing the structure of a blockchain platform 300 according to an embodiment of the present disclosure.

일 실시예에서, 블록체인 플랫폼(300)은, 도 1에 도시된 블록체인 플랫폼(140)으로 사용될 수 있다. 도시된 바와 같이, 블록체인 플랫폼(300)은, 복수개의 블록체인 노드(200)들이 연결되어 있는 네트워크를 포함할 수 있다. 또한, 블록체인 플랫폼(300)은, 일반적인 노드(200) 외에도 블록체인 네트워크 구조에 따라 복수개의 특별한 노드를 추가로 포함할 수 있다. In one embodiment, the blockchain platform 300 may be used as the blockchain platform 140 shown in FIG. 1. As illustrated, the blockchain platform 300 may include a network in which a plurality of blockchain nodes 200 are connected. In addition, the blockchain platform 300 may additionally include a plurality of special nodes according to the blockchain network structure in addition to the general node 200.

예를 들어, 블록체인 플랫폼(300)이 하이퍼렛저 패브릭(Hyperledger Fabric)을 기반으로 구현되는 경우, 오더러(orderer)(310), 인증기관(320) 및 API 노드(330)를 추가로 포함할 수 있다. 오더러(310)는, 블록체인 플랫폼(300)에서 발생하는 트랜잭션을 내용에 관계없이 시간 순서대로 정렬하여 블록을 생성할 수 있다. 인증기관(320)은, CA(Certificate Authority)로서 블록 생성 또는 인증 시 필요한 전자서명을 위한 인증관리를 실행할 수 있다. 또한, API 노드(330)는, 블록체인 플랫폼(300)에 포함된 노드들 간 커뮤니케이션 및 네트워크상에서 거래를 점검할 수 있다.For example, when the blockchain platform 300 is implemented based on a hyperledger fabric, it may further include an orderer 310, a certification authority 320, and an API node 330. Can be. The orderer 310 may generate a block by arranging transactions occurring in the blockchain platform 300 in chronological order regardless of contents. The certification authority 320, as a CA (Certificate Authority), may perform certification management for digital signatures required for block generation or authentication. In addition, the API node 330 may check communication between nodes included in the blockchain platform 300 and transactions on the network.

도 4는 본 개시의 일 실시예에 따른 블록체인 플랫폼과 DApp 및 클라이언트의 연동 구조를 나타내는 도면이다. 4 is a diagram illustrating an interworking structure of a blockchain platform, DApp, and client according to an embodiment of the present disclosure.

도시된 바와 같이, DApp(410)과 클라이언트(420)는, 블록체인 플랫폼(300)과 원격 프로시저 호출(RPC) 프로토콜 및/또는 HTTP 프로토콜을 이용하여 데이터를 송수신할 수 있다. As illustrated, the DApp 410 and the client 420 may transmit and receive data using the blockchain platform 300 and a remote procedure call (RPC) protocol and/or HTTP protocol.

좀 더 구체적으로, DApp(410)는 블록체인 플랫폼(300) 상에서 실행되는 탈중앙화 애플리케이션(decentralized application)으로, DApp(410)에 포함된 SDK(Software Development Kit) 도구(415)를 통해 블록체인 플랫폼(300) 내 블록체인 노드(200)와 데이터를 주고받을 수 있다. 일 실시예에서, 블록체인 노드(200)와 DApp(410)는 원격 프로시저 호출 프로토콜을 통해 데이터를 주고받을 수 있다. 또한, API 노드(330)와 DApp(410)는 HTTP 프로토콜을 통해 데이터를 송수신할 수 있다.More specifically, the DApp 410 is a decentralized application that runs on the blockchain platform 300, and the blockchain platform through the Software Development Kit (SDK) tool 415 included in the DApp 410. Data can be exchanged with the blockchain node 200 in the 300. In one embodiment, the blockchain node 200 and the DApp 410 may exchange data through a remote procedure call protocol. In addition, the API node 330 and the DApp 410 may transmit and receive data through the HTTP protocol.

클라이언트(420)는, 블록체인 플랫폼(300) 내 API 노드(330)를 통해 블록체인 플랫폼(300)에 기록 및 관리되고 있는 데이터를 요청할 수 있다. 일 실시예에서, 클라이언트(420)는 API 노드(330)에 HTTP 프로토콜을 사용하여 블록체인 플랫폼(300)에 기록된 데이터를 요청할 수 있고, 이에 응답하여 API 노드(330)는 클라이언트(420)에게 요청된 데이터를 전송할 수 있다. 또한, 클라이언트(420)는, API 노드(330)를 거치지 않고 RPC 프로토콜을 기반으로 블록체인 노드(200)와 직접 통신할 수 있다.The client 420 may request data recorded and managed by the blockchain platform 300 through the API node 330 in the blockchain platform 300. In one embodiment, the client 420 may request the API node 330 to record data written to the blockchain platform 300 using the HTTP protocol, and in response, the API node 330 may request the client 420 Requested data can be transmitted. Also, the client 420 may directly communicate with the blockchain node 200 based on the RPC protocol without going through the API node 330.

도 5는 본 개시의 일 실시예에 따른 프록시(500)의 구조를 나타내는 도면이다.5 is a diagram illustrating the structure of a proxy 500 according to an embodiment of the present disclosure.

일 실시예에서, 프록시(500)는, 도 1에 도시된 프록시(130)로서 사용될 수 있다. 도시된 바와 같이, 프록시(500)는, RPC 프로토콜 인터페이스(510), 데이터 변환 모듈(520), 프록시 주소 매핑 모듈(520), PUB/SUB 모듈(530) 및 경량 메시지 프로토콜 인터페이스(550)를 포함할 수 있다. In one embodiment, proxy 500 may be used as proxy 130 shown in FIG. 1. As shown, the proxy 500 includes an RPC protocol interface 510, a data translation module 520, a proxy address mapping module 520, a PUB/SUB module 530, and a lightweight message protocol interface 550. can do.

일 실시예에서, 프록시(500)는 IoT 플랫폼(120) 상의 하나의 개체(예를 들어, IoT 장치(110))와 블록체인 플랫폼(140) 상의 다른 개체(예를 들어, 클라이언트, DApp) 사이의 데이터 통신 및 공유를 가능하게 한다. 예를 들어, IoT 장치(110)는, 그 장치에서 획득 또는 수집한 데이터를 프록시(500)를 통해 블록체인 플랫폼(140)의 클라이언트에 전송하여 그 데이터를 포함한 블록을 생성하도록 할 수 있다.In one embodiment, the proxy 500 is between one entity (e.g., IoT device 110) on the IoT platform 120 and another entity (e.g., client, DApp) on the blockchain platform 140. Enables data communication and sharing. For example, the IoT device 110 may transmit data obtained or collected from the device to the client of the blockchain platform 140 through the proxy 500 to generate a block including the data.

이와 같이, IoT 플랫폼(120)과 블록체인 플랫폼(140) 사이에서 실행되는 데이터의 송수신 과정은, 중간 임시 저장소인 프록시(500)를 통해 진행될 수 있다. 또한, 프록시(500)는, 클라이언트로부터 요청된 캐시 데이터들을 임시로 저장할 수 있으며, 클라이언트의 재요청 시 프록시(500) 내의 정보를 제공할 수 있다. 따라서, 프록시(500)를 설정하면 클라이언트와의 데이터 전송 시간과 외부 장치와의 데이터 트래픽이 줄어들 수 있다.As such, the process of transmitting and receiving data executed between the IoT platform 120 and the blockchain platform 140 may be performed through the proxy 500 which is an intermediate temporary storage. In addition, the proxy 500 may temporarily store cache data requested from the client, and provide information in the proxy 500 when the client requests it again. Therefore, when the proxy 500 is set, data transmission time with a client and data traffic with an external device may be reduced.

도 5에 도시된 바와 같이, 프록시(500)는, 상위 계층에 RPC 프로토콜 인터페이스(510)를, 하위 계층에 경량 메시지 프로토콜 인터페이스(550)를 구현할 수 있다. 일 실시예에서, 프록시(500)의 상위 계층에 구현된 RPC 프로토콜 인터페이스(510)는, 블록체인 상의 데이터 기록을 수행하는데 사용할 수 있다. 한편, 프록시(500)의 하위 계층에 구현된 MQTT 혹은 CoAP와 같은 경량 메시지 프로토콜 인터페이스(550)는, IoT 플랫폼(120)과 블록체인 플랫폼(140) 간 통신에 이용할 수 있다.As illustrated in FIG. 5, the proxy 500 may implement the RPC protocol interface 510 in the upper layer and the lightweight message protocol interface 550 in the lower layer. In one embodiment, the RPC protocol interface 510 implemented in the upper layer of the proxy 500 can be used to perform data recording on the blockchain. Meanwhile, a lightweight message protocol interface 550 such as MQTT or CoAP implemented in a lower layer of the proxy 500 can be used for communication between the IoT platform 120 and the blockchain platform 140.

데이터 변환 모듈(520)은, IoT 플랫폼(120)과 블록체인 플랫폼(140) 플랫폼 사이의 데이터 통신을 위한 프로토콜 변환 기능을 실행할 수 있다. 예를 들어, 데이터 변환 모듈(520)은, IoT 플랫폼(120)에서 수신한 경량 메시지 프로토콜로 전송된 데이터를, 블록체인 플랫폼(140)으로 전송하기 위해 원격 프로시저 호출 프로토콜에 따른 데이터로 변환하거나, 그 반대 방향으로 프로토콜 변환을 실행할 수 있다.The data conversion module 520 may execute a protocol conversion function for data communication between the IoT platform 120 and the blockchain platform 140 platform. For example, the data conversion module 520 converts data transmitted by the lightweight message protocol received from the IoT platform 120 into data according to a remote procedure call protocol in order to transmit it to the blockchain platform 140 or In the opposite direction, protocol conversion can be performed.

프록시(500)는, IoT 장치(110) 또는 클라이언트로부터의 메시지의 요청 여부를 판단할 수 있다. 이 경우, 프록시 주소 매핑 모듈(530)은 요청 메시지에 반응하여, 해당 메시지의 송수신 주소를 블록체인 플랫폼(140) 또는 IoT 플랫폼(120) 내의 등록된 주소로 매핑하고, 해당 메시지를 매핑된 주소로 중계할 수 있다. The proxy 500 may determine whether to request a message from the IoT device 110 or the client. In this case, the proxy address mapping module 530 responds to the request message and maps the sending/receiving address of the message to a registered address in the blockchain platform 140 or IoT platform 120, and the message to the mapped address. Can be relayed.

PUB/SUB 모듈(540)은, Publish(발행)/Subscriber(구독) 모듈로 기능할 수 있다. 여기서 “발행”은 IoT 플랫폼(120)과 블록체인 플랫폼(140) 상에서 장치들 또는 노드들 사이에 메시지를 전송하는 것을 의미할 수 있으며, “구독”은 특정한 주소로 전송된 메시지를 노드가 선택하고 처리하는 것을 의미할 수 있다. 이와 같은 PUB/SUB 통신 모델은, 예를 들어, 블록체인 네트워크에서 노드를 추가 및 제거 시 다른 노드들에 대한 재구성이 불필요한 장점이 있다. 프록시(500)는, PUB/SUB 모듈(540)에 의해 구현되는 PUB/SUB 모델을 이용하여 IoT 플랫폼(120)과 블록체인 플랫폼(140) 사이에서 메시지를 주고받는 중간 서버일 수 있다.The PUB/SUB module 540 may function as a Publish/Subscriber module. Here, “issuance” may mean transmitting a message between devices or nodes on the IoT platform 120 and the blockchain platform 140, and “subscription” means that the node selects a message transmitted to a specific address and It can mean processing. This PUB/SUB communication model has an advantage in that reconfiguration of other nodes is unnecessary when adding and removing nodes in a blockchain network, for example. The proxy 500 may be an intermediate server that exchanges messages between the IoT platform 120 and the blockchain platform 140 using the PUB/SUB model implemented by the PUB/SUB module 540.

도 6은 본 개시의 일 실시예에 따른 IoT 플랫폼(600)의 구조를 나타내는 도면이다.6 is a diagram illustrating the structure of an IoT platform 600 according to an embodiment of the present disclosure.

일 실시예에 따르면, IoT 플랫폼(600)은, 도 1에 도시된 IoT 플랫폼(120)으로 사용될 수 있다. 도시된 바와 같이, IoT 플랫폼(600)은, 경량 메시지 프로토콜 인터페이스(610), IoT 서비스(620), IoT 네트워크(630) 및 IoT 장치(640)를 포함할 수 있다. 여기서, IoT 장치(640)는 도 1에 도시된 IoT 장치(110)일 수 있다. IoT 플랫폼(600)은, IoT 장치들(640) 사이의 통신, 데이터 연동, 서비스 제공의 상호 운용성을 제공하기 위한 기능을 제공한다.According to an embodiment, the IoT platform 600 may be used as the IoT platform 120 shown in FIG. 1. As illustrated, the IoT platform 600 may include a lightweight message protocol interface 610, an IoT service 620, an IoT network 630, and an IoT device 640. Here, the IoT device 640 may be the IoT device 110 shown in FIG. 1. The IoT platform 600 provides a function for providing interoperability of communication, data interworking, and service provision between IoT devices 640.

경량 메시지 프로토콜 인터페이스(610)는, 무선 단말 장치와 같은 IoT 장치(640)의 저전력 경량 특성을 지원하기 위한 경량화된 프로토콜을 구현할 수 있다. 예를 들어, 경량 메시지 프로토콜에는, CoAP 또는 MQTT가 포함될 수 있다. 본 개시에서 “CoAP(Constrained Application Protocol)”이란 인터넷에서 IoT 기기처럼 제한된 컴퓨팅 성능을 갖는 장치들의 통신을 위해 IETF의 CoRE(Constrained RESTful Environment) working group에서 표준화한 프로토콜을 지칭할 수 있다. 일반적인 인터넷의 통신 프로토콜은, 신뢰성 있는 동기 수송 방식의 TCP와 그 위의 HTTP를 사용하고 있는데, 이는 많은 리소스 제약을 가진 IoT 환경에는 적합하지 않다. 이에 따라, CoAP는, 비동기 전송 방식의 UDP의 단점을 보완하여, IoT 환경에 적합하도록 표준화한 프로토콜이다. 한편, MQTT(Message Queue Telemetry Transport)는, 지연 및 손실이 심한 네트워크 환경에서 검침기, 센서 등과 같은 IoT 기기들의 신뢰성 있는 메시지 전달(원격 모니터링)을 위해서 개발된 메시지 프로토콜이다. MQTT는, 앞서 설명한 바와 같은 메시지의 발행(publish)과 구독(subscribe) 동작 환경을 제공하는 경량 메시지 프로토콜로 M2M(machine-to-machine) 또는 IoT 환경에서 사용될 수 있다.The lightweight message protocol interface 610 may implement a lightweight protocol for supporting low power and lightweight characteristics of the IoT device 640 such as a wireless terminal device. For example, lightweight message protocols may include CoAP or MQTT. In the present disclosure, “CoAP (Constrained Application Protocol)” may refer to a protocol standardized in the IETF's Constrained RESTful Environment (CoRE) working group for communication of devices having limited computing power, such as IoT devices on the Internet. The general communication protocol of the Internet uses a reliable synchronous transport method of TCP and HTTP over it, which is not suitable for IoT environments with many resource constraints. Accordingly, CoAP is a protocol standardized to be suitable for an IoT environment by compensating for the disadvantages of UDP in an asynchronous transmission method. On the other hand, MQTT (Message Queue Telemetry Transport) is a message protocol developed for reliable message delivery (remote monitoring) of IoT devices such as meter readers and sensors in a network environment with high latency and loss. MQTT is a lightweight message protocol that provides an environment for publishing and subscribing messages as described above, and can be used in a machine-to-machine (M2M) or IoT environment.

일 실시예에서, IoT 서비스(620)는 애플리케이션을 포함할 수 있으며, 사용자들 혹은 IoT 장치(640)에서 획득한 데이터를 프록시(500)를 거쳐 블록체인 플랫폼(140)에 전송할 수 있다. 또한 IoT 서비스(620)는 데이터 요청 메시지를 전송할 수 있다. IoT 네트워크(630)는 IoT 장치들(640) 사이의 통신 기능을 제공할 수 있다. IoT 플랫폼(600)에서 IoT 장치(640)들 사이의 데이터 또는 메시지의 통신은 경량 메시지 프로토콜을 통해 실행될 수 있다.In one embodiment, the IoT service 620 may include an application, and may transmit data obtained from users or the IoT device 640 to the blockchain platform 140 via the proxy 500. Also, the IoT service 620 may transmit a data request message. The IoT network 630 may provide a communication function between IoT devices 640. Communication of data or messages between IoT devices 640 in the IoT platform 600 may be performed through a lightweight message protocol.

IoT 장치(640)는, 다양한 다른 IoT 디바이스(예를 들어, 스마트 홈 또는 스마트 팩토리에 사용되는 다양한 제어장치와 센서들, 일상 생활에 사용되는 스마트 밴드, 스마트 체중계 등)과 연결될 수 있으며, 다른 IoT 디바이스들과 정보를 송수신하거나 다른 IoT 디바이스들을 제어하는 데 이용되는 제어 신호를 송수신 할 수 있다. The IoT device 640 may be connected to various other IoT devices (for example, various control devices and sensors used in a smart home or smart factory, smart bands used in daily life, smart scales, etc.), and other IoT It can transmit and receive information to and from devices or control signals used to control other IoT devices.

도 7은 본 개시의 일 실시예에 따른 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동 절차를 나타내는 도면이다. 7 is a diagram illustrating a data linking procedure between an IoT platform and a blockchain platform according to an embodiment of the present disclosure.

도시된 바와 같이, 클라이언트(710)에 의해 DApp(720)에 대한 명령 또는 요청이 실행될 수 있으며, 이는 HTTP 프로토콜을 이용하여 실행될 수 있다. 클라이언트(710)는 HTTP 프로토콜로 네트워크로 연결된 서버로부터 URI(Uniform Resource Identifier)을 이용해 접속하여 데이터를 요청할 수 있다. As shown, commands or requests to the DApp 720 may be executed by the client 710, which may be executed using the HTTP protocol. The client 710 may request data by accessing a network-connected server using a Uniform Resource Identifier (URI) from an HTTP protocol.

DApp(720)는 클라이언트(710)의 명령 또는 요청을 받아 블록체인 플랫폼(730)에 리소스를 요청할 수 있다. 이 경우 DApp(720)는 HTTP 프로토콜로 블록체인 플랫폼(730)의 API 노드와 통신하거나, 원격 프로시저 호출 프로토콜로 블록체인 노드와 직접 통신할 수 있다. The DApp 720 may request a resource from the blockchain platform 730 by receiving a command or request from the client 710. In this case, the DApp 720 may communicate with the API node of the blockchain platform 730 using the HTTP protocol or directly with the blockchain node using the remote procedure call protocol.

이에 응답하여, 블록체인 플랫폼(730)은 블록체인 플랫폼(730)의 규정 프로토콜인 원격 프로시저 호출 프로토콜을 사용하여 IoT 리소스를 요청함으로써, IoT 장치(760)에 의해 획득한 데이터를 요청할 수 있다. 이 때, 블록체인 플랫폼(730)과 IoT 플랫폼(750) 상의 장치들과 통신을 중계하기 위한 프록시(740)가 구비될 수 있다. 즉, 프록시(740)에 의해 블록체인 플랫폼(730)과 IoT 플랫폼(750)의 통신과 데이터 연동이 가능하다. 좀 더 구체적으로, 블록체인 플랫폼(730)의 상위 계층은 원격 프로시저 호출 프로토콜을 통해 프록시(740)와 통신을 실행하고, 프록시(740)의 하위 계층은 원격 경량 메시지 프로토콜을 통해 IoT 플랫폼(750)과 통신을 실행함으로, IoT 장치(760)들과 블록체인 플랫폼(730) 상의 노드들 사이의 데이터 연동과 통신이 가능해진다. In response, the blockchain platform 730 may request data acquired by the IoT device 760 by requesting an IoT resource using a remote procedure call protocol, which is a prescribed protocol of the blockchain platform 730. At this time, a proxy 740 for relaying communication with devices on the blockchain platform 730 and the IoT platform 750 may be provided. That is, communication and data interworking between the blockchain platform 730 and the IoT platform 750 are possible by the proxy 740. More specifically, the upper layer of the blockchain platform 730 executes communication with the proxy 740 through a remote procedure call protocol, and the lower layer of the proxy 740 uses the remote lightweight message protocol for the IoT platform 750 ) And data communication between IoT devices 760 and nodes on the blockchain platform 730 becomes possible.

프록시(740)는, 블록체인 플랫폼(730)에서 원격 프로시저 호출 프로토콜을 통해 수신한 IoT 리소스 요청 메시지를 경량 메시지 프로토콜에 따른 경량 메시지로 변환함으로써, 해당 요청을 IoT 플랫폼(750)에 전달할 수 있다. 예를 들어, 프록시(740)는, MQTT 또는 CoAP 프로토콜을 사용하여 IoT 플랫폼(750)에 클라이언트(710)의 명령 또는 요청을 전달할 수 있다. The proxy 740 may transmit the IoT resource request message to the IoT platform 750 by converting the IoT resource request message received from the blockchain platform 730 through the remote procedure call protocol into a lightweight message according to the lightweight message protocol. . For example, the proxy 740 may transmit a command or request of the client 710 to the IoT platform 750 using the MQTT or CoAP protocol.

다음으로, IoT 플랫폼(750)은, 클라이언트(710)의 명령에 따라 IoT 장치(760)에게 데이터 수집을 요청할 수 있다. 이에 응답하여, IoT 장치(760)는 수집한 데이터를 클라이언트(710)의 명령에 대한 응답으로서 제공하기 위해 IoT 플랫폼(750)으로 전송할 수 있다. 이 때, IoT 플랫폼(750)에서는 프록시(740)의 하위계층으로 경량 메시지 프로토콜을 통해 응답 전송을 수행한다. 이 때, 프록시(740)는 경량 메시지 프로토콜을 상위계층의 원격 프로시저 호출 프로토콜로 변환할 수 있으며, 이러한 프로토콜 변환을 수행함으로써, 블록체인 플랫폼(730)에 IoT 리소스를 응답으로 전달할 수 있다. Next, the IoT platform 750 may request data collection from the IoT device 760 according to the command of the client 710. In response, the IoT device 760 may transmit the collected data to the IoT platform 750 in order to provide it as a response to the command of the client 710. At this time, the IoT platform 750 performs a response transmission through a lightweight message protocol as a lower layer of the proxy 740. At this time, the proxy 740 may convert the lightweight message protocol into a higher-level remote procedure call protocol, and by performing such protocol conversion, the IoT resource may be delivered to the blockchain platform 730 in response.

이와 같이 프록시(740)를 통해 전달된 IoT 리소스는 블록체인 플랫폼(730) 내의 노드에 블록으로 생성되어 저장될 수 있다. 또한, 블록체인 플랫폼(730)의 노드는 해당 IoT 리소스를 DApp(720)를 통해 클라이언트(710)에게 명령 대한 응답으로 전달할 수 있다. 이 때, 블록체인 플랫폼(730)과 DApp(720)는 상기 설명한 바와 같이, HTTP 프로토콜 혹은 원격 프로시저 호출 프로토콜을 통해 통신을 수행할 수 있으며, DApp(720)는 클라이언트(710)에게 HTTP 프로토콜을 통해 통신을 수행하여 명령에 대한 결과를 전송할 수 있다.The IoT resource transmitted through the proxy 740 may be generated and stored as a block in a node in the blockchain platform 730. Also, the node of the blockchain platform 730 may transmit the corresponding IoT resource to the client 710 through the DApp 720 in response to a command. At this time, the blockchain platform 730 and the DApp 720 may perform communication through an HTTP protocol or a remote procedure call protocol, as described above, and the DApp 720 sends the HTTP protocol to the client 710. Communication can be performed to transmit the result of the command.

도 8은 본 개시의 다른 실시예에 따른 프록시가 블록체인 플랫폼 내 하나의 노드로 참여하는 경우에서 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 나타내는 도면이다.8 is a diagram illustrating data linkage between an IoT platform and a blockchain platform when a proxy according to another embodiment of the present disclosure participates as one node in the blockchain platform.

도 8에 도시된 바와 같이, 프록시가 블록체인 플랫폼(810) 내에 하나의 노드(830)로 참여할 수 있다. IoT 플랫폼(840)에 연결된 IoT 장치(850)에서 수집한 데이터는 프록시 노드(830)를 통해 블록체인 플랫폼(810)과 연동하여 블록체인 노드(820)에 저장할 수 있다. As illustrated in FIG. 8, a proxy may participate as one node 830 in the blockchain platform 810. The data collected by the IoT device 850 connected to the IoT platform 840 may be stored in the blockchain node 820 in conjunction with the blockchain platform 810 through the proxy node 830.

여기서, 프록시 노드(830)는 도 7에 도시된 절차에 따라 IoT 플랫폼(840)과 블록체인 플랫폼(810) 사이의 데이터(예를 들어, IoT 리소스 요청, IoT 리소스 응답 등)를 주고받기 위해, IoT 플랫폼(840)과 통신시에는 경량 메시지 프로토콜(예를 들어, MQTT 또는 CoAP)을 사용하여 데이터를 주고받을 수 있으며, 블록체인 플랫폼 내의 노드(820)와는 원격 프로시저 호출 프로토콜을 사용하여 데이터를 주고받을 수 있다.Here, the proxy node 830 to exchange data (for example, IoT resource request, IoT resource response, etc.) between the IoT platform 840 and the blockchain platform 810 according to the procedure shown in FIG. 7, When communicating with the IoT platform 840, data can be exchanged using a lightweight message protocol (e.g., MQTT or CoAP), and the data is transmitted using a remote procedure call protocol with the node 820 in the blockchain platform. Can send and receive

도 9은 본 개시의 또 다른 실시예에 따른 블록체인 노드가 각각의 프록시를 운영하는 경우에서 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 나타내는 도면이다. 9 is a diagram illustrating data interworking between an IoT platform and a blockchain platform in a case where a blockchain node operates each proxy according to another embodiment of the present disclosure.

도 9에 도시된 바와 같이, 블록체인 플랫폼(1000)과 IoT 플랫폼(1020) 사이의 데이터 연동과 통신을 실행하기 위한 프록시(1015)가 각각의 블록체인 노드(1010)에서 운영될 수 있다. 여기서, 프록시(915)는 도 7에 도시된 절차에 따라 IoT 플랫폼(920)과 블록체인 플랫폼(900) 사이의 데이터(예를 들어, IoT 리소스 요청, IoT 리소스 응답 등)를 주고받기 위해, IoT 플랫폼(920)과 통신시에는 경량 메시지 프로토콜(예를 들어, MQTT 또는 CoAP)을 사용하여 데이터를 주고받을 수 있으며, 블록체인 플랫폼 내의 노드(910)와는 원격 프로시저 호출 프로토콜을 사용하여 데이터를 주고받을 수 있다.As illustrated in FIG. 9, a proxy 1015 for executing data linkage and communication between the blockchain platform 1000 and the IoT platform 1020 may be operated at each blockchain node 1010. Here, the proxy 915 transmits and receives data (for example, an IoT resource request, an IoT resource response, etc.) between the IoT platform 920 and the blockchain platform 900 according to the procedure illustrated in FIG. 7, IoT When communicating with the platform 920, data can be exchanged using a lightweight message protocol (for example, MQTT or CoAP), and data can be exchanged using a remote procedure call protocol with the node 910 in the blockchain platform. Can receive

도 10는 본 개시의 또 다른 실시예에 따른 IoT 플랫폼에서 프록시를 운영하는 경우에서 IoT 플랫폼과 블록체인 플랫폼의 데이터 연동을 나타내는 도면이다. 10 is a diagram illustrating data linkage between an IoT platform and a blockchain platform in the case of operating a proxy in an IoT platform according to another embodiment of the present disclosure.

도 10에 도시된 바와 같이 IoT 플랫폼(1020)에서 프록시(1010)를 운영할 수 있다. 여기서, 프록시(1010)는 도 7에 도시된 절차에 따라 IoT 플랫폼(1020)과 블록체인 플랫폼(1000) 사이의 데이터(예를 들어, IoT 리소스 요청, IoT 리소스 응답 등)를 주고받기 위해, IoT 플랫폼(1020) 또는 IoT 장치(1030)와 통신시에는 경량 메시지 프로토콜(예를 들어, MQTT 또는 CoAP)을 사용하여 데이터를 주고받을 수 있으며, 블록체인 플랫폼(1000) 내의 노드와는 원격 프로시저 호출 프로토콜을 사용하여 데이터를 주고받을 수 있다.As illustrated in FIG. 10, the proxy 1010 may be operated in the IoT platform 1020. Here, the proxy 1010 in order to exchange data (eg, IoT resource request, IoT resource response, etc.) between the IoT platform 1020 and the blockchain platform 1000 according to the procedure shown in FIG. 7, IoT When communicating with the platform 1020 or IoT device 1030, data can be exchanged using a lightweight message protocol (e.g., MQTT or CoAP), and a remote procedure call with a node in the blockchain platform 1000 Data can be exchanged using protocols.

이상 설명한 다양한 실시예들에 따르면, IoT 플랫폼의 경량 메시지 프로토콜과 블록체인 플랫폼의 RPC 프로토콜의 인터페이스에 변경을 가하지 않고도, 상이한 플랫폼 사이의 데이터 연동이 가능하다. 또한, 기존의 RPC 통신이 HTTP를 이용하여 데이터 전송의 지연이 발생하는 문제점이 있는 반면, IoT 플랫폼과 블록체인 플랫폼 사이의 통신은 HTTP를 거치지 않고 프록시를 통한 데이터 연동이 가능하므로 보다 효과적인 데이터 연동이 가능하다.According to various embodiments described above, data interworking between different platforms is possible without changing the interface of the lightweight messaging protocol of the IoT platform and the RPC protocol of the blockchain platform. In addition, while the existing RPC communication has a problem in that data transmission is delayed using HTTP, communication between the IoT platform and the blockchain platform enables data interworking through a proxy without going through HTTP, so more effective data interworking is possible. It is possible.

이상 설명된 다양한 실시예에 따른 IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 시스템은, 서버 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 컴퓨터의 외부에 설치된 모뎀이나 내부에 설치된 모뎀 또는 무선 채널을 통해 통신하는 디바이스 등과 같은 다양한 타입들의 컴퓨팅 장치들을 나타낼 수도 있다. 본원에 설명된 임의의 컴퓨팅 장치들은, 이상 설명한 IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 방법의 실행에 필요한 명령들 및 데이터를 저장하기 위한 메모리, 뿐만 아니라 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합들을 가질 수도 있다. A system for providing data communication between an IoT platform and a blockchain platform according to various embodiments described above communicates through a server computer, a desktop computer, a laptop computer, a modem installed outside the computer, a modem installed inside, or a wireless channel. It may represent various types of computing devices, such as devices. Any of the computing devices described herein, as well as hardware, software, firmware, or memory for storing instructions and data necessary for execution of a method for providing data communication between the IoT platform and the blockchain platform described above, or these You can also have combinations of

본원에 기술된 기법들은 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이러한 기법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수도 있다. 본원의 개시와 연계하여 설명된 다양한 예시 적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로 구현될 수도 있음을 당업자들은 더 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 설명하기 위해, 다양한 예시 적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능성의 관점에서 일반적으로 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는 지의 여부는, 특정 애플리케이션 및 전체 시스템에 부과되는 설계 제약들에 따라 달라진다. 당업자들은 각각의 특정 애플리케이션을 위해 다양한 방식들로 설명된 기능을 구현할 수도 있으나, 그러한 구현 결정들은 본 개시의 범위로부터 벗어나게 하는 것으로 해석되어서는 안된다. The techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those skilled in the art will further understand that various example logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented in electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.

하드웨어 구현에서, 기법들을 수행하는 데 이용되는 프로세싱 유닛들은, 하나 이상의 ASIC들, DSP들, 디지털 신호 프로세싱 디바이스들 (digital signal processing devices; DSPD들), 프로그램가능 논리 디바이스들 (programmable logic devices; PLD들), 필드 프로그램가능 게이트 어레이들 (field programmable gate arrays; FPGA들), 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본원에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 컴퓨터, 또는 이들의 조합 내에서 구현될 수도 있다. In a hardware implementation, processing units used to perform the techniques include one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs). ), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, It may be implemented within a computer, or a combination thereof.

따라서, 본원의 개시와 연계하여 설명된 다양한 예시 적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP, ASIC, FPGA나 다른 프로그램 가능 논리 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 것들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안에서, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들면, DSP와 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 연계한 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성의 조합으로써 구현될 수도 있다. Accordingly, various example logic blocks, modules, and circuits described in connection with the disclosure herein are general purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or It may be implemented or implemented in any combination of those designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a DSP and microprocessor, multiple microprocessors, one or more microprocessors associated with a DSP core, or any other combination of such configurations.

펌웨어 및/또는 소프트웨어 구현에 있어서, 기법들은 랜덤 액세스 메모리 (random access memory; RAM), 판독 전용 메모리 (read-only memory; ROM), 불휘발성 RAM (non-volatile random access memory; NVRAM), PROM (programmable read-only memory), EPROM (erasable programmable read-only memory), EEPROM (electrically erasable PROM), 플래시 메모리, 컴팩트 디스크 (compact disc; CD), 자기 또는 광학 데이터 스토리지 디바이스 등과 같은 컴퓨터 판독가능 매체 상에 저장된 명령들로써 구현될 수도 있다. 명령들은 하나 이상의 프로세서들에 의해 실행 가능할 수도 있고, 프로세서(들)로 하여금 본원에 설명된 기능의 특정 양태들을 수행하게 할 수도 있다. In firmware and/or software implementation, the techniques include random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), PROM ( On computer readable media such as programmable read-only memory (EPROM), erasable programmable read-only memory (EPROM), electrically erasable PROM (EEPROM), flash memory, compact disc (CD), magnetic or optical data storage devices, etc. It can also be implemented as stored instructions. Instructions may be executable by one or more processors, and may cause the processor(s) to perform certain aspects of the functionality described herein.

소프트웨어로 구현되면, 상기 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독 가능한 매체 상에 저장되거나 또는 컴퓨터 판독 가능한 매체를 통해 전송될 수도 있다. 컴퓨터 판독가능 매체들은 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하여 컴퓨터 저장 매체들 및 통신 매체들 양자를 포함한다. 저장 매체들은 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체들일 수도 있다. 비제한적인 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 이송 또는 저장하기 위해 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. When implemented in software, the functions may be stored on a computer readable medium as one or more instructions or codes, or may be transmitted through a computer readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. Storage media may be any available media that can be accessed by a computer. By way of non-limiting example, such computer-readable media may be in the form of instructions, data structures, or RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or desired program code. It can be used for transport or storage and can include any other media that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium.

예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함될 수 있다. 본원에서 사용된 디스크 (disk)와 디스크 (disc)는, CD, 레이저 디스크, 광 디스크, DVD (digital versatile disc), 플로피디스크, 및 블루레이 디스크를 포함하며, 여기서 디스크들 (disks) 은 보통 자기적으로 데이터를 재생하고, 반면 디스크들 (discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 위의 조합들도 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다. For example, if the software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, wireless, and microwave, the coaxial cable , Fiber optic cable, twisted pair, digital subscriber line, or wireless technologies such as infrared, wireless, and microwave can be included within the definition of the medium. Disks and discs, as used herein, include CDs, laser disks, optical disks, digital versatile discs (DVDs), floppy disks, and Blu-ray disks, where disks are usually magnetic Data is reproduced on the other hand, while discs optically reproduce data using a laser. Combinations of the above should also be included within the scope of computer readable media.

소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 공지된 임의의 다른 형태의 저장 매체 내에 상주할 수도 있다. 예시 적인 저장 매체는, 프로세가 저장 매체로부터 정보를 판독하거나 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링 될 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수도 있다. 프로세서와 저장 매체는 ASIC 내에 존재할 수도 있다. ASIC은 유저 단말 내에 존재할 수도 있다. 대안으로, 프로세서와 저장 매체는 유저 단말에서 개별 컴포넌트들로써 존재할 수도 있다. The software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known. An exemplary storage medium can be coupled to the processor, such that the processor can read information from or write information to the storage medium. Alternatively, the storage medium may be integrated into the processor. Processors and storage media may reside within the ASIC. The ASIC may exist in the user terminal. Alternatively, the processor and storage medium may exist as separate components at the user terminal.

비록 예시 적인 구현예들이 하나 이상의 독립형 컴퓨터 시스템의 맥락에서 현재 개시된 주제의 양태들을 활용하는 것을 언급할 수도 있으나, 본 주제는 그렇게 제한되지 않고, 오히려 네트워크나 분산 컴퓨팅 환경과 같은 임의의 컴퓨팅 환경과 연계하여 구현될 수도 있다. 또 나아가, 현재 개시된 주제의 양상들은 복수의 프로세싱 칩들이나 디바이스들에서 또는 그들에 걸쳐 구현될 수도 있고, 스토리지는 복수의 디바이스들에 걸쳐 유사하게 영향을 받게 될 수도 있다. 이러한 디바이스들은 PC들, 네트워크 서버들, 및 핸드헬드 디바이스들을 포함할 수도 있다. Although example implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more standalone computer systems, the subject matter is not so limited, but rather associated with any computing environment, such as a network or distributed computing environment. It can also be implemented. Furthermore, aspects of the presently disclosed subject matter may be implemented in or across multiple processing chips or devices, and storage may be similarly affected across multiple devices. Such devices may include PCs, network servers, and handheld devices.

이 명세서에서 언급된 방법은 특정 실시예들을 통하여 설명되었지만, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽힐 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.Although the method mentioned in this specification has been described through specific embodiments, it is possible to implement it as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data readable by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical data storage devices. In addition, the computer-readable recording medium can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. And, functional programs, codes, and code segments for implementing the embodiments can be easily inferred by programmers in the technical field to which the present invention pertains.

본 명세서에서는 본 개시가 일부 실시예들과 관련하여 설명되었지만, 본 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 개시의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다는 점을 알아야 할 것이다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present disclosure has been described in connection with some embodiments in this specification, it should be understood that various modifications and changes may be made without departing from the scope of the present disclosure, which can be understood by those skilled in the art to which the present invention pertains. something to do. In addition, such modifications and variations should be considered within the scope of the claims appended hereto.

110: IoT 장치
120: IoT 플랫폼
130: 프록시
140: 블록체인 플랫폼
110: IoT device
120: IoT platform
130: proxy
140: Blockchain platform

Claims (10)

IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 방법으로서,
상기 IoT 플랫폼과 프록시 사이에서 경량 메시지 프로토콜에 따른 제1 데이터의 전송을 수행하는 단계;
상기 프록시에서 상기 경량 메시지 프로토콜에 따른 제1 데이터와 원격 프로시저 호출 프로토콜에 따른 제2 데이터 사이의 변환을 수행하는 단계; 및
상기 블록체인 플랫폼과 상기 프록시 사이에서 상기 원격 프로시저 호출 프로토콜에 따른 상기 제2 데이터의 전송을 수행하는 단계를 포함하는, 시스템.
As a method of providing data communication between IoT platform and blockchain platform,
Performing first data transmission according to a lightweight message protocol between the IoT platform and a proxy;
Performing conversion between the first data according to the lightweight message protocol and the second data according to a remote procedure call protocol in the proxy; And
And transmitting the second data according to the remote procedure call protocol between the blockchain platform and the proxy.
제 1항에 있어서
클라이언트가 DApp에게 데이터를 요청하는 단계; 및
상기 DApp이 상기 데이터 요청을 상기 블록체인 플랫폼에 전송하는 단계를 더 포함하는, 방법.
According to claim 1
The client requesting data from the DApp; And
And the DApp sending the data request to the blockchain platform.
제 2항에 있어서,
상기 클라이언트가 상기 DApp에게 데이터를 요청하는 단계는, 상기 클라이언트가 상기 DApp에게 HTTP 프로토콜에 따른 데이터 요청하는 단계를 포함하는, 방법.
According to claim 2,
The step of the client requesting data from the DApp includes the client requesting data from the DApp according to the HTTP protocol.
제 2항에 있어서,
상기 DApp이 상기 데이터 요청을 상기 블록체인 플랫폼에 전송하는 단계는, 상기 DApp이 상기 블록체인 플랫폼에 상기 원격 프로시저 호출 프로토콜에 따른 데이터 요청을 전송하는 단계를 포함하는, 방법.
According to claim 2,
The step of the DApp sending the data request to the blockchain platform comprises the step of the DApp sending a data request according to the remote procedure call protocol to the blockchain platform.
제 1항에 있어서,
상기 프록시에서 상기 경량 메시지 프로토콜에 따른 제1 데이터와 상기 원격 프로시저 호출 프로토콜에 따른 제2 데이터 사이의 변환을 수행하는 단계는;
상기 블록체인 플랫폼과의 상기 제2 데이터의 통신을 위해, 상기 원격 프로시저 호출 프로토콜을 상기 경량 메시지 프로토콜로 변환하는 단계; 및
상기 IoT 플랫폼과의 상기 제1 데이터의 통신을 위해, 상기 경량 메시지 프로토콜을 상기 원격 프로시저 호출 프로토콜로 변환하는 단계를 포함하는, 방법.
According to claim 1,
In the proxy, performing conversion between the first data according to the lightweight message protocol and the second data according to the remote procedure call protocol;
Converting the remote procedure call protocol to the lightweight message protocol for communication of the second data with the blockchain platform; And
And for communicating the first data with the IoT platform, converting the lightweight message protocol to the remote procedure call protocol.
IoT 플랫폼과 블록체인 플랫폼 사이의 데이터 통신을 제공하는 시스템으로서,
상기 IoT 플랫폼과의 경량 메시지 프로토콜에 따른 제1 데이터의 통신과, 상기 블록체인 플랫폼과의 원격 프로시저 호출 프로토콜에 따른 제2 데이터의 통신을 실행하는 프록시를 포함하며,
상기 프록시는, 상기 경량 메시지 프로토콜에 따른 상기 제1 데이터와 상기 원격 프로시저 호출 프로토콜에 따른 상기 제2 데이터 사이의 변환을 수행하는, 시스템.
A system that provides data communication between IoT platform and blockchain platform,
And a proxy for performing communication of the first data according to the lightweight message protocol with the IoT platform and communication of the second data according to a remote procedure call protocol with the blockchain platform,
And the proxy performs conversion between the first data according to the lightweight message protocol and the second data according to the remote procedure call protocol.
제 6항에 있어서
DApp을 통해 상기 블록체인 플랫폼에 데이터를 요청하는 클라이언트를 더 포함하는, 시스템.
The method of claim 6
The system further includes a client requesting data to the blockchain platform through a DApp.
제 7항에 있어서,
상기 클라이언트는 상기 DApp에게 HTTP 프로토콜에 따른 데이터 요청을 전송하는, 시스템.
The method of claim 7,
And the client sends a data request according to the HTTP protocol to the DApp.
제 7항에 있어서,
상기 DApp은 상기 블록체인 플랫폼에 상기 원격 프로시저 호출 프로토콜에 따른 데이터 요청을 전송하는, 시스템.
The method of claim 7,
The DApp transmits a data request according to the remote procedure call protocol to the blockchain platform.
컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행되도록 구성되는 하나 이상의 프로그램을 저장하는 컴퓨터 판독가능 저장매체로서,
상기 하나 이상의 프로그램은, 제1항 내지 제5항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 컴퓨터 판독가능 저장매체.
A computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a computing device, comprising:
The one or more programs include instructions for performing the method of claim 1, wherein the computer-readable storage medium.
KR1020190058406A 2018-11-27 2019-05-17 Method and system for providing data communication between iot and blockchain platforms KR20200063959A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180148972 2018-11-27
KR20180148972 2018-11-27

Publications (1)

Publication Number Publication Date
KR20200063959A true KR20200063959A (en) 2020-06-05

Family

ID=71088767

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190058406A KR20200063959A (en) 2018-11-27 2019-05-17 Method and system for providing data communication between iot and blockchain platforms

Country Status (1)

Country Link
KR (1) KR20200063959A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102256861B1 (en) * 2020-11-20 2021-05-28 주식회사 스마트엠투엠 Method and system for interworking between port logistics system and block chain network
KR20210158271A (en) 2020-06-23 2021-12-30 주식회사 비주얼넷 System to provide genuinity verification and ownership change records of product esset by using a blockchain and a genuine authentiation tag technologies
CN115225709A (en) * 2022-07-29 2022-10-21 蚂蚁区块链科技(上海)有限公司 Data transmission system and method
KR20220168417A (en) * 2021-06-16 2022-12-23 계명대학교 산학협력단 Lightweight blockchain method and system using data blocks and header blocks mixed

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210158271A (en) 2020-06-23 2021-12-30 주식회사 비주얼넷 System to provide genuinity verification and ownership change records of product esset by using a blockchain and a genuine authentiation tag technologies
KR20220113307A (en) 2020-06-23 2022-08-12 주식회사 비주얼넷 System to provide genuinity verification and ownership change records of product esset by using a blockchain and a genuine authentiation tag technologies
KR102256861B1 (en) * 2020-11-20 2021-05-28 주식회사 스마트엠투엠 Method and system for interworking between port logistics system and block chain network
KR20220168417A (en) * 2021-06-16 2022-12-23 계명대학교 산학협력단 Lightweight blockchain method and system using data blocks and header blocks mixed
CN115225709A (en) * 2022-07-29 2022-10-21 蚂蚁区块链科技(上海)有限公司 Data transmission system and method
CN115225709B (en) * 2022-07-29 2024-03-26 蚂蚁区块链科技(上海)有限公司 Data transmission system, method, electronic device and readable storage medium

Similar Documents

Publication Publication Date Title
Yang et al. A survey on blockchain-based internet service architecture: requirements, challenges, trends, and future
CN108665372B (en) Information processing, inquiring and storing method and device based on block chain
KR20200063959A (en) Method and system for providing data communication between iot and blockchain platforms
WO2022001418A1 (en) Data processing method and apparatus, and computer program and storage medium
US7480799B2 (en) Traffic manager for distributed computing environments
US20160261690A1 (en) Computing device configuration and management using a secure decentralized transaction ledger
TWI612838B (en) Systems, methods, and/or apparatus for enabling communication between devices using different communication protocols
KR102152360B1 (en) System and method for providing data reliability based on blockchain for iot services
CN102082771B (en) Service management middleware based on ESB (enterprise service bus) technology
CN105144111A (en) Relay service for different WEB service architectures
Vangipuram et al. CoviChain: a blockchain based framework for nonrepudiable contact tracing in healthcare cyber-physical systems during pandemic outbreaks
US20070124344A1 (en) Method, apparatus and program storage device for providing web services-based data replication for Heterogeneous storage systems
CN108287894A (en) Data processing method, device, computing device and storage medium
CN103248670A (en) Connection management in a computer networking environment
Sahadevan et al. An offline online strategy for IoT using MQTT
KR102089912B1 (en) Method and system for managing mobile devices based on private blockchain
Leinweber et al. TEE-based distributed watchtowers for fraud protection in the lightning network
US20220414088A1 (en) Performance efficient blockchain application programming interfaces
KR102139551B1 (en) Method and server for managing testament
Myrizakis et al. iHome: smart home management as a service in the cloud and the fog
Alam et al. Virtualizing sensor for the enablement of semantic-aware internet of things ecosystem
US7739328B1 (en) Traffic manager for distributed computing environments
CN114301912A (en) Information interaction method and device based on block chain
Farrag et al. A survey of cloud computing approaches, business opportunities, risk analysis and solving approaches
US20130152181A1 (en) Portal based case status management

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application