Interface infrastructure for a continuation based runtime

US9354847B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9354847-B2
Application numberUS-34528808-A
CountryUS
Kind codeB2
Filing dateDec 29, 2008
Priority dateDec 29, 2008
Publication dateMay 31, 2016
Grant dateMay 31, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Namespace for continuation-based runtime. Some embodiments described herein are directed to a framework using continuation based runtime namespaces that pertain to an infrastructure for enabling the creation of a wide variety of continuation-based programs that perform a wide-array of tasks. The infrastructure provides a foundation for building continuation-based, declarative applications of various scale and complexity. In some embodiments, the associated application programming interfaces (APIs) are factored into a hierarchy of namespaces in a manner that balances utility, usability, extensibility, and versionability.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer readable storage medium, the computer readable storage medium comprising at least one of RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, the computer readable storage medium having stored thereon computer executable instructions for implementing a framework for enabling the creation or execution of continuation-based declarative applications, the computer readable medium comprising computer readable instructions that when executed by one or more processors cause the following to be implemented: a first plurality of application programming interfaces (APIs), using the processor, configured for writing continuation based runtimes, each of the first plurality of APIs included in a first common namespace for an activity model of a continuation-based. runtime, and each of the first plurality of APIs represented with a common namespace prefix for logical grouping of the first plurality of continuation-based runtime APIs, the first plurality of APIs comprising: a first API class that represents continuation-based functional behavior, wherein instances of the first API class include imperative code in their bodies that is executed by a processor to perform functions, and wherein the first API class is polymorphic; and a second API class used to store data in the continuation-based runtime, the second API class including a type and a name, and a plurality of argument classes, wherein each of the argument classes is a binding terminal that represents the flow of data for instances of the activity class, the plurality of argument classes comprising: an inargument class that has a direction of In; an outargument class that has a direction of Out; and an inoutargument class that has a direction of InOut; a second plurality of APIs organized in a second common namespace and that are represented with a second common namespace prefix for logical grouping, wherein the second plurality of APIs are used to host, execute, and manage instances of continuation-based, declarative programs; a third plurality of APIs organized in a third common namespace and that are represented with a third common namespace prefix for logical grouping, wherein the third plurality of APIs are used to implement a base layer of activities that add functionality to the continuation-based runtime and that are used to add concrete behaviors that build on top of a core activity model; a fourth plurality of APIs organized in a fourth common namespace and that are represented with a fourth common namespace prefix for logical grouping, wherein the fourth plurality of APIs are used for providing and executing build constraints and policy constraints, wherein build constraints validate that a given workflow does not violate any runtime or activity assumptions which would most likely cause runtime exceptions and wherein policy constraints warn of potential issues including one or more of best practice violations, design guideline violations, or company policy violations; a fifth plurality of APIs organized in a fifth common namespace and that are represented with a fifth common namespace prefix for logical grouping, wherein the fifth plurality of APIs are used for defining and consuming tracking events; and a sixth plurality of APIs organized in a sixth common namespace and that are represented with a sixth common namespace prefix for logical grouping, wherein the sixth plurality of APIs are used for modeling communication with other systems by sending and receiving messages in and out of a workflow, and for representing a continuation-based program as a service. 2. The computer readable medium of claim 1 , wherein the first plurality of APIs comprises: a second activity class used for declaratively composing behavior dynamically using an Activity document object model; a code activity class used for writing imperative behavior through an Execute method that has access to data resolution and extensions; a native activity class used for writing imperative behavior through an Execute method that has unfettered access to the full breath of the runtime; a workflow element class used for implementing a continuation-based functional behavior that has a well-known, elevated return value; an activity context class used for allowing for environment access; a code activity context class that adds a sync operation support to the API used for allowing environment access; an activity execution context class that adds support for child management, setting up no-persist zones, isolation blocks, and bookmarks; a variable class used for the storage of data in a continuation-based program; an argument class used for implementing a binding terminal that represents the flow of data for an activity; and an activity delegate class used for implementing a snippet of workflow with a specific signature. 3. The computer readable medium of claim 1 , wherein the first plurality of APIs comprises: a first API class that represents continuation-based behavior, wherein instances of the class include imperative code in their bodies that is executed by a processor to perform functions; and a second API class that is used for declaratively composing continuation-based behaviors of the first class into new types by declaring one or more instances of the first API class. 4. The computer readable medium of claim 3 , wherein the first plurality of APIs further comprises: an API used for declaratively composing behavior dynamically using an Activity document object model; an API used for writing imperative behavior through an Execute method that has access to data resolution and extensions; an API used for writing imperative behavior through an Execute method that has unfettered access to the full breath of the runtime; an API used for implementing a continuation-based functional behavior that has a well-known, elevated return value; an API used for allowing for environment access; an API that adds async operation support to the API used for allowing environment access; an API that adds support for child management, setting up no-persist zones, isolation blocks, and bookmarks; an API used for the storage of data in a continuation-based program; an API used for implementing a binding terminal that represents the flow of data for an activity; and an API used for implementing a snippet of workflow with a specific signature. 5. The computer readable medium of claim 1 , wherein the first plurality of APIs are represented as source code. 6. The computer readable medium of claim 1 , wherein the first plurality of APIs represented as compiled code. 7. The computer readable medium of claim 1 , wherein the second plurality of APIs comprises: a runtime class used to create a new workflow instance or to load an existing instance; a runtime context class used to provide the runtime class an existing instance to host functionality including synchronization, persistence, tracking, and extensions; a workflow instance class used for implementing a locus of control for workflow instance management; a workflow invoker class used for directly running an activity as if it were a method call; and a services class used for implementing a primary entry point for accessing a plurality of hosting services. 8. The computer readable medium of claim 1 , wherein the third plurality of APIs comprises: sequence class used for scheduling instances of the first API class for execution in sequential order; an if class that is used to schedule one of two workflow elements for execution based on conditions a for each class used for incrementally going through an enumeration and invoking a configurated action class with the current valu

Assignees

Inventors

Classifications

  • G06F8/30Primary

    Creation or generation of source code · CPC title

  • G06F8/313Primary

    Logic programming, e.g. PROLOG programming language · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9354847B2 cover?
Namespace for continuation-based runtime. Some embodiments described herein are directed to a framework using continuation based runtime namespaces that pertain to an infrastructure for enabling the creation of a wide variety of continuation-based programs that perform a wide-array of tasks. The infrastructure provides a foundation for building continuation-based, declarative applications of va…
Who is the assignee on this patent?
Wolf Kenneth D, Pinto Edmund Samuel Victor, Schmidt Robert Brian, and 11 more
What technology area does this patent fall under?
Primary CPC classification G06F8/30. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 31 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).