• No results found

5.3 PSLA syntactic expression

5.3.4 Guarantee Terms

GuaranteeTerm 5.3.4 is designed for non-functional part of the agreement, including precondi- tions which are related to elasticity of workload, QoS target and related business clause.

In this section, the syntactic expression of Guarantee Term will be described. The structure of Guarantee Term will be described in section 5.3.4. The syntactic expression of Qualifying Condition will be described in section 5.3.4. The syntactic expression of Service Level Objec- tives will be described in section 5.3.4. The syntactic expression of Business Value List will be described in section 5.3.4.

Structure

As the listed example listing 5.23 demonstrated, the GuaranteeTerm is composed of ServiceScope, QualifyingCondition, ServiceLevelObjectives and BusinessValueList. QualifyingCondition and CustomServiceLevel are extended in PSLA.

< w s a g : G u a r a n t e e T e r m Name=" R e q u e s t Response Time " O b l i g a t e d =" S e r v i c e P r o v i d e r "> < w s a g : S e r v i c e S c o p e ServiceName =" e l a s t i c i t y "/ > < w s a g : Q u a l i f y i n g C o n d i t i o n > < o c w : Q u a l i f y i n g C o n d i t i o n E x t e n s i o n > . . . < / o c w : Q u a l i f y i n g C o n d i t i o n E x t e n s i o n > < / w s a g : Q u a l i f y i n g C o n d i t i o n > < w s a g : S e r v i c e L e v e l O b j e c t i v e > < w s a g : C u s t o m S e r v i c e L e v e l > < o c w : C u s t o m S e r v i c e L e v e l E x t e n s i o n > . . . < / o c w : C u s t o m S e r v i c e L e v e l E x t e n s i o n > < / w s a g : C u s t o m S e r v i c e L e v e l > < / w s a g : S e r v i c e L e v e l O b j e c t i v e > < w s a g : B u s i n e s s V a l u e L i s t > . . . < / w s a g : B u s i n e s s V a l u e L i s t > < / w s a g : G u a r a n t e e T e r m >

Listing 5.23. GuaranteeTerm structure example in PSLA.

• ServiceScope indicates this GuaranteeTerm is about which services.

• QualifyingCondition declares this GuaranteeTerm becomes effective under which premises. QualifyingCondition usually constraints for the one who takes advantages from the Guar- anteeTerm. QualifyingCondition is also open to be extended.

• ServiceLevelObjectives is open to be extended. We extend it to express the quantify expression of the requirement on QoS metrics.

5.3. PSLASYNTACTIC EXPRESSION 77

• BusinessValueList describes the importance of this GuaranteeTerm from many aspects. BusinessValueList describes "Check Plan", "Priority" and "Business Values", including "Penalty" and "Reward". It is extendable.

These informations can be helpful for PaaS provider to make a choice when the resources are not enough to meet all GuaranteeTerms. For example, to be helpful when making choices among GuaranteeTerms. "Check Plan" is expressed in Penalty and Reward in BusinessValueList.

We can see that WS-Agreement skeleton provides the commonly used clauses of web ser- vice based agreement. We extend it to meet domain specific needs. In PSLA, we extend WS- Agreement by considering the characteristic of PaaS level service and QoS mentioned before. Metric is expressed in SeviceDescriptionTerm extension. Elasticity workload is expressed in QualifyingCondition extension and ServiceLevelObjectives uses fuzzy value range to express the uncertain boundary of QoS target.

Qualifying Condition

In WS-Agreement, "QualifyingCondition" is designed to be the place of expressing a precon- dition under which a GuaranteeTerm should be taken into effect. "QualifyingCondition" is extendable.

In PSLA, "QualifyingCondition" is extended to describe under which conditions the obli- gate part of this GuaranteeTerm should ensure the QoS requirements. In another word, this GuaranteeTerm should be taken into consideration during runtime by the obligate part.

< e l e m e n t name =" Q u a l i f y i n g C o n d i t i o n E x t e n s i o n " t y p e ="ocw : Q u a l i f y i n g C o n d i t i o n E x t e n s i o n T y p e "/ >

<complexType name =" Q u a l i f y i n g C o n d i t i o n E x t e n s i o n T y p e " > < s eq ue n ce >

< e l e m e n t name ="P e r i o d s" t y p e ="ocw : P e r i o d s T y p e "/ > < e l e m e n t name ="Workloads" t y p e ="ocw : WorkloadsType "/ >

< e l e m e n t name ="S c a l a b i l i t y P o i n t s" t y p e ="ocw : S c a l a b i l i t y P o i n t s T y p e "/ > < e l e m e n t minOccurs ="0" name ="A f f i n i t y C o n s t r a i n t s" t y p e ="ocw :

