SAL: A Service Level Agreement Language Donna Eng Dillenberger [email protected] October 22, 2003Document Changes Date Changes 9/22/03 Document Created 10/08/03 Included variables, control-flow, and functions.10/22/03 Included Language Reference ManualContents An Introduction to SAL.................................................................................................................................. 4 Tutorial ......................................................................................................................................................... 10 A First Example........................................................................................................................................ 10 More Examples......................................................................................................................................... 13 Reference Manual......................................................................................................................................... 16 Lexical Conventions................................................................................................................................. 16 Appendix A .................................................................................................................................................. 22 Software Development Environment ........................................................................................................... 23 Bibliography................................................................................................................................................. 24An Introduction to SAL The SAL language is designed to help Information Technology (IT) professionals and Business Process Modelers quickly build metrics, prototype, evaluate and optimize the configuration of their systems using Service Level Agreements (SLAs). Service Level Agreements are legal contracts used by business organizations to specify levels of performance, availability, storage, server and network capacity that an IT organization will provide to support the business processes. When these levels are not met, IT organizations are penalized by compensating the business in dollar amounts, for the time that lack of access to the computer infrastructure causes business transactions to be missed. Examples of Service Level Agreements rules are: This IT organization will support the following 4 Business Processes: 1. Trading Application 2. Prospectus Browsing Application 3. Risk Portfolio Analysis 4. Maintenance, Background jobs • The Trading Application: 1. Between 9 am and 5pm will have a Mean Time to Recovery 1 of 2 seconds. 2. All requests to the Trading Application will receive a response within 3 seconds. 3. The profit from each Trading Application request is ten dollars for trades. 4. The IT cost of each Trading Application request should not exceed one dollar. 5. If the response time is greater than 3 seconds and it’s after 9 am then a penalty of 100 dollars shall be incurred for each transaction. • The Prospectus Browsing Application: 1. Between 9am and 10 pm will have a Mean Time to Recovery of 5 minutes 2. All requests to this Application will receive a response within 1 minute 3. The profit from each request for this application is two dollars 4. The IT cost of each request to this application should not one dollar 5. No penalty to IT if the above rules are not met for Prospectus Browsers. The above rules are best effort. 1 Mean time to recovery entails that this application must not be inaccessible for longer than 2 seconds)• The Risk Portfolio Analysis Application: 1. Between 6pm and 12 pm, will have a Mean Time to Recovery of 2 hours 2. All requests to this Application will receive a response within 8 hours. 3. The profit from each request for this application is two hundred dollars. 4. The cost of each request to this application should not exceed 10 dollars. 5. If any of the above rules are missed, IT’s payment to the business will be 100 dollars for: • Each transaction missed (because Mean Time to Recovery was not met) between 6 pm and 12 pm. • Each transaction that failed to get a response within 8 hours Maintenance and Background work: 1. Will have a Mean Time to Recovery of 4 hours between 1 am and 7 am 2. All requests to this Application will receive a response within 24 hours. 3. The profit from each request for this application is 3 dollars. 4. The cost of each request to this application should not exceed 2 dollars. 5. No penalty to IT if the above rules are not met for Prospectus Browsers. The above rules are best effort. To specify the above using SAL, one would write: Application Trading; { For Scope = 900 to 1700; { MeanTimeToRecovery = 2 seconds; } ResponseTime = 3 seconds; Profit = 10 dollars; TxCost = 1 dollar; For Scope >= 900 && ResponseTime >=3 seconds; { Penalty = 100 dollars; } } Application ProspectusBrowsing; { For Scope = 900 to 2200; { MeanTimeToRecovery = 5 minutes; } ResponseTime = 1 minute; Profit = 2 dollars; TxCost = 1 dollar;Penalty = 0 dollars; } Application RiskPortfolioAnalysis; { For Scope = 600 to 1200; { MeanTimeToRecovery = 2 hours; } ResponseTime = 8 hours; Profit = 200 dollars; TxCost = 10 dollars; For Scope = 600 1200 && (ResponseTime > 8 hours | MeanTimeToRecovery > 2 hours); { Penalty = 100 dollars; } } Application MaintenanceBackground; { For Scope = 100 to 700; { MeanTimeToRecovery = 4 hours; } ResponseTime = 5 hours; Profit = 3 dollars; TxCost = 2 dollars; Penalty = 0 dollars; } The compiler for SAL will: • Check that for each defined Application, there are MeanTimetoRecovery, ResponseTime, Profit, TxCost and Penalty values defined and specified in the right units. • Transform the Application definitions above to java classes The java code could then be fed into SLA deployment machines (these don’t currently exist yet) that take the above definitions and: 1. Creates Monitoring Agents for each Application and measures whether the above thresholds are violated 2. In more sophisticated SLA deployment machines, forecast when the defined thresholds will be violated. Parameter passed into Forecast would request how far into the future a forecast is
View Full Document