<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Service</id>
	<title>Service - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=Service"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Service&amp;action=history"/>
	<updated>2026-04-14T23:41:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=Service&amp;diff=7244&amp;oldid=prev</id>
		<title>Izabela Szlachta at 18:44, 8 November 2012</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=Service&amp;diff=7244&amp;oldid=prev"/>
		<updated>2012-11-08T18:44:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Cat|SOA|20}}&lt;br /&gt;
{{Soa Links}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;The OASIS SOA Reference Model states:&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The noun “service” is defined in dictionaries as “The performance of work (a function) by one for another.”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Service in SoaML ==&lt;br /&gt;
A Service represents a feature of a Participant that is the offer of a service by one participant to others using well defined terms, conditions and interfaces.&lt;br /&gt;
&lt;br /&gt;
[[File:Soa-service-soaml.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Contract ==&lt;br /&gt;
*The complete description of a service from a consumer’s point of view (signature and semantics) is called a “well-defined interface” or “contract.” &lt;br /&gt;
*A contract is agreed individually between a certain provider, and a certain consumer, and usually includes nonfunctional aspects such as SLAs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== SLA ==&lt;br /&gt;
*ABA (Abandonment Rate): Percentage of calls abandoned while waiting to be answered&lt;br /&gt;
*ASA (Average Speed to Answer): Average time (usually in seconds) it takes for a call to be answered by the service desk.&lt;br /&gt;
*TSF (Time Service Factor): Percentage of calls answered within a definite timeframe, e.g. 80% in 20 seconds.&lt;br /&gt;
*FCR (First Call Resolution): Percentage of incoming calls that can be resolved without the use of a callback, or without having the caller call back the helpdesk to finish resolving the case.&lt;br /&gt;
*TAT (Turn Around Time): Time taken to complete a certain task.&lt;br /&gt;
*Uptime&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ServiceContract in SoaML ==&lt;br /&gt;
[[File:Soa-servicecontract.png|300px]]&lt;br /&gt;
&lt;br /&gt;
*A ServiceContract is the formalization of a binding exchange of information, goods, or obligations between parties defining a service.&lt;br /&gt;
*A ServiceContract is the specification of the agreement between providers and consumers of a service as to what information, products, assets, value and obligations will flow between the providers and consumers of that service – it specifies the service without regard for realization, capabilities or implementation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Services and Business Functionality==&lt;br /&gt;
*Services Represent Business Functionality&lt;br /&gt;
*SOA is focused on business processes&lt;br /&gt;
*“natural” step of business functionality&lt;br /&gt;
*self-contained (explained later)&lt;br /&gt;
*business people should be able to understand what a service does &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces and Contracts==&lt;br /&gt;
*Service is an interface for messages that return information and/or change the state of an associated entity (backend)&lt;br /&gt;
*“interface-oriented architecture.”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Interfaces in SoaML==&lt;br /&gt;
*Provides the definition of a service. &lt;br /&gt;
*Defines the specification of a service interaction as the type of a «Service» or «Request» port.&lt;br /&gt;
&lt;br /&gt;
[[File:Soa-interfaces-soaml.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Business vs Technically Driven Interfaces==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Technically Driven Interfaces&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  customerOP(action,  // &amp;quot;create&amp;quot;, &amp;quot;read&amp;quot;, &amp;quot;change&amp;quot;, &amp;quot;delete&amp;quot;&lt;br /&gt;
           id,      // customer id or null&lt;br /&gt;
           name,    // new customer name or null&lt;br /&gt;
           address, // new customer address or null&lt;br /&gt;
           account) // new customer bank account or null&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Business Driven Interface&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  createCustomer(name,    // new customer name&lt;br /&gt;
               address, // customer address&lt;br /&gt;
               account) // customer bank account&lt;br /&gt;
  readCustomer(id)        // customer id&lt;br /&gt;
  changeCustomerAccount(id,      // customer id&lt;br /&gt;
                      account) // new customer bank account&lt;br /&gt;
  changeCustomerAddress(id,      // customer id&lt;br /&gt;
                      address, // new customer address&lt;br /&gt;
                      check,   // true: verify address&lt;br /&gt;
                      modify)  // true: fix address if possible&lt;br /&gt;
  deleteCustomer(id)      // customer id&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Service Attributes==&lt;br /&gt;
*Do services have to be stateless?&lt;br /&gt;
*Do they have to be implemented as Web Services?&lt;br /&gt;
*Should they be coarse-grained and/or composable?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Coarse-Grained==&lt;br /&gt;
*Services are abstractions that hide implementation details from the consumers&lt;br /&gt;
*The price for the abstraction is performance&lt;br /&gt;
*There is no clear definition of “coarse-grained” service&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Visible/Discoverable==&lt;br /&gt;
*Services must be searchable&lt;br /&gt;
*Usually there is some kind of catalogue and taxonomy (see UDDI) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Stateless==&lt;br /&gt;
There is always some state involved&lt;br /&gt;
*Technical state&lt;br /&gt;
*Business state&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Idempotent==&lt;br /&gt;
*Whether we can call the service many times (for example in case of no response) without risking doing the thing twice&lt;br /&gt;
*Idempotency is the ability to redo an operation if you are not sure whether it was completed&lt;br /&gt;
*Changing status function may be ideponent&lt;br /&gt;
*SwitchStatus() versus setActive()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reusable==&lt;br /&gt;
*Avoiding redundancy is a general goal of software development&lt;br /&gt;
*Ideally each functionality should be implemented only once&lt;br /&gt;
*It may cause performance issue&lt;br /&gt;
*As a result, reusability may be a goal, but not a rule&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Composable==&lt;br /&gt;
*Services can use/call other services&lt;br /&gt;
*Discussed further in BPM section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other attributes==&lt;br /&gt;
*Technical (reusing the infrastructure)&lt;br /&gt;
*QoS- and SLA-Capable&lt;br /&gt;
*Pre- and Post-Conditions&lt;br /&gt;
*Vendor-Diverse&lt;br /&gt;
*Interoperable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
*What does the “well-defined interface” or “contract” contain?&lt;br /&gt;
*What does a typical SLA contain?&lt;br /&gt;
*What does it mean composable?&lt;br /&gt;
*What does it mean idempotent?&lt;/div&gt;</summary>
		<author><name>Izabela Szlachta</name></author>
	</entry>
</feed>