SlideShare a Scribd company logo
QoS Lifecycle

Web Services’
in
Search for
existing ones

Web Service
Fr om
s c r a t c h
not
There are many web services with the
same NonFunctional capabilities
Service selection
Service selection
Service selection
Service selection
0.42 s

99.65%

0$

0.31 s

99.45%

0$

0.55 s

96.75%

5$

0.28 s

99.91%

2.5 $

1.22 s

95.05%

1.5 $

Service selection
0.85

0.95

1

0.97

0.91

1

0.71

0.35

0

1

1

0.5

0

0

0.7

Service selection
Weight:

0.3

Service selection

0.5

0.2
0.3

0.5

0.2

0.85

0.95

1

0.97

0.91

1

0.71

0.35

0

1

1

0.5

0

0

0.7

Service selection
Overall result

0.978

0.991
0.406

0.950
0.140

Service selection
0.991

Service selection
Service Level Agreements
WS-Agreement

SLA standard (in the academia)

Service Level Agreements
Service Level Agreements
Name, id

Service Level Agreements
Name, id

Context

Service Level Agreements
Name, id

Context
Terms:

Service Level Agreements
Name, id

Context
Terms:
- Service description terms
Las presentes condiciones generales regulan los Servicios Telemáticos Financieros indicados en las condiciones particulares (en
adelante, “el Servicio”), así como el procedimiento de utilización del mismo por el Titular para la realización de las operaciones
que integren en cada momento el Servicio. Los Servicios Telemátios Financeros a los que el titular puede accedir quedan
establecidos en la relación contendia en las Condiciones Particulares del presente contrato. Los Servicios Telemáticos Financieros
ofrecidoos podran ser modificados por el Titular en cualquier momento,

Service Level Agreements
Name, id

Context
Terms:
- Service description terms
Las presentes condiciones generales regulan los Servicios Telemáticos Financieros indicados en las condiciones particulares (en
adelante, “el Servicio”), así como el procedimiento de utilización del mismo por el Titular para la realización de las operaciones
que integren en cada momento el Servicio. Los Servicios Telemátios Financeros a los que el titular puede accedir quedan
establecidos en la relación contendia en las Condiciones Particulares del presente contrato. Los Servicios Telemáticos Financieros
ofrecidoos podran ser modificados por el Titular en cualquier momento,

- Guarantee terms
Podrá establecer límites de disposición para operaciones que impliquen disponibilidad o movimiento de fondos, límites que
podran ser de distintos importes en función del Servicio Telematico Financiero a través del que se opere. Podrá modificar estos
límites de disposicion cuando lo estime necesario, prévia comunicación al titular que podrá realizarse a través del propio Servicio
Telemático

Service Level Agreements
Guarantee terms
Service scope
Qualifying condition
Service Level Objective
Business value List

Service Level Agreements
Guarantee terms
Service scope
Qualifying condition
Service Level Objective
Business value List

Service Level Agreements
Guarantee terms
Service scope
Qualifying condition
Service Level Objective
Business value List

Service Level Agreements
Guarantee terms
Service scope
Qualifying condition
Service Level Objective
Business value List

Service Level Agreements
Guarantee terms
Service scope
Qualifying condition
Service Level Objective
Business value List

Service Level Agreements
Name, id

Context
Terms:
- Service description terms
Las presentes condiciones generales regulan los Servicios Telemáticos Financieros indicados en las condiciones particulares (en
adelante, “el Servicio”), así como el procedimiento de utilización del mismo por el Titular para la realización de las operaciones
que integren en cada momento el Servicio. Los Servicios Telemátios Financeros a los que el titular puede accedir quedan
establecidos en la relación contendia en las Condiciones Particulares del presente contrato. Los Servicios Telemáticos Financieros
ofrecidoos podran ser modificados por el Titular en cualquier momento,

- Guarantee terms
Podrá establecer límites de disposición para operaciones que impliquen disponibilidad o movimiento de fondos, límites que
podran ser de distintos importes en función del Servicio Telematico Financiero a través del que se opere. Podrá modificar estos
límites de disposicion cuando lo estime necesario, prévia comunicación al titular que podrá realizarse a través del propio Servicio
Telemático

