IP Library Granted Patent US 8,667,184
Granted Patent B2
US 8,667,184 · App. 11/144,327 · Granted Mar 4, 2014

Distributed kernel operating system

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 8,667,184
App. No.
11/144,327
Granted
Mar 4, 2014
Kind
B2
Abstract

An improved distributed operating system over a network of computer systems is described. Existing distributed operating systems have transmission performance limitations dictated by their inability to (1) reliably handle transient communication failures and rapid node reboots, (2) provide a transmission protocol that adapts to link reliability, and (3) allow transmissions to occur over an arbitrary combination of communication links. The systems and methods described herein solve these problems by providing a reliable node-to-node session protocol that offers high performance message delivery and multi-interface management and support. This is done by transmitting all data between two nodes of the operating system over a single connection that may dynamically exploit multiple interfaces between the nodes.

Claims (33)

1. A method of managing communication between multiple nodes in a distributed message-passing operating system comprising:

establishing by a media selection layer, a single node-to-node connection between a local node and a single remote node, the single node-to-node connection associated with a local connection identifier and a remote connection identifier, the local connection identifier associated with the local node and the remote connection identifier associated with the remote node, wherein one or more user-level connections are established for transmission of data over the single node-to-node connection;

maintaining, at the local node, a pool of available communications networks that interconnect the local node with the single remote node, wherein the pool of available communications networks are utilized for the transmission of the data over the single node-to-node connection and the one or more user-level connections;

determining if one of the available communication networks has failed;

removing the failed communication network from the pool;

transmitting, periodically across the failed communication network, maintenance packets from the local node to the single remote node; and

determining whether the failed communication network has recovered.

2. The method of claim 1 , further comprising:

adding the recovered communication network to the pool if the failed communication network has recovered.

3. The method of claim 1 , wherein the determining if one of the plurality of communication networks has failed further comprises receiving notification that a network driver has died.

4. The method of claim 1 , further comprising:

sharing transmission of a plurality of packets between the local node and the single remote node via networks in the pool of available communication networks.

5. The method of claim 1 , further comprising selecting a subset of communication networks from the pool of available communication networks; and

sharing transmission of a plurality of packets between the local node and the single remote node over networks in the subset of communication networks.

6. The method of claim 5 , where the subset of communication networks includes networks with similar performance characteristics.

7. The method of claim 5 , further comprising:

determining, for each of the plurality of packets, a fastest communication network from the subset of communication networks, the fastest communication network capable of transmitting a packet faster than other communication networks in the subset of communication networks; and

transmitting the corresponding packets over the determined fastest communication networks.

8. The method of claim 1 , further comprising:

designating one of the pool of communications networks as a preferred communication network; and

transmitting a plurality of packets via any other communication network in the pool if the preferred communication network fails.

9. The method of claim 4 , further comprising:

designating a subset of the pool of communications networks as preferred communication networks; and

transmitting the plurality of packets via any other communication network in the pool if each of the subset of preferred communication networks fails.

10. The method of claim 1 , further comprising:

designating one of the pool of communications networks as an exclusive communication network; and

transmitting the plurality of packets over the exclusive communication network.

11. The method of claim 4 , further comprising:

designating a subset of the pool of communications networks as exclusive communication networks; and

transmitting the plurality of packets only over the subset of exclusive communication networks.

12. The method of claim 1 , wherein a media selection layer in the local node manages the pool of available communications networks that interconnect the local node with the single remote node and the media selection layer determines a media selection policy for how data is transmitted from the local node to the single remote node.

13. The method of claim 12 , wherein the media selection policy comprises one of a load balance policy, a preferred policy and an exclusive policy.

14. The method of claim 13 , wherein the load balance policy enables the media selection layer to determine, for each packet, which of the communication networks to utilize to transmit each packet to the single remote node based on which network can deliver each packet to the single remote node fastest.

Assignments (14)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
REGISTRATION Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0398 →
CHANGE OF SEAT Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0434 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Jun 3, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024483/0045 →
SECURITY AGREEMENT Recorded May 8, 2009
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; BECKER SERVICE-UND VERWALTUNG GMBH; CROWN AUDIO, INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS (MICHIGAN), INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS HOLDING GMBH; HARMAN BECKER AUTOMOTIVE SYSTEMS, INC.; HARMAN CONSUMER GROUP, INC.; HARMAN DEUTSCHLAND GMBH; HARMAN FINANCIAL GROUP LLC; HARMAN HOLDING GMBH & CO. KG; HARMAN MUSIC GROUP, INCORPORATED; HARMAN SOFTWARE TECHNOLOGY INTERNATIONAL BETEILIGUNGS GMBH; HARMAN SOFTWARE TECHNOLOGY MANAGEMENT GMBH; HBAS INTERNATIONAL GMBH; HBAS MANUFACTURING, INC.; INNOVATIVE SYSTEMS GMBH NAVIGATION-MULTIMEDIA; JBL INCORPORATED; LEXICON, INCORPORATED; MARGI SYSTEMS, INC.; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS CANADA CORPORATION; QNX SOFTWARE SYSTEMS CO.; QNX SOFTWARE SYSTEMS GMBH; QNX SOFTWARE SYSTEMS GMBH & CO. KG; QNX SOFTWARE SYSTEMS INTERNATIONAL CORPORATION; QNX SOFTWARE SYSTEMS, INC.; XS EMBEDDED GMBH (F/K/A HARMAN BECKER MEDIA DRIVE TECHNOLOGY GMBH)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 022659/0743 →
CHANGE OF NAME Recorded Sep 12, 2006
From: QNX SOFTWARE SYSTEMS
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 018237/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2006
From: BOYD, ANDREW
To: QNX SOFTWARE SYSTEMS
Reel/Frame 017183/0111 →