WO2017120268A1 - Enabling physical devices for a data communication network with a network-agnostic modem abstraction interface - Google Patents

Enabling physical devices for a data communication network with a network-agnostic modem abstraction interface Download PDF

Info

Publication number
WO2017120268A1
WO2017120268A1 PCT/US2017/012228 US2017012228W WO2017120268A1 WO 2017120268 A1 WO2017120268 A1 WO 2017120268A1 US 2017012228 W US2017012228 W US 2017012228W WO 2017120268 A1 WO2017120268 A1 WO 2017120268A1
Authority
WO
WIPO (PCT)
Prior art keywords
modem
cartridge
server
data
data transfer
Prior art date
Application number
PCT/US2017/012228
Other languages
French (fr)
Inventor
Alfred Tom
Jörg BRAKENSIEK
Original Assignee
Wivity Inc.
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 Wivity Inc. filed Critical Wivity Inc.
Publication of WO2017120268A1 publication Critical patent/WO2017120268A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • 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/565Conversion or adaptation of application format or content
    • 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

Definitions

  • the invention relates generally to computer
  • networking and more specifically, to abstracting network-specific modems from an application-layer in IoT (Internet of Things) servers in communication with physical devices.
  • IoT Internet of Things
  • IoT such as sensors, smart appliances, sensors, and even books and other articles, become network citizens.
  • Simple communication protocols can be implemented to keep costs down while facilitating basic communication and include SIGFOX, LoRaWAN, and Ingenu. More complex
  • communication protocols include cellular, such as LTE, HSDPA, lxEV-Do, lxRTT, GPRS and the like.
  • a stationary device such as a water meter is in the field for multiple years and typically lacks the flexibility to connect to multiple communication protocols, depending on the location of the device. Another problem is that flexibility is also lacking, making it difficult to adapt to changes in protocols over time .
  • a layer is determined to be available based on detecting a modem slot of the physical device being mated to a first modem cartridge.
  • the first modem cartridge can include an RF (radio frequency) component for wireless communication with a first modem server
  • the first modem server is coupled to a wide area network portion of the data communication network .
  • a data channel is set up between the modem slot and the first modem cartridge for example with control messages.
  • An application-layer data transfer command can then be sent over the data link from the modem shell to the first modem cartridge, the application data transfer command concerning the physical device.
  • the format of the data transfer command can be changed, by the first modem cartridge, based on characteristics of the first wireless communication protocol.
  • the application data transfer command is transmitted from the first modem cartridge over the wireless portion of the data communication network using the first wireless protocol to the first modem server.
  • the first proxy server reverts the data transfer command back to the original format and relays the reverted data transfer command to a command server over the wide area network portion of the data communication network for fulfillment of the physical device request .
  • IoT devices can be developed without concern for current or future modem technologies and network infrastructure .
  • FIGS. 1A and IB are high-level block diagrams illustrating a system for network-agnostic modem abstraction interface, according to some embodiments.
  • FIG. 2 is a more detailed block diagrams
  • FIG. 1 illustrating a command server of FIG. 1, according to an embodiment .
  • FIG. 3 is a sequence diagram illustrating data paths as interactions between components of the system of FIG. 1, according to an embodiment.
  • FIG. 4 is a high-level flow diagram illustrating a method for enabling a physical device for sending HTTP commands over a data communication network without regard for a network protocol, according to an embodiment.
  • FIG. 5 is a more detailed flow diagram illustrating an upstream case of a step of sending application-layer commands from a physical device to a vendor server for execution at the vendor server through the modem slot and the modem cartridge, from the method of FIG. 4, according to one embodiment .
  • FIG. 6 is a block diagram illustrating an example computing device, according to one embodiment.
  • FIGS. 1A and IB are high-level block diagrams illustrating a system 100 for network-agnostic modem
  • the system 100 comprises a physical device 110, modem servers 120A-C, command server 130 and vendor server 140.
  • the components can be
  • the physical device 110 in one case, is an IoT device or a conventional device that has primary functionality other than computing, but has a network presence.
  • the IoT device can be a washing machine, a humidity sensor, a book, or the like.
  • the physical device 110 is a computing device.
  • Application-layer command concerning the physical device 110 is sent to the command server, such as an error message for the washing machine, a humidity reading from the humidity sensor, and a current location for the book.
  • the command server such as an error message for the washing machine, a humidity reading from the humidity sensor, and a current location for the book.
  • the physical device 110 includes a modem slot 112 for mating with a modem cartridge 115A.
  • modem cartridge 115B or any other compatible modem cartridge can be swapped out for modem cartridge 115A, an example of which is shown in FIG. IB (generically referred to as modem cartridge 115) .
  • the modem cartridge 115 conforms to a specific protocol of many different types.
  • Example protocols include PHS, GSM, GPRS, EDGE, W-CDMA, UMTS, HSDPA, IS-95, lxRTT, lxEV-DO, lxEV-DV, TD-CDMA, TD-SCDMA, OFDM, WiMax, LTE, LoRaWAN, SigFox, 802.11, GPS, and any other appropriate current or future communication protocol.
  • Application-layer commands generally, are higher layer communications between the physical device 110 and the command server 130.
  • HTTP post commands embed data sent back and forth.
  • a set of commands are customized by a device manufacturer and are recognizable by a vendor account specifically configured for the command set.
  • the commands can be executed at the command server 130 for general functionality, executed in the context of a specific vendor account for specific functionality, or sent to the vendor server 140 for handling by a vendor.
  • the modem cartridge 115 constitutes a lower layer of communications relative to the application-layer commands .
  • the modem slot 112 detects mating of a compatible modem cartridge 115 and, in response, one of the components initiates a data link protocol to enable higher layer communications.
  • a state machine can move from an unconnected to a connected state as a prerequisite. In operation, several parameters can be exchanged between the modem slot 112 and the modem cartridge 115 to ensure
  • the modem cartridge 115B may have to compress header or data field values to comply with the communication protocol for transmission.
  • a URL that exceeds an allotted file size is compressed and then unpacked by the modem server 120 in order to generate a proper
  • the modem server 120 can reconstruct the packets, possibly using a sequence number for each individual packet, to a proper application-level data packet .
  • the modem cartridge 115 and modem slot 112 can communicate using a PPP (point-to-point protocol) or AT commands.
  • PPP point-to-point protocol
  • an HTTP/IP layer in each component packetizes the PPP data into an HTTP command for transport across an IP network.
  • an optimized interface is implemented between the PPP layer and the HTTP/IP layer at each of the modem slot 112 and the modem cartridge 115. The optimized interface removes many of the artifacts required for a one-to-many communication because the modem slot 112 to modem cartridge 115 interface constitutes a one-to-one communication, with less complexity.
  • the modem servers 120A-C (referred to generically as
  • modem cartridge 115A and modem cartridge 115G different modem cartridges for facilitating communications between the modem cartridge 115B and the command server 130.
  • a proxy server can also be substituted for the modem server 120 or added as an additional component between the modem server 120 and command server 130.
  • the modem server 120 receives according to a first protocol, and as an output, transmits according to a second protocol.
  • Additional processing such as packet decompressing, packet reconstitution, and the like can also be performed by a local processor.
  • Some implementations add additional data along with the application-layer commands .
  • Other implementations execute lower layer commands embedded into the device 110 or the modem cartridge 115.
  • modem cartridge 115 communicate directly to the command server 130 or vendor server 140, or through alternative techniques, without the modem server 120.
  • Additional components can be included in the communication channel between the modem cartridge 115 and the modem server 120.
  • a base station with an antenna can receive RF signals transmitted from the modem cartridge 115 for relay to the modem server 120.
  • the command server 130 communicates with the physical device 110 by either reacting to commands sent upstream, or by sending commands downstream.
  • An HTTP POST command for instance, transfers data concerning the physical device 110 for various purposes. To do so, a customer or vendor links the command server 130 to the physical device 110 with configurations .
  • the command server 130 can be implemented to handle commands in different ways according to context. Application- layer commands can be accompanied by a vendor account
  • One vendor can corral inputs for transfer to the vendor server 140 on a periodic basis.
  • a second vendor can receive realtime commands, configuring an immediate application-layer response from the command server 130 followed by a more thorough response from the vendor server 140.
  • a third vendor vendor can rely upon external Internet resources such as Google search engine or a personal assistant application (e.g., Apple Siri) to construct a response.
  • Google search engine e.g., Google Siri
  • Apple Siri e.g., Apple Siri
  • command server response is based on an IoT command type identified, without regard to a particular vendor.
  • Real-time parameter can also affect responses, such as connectivity issues or account quotas.
  • Some embodiments of the command server 130 can be controlled by the vendor
  • command server 130 (possibly eliminating the need for a separate vendor server 140), while other embodiments are controlled by a third party providing SaaS (software as a service) to several vendors, users, or clients. More detailed examples of the command server 130 are discussed below in relation to FIG. 2.
  • additional network components can also be part of the system 100, such as firewalls, virus scanners, routers, switches, application servers, databases, as well as additional controllers, access points, access switches, stations, and the like.
  • the network components can be implemented as hardware, software, or a combination of both (e.g., as shown in FIG. 6) .
  • the network 199 couples the physical device 110, the modem servers 120A-C and the command sever 130 and/or vendor server 140, to a communication channel. Connections can be wired or wireless.
  • the network 199 can be the Internet, a wide area network, an enterprise network, a local area network, or the like.
  • the network 199 can be a data network, a cellular network, or combination.
  • the modem cartridge 115B has a wireless or wired connection to the modem server 120B.
  • the vendor server 140 is shown as directly connected on a back end to the command server 130, but can also be integrated, or be coupled to network 199 for an indirect connection to the command server 130.
  • FIG. 2 is a more detailed block diagrams
  • Components can be implemented in source code, hardware, or both.
  • a user account module 210 can store configurations for a particular vendor. Physical device 110 can be registered and managed, by automated processes, or by manual input from a user interface.
  • a vendor module 220 can be similar to the vendor server 140 of FIG. 1, but implemented locally to execute application-layer commands. Execution can be independent, or in cooperation with the vendor server 140. Some embodiments of the command server 130 can be owned by the vendor.
  • a command translation engine 230 provides API
  • a network module 240 provides lower layer communication with the modem server 120 (or the vendor server 140) and can include networking software, antenna, radios, and the like.
  • FIG. 3 is a sequence diagram illustrating data paths as interactions between components of the system of FIG. 1, according to an embodiment.
  • components 112, 115, 120, 130, 140 internal interface elements are shown as an abstract example.
  • an application-layer command in one instance, is initially output by the modem shell 112 to the modem cartridge 115 over a first protocol (e.g., a point-to- point protocol) (interaction 302) .
  • the modem cartridge 115 mated for electrical communication with the modem shell 112, transmits the application-layer command, embedded within a third protocol, to the modem server 120. Additional hops (not shown) may be necessary as described above.
  • the modem server 120 uses a fourth protocol to send the application- layer command, as embedded, to the command server 130.
  • the vendor server 140 receives the application-layer commands as transmitted by the command server 130.
  • the intermediate layers 320A and 320E expose and embed data in a transport frame such as TCP/IP or a form of HTTP.
  • Other intermediate layers 320B-D transition from one protocol to another protocol, along with any other necessary intermediary processing that enables transmission of the application-layer commands.
  • the layers are abstract groupings of functionality that can be varied (e.g., Ethernet port 330E can be a Wi-Fi port or 4G port) .
  • FIG. 4 is a high-level flow diagram illustrating a method for enabling a physical device for sending HTTP commands over a data communication network without regard for a network protocol, according to an embodiment.
  • the method 400 is one example of the operation for the system 100 or other referral systems, without limitation.
  • a physical device is registered with a command server.
  • a user account can be set up and linked to a vendor account responsive to scanning a QR code or a UPC label of a physical device.
  • a serial number can be entered for a unique identification of a device.
  • a physical device is preprogrammed to establish a connection with a command server out of the box, with a preconfigured URL to find a command server.
  • a specific modem cartridge is configured for data communications with a modem slot.
  • step 440 application-layer commands are sent between a physical device and a vendor server, over any type of network, according to protocol compatibility of the modem cartridge.
  • application-layer commands are sent from a physical device to the vendor server for execution at the vendor server (case discussed in FIG. 5) .
  • application-layer commands are sent from a vendor server to a physical device for execution.
  • FIG. 5 is a more detailed flow diagram illustrating the step of sending commands upstream from a physical device and to a vendor server for execution at a vendor server through the modem slot and the modem cartridge, from the method of FIG. 4, according to one embodiment.
  • a physical device is registered to a vendor server.
  • the initial communication may require a vendor or user account to be configured while follow-ups use the stored settings, possibly over an authenticated and/ or secured connection.
  • the command is routed to the vendor server for
  • an acknowledgment message/execution results are received and may optionally be forwarded to the physical device.
  • FIG. 6 is a block diagram illustrating an exemplary computing device 600 for use in the system 100 of FIG. 1, according to one embodiment.
  • the computing device 600 is an exemplary device that is implementable for each of the components of the system 100, including the physical device 110, the modem server 120, the command server 130 and the vendor server 140.
  • the computing device 600 can be a mobile computing device, a laptop device, a smartphone, a tablet device, a phablet device, a video game console, a personal computing device, a stationary computing device, a server blade, an Internet appliance, a virtual computing device, a distributed computing device, a cloud-based computing device, or any appropriate processor-driven device.
  • the computing device 600 includes a memory 610, a processor 620, a storage drive 630, and an I/O port 640. Each of the components is coupled for electronic communication via a bus 699. Communication can be digital and/ or analog, and use any suitable protocol.
  • the memory 610 further comprises network
  • the network applications 612 can include a web browser, a mobile
  • an application an application that uses networking, a remote application executing locally, a network protocol application, a network management application, a network routing
  • the operating system 614 can be one of the Microsoft
  • Windows® family of operating systems e.g., Windows 95, 98, Me, Windows NT, Windows 2000, Windows XP, Windows XP x64 Edition, Windows Vista, Windows CE, Windows Mobile, Windows 8 or Windows 10
  • Linux HP-UX
  • UNIX Sun OS
  • Solaris Mac OS X
  • Alpha OS AIX
  • IRIX32 IRIX64
  • IRIX64 IRIX64
  • Other operating systems may be used but are not required, in some embodiments.
  • Microsoft Windows is a trademark of Microsoft Corporation.
  • the processor 620 can be a network processor (e.g., optimized for IEEE 802.11), a general purpose processor, an application-specific integrated circuit (ASIC) , a field programmable gate array (FPGA), a reduced instruction set controller (RISC) processor, an integrated circuit, or the like. Qualcomm Atheros, Broadcom Corporation, and Marvell Semiconductors manufacture processors that are optimized for IEEE 802.11 devices.
  • the processor 620 can be single core, multiple core, or include more than one processing elements.
  • the processor 620 can be disposed on silicon or any other suitable material.
  • the processor 620 can receive and execute instructions and data stored in the memory 610 or the storage drive 630.
  • the storage drive 630 can be any non-volatile type of storage such as a magnetic disc, EEPROM, Flash, or the like.
  • the storage drive 630 stores code and data for
  • the I/O port 640 further comprises a user interface
  • the user interface 642 can output to a display device and receive input from, for example, a keyboard.
  • the network interface 644 connects to a medium such as Ethernet or Wi-Fi or USB or UART for data input and output .
  • Computer software products may be written in any of various suitable programming languages, such as C, C++, C#, Oracle® Java, JavaScript, PHP, Python, Perl, Ruby, AJAX, and Adobe® Flash®.
  • the computer software product may be an independent application with data input and data display modules.
  • the computer software products may be classes that are instantiated as distributed objects.
  • the computer software products may also be component software such as Java Beans (from Sun Microsystems) or Enterprise Java Beans
  • the computer that is running the previously mentioned computer software may be connected to a network and may interface to other computers using this network.
  • the network may be on an intranet or the Internet, among others.
  • the network may be a wired network (e.g., using copper) , telephone network, packet network, an optical network
  • a wireless network e.g., using optical fiber
  • data and other information may be passed between the computer and components (or steps) of a system of the invention using a wireless network using a protocol such as USB, RS-232, SPI, Wi-Fi (IEEE standards 802.11, 802.11a, 802.11b, 802. lie, 802. llg, 802. Hi, 802.11 ⁇ , and 802.11ac, just to name a few examples) .
  • signals from a computer may be transferred, at least in part, wirelessly to components or other computers.
  • a user accesses a system on the World Wide Web (WWW) through a network such as the Internet.
  • WWW World Wide Web
  • the Web browser is used to download web pages or other content in various formats including HTML, XML, text, PDF, and postscript, and may be used to upload information to other parts of the system.
  • the Web browser may use uniform resource identifiers (URLs) to identify resources on the Web and hypertext transfer protocol (HTTP) in transferring files on the Web.
  • URLs uniform resource identifiers
  • HTTP hypertext transfer protocol

Abstract

A protocol and hardware agnostic interface is provided for physical devices. A layer is determined to be available based on detecting a modem slot of the physical device being mated to a first modem cartridge. Responsive to the mating detection, a data channel is set up between the modem slot and the first modem cartridge. An application data transfer command is transmitted from the first modem cartridge over the wireless portion of the data communication network using the first wireless protocol to the first modem server. The first modem server reverts the data transfer command back to the original format and relays the reverted data transfer command to a command server over the wide area network portion of the data communication network for fulfillment of the physical device request.

Description

ENABLING PHYSICAL DEVICES FOR A DATA COMMUNICATION NETWORK WITH A NETWORK-AGNOSTIC MODEM ABSTRACTION INTERFACE
Inventors: Alfred Tom and Jorg Brakensiek
CROSS-REFERENCE TO RELATED APPLICATIONS
[001] This application claims priority under 35 USC 119(e) to U.S. Application No. 62/274,379, filed on January 4, 2016 by Alfred Tom, et al. and entitled METHODS AND APPARATUS FOR A NETWORK-AGNOSTIC DEVICE WITH CONNECTIVITY ABSTRACTION
INTERFACE, and U.S. Application No. 62/401,888, filed on September 30, 2016 by Alfred Tom, et al. and entitled DEVICE AND CARTRIDGE COMPATIBILITY AND NETWORK ABSTRACTION SYSTEM, the content of both being incorporated herein by reference in their entirety.
FIELD OF THE INVENTION
[002] The invention relates generally to computer
networking, and more specifically, to abstracting network- specific modems from an application-layer in IoT (Internet of Things) servers in communication with physical devices.
BACKGROUND
[003] IoT such as sensors, smart appliances, sensors, and even books and other articles, become network citizens.
Different vendors have different mechanisms for providing networking capabilities to the devices . [004] Simple communication protocols can be implemented to keep costs down while facilitating basic communication and include SIGFOX, LoRaWAN, and Ingenu. More complex
communication protocols include cellular, such as LTE, HSDPA, lxEV-Do, lxRTT, GPRS and the like. A stationary device such as a water meter is in the field for multiple years and typically lacks the flexibility to connect to multiple communication protocols, depending on the location of the device. Another problem is that flexibility is also lacking, making it difficult to adapt to changes in protocols over time .
[005] What is needed is a robust technique to abstract modem communication hardware and protocols for easy updating and outsourcing.
SUMMARY
[006] These shortcomings are addressed by the present disclosure of methods, computer program products, and systems for abstracting modem protocols and hardware from physical devices .
[007] In one embodiment, a layer is determined to be available based on detecting a modem slot of the physical device being mated to a first modem cartridge. The first modem cartridge can include an RF (radio frequency) component for wireless communication with a first modem server
associated with the first modem cartridge using a first wireless communication protocol over a wireless portion of the data communication network. The first modem server is coupled to a wide area network portion of the data communication network .
[008] In another embodiment, responsive to the mating detection, a data channel is set up between the modem slot and the first modem cartridge for example with control messages. An application-layer data transfer command can then be sent over the data link from the modem shell to the first modem cartridge, the application data transfer command concerning the physical device. The format of the data transfer command can be changed, by the first modem cartridge, based on characteristics of the first wireless communication protocol. [009] Next, the application data transfer command is transmitted from the first modem cartridge over the wireless portion of the data communication network using the first wireless protocol to the first modem server. The first proxy server reverts the data transfer command back to the original format and relays the reverted data transfer command to a command server over the wide area network portion of the data communication network for fulfillment of the physical device request .
[010] Advantageously, IoT devices can be developed without concern for current or future modem technologies and network infrastructure .
BRIEF DESCRIPTION OF THE DRAWINGS
[Oil] In the following drawings, like reference numbers are used to refer to like elements. Although the following figures depict various examples of the invention, the
invention is not limited to the examples depicted in the figures .
[012] FIGS. 1A and IB are high-level block diagrams illustrating a system for network-agnostic modem abstraction interface, according to some embodiments.
[013] FIG. 2 is a more detailed block diagrams
illustrating a command server of FIG. 1, according to an embodiment .
[014] FIG. 3 is a sequence diagram illustrating data paths as interactions between components of the system of FIG. 1, according to an embodiment.
[015] FIG. 4 is a high-level flow diagram illustrating a method for enabling a physical device for sending HTTP commands over a data communication network without regard for a network protocol, according to an embodiment.
[016] FIG. 5 is a more detailed flow diagram illustrating an upstream case of a step of sending application-layer commands from a physical device to a vendor server for execution at the vendor server through the modem slot and the modem cartridge, from the method of FIG. 4, according to one embodiment .
[017] FIG. 6 is a block diagram illustrating an example computing device, according to one embodiment.
DETAILED DESCRIPTION
[018] The description below provides methods, computer program products, and systems for abstracting modem protocols and hardware from physical devices. One of ordinary skill in the art will recognize many additional variations made possible by the succinct description of techniques below.
[019] I. Systems for Network-Agnostic Modem Abstraction
Interface (FIGS. 1-3)
[020] FIGS. 1A and IB are high-level block diagrams illustrating a system 100 for network-agnostic modem
abstraction, according to some embodiments. The system 100 comprises a physical device 110, modem servers 120A-C, command server 130 and vendor server 140. The components can
communicate through a network 199. Many other embodiments of the system 100 are possible.
[021] The physical device 110, in one case, is an IoT device or a conventional device that has primary functionality other than computing, but has a network presence. For example, the IoT device can be a washing machine, a humidity sensor, a book, or the like. In other cases, the physical device 110 is a computing device. Application-layer command concerning the physical device 110 is sent to the command server, such as an error message for the washing machine, a humidity reading from the humidity sensor, and a current location for the book. Many other variations are possible.
[022] The physical device 110 includes a modem slot 112 for mating with a modem cartridge 115A. Alternatively, modem cartridge 115B, or any other compatible modem cartridge can be swapped out for modem cartridge 115A, an example of which is shown in FIG. IB (generically referred to as modem cartridge 115) . While the physical device 110 transfers application- layer data for the command server 130 regardless of an intermediary channel, the modem cartridge 115 conforms to a specific protocol of many different types. Example protocols include PHS, GSM, GPRS, EDGE, W-CDMA, UMTS, HSDPA, IS-95, lxRTT, lxEV-DO, lxEV-DV, TD-CDMA, TD-SCDMA, OFDM, WiMax, LTE, LoRaWAN, SigFox, 802.11, GPS, and any other appropriate current or future communication protocol. There can be one processor for the physical device 110 and the modem slot 112 and a separate processor for the modem cartridge 115A.
[023] Application-layer commands, generally, are higher layer communications between the physical device 110 and the command server 130. In one example, HTTP post commands embed data sent back and forth. In another example, a set of commands are customized by a device manufacturer and are recognizable by a vendor account specifically configured for the command set. The commands can be executed at the command server 130 for general functionality, executed in the context of a specific vendor account for specific functionality, or sent to the vendor server 140 for handling by a vendor.
[024] The modem cartridge 115 constitutes a lower layer of communications relative to the application-layer commands . In one embodiment, the modem slot 112 detects mating of a compatible modem cartridge 115 and, in response, one of the components initiates a data link protocol to enable higher layer communications. A state machine can move from an unconnected to a connected state as a prerequisite. In operation, several parameters can be exchanged between the modem slot 112 and the modem cartridge 115 to ensure
compatibility, and further, to optimize lower layer
communications. For example, the modem cartridge 115B may have to compress header or data field values to comply with the communication protocol for transmission. Thus, a URL that exceeds an allotted file size is compressed and then unpacked by the modem server 120 in order to generate a proper
application-level data packet. Still another example breaks up larger packets into smaller packets to comply with a protocol. On the receiving end, the modem server 120 can reconstruct the packets, possibly using a sequence number for each individual packet, to a proper application-level data packet .
[025] The modem cartridge 115 and modem slot 112 can communicate using a PPP (point-to-point protocol) or AT commands. In turn, an HTTP/IP layer in each component packetizes the PPP data into an HTTP command for transport across an IP network. However, in some embodiments, an optimized interface is implemented between the PPP layer and the HTTP/IP layer at each of the modem slot 112 and the modem cartridge 115. The optimized interface removes many of the artifacts required for a one-to-many communication because the modem slot 112 to modem cartridge 115 interface constitutes a one-to-one communication, with less complexity.
[026] The modem servers 120A-C (referred to generically as
120) each use different protocols to communicate with
different modem cartridges (e.g., modem cartridge 115A and modem cartridge 115G) for facilitating communications between the modem cartridge 115B and the command server 130. A proxy server can also be substituted for the modem server 120 or added as an additional component between the modem server 120 and command server 130. As an input, the modem server 120 receives according to a first protocol, and as an output, transmits according to a second protocol. Many different transitions are possible. Additional processing such as packet decompressing, packet reconstitution, and the like can also be performed by a local processor. Some implementations add additional data along with the application-layer commands . Other implementations execute lower layer commands embedded into the device 110 or the modem cartridge 115. Some
embodiments of the modem cartridge 115 communicate directly to the command server 130 or vendor server 140, or through alternative techniques, without the modem server 120.
[027] Additional components can be included in the communication channel between the modem cartridge 115 and the modem server 120. For longer-range wireless protocols, a base station with an antenna can receive RF signals transmitted from the modem cartridge 115 for relay to the modem server 120.
[028] The command server 130 communicates with the physical device 110 by either reacting to commands sent upstream, or by sending commands downstream. An HTTP POST command, for instance, transfers data concerning the physical device 110 for various purposes. To do so, a customer or vendor links the command server 130 to the physical device 110 with configurations . [029] The command server 130 can be implemented to handle commands in different ways according to context. Application- layer commands can be accompanied by a vendor account
identifier, in an implementation, to perform custom actions. One vendor can corral inputs for transfer to the vendor server 140 on a periodic basis. A second vendor can receive realtime commands, configuring an immediate application-layer response from the command server 130 followed by a more thorough response from the vendor server 140. A third vendor vendor can rely upon external Internet resources such as Google search engine or a personal assistant application (e.g., Apple Siri) to construct a response. Another
implementation of the command server response is based on an IoT command type identified, without regard to a particular vendor. Real-time parameter can also affect responses, such as connectivity issues or account quotas. Some embodiments of the command server 130 can be controlled by the vendor
(possibly eliminating the need for a separate vendor server 140), while other embodiments are controlled by a third party providing SaaS (software as a service) to several vendors, users, or clients. More detailed examples of the command server 130 are discussed below in relation to FIG. 2.
[030] In other embodiments of the system 100, additional network components can also be part of the system 100, such as firewalls, virus scanners, routers, switches, application servers, databases, as well as additional controllers, access points, access switches, stations, and the like. The network components can be implemented as hardware, software, or a combination of both (e.g., as shown in FIG. 6) .
[031] The network 199 couples the physical device 110, the modem servers 120A-C and the command sever 130 and/or vendor server 140, to a communication channel. Connections can be wired or wireless. The network 199 can be the Internet, a wide area network, an enterprise network, a local area network, or the like. The network 199 can be a data network, a cellular network, or combination. The modem cartridge 115B has a wireless or wired connection to the modem server 120B. The vendor server 140 is shown as directly connected on a back end to the command server 130, but can also be integrated, or be coupled to network 199 for an indirect connection to the command server 130.
[032] FIG. 2 is a more detailed block diagrams
illustrating the command server 130 of FIG. 1, according to an embodiment. Components can be implemented in source code, hardware, or both.
[033] In more detail, a user account module 210 can store configurations for a particular vendor. Physical device 110 can be registered and managed, by automated processes, or by manual input from a user interface. A vendor module 220 can be similar to the vendor server 140 of FIG. 1, but implemented locally to execute application-layer commands. Execution can be independent, or in cooperation with the vendor server 140. Some embodiments of the command server 130 can be owned by the vendor. A command translation engine 230 provides API
(application programming interface) service for communication with vendor servers. A network module 240 provides lower layer communication with the modem server 120 (or the vendor server 140) and can include networking software, antenna, radios, and the like.
[034] FIG. 3 is a sequence diagram illustrating data paths as interactions between components of the system of FIG. 1, according to an embodiment. Within the components 112, 115, 120, 130, 140, internal interface elements are shown as an abstract example.
[035] In particular, an application-layer command, in one instance, is initially output by the modem shell 112 to the modem cartridge 115 over a first protocol (e.g., a point-to- point protocol) (interaction 302) . The modem cartridge 115, mated for electrical communication with the modem shell 112, transmits the application-layer command, embedded within a third protocol, to the modem server 120. Additional hops (not shown) may be necessary as described above. Next, the modem server 120 uses a fourth protocol to send the application- layer command, as embedded, to the command server 130.
Finally, the vendor server 140 receives the application-layer commands as transmitted by the command server 130.
[036] Internally, application-layer commands are directly sent, over the heterogeneous channel types, between the device application 310A and the vendor application 310E for
execution. The intermediate layers 320A and 320E expose and embed data in a transport frame such as TCP/IP or a form of HTTP. Other intermediate layers 320B-D transition from one protocol to another protocol, along with any other necessary intermediary processing that enables transmission of the application-layer commands. Note that the layers are abstract groupings of functionality that can be varied (e.g., Ethernet port 330E can be a Wi-Fi port or 4G port) .
[037] II. Methods for Network-Agnostic Modem Abstraction
Interface (FIGS. 4 and 5)
[038] FIG. 4 is a high-level flow diagram illustrating a method for enabling a physical device for sending HTTP commands over a data communication network without regard for a network protocol, according to an embodiment. The method 400 is one example of the operation for the system 100 or other referral systems, without limitation.
[039] At step 410, a physical device is registered with a command server. In more detail, a user account can be set up and linked to a vendor account responsive to scanning a QR code or a UPC label of a physical device. Also, a serial number can be entered for a unique identification of a device. When communicating with a command server, identifier
information can be embedded in upstream packets for device or user identification. In some embodiments, a physical device is preprogrammed to establish a connection with a command server out of the box, with a preconfigured URL to find a command server.
[040] At step 420, responsive to insertion of a modem cartridge into a slot, at step 420, a specific modem cartridge is configured for data communications with a modem slot.
Then, at step 430, once the data channel is available from the configuration of 420, at step 440, application-layer commands are sent between a physical device and a vendor server, over any type of network, according to protocol compatibility of the modem cartridge. In an upstream case, application-layer commands are sent from a physical device to the vendor server for execution at the vendor server (case discussed in FIG. 5) . In a downstream case, application-layer commands are sent from a vendor server to a physical device for execution.
[041] FIG. 5 is a more detailed flow diagram illustrating the step of sending commands upstream from a physical device and to a vendor server for execution at a vendor server through the modem slot and the modem cartridge, from the method of FIG. 4, according to one embodiment.
[042] A physical device is registered to a vendor server.
The initial communication may require a vendor or user account to be configured while follow-ups use the stored settings, possibly over an authenticated and/ or secured connection. At step 510, a determination if made whether the command is received from the physical device at the command server. At step 520, when a command is received by a physical device or a vendor the command is routed to the vendor server for
execution, at step 530, an acknowledgment message/execution results are received and may optionally be forwarded to the physical device.
[043] III. Generic Computing Device (FIG. 6)
[044] FIG. 6 is a block diagram illustrating an exemplary computing device 600 for use in the system 100 of FIG. 1, according to one embodiment. The computing device 600 is an exemplary device that is implementable for each of the components of the system 100, including the physical device 110, the modem server 120, the command server 130 and the vendor server 140. The computing device 600 can be a mobile computing device, a laptop device, a smartphone, a tablet device, a phablet device, a video game console, a personal computing device, a stationary computing device, a server blade, an Internet appliance, a virtual computing device, a distributed computing device, a cloud-based computing device, or any appropriate processor-driven device.
[045] The computing device 600, of the present embodiment, includes a memory 610, a processor 620, a storage drive 630, and an I/O port 640. Each of the components is coupled for electronic communication via a bus 699. Communication can be digital and/ or analog, and use any suitable protocol.
[046] The memory 610 further comprises network
applications 612 and an operating system 614. The network applications 612 can include a web browser, a mobile
application, an application that uses networking, a remote application executing locally, a network protocol application, a network management application, a network routing
application, or the like.
[047] The operating system 614 can be one of the Microsoft
Windows® family of operating systems (e.g., Windows 95, 98, Me, Windows NT, Windows 2000, Windows XP, Windows XP x64 Edition, Windows Vista, Windows CE, Windows Mobile, Windows 8 or Windows 10), Linux, HP-UX, UNIX, Sun OS, Solaris, Mac OS X, Alpha OS, AIX, IRIX32, or IRIX64. Other operating systems may be used but are not required, in some embodiments. Microsoft Windows is a trademark of Microsoft Corporation. [048] The processor 620 can be a network processor (e.g., optimized for IEEE 802.11), a general purpose processor, an application-specific integrated circuit (ASIC) , a field programmable gate array (FPGA), a reduced instruction set controller (RISC) processor, an integrated circuit, or the like. Qualcomm Atheros, Broadcom Corporation, and Marvell Semiconductors manufacture processors that are optimized for IEEE 802.11 devices. The processor 620 can be single core, multiple core, or include more than one processing elements. The processor 620 can be disposed on silicon or any other suitable material. The processor 620 can receive and execute instructions and data stored in the memory 610 or the storage drive 630.
[049] The storage drive 630 can be any non-volatile type of storage such as a magnetic disc, EEPROM, Flash, or the like. The storage drive 630 stores code and data for
applications .
[050] The I/O port 640 further comprises a user interface
642 and a network interface 644. The user interface 642 can output to a display device and receive input from, for example, a keyboard. The network interface 644 connects to a medium such as Ethernet or Wi-Fi or USB or UART for data input and output . [051] Many of the functionalities described herein can be implemented with computer software, computer hardware, or a combination .
[052] Computer software products (e.g., non-transitory computer products storing source code) may be written in any of various suitable programming languages, such as C, C++, C#, Oracle® Java, JavaScript, PHP, Python, Perl, Ruby, AJAX, and Adobe® Flash®. The computer software product may be an independent application with data input and data display modules. Alternatively, the computer software products may be classes that are instantiated as distributed objects. The computer software products may also be component software such as Java Beans (from Sun Microsystems) or Enterprise Java Beans
(EJB from Sun Microsystems) .
[053] Furthermore, the computer that is running the previously mentioned computer software may be connected to a network and may interface to other computers using this network. The network may be on an intranet or the Internet, among others. The network may be a wired network (e.g., using copper) , telephone network, packet network, an optical network
(e.g., using optical fiber), or a wireless network, or any combination of these. For example, data and other information may be passed between the computer and components (or steps) of a system of the invention using a wireless network using a protocol such as USB, RS-232, SPI, Wi-Fi (IEEE standards 802.11, 802.11a, 802.11b, 802. lie, 802. llg, 802. Hi, 802.11η, and 802.11ac, just to name a few examples) . For example, signals from a computer may be transferred, at least in part, wirelessly to components or other computers.
[054] In an embodiment, with a Web browser executing on a computer workstation system, a user accesses a system on the World Wide Web (WWW) through a network such as the Internet. The Web browser is used to download web pages or other content in various formats including HTML, XML, text, PDF, and postscript, and may be used to upload information to other parts of the system. The Web browser may use uniform resource identifiers (URLs) to identify resources on the Web and hypertext transfer protocol (HTTP) in transferring files on the Web.
[055] IV. Additional Embodiments
[056] Generally, one of ordinary skill in the art will recognize that the examples set forth herein are non-limiting and only illustrative of widely-applicable principles.
Accordingly, this description of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form described, and many modifications and variations are possible in light of the teaching above. The embodiments were chosen and described in order to best explain the principles of the invention and its practical
applications. This description will enable others skilled in the art to best utilize and practice the invention in various embodiments and with various modifications as are suited to a particular use. The scope of the invention is defined by the following claims .

Claims

CLAIMS We claim:
1. A processor-implemented method for protocol- agnostic modem communications in a physical device that is wirelessly connected to a data communication network for fulfilling data transfer requests of the physical device, the method comprising the steps of:
determining that a data channel is available based on detecting a modem slot of the physical device being mated to a first modem cartridge, wherein the first modem cartridge comprises an RF (radio frequency) component for wireless communication with a first modem server associated with the first modem cartridge using a first wireless communication protocol over a wireless portion of the data communication network, wherein the first modem server is coupled to a wide area network portion of the data communication network;
responsive to the data channel being available, setting up the data channel between the modem slot and the first modem cartridge; sending an application-layer data transfer command over the data link from the modem shell to the first modem cartridge, the application data transfer command concerning the physical device;
changing the format of the data transfer command, by the first modem cartridge, based on characteristics of the first wireless communication protocol; and transmitting the application data transfer command from the first modem cartridge over the wireless portion of the data communication network using the first wireless protocol to the first modem server, wherein the first modem server reverts the data transfer command back to the original format and relays the reverted data transfer command to a command server over the wide area network portion of the data communication network for fulfillment of the physical device request.
2. The method of claim 1 wherein the format change comprises a compressing of the data transfer command.
3. The method of claim 1 wherein the format change comprises packetizing the data transfer command into two or more smaller sized data transfer commands.
4. The method of claim 1 further comprising:
removing the first modem cartridge from the modem slot; determining that the data channel is available based on detecting the modem slot of the physical device being mated to a second modem cartridge, wherein the second modem cartridge comprises an RF component for wireless communication with a second modem server associated with the second modem cartridge using a second wireless communication protocol over the wireless portion of the data communication network, wherein the second proxy server is coupled to the wide area network portion of the data communication network,
wherein the format change comprises changing the format of the data transfer command based on
characteristics of the second wireless communication protocol; and
transmitting the application data transfer command from the second modem cartridge over the wireless portion of the data communication network using the second wireless protocol to the second modem server, wherein the second modem server reverts the data transfer command back to the original format and relays the reverted data transfer command to the command server over the wide area network portion of the data communication network for fulfillment of the physical device request.
5. The method of claim 1 further wherein further comprising :
removing the first modem cartridge from the device;
determining that the data channel is available based on detecting the modem slot of the physical device being mated to a third modem cartridge, wherein the third modem cartridge comprises an RF component for wireless communication with a third modem server associated with the third modem cartridge using a third wireless communication protocol over the wireless portion of the data communication network, wherein the third modem server is coupled to the wide area network portion of the data communication network; and
sending the application-layer data transfer command
directly to the vendor server without the format change .
6. The method of claim 1 further comprising:
removing the first modem cartridge from the device; determining that the data channel is available based on detecting the modem slot of the physical device being mated to a fourth modem cartridge; and sending the application-layer data transfer command
directly to the vendor server without the format change .
7. The method of claim 1 further comprising at least one of:
sending a control message over the data channel, from the modem slot to the first modem cartridge, to configure datagram settings of the first modem cartridge; and
sending a control message over the data channel, from the first modem cartridge to the modem slot, to configure datagram settings of the modem slot.
8. The method of claim 1, wherein the application transfer command comprises an HTTP command.
9. The method of claim 8, wherein the HTTP command is address to the first modem server.
10. The method of claim 8, wherein the HTTP command is addressed to the vendor server.
11. The method of claim 1, wherein the physical device comprises an IOT physical device manufactured with the modem shell and without the first cartridge.
12. A non-transitory computer-readable medium storing source code that, when executed by a processor, performs a method for protocol-agnostic modem communications in a physical device that is wirelessly connected to a data communication network for fulfilling data transfer requests of the physical device, the method comprising the steps of:
determining that a data channel is available based on detecting a modem slot of the physical device being mated to a first modem cartridge, wherein the first modem cartridge comprises an RF component for wireless communication with a first modem server associated with the first modem cartridge using a first wireless communication protocol over a wireless portion of the data communication network, wherein the first modem server is coupled to a wide area network portion of the data communication network;
responsive to the data channel being available, setting up a data channel between the modem slot and the first modem cartridge; sending an application-layer data transfer command over the data link from the modem shell to the first modem cartridge, the application data transfer command concerning the physical device;
changing the format of the data transfer command, by the first modem cartridge, based on characteristics of the first wireless communication protocol; and transmitting the application data transfer command from the first modem cartridge over the wireless portion of the data communication network using the first wireless protocol to the first modem server, wherein the first modem server reverts the data transfer command back to the original format and relays the reverted data transfer command to a command server over the wide area network portion of the data communication network for fulfillment of the physical device request.
PCT/US2017/012228 2016-01-04 2017-01-04 Enabling physical devices for a data communication network with a network-agnostic modem abstraction interface WO2017120268A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662274379P 2016-01-04 2016-01-04
US62/274,379 2016-01-04
US201662401888P 2016-09-30 2016-09-30
US62/401,888 2016-09-30

Publications (1)

Publication Number Publication Date
WO2017120268A1 true WO2017120268A1 (en) 2017-07-13

Family

ID=59273986

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2017/012228 WO2017120268A1 (en) 2016-01-04 2017-01-04 Enabling physical devices for a data communication network with a network-agnostic modem abstraction interface

Country Status (1)

Country Link
WO (1) WO2017120268A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678562A (en) * 1995-11-09 1997-10-21 Burdick, Inc. Ambulatory physiological monitor with removable disk cartridge and wireless modem
US20020013162A1 (en) * 1999-03-22 2002-01-31 Ray Whitney Digital, wireless PC/PCS modem
US20030058893A1 (en) * 2001-09-27 2003-03-27 Broadcom Corporation Synchronization of multiple cable modem termination systems
US20040121801A1 (en) * 1999-03-25 2004-06-24 Alfred Tom Methods and apparatus for a multi-standard wireless communication and cellular telephone system
US20140281046A1 (en) * 2013-03-15 2014-09-18 Silicon Graphics International Corp. Block device management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678562A (en) * 1995-11-09 1997-10-21 Burdick, Inc. Ambulatory physiological monitor with removable disk cartridge and wireless modem
US20020013162A1 (en) * 1999-03-22 2002-01-31 Ray Whitney Digital, wireless PC/PCS modem
US20040121801A1 (en) * 1999-03-25 2004-06-24 Alfred Tom Methods and apparatus for a multi-standard wireless communication and cellular telephone system
US20030058893A1 (en) * 2001-09-27 2003-03-27 Broadcom Corporation Synchronization of multiple cable modem termination systems
US20140281046A1 (en) * 2013-03-15 2014-09-18 Silicon Graphics International Corp. Block device management
US20150046606A1 (en) * 2013-03-15 2015-02-12 Silicon Graphics International Corp. Block device management

Similar Documents

Publication Publication Date Title
US11968100B2 (en) Service enabler function
KR100659168B1 (en) System and method for identifying and accessing network services
US9596007B2 (en) Communication device
EP2949136B1 (en) Communication between machine-to-machine service layers and transport network
WO2016196947A1 (en) Method and appparatus of interworking m2m and iot devices and applications with different service layers
JP2005510802A5 (en)
CN110248364B (en) IOT equipment network distribution method, device, equipment and medium
US9661667B2 (en) Communication device
CN105227346A (en) A kind of method for configuring routers based on scanning Quick Response Code
RU2676418C2 (en) Method and apparatus for device-specific communication between application programs
US20130097274A1 (en) Method and system for managing a slave device through a master device
US11271913B2 (en) Communication system, communication device, and non-transitory computer-readable recording medium storing computer-readable instructions for terminal device
CN112995133A (en) Analysis method, device and system based on modbus protocol
CN108337308A (en) LWM2M clients and host computer data communications method, device and its system
KR20150043533A (en) Web-based over-the-air provisioning and activation of mobile terminals
CN111542035A (en) Cloud service connection method, system and related equipment
CN107368334B (en) Business plug-in interaction system and method
CN108989157B (en) Method and device for controlling intelligent equipment
WO2017120268A1 (en) Enabling physical devices for a data communication network with a network-agnostic modem abstraction interface
US8812605B2 (en) Method for a mobile email client to access to a server, and mobile terminal thereof
CN111884938A (en) Router information acquisition method and device
CN114285668B (en) Gate testing method and device, storage medium and electronic equipment
JP2016162122A (en) Information processing apparatus, program, and communication system
CN102137058B (en) A kind of page access method and apparatus based on tab page
US20210051213A1 (en) Network services controller for cloud-based control of connectivity for heterogeneous network infrastructure

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17736283

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17736283

Country of ref document: EP

Kind code of ref document: A1