IP Library Granted Patent US 8,849,972
Granted Patent B2
US 8,849,972 · App. 12/357,001 · Granted Sep 30, 2014

Method and system for dispatching received sessions between a plurality of instances of an application using the same IP port

Inventor: Kirill Tsym (Modiin, IL)
Assignee: Polycom, Inc.
H04L67/1008H04L67/1029H04L67/1031H04L67/1002
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,849,972
App. No.
12/357,001
Granted
Sep 30, 2014
Kind
B2
Abstract

A logical module, referred as Load Balancer Module (LBM), is disclosed which listens to one of certain common predefined port number. These well-known ports for receiving communication video conference signaling and control protocols is thereafter load balanced and multi-plexed to a number of instances of protocol stack applications. By balancing the multi-media data stream across a multitude of application instances multiple multi-media data streams may be serviced and processed by a single internet protocol host processor. A mutipoint control unit (MCU) may therefore process multiple input data streams containing multi-media video conferencing information.

Claims (61)

1. A method of load balancing a plurality of instances of processes supporting a plurality of multi-media conferences over an internet protocol network comprising:

instantiating a load balancing module on a host processing unit;

instantiating a plurality of instances of a protocol stack on the host processing unit wherein each instance of the protocol stack is instantiated in response to a request from the load balancing module;

connecting the load balancing module to a listening port of an operating system controlling the host processing unit;

passing at least one socket descriptor between each of the plurality of instances of the protocol stack and the load balancing module;

receiving inbound multi-media data packets at the listening port from a plurality of endpoints participating in a plurality of multimedia conferences;

selecting, by the load balancing module, an instance from the plurality of instances of the protocol stack, to process each received inbound multi-media data packet from an endpoint from the plurality of endpoints;

associating, by the load balancing module, the endpoint with the selected instance for the duration of a multi-media conference;

transferring the received inbound multi-media data packets toward the associated instance via the at least one socket descriptor independently of the load balancing module;

receiving inbound multi-media data packets not previously associated with an instance of the protocol stack by the load balancing module;

instantiating, at the request of the load balancing module, a new instance of the protocol stack; and

passing, using a file descriptor transfer mechanism, the received inbound multi-media data packets not previously associated with an instance of the protocol stack to the instantiated new instance;

wherein the multi-media data comprises at least one data type selected from the group consisting of control and signaling that comply with the protocol stack.

2. The method of claim 1 , wherein the load balancing module services multimedia conferences using H.323 protocol.

3. The method of claim 2 , wherein inbound and outbound multi-media data packets from an endpoint are handled directly via the at least one socket descriptor by the selected instance of the protocol stack that was associated to the endpoint for the duration of a multimedia conference.

4. The method of claim 1 , wherein the load balancing module services Session Initiation Protocol (SIP) messages.

5. The method of claim 4 , wherein the transport protocol used to carry the SIP data is User Datagram Protocol (UDP).

6. The method of claim 1 , wherein the socket descriptor passed between each one of the one or more instances and the load balancing module is passed via UNIX domain sockets.

7. The method of claim 1 wherein the host processing unit is a multipoint control unit.

8. An Internet Protocol (IP) host comprising:

a programmable processing unit;

a computer readable medium; and

an operating system stored in the computer readable medium for controlling the programmable processing unit;

wherein the programmable processing unit is configured to:

instantiate a load balancing module on the programmable processing unit;

instantiate a plurality of instances of a protocol stack on the programmable processing unit wherein each instance of the protocol stack is instantiated in response to a request from the load balancing module;

connect the load balancing module to a listening port of the operating system;

pass at least one socket descriptor between each of the plurality of instances of the protocol stack and the load balancing module;

receive inbound multi-media video conference data packets at the listening port from a plurality of endpoints participating in a plurality of multi-media conferences;

select, by the load balancing module an instance from the plurality of instances of the protocol stack to process each received inbound multi-media conference data packet from the plurality of endpoints;

associate, by the load balancing module, the endpoint with the selected instance for duration of a multi-media conference;

transfer the received inbound multi-media data packets toward the associated instance via the at least one socket descriptor independently of the load balancing module;

receive inbound multi-media data packets not previously associated with an instance of the protocol stack by the load balancing module;

instantiate, at the request of the load balancing module, a new instance of a protocol stack; and

passing, using a file descriptor transfer mechanism, the received inbound multi-media data packets not previously associated with an instance of the protocol stack to the instantiated new instance;

wherein the multi-media data comprises at least one data type selected from the group consisting of control and signaling that comply with the protocol stack.

9. The host of claim 8 , wherein the load balancing module services multimedia conferences using H.323 protocol.

10. The host of claim 9 , wherein inbound and outbound multi-media conference data packets from an endpoint are handled directly via the at least one socket descriptor by the selected instance of the protocol stack that was associated to said endpoint for duration of a multimedia conference.