A f f i n i t y C o n s t r a i n t s T y p e "/ > </ se qu en ce >

</ complexType >

Listing 5.24. QualifyingCondition definition in PSLA.

As shown in listing 5.24, there are four kinds of QualifyingConditions. They are "Periods", "Workloads", "ScalabilityPoints" and "AffinityConstraints".

1. wsag:QualifyingCondition

/ocw:QualifyingConditionExtension/ocw:Periods

<complexType name =" P e r i o d s T y p e " > < s e qu en ce >

< e l e m e n t name ="P e r i o d" t y p e ="ocw : P e r i o d T y p e " maxOccurs =" unbounded "/ >

</ se qu en ce > </ complexType >

<complexType name =" P e r i o d T y p e " > < s e qu en ce >

78 CHAPTER 5. PSLA: SLADESCRIPTION LANGUAGE FORPAAS < e l e m e n t name ="S t a r t" t y p e =" d at e Ti m e "/ > < e l e m e n t name ="End" t y p e =" d at e Ti m e "/ > < e l e m e n t name ="I n t e r s p a c e" t y p e ="ocw : I n t e r s p a c e T y p e " minOccurs ="0"/ > </ se qu en ce > </ complexType > <complexType name =" I n t e r s p a c e T y p e " > < s e qu en ce > < e l e m e n t name ="T i m e I n t e r v a l" t y p e =" d u r a t i o n "/ > < e l e m e n t name ="S t e p" t y p e =" d u r a t i o n "/ > </ se qu en ce > </ complexType >

Listing 5.25. Periods definition in QualifyingCondition extension of PSLA.

"Periods" is composed of a set of period which is dedicate to describe a time period. Each period is described by a start time point, and end time point and a time interval. Each time interval is defined through two time duration. They are "TimeInterval" and "Step". "TimeInterval" is the time duration of which the GuaranteeTerm should be effec- tive. "Step" is the time duration between two "TimeInterval". "Step" presents the time which the current GuaranteeTerm should be not taken into effects. Listing 5.26 is an ex- ample of period defined according to PSLA. The period is from 01/01/2014 00:00:00 to 01/01/2015 00:00:00, everyday from 00:00:00 to 07:00:00. Value PT7H of TimeInterval means from the start time, valid time will last for 7 hours. Value PT17H of Step means there will always be a 17 hours time break between two TimeInterval.

< o c w : P e r i o d s > < o c w : P e r i o d > < o c w : S t a r t >2014−01−01 T 0 0 : 0 0 : 0 0 < / o c w : S t a r t > <ocw:End>2015−01−01 T 0 0 : 0 0 : 0 0 < / ocw:End> < o c w : I n t e r S p a c e > < o c w : T i m e I n t e r v a l >PT7H< / o c w : T i m e I n t e r v a l > < o c w : S t e p >PT17H< / o c w : S t e p > < o c w : I n t e r S p a c e > < / o c w : P e r i o d > < / o c w : P e r i o d s >

Listing 5.26. One Period example of PSLA.

2. wsag:QualifyingCondition

/ocw:QualifyingConditionExtension/ocw:Workloads

<complexType name =" WorkloadsType " > < s eq ue n ce >

< e l e m e n t name ="Workload" t y p e ="ocw : WorkloadType " maxOccurs =" unbounded "/ >

</ s eq u en ce > </ complexType >

<complexType name =" WorkloadType " > < s eq ue n ce >

< e l e m e n t name ="InputDataName" t y p e ="IDREF "/ > < e l e m e n t name ="MetricName" t y p e ="IDREF "/ >

5.3. PSLASYNTACTIC EXPRESSION 79

< e l e m e n t name ="UpperBound" t y p e ="p o s i t i v e I n t e g e r"/ > < e l e m e n t name ="Average" t y p e ="p o s i t i v e I n t e g e r"/ >

< e l e m e n t minOccurs ="0" name ="V a r i a t i o n" t y p e ="ocw : V a r i a t i o n T y p e "/ > </ s eq u en ce >

</ complexType >

<complexType name =" V a r i a t i o n T y p e " > < s eq ue n ce >

< e l e m e n t name ="MetricName" t y p e ="IDREF "/ >

< e l e m e n t name ="T h r e s h o l d" t y p e ="p o s i t i v e I n t e g e r"/ > </ s eq u en ce >

</ complexType >

Listing 5.27. Workloads definition in QualifyingCondition of PSLA.

