KR20210038914A - 컴퓨팅 장치 및 클라우드 기반 서비스를 연결하기 위한 데이터 시스템 온 모듈(DSoM) - Google Patents

컴퓨팅 장치 및 클라우드 기반 서비스를 연결하기 위한 데이터 시스템 온 모듈(DSoM) Download PDF

Info

Publication number
KR20210038914A
KR20210038914A KR1020217005527A KR20217005527A KR20210038914A KR 20210038914 A KR20210038914 A KR 20210038914A KR 1020217005527 A KR1020217005527 A KR 1020217005527A KR 20217005527 A KR20217005527 A KR 20217005527A KR 20210038914 A KR20210038914 A KR 20210038914A
Authority
KR
South Korea
Prior art keywords
communication device
data object
communication
data
computing device
Prior art date
Application number
KR1020217005527A
Other languages
English (en)
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 KR20210038914A publication Critical patent/KR20210038914A/ko

Links

Images

Classifications

    • H04L67/327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

서로에 대해 비동기적으로 하나 이상의 데이터 수정을 동기화하기 위해 컴퓨팅 장치를 클라우드 기반 서비스와 통신 가능하게 결합하기 위한 통신 장치 (예를 들어, 데이터 시스템 온 모듈(DSOM)/데이터 시스템 인 패키지(DSiP))가 제공된다. 상기 통신 장치는 컴퓨팅 장치에 통신 가능하게 결합되도록 구성될 수 있고 무선 셀룰러 송수신기를 포함할 수 있다. 통신 장치는 컴퓨팅 장치로부터 클라우드 기반 서비스로 적어도 하나의 데이터 객체를 전송하고 클라우드 기반 서비스로부터 적어도 하나의 데이터 객체를 수신하는 것 중 하나 이상으로 구성될 수 있다. 본 개시의 실시 예들은 통신 장치 상에 패키징되고 인터넷 기반 보안 통신 허브와 통합된 분산 복제 시공간 데이터베이스를 제공할 수 있다.

Description

