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

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
GESSI UPC
 
Slides refsq'14 ds v1
Slides refsq'14 ds v1Slides refsq'14 ds v1
Slides refsq'14 ds v1
GESSI 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 Requirements
GESSI 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

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
 
Windows Communication Foundation Extensions
Windows Communication Foundation ExtensionsWindows Communication Foundation Extensions
Windows Communication Foundation Extensions
gabrielcerutti
 
Implementing Soa
Implementing SoaImplementing Soa
Implementing Soa
Simon Smith
 
DOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web ApplicationsDOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web Applications
SALT Lab @ UBC
 

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
 
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
 
DOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web ApplicationsDOM-based Test Adequacy Criteria for Web Applications
DOM-based Test Adequacy Criteria for Web Applications
 

More from GESSI UPC

DB searches vs. snowballing
DB searches vs. snowballingDB searches vs. snowballing
DB searches vs. snowballing
GESSI UPC
 
Arteon: Architectural and Technology Ontology
Arteon: Architectural and Technology OntologyArteon: Architectural and Technology Ontology
Arteon: Architectural and Technology Ontology
GESSI UPC
 
Systematic Architecture Design
Systematic Architecture DesignSystematic Architecture Design
Systematic Architecture Design
GESSI UPC
 
Likert scales and statistics
Likert scales and statisticsLikert scales and statistics
Likert scales and statistics
GESSI UPC
 
Industry-academia collaboration
Industry-academia collaborationIndustry-academia collaboration
Industry-academia collaboration
GESSI 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

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
SanaAli374401
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
PECB
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Recently uploaded (20)

psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 

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