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: 20130074179
    Abstract: 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: Application
    Filed: September 15, 2011
    Publication date: March 21, 2013
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Shivesh Ranjan, Jimmy Narang
  • Publication number: 20130067469
    Abstract: 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: Application
    Filed: September 14, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Sanjay Malpani, Ranjana Rathinam, Jayaraman Thiagarajan
  • Publication number: 20130066770
    Abstract: 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: Application
    Filed: September 14, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Sanjay Malpani, Ravi K. Balachandran, Adam Herscher, Nelamangal K. Srinivas, Rochak Mittal
  • Publication number: 20130066945
    Abstract: 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: Application
    Filed: September 14, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Sudarshan Yadav, Arvind Kandhare, Sanjay Malpani, Ravi K. Balachandran, Adam Herscher, Nelamangal K. Srinivas, Rochak Mittal
  • Publication number: 20130067345
    Abstract: 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: Application
    Filed: September 14, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Manuvir DAS, Sudarshan YADAV, Arvind KANDHARE, Sanjay MALPANI, Ravi K. BALACHANDRAN, Srinivas DUVVURI, Nelamangal K. SRINIVAS
  • Patent number: 7703075
    Abstract: 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: Grant
    Filed: June 22, 2005
    Date of Patent: April 20, 2010
    Assignee: Microsoft Corporation
    Inventors: Manuvir Das, Zhe Yang, Brian Hackett
  • Patent number: 7584458
    Abstract: 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: Grant
    Filed: October 2, 2003
    Date of Patent: September 1, 2009
    Assignee: Microsoft Corporation
    Inventors: 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: 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: 7496894
    Abstract: 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: Grant
    Filed: June 14, 2004
    Date of Patent: February 24, 2009
    Assignee: Microsoft Corporation
    Inventor: Manuvir Das
  • Publication number: 20060294502
    Abstract: 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: Application
    Filed: June 22, 2005
    Publication date: December 28, 2006
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Zhe Yang, Brian Hackett
  • Publication number: 20060271917
    Abstract: 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: Application
    Filed: May 31, 2005
    Publication date: November 30, 2006
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Manuel Fahndrich, Ramanathan Venkatapathy, Yong Qu, Donn Scott Terry, Daniel Weise, Brian Hackett
  • Patent number: 7089537
    Abstract: 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: Grant
    Filed: September 15, 2003
    Date of Patent: August 8, 2006
    Assignee: Microsoft Corporation
    Inventors: Manuvir Das, Stephen R. Adams, Nurit Dor
  • Patent number: 7003760
    Abstract: 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: Grant
    Filed: January 21, 2000
    Date of Patent: February 21, 2006
    Assignee: Microsoft Corporation
    Inventor: Manuvir Das
  • Patent number: 6938186
    Abstract: 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: Grant
    Filed: May 28, 2002
    Date of Patent: August 30, 2005
    Assignee: Microsoft Corporation
    Inventors: Manuvir Das, Mark C. Seigle, Sorin L. Lerner
  • Publication number: 20050076331
    Abstract: 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: Application
    Filed: October 2, 2003
    Publication date: April 7, 2005
    Inventors: Manuvir Das, Manuel Fahndrich, Ramanathan Venkatapathy, Daniel Weise, William Hudson, Sameet Agarwal, William Shihara, Hannes Ruescher, Spencer Low, F. Terek
  • Publication number: 20050060691
    Abstract: 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: Application
    Filed: September 15, 2003
    Publication date: March 17, 2005
    Inventors: Manuvir Das, Stephen Adams, Nurit Dor
  • Publication number: 20040243980
    Abstract: 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: Application
    Filed: June 14, 2004
    Publication date: December 2, 2004
    Applicant: Microsoft Corporation
    Inventor: Manuvir Das
  • 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
  • Publication number: 20030226060
    Abstract: 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: Application
    Filed: May 28, 2002
    Publication date: December 4, 2003
    Applicant: Microsoft Corporation
    Inventors: Manuvir Das, Mark C. Seigle, Sorin L. Lerner