컴퓨팅 장치 및 클라우드 기반 서비스를 연결하기 위한 데이터 시스템 온 모듈(DSoM)
본 출원은 2018년 7월 25일에 출원된 일련 번호 62/703,054 및 2019년 2월 20일에 출원된 일련 번호 62/807,840인 미국 가출원의 우선권을 주장한다. 위의 두 출원 모두가 본 명세서에서 참조된다.
통신에 대한 셀룰러 통신 산업의 관점은 두 가지 핵심 가정에 의해 지배된다. 첫째, 글로벌 상호 운용성이 매우 중요한데, 속도보다 더 중요하며 그 규정 및 표준위원회는 기술이 정의되어야 하는 방식이 된다. 둘째, 고객은 업계와 정부가 설계하고 구축한 모든 것을 사용하게 되고, 해당 업계는 계측된 셀룰러 비즈니스 모델을 영원히 사용하게 되고, 그 고객은 참여하게 된다. 기술 또는 그 요구 사항을 정의하는 데 있어 고객의 참여가 없으며, 개발자와의 연결성도 없다.
통신에 대한 컴퓨팅/IT 산업의 관점은 일반적으로 두 가지 핵심 가정에 의해 좌우된다: 첫째, 혁신가와 건축업자, 산업은 기술이 정의되어야 하는 방식이 된다. 개발자는 가장 잘 알고 있으며, 아키텍처는 강력한 하이 엔드 플랫폼에 대한 미래 지향적 사고로 정의되어야 하며 과거의 저 능력 플랫폼에는 그다지 집중하지 않아야 한다. 둘째, 다양한 장치와 프로토콜 및 네트워크의 세계가 있다는 것으로, 모든 장치와 애플리케이션을 지원하게 되며, 모든 네트워크를 스트림을 전달하는 소켓을 노출하는 파이프로 취급하게 되는, 일반화된 추상화를 만드는 것이 플랫폼 제공 업체의 지배적인 주요 업무이다.
이러한 산업 중 어느 것도 셀룰러 중심의 대규모 사물 인터넷(IoT)(수십억 개의 장치)과 관련하여 어느 관점도 수용할 수 없다는 사실을 전적으로 수용하지는 않는다. 낮은 수준의 특성과 AT 명령 및 모뎀 모듈의 표준 기반 제약, 사용자 지정 협상된 셀룰러 계약은 너무 복잡하고 확장되지 않을 수 있다. 또한, 클라우드에 연결하는 데 필요한 인증서 관리 및 고급 Linux®/Windows® 기반 애플리케이션 프로그래머블 인터페이스(API)의 복잡한 특성은 성능이 매우 낮은 저렴한 마이크로 컨트롤러에서 매우 간단한 작업을 수행하려는 임베디드 개발자에게는 단순히 현실적이지 않다.
일 구현 예에서, 컴퓨팅 장치를 클라우드 기반 서비스와 통신 가능하게 결합하여 하나 이상의 데이터 수정 사항을 서로에 대해 비동기적으로 동기화하기 위한 통신 장치가 제공된다. 상기 통신 장치는 상기 컴퓨팅 장치에 통신 가능하게 결합하도록 구성되며, 무선 셀룰러 송수신기를 포한다. 상기 통신 장치는 상기 컴퓨팅 장치에서 상기 클라우드 기반 서비스로 하나 이상의 데이터 객체를 전송하는 단계와 상기 클라우드 기반의 서비스로부터 적어도 하나의 데이터 객체를 수신하는 단계 중 하나 이상으로 구성될 수 있다. 상기 컴퓨팅 장치에서 상기 클라우드 기반 서비스로 하나 이상의 데이터 객체를 전송하는 단계는 상기 컴퓨팅 장치로부터 적어도 하나의 데이터 객체를 수신하고, 상기 수신된 적어도 하나의 데이터 객체에 적어도 부분적으로 기초하여 상기 통신 장치의 메모리에 저장된 하나 이상의 데이터 객체의 적어도 하나의 데이터 객체 어레이를 수정하고, 및 상기 컴퓨팅 장치에 대해 비동기적으로, 상기 무선 셀룰러 송수신기를 통해, 상기 수정된 적어도 하나의 데이터 객체 어레이의 적어도 일부를 상기 클라우드 기반 서비스로 전송하는 것을 포함할 수 있다. 상기 클라우드 기반의 서비스로부터 적어도 하나의 데이터 객체를 수신하는 단계는 비동기적으로, 상기 컴퓨팅 장치와 관련하여, 상기 무선 셀룰러 송수신기를 통해 상기 클라우드 기반 서비스로부터 상기 적어도 하나의 데이터 객체 어레이의 적어도 일부를 수신하고, 상기 적어도 하나의 데이터 객체 어레이의 상기 수신된 적어도 일부에 적어도 부분적으로 기초하여 상기 컴퓨팅 장치의 상기 메모리에 저장된 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 데이터 객체를 수정하고, 및 비동기적으로, 상기 통신 장치의 상기 클라우드 기반 서비스와의 통신과 관련하여, 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 수정된 데이터 객체를 상기 컴퓨팅 장치에 이용 가능하게 하는 것을 포함할 수 있다.
다음 예시의 특징 중 하나 이상이 포함될 수 있다. 상기 통신 장치는 마이크로컨트롤러일 수 있다. 상기 통신 장치는 직렬 링크를 통해 상기 컴퓨팅 장치에 통신 가능하게 연결되도록 구성될 수 있다. 상기 직렬 링크는 범용 비동기적 송수신기(UART), 범용 직렬 버스(USB), IC간 버스(I2C), 직렬 주변 인터페이스(SPI), MODBUS®, 컨트롤러 에어리어 네트워크(CAN) 버스, 및 주변 소자 인터커넥스 익스프레스(PCIe) 중 하나 이상을 포함할 수 있다. 상기 통신 장치는 상기 컴퓨팅 장치로부터 통신 정책을 수신하도록 구성될 수 있다. 상기 통신 정책은 전력 보존, 네트워크 대역폭 보존, 데이터 객체 보안, 다른 데이터 객체에 대한 일부 데이터 객체의 우선 순위 지정 중 하나 이상을 포함하는 상기 통신 장치에 대한 하나 이상의 통신 세션 기준을 정의할 수 있다. 상기 통신 장치는 상기 컴퓨팅 장치로부터 수신된 상기 통신 정책에 적어도 부분적으로 기초하여 무선 셀룰러 트랜시버를 통해 상기 데이터 객체 어레이의 상기 적어도 일부를 상기 클라우드 기반 서비스로 전송하기위한 스케줄을 생성하고; 상기 컴퓨팅 장치로부터 수신된 상기 통신 정책에 적어도 부분적으로 기초하여 상기 무선 셀룰러 트랜시버를 통해 상기 클라우드 기반 서비스로부터 상기 데이터 객체 어레이의 상기 적어도 일부를 수신하기 위한 스케줄을 생성하는 것 중 하나 이상으로 더욱 구성될 수 있다. 상기 통신 장치는 적어도 하나의 객체에 메타 데이터를 추가하도록 구성되며, 메타 데이터는 상기 통신 장치의 시간 및 위치 중 하나 이상을 포함할 수 있다. 상기 통신 장치는 상기 컴퓨팅 장치로부터 수신된 상기 통신 정책 및 적어도 하나의 데이터 객체에 첨부된 상기 메타데이터에 적어도 부분적으로 기초하여 상기 데이터 객체를 압축 및 암호화하는 것 중 하나 이상으로 구성될 수 있다. 상기 하나 이상의 데이터 객체는 자바스크립트 객체 표기법(JSON) 객체일 수 있다. 상기 통신 장치는, 상기 무선 셀룰러 송수신기를 통해, 상기 통신 장치의 메모리에 저장하기 위한 적어도 하나의 데이터 객체의 형태로 펌웨어 데이터를 수신하고; 상기 컴퓨팅 장치에 상기 수신된 펌웨어 데이터를 설치하기 위해 상기 수신된 펌웨어 데이터의 적어도 일부를 상기 컴퓨팅 장치로 전송하기 위해 상기 컴퓨팅 장치로부터 하나 이상의 명령을 수신하도록 더욱 구성될 수 있다. 상기 통신 장치는 상기 무선 셀룰러 송수신기의 전력을 활성화 및 비활성화하는 것 중 하나 이상으로 더욱 구성될 수 있다. 상기 통신 장치는 글로벌 내비게이션 위성 시스템(GNSS) 시스템을 더 포함하고 GNSS 안테나에 통신 가능하게 결합되도록 더욱 구성될 수 있다. 상기 통신 장치는 상기 통신 장치로 하여금 그 이동을 감지할 때 상기 GNSS 시스템으로부터 GNSS 위치 데이터를 샘플링하게 하도록 구성된 가속도계를 더 포함할 수 있다. 제조시, 상기 통신 장치의 비휘발성 메모리는 하나 이상의 보안 키 및 상기 통신 장치의 보안 인증 및 상기 클라우드 기반 서비스와의 통신을 가능하게 하는 디지털 서명된 인증서를 포함하도록 구성될 수 있다.
다른 구현 예에서, 컴퓨팅 장치를 클라우드 기반 서비스와 통신 가능하게 결합하여 하나 이상의 데이터 수정 사항을 서로에 대해 비동기적으로 동기화하기 위한 통신 장치가 제공된다. 상기 통신 장치는, 무선 셀룰러 송수신기를 포함하고, 상기 컴퓨팅 장치에서 상기 클라우드 기반 서비스로 하나 이상의 데이터 객체를 전송하고 상기 클라우드 기반 서비스에서 하나 이상의 데이터 객체를 수신하도록 구성될 수 있다. 상기 컴퓨팅 장치에서 상기 클라우드 기반 서비스로 하나 이상의 데이터 객체를 전송하는 단계는 상기 컴퓨팅 장치로부터 적어도 하나의 데이터 객체를 수신하고, 상기 수신된 적어도 하나의 데이터 객체에 적어도 부분적으로 기초하여 상기 통신 장치의 메모리에 저장된 하나 이상의 데이터 객체의 적어도 하나의 데이터 객체 어레이를 수정하고, 및 상기 컴퓨팅 장치에 대해 비동기적으로, 상기 무선 셀룰러 송수신기를 통해, 상기 수정된 적어도 하나의 데이터 객체 어레이의 적어도 일부를 상기 클라우드 기반 서비스로 전송하는 단계를 포함할 수 있다. 상기 클라우드 기반 서비스에서 하나 이상의 데이터 객체를 수신하는 단계는 비동기적으로, 상기 컴퓨팅 장치와 관련하여, 상기 무선 셀룰러 송수신기를 통해 상기 클라우드 기반 서비스로부터 상기 적어도 하나의 데이터 객체 어레이의 적어도 일부를 수신하고, 상기 적어도 하나의 데이터 객체 어레이의 상기 수신된 적어도 일부에 적어도 부분적으로 기초하여 상기 컴퓨팅 장치의 상기 메모리에 저장된 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 데이터 객체를 수정하고, 및 비동기적으로, 상기 통신 장치의 상기 클라우드 기반 서비스와의 통신과 관련하여, 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 수정된 데이터 객체를 상기 컴퓨팅 장치에 이용 가능하게 하는 단계를 포함할 수 있다.
다음 예시의 특징들 중 하나 이상이 포함될 수 있다. 상기 컴퓨팅 장치는 마이크로컨트롤러일 수 있다. 상기 컴퓨팅 장치는 직렬 링크를 통해 상기 통신 장치에 통신 가능하게 연결되도록 구성될 수 있다. 상기 적어도 하나의 데이터 객체는 자바스크립트 객체 표기법(JSON) 객체일 수 있다.
또 다른 에시의 구현 예에서, 통신 장치는 직렬 링크를 통해 컴퓨팅 장치에 통신 가능하게 결합되도록 구성될 수 있으며, 상기 컴퓨팅 장치는 상기 직렬 링크를 통해 통신되는 하나 이상의 자바스크립트 객체 표기법(JSON) 객체를 사용하여 상기 통신 장치와 요청 및 응답을 통신하도록 구성될 수 있다.
하나 이상의 예시적인 구현의 세부 사항은 첨부된 도면 및 아래의 설명에서 기재된다. 다른 가능한 예시적인 특징 및/또는 가능한 예시적인 이점은 설명, 도면 및 청구 범위로부터 명백해질 것이다. 일부 구현은 그러한 가능한 예시적인 특징 및/또는 가능한 예시적인 이점을 갖지 않을 수 있고, 그러한 가능한 예시적인 특징 및/또는 가능한 예시적인 이점은 일부 구현에 반드시 필요하지 않을 수 있다.
도 1은 본 개시의 하나 이상의 예시적인 구현에 따른 통신 시스템의 예시적인 개략도이다.
도 2 내지 도 4는 본 개시의 하나 이상의 예시적인 구현에 따른 컴퓨팅 장치 및 무선 셀룰러 송수신기에 통신 가능하게 결합된 통신 장치의 예시적인 개략도이다.
도 5는 본 개시의 하나 이상의 예시적인 구현에 따른 하나 이상의 데이터 객체 어레이를 갖는 통신 시스템의 예시적인 개략도이다.
도 6은 본 개시의 하나 이상의 예시적인 구현에 따라 분산 복제된 시공간 데이터베이스를 정의하기 위해 통신 장치와 통신 허브 사이에서 동기화되는 데이터 객체 어레이의 데이터 객체의 예시적인 개략도이다.
도 7은 본 개시의 하나 이상의 예시적인 구현에 따른 통신 허브와 연관된 관리 도구의 예시적인 개략도이다.
도 8은 본 개시의 하나 이상의 예시적인 구현에 따른 하나 이상의 데이터 객체 어레이를 갖는 통신 시스템의 예시적인 개략도이다.
도 9 및 도 10은 본 개시의 하나 이상의 예시적인 구현에 따른 통신 허브와 연관된 관리 도구의 예시적인 개략도이다.
도 11 및 도 12는 본 개시의 하나 이상의 예시적인 구현에 따른 통신 허브의 개략도이다.
다양한 도면에서 유사한 참조 기호는 유사한 요소를 나타낸다.
위에서 논의된 바와 같이, 현재 셀룰러 통신을 위한 두 가지 별개의 시스템 아키텍처가 있으며, 둘 다 널리 알려져 있다. 그리고 둘 다 엄청나게 복잡하다. 예를 들어, 셀룰러 통신 산업의 관점은 두 가지 핵심 가정에 의해 지배된다. 첫째, 글로벌 상호 운용성이 매우 중요한데, 속도보다 더 중요하며 그 규정 및 표준위원회는 기술이 정의되어야 하는 방식이 된다. 둘째, 고객은 업계와 정부가 설계하고 구축한 모든 것을 사용하게 되고, 해당 업계는 계측된 셀룰러 비즈니스 모델을 영원히 사용하게 되고, 그 고객은 참여하게 된다. 기술 또는 그 요구 사항을 정의하는 데 있어 고객의 참여가 없으며, 개발자와의 연결성도 없다.
통신에 대한 컴퓨팅/IT 산업의 관점은 일반적으로 두 가지 핵심 가정에 의해 좌우된다: 첫째, 혁신가와 건축업자, 산업은 기술이 정의되어야 하는 방식이 된다. 개발자는 가장 잘 알고 있으며, 아키텍처는 강력한 하이 엔드 플랫폼에 대한 미래 지향적 사고로 정의되어야 하며 과거의 저 능력 플랫폼에는 그다지 집중하지 않아야 한다. 둘째, 다양한 장치와 프로토콜 및 네트워크의 세계가 있다는 것으로, 모든 장치와 애플리케이션을 지원하게 되며, 모든 네트워크를 스트림을 전달하는 소켓을 노출하는 파이프로 취급하게 되는, 일반화된 추상화를 만드는 것이 플랫폼 제공 업체의 지배적인 주요 업무이다. 예를 들어, 전송 수단으로서 64kbps 셀룰러에 관심이 없고 에지에서는 64KB 마이크로컨트롤러에 관심이 없다.
이러한 산업 중 어느 것도 셀룰러 중심의 대규모 사물 인터넷(IoT)(수십억 개의 장치)과 관련하여 어느 관점도 수용할 수 없다는 사실을 전적으로 수용하지는 않는다. 낮은 수준의 특성과 AT 명령 및 모뎀 모듈의 표준 기반 제약, 사용자 지정 협상된 셀룰러 계약은 너무 복잡하고 확장되지 않을 수 있다. 또한, 클라우드에 연결하는 데 필요한 인증서 관리 및 고급 Linux®/Windows® 기반 애플리케이션 프로그래머블 인터페이스(API)의 복잡한 특성은 성능이 매우 낮은 저렴한 마이크로 컨트롤러에서 매우 간단한 작업을 수행하려는 임베디드 개발자에게는 단순히 현실적이지 않다.
아래에서 더 상세히 논의되는 바와 같이, 본 개시 내용의 실시 예는 클라우드 기반 서비스를 갖는 마이크로 컨트롤러를 통신 가능하게 결합하기 위해 구성된, 데이터 시스템 온 모듈(data system on a module; DSoM), 데이터 시스템 인 패키지(data system in a package; DSiP) 또는 통신 장치 및/또는 통신 허브를 포함할 수 있다. 이하에서 더 상세히 설명되는 바와 같이, 본 개시의 실시 예는 다음 특징 중 하나 이상을 제공할 수 있다: SSID, 암호, 액세스 포인트, 게이트웨이, 이동 통신사 또는 SIM를 처리하는 번거로움없이 연결을 제공하는, 모뎀/무선 셀룰러 송수신기, 프리페이드 셀룰러 모듈, 스토리지, IP 및 TLS 스택, 보안 요소 및 키/인증서, GPS 및 가속도계를 구비한 데이터 시스템 온 모듈(DSOM); 하드웨어 암호화/키 및 암호화된 "인터넷 외부" 통신에 의한, 프로비저닝 문제가 없는 보안; 모뎀, 연결, 대기열 또는 스토리지 관리의 복잡성이 없는 배터리 전원(μA) 셀룰러; 데이터가 속하는 곳(예를 들어, Amazon Web Services(AWSTM), AzureTM, Google Cloud StorageTM 또는 사용자 지정 클라우드)에 직접 데이터를 라우팅하는 서비스(iaaS)로 매우 얇은 인프라; 및 움직이는 부품이 거의 없는 모든 기술 수준에서의 낮은 장벽을 포함할 수 있다(AWS는 미국 또는 기타 국가에서 사용되는 Amazon.com, Inc.의 상표이고, Azure는 미국 또는 기타 국가에서 사용되는 Microsoft Corporation의 등록 상표이고, Google Cloud Storage는 미국 또는 기타 국가에서 사용되는 Google LLC의 등록 상표이다). 이러한 방식으로, 아래에서 더 상세히 논의되는 바와 같이, 본 개시의 실시 예들은 보안 통신 모듈 상에 패키징되고 인터넷 기반 통신 허브와 통합된 분산 복제된 시공간 데이터베이스를 제공할 수 있다.
도 1의 예를 참조하여 일부 실시 예에서, 통신 시스템(예를 들어, 통신 시스템(100))은 일반적으로 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(104))에 통신 가능하게 결합되도록 구성된 통신 장치(예를 들어, 통신 장치(102)) 및 클라우드 기반 서비스(예를 들어, 클라우드 기반 서비스(108))에 통신 가능하게 결합되도록 구성된 통신 허브(예를 들어, 통신 허브(106))를 포함할 수 있다. 아래에서 더 상세히 논의되는 바와 같이, 애플리케이션은 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(104))에 기록될 수 있다. 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(104))로부터의 데이터(예를 들어, 데이터 객체(110))는 통신 장치(예를 들어, 통신 장치(102))와의 통신을 위해 포맷되고 통신 허브(예를 들어, 통신 허브(106))로/로부터 전송될 수 있다. 통신 허브(예를 들어, 통신 허브(106))는 클라우드 기반 서비스(예를 들어, 클라우드 기반 서비스(108)) 또는 애플리케이션으로/로부터 데이터를 통신할 수 있다. 일부 실시 예에서, 클라우드 기반 서비스와 통신하도록 컴퓨팅 장치(예를 들어, 마이크로 컨트롤러)를 구성하기 위한 전력 및 스토리지 관리, 프로비저닝 및 보안 및 소프트웨어 업데이트, 무선 대역 및 캐리어 관리, 규제 인증, 비즈니스 모델 등은 통신 장치와 통신 허브에서 모두 관리될 수 있다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치를 클라우드 기반 서비스와 통신 가능하게 결합할 수 있다. 일부 실시 예에서, 컴퓨팅 장치는 마이크로 컨트롤러를 포함할 수 있다. 마이크로 컨트롤러 또는 "MCU"는 일반적으로 제품의 애플리케이션 로직을 실행하는 단일 집적 회로에 컴퓨팅 장치를 포함할 수 있다. MCU는 공급 업체의 소프트웨어 개발 키트(SDK) 또는 최소 운영 환경(예를 들어, FreeRTOS, Arm® Mbed™ IoT 장치 플랫폼 등)으로 "베어"를 실행할 수 있다 (Arm은 미국 또는 기타 국가에서 사용되는 Arm Holdings의 등록 상표이다). 일부 실시 예에서, MCU가 하드웨어 설계의 많은 측면을 고급 구성 요소(예를 들어, 단일 보드 컴퓨터)와 공유할 수 있지만, MCU는 Linux®(예를 들어, Linux 커널에 기반한 모든 운영 체제)를 실행하지 않을 수 있다 (Linux는 미국 또는 기타 국가에서 사용되는 Linus Torvalds의 등록 상표이다). 당 업계에 공지된 바와 같이, MCU는 일반적으로 하나 이상의 CPU 코어, 메모리 (예를 들어, RAM), 입력/출력 주변기기 등을 포함할 수 있다.
일부 실시 예에서, 컴퓨팅 장치는 단일 보드 컴퓨터 또는 "SBC"를 포함할 수 있다. SBC에는 일반적으로 Linux 기반 (또는 Microsoft® Windows® 또는 AndroidTM와 같은 메모리 관리 장치(MMU)를 필요로 하는 모든 OS) 컴퓨터가 포함될 수 있다 (Microsoft 및 Windows는 미국 또는 기타 국가에서 사용되는 Microsoft Corporation의 등록 상표이다). 그러나 다른 운영 체제는, 국한되는 것은 아니지만, Microsoft® Windows®, Mac® OS X®; Red Hat® Linux®, Windows® Mobile, Chrome OS, Blackberry OS, Fire OS 또는 사용자 지정 운영 체제를 포함하여, SBC에 의해 사용되고/되거나 SBC에 설치될 수 있다 (Mac 및 OS X는 미국 또는 기타 국가에서 사용되는 Apple Inc.의 등록 상표이고; Red Hat은 미국 또는 기타 국가에서 사용되는 Red Hat Corporation의 등록 상표이다).
클라우드 기반 서비스는 일반적으로 개제 자체의 온-프레미스 서버(on-premises server)(예를 들어, 고객의 서버)에서 제공되는 것과 달리 클라우드 컴퓨팅 제공 업체의 서버에서 인터넷을 통해 사용자가 주문형으로 사용할 수 있는 모든 서비스 또는 애플리케이션을 포함할 수 있다. 클라우드 서비스의 예로는 일반적으로 온라인 데이터 저장 및 백업 솔루션, 웹 기반 이메일 서비스, 호스팅된 오피스 제품군 및 문서 협업 서비스, 데이터베이스 처리, 관리 기술 지원 서비스 등이 있다. 임의의 클라우드 기반 서비스가 본 개시의 범위 내에서 사용될 수 있음을 이해할 것이다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치에 통신 가능하게 결합될 수있다. 전술한 바와 같이 일부 실시 예에서, 컴퓨팅 장치는 마이크로 컨트롤러일 수 있다. 일부 실시 예에서, 통신 장치는 데이터 시스템 온 모듈(DSoM) 또는 데이터 시스템 인 패키지(DSip)일 수 있다. 당 업계에 공지된 바와 같이, DSoM은 일반적으로 단일 모듈에 시스템 기능을 통합하는 보드 레벨 회로를 포함할 수 있고 DSiP는 일반적으로 단일 칩 캐리어 패키지에 포함된 다수의 집적 회로를 포함할 수 있다. 일부 실시 예에서, 통신 장치는 전력 효율적인 방식으로 셀룰러를 통해 고객의 컴퓨팅 장치와 클라우드 기반 서비스 간의 데이터 패킷 (예를 들어, 데이터 객체)의 보안 통신을 비동기식으로 시작 및 관리하도록 구성될 수 있다.
일부 실시 예에서, 통신 장치는 고객 애플리케이션 코드를 호스팅하지 않으므로 애플리케이션 프로세서가 아닐 수있다. 일부 실시 예에서, 통신 장치는 두 가지 핵심 작업에 초점을 맞춘 지능형 주변 장치일 수 있다: 1) 데이터 객체의 양방향 비동기 보안 데이터 통신; 및 2) 주변 장치의 전원 관리.
하나의 예에서, 통신 장치는 다양한 상황에 내장되도록 설계된 소형 산업 표준 M.2 3030 (NGFF) 키 E 폼 팩터 (30mm 정사각형)를 사용하여 패키징될 수 있다. 일부 실시 예에서, M.2 폼 팩터는 통합 된 SIM 스위치가있는 임베디드 SIM (eSIM)을 가질 수 있으며, 하드웨어 설계자가 원하는 경우 소프트웨어 선택 가능한 외부 SIM을 활용할 수 있다. 일부 실시 예에서, 통신 장치는 하나 이상의 프로세서를 포함할 수 있다. 예를 들어, 통신 장치의 요청 프로세서 (예를 들어, STM32L4S5)는 예를 들어 1.7-3.6V의 범위에서 회로와 인터페이스하고, 소켓은 다양한 설계 요구 사항을 충족하기 위해 주 전원 전압과 관계없이 해당 프로세서에 전원을 공급할 수 있다. 위에서 특정 범위의 작동 전압을 사용하여 예시의 폼 팩터 및 프로세서를 설명했지만, 다른 폼 팩터, 프로세서 및 전압 동작 범위가 본 개시의 범위 내에서 사용될 수 있음을 이해할 것이다.
일부 실시 예에서 그리고 아래에서 더 상세하게 설명되는 바와 같이, 통신 장치의 기능은 통신 장치의 하나 이상의 프로세서를 사용하여 구현될 수있다.
일부 실시 예에서, 통신 장치의 주 공급 전압은 "V+"로 지칭될 수 있고 무선 셀룰러 송수신기(예를 들어, Quectel BG96 모뎀 및 관련 회로)에 사용될 수 있다. 무선 셀룰러 송수신기의 예에 대해 설명했지만, 다른 무선 셀룰러 송수신기 및/또는 모뎀의 사용이 본 개시의 범위 내에서 가능하다는 것이 이해될 것이다. 일부 실시 예에서, 통신 장치의 온-보드 레귤레이터는 예를 들어 LiPo 배터리에 직접 연결하도록 구성될 수 있으며, 예를 들어 2.5-5.5V 범위의 임의의 전압이 제공될 수 있다. 그러나, 다른 전압 범위를 갖는 다른 전원(예를 들어, 비 배터리 전원, 기타 유형의 배터리, 태양열 전원 등)이 본 개시의 범위 내에서 사용될 수 있다는 것을 이해할 것이다.
또한 도 2의 예를 참조하며 일부 실시예에서, 통신 장치는 직렬 링크를 통해 컴퓨팅 장치에 통신 가능하게 결합되도록 구성될 수 있다. 이러한 방식으로, 통신 장치(102)는 2 개의 와이어로 컴퓨팅 장치(104)에 연결될 수있다. 예를 들어, 컴퓨팅 장치(예를 들어, MCU)는 직렬 링크(예를 들어, 직렬 링크 (202))를 사용하여 통신 장치에 요청을 보내는 옵션을 가질 수 있다. 일부 실시 예에서, 직렬 링크(예를 들어, 직렬 링크 (202))는 범용 비동기식 송수신기((UART)), 범용 직렬 버스(USB), IC간 버스(I2C), 직렬 주변 인터페이스(SPI), MODBUS®, 컨트롤러 에어리어 네트워크(CAN) 버스, 주변 소자 인터커넥스 익스프레스(PCIe) 또는 기타 직렬 링크/프로토콜을 포함할 수 있다. 일부 실시 예에서, 통신 장치(예를 들어, 통신 장치(102))의 직렬 포트는 컴퓨팅 장치(예를 들어, 컴퓨팅 장치 (104))에 의해 구동되는 요청/응답일 수 있다. 일부 실시 예에서, 통신 장치 (102)는 I2C 슬레이브 장치로서 동작하도록 통신 장치(102)를 구성함으로써 컴퓨팅 장치(104)에 통신 가능하게 결합될 수 있다. 당 업계에 공지된 바와 같이, I2C는 슬레이브 장치와 통신하도록 구성된 컨트롤러가 있는 표준 양방향 인터페이스이다. 일부 실시 예에서, I2C는 컴퓨팅 장치(104)와 통신 장치(102) 사이의 통신을 위한 초 저전력 인터페이스를 제공할 수 있다.
하나의 예에서, USB 커넥터는 UART 대안으로 추가될 수 있으며 통신 장치가 Linux® 호스트와 함께 사용되는 것을 허용할 수 있다. 일부 실시 예에서, 직렬 링크 전송 속도는 고정되거나 가변적일 수 있다. 일 예에서, 고정된 전송 속도(예를 들어, 9600bps)에서 작동하는 내부 저전력 UART를 사용하여 매우 낮은 전력 소비를 달성하도록 보드율(buad rate)을 고정할 수 있다. 9600bps의 예가 제공되었지만, 본 개시의 범위 내에서 임의의 보드율이 사용될 수 있음을 이해할 것이다.
일부 실시 예에서, 통신 장치(102)는 고정된 보드율을 갖는 1 차 직렬 링크 및 자동 보드율 검출을 갖는 2 차 또는 보조 직렬 링크를 지원할 수 있다. 일부 실시 예에서, 이 인터페이스 또는 링크는 통신 장치(102)의 "AUX WAKE" 핀을 하이로 설정함으로써 인에이블될 수 있다. 그러나, 2 차 직렬 링크를 활성화하는 것은 다양한 방식 (예를 들어, 버튼 누르기, 하나 이상의 핀을 높거나 낮게 설정하는 것 등)으로 달성될 수 있다는 것을 이해할 것이다. USB 인터페이스를 갖는 통신 장치 (102)의 일부 실시 예에서, 데이터는 D+/D- 와이어를 사용하여 통신 장치(102)와 컴퓨팅 장치(104) 사이에서 전송될 수 있다.
일부 실시 예에서, 통신 장치는 무선 셀룰러 송수신기를 포함할 수 있다. 일부 실시 예들에서, 무선 셀룰러 송수신기(예를 들어, 무선 셀룰러 송수신기(204))는 통신 장치(102)의 모듈일 수 있다. 무선 셀룰러 송수신기는 일반적으로 무선 광역 통신을 위한 임의의 무선 셀룰러 송수신기를 포함할 수 있다. 예로는 LTE-M, LTE Cat M1, 협대역 사물 인터넷 (NB-IoT), LTE Cat NB1, 3G, 2G 등이 포함될 수 있다. 당 업계에 알려진 바와 같이, LTE-M 및 NB-IoT는 광범위한 셀룰러 장치 및 서비스를 가능하게 하기 위해 3GPP에서 개발한 저전력 광영역망(LPWAN) 무선 기술 표준 유형이다 (특히, 머신 투 머신 및 사물 인터넷 애플리케이션의 경우). 특정 예시의 셀룰러 및 무선 기술 표준이 제공되었지만, 임의의 셀룰러 통신 표준이 본 개시의 범위 내에서 사용될 수 있다는 것을 이해할 것이다.
일부 실시 예에서, 무선 셀룰러 송수신기(204)는 무선 셀룰러 송수신기 안테나(예를 들어, 안테나(206)) 및/또는 무선 셀룰러 통신을 위해 구성된 안테나 어레이와 통신 가능하게 결합되도록 구성될 수 있다. 일부 실시 예에서, 무선 셀룰러 송수신기 안테나(206)는 하나 이상의 전지향성 및/또는 지향성 안테나를 포함할 수 있다.
일부 실시 예에서, 통신 장치(102)는 캐리어 보드(예를 들어, 캐리어 보드 (210))에 결합될 수 있다. 캐리어 보드는 일반적으로 통신 장치(예를 들어, 통신 장치 (102))를 다른 컴퓨팅 장치(예를 들어, 컴퓨팅 장치 (104))와 인터페이스하도록 구성된 회로를 포함할 수 있다. 일부 실시 예에서, 캐리어 보드(210)는 특정 사용자를 위한 통신 장치의 신속한 통합을 가능하게 할 수 있다. 예를 들어, 일부 캐리어 보드(예를 들어, 캐리어 보드(210))는 신속한 브레드보드 프로토타이핑(breadboard prototyping)을 위해 헤더 핀을 통해 예를 들어, 3.3V 로직에서 기능을 노출하는 데 초점을 맞출 수 있다. 다른 캐리어 보드(예를 들어, 캐리어 보드(210))는 평평한 뒷면과 성모양 연결로 운송 업체에서 사전 인증된, 일체형 전지향성 LTE 안테나(예를 들어, 안테나(206) 및 글로벌 내비게이션 위성 시스템(GNSS) 안테나(예를 들어, 안테나(208))를 가질 수 잇으므로 캐리어 보드는 산업용 또는 대량 제조 환경에서 마더 보드에 납땜될 수 있다. 예를 들어, 하나의 캐리어 보드(예를 들어, 캐리어 보드(210))는 내장된 무선 셀룰러 송수신기 안테나(206) 및/또는 GNSS 안테나(208)를 포함하지 않을 수 있다. 다른 예에서, 캐리어 보드(예를 들어, 캐리어 보드(210))는 무선 셀룰러 송수신기 안테나 및/또는 GNSS 안테나를 포함할 수 있다. 다양한 캐리어 보드가 상이한 구성을 위해 본 개시의 범위 내에서 사용될 수 있다는 것이 이해될 것이다.
일부 실시 예에서, 캐리어 보드(예를 들어, 캐리어 보드(210))는 통신 장치에 전력을 제공하고 데이터 객체를 클라우드 기반 서비스에 중계하도록 구성된 마이크로 USB 커넥터를 포함할 수 있다. 예를 들어, 이 USB 커넥터를 Raspberry PiTM와 같은 다른 컴퓨팅 장치에 연결하기 만하면, 사용자는 모든 직렬 터미널 프로그램에 명령을 입력할 수 있다 (Raspberry Pi는 미국 또는 기타 국가에서 사용되는 Raspberry Pi Foundation의 등록 상표이다.)
일부 실시 예에서, 캐리어 보드(예를 들어, 캐리어 보드(210))는 가변 전압을 제공하도록 구성된 마이크로 스위치를 포함할 수 있다. 예를 들어, 마이크로스위치는 3.3V 및 1.8V 작동을 모두 활성화할 수 있다. 예시적인 전압이 제공되었지만, 임의의 전압이 본 개시 내용의 범위 내에서 사용될 수 있음을 이해할 것이다.
다시 도 3의 예를 참조하며 일부 예에서, 통신 장치(102)는 무선 셀룰러 송수신기 및/또는 무선 셀룰러 모뎀(예를 들어, 무선 셀룰러 송수신기(204))에 통신 가능하게 결합된 하나 이상의 프로세서(예를 들어, 프로세서(302))를 포함할 수 있다. 프로세서(302)는 일부 실시 예에서, 도 3에서 무선 셀룰러 송수신기(204)와 분리된 것으로 도시되어 있지만, 프로세서(302)는 무선 셀룰러 송수신기(204)의 통합 프로세서 일 수 있다. 대안적으로, 프로세서(302)는 무선 송수신기(204)와 물리적으로 분리될 수 있다. 예를 들어 일부 실시 예에서, 프로세서(302)는 직렬 링크(304)를 통해 무선 셀룰러 송수신기(204)에 통신 가능하게 결합되도록 구성될 수 있다. 일부 실시 예에서, 무선 셀룰러 송수신기(204)는 배타적으로 "소유"될 수 있고 통신 장치(102)에 의해 제어될 수 있다. 예를 들어 전술한 바와 같이, 통신 장치(102)의 전력 소비는 무선 셀룰러 송수신기(204)의 듀티 사이클 및 온에어 동작에 적어도 부분적으로 의존할 수 있다. 예를 들어, 무선 셀룰러 송수신기가 활동중인 경우 전류 소모량이 몇 밀리 초 동안 일반적으로 0-250mA 범위에 있을 수 있지만, GSM 사용이 필요한 지역에서 전류 소모량이 거의 2A까지 스파이크될 수 있다. 이와 같이, 통신 장치(102)의 전압 입력 또는 "VIN"은 배터리 또는 짧은 스파이크가 가능한 다른 전원에 직접 연결될 수 있다.
일부 실시 예에서, 통신 장치는 무선 셀룰러 송수신기의 전력을 활성화 및 비활성화하도록 구성될 수 있다. 통신 장치(102)가 도 3에 도시된 바와 같이 무선 통신 장치와 분리된 프로세서를 포함하는 일 예에서, 통신 장치(102)는 무선 셀룰러 송수신기(204)의 전력 입력(예를 들어, "VIN"핀)을 선택적으로 활성화 및/또는 비활성화하도록 구성된 하나 이상의 핀(예를 들어, "MDM-EN"핀)에 결합된 전력 제어 회로(예를 들어, 전력 제어 회로(306))를 포함할 수 있다. 이러한 방식으로, 통신 장치(102)는 듀티 사이클 관리를 수행하기 위해 무선 셀룰러 송수신기/모뎀 전력을 제어할 수 있다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치의 전력을 활성화 및/또는 비활성화하도록 구성될 수 있다. 도 4의 예에서와 같이 일부 실시 예에서, 통신 장치(102)는 컴퓨팅 장치(104)의 전원 입력(예를 들어, "VIN" 핀)을 선택적으로 활성화하도록 구성된 하나 이상의 핀(예를 들어, "MCU-EN" 핀)에 연결된 전원 제어 회로(402)를 포함할 수 있다. 예를 들어, 통신 장치의 소프트웨어 스케줄링 기능은 컴퓨팅 장치의 듀티 사이클의 제어를 허용할 수 있다. 일부 실시 예에서, 컴퓨팅 장치 및 통신 장치는 컴퓨팅 장치(104)와 통신 장치(102) 사이의 링크(404)를 통한 주기적인 폴링에 대한 필요 없이 "딥 슬립" 모드에 들어가도록 구성될 수 있다. 예를 들어, 컴퓨팅 장치(104)는 추적을 위해 특정 데이터 객체 어레이를 표시하는 소프트웨어 옵션을 제공받을 수 있고 통신 장치(102)의 하나 이상의 핀(예를 들어, "WAKE-OUT" 핀)은 착신 추적 데이터가 클라우드 기반 서비스로부터 수신되어 컴퓨팅 장치가 처리할 수 있을 때 어써트될 수 있다. 데이터 객체 어레이는 사용자 정의 및/또는 자동(예를 들어, 디폴트 설정)으로 정의될 수 있다. 이 구성은 데이터가 클라우드 기반 서비스로부터 수신될 때 컴퓨팅 장치(104) 만 깨어남으로써 상당한 전력 절감을 가능하게 할 수 있다.
일부 실시 예에서, 통신 장치(102)는 직렬 링크(202)를 통해 오는 컴퓨팅 장치(104)로부터의 타이머 및/또는 명령을 위해 일반적으로 슬립 상태에서 대기할 수 있다. 일부 실시 예에서, 컴퓨팅 장치(104)는 컴퓨팅 장치(104)가 통신 장치(102)에 어떠한 명령도 발행하지 않을 것이라는 것을 알 때 하나 이상의 핀(예를 들어, "WAKE-IN" 핀)을 어써트할 수 있다. 이 구성에서, 직렬 링크(202)는 추가 전력을 절약하기 위해 비활성화될 수 있다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치로부터 적어도 하나의 데이터 객체를 수신하도록 구성될 수 있다. 데이터 객체는 일반적으로 컴퓨팅 장치와 정보를 전달하도록 구성된 데이터 패킷을 포함할 수 있다. 일부 실시 예에서, 아래에서 더 상세히 논의되는 바와 같이, 컴퓨팅 장치(104)는 클라우드 기반 서비스를 위한 데이터를 포함하지 않지만 통신 장치(102)와 클라우드 기반 서비스(108) 간의 연결을 구성하기 위해 사용될 수 있는 통신 세션 데이터 객체를 제공할 수 있다. 다시 도 1의 예를 참조하여 일부 실시 예에서, 컴퓨팅 장치(104)는 (예를 들어, 직렬 링크(202)를 통해) 적어도 하나의 데이터 객체를 통신 장치(102)로 전송할 수 있다. 일부 실시 예에서, 컴퓨팅 장치(104)는 클라우드 기반 서비스에 저장될 데이터를 생성하도록 구성된 하나 이상의 센서 및/또는 제어를 포함할 수 있다.
일부 실시 예에서, 적어도 하나의 데이터 객체는 자바스크립트 객체 표기법 (JavaScript Object Notation: JSON) 객체일 수 있다. 당 업계에 알려진 바와 같이, JSON은 사람이 읽을 수 있는 텍스트를 사용하여 속성-값 쌍 및 어레이 데이터 유형 (또는 기타 직렬화 가능한 값)으로 구성된 데이터 객체를 전송하는 개방형 표준 파일 형식이다. 일부 실시 예에서, JSON 객체는 하나 이상의 JSON 요청 및/또는 하나 이상의 JSON 응답을 포함할 수 있다. 이하에서 보다 상세히 논의되는 바와 같이, 컴퓨팅 장치에 의해 생성된 데이터는 클라우드 기반 서비스에 저장하기 위해 데이터 객체를 포함하는 JSON 요청으로 통신 장치에 전송될 수 있다. 예를 들어, 컴퓨팅 장치(104)는 하나 이상의 속성 (예를 들어, 데이터 객체가 생성된 시간, 생성된 위치, 데이터 객체를 생성한 컴퓨팅 장치 등)을 갖는 선택적 페이로드 및 선택적 본체의 조합으로서 데이터를 캡슐화하도록 구성될 수 있다. 페이로드는 일반적으로, 예를 들어, 임의의 애플리케이션 데이터를 포함하는 base64 인코딩 JSON 문자열 (예를 들어, "payload":"YWJHhLW0tLW0tLW0tLW0tLGt5eg==")을 포함할 수 있다. 본문은 일반적으로 임의의 애플리케이션/클라우드 기반 서비스 데이터를 포함하는 JSON 객체를 포함할 수 있다 (예를 들어, "body":{"temp":34.2, "alert":true, "particle":{"mass":[5.1,12.32],"count"]}}). 위의 예가 JSON 객체를 포함하지만, 다른 데이터 객체 형식이 가능하고 본 개시의 범위 내에 있다는 것을 이해할 수 있을 것이다.
일부 실시 예에서, 통신 장치(102)는 2 개 이상의 JSON 요청으로 데이터 객체를 클라우드 기반 서비스에 제공하도록 구성될 수 있다. 일례로, 데이터 객체는 단 두 개의 JSON 요청으로 클라우드 기반 서비스에 제공될 수 있다. 예를 들어, 컴퓨팅 장치(104)가 시작될 때, 통신 장치(102)는 직렬 포트를 통해 (예를 들어, 직렬 링크(202)를 통해) JSON 요청을 전송하므로, 1) 이 컴퓨팅 장치에 대한 식별자를 구성하여 클라우드 기반 서비스가 어떤 컴퓨팅 장치가 데이터를 제공하는지 알 수 있도록 하고, 및 2) 데이터가 다른 스테이징 데이터와 함께 일괄적으로 클라우드 기반 서비스로 전송되기 전에 데이터가 통신 장치에 머무를 수 있는 최대 시간을 구성한다. 이들 JSON 데이터 객체 또는 명령의 예는 예를 들어 공기 습도를 모니터링하도록 구성된 컴퓨팅 장치의 예와 함께 아래에 나와 있다.
Figure pct00001
위에 표시된 바와 같이, "loop()" 명령은 추가 설정없이, 컴퓨팅 장치가 간단한 JSON 명령을 발행하도록 허용하여, 통신 장치에 저장된 유사 데이터(예를 들어, 데이터 객체 어레이) 모음에 JSON 데이터 객체를 추가할 수 있다. 이 예에서 "air.qo"의 ".qo"는 "outbound queue"를 의미하고 "air"는 사용자 정의된 이름일 수 있다. 위의 예와 일부 실시 예에 나타난 바와 같이, 데이터 객체의 "본문"은 스키마 제약없이 클라우드 기반 서비스에 의해 해석될 수 있는 완전 자유 형식의 JSON일 수 있다. 위의 예는 컴퓨팅 장치가 시작될 때 컴퓨팅 장치로부터 데이터 객체를 수신하는 것을 설명하지만, 컴퓨팅 장치의 동작 중 어느 지점에서나 데이터 객체가 컴퓨팅 장치로부터 수신될 수 있다는 것을 이해할 수 있을 것이다.
일부 실시 예에서, 데이터 객체는 컴퓨팅 장치, 통신 장치, 통신 허브 및/또는 클라우드 기반 서비스에 관한 정보를 제공하도록 구성될 수 있다. 예를 들어, 데이터 객체는 서비스 구성 환경 변수를 요청 및 반환하고, 현재 서비스 구성 매개 변수를 반환하고, 통신 장치가 연결되었는지, 분리되었는지 또는 중간 상태인지 표시하기 위해, 데이터 객체의 동기화를 수동으로 초기화하고, 마지막 동기화에 대한 정보를 표시하고, 서비스 관리자에 또는 서비스 관리자로부터 "라이브" 메시지를 전송하는 등을 위해서 구성될 수 있다.
도 5의 예를 또한 참조하며 일부 실시 예에서, 통신 장치는 수신된 적어도 하나의 데이터 객체에 적어도 부분적으로 기초하여 통신 장치의 메모리에 저장된 하나 이상의 데이터 객체의 적어도 하나의 데이터 객체 어레이를 수정하도록 구성될 수 있다. 데이터 객체 어레이는 일반적으로 첫 번째 데이터 객체가 추가될 때 자동으로 생성되는 데이터 객체 어레이를 포함하는 영구 파일을 포함할 수 있다. 따라서 일부 실시 예에서, 데이터 객체 어레이는 데이터 객체가 통신 장치(102)에 의해 수신될 때 생성될 수 있다. 일부 실시 예에서, 데이터 객체 어레이에는 이름이 할당될 수 있다. 이들 이름은 임의적일 수 있고/있거나 데이터 객체 어레이의 데이터 객체(예를 들어, 특정 센서와 연관된 데이터 객체 등)의 생성과 연관될 수 있다. 도 5에 도시된 바와 같이, 데이터 객체 어레이 세트(예를 들어, 데이터 객체 어레이 세트(502))는 통신 장치(102)의 메모리 내에 저장될 수 있다. 일부 실시 예에서, 데이터 객체 어레이의 세트는 적어도 하나의 데이터 객체 어레이(예를 들어, 데이터 객체 어레이(504, 506, 508))를 포함할 수 있다. 일부 실시 예에서, 적어도 하나의 데이터 객체 어레이 각각은 하나 이상의 데이터 객체(예를 들어, 데이터 객체(510, 512, 514, 516, 518, 520, 522, 524, 526)를 포함할 수 있다. 이하에서 더 상세히 논의되는 바와 같이, 통신 허브(106)는 유사하게 적어도 하나의 데이터 객체 어레이(예를 들어, 데이터 객체 어레이(530, 532, 534))를 포함하는 데이터 객체 어레이 세트(예를 들어, 데이터 객체 어레이(528))를 포함할 수 있다. 이 예에서, 데이터 객체 어레이(530)는 데이터 객체(436, 438, 540)를 포함할 수 있고; 데이터 객체 어레이(532)는 데이터 객체(542, 544, 546)를 포함할 수 있고; 데이터 객체 어레이(534)는 데이터 객체(548, 550, 552)를 포함할 수 있다.
일부 실시 예에서, 데이터 객체 어레이(예를 들어, 데이터 객체(110))는 데이터 객체의 특정 속성을 결정하는 데이터 객체 확장을 포함할 수 있다. 예를 들어, 하나의 데이터 객체 확장자(예를 들어, ".db")는 데이터 객체가 클라우드 기반 서비스와 통신 장치간에 완전히 복제될 수 있는 데이터베이스 객체임을 나타낼 수 있다. 일부 실시 예에서, 데이터베이스 확장은 구성 및 상태 정보를 유지하기 위해 일반적으로 사용될 수 있다. 다른 예에서, 데이터 객체 확장자(예를 들어, ".qo")는 데이터 객체가 통신 장치(102)로부터 통신 허브(106)로만 전송되는 아웃바운드 전용 데이터 객체임을 나타낼 수 있다. 이러한 데이터 객체가 통신 허브(106)로 전송되면, 이들은 통신 장치(102) 내의 데이터 객체 어레이로부터 삭제될 수 있다. 다른 예에서, 데이터 객체 확장자(예를 들어, ".qi")은 데이터 객체가 통신 허브(106)로부터 통신 장치(102)로만 전송되는 인바운드 전용 데이터 객체임을 나타낼 수 있다. 이러한 데이터 객체가 통신 장치(102)로 전송되면, 이들은 통신 허브(106) 내의 데이터 객체 어레이로부터 삭제될 수 있다. 여러 예시적인 데이터 객체 확장자가 위에서 설명되었지만, 본 개시의 범위 내에서 다른 데이터 객체 확장자가 가능하다는 것을 이해할 수 있을 것이다.
일부 실시 예에서, 데이터 객체 확장자(예를 들어, ".dbs", ".qos", ".qis")의 보안 변형물은 데이터 객체가 암호화되어야 함을 나타낼 수 있다. 일부 실시 예에서, 데이터 객체는 일반적으로 대역폭을 줄이는 방법으로 암호화없이 전송될 수 있다. 그러나, 더 민감한 데이터 객체의 경우, 이러한 보안 데이터 객체 확장은 데이터 객체가 TLS 암호화 통신 세션에서 전송되도록 할 수 있다.
다시 도 5의 예를 참조하며 일부 실시 예에서, 데이터 객체 어레이(504)는 데이터 객체(예를 들어, 데이터 객체(510, 512, 514))를 포함할 수 있고 양방향 확장과 연관될 수 있다. 데이터 객체 어레이(506)는 데이터 객체(예를 들어, 데이터 객체(516, 518, 520))를 포함할 수 있고 아웃바운드 전용 확장과 연관될 수 있다. 이 예에서, 데이터 객체 어레이(506)는 데이터 객체(516, 518, 520)를 통신 허브(506)로 전송하고 데이터 객체 어레이(506)로부터 데이터 객체를 삭제하도록 구성된 아웃바운드 전용 큐일 수 있다. 일부 실시 예에서, 데이터 객체 어레이(508)는 인바운드 전용 확장을 갖는 데이터 객체(예를 들어, 데이터 객체(522, 524, 526))와 연관될 수 있다. 이 예에서, 데이터 객체 어레이(508)는 통신 허브(106)로부터 전송되고 통신 허브(106)의 데이터 객체 어레이로부터 삭제된 데이터 객체(522, 524, 526)를 수신하도록 구성될 수 있다. 이러한 방식으로, 통신 장치(102)는 인터넷 기반 보안 통신 허브(106)와 통합될 수 있는 분산 복제된 시공간 데이터베이스를 갖는 데이터 시스템 인 패키지(DSiP)일 수 있다. 특정 데이터 객체 확장자와 관련된 세 개의 데이터 객체 어레이에 대한 예제가 제공되었지만, 임의의 수의 데이터 객체 어레이가 본 개시 내용의 범위 내에서 사용될 수 있고/있거나 데이터 객체 어레이가 데이터 객체 확장자로 제한될 필요가 없다는 것이 이해될 것이다. 예를 들어, 데이터 객체 어레이는 다양한 컴퓨팅 장치 센서, 데이터 객체의 유형 등에 대해 정의될 수 있다.
일부 실시 예에서, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 데이터 객체 어레이의 데이터 객체를 추가, 삭제 및 변경하는 단계 중 하나 이상을 포함할 수 있다. 예를 들어 데이터 객체가 새 데이터 객체인 경우, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 데이터 객체 어레이에 새로운 데이터 객체를 추가하는 단계를 포함할 수 있다. 데이터 객체가 기존 데이터 객체 삭제를 포함하는 경우, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 데이터 객체 어레이에서 데이터 객체를 삭제하는 단계를 포함할 수 있다. 데이터 객체 어레이의 데이터 객체가 업데이트되거나 변경되면, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 데이터 객체를 업데이트하거나 변경하는 단계를 포함할 수 있다.
일부 실시 예에서, 데이터 객체는 추가 메타 데이터와 함께 통신 장치의 메모리에 저장된 적어도 하나의 데이터 객체 어레이에 추가되거나 업데이트될 수 있다. 예를 들어, 데이터 객체가 예를 들어 "note.add" 요청을 사용하여 컴퓨팅 장치(104)로부터 수신될 때, 데이터 객체는 통신 장치의 하드웨어로부터 이용 가능하다면, 예를 들어 시간 및 위치 정보로 자동으로 증가될 수 있다. 유사하게, 기존 데이터 객체를 업데이트하거나 변경하는 데이터 객체가 수신될 때, 데이터 객체는 통신 장치의 하드웨어에서 사용 가능한 경우 시간 및 위치 정보와 같이 자동으로 증가될 수 있다. 다른 메타 데이터가 본 개시의 범위 내에서 데이터 객체에 추가될 수 있다는 것이 이해될 것이다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치와 관련하여 무선 셀룰러 송수신기를 통해 수정된 적어도 하나의 데이터 객체 어레이의 적어도 일부를 클라우드 기반 서비스로 비동기 적으로 전송하도록 구성될 수 있다. 본 명세서에서 사용된 바와 같이, "비동기적으로, 컴퓨팅 장치와 관련하여, 전송하는 단계"는 컴퓨팅 장치와 독립적으로 그리고 컴퓨팅 장치의 개입없이 데이터를 전송하는 단계를 포함할 수 있다. 위에서 논의된 바와 같이, 통신 장치(102)로부터의 적어도 하나의 데이터 객체 어레이의 적어도 일부의 전송은 컴퓨팅 장치(104)에 대해 비동기적일 수 있다. 일부 실시 예에서, 통신 장치(102)에 의한 데이터 객체의 비동기 전송은 통신 장치가 데이터 객체를 전송할 때 컴퓨팅 장치(104)가 오프라인 또는 "수면" 상태가 되도록 할 수 있다.
예를 들어, 컴퓨팅 장치(104)가 미리 정의된 빈도로 (예를 들어, 매시간) 클라우드 기반 서비스(108)에 데이터 객체(예를 들어, 기온 및 습도 판독 값)를 제공하도록 구성되었다고 가정한다. 컴퓨팅 장치(104)는 미리 정의된 빈도로 통신 장치(102)에 데이터 객체를 제공할 수 있다. 그러나, 통신 장치(102)는 컴퓨팅 장치(104)에 대해 비동기적으로 통신 허브(106)에 (예를 들어, 데이터 객체 어레이에 대한 수정의 형태의) 데이터 객체를 전송하도록 구성될 수 있다. 전술한 바와 같이, 통신 장치(102)에 의한 전송은 컴퓨팅 장치(104)로부터 독립적이며 컴퓨팅 장치(104)의 개입없이 이루어질 수 있다. 이 예에서, 통신 장치(102)는 상이한 미리 정의된 빈도로 (예를 들어, 하루에 한 번) 데이터 객체를 전송할 수 있다. 이러한 방식으로, 컴퓨팅 장치(104)는 통신 장치(102)를 관리하거나 제어하지 않고 미리 정의된 빈도로 데이터 객체를 제공할 수 있다 (예를 들어, 데이터 객체 어레이의 데이터 객체로 수정).
이러한 방식으로 그리고 일부 실시 예에서, 컴퓨팅 장치(104)는 통신 장치(104)에 데이터를 쉽게 제공할 수 있고, 통신 장치(102)는 컴퓨팅 장치(104)와 독립적으로 데이터를 클라우드 기반 서비스(108)로 전송할 수 있다. 아래에서 더 상세히 논의되는 바와 같이, 통신 장치 (104)에 의한 데이터 객체의 비동기식 전송은 통신 장치(102) 및/또는 컴퓨팅 장치(104)의 전력을 보존하고하거나 컴퓨팅 장치(104)의 개입없이 통신 장치 (102)가 데이터 객체를 제공하도록 허용할 수 있다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치로부터 통신 정책을 수신하도록 구성될 수 있다. 통신 정책은 일반적으로 전력 보존, 네트워크 대역폭 보존, 데이터 객체 보호 및 다른 데이터 객체에 대한 일부 데이터 객체의 우선 순위 지정 중 하나 이상을 포함하는, 통신 장치에 대한 하나 이상의 통신 세션 기준일 수 있다. 예를 들어, 사용자가 더 긴 작동 수명을 위해 컴퓨팅 장치 및/또는 통신 장치의 전력 보존에 우선 순위를 지정하기를 원한다고 가정한다. 이 예에서, 통신 정책은 통신 장치(104)가 데이터 객체를 송신 또는 수신하는 빈도를 정의할 수 있다. 아래에서 더 상세히 논의되는 바와 같이, 이것은 무선 셀룰러 송수신기(204)가 얼마나 자주(예를 들어, 통신 장치(102)에 의해) 전력이 공급되는지 및/또는 GNSS 또는 GPS 안테나에 얼마나 자주 전력이 공급되는지(예를 들어, 통신 장치(102)에 의해) 영향을 미칠 수 있다. 다른 예에서 사용자가 데이터 객체 통신의 보안에 우선 순위를 지정하기를 원한다고 가정한다. 이 예에서 그리고 아래에서 더 상세히 논의되는 바와 같이, 통신 정책은 데이터 객체가 통신 장치(102)의 보안 요소를 사용하여 압축 및/또는 암호화되는 시기를 정의할 수 있다. 다른 예에서, 사용자가 통신 장치(102)의 위치를 포함하는 메타 데이터로 데이터 객체에 태그를 지정하기를 원한다고 가정한다(예를 들어, 위치가 변경되는 통신 장치의 예에서). 이 예에서 그리고 아래에서 더 상세히 논의되는 바와 같이, 통신 정책은 특정 시간에 통신 장치(102)의 위치를 포함하는 메타 데이터로 데이터 객체가 태그 지정되는 시기를 정의할 수 있다. 통신 우선 순위의 세 가지 예를 논의했지만, 다른 순위가 가능하고 본 개시 내용의 범위(예를 들어, 통신되는 데이터의 양, 특정 센서로부터의 특정 데이터 제공 등) 내에서 가능하다는 것이 인식될 것이다.
일부 실시 예에서, 컴퓨팅 장치(102)로부터 수신된 적어도 하나의 데이터 객체는 통신 정책을 정의할 수 있다. 예를 들어 및 일부 실시 예에서, 데이터 객체는 아래 예시적인 요청에 도시된 바와 같이 통신 장치 셀룰러 연결을 설정하도록 구성된 요청을 포함할 수 있다:
Figure pct00002
일부 실시 예에서, 통신 장치는 컴퓨팅 장치로부터 수신된 통신 정책에 적어도 부분적으로 기초하여, 무선 셀룰러 송수신기를 통해 데이터 객체 어레이의 적어도 일부를 클라우드 기반 서비스로 전송하기 위해 및/또는 무선 셀룰러 송수신기를 통해 클라우드 기반 서비스로부터 데이터 객체의 적어도 일부를 수신하기 위해 일정을 생성하도록 구성될 수 있다. 예를 들어, 통신 장치(102)는 자신의 휴리스틱스를 사용하여 필요하다고 간주되는 데이터 객체를 양방향으로 동기화하는 지점에서 통신 허브(106)에 대한 연결을 스케줄링할 수 있다. 이하에서 더 상세히 논의되는 바와 같이, 데이터 객체는 통신 장치 스토리지와 통신 허브 스토리지 사이의 데이터 객체 어레이 스테이징 영역으로부터 이동 및/또는 복제될 수 있다.
일 예에서, 통신 장치(102)는 무선 셀룰러 송수신기(204)를 통한 셀룰러 통신이 비교적 많은 양의 전력을 필요로 할 수 있으므로 셀룰러 네트워크와의 통신을 설정하는 시기 및 빈도를 결정하는 스케줄을 관리할 수 있다. 이 예에서, 통신 정책은 전력 보존을 우선적으로 처리할 수 있고, 통신 장치(102)는 데이터 객체/데이터 객체 어레이에 대한 수정을 손신 및/또는 수신하는 시기 및 빈도를 결정하는 스케줄을 관리할 수 있다.
도 6의 예를 또한 참조하며, 일부 실시 예에서, 통신 장치(102)는 컴퓨팅 장치(104)와 관련하여 무선 셀룰러 송수신기(204)를 통해 하나 이상의 데이터 객체를 통신 허브(106)로 비동기적으로 전송하도록 구성될 수 있다. 위에서 논의된 바와 같이, 통신 허브(106)는 유사하게 적어도 하나의 데이터 객체 어레이(예를 들어, 데이터 객체 어레이(530, 532, 534))를 포함하는 데이터 객체 어레이의 세트(예를 들어, 데이터 객체 어레이(528))를 포함할 수 있다. 이 예에서, 데이터 객체 어레이(530)는 데이터 객체(536, 538, 540)를 포함하고; 데이터 객체 어레이(532)는 데이터 객체(542, 544, 546)를 포함할 수 있고; 데이터 객체 어레이(534)는 데이터 객체(548, 550, 552)를 포함할 수 있다. 3 개의 데이터 객체 어레이가 논의되었지만, 임의의 수의 데이터 객체 어레이가 본 개시의 범위 내에서 통신 허브(106) 내에 저장될 수 있다는 것을 이해할 것이다.
일부 실시 예에서, 통신 장치(102)는 컴퓨팅 장치(104)에 대해 비동기적으로 통신 허브(106)로 전송될 수 있는 데이터 객체(510) 및 데이터 객체(516)를 각각 갖는 데이터 객체 어레이(504) 및 데이터 객체 어레이(506)를 포함할 수 있다. 이 예에서, 데이터 객체(510)는 데이터 객체(510)가 데이터 객체(536)로서 데이터 객체 어레이(530)에서 복제되도록 양방향 복제된 데이터 객체일 수 있다. 또한 데이터 객체(516)는 아웃바운드 전용 데이터 객체일 수 있으므로, 데이터 객체(516)가 통신 허브(106)의 데이터 객체 어레이(532)로 전송될 때, 데이터 객체(516)는 데이터 객체(542)로서 데이터 객체 어레이(532)에 저장될 수 있고 데이터 객체(516)는 데이터 객체 어레이(506)로부터 삭제될 수 있다(예를 들어, 데이터 객체(516) 주위에 점선으로 나타낸 바와 같이). 통신 허브(106)로 전송되는 두 데이터 객체의 예가 설명되었지만, 임의의 수의 데이터 객체 및/또는 데이터 객체 어레이(예를 들어, 데이터 객체 어레이의 일부 및/또는 전체)가 본 개시의 범위 내에서 통신 허브(106)로 전송될 수 있다는 것이 이해될 것이다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치와 관련하여, 무선 셀룰러 송수신기를 통해 클라우드 기반 서비스로부터 적어도 하나의 데이터 객체 어레이의 적어도 일부를 비동기적으로 수신하도록 구성될 수 있다. 본 명세서에서 사용되는 바와 같이, "비동기적으로, 컴퓨팅 장치와 관련하여, 수신하는 단계"는 컴퓨팅 장치와 독립적으로 그리고 컴퓨팅 장치의 개입없이 데이터를 수신하는 단계를 포함할 수 있다. 예를 들어, 통신 허브(106)가 미리 정의된 빈도로 (예를 들어, 매시간) 날씨 데이터를 제공하도록 구성된다고 가정하자. 아래에서 더 상세히 논의되는 바와 같이, 통신 허브(106)는 미리 정의된 빈도로 통신 장치(102)(예를 들어, 무선 셀룰러 송수신기(204))에 데이터 객체를 전송하거나 제공할 수 있다. 그러나, 통신 장치(102)는 컴퓨팅 장치(104)에 대해 비동기적으로 통신 허브(106)로부터 데이터 객체를 수신하도록 구성될 수 있다. 전술한 바와 같이, 통신 장치(102)에 의한 데이터 객체의 수신은 컴퓨팅 장치(104)와 독립적인 것으로 컴퓨팅 장치(104)의 개입없이 이루어질 수 있다. 이 예에서, 컴퓨팅 장치(104)는 서로 다른 미리 정의된 빈도(예를 들어, 하루에 한 번)로 통신 장치(102)로부터 데이터 객체를 수신할 수 있다. 이러한 방식으로, 컴퓨팅 장치(104)는 통신 장치(102)를 관리하거나 제어하지 않고 미리 정의된 빈도로 데이터 객체를 수신할 수 있다.
일부 실시 예에서, 컴퓨팅 장치(104)는 통신 장치(104)로부터 데이터를 수신할 수 있고 통신 장치(102)는 컴퓨팅 장치(104)와 독립적으로 클라우드 기반 서비스(108)로부터 데이터를 수신할 수 있다. 아래에서 자세히 설명하겠지만, 통신 장치(104)에 의한 데이터 객체 어레이의 비동기식 수신/데이터 객체 어레이의 수정은 통신 장치(102)로 하여금 통신 장치(102) 및/또는 컴퓨팅 장치(104)의 전력을 보존하고/하거나 컴퓨팅 장치(104)의 개입을 필요로 하지 않고 데이터 객체를 수신하도록 할 수 있다. 일부 실시 예에서, 통신 장치(102)에 의한 데이터 객체의 비동기 수신은 통신 장치(104)로 하여금 통신 장치가 데이터 객체를 수신할 때 오프라인 또는 "수면" 상태가 되도록 할 수 있다. 전술한 바와 같이, 통신 장치(102)는 컴퓨팅 장치(104)가 데이터의 수신시 통신 장치(102)로부터 데이터를 요청할 수 있도록 컴퓨팅 장치(104)를 "깨우기"할 신호를 컴퓨팅 장치(104)에 제공할 수 있다. 이러한 방식으로, 컴퓨팅 장치(104)는 통신 장치(102)에 의한 데이터 객체의 수신에 관여하지 않을 수 있다.
일부 실시 예에서, 통신 장치(102)는 적어도 부분적으로, 수신된 적어도 하나의 데이터 객체 어레이의 적어도 일부에 기초하여 컴퓨팅 장치의 메모리에 저장된 적어도 하나의 데이터 객체 어레이의 하나 이상의 데이터 객체를 수정할 수 있다. 일부 실시 예에서, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 데이터 객체 어레이의 데이터 객체를 추가, 삭제 및 변경하는 단계 중 하나 이상을 포함할 수 있다. 예를 들어, 데이터 객체가 새로운 데이터 객체인 경우, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 새로운 데이터 객체를 데이터 객체 어레이에 추가하는 단계를 포함할 수 있다. 데이터 객체가 기존 데이터 객체 삭제를 포함하는 경우, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 데이터 객체 어레이에서 데이터 객체를 삭제하는 단계를 포함할 수 있다. 데이터 객체 어레이의 데이터 객체가 업데이트되거나 변경되는 경우, 적어도 하나의 데이터 객체 어레이를 수정하는 단계는 데이터 객체를 업데이트하거나 변경하는 단계를 포함할 수 있다.
위에서 논의된 바와 같이 일부 실시 예에서, 데이터 객체는 클라우드 기반 서비스와 컴퓨팅 장치 사이에서 양방향으로 통신될 수 있다. 일부 실시 예에서, 무선 셀룰러 송수신기(204)는 통신 허브(106)로부터 하나 이상의 데이터 객체를 수신할 수 있고 직렬 링크(304)를 통해 하나 이상의 수신된 데이터 객체를 통신 장치(102)에 전달할 수 있다. 위에서 논의된 바와 같이 일부 실시 예에서, 통신 장치는 적어도 부분적으로, 수신된 적어도 하나의 데이터 객체 어레이의 적어도 일부에 기초하여 컴퓨팅 장치의 메모리에 저장된 적어도 하나의 데이터 객체 어레이의 하나 이상의 데이터 객체를 수정하도록 구성될 수 있다. 또한 도 6의 예를 참조하며, 일부 실시 예에서, 통신 허브(106)는 통신 장치(102)로 전송될 수 있는 데이터 객체(552)를 갖는 데이터 객체 어레이(534)를 포함할 수 있다. 전술한 바와 같이, 통신 장치(102)는 인터넷 기반 보안 통신 허브(106)와 통합될 수 있는 분산 복제된 시공간 데이터베이스를 갖는 데이터 시스템 인 패키지(DSiP)일 수 있다. 이 예에서 데이터 객체(552)는 인바운드 전용 데이터 객체일 수 있다. 데이터 객체(552)가 통신 장치(102)의 데이터 객체 어레이(508)로 전송될 때, 데이터 객체(552)는 데이터 객체(526)로서 데이터 객체 어레이(508)에 저장될 수 있고 데이터 객체(552)는 데이터 객체 어레이(534)에서 삭제될 수 있다(예를 들어, 데이터 객체(552) 주위에 점선으로 표시됨). 통신 허브(106)로 전송되는 하나의 데이터 객체의 예가 설명되었지만, 임의의 수의 데이터 객체 및/또는 데이터 객체 어레이(예를 들어, 데이터 객체 어레이의 일부 및/또는 전체)가 본 개시 내용의 범위 내에서 통신 장치(102)에 의해 수신될 수 있다는 것이 이해될 것이다.
일부 실시 예에서, 통신 장치는 클라우드 기반 서비스와의 통신 장치의 통신과 관련하여 적어도 하나의 데이터 객체 어레이의 하나 이상의 수정된 데이터 객체를 컴퓨팅 장치에 사용할 수 있도록 비동기식으로 구성될 수 있다. 본 명세서에서 사용되는 바와 같이, "클라우드 기반 서비스와 통신 장치의 통신과 관련하여, 적어도 하나의 데이터 객체 어레이의 하나 이상의 수정된 데이터 객체를 컴퓨팅 장치가 사용할 수 있도록 하는 단계"는, 클라우드 기반 서비스로부터 수신된 데이터 객체(예를 들어, 적어도 하나의 데이터 객체 어레이의 수신된 부분에 기초한 수정된 데이터 객체)를 통신 장치와 클라우드 기반 서비스와의 통신과 독립적으로 컴퓨팅 장치에서 사용할 수 있도록 하는 단계를 포함할 수 있다. 다시 도 2의 예를 참조하여 일부 실시 예에서, 통신 장치(102)는 (예를 들어, 위에서 논의된 바와 같은 통신 장치(102)의 메모리에서) 통신 장치(102) 상에 적어도 하나의 데이터 객체 어레이의 적어도 일부를 스테이징하고 적어도 하나의 데이터 객체 어레이의 적어도 일부에 대한 요청을 컴퓨팅 장치(104)에 의해 수신함으로써 적어도 하나의 데이터 객체 어레이의 적어도 일부를 컴퓨팅 장치(104)가 이용 가능하게 할 수 있다. 이러한 방식으로, 컴퓨팅 장치(104)는 적어도 하나의 데이터 객체 어레이의 적어도 일부를(직렬 링크(202)를 통해) 요청할 수 있다. 따라서, 통신 장치(104)는 클라우드 기반 서비스(108)과의 통신과 상관 없이 수정된 데이터 객체를 컴퓨팅 장치(102)가 이용 가능하게 할 수 있다.
다시 도 4의 예를 참조하여 일부 실시 예에서, 통신 장치는 무선 셀룰러 송수신기를 통해 통신 장치의 메모리에 저장하기 위한 하나 이상의 데이터 객체 형태의 펌웨어 데이터를 수신하도록 구성될 수 있다. 일부 실시 예에서, 컴퓨팅 장치(104)는 통신 장치(102)를 통해 펌웨어 업데이트를 수신할 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 컴퓨팅 장치(104)가 2-와이어 직렬 와이어 디버그(Serial Wire Debug; SWD) 인터페이스(예를 들어, SWD 인터페이스(306))를 포함한다고 가정한다. 일부 실시 예에서, SWD 인터페이스(406)는 무엇보다도 컴퓨팅 장치(예를 들어, 마이크로 컨트롤러) 펌웨어의 리플래시를 허용할 수 있다. 이 예에서, 개발자는 컴퓨팅 장치의 메모리가 아닌 통신 장치의 메모리(예를 들어, 플래시 메모리)에 영구 펌웨어 데이터(예를 들어, 구성 데이터)를 저장하도록 선택할 수 있다. 그렇게 함으로써, 승인된 개발자는 무선 셀룰러 송수신기(204)를 통해 새로운 펌웨어가 수신되고 통신 장치(102)로 다운로드되도록 할 수 있다. 일부 실시 예에서, 다른 펌웨어 데이터 또는 펌웨어 이미지(예를 들어, "마지막으로 알려진 양호한 펌웨어")가 통신 장치에 다운로드될 수 있다.
이 예를 계속하여, 통신 장치(102)는 수신된 펌웨어 데이터를 설치하기 위해 수신된 펌웨어 데이터의 적어도 일부를 컴퓨팅 장치로 전송하기 위해 컴퓨팅 장치로부터 (예를 들어, SWD 인터페이스(406)를 통해) 하나 이상의 명령을 수신할 수 있다. 일부 실시 예에서, 통신 장치(102)는 컴퓨팅 장치(104)의 펌웨어를 완전히 리플래시할 수 있다. 도 4는 컴퓨팅 장치상의 SWD 핀을 갖는 예를 도시하지만, 컴퓨팅 장치(104)의 펌웨어를 리플래시하기 위해 다른 구성이 사용될 수 있음을 이해할 것이다. 예를 들어, 일부 실시 예에서, 펌웨어를 리플래시하는 단계는 통신 장치(102)의 하나 이상의 핀 (예를 들어, "RESET" 핀)을 통해 컴퓨팅 장치(104)를 부팅하는 동안 컴퓨팅 장치(104)에서 하나 이상의 핀(예를 들어, GPIO-00 핀(미도시))을 로우 상태로 유지함으로써 수행될 수 있다. 펌웨어는 직렬 링크(202)를 사용하여 컴퓨팅 장치(104)로 전송될 수 있다.
일부 실시 예에서, 통신 장치는 글로벌 내비게이션 위성 시스템(GNSS) 시스템을 포함할 수 있고 GNSS 안테나에 통신 가능하게 결합되도록 구성될 수 있다. 당 업계에서 알려진 바와 같이, GNSS 수신기(GNSS 수신기(212))는 일반적으로 (수신기의) 위치, 속도 및 시간을 제공하기 위해 GNSS 위성 별자리로부터 신호를 수신하고 디지털 방식으로 처리하는 전자 장치 또는 모듈을 포함할 수 있다. 일부 실시 예에서, 통신 장치(102)에 의해 전송되는 데이터 객체는 시간 및 위치 메타 데이터로 태그될 수 있다. 일부 실시 예에서, 위치 정보는 GNSS 수신기를 사용하여 획득될 수 있는 반면, 시간은 셀룰러 네트워크 및 GNSS 수신기 모두에서 이용 가능할 수 있다. 일부 실시 예에서, 통신 장치(102)는 가속도계가 움직임을 검출할 때 GNSS 안테나를 샘플링하도록 구성된 가속도계(가속도계(214))를 포함할 수 있다. 일부 실시 예에서, 그리고 에너지 사용이 이동하지 않는 통신 장치에 대해 최적화될 수 있도록, 통신 장치(102)는 GNSS 안테나의 사용이 필요하지 않은 시기를 결정하기 위해 MEMS 기반 가속도계(예를 들어, 가속도계(214))를 가질 수 있다. 이러한 방식으로, GNSS 안테나(예를 들어, GNSS 안테나(208))는 움직임이 가속도계(예를 들어, 가속도계(214))에 의해 검출될 때 활성화될 수 있고 그렇지 않으면 전력을 보존하기 위해 비활성화될 수 있다.
일부 실시 예에서, 통신 장치는 하나 이상의 데이터 객체에 메타 데이터를 추가하도록 구성될 수 있으며, 메타 데이터는 통신 장치의 시간 및 위치 중 하나 이상을 포함한다. 예를 들어, 통신 장치(102)는 메타 데이터로 데이터 객체를 태그하도록 구성될 수 있다. 메타 데이터는 GNSS 안테나(208)를 사용하여 결정된 통신 장치의 시간 및/또는 위치를 포함할 수 있다. 일부 실시 예에서, 컴퓨팅 장치(102)는 (예를 들어, 컴퓨팅 장치(104) 또는 통신 허브(106)로부터) 데이터 객체가 수신될 때 시간 정보 메타 데이터로 데이터 객체에 태그를 지정할 수 있다.
일부 실시 예에서, 통신 장치 에지 핀 중 하나는 임의의 활동 GNSS/GPS 안테나에 의해 요구되는 대로 설계자로 하여금 GPS/GNSS의 수신기 u.fl 커넥터에 바이어스 전압을 공급하도록 허용할 수 있다. 편의상, 3.8V 전원은 그 목적으로 사용될 수 있는 통신 장치(102)에 의해 제공될 수 있다. 일부 실시 예에서, GNSS 안테나(예를 들어, GNSS 안테나(208))가 통신 장치(102)에 통신 가능하게 결합되는 경우, 활동/수동 스위치는 사용자가 통신 장치(102)에 결합되는 안테나 유형을 선택할 수 있도록 할 수 있다. 활동 상태인 경우, 안테나의 통합 LNA에 전력을 공급하기 위해 3.8V가 바이어스 전압으로 제공될 수 있다. 특정 전압 값을 위에서 언급했지만, GNSS 안테나에 필요한 임의의 전압이 본 개시의 범위 내에서 제공될 수 있다는 것이 이해될 것이다.
일부 실시 예에서, 제조시에, 통신 장치의 비 휘발성 메모리는 하나 이상의 보안 키 및 통신 장치의 보안 인증 및 클라우드 기반 서비스와의 통신을 가능하게하는 디지털 서명된 인증서를 포함하도록 구성된다. 예를 들어 위에서 논의된 바와 같이, 현대적인 클라우드 기반 서비스는 클라우드 및 통신 장치(102)가 어느 쪽도 스푸핑될 수 없도록 양방향 인증을 수행할 것을 요구할 수 있다. 또한, 많은 애플리케이션의 경우, 무선 및 유선 데이터를 암호화하는 것이 중요할 수 있다. 이러한 이유로 일부 실시 예에서, 통신 장치(102)는 예를 들어, 칩 제조 또는 제작 시점에서 칩 내에서 생성되는 대칭 키를 포함할 수 있는 STSAFE-A100 보안 요소를 통합할 수 있다. 이 때문에, 통신 장치(102)의 제조자나 컴퓨팅 장치(104)의 제조자는 보안 키 자료를 처리하거나 관리할 필요가 없다. 일 예에서, 통신 장치(102)에 대해 생성된 보안 키는 NIST P-384 곡선과 함께 타원 곡선 암호 기법(ECC)를 사용할 수 있고, 서명 알고리즘은 SHA384를 사용한 ECDSA 일 수 있다. 보안 요소 및 특정 서명 알고리즘의 특정 예가 제공되었지만, 암호화 키 및/또는 임의의 서명 알고리즘을 생성하도록 구성된 임의의 보안 장치 또는 모듈이 본 개시 내용의 범위 내에서 클라우드 기반 서비스(108)와 통신 장치(102) 사이의 데이터를 보호하기 위해 사용될 수 있다는 것이 이해될 것이다.
일부 실시 예에서, 통신 장치는 컴퓨팅 장치로부터 수신된 통신 정책 및 하나 이상의 데이터 객체에 추가된 메타 데이터에 적어도 부분적으로 기초하여 데이터 객체를 압축 및 암호화하는 것 중 하나 이상으로 구성될 수 있다. 예를 들어 상술된 바와 같이, 데이터 객체를 암호화하는 단계는 통신 장치(102)로부터 상당한 전력을 필요로 할 수 있다. 이와 같이, 통신 장치(102)는 데이터 객체가 압축 및/또는 암호화되는지 여부를 결정하기 위해 데이터 객체 메타 데이터 및/또는 통신 정책을 이용할 수 있다. 전력 절약을 기반으로 데이터를 압축 및/또는 암호화하는 예가 논의되었지만, 메타 데이터 및 통신 정책은 더욱 다른 상황에서도 (예를 들어, 위치, 시간, 보안 우선 순위 등에 기반하여) 데이터 객체를 압축 및/또는 암호화하는 시기를 결정할 수 있음을 이해할 수 있을 것이다.
일부 실시 예에서, 통신 장치(102)는 전력 제어를 가질 수 있고 가변 클록 속도를 많이 사용할 수 있다. 상술된 바와 같이, 무선 셀룰러 트랜시버(예를 들어, 무선 셀룰러 트랜시버(204)) 및/또는 모뎀은 송신 또는 수신시 상당한 전류를 소모할 수 있으며 GNSS는 수신시, CPU는 세션 또는 데이터 객체 암호화를 행할 때, 심지어 보안 요소는 특정 부채널 공격을 방지하기 위해 활성화될 때 일정한 전력을 소모할 수 있다. 그러나 일부 실시 예에서, 통신 장치 설계의 단일 스위치는 1 마이크로 암페어(예를 들어, Iq> 1μA)보다 큰 대기 전류를 가질 수 없다. 즉, 통신 장치 (102)의 각 스위치의 대기 전류는 1 마이크로 암페어 미만일 수 있다. 그러나, 본 개시 내용의 범위 내에서 임의의 대기 전류가 가능하다는 것이 이해 될 것이다. 프로세서가 예를 들어 "STOP" 모드에 있을 때 하나 이상의 직렬 링크(예를 들어, I2C, UART, USB 등) 및 실시간 클록(RTC)을 실행하는 기능과 결합되면, 통신 장치(102)는 유휴 상태일 때 예를 들어 3.3V에서 8μA 미만을 소비할 수 있다. 따라서, 통신 장치 (102)는 마이크로컨트롤러 및 다른 컴퓨팅 장치를 위한 저전력 셀룰러 테더(cellular tether) 솔루션을 제공할 수 있다.
다시 도 1의 예를 참조하여 일부 실시 예에서, 통신 허브는 하나 이상의 통신 장치 및 클라우드 기반 서비스에 통신 가능하게 결합되도록 구성될 수 있다. 이하 및 일부 실시 예에서 더 상세히 설명되는 바와 같이, 통신 허브(106)는: 첫째, 자동 프로비저닝하고 고객으로 하여금 유사한 기능의 통신 장치(예를 들어, 통신 장치(102))를 다음에 그 동작이 모니터링될 수 있는 통신 장치 그룹(예를 들어, "플릿(Fleet)")으로 통합할 수 있도록 하고; 둘째, 통신 장치(예를 들어, 통신 장치(102))로부터 도착하는 데이터 객체(예를 들어, JSON 포매팅 데이터)가 클라우드 기반 서비스(예를 들어, 클라우드 기반 서비스(108))로 전달될 수 있도록 하는 "경로"로 이러한 플릿을 구성하기 위해서, 매우 얇은 층의 기능을 제공하도록 구성될 수 있다.
아래에서 논의되는 바와 같이, 무선 셀룰러 송수신기(204)는 셀룰러 네트워크를 통해 데이터를 전송하도록 구성될 수 있다. 예를 들어 상술된 바와 같이, 무선 셀룰러 송수신기(204)는 데이터가 셀룰러 타워 및/또는 셀룰러 노드(예를 들어, eNodeB)에 전송되고 이로부터 전송되는 다양한 통신 프로토콜(예를 들어, 2G, LTE Cat-M, LTE Cat-NB1 등)을 사용하여 데이터를 송수신하도록 구성될 수 있다. 당 업계에 알려진 바와 같이, 셀룰러 노드 또는 타워는 데이터를 특정 목적지에 중계하기 위해 백홀(backhaul) 또는 다른 네트워크에 통신 가능하게 결합될 수 있다. 따라서, 무선 셀룰러 송수신기(204)는 셀룰러 네트워크를 통해 통신 허브(106)로 데이터를 전송하도록 구성될 수 있다.
일부 실시 예에서, 통신 허브(예를 들어, 통신 허브(106))는 일반적으로 하나 이상의 통신 장치(예를 들어, 통신 장치(102))를 하나 이상의 통신 장치 그룹으로 구성하도록 구성된 소프트웨어 서비스를 포함할 수 있다. 통신 허브는 또한 하나 이상의 경로를 하나 이상의 통신 장치 그룹과 연관시킬 수 있고, 이때 하나 이상의 경로는 하나 이상의 컴퓨팅 장치와 클라우드 기반 서비스에 통신 가능하게 연결된 하나 이상의 통신 장치 사이에서 하나 이상의 데이터 객체를 라우팅하도록 구성될 수 있으며, 하나 이상의 컴퓨팅 장치에 대해 비동기적으로, 하나 이상의 경로를 통해 하나 이상의 통신 장치와 클라우드 기반 서비스 사이에서 하나 이상의 데이터 객체를 라우팅할 수 있다. 일부 실시 예에서 및 아래에서 더 상세히 설명되는 바와 같이, 통신 허브(106)는 단일 인스턴스 하이퍼 스케일 소프트웨어 애즈 어 서비스(Software-as-a-Service; SaaS) 서비스로서 또는 서버에 배치된 고객 자신의 사설 통신 허브 서비스 인스턴스로서 배치될 수 있다.
일부 실시 예에서, 통신 허브(예를 들어, 통신 허브(106))는 하나 이상의 통신 장치를 관리하도록 구성될 수 있으며, 여기서 하나 이상의 통신 장치는 하나 이상의 컴퓨팅 장치에 통신 가능하게 결합된다. 일부 실시 예에서, 하나 이상의 통신 장치의 각 통신 장치는 고유 식별자를 가질 수 있다. 일부 실시 예에서, 고유 식별자는 각 통신 장치(예를 들어, 통신 장치(102))에 대해 자동으로 할당될 수 있고/있거나 각 통신 장치에 대해 수동으로 할당되거나 구성될 수 있다.
일부 실시 예에서, 통신 허브(106)는 하나 이상의 통신 장치 제품 식별자를 하나 이상의 통신 허브 프로젝트와 연관시킬 수 있다. 통신 허브 프로젝트는 일반적으로 하나 이상의 통신 장치, 통신 장치 그룹, 및 통신 장치(예를 들어, 통신 장치(102))로부터의 데이터 객체가 통신 허브(106)에 의해 전송되는 방법을 정의하는 하나 이상의 통신 장치 그룹과 연관되거나 이에 할당된 경로를 포함하는 고객 특정 엔티티를 포함할 수 있다. 또한, 도 7의 예시적인 관리 도구(예를 들어, 관리 도구(700))를 참조하며 일부 실시 예에서, 사용자는 프로젝트를 생성할 수 있다(예를 들어, 프로젝트에 이름을 할당하고, 하나 이상의 계정을 생성하는 등). 그 다음 사용자는 통신 허브(106)가 통신 허브 프로젝트와 연관시킬 하나 이상의 통신 장치 제품 식별자를 생성할 수 있다. 예를 들어, 사용자는 하나 이상의 통신 장치 제품 식별자(예를 들어, "product.org.safecast.*", "product.org.safecast.ninja", "product.org.safecast.air" 등)를 제공할 수 있다. 일부 실시 예에서, 별표 기호 "*"의 사용은 "*" 기호 앞의 제품 식별자 부분을 포함하는 임의의 통신 장치 제품 식별자를 포함할 수 있다. 예를 들어, 통신 장치 제품 식별자 "product.org.safecast.*"를 생성하면, "product.org.safecast"를 포함하는 모든 통신 장치 제품 식별자는 이 프로젝트와 연관되게 된다. 오픈-엔드형 통신 장치 제품 식별자를 지정하기 위해 별표 기호가 예시의 기호로 설명되었지만, 본 개시의 범위 내에서 다른 심볼들이 사용될 수 있다는 것을 이해할 것이다.
일부 실시 예에서, 통신 허브(106)는 하나 이상의 통신 장치로부터 하나 이상의 착신 통신 세션을 수신할 수 있으며, 각각의 착신 통신 세션은 하나 이상의 통신 장치의 제품 식별자를 포함한다. 예를 들어, 통신 장치(102)가 아래의 예에 도시된 바와 같이 (예를 들어, JSON 객체를 통해) 착신 통신 세션을 클라우드 기반 스토리지(108)로 전송한다고 가정하자:
Figure pct00003
이 예에서, 통신 허브(106)는 착신 통신 세션으로부터 통신 장치 제품 식별자(예를 들어, "org.safecast.air")를 식별할 수 있다. 일부 실시 예에서, 통신 허브(106)는 프로젝트와 연관된 통신 장치 제품 식별자로 인해 통신 장치(102)를 특정 통신 허브 프로젝트와 연관시킬 수 있다. 그러나, 다른 통신 장치 제품 식별자는 본 개시의 범위 내에서 데이터 객체로부터 식별될 수 있다는 것을 이해할 것이다.
일부 실시 예에서, 통신 허브(106)는 적어도 부분적으로 하나 이상의 통신 장치로 설정된 통신 세션의 제품 식별자에 기초하여 하나 이상의 통신 장치 그룹과의 통신 및 클라우드 기반 서비스로의 라우팅을 위해 하나 이상의 통신 장치를 프로비저닝할 수 있다. 일부 실시 예에서, 통신 허브 자체 및 하나 이상의 클라우드 기반 서비스와의 통신을 위해 하나 이상의 통신 장치를 프로비저닝하는 것은 하나 이상의 통신 장치를 하나 이상의 통신 장치 그룹과 연관시키는 것을 포함할 수 있다. 예를 들어, 통신 허브(106)는 통신 장치(102)를 통신 장치 그룹(예를 들어, 통신 허브 프로젝트에 대한 사용자 정의된 기본 통신 장치 그룹)으로 구성하거나 이에 할당할 수 있다. 이하에서 더 상세히 설명되는 바와 같이, 통신 허브(106)는 하나 이상의 통신 장치를 하나 이상의 통신 장치, 통신 허브 및 하나 이상의 클라우드 기반 서비스 사이의 하나 이상의 경로와 자동으로 연관시킬 수 있다.
일부 실시 예에서, 통신 허브(106)는 하나 이상의 통신 장치를 하나 이상의 통신 장치 그룹으로 구성할 수 있다. 또한 도 8의 예를 참조하여 일부 실시 예에서, 하나 이상의 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(104, 806, 808))에 통신 가능하게 결합된 하나 이상의 통신 장치(예를 들어, 통신 장치(102, 802, 804))는 하나 이상의 통신 장치 그룹(예를 들어, 통신 장치 그룹(810))으로 구성될 수 있다. 일부 실시 예에서, 하나 이상의 통신 장치 그룹은 사용자 정의될 수 있고/있거나 통신 허브(106)에 의해 자동으로 구성될 수 있다.
또한, 도 9 및 10의 예를 참조하여 일부 실시 예에서, 하나 이상의 통신 장치를 관리하는 단계는 사용자가 하나 이상의 통신 장치 그룹 및 하나 이상의 경로를 관리할 수 있도록 구성된 관리 도구(예를 들어, 그래픽 사용자 인터페이스)를 제공하는 단계를 포함할 수 있다. 예를 들어, 관리 도구(예를 들어, 관리 도구(700))는 하나 이상의 통신 장치 그룹 및 하나 이상의 통신 장치 그룹과 연관된 경로를 관리하기 위해 사용자에게 제공될 수 있다.
일부 실시 예에서, 통신 허브(예를 들어, 통신 허브(106))는 하나 이상의 컴퓨팅 장치에 통신 가능하게 결합된 하나 이상의 통신 장치와 클라우드 기반 서비스 사이에서 하나 이상의 데이터 객체를 라우팅하도록 구성될 수 있다. 다시 도 8의 예를 참조하여 일부 실시 예에서, 하나 이상의 경로(예를 들어, 하나 이상의 경로(814))는 통신 장치(102, 802, 804)와 통신 허브(106) 사이 및 통신 허브(106)와 클라우드 기반 서비스(108) 사이의 통신 채널을 포함할 수 있다. 일부 실시 예에서, 하나 이상의 경로는 통신 허브와 클라우드 기반 서비스 사이에서 하나 이상의 데이터 객체의 전송을 가능하게할 수 있다. 일부 실시 예에서, 경로는 하나 이상의 클라우드 기반 서비스 주소, 클라우드 기반 서비스와 관련된 인증 정보, JSON 변환 정보(아래에서 설명), 클라우드 기반 서비스에 액세스하기위한 사용자 자격 증명(예를 들어, 사용자 이름 및 암호), 및 통신 허브가 하나 이상의 데이터 객체/데이터 객체 어레이에 대한 수정을 클라우드 기반 서비스로 라우팅하도록 허용하는 데 사용되는 기타 정보를 포함할 수 있다.
도 10을 참조하여 일부 실시 예에서, 하나 이상의 데이터 객체를 라우팅하는 단계는 하나 이상의 통신 장치 그룹을 하나 이상의 경로와 연관시키는 단계를 포함할 수 있다. 도 10에 도시된 바와 같이, 관리 도구(700)는 사용자로 하여금 하나 이상의 통신 장치 그룹 또는 "플릿"을 하나 이상의 프로젝트 데이터 경로(예를 들어, 경로(1000))와 연관시킬 수 있도록 구성될 수 있다. 일부 실시 예에서, 하나 이상의 경로(예를 들어, 하나 이상의 경로(814))는 통신 허브와 클라우드 기반 서비스 사이에서 하나 이상의 데이터 객체를 전송하도록 구성된 하나 이상의 서버를 포함할 수 있다.
상술한 바와 같이, 통신 허브(106)는 일반적으로 소프트웨어 애즈 어 서비스(SaaS) 서비스로서 또는 고객의 서버상의 서비스 인스턴스로서 배포될 수 있다. 통신 허브(106)가 고객의 서버에 서비스 인스턴스로서 배포되는 일부 실시 예에서, 하나 이상의 통신 장치 및 통신 허브로부터의 하나 이상의 데이터 객체를 라우팅하는 단계는 적어도 부분적으로 인터넷 연결을 통해 이루어진다. 예를 들어, 통신 허브가 고객의 서버에 서비스 인스턴스로 배포될 때 통신 장치 대 통신 허브 통신이 인터넷을 통해 (예를 들어, HTTP API를 통해) 발생할 수 있다. 통신 허브(106)가 SaaS 서비스로서 배포되는 다른 예에서, 하나 이상의 통신 장치 및 통신 허브로부터 하나 이상의 데이터 객체를 라우팅하는 단계는 적어도 부분적으로 비-인터넷 액세스 가능 연결을 통해 이루어진다. 다시 말해서, 통신 장치 대 통신 허브 통신은 논리적으로 "오프 더 인터넷"일 수 있다. 예를 들어, 데이터 객체는 (예를 들어, 비 인터넷 연결을 통해) 보안 터널에서 셀룰러 캐리어로부터 가상 사설 클라우드(VPC)로 직접 이동하도록 구성될 수 있다. 이러한 방식으로, 하나 이상의 통신 장치 및 통신 허브로부터 하나 이상의 데이터 객체를 라우팅하는 단계는 통신 장치가 IP 주소 지정이 불가능하므로 인터넷 기반 공격 취약성으로부터 보호될 수 있다.
일부 실시 예에서 또한 도 11의 예를 참조하면, 하나 이상의 데이터 객체를 라우팅하는 단계는 장치 별 이벤트 흐름(예를 들어, 장치 별 이벤트 흐름(1102)), 필터링 및 데이터 객체-데이터 객체 변환(필터링 및 JSON-JSON 변환(1104)), 및 선택적 라우팅(예를 들어, 라우팅(1106))을 포함할 수 있다. 일부 실시 예에서, 또한도 12을 참조하여, 장치 별 이벤트 흐름(1102)은 (예를 들어, 상술한 바와 같이 HTTP API(예를 들어, 인터넷 기반 통신) 또는 장치 터널(예를 들어, 비 인터넷 기반 통신)을 통해) 통신 장치로부터 데이터 객체를 수신하는 단계를 포함할 수 있다. 장치 터널을 통해 수신된 데이터 객체의 예에서, 사전 이벤트 장치 흐름(1102)은 시간 세션 로그(예를 들어, 시간 세션 로그(1202))에 데이터 객체를 기록할 수 있다. 데이터 객체가 HTTP API 또는 장치 터널을 통해 수신되면, 사전 이벤트 장치 흐름(1102)은 통신 허브(106)(예를 들어, 데이터 객체 어레이 스토리지(1204))에 저장된 적어도 하나의 데이터 객체 어레이에 데이터 객체를 추가할 수 있다. 클라우드 기반 서비스(108)로부터 데이터 객체를 통신할 때, 전술한 프로세스는 반전될 수 있다. 예를 들어, 데이터 객체는 클라우드 기반 서비스로부터 수신되고, 통신 허브(106)에 저장된 적어도 하나의 데이터 객체 어레이에 추가되고, HTTP API 또는 장치 터널을 통해 컴퓨팅 장치로 전송될 수 있다.
일부 실시 예에서, 하나 이상의 데이터 객체를 라우팅하는 단계는 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 컴퓨팅 장치에 통신 가능하게 연결된 하나 이상의 데이터 객체 어레이의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부와 동기화하는 단계를 포함할 수 있다. 일부 실시 예에서, "동기화"는 일반적으로 데이터 객체 어레이를 생성, 삭제 및 업데이트하는 것을 포함할 수 있다. 일부 실시 예에서 및 이하에서 더 상세히 논의되는 바와 같이, 동기화는 단방향으로 업/아웃바운드일 수 있고 (예를 들어, 클라우드 기반 서비스에만 해당/통신 장치에서는 유지되지 않음), 단방향 다운/인바운드일 수 있거나(예를 들어, 통신 장치에만 해당/통신 허브에서는 유지되지 않음), 데이터 어레이의 데이터 객체 확장에 기초하여 양방향일 수 있다(예를 들어, 통신 장치와 통신 허브 모두에서 유지됨). 예를 들어, 도 12에 도시된 바와 같이, 데이터 객체가 통신 허브(106)에 의해 수신될 때, 데이터 객체 어레이 스토리지(1204)에 저장된 통신 허브(106)의 적어도 하나의 데이터 어레이 객체의 적어도 일부는 수신된 데이터 객체와 동기화될 수 있다.
일부 실시 예에서, 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부와 동기화하는 단계는, 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부와 양방향 동기화하는 단계를 포함할 수 있다. 예를 들어 다시 도 6를 참조하면, 데이터 객체(536)는 데이터 객체(536)가 데이터 객체(510)로서 데이터 객체 어레이(504)에서 복제되도록 양방향으로 복제된 데이터 객체일 수 있다.
일부 실시 예에서, 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부와 동기화하는 단계는 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 통신 장치의 적어도 하나의 대응 데이터 객체 어레이의 적어도 일부에 동기화하는 단계를 포함할 수 있다. 이 예에서, 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부에 동기화하는 단계는 단방향일 수 있다. 일부 실시 예에서, 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부를 동기화하는 단계(예를 들어, 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이를 추가 또는 수정하는 단계)에 응답하여, 통신 허브는 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 삭제하도록 구성될 수 있다. 예를 들어, 데이터 객체(552)는 인바운드 전용 데이터 객체이므로 데이터 객체(552)가 통신 허브(106)의 데이터 객체 어레이(508)로 전송될 때, 데이터 객체(552)는 데이터 객체(526)로서 데이터 객체 어레이(508)에 저장될 수 있고 데이터 객체(552)는 데이터 객체 어레이(534)로부터 삭제될 수 있다(예를 들어, 데이터 객체(534) 주위의 점선으로 표시됨).
일부 실시 예에서, 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 통신 장치의 적어도 하나의 대응 데이터 객체 어레이의 적어도 일부와 동기화하는 단계는 하나 이상의 통신 장치의 적어도 하나의 대응 데이터 객체 어레이의 적어도 일부로부터 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 동기화하는 단계를 포함할 수 있다. 일부 실시 예에서, 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부로부터 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 동기화하는 단계(예를 들어, 통신 허브의 적어도 하나의 데이터 객체 어레이를 추가 또는 수정하는 단계)에 응답하여, 통신 장치는 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부를 삭제하도록 구성될 수 있다. 예를 들어, 통신 장치(102)는 통신 허브(106)로 전송될 수 있는 데이터 객체(516)를 갖는 데이터 객체 어레이(506)를 포함할 수 있다. 이 예에서, 데이터 객체(516)는 아웃바운드 전용 데이터 객체이므로, 데이터 객체(516)가 통신 허브(106)의 데이터 객체 어레이(532)로 전송될 때, 데이터 객체(516)는 데이터 객체(542)로서 데이터 객체 어레이(532)에 저장될 수 있고, 데이터 객체(516)는 데이터 객체 어레이(506)로부터 삭제될 수 있다(예를 들어, 데이터 객체(516) 주위에 점선으로 표시됨).
일부 실시 예에서, 통신 허브의 적어도 하나의 데이터 객체 어레이의 적어도 일부를 하나 이상의 통신 장치의 적어도 하나의 대응하는 데이터 객체 어레이의 적어도 일부와 동기화하는 단계는 적어도 부분적으로, 하나 이상의 데이터 객체 어레이 각각과 연관된 데이터 객체 확장자에 기초한다. 예를 들어, 위에서 논의 된 바와 같이, 데이터 객체 어레이는 하나 이상의 데이터 객체 어레이 각각과 연관된 데이터 객체 확장자에 적어도 부분적으로 기초하여 정의될 수 있다. 이러한 방식으로, 데이터 객체 확장자는 통신 허브(106)와 통신 장치(102) 사이에서 데이터가 이동 및/또는 복제되는 방법을 정의할 수 있다.
일부 실시 예에서, 그리고 위에서 논의된 바와 같이, 하나 이상의 데이터 객체를 라우팅하는 단계는 하나 이상의 컴퓨팅 장치에 통신 가능하게 연결된 하나 이상의 통신 장치로부터 하나 이상의 데이터 객체(예를 들어, JSON 객체)를 수신하는 단계를 포함할 수 있다. 일부 실시 예에서 다시 도 12의 예를 참조하면, 통신 허브는 하나 이상의 데이터 객체(예를 들어, JSON 객체)를 필터링 및 변환할 수 있다. 일부 실시 예에서, 사용자는 통신 장치로부터 수신된 데이터 객체(예를 들어, JSON 객체)를 변환하기 위한 및/또는 통신 장치로 전송되는 데이터 객체(예를 들어, JSON 객체)를 변환하기 위한 변환 로직을 제공하기를 원할 수 있다. 다시 도 9의 예를 참조하며 일부 실시 예에서, 관리 도구(700)는 사용자가 하나 이상의 JSON-JSON 변환을 정의할 수 있도록 사용자 인터페이스(예를 들어, 윈도우(1002))의 일부를 제공할 수 있다. 이 예에서, 사용자는 특정 데이터 객체가 사용자 정의 변환에 기초하여 변환되도록 사용자 인터페이스(예를 들어, 윈도우(1004))의 다른 부분에서 하나 이상의 데이터 객체를 선택할 수 있다. 일부 실시 예에서, 사용자는 다른 윈도우(예를 들어, 윈도우(1006))에서 하나 이상의 통신 장치 그룹 또는 "플릿"을 선택할 수 있으므로 선택된 통신 장치 그룹의 윈도우(1004)에서 선택된 데이터 객체는 윈도우(1002)에서 제공되는 변환에 따라 변환될 수 있다. 다양한 윈도우의 예가 제공되었지만, 사용자 인터페이스는 본 개시의 범위 내에서 통신 장치 그룹, 데이터 객체 및 데이터 객체 변환(예를 들어, JSON 변환)의 사용자 선택을 용이하게 하기 위해 다양한 방식으로 구성될 수 있음을 이해할 것이다.
일부 실시 예에서 도 11의 예를 다시 참조하면, 통신 허브는 클라우드 기반 서비스에 및 이로부터 하나 이상의 데이터 객체를 선택적으로 라우팅(예를 들어, 선택적 라우팅(1106))할 수 있다. 다시 도 10의 예를 참조하여 일부 실시 예에서, 통신 허브(106)와 클라우드 기반 서비스(108) 사이에서 데이터 객체를 라우팅하기 위해 하나 이상의 경로가 결정될 수 있다. 데이터 객체 변환과 관련하여 상술된 바와 같이, 특정 경로가 선택되거나 (예를 들어, 윈도우(1004)를 통해) 특정 데이터 객체 및/또는 (예를 들어, 윈도우(1006)를 통해) 특정 통신 장치 그룹과 연관될 수 있다.
일부 실시 예에서, 데이터 객체는 하나 이상의 API를 사용하여 클라우드 기반 서비스(108)에 및 이로부터 전송될 수 있다. 다시 도 8을 참조하여 일부 실시 예에서, 하나 이상의 API(예를 들어, API(816))는 다운로드 가능한 키를 사용하여 HTTP 또는 HTTP들을 통해 호출 가능할 수 있다. 일부 실시 예에서, API(816)는 게시된 내용 또는 반환되는 내용의 본문에 데이터 객체와 함께 HTTP GET 또는 POST를 포함할 수 있다. 일부 실시 예에서, 데이터 객체는 JSON 객체로서 클라우드 기반 서비스(108)에 전송될 수 있다. 예를 들어, 데이터 객체 또는 JSON 객체는 아래의 예에 표시된 것처럼 클라우드 기반 스토리지(108)로 전송될 수 있다.
Figure pct00004
이러한 방식으로, 컴퓨팅 장치(104)에 의해 생성된 데이터 객체는 컴퓨팅 장치(102)와 통신 허브(106)의 조합을 통해 최소한의 사용자 구현으로 그리고 셀룰러 통신을 통해 클라우드 기반 서비스(108)로 전달될 수 있다. JSON 객체가 위의 예에서 논의되었지만, 다른 데이터 객체가 본 개시의 범위 내에서 API(816)를 통해 전달될 수 있다는 것이 이해될 것이다.
도면의 흐름도 및 블록도는 본 개시의 다양한 구현에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현의 아키텍처, 기능 및 동작을 예시할 수 있다. 이와 관련하여, 흐름도 또는 블록 다이어그램의 각 블록은 지정된 논리적 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 일부 대안적인 구현에서, 블록에 언급된 기능은 도면에 언급된 순서와 다르게 발생할 수 있다는 점에 유의해야 한다. 예를 들어, 연속된 2 개의 블록은 실제, 실질적으로 동시에 실행될 수 있거나, 관련된 기능에 따라 블록이 역순으로 실행될 수도 있다. 또한, 블록도 및/또는 흐름도 예시의 각 블록, 및 블록도 및/또는 흐름도 예시의 블록 조합은 특정 기능이나 동작을 수행하는 특수 목적 하드웨어 기반 시스템 또는 특수 목적 하드웨어와 컴퓨터 명령의 조합으로 구현될 수 있다는 것에 유의해야 한다.
본 명세서에서 사용된 용어는 특정 구현을 설명하기 위한 목적으로만 사용되며 본 개시를 제한하려는 의도가 아니다. 본 명세서에서 사용된 바와 같이, 단수 형태는 문맥 상 명백하게 달리 나타내지 않는 한 복수 형태도 포함하도록 의도된다. 또한 본 명세서에서 사용될 때 "포함하다" 및/또는 "포함하는"이라는 용어는 언급된 특징, 정수, 단계, 연산, 요소 및/또는 구성 요소의 존재를 지정하지만, 하나 이상의 다른 특징, 정수, 단계, 연산, 요소, 구성 요소 및/또는 그 그룹의 존재 또는 추가를 배제하지 않는다.
아래의 청구 범위의 모든 수단 또는 단계 플러스 기능 요소의 대응하는 구조, 재료, 동작 및 등가물은 구체적으로 청구된 다른 청구된 요소와 결합하여 기능을 수행하기 위한 임의의 구조, 재료 또는 동작을 포함하도록 의도된다. 본 개시의 설명은 예시 및 설명의 목적으로 제시되었지만, 공개된 형태의 개시에 대해 철저하거나 제한하고자 하는 것은 아니다. 본 개시 내용의 범위 및 정신을 벗어나지 않고 많은 수정 및 변형이 당업자에게 명백할 것이다. 실시 예는 본 개시의 원리 및 실제 적용을 가장 잘 설명하고, 당업자 이외의 사람도 고려되는 특정 사용에 적합한 바와 같이 다양한 수정을 갖는 다양한 구현에 대한 개시를 이해할 수 있도록 하기 위해 선택되고 설명되었다.
다수의 구현이 설명되었다. 따라서 본 출원의 개시를 상세하게 그의 구현을 참조하여 설명하였기 때문에, 첨부된 청구 범위에 정의된 개시의 범위를 벗어나지 않고 수정 및 변경이 가능하다는 것이 명백할 것이다.

