The present invention relates to cloud computing. More particularly, the present invention relates to the coordination of processes in cloud computing.
Cloud computing is a way for users to store data and operate computational processes on infrastructure connected by a network. Thus, instead of having to purchase physical infrastructure, users send processes and data out to be run and stored on infrastructure owned by other entities. The user only pays for the amount of data storage or processing capability that he or she desires. This allows the user to tap computing resources that would be impossible without owning actual, physical and vast computing resources. Cloud computing opens up great possibilities because of the many resources available. But, by its very nature, the cloud computing has so many tools and resources that it is difficult to organize efficiently.
Systems and methods of managing computer cloud resources, may comprise receiving, via at least one server acting as an orchestration site, at least one cloud resource management plan from at least one user and storing, via the at least one server, the at least one plan in at least one storage and retrieving, via the at least one server acting as an orchestration manager, the at least one plan from at the at least one database, and executing the plan, via the at least one server, with at least one site controller.
Examples of these may also include where the orchestration site and the orchestration manager are further configured to communicate over a distributed messaging bus. Also, where the communication includes information regarding whether the at least one plan is ready for execution.
Still other examples include where the at least one plan includes at least one group of cloud resources. And where the at least one group includes at least one cloud resource and a policy regarding the at least one resource.
Some examples may include where the plan includes information regarding the interaction of the at least one group with other groups. Also, where the plan includes a name of the plan. And where the at least one site controller includes a computer cloud resource. Yet others may include where the storage is at least one of a database and cloud storage.
Examples may also include where the system and methods include at least one cloud resource management plan includes instructions including configuring a master orchestration to drive at least one sub orchestration. Also where a cloud resource includes at least one of, a third party provided object and third party provided cloud service.
Other embodiments include where the cloud resource is, or is a combination of, a virtual machine, a physical machine, an operating system, storage service, networking service, and an application service.
For a better understanding of the embodiments described in this application, reference should be made to the description below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
In the following detailed descriptions, numerous specific details are set forth to illustrate the subject matter presented in this document. It will, however, be apparent to one of ordinary skill in the art that the subject matter may be practiced without these exact specific details. Moreover, the descriptions are provided by way of example and should not be used to limit the scope of any later claimed inventions.
Computer networks of many kinds exist today. Closed and proprietary networks, open and public networks, and hybrid networks as well. These networks tie together computer servers and databases in ways that allow computer programs to run efficiently. Some embodiments of such networks are known as “cloud computing.” Over such a network, such as the internet, computer resources such as infrastructure, platforms and applications can all be used by client users. The physical resources of such cloud networks may be scattered around various physical locations, but by being networked together, can become a larger resource. Various systems and methods can be used to manage the resources that can be hosted and run on such a cloud network.
The technology described in this document seeks to address this by allowing users to coordinate their cloud computing in order to become efficient, coherent, redundant, interdependent, and secure. This Orchestration’ provides for the automated management of user-defined system components for high availability, monitoring, and persistence allowing users to troubleshoot systems, manage processes and to create and coordinate complex processes in a computing cloud, or over numerous clouds.
Orchestration is a specification by which user can specify different objects or references to other orchestrations or objects, establish relationships between them and apply different kinds of policies on them. These objects include but are not limited to all first class features provided by the cloud and Cloud Services Extensions added to the cloud. Different kind of relationships can be specified, “dependency” is one example of a relationship. Different kinds of policies can be applied. “high-availability (HA) and autoscaling” are few examples of such policies. User can co-ordinate several processes on the same, multiple or public clouds. These processes may include any functionality/objects provided by the cloud. Example: security policies, storage co-ordination, networking, actual CRs (computational resources which includes but is not limited to a virtual machine, OS container or an actual physical machine), new cloud services/extensions enabled on the cloud, etc.
User can create/add his own orchestration which may contain the potpourri of his desired objects or contain references to other orchestrations. The user can establish relationships between different kinds of objects/references and apply policies example: HA. After the User has created his orchestration, he can start the orchestration. When the orchestration is started, the cloud objects are orchestrated according to the specifications in the orchestration. The Orchestration is the coordination of the objects. A single orchestration can even create and manage other orchestrations. For example, a Master Orchestration can drive three children orchestrations, each of those three of their own children, and so on, creating a compounding or mushrooming effect.
Just as objects can have dependencies among and between them, entire orchestrations can do the same. In this way, not only separate objects are coordinated, but orchestrations, more complex series of objects run in concert are then coordinated. A Cloud administrator can set up users and groups this way as well as security, or other processes. Different kinds of relationships can be defined among and between the objects and orchestrations. It is important to bear in mind that usually, a user admin/user/developer etc can specify only cloud objects on which he/she has permissions. All existing security mechanisms including permissions, access, keys on each individual cloud objects are honored. For example: a cloud admin can orchestrate users/groups/networks etc while another user can orchestrate CRs (virtual machines, OS containers etc.) and they can even co-ordinate Cloud Services.
Different kind of policies can be applied on cloud objects. Policies include but are not limited to High Availability (apply different policies if they go away e.g.—recreate them on same/another cloud etc.), Monitoring (monitor the state of the objects), Autoscaling (scale the objects up or down based on certain criteria). Cloud can provide its own implementation of these policies or a user /cloud-admin can create custom policies.
Thus, orchestration ties together cloud computing components into a single, manageable collection for the user. For example, with orchestration a user can associate networks, network security, and storage with the instantiation of a Computational Resource, which includes, but is not limited to a Virtual Machine, OS containers or an actual physical machine. This instantiation can be restarted automatically if it terminates for some reason, it can be monitored, or it can be disabled. In addition, a user can specify dependencies to affect the sequence of how components are orchestrated.
Overview
In overview, the steps for creating an orchestration are illustrated in
In
The orchestration model therefore represents a grouping of objects, namely: oplans: is a fully listed sub collection of oplans described below; status: overall status for this orchestration; and relationships: list of relationships. This defines the relationships between two or more oplans. [Omicron][Kappa] o2 or o2>ol′ would implies an order in which ol should be before o2. If a dependency fails then subsequent oplans will not be started.
Also, for the above, it will be apparent that the oplan represents an orchestration plan for a specific object and that it only exists as part of an orchestration. It may include a number of attributes, including: obj type: refers to the type of the object. It is nothing but the base path for other models in the system. Examples: launchplan, vservice/vdhcpservice etc.; objects: List of object dictionaries or names of obj type. See examples below; status: status for this oplan; and ha_policy: if a user wants an object to persist, for example with instances, launchplans, etc., the user can apply an HA policy here. It is possible to support 3 policies—disabled, monitor and active, in which disabled: means that the object will not monitored at all. (This is the default policy); monitor: monitor the object and just report error when something goes wrong; and active: monitor the object and if it is not found or in error state, keep trying to create it again or bring it back to a sane state.
As is illustrated in
Moreover, as illustrated in
A system for implementing the technology described in this document is shown in
As will be described more fully below, this system allows a user to group together a plurality of objects and to orchestrate a number of common functions, such as add/get/delete/update; monitor status; provide High Availability; specify relationships between different objects and auto-scale certain objects, for example, instances and cloud services.
The use of this system and the methods described above will now be described with reference to specific, non-limiting examples.
Working with Orchestration
As described, orchestration is the automated management of user-defined system components for high availability, monitoring, and persistence. Orchestrations can be available via a Web API/CLI/UI but they can be extended to other interfaces. For example, in a non limiting example, one can work with orchestrations either with web console or the command line: The web console is sufficient for basic, simple orchestrations. More complex orchestrations can be stored in a JSON file and then added, started, stopped or deleted with the nimbula-api command.
These specific examples should not be seen as limiting. Thus, orchestrations can be specified in any document /object specification language, for example: JSON/YAML/XML, etc.
To illustrate, the following topics are explored below: a simple orchestration; a generalized process for orchestrating; the status of an orchestration; the number of components, specifying dependencies, and nesting orchestrations; an example of working with orchestration on the command line; and orchestration with Amazon EC2. While this example considers EC2, it should be noted that a single orchestration can span private and public clouds. Amazon EC2 is just one of the examples. After that additional features are also explored.
A Simple Orchestration
One example includes starting a virtual machine, where the name of the machine image list and the desired shape are known. From the command line, for example, an orchestration may be started as shown in the following example.
nimbula-api orchestrate simple /acme/imagelists/lucdi64 medium
Complete details about nimbula-api orchestrate simple, including how to specify a high availability policy and number of instances and other orchestration-related commands, are in the The system Command-line Interface Reference, the details of which are incorporated herein by reference.
Generalized Process for Orchestrating
A basic illustrative process of working with orchestrations is as follows:
As indicated above, one can specify various policies for an orchestration. [Clouds too can specify their own policies and they can be applied to an oplan.] For example, one can specify one of three high availability policies for an orchestration, which affects how it is managed by the system. High Availability is the ability to orchestrate redundant processes in case of balancing problems, failure situations, or other changes in circumstance, it allows for a flexible and fail-safe series of objects run in orchestration.
In general, at a minimum a user must have use permission on all objects he or she refers to in an orchestration; otherwise, the orchestration will not start, correctly.
Orchestratable Components, User and Object Permissions, and Object Creation
Any object/functionality/feature provided by the cloud is supported. References to other orchestrations or objects are also supported. It also supports object/functionality which is dynamically added to a cloud.
These are also the valid values for the obj type field in an orchestration in JSON format that one craft by hand; see Orchestration with Amazon EC2 and Orchestrations in JSON format described below. Also, in general, at a minimum one must have user and object permission on all objects one refer to in an orchestration; otherwise, the orchestration will not start.
Unless they were created beforehand, the network, storage, security list, or other objects referred to in an orchestration are created when the orchestration starts and destroyed when the orchestration stops. For nested orchestrations (see Nesting orchestrations), only objects at the top level (the master orchestration) are created and destroyed at start and stop.
Status of an Orchestration
The state of an orchestration changes overtime. Starting or stopping an orchestration starts or stops the object it defines; this is asynchronous so some time might be required to fully start or stop. One can watch the orchestration to see the changes.
As a non-limiting example, the possible states of an orchestration could be (this as an example and an orchestration can reflect the following status, although it is not limited to only these):
Number of Components, Specifying Dependencies, and Nesting Orchestrations
In any single orchestration, one can include many components. Moreover, an orchestration can include references to other “nested” orchestrations so there is no effective limit on the number of components. For an example of nested orchestrations, see Nesting orchestrations. One can specify the sequence in which the components in an orchestration start their dependencies on one another. For an example, see the section on Multiple objects with dependencies.
Example of Working with Orchestration on the Command Line
This section is an example of working with a simple orchestration to add, start, monitor, and stop the instantiation of virtual machine. Full details about syntax and parameters on nimbula-api for orchestration are in the system Command-line Interface Director Command-line Interface Reference.
The orchestration in this example is shown in Basic orchestration: configuring an instance and stored in a file called lpl.json.
Orchestration with Amazon EC2
One can orchestrate components with Amazon EC2 or any other private/public clouds just as one normally can launch instances on EC. In the instance configuration portion of the orchestration, one need to include the site and account details in one orchestration, as shown in the following example:
Orchestration Sampler
Presented here are orchestrations in JSON format for instantiating virtual machines. Specifically, this section covers basic orchestration: configuring an instance and a complete annotated instance configuration. As will be shown later under a separate heading, orchestrations in JSON format as several other orchestrations for a variety of uses.
Basic Orchestration: Configuring an Instance
This orchestration has a single object: a plan to instantiate a virtual machine from the default machine image stored in the image list /nimbula/public/lucid64 on a small shape. The high availability policy is set to active.
It is to be noted that while this example centers around a virtual machine, it could also apply to any Computational Resources (CRs). Any higher level application services like load balancers, AutoScaling, DNS, Platform As a Service (PaaS) provided by the cloud vendor or 3<rd>party cloud service developers
Complete Annotated CR Configuration
An orchestration can describe the various instances to be launched, the relationships among them, and their networking, storage, and security characteristics. Below is an orchestration for a single instance of a primary and secondary web server that must run on different nodes and a primary and secondary database. The example is of a CR configuration on a specific cloud, but it is important to realize that orchestrations are not limited to any specific clouds. They span cloud implementations, multiple clouds, hybrid clouds, etc.
The elements of this example orchestration are detailed after the listing.
Cloud Resources (CRs) are inclusive but not limited to a) virtual machine, physical machine or a OS container, b) any Storage services provided a private or public cloud, c) any Networking services provided by private or public cloud, and d) any feature that is provided by the private or public cloud.
In configuring a Computational Resource (CR) in a Nimbula cloud, one can include Relationships and Instances. For Amazon or some other cloud these parameters will be different and orchestration can configure CRs on any cloud.
Relationships allows one to define relationships between various instances such as whether they should be launched on the same of a different node or the same or different cluster. Non-limiting examples of relationships element are: same node, different node, same cluster, and different cluster.
Each type of instance can be separately defined in the launch plan. For each instance type, the following parameters can be specified:
Here is a collection of orchestrations for various purposes, presented as a sampler. For background see the section above on working with orchestrations. Specifically, this section gives examples on permissions; permanent IP reservation; multiple objects with dependencies; and nesting orchestrations. While this example is given in JSON format, the specification language is not limited to JSON. Instead, this is only an example.
Permissions
Permanent IP reservation
This orchestration creates and monitors an IP reservation.
Multiple Objects with Dependencies
This orchestration defines security lists (plan “A”) and security rules (plan “B”) for protecting a web server instance (plan “C”). First plan A is started, then plan B, and finally the web server in plan C is instantiated.
Nesting Orchestrations
In this example orchestration, several other orchestrations are referred to by
Third Parties
The system not only allows users to orchestrate using their own created objects and processes, but third party created objects and processes as well. This allows for an extensible cloud where third party objects and processes are seamlessly integrated into the cloud and can show up in the API or CLI itself for complete availability. Using parameterized fields, templates can also be created for these orchestrations and shared amongst community of users. This will enable sharing of ideas amongst a community to enable multi cloud application stacks. Users can refer other orchestrations in their templates thereby enabling richer collaboration.
Troubleshooting/Status of an Orchestration
Orchestration also allows a developer to observe their entire use of the cloud at once. A master orchestration can display information about how all the interdependent orchestrations are running. If something isn't working correctly, the master orchestration can indicate so. The orchestration can also indicate if security rules have been changed. It will find faults throughout the cloud and report them. It will find faults on objects and orchestrations running on multiple clouds and report them as well.
Cloud Level Interface (CLI)
An example of a cloud level interface for the system is shown below:
As can be seen, it consists of two orchestration plans: ‘tinyplan,’ which is a launchplan and ‘other-orchestration,’ which points to another orchestration. In this case ‘adding’ an orchestration is separated from ‘starting’ an orchestration. Since ‘Start’ is just changing the state of an object, the query arguments are provided as part of an update operation.
In this case, the CLI command would be nimbula-api start orchestration /nimbula/public/ol. RESTfully it will specify a query argument as part of update operation. For example, PUT http://api.<sitename>.nimbula/orchestration/nimbula/public/ol?action=START.
Performance and Scale
Load Balancing is achieved via distributing orchestrations across different orchestration managers. This way a single orchestration can point to multiple orchestration objects and can drive a whole hierarchy (all assigned to different managers).
The foregoing description, for purpose of explanation, has been described with reference to specific examples. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. This includes practicing the examples of the various subject matter described above in any combination. The examples were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the inventions with various modifications as are suited to the particular use contemplated.
As disclosed herein, features consistent with the present inventions may be implemented via computer-hardware, software and/or firmware. For example, the systems and methods disclosed herein may be embodied in various forms including, for example, a data processor, such as a computer that also includes a database, digital electronic circuitry, firmware, software, computer networks, servers, or in combinations of them. Further, while some of the disclosed implementations describe specific hardware components, systems and methods consistent with the innovations herein may be implemented with any combination of hardware, software and/or firmware. Moreover, the above-noted features and other aspects and principles of the innovations herein may be implemented in various environments. Such environments and related applications may be specially constructed for performing the various routines, processes and/or operations according to the invention or they may include a general-purpose computer or computing platform selectively activated or reconfigured by code to provide the necessary functionality. The processes disclosed herein are not inherently related to any particular computer, network, architecture, environment, or other apparatus, and may be implemented by a suitable combination of hardware, software, and/or firmware. For example, various general-purpose machines may be used with programs written in accordance with teachings of the invention, or it may be more convenient to construct a specialized apparatus or system to perform the required methods and techniques.
Aspects of the method and system described herein, such as the logic, may be implemented as functionality programmed into any of a variety of circuitry, including programmable logic devices (“PLDs”), such as field programmable gate arrays (“FPGAs”), programmable array logic (“PAL”) devices, electrically programmable logic and memory devices and standard cell-based devices, as well as application specific integrated circuits. Some other possibilities for implementing aspects include: memory devices, microcontrollers with memory (such as EEPROM), embedded microprocessors, firmware, software, etc. Furthermore, aspects may be embodied in microprocessors having software-based circuit emulation, discrete logic (sequential and combinatorial), custom devices, fuzzy (neural) logic, quantum devices, and hybrids of any of the above device types. The underlying device technologies may be provided in a variety of component types, e.g., metal-oxide semiconductor field-effect transistor (“MOSFET”) technologies like complementary metal-oxide semiconductor (“CMOS”), bipolar technologies like emitter-coupled logic (“ECL”), polymer technologies (e.g., silicon-conjugated polymer and metal-conjugated polymer-metal structures), mixed analog and digital, and so on.
It should also be noted that the various logic and/or functions disclosed herein may be enabled using any number of combinations of hardware, firmware, and/or as data and/or instructions embodied in various machine-readable or computer-readable media, in terms of their behavioral, register transfer, logic component, and/or other characteristics. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) and carrier waves that may be used to transfer such formatted data and/or instructions through wireless, optical, or wired signaling media or any combination thereof. Examples of transfers of such formatted data and/or instructions by carrier waves include, but are not limited to, transfers (uploads, downloads, e-mail, etc.) over the Internet and/or other computer networks via one or more data transfer protocols (e.g., HTTP, FTP, SMTP, and so on).
Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense; that is to say, in a sense of “including, but not limited to.” Words using the singular or plural number also include the plural or singular number respectively. Additionally, the words “herein,” “hereunder,” “above,” “below,” and words of similar import refer to this application as a whole and not to any particular portions of this application. When the word “or” is used in reference to a list of two or more items, that word covers all of the following interpretations of the word: any of the items in the list, all of the items in the list and any combination of the items in the list.
Although certain presently preferred implementations of the invention have been specifically described herein, it will be apparent to those skilled in the art to which the invention pertains that variations and modifications of the various implementations shown and described herein may be made without departing from the spirit and scope of the invention. Accordingly, it is intended that the invention be limited only to the extent required by the applicable rules of law.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.
| Number | Date | Country | Kind |
|---|---|---|---|
| PCT/US2013/025211 | Feb 2013 | WO | international |
This application is a continuation of International Application No. PCT/US2013/025211, filed Feb. 7, 2013, titled “COORDINATION OF PROCESSES IN CLOUD COMPUTING ENVIRONMENTS”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/598,305, filed Feb. 13, 2012, titled “COORDINATION OF PROCESSES IN CLOUD COMPUTING ENVIRONMENTS.” This application is a Continuation-in-Part of the following applications: (1) U.S. application Ser. No. 13/299,004, filed Nov. 17, 2011, titled ORGANIZING PERMISSION ASSOCIATED WITH A CLOUD CUSTOMER IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (2) U.S. application Ser. No. 13/299,066, filed Nov. 17, 2011, titled “GRANTING ACCESS TO A CLOUD COMPUTING ENVIRONMENT USING NAMES IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (3) U.S. application Ser. No. 13/299,157, filed Nov. 17, 2011, titled “DEFINING AN AUTHORIZER IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (4) U.S. application Ser. No. 13/299,206, filed Nov. 17, 2011, titled “BUILDING A CLOUD COMPUTING ENVIRONMENT USING A SEED DEVICE IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (5) U.S. application Ser. No. 13/299,262, filed Nov. 17, 2011, titled “OBJECTS IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (6) U.S. application Ser. No. 13/299,287, filed Nov. 17, 2011, titled “LAUNCHING AN INSTANCE IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (7) U.S. application Ser. No. 13/299,301, filed Nov. 17, 2011, titled “ORGANIZING DATA IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (8) U.S. application Ser. No. 13/299,319, filed Nov. 17, 2011, titled “VIRTUALIZATION LAYER IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (9) U.S. application Ser. No. 13/299,335, filed Nov. 17, 2011, titled “NETWORKING IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”. (10) U.S. application Ser. No. 13/299,339, filed Nov. 17, 2011, titled “BILLING USAGE IN A VIRTUAL COMPUTING INFRASTRUCTURE”, which is a continuation of Application No. PCT/US2011/040590, filed Jun. 15, 2011, titled “VIRTUAL COMPUTING INFRASTRUCTURE”, which claims the benefit and priority under 35 U.S.C. 119(e) from U.S. Provisional Application No. 61/355,078, filed Jun. 15, 2010, titled “VIRTUAL COMPUTING INFRASTRUCTURE”.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4086628 | Woodrum | Apr 1978 | A |
| 5239648 | Nukui | Aug 1993 | A |
| 5463774 | Jenness | Oct 1995 | A |
| 5832505 | Kasso et al. | Nov 1998 | A |
| 5987506 | Carter et al. | Nov 1999 | A |
| 6038399 | Fisher et al. | Mar 2000 | A |
| 6047129 | Frye | Apr 2000 | A |
| 6233017 | Chaddha | May 2001 | B1 |
| 6473800 | Jerger et al. | Oct 2002 | B1 |
| 6772350 | Belani et al. | Aug 2004 | B1 |
| 6944777 | Belani et al. | Sep 2005 | B1 |
| 7200865 | Roscoe et al. | Apr 2007 | B1 |
| 7225210 | Guthrie, II | May 2007 | B2 |
| 7366793 | Kenner et al. | Apr 2008 | B2 |
| 7475419 | Basu et al. | Jan 2009 | B1 |
| 7602756 | Gu et al. | Oct 2009 | B2 |
| 7631306 | Puig et al. | Dec 2009 | B1 |
| 7734643 | Waterhouse et al. | Jun 2010 | B1 |
| 7886038 | Ferris | Feb 2011 | B2 |
| 7890626 | Gadir | Feb 2011 | B1 |
| 7921452 | Ridion et al. | Apr 2011 | B2 |
| 7953823 | Rider et al. | May 2011 | B2 |
| 7958246 | Barber | Jun 2011 | B2 |
| 8037108 | Chang | Oct 2011 | B1 |
| 8086177 | Trift et al. | Dec 2011 | B2 |
| 8108377 | Jiang et al. | Jan 2012 | B2 |
| 8112505 | Ben-Shaul et al. | Feb 2012 | B1 |
| 8201175 | Zhu | Jun 2012 | B2 |
| 8209415 | Wei | Jun 2012 | B2 |
| 8291079 | Colton et al. | Oct 2012 | B1 |
| 8341141 | Krislov | Dec 2012 | B2 |
| 8347263 | Offer | Jan 2013 | B1 |
| 8429162 | Wang et al. | Apr 2013 | B1 |
| 8438654 | von Eicken et al. | May 2013 | B1 |
| 8464250 | Ansel | Jun 2013 | B1 |
| 8468455 | Jorgensen et al. | Jun 2013 | B2 |
| 8472438 | Kini et al. | Jun 2013 | B2 |
| 8495611 | McCarthy et al. | Jul 2013 | B2 |
| 8504689 | Ferris et al. | Aug 2013 | B2 |
| 8509231 | Hoole et al. | Aug 2013 | B2 |
| 8577937 | Offer | Nov 2013 | B1 |
| 8584215 | Narasimha et al. | Nov 2013 | B2 |
| 8650152 | Dettinger et al. | Feb 2014 | B2 |
| 8850528 | Van Biljon et al. | Sep 2014 | B2 |
| 8938540 | Van Biljon et al. | Jan 2015 | B2 |
| 8977679 | Van Biljon et al. | Mar 2015 | B2 |
| 9021009 | Van Biljon et al. | Apr 2015 | B2 |
| 9032069 | Van Biljon et al. | May 2015 | B2 |
| 9076168 | Van Biljon et al. | Jul 2015 | B2 |
| 9087352 | Van Biljon et al. | Jul 2015 | B2 |
| 9171323 | Van Biljon et al. | Oct 2015 | B2 |
| 9202239 | Van Biljon et al. | Dec 2015 | B2 |
| 9218616 | Van Biljon et al. | Dec 2015 | B2 |
| 9232000 | Pittman | Jan 2016 | B1 |
| 9619545 | Hardy et al. | Apr 2017 | B2 |
| 9767494 | Van Biljon et al. | Sep 2017 | B2 |
| 20020052941 | Patterson | May 2002 | A1 |
| 20020097747 | Kirkby et al. | Jul 2002 | A1 |
| 20030018927 | Gadir et al. | Jan 2003 | A1 |
| 20030037284 | Srinivasan et al. | Feb 2003 | A1 |
| 20030105810 | McCrory et al. | Jun 2003 | A1 |
| 20030229623 | Chang et al. | Dec 2003 | A1 |
| 20040024892 | Creswell et al. | Feb 2004 | A1 |
| 20040184070 | Kiraly et al. | Sep 2004 | A1 |
| 20040250120 | Ng | Dec 2004 | A1 |
| 20050038834 | Souder et al. | Feb 2005 | A1 |
| 20050055306 | Miller et al. | Mar 2005 | A1 |
| 20050065855 | Geller | Mar 2005 | A1 |
| 20050187937 | Kawabe et al. | Aug 2005 | A1 |
| 20050193218 | Susser et al. | Sep 2005 | A1 |
| 20050278441 | Bond | Dec 2005 | A1 |
| 20060112176 | Liu et al. | May 2006 | A1 |
| 20060209868 | Callaghan | Sep 2006 | A1 |
| 20060212545 | Nichols et al. | Sep 2006 | A1 |
| 20060259947 | Aarnos et al. | Nov 2006 | A1 |
| 20070072591 | McGary et al. | Mar 2007 | A1 |
| 20070162456 | Agassi et al. | Jul 2007 | A1 |
| 20070234332 | Bundridge et al. | Oct 2007 | A1 |
| 20070255798 | Schneider | Nov 2007 | A1 |
| 20080052203 | Beyer et al. | Feb 2008 | A1 |
| 20080195760 | Nudler | Aug 2008 | A1 |
| 20080228734 | Kang | Sep 2008 | A1 |
| 20080295094 | Korupolu et al. | Nov 2008 | A1 |
| 20080316980 | Ahlen et al. | Dec 2008 | A1 |
| 20090024522 | Reunert et al. | Jan 2009 | A1 |
| 20090172662 | Liu | Jul 2009 | A1 |
| 20090182622 | Agarwal et al. | Jul 2009 | A1 |
| 20090210429 | Agrawal et al. | Aug 2009 | A1 |
| 20090228950 | Reed et al. | Sep 2009 | A1 |
| 20090235342 | Manion et al. | Sep 2009 | A1 |
| 20090240728 | Shukla et al. | Sep 2009 | A1 |
| 20090276771 | Nickolov | Nov 2009 | A1 |
| 20090300210 | Ferris | Dec 2009 | A1 |
| 20090300350 | Gai et al. | Dec 2009 | A1 |
| 20090319529 | Bartlett et al. | Dec 2009 | A1 |
| 20090327471 | Astete et al. | Dec 2009 | A1 |
| 20100036736 | McGee et al. | Feb 2010 | A1 |
| 20100042720 | Stienhans et al. | Feb 2010 | A1 |
| 20100061391 | Sindhu et al. | Mar 2010 | A1 |
| 20100070501 | Walsh et al. | Mar 2010 | A1 |
| 20100071035 | Budko et al. | Mar 2010 | A1 |
| 20100083004 | Kirshenbaum | Apr 2010 | A1 |
| 20100114714 | Vitek | May 2010 | A1 |
| 20100161717 | Albrecht et al. | Jun 2010 | A1 |
| 20100169477 | Stienhans et al. | Jul 2010 | A1 |
| 20100180014 | Kannan et al. | Jul 2010 | A1 |
| 20100185455 | Miller | Jul 2010 | A1 |
| 20100194963 | Terashima | Aug 2010 | A1 |
| 20100197267 | Raleigh | Aug 2010 | A1 |
| 20100198972 | Umbehocker | Aug 2010 | A1 |
| 20100217840 | Dehaan et al. | Aug 2010 | A1 |
| 20100223385 | Gulley et al. | Sep 2010 | A1 |
| 20100250748 | Sivasubramanian et al. | Sep 2010 | A1 |
| 20100250956 | Reed et al. | Sep 2010 | A1 |
| 20100251242 | Sivasubramanian et al. | Sep 2010 | A1 |
| 20100269109 | Cartales | Oct 2010 | A1 |
| 20100274769 | Hazlewood et al. | Oct 2010 | A1 |
| 20100275059 | Hazlewood et al. | Oct 2010 | A1 |
| 20100318645 | Hoole et al. | Dec 2010 | A1 |
| 20100332629 | Cotugno et al. | Dec 2010 | A1 |
| 20110016214 | Jackson | Jan 2011 | A1 |
| 20110022652 | Lai et al. | Jan 2011 | A1 |
| 20110022812 | van der Linden et al. | Jan 2011 | A1 |
| 20110055034 | Ferris et al. | Mar 2011 | A1 |
| 20110055378 | Ferris et al. | Mar 2011 | A1 |
| 20110055399 | Tung | Mar 2011 | A1 |
| 20110055712 | Tung et al. | Mar 2011 | A1 |
| 20110078679 | Bozek et al. | Mar 2011 | A1 |
| 20110096174 | King et al. | Apr 2011 | A1 |
| 20110099146 | McAlister et al. | Apr 2011 | A1 |
| 20110106875 | Koenig | May 2011 | A1 |
| 20110119381 | Glover et al. | May 2011 | A1 |
| 20110126047 | Anderson et al. | May 2011 | A1 |
| 20110126168 | Ilyayev | May 2011 | A1 |
| 20110126197 | Larsen | May 2011 | A1 |
| 20110185063 | Head et al. | Jul 2011 | A1 |
| 20110191610 | Agarwal et al. | Aug 2011 | A1 |
| 20110209064 | Jorgensen et al. | Aug 2011 | A1 |
| 20110213687 | Ferris et al. | Sep 2011 | A1 |
| 20110214124 | Ferris et al. | Sep 2011 | A1 |
| 20110225299 | Nathuji et al. | Sep 2011 | A1 |
| 20110225467 | Betzler et al. | Sep 2011 | A1 |
| 20110231525 | Balani et al. | Sep 2011 | A1 |
| 20110231899 | Pulier et al. | Sep 2011 | A1 |
| 20110243553 | Russell | Oct 2011 | A1 |
| 20110246253 | Yu et al. | Oct 2011 | A1 |
| 20110246984 | Sharp et al. | Oct 2011 | A1 |
| 20110258692 | Morrison et al. | Oct 2011 | A1 |
| 20110265081 | Lucovsky et al. | Oct 2011 | A1 |
| 20110265147 | Liu | Oct 2011 | A1 |
| 20110265164 | Lucovsky et al. | Oct 2011 | A1 |
| 20110270721 | Kusterer | Nov 2011 | A1 |
| 20110270968 | Salsburg et al. | Nov 2011 | A1 |
| 20110274110 | Mmmadi et al. | Nov 2011 | A1 |
| 20110282832 | Rishel et al. | Nov 2011 | A1 |
| 20110282940 | Zhang et al. | Nov 2011 | A1 |
| 20110295999 | Ferris et al. | Dec 2011 | A1 |
| 20110296019 | Ferris et al. | Dec 2011 | A1 |
| 20110307391 | Mercuri et al. | Dec 2011 | A1 |
| 20110307899 | Lee et al. | Dec 2011 | A1 |
| 20120017112 | Broda et al. | Jan 2012 | A1 |
| 20120030069 | Garg et al. | Feb 2012 | A1 |
| 20120030672 | Zygmuntowicz et al. | Feb 2012 | A1 |
| 20120047239 | Donahue et al. | Feb 2012 | A1 |
| 20120072985 | Davne et al. | Mar 2012 | A1 |
| 20120078849 | Bryant et al. | Mar 2012 | A1 |
| 20120079276 | Evans et al. | Mar 2012 | A1 |
| 20120096158 | Astete et al. | Apr 2012 | A1 |
| 20120110055 | Van Biljon et al. | May 2012 | A1 |
| 20120110056 | Van Biljon et al. | May 2012 | A1 |
| 20120110180 | Van Biljon et al. | May 2012 | A1 |
| 20120110188 | Van Biljon et al. | May 2012 | A1 |
| 20120110636 | Van Biljon et al. | May 2012 | A1 |
| 20120110650 | Van Biljon et al. | May 2012 | A1 |
| 20120110651 | Van Biljon et al. | May 2012 | A1 |
| 20120116937 | Van Biljon et al. | May 2012 | A1 |
| 20120117229 | Van Biljon et al. | May 2012 | A1 |
| 20120124211 | Kampas et al. | May 2012 | A1 |
| 20120150791 | Willson | Jun 2012 | A1 |
| 20120185913 | Martinez et al. | Jul 2012 | A1 |
| 20120221603 | Kothule et al. | Aug 2012 | A1 |
| 20120246646 | Bakman | Sep 2012 | A1 |
| 20120259815 | Olson | Oct 2012 | A1 |
| 20120310880 | Giampaolo et al. | Dec 2012 | A1 |
| 20120310991 | Frantz et al. | Dec 2012 | A1 |
| 20130019015 | Devarakonda et al. | Jan 2013 | A1 |
| 20130030853 | Agarwal et al. | Jan 2013 | A1 |
| 20130036213 | Hasan et al. | Feb 2013 | A1 |
| 20130060839 | Van Biljon et al. | Mar 2013 | A1 |
| 20130111033 | Mao | May 2013 | A1 |
| 20130125217 | Edwards et al. | May 2013 | A1 |
| 20130173798 | Micucci et al. | Jul 2013 | A1 |
| 20130227560 | McGrath | Aug 2013 | A1 |
| 20150006482 | Hardy et al. | Jan 2015 | A1 |
| 20150264121 | Van Biljon et al. | Sep 2015 | A1 |
| 20160197843 | Palan et al. | Jul 2016 | A1 |
| 20170364973 | Van Biljon et al. | Dec 2017 | A1 |
| Number | Date | Country |
|---|---|---|
| 101969475 | Feb 2011 | CN |
| 102223398 | Oct 2011 | CN |
| 103488697 | Jan 2014 | CN |
| 104303175 | Jan 2015 | CN |
| 104335179 | Feb 2015 | CN |
| 105339940 | Feb 2016 | CN |
| 104335179 | Jan 2018 | CN |
| 104303175 | Jun 2018 | CN |
| 2583211 | Apr 2013 | EP |
| 2812809 | Dec 2014 | EP |
| 2815346 | Dec 2014 | EP |
| 3014485 | May 2016 | EP |
| 2015507301 | Mar 2015 | JP |
| 2015512091 | Apr 2015 | JP |
| 2016524255 | Aug 2016 | JP |
| 6231020 | Nov 2017 | JP |
| 2009151729 | Dec 2009 | WO |
| WO2011159842 | Dec 2011 | WO |
| 2011159842 | Mar 2012 | WO |
| 2012167108 | Dec 2012 | WO |
| 2013119841 | Aug 2013 | WO |
| 2013122815 | Aug 2013 | WO |
| 2014209848 | Dec 2014 | WO |
| Entry |
|---|
| U.S. Appl. No. 13/299,206 Notice of Allowance dated Dec. 19, 2014, 10 pages. |
| U.S. Appl. No. 13/299,319 Notice of Allowance dated Jan. 13, 2015, 9 pages. |
| European Search Report for Application No. EP 13748986 dated Sep. 8, 2015, 7 pages. |
| International Preliminary Report on Patentability for Application No. PCT/US2014/043599, dated Jan. 7, 2016, 8 pages. |
| International Search Report and Written Opinion for Application No. PCT/US2014/043599, dated Oct. 14, 2014, 11 pages. |
| U.S. Appl. No. 13/299,066, Notice of Allowance dated Jul. 31, 2015, 23 pages. |
| U.S. Appl. No. 13/299,301, Notice of Allowance dated Jun. 12, 2015, 5 pages. |
| U.S. Appl. No. 13/299,339, Notice of Allowance dated Apr. 21, 2015, 17 pages. |
| Baron Schwartz et al., “High Performance MySQL: Optimization, Backups, Replication, and More”, Jun. 2008, pp. 428-429. |
| Liu et al., “NIST Cloud Computing Reference Architecture”, NIST Special Publication 500-292, Sep. 8, 2011, 35 pages. |
| M-T Schmidt et al., “The Enterprise Service Bus: Making service-oriented acrchitecture real”, IBM Systems Journal, vol. 44, No. 4, Oct. 1, 2005, pp. 781-797. |
| International Application No. PCT/US2011/040590, International Preliminary Report on Patentability dated Jan. 3, 2013, 11 pages. |
| International Application No. PCT/US2013/025186, International Preliminary Report on Patentability dated Aug. 21, 2014, 6 pages. |
| U.S. Appl. No. 13/299,287, Corrected Notice of Allowability dated Oct. 15, 2014, 2 pages. |
| U.S. Appl. No. 13/299,335, Corrected Notice of Allowability dated Oct. 6, 2014, 4 pages. |
| U.S. Appl. No. 13/299,339, Notice of Allowance dated Jun. 27, 2014, 17 pages. |
| U.S. Appl. No. 13/299,301, Final Office Action dated Jan. 29, 2015, 13 pages. |
| U.S. Appl. No. 13/299,262, Notice of Allowance dated Mar. 3, 2015, 10 pages. |
| U.S. Appl. No. 13/299,157, Notice of Allowance dated Feb. 27, 2015, 9 pages. |
| U.S. Appl. No. 13/299,066, Non-Final Office Action dated Mar. 19, 2015, 17 pages. |
| International Search Report for application PCT/US2013/025186 (dated Apr. 19, 2013). |
| International Search Report for application PCT/US2013/025211 (dated Apr. 16, 2013). |
| International Search Report for application PCT/US11/040590 (dated Jan. 5, 2012). |
| Karjoth, Gunter, “Access Control with IBM Trivoli Access”, May 2003, IBM Research, Zurich Research Laboratory, vol. 6, No. 2. |
| Canetti et al. “Practical delegation of computation using multiple servers,” CCS '11 Proceedings of the 18th ACM conference on Computer and communications security, pp. 445-454(Oct. 2011). |
| U.S. Appl. No. 13/299,004, Non-Final Office Action dated Apr. 15, 2013, 58 pages. |
| U.S. Appl. No. 13/299,004, Final Office Action dated Oct. 2, 2013, 42 pages. |
| U.S. Appl. No. 13/299,066 Non-Final Office Action dated Apr. 12, 2013, 26 pages. |
| U.S. Appl. No. 13/299,066, Final Office Action dated Oct. 22, 2013, 25 pages. |
| U.S. Appl. No. 13/299,157, Non-Final Office Action dated May 24, 2013, 14 pages. |
| U.S. Appl. No. 13/299,157 Final Office Action dated Dec. 5, 2013, 9 pages. |
| U.S. Appl. No. 13/299,262, Non-Final Office Action dated May 2, 2013, 12 pages. |
| U.S. Appl. No. 13/299,262, Final Office Action dated Oct. 30, 2013, 11 pages. |
| U.S. Appl. No. 13/299,287, Non-Final Office Action dated Oct. 28, 2013, 18 pages. |
| U.S. Appl. No. 13/299,335, Non-Final Office Action dated Nov. 22, 2013, 24 pages. |
| U.S. Appl. No. 13/299,339, Non-Final Office Action dated Nov. 16, 2012, 12 pages. |
| U.S. Appl. No. 13/299,339, Final Office Action dated Aug. 7, 2013, 16 pages. |
| U.S. Appl. No. 13/299,066, Non-Final Office Action dated Mar. 12, 2014, 16 pages. |
| U.S. Appl. No. 13/299,004, Notice of Allowance dated Mar. 24, 2014, 22 pages. |
| U.S. Appl. No. 13/299,335, Notice of Allowance dated May 1, 2014, 7 pages. |
| U.S. Appl. No. 13/299,206, Non-Final Office Action dated May 22, 2014, 10 pages. |
| U.S. Appl. No. 13/299,287, Final Office Action dated May 23, 2014, 12 pages. |
| U.S. Appl. No. 13/299,301, Non-Final Office Action dated Jun. 12, 2014, 18 pages. |
| U.S. Appl. No. 13/299,319, Non-Final Office Action dated Jun. 6, 2014, 13 pages. |
| International Preliminary Report on Patentability for application PCT/US2013/025211 (dated Aug. 28, 2014). |
| U.S. Appl. No. 13/299,066, Final Office Action dated Jul. 18, 2014, 19 pages. |
| U.S. Appl. No. 13/299,335, Notice of Allowance dated Jul. 18, 2014, 7 pages. |
| U.S. Appl. No. 13/299,339, Non-Final Office Action dated Sep. 3, 2014, 8 pages. |
| U.S. Appl. No. 13/299,287, Notice of Allowance dated Sep. 16, 2014, 16 pages. |
| U.S. Appl. No. 13/299,335, Notice of Allowance dated Sep. 15, 2014, 10 pages. |
| U.S. Appl. No. 13/299,262, Non-Final Office Action dated Nov. 17, 2014, 14 pages. |
| U.S. Appl. No. 13/299,157 Non-Final Office Action dated Dec. 3, 2014, 10 pages. |
| “A White Paper from the Open Cloud Standards”, Interoperable Clouds, Version: 1.0.0, Nov. 11, 2009, pp. 1-21. |
| “Managing VMware VirtualCenter Roles and Permissions”, Retrieved from the Internet: URL:http//www/vmware.com/pdf/vi3_vc_roles.pdf, Apr. 4, 2007, 15 pages. |
| “VMware Virtual Networking Concepts”, Retrieved from the internet: https://www.vmware.com/files/pdf/virtual_networking_concepts.pdf, Jul. 18, 2007, 12 pages. |
| Danwei et al., “Access Control of Cloud Service Based on UCON”, Cloud Computing, Springer Berlin Heidelberg, Dec. 1, 2009, pp. 559-564. |
| EP11796398.3 , “Extended European Search Report”, dated May 25, 2016, 14 pages. |
| EP11796398.3, “Partial Supplementary European Search Report”, Apr. 7, 2016, 6 pages. |
| EP13746545.6 , “Extended European Search Report”, Apr. 26, 2016, 8 pages. |
| Fitzpatrick , “Tonido Keeps Cloud Computing Local”, Retrieved from the Internet: URL:http:f/lifehacker.com/5208833/tonido-keeps-cloud-computing-local, Apr. 13, 2009, 2 pages. |
| Thain et al., “Distributed Computing in Practice: The Condor Experience”, Concurrency and Computation: Practice and Experience, vol. 17, Jan. 1, 2005, 37 pages. |
| U.S. Appl. No. 14/226,557, “Non-Final Office Action”, dated May 19, 2016, 9 pages. |
| U.S. Appl. No. 14/724,043, “Non-Final Office Action”, dated Jun. 16, 2016, 24 pages. |
| Chinese Application No. 201380014187.4, Office Action dated May 27, 2016, 14 pages (6 pages of Original document and 8 pages of English Translation). |
| U.S. Appl. No. 14/377,811, Non-Final Office Action dated Jul. 15, 2016, 17 pages. |
| U.S. Appl. No. 14/377,811, “Final Office Action”, dated Mar. 23, 2017, 14 pages. |
| U.S. Appl. No. 14/724,043, “Non-Final Office Action”, dated Dec. 30, 2016, 12 pages. |
| U.S. Appl. No. 13/299,004, Notice of Allowability dated Aug. 28, 2014, 2 pages. |
| U.S. Appl. No. 13/299,066, Advisory Action dated Jan. 31, 2014, 2 pages. |
| U.S. Appl. No. 13/299,262, Advisory Action dated Jan. 16, 2014, 3 pages. |
| U.S. Appl. No. 13/299,287, Corrected Notice of Allowability dated Feb. 12, 2015, 2 pages. |
| U.S. Appl. No. 13/299,335, Corrected Notice of Allowability dated Dec. 19, 2014, 4 pages. |
| U.S. Appl. No. 14/377,811, Non-Final Office Action dated Oct. 18, 2017, 13 pages. |
| U.S. Appl. No. 14/724,043, Notice of Allowance dated May 19, 2017, 10 pages. |
| Chinese Application No. 201380014187.4, Office Action dated Aug. 17, 2017, 15 pages. (8 pages of English translation and 7 pages of Original document). |
| Chinese Application No. 201380014746.1, Notice of Decision to Grant dated Oct. 11, 2017, 3 pages (1 page for the original document and 2 pages for the English translation). |
| European Application No. 11796398.3, Office Action dated Aug. 8, 2017, 4 pages. |
| European Application No. 13746545.6, Office Action dated Jun. 22, 2017, 7 pages. |
| Japanese Application No. 2014-556683, Office Action dated Oct. 17, 2017, 9 pages (5 pages for the original document and 4 pages for the English translation). |
| Japanese Application No. 2014-556691, Notice of Allowance dated Sep. 26, 2017. 6 pages (3 pages for the original document and 3 pages for the English translation). |
| Japanese Application No. 2014-556691, Office Action dated Jan. 31, 2017. 9 pages (5 pages for the original document and 4 pages for the English translation). |
| U.S. Appl. No. 13/299,004, Notice of Allowance dated Mar. 24, 2014, 17 pages. |
| U.S. Appl. No. 14/226,557, Notice of Allowance dated Nov. 25, 2016, 9 pages. |
| U.S. Appl. No. 14/377,811, Final Office Action dated Mar. 1, 2018, 9 pages. |
| U.S. Appl. No. 14/377,811, Non-Final Office Action dated Oct. 29, 2018, 9 pages. |
| European Application No. 13746545.6, Summons to Attend Oral Proceedings mailed on Apr. 25, 2018, 8 pages. |
| U.S. Appl. No. 15/692,929, Non-Final Office Action dated Jun. 14, 2018, 10 pages. |
| Chinese Application No. 201480036405.9, Office Action dated Jun. 15, 2018, 15 pages (6 pages for the original document and 9 pages for the English translation). |
| European Application No. 11796398.3, Office Action dated Mar. 26, 2018, 5 pages. |
| European Application No. 13748986.0, Office Action dated Apr. 24, 2018, 8 pages. |
| European Application No. 14740064.2, Office Action dated Aug. 8, 2018, 7 Pages. |
| Hewitt, Cassandra: The Definitive Guide, Distributed Data at web Scale, O'Reilly Media, Nov. 2010, 330 pages. |
| Japanese Application No. 2014-556683, Office Action dated Jun. 5, 2018, 6 pages (3 pages for the original document and 3 pages for the English translation). |
| Japanese Application No. 2016-523825, Office Action dated Jul. 31, 2018, 4 pages (3 pages for the original document and 1 page for the English translation). |
| “Notice of Allowance” issued in U.S. Appl. No. 14/377,811, dated Mar. 11, 2019, 13 pages. |
| U.S. Appl. No. 15/692,929, Notice of Allowance dated Jan. 9, 2019, 10 pages. |
| European Application No. 11796398.3, Office Action dated Dec. 3, 2018, 4 pages. |
| India Application No. 6185/CHEN/2014, “First Examination report”, dated Dec. 24, 2019, 6 pages. |
| India Application No. 6165/CHEN/2014, “First Examination report”, dated Dec. 24, 2019, 6 pages. |
| Number | Date | Country | |
|---|---|---|---|
| 20150120936 A1 | Apr 2015 | US |
| Number | Date | Country | |
|---|---|---|---|
| 61598305 | Feb 2012 | US | |
| 61355078 | Jun 2010 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | PCT/US2013/025211 | Feb 2013 | US |
| Child | 14459104 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299004 | US | |
| Parent | 14459104 | US | |
| Child | 13299004 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299066 | US | |
| Parent | 14459104 | US | |
| Child | 13299066 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299157 | US | |
| Parent | 14459104 | US | |
| Child | 13299157 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299206 | US | |
| Parent | 14459104 | US | |
| Child | 13299206 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299262 | US | |
| Parent | 14459104 | US | |
| Child | 13299262 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299287 | US | |
| Parent | 14459104 | US | |
| Child | 13299287 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299301 | US | |
| Parent | 14459104 | US | |
| Child | 13299301 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299319 | US | |
| Parent | 14459104 | US | |
| Child | 13299319 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299335 | US | |
| Parent | 14459104 | US | |
| Child | 13299335 | US | |
| Parent | PCT/US2011/040590 | Jun 2011 | US |
| Child | 13299339 | US |
| Number | Date | Country | |
|---|---|---|---|
| Parent | 13299004 | Nov 2011 | US |
| Child | PCT/US2013/025211 | US | |
| Parent | 13299066 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299157 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299206 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299262 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299287 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299301 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299319 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299335 | Nov 2011 | US |
| Child | 14459104 | US | |
| Parent | 13299339 | Nov 2011 | US |
| Child | 14459104 | US |