IP Library Granted Patent US 9,009,230
Granted Patent B1
US 9,009,230 · App. 14/482,963 · Granted Apr 14, 2015

Machine-to-machine instant messaging

Inventors: Chris Matthieu (Tempe, AZ); Geir Ramleth (Palo Alto, CA)
Assignee: Citrix Systems, Inc.
H04L67/12H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,009,230
App. No.
14/482,963
Granted
Apr 14, 2015
Kind
B1
Abstract

Techniques and systems for interfacing Internet Things (IoT) devices using different connection protocols are provided. For example, computing device, a method, and a computer-program product may be provided, and may include one or more data processors and a receiver for receiving a communication from a first IoT device communicatively connected to the computing device using a first connection protocol. The communication is received using the first connection protocol. A non-transitory computer-readable storage medium may contain instructions which when executed on the one or more data processors, cause the one or more processors to determine a second IoT device to which the communication is intended to be transmitted, determine a second connection protocol used by the second IoT device, and translate the communication to the second connection protocol. A transmitter may transmit the communication to the second IoT device that is communicatively connected to the computing device using the second connection protocol. The communication is transmitted using the second connection protocol.

Claims (59)

1. A computing device of a messaging system for interfacing Internet Things (IoT) devices using different connection protocols, comprising:

one or more data processors;

a receiver configured to receive a first registration request from a first IoT device and a second registration request from a second IoT device, wherein the first registration request includes a request to register the first IoT device with the messaging system, and wherein the second registration request includes a request to register the second IoT device with the messaging system;

a non-transitory computer-readable storage medium containing instructions which when executed on the one or more data processors, cause the one or more processors to register the first IoT device and the second IoT device with the messaging system, wherein registering the first IoT device includes assigning a first universally unique identifier to the first IoT device, and wherein registering the second IoT device includes assigning a second universally unique identifier to the second IoT device;

wherein the receiver is further configured to:

receive streamed sensor data from one or more sensors of the first IoT device; and

receive a subscribe request from the second IoT device, wherein the subscribe request includes the first universally unique identifier and a request to allow the second IoT device to subscribe to communications from the first IoT device, wherein the first IoT device is communicatively connected to the computing device using a first connection protocol, and wherein the communication is received using the first connection protocol;

wherein the instructions which when executed on the one or more data processors, further cause the one or more processors to perform operations including:

authorizing the second IoT device to subscribe to communications from the first IoT device;

monitoring the streamed sensor data for one or more communications corresponding to one or more events;

determining a communication of the one or more communications is to be transmitted to the second IoT device;

determining a second connection protocol used by the second IoT device; and

translating the communication to the second connection protocol, wherein the first connection protocol is different than the second connection protocol, and wherein the first connection protocol and the second connection protocol include machine-to-machine connection protocols; and

a transmitter for transmitting the communication to the second IoT device, wherein the second IoT device is communicatively connected to the computing device using the second connection protocol, wherein the communication is transmitted using the second connection protocol, and wherein the first IoT device is not configured to communicate using the second connection protocol and the second IoT device is not configured to communicate using the first connection protocol.

2. The computing device of claim 1 , wherein the communication includes the second universally unique identifier, and wherein the second IoT device and the second connection protocol used by the second IoT device are determined based on the second universally unique identifier.

3. The computing device of claim 1 , wherein:

the receiver is configured to receive a response to the communication from the second IoT device, wherein the response is received using the second connection protocol;

the non transitory computer readable storage medium contains instructions which when executed on the one or more data processors, cause the one or more processors to translate the response to the first connection protocol; and

the transmitter is configured to transmit the response to the first IoT device, wherein the response is transmitted using the first connection protocol.

4. The computing device of claim 1 , wherein the receiver is further configured to receive a second communication from a third-party messaging account, and the transmitter is configured to transmit the second communication to the second IoT device, wherein the second communication controls a function of the second IoT device.

5. The computing device of claim/, wherein the second communication includes a message and a tag, the tag identifying a destination program of the second IoT device.

6. A computer-implemented method of interfacing Internet Things (IoT) devices using different connection protocols, comprising:

receiving, on a computing device, a first registration request from a first IoT device and a second registration request from a second IoT device, wherein the first registration request includes a request to register the first IoT device with a messaging system, and wherein the second registration request includes a request to register the second IoT device with the messaging system;

registering the first IoT device and the second IoT device with the messaging system, wherein registering the first IoT device includes assigning a first universally unique identifier to the first IoT device, and wherein registering the second IoT device includes assigning a second universally unique identifier to the second IoT device;