Claims (20)

  1. 컴퓨팅 장치를 클라우드 기반 서비스와 통신 가능하게 결합하여 하나 이상의 데이터 수정 사항을 서로에 대해 비동기적으로 동기화하기 위한 통신 장치에 있어서, 상기 통신 장치는 상기 컴퓨팅 장치에 통신 가능하게 결합하도록 구성되며 무선 셀룰러 송수신기를 포함하고,
    상기 통신 장치는:
    상기 컴퓨팅 장치로부터 적어도 하나의 데이터 객체를 수신하고,
    상기 수신된 적어도 하나의 데이터 객체에 적어도 부분적으로 기초하여 상기 통신 장치의 메모리에 저장된 하나 이상의 데이터 객체의 적어도 하나의 데이터 객체 어레이를 수정하고, 및
    상기 컴퓨팅 장치에 대해 비동기적으로, 상기 무선 셀룰러 송수신기를 통해, 상기 수정된 적어도 하나의 데이터 객체 어레이의 적어도 일부를 상기 클라우드 기반 서비스로 전송하는
    것을 포함하여, 상기 컴퓨팅 장치에서 상기 클라우드 기반 서비스로 하나 이상의 데이터 객체를 전송하고,
    비동기적으로, 상기 컴퓨팅 장치와 관련하여, 상기 무선 셀룰러 송수신기를 통해 상기 클라우드 기반 서비스로부터 상기 적어도 하나의 데이터 객체 어레이의 적어도 일부를 수신하고,
    상기 적어도 하나의 데이터 객체 어레이의 상기 수신된 적어도 일부에 적어도 부분적으로 기초하여 상기 컴퓨팅 장치의 상기 메모리에 저장된 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 데이터 객체를 수정하고, 및
    비동기적으로, 상기 통신 장치의 상기 클라우드 기반 서비스와의 통신과 관련하여, 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 수정된 데이터 객체를 상기 컴퓨팅 장치에 이용 가능하게 하는
    것을 포함하여, 상기 클라우드 기반 서비스에서 하나 이상의 데이터 객체를 수신하는
    것 중 하나 이상으로 구성되는, 통신 장치.
  2. 제 1 항에 있어서, 상기 통신 장치는 마이크로컨트롤러인, 통신 장치.
  3. 제 1 항에 있어서, 상기 통신 장치는 직렬 링크를 통해 상기 컴퓨팅 장치에 통신 가능하게 연결되도록 구성되는, 통신 장치.
  4. 제 3 항에 있어서, 상기 직렬 링크는 범용 비동기적 송수신기(UART), 범용 직렬 버스(USB), IC간 버스(I2C), 직렬 주변 인터페이스(SPI), MODBUS®, 컨트롤러 에어리어 네트워크(CAN) 버스, 및 주변 소자 인터커넥스 익스프레스(PCIe) 중 하나 이상을 포함하는, 통신 장치.
  5. 제 1 항에 있어서, 상기 통신 장치는 상기 컴퓨팅 장치로부터 통신 정책을 수신하도록 구성되는, 통신 장치.
  6. 제 5 항에 있어서, 상기 통신 정책은 전력 보존, 네트워크 대역폭 보존, 데이터 객체 보안, 다른 데이터 객체에 대한 일부 데이터 객체의 우선 순위 지정 중 하나 이상을 포함하는 상기 통신 장치에 대한 하나 이상의 통신 세션 기준을 정의하는, 통신 장치.
  7. 제 5 항에 있어서, 상기 통신 장치는:
    상기 컴퓨팅 장치로부터 수신된 상기 통신 정책에 적어도 부분적으로 기초하여 무선 셀룰러 트랜시버를 통해 상기 데이터 객체 어레이의 상기 적어도 일부를 상기 클라우드 기반 서비스로 전송하기위한 스케줄을 생성하고; 및
    상기 컴퓨팅 장치로부터 수신된 상기 통신 정책에 적어도 부분적으로 기초하여 상기 무선 셀룰러 트랜시버를 통해 상기 클라우드 기반 서비스로부터 상기 데이터 객체 어레이의 상기 적어도 일부를 수신하기 위한 스케줄을 생성하는
    것 중 하나 이상으로 더욱 구성되는, 통신 장치.
  8. 제 7 항에 있어서, 상기 통신 장치는 적어도 하나의 객체에 메타 데이터를 추가하도록 구성되며, 메타 데이터는 상기 통신 장치의 시간 및 위치 중 하나 이상을 포함하는, 통신 장치.
  9. 제 8 항에 있어서, 상기 통신 장치는 상기 컴퓨팅 장치로부터 수신된 상기 통신 정책 및 적어도 하나의 데이터 객체에 첨부된 상기 메타데이터에 적어도 부분적으로 기초하여 상기 데이터 객체를 압축 및 암호화하는 것 중 하나 이상으로 구성되는, 통신 장치.
  10. 제 1 항에 있어서, 상기 하나 이상의 데이터 객체는 자바스크립트 객체 표기법(JSON) 객체인, 통신 장치.
  11. 제 1 항에 있어서, 상기 통신 장치는:
    상기 무선 셀룰러 송수신기를 통해, 상기 통신 장치의 메모리에 저장하기 위한 적어도 하나의 데이터 객체의 형태로 펌웨어 데이터를 수신하고; 및
    상기 컴퓨팅 장치에 상기 수신된 펌웨어 데이터를 설치하기 위해 상기 수신된 펌웨어 데이터의 적어도 일부를 상기 컴퓨팅 장치로 전송하기 위해 상기 컴퓨팅 장치로부터 하나 이상의 명령을 수신하도록
    더욱 구성된, 통신 장치.
  12. 제 1 항에 있어서, 상기 통신 장치는 상기 무선 셀룰러 송수신기의 전력을 활성화 및 비활성화하는 것 중 하나 이상으로 더욱 구성되는, 통신 장치.
  13. 제 1 항에 있어서, 상기 통신 장치는 글로벌 내비게이션 위성 시스템(GNSS) 시스템을 더 포함하고 GNSS 안테나에 통신 가능하게 결합되도록 더욱 구성되는, 통신 장치.
  14. 제 13 항에 있어서,
    상기 통신 장치로 하여금 그 이동을 감지할 때 상기 GNSS 시스템으로부터 GNSS 위치 데이터를 샘플링하게 하도록 구성된 가속도계
    를 더 포함하는, 통신 장치.
  15. 제 1 항에 있어서, 제조시, 상기 통신 장치의 비휘발성 메모리는 하나 이상의 보안 키 및 상기 통신 장치의 보안 인증 및 상기 클라우드 기반 서비스와의 통신을 가능하게 하는 디지털 서명된 인증서를 포함하도록 구성되는, 통신 장치.
  16. 컴퓨팅 장치를 클라우드 기반 서비스와 통신 가능하게 결합하여 하나 이상의 데이터 수정 사항을 서로에 대해 비동기적으로 동기화하기 위한 통신 장치에 있어서, 상기 통신 장치는:
    무선 셀룰러 송수신기를 포함하고,
    상기 통신 장치는:
    상기 컴퓨팅 장치로부터 적어도 하나의 데이터 객체를 수신하고,
    상기 수신된 적어도 하나의 데이터 객체에 적어도 부분적으로 기초하여 상기 통신 장치의 메모리에 저장된 하나 이상의 데이터 객체의 적어도 하나의 데이터 객체 어레이를 수정하고, 및
    상기 컴퓨팅 장치에 대해 비동기적으로, 상기 무선 셀룰러 송수신기를 통해, 상기 수정된 적어도 하나의 데이터 객체 어레이의 적어도 일부를 상기 클라우드 기반 서비스로 전송하는
    것을 포함하여, 상기 컴퓨팅 장치에서 상기 클라우드 기반 서비스로 하나 이상의 데이터 객체를 전송하고,
    비동기적으로, 상기 컴퓨팅 장치와 관련하여, 상기 무선 셀룰러 송수신기를 통해 상기 클라우드 기반 서비스로부터 상기 적어도 하나의 데이터 객체 어레이의 적어도 일부를 수신하고,
    상기 적어도 하나의 데이터 객체 어레이의 상기 수신된 적어도 일부에 적어도 부분적으로 기초하여 상기 컴퓨팅 장치의 상기 메모리에 저장된 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 데이터 객체를 수정하고, 및
    비동기적으로, 상기 통신 장치의 상기 클라우드 기반 서비스와의 통신과 관련하여, 상기 적어도 하나의 데이터 객체 어레이의 상기 하나 이상의 수정된 데이터 객체를 상기 컴퓨팅 장치에 이용 가능하게 하는
    것을 포함하여, 상기 클라우드 기반 서비스에서 하나 이상의 데이터 객체를 수신하도록
    구성되는, 통신 장치.
  17. 제 16 항에 있어서, 상기 컴퓨팅 장치는 마이크로컨트롤러인, 통신 장치.
  18. 제 16 항에 있어서, 상기 컴퓨팅 장치는 직렬 링크를 통해 상기 통신 장치에 통신 가능하게 연결되도록 구성되는, 통신 장치.
  19. 제 16 항에 있어서, 상기 적어도 하나의 데이터 객체는 자바스크립트 객체 표기법(JSON) 객체인, 통신 장치.
  20. 직렬 링크를 통해 컴퓨팅 장치에 통신 가능하게 결합되도록 구성된 통신 장치에 있어서, 상기 컴퓨팅 장치는 상기 직렬 링크를 통해 통신되는 하나 이상의 자바스크립트 객체 표기법(JSON) 객체를 사용하여 상기 통신 장치와 요청 및 응답을 통신하는, 통신 장치.
