Patents by Inventor Jakob Rehof

Jakob Rehof 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: 7797669
    Abstract: A distributed software system of communicating software components can be tested for undesirable behavior. A specification of a component can be substituted in place of the component when testing a model of the distributed software system. Thus, the system can be checked to see if it exhibits undesirable behavior without having code for all components of the system. Also, a component can be checked to see if it is in conformance with its specification. If models built with respective components and substituted specifications indicate that the system does not exhibit undesirable behavior, and the components conform to their specifications, then a system assembled from the components will not exhibit the undesirable behavior. Thus, collaborative testing can be achieved, even if no one entity has access to code for the entire distributed system.
    Type: Grant
    Filed: February 13, 2004
    Date of Patent: September 14, 2010
    Assignee: Microsoft Corporation
    Inventors: Niels Jakob Rehof, Anthony D. Andrews, Sriram K. Rajamani, Charles Antony Richard Hoare, Cédric Fournet
  • Patent number: 7779382
    Abstract: Validity of one or more assertions for any concurrent execution of a plurality of software instructions with at most k?1 context switches can be determined. Validity checking can account for execution of the software instructions in an unbounded stack depth scenario. A finite data domain representation can be used. The software instructions can be represented by a pushdown system. Validity checking can account for thread creation during execution of the plurality of software instructions.
    Type: Grant
    Filed: December 10, 2004
    Date of Patent: August 17, 2010
    Assignee: Microsoft Corporation
    Inventors: Niels Jakob Rehof, Shaz Qadeer
  • Patent number: 7703077
    Abstract: Described are embodiments for developing a message-passing application program. The program is constructed using stages having a plurality of asynchronous functions, or operations. The operations communicate with other operations of other message-passing programs in a distributed computing environment. The operations also communicate with other operations on other stages of the message-passing application. In order to reduce deadlock errors, a behavioral type signature is appended to the declaration of each operation of the message-passing application program. The behavioral type signature specifies behavioral properties for each operation, such as when an operation should send a message to another operation. A type checker utilizes typing rules and the behavioral type signature to extract an implementation model of each function. The type checker then compares the implementation model to the behavioral type signature to determine whether the asynchronous function conforms to the behavioral type signature.
    Type: Grant
    Filed: April 30, 2002
    Date of Patent: April 20, 2010
    Assignee: Microsoft Corporation
    Inventors: Jakob Rehof, James R. Larus, Sriram K. Rajamani
  • Patent number: 7694276
    Abstract: An asynchronous programming language that facilitates concurrent programming by utilizing futures, asynchronous calls, and joins on futures. For each of a client interface and a service interface of an asynchronous interface, respective models are automatically extracted. A behavioral contract is defined on the asynchronous interface. The client and service models are then passed to modular checking algorithm that checks to ensure that both the client and the service conform to the behavioral contract. The checking algorithm combines region-based type systems with model checking techniques to handle pointer aliasing in a sound manner.
    Type: Grant
    Filed: September 10, 2003
    Date of Patent: April 6, 2010
    Assignee: Microsoft Corporation
    Inventors: James R. Larus, Sriram K. Rajamani, Jakob Rehof
  • Patent number: 7647587
    Abstract: Systems, methods, and structures are discussed that enhance type reconstruction for programs. Whereas previous methods insufficiently provide the set of types necessary for program analysis, the embodiments of the present invention can accept any verifiable bytecode programs and produce a set of types needed for program analysis. The embodiments of the present invention provide a technique called subtype completion that transforms a subtyping system by extending its type hierarchy to a lattice. However, such transformation inserts only a minimal amount of elements so as to enhance the computation of reconstructed types.
    Type: Grant
    Filed: November 24, 2004
    Date of Patent: January 12, 2010
    Assignee: Microsoft Corporation
    Inventors: Todd B. Knoblock, Jakob Rehof
  • Patent number: 7574343
    Abstract: A modeling system permits developers of applications for distributed computer system, such as those used in server data centers or Internet data centers (IDCs), to architect their hardware and software in an abstract manner. The modeling system defines a set of components that represent abstract functional operations of the application that will eventually be physically implemented by one or more computers and one or more software programs executing on the computers. Associated with the model components is a schema that dictates how the functional operations are to be specified. From the model components, the developers can create logical, scale-independent models of the applications that may be implemented by the distributed computer system. The application is scale-independent in that the application is invariant in respect to the number of computers and software programs that my eventually be used to implement it.
    Type: Grant
    Filed: March 7, 2006
    Date of Patent: August 11, 2009
    Assignee: Microsoft Corporation
    Inventors: Steven Levi, Galen Hunt, Aamer Hydrie, Jakob Rehof, Bassam Tabbara, Robert Welland
  • Patent number: 7555418
    Abstract: Procedure summaries can be generated and used for multithreaded software. A set of actions for a software procedure can be identified as atomically modelable with respect to multithreaded execution of the software. Such actions can be considered a transaction and deemed to have occurred one after another without interruption by other threads. Thus, multithreaded execution of the software can be modeled to detect programming flaws. For example, reachability analysis can be used in concert with the procedure summaries to determine if specified invariants fail.
    Type: Grant
    Filed: December 19, 2003
    Date of Patent: June 30, 2009
    Assignee: Microsoft Corporation
    Inventors: Shaz Qadeer, Niels Jakob Rehof, Sriram K. Rajamani
  • Patent number: 7526750
    Abstract: The state space of modeled software can be explored using an object-based systematic state explorer. The object-based model can perform well even in light of the complexities of concurrent software. During state space exploration, differences between states can be stored instead of storing a complete copy of the state.
    Type: Grant
    Filed: February 13, 2004
    Date of Patent: April 28, 2009
    Assignee: Microsoft Corporation
    Inventors: Anthony D. Andrews, Shaz Qadeer, Niels Jakob Rehof, Sriram K. Rajamani, Yichen Xie
  • Patent number: 7500232
    Abstract: Methods and structures are described that enhance flow analysis for programs. Whereas previous methods are complicated by the presence of function pointers, the present methods present a framework that abstracts function pointers as if they were any other program expressions so as to allow a desired level of analytical decision within a desired duration of analysis. One aspect of the present invention includes inferring types from a program, forming a type graph from the types, and forming a flow graph from the type graph to inhibit imprecise paths so as to enhance context-sensitivity of flow analysis. The methods may be used in any analysis tools such as code browsers and slicing tools.
    Type: Grant
    Filed: April 29, 2004
    Date of Patent: March 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof
  • Patent number: 7203924
    Abstract: A system and method for modeling a message-passing program module using type annotations is disclosed. The message-passing program module is constructed with operations that communicate with operations of other message-passing program modules in an asynchronous computing environment. Type annotations are communication protocols that represent processes of input and/or output actions that the program module developer expects each operation to perform or take on a selected set of communication channels. During development of the program module, the type annotations are declared at each operation of the program module. Soundness of the type annotations and whether implementation of the program module conforms to the type annotations is checked using a type system. If the program module is well-typed and well-implemented, the type system abstracts a behavioral module of the message-passing program module that reflects the relevant processes expressed by the type annotations.
    Type: Grant
    Filed: April 30, 2002
    Date of Patent: April 10, 2007
    Assignee: Microsoft Corporation
    Inventors: Jakob Rehof, Sriram K. Rajamani
  • Patent number: 7155380
    Abstract: A system facilitates the design and implementation of large-scale applications, such as Internet Services and Websites, for distributed computer systems, such as server data centers, Internet data centers (IDCs), Web farms, and the like. The system has a modeling system and a deployment system. The modeling system permits developers to architect the hardware and software used to implement the applications in an abstract manner. The modeling system defines a set of components used to describe the functionality of an application. The model components are arranged and interconnected to form a scale-independent logical model of the application. Once a logical model is created, the deployment system uses the logical model to automatically deploy various computer/software resources to implement the application. The deployment system converts each of the model components into one or more instances that correspond to physical resources.
    Type: Grant
    Filed: December 9, 2004
    Date of Patent: December 26, 2006
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, Aamer Hydrie, Robert V. Welland, Bassam Tabbara, Steven P. Levi, Jakob Rehof
  • Patent number: 7113900
    Abstract: A modeling system permits developers of applications for distributed computer system, such as those used in server data centers or Internet data centers (IDCs), to architect their hardware and software in an abstract manner. The modeling system defines a set of components that represent abstract functional operations of the application that will eventually be physically implemented by one or more computers and one or more software programs executing on the computers. Associated with the model components is a schema that dictates how the functional operations are to be specified. From the model components, the developers can create logical, scale-independent models of the applications that may be implemented by the distributed computer system. The application is scale-independent in that the application is invariant in respect to the number of computers and software programs that my eventually be used to implement it.
    Type: Grant
    Filed: October 24, 2000
    Date of Patent: September 26, 2006
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, Aamer Hydrie, Robert V. Welland, Bassam Tabbara, Steven P. Levi, Jakob Rehof
  • Publication number: 20060149838
    Abstract: A modeling system permits developers of applications for distributed computer system, such as those used in server data centers or Internet data centers (IDCs), to architect their hardware and software in an abstract manner. The modeling system defines a set of components that represent abstract functional operations of the application that will eventually be physically implemented by one or more computers and one or more software programs executing on the computers. Associated with the model components is a schema that dictates how the functional operations are to be specified. From the model components, the developers can create logical, scale-independent models of the applications that may be implemented by the distributed computer system. The application is scale-independent in that the application is invariant in respect to the number of computers and software programs that my eventually be used to implement it.
    Type: Application
    Filed: March 7, 2006
    Publication date: July 6, 2006
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, Jakob Rehof
  • Patent number: 6981249
    Abstract: Systems, methods, and structures are discussed that enhance type reconstruction for programs. Whereas previous methods insufficiently provide the set of types necessary for program analysis, the embodiments of the present invention can accept any verifiable bytecode programs and produce a set of types needed for program analysis. The embodiments of the present invention provide a technique called subtype completion that transforms a subtyping system by extending its type hierarchy to a lattice. However, such transformation inserts only a minimal amount of elements so as to enhance the computation of reconstructed types.
    Type: Grant
    Filed: May 2, 2000
    Date of Patent: December 27, 2005
    Assignee: Microsoft Corporation
    Inventors: Todd B. Knoblock, Jakob Rehof
  • Patent number: 6907395
    Abstract: A system facilitates the design and implementation of large-scale applications, such as Internet Services and Websites, for distributed computer systems, such as server data centers, Internet data centers (IDCs), Web farms, and the like. The system has a modeling system and a deployment system. The modeling system permits developers to architect the hardware and software used to implement the applications in an abstract manner. The modeling system defines a set of components used to describe the functionality of an application. The model components are arranged and interconnected to form a scale-independent logical model of the application. Once a logical model is created, the deployment system uses the logical model to automatically deploy various computer/software resources to implement the application. The deployment system converts each of the model components into one or more instances that correspond to physical resources.
    Type: Grant
    Filed: October 24, 2000
    Date of Patent: June 14, 2005
    Assignee: Microsoft Corporation
    Inventors: Galen C. Hunt, Aamer Hydrie, Robert V. Welland, Bassam Tabbara, Steven P. Levi, Jakob Rehof
  • Publication number: 20050125212
    Abstract: A system facilitates the design and implementation of large-scale applications, such as Internet Services and Websites, for distributed computer systems, such as server data centers, Internet data centers (IDCs), Web farms, and the like. The system has a modeling system and a deployment system. The modeling system permits developers to architect the hardware and software used to implement the applications in an abstract manner. The modeling system defines a set of components used to describe the functionality of an application. The model components are arranged and interconnected to form a scale-independent logical model of the application. Once a logical model is created, the deployment system uses the logical model to automatically deploy various computer/software resources to implement the application. The deployment system converts each of the model components into one or more instances that correspond to physical resources.
    Type: Application
    Filed: December 9, 2004
    Publication date: June 9, 2005
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, Jakob Rehof
  • Publication number: 20050102538
    Abstract: A system facilitates the design and implementation of large-scale applications, such as Internet Services and Websites, for distributed computer systems, such as server data centers, Internet data centers (IDCs), Web farms, and the like. The system has a modeling system and a deployment system. The modeling system permits developers to architect the hardware and software used to implement the applications in an abstract manner. The modeling system defines a set of components used to describe the functionality of an application. The model components are arranged and interconnected to form a scale-independent logical model of the application. Once a logical model is created, the deployment system uses the logical model to automatically deploy various computer/software resources to implement the application. The deployment system converts each of the model components into one or more instances that correspond to physical resources.
    Type: Application
    Filed: December 9, 2004
    Publication date: May 12, 2005
    Applicant: Microsoft Corporation
    Inventors: Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, Jakob Rehof
  • Publication number: 20050081194
    Abstract: Systems, methods, and structures are discussed that enhance type reconstruction for programs. Whereas previous methods insufficiently provide the set of types necessary for program analysis, the embodiments of the present invention can accept any verifiable bytecode programs and produce a set of types needed for program analysis. The embodiments of the present invention provide a technique called subtype completion that transforms a subtyping system by extending its type hierarchy to a lattice. However, such transformation inserts only a minimal amount of elements so as to enhance the computation of reconstructed types.
    Type: Application
    Filed: November 24, 2004
    Publication date: April 14, 2005
    Applicant: Microsoft Corporation
    Inventors: Todd Knoblock, Jakob Rehof
  • Patent number: 6813761
    Abstract: Methods and structures are described that enhance flow analysis for programs. Whereas previous methods are complicated by the presence of function pointers, the present methods present a framework that abstracts function pointers as if they were any other program expressions so as to allow a desired level of analytical decision within a desired duration of analysis. One aspect of the present invention includes inferring types from a program, forming a type graph from the types, and forming a flow graph from the type graph to inhibit imprecise paths so as to enhance context-sensitivity of flow analysis. The methods may be used in any analysis tools such as code browsers and slicing tools.
    Type: Grant
    Filed: June 30, 2000
    Date of Patent: November 2, 2004
    Assignee: Microsoft Corporation
    Inventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof
  • Publication number: 20040205742
    Abstract: Methods and structures are described that enhance flow analysis for programs. Whereas previous methods are complicated by the presence of function pointers, the present methods present a framework that abstracts function pointers as if they were any other program expressions so as to allow a desired level of analytical decision within a desired duration of analysis. One aspect of the present invention includes inferring types from a program, forming a type graph from the types, and forming a flow graph from the type graph to inhibit imprecise paths so as to enhance context-sensitivity of flow analysis. The methods may be used in any analysis tools such as code browsers and slicing tools.
    Type: Application
    Filed: April 29, 2004
    Publication date: October 14, 2004
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof