Building self-adapting services using service-specific knowledge
Summary (4 min read)
1. Introduction
- Network applications such as Web browsing, video conferencing, instant messaging, file sharing, and online gaming are becoming a necessity for more and more people.
- From a user’s perspective, these network applications are used to accesservicesoffered by service developersover the Internet.
- Multiple strategies may be invoked at the same time, and they may want to make conflicting changes to the configuration.
- Such adaptation coordination issues are a challenging problem that is not addressed by previous solutions.
- The authors present a self-adaptation architecture that allows service developers to easily add run-time adaptation capability to their services.
2. Problem statement
- One possibility is that the developer constructs the configuration manually.
- Given the initial service configuration, the authors have identified two aspects of a developer’s service-specific knowledge that can be used to guide the adaptation of the configuration at run time: adaptation strategies and coordination policies.
- Two use MBone conferencing applications vic/SDR (VIC), two use NetMeeting (NM), and one uses a receiveonly handheld device (HH).
- To handle run-time problems such as high load and congestion at the VGW, the developer may have the following two strategies: S1: (VGW overloaded)→ (replace VGW with a highcapacity VGW) S2: (VGW congestion)→ (replace VGW with a highbandwidth VGW).
- The authors limit their scope tol cal adaptation, i.e., they focus on how to support adaptation strategies involving only “local” actions and how to coordinate such strategies.
3. Overview of adaptation architecture
- In their architecture , a developer uses their knowledge representation to express its service-specific adaptation knowledge, includingadaptation strategiesand coordination policies.
- This knowledge, along with the initial configuration of the service, are given to the selfadaptation framework, which consists of andaptation manager(AM), an adaptation coordinator(AC), and the supporting infrastructure.
- The authors assume the necessary infrastructures exist, and they focus on how the developers’ knowledge can be represented and on how the AM and the AC can make use of the adaptation and coordination knowledge to adapt the target service configuration.
- At run time, the AM handles a developer’s adaptation strategies by monitoring the configuration to detect run-time problems.
- If a proposal does not conflict with other proposals, the AC accepts the proposal and asks the AM to change the configuration accordingly.
4. Adaptation strategies
- Previous studies have proposed many run-time adaptation solutions based on “internalized” adaptation strategies (i.e., the adaptation logic and mechanisms are hard-wired into the system itself), for example, [16, 19, 9, 3].
- To support externalized strategies, one important design decision is how to specify such strategies.
- The utility approach allows a service developer to specify a utility function indicating the “desirable” configurations, and the adaptation mechanisms automatically modify the service configuration towards higher utility.
- Their scope of adaptation is much broader and includes component-level adaptations such as replacing/adding/removing components.
- Therefore, the utility approach is not feasible.
4.1. Strategy format
- The authors support for adaptation strategies is built on the externalized approach presented in Rainbow [11].
- An adaptation strategy consists of the following three parts.
- The properties can be performance metrics, e.g., bandwidth and latency, or component properties.
- When a strategy is invoked, it may need to, for example, query more specific configuration properties to determine the actual triggering problem.
- In the video conferencing example, a strategy triggered by “low HH video quality” needs to determine whether the actual problem is HHP failure, low quality codec used by the HHP, or congestion at the HHP.
4.2. Strategy specification
- The authors self-adaptation framework is based on the selfconfiguration framework the authors built previously [13].
- A developer can use the objective function API to construct a function of the relevant properties of components and connections in the configuration, also known as Constraint.
- A constraint can then be constructed using RelationOp and BooleanOp with the function.
- Since their framework is implemented in Java and exports Java interfaces and classes for specifying strategies, a strategy designed by a developer is basically a small Java class, also known as Problem determination.
- Similar to their previous self-configuration framework, when a tactic requires a new component, it specifies an objective function as the component selection criterion usingsetTacticObjective .
4.3. Example
- The authors use the video conferencing service as an example to illustrate how a developer’s adaptation strategies can be specified using the above APIs.
- Suppose the developer implements the tactics shown in Table 2.
- As seen in Table 3, the constraints for these strategies are as follows: C1: (config.numUnconnectedUsers == 0) C2: (NM.videoQuality >= Tn) C3: (VIC.videoQuality >= Tv) Strategies for the video conferencing service.
- The strategies are given to the AM, which monitors the configuration and invokes a strategy when its constraint is violated.
5. Adaptation coordination
- The authors goal with respect to adaptation coordination is to only require a service developer to specify the servicespecific coordination knowledge without worrying about the underlying mechanisms.
- The authors identified three important coordination issues: detecting conflicts between proposals, resolving conflicts between proposals, and identifying incompatible strategies (i.e., strategies that work at cross purposes).
- Next, the authors discuss how they address these three issues.
5.1. Conflict detection
- The authors categorize conflicts into two types:action-leveland problem-level.
- The AC can automatically detect such conflicts by looking at the actions in different proposals.
- Strategy S1 connects a new VIC user to the closest ESMP in the configuration, and S2 replaces a failed ESMP with a new one.
- A developer must specify explicitly whether the triggering of two problems simultaneously constitutes a “problem-level conflict”.
- The authors framework provides the following function for specifying such a conflict between tactics T1 and T2. addProblemConflict(T1, T2);.
5.2. Conflict resolution
- Figure 3 illustrates two different approaches for resolving conflicts between proposals.
- The authors now briefly describe the two different approaches.
- This approach accepts or rejects proposals as they are received.
- The FCFS approach supports more limited conflict resolution while the epoch/priority approach is more flexible.
5.3. Identifying incompatibility
- To prevent adaptation strategies from working at cross purpose, the authors need to identify “incompatible” strategies.
- If the authors want to automatically determine whether such cycles exist, The AC need to determine the exact effects of strategies (e.g., how much load is reduced by adding a server) and whether one strategy’s effects will trigger another.
- Instead of solving the general problem, the authors observe that it is usually sufficient to identify strategies that have opposite goals (and thus may cause undesirable cycles) and warn the developer.
- To automatically identify incompatible tactics, the authors let de- velopers “annotate” the tactics with causes and effects.
- Therefore, their framework exports the following functions for cause and effect specification: addTacticCauses(List increasedMetrics, List decreasedMetrics) addTacticEffects(List increasedMetrics, List decreasedMetrics).
6. Implementation and evaluation
- The authors have implemented a prototype of the self-adaptation framework based on their earlier self-configuration framework.
- The authors implemented an event-driven simulator that takes such a trace and simulates the gaming service described above.
- AddProblemConflict(join, split); addProblemConflict(join, merge); addProblemConflict(leave, split); addProblemConflict(leave, merge); addProblemConflict(cross, split); addProblemConflict(cross, merge);.
- The percentage of delayed adaptations is much higher for split/merge operations than that for join/leave/cross operations.
- This example demonstrates that their approach of separating the knowledge from the mechanisms allows a service developer to easily implement service-specific coordination policies without worrying about the underlying coordination mechanisms.
8. Conclusions
- The authors presented a reusable self-adaptation framework that provides common adaptation functionality and yet can take advantage of developers’ service-specific adaptation knowledge.
- The authors framework allows a developer to specify not only adaptation strategies but also coordination policies.
- The authors identified and addressed three adaptation coordination issues: conflict detection, conflict resolution, and identifying incompatible strategies.
- The authors implemented a prototype of the framework and evaluated their solution using a simulated gaming service.
- Results show that coordination works as expected and that their approach also allows developers to easily design and change coordination policies.
Did you find this useful? Give us your feedback
Citations
75 citations
Cites methods from "Building self-adapting services usi..."
...[13] propose an architecture for adapting applications to changing runtime environments using the event-action based rules provided by the application designers....
[...]
42 citations
Cites background from "Building self-adapting services usi..."
...To overcome the complexity of building such adaptation loops, component-based approaches combined with reflection mechanisms have been widely adopted in many systems [2, 6, 11, 12, 14]....
[...]
35 citations
24 citations
20 citations
References
1,052 citations
"Building self-adapting services usi..." refers background or methods in this paper
...When a constraint is violated, the “violator” in the configuration is passed to the corresponding strategy (similar to Rainbow [11]), which can then operate on the appropriate component....
[...]
...Our support for adaptation strategies is built on the externalized approach presented in Rainbow [11]....
[...]
..., [11, 26]): we define a representation for developers to express their service-specific adaptation knowledge in the form of externalized strategies and coordination policies, and we build a general framework that can interpret such knowledge to automatically adapt the target system at run time....
[...]
...Since we target both component-level and parameter-level adaptations in distributed composite services, previous component-level adaptation solutions such as [23, 10, 25, 20, 11] are more relevant to our work....
[...]
..., [11, 26], addresses this problem by separating the strategies and mechanisms from the actual system....
[...]
840 citations
827 citations
"Building self-adapting services usi..." refers background in this paper
..., the adaptation logic and mechanisms are hard-wired into the system itself), for example, [16, 19, 9, 3]....
[...]
...However, the flexibility of the epoch/priority approach is gained by sacrificing “agility” [19]: all proposals within an epoch have to wait until the end of the epoch....
[...]
704 citations
"Building self-adapting services usi..." refers background in this paper
...Since we target both component-level and parameter-level adaptations in distributed composite services, previous component-level adaptation solutions such as [23, 10, 25, 20, 11] are more relevant to our work....
[...]
402 citations
Related Papers (5)
Frequently Asked Questions (11)
Q2. What are the three adaptation coordination issues?
The authors identified and addressed three adaptation coordination issues: conflict detection, conflict resolution, and identifying incompatible strategies.
Q3. What is the purpose of this paper?
In this paper, the authors limit their scope to local adaptation, i.e., the authors focus on how to support adaptation strategies involving only “local” actions and how to coordinate such strategies.
Q4. What is the definition of a problem-level conflict?
To allow a developer to specify problem-level conflicts, the authors observe that since each problem is addressed by a tactic, a problem-level conflict can be specified as a conflict between two tactics.
Q5. What are the main points of the paper?
In the rest of the paper the authors define the run-time adaptationproblem, present the self-adaptation architecture, discuss the support for service-specific adaptation strategies and coordination policies, describe their prototype implementation, and use simulation to demonstrate the advantages of their approach.
Q6. What is the purpose of the externalized approach?
This enables the development of a general adaptation framework that can be reused by different systems, and the developer of a system can add run-time adaptation capabilities by designing externalized strategies without modifying system components.
Q7. What is the major requirement for a self-adaptation framework?
The major requirement is that such a framework (1) provides a representation of the service configuration allowing their framework to reference the components in the configuration and (2) provides an interface allowing their framework to make changes to the configuration according to the developers’ knowledge.
Q8. What is the purpose of the epoch/priority approach?
For this reason, the epoch/priority approach is used for applications where simplifying assumptions about the timing of events can be made, e.g., coordinating rules in active databases [15, 5].
Q9. What is the main difference between the two approaches?
Since the general, shared framework provides common adaptation functionalities, their approach reduces the development cost as the developers do not need to worry about lower-level mechanisms.
Q10. What is the definition of an adaptation strategy?
As categorized in [26], an adaptation strategy can be specified as a high-level “utility” function or an explicit “eventaction” rule.
Q11. How can a strategy invoke aparticular tactic?
The constraint of a strategy can be assigned using setConstraint, and a strategy can invoke aparticular tactic using invokeTactic.