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 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
| Value | Description |
|---|---|
| cc:attributionName | Specify the name to cite when giving attribution to work. |
| cc:attributionURL | Specify the URL when assigning attribution. |
| cc:deprecateOn | Indicate the license has been deprecated on the given date. |
| dc:jurisdiction | Associate the license with a particular legal jurisdiction. |
| cc:legalCode | Give the corresponding legal text of the license. |
| cc:source | Associate the original source with a URI. |
| cc:morePermissions | Point to a URL giving information on additional permissions beyond those specified in the CC license. |
| dc:title | Specify the document's title. |
| dc:type | Associate the original source as a URI. |
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
| Value | Description |
|---|---|
| sla:title | Specify the SLA's title. |
| sla:provider | Specify the name of the service provider of the SLA. |
| sla:values | Specify the SLA values. |
| sla:providerURL | Specify the URL of the service provider. |
| sla:valuesURL | Specify the URL when assigning SLA values. |
| sla:documentURL | Specify the URL of the SLA document. |
| sla:serviceCredit | Specify the availability percentage with monthly service credit. |
| sla:serviceCreditURL | Specify the URL of the availability percentage with monthly service credit. |
| sla:terminatedOn | Indicate the SLA has been terminated on the given date. |
| sla:terminatedOnURL | Specify the URL of the Termination Notice of the SLA. |
| sla:legalText | Point to the corresponding legal text of the SLA. |
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.
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
| Value | Description |
|---|---|
| Failures | Hardware 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 provider | Backbone 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 service | Client 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 maintenance | Hardware upgrades; Software upgrades; Backups |
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 percentage | Monthly service credit |
|---|---|
| 99.40 - 99.70 | 10% |
| 99.00 - 99.40 | 20% |
| 98.00 - 99.00 | 30% |
| 97.00 - 98.00 | 40% |
| 96.00 - 97.00 | 50% |
| 95.00 - 96.00 | 60% |
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> |
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> |
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.
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.
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.
- Read Judith's article, "Supplement Creative Commons with open standards," on
developerWorks (Jan 2009).
- Read Judith's article, "Integrate
ccREL into the content," on developerWorks (Jul 2009).
- Read more about ccREL: The
Creative Commons Rights Expression Language (PDF) and RDFa in XHTML: Syntax and
Processing.
- Browse Judith M. Myerson's series, Use SLAs in a Web services context, for more details on SLAs.
- Read "Tight coupling Web services in the SOA" (developerWorks, Jan 2008).
- Check out My
developerWorks: Find or create groups, blogs, and
activities about Web development or anything else that
interests you.
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.



