using autonomous components to improve runtime qualities of

20
Published in IET Software Received on 13th July 2009 Revised on 9th March 2010 doi: 10.1049/iet-sen.2010.0001 ISSN 1751-8806 Using autonomous components to improve runtime qualities of software W. Jiao * Institute of Software, School of EECS, Peking University * Key Laboratory of High Confidence Software Technologies, Ministry of Education, People’s Republic of China E-mail: [email protected] Abstract: In the development of software systems, quality properties should be considered along with the development process so that the qualities of software systems can be inferred and predicted at the specification and design stages and be evaluated and verified at the deployment and execution stages. However, distributed autonomous software entities are developed and maintained independently by third parties and their executions and qualities are beyond the control of system developers. In this study, the notion of an autonomous component is used to model an independent autonomous software entity. An autonomous component encapsulates data types, associated operations and quality properties into a uniform syntactical unit, which provides a way to reason about the functional and non-functional properties of software systems and meanwhile offers a means of evaluating and assuring the qualities of software systems at runtime. This study also describes the implementation and running support of autonomous components and studies a case application system to demonstrate how autonomous components can be used to improve the qualities of the application system. 1 Introduction Almost all of today’s software systems integrate autonomous software entities [1]. For example, complex distributed applications and systems of mobile devices can be modelled in terms of autonomous software entities [2, 3]; software entities situated on the Internet are decidedly autonomous and long-lived. Autonomous software entities may enter or quit environments autonomously and evolve their services continually without notifying others [4, 5]. Furthermore, they are independent. Their behaviour is out of control of third party or external software systems and their QoS relies on themselves as well as their deployment and execution environments, so neither their behaviour nor their QoS is deterministic or predictable. A software system has to be assembled at runtime by dynamically binding those autonomous software entities and requesting for services from them, and it has to approximate the current states of remote software entities [6] and rely on the experiences of trying those software entities to trace their services states and evaluate their QoS. Methods to construct high-quality software systems via assembling autonomous software entities have become grand challenges. To model and construct high-quality software systems, we should take into account both the functional requirements and the non-functional requirements (or quality properties). (In the literature, non-functional requirements, constraints, goals and qualities are often referred to the same properties of software systems [7].) Existing approaches usually model functionalities and quality properties separately. For example, in component-based software development [8], component developers are required to only focus on the business logic of applications whereas the non-functional properties are left to the component deployment phase, which will be specified in the deployment profile and finally guaranteed by the running support platform. However, the separation leads to many difficulties in assembling systems. It is especially difficult for analysts or maybe researchers to reason about the system-level quality properties based on the properties of components at the development phases because the qualities of software IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20 1 doi: 10.1049/iet-sen.2010.0001 & The Institution of Engineering and Technology 2011 www.ietdl.org

Upload: others

Post on 11-Feb-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Using autonomous components to improve runtime qualities of

IETdo

www.ietdl.org

Published in IET SoftwareReceived on 13th July 2009Revised on 9th March 2010doi: 10.1049/iet-sen.2010.0001

ISSN 1751-8806

Using autonomous components to improveruntime qualities of softwareW. Jiao*Institute of Software, School of EECS, Peking University*Key Laboratory of High Confidence Software Technologies, Ministry of Education, People’s Republic of ChinaE-mail: [email protected]

Abstract: In the development of software systems, quality properties should be considered along with thedevelopment process so that the qualities of software systems can be inferred and predicted at thespecification and design stages and be evaluated and verified at the deployment and execution stages.However, distributed autonomous software entities are developed and maintained independently by thirdparties and their executions and qualities are beyond the control of system developers. In this study, thenotion of an autonomous component is used to model an independent autonomous software entity. Anautonomous component encapsulates data types, associated operations and quality properties into a uniformsyntactical unit, which provides a way to reason about the functional and non-functional properties ofsoftware systems and meanwhile offers a means of evaluating and assuring the qualities of software systemsat runtime. This study also describes the implementation and running support of autonomous componentsand studies a case application system to demonstrate how autonomous components can be used to improvethe qualities of the application system.

1 IntroductionAlmost all of today’s software systems integrateautonomous software entities [1]. For example, complexdistributed applications and systems of mobile devices canbe modelled in terms of autonomous software entities[2, 3]; software entities situated on the Internet aredecidedly autonomous and long-lived. Autonomoussoftware entities may enter or quit environmentsautonomously and evolve their services continuallywithout notifying others [4, 5]. Furthermore, they areindependent. Their behaviour is out of control of thirdparty or external software systems and their QoS relies onthemselves as well as their deployment and executionenvironments, so neither their behaviour nor their QoS isdeterministic or predictable. A software system has to beassembled at runtime by dynamically binding thoseautonomous software entities and requesting for servicesfrom them, and it has to approximate the current states ofremote software entities [6] and rely on the experiences oftrying those software entities to trace their services statesand evaluate their QoS.

Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

Methods to construct high-quality software systems viaassembling autonomous software entities have becomegrand challenges.

To model and construct high-quality software systems, weshould take into account both the functional requirementsand the non-functional requirements (or quality properties).(In the literature, non-functional requirements, constraints,goals and qualities are often referred to the same propertiesof software systems [7].) Existing approaches usually modelfunctionalities and quality properties separately. Forexample, in component-based software development [8],component developers are required to only focus on thebusiness logic of applications whereas the non-functionalproperties are left to the component deployment phase,which will be specified in the deployment profile andfinally guaranteed by the running support platform.However, the separation leads to many difficulties inassembling systems. It is especially difficult for analysts ormaybe researchers to reason about the system-level qualityproperties based on the properties of components at thedevelopment phases because the qualities of software

1

& The Institution of Engineering and Technology 2011

Page 2: Using autonomous components to improve runtime qualities of

2

&

www.ietdl.org

systems are not only related to the involved componentsbut also depend on the environmental resources, and thesynthesis of quality properties cannot be achieved alongwith the integration of functionalities.

If we cannot reason about the properties (including bothfunctional and non-functional properties) of softwaresystems based on the properties of the involvedcomponents, it will be very difficult to construct high-quality software systems.

Generally, there are two fundamental abstractions in thedevelopment of software systems, that is, data abstraction andprocess abstraction. In the early time, these two abstractionswere dealt with separately and until object-orientation becameone of the mainstream techniques in the development ofsoftware systems, they were combined into a unit.

In our opinions, there is another abstraction crucial tothe development of contemporary software systems, that is,quality abstraction. It is a necessity to integrate dataabstraction, process abstraction and quality abstractiontogether in specifying and developing high-quality softwaresystems.

In this paper, we aim at studying constituent elementsfor constructing high-quality software systems. However,neither traditional software components nor software agentsare suitable just right for software systems involvingautonomous software entities. Components are softwareentities that can be deployed independently and are subjectto composition by third parties [8]. Traditionally,components are considered as passive software entities andthey are called through their published interfaces. On theother side, although an agent is usually viewed as an activesoftware entity situated in environments in pursuit of itsdesign objectives [9], there is not a consensus of thedefinition of an agent. Unlike objects, there are stillcontroversies and deviations on some aspects of agent, suchas which structural and behavioural properties an agent mustpossess and radically what is or is not an agent. There arelots of tools or platforms for supporting the development ofagents, but agents generated via the tools or platforms arequite dissimilar on structures as well as on behaviour modes(e.g. FIPA-OS[10], JADE[11], AGLETS[12]). There arealso some methodologies for multi-agent systems (see[13–15] for surveys), but agents inside are coarse-grainedand highly abstract. In the real world, especially on theInternet, not all of software entities can be considered asagents as specified in the methodologies. In this paper, weuse autonomous component (abbreviated as AC below) toabstract and model autonomous software entities as amodelling unit and a foundation for constructing high-quality software systems.

Similarly as an object encapsulating its data types andassociated operations in a single syntactical unit, an ACencapsulates data types for specifying its states, behaviour

The Institution of Engineering and Technology 2011

(or processes) associated with the data types for realising itsfunctionalities, quality properties for representing its non-functional requirements and the quality evaluation andassurance mechanism for realising the quality requirements.

By encapsulating data, associated behaviour and qualityproperties into a unit, we can provide a rigorous means ofinferring the properties (including functional and non-functional properties) of systems from the integrated ACsand can build a solid foundation for selecting ACs tointegrate high-quality systems as well.

Briefly, the main contributions of this paper are listed asfollows.

First, ACs are used to model autonomous software entities. Inthe model for AC, the approximate evaluations on the qualitiesof itself and its attributes (including internal data and actionsand required external resources) and the quality assurancemechanism for monitoring and updating the evaluations areencapsulated together. Thus, an AC can dynamically evaluatethe qualities based on its experiences on the use of resourcesand then autonomously make decisions on the selections ofresources to satisfy its desired quality expectations.

Second, a prototype framework for supporting the run ofACs is built. In the framework, ACs use their behaviourrules to adjust the approximate evaluations about thequalities of external resources (i.e. required service providercandidates) and then automatically select the mostappropriate candidates to request for services. Thus, ACscan obtain high qualities automatically and dynamically.

In the remainder of this context, Section 2 defines theconcept and abstract structure of ACs. Section 3 describesthe implementation structure and running support of ACsto offer a foundation for development of ACs. Section 4studies a case application system to illustrate how ACsimprove the runtime qualities (especially availability andperformance) of the application automatically anddynamically. The last two sections detail some related workand make some concluding remarks on our current work.

