Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Incorporate a Service Level Agreement into a Creative Commons license

Judith M. Myerson, Systems Engineer and Architect
Judith M. Myerson is a systems architect and engineer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, security, and project management. You can contact her at jmyerson@bellatlantic.net.
(An IBM developerWorks Contributing Author)

Summary:  Get examples of Service Level Agreement (SLA) values you can add to your applications and exceptions you can include in your SLAs. Take advantage of these techniques to make your intended usage clearer to people who use and mash up your application under a Creative Commons (CC) license.

Date:  10 Nov 2009
Level:  Intermediate PDF:  A4 and Letter (202 KB | 9 pages)Get Adobe® Reader®
Also available in:   Chinese  Korean

Activity:  2034 views
Comments:  

Introduction

In my article, "Supplement Creative Commons with open standards," (see Resources), I explained what the problems are with the proprietary Digital Rights Management (DRM) technology and suggested some solutions. I explained license and work properties you need to know when you select a license. I gave an example of a cross-browser menu of usage rights criteria, permissions, constraints, and requirements that the consumer can choose.

In my article, "Integrate ccREL into content," (see Resources), I explained how you can describe a Creative Commons license with ccREL. I showed you what the abstract model for ccREL is and what license types are available. I gave an example to show how you can integrate ccREL into content.

In this article, I'll cover incorporating SLAs into the code of either versions of RDF. Since License Wizard on the CC Web site has not migrated to RDF/XHTML from RFD/XML and has not included SLA elements of License property, the vocabulary for the SLA values needs to be hosted on another Web site. I'll show how to incorporate the values into an application using the RDF/XHTML version, which is more flexible than the RDF/XML version. I'll refer in the application to both the CC and W3C Web sites.

Work properties recap

Work properties are listed and described in Table 1. Note that dc and cc are prefixes to work properties to indicate the source of specification.


Table 1. Work properties
ValueDescription
cc:attributionNameSpecify the name to cite when giving attribution to work.
cc:attributionURLSpecify the URL when assigning attribution.
cc:deprecateOnIndicate the license has been deprecated on the given date.
dc:jurisdictionAssociate the license with a particular legal jurisdiction.
cc:legalCodeGive the corresponding legal text of the license.
cc:sourceAssociate the original source with a URI.
cc:morePermissionsPoint to a URL giving information on additional permissions beyond those specified in the CC license.
dc:titleSpecify the document's title.
dc:typeAssociate the original source as a URI.

Add SLA values

To incorporate the SLA values into the CC licenses, I add them to work properties, as shown in Table 2. I assign SLA as the arbitrary prefix in the extended work properties to indicate the source of specification to describe the SLA in RDF. The SLA values are not yet part of either CC schema or Dublin Core vocabulary, so it is a good time to experiment with what values we should have in the SLA vocabulary.


Table 2. Extended work properties
ValueDescription
sla:titleSpecify the SLA's title.
sla:providerSpecify the name of the service provider of the SLA.
sla:valuesSpecify the SLA values.
sla:providerURLSpecify the URL of the service provider.
sla:valuesURLSpecify the URL when assigning SLA values.
sla:documentURLSpecify the URL of the SLA document.
sla:serviceCreditSpecify the availability percentage with monthly service credit.
sla:serviceCreditURLSpecify the URL of the availability percentage with monthly service credit.
sla:terminatedOnIndicate the SLA has been terminated on the given date.
sla:terminatedOnURLSpecify the URL of the Termination Notice of the SLA.
sla:legalTextPoint to the corresponding legal text of the SLA.

Application example

Listing 1 shows how to add the SLA values to an application. Line 7 defines the location of the SLA information. Further down, the links containing property="sla:[some value]" provide information pertaining to the SLA. The URL sources I assign are arbitrary.


Listing 1. Custom HTML code
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:biblio="http://examplebook.org"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://www.w3.org/2002/12/cal/ical#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sla="http://www.sla1.com/sla#">

<head>
<title>Judith M. Myerson's Stuff</title>
</head>
<body>
<p typeof="biblio:RFID">

<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/us/">
<img alt="CC License" style="border-width:0" 
  src="http://i.creativecommons.org/l/by-nc-nd/3.0/us/88x31.png" ></a><br />
