Lecture on "QoS in Web Services" - Master course

415 views

Published on

Published in: Education, Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
415
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lecture on "QoS in Web Services" - Master course

  1. 1. QoS Lifecycle Web Services’ in
  2. 2. Search for existing ones Web Service Fr om s c r a t c h
  3. 3. not There are many web services with the same NonFunctional capabilities
  4. 4. Service selection
  5. 5. Service selection
  6. 6. Service selection
  7. 7. Service selection
  8. 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
  9. 9. 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
  10. 10. Weight: 0.3 Service selection 0.5 0.2
  11. 11. 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
  12. 12. Overall result 0.978 0.991 0.406 0.950 0.140 Service selection
  13. 13. 0.991 Service selection
  14. 14. Service Level Agreements
  15. 15. WS-Agreement SLA standard (in the academia) Service Level Agreements
  16. 16. Service Level Agreements
  17. 17. Name, id Service Level Agreements
  18. 18. Name, id Context Service Level Agreements
  19. 19. Name, id Context Terms: Service Level Agreements
  20. 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. 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. 22. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  23. 23. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  24. 24. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  25. 25. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  26. 26. Guarantee terms Service scope Qualifying condition Service Level Objective Business value List Service Level Agreements
  27. 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. 28. Self Adaptive Service Based Systems
  29. 29. Web service Web service Web service Database Web service Self Adaptive Service Based Systems
  30. 30. Web service Web service Web service Database Web service Self Adaptive Service Based Systems
  31. 31. Web service Web service ! Web service Web service Database Web service Self Adaptive Service Based Systems
  32. 32. Web service Web service Web service ! Web service Web service Database Web service Self Adaptive Service Based Systems
  33. 33. Challenges Method_x Param 1, Param 2, ... param N ≠ Method_y Param 1, Param 2, ... Param M Self Adaptive Service Based Systems
  34. 34. Challenges Self Adaptive Service Based Systems
  35. 35. Monitor
  36. 36. Monitoring Web Services
  37. 37. Online testing
  38. 38. Passive monitoring
  39. 39. Online testing
  40. 40. The malfunction of a service can be detected before the user tries to use it Online testing
  41. 41. You can control the number of measurements per time Online testing
  42. 42. You can test the behaviour of the system at stressful situations Online testing
  43. 43. Passive monitoring
  44. 44. You get the QoS of real requests Passive monitoring
  45. 45. it’s less intrusive Passive monitoring
  46. 46. Can get the QoS of more services: stateful and non-free services Passive monitoring
  47. 47. How do they work?
  48. 48. tester Online testing service
  49. 49. client Passive monitoring service
  50. 50. client Code Client engine Passive monitoring Service messages Service Engine Service Code
  51. 51. client Code Client engine Service messages Monitors inside the code Passive monitoring Service Engine Service Code
  52. 52. 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;
  53. 53. 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
  54. 54. Aspect Oriented Programming code weaving
  55. 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
  56. 56. 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 &&
  57. 57. client Code Client engine Service messages Monitors inside the code Passive monitoring Service Engine Service Code
  58. 58. client Code Client engine Service messages Monitors inside the engine Passive monitoring Service Engine Service Code
  59. 59. step1 step2 Step3 step4
  60. 60. step1 Step2 Monitor code Step3 step4
  61. 61. client Code Client engine Service messages Monitors inside the engine Passive monitoring Service Engine Service Code
  62. 62. client Code Client engine Service messages Monitors the message Passive monitoring Service Engine Service Code
  63. 63. client Code Client engine Service messages ENTERPRISE SERVICE BUS Passive monitoring Service Engine Service Code
  64. 64. client Code Service Engine Client engine ENTERPRISE SERVICE BUS Passive monitoring Service Code
  65. 65. This is what we do
  66. 66. SALMon
  67. 67. SALMon’s Features
  68. 68. passive monitoring + online testing SALMon’s Features
  69. 69. Extensible with new metrics SALMon’s Features
  70. 70. Extensible with new types of services SALMon’s Features
  71. 71. Several mechanisms to retrieve the QoS SALMon’s Features
  72. 72. Easily interoperable SALMon’s Features
  73. 73. To conclude...
  74. 74. 1 Activities in the service lifecycle: - Service selection - Service level agreement - Service adaptation 2 Monitoring - Online testing - Passive monitoring 3 SALMon
  75. 75. Questions &Answers

×