IP Library Granted Patent US 8,250,234
Granted Patent B2
US 8,250,234 · App. 12/767,091 · Granted Aug 21, 2012

Hierarchically disassembling messages

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,250,234
App. No.
12/767,091
Granted
Aug 21, 2012
Kind
B2
Abstract

The present invention extends to methods, systems, and computer program products for hierarchically disassembling messages. The functionality of disassemblers and framers is decoupled such that framers for different types of messages can be utilized at the same level in a hierarchy without having to also change disassemblers. Virtually any level of disassembly is possible to address any corresponding level of message nesting. Disassembly can be performed on a per message or per session basis.

Claims (26)

1. At a computer system, the computer system including one or more processors, system memory, and a messaging stack, the messaging stack having a hierarchical arrangement of components including a lower layer transport component, one or more disassembler components, and an upper layer application component, the lower layer transport component being below the one or more disassembler components and the upper layer application component in the hierarchical arrangement of components, the upper layer application component being above the lower layer transport component and the one or more disassembler components in the hierarchical arrangement of components, the computer system also including a framer factory for creating framers that can be contained within the one or more disassembler components to parse messages, a method for disassembling one or more messages, the method comprising:

an act of a disassembler component, selected from among the one or more disassembler components, receiving a message from a component immediately below the disassembler component in the hierarchical arrangement of components, the message containing one or more nested messages within the message;

an act of the disassembler component indicating a message type for the message to the framer factory;

an act of the framer factory providing a framer to the disassembler component, the framer for parsing the message;

an act of the disassembler component indicating the start of a session to the component immediately above the disassembler component in the hierarchical arrangement of components, the session being between the disassembler component and the component immediately above the disassembler component;

for each of the one or more nested messages in the message, including a last nested message, and subsequent to indicating the start of the session:

an act of the framer parsing the message to identify the next nested message, from among the one or more nested messages, contained within the message; and

an act of the disassembler component sending the identified next nested message to the session; and

an act of the disassembler indicating the end of the session to the component immediately above the disassembler component.

2. The method as recited in claim 1 , further comprising an act of the disassembler component receiving an indication of a start of a second session from the component immediately below the disassembler component prior to receiving the message from the component immediately below the disassembler component, the second session between the disassembler component and the component immediately below the disassembler component.

3. The method as recited in claim 2 , wherein the act of the disassembler component receiving a message comprises an act of the disassembler component receiving the message on the second session.

4. The method as recited in claim 3 , further comprising:

an act of a disassembler component receiving a second message on the second session;

an act of the disassembler component sending the second message to the framer factory;

an act of the framer factory providing a second framer to the disassembler, the second framer for parsing the second message; and

for each of the one or more nested messages in the second message, including a last nested message:

an act of the second framer parsing the second message to identify the next nested message, from among the one or more nested messages, contained within the second message; and

an act of the disassembler component sending the identified next nested message to the session.

5. The method as recited in claim 4 , further comprising an act of receiving an indication of the end of the second session from the component immediately below the disassembler component prior to the disassembler indicating the end of the session to the component immediately above the disassembler component.

6. The method as recited in claim 4 , wherein the act of the disassembler component receiving the message on the second session comprises an act of the disassembler component receiving the message using a transaction; and

wherein the act of the disassembler component receiving a second message on the second session comprises an act of the disassembler component receiving the second message using the transaction.

7. The method as recited in claim 1 , wherein the act of a disassembler component receiving a message from a component immediately below the disassembler component in the hierarchical arrangement of components comprises an act of the disassembler component receiving a message with a transaction; and

wherein for each of the one or more nested messages in the message the act of the disassembler component sending the identified next nested message to the session comprises an act of the disassembler component sending the identified next nested message to the session using the transaction.

8. The method as recited in claim 1 , further comprising prior to the act of the disassembler component indicating the start of a session to the component immediately above the disassembler component in the hierarchical arrangement of components, an act of the component immediately above the disassembler component accepting a new session from the disassembler component.

9. The method as recited in claim 8 , wherein the act of the component immediately above the disassembler component accepting a new session from the disassembler component comprises an act of the component immediately above the disassembler component accepting a new session using a transaction; and

wherein for each of the one or more nested messages in the message the act of the disassembler component sending the identified next nested message to the session comprises an act of the disassembler component sending the identified next nested message to the session using the transaction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2010
From: ALLEN, NICHOLAS A.; TAYLOR, JOHN A.; BATRES, STEFAN R.; LI, BIN
To: MICROSOFT CORPORATION
Reel/Frame 024287/0868 →