As described in listing 5.27, Workloads is composed of a set of workloads. Each workload represents the composition of one kind of InputData which is defined in ServiceDescrip- tionTerms extension. For each workload, the range of the workload, the average value of the workload and the variation of the workload are defined. Workload is typically de- scribed by the metric of Arrival Rate. For example, the lower-bounder of requests arrival rate, upper-bounder of requests arrival rate, average requests arrival rate and variation condition of the requests arrival rate. The variation of the workload is defined by giving a positive integer as the threshold of the variation metric value. When the retrieved vari- ation metric value is bigger than this threshold value, the current QualifyingCondition is no longer satisfied.

Listing 5.28 gives an example of workloads in QualifyingCondition of PSLA. In this example, workload is composed of two kinds of requests, Atomic_Request_A and Atomic_Request_B Atomic_Request_A’s requests arrival rate is between 400 requests/s and 900 requests/s. The average requests arrival rate of Atomic_Request_A should be lower than 700 requests/s. The increasing of requests arrival rate should be lower than 10 requests/s for each hour. Atomic_Request_B is defined similarly.

< ocw:Workloads > <ocw:Workload >

< ocw:InputDataName >Atomic_Request_A < / ocw:InputDataName > <ocw:MetricName > R e q u e s t s T h r o u g h p u t < / ocw:MetricName > <ocw:LowerBound>400< / ocw:LowerBound> <ocw:UpperBound>900< / ocw:UpperBound> < ocw:Average >700< / ocw:Average > < o c w : V a r i a t i o n > <ocw:MetricName > V a r i a t i o n < / ocw:MetricName > < o c w : T h r e s h o l d >10< / o c w : T h r e s h o l d > < / o c w : V a r i a t i o n > < / ocw:Workload > <ocw:Workload >

< ocw:InputDataName >Atomic_Request_B < / ocw:InputDataName > <ocw:MetricName > R e q u e s t s T h r o u g h p u t < / ocw:MetricName > <ocw:LowerBound>100< / ocw:LowerBound> <ocw:UpperBound>500< / ocw:UpperBound> < ocw:Average >300< / ocw:Average > < o c w : V a r i a t i o n > <ocw:MetricName > V a r i a t i o n < / ocw:MetricName > < o c w : T h r e s h o l d >10< / o c w : T h r e s h o l d >

80 CHAPTER 5. PSLA: SLADESCRIPTION LANGUAGE FORPAAS

< / o c w : V a r i a t i o n > < / ocw:Workload > < / ocw:Workloads >

Listing 5.28. One Workloads example of PSLA.

3. wsag:QualifyingCondition /ocw:QualifyingConditionExtension/ocw:ScalabilityPoints <complexType name =" S c a l a b i l i t y P o i n t s T y p e " > < c h o i c e maxOccurs =" unbounded " > < e l e m e n t name ="C o m p u t e S c a l a b i l i t y P o i n t" t y p e ="ocw : C o m p u t e S c a l a b i l i t y P o i n t T y p e "/ > < e l e m e n t name ="S t o r a g e S c a l a b i l i t y P o i n t" t y p e ="ocw : S t o r a g e S c a l a b i l i t y P o i n t T y p e "/ > </ c h o i c e > </ complexType >

Listing 5.29. ScalabilityPoints definition in QualifyingCondition of PSLA.

"ScalabilityPoints" is the place to describe what scaling actions can be performed in order to ensure this GuaranteeTerm. As described in listing 5.29, scaling actions can either be performed on computing resources or storage resources. e.g. Bandwidth between Compute component and DataNode is 100 M/s. Memory size of NameNode is 4G. Upper- bound of memory usage of NameNode is 75 %.

(a) wsag:QualifyingCondition

/ocw:QualifyingConditionExtension/ocw:ScalabilityPoints /ocw:ComputeScalabilityPoint

<complexType name =" C o m p u t e S c a l a b i l i t y P o i n t T y p e " > < se qu en ce >

< e l e m e n t name ="ResourceName" t y p e ="IDREF "/ >

< e l e m e n t minOccurs ="0" name ="H o r i z o n t a l S c a l i n g" t y p e =" ocw : H o r i z o n t a l S c a l i n g T y p e "/ > < e l e m e n t minOccurs ="0" name ="C o m p u t e V e r t i c a l S c a l i n g" t y p e ="ocw : C o m p u t e V e r t i c a l S c a l i n g T y p e "/ > </ se qu en ce > </ complexType >

Listing 5.30. ComputeScalabilityPoint definition in ScalabilityPoints extension of PSLA. < o c w : C o m p u t e S c a l a b i l i t y P o i n t >