receiving streamed sensor data from one or more sensors of the first IoT device;

receiving a subscribe request from the second IoT device, wherein the subscribe request includes the first universally unique identifier and a request to allow the second IoT device to subscribe to communications from the first IoT device, wherein the first IoT device is communicatively connected to the computing device using a first connection protocol, and wherein the communication is received using the first connection protocol;

authorizing the second IoT device to subscribe to communications from the first IoT device;

monitoring the streamed sensor data for one or more communications corresponding to one or more events;

determining a communication of the one or more communications is to be transmitted to the second IoT device;

determining a second connection protocol used by the second IoT device;

translating the communication to the second connection protocol, wherein the first connection protocol is different than the second connection protocol, and wherein the first connection protocol and the second connection protocol include machine-to-machine connection protocols; and

transmitting the communication to the second IoT device, wherein the second IoT device is communicatively connected to the computing device using the second connection protocol, wherein the communication is transmitted using the second connection protocol, and wherein the first IoT device is not configured to communicate using the second connection protocol and the second IoT device is not configured to communicate using the first connection protocol.

7. The method of claim 6 , wherein the communication includes the second universally unique identifier assigned to the second IoT device, and wherein the second IoT device and the second connection protocol used by the second IoT device are determined based on the second universally unique identifier.

8. The method of claim 6 , further comprising:

receiving a response to the communication from the second IoT device, wherein the response is received using the second connection protocol;

translating the response to the first connection protocol; and

transmitting the response to the first IoT device, wherein the response is transmitted using the first connection protocol.

9. The method of claim 6 , further comprising:

receiving a second communication from a third-party messaging account; and

transmitting the second communication to the second IoT device, wherein the second communication controls a function of the second IoT device, and wherein the second communication includes a message and a tag, the tag identifying a destination program of the second IoT device.

10. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium of a computing device, including instructions configured to cause one or more data processors to:

receive a first registration request from a first IoT device and a second registration request from a second IoT device, wherein the first registration request includes a request to register the first IoT device with a messaging system, and wherein the second registration request includes a request to register the second IoT device with the messaging system;

register the first IoT device and the second IoT device with the messaging system, wherein registering the first IoT device includes assigning a first universally unique identifier to the first IoT device, and wherein registering the second IoT device includes assigning a second universally unique identifier to the second IoT device;

receive streamed sensor data from one or more sensors of the first IoT device;

receive a subscribe request from the second IoT device, wherein the subscribe request includes the first universally unique identifier and a request to allow the second IoT device to subscribe to communications from the first IoT device, wherein the first IoT device is communicatively connected to the computing device using a first connection protocol, and wherein the communication is received using the first connection protocol;

authorize the second IoT device to subscribe to communications from the first IoT device;

monitor the streamed sensor data for one or more communications corresponding to one or more events;

determine a communication of the one or more communications is to be transmitted to the second IoT device;

determine a second connection protocol used by the second IoT device;

translate the communication to the second connection protocol, wherein the first connection protocol is different than the second connection protocol, and wherein the first connection protocol and the second connection protocol include machine-to-machine connection protocols; and

transmit the communication to the second IoT device, wherein the second IoT device is communicatively connected to the computing device using the second connection protocol, wherein the communication is transmitted using the second connection protocol, and wherein the first IoT device is not configured to communicate using the second connection protocol and the second IoT device is not configured to communicate using the first connection protocol.

11. The computer-program product of claim 10 , wherein the communication includes the second universally unique identifier assigned to the second IoT device, and wherein the second IoT device and the second connection protocol used by the second IoT device are determined based on the second universally unique identifier.

12. The computer-program product of claim 10 , further comprising instructions configured to cause the one or more data processors to:

receive a response to the communication from the second IoT device, wherein the response is received using the second connection protocol;

translate the response to the first connection protocol; and

transmit the response to the first IoT device, wherein the response is transmitted using the first connection protocol.

13. The computer-program product of claim 10 , further comprising instructions configured to cause the one or more data processors to:

receive a second communication from a third-party messaging account; and

transmit the second communication to the second IoT device, wherein the second communication controls a function of the second IoT device, and wherein the second communication includes a message and a tag, the tag identifying a destination program of the second IoT device.

Assignments (10)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2015
From: OCTOBLU, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 034666/0650 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2014
From: MATTHIEU, CHRIS; RAMLETH, GEIR
To: OCTOBLU INC.
Reel/Frame 034427/0829 →