SLAng - SLA notation generator A language for defining SLAs Davide Lamanna, James Skene and Wolfgang Emmerich University College London Computer Science Department {d.lamanna | j.skene | w.emmerich}@cs.ucl.ac.uk
SLAng - SLA notation generatorA language for defining SLAs
Davide Lamanna, James Skene and Wolfgang Emmerich
University College LondonComputer Science Department
{d.lamanna | j.skene | w.emmerich}@cs.ucl.ac.uk
Agenda
• Goals
• Approach
• Structure of SLAng
• Example
• Conclusion and future work
Goals
•Producing a formal language, with a well defined syntax and semantics for describing service level specifications (SLSs)•Specification of non functional features (service level) of contracts between independent parties to allow the integration with the functional design of a distribuited component system•Parameterisation, compositionality, validation of service level agreements
Approach 1/3
• To concentrate on specific, state-of-the-art application server technologies (J2EE)
• To associate performance targets with identifiable ASP components
• To use popular and standard information exchange formats (XML)
Approach 2/3
• The semantics is not dependent on complete models of the ASP. It is instead defined in terms of the domains of the performance properties
• QoS properties are somewhat dependent on the system tier being described
Approach 3/3
• We assume the use of components for assembly of distributed application services
• We require horizontal SLSs that govern interaction between components
• We also need vertical SLSs that govern the support components get from their infrastructure
Vertical and Horizontal SLAs
Components
Container
Network
Database
User Components
Container
Network
SLAng
• SLAng - SLA notation generator• XML schema• Parameterisation of SLSs at different
system tiers, including vertical and horizontal agreements
• Focuses on interfaces thus allowing compositionality
• XML format enables validation
Structure of SLAng (1/3)
Structures of SLAng (2/3)
Structure of SLAng (3/3)
What is a SLA?
Service Level Agreement
Service Level Specification
ClientService Provider
«instance»
Legal Contract
General structure of a SLA contract
User (1/3)
User (2/3)
User (3/3)
Hosting (1/3)
Hosting (2/3)
Hosting (3/3)
Persistence (1/3)
Persistence (2/3)
Persistence (3/3)
Communication (1/3)
Communication (2/3)
Communication (3/3)
Service (1/3)
Service (2/3)
Service (3/3)
Container (1/3)
Container (2/3)
Container (3/3)
Networking (1/3)
Networking (2/3)
Networking (3/3)
An example: the auction scenario
Auctioneer
ASP
ISP SSP
Buyern
TTP
Seller1
Sellerm
Credit Rating Agency
Retail Bank1 Retail Bankj
Service Level Agreement (SLA)
Buyer1
Actors and SLAs
Auctioneer
ASP
ISP SSP
TTP
Seller
Credit Rating Agency
Retail Bank
BuyerASP
ASP
Auctioneer
Auctioneer
Service
Hosting
Communication Persistence User
Parties➔Seller
➔Auctioneer
➔ASP
➔SSP
➔ISP
Polish Philatelic SocietyKracov
Auction TodayLos Angeles
EuroTelecom ConnectNewark (UK)
Compaq.comHouston, Texas
EarthLinkConnecticut
Seller/auctioneer<?xml version="1.0" encoding="UTF-8"?><SLAng xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="/dave/TAPAS/SLAng0_4/SLAng0_4.xsd">
<Vertical><User>
<Id sls_id="AF324" service_id="Auction sale"/><Client>
<Name>Polish Philatelic Society</Name><Place>Kracov</Place>
</Client><Server>
<Name>Auction Today</Name><Place>Los Angeles</Place><Availability reliability="96%"/><Maintenance recovery_time="1" scheduled_outages="10" routine_maintenances="10"/><Performance latency="1.141" peak_time_latency="3.173"
successful_transactions="98%"/><Security data_protection="true" encryption_method="RSA" certificate="true"
user_authentication="true" intrusion_detection="false" virus_scanning="false" eavesdrop_prevention="false"/><Backup solution="REOBack" complete_backup_interval="24"
incremental_backup_interval="6" data_types="User profile data" archiving_form="zip" client_access="true" backup_encryption="false" individual_client_backup="false"/>
<Monitoring tracking_system="EHS Performance Tracking" report_method="XML document" report_frequency="1/week" reporting_on_demand="true" security_violations="true"/>
</Server><Mutual>
<Service_schedule start="2002-09-05" end="2003-09-05"/><Failure_clauses compensation="(100%-availability)*3.1" exclusion_clauses="routine
maintenances"/></Mutual>
</User></Vertical>
</SLAng>
Auctioneer/ASP<?xml version="1.0" encoding="UTF-8"?><SLAng xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dave/TAPAS/SLAng0_4/SLAng0_4.xsd">
<Vertical><Hosting>
<Id sls_id="49258" service_id="Sales Automation"/><Client>
<Name>Auction Today</Name><Place>Los Angeles</Place><Clients mean_number="24000" maximum_number="40000" arrival_rate="113.2"/><Availability>95%</Availability>
</Client><Server>
<Name>EuroTelecom Connect</Name><Place>Newark (UK)</Place><Provision disk_space="500" memory_usage="512"/><High_availability>99.6%</High_availability><Maintenance recovery_time="2" scheduled_outages="20" routine_maintenances="12"/><Performance response_time="2.6" peak_time_latency="4.7" successful_transactions="98%"
processing_speed="843"/><Cluster_throughput containers="9" active_clients="310" method_invocation="53.141"/><Security data_protection="true" encryption_method="RSA" certificate="true"
user_authentication="true" intrusion_detection="false" virus_scanning="true" eavesdrop_prevention="false"/><Backup solution="REOBack" complete_backup_interval="24" incremental_backup_interval="6"
data_types="User configuration data" archiving_form="rar" client_access="true" backup_encryption="false" individual_client_backup="true"/><Monitoring tracking_system="IDX System" report_method="XML" report_frequency="48"
reporting_on_demand="false" security_violations="false"/></Server><Mutual>
<Service_schedule start="2002-08-13" end="2003-08-13"/><Failure_clauses compensation="(100%-availability)*4.6" exclusion_clauses="Client caused
outages"/></Mutual>
</Hosting></Vertical>
</SLAng>
Auctioneer/credit rating<?xml version="1.0" encoding="UTF-8"?><SLAng xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dave/TAPAS/SLAng0_4/SLAng0_4.xsd">
<Horizontal><Service>
<Id sls_id="453A" service_id="Rating"/><Client>
<Name>Auction Today</Name><Place>Los Angeles</Place><Availability>96%</Availability>
</Client><Server>
<Name>Fitch Ratings</Name><Place>Hong Kong</Place><Availability reliability="93%"/><Maintenance recovery_time="2" scheduled_outages="8" routine_maintenances="5"/><Backup solution="Softbackup" complete_backup_interval="72" incremental_backup_interval="24"
data_types="Log data" archiving_form="zip" client_access="true" backup_encryption="true" individual_client_backup="true"/></Server><Mutual>
<Service_schedule start="2002-08-13" end="2010-08-13"/><Performance>
<Service_time average="7.3" maximum="16.9" minimum="4.6"/><Service_rate>26.7</Service_rate>
</Performance><Clients>3056</Clients><Security data_protection="true" encryption_method="RSA" certificate="true"
user_authentication="true" intrusion_detection="true" virus_scanning="true" eavesdrop_prevention="true"/><Monitoring tracking_system="EHS Performance Tracking" report_method="XML"
report_frequency="24" reporting_on_demand="true" security_violations="true"/><Failure_clauses compensation="(100%-availability)*0.8" exclusion_clauses="routine
maintenances"/></Mutual>
</Service></Horizontal>
</SLAng>
ASP/SSP<?xml version="1.0" encoding="UTF-8"?><SLAng xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dave/TAPAS/SLAng0_4/SLAng0_4.xsd">
<Vertical><Persistence>
<Id sls_id="fgh812g" service_id="storage"/><Client>
<Name>EuroTelecom Connect</Name> <Place>Newark (UK)</Place>
<Users mean_number="18400" maximum_number="35000" arrival_rate="174.4"/> <Availability>99.6%</Availability>
</Client><Server>
<Name>Compaq.com</Name><Place>Houston, Texas</Place><Provision disk_space="400"/><Availability>97%</Availability><Reliability>90%</Reliability><Maintenance recovery_time="2" scheduled_outages="17" routine_maintenances="24"/><Query_response_time average="0.8" maximum="1.8" minimum="0.2"/><Data_integrity>97%</Data_integrity><Security encrypted_storage="true" encryption_method="DES" certificate="false" user_authentication="true"
intrusion_detection="true" virus_scanning="false" eavesdrop_prevention="true"/><Backup solution="CommVault" complete_backup_interval="48" incremental_backup_interval="12"
data_types="all" archiving_form="tar" client_access="true" backup_encryption="true" individual_client_backup="true"/><Monitoring tracking_system="RTS" report_method="XML" report_frequency="72"
reporting_on_demand="false" security_violations="false"/></Server><Mutual>
<Service_schedule start="2002-08-13" end="2005-08-13"/><Cpu_utilisation>75%</Cpu_utilisation><Memory_usage>80%</Memory_usage><Connection_entries>4967295</Connection_entries><Users>4294964225</Users><Failure_clauses compensation="(100%-availability)*2.8" exclusion_clauses="routine maintenances"/>
</Mutual></Persistence>
</Vertical></SLAng>
ASP/ISP<?xml version="1.0" encoding="UTF-8"?><SLAng xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dave/TAPAS/SLAng0_4/SLAng0_4.xsd">
<Vertical><Communication>
<Id sls_id="357BN" service_id="FracT3"/><Client>
<Name>EuroTelecom Connect</Name><Place>Newark (UK)</Place><Usage arrival_rate="14.2" MTU="1024" access_link_limitation="50%"/><Availability>99.6%</Availability>
</Client><Server>
<Name>EarthLink</Name><Place>Connecticut</Place><Maintenance recovery_time="1" scheduled_outages="6" routine_maintenances="12"/><Reliability downtime="20"/><Performance_guarantees delay="2.3" jitter="0.7" packet_loss="3.2%" bandwidth="512"/><Security firewall="true" firewall_system="NetBSD" user_authentication="true"
intrusion_detection="true" ipsec="true" eavesdrop_prevention="false"/><DiffServ_level>010100</DiffServ_level><Monitoring tracking_system="EHS Performance Tracking" report_method="XML
Document" report_frequency="3/week" reporting_on_demand="true" security_violations="true"/></Server><Mutual>
<Service_schedule start="2002-08-13" end="2004-08-13"/><Failure_clauses compensation="(100%-availability)*1.2" exclusion_clauses="Client caused
outages"/></Mutual>
</Communication></Vertical>
</SLAng>
Conclusion and future work
• SLAng can specify tier-specific horizontal and vertical SLAs between users and providers
• Easily extendable to increase expressivity• Modeling and reasoning about SLAs• Translating an SLA into a deployment descriptor• Monitoring compliance to SLA• Toolkit for service composition and analysis (assist
ASP in determining what SLSs they can undertake to meet)
Questions
?