<span  href="http://purl.org/dc/dcmitype/Text" property="dc:title" 
  rel="dc:type">RFID in the Supply Chain</span>by 
<a  href="www.ibm.com" property="cc:attributionName" 
  rel="cc:attributionURL">Judith Myerson</a> is licensed under a 

<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/3.0/us/">
  CC Attribution-Noncommercial-No Derivative Works 3.0 United States License</a>.

Based on a work at <a  href="www.source.com" 
  rel="dc:source">www.source.com</a>.<br/>

This license is guaranteed uptime availability by 
<a property="sla:providerName" rel="sla:providerURL"
 href="http://www.sla1.com/provider"> SLA Provider</a>

as specified in 
<a property="sla:title" rel="sla:documentURL" href="http://www.sla1.com/document">
SLA Document</a>

You can look up sla values in 
<a property="sla:values" rel="sla:valuesURL" href="http://www.sla1.com/slavlues">
SLA Values</a>

This SLA is available in rel="sla:legalText" href="http://www.sla1.com/legaltext"> 
Legal text</a>

Permissions beyond the scope of this license may be available at 
  <a href="www.morepermissions.com"   rel="cc:morePermissions">www.morepermissions.com</a>

<a rel="cc:legalcode" href="http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode"/>
  Legal Code</a>
<br/>
<span property="cal:dtstart" content="2008-11-16T16:00:00-05:00" datatype="xsd:dateTime">
November 16, 2008 at 4:00 PM </span>
</p>.
</p>
</body>
</html>


         

You can add a style sheet to the code. When you test it, click on the license icon button or on the license title to get information on what license applies.

More or less exceptions

By including exceptions in a SLA, a service provider can protect itself from liability in case of, for example, failures, network outages, scheduled maintenance, and other network issues not within direct control of the provider. On the other hand, if competing services offer SLAs with fewer exceptions, the client has the option of choosing those agreements that offer more uptime in business operations with better service guarantees. Even the differences among 99.5%, 99.9%, and 99.999% uptime availability guarantees can influence the decision makers in making the selection of a SLA. Here are some exceptions that can be potentially included in a SLA.


Table 3. Exception examples
ValueDescription
FailuresHardware failure (not that faulty hardware is rare);
Telecommunication failure (for example, a provider accidentally cuts a fiber line);
Software bugs/flaws;
Monitoring/measurement system failure
Network issues not within direct control of the service providerBackbone peering point issues (for example, planned downtime of a router in California, denying Internet services to the entire West coast);
DNS issues not within the direct control of the service provider
Denial of serviceClient negligence/willful misconduct;
Network floods, hacks, and attacks;
Acts of God, war strikes, unavailability of telecommunications, inability to get supplies or equipment needed for the provision of the SLA
Scheduled maintenanceHardware upgrades;
Software upgrades;
Backups

Give service credits

While the target uptime for the service is usually 99.9% or above each month, the service provider should specify that the customer is entitled to receive a credit for operating below 99.9% service level in the time frame of two months in accordance with the schedule below. The customer can deduct the credit from amounts payable to the service provider only if 20% of the users are affected by degraded performance of uptime availability.

For example, the customers get 10% monthly service credit if guaranteed service time falls between 99.40% and 99.70% of the uptime availability. Likewise, the customers get 30% monthly service credit if guaranteed service time falls between 98.00% and 99.00% of the uptime availability. The greatest monthly service credit the customers can get is 60% if guaranteed service time falls to 95% of the uptime availability.


Table 4. Service credits
Availability percentageMonthly service credit
99.40 - 99.7010%
99.00 - 99.4020%
98.00 - 99.0030%
97.00 - 98.0040%
96.00 - 97.0050%
95.00 - 96.0060%

Add credit options

Listing 2 shows how easy it is to add a range of service credits in your application.


Listing 2. Service credits
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:biblio="http://examplebook.org"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://www.w3.org/2002/12/cal/ical#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sla="http://www.sla1.com/sla#">
.
.
This license is guaranteed uptime availability by <a property="sla:providerName" 
  rel="sla:providerURL" href="http://www.sla1.com/provider"> SLA Provider</a>

as specified in <a property="sla:title" rel="sla:documentURL" 
  href="http://www.sla1.com/document">SLA Document</a>

