<?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=SoaML_-_Planning_for_Implementation</id>
	<title>SoaML - Planning for Implementation - 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=SoaML_-_Planning_for_Implementation"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=SoaML_-_Planning_for_Implementation&amp;action=history"/>
	<updated>2026-04-22T22:11:19Z</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=SoaML_-_Planning_for_Implementation&amp;diff=21411&amp;oldid=prev</id>
		<title>Bernard Szlachta at 14:56, 28 August 2014</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=SoaML_-_Planning_for_Implementation&amp;diff=21411&amp;oldid=prev"/>
		<updated>2014-08-28T14:56:13Z</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|SoaML|SoaML3}}&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
[[File:ServicesArchitecture and Wrappers.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Participant Architecture ==&lt;br /&gt;
* The example below illustrates the participant services architecture for a particular “Franchisee”.&lt;br /&gt;
* It indicates that this architecture consists of a number of other participants interacting through service contracts.&lt;br /&gt;
&lt;br /&gt;
* Other Franchisees may have different internal participant architectures but will have the same responsibilities and interfaces in the services architecture&lt;br /&gt;
* Separating the concerns of the “inside” Vs. the “outside” is central to SOA and good architecture in general&lt;br /&gt;
&lt;br /&gt;
* The services architecture in the example is the architecture for a specific Franchisee (NobleProg UK Ltd), realizing the requirements of Franchisee in general&lt;br /&gt;
* Note that the roles “outside” of the Franchisee are indicated by the roles with green colour (:MasterFranchisee) where as the roles played by entities within NobleProg UK Ltd are normal roles&lt;br /&gt;
* The net effect is that services architectures may be used to specify how system and systems of systems work “all the way down”.&lt;br /&gt;
* These architectures can then be realized by any number of technology components.&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
# Design a Manufacture architecture&lt;br /&gt;
&lt;br /&gt;
== Wrappers (Adapters) ==&lt;br /&gt;
* Adapter pattern joins top-down and bottom-up services&lt;br /&gt;
* These adapters may be created automatically or manually&lt;br /&gt;
* Adaptation is used where a “bottom up” interface is provided but is overly coupled with the supporting technology&lt;br /&gt;
* A top-down “enterprise service” is defined to be more general and less coupled&lt;br /&gt;
&lt;br /&gt;
* Xero exposes certain interfaces, but they cannot work directly with the FinancialModule&lt;br /&gt;
* Franchisees should be able to change their accounting system provider as well as in Germany or Poland franchisees use different accounting systems&lt;br /&gt;
* The FinacialAdapter decouples Xero from the FinancialModule&lt;br /&gt;
&lt;br /&gt;
== Capabilities ==&lt;br /&gt;
&lt;br /&gt;
[[File:SoaML Capabilities.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Use Capabilities when:&lt;br /&gt;
* the abstract Participants are not know&lt;br /&gt;
* you want to specify the behavior of a service or capability that will realize or implement a ServiceInterface&lt;br /&gt;
* want to map existing system to plan adapters in order to match the architecture&lt;br /&gt;
* you want to communicate the needs and capabilities of a service area&lt;br /&gt;
&lt;br /&gt;
 Capabilities represent an abstraction of the ability to affect change.&lt;br /&gt;
 Capabilities identify or specify a cohesive set of functions or resources &lt;br /&gt;
 that a service provided by one or more participants might offer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Each Capability may have owned behaviors that are methods of its provided Operations&lt;br /&gt;
* These methods would be used to specify how the Capabilities might be implemented, and to identify other needed Capabilities&lt;br /&gt;
* Alternatively, ServiceInterfaces may simply expose Capabilities of a Participant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Usage dependencies&amp;#039;&amp;#039;&amp;#039; shows how these capabilities are related&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Capability realizing ServiceInterface&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Capabilities can be used to specify the behavior and structure necessary to support a ServiceInterface&lt;br /&gt;
* Capability allows for the specification of a service without regard for how that service might be implemented and subsequently offered to consumers by a Participant&lt;br /&gt;
* It allows architects to analyze how services are related and how they might be combined to form some larger capability prior to allocation to a particular Participant.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Capabilities  realized by a Participant&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* When that Capability itself realizes a ServiceInterface, that ServiceInterface will normally be the type of a Service on the Participant&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Capabilities specifying parts of Participants&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* The capabilities the participant has to actually provide its services&lt;br /&gt;
* The CourseOutlinePush ServicePoint delegates requests to the &amp;#039;&amp;#039;cosm_us&amp;#039;&amp;#039; part that is typed by the CourseOutlineSynchronizationModule Capability&lt;br /&gt;
* This would normally indicate that the CourseOutlineSynchornizationModule realizes the CourseOutlinePush ServiceInterface.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ServiceInterfaces exposes Capabilities&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Done with the Expose Dependency&lt;br /&gt;
* Can be used as the inverse of a Realization between a Capability and a ServiceInterface it realizes&lt;br /&gt;
* Can be used to represent a means of identifying candidate services or a more general notion of “providing access” to a general capability of a Participant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exercises ===&lt;br /&gt;
# Connect following capabilities with usage dependency: OrderProcessing, Invocing, Shipping&lt;br /&gt;
# Draw a diagram, where a Capability Shipping interface realizes ShippingService &amp;lt;&amp;lt;ServiceInterface&amp;gt;&amp;gt; which have &amp;#039;&amp;#039;requestShipping&amp;#039;&amp;#039; operation.&lt;br /&gt;
# To the diagram describe in the above exercises (no 2), add a Shipper participant which realizes Shipping Capability&lt;br /&gt;
## Make sure that you type the Shipper participant port with appropriate ServiceInterface&lt;br /&gt;
# Add to the Shipper participant a part typed with Shipping capability and draw the delegate from the participant port&lt;br /&gt;
# Draw an &amp;quot;Expose&amp;quot; dependence between &amp;#039;&amp;#039;Sales and Marketing&amp;#039;&amp;#039; capability and Orders service interface.&lt;/div&gt;</summary>
		<author><name>Bernard Szlachta</name></author>
	</entry>
</feed>