2 Autonomous components2.1 Definition

Components are software entities that can be deployedindependently and are subject to composition by thirdparties [8]. Usually, people understand autonomy ofcomponents as the taking of independent action.Components are autonomous implies that they interactwithout any intervention from users or other controllingentities [16] and take actions based on their own decisions.

As an autonomous software entity, an AC should embodythe capabilities of self-management and self-decision-making at least, for instance,

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 3: Using autonomous components to improve runtime qualities of

IEdo

www.ietdl.org

† Manage the information related to required externalresources (i.e. other software entities it depends on toimplement its functionalities), including capabilities andQoS of resources.

† Decide whether to contribute its capabilities to others (i.e.to offer its services to others).

† Decide on how to use the resources most appropriately.

Definition 1: An AC is a software entity independentlydeployed in the environment and reusable by third parties.

† The accomplishments of its functionality and qualityproperties depend on the internal data, associatedoperations and external resources, where external resourcesare loosely coupled with it and are capable of replying to itsrequests for services.

† It can evaluate the use of the external resources on thesatisfactions of its functional and quality requirements.

† It can make decisions by itself on the use of its internaldata, operations and external resources for achieving andimproving its functional and quality objectives.

† It can serve others (maybe software systems or other ACs)via providing services; in other words, others can access itsservices from its exposed interface.

2.2 Model

As an encapsulation of data, operations and qualityproperties, the model of an AC should contain thespecifications for the AC’s functional and quality objectivesand the means for achieving the objectives (particularly,for quality objectives, the means may include evaluation,assurance and improvement of qualities).

On the other hand, as an abstraction of a software entitywith autonomy, the model of an AC should embodydecision-making capability for the AC. In the model, weuse behaviour rules (w.r.t. situation � action) to representthe autonomous behaviour of an AC; and in theimplementation, which will be described later, we embed arule-based reasoning mechanism to offer the autonomousdecision-making capability for an AC.

Definition 2: An AC can be modelled as a tuple as follows

AC = kDat, Srv, Act, Qua, Dcs, Infl (1)

† Dat is the internal data of the AC. A data item is specifiedby its identity, value type and allowed range of values andDat ¼ {di | di ¼ kiddat, type, rangel}.

† Srv is the required external services (referred to asrequired services below) on which the AC depends to

T Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

perform its objectives. We can assume that the world isformed purely by other ACs and the external services willbe provided by ACs distributed in the environment.Suppose that ACS is the set of ACs, then

Srv= {ks, pre-condi, post-condi, qos-exp-list, pc listl}

