Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
Planning_and_Impleme.. - didier beck weblog
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Planning</strong> <strong>and</strong> <strong>Impleme</strong>nting SOA<br />
www.butlergroup.com<br />
<br />
<br />
Not st<strong>and</strong>ardising SOA – this is especially relevant for larger organisations, where a number of different<br />
projects running in parallel could result in very differently designed services that cannot then be<br />
integrated or composed in the future. A way to overcome this would be to have a single proof-of-concept<br />
project to establish good practices that can then be spread throughout the organisation on future<br />
projects. Similar services may be developed in different regions of the organisation because information<br />
is not being shared. This will occur for organisational <strong>and</strong> political reasons but should be minimised by<br />
good governance.<br />
Not underst<strong>and</strong>ing SOA performance requirements – SOA is likely to introduce multi-layered processing,<br />
<strong>and</strong> certainly when Web services are used, there is a deep dependence on XML data representation. This<br />
can cause performance issues unless hardware is scaled appropriately <strong>and</strong> performance is considered at<br />
design time.<br />
One of the first<br />
essentials will be to<br />
set up the<br />
organisational<br />
structures in people<br />
terms to ensure good<br />
management <strong>and</strong><br />
governance.<br />
Some of these issues can be overcome by good design, but a sound<br />
management <strong>and</strong> governance capability should be planned in from an early<br />
stage to avoid these issues.<br />
One of the first essentials will be to set up the organisational structures in<br />
people terms to ensure good management <strong>and</strong> governance. Who (as in ‘what<br />
department’, as well as ‘what role’) should be responsible for monitoring,<br />
defining, <strong>and</strong> authorising changes to existing services that will exist within an<br />
organisation? Some kind of internal governing body should be set up to take<br />
on this responsibility. However, there are alternative models – central <strong>and</strong><br />
distributed.<br />
With central governance, the body should have representation from each of<br />
the areas that are affected by services (both technical <strong>and</strong> business, including<br />
subject matter experts), <strong>and</strong> it will be wise to have an independent arbitration<br />
function as well to help resolve issues. This governing body will then review<br />
proposed new services, approve the removal of unused services, <strong>and</strong> where<br />
appropriate, changes to existing services.<br />
A distributed<br />
governance approach<br />
would involve each<br />
business unit having<br />
its own body to<br />
monitor services that<br />
are relevant to that<br />
business unit.<br />
A distributed governance approach would involve each business unit having<br />
its own body to monitor services that are relevant to that business unit. This<br />
is likely to be more appropriate for a highly distributed organisation that<br />
already has autonomous management. Whichever model is suitable (<strong>and</strong> a<br />
mixed model may be appropriate), the role of the governing body is to define good practices <strong>and</strong> st<strong>and</strong>ards<br />
for services, including the architectural <strong>and</strong> procedural guidelines for their use, <strong>and</strong> to oversee their<br />
deployment.<br />
Some of the key questions that arise around SOA management <strong>and</strong> governance include:<br />
Who has access to services?<br />
Who is allowed to create them?<br />
How do you write new versions of that same service?<br />
What happens when they are updated?<br />
What are the rules <strong>and</strong> polices around upgrades?<br />
Good metadata management is also a key part of successful SOA. Defining the st<strong>and</strong>ards to be used, for<br />
example for different data elements (such as in identifying a customer, which may have a customer ID for<br />
internal use to uniquely identify a customer, <strong>and</strong> a customer login ID which is used by the customer to<br />
access a service) is important. The data dictionary concept beloved by mainframe systems is actually a<br />
highly beneficial model – providing clear <strong>and</strong> accessible information about what data is, <strong>and</strong> how it should<br />
be used within the organisation. Where services cross organisational boundaries, it will be necessary to then<br />
use agreed st<strong>and</strong>ards (such as Electronic Data Interchange (EDI) st<strong>and</strong>ards, Interactive Financial Exchange<br />
(IFX) st<strong>and</strong>ards, <strong>and</strong> so on).<br />
14 Section 1: SOA Deployment<br />
December 2006