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: 7797669Abstract: 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: GrantFiled: February 13, 2004Date of Patent: September 14, 2010Assignee: Microsoft CorporationInventors: Niels Jakob Rehof, Anthony D. Andrews, Sriram K. Rajamani, Charles Antony Richard Hoare, Cédric Fournet
-
Patent number: 7779382Abstract: 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: GrantFiled: December 10, 2004Date of Patent: August 17, 2010Assignee: Microsoft CorporationInventors: Niels Jakob Rehof, Shaz Qadeer
-
Patent number: 7703077Abstract: 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: GrantFiled: April 30, 2002Date of Patent: April 20, 2010Assignee: Microsoft CorporationInventors: Jakob Rehof, James R. Larus, Sriram K. Rajamani
-
Patent number: 7694276Abstract: 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: GrantFiled: September 10, 2003Date of Patent: April 6, 2010Assignee: Microsoft CorporationInventors: James R. Larus, Sriram K. Rajamani, Jakob Rehof
-
Patent number: 7647587Abstract: 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: GrantFiled: November 24, 2004Date of Patent: January 12, 2010Assignee: Microsoft CorporationInventors: Todd B. Knoblock, Jakob Rehof
-
Patent number: 7574343Abstract: 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: GrantFiled: March 7, 2006Date of Patent: August 11, 2009Assignee: Microsoft CorporationInventors: Steven Levi, Galen Hunt, Aamer Hydrie, Jakob Rehof, Bassam Tabbara, Robert Welland
-
Patent number: 7555418Abstract: 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: GrantFiled: December 19, 2003Date of Patent: June 30, 2009Assignee: Microsoft CorporationInventors: Shaz Qadeer, Niels Jakob Rehof, Sriram K. Rajamani
-
Patent number: 7526750Abstract: 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: GrantFiled: February 13, 2004Date of Patent: April 28, 2009Assignee: Microsoft CorporationInventors: Anthony D. Andrews, Shaz Qadeer, Niels Jakob Rehof, Sriram K. Rajamani, Yichen Xie
-
Patent number: 7500232Abstract: 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: GrantFiled: April 29, 2004Date of Patent: March 3, 2009Assignee: Microsoft CorporationInventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof
-
Patent number: 7203924Abstract: 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: GrantFiled: April 30, 2002Date of Patent: April 10, 2007Assignee: Microsoft CorporationInventors: Jakob Rehof, Sriram K. Rajamani
-
Patent number: 7155380Abstract: 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: GrantFiled: December 9, 2004Date of Patent: December 26, 2006Assignee: Microsoft CorporationInventors: Galen C. Hunt, Aamer Hydrie, Robert V. Welland, Bassam Tabbara, Steven P. Levi, Jakob Rehof
-
Patent number: 7113900Abstract: 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: GrantFiled: October 24, 2000Date of Patent: September 26, 2006Assignee: Microsoft CorporationInventors: Galen C. Hunt, Aamer Hydrie, Robert V. Welland, Bassam Tabbara, Steven P. Levi, Jakob Rehof
-
Publication number: 20060149838Abstract: 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: ApplicationFiled: March 7, 2006Publication date: July 6, 2006Applicant: Microsoft CorporationInventors: Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, Jakob Rehof
-
Patent number: 6981249Abstract: 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: GrantFiled: May 2, 2000Date of Patent: December 27, 2005Assignee: Microsoft CorporationInventors: Todd B. Knoblock, Jakob Rehof
-
Patent number: 6907395Abstract: 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: GrantFiled: October 24, 2000Date of Patent: June 14, 2005Assignee: Microsoft CorporationInventors: Galen C. Hunt, Aamer Hydrie, Robert V. Welland, Bassam Tabbara, Steven P. Levi, Jakob Rehof
-
Publication number: 20050125212Abstract: 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: ApplicationFiled: December 9, 2004Publication date: June 9, 2005Applicant: Microsoft CorporationInventors: Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, Jakob Rehof
-
Publication number: 20050102538Abstract: 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: ApplicationFiled: December 9, 2004Publication date: May 12, 2005Applicant: Microsoft CorporationInventors: Galen Hunt, Aamer Hydrie, Robert Welland, Bassam Tabbara, Steven Levi, Jakob Rehof
-
Publication number: 20050081194Abstract: 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: ApplicationFiled: November 24, 2004Publication date: April 14, 2005Applicant: Microsoft CorporationInventors: Todd Knoblock, Jakob Rehof
-
Patent number: 6813761Abstract: 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: GrantFiled: June 30, 2000Date of Patent: November 2, 2004Assignee: Microsoft CorporationInventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof
-
Publication number: 20040205742Abstract: 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: ApplicationFiled: April 29, 2004Publication date: October 14, 2004Applicant: Microsoft CorporationInventors: Manuvir Das, Manuel A. Fahndrich, Jakob Rehof