pc list = {k p, qos, td l | p [ ACS ^ (pre condi ^ run(p)

⇒ post condi); td : qos � [0 · · · 1]}

where s is the signature of a required service and it isspecified via the pre-condition and post-condition, andqos-exp-list specifies the AC’s expectations for QoS of theservice.

For each service, there may be multiple AC candidatesproviding it and pc_list manages the list of service providercandidates. All of these providers implement the service,that is, under the pre-condition and after the providersrun, the post-condition of the service will be valid.Nevertheless, for each required service, the AC can selectat most one provider candidate to request for the serviceat one time.

As external software entities, service providers evolveoutside of the AC, join or quit the environment withoutnotifying the AC and meanwhile their qualities often keepon changing at runtime. As a result, the qualities of theAC may change over time and, to some extent, isunpredictable. Nevertheless, the AC can select differentservice providers with varied qualities to pursue a high-quality realisation of its objectives.

For those remote service providers, the AC can only obtainapproximate values of their qualities [6] and the values cannotbe guaranteed to be the exact reflection of their real qualityproperties. In some sense, that the AC selects a serviceprovider embodies a kind of trust of the AC on the serviceprovider. We use td (abbr. for trust degree) to recordthe degree of trustworthiness of a provider candidate toindicate how much the AC trusts the candidate to reply torequests for the required service. Trust degree related to aprovider is a function over the QoS of the provider obtainedby the AC in use of the provider’s service, and the AC willselect providers based on the trust degrees by someselection strategies. We will discuss in detail how the ACmaintains the trust degrees and how it uses the trustinformation to select service providers below.

† Act is the set of actions that the AC performs. We useaction here instead of method as that in the object-orientation is because we think that the AC is active and ithas right to decide whether, when and how to take actions.An action can be implemented locally or via invokingrequired services.

Act = {a | a = ksiga, pre-condi, post-condi, s-listl}

3

& The Institution of Engineering and Technology 2011

Page 4: Using autonomous components to improve runtime qualities of

4

&

www.ietdl.org

where s-list # Srv is the list of required services, siga is thesignature of action a and it can be specified as siga:Dat × s-list � Dat. The specification of an action isdefined via pre-condition and post-condition, that is,pre-condi ^ invoke(siga) ⇒ post-condi.

† Qua specifies the expectations for qualities of the AC.The qualities of the AC depend on the AC’s behaviour aswell as the internal and external states. Suppose that q isone of the required quality properties of the AC (e.g.reliability, availability, safety, security, performance etc.),then

Qua = {kq, exp, satl | exp [ [0 · · · 1];

sat: Dat× Srv× Act � [0 · · · 1]}

where q is the identity of a required quality property, expis the expectation value and sat is the quality satisfactiondegree evaluation function calculated based on thequalities of the AC’s attributes. In principle, the basequalities of the attributes may be different from q. Forinstance, the AC’s availability may depend on thesecurity of its data items, the availability and safety ofits external services, and the safety of its actions.

The quality dependencies between the AC and itsattributes can be positive or negative. A positive (ornegative) dependency means that the higher the quality ofthe attribute is, the higher (or lower) the AC’s quality is.For instance, the AC’s availability positively depends on theavailability of its required services whereas negatively on thesecurity of the latter.

The Institution of Engineering and Technology 2011

† Dec is the decisions (or behaviour rules) specifying howthe AC reacts or adapts to the changes of its internal andexternal states. The behaviour rules specify not only howthe AC performs actions to accomplish its functionalitiesbut also how it evaluates the satisfaction of its qualityexpectations and adjusts its performance to maintain andimprove the satisfaction.

A decision is defined by the action that the ACwill initiate under the current state and quality expectations.It can be described as d [ Dec : Dat × Srv × Qua�Act < {1}, where 1 represents an inert action that does nothing.

† Inf is the interfaces exposed by the AC for users to accessits services. As a reusable software entity, the AC shouldexpose its interface for the outside use, through which userscan request the AC to take some actions. An interfaceis implemented by a process that involves a sequence ofactions in a specific way.

Thus, an AC is modelled in a hierarchy (Fig. 1). In thehierarchy, the specification layer specifies the outside viewof the AC, the implementation layer lists the elements usedin the achievements of the functional and quality objectivesof the AC and the reference layer specifies the references toother ACs (i.e. service providers) which the AC dependson to request for the required services.

For an AC, whenever it perceives another AC appearing inthe system, it will register itself about its services to the latter.The latter may append it to the service provider candidateslist based on the registration information. When the AC is

Figure 1 Model of an autonomous component

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 5: Using autonomous components to improve runtime qualities of

IETdo

www.ietdl.org

committed to providing services, it will invoke other ACs thatprovide the required services.

After an AC is activated, it will run for serving the outsideworld or adapting for its own good. When the AC receivesa request for service from outside, it will make decisions onwhether or not to reply to the request; and if it decides toreply to the request, it will take actions to perform theservice. When the AC infers that it cannot satisfy itsquality expectations, it can decide to keep inert simply.Ideally, the AC could keep itself always in a good servicecondition by making some changes (i.e. adaptations) toimprove its survival state, such as taking actions to modifyits internal data to ensure itself always in a good conditionand re-selecting service providers to make the service statesof required services better. For instance, suppose there isa data item to record the amount of a special expendablesource, taking some actions to increase the amountcan create more possibility for the AC to achieve itsobjectives.

In process of providing services, the AC may selectdifferent service providers to request for servicesdynamically and even re-plan the implementation of itsservices on-the-fly when the states of its own or the serviceproviders for required services change.

2.3 Actions

The actions include operations for performing the functionalobjectives as well as the quality objectives of the AC.Concretely, the actions can be divided into the followingcategories:

† Functionality-relevant, to realise the functionality of theAC in the usual sense, such as manipulating the data andinvoking required services.

† Quality-relevant, including those (i) to evaluate thequalities of the AC and (ii) to improve the qualities of theAC. When the qualities of the AC depend on those ofother services, the AC can adopt a strategy of selecting themost appropriate service providers to improve its qualities.

† Management-relevant, including those (i) to perceive andcollect the information about existence of other ACs; (ii) toregister as a service provider candidate to other ACs thatdepend on its services to realise their objectives; (iii) tomanage the information about required services, includingmaintaining the list of service provider candidates,evaluating the qualities of service providers, adjusting thedegrees of trustworthiness of providers, and (iv) to recordand maintain the history that the AC has gone through sothat the AC could make its decisions based on its experiences.

In [17], we describe a method using the simulatedannealing algorithm to adjust the trust degree related to aservice provider, which is primarily based on the history of

Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

trying the service provider. Concretely, trust degree can bedefined as a function as follows

td = e(syn(dif (qos,qos-exp)))/temperature (2)

where dif(.) is the function of computing the deviationbetween the actual obtained qos and expected qos of theprovider, syn(.) is the function of synthesising multipledeviation qos values specified in the qos-exp-list andtemperature acts as an indicator to represent the degree offreedom to select the service provider.

Initially, the temperature of the service provider is setwith a relatively high value. It will decrease gradually (i.e.annealing) if the provider is in a good service condition andsubsequently is selected to provide service frequently; andon the other side, it will increase (i.e. heating) if the qualityof the provider turns poor. When the temperature of theservice provider is too high, the provider will have littleopportunity to be selected and it may be eliminated fromthe candidates list of the AC. On the contrary, when thetemperature is too low it will impede the AC to requestservices from other service providers. Therefore there are anupper limit and a lower limit for the temperature so thatthe AC need not waste its time on selecting thosepoor quality service providers and meanwhile all serviceproviders still kept in the candidates list have chances to beselected.

Finally, the AC can adopt special strategies to selectappropriate service providers based on the qualityexpectations of its own, the dependency relationships(i.e. positive or negative dependencies) between its qualityproperties and the required services, and the degrees oftrust on service providers.

2.4 Quality evaluations

As mentioned above, an AC depends on its attributes (i.e.its internal data, actions and required services) to achieveits design objectives, including its computation and qualityexpectations.

When the qualities of an AC depend on those of others,the measurements of the qualities can be calculatedfrom those dependent qualities. Nevertheless, for differentapplication systems, they may be concerned about differentquality properties; and meanwhile, for different dependencyrelationships and varied application requirements, thecomputations of qualities may be distinct.

2.4.1 Reliability: For example, reliability implies theability of a system to operate correctly according to itsspecification for a given time interval [18]. Traditionally,system reliability is measured in terms of mean timebetween failures or the failure probability (FP) of a systemfunction. The basic concept of the methods for predictingthe reliability of component-based systems is to identify

5

& The Institution of Engineering and Technology 2011

Page 6: Using autonomous components to improve runtime qualities of

6

&

www.ietdl.org

failure probabilities for each service of a component anddetermine the reliability of system functions based on theinvocation sequences and dependencies between the low-level services and the specific system function [19, 20].

For an AC, its reliability can be defined as a function overthe failure probabilities of the actions involved in theimplementation of its interfaces. When an action invokesservices, the FP of the action depends on the invocationsof the service providers. For a service provider of an AC,it is considered that the provider fails to provide therequired service if the run of the provider violatesthe specification of the required service, that is, failed(p)iff : (pre_condi ^ run(p) ⇒ post_condi).

Furthermore, the satisfaction of the AC at reliability can becomputed as deviation between the calculated reliability valueand the expected value.

For instance, suppose that the reliabilities of the actionsof the AC are r1, r2, . . . , rn, respectively (when an action isimplemented by invoking a required service, the reliabilityof the action is actually the reliability of the requiredservice), the reliability of the AC is defined as a functionover the reliabilities of the actions, that is, Relac ¼ f (r1, r2, . . . ,rn). Extremely, if these actions will always be carried outsimultaneously (i.e. either all or none of them is performed),the reliability of the AC can be simply defined asRelac =

∏ni=1 ri; on the contrary, if these actions are never be

performed at one time, the reliability of the AC can be definedas the average of the reliabilities of the actions, that is,Relac =

∑ni=1 ri/N . Finally, the satisfaction of the AC at

reliability can be expressed as sat = 1 − (|min (Relac−exp, 0)|/exp).

2.4.2 Availability: Availability is an attribute similar toreliability [21] and both of them are about the ability of thesystem to operate correctly though the former’s concern isthe ability to provide correct services and recover fromfailures at a certain point in time when the services arerequested. Many evaluation methods for reliability havebeen adapted and extended to perform availabilityevaluations [22].

Nevertheless, to differentiate availability from reliability,we need only to care about whether service providers replyto the service requests in time since the corrections of theservices have been handled by reliability. For a serviceprovider, its availability can be calculated by the probabilityof replying to requests for service, that is, P (r) ¼ Num ofReplies/Total Num of Requests.

Then the total availability of an AC can be computedbased on the availability of required services since the localactions of the AC can be considered to be always available.

2.4.3 Performance: In [23], many performanceprediction techniques are surveyed and described. For

The Institution of Engineering and Technology 2011

service providers located at remote sites, we cannot adoptthose model-based techniques to evaluate their performanceattribute since we may not own those service providers andsay nothing of knowing their implementation models.Nevertheless, when an AC tries to request for services fromthem in the system, they execute in a real world and we canobtain good estimations of their performance.

Therefore the performance of a service provider is theactual reply time of the provider and the performance of anAC is the real execution time in process of providingservices (via invoking required services and scheduling itsactions).

2.4.4 Timeliness (real-time): When the execution timeof an AC to provide a service cannot meet hard deadlines[24], it will be considered that the AC does not satisfy itstimeliness requirement. Timeliness is also concerned withthe performance of the system. Differently, there areusually some properties like worst-case execution times,execution periods or deadlines for specifying timelinessrequirements. For a required service, qos-exp-list can beused to express the AC’s expectation for timeliness of theservice.

Timeliness will put negative impact on reliability andavailability of the system. When there are timelinessrequirements, a service provider is considered to be failed ifit cannot reply to the requests for service in time, even if itreplies with a correct result.

2.4.5 Safety: Safety is freedom from unacceptable risks.Literally, safety is the situation where no hazard is present.A safety requirement is a description of a hazardincorporating the tolerable probability of the hazard [20].There have been many techniques proposed to identify theprobability of hazards in the early design phase based onsome generic evaluation models (e.g. Component FaultTrees [25], Failure Propagation and TransformationNotation-Modules [26]).

Different from reliability that is concerned about thefailures of functionality of the system, safety is about thevalue failures of data [27]. Therefore a more appropriatesafety evaluation approach to analysing the probability offailures is based on the information about the impacts ofactions on data of the system at runtime instead of thearchitecture of components and the system at design time.

For an action of an AC, it is considered as a failure if thereturns of the action are out of the allowed ranges of valuesof the influenced data items. Suppose that there is anaction a [ Act : Dat × Srv� di1 × di2 × · · · × din,dii (1 ≤ i ≤ n) [ Dat, then it is a failure to execute theaction if invoke(siga) ⇒ ∃i: 1 ≤ i ≤ n(valueOf(dii) �dii.range). Furthermore, when the action is realised viaperforming a required service, the failure of the action alsoimplies the failure of the required service. Thus, safety of a

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 7: Using autonomous components to improve runtime qualities of

IEdo

www.ietdl.org

service provider can be quantified by the value FP based on thereturns of the provider in time when it is requested for services.

2.5 Decisions (behaviour rules)

The decisions of an AC originate from the AC’s reactionsto the changes of its internal and external states.Correspondingly to actions of the AC, the decisions canalso be classified into several categories as below.

† Functionality actions relevant, such as (i) to do nothing,that is, not to serve the outside temporarily or permanently,when the AC finds its quality cannot satisfy its expectations.When the AC decides not to provide services again, it isequivalent that the AC quits the system. (ii) To start toexecute functional actions, that is, to be committed toproviding services. (iii) To plan the realisations of itsexported services, that is, to implement its exposed interfaces.

† Quality actions relevant, such as to select appropriateservice provider candidates based on the quality evaluationsand the trust degrees when the qualities are dissatisfied.

For the rules related to the AC’s qualities, they can furtherbe divided into three categories.

1. Rules for evaluating the qualities of service providercandidates and the qualities of the AC itself.

After the AC selects and invokes a service provider(identified by x below), it will collect the information aboutthe run of the service provider, such as returns and replytime, and then re-evaluate the qos of the service providerbased on the obtained information.

† Selected(x) and Invoked(x) � Re-evaluate the qualitiesof x.

Every time when the AC takes an action, the AC will callits quality satisfaction degree evaluation functions to evaluateits overall qualities and further adjust its behaviour based onthe evaluations.

† An action is performed � Re-evaluate the qualities ofthe AC.

2. Rules for maintaining the trust degrees related to serviceprovider candidates.

Because the quality of a service provider may change overtime, the trust degree related to that service provider shouldbe adjusted correspondingly.

† QualityRe-evaluated(x) � Adjust the trust degree relatedto x.

When a new AC enters the environment, it should registerto another AC as one of service provider candidates of a

T Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

required service of the latter, and then it will be assignedwith an initial trust degree by the latter so that it could berequested for services.

† isNewcome(x) � Assign an initial trust degree valuerelated to x. Generally, the initial trust degree is low.

3. Rules for maintaining the service provider candidates lists.

When the qos of a service provider is poorer than tolerable,the AC will discard it from the service provider candidates list.

† ∃s(s [ AC.Srv ^ ∃p( p [ s.pc_list ^ x [ p) ^ qualityIsTooPoor(x) � Remove x from the candidates list. qualityIsTooPoor(x) will be calculated based on the re-evaluated value ofthe quality of x and the quality expectation on the requiredservice that x will provide, that is, qualityIsTooPoor(x) is valid ifthe current quality of x is worse by far than the expectation ofthe AC on the required service.

On the other hand, when a new service provider candidateenters the environment, the AC will add the service providerinto its service provider candidates list.

† isNewcome(x) � Insert x into the candidates list.

This kind of rules will maintain the relationships betweenthe AC and its service providers to be up-to-date and makethe AC possible to accomplish its objectives under thedynamic environment.

3 Implementation and runningsupport of ACs3.1 Implementation of AC

As described above, the interface of an AC will beimplemented by a process which is recursively specified as thecompositions of sequential, branched and iterative actions ofthe AC. In [28], we described an algorithm for translating aBPEL-specific process into equivalent behaviour rules. Thus,an AC is implemented with the following structure (Fig. 2):

† The ‘rule engine’ is the kernel of the AC, which will reasonabout the AC’s behaviour based on the states of the AC’s ownand the required services.

† The ‘service provider candidates lists’ maintain the lists ofprovider candidates (i.e. other remote ACs) for the requiredservices and the trust degrees related to service providers.

† The implementations of the ‘actions’ may reference toexternal service providers. Through the running supportplatform of ACs to be mentioned below, the AC can selectappropriate service providers to implement its actions.

In the implementation, we integrate a rule engine, Drools[29], which uses the Rete [30] algorithm to process rules and

7

& The Institution of Engineering and Technology 2011

Page 8: Using autonomous components to improve runtime qualities of

8

&

www.ietdl.org

provides object-oriented interfaces for integrating the ruleengine into systems developed in Java. Using Drools, theAC can reason about its behaviour based on declarative rules.

3.2 Running support of AC

To support the run of ACs, there are three commonly usedstrategies.

† The first is to extend the existing runtime support forcomponents, for instance, implementing a new type ofcomponent container for providing space for the executionsof ACs and managing the lifecycles of ACs.

† The second is to pack an AC including its functionmodules into an indivisible whole and then deploy the AConto some existing runtime support platform. In this case,developers should implement an assembling module forpacking the modules.

† The third is to deploy an AC’s modules as separatecomponents on an existing runtime support platform andmeanwhile compose a suitable deployment profile. Whenthe deployment profile is uploaded onto the platform,the platform will use the profile to weave the separatelydeployed modules into a logically united component.

We adopt the third strategy to support the run of ACsso that it is not necessary to implement a new platform to

support the executions of ACs or program the rule engineinto all ACs, and further the actions of ACs could beimplemented as independent modules.

We select the Spring Framework [31], which is alightweight J2EE Application Framework and one of themost remarkable open source frameworks, as the supportplatform of ACs. The modules of ACs can be deployed asplain EJB components on the Spring Framework.

Concretely, the modules of an AC include the informationmanager, the rule engine, the required services manager andthe action manager, and the AC will be synthesised from theinteractions among these modules when they are deployed.The interactions among the modules are shown in Fig. 3,in which the dotted-line rectangle denotes the boundary ofthe AC.

† Initially, when the AC joins the system, it first ‘registers’itself as a potential service provider candidate to those ACsit knows. On the other side, the ‘required service manager’of the AC stores the registration information in the ‘serviceprovider candidates lists’. (Currently, we just implementedthe method of matching required services based on theliteral notations of interfaces.) The implementation of themechanism of discovery and registration of requiredservice provider candidates borrows the idea of peerdiscovery in hierarchical P2P systems [32], such as

Figure 3 Runtime structure of AC

Figure 2 Implementation structure of AC

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20The Institution of Engineering and Technology 2011 doi: 10.1049/iet-sen.2010.0001

Page 9: Using autonomous components to improve runtime qualities of

IEdo

www.ietdl.org

KaZaA [33] and eDonkey [34]. For an AC, its requiredservice manager is also responsible for registering serviceprovider candidates and publishing (or broadcasting) theregistration information.

† When the AC receives a ‘request’ for service from anotherAC, it will insert the request as a ‘fact’ into the informationbase of the ‘rule engine’. After this, the rule engine willstart to reason about the behaviour of the AC based on itsinformation base and the states of the AC’s ‘internal data’and the ‘required services’.

† When a behaviour rule is triggered, the rule engine willperform the action specified by the behaviour rule, to replyto the request (or implement the interface), to evaluate thequalities of service providers, to adjust the trust degreesrelated to service providers or to choose service providersfrom the candidates.

† When an ‘action’ is implemented via invoking externalservices and when it is performed, the AC will sendrequests for services to the chosen service providers.

† After that, the required service manager will capture thereturned information from service providers and update theinformation into the ‘service provider candidates lists’.The captured information is also a part of the informationbase of the rule engine, so the rule engine may trigger

T Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

behaviour rules relevant to the management of the requiredservices once the ‘service provider candidates lists’ are modified.

As mentioned above, to assemble an AC from itsconstituent modules (e.g. rule engine, actions and requiredservice manager), there should be a deployment profileto specify the interconnections of the separate modules. Weuse a tool called JET (Jave Emitter Templates) released bythe EMF (Eclipse Modelling Framework) project [35] toimplement the automated generation of the deploymentprofile of an AC [36]. The JET is a universal templateengine and it includes the JETEmitter class whichimplements a method called generate() to translate atemplate into a text file. Thus, the JET can generatedifferent format texts (e.g. SQL, XML and Java code)based on user-customised templates.

Before using the JET to generate an AC’s deploymentprofile, we design a template specific to the SpringFramework (Fig. 4).

In the template, line 2 is used to generate the Springdeployment profile head, line 9 defines the unique identityof an AC; lines 11–23 are used to generate the attributesof the AC, such as interface (currently, we presume thatan AC just implements one interface), behaviour rules andrequired services; lines 23–35 are used to generate theinterconnections between the AC and its modules, such as

Figure 4 Deployment profile template specific to the spring framework for ACs

9

& The Institution of Engineering and Technology 2011

Page 10: Using autonomous components to improve runtime qualities of

10

&

www.ietdl.org

information manager, required services manager, actionsmanager and rule engine. The deployment profiles of themodules are defined by using other templates and we donot present them because of the space limit.

4 Case study4.1 Example application system

To verify that ACs can be used to implement high-qualitysoftware applications, we implement a simple applicationsystem by using ACs.

The application simulates a travel agency, which isdesigned to assist customers to reserve flights and hotelsand suggest travel plans for customers. The agency isimplemented as an AC with the following features:

1. Functionality-relevant actionsIn process of providing travel assistance, the agency will takeactions such as ‘capturing travel requirements’ of customers,‘reserving flights’, ‘reserving hotels’ and ‘suggesting travelplans’ for customers.

2. Required servicesWhile reserving flights, reserving hotels and planning travel plansfor customers, the agency will invoke some external servicesspecific to ‘flight reservation’, ‘hotel reservation’ and ‘travel plangeneration’. Every external service will be provided by someservice provider candidates and candidates may beimplemented differently, for example, a candidate can providean independent reservation service and another candidate mayfurther depend on other flight reservation services to reserveflights when it tries to reserve a long-distance flight thatincludes transfers among different airline companies (Fig. 5).

3. Quality expectationsIn the current implementation, we mainly focus on the‘availability’ and ‘timeliness’ of the agency. To express theexpectations on timeliness of the required services, the agencydefines an upper limit of response time for each required service.

4. Quality-relevant actionsCorrespondingly, the agency will call a group of methods,which will be described in the next sub-section, to evaluatethe qualities of service provider candidates and improve its own.

Figure 5 Dependency relationships between the agencyand required services

The Institution of Engineering and Technology 2011

5. Management-relevant actionsThe agency adjusts the trust degrees related to service providersaccording to the evaluation on the qualities of the providers.

6. InterfaceThe agency exposes an interface to ‘assist customers to maketravel plans’ and the process of providing travel assistance forcustomers is depicted as follows (Fig. 6).

7. DecisionsThe agency makes decisions on choosing appropriate serviceprovider candidates by using the specific selection strategy toimplement its actions. On the other hand, the process ofproviding travel assistance of the agency will be transformedinto behaviour rules and the agency will decide the executionsof those behaviour rules to provide services for customers.

4.2 Actions

In the description of the behaviour of an AC, we have mentionedthat the behaviour rules will trigger actions to perform thefunctional and quality goals of the AC. Among the actionsrelevant to the evaluation and improvement of the qualities ofthe AC, there are two categories of significant actions, that is,(i) re-evaluating the qualities of service providers for therequired services of the AC according to the use (i.e.invocations) of the providers and (ii) adjusting the trustdegrees related to the providers based on the evaluation results.

4.2.1 Re-evaluation of availabilities: The availabilityof a software entity is the measurement of the accessibility ofthe software entity in a timely manner [37]. For a serviceprovider candidate, its availability can be quantified as anapproximate value of the successful invocation ratio duringa given period (e.g. 100 invocations). The agency uses thefollowing algorithm to (re-)evaluate the availability of aservice provider, where SuccessRatio denotes the successfulratio of invoking the provider’s service.

† Initially, SuccessRatio ¼ 0.

† If the provider successfully responds to the current requestfrom the agency, the agency will raise the success ratio ofinvocations related to the provider, that is, letSuccessRatio ¼ (SucessRatio × 100 + 1)/(100 + 1).

Figure 6 Process of the travel agency

In the process, customers list their travel requirements first, theagency reserves the flight and hotel for customers then, and theagency provides the travel suggestion for customers at last

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 11: Using autonomous components to improve runtime qualities of

IEdo

www.ietdl.org

† Otherwise, the agency will lower the success ratio and letSuccessRatio ¼ (SucessRatio × 100)/(100 + 1).

4.2.2 Adjustment of trust degrees: By referencingto formula (2) for calculating trust degree, we concretiseit to adjust the trust degrees related to service providercandidates as follows:

1. The deviation between the actual availability of a serviceprovider and the agency’s expected availability of the requiredservice is calculated as dif avail = − ln(1 − SuccessRatio), inwhich the logarithm function is used to ensure that thedeviation turns large quickly when SuccessRatio becomes high.

2. The deviation between the actual response time and theexpected response time is calculated as (see (3))

in which WorstRT represents the upper limit of responsetime that the agency specifies for a required service andActualRT is the actual response time of a service providercandidate.

3. A ‘temperature’ value is represented by a parameter calledHotServiceIndicator. HotServiceIndicator is an indicatorto show how hot a provider candidate is. The hotter thecandidate is, the more frequently it has been selected by theagency. However, when the candidate is too hot and it isselected too frequently, it may obstruct the agency in tryingnew opportunities of requesting for services from othercandidates. HotServiceIndicator changes as follows:

† Initially, when the candidate enters the system for the firsttime, let HotServiceIndicator ¼ 0.

† Once the candidate is selected and invoked, letHotServiceIndicator ¼ HotServiceIndicator + 1.

† When the value of HotServiceIndicator reaches the toplimit (b × b), that is, HotServiceIndicator .¼ b × b, letHotServiceIndicator ¼ b × b/2.

4. The current trust degree related to a service providercandidate is calculated as

td = e(a×(41×dif avail+42×dif timeliness))/b−⌊HotServiceIndicator/b⌋ (4)

The computation for trust degrees is defined as anexponential function so that the trust degrees could beconverged quickly and consequently the agency could locateand select the best quality provider candidates to request forservices as quickly as possible.

† v1 and v2 are the weights of the availability and thetimeliness, respectively, to indicate how important theagency thinks the quality properties in its overall quality.

† a is a constant for enlarging the influence of the qualityproperties and meanwhile for restricting the range of thetrust degree, which is an empirical value. a’s value actuallyrepresents the degree of ‘confidence’ in predicting thefuture qualities of service providers so it needs to bevariable in different environments. Generally, the valuecould be enlarged in a stable environment since the servicequalities do not change frequently (so that they are morepredictable) otherwise the system has to take a longer timeto converge to its best quality; contrarily, the value shouldbe reduced in an unstable environment otherwise theoverall quality of the system will be fluctuating.

† b is a constant, too, which is representing the minimuminvocation times that will affect the trust degrees related toprovider candidates and is also an empirical value. To avoidbeing trapped into a local maximum, the agency should beencouraged to try different service providers. That is, whenthe agency gains enough invocation feedbacks from aservice provider candidate and has turned familiar with thequality properties of the candidate, it should leave someopportunity for trying those unfamiliar service providercandidates. The agency would not waste much time ontrying those low-quality service providers on the one hand,and its invocations could be converged onto those bestquality service providers as quickly as possible on the otherhand.

4.3 Decisions on selections of serviceprovider candidates

Intuitively, the improvement of the overall quality of theagency can be ensured if the agency always selects the mosttrustworthy service providers (i.e. the providers with the bestQoS). However, QoS is generally represented as probabilityvalues (e.g. availability) or average values (e.g. timeliness)and due to the autonomy, a service provider with a highQoS does not mean that it can provide high-quality servicesall the time. In addition, when a new service providerregisters to the agency, the agency may assign a low trustdegree to the provider since it has not tried the provider’sservices yet, and this will obstruct the agency in trying newopportunities of requesting for services from new serviceproviders with high quality. Therefore it had better takedifferent tactics in selecting service providers in frontof different quality requirements. In our currentimplementation, we are concerned about availability andtimeliness of the system and accordingly we adopt aselection strategy which assigns high selection probabilities

dif Timeliness =0, if ActualRT . WorstRT

−ln 1 − WorstRT − ActualRT

WorstRT

( ), otherwise

⎧⎨⎩ (3)

T Softw., 2011, Vol. 5, Iss. 1, pp. 1–20 11i: 10.1049/iet-sen.2010.0001 & The Institution of Engineering and Technology 2011

Page 12: Using autonomous components to improve runtime qualities of

12

&

www.ietdl.org

to service provider candidates with high QoS. Thus, the morethe agency trusts a service provider candidate, the moreprobably it will select the candidate for services.

Suppose that there are N candidates for a special requiredservice, the agency will use a distribution probability forselecting candidates based on the following calculation

Pi =tdi∑nj=1 tdj

(5)

in which tdi is the current trust degree related to the ithservice provider candidate and Pi is the correspondingprobability of selecting the candidate.

Furthermore, when a selected candidate fails to reply tothe service request of the agency, the agency can retry atmost N times to select another candidate if the QoS of theagency is tolerable (for instance, the subsequently selectedcandidate is possible to reply to the request in time, that is,meet the agency’s timeliness requirement).

4.4 Experiments

4.4.1 Settings: For each required service, there are fiveservice provider candidates deployed on a cluster of servers.These servers are with the same configuration, that is, withan Intelw Core TM2 Duo CPU E7300 @ 2.66 GHz,2.66 GHz and 1.99 GB memory.

The availabilities of the service provider candidates arecompliant with the normal distribution and the range ofthe availabilities is from 60 to 95%. Meanwhile, theresponse times of the provider candidates ranged from 100to 1000 ms and the expected response times correspondingto the required services of the agency are all set to 500 ms.

As mentioned before,a andb in formula (4) are two empiricalconstant values in the system and they together will impact onthe changes of trust degrees. Currently, a is designated to 4.6and b is set to be 40. Nevertheless, we still compare theexperimental results when a and b are assigned with differentvalues to evaluate the impacts of the values of a and b.

In addition, to evaluate the effectivity of the strategyof selecting service provider candidates, we compare thecurrently adopted strategy with two generic selectionstrategies. The first strategy (referred to as MTFS, forexample, ‘most trusted first selected’) is always to select themost trustworthy service provider candidates first. In thisstrategy, the system will first try the service providercandidates for a specified times (e.g. 100 times) and obtainthe initial trust degrees related to the candidates. Thesystem will dynamically adjust the trust degrees as well inthe later tries. The second strategy (referred to asRSAS e.g. ‘recently successful always selected’) prefers toselect the service provider that succeeds to reply to therequest recently. In this strategy, the system does not

The Institution of Engineering and Technology 2011

accumulate its experiences on trying the service providercandidates and it will randomly select another candidatewhen the recently selected candidate fails to reply to therequest of the system.

4.4.2 Experimental results: We test the qualities of thesystem (i.e. the agency) from several aspects as follows:

1. First, the dynamic changes of the availability of the systemunder the assumption that the system is not concerned aboutits timeliness requirement (i.e. v1 ¼ 1 and v2 ¼ 0). In thiscase, the experiments are divided into two sub-categories.

† (Case 1.1). The system is considered to be failed wheneverit finds that a selected service provider candidate isunavailable to reply to the request for the required service.This group of experiments is designed for showing that thesystem can find the most available service providersefficiently and meanwhile gain a high availability as quicklyas possible autonomously.

† (Case 1.2). While requesting for a service, the system willcontinue to choose another service provider candidate whenthe currently selected candidate is unavailable until thenewly selected candidate is available or no more candidatesare selectable. These experiments are designed for verifyingthat the system can improve its overall availabilityeffectively when there is more than one service providercandidate for a required service.

2. Second (Case 2), the performance of the system when thetimeliness of service provider candidates are taken intoconsideration (i.e. v1 ¼ 0 and v2 ¼ 1). In this case, we arejust concerned about how fast the system can run whenthe system succeeds to provide services for customers.Whenever a service provider fails to reply to the request ofthe system, the system will be activated into another roundof runs and the failures of the system will not be counted.

3. Third (Case 3), the synthesised quality of the system underthe situation that both availability and timeliness of thesystem are taken into consideration (i.e. v1 ¼ 0.5 andv2 ¼ 0.5). In this case, when a service provider candidatefor a required service is unavailable and there is still enoughtime (i.e. the upper limit of response time is not run outof yet) to select other provider candidates, the system willchoose another candidate to request for the requiredservice. These experiments are designed for verifying thatthe system can improve its overall quality (i.e. bothavailability and performance) simultaneously.

4. Finally (Case 4), the adaptation of the system under thesituations that existing service providers quit the system andnew service providers enter the system. In this case, wepurposely remove some service providers with goodqualities from the servers and then deploy some new serviceproviders with better qualities on the servers. Theseexperiments are designed for verifying that the system can

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 13: Using autonomous components to improve runtime qualities of

IEdo

www.ietdl.org

adapt to the changes of the environment and can alwaysprovide higher quality services for customers.

In case 1.1, as shown in Fig. 7, since the ACs (including theagency and the service providers) adopt the same adjustmentstrategy to improve their availabilities, their availabilities arenot stable at the early stage so that the availability of thesystem is not stable. After a number of rounds of runs, thoseACs connect to their most available service providers andthen enter into relatively stable states. Consequently, thesystem finds out its most available service providers soon andthen relies on them to perform its requests. With the runtimes increasing, the availability of the system becomes higher.

Comparatively, when the system adopts the MTFSstrategy, the system can reach the statistically maximumvalue more quickly than our approach and the overallquality is ever better than that of our approach(Nevertheless, we will show its shortage in case 4 below).When the system adopts the RSAS strategy, thequality of the system always keeps at a rather low level sincethe system cannot find the best quality service providers allalong.

In addition, as shown in Fig. 8, when a is assigned witha bigger value and b is smaller than the current settingsmentioned above, the quality of the system can converge to themaximum value quickly. Nevertheless, because the system mayswitch among different service provider candidates morefrequently, the quality of the system will fluctuate and it seemsworse (since the statistical values of the quality are averagevalues). On the contrary, when a is assigned with a smallervalue and b is with a bigger value, the system has to take along time to obtain its best quality though the maximum valueof the quality is not better than that of the current settings.

In case 1.2, the selection strategy realises a redundancy-based fault-tolerant mechanism. Theoretically, supposethere are N service provider candidates for a requiredservice, the availability of the required service can becalculated as

RelAC =∑n

i=1

ri −∑n

i1,i2=1;i1=i2

ri1× ri2

+ · · · + ( − 1)n−1

×∑n

i1, ..., in=1;i1=i2=···=in

∏n

j=1

rij

Figure 7 Finding high availability service providers and gaining higher availability through requesting for services from thefound service providers

Figure 8 Impacts of the setting of parameters a and b

T Softw., 2011, Vol. 5, Iss. 1, pp. 1–20 13i: 10.1049/iet-sen.2010.0001 & The Institution of Engineering and Technology 2011

Page 14: Using autonomous components to improve runtime qualities of

14

&

www.ietdl.org

. As shown in Fig. 9, the system can almost always beexecuted successfully when the number of service providercandidates for each required service is more than 1. Theresults also show that the system can enter a stable statevery quickly.

In case 2, we assume that the execute time of the localcomputations of the agency can be ignored. As shown inFig. 10, the performance of the system turns better veryquickly and the system will always request for services fromthose better performance service providers after the systemtries them for a while.

In case 3, because a high availability service providercandidate may not always be with a high performance, theoverall availability of the system will decrease when thetimeliness requirements of the system are taken intoaccount (Fig. 11a). On the other side, a high performanceservice provider candidate may have a low availability andthus the overall performance of the system will turn worse(Fig. 11b). In calculation of the average performance, only

The Institution of Engineering and Technology 2011

those successful runs of the system are counted.Nevertheless, the system can quickly find those serviceprovider candidates with higher availability and betterperformance as well and then stably provide high-qualityservices for customers.

In case 4, as shown in Fig. 12, at stage 2, the agency’savailability and performance turns worse immediately afterthe best quality service providers quit the system, but theagency can find those better quality service providers torequest for services and gain a relatively better overallquality soon. At stage 3, the agency changes to depend onthose newly joining service providers with qualities betterthan those existing service providers and finally gains ahigher quality than before.

Comparatively, when the system adopts the MTFSstrategy, although the system can quickly enter a goodservice state when the environment is stable and its qualitydoes not drop down dramatically when those best qualityservice providers quit the environment, it cannot adapt to

Figure 9 Availability of the system while adopting a redundancy-based fault-tolerant mechanism to request for services fromservice provider candidates

Figure 10 Performance of the system while considering the timeliness of service provider candidates

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 15: Using autonomous components to improve runtime qualities of

IETdo

www.ietdl.org

Figure 12 Availability and performance of the system while old service providers quit and new service providers join

Figure 11 Availability and performance of the system while both the availabilities and timeliness properties of requiredservices are considered

the changes of the environment since it does not leave anyopportunities for the newly joining service providers. Whenthe system adopts the RSAS strategy, the quality of thesystem has very limited improvement though there arebetter service providers joining in the system.

5 Related work5.1 Component models

By now, many component models, besides those popularones based on commercial standards such as COM,CORBA and J2EE, have been proposed to model softwareentities. For example, Teschke and Ritter [38] propose aunifying component description language for integrateddescriptions of structure and behaviour of softwarecomponents and component-based software systems.Ben-Shaul et al. [39] present a component model forencapsulating services, which allows for the adjustment of

Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

structure and behaviour of components to changing orpreviously unknown contexts. Humberto and Richard [40]introduce service-oriented concepts into a componentmodel and execution environment and define a model fordynamically available components. Maamar et al. [41]discuss the seamless combination of context and policy tomanage behaviour that Web services expose duringcomposition and in response to changes in theenvironment. The Fractal model [42] is endowed witharbitrary reflective capabilities and supports developingcomponents with adaptation policies. Arbab [43]introduces the notion of Abstract Behaviour Type as ahigher-level alternative to abstract data type (ADT) tomodel for both components and their composition.

However, those component models do not include qualityproperties. Quality properties are independent ofcomponents at the design phase and they have to be copedwith after components are deployed.

15

& The Institution of Engineering and Technology 2011

Page 16: Using autonomous components to improve runtime qualities of

16

&

www.ietdl.org

5.2 Autonomous component

Recently, there is much work on modelling autonomoussoftware entities. Kral and Zemlicka [44] describe theneeds for ACs and gives some comparisons between ACsand autonomous agents. In [4], an autonomy-orientedcomputing paradigm is described, in which systems areformed of ACs. In [45], the state/event LTL properties ofsoftware systems assembled from ACs are formally studied.

Our component model is similar to the autonomous entitymodel described in [4]. However, our model integratesquality properties. In addition, our model does not mentionthe goals of an autonomous entity since goal is anintentional concept and it is too virtual to be implementedin a concrete software entity.

5.3 Agents and multi-agent systems

Many of the properties of ACs are similar to those of agentsand there is already a great deal of research work on agents(see the roadmap for agent research published by theAgentLink [46]). Like agents [47], ACs can take thecontrol over their internal states and their behaviour modesand dynamically adapt and respond to the changes of theirenvironments. Nevertheless, ACs are different from agentson some aspects. For example, agents are developed for theachievements of specific goals whereas ACs are mainly forreuse and assembly like traditional components. Agents areactive software systems taking actions on behalf of theirowners whereas ACs do not need to be standaloneexecutable software entities, although they are independentof ones who integrate and deploy them.

There is not an agreed formal model for agents thatcan specify both the functional and the non-functionalrequirements at the abstract level. The constructions ofagents are basically ad hoc and non-standardised eventhough they may be declared conformed to some standards(e.g. the FIPA [48]). In addition, not all of the softwareentities on the Internet are agents and it is unpractical tomodel or wrap all Internet-based software entities asagents. Therefore, in this paper, we adopted the notion ofAC as a compromise between agent and traditional passivecomponent, which uses some features of agents to supportthe autonomy of software entities on the one handand adopt the technology of traditional components torealise the functional and non-functional properties ofautonomous software entities on the other hand.

In multi-agent systems (MAS), much work focuses on theweb services composition based on agents (e.g. [40, 49–52])and Huhns and Singh [53] discuss the research directions inthat area. However, current work is still focusing on thecomposition of functionalities of software systems.Meanwhile, there is also some work discussing about trust.Ramchurn et al. [54] provide a survey on the state-of-the-art of the areas of trust and reputation in MAS. In [55], a

The Institution of Engineering and Technology 2011

formal language for expressing the relevant conditions ofbelief and trust is described. Similarly as our work,Maximilien and Singh [56] propose a multi-agentframework, in which agents are automatically selectedaccording to the associated trust levels. Differently, ACs inour work use a learning algorithm based on the annealingalgorithm to adjust the trust degrees related to serviceproviders.

5.4 Non-functional properties

There is much work on relating non-functional properties(or qualities) with functionalities of software entities. Forexample, Han [57] introduces a framework dealing withinterface signature, interface constraints, interface packagingand configurations, and non-functional properties ofsoftware components. Cysneiros et al. [58] present aframework for integrating non-functional requirements(NFRs) into the ER and object-orientation (OO) models,where NFRs are modelled as special objects. However, inthat work, qualities are not separable properties of softwarecomponents like data and operations.

In addition, a lot of work focuses on modelling softwarequalities [59]. For example, Mylopoulos et al. [7] andMusa et al. [18] survey a significant number of qualitymodels and describes the design of a quality model thatassesses a software product’s efficiency and effectiveness.However, those proposed quality models are usually merelyconcerned with the quality properties of software entitiesafter software entities have been developed, which cannotbe used to reason about the quality properties of softwareentities at the modelling and design phases. Our work isdifferent in that it is concerned with those properties thatare emergent from the executions of software systems,that is, runtime properties such as reliability, availability,performance and so on.

Some related work on QoS has been done in the area ofservice selection. Zeng et al. [60] present a platform thataddresses the issue of selecting web services for the purposeof their composition in a way that maximises usersatisfaction expressed as utility functions over QoSattributes. Ran [61] presents an approach to storing qualityinformation (e.g. availability) of web services into theUDDI registry. The UDDI service is responsible formonitoring and updating service states and returningservice candidates with satisfied quality to the client.However, service availability is a property that depends onnot only the service implementation but also the networkstates between service requestors and providers. Anothertypical approach is to delegate customer requests to aservice broker [16], which invokes appropriate service(s)and then sends the result back to the original client.However, this approach needs the central broker to processa large number of client requests, where the broker oftenbecomes the performance bottleneck when the number ofclients and services scales up.

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 17: Using autonomous components to improve runtime qualities of

IETdo

www.ietdl.org

In the study of the relationships and compositions of qualityproperties, some work also takes into consideration thesoftware architecture or the process. Rosa et al. [62] proposethe Parmenides, which is an architecture-central developmentframework. The framework supports the specifications of non-functional requirements, the integrations of functional andnon-functional parts, and the mappings from non-functionalrequirements to the implementations on a specific platform.However, the framework does not touch upon the analysis andverification of non-functional properties, and further it cannotcope with the non-functional properties related to the globalbehaviours of software systems. Franch and Botella [63]describe a formal language, NoFun, to combine non-functionalproperties into software architectural description languages.However, NoFun cannot express the relationships among non-functional properties. In addition, Mylopoulos et al. [7]propose a comprehensive framework for representing and usingnon-functional requirements during the development process.

There is also much effort focusing on improving systemavailability at runtime. When components are developedand deployed in a single organisation, the lifecycles ofcomponents are controlled by a centralised managementserver and then the availability of systems composed ofthat type of components can be improved via systemredeployment [64]. However, on the Internet,redeployment techniques are unsuitable because ACs aredeployed by third parties and cannot be migrated.Moreover, an AC’s availability may change at runtime,whereas existing redeployment algorithms often consider itas a static value. Yu and Vahdat [65] discuss the means ofimproving availability of Web services. Birman and vanRenesse [66] describe an approach to improving theavailability of Web services via modelling autonomicbehaviours in Web services. However, that work is mainlyfocusing on the availability of a single service. As we havementioned before, improving the availability of a servicelocally cannot guarantee that the service is subsequentlyhighly available in the dynamic and unstable networkenvironment. In [67], the process flow for designing andimplementing high-availability technologies is discussed.Sutcliffe et al. [68] develops an evolutionary computing toolfor requirements analysis and optimisation of component-based systems, in which designs can be optimised onaspects of reliability, performance and costs.

6 Conclusion and future workIn the development of high-quality software systems,multiple quality properties should be considered along withthe development process so that the quality properties ofsoftware systems can be inferred and predicted at thespecification and design stages and be evaluated andverified at the deployment and execution stages.

In this paper, we used the concept of an AC to encapsulatedata, behaviours and quality properties in a uniform unit. Wealso described the implementation and running support of

Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

ACs and studied a case application system. Although theapplication system is preliminary and only deals withavailability and timeliness, we believe it can be extendedfor other quality properties. How to approximately evaluateother related qualities of remote service providers and how todeal with multiple quality properties will be our future work.

In the current work, the quality values of service providercandidates are scattered in different ACs and they are notinconsistent, and ACs have to take more time to obtain thereal quality values of service providers since an AC newlyparticipating in the system may be unable to obtain theup-to-date estimated quality values of existing serviceproviders. At the next stage, we will offer some knowledgesharing mechanism so that ACs could quickly obtain themost recent quality properties of existing service providers.

In the next stage, we will study the formal properties of ACsand AC-based software systems in a more rigorous way to makeit possible to formally infer, predict and assure of the qualities ofsoftware systems along with the development of softwaresystems. Further, we will investigate the methodology ofconstructing high-quality software systems based on ACs andupgrade the prototype for more quality properties.

7 AcknowledgmentFirst of all, we thank the anonymous referees, whose usefulcomments have greatly improved the presentation of thispaper, and Dr. Xi Sun and Mr. Lei Zhuang, who providedsome experiment results when they were graduate studentswith the Institute of Software, EECS at Peking University.This work was supported in part by the National BasicResearch Program of China (973) (2009CB320700), theNational Key Technology R&D Program of China(2008AA01Z139), the Science Fund for Creative Groupsof China (60821003) and the National Natural ScienceFoundation of China (60773151).

8 References

[1] ZAMBONELLI F., VAN DYKE PARUNAK V.: ‘Towards a paradigmchange in computer science and software engineering:a synthesis’, Knowl. Eng. Rev., 2004, 18, (4), pp. 329–342

[2] CABRI G., LEONARDI L., ZAMBONELLI F.: ‘Engineering mobileagent applications via context-dependent coordination’,IEEE Trans. Softw. Eng., 2002, 28, (9), pp. 1041–1057

[3] PICCO G.P., MURPHY A.M., ROMAN G.C.: ‘Software engineering formobility: a roadmap’, in FINKELSTEIN A. (ED.): ‘The future ofsoftware engineering’ (ACM Press, 2000), pp. 241–258

[4] LIU J., JIN X., TSUI K.C.: ‘Autonomous-orientedcomputing (AOC): formulating computational systemswith autonomous components’, IEEE Trans. Syst., Man,Cybernet. – Part A: Syst. Hum., 2005, 35, (6), pp. 879–902

17

& The Institution of Engineering and Technology 2011

Page 18: Using autonomous components to improve runtime qualities of

18

&

www.ietdl.org

[5] SHAW M.: ‘Architectural requirements for computingwith coalitions of resources’. First Working IFIP Conf. onSoftware Architecture, San Antonio, TX, USA, February 1999

[6] KHARE R., TAYLOR R.N.: ‘Extending the representationalstate transfer (REST) architectural style for decentralizedsystems’. Proc. 26th Int. Conf. on Software Engineering(ICSE), Edinburgh, Scotland, 23–28 May 2004, pp. 428–437

[7] MYLOPOULOS J., CHUNG L., NIXON B.: ‘Representing and usingnon-functional requirements: a process-oriented approach’,IEEE Trans. Softw. Eng., Special Issue Knowl. Represent.Reason. Softw. Dev., 1992, 18, (6), pp. 483–497

[8] SZYPERSKI C.: ‘Component software – beyond object-oriented programming’ (Addison-Wesley, 1998)

[9] WOODRIDGE M., JENNINGS N.R.: ‘Intelligent agents: theoryand practice’, Knowl. Eng. Rev., 1995, 10, (2), pp. 115–152

[10] FIPA-OS. FIPA-OS Agent Toolkit: http://sourceforge.net/projects/fipa-os/, 2001

[11] JADA: http://www.cs.unibo.it/�rossi/jada/, 1996

[12] AGLETS: http://www.trl.ibm.com/aglets/, 2002

[13] SHEHORY O., STURM A.: ‘Evaluation of modeling techniquesfor agent-based systems’. Proc. Fifth Int. Conf. onAutonomous Agents, Montreal, Ontorio, Canada, June2001, pp. 624–631

[14] IGLESIAS C., GARIJO M., GONZALES J.: ‘A survey of agent-oriented methodologies’, in MULLER J.P., SINGH M.P., RAO A.S.

(EDS.): ‘Intelligents agents IV: agent theories, architectures,and languages’, Lecture Notes in Artificial Intelligence,vol. 1555, 1999, (Springer-Verlag, New York), pp. 317–330

[15] BERNON C., COSSENTINO M., PAVON J.: ‘Agent-oriented softwareengineering’, Knowl. Eng. Rev., 2005, 20, (2), pp. 99–116

[16] SUZUKI J., SUDA T.: ‘A middleware platform for abiologically inspired network architecture supportingautonomous and adaptive applications’, IEEE J. SelectedAreas Commun., 2005, 23, (2), pp. 249–260

[17] SUN X., ZHOU L., ZHUANG L., JIAO W., MEI H.: ‘An approach toconstructing high-available decentralized systems via self-adaptive components’, Int. J. Softw. Eng. Knowl. Eng.,2009, 19, (4), pp. 553–571

[18] MUSA J.D., IANNINO A., OKUMOTO K.: ‘Software reliability:measurement, prediction, application’ (MacGraw-Hill,New York, NY, 1987), ACM CR 8712-0965

[19] GOSEVA-POPSTOJANOVA K., TRIVEDI K.S.: ‘Architecture-basedapproach to reliability assessment of software systems’,Perform. Eval., 2001, 45, (2–3), pp. 179–204

The Institution of Engineering and Technology 2011

[20] GRUNSKE L.: ‘Early quality prediction of component-based systems – a generic framework’, J. Syst. Softw.,2007, 80, pp. 678–686

[21] LARSSON M.: ‘Predicting quality attributes in component-based software systems’. PhD thesis, Malardalen University,2004

[22] YACOUB S.M., AMMAR H.H.: ‘A methodology forarchitecture-level reliability risk analysis’, IEEE Trans.Softw. Eng., 2002, 28, (6), pp. 529–547

[23] BALSAMO S., MARCO A.D., INVERARDI P., SIMEONI M.: ‘Model-based performance prediction in software development:a survey’, IEEE Trans. Softw. Eng., 2004, 30, (5),pp. 295–310

[24] SHA L., ABDELZAHER T.F., ARZEN K.E., ET AL.: ‘Real timescheduling theory: a historical perspective’, Real-TimeSyst., 2004, 28, (23), pp. 101–155

[25] GRUNSKE L., KAISER B.: ‘An automated dependabilityanalysis method for cots-based systems’. ‘COTSBasedsoftware systems’. Proc. Fourth Int. Conf., ICCBSS 2005,Bilbao, Spain, 7 – 11 February 2005, (LNCS, 3412),pp. 178–190

[26] FENELON P., MCDERMID J., NICHOLSON M., PUMFREY D.J.:‘Towards integrated safety analysis and design’, ACMComput. Rev., 1994, 2, (1), pp. 21–32

[27] BONDAVALLI A., SIMONCINI L.: ‘Failure classification withrespect to detection’. Technical report, Esprit Project Nr3092 (PDCS: Predictably Dependable Computing Systems),1990

[28] MEI H., SUN X., LIU X.Z., JIAO W., HUANG G.: ‘An agent-basedapproach to composing web services to supportadaptable business processes’, Int. J. Multi-Agent GridSyst., 2006, 2, (4), pp. 383–399

[29] Drools Project: See: http://labs.jboss.com/portal/jbossrules, 2007

[30] FORGY C.L.: ‘Rete: a fast algorithm for the many pattern/many object pattern match problem’, Artif. Intell., 1982, 19,pp. 17–37

[31] Spring Framework Home: http://www.springframework.org, 2008

[32] SYCARA K., PAOLUCCI M., SOUDRY J., SRINIVASAN N.: ‘Dynamicdiscovery and coordination of agent-based semantic Webservices’, IEEE Internet Comput., 2004, 8, (3), pp. 66–73

[33] HEI X., LIANG C., LIANG J., LIU Y., ROSS K.W.: ‘A measurementstudy of a large-scale P2P IPTV system’, IEEE Trans.Multimedia, 2007, 9, (8), pp. 1672–1687

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001

Page 19: Using autonomous components to improve runtime qualities of

IEdo

www.ietdl.org

[34] HECKMANN O., BOCK A.: ‘The eDonkey 2000 Protocol’.Technical report, KOM-TR-08-2002, MultimediaCommunications Lab, Darmstadt University of Technology,December 2002

[35] JET: http://www.eclipse.org/articles/Article-JET/jet_tutorial2.html

[36] XIE L.: ‘Design and implementation of the runningsupport tool for adaptive components’. Master degreethesis, Peking University, 2009

[37] ORTEGA M., PEREZ M., ROJAS T.: ‘Construction of a systemicquality model for evaluating a software product’, Softw.Qual. J., 2003, 11, pp. 219–242

[38] TESCHKE T., RITTER J.: ‘Towards a foundation ofcomponent-oriented software reference models’.‘Generative and component-based software engineering’.Second Int. Symp., GCSE 2000, Erfurt, Germany, October2000, Revised Papers, 2001, (LNCS, 2177), pp. 70–84

[39] BEN-SHAUL I., HOLDER O., LAVVA B.: ‘Dynamic adaptation anddeployment of distributed components in Hadas’, IEEETrans. Softw. Eng., 2001, 27, (9), pp. 769–787

[40] HUMBERTO C., RICHARD H.: ‘Autonomous adaptationto dynamic availability using a service-orientedcomponent model’. 26th Int. Conf. on SoftwareEngineering (ICSE’04), Edinburgh, Scotland, UK, May 2004,pp. 614–623

[41] MAAMAR Z., BENSLIMANE D., MOSTEFAOUI G.K., SUBRAMANIAN S.,MAHMOUD Q.H.: ‘Toward behavioral web services usingpolicies’, IEEE Trans. Syst., Man, Cybernet. – Part A: Syst.Hum., 2008, 38, (6), pp. 1312–1324

[42] BRUNETON E., COUPAYE T., LECLERCQ M., QUEMA V., STEFANI J.B.:‘The FRACTAL component model and its support inJava’, Softw.: Pract. Exp., 2006, 36, (11 – 12),pp. 1257 – 1284

[43] ARBAB F.: ‘Abstract behavior types: a foundationmodel for components and their composition’. FormalMethods for Components and Objects, 2003,(LNCS, 2852), pp. 33–70

[44] KRAL J., ZEMLICKA M.: ‘Autonomous components’.Proc. 27th Ann. Conf. on Current Trends inTheory and Practice of Informatics, Milovy,Czech Republic, 25 November– 2 December 2000, (LNCS,1963), pp. 375–383

[45] BENES N., BRIM L., CERNA I., SOCHOR J., VAREKOVA P., ZIMMEROVA

B.: ‘Partial order reduction for state/event LTL’.Proc. Seveth Int. Conf. on Integrated Formal Methods,Dusseldorf, Germany, 16–19 February 2009, (LNCS, 5423),pp. 307–321

T Softw., 2011, Vol. 5, Iss. 1, pp. 1–20i: 10.1049/iet-sen.2010.0001

[46] LUCK M., MCBURNEY P., SHEHORY O., WILLMOTT S.: ‘Agenttechnology: computing as in interaction’. A Roadmap forAgent Based Computing, AgentLink III, September 2005

[47] WOOLDRIDGE M.: ‘An introduction to multiagent systems’(John Wiley & Sons, 2002)

[48] FIPA: ‘Foundation for Intelligent Physical Agents’,http://www.fipa.org

[49] JURETA I.J., FAULKNER S., ACHBANY Y., SAERENS M.: ‘Dynamicweb service composition within a service-orientedarchitecture’. Proc. Int. Conf. on Web Sevices, (ICWS’07),Salt Lake City, Utah, USA, 9–13 July 2007, pp. 304–311

[50] MAAMAR Z., MOSTEFAOUI S.K., YAHYAOUI H.: ‘Toward an agent-based and context-oriented approach for web servicescomposition’, IEEE Trans. Knowl. Data Eng., 2005, 17, (5),pp. 686–697

[51] RAO J., SU X.: ‘A survey of automated web servicecomposition methods’. SWSWPC 2004, 2005,(LNCS, 3387), pp. 43–54

[52] SANTOFIMIA M.J., MOYA F., VILLANUEVA F.J., VILLA D., LOPEZ J.C.:‘Integration of intelligent agents supporting automaticservice composition in ambient intelligence’. Proc.IEEE/WIC/ACM Int. Conf. on Intelligent Agent Technology,Sydney, Australia, 9–12 December 2008, pp. 504–507

[53] HUHNS M.N., SINGH M.P., ET AL.: ‘Research directions forservice-oriented multiagent systems’, IEEE InternetComput., 2005, 9, (6), pp. 65–70

[54] RAMCHURN S.D., HUNYH D., JENNINGS N.R.: ‘Trust in multi-agent systems’, Knowl. Eng. Rev., 2004, 19, (1), pp. 1–25

[55] USTYMENKO D., SCHWARTZ D.G.: ‘Dynamic agent-orientedreasoning about belief and trust’, Multiagent Grid Syst.,2008, 4, (3), pp. 335–346

[56] MAXIMILIEN E.M., SINGH M.P.: ‘Agent-based trust modelinvolving multiple qualities’. Proc. Fourth Int. Conf. onAutonomous Agents and Multiagent Systems, Utrecht,Netherlands, 25–29 July 2005, pp. 519–526

[57] HAN J.: ‘A comprehensive interface definitionframework for software components’. Proc. Fifth Asia-Pacific Software Engineering Conf., Taipei, Taiwan,December 1998, pp. 110–117

[58] CYSNEIROS L.M., DO PRADO LEITE J.C.S., DE MELO SABAT NETO J.: ‘Aframework for integrating non-functional requirements intoconceptual models’, Requir. Eng., 2001, 6, pp. 97–115

[59] CHUNG L., NIXON B., YU E., MYLOPOULOS J.: ‘Non-functionalrequirements in software engineering’ (Kluwer Publishing,Netherlands, 2000)

19

& The Institution of Engineering and Technology 2011

Page 20: Using autonomous components to improve runtime qualities of

20

&

www.ietdl.org

[60] ZENG L., BENATALLAH B., NGU A.H.H., DUMAS M., KALAGNANAM J.,CHANG V.: ‘QoS-aware middleware for Web servicescomposition’, IEEE Trans. Softw. Eng., 2004, 30, pp. 311–327

[61] RAN S.: ‘A model for web services discovery with QoS’,ACM SIGCOM Exchanges, 2003, 4, pp. 1–10

[62] ROSA N.S., JUSTO G.R.R., CUNHA P.R.F.: ‘A framework forbuilding non-functional software architectures’. Proc. ACMSymp. on Applied Computing, 2001

[63] FRANCH X., BOTELLA P.: ‘Putting non-functionalrequirements into software architecture’. Proc. Ninth Int.Workshop on Software Specification and Design,Ise-Shima (Isobe), Japan, April 1998, pp. 60–67

[64] MIKIC-RAKIC M., MALEK S., MEDVIDOVIC N.: ‘Improvingavailability in large, distributed, component-based systemsvia redeployment’. Proc. Third Int. Working Conf. on

The Institution of Engineering and Technology 2011

Component Deployment (CD 2005), (LNCS, 3798),pp. 83–98

[65] YU H., VAHDAT A.: ‘The costs and limits of availability forreplicated services’, ACM Trans. Comput. Syst., 2006, 24,(1), pp. 70–113

[66] BIRMAN K., VAN RENESSE R.: ‘Adding high availability andautonomic behavior to web services’. Proc. 26th Int. Conf.on Software Engineering, Edinburgh, UK, May 23 – 28,2004, pp. 17–26

[67] RADHAKRISHNAN R., MARK K., POWELL B.: ‘IT servicemanagement for high availability’, IBM Syst. J., 2008, 47,(4), pp. 549–561

[68] SUTCLIFFE A., CHANG W.C., NEVILLE R.S.: ‘Applying evolutionarycomputing to complex systems design’, IEEE Trans. Syst.,Man, Cybernet. – Part A: Syst. Hum., 2007, 37, (5), pp. 770–779

IET Softw., 2011, Vol. 5, Iss. 1, pp. 1–20doi: 10.1049/iet-sen.2010.0001