KR1020217005527A 2018-07-25 2019-07-25 컴퓨팅 장치 및 클라우드 기반 서비스를 연결하기 위한 데이터 시스템 온 모듈(DSoM) KR20210038914A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862703054P 2018-07-25 2018-07-25
US62/703,054 2018-07-25
US201962807840P 2019-02-20 2019-02-20
US62/807,840 2019-02-20
PCT/US2019/043372 WO2020023709A1 (en) 2018-07-25 2019-07-25 DATA SYSTEM ON A MODULE (DSoM) FOR CONNECTING COMPUTING DEVICES AND CLOUD-BASED SERVICES

Publications (1)

Publication Number Publication Date
KR20210038914A true KR20210038914A (ko) 2021-04-08

Family

ID=69178786

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217005527A KR20210038914A (ko) 2018-07-25 2019-07-25 컴퓨팅 장치 및 클라우드 기반 서비스를 연결하기 위한 데이터 시스템 온 모듈(DSoM)
KR1020217005526A KR20210038913A (ko) 2018-07-25 2019-07-25 컴퓨팅 장치 및 클라우드 기반 서비스를 연결하기 위한 데이터 시스템 온 모듈(DSoM)

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217005526A KR20210038913A (ko) 2018-07-25 2019-07-25 컴퓨팅 장치 및 클라우드 기반 서비스를 연결하기 위한 데이터 시스템 온 모듈(DSoM)

