SlideShare a Scribd company logo
1 of 78
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
Online testing
Passive monitoring
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
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

Viewers also liked

PABRE System - Software Requirement Patterns
PABRE System - Software Requirement PatternsPABRE System - Software Requirement Patterns
PABRE System - Software Requirement PatternsGESSI UPC
 
Specialization in i* Strategic Rationale Diagrams
Specialization in i* Strategic Rationale DiagramsSpecialization in i* Strategic Rationale Diagrams
Specialization in i* Strategic Rationale DiagramsGESSI UPC
 
iStarJSON: A Lightweight Data-Format for i* Models
iStarJSON: A Lightweight Data-Format for i* ModelsiStarJSON: A Lightweight Data-Format for i* Models
iStarJSON: A Lightweight Data-Format for i* ModelsGESSI UPC
 
iStar 2013: Using i* to Represent OSS Ecosystems for Risk Assessment
iStar 2013: Using i* to Represent OSS Ecosystems for Risk AssessmentiStar 2013: Using i* to Represent OSS Ecosystems for Risk Assessment
iStar 2013: Using i* to Represent OSS Ecosystems for Risk AssessmentGESSI UPC
 
MoDRE 2014 @ RE keynote -- NFR-Aware MDD Processes
MoDRE 2014 @ RE keynote -- NFR-Aware MDD ProcessesMoDRE 2014 @ RE keynote -- NFR-Aware MDD Processes
MoDRE 2014 @ RE keynote -- NFR-Aware MDD ProcessesGESSI UPC
 
A Context Ontology for Service Provisioning and Consumption
A Context Ontology for Service Provisioning and ConsumptionA Context Ontology for Service Provisioning and Consumption
A Context Ontology for Service Provisioning and ConsumptionGESSI UPC
 
A Catalogue of Software Requirement Patterns for the Domain of CMSs
A Catalogue of Software Requirement Patterns for the Domain of CMSsA Catalogue of Software Requirement Patterns for the Domain of CMSs
A Catalogue of Software Requirement Patterns for the Domain of CMSsGESSI UPC
 
Software Requirement Patterns (SRP)
Software Requirement Patterns (SRP)Software Requirement Patterns (SRP)
Software Requirement Patterns (SRP)GESSI UPC
 
Slides refsq'14 ds v1
Slides refsq'14 ds v1Slides refsq'14 ds v1
Slides refsq'14 ds v1GESSI UPC
 
QoS Enabled Architecture for efficient web service (1)
QoS Enabled Architecture for efficient web service (1)QoS Enabled Architecture for efficient web service (1)
QoS Enabled Architecture for efficient web service (1)A.S.M.Mannaf Rahman
 
How do Software Architects consider Non-Functional Requirements
How do Software Architects consider Non-Functional RequirementsHow do Software Architects consider Non-Functional Requirements
How do Software Architects consider Non-Functional RequirementsGESSI UPC
 

Viewers also liked (12)

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

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

Oracle OSB Security Enforcement with OWSM
Oracle OSB Security Enforcement with OWSMOracle OSB Security Enforcement with OWSM
Oracle OSB Security Enforcement with OWSMRakesh Gujjarlapudi
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBMongoDB
 
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech TalkHacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech TalkRed Hat Developers
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Mindfire Solutions
 
Event Sourcing with Microservices
Event Sourcing with MicroservicesEvent Sourcing with Microservices
Event Sourcing with MicroservicesRalph Winzinger
 
Protecting Multi-Interfaced Mobile Web Services using Agreements
Protecting Multi-Interfaced Mobile Web Services using Agreements Protecting Multi-Interfaced Mobile Web Services using Agreements
Protecting Multi-Interfaced Mobile Web Services using Agreements Dr. Fahad Aijaz
 
Understanding Blockchain Governance Decentralization: An Agent-based Simulati...
Understanding Blockchain Governance Decentralization: An Agent-based Simulati...Understanding Blockchain Governance Decentralization: An Agent-based Simulati...
Understanding Blockchain Governance Decentralization: An Agent-based Simulati...Jungpil Hahn
 
