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: 20160034261Abstract: 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: ApplicationFiled: September 4, 2015Publication date: February 4, 2016Applicant: Microsoft Technology Licensing, LLCInventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
-
Patent number: 9164737Abstract: 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: GrantFiled: May 16, 2008Date of Patent: October 20, 2015Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
-
Patent number: 9026948Abstract: 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: GrantFiled: June 29, 2011Date of Patent: May 5, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Monty L. Hammontree, Weston Hutchins, Zachary S. Zaiss, Matthew S. Johnson, Steven John Clarke, Adam D. Nathan, Adrian M. Collier, Vikram Bapat
-
Patent number: 8875098Abstract: 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: GrantFiled: November 18, 2008Date of Patent: October 28, 2014Assignee: Microsoft CorporationInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
-
Patent number: 8849753Abstract: 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: GrantFiled: May 20, 2008Date of Patent: September 30, 2014Assignee: Microsoft CorporationInventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy Rice, John I. Montgomery
-
Patent number: 8745580Abstract: 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: GrantFiled: May 16, 2008Date of Patent: June 3, 2014Assignee: Microsoft CorporationInventors: Adam D. Nathan, Andrew R. Sterland, Timothy S. Rice, Michael J. Leonard, John I. Montgomery
-
Patent number: 8578334Abstract: 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: GrantFiled: December 4, 2006Date of Patent: November 5, 2013Assignee: Microsoft CorporationInventors: Adam D. Nathan, John I. Montgomery
-
Patent number: 8543975Abstract: 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: GrantFiled: December 18, 2008Date of Patent: September 24, 2013Assignee: Microsoft CorporationInventors: Adam D. Nathan, Chi Wai Wong
-
Patent number: 8543638Abstract: 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: GrantFiled: September 24, 2007Date of Patent: September 24, 2013Assignee: Microsoft CorporationInventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy Rice, John I. Montgomery
-
Publication number: 20130007671Abstract: 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: ApplicationFiled: June 29, 2011Publication date: January 3, 2013Applicant: MICROSOFT CORPORATIONInventors: Monty L. Hammontree, Weston Hutchins, Zachary S. Zaiss, Matthew C. Johnson, Steven John Clarke, Adam D. Nathan, Adrian M. Collier, Vikram Bapat
-
Patent number: 8290152Abstract: 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: GrantFiled: August 30, 2007Date of Patent: October 16, 2012Assignee: Microsoft CorporationInventors: John I. Montgomery, Adam D. Nathan, Timothy Rice, Andrew Sterland
-
Patent number: 8209662Abstract: 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: GrantFiled: December 4, 2006Date of Patent: June 26, 2012Assignee: Microsoft CorporationInventors: Adam D. Nathan, John I. Montgomery
-
Patent number: 8095910Abstract: 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: GrantFiled: April 10, 2007Date of Patent: January 10, 2012Assignee: Microsoft CorporationInventors: Adam D. Nathan, John I. Montgomery
-
Patent number: 7941546Abstract: 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: GrantFiled: November 18, 2008Date of Patent: May 10, 2011Assignee: Microsoft CorporationInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
-
Publication number: 20100162207Abstract: 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: ApplicationFiled: December 18, 2008Publication date: June 24, 2010Applicant: Microsoft CorporationInventors: Adam D. Nathan, Chi Wai Wong
-
Publication number: 20100160039Abstract: 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: ApplicationFiled: December 18, 2008Publication date: June 24, 2010Applicant: Microsoft CorporationInventors: Adam D. Nathan, Chi Wai Wong, Benjamin J. Anderson, Timothy S. Rice
-
Publication number: 20100125826Abstract: 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: ApplicationFiled: November 18, 2008Publication date: May 20, 2010Applicant: MICROSOFT CORPORATIONInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
-
Publication number: 20100125623Abstract: 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: ApplicationFiled: November 18, 2008Publication date: May 20, 2010Applicant: Microsoft CorporationInventors: Timothy S. Rice, Andrew R. Sterland, Patrick Chi Wai Wong, Adam D. Nathan
-
Publication number: 20090293073Abstract: 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: ApplicationFiled: May 20, 2008Publication date: November 26, 2009Applicant: MICROSOFT CORPORATIONInventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy Rice, John I. Montgomery
-
Publication number: 20090293059Abstract: 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: ApplicationFiled: May 20, 2008Publication date: November 26, 2009Applicant: MICROSOFT CORPORATIONInventors: Adam D. Nathan, Andrew Sterland, Michael J. Leonard, Timothy S. Rice, John I. Montgomery