Country Status (8)

Country Link
US (1) US11012376B2 (ko)
EP (2) EP3827352A4 (ko)
JP (2) JP7376592B2 (ko)
KR (2) KR20210038914A (ko)
CN (2) CN112912861A (ko)
CA (2) CA3107419A1 (ko)
MX (2) MX2021000912A (ko)
WO (2) WO2020023716A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475454B (zh) * 2020-03-27 2022-04-15 西安广和通无线软件有限公司 基于PCIe接口的通信方法和装置、计算机设备、计算机可读存储介质
KR102416162B1 (ko) * 2021-04-08 2022-07-05 (주)팜존에스엔씨 스마트 푸드 팩토리의 통합 운영 관리 서비스 제공 장치
KR102614429B1 (ko) 2023-06-21 2023-12-14 김호중 재설정 가능한 시스템 프레임워크 및 서버시각 동기부를 포함하는 에지 디바이스용 시스템 온 모듈

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9605260D0 (en) * 1996-03-13 1996-05-15 Northern Telecom Ltd Audio communications over a dcn supporting osi protocols
US6175884B1 (en) * 1998-11-03 2001-01-16 Intel Corporation Efficient communication of transaction types using separate and orthogonal attribute fields in packet headers transferred between hubs in a computer system
US7228337B1 (en) * 2001-09-11 2007-06-05 Cisco Technology, Inc. Methods and apparatus for providing a network service to a virtual machine
US20060098664A1 (en) * 2004-11-09 2006-05-11 Tvblob S.R.I. Intelligent application level multicast module for multimedia transmission
JP5507856B2 (ja) * 2009-02-04 2014-05-28 日本電波工業株式会社 無線通信システム
US8504609B2 (en) * 2009-08-21 2013-08-06 Fusionops Inc. System and method for facilitating secure integration and communication of cloud services and enterprise applications
WO2012042509A1 (en) * 2010-10-01 2012-04-05 Peter Chacko A distributed virtual storage cloud architecture and a method thereof
CA2819545C (en) * 2010-12-03 2020-05-12 Level 3 Communications, Llc Virtualized connectivity in a cloud services environment
US9064276B2 (en) * 2011-05-24 2015-06-23 Amazon Technologies, Inc. Service for managing digital content resales
US8965333B1 (en) * 2011-08-16 2015-02-24 Michael A. Shreiber Remote monitoring system and method utilizing wireless network
US9307347B2 (en) 2012-06-01 2016-04-05 Nokia Technologies Oy Wireless programming
US9710982B2 (en) * 2011-12-23 2017-07-18 Microsoft Technology Licensing, Llc Hub key service
US9307006B2 (en) * 2012-04-11 2016-04-05 Salesforce.Com, Inc. System and method for synchronizing data objects in a cloud based social networking environment
EP2837160B1 (en) * 2012-04-13 2023-03-01 Samsung Electronics Co., Ltd. Method and apparatus for communicating data packets in a cloud cell
US9589460B2 (en) * 2012-11-06 2017-03-07 Aclara Meters Llc Systems and methods for implementation of a smart energy profile using data-interchange encoding
US20150133076A1 (en) * 2012-11-11 2015-05-14 Michael Brough Mobile device application monitoring software
US9821999B2 (en) * 2012-12-28 2017-11-21 Trimble Inc. External GNSS receiver module with motion sensor suite for contextual inference of user activity
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
US9374310B2 (en) * 2013-10-08 2016-06-21 Dell Products L.P. Systems and methods of inter data center out-bound traffic management
US20150156266A1 (en) * 2013-11-29 2015-06-04 Qualcomm Incorporated Discovering cloud-based services for iot devices in an iot network associated with a user
CA2936358C (en) * 2014-02-07 2021-09-07 Oracle International Corporation Mobile cloud service architecture
EP3127008B1 (en) * 2014-03-31 2020-06-03 Oracle International Corporation Infrastructure for synchronization of mobile device with mobile cloud service
JP2015200936A (ja) * 2014-04-04 2015-11-12 株式会社野村総合研究所 統合構成管理システム
AU2015317790B2 (en) * 2014-09-16 2019-06-13 Palo Alto Networks, Inc. Methods and systems for business intent driven policy based network traffic characterization, monitoring and control
US20160100035A1 (en) * 2014-10-06 2016-04-07 Eggcyte, Inc. Personal handheld web server and storage device
US9971574B2 (en) * 2014-10-31 2018-05-15 Oracle International Corporation JSON stylesheet language transformation
US10420151B2 (en) * 2015-03-30 2019-09-17 Afero, Inc. Apparatus and method for intermediary device data collection
WO2016176601A1 (en) * 2015-04-30 2016-11-03 Lifespeed, Inc. Massively-scalable, asynchronous backend cloud computing architecture
US10756928B2 (en) * 2016-07-29 2020-08-25 At&T Intellectual Property I, L.P. Interconnection between enterprise network customers and network-based cloud service providers