11. The host of claim 8 , wherein the load balancing module services Session Initiation Protocol (SIP) messages.

12. The host of claim 11 , wherein the transport protocol used to carry the SIP data is User Datagram Protocol (UDP).

13. The host of claim 8 , wherein the programmable processing unit is further configured to pass the at least one socket descriptor between each of the plurality of instances and the load balancing module via UNIX domain sockets.

14. The host of claim 8 wherein, the programmable processing unit is incorporated into a multipoint control unit.

15. A non-transitory computer readable medium with programmable processor instructions stored thereon to cause a programmable processing unit to:

instantiate a load balancing module on the programmable processing unit;

instantiate a plurality of instances of a protocol stack on the programmable processing unit wherein each instance of the protocol stack is instantiated in response to a request from the load balancing module;

connect the load balancing module to a listening port of an operating system controlling the programmable processing unit;

pass at least one socket descriptor between each of the plurality of instances of the protocol stack and the load balancing module;

receive inbound multi-media data packets at the listening port from a plurality of endpoints participating in a plurality of multi-media conferences;

select, by the load balancing module an instance from the plurality of instances of the protocol stack to process each received inbound multi-media conference data packet from the plurality of endpoints;

associate, by the load balancing module, the endpoint with the selected instance for duration of a multi-media conference;

transfer the received inbound multi-media data packets toward the associated instance via the at least one socket descriptor independently of the load balancing module;

receive inbound multi-media data packets not previously associated with an instance of the protocol stack by the load balancing module;

instantiate, at the request of the load balancing module, a new instance of a protocol stack; and

passing, using a file descriptor transfer mechanism, the received inbound multi-media data packets not previously associated with an instance of the protocol stack to the instantiated new instance;

wherein the multi-media data comprises at least one data type selected from the group consisting of control and signaling that comply with the protocol stack.

16. The non-transitory computer readable medium of claim 15 , wherein the instructions stored thereon cause the load balancing module to service multi-media conference H.323 protocol messages.

17. The non-transitory computer readable medium of claim 16 , wherein the instructions stored thereon cause inbound multi-media data packets from an endpoint to be handled directly via the at least one socket descriptor by the selected instance of the protocol stack that was associated to said selected instance for duration of a multimedia conference.

18. The non-transitory computer readable medium of claim 15 , wherein the instructions stored thereon cause the load balancing module to service Session Initiation Protocol (SIP) messages.

19. The non-transitory computer readable medium of claim 18 , wherein the instructions stored thereon further cause the programmable processing unit to use User Datagram Protocol (UDP) as the transport protocol to carry the SIP data.

20. The non-transitory computer readable medium of claim 15 , wherein the instructions stored thereon further cause the programmable processing unit to pass a socket descriptor between each instance and the load balancing module via UNIX domain sockets.

21. The non-transitory computer readable medium claim 15 wherein the instructions stored thereon are intended to control a programmable processing unit incorporated into a multipoint control unit.

Assignments (10)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 22, 2023
From: POLYCOM, INC.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 064056/0894 →
RELEASE OF PATENT SECURITY INTERESTS Recorded Aug 30, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: PLANTRONICS, INC.; POLYCOM, INC.
Reel/Frame 061356/0366 →
SECURITY AGREEMENT Recorded Jul 5, 2018
From: PLANTRONICS, INC.; POLYCOM, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 046491/0915 →
RELEASE OF SECURITY INTEREST Recorded Jul 3, 2018
From: MACQUARIE CAPITAL FUNDING LLC
To: POLYCOM, INC.
Reel/Frame 047247/0615 →
RELEASE OF SECURITY INTEREST Recorded Jul 3, 2018
From: MACQUARIE CAPITAL FUNDING LLC
To: POLYCOM, INC.
Reel/Frame 046472/0815 →
GRANT OF SECURITY INTEREST IN PATENTS - FIRST LIEN Recorded Sep 27, 2016
From: POLYCOM, INC.
To: MACQUARIE CAPITAL FUNDING LLC, AS COLLATERAL AGENT
Reel/Frame 040168/0094 →
RELEASE OF SECURITY INTEREST Recorded Sep 27, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: POLYCOM, INC.; VIVU, INC.
Reel/Frame 040166/0162 →
GRANT OF SECURITY INTEREST IN PATENTS - SECOND LIEN Recorded Sep 27, 2016
From: POLYCOM, INC.
To: MACQUARIE CAPITAL FUNDING LLC, AS COLLATERAL AGENT
Reel/Frame 040168/0459 →
SECURITY AGREEMENT Recorded Dec 9, 2013
From: POLYCOM, INC.; VIVU, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 031785/0592 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2009
From: TSYM, KIRILL
To: POLYCOM, INC.
Reel/Frame 022133/0928 →
Continuity (2)
Provisional Application 61117619 · Nov 25, 2008
Related Publication 20100131656A1 · May 27, 2010