Service Level Agreements
Self Adaptive Service Based Systems
Web service

Web service

Web service

Database

Web service

Self Adaptive Service Based Systems
Web service

Web service

Web service

Database

Web service

Self Adaptive Service Based Systems
Web service

Web service

!
Web service
Web service

Database

Web service

Self Adaptive Service Based Systems
Web service

Web service

Web service

!
Web service
Web service

Database

Web service

Self Adaptive Service Based Systems
Challenges
Method_x
Param 1,
Param 2,
...
param N

≠

Method_y
Param 1,
Param 2,
...
Param M

Self Adaptive Service Based Systems
Challenges

Self Adaptive Service Based Systems
Monitor
Monitoring
Web Services
Lecture on "QoS in Web Services" - Master course
Online testing
Passive monitoring
Lecture on "QoS in Web Services" - Master course
Online testing
The malfunction of a service can be
detected before the user tries to use it

Online testing
You can control the number
of measurements per time

Online testing
You can test the behaviour of
the system at stressful situations

Online testing
Passive monitoring
You get the QoS

of real requests

Passive monitoring
it’s less intrusive

Passive monitoring
Can get the QoS of more services:

stateful and non-free services

Passive monitoring
How do they work?
tester

Online testing

service
client

Passive monitoring

service
client
Code

Client
engine

Passive monitoring

Service
messages

Service
Engine

Service
Code
client
Code

Client
engine

Service
messages

Monitors inside the code
Passive monitoring

Service
Engine

Service
Code
void processNextStep() {
boolean isBorderTouched = false;
// Generate new location of snake head.
int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX;
int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY;
// Most last part of the snake is food.
int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX();
int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY();
// Check does snake cross the border of the board?
if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) {
newHeadLocX = 0;
isBorderTouched = true;
} else if (newHeadLocX <= 0) {
newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
} else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) {
newHeadLocY = 0;
isBorderTouched = true;
} else if (newHeadLocY <= 0) {
newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
}
// Check has snake touched the food?
if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) {
// Set score.
score += 5;
scoreViewer.setText("Score==>" + score);
// Check bonus food should be given or not?
if (score % 50 == 0 && !isBonusFoodAvailable) {
createBonusFood();
}
// Create new food.
createFood();
}
// Check has snake touched the bonus food?
if (isBonusFoodAvailable &&
pointOfBonusFood.x <= newHeadLocX &&
pointOfBonusFood.y <= newHeadLocY &&
(pointOfBonusFood.x + SNAKE_BODY_PART_SQURE) >= newHeadLocX &&
(pointOfBonusFood.y + SNAKE_BODY_PART_SQURE) >= newHeadLocY) {
board.remove(bonusfood);
score += 100;
scoreViewer.setText("Score ==>" + score);
isBonusFoodAvailable = false;
void processNextStep() {
boolean isBorderTouched = false;
// Generate new location of snake head.
int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX;
int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY;
// Most last part of the snake is food.
int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX();
int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY();
// Check does snake cross the border of the board?
if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) {
newHeadLocX = 0;
isBorderTouched = true;
} else if (newHeadLocX <= 0) {
newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
} else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) {
newHeadLocY = 0;
isBorderTouched = true;
} else if (newHeadLocY <= 0) {
newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
}
// Check has snake touched the food?
if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) {
// Set score.
score += 5;
scoreViewer.setText("Score==>" + score);
// Check bonus food should be given or not?
if (score % 50 == 0 && !isBonusFoodAvailable) {
createBonusFood();
}
// Create new food.
createFood();
}
// Check has snake touched the bonus food?
if (isBonusFoodAvailable &&
pointOfBonusFood.x <= newHeadLocX &&
pointOfBonusFood.y <= newHeadLocY &&
(pointOfBonusFood.x + SNAKE_BODY_PART_SQURE) >= newHeadLocX &&
(pointOfBonusFood.y + SNAKE_BODY_PART_SQURE) >= newHeadLocY) {
board.remove(bonusfood);
score += 100;
scoreViewer.setText("Score ==>" + score);
isBonusFoodAvailable = false;

Monitoring code

Monitoring code
Monitoring code
Aspect Oriented Programming
code weaving
void processNextStep() {
boolean isBorderTouched = false;
// Generate new location of snake head.
int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX;
int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY;
// Most last part of the snake is food.
int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX();
int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY();
// Check does snake cross the border of the board?
if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) {
newHeadLocX = 0;
isBorderTouched = true;
} else if (newHeadLocX <= 0) {
newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
} else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) {
newHeadLocY = 0;
isBorderTouched = true;
} else if (newHeadLocY <= 0) {
newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
}
// Check has snake touched the food?
if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) {
// Set score.
score += 5;
scoreViewer.setText("Score==>" + score);
// Check bonus food should be given or not?
if (score % 50 == 0 && !isBonusFoodAvailable) {
createBonusFood();
}
// Create new food.
createFood();
}
// Check has snake touched the bonus food?
if (isBonusFoodAvailable &&
pointOfBonusFood.x <= newHeadLocX &&
pointOfBonusFood.y <= newHeadLocY &&
(pointOfBonusFood.x + SNAKE_BODY_PART_SQURE) >= newHeadLocX &&
(pointOfBonusFood.y + SNAKE_BODY_PART_SQURE) >= newHeadLocY) {
board.remove(bonusfood);
score += 100;
scoreViewer.setText("Score ==>" + score);
isBonusFoodAvailable = false;

Monitoring code

Monitoring code
Monitoring code
void processNextStep() {
boolean isBorderTouched = false;
// Generate new location of snake head.
int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX;
int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY;
// Most last part of the snake is food.
int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX();
int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY();

Monitoring code
// Check does snake cross the border of the board?
if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) {
newHeadLocX = 0;
isBorderTouched = true;
} else if (newHeadLocX <= 0) {
newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
} else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) {
newHeadLocY = 0;
isBorderTouched = true;
} else if (newHeadLocY <= 0) {
newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE;
isBorderTouched = true;
}