Also Published As

Publication number Publication date
JP2021531711A (ja) 2021-11-18
EP3827351A4 (en) 2022-05-04
CA3107422A1 (en) 2020-01-30
CA3107419A1 (en) 2020-01-30
MX2021000912A (es) 2021-06-23
MX2021000905A (es) 2021-06-23
JP7376591B2 (ja) 2023-11-08
US20200036655A1 (en) 2020-01-30
CN112912861A (zh) 2021-06-04
EP3827352A4 (en) 2022-05-11
EP3827352A1 (en) 2021-06-02
WO2020023716A1 (en) 2020-01-30
JP2021531710A (ja) 2021-11-18
CN112912862A (zh) 2021-06-04
EP3827351A1 (en) 2021-06-02
WO2020023709A1 (en) 2020-01-30
JP7376592B2 (ja) 2023-11-08
KR20210038913A (ko) 2021-04-08
US11012376B2 (en) 2021-05-18

Similar Documents

Publication Publication Date Title
CN109564539B (zh) 远程调试与管理
EP3100471B1 (en) Context-aware and proximity-aware service layer connectivity management
US11936743B2 (en) Device management services based on restful messaging
US20220201797A1 (en) Iot networking extension with bi-directional packet relay
US20220345417A1 (en) Technologies for configuring and reducing resource consumption in time-aware networks and time-sensitive applications
JP7376591B2 (ja) コンピューティングデバイスとクラウドベースサービスとを接続するモジュール上データシステム(DSoM)
Malik et al. Literature review on home automation system
US11487688B2 (en) Technologies for fast MAUSB enumeration
CN113711569A (zh) 建立物联网(iot)设备的云到云访问
Thirupathi et al. Implementation of home automation system using mqtt protocol and esp32
US11546761B2 (en) Access control in an observe-notify network using callback
US11537631B2 (en) Data system on a module (DSoM) for connecting computing devices and cloud-based services
van der Westhuizen et al. Practical Comparison between COAP and MQTT-Sensor to Server level
Akintade et al. Development of an MQTT-based IoT architecture for energy-efficient and low-cost applications
US20150215414A1 (en) Out of band electronic signaling
Rajakaruna et al. Lightweight dew computing paradigm to manage heterogeneous wireless sensor networks with uavs
TWI795619B (zh) 內建伺服模組的閘道裝置與通信系統
Algani et al. Integration of Internet Protocol and Embedded System On IoT Device Automation
Madhumathi et al. A comprehensive survey of IoT edge/fog computing protocols
Malathy et al. IoT Hardware, Platform, and Security Protocols