Search Images Maps Play YouTube News Gmail Drive More »
Advanced Patent Search | Web History | Sign in

Patents

A method and system for demultiplexing packets of a message is provided. The demultiplexing system receives packets of a message, identifies a sequence of message handlers for processing the message, identifies state information associated with the message for each message handler, and invokes the message handlers passing the message and the associated state information. The system identifies the message handlers based on the initial data type of the message and a target data type. The identified message handlers effect the conversion of the data to the target data type through various intermediate data types.

InventorEdward Balassanian
Original AssigneeImplicit Networks, Inc.
Primary Examiner: Jeffrey Gaffin
Secondary Examiner: Tammara Peyton
Attorney: Perkins Coie LLP
Current U.S. Classification710/33; 370/401; 370/487; 370/498; 370/535; 370/536; 370/542; 710/1; 710/3; 710/20; 710/38; 710/51; 710/316
International Classification: G06F/1300; H04L/1256; H04L/1254

View patent at USPTO
Search USPTO Assignment Database

Citations

Cited PatentFiling dateIssue dateOriginal AssigneeTitle
US5425029Sep 20, 1993Jun 13, 1995Motorola, Inc.Fast packet adaptation method for ensuring packet portability across diversified switching type networks
US5568478Jul 13, 1994Oct 22, 1996ATecoM GmbH
Ascom Tech AG
System for processing data structures in a node of a communication network
US5710917Jun 7, 1995Jan 20, 1998International Business Machines CorporationMethod for deriving data mappings and data aliases
US5870479Apr 2, 1996Feb 9, 1999Koninklijke PTT Nederland N.V.Device for processing data packets
US6101189Sep 18, 1997Aug 8, 2000Fujitsu LimitedGateway apparatus and packet routing method
US6157622Sep 10, 1997Dec 5, 2000Kabushiki Kaisha ToshibaCommunication apparatus and a method for controlling a communication apparatus
US6275507Sep 26, 1997Aug 14, 2001International Business Machines CorporationTransport demultiplexor for an MPEG-2 compliant data stream
US6359911Dec 4, 1998Mar 19, 2002Koninklijke Philips Electronics N.V. (KPENV)MPEG-2 transport demultiplexor architecture with non-time-critical post-processing of packet information

Referenced by

Citing PatentFiling dateIssue dateOriginal AssigneeTitle
US6976092Oct 18, 2002Dec 13, 2005BellSouth Intellectual Property Corp.System that using transport protocol objects located at agent location to generate session ID and to provide translation between different instant messaging protocols
US7035942Oct 18, 2002Apr 25, 2006BellSouth Intellectual Property Corp.Server-based message protocol translation
US7292586Mar 30, 2001Nov 6, 2007Nokia Inc.Micro-programmable protocol packet parser and encapsulator
US7444429Aug 23, 2005Oct 28, 2008System uses transport protocol objects locate at user agent location to provide translation between different instant messaging protocols
US7469301Dec 16, 2005Dec 23, 2008AT&T Intellectual Property I, L.P.Server-based message protocol translation
US7529853May 21, 2004May 5, 2009Oracle International CorporationUniversal IM and presence aggregation on technology-specific client
US7558861Oct 23, 2003Jul 7, 2009NMS Communications Corp.System and methods for controlling an application
US7603467Feb 10, 2006Oct 13, 2009AT&T Intellectual Property I, L.P.Instant messaging architecture and system for interoperability and presence management
US7757003Dec 23, 2008Jul 13, 2010AT&T Intellectual Property II, LPServer-based message protocol translation
US7844716Aug 20, 2009Nov 30, 2010AT&T Intellectual Property I, L.P.Instant messaging architecture and system for interoperability and presence management
US7937484Jul 9, 2004May 3, 2011Orb Networks, Inc.System and method for remotely controlling network resources
US8028073Mar 31, 2008Sep 27, 2011Oracle International CorporationMobile meeting and collaboration
US8055786Aug 6, 2003Nov 8, 2011Method and system for data demultiplexing
US8156209Feb 15, 2001Apr 10, 2012Cisco Technology, Inc.Aggregation devices processing keep-alive messages of point-to-point sessions
US8195744Oct 4, 2006Jun 5, 2012Orb Networks, Inc.File sharing system for use with a network
US8195765Mar 31, 2011Jun 5, 2012Orb Networks, Inc.System and method for remotely controlling network resources
USRE41848Sep 24, 2008Oct 19, 2010AT&T Intellectual Property I, L.P.System using transport protocol objects located at agent location to generate session ID and to provide translation between different instant messaging protocols

Claims

1. A method in a computer system for processing a message having a sequence of packets, the method comprising:

providing a plurality of components, each component being a software routine for converting data with an input format into data with an output format;
for the first packet of the message,
identifying a sequence of components for processing the packets of the message such that the output format of the components of the sequence match the input format of the next component in the sequence; and
storing an indication of each of the identified components so that the sequence does not need to be re-identified for subsequent packets of the message; and
for each of a plurality of packets of the message in sequence,
for each of a plurality of components in the identified sequence,
retrieving state information relating to performing the processing of the component with the previous packet of the message;
performing the processing of the identified component with the packet and the retrieved state information; and
storing state information relating to the processing of the component with the packet for use when processing the next packet of the message.

2. The method of claim 1 wherein the storing of an indication of each of the identified components includes storing a key for use in retrieving state information relating to the message.