Monitoring code
// Check has snake touched the food?
if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) {
// Set score.
score += 5;
scoreViewer.setText("Score==>" + score);
// Check bonus food should be given or not?
if (score % 50 == 0 && !isBonusFoodAvailable) {
createBonusFood();
}
// Create new food.
createFood();
}

Monitoring code
// Check has snake touched the bonus food?
if (isBonusFoodAvailable &&
pointOfBonusFood.x <= newHeadLocX &&
client
Code

Client
engine

Service
messages

Monitors inside the code
Passive monitoring

Service
Engine

Service
Code
client
Code

Client
engine

Service
messages

Monitors inside
the engine
Passive monitoring

Service
Engine

Service
Code
step1

step2

Step3

step4
step1

Step2

Monitor
code

Step3

step4
client
Code

Client
engine

Service
messages

Monitors inside
the engine
Passive monitoring

Service
Engine

Service
Code
client
Code

Client
engine

Service
messages

Monitors the message
Passive monitoring

Service
Engine

Service
Code
client
Code

Client
engine

Service
messages

ENTERPRISE SERVICE BUS
Passive monitoring

Service
Engine

Service
Code
client
Code

Service
Engine

Client
engine

ENTERPRISE SERVICE BUS
Passive monitoring

Service
Code
This is what we do
SALMon
SALMon’s Features
passive monitoring + online testing

SALMon’s Features
Extensible with new metrics

SALMon’s Features
Extensible with new types of services

SALMon’s Features
Several mechanisms to retrieve the QoS

SALMon’s Features
Easily interoperable

SALMon’s Features
Lecture on "QoS in Web Services" - Master course
To conclude...
1

Activities in the service lifecycle:
- Service selection
- Service level agreement
- Service adaptation

2

Monitoring
- Online testing
- Passive monitoring

3

SALMon
Questions
&Answers

More Related Content

PDF
Iswcs09 Lecue Presentation
PPTX
Towards Realizing Dynamic QoS-aware Web Service Composition
PPTX
Applying Business Strategy Models in Organizations
PDF
Practical Experiences in Designing and Conducting Empirical Studies in Indust...
PPT
PABRE: Pattern-Based Requirements Elicitation
PPTX
Assessing Open Source Communities' using Service Oritented Computing concepts
PPTX
Quantifying the Impact of OSS Adoption Risks with the help of i* Models
PPTX
Monitoring services with SALMon.
Iswcs09 Lecue Presentation
Towards Realizing Dynamic QoS-aware Web Service Composition
Applying Business Strategy Models in Organizations
Practical Experiences in Designing and Conducting Empirical Studies in Indust...
PABRE: Pattern-Based Requirements Elicitation
Assessing Open Source Communities' using Service Oritented Computing concepts
Quantifying the Impact of OSS Adoption Risks with the help of i* Models
Monitoring services with SALMon.

Viewers also liked (12)

PPTX
PABRE System - Software Requirement Patterns
PPTX
Specialization in i* Strategic Rationale Diagrams
PDF
iStarJSON: A Lightweight Data-Format for i* Models
PPTX
iStar 2013: Using i* to Represent OSS Ecosystems for Risk Assessment
PDF
MoDRE 2014 @ RE keynote -- NFR-Aware MDD Processes
PPTX
A Context Ontology for Service Provisioning and Consumption
PPTX
A Catalogue of Software Requirement Patterns for the Domain of CMSs
PPTX
Er14
PPTX
Software Requirement Patterns (SRP)
PPTX
Slides refsq'14 ds v1
PPTX
QoS Enabled Architecture for efficient web service (1)
PPTX
How do Software Architects consider Non-Functional Requirements
PABRE System - Software Requirement Patterns
Specialization in i* Strategic Rationale Diagrams
iStarJSON: A Lightweight Data-Format for i* Models
iStar 2013: Using i* to Represent OSS Ecosystems for Risk Assessment
MoDRE 2014 @ RE keynote -- NFR-Aware MDD Processes
A Context Ontology for Service Provisioning and Consumption
A Catalogue of Software Requirement Patterns for the Domain of CMSs
Er14
Software Requirement Patterns (SRP)
Slides refsq'14 ds v1
QoS Enabled Architecture for efficient web service (1)
How do Software Architects consider Non-Functional Requirements
Ad

Similar to Lecture on "QoS in Web Services" - Master course (20)

PDF
Pervasive Computing
PDF
MobiSys Group Presentation
PDF
2.[6 9]on demand web services with quality of service
PDF
11.on demand web services with quality of service
PPTX
An Ontology-based Semantic Foundation for Flexible Manufacturing Systems
PPT
Semantic SOA Governance
PDF
Microservices - Hitchhiker's guide to cloud native applications
PDF
Microservices Architecture with Vortex — Part II
PDF
Machine Learning Applications in Grid Computing
PPTX
PDF
Serverless and serverfull - where microservices compliments serverless
PDF
How to Split Your System into Microservices
PDF
A Functional approach to reactive microservice architecture
PDF
Cloudstate—Towards Stateful Serverless
PDF
Discovery of adaptable services
PPT
Ph.D. Thesis presentation
PDF
High Dimensionality Structures Selection for Efficient Economic Big data usin...
PDF
Devoxx London 2017 - Rethinking Services With Stateful Streams
PDF
Microservices Antipatterns
PPT
Services for Science
Pervasive Computing
MobiSys Group Presentation
2.[6 9]on demand web services with quality of service
11.on demand web services with quality of service
An Ontology-based Semantic Foundation for Flexible Manufacturing Systems
Semantic SOA Governance
Microservices - Hitchhiker's guide to cloud native applications
Microservices Architecture with Vortex — Part II
Machine Learning Applications in Grid Computing
Serverless and serverfull - where microservices compliments serverless
How to Split Your System into Microservices
A Functional approach to reactive microservice architecture
Cloudstate—Towards Stateful Serverless
Discovery of adaptable services
Ph.D. Thesis presentation
High Dimensionality Structures Selection for Efficient Economic Big data usin...
Devoxx London 2017 - Rethinking Services With Stateful Streams
Microservices Antipatterns
Services for Science
Ad

More from GESSI UPC (18)

PPTX
Towards iStarML 2.0: Closing Gaps from Evolved Requirements
PPTX
Monitoring the service-based system lifecycle with SALMon
PDF
Ossap final
PPTX
Aligning Business Goals and Risks in OSS Adoption
PDF
Jcis 2015-Towards Assessing Open Source Communities' Health using SOC Concepts
PPTX
RISCOSS: Gestión del riesgo en proyectos open source (Open Expo Day2015)
PPTX
Open expo2015 riscoss
PDF
Oss2015
PPTX
Mobility4 all
PDF
QuESo: a Quality Model for Open Source Software Ecosystems
PDF
Expert mining compsac-2014
PDF
Cesi2014
PPTX
DB searches vs. snowballing
PPTX
AK+MDD+NFRs
PPTX
Arteon: Architectural and Technology Ontology
PPTX
Systematic Architecture Design
PPTX
Likert scales and statistics
PPTX
Industry-academia collaboration
Towards iStarML 2.0: Closing Gaps from Evolved Requirements
Monitoring the service-based system lifecycle with SALMon
Ossap final
Aligning Business Goals and Risks in OSS Adoption
Jcis 2015-Towards Assessing Open Source Communities' Health using SOC Concepts
RISCOSS: Gestión del riesgo en proyectos open source (Open Expo Day2015)
Open expo2015 riscoss
Oss2015
Mobility4 all
QuESo: a Quality Model for Open Source Software Ecosystems
Expert mining compsac-2014
Cesi2014
DB searches vs. snowballing
AK+MDD+NFRs
Arteon: Architectural and Technology Ontology
Systematic Architecture Design
Likert scales and statistics
Industry-academia collaboration

Recently uploaded (20)

PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
01-Introduction-to-Information-Management.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
PDF
Computing-Curriculum for Schools in Ghana
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
Cell Structure & Organelles in detailed.
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Complications of Minimal Access Surgery at WLH
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Chinmaya Tiranga quiz Grand Finale.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Abdominal Access Techniques with Prof. Dr. R K Mishra
Anesthesia in Laparoscopic Surgery in India
Final Presentation General Medicine 03-08-2024.pptx
VCE English Exam - Section C Student Revision Booklet
Microbial diseases, their pathogenesis and prophylaxis
01-Introduction-to-Information-Management.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
GENETICS IN BIOLOGY IN SECONDARY LEVEL FORM 3
Computing-Curriculum for Schools in Ghana
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
102 student loan defaulters named and shamed – Is someone you know on the list?
Cell Structure & Organelles in detailed.
STATICS OF THE RIGID BODIES Hibbelers.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Complications of Minimal Access Surgery at WLH
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Chapter 2 Heredity, Prenatal Development, and Birth.pdf

Lecture on "QoS in Web Services" - Master course

  • 2. Search for existing ones Web Service Fr om s c r a t c h
  • 3. not There are many web services with the same NonFunctional capabilities
  • 8. 0.42 s 99.65% 0$ 0.31 s 99.45% 0$ 0.55 s 96.75% 5$ 0.28 s 99.91% 2.5 $ 1.22 s 95.05% 1.5 $ Service selection
  • 15. WS-Agreement SLA standard (in the academia) Service Level Agreements
  • 20. Name, id Context Terms: - Service description terms Las presentes condiciones generales regulan los Servicios Telemáticos Financieros indicados en las condiciones particulares (en adelante, “el Servicio”), así como el procedimiento de utilización del mismo por el Titular para la realización de las operaciones que integren en cada momento el Servicio. Los Servicios Telemátios Financeros a los que el titular puede accedir quedan establecidos en la relación contendia en las Condiciones Particulares del presente contrato. Los Servicios Telemáticos Financieros ofrecidoos podran ser modificados por el Titular en cualquier momento, Service Level Agreements
  • 21. Name, id Context Terms: - Service description terms Las presentes condiciones generales regulan los Servicios Telemáticos Financieros indicados en las condiciones particulares (en adelante, “el Servicio”), así como el procedimiento de utilización del mismo por el Titular para la realización de las operaciones que integren en cada momento el Servicio. Los Servicios Telemátios Financeros a los que el titular puede accedir quedan establecidos en la relación contendia en las Condiciones Particulares del presente contrato. Los Servicios Telemáticos Financieros ofrecidoos podran ser modificados por el Titular en cualquier momento, - Guarantee terms Podrá establecer límites de disposición para operaciones que impliquen disponibilidad o movimiento de fondos, límites que podran ser de distintos importes en función del Servicio Telematico Financiero a través del que se opere. Podrá modificar estos límites de disposicion cuando lo estime necesario, prévia comunicación al titular que podrá realizarse a través del propio Servicio Telemático Service Level Agreements
  • 22. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  • 23. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  • 24. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  • 25. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  • 26. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  • 27. Name, id Context Terms: - Service description terms Las presentes condiciones generales regulan los Servicios Telemáticos Financieros indicados en las condiciones particulares (en adelante, “el Servicio”), así como el procedimiento de utilización del mismo por el Titular para la realización de las operaciones que integren en cada momento el Servicio. Los Servicios Telemátios Financeros a los que el titular puede accedir quedan establecidos en la relación contendia en las Condiciones Particulares del presente contrato. Los Servicios Telemáticos Financieros ofrecidoos podran ser modificados por el Titular en cualquier momento, - Guarantee terms Podrá establecer límites de disposición para operaciones que impliquen disponibilidad o movimiento de fondos, límites que podran ser de distintos importes en función del Servicio Telematico Financiero a través del que se opere. Podrá modificar estos límites de disposicion cuando lo estime necesario, prévia comunicación al titular que podrá realizarse a través del propio Servicio Telemático Service Level Agreements
  • 28. Self Adaptive Service Based Systems
  • 29. Web service Web service Web service Database Web service Self Adaptive Service Based Systems
  • 30. Web service Web service Web service Database Web service Self Adaptive Service Based Systems
  • 31. Web service Web service ! Web service Web service Database Web service Self Adaptive Service Based Systems
  • 32. Web service Web service Web service ! Web service Web service Database Web service Self Adaptive Service Based Systems
  • 33. Challenges Method_x Param 1, Param 2, ... param N ≠ Method_y Param 1, Param 2, ... Param M Self Adaptive Service Based Systems
  • 42. The malfunction of a service can be detected before the user tries to use it Online testing
  • 43. You can control the number of measurements per time Online testing
  • 44. You can test the behaviour of the system at stressful situations Online testing
  • 46. You get the QoS of real requests Passive monitoring
  • 48. Can get the QoS of more services: stateful and non-free services Passive monitoring
  • 49. How do they work?
  • 53. client Code Client engine Service messages Monitors inside the code Passive monitoring Service Engine Service Code
  • 54. void processNextStep() { boolean isBorderTouched = false; // Generate new location of snake head. int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX; int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY; // Most last part of the snake is food. int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX(); int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY(); // Check does snake cross the border of the board? if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) { newHeadLocX = 0; isBorderTouched = true; } else if (newHeadLocX <= 0) { newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) { newHeadLocY = 0; isBorderTouched = true; } else if (newHeadLocY <= 0) { newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } // Check has snake touched the food? if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) { // Set score. score += 5; scoreViewer.setText("Score==>" + score); // Check bonus food should be given or not? if (score % 50 == 0 && !isBonusFoodAvailable) { createBonusFood(); } // Create new food. createFood(); } // Check has snake touched the bonus food? if (isBonusFoodAvailable && pointOfBonusFood.x <= newHeadLocX && pointOfBonusFood.y <= newHeadLocY && (pointOfBonusFood.x + SNAKE_BODY_PART_SQURE) >= newHeadLocX && (pointOfBonusFood.y + SNAKE_BODY_PART_SQURE) >= newHeadLocY) { board.remove(bonusfood); score += 100; scoreViewer.setText("Score ==>" + score); isBonusFoodAvailable = false;
  • 55. void processNextStep() { boolean isBorderTouched = false; // Generate new location of snake head. int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX; int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY; // Most last part of the snake is food. int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX(); int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY(); // Check does snake cross the border of the board? if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) { newHeadLocX = 0; isBorderTouched = true; } else if (newHeadLocX <= 0) { newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) { newHeadLocY = 0; isBorderTouched = true; } else if (newHeadLocY <= 0) { newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } // Check has snake touched the food? if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) { // Set score. score += 5; scoreViewer.setText("Score==>" + score); // Check bonus food should be given or not? if (score % 50 == 0 && !isBonusFoodAvailable) { createBonusFood(); } // Create new food. createFood(); } // Check has snake touched the bonus food? if (isBonusFoodAvailable && pointOfBonusFood.x <= newHeadLocX && pointOfBonusFood.y <= newHeadLocY && (pointOfBonusFood.x + SNAKE_BODY_PART_SQURE) >= newHeadLocX && (pointOfBonusFood.y + SNAKE_BODY_PART_SQURE) >= newHeadLocY) { board.remove(bonusfood); score += 100; scoreViewer.setText("Score ==>" + score); isBonusFoodAvailable = false; Monitoring code Monitoring code Monitoring code
  • 57. void processNextStep() { boolean isBorderTouched = false; // Generate new location of snake head. int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX; int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY; // Most last part of the snake is food. int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX(); int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY(); // Check does snake cross the border of the board? if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) { newHeadLocX = 0; isBorderTouched = true; } else if (newHeadLocX <= 0) { newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) { newHeadLocY = 0; isBorderTouched = true; } else if (newHeadLocY <= 0) { newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } // Check has snake touched the food? if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) { // Set score. score += 5; scoreViewer.setText("Score==>" + score); // Check bonus food should be given or not? if (score % 50 == 0 && !isBonusFoodAvailable) { createBonusFood(); } // Create new food. createFood(); } // Check has snake touched the bonus food? if (isBonusFoodAvailable && pointOfBonusFood.x <= newHeadLocX && pointOfBonusFood.y <= newHeadLocY && (pointOfBonusFood.x + SNAKE_BODY_PART_SQURE) >= newHeadLocX && (pointOfBonusFood.y + SNAKE_BODY_PART_SQURE) >= newHeadLocY) { board.remove(bonusfood); score += 100; scoreViewer.setText("Score ==>" + score); isBonusFoodAvailable = false; Monitoring code Monitoring code Monitoring code
  • 58. void processNextStep() { boolean isBorderTouched = false; // Generate new location of snake head. int newHeadLocX = (int) snakeBodyPart[0].getLocation().getX() + directionX; int newHeadLocY = (int) snakeBodyPart[0].getLocation().getY() + directionY; // Most last part of the snake is food. int foodLocX = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getX(); int foodLocY = (int) snakeBodyPart[totalBodyPart - 1].getLocation().getY(); Monitoring code // Check does snake cross the border of the board? if (newHeadLocX >= BOARD_WIDTH - SNAKE_BODY_PART_SQURE) { newHeadLocX = 0; isBorderTouched = true; } else if (newHeadLocX <= 0) { newHeadLocX = BOARD_WIDTH - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } else if (newHeadLocY >= BOARD_HEIGHT - SNAKE_BODY_PART_SQURE) { newHeadLocY = 0; isBorderTouched = true; } else if (newHeadLocY <= 0) { newHeadLocY = BOARD_HEIGHT - SNAKE_BODY_PART_SQURE; isBorderTouched = true; } Monitoring code // Check has snake touched the food? if (newHeadLocX == foodLocX && newHeadLocY == foodLocY) { // Set score. score += 5; scoreViewer.setText("Score==>" + score); // Check bonus food should be given or not? if (score % 50 == 0 && !isBonusFoodAvailable) { createBonusFood(); } // Create new food. createFood(); } Monitoring code // Check has snake touched the bonus food? if (isBonusFoodAvailable && pointOfBonusFood.x <= newHeadLocX &&
  • 59. client Code Client engine Service messages Monitors inside the code Passive monitoring Service Engine Service Code
  • 67. This is what we do
  • 70. passive monitoring + online testing SALMon’s Features
  • 71. Extensible with new metrics SALMon’s Features
  • 72. Extensible with new types of services SALMon’s Features
  • 73. Several mechanisms to retrieve the QoS SALMon’s Features
  • 77. 1 Activities in the service lifecycle: - Service selection - Service level agreement - Service adaptation 2 Monitoring - Online testing - Passive monitoring 3 SALMon