Patents by Inventor Aaron A. Stern

Aaron A. Stern has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7899817
    Abstract: Embodiments herein prevent or mitigate attacks on inverse query engines by providing safe mode routines that allow for the acceptance of third party messages and/or query expressions, as well as prevent trusted sources from accidental attacks. The mitigations fall into two categories: compile-time and runtime. Compile-time mitigations prevent query expressions from being accepted and compiled that are susceptible to known attacks. For example, the complexity of query expressions may be limited to functions with linear runtimes; constant memory usage; or ones that do not create large strings. Further, language constructs for the criteria in the query expression may not allow for nested predicates complexities. Runtime mitigations, on the other hand, monitor the data size and processing lengths of messages against the various query expressions. If these runtime quotas are exceeded, an exception or other violation indication may be thrown (e.g., abort), deeming the evaluation as under attack.
    Type: Grant
    Filed: October 5, 2005
    Date of Patent: March 1, 2011
    Assignee: Microsoft Corporation
    Inventors: Aaron A. Stern, Pompiliu Diplan, Geary L. Eppley, Umesh Madan
  • Patent number: 7603474
    Abstract: A header-to-bit conversion table is provided that includes a list of address headers for registered endpoints. Assigned to each address header within the list is a bit placement within a string of bits. As messages are received, select headers within a message are compared with the address headers within the list. Each intersection or match for headers sets a bit true within a bit array for the message corresponding to the bit assignment for the header within the header-to-bit conversion table. Such array may then be compared with bit masks for each endpoint, wherein those bits set true within the bit masks represent those headers needed to satisfy the criteria for a particular endpoint. If a match is found, the message (or portion(s) thereof) may be sent to the particular endpoint for processing.
    Type: Grant
    Filed: October 5, 2005
    Date of Patent: October 13, 2009
    Assignee: Microsoft Corporation
    Inventor: Aaron A. Stern
  • Patent number: 7548926
    Abstract: Example embodiments provide a high performance navigator configured to lightly touch on the elements or input of a message, without necessarily having to build an entire tree structure for each input within the message. In addition, as portions of the inputs are identified as requiring further details, only those stub nodes representing that particular input will be created; thus avoiding the setup cost associated with loading an entire tree. Other example embodiments also provide for other optimizations such as reducing the class types of node allocations needed for navigating a particular message. For instance, a single class is defined that holds enough fields to store all of the information needed for numerous input nodes. Further, these common node structures can simultaneously generate as an array that further allows for more efficient navigation of the inputs.
    Type: Grant
    Filed: October 5, 2005
    Date of Patent: June 16, 2009
    Assignee: Microsoft Corporation
    Inventors: Aaron A. Stern, Geary L. Eppley, Umesh Madan
  • Patent number: 7472130
    Abstract: Embodiments provide for select indexing, which uses an array to simultaneously construct output sets for instructions that operate on input nodesets with common axes. During evaluation of a message against an instruction tree, when a branching node with a large “splay” is iterated over, rather than iterating over an input nodeset with a common axis once per branch, the select indexing described herein iterates over the nodeset once in total. More specifically, the select index data structure includes an array of empty node sets for instructions that both, branch from a branching node, and evaluate input nodes that share a common axis. Identifiers for the input nodeset are compared to indices within the select index, and matches for the input nodes are added to the corresponding nodeset for the appropriate instruction. The results of the evaluation may then be passed to the branches of the select instructions for further processing.
    Type: Grant
    Filed: October 5, 2005
    Date of Patent: December 30, 2008
    Assignee: Microsoft Corporation
    Inventors: Aaron A. Stern, Geary L. Eppley, Umesh Madan
  • Patent number: 7441185
    Abstract: A method for processing XML documents in a computer-based system includes associating each of a plurality of information items with a corresponding one of a plurality of binary-data units and providing a XML document associated with a XML information set comprising one or more of the plurality of information items. The method includes serializing the XML document into a binary XML format, or de-serializing the XML document from the binary XML format. Serializing includes translating the one or more information items of the XML information set into their corresponding one or more binary-data units. De-serializing includes translating one or more binary-data units of the binary XML format into their corresponding one or more information items. A computer readable medium is encoded with a program for execution on at least one processor. The program, when executed on the at least one processor, can perform the method for processing XML documents.
    Type: Grant
    Filed: January 25, 2005
    Date of Patent: October 21, 2008
    Assignee: Microsoft Corporation
    Inventors: Michael J. Coulson, Erik B. Christensen, Aaron A. Stern