Patent application number | Description | Published |
20090158289 | WORKFLOW EXECUTION PLANS THROUGH COMPLETION CONDITION CRITICAL PATH ANALYSIS - Optimizing workflow execution. A method includes identifying a completion condition. The completion condition is specified as part of the overall workflow. The method further includes identifying a number of activities that could be executed to satisfy the completion condition. One or more activities from the number of activities is ordered into an execution plan and assigned system resources based on an analysis of activities in the number of activities and the completion condition. | 06-18-2009 |
20090240698 | COMPUTING ENVIRONMENT PLATFORM - The diverse objects comprising a computing environment may be represented together as a deployable object hierarchy, which may facilitate the deployment, as well as the consistency, of a computing environment rendered by a plurality of devices. The processes within the computing environment often operate on the objects of the object hierarchy in a variety of ways, including simple operations (creation, reading, updating, and deleting) and more sophisticated operations (synchronizing, paginating, and caching), as well as with the object hierarchy in general. A platform may be devised to facilitate the various operations of the processes on the object hierarchy. The platform may be embodied, such as in an application runtime, and deployed to a variety of platforms to facilitate an equivalent execution of the processes on any type of device and consistent interactions with the object hierarchy. | 09-24-2009 |
20090240728 | COMPUTING ENVIRONMENT REPRESENTATION - A computing environment may be represented as a deployable object hierarchy, which may be organized according to an object hierarchy schema that is commonly shared among the computing environment host and the devices that are configured to render the computing environment. A particular object hierarchy schema is presented in detail for representing a computing environment, wherein many objects of the computing environment are modeled as resources that may be distinctly addressable (e.g., in a RESTful object hierarchy.) Many types of objects and properties thereof are presented in order to elucidate an exemplary object hierarchy schema and to illustrate exemplary objects and object hierarchies organized according thereto. Additional properties of various object hierarchy schemas include extensibility, deployability, and object addressing models with various advantages. | 09-24-2009 |
20090240935 | COMPUTING ENVIRONMENT CONFIGURATION - Within a computing environment, an application may run in a variety of contexts, e.g., as a natively executable application, as a client-side interpretable application embedded in a web browser, or as a server-side application that communicates with the user through a web interface presented on a device. The application may also access resources of the computing environment stored on multiple devices. The configuration of the application to operate equivalently in these diverse environments may be facilitated by representing the application within an object hierarchy representing the computing environment. The application may be configured to operate on the objects of the object hierarchy regardless of the location of the stored objects, to execute on any device, and to execute upon a standard set of application programming interfaces. The configuration of the application in this manner promotes the versatility of the application in operating equivalently in different programming contexts. | 09-24-2009 |
20090241104 | APPLICATION MANAGEMENT WITHIN DEPLOYABLE OBJECT HIERARCHY - The management of applications in a computing environment often involves a significant number of computing operations, such as acquiring the application, deploying data objects in various locations, and configuring the application with respect to the deployed device. Conventional computing environments may provide inadequate support throughout a typical application life cycle, especially for a computing environment distributed across many devices. Instead, the computing environment may be represented in a deployable object hierarchy that may be distributed to various devices. An application management service may therefore be provided to install representations of the application in the object hierarchy, and to support many other aspects of the application life cycle, such as application discovery, sharing, updating, and removal. The devices may therefore provide the applications of the computing environment to the user in a consistent manner with reduced manual management among the devices comprising the computing mesh. | 09-24-2009 |
20090248737 | COMPUTING ENVIRONMENT REPRESENTATION - A computing environment typically comprises a large set of diverse objects, such as files, user profiles, executable binaries, configuration information, and data caches, wherein such objects are typically stored and managed by an aggregation of systems, such as a file system, a system registry, and an assembly cache. An alternative representation of the computer system may comprise an object hierarchy configured to store all of the objects of the computing environment according to a simple organizational grammar. Various services (e.g., a synchronization service, a backup service, and a sharing service) may be provided to manage the diverse objects in a similar manner. The representation may also be provided to a variety of devices, which may render the computing environment in a consistent manner but adjusted to reflect the capabilities of the device and the user. The computing environment is thereby represented in a deployable, consistent, and extensible manner. | 10-01-2009 |
20100094926 | DECLARATIVE PROGRAMMING MODEL FOR MODELING AND EXECUTION OF TRIGGERS FOR RESOURCE ORIENTED SYSTEM - Data sets of various types may be accessible through a host according to a protocol, such as a RESTful HTTP interface. Various domains may involve domain-specific processes to be executed as pre-triggers or post-triggers of various protocol requests (e.g., an HTTP GET request specifying a Read operation on an access-restricted data set may involve an authorization operations set that verifies the access privileges of the requester.) A host of the data set may be configured to receive a resource script expressing the operations set in a script language, to store the resource script, and to associated it with at least one data set and at least one verb of the protocol. Upon later receiving a protocol request specifying the verb and the resource, the host may then execute the resource script (as a pre-trigger and/or as a post-trigger) in accordance with the business logic of the domain. | 04-15-2010 |
20100095272 | DECLARATIVE PROGRAMMING MODEL FOR AUTHORING AND EXECUTION CONTROL AND DATA FLOW FOR RESOURCE ORIENTED SYSTEM - A data set may be managed by a host that provides access to clients through a protocol, such as a RESTful HTTP interface. A resource script may be expressed according to a script language featuring two types of instructions: data set instructions that correspond to the verbs of the protocol, and flow control instructions that alter the flow of execution of the resource script. At runtime, an execution context for the resource script may be selected as a local execution context (through a local script processor that issues protocol verbs to the host based on the data set operations) or a remote execution context (by sending the resource script to a script processor located on the host.) The runtime selection of data context may be executed without having to reconfigure the resource script, and with an equivalent effect on the data set. | 04-15-2010 |
20100235321 | PROGRAMMING MODEL FOR SYNCHRONIZING BROWSER CACHES ACROSS DEVICES AND WEB SERVICES - A computer user may use a computing environment comprising a set of computers that respectively feature a web browser having a browser cache containing many types of data objects, including application resources and user-generated data files. However, the contents of a browser cache significantly contribute to the computing environment of a computer, and the computing environments presented by each computer may diverge, providing an inconsistent computing environment. Instead, the contents of browser caches of the computers comprising the computing environment may be synchronized across computers. Additionally, the browser cache may be synchronized with the other data objects of a computing environment (such as relevant portions of the filesystem); the synchronizing may be implemented as an out-of-browser process executing independently of the applications, and even when the browser is not executing; and the synchronization may be exposed through a programmatic access with which web applications may interact. | 09-16-2010 |
20100235829 | PROGRAMMING MODEL FOR INSTALLING AND DISTRIBUTING OCCASIONALLY CONNECTED APPLICATIONS - An application executing in a virtual environment, such as a web browser, may be serviced by an application host, such as a webserver that maintains application resources or provides runtime services to the application. However, it may be difficult to configure the application to operate suitably when the application host is unavailable. Techniques for facilitating such operation include the storing of application resources in a computing environment (such as the local file system or a deployable mesh or cloud environment) while also initiating the application within the virtual environment in the context of the application host, which may reduce difficulties with isolation policies imposed by the virtual environment (e.g., cross-domain restrictions imposed by the web browser.) This configuration may promote the servicing of the application alongside other applications and data objects, e.g., the automated deployment and synchronization of the application among all devices comprising the user's mesh environment. | 09-16-2010 |
20100235830 | PROGRAMMING MODEL FOR APPLICATION AND DATA ACCESS AND SYNCHRONIZATION WITHIN VIRTUAL ENVIRONMENTS - Applications executing on computer systems may execute in a virtual environment, such as a web application executing in a web browser. An application may access the actual computing environment (such as the filesystem), but this accessing may be complicated; e.g., the computing environment may be deployed across many computers and devices, and may be synchronized for offline access via a local cache. A computing environment component may service the complex computing environment (e.g., by managing the cache and retrieving remotely stored data objects) and expose it as a well-organized set of data objects. A virtual environment interface (e.g., a web browser plug-in) may allow applications hosted in the virtual environment to access the computing environment through the computing environment component. Programmatic interfaces may also be implemented to permit such accessing via familiar programming languages and techniques, such as JavaScript libraries exposed to web applications in the web browser. | 09-16-2010 |
20110320522 | CONTEXT-SPECIFIC NETWORK RESOURCE ADDRESSING MODEL FOR DISTRIBUTED SERVICES - A back-end locator service can be utilized to identify a specific computing device, from among multiple computing devices in a domain, that is the most appropriate computing device to handle a particular type of request for data or other resources. The data or resources hosted by the domain can be divided among multiple computing devices. The domain can expose a network-based application program interface where successive requests by a client computing device become more specific as to the data or resources requested. Responses from the computing devices in the domain can, at some point in time, be informed by the back-end locator service and can comprise location-specific resource identifiers. The client computing device can utilize such location specific resource identifiers to direct further communications to the appropriate, specific computing device without having to incur redirection inefficiencies. | 12-29-2011 |
20120030169 | APPLICATION INSTANCE AND QUERY STORES - An instance persistence command for an update to a state of an instance of an application can be issued. In response to the persistence command, a transaction with an instance store can be initiated. As part of the transaction, a first representation of the update can be stored in the instance store and a second representation of the update can be stored in a queue. The transaction can be committed after storing the first and second representations. After the transaction is committed, the second representation can be processed to store a third representation of the update in a query store. Application instance state information in the query store can be updated and queried without locking the instance store so that such operations in the query store can be performed asynchronously with operations in the instance store. | 02-02-2012 |
20120159424 | DISTRIBUTED APPLICATION MANIFEST - A method of creating a manifest for a distributed application is disclosed. Components and composites of components of the distributed application are described in a technology agnostic manner. The description includes a definition of the scalability of the composites of components. | 06-21-2012 |
20120159425 | APPLICATION MODEL FOR IMPLEMENTING COMPOSITE APPLICATIONS - Embodiments are directed to providing an application model for implementing composite applications and to providing a declarative programming model and distributed runtime for creating and executing composite applications. In an embodiment, a computer system instantiates an application model. The application model allows users to compose composite applications. The composite applications are configured to run on both distributed computing systems and local computing systems. The computer system receives user input at the instantiated application model. The user input indicates which composite application components are to be used in conjunction with each other to form the composite application. The computer system also provides the composite application on a distributed computing system and/or a local computing system. | 06-21-2012 |
20120159523 | MULTI-TENANT, HIGH-DENSITY CONTAINER SERVICE FOR HOSTING STATEFUL AND STATELESS MIDDLEWARE COMPONENTS - A container service is capable of hosting large numbers of middleware components for multiple tenants. A central container manager controls a plurality of compute nodes. The central container manager receives middleware components from external devices or services and assigns the components to containers on one or more designated compute nodes. Each compute node has a container management agent and one or more containers. The container management agents activate and manage the appropriate number of containers to run the assigned middleware components. The container management agent assigns each container on its compute node a limited set of privileges to control access to shared resources. The central container manager and each node's container management agent monitor container load levels and dynamically adjust the placement of the middleware components to maintain balanced operation. The compute nodes are grouped into clusters based upon the type of middleware components hosted on each compute node. | 06-21-2012 |
20120222003 | DISTRIBUTED APPLICATION DEFINITION - A method of creating an application definition for a distributed application is disclosed. Constructs corresponding with a schema of the distributed application are defined in a declarative and technology agnostic manner. The constructs include the application definition, a module definition, and a component definition. Each construct includes metadata. | 08-30-2012 |
20120246613 | DISTRIBUTED COMPONENT MODEL - A distributed component model for creating a scalable and available distributed application is disclosed. The distributed component model provides for an application schema to be declaratively defined to include a module having a component. The schema includes a corresponding definition construct in a technology agnostic manner. The corresponding definition construct is declaratively defined to include metadata to control scaling and availability. | 09-27-2012 |
20120254109 | DISTRIBUTED COMPONENT RUNTIME - A method of creating a distributed application in a distributed component runtime is disclosed. An application schema including distributed modules is declaratively defined. Each module hosts a component having a corresponding logical address. Mapping the corresponding logical addresses to physical addresses at runtime virtualizes interactions between the components. | 10-04-2012 |
20120260227 | STATEFUL COMPONENT AUTHORING AND EXECUTION - A method for of authoring and executing stateful components for a distributed application is disclosed. An application schema for the distributed application is declaratively defined and includes a plurality of distributed modules. Each module hosts a set of stateful components co-located in a physical tier of a distributed environment having logic to manipulate state. The runtime supports partitioning the stateful components. Control flow opaqueness of component logic is banished in each of the stateful components, which would otherwise occur if state was externalized. | 10-11-2012 |
20120324069 | Middleware Services Framework for On-Premises and Cloud Deployment - A framework and middleware services for developing, deploying and managing composite applications is disclosed. The middleware services may be deployed on-premises or in the cloud. The framework includes a rich collection of middleware services, an application model to compose services into a composite application, a high-density multi-tenant scalable container to host the composition logic, and unified lifecycle management of the composite application and its constituent services. | 12-20-2012 |
20130160115 | SANDBOXING FOR MULTI-TENANCY - Systems and methods according to various embodiments disclose a worker process manager adapted to spawn one or more worker processes on a server and to load an application on each of the worker processes. The worker process manager is adapted to isolate the one or more worker processes from each other and to control resource usage by the worker processes. A resource manager is adapted to detect applications that overuse system resources. The worker process manager is adapted to isolate worker processes and to control resource usage using one or more of the following techniques: least-privilege execution, messaging isolation, credentials isolation, data isolation, network isolation, fair share resource usage, and managed runtime security. Heuristic algorithms are used to detect applications that frequently overuse system resources that are unchargeable and that cause system unresponsiveness. | 06-20-2013 |
20140052840 | VERSATILE APPLICATION CONFIGURATION FOR DEPLOYABLE COMPUTING ENVIRONMENTS - Within a computing environment, an application may run in a variety of contexts, e.g., as a natively executable application, as a client-side interpretable application embedded in a web browser, or as a server-side application that communicates with the user through a web interface presented on a device. The application may also access resources of the computing environment stored on multiple devices. The configuration of the application to operate equivalently in these diverse environments may be facilitated by representing the application within an object hierarchy representing the computing environment. The application may be configured to operate on the objects of the object hierarchy regardless of the location of the stored objects, to execute on any device, and to execute upon a standard set of application programming interfaces. The configuration of the application in this manner promotes the versatility of the application in operating equivalently in different programming contexts. | 02-20-2014 |
20140095813 | CONFIGURABLE AND TUNABLE DATA STORE TRADEOFFS - A data store is configurable in terms of various tradeoffs including consistency and availability, among others. Consistency can be specified in terms of one of a myriad of configuration levels. Availability can be specified with respect to a maximum and minimum number of replicas or failure tolerance. In operation, one or more of write or read quorums can be automatically adjusted to ensure satisfaction of a specified configuration level in light of changes in the number of replicas. | 04-03-2014 |
20140101298 | SERVICE LEVEL AGREEMENTS FOR A CONFIGURABLE DISTRIBUTED STORAGE SYSTEM - A service level agreement can be generated based on a data store configuration. In one instance, the configuration can be specified in terms of a data value such as high, medium, and low value, for example. In another instance, a workload configuration can be specified comprising a replica set and consistency level, among other things. More particularly, the service level agreement can include guarantees regarding one or more of consistency, availability, latency, or fault tolerance, among others, as a function of a data value or workload configuration. Further, operation of a service associated with a service level agreement can be monitored to determine satisfaction or violation of guarantees, and provide real time feedback. | 04-10-2014 |
20150046519 | PROGRAMMING MODEL FOR SYNCHRONIZING BROWSER CACHES ACROSS DEVICES AND WEB SERVICES - A computer user may use a computing environment comprising a set of computers that respectively feature a web browser having a browser cache containing many types of data objects, including application resources and user-generated data files. However, the contents of a browser cache significantly contribute to the computing environment of a computer, and the computing environments presented by each computer may diverge, providing an inconsistent computing environment. Instead, the contents of browser caches of the computers comprising the computing environment may be synchronized across computers. Additionally, the browser cache may be synchronized with the other data objects of a computing environment (such as relevant portions of the filesystem); the synchronizing may be implemented as an out-of-browser process executing independently of the applications, and even when the browser is not executing; and the synchronization may be exposed through a programmatic access with which web applications may interact. | 02-12-2015 |