You can look up SLA values in <a property="sla:values" rel="sla:valuesURL" 
  href="http://www.sla1.com/slavlues">SLA Values</a>

This SLA is available in <a rel="sla:legalText" href="http://www.sla1.com/legaltext">
  Legal text</a>

<a property="sla:ServiceCredit" rel="sla:serviceCreditURL" 
  href="http://www.sla1.com/servicecredit">Monthly Service Credit</a>

<table>
			
<tr>
<th scope="col">Availability percentage</th>
<th scope="col">Monthly service credit</th>
</tr>

<tr>
<th scope="row" align="left">99.40 - 99.70</th>
<td>10%</td>
</tr>


<tr>
<th scope="row" align="left">99.00 - 99.40</th>
<td>20%</td>
</tr>

<tr>
<th scope="row" align="left">98.00 - 99.00</th>
<td%gt30%</td>
</tr>

<tr>
<th scope="row" align="left">97.00 - 98.00</th>
<td>40%</td>
</tr>

<tr>
<th scope="row" align="left">96.00 - 97.00</th>
<td>50%</td>
</tr>

<tr>
<th scope="row" align="left">95.00 - 96.00</th>
<td>60%</td>
</tr>

%lt;/table>
.
.

</html>




Termination notice

If the actual availability for any three-month period is less than 98%, the customer has the right to terminate the SLA for breach of contract. If the actual availability for any three-month period is less than 95%, the service provider has the right to give a notice within a reasonable time that it will terminate the agreement and may suggest an alternate service provider.

If the customer cannot wait for three months for the service provider to terminate the agreement, then it must be allowed after, for example, two months, to send a termination request to the provider without incurring penalties. The service provider then sends the termination notice to the customer.

In either case, the termination notice must be coded in your application like this:


Listing 3. Termination notice
This SLA was terminated on

<a property="sla:terminatedOn" rel="sla:termiantedOnURL" 
  href="http://www.sla1.com/terminated">Feb 23 2009</a>


Interruption thresholds

Giving service credits for performance below the guaranteed server level may not be enough. If the time gap is large, interruption thresholds can reach the level at which they can cause an adverse impact on service guarantee. It is important to include the thresholds as a performance indicator when the uptime availability will be less than the guaranteed time.

Let's suppose you have 10 interruptions and have been quickly reconnected on a very high-speed wireless network. You may still be able to maintain a 99.9% uptime availability guarantee while downloading a Digital Rights Management (DRM) service for viewing on your display or storing on your hard disk drive. But suppose you have 11 interruptions. The uptime availability may start to go below the guaranteed availability. This is the point where the communication lines are not able to quickly reconnect. The music being downloaded may sound like it is hiccuping. The mouse seems to get stuck in one spot as you try to move it.

This is where the service provider needs to determine what the interruption thresholds are on different network speeds. The acceptable interruption threshold for a high-speed network may not be acceptable for a low-speed network.

An e-mail alert could be sent to the service provider when the interruption threshold approaches its maximum for a guaranteed service level. Then the service provider can fix the problem in real time before the availability uptime begins to go below the guaranteed service level.

From IPv4 to IPv6

Since we are running out of IPv4 addresses, we are transitioning to IPv6 which provides us with a much greater range of addresses. For this reason, we need to include the information in the SLA regardless of whether we are using dual networks during the transition. If we are using dual networks, the SLA should specify for IPv4 and IPv6 what service credit we should assign for each item of the availability percentage range and what interruption threshold maximum we should set for each item of the range.

Conclusion

This article helps you plan ahead to incorporate a SLA into a CC license. Users' demands for guaranteed service levels in the SLA present a challenge for creators, licensors, copyright holders, and service providers. Creating applications that include the properties of SLA values and point to the source of specifications in the license can make your development team's and users' experiences trouble free.


Resources

About the author

developerWorks Contributing author level

Judith M. Myerson is a systems architect and engineer. Her areas of interest include middleware technologies, enterprise-wide systems, database technologies, application development, network management, security, and project management. You can contact her at jmyerson@bellatlantic.net.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Web development
ArticleID=446295
ArticleTitle=Incorporate a Service Level Agreement into a Creative Commons license
publish-date=11102009