3. The method of claim 1 wherein a second component of the sequence of components that are identified is identified after the processing of the first packet by a first component is performed.

4. The method of claim 1 wherein the packet may be transformed by each component of an identified sequence.

5. The method of claim 1 wherein the identified sequence of components for two messages are different.

6. The method of claim 1 including creating a separate thread for each message.

7. The method of claim 6 wherein the identified sequence of components for a message are executed by the thread for the message.

8. The method of claim 1 wherein the retrieving of state information includes requesting the component to provide the state information.

9. The method of claim 1 wherein the performing of the processing of the component includes deferring performing of the next component in the identified sequence until multiple packets are processed by the component.

10. The method of claim 1 wherein the identifying of a sequence of components includes deferring identification of the next component of the sequence until processing of the last component identified so far in the sequence is performed.

11. The method of claim 1 wherein two messages share one or more components and associated state information.

12. The method of claim 1 wherein an output format of a component in the identified sequence for a message matches an input format of the next component in the identified sequence for the message.

13. The method of claim 1 wherein a component has multiple output formats.

14. The method of claim 1 wherein a plurality of sequences of components are identified for a message.

15. A method in a computer system demultiplexing packets of messages, the method comprising:

identifying a sequence of components for processing each message based on the first packet of the message so that subsequent packets of the message can be processed without re-identifying the components, wherein different sequences of components can be identified for different messages, each component being a software routine; and
for each packet of each message, performing the processing of the identified sequence of components of the message wherein state information generated by performing the processing of a component for a packet is available to the component when the component processes the next packet of the message.

16. The method of claim 15 wherein the sequence of components is identified as the first packet of the message is processed.

17. The method of claim 15 wherein a packet of a message as processed by a component of the identified sequence for the message is available to the next component in the identified sequence.

18. The method of claim 15 wherein the components of an identified sequence for a message are executed within a thread associate with a single message.

19. The method of claim 15 wherein the state information includes requesting the component that generated the state information to provide the state information.

20. The method of claim 15 wherein the performing of the processing of the component includes deferring performing of the next component in the identified sequence until multiple packets are processed by the component.

21. The method of claim 15 wherein the identifying of a sequence of components includes deferring identification of the next component of the sequence until processing of the last component identified so far in the sequence is complete.

22. The method of claim 15 wherein two messages share one or more components and associated state information.

23. The method of claim 15 wherein an output format of a component in the identified sequence for a message matches an input format of the next component in the identified sequence for the message.

24. The method of claim 15 wherein a component has multiple output formats.

25. The method of claim 15 wherein a plurality of sequences of components are identified for a message.

26. A computer system for processing packets of messages, the method comprising:

a plurality of components, each component having an input format and an output format;
identification means that identifies a sequence of components for each message after a packet of the message has been received, such that the output format of a component in an identified sequence matches the input format of the next component in the identified sequence;
receiving means that receives packets of the messages; and
demultiplexing means that routes packets of messages to the sequence of components identified for each message for performing the processing of the components on the packets.

27. The computer system of claim 26 including means that stores and retrieves state information for each component of the identified sequence of components for each message.

28. The computer system of claim 26 wherein a packet of a message as processed by a component of the identified sequence for the message is available to the next component in the identified sequence.

29. The computer system of claim 26 wherein the performing of the processing of the component includes deferring performing of the next component in the identified sequence until multiple packets are processed by the component.

30. The computer system of claim 26 wherein identification means deferring identification of the next component of the sequence until processing of the last component identified so far in the sequence is complete.

31. The computer system of claim 26 wherein two messages share one or more components and associated state information.

32. The computer system of claim 26 wherein an output format of a component in the identified sequence for a message matches an input format of the next component in the identified sequence for the message.

33. The computer system of claim 26 wherein a component has multiple output formats.

34. The computer system of claim 26 wherein the identification means identifies a plurality of sequences of components for a message.

35. A computer-readable medium containing instruction demultiplexing packets of messages, by method comprising:

identifying a message-specific sequence of components for processing the packets of each message upon receiving the first packet of the message wherein subsequent packets of the message can use the message-specific sequence identified when the first packet was received; and
for each packet of the message, invoking the identified sequence of components in sequence to perform the processing of each component for the packet wherein each component saves message-specific state information so that that component can use the save message-specific state information when that component performs its processing on the next packet of the message.

36. The computer-readable medium of claim 35 wherein a second component of the message-specific sequence is identified after the first packet is processed by a first component of the message-specific sequence.

37. The computer-readable medium of claim 35 wherein a packet may be transformed by each component of an identified sequence.

38. The computer-readable medium of claim 35 including creating a separate thread for each message.

39. The computer-readable medium of claim 38 wherein the identified sequence of components for a message is executed by the thread for the message.

40. The computer-readable medium of claim 35 wherein the performing of the processing of the component includes deferring performing of the next component in the identified sequence until multiple packets are processed by the component.

41. The computer-readable medium of claim 35 wherein the identifying of a sequence of components includes deferring identification of the next component of the sequence until processing of the last component identified so far in the sequence is performed.

42. The computer-readable medium of claim 35 wherein two messages share one or more components and associated state information.

43. The computer-readable medium of claim 35 wherein an output format of a component in the identified sequence for a message matches an input format of the next component in the identified sequence for the message.

44. The computer-readable medium of claim 35 wherein a plurality of sequences of components are identified for a message.