Upload
gessi-upc
View
143
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
Web Services’
LifecycleQoS in
From scratch
Search for existing ones
Web Service
There are same Non-Functional capabilities
notmany web services with the
Service selection
Service selection
Service selection
$
$
Service selection
$0 $
0 $
5 $
2.5 $
99.65%99.45%96.75%99.91%95.05%
0.31 s
0.42 s
0.55 s0.28 s1.22 s
1.5 $
Service selection
$
Service selection
1
1
0
0.5
0.7
0.95
0.91
0.35
1
0
0.97
0.85
0.71
1
0
$
Service selection
0.20.50.3Weight:
$
Service selection
1
1
0
0.5
0.7
0.95
0.91
0.35
1
0
0.97
0.85
0.71
1
0
0.20.50.3
Service selection
0.978
0.991
0.406
0.950
0.140
Overall result
Service selection
0.991
Service Level Agreements
Service Level Agreements
WS-AgreementSLA 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 termsLas 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 termsLas 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
Service scopeQualifying conditionService Level ObjectiveBusiness value List
Guarantee termsName, id
Context
Terms:- Service description termsLas 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
Service scopeQualifying conditionService Level ObjectiveBusiness value List
Guarantee termsName, id
Context
Terms:- Service description termsLas 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
Service scopeQualifying conditionService Level ObjectiveBusiness value List
Guarantee termsName, id
Context
Terms:- Service description termsLas 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
Service scopeQualifying conditionService Level ObjectiveBusiness value List
Guarantee termsName, id
Context
Terms:- Service description termsLas 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
Service scopeQualifying conditionService Level ObjectiveBusiness value List
Guarantee termsName, id
Context
Terms:- Service description termsLas 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
Name, id
Context
Terms:- Service description termsLas 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
Self Adaptive Service Based Systems
Self Adaptive Service Based Systems
Database
Web service Web service
Web service
Web service
Self Adaptive Service Based Systems
Database
Web service Web service
Web service
Web service
Self Adaptive Service Based Systems
Database
Web service Web service
Web service
Web service
!
Web service
Self Adaptive Service Based Systems
Database
Web service
Web service
Web service
!
Web service
Web service
Web service
Web service
Self Adaptive Service Based Systems
Method_xParam 1, Param 2,... param N
Method_yParam 1,Param 2,...Param M
≠
Challenges
Self Adaptive Service Based Systems
Sorry, no pictures
Challenges
Monitor
Web Services
Monitoring
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?
Online testing
tester service
Passive monitoring
client service
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
Service messages
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
Service messages
Monitors inside the 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; } // Check is game over? if(isGameOver(isBorderTouched, newHeadLocX, newHeadLocY)) { scoreViewer.setText("GAME OVER " + score); isRunning = false; return; } else { // Move the whole snake body to forword. moveSnakeForword(newHeadLocX, newHeadLocY); }
board.repaint(); }
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; } // Check is game over? if(isGameOver(isBorderTouched, newHeadLocX, newHeadLocY)) { scoreViewer.setText("GAME OVER " + score); isRunning = false; return; } else { // Move the whole snake body to forword. moveSnakeForword(newHeadLocX, newHeadLocY); }
board.repaint(); }
Monitoring code
Monitoring code
Monitoring code
Aspect Oriented Programmingcode 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; } // Check is game over? if(isGameOver(isBorderTouched, newHeadLocX, newHeadLocY)) { scoreViewer.setText("GAME OVER " + score); isRunning = false; return; } else { // Move the whole snake body to forword. moveSnakeForword(newHeadLocX, newHeadLocY); }
board.repaint(); }
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();
// 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; } // Check is game over? if(isGameOver(isBorderTouched, newHeadLocX, newHeadLocY)) { scoreViewer.setText("GAME OVER " + score); isRunning = false; return; } else { // Move the whole snake body to forword. moveSnakeForword(newHeadLocX, newHeadLocY); }
board.repaint(); }
Monitoring code
Monitoring code
Monitoring code
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
Service messages
Monitors inside the code
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
Service messages
Monitors inside the engine
step1
step2
Step3
step4
step1
Step2
Monitorcode
Step3
step4
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
Service messages
Monitors inside the engine
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
Service messages
Monitors the message
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
Service messages
ENTERPRISE SERVICE BUS
Passive monitoring
clientCode
Service Code
Service Engine
Clientengine
ENTERPRISE SERVICE BUS
This is what we do
SALMon
SALMon’s Features
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
To conclude...
Activities in the service lifecycle:- Service selection- Service level agreement- Service adaptation
Monitoring - Online testing- Passive monitoring
SALMon
1
2
3
Questions&Answers