OSMC 2019 | Directing the Director by Martin Schurz
OSMC 2019 | Directing the Director by Martin SchurzOSMC 2019 | Directing the Director by Martin Schurz
OSMC 2019 | Directing the Director by Martin SchurzNETWAYS
 
Windows Communication Foundation Extensions
Windows Communication Foundation ExtensionsWindows Communication Foundation Extensions
Windows Communication Foundation Extensionsgabrielcerutti
 
Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017Randall Hunt
 
HandyMan(SRS Final Presentation)
HandyMan(SRS Final Presentation)HandyMan(SRS Final Presentation)
HandyMan(SRS Final Presentation)FazleRabbi80
 
Observability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architecturesObservability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architecturesBoyan Dimitrov
 
Implementing Soa
Implementing SoaImplementing Soa
Implementing SoaSimon Smith
 
What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017Matt Raible
 

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

Oracle OSB Security Enforcement with OWSM
Oracle OSB Security Enforcement with OWSMOracle OSB Security Enforcement with OWSM
Oracle OSB Security Enforcement with OWSM
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
 
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech TalkHacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
Hacking the Mesh: Extending Istio with WebAssembly Modules | DevNation Tech Talk
 
Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)Webservices in SalesForce (part 1)
Webservices in SalesForce (part 1)
 
Event Sourcing with Microservices
Event Sourcing with MicroservicesEvent Sourcing with Microservices
Event Sourcing with Microservices
 
Protecting Multi-Interfaced Mobile Web Services using Agreements
Protecting Multi-Interfaced Mobile Web Services using Agreements Protecting Multi-Interfaced Mobile Web Services using Agreements
Protecting Multi-Interfaced Mobile Web Services using Agreements
 
Oracle OSB Tutorial 2
Oracle OSB Tutorial 2Oracle OSB Tutorial 2
Oracle OSB Tutorial 2
 
Understanding Blockchain Governance Decentralization: An Agent-based Simulati...
Understanding Blockchain Governance Decentralization: An Agent-based Simulati...Understanding Blockchain Governance Decentralization: An Agent-based Simulati...
Understanding Blockchain Governance Decentralization: An Agent-based Simulati...
 
OSMC 2019 | Directing the Director by Martin Schurz
OSMC 2019 | Directing the Director by Martin SchurzOSMC 2019 | Directing the Director by Martin Schurz
OSMC 2019 | Directing the Director by Martin Schurz
 
Windows Communication Foundation Extensions
Windows Communication Foundation ExtensionsWindows Communication Foundation Extensions
Windows Communication Foundation Extensions
 
Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017Deep Dive: AWS X-Ray London Summit 2017
Deep Dive: AWS X-Ray London Summit 2017
 
Soa To The Rescue
Soa To The RescueSoa To The Rescue
Soa To The Rescue
 
HandyMan(SRS Final Presentation)
HandyMan(SRS Final Presentation)HandyMan(SRS Final Presentation)
HandyMan(SRS Final Presentation)
 
WCF - In a Week
WCF - In a WeekWCF - In a Week
WCF - In a Week
 
ESB Testing
ESB TestingESB Testing
ESB Testing
 
Observability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architecturesObservability foundations in dynamically evolving architectures
Observability foundations in dynamically evolving architectures
 
Android+ax+app+wcf
Android+ax+app+wcfAndroid+ax+app+wcf
Android+ax+app+wcf
 
Implementing Soa
Implementing SoaImplementing Soa
Implementing Soa
 
What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017What the Heck is OAuth and OpenID Connect - RWX 2017
What the Heck is OAuth and OpenID Connect - RWX 2017
 
Xsd files
Xsd files Xsd files
Xsd files
 

More from GESSI UPC

