Session multiplex protocol
First Claim
Patent Images
1. A method implemented in a computing system of communicating between a first network application and a second network application, comprising:
- receiving at a first multiplexer application a plurality of SQL transactions from a first network application directed to a second network application, the second network application being a SQL server application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application;
for each of the plurality of SQL transactions, generating a packet comprising the SQL transaction and a session identifier identifying a logical session between the first network application and the second network application;
sending the generated packet through a physical connection to a second multiplexer application, using a supported network protocol;
receiving the generated packet through the physical connection using the supported protocol at the second multiplexer application;
retrieving the generated packet from the supported protocol;
processing the generated packet to retrieve the SQL transaction; and
for the SQL transaction;
identifying from the session identifier the logical session associated with the SQL transaction between the first network application and the second network application; and
when the packet is a data packet, forwarding the SQL transaction to the second network application at the logical session, the forwarding the SQL transaction comprising checking if there is sufficient buffer space available for the session, and forwarding the transaction to the second network application if there is sufficient buffer space available.
2 Assignments
0 Petitions
Accused Products
Abstract
Session multiplex protocol (“SMUX”) is a protocol layered above existing reliable transport mechanisms that can be used to create multiple sessions over a single connection. Data from several different SMUX sessions can be interleaved and message boundaries preserved. Because it sits on top of reliable transport mechanisms, it takes advantage of the underlying protocols to ensure byte-alignment, loss detection/recovery, and reliable delivery. It provides a window based flow control mechanism to ensure suitable fairness among streams of different sessions and prevent deadlocks.
-
Citations
28 Claims
-
1. A method implemented in a computing system of communicating between a first network application and a second network application, comprising:
-
receiving at a first multiplexer application a plurality of SQL transactions from a first network application directed to a second network application, the second network application being a SQL server application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application; for each of the plurality of SQL transactions, generating a packet comprising the SQL transaction and a session identifier identifying a logical session between the first network application and the second network application; sending the generated packet through a physical connection to a second multiplexer application, using a supported network protocol; receiving the generated packet through the physical connection using the supported protocol at the second multiplexer application; retrieving the generated packet from the supported protocol; processing the generated packet to retrieve the SQL transaction; and for the SQL transaction; identifying from the session identifier the logical session associated with the SQL transaction between the first network application and the second network application; and when the packet is a data packet, forwarding the SQL transaction to the second network application at the logical session, the forwarding the SQL transaction comprising checking if there is sufficient buffer space available for the session, and forwarding the transaction to the second network application if there is sufficient buffer space available. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 27)
-
-
14. A system that multiplexes logical sessions over a physical connection comprising:
-
means for receiving at a first multiplexer application a plurality of SQL transactions from a first network application directed to a second network application, the second network application being a SQL server application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application; means for generating, for each of the plurality of SQL transactions, a packet based on the contents of the SQL transaction and comprising a session identifier identifying a logical session between the first network application and the second network application at the first multiplexer; means for sending the generated packet to a second multiplexer, along with other generated packets if any, using a protocol supported by the physical connection; and
means for extracting the generated packet at the second multiplexer, along with other generated packets if any, from the protocol supported by the physical connection;means for processing the generated packet at the second multiplexer to retrieve the SQL transaction; and means for the SQL transaction; identifying from the session identifier the logical session associated with the SQL transaction between the first network application and the second network application; and when the packet is a data packet, forwarding the SQL transaction to the second network application, the forwarding the SQL transaction comprising checking if there is sufficient buffer space available for the session, and forwarding the transaction to the second network a lication if there is sufficient buffer space available. - View Dependent Claims (15, 16)
-
-
17. A method implemented in a computing system of communicating between a first network application and a second network application, comprising:
- sending using an API a plurality of SQL transactions from the first network application directed to the second network application through one of a plurality of logical sessions, the SQL transactions comprising transaction data, the second network application being a SQL server application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application;
receiving the plurality of SQL transactions at a first multiplexer, and formatting each of the plurality of SQL transactions to form a packet, wherein the packet comprises a logical session identifier field indicating the session used to send the transaction between the first network application and the second network application, and a data field containing the transaction data; sending the packet from the first multiplexer to a second multiplexer across a network using a supported network protocol;
receiving the packet by the second multiplexer;processing the packet by the second multiplexer, comprising removing the SQL transaction from the packet; and for the SQL transaction; identifying from the session identifier the logical session associated with the SQL transaction between the first network application and the second network application; and forwarding the SQL transaction data to the second network application through the one of the logical session identified by the session identifier field, the forwarding the SQL transaction comprising checking if there is sufficient buffer space available for the session, and forwarding the transaction to the second network application if there is sufficient buffer space available. - View Dependent Claims (18, 19, 20, 21, 22, 23, 28)
- sending using an API a plurality of SQL transactions from the first network application directed to the second network application through one of a plurality of logical sessions, the SQL transactions comprising transaction data, the second network application being a SQL server application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application;
-
24. A system, comprising:
-
a computing processor; computing memory communicatively coupled with the computing processor, the computing memory having instructions for providing; a first network application that sends a plurality of SQL transactions directed to a second network application, the second network application being a SQL server application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application; a first multiplexer that receives the plurality of SQL transactions from the first network application, generates for each of the plurality of SQL transactions a packet comprising the SQL transaction and a session identifier identifying a logical session between the first network application and the second network application, and sends the generated packet over a physical connection using a supported protocol, and a second multiplexer that receives the generated packet over the physical connection using the supported protocol;
removes the generated packet from the supported protocol;
processes the generated packet;
identifies a logical session associated with the SQL transactions; and
forwards the SQL transactions to the second network application through the logical session, the forwarding the SQL transactions comprising checking if there is sufficient buffer space available for the session, and forwarding the transactions if there is sufficient buffer space available.
-
-
25. A system for communicating between a first network and a second network, comprising:
-
one or more computing processors; computing memory communicatively coupled with the one or more computing processors, the computing memory having instructions for providing; an application at a first network that sends a plurality of SQL transactions directed to a second application, the second application being a database application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application; a multiplexer at the first network that receives the plurality of SQL transactions from the application at the first network, generates, for each of the plurality of SQL transactions, a packet comprising the SQL transaction and a session identifier identifying a logical session between the first network application and the second network application, and sends the generated packet over a physical connection using a supported protocol to a second multiplexer at the second network; a multiplexer at the second network that receives the generated packet over the physical connection using the supported protocol, removes the generated packet from the supported protocol, processes the generated packet, identifies a logical session associated with the SQL transactions; and
forwards the SQL transactions to the second network application through the logical session, the forwarding the SQL transactions comprising checking if there is sufficient buffer space available for the session, and forwarding the transactions if there is sufficient buffer space available.
-
-
26. A computer readable storage device having stored thereon computer readable instructions that, if executed by a computing system, cause the computing system to perform operations comprising:
-
receiving at a first multiplexer application a plurality of SQL transactions from a first network application directed to a second network application, the second network application being a SQL server application, each of the plurality of SQL transactions associated with a separate logical session between the first network application and the second network application; for each of the plurality of SQL transactions, generating a packet comprising the SQL transaction and a session identifier identifying a logical session between the first network application and the second network application; sending the generated packet through a physical connection to a second multiplexer application, using a supported network protocol; receiving the generated packet through the physical connection using the supported protocol at the second multiplexer application; retrieving the generated packet from the supported protocol; processing the generated packet to retrieve the SQL transaction; and for the SQL transaction; identifying from the session identifier the logical session associated with the SQL transaction between the first network application and the second network application; and when the packet is a data packet, forwarding the SQL transaction to the second network application at the logical session, the forwarding the SQL transaction comprising checking if there is sufficient buffer space available for the session, and forwarding the transaction to the second network application if there is sufficient buffer space available.
-
Specification