The following copending application, the disclosure of which is incorporated herein in its entirety by reference, is mentioned:
U.S. patent application Ser. No. 13/192,221, filed Jul. 27, 2011 by Jung et al. and entitled “Methods and Systems for Deploying a Service Workflow in a Hybrid Cloud Environment”.
Business processes are typically designed to identify tasks to be performed in order to complete a goal. An end user can generate a business process for a particular workflow using existing tools. The user may then use a business process management (BPM) engine to map the business process into an executable service workflow.
Conventional BPM engines are designed to map a particular business process into an executable service workflow in a single data center. As such, conventional BPM engines are not designed to generate business processes that span multiple data centers, such as a hybrid cloud environment, in a way that minimizes a cost of execution while meeting quality of service requirements.
The Jung et al. patent application Ser. No. 13/192,221, filed Jul. 27, 2011 addresses optimal deployment of workflows on hybrid clouds. However, the disclosed method/system of patent application Ser. No. 13/192,221: 1) requests the user to explicitly specify the global constraints/weights for the criteria, 2) aggregates those constraints into a single criterion which is in fact an ad hoc linear combination of only two metrics (time and cost), 3) finds an optimal solution according to this aggregated criterion in a time complexity that is exponential in the worst case, and thereby 4) misses optimal solutions because of the ad hoc linear combination.
This disclosure provides a method and system for optimizing a workflow planning via the selection of service providers and data centers according to various QoS (Quality of Service) metrics. Crucially, the algorithm handles multiple QoS parameters and does not require an a priori weighting of their importance as may be required of other approaches to this problem. This is accomplished by using an algorithm that will guarantee that no alternative solution will be strictly better in all QoS criteria than the chosen solution. A variant of the algorithm to specify the preference order, i.e. ranking, among the QoS parameters is also provided. Benefits of the disclosed embodiments include its avoidance of the ad hoc specification of QoS weightings, the ability to easily incorporate new QoS parameters, the possibility to provide a preference ranking of QoS parameters when needed, and a reduction in theoretical algorithm complexity via the use of a multi-objective optimization algorithm.
In one embodiment of this disclosure, described is a method of deploying a service workflow for a business process, the method comprising A) receiving, by a computing device, a service workflow including an ordered plurality of services, each service associated with a plurality of instantiations, and each instance associated with a plurality of data centers to provide the respective instance, each data center associated with one or more QoS properties; B) building a search graph based on the service workflow including a search space of concrete graphs that describe all possible paths of service instances and data centers; C) applying a max ordering function to the search graph to determine the instance and data center for each service; and D) deploying the service workflow to the determined data centers to provide the execution of the service workflow.
In another embodiment of this disclosure, described is a system for deploying a service workflow for a business process, the system comprising a processor; a processor-readable non-transitory storage medium in communication with the processor, the processor-readable non-transitory storage medium containing one or more programming instructions that, when executed, cause the processor to A) receive a service workflow including an ordered plurality of services, each service associated with a plurality of instantiations, and each instance associated with a plurality of data centers to provide the respective instance, each data center associated with one or more QoS properties; B) build a search graph based on the service workflow including a search space of concrete graphs that describe all possible paths of service instances and data centers; C) apply a max ordering function to the search graph to determine the instance and data center for each service; and D) deploy the service workflow to the determined data centers to provide the execution of the service workflow.
In still another embodiment of this disclosure, described is a computer program product comprising a computer-usable non-transitory data carrier storing instructions that, when executed by a computer, cause the computer to perform a method of deploying a service workflow for a business process, the method comprising A) receiving, by a computing device, a service workflow including an ordered plurality of services, each service associated with a plurality of instantiations, and each instance associated with a plurality of data centers to provide the respective instance, each data center associated with one or more QoS properties; B) building a search graph based on the service workflow including a search space of concrete graphs that describe all possible paths of service instances and data centers; C) applying a max ordering function to the search graph to determine the instance and data center for each service; and D) deploying the service workflow to the determined data centers to provide the execution of the service workflow.
The following terms shall have, for the purposes of this application, the respective meanings set forth below.
A “cloud environment” refers to one or more physical and/or logical devices that operate as a shared resource. Logical devices in a cloud environment may be accessed without any knowledge of the corresponding physical devices.
A “computing device” refers to a computer, a processor and/or any other component, device or system that performs one or more operations according to one or more programming instructions. An exemplary computing device is described in reference to
A “cost value” refers to a cost associated with performing one or more services. A cost value may be determined based one or more cost factors including, without limitation, a cost for using a cloud resource, a cost of purchasing a software license, a power consumption cost, a cost for wear and tear on hardware that is used to perform a particular operation, and the like. The cost may be determined on the basis of a unit of currency or any other metric in which costs are measured.
A “data center” refers to one or more computing devices, memories, and/or other peripheral devices used to perform a service.
An “edge” refers to a logical connection between nodes in a search space used to determine a best path for a workflow. As part of a best path determination, an edge between a first node and a second node may be assigned a network latency associated with a time required to traverse from a data center that is selected to perform a service associated with the first node and a data center that is selected to perform a service associated with the second node.
A “hybrid cloud environment” refers to a cloud computing environment and/or an internal computing environment. A hybrid cloud environment may include one or more data centers located remotely from an entity for which the service workflow is performed and/or one or more data centers located in a computing environment operated by such entity.
A “logical device” is a representation of a physical device that uniquely identifies the corresponding physical device. For example, a network interface may be assigned a unique media access control address that is the logical unique identifier of a physical device. As such, a conventional device is a combined logical and physical device in which the logical device provides the entire identity of the physical device.
A “node” refers to a logical vertex in a search space used to determine a best path for a workflow. Each node may correspond to a data center that is capable of performing a service of a serial sub-workflow or one or more data centers that are capable of performing services of parallel sub-workflows.
A “node list” refers to a group of nodes. A node list may be formed to identify nodes that have been analyzed as part of a search algorithm.
A “physical device” is a physical resource such as a computing device, a computer-readable storage medium and/or the like.
A “print device” refers to a device capable of performing one or more print-related functions. For example, a print device may include a printer, a scanner, a copy machine, a multifunction device, a collator, a binder, a cutter or other similar equipment. A “multifunction device” is a device that is capable of performing two or more distinct print-related functions. For example, a multifunction device may have print and scan capabilities.
A “run-time value” refers to an amount of time required to perform one or more services. A run-time value may include an amount of time incurred as a result of network latencies between nodes performing services.
A “service” refers to a discrete operation performed as part of a workflow. A service may include, for example and without limitation, determining information, calculating a value, performing a physical operation, such as printing, scanning or the like, storing information, and/or any other operation that is typically performed as part of a workflow.
A “utility value” refers to a combined measure of the factors utilized to determine a best path of data centers for performing a workflow.
“Virtualization” is a configuration that allows logical devices to exist as an abstraction without being directly tied to a specific physical device. Virtualization may be achieved using logical names instead of physical identifiers. For example, using a uniform resource locator instead of a server's media access control address effectively virtualizes the target server. Alternatively, an assigned media access control address may exist independently of the physical resources managing network traffic.
A “workflow” or a “service workflow” refers to an ordered list of services used to perform a particular operation. A workflow or service workflow may include one or more services that can each be performed at one or more data centers in a hybrid cloud environment.
As used herein, the terms “sum,” “product” and similar mathematical terms are construed broadly to include any method or algorithm in which a single datum is derived or calculated from a plurality of input data.
Notably, the disclosed method/system is in the context of Business Process workflows (see P. Smith, H. Fingar, Business Process Management (BPM): The Third Wave. ISBN 0-929652-33-9 Off-press, Meghan-Kiffer Press, November 2002), although the disclosure is in principle generally applicable to other types of workflows. Consequently, the terms Workflow and Business Process are used interchangeably throughout the disclosure.
Steady growth of service providers and data centers opens avenues for planning rich, distributed, and efficient service workflows. Without tools that automate the search for a solution, optimal workflow planning would be impractical for a business analyst. This disclosure pertains to the deployment of workflows and their optimal planning for execution on multiple data centers.
In order to optimize workflow planning, current approaches (see G. Zou, Y. Chen, Y. Xiang, R. Huang, Y. Xu, Al Planning and Combinatorial Optimization for Web Service Composition in Cloud Computing. In Proceedings of the International Conference on Cloud Computing and Virtualization, 2010; K. Kofler, I. ul Haq, E. Schikuta, A Parallel Branch and Bound Algorithm for Workflow QoS Optimization, In Proceedings of the International Conference on Parallel Processing, pages 478-485, 2009; and U.S. patent application Ser. No. 13/192,221, filed Jul. 27, 2011, by Jung et al. and entitled “Methods And Systems For Deploying A Service Workflow In A Hybrid Cloud Environment”) offer to optimize QoS criteria:
One problem with these approaches is that:
This disclosure provides an efficient multi-objective optimization framework for automatically planning workflow deployment on multiple data centers (such as clouds) while optimizing multiple conflicting QoS criteria.
The workflows to be deployed are represented as graphs modeling the orchestration of abstract services (e.g. translation service). For each abstract service, multiple instantiations (e.g. Google translate, Yahoo! babel fish) offered by different providers exist. Each service instance can be hosted or executed on different data centers and therefore present QoS properties (e.g. cost, reputation, privacy) that are different at each data center.
The disclosed framework takes such abstract service workflows and QoS parameters to produce a workflow plan that decides which service instance to run on which cloud, resulting in an optimal concrete service workflow. The decision process through which the framework goes to build a solution relies on multiple explicit criteria (QoS parameters) associated with each service instance and data center. The framework is able to handle any number of criteria while avoiding combinatorial explosion due to the multi-dimensional search space. It is weight-agnostic since it does not require the specification of preferences between criteria as weight values, although this alternative is still available if required. Since the framework is theoretically grounded, the solutions it computes belong to the set of optimal solutions. Furthermore, the overall algorithm space and time complexities are practical.
As briefly discussed above, this disclosure provides for implementation of a framework which takes an abstract workflow, i.e. orchestration of abstract services, and returns an instantiated workflow, i.e. orchestration of concrete services, to be deployed on multiple data centers and optimized according to multiple criteria, i.e. QoS parameters. The optimal planning solution it builds for a given workflow and the set of criteria is obtained as presented herein.
With reference to
The purpose of the framework is to: 1) instantiate AW into a concrete workflow CW that is a workflow in which service providers and data centers are specified for each node of the graph, and 2) insure that this workflow concretization is optimal with regards to a set of criteria:
With reference to
As shown in
The optimality of the produced concrete workflow is obtained according to a decision function that takes into account a set of QoS criteria such as execution time, cost, availability, reputation, privacy, etc. These criteria differ for each service instance and for each cloud in which the service instance will be running. They are typically obtained by either monitoring a running concrete service or requesting the service provider.
The framework models the decision process underlying the optimal workflow instantiation as a multi-objective combinatorial optimization problem. See M. Ehrgott, X. Gandibleux, An Annotated Bibliography of Multi-Objective Combinatorial Optimization, Report in Wirtschaftsmathematik, Universitat Kaiserslautern, 60 pages, Feb. 15, 2000. It relies on a decision function that minimizes the value of the worst objective per edge at each step during the search process of the solution, which will be further explained below. This decision function ensures finding a weakly Pareto optimal solution. See M. Ehrgott, Multi-Criteria Optimization. Lecture in Wirtschaftsmathematik, Universitat Kaiserslautern, 243 pages, 2000. In other words, there is no other solution in the entire search space in which every criterion is strictly better than it is in the current optimal solution. Obtaining this solution does not require any a priori knowledge from the user regarding the preferences between criteria to optimize. Furthermore, this framework is able to handle any number of criteria while avoiding a combinatorial explosion due the number of criteria, service instances, and clouds.
The following description presents the optimization algorithm that builds the concrete workflow planning solution.
The previously defined problem is addressed as a multi-objective optimization problem. Its combinatorial structure is a shortest path problem. It is multi-objective since each edge between two nodes is valued by a vector of criteria values.
Thus, the resolution method finds the shortest path in the multi-objective graph of possible paths. This shortest path is guaranteed to be weakly Pareto optimal.
As shown in
With continuing reference to
With reference to
All criteria values are normalized between 0 and 1. In order to do so, the maximal value of each criterion maxCriterion is requested once from the BPMS (Business Process Management System) monitoring system. Note that this could also be done at runtime at a constant computational cost. The maximal value for each criterion is then used to compute an intermediate normalized value of that criterion associated with each edge. For instance, the intermediate normalized value of the criterion Reputation is
where QoS[reputation] is the value of the service reputation, and maxReputation is the max value input for the Reputation criterion.
In addition, a second normalization is applied in order to use minimization over all criteria when searching for the optimal solution. More specifically:
The shortest path problem relies on a decision function that guides the search. In the classical single objective optimization problem, each edge is valued by a single criterion value. The goal then consists in finding a solution of minimal cost, i.e. by selecting the edges minimizing the criterion value.
In the multi-objective configuration, objectives are often contradictory. Therefore, simultaneously optimizing all the criteria is not possible. To cope with this problem, existing approaches use a linear combination of several objectives into a single objective to cast the problem into the classical shortest path problem. See K. Kofler, I. ul Haq, E. Schikuta, A Parallel Branch and Bound Algorithm for Workflow QoS Optimization, In Proceedings of the International Conference on Parallel Processing, pages 478-485, 2009; and U.S. patent application Ser. No. 13/192,221, filed Jul. 27, 2011, by Jung et al. and entitled “Methods And Systems For Deploying A Service Workflow In A Hybrid Cloud Environment”. The drawback of this method is that the user needs to specify each weight in the linear combination. Those weights require a priori knowledge or preferences among all the criteria which the user does not necessarily have or want to specify.
As a decision function, instead, the max-ordering optimization function is adopted. See M. Ehrgott, Multi-Criteria Optimization. Lecture in Wirtschaftsmathematik, Universitat Kaiserslautern, 243 pages, 2000. As illustrated in
For example, as shown in
Notably, other decision functions can be used instead of max-ordering depending on the definition of the problem. For example, if preferences among criteria exist, the lexicographic-max-ordering function can be used. See M. Ehrgott, A Characterization of Lexicographic Max-Ordering Solutions. In Proceedings of the 6th Workshop of the DGOR working group Multi-Criteria Optimization and Decision Theory, pages 1-10, 1997. It consists in applying the max-ordering function criteria by criteria from the most important criteria to the least preferred one.
Also note that the framework presented here produces one optimal planned workflow solution. However, the decision function can also be used to obtain a ranking of several optimal solutions. For example, at each step of the search, rather than considering only the best option for the max-ordering, the framework would consider the top k options of that max-ordering.
The term branch is used to refer to the sub-graphs linking a split node to a join node, e.g. in
When a split node appears, the sub-graphs are explored in parallel. Those explorations are performed the same way as in the general search.
When the branches converge, every end node of each branch is linked to the same join node, as instances of services S4 and S5 in
The use of join nodes avoids the combinatorial explosion due to the parallel branches, especially in the case of workflows with many parallel branches.
For criteria such as availability, privacy, and reputation, an average value over the solution path can be computed as a global cost estimation for the workflow.
For criteria such as time and cost, the estimation of the final value is obtained by aggregating the criterion value at each step of the search. The aggregation function varies according to the natures of both the criterion and the previous step, i.e. sequential or parallel, in the search:
For sequential steps, the aggregated time and cost are both obtained by accumulating the criteria value over the steps.
For AND-parallel steps, the aggregated time is the maximum between the cumulative time criteria of all branches; and the aggregated cost is the cumulative value of the cost criteria over all the branches.
For (X)OR-parallel steps, the aggregated time and cost are both the maximum between the criteria of each branch.
Given the design of the search graph described above with reference to
O((n+b)×
Such that:
n is the number of abstract services.
b is the number of branch joins.
c is the number of QoS criteria considered.
An empirical analysis of the complexity factors reveals that, in a typical workflow, the main factor contributing to the complexity of the algorithm is the number of service providers. All the other factors remain bounded by small numbers. Hence, the overall space and time complexities remain practical.
With reference to
Initially, a computing device, such as a desktop computer, receives an abstract workflow description 705. In other words, a control flow of service types to be executed is received. Included as part of the abstract workflow description or provided in step 710, a choice of decision function is provided: 1) max-ordering, i.e. the user wants to optimize all the criteria at the same time; or 2) lexicographic-max-ordering, i.e. the user has a preference order among the criteria to optimize, which is provided at step 715.
Next, the computer device retrieves service instances 720. For each service type in the abstract workflow, service instance options are retrieved from each data center, for example service instances which are hosted on particular clouds.
Next, the criteria values are normalized 725. Specifically, the criteria values V of the service instances are normalized according to one of the following:
Criteria to minimize: V/maxCriteria;
Criteria to maximize: 1−(V/maxCriteria); and
Binary criteria: 0 if it meets the user need, otherwise 1.
Next, the processor ranks service instances according to the decision function 730. Specifically, the decision function max-ordering or lexicographic-max-ordering is applied to select a service instance per service type.
Next, a concrete workflow is produced 735, the concrete workflow including the selected service instances provided by the selected decision function.
Finally, the concrete workflow is deployed 740 to the appropriate data centers for execution.
With reference to
With reference to
As shown, the abstract workflow includes service types S1, S2, S3, S4, S5 and S6.
A controller 1220 interfaces with one or more optional memory devices 1225 to the system bus 1200. These memory devices 1225 may include, for example, an external or internal DVD drive, a CD ROM drive, a hard drive, flash memory, a USB drive or the like. As indicated previously, these various drives and controllers are optional devices.
Program instructions, software or interactive modules for providing the interface and performing any querying or analysis associated with one or more data sets may be stored in the ROM 1210 and/or the RAM 1215. Optionally, the program instructions may be stored on a tangible computer readable medium such as a compact disk, a digital disk, flash memory, a memory card, a USB drive, an optical disc storage medium, such as a Blu-ray™ disc, and/or other non-transitory storage media.
An optional display interface 1230 may permit information from the bus 1200 to be displayed on the display 1235 in audio, visual, graphic or alphanumeric format. Communication with external devices, such as a print device, may occur using various communication ports 1240. An exemplary communication port 1240 may be attached to a communications network, such as the Internet or an intranet.
The hardware may also include an interface 1245 which allows for receipt of data from input devices such as a keyboard 1250 or other input device 1255 such as a mouse, a joystick, a touch screen, a remote control, a pointing device, a video input device and/or an audio input device.
Some portions of the detailed description herein are presented in terms of algorithms and symbolic representations of operations on data bits performed by conventional computer components, including a central processing unit (CPU), memory storage devices for the CPU, and connected display devices. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is generally perceived as a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be understood, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, as apparent from the discussion herein, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The exemplary embodiment also relates to an apparatus for performing the operations discussed herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the methods described herein. The structure for a variety of these systems is apparent from the description above. In addition, the exemplary embodiment is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the exemplary embodiment as described herein.
A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For instance, a machine-readable medium includes read only memory (“ROM”); random access memory (“RAM”); magnetic disk storage media; optical storage media; flash memory devices; and electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.), just to mention a few examples.
The methods illustrated herein, and described throughout the specification, may be implemented in a computer program product that may be executed on a computer. The computer program product may comprise a non-transitory computer-readable recording medium on which a control program is recorded, such as a disk, hard drive, or the like. Common forms of non-transitory computer-readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tape, or any other magnetic storage medium, CD-ROM, DVD, or any other optical medium, a RAM, a PROM, an EPROM, a FLASH-EPROM, or other memory chip or cartridge, or any other tangible medium from which a computer can read and use.
Alternatively, the method may be implemented in transitory media, such as a transmittable carrier wave in which the control program is embodied as a data signal using transmission media, such as acoustic or light waves, such as those generated during radio wave and infrared data communications, and the like.
It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.
It will be appreciated that variants of the above-disclosed and other features and functions, or alternatives thereof, may be combined into many other different systems or applications. Various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.