Patents by Inventor Manuvir Das
Manuvir Das 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).
-
Publication number: 20130074179Abstract: A mechanism is provided for automatically logging into a cloud based system that does not accept token log-on credentials generated by a single sign-on service. In an embodiment, a one-time password is automatically generated and persisted. The generated password is used to log in automatically to a cloud based system that does not accept tokens generated by the web-ID providers and for connecting to other services. Examples of such systems may include Windows, Linux, and iOS.Type: ApplicationFiled: September 15, 2011Publication date: March 21, 2013Applicant: Microsoft CorporationInventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Shivesh Ranjan, Jimmy Narang
-
Publication number: 20130067469Abstract: A mechanism is provided for In a cloud computing infrastructure, a mechanism is provided for balancing client sessions across virtual machines such that the number of virtual machines is efficiently managed. In some embodiments, the total number of virtual machines is minimized to reduce power consumption, cooling, and other cost drivers, while assigning users across the sessions. In one embodiment, the sessions in a virtual machine with low activity are migrated to a virtual machine with higher session rates to allow for the shutdown of the low usage virtual machines. In another embodiment, new user sessions are assigned according to a minimum performance standard.Type: ApplicationFiled: September 14, 2011Publication date: March 14, 2013Applicant: Microsoft CorporationInventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Sanjay Malpani, Ranjana Rathinam, Jayaraman Thiagarajan
-
Publication number: 20130066770Abstract: A mechanism is provided for deploying software applications in a cloud computing environment. An administrator is provided an interface for allowing a software application that is designed for a single tenant to be used by a plurality of users. An aspect of the invention is to provide a mechanism for quickly and easily giving multi-user qualities to a single tenant application like autoCAD. As such, multiple users can access the application without the need to download and install a version locally on their system. The system is able to determine the period of time for which an application is in use for a given user, because every application is run on a resource that is part of the cloud environment. Therefore, it is possible for the application provider to charge for the application in a usage-based model—e.g. by the hour, or day—without any re-engineering of the existing application.Type: ApplicationFiled: September 14, 2011Publication date: March 14, 2013Applicant: Microsoft CorporationInventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Sanjay Malpani, Ravi K. Balachandran, Adam Herscher, Nelamangal K. Srinivas, Rochak Mittal
-
Publication number: 20130066945Abstract: A mechanism is provided for presenting a software application to a plurality of users in a cloud computing environment. For example, an application that was designed for use by a single user is provided in a cloud based platform without re-architecting the application. Using a web-based interface, multiple cloud users may launch and execute the application. The various instances of the application are provided to the cloud users as if the application were designed as a multi-user application.Type: ApplicationFiled: September 14, 2011Publication date: March 14, 2013Applicant: Microsoft CorporationInventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Sanjay Malpani, Ravi K. Balachandran, Adam Herscher, Nelamangal K. Srinivas, Rochak Mittal
-
Publication number: 20130067345Abstract: A mechanism is provided for scalably creating and deploying a network of virtual computers with common desktop images in a cloud computing environment. An administrator is provided an interface for defining a user desktop comprising an OS and a set of applications and associated settings. The administrator may further enter the number of roles or remote users. Based on this information the system creates a golden image or master template of the desktop and propagates the image throughout the cloud platform. The underlying provisioning of the virtual machines in the cloud is transparent to the user. The same automated mechanism used for creating the golden image is also used to update the golden image whenever there are updates to the OS or any applications and settings. The system automatically propagates the new image throughout the cloud platform.Type: ApplicationFiled: September 14, 2011Publication date: March 14, 2013Applicant: Microsoft CorporationInventors: Manuvir DAS, Sudarshan YADAV, Arvind KANDHARE, Sanjay MALPANI, Ravi K. BALACHANDRAN, Srinivas DUVVURI, Nelamangal K. SRINIVAS
-
Patent number: 7703075Abstract: Techniques and tools relating to annotating program source code facilitate inferring annotations from source code based at least in part on a description (or specification) generated with a programmable tool. Described techniques and tools provide flexibility in annotation inference across different code bases and program states or properties of interest, and can reduce the overhead of adding annotations to “legacy” source code. For example, a specification is generated with a programmable specification tool that is separate from an inference engine. In the inference engine, one or more annotations for a computer program are inferred based at least in part on the specification.Type: GrantFiled: June 22, 2005Date of Patent: April 20, 2010Assignee: Microsoft CorporationInventors: Manuvir Das, Zhe Yang, Brian Hackett
-
Patent number: 7584458Abstract: Techniques and tools for implementing a source code annotation language are described. In one aspect, keywords are added to a function interface to define a contract for the function independent of function call context. In another aspect, annotations are inserted at global variables, formal parameters, return values, or user-defined types. The annotations include, for example, properties and qualifiers. A property can indicate, for example, a characteristic of a buffer. In another aspect, an annotation indicates that a value has usability properties sufficient to allow a function to rely on the value, where the usability properties depend on value type.Type: GrantFiled: October 2, 2003Date of Patent: September 1, 2009Assignee: Microsoft CorporationInventors: Manuvir Das, Manuel Alfred Fahndrich, Ramanathan Venkatapathy, Daniel W. Weise, William Hunter Hudson, Sameet Harishanker Agarwal, William Hiroaki Shihara, Hannes Ruescher, Spencer Wong Low, F. Soner Terek
-
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: 7496894Abstract: Methods are described that enhance pointer analysis for programs. Whereas previous methods are constrained by the extremes of an inverse relationship between time and information, the present methods selectively unify information so as to allow a desired level of analytical decision within a desired duration of analysis. One aspect of the present invention includes selectively retaining information at a first order of indirection based on variables in an assignment statement while unifying information at subsequent orders of indirection. The methods are used for pointer variables, but are equally useful to function definitions, function calls, function pointers, indirect function calls, and others. The methods may be used in client analysis tools such as code browsers and slicing tools.Type: GrantFiled: June 14, 2004Date of Patent: February 24, 2009Assignee: Microsoft CorporationInventor: Manuvir Das
-
Publication number: 20060294502Abstract: Techniques and tools relating to annotating program source code facilitate inferring annotations from source code based at least in part on a description (or specification) generated with a programmable tool. Described techniques and tools provide flexibility in annotation inference across different code bases and program states or properties of interest, and can reduce the overhead of adding annotations to “legacy” source code. For example, a specification is generated with a programmable specification tool that is separate from an inference engine. In the inference engine, one or more annotations for a computer program are inferred based at least in part on the specification.Type: ApplicationFiled: June 22, 2005Publication date: December 28, 2006Applicant: Microsoft CorporationInventors: Manuvir Das, Zhe Yang, Brian Hackett
-
Publication number: 20060271917Abstract: Techniques and tools relating to state-based source code annotation are described. For example, described techniques include flexible techniques for describing object states with annotations. In one aspect, properties of data structures in source code are described using state-defining code annotations. For example, specification structs can be used to describe an arbitrary set of states of objects, thereby improving the capabilities of the annotation language in terms of richness of program description. Specification structs also help to avoid annotating large numbers of individual fields in data structures by allowing several individual fields to be described by a single specification struct. Other aspects of a source code annotation language also are described.Type: ApplicationFiled: May 31, 2005Publication date: November 30, 2006Applicant: Microsoft CorporationInventors: Manuvir Das, Manuel Fahndrich, Ramanathan Venkatapathy, Yong Qu, Donn Scott Terry, Daniel Weise, Brian Hackett
-
Patent number: 7089537Abstract: Described is a method and system for performing path-sensitive value flow analysis on a software program. Concrete state and value alias information is tracked along each statement and each relevant path in an abstract program and is stored as a symbolic state in a symbolic store. The value alias information includes a first set of aliases that identify aliases for a designated value that is being analyzed and a second set of aliases that identify possible aliases for the designated value. The value alias information is obtained using imprecise memory alias analysis. Along each relevant path for each statement, transforms are applied to the sets of aliases to update the first and second sets of aliases. The transforms are applied based on the type of statement being processed. Symbolic states existing at the same location are merged if the value alias information is identical within the symbolic states.Type: GrantFiled: September 15, 2003Date of Patent: August 8, 2006Assignee: Microsoft CorporationInventors: Manuvir Das, Stephen R. Adams, Nurit Dor
-
Patent number: 7003760Abstract: Methods are described that enhance pointer analysis for programs. Whereas previous methods are constrained by the extremes of an inverse relationship between time and information, the present methods selectively unify information so as to allow a desired level of analytical decision within a desired duration of analysis. One aspect of the present invention includes selectively retaining information at a first order of indirection based on variables in an assignment statement while unifying information at subsequent orders of indirection. The methods are used for pointer variables, but are equally useful to function definitions, function calls, function pointers, indirect function calls, and others. The methods may be used in client analysis tools such as code browsers and slicing tools.Type: GrantFiled: January 21, 2000Date of Patent: February 21, 2006Assignee: Microsoft CorporationInventor: Manuvir Das
-
Patent number: 6938186Abstract: Described is a method and system that performs path-sensitive verification on programs having any code base size. The method maintains a symbolic store that includes symbolic states. Each symbolic state includes a concrete state and an abstract state. The abstract state identifies a state in which the property being tested currently exists. The concrete state identifies other properties of the program. The symbolic store is updated at each node in a logic path of the program with changes in the abstract state and the concrete state. The updates occur such that the symbolic states associated with a particular edge of any node will not have identical abstract states. Rather, in this case, the symbolic states are merged by combining the concrete states to include content that is similar in both symbolic states. In addition, the concrete state determines relevant paths to proceed along in the logic path.Type: GrantFiled: May 28, 2002Date of Patent: August 30, 2005Assignee: Microsoft CorporationInventors: Manuvir Das, Mark C. Seigle, Sorin L. Lerner
-
Publication number: 20050076331Abstract: Techniques and tools for implementing a source code annotation language are described. In one aspect, keywords are added to a function interface to define a contract for the function independent of function call context. In another aspect, annotations are inserted at global variables, formal parameters, return values, or user-defined types. The annotations include, for example, properties and qualifiers. A property can indicate, for example, a characteristic of a buffer. In another aspect, an annotation indicates that a value has usability properties sufficient to allow a function to rely on the value, where the usability properties depend on value type.Type: ApplicationFiled: October 2, 2003Publication date: April 7, 2005Inventors: Manuvir Das, Manuel Fahndrich, Ramanathan Venkatapathy, Daniel Weise, William Hudson, Sameet Agarwal, William Shihara, Hannes Ruescher, Spencer Low, F. Terek
-
Publication number: 20050060691Abstract: Described is a method and system for performing path-sensitive value flow analysis on a software program. Concrete state and value alias information is tracked along each statement and each relevant path in an abstract program and is stored as a symbolic state in a symbolic store. The value alias information includes a first set of aliases that identify aliases for a designated value that is being analyzed and a second set of aliases that identify possible aliases for the designated value. The value alias information is obtained using imprecise memory alias analysis. Along each relevant path for each statement, transforms are applied to the sets of aliases to update the first and second sets of aliases. The transforms are applied based on the type of statement being processed. Symbolic states existing at the same location are merged if the value alias information is identical within the symbolic states.Type: ApplicationFiled: September 15, 2003Publication date: March 17, 2005Inventors: Manuvir Das, Stephen Adams, Nurit Dor
-
Publication number: 20040243980Abstract: Methods are described that enhance pointer analysis for programs. Whereas previous methods are constrained by the extremes of an inverse relationship between time and information, the present methods selectively unify information so as to allow a desired level of analytical decision within a desired duration of analysis. One aspect of the present invention includes selectively retaining information at a first order of indirection based on variables in an assignment statement while unifying information at subsequent orders of indirection. The methods are used for pointer variables, but are equally useful to function definitions, function calls, function pointers, indirect function calls, and others. The methods may be used in client analysis tools such as code browsers and slicing tools.Type: ApplicationFiled: June 14, 2004Publication date: December 2, 2004Applicant: Microsoft CorporationInventor: Manuvir Das
-
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
-
Publication number: 20030226060Abstract: Described is a method and system that performs path-sensitive verification on programs having any code base size. The method maintains a symbolic store that includes symbolic states. Each symbolic state includes a concrete state and an abstract state. The abstract state identifies a state in which the property being tested currently exists. The concrete state identifies other properties of the program. The symbolic store is updated at each node in a logic path of the program with changes in the abstract state and the concrete state. The updates occur such that the symbolic states associated with a particular edge of any node will not have identical abstract states. Rather, in this case, the symbolic states are merged by combining the concrete states to include content that is similar in both symbolic states. In addition, the concrete state determines relevant paths to proceed along in the logic path.Type: ApplicationFiled: May 28, 2002Publication date: December 4, 2003Applicant: Microsoft CorporationInventors: Manuvir Das, Mark C. Seigle, Sorin L. Lerner