Towards iStarML 2.0: Closing Gaps from Evolved Requirements
Towards iStarML 2.0: Closing Gaps from Evolved RequirementsTowards iStarML 2.0: Closing Gaps from Evolved Requirements
Towards iStarML 2.0: Closing Gaps from Evolved RequirementsGESSI UPC
 
Monitoring the service-based system lifecycle with SALMon
Monitoring the service-based system lifecycle with SALMonMonitoring the service-based system lifecycle with SALMon
Monitoring the service-based system lifecycle with SALMonGESSI UPC
 
Aligning Business Goals and Risks in OSS Adoption
Aligning Business Goals and Risks in OSS AdoptionAligning Business Goals and Risks in OSS Adoption
Aligning Business Goals and Risks in OSS AdoptionGESSI UPC
 
Jcis 2015-Towards Assessing Open Source Communities' Health using SOC Concepts
Jcis 2015-Towards Assessing Open Source Communities' Health using SOC ConceptsJcis 2015-Towards Assessing Open Source Communities' Health using SOC Concepts
Jcis 2015-Towards Assessing Open Source Communities' Health using SOC ConceptsGESSI UPC
 
RISCOSS: Gestión del riesgo en proyectos open source (Open Expo Day2015)
RISCOSS: Gestión del riesgo en proyectos open source (Open Expo Day2015)RISCOSS: Gestión del riesgo en proyectos open source (Open Expo Day2015)
RISCOSS: Gestión del riesgo en proyectos open source (Open Expo Day2015)GESSI UPC
 
Open expo2015 riscoss
Open expo2015 riscossOpen expo2015 riscoss
Open expo2015 riscossGESSI UPC
 
Mobility4 all
Mobility4 allMobility4 all
Mobility4 allGESSI UPC
 
QuESo: a Quality Model for Open Source Software Ecosystems
QuESo: a Quality Model for Open Source Software EcosystemsQuESo: a Quality Model for Open Source Software Ecosystems
QuESo: a Quality Model for Open Source Software EcosystemsGESSI UPC
 
Expert mining compsac-2014
Expert mining compsac-2014Expert mining compsac-2014
Expert mining compsac-2014GESSI UPC
 
DB searches vs. snowballing
DB searches vs. snowballingDB searches vs. snowballing
DB searches vs. snowballingGESSI UPC
 
Arteon: Architectural and Technology Ontology
Arteon: Architectural and Technology OntologyArteon: Architectural and Technology Ontology
Arteon: Architectural and Technology OntologyGESSI UPC
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture DesignGESSI UPC
 
Likert scales and statistics
Likert scales and statisticsLikert scales and statistics
Likert scales and statisticsGESSI UPC
 
Industry-academia collaboration
Industry-academia collaborationIndustry-academia collaboration
Industry-academia collaborationGESSI UPC
 

More from GESSI UPC (18)

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

Recently uploaded

Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptxmary850239
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseCeline George
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptxmary850239
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationdeepaannamalai16
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsPooky Knightsmith
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxkarenfajardo43
 

Recently uploaded (20)

Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx4.11.24 Mass Incarceration and the New Jim Crow.pptx
4.11.24 Mass Incarceration and the New Jim Crow.pptx
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
How to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 DatabaseHow to Make a Duplicate of Your Odoo 17 Database
How to Make a Duplicate of Your Odoo 17 Database
 
Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx4.11.24 Poverty and Inequality in America.pptx
4.11.24 Poverty and Inequality in America.pptx
 
Congestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentationCongestive Cardiac Failure..presentation
Congestive Cardiac Failure..presentation
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young minds
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptxGrade Three -ELLNA-REVIEWER-ENGLISH.pptx
Grade Three -ELLNA-REVIEWER-ENGLISH.pptx
 

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
  • 37.
  • 40.
  • 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
  • 75.
  • 77. 1 Activities in the service lifecycle: - Service selection - Service level agreement - Service adaptation 2 Monitoring - Online testing - Passive monitoring 3 SALMon