Patents by Inventor Adam D. Nathan

Adam D. Nathan 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: 20160034261
    Abstract: Described is a technology by which metadata augments a programming language such as JavaScript. Software components such as application programming interfaces are associated with metadata. When a software component is selected for use, such as when putting together a computer program in a graphical programming environment, its corresponding metadata is accessed. The metadata may be used to validate the usage of the software component, such as to validate a constraint associated with a value, provide a default value, validate a value's type, and/or determine whether a value is required. Validation may also determine whether data output by one software component is of a type that is appropriate for input by another software component. In addition to validation via type metadata, the metadata may provide descriptive information about the selected software component, such as to assist the programmer and/or provide further information to the programming environment.
    Type: Application
    Filed: September 4, 2015
    Publication date: February 4, 2016
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
  • Patent number: 9164737
    Abstract: Described is a technology by which metadata augments a programming language such as JavaScript. Software components such as application programming interfaces are associated with metadata. When a software component is selected for use, such as when putting together a computer program in a graphical programming environment, its corresponding metadata is accessed. The metadata may be used to validate the usage of the software component, such as to validate a constraint associated with a value, provide a default value, validate a value's type, and/or determine whether a value is required. Validation may also determine whether data output by one software component is of a type that is appropriate for input by another software component. In addition to validation via type metadata, the metadata may provide descriptive information about the selected software component, such as to assist the programmer and/or provide further information to the programming environment.
    Type: Grant
    Filed: May 16, 2008
    Date of Patent: October 20, 2015
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
  • Patent number: 9026948
    Abstract: Multi-faceted relationship hubs can support browsing an extensible set of relationship types from within a single tool window. A user can switch between relationship types within a single tool window without disrupting user flow by having to change context in a plurality of tool windows. Multiple instances of relationship hubs can be created. Browsing navigation history can be stored, allowing a user to maintain and reacquire relationship contexts. A user can preview the content of one or more files without opening the file.
    Type: Grant
    Filed: June 29, 2011
    Date of Patent: May 5, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Monty L. Hammontree, Weston Hutchins, Zachary S. Zaiss, Matthew S. Johnson, Steven John Clarke, Adam D. Nathan, Adrian M. Collier, Vikram Bapat
  • Patent number: 8875098
    Abstract: A software-implemented workflow engine is described that executes a Web mashup within the context of a Web browser running on a computer. The workflow engine is configured to parse a Web mashup definition obtained from a remote server to identify distinct units of execution within the Web mashup, referred to as components. The workflow engine is further configured to obtain programming logic and metadata associated with each type of component identified in the Web mashup definition from the remote server and to use such information to generate executable versions of the identified components. Finally, the workflow engine is configured to run each of the executable components, thereby executing the Web mashup. The workflow engine is configured to manage the order of execution of each of the executable components so that the Web mashup runs in an optimized and reliable fashion.
    Type: Grant
    Filed: November 18, 2008
    Date of Patent: October 28, 2014
    Assignee: Microsoft Corporation
    Inventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
  • Patent number: 8849753
    Abstract: Various technologies and techniques are disclosed for automating asynchronous programming in single threaded systems. A wrapper is automatically generated around an original function. When metadata indicates the wrapper should be utilized for asynchronous data retrieval, the wrapper calls a data retrieving function asynchronously. Asynchronous retrieval of data is initiated from the data retrieving function using a direct callback. A specially marked exception is thrown to cause control to leave and get caught by a special exception in the wrapper. When the direct callback function is called because the data has been retrieved, the data is saved. The wrapper is called again in a synchronous fashion, which causes the wrapper, original function, and data retrieving function to be called again. When the data retrieving function is called again, data that was saved by the direct callback function is retrieved, and then returned to the calling function through the callback function.
    Type: Grant
    Filed: May 20, 2008
    Date of Patent: September 30, 2014
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy Rice, John I. Montgomery
  • Patent number: 8745580
    Abstract: Described is a technology in a programming (development and/or runtime) environment by which data type mismatches between the output and input of computer program software components (e.g., APIs) are detected, with the output transparently converted such that the converted input may be understood by the inputting component. When components are interconnected in a programming environment, metadata associated with those components is evaluated to determine a type mismatch, e.g., between objects and arrays. If mismatched, an output object is converted to a single-element array for input, or alternatively, an output array is converted to a series of objects, each object sent within a loop for input. The transparent conversion may be performed by the programming environment during runtime, or by inserting conversion code prior to compilation.
    Type: Grant
    Filed: May 16, 2008
    Date of Patent: June 3, 2014
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
  • Patent number: 8578334
    Abstract: Various technologies and techniques are disclosed for providing an integrated development environment using a dynamic language. Input is received from a user in the form of a code command. Introspection is used to generate a list of one or more possible code command completion suggestions that are suitable completions for the input received from the user. A list of the possible code command completion suggestions are displayed to the user. Upon receiving input from a user to interact with a particular function in the integrated development environment, introspection can be used to analyze a source code section containing the particular function to extract at least one code comment contained within the function. The code comment is displayed to the user as documentation for the particular function.
    Type: Grant
    Filed: December 4, 2006
    Date of Patent: November 5, 2013
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, John I. Montgomery
  • Patent number: 8543975
    Abstract: Traditional programming environments that support event-driven programming typically expose a model where the developer chooses an event to handle on a given object, and then writes the code for that event handler. In contrast, as described herein, the traditional flow of program development is reversed. A (configurable) event-handler (“behavior”) is selected. Upon selection of one of the behaviors, the event triggering the behavior is selected. This is a “what-then-when” approach rather than the traditional “when-then-what” approach for event-driven programming.
    Type: Grant
    Filed: December 18, 2008
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, Chi Wai Wong
  • Patent number: 8543638
    Abstract: Various technologies and techniques are disclosed for enhancing security in a browser-based environment. A first browser application hosts one or more other applications. The first browser application is operable to load the one or more other applications on one or more separate domains than a host domain, using one or more cookies as a communication method between the first browser application and the one or more other applications. Input is received from a user to access a first browser application on a first domain. A selection is received from the user to run a second browser application from within the first browser application. A first cookie is created in a second domain, with the first cookie containing information to be used by the second browser application. The second browser application is loaded on the second domain. For example, the first browser application can be a browser-based software development application.
    Type: Grant
    Filed: September 24, 2007
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy Rice, John I. Montgomery
  • Publication number: 20130007671
    Abstract: Multi-faceted relationship hubs can support browsing an extensible set of relationship types from within a single tool window. A user can switch between relationship types within a single tool window without disrupting user flow by having to change context in a plurality of tool windows. Multiple instances of relationship hubs can be created. Browsing navigation history can be stored, allowing a user to maintain and reacquire relationship contexts. A user can preview the content of one or more files without opening the file.
    Type: Application
    Filed: June 29, 2011
    Publication date: January 3, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Monty L. Hammontree, Weston Hutchins, Zachary S. Zaiss, Matthew C. Johnson, Steven John Clarke, Adam D. Nathan, Adrian M. Collier, Vikram Bapat
  • Patent number: 8290152
    Abstract: Various technologies and techniques are disclosed for managing web service developer keys. A generic key identifier can be generated based on an original web service key. The generic key identifier is used within source code of an application being developed. Upon receiving a request to run the application, the generic key identifier is transformed back into the original web service key prior to calling an associated web service. Multiple users can securely share the same application that uses the web service. When one user who does not have his own original web service key accesses the application, that user can be prompted to obtain and enter the original web service key once the key has been obtained from a provider of the web service.
    Type: Grant
    Filed: August 30, 2007
    Date of Patent: October 16, 2012
    Assignee: Microsoft Corporation
    Inventors: John I. Montgomery, Adam D. Nathan, Timothy Rice, Andrew Sterland
  • Patent number: 8209662
    Abstract: Various technologies and techniques are disclosed for retargeting applications to different types. A development environment is provided for writing software. Input is received from a user to write application logic for a project. The user selects an option to save the project as a particular type of project. The application logic is wrapped with metadata appropriate for the particular type of project and at least one resulting file is created. The system determines if the resulting file needs compiled, and if so, compiles the resulting file into a compiled application. A second selection can be received from the user to save the project as a second type. In such a case, the application logic is wrapped with metadata appropriate for the second type of project and at least one resulting file is created.
    Type: Grant
    Filed: December 4, 2006
    Date of Patent: June 26, 2012
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, John I. Montgomery
  • Patent number: 8095910
    Abstract: Various technologies and techniques are disclosed for creating interruptible client-side scripts. Input is received from a developer to write original code for a web application in at least one client-side script. A code injection process is programmatically performed to modify the original code to make one or more parts of an execution of the code interruptible in the client-side script. The code injection process parses a code segment of a client-side script to retrieve a next code segment. If the next code segment has at least one conditional semantic construct, then code is injected in the form of one or more script functions that will transition execution flow from the original code segment into the one or more script functions that are operable to interrupt execution of the client-side script upon user request. The modified code resulting from the code injection process is saved for the web application.
    Type: Grant
    Filed: April 10, 2007
    Date of Patent: January 10, 2012
    Assignee: Microsoft Corporation
    Inventors: Adam D. Nathan, John I. Montgomery
  • Patent number: 7941546
    Abstract: A system and method is described for communicating requests from a Web mashup being executed within the context of a Web browser to third-party Web services in a manner that does not violate the Same Origin Policy (SOP) observed by many Web browsers. In one embodiment, a workflow engine operating in the context of a Web browser executes a plurality of executable components comprising a Web mashup. The workflow engine transparently redirects Web service requests generated by the executing components to a proxy server that acts as an intermediate between the workflow engine and third-party Web services. The proxy server, which is not subject to SOP, transmits the Web service requests to the third-party Web service and obtains requested data therefrom. The proxy server further returns the requested data in a manner that is useable by the Web mashup components.
    Type: Grant
    Filed: November 18, 2008
    Date of Patent: May 10, 2011
    Assignee: Microsoft Corporation
    Inventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
  • Publication number: 20100162207
    Abstract: Traditional programming environments that support event-driven programming typically expose a model where the developer chooses an event to handle on a given object, and then writes the code for that event handler. In contrast, as described herein, the traditional flow of program development is reversed. A (configurable) event-handler (“behavior”) is selected. Upon selection of one of the behaviors, the event triggering the behavior is selected. This is a “what-then-when” approach rather than the traditional “when-then-what” approach for event-driven programming.
    Type: Application
    Filed: December 18, 2008
    Publication date: June 24, 2010
    Applicant: Microsoft Corporation
    Inventors: Adam D. Nathan, Chi Wai Wong
  • Publication number: 20100160039
    Abstract: A game creator provides a set of abstractions (objects) that make game creation simpler. The abstractions provided in the game creation component include Game, Scene, and Actor. A Game abstraction comprises global settings for the game and includes one or more Scenes. Each Scene abstraction within the game includes one or more Actors. By setting properties and behaviors on these three abstractions, Game creators with little or no skill in programming can create games. Filtering can be performed declaratively through selection of appropriate options.
    Type: Application
    Filed: December 18, 2008
    Publication date: June 24, 2010
    Applicant: Microsoft Corporation
    Inventors: Adam D. Nathan, Chi Wai Wong, Benjamin J. Anderson, Timothy S. Rice
  • Publication number: 20100125826
    Abstract: A software-implemented workflow engine is described that executes a Web mashup within the context of a Web browser running on a computer. The workflow engine is configured to parse a Web mashup definition obtained from a remote server to identify distinct units of execution within the Web mashup, referred to as components. The workflow engine is further configured to obtain programming logic and metadata associated with each type of component identified in the Web mashup definition from the remote server and to use such information to generate executable versions of the identified components. Finally, the workflow engine is configured to run each of the executable components, thereby executing the Web mashup. The workflow engine is configured to manage the order of execution of each of the executable components so that the Web mashup runs in an optimized and reliable fashion.
    Type: Application
    Filed: November 18, 2008
    Publication date: May 20, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
  • Publication number: 20100125623
    Abstract: A system and method is described for communicating requests from a Web mashup being executed within the context of a Web browser to third-party Web services in a manner that does not violate the Same Origin Policy (SOP) observed by many Web browsers. In one embodiment, a workflow engine operating in the context of a Web browser executes a plurality of executable components comprising a Web mashup. The workflow engine transparently redirects Web service requests generated by the executing components to a proxy server that acts as an intermediate between the workflow engine and third-party Web services. The proxy server, which is not subject to SOP, transmits the Web service requests to the third-party Web service and obtains requested data therefrom. The proxy server further returns the requested data in a manner that is useable by the Web mashup components.
    Type: Application
    Filed: November 18, 2008
    Publication date: May 20, 2010
    Applicant: Microsoft Corporation
    Inventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
  • Publication number: 20090293073
    Abstract: Various technologies and techniques are disclosed for automating asynchronous programming in single threaded systems. A wrapper is automatically generated around an original function. When metadata indicates the wrapper should be utilized for asynchronous data retrieval, the wrapper calls a data retrieving function asynchronously. Asynchronous retrieval of data is initiated from the data retrieving function using a direct callback. A specially marked exception is thrown to cause control to leave and get caught by a special exception in the wrapper. When the direct callback function is called because the data has been retrieved, the data is saved. The wrapper is called again in a synchronous fashion, which causes the wrapper, original function, and data retrieving function to be called again. When the data retrieving function is called again, data that was saved by the direct callback function is retrieved, and then returned to the calling function through the callback function.
    Type: Application
    Filed: May 20, 2008
    Publication date: November 26, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy Rice, John I. Montgomery
  • Publication number: 20090293059
    Abstract: A workflow design system receives a set of parameters that are to be used in a workflow, as well as an indication of a function that is to be performed in the workflow. The workflow design system uses a mapping component to map the parameters to inputs of the identified function. The workflow design system then outputs suggested mappings of the parameters to the function inputs, and optionally waits for user confirmation. Once user confirmation is received (if it is required), either the workflow design system or the mapping component automatically generates the connections between the parameters and the function inputs.
    Type: Application
    Filed: May 20, 2008
    Publication date: November 26, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy S. Rice, John I. Montgomery