tag:blogger.com,1999:blog-3724309508455429682024-02-21T02:41:16.536+00:00Lawrence Wilkes on SOA, EA, AM and CCCommentary on Service Oriented Architecture, Enterprise Architecture, Application Modernization, Cloud Computing and Enterprise MobilityLawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.comBlogger51125tag:blogger.com,1999:blog-372430950845542968.post-69024834648544010542013-05-22T11:36:00.003+01:002013-05-23T12:20:43.718+01:00Connected Architecture for the Creative EconomySteve Denning’s insightful blog post <a href="http://www.forbes.com/sites/stevedenning/2013/05/01/leadership-in-the-three-speed-economy/" target="_blank">‘Leadership In The Three-Speed Economy’</a> has me pondering on the correlation with IT. Does ‘IT in the Three-Speed Economy’ follow a similar pattern?<br />
<br />
I am not sure it is cut and dried. My experience suggests that IT can be
like the example of GE that Steve provides, where all three economies
can exist in the same organization and where pockets of creative IT
thinking exist within the morass of traditionalism. That said, IT in
most Traditional Economy organizations will probably follow the pattern
in the table below.<br />
<a name='more'></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRHQSlFSd1P5jv6EtXFumM7GtK0-6rCjqBCsMQ0U5giQG09JGtgVSDNgdzzVve8k8VcUPxd4mcl8IXh9GmmHRAlLmG1KkWPHZieI1IfzqjVBnWcCzHSzDdVqtGS-LSuMWUIGx6feEueQc/s1600/itatse1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRHQSlFSd1P5jv6EtXFumM7GtK0-6rCjqBCsMQ0U5giQG09JGtgVSDNgdzzVve8k8VcUPxd4mcl8IXh9GmmHRAlLmG1KkWPHZieI1IfzqjVBnWcCzHSzDdVqtGS-LSuMWUIGx6feEueQc/s400/itatse1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Table 1: Traditional vs Creative Economy IT</td></tr>
</tbody></table>
Enterprise Architecture is likely to be found at the heart of Denning’s Traditional Economy organization. Command and Control by a centralized organization attempting to exert strong governance over projects in an attempt to drive down cost. If it moves, outsource it, if it doesn’t, standardize it.<br />
<br />
Whereas the Creative Economy organization operates on a federated basis, with minimal governance only covering the core than needs to be common and the interfaces between participants, whilst adopting a laissez faire approach to the rest.<br />
<br />
The focus in the Creative Economy is on enabling innovation and creating business value through IT, where IT can be monetized for profit. Is it any coincidence that Denning identifies firms like Apple, Amazon, and Salesforce as being prominent firms in the Creative Economy? Well let’s hold that thought and return to it later.<br />
<br />
<h4>
Connected Architecture</h4>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
In my recent post on <a href="http://lwsoa.blogspot.co.uk/2013/02/connected-architecture-for-connected.html" target="_blank">connected architecture</a>, I suggested that there is no one architectural ‘style’ that encompasses everything that is required to deliver solutions for the connected planet, and that it is a mistake for architects to try and force fit whatever is their ‘pet’ approach or the hot topic of the day. <br />
Similarly, solutions for the Creative Economy are not cloud- or mobile-based solutions, or SOA-based solutions, and so on, but as shown in figure 1 require connection and collaboration between all of these worlds.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyILqJxnCD_sI4lSwuVpPjweeIzJvgdgiMZ0zTGyyQ4RbtRAM79WP4Xf4Qyc2jkve3F-Eqa0cGFO3yevaJqaA0XykGLMVlkG4ygvhTc5UokbAe1uxO37M0PwYaQHqi36cOMY0-WZgnR1U/s1600/ofd1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyILqJxnCD_sI4lSwuVpPjweeIzJvgdgiMZ0zTGyyQ4RbtRAM79WP4Xf4Qyc2jkve3F-Eqa0cGFO3yevaJqaA0XykGLMVlkG4ygvhTc5UokbAe1uxO37M0PwYaQHqi36cOMY0-WZgnR1U/s400/ofd1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1: Overlapping Federated Domains in a Connected Architecture</td></tr>
</tbody></table>
<br />
Hence, there should be no reason for enterprise architects to try to build some über model that spans all these worlds. Rather, as suggested earlier a federated architecture is required that focuses on the way these worlds connect and only standardizes the common core.<br />
<br />
<h4>
The Collaboration Core</h4>
<h4>
</h4>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg325-a7bKXQNe3Oh3FbTsHlNloY98dYomNspT8497ojKGjhpi6bAB2QMFJRxLSr-L3hODKHGDN9rKnNBaYkfVhnni2vDosWh1mSLfcqgTyuy4VlJxEn4BXP4tMGnTKtGjh4yf50VeqbW8/s1600/fcc1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg325-a7bKXQNe3Oh3FbTsHlNloY98dYomNspT8497ojKGjhpi6bAB2QMFJRxLSr-L3hODKHGDN9rKnNBaYkfVhnni2vDosWh1mSLfcqgTyuy4VlJxEn4BXP4tMGnTKtGjh4yf50VeqbW8/s400/fcc1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 2: Federation and Collaboration Core</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
So, what is at the core? As figure 2 illustrates, federation needs be considered from two perspectives. As discussed, there are the various federated domains, but also the federated projects that utilize the core assets.<br />
<br />
Arguably, for creativity to flourish then even the core doesn’t need to be common if business value can be demonstrated. However, it is important to note that the core isn’t necessarily an organization’s core, but that of an ecosystem. The federated projects are responsible as either the service and platform providers or as the consumers that together collaborate in an ecosystem. These may be either internal or external to the organization.<br />
<br />
Hence the core is an ecosystem view of,<br />
<ul>
<li>The services that enable each participant to connect and collaborate. Clearly participants need to agree on these services. However, that doesn’t stop a dominant participant dictating the nature of the service, just as long as the others ‘agree’ to use it.</li>
<li>The platform on which the services ‘operate’ (and here I use platform in a business, not just a technical sense. As in the ‘Amazon Platform’). As discussed in the Connected Architecture post, the concept of platform is key, as the ecosystem will often form around the platform and its provider.</li>
</ul>
<br />
<h4>
Transitioning to Creative Economy</h4>
The challenge for Traditional Economy organizations is to transition to a creative one. Of course that is easier said than done. However, it might be easier for IT to at least do its part.<br />
<br />
As highlighted in the earlier table, even in Traditional Economy organizations there is often considerable resistance to Enterprise Architecture. That said, the resistance often isn’t due to a desire to transition to the Creative Economy, rather just a desire of the stakeholders to exert their own control rather than yield to central IT’s. Moreover, it is often the case that such projects are very solution oriented and simply want to be self-sufficient in order to maximise control, and that is why they resist EA. Hence, project ‘independence’ is in itself not an indicator of membership of the Creative Economy.<br />
<br />
<h4>
Hybrid Architecture</h4>
Can you plan or ‘architect’ your way into the Creative Economy? That sounds like the antithesis of what is needed. But you can plan and architect a framework that is an enabler of innovation rather than a constraint upon it.<br />
<br />
So is it a case of out with the old – Enterprise Architecture - and in with the new – Connected and Federated Architecture? As I said at the beginning, I don’t believe it quite so cut and dried.<br />
<br />
Adopting a laissez faire approach might encourage innovation, but it can also result in duplication and waste. Does that matter as long as business value is being derived?<br />
<br />
Earlier I asked whether it was any coincidence that Denning identifies firms like Apple, Amazon, and Salesforce as being prominent firms in the Creative Economy? Does that mean they have eschewed Enterprise Architecture? Well in Amazon’s case, Dr. Werner Vogels (CTO) talks in an <a href="http://www.informationweek.co.uk/global-cio/interviews/qa-amazon-cto-werner-vogels/212501404" target="_blank">interview </a> about using Enterprise Architecture as a means to look across their business and identify their shared services platform and reduce infrastructure duplication. But the result is still more akin to figure 2, with service and platform at the Amazon core.<br />
<br />
So why not strive for the best of both? A hybrid architecture that enables innovation, but minimizes duplication and waste.<br />
<br />
It is not Enterprise Architecture per se that must be eschewed in the Creative Economy, it is more the style in which it is pursued. What is required is Enterprise Architecture that takes an ecosystem-wide view. Enterprise Architecture that identifies and focuses on what is common and core, and facilitates innovation elsewhere.<br />
<br />
And Enterprise Architects by their very nature are often still the people best placed to make sense of what is going on across their enterprise and the ecosystem(s) it operates in. But they should be willing to forego command and control role in return.<br />
<br />
* Update. I revised this post following feedback from <a href="https://twitter.com/tetradian" target="_blank">Tom Graves </a>that my portrait of EA looked like EA "School 1", as described by Jamie Lapalme in his <a href="http://www.linkedin.com/pub/james-lapalme/6/5b3/b83" target="_blank">Three Schools of EA</a>. I agree with Tom, and so have revised Table 1 accordingly, and suggest that the architecture paradigm for the Creative Economy is "School 3b" as defined by Richard Veryard in his blog on <a href="http://rvsoapbox.blogspot.co.uk/2011/12/three-or-four-schools-of-enterprise.html" target="_blank">"Three or Four Schools of Enterprise Architecture"</a>.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-54028838681739527092013-05-20T14:48:00.001+01:002013-05-21T09:15:05.915+01:00The Solution and Service Architecture RelationshipWhilst we might have a particular specialization at <a href="http://www.everware-cbdi.com/home" target="_blank">Everware-CBDI</a> in all things SOA, most of the system integration/delivery projects we are engaged on are still solution focused. The delivery of services, organized into a service architecture may be central to the solutions we deliver, and the reason for our engagement, but the end result is still a solution in the conventional IT sense.<br />
<br />
Following the recent delivery of a solution architecture class, I produced a new eLearning module for our <a href="http://www.everware-cbdi.com/sapels" target="_blank">Service Architecture Practitioner Syllabus</a>, and part of that module is explored in this post, where I examine the relationship between the solution and service architecture. <br />
<br />
<a name='more'></a><br />
<h4>
Parallel Architectures</h4>
A solution can be understood in relatively abstract terms – a solution to a problem, or a solution to a business requirement. Hence, even the provisioning of an individual service may be seen as a solution to some problem in the right context.<br />
However, taking that more conventional IT sense, a solution is usually seen as a packaging of application functionality, that provides support for a set of business requirements. Hence a solution can be understood as consisting of the following main elements,<br />
<ul>
<li>One or more Application assemblies, each providing several functions that are required of the overall solution.</li>
<li>A form of user interface that provides a means for Human-Machine interaction between the user and the applications in a manner that supports a particular business workflow.</li>
<li>And a set of Services, where each provides one or more of the required functions.</li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaAuk8Te_VxSKJ2W0FId_HkiVHrlZM8bu4AeYhEVKdxIE9jh5RxbTS75G88vd_1csEsLAFZmW0uAbFyle_LR_bYMZS7aDE09OxqHj9iTV0iws8O5OZJbgtu0P9OkOp-udhW31KHf3sBXE/s1600/parallelviews1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaAuk8Te_VxSKJ2W0FId_HkiVHrlZM8bu4AeYhEVKdxIE9jh5RxbTS75G88vd_1csEsLAFZmW0uAbFyle_LR_bYMZS7aDE09OxqHj9iTV0iws8O5OZJbgtu0P9OkOp-udhW31KHf3sBXE/s400/parallelviews1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 1: Parallel Solution and Service Architecture Views</td></tr>
</tbody></table>
As illustrated in figure 1, delivery of the solution architecture often parallels that of the service architecture.<br />
The process starts by modelling the Solution Specification Architecture. A key part of this is identifying which services are required in order to support the functions that the solution automates.<br />
Hence the Solution Specification Architecture is partly expressed by a dependency model that shows the solution elements and their service dependencies.<br />
Next, a Solution Implementation Architecture is produced showing the software elements that will be required to implement the solution specification. Now the relationship to the required services can be expressed more precisely using an Interaction or Sequence Diagram.<br />
Finally, the Solution Deployment Architecture shows how the software elements are deployed to the network modelled by the Technical Architecture and realized in the operational environment.<br />
<br />
Why separate the solution and service architectures in this way? A solution can be considered to consist of both of these views. That is, the delivery of a solution that addresses some business need requires both the delivery of the services and their assembly along with the human machine interaction aspects into the solution.<br />
<br />
So won’t one architecture suffice? It could do. And for some small, truly stand-alone, self-contained solutions it may well be sufficient. But in many cases there are some good reasons why it is best practice to deal with them separately, even if their delivery of both is within the same solution project. For example<br />
<ul>
<li>Enable agility. By decoupling the Services from the human machine Interaction each can evolve at a different rate</li>
<li>Encapsulate change. By hiding unnecessary detail of the complete Service Architecture and focusing only on the services directly used by the Solution, this helps to encapsulate change in the service architecture.</li>
<li>Support sharing. For most solutions it is desirable to leverage Services that are shared or common across the enterprise or line of business, and hence these services need to be independent of any one Solution. Moreover, it isn't uncommon for solution-specific services to evolve into shared services.</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<h4>
Solution and Service Architecture Iteration</h4>
As noted, the Solution Architecture is partly expressed in terms of the Services it uses. The apparent overlap between the Solution and Service Architecture shouldn’t be seen as a duplication of effort.<br />
Rather it is just two alternative views of the same overall architecture, and common elements are only developed once.<br />
<br />
Hence, as shown in figure 2 the Service Architecture is an input to the Solution Architecture activity. At the same time, the Solution Architecture activity may identify the need for new Services, and these new requirements can be fed back into the Service Architecture activity. It is then determined whether these new Services are specific to the Solution, or whether they should be delivered as Shared Services and made available to other Solutions. This should be a subject of policy.<br />
As illustrated, both of these activities should be working off the same set of business models as input, but each put to appropriate use.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuQNN5SkqkVZeHsnmnec9sWMIe-w9AZfURoS8wImDobvE5RbcihmBsBQO3JgFTA92JIklkjwsaT_K7_iyV8_-bqnqSSG3HVm04T0uboaqWnfI8TDjRozQpfdTjPgcwdULNhMCucBFlQ8M/s1600/ssarchit1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuQNN5SkqkVZeHsnmnec9sWMIe-w9AZfURoS8wImDobvE5RbcihmBsBQO3JgFTA92JIklkjwsaT_K7_iyV8_-bqnqSSG3HVm04T0uboaqWnfI8TDjRozQpfdTjPgcwdULNhMCucBFlQ8M/s400/ssarchit1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 2: Solution and Service Architecture Iteration</td></tr>
</tbody></table>
During the Implementation and Provisioning stages, the Service Specification (or Service Implementation Architecture if completed) is now input to Solution Implementation activities. The use of operations required by the Solution can be modelled in Interaction Diagrams. Again, this activity may identify new Service Operations and again these requirements can be fed back into the Service Provisioning activity.<br />
<br />
The extent to which the Solution Architecture and Service Architecture are developed together as part of the same project will depend on various factors such as the need to deliver services that are used in multiple solutions. At one extreme there may be an extensive Service Architecture that pre-exists the Solution Architecture, and a Solution is largely a new assembly of pre-existing Services. At the other extreme, there may be a minimal existing Service Architecture and it needs to be developed in parallel with the Solution Architecture, with much of the Service identification being based on the Solution’s specific requirements.<br />
<br />
<h4>
Agile Solution Delivery </h4>
<div class="separator" style="clear: both; text-align: center;">
</div>
It is important to recognize that that the sequence these activities are performed in is not predicated on a waterfall approach.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzr8a96kiCg-Z9n94giu_TxhxHj-xkjELV0iyfi4fAq0KbGTNvhkejhHxgYz0TM15OsNbW7LtXvV4PP8CI7oxnHbtf2gtdr9hR07YJ_Bf0_3SNdOUAu0cbK-X67mnTkQv_dmnrHQqC7pI/s1600/asd1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="263" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzr8a96kiCg-Z9n94giu_TxhxHj-xkjELV0iyfi4fAq0KbGTNvhkejhHxgYz0TM15OsNbW7LtXvV4PP8CI7oxnHbtf2gtdr9hR07YJ_Bf0_3SNdOUAu0cbK-X67mnTkQv_dmnrHQqC7pI/s400/asd1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figure 3: Agile Solution Delivery</td></tr>
</tbody></table>
The whole service and solution architecture does not need to be fully detailed before any provisioning activities can commence. Rather, we would expect each execution of an architecture sprint to provide just enough architecture to support a release of part of the solution.<br />
Similarly, the specification, implementation, and assembly of services and solutions would also be performed though a series of development sprints.<br />
Whilst the necessary business models required as input could be collected during a pre-sprint phase.<br />
<br />
<h4>
Everware-CBDI eLearning</h4>
The Solution Architecture module is available as part of our range of <a href="http://www.everware-cbdi.com/elearning-overview" target="_blank">eLearning products</a>, which can be purchased individually or as part of a subscription to our <a href="http://www.everware-cbdi.com/cbdi-sae-kb-soa-overview" target="_blank">Knowledgebase</a> which contains all our elearning materials and much more.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-40525352749059018522013-02-26T18:08:00.002+00:002013-02-26T18:26:00.475+00:00Towards a Google Driverless and Amazon Pickerless FutureThere has been some relatively negative news of late regarding the working conditions of Amazon warehouse staff. For example <a href="http://www.bbc.co.uk/news/world-europe-21488816" target="_blank">Germany probes Amazon warehouse conditions after film </a>and <a href="http://www.bbc.co.uk/news/uk-21444710" target="_blank">GMB union holds protest at Amazon sites</a>. <br />
<br />
It is not surprising when you see <a href="http://www.ft.com/cms/s/2/ed6a985c-70bd-11e2-85d0-00144feab49a.html#slide3" target="_blank">what it is like to work in one of their giant warehouses </a>.<br />
<br />
But what surprises me is that they even use people at all. Warehouses dealing at the pallet level are lights out, robotic operations. Surely it is only a small step before the item level is dealt with in the same way.<br />
<br />
If <a href="http://en.wikipedia.org/wiki/Google_driverless_car" target="_blank">Google are investing in driverless cars</a> , then surely Amazon must be investing in "pickerless" warehousing! Not surprisingly they are,with their <a href="http://www.geekosystem.com/amazon-kiva-robots/" target="_blank">investment in Kiva</a> . Other logistics companies are doing the same, with the <a href="http://www.bbc.co.uk/news/business-20754979" target="_blank">rise of the warehouse robot</a> .<br />
<br />
So, if <a href="http://www.guardian.co.uk/technology/2012/sep/30/google-self-driving-car-unemployment" target="_blank">Google's self-guided car could drive the next wave of unemployment</a> , and <a href="http://www.supplychainbrain.com/content/nc/industry-verticals/high-techelectronics/single-article-page/article/are-robots-taking-over-the-warehouse/" target="_blank">robots are taking over the warehouse </a>, then where will the masses work in future?<br />
<br />
One thing is for sure, delivering systems like these will definitely require the application of <a href="http://lwsoa.blogspot.co.uk/2013/02/connected-architecture-for-connected.html" target="_blank">Connected Architecture</a> . So hopefully us architects won't be out of a job just yet...Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-2155613110549753542013-02-25T15:21:00.004+00:002013-05-22T11:37:11.816+01:00Connected Architecture for a Connected PlanetOr how to connect the architecture dots to support a smart connected planet.<br />
<h3>
Introduction</h3>
The notion of a connected planet is far from new. However, the number of connections as illustrated in figure 1 is growing at an exponential rate, and it is fast becoming a reality in which many organizations must operate.<br />
<br />
However, I doubt many organizations are preparing for this in a systematic way. More likely, experience suggests that dozens of connected ‘solutions’ will permeate the organization via myriad routes and just add to the complexity of the business and IT landscape, becoming yet more spaghetti that someone is left to untangle.<br />
<br />
Architecture is key to dealing with this. However, architectural practices must evolve to themselves become more connected, and not a set of isolated disciplines as they are often practiced today.<br />
Hence, in this note as well as considering the challenges and opportunities provided by the connected planet, I outline the role of connected architecture.<br />
<a name='more'></a><br />
<h3>
The Connected Planet</h3>
The looming challenge, or for some the opportunity, facing organizations is how they cope with the scenario shown in figure 1.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv7e2EriTQpWP26077mcjtMtnMbzz90eM8_620aL042upDwMdsKb9xkdNDAIQ_EERvrfTWAjkRkiKESTaeHMH2wYJuo0xDDNBH_6FUvnOHovXnYI3S40IzSh-Vo_YGou654HZGO6PZyMI/s1600/cafacp1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv7e2EriTQpWP26077mcjtMtnMbzz90eM8_620aL042upDwMdsKb9xkdNDAIQ_EERvrfTWAjkRkiKESTaeHMH2wYJuo0xDDNBH_6FUvnOHovXnYI3S40IzSh-Vo_YGou654HZGO6PZyMI/s400/cafacp1.png" width="400" /></a></div>
<div style="text-align: center;">
<b>Figure 1 – The Connected Planet</b></div>
Namely, that there will be<br />
<ul>
<li><b>Trillions </b>of connected things, sometimes dumb but increasingly smart</li>
<li>Used by <b>billions </b>of people, socializing and interacting to evaluate and rate you, your products, prices, and competitors.</li>
<li>Generating <b>quadrillions </b>of messages representing <b>quadrillions </b>of events, some significant but many insignificant</li>
<li>Connected to <b>millions </b>of APIs and services, hosted in the cloud</li>
<li>Accessing and creating <b>petabytes </b>of information, both current and historical</li>
</ul>
This is a scenario I first documented back in a <a href="http://lwsoa.blogspot.co.uk/2009/10/architecture-for-smarter-planet.html" target="_blank">blog in 2009</a> [1]. <a href="http://www.idc.com/research/Predictions13/index.jsp#.UR4HSmf-unI" target="_blank">IDC talk about this</a> as the “3rd platform, built on mobile devices and apps, cloud services, mobile broadband networks, big data analytics and social technologies” [2], and paint a scenario in their research that reads remarkably similar to the above.<br />
<h3>
Winners and Losers on the Connected Planet</h3>
The key issue for organizations will be<br />
<ul>
<li>How does the business cope with information overload, or derive value from it?</li>
<li>How does IT deliver business solutions that manage the resulting transaction and information explosion, in a cost-effective manner?</li>
</ul>
The winners in this scenario will be those that exhibit the characteristics outlined in Table 1.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ejTWszTEF42lF83bkaY-VVHaVj-5HG9HYtFEw1QhEmWIE2Nb9M1EcG10Q1-_AMhjxvQ7iQwYfGxW6Zq0waMoBtea9fExLQ3Zl2dwqwEYW89Eq5Cc3HeMVKMMFjLHWY0N2ASeaWcMQo4/s1600/cafacp4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3ejTWszTEF42lF83bkaY-VVHaVj-5HG9HYtFEw1QhEmWIE2Nb9M1EcG10Q1-_AMhjxvQ7iQwYfGxW6Zq0waMoBtea9fExLQ3Zl2dwqwEYW89Eq5Cc3HeMVKMMFjLHWY0N2ASeaWcMQo4/s400/cafacp4.png" width="400" /></a></div>
<div style="text-align: center;">
<b>Table 1 – Winners and Losers on the Connected Planet</b></div>
By implication, the losers will be those organizations that fail to exhibit these characteristics!<br />
<h3>
The Connected Architecture Solution</h3>
So, how does an organization make sense of trillions of connected things and billions of people accessing petabytes of information via millions of APIs and services?<br />
<br />
Firstly, organizations and their IT solutions need to become increasingly,<br />
<ul>
<li><b>Autonomic, </b>in the way they,</li>
<ul>
<li>respond to events, and how they correlate events and information</li>
<li>discover new service providers and their APIs</li>
<li>manage resources, adopting the principle of ‘management of services, by services’</li>
<li>freeing up human resources to deal with exceptions and ‘special cases’</li>
</ul>
<li><b>Analytical,</b> in the way they,</li>
<ul>
<li>make sense of events and information</li>
</ul>
<li><b>Decoupled,</b> in the way they,</li>
<ul>
<li>participate in federated ecosystems, not tightly bound partnerships</li>
<li>separate service provider from service consumer</li>
<li>assemble solutions from services not implementations</li>
</ul>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaA-Ho1bhMFcwqCKXT6fEeD6BjLhIsjJZrwNx9PbQSUuGjr0OJGyCoU4Kz1iIpfVQoh7NGYEcjoCpByOkc61y8QgZnSp-dZjH8gelPrJfk9hm5UxcgEZouLnjHGiDp6e1jXKP-kUNYa4w/s1600/cafacp2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="395" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaA-Ho1bhMFcwqCKXT6fEeD6BjLhIsjJZrwNx9PbQSUuGjr0OJGyCoU4Kz1iIpfVQoh7NGYEcjoCpByOkc61y8QgZnSp-dZjH8gelPrJfk9hm5UxcgEZouLnjHGiDp6e1jXKP-kUNYa4w/s400/cafacp2.png" width="400" /></a></div>
<div style="text-align: center;">
<b>Figure 2 – Connected Architecture</b></div>
As stated earlier, architecture is key to dealing with this. However, there is no one architectural ‘style’ that encompasses everything that is required to solve the problem. It would be tempting to say the answer is SOA, or the answer is WOA, or any other acronym that is or was flavor of the month, or for architects to believe that it all revolves around whatever is their ‘pet’ approach. While SOA principles of encapsulation and separation will inevitably be at the heart of the connected architecture, the practical reality of a collaboration between disparate organizations and capabilities will mean a federated architecture involving different technical solutions.<br />
<br />
As illustrated in figure 2, what is required is an agile federated approach to architecture that assembles a Connected Architecture consisting of the following,<br />
<ul>
<li><b>Web 2.0 Architecture </b>– enabling people to rapidly mash up user and community driven solutions, in turn assembled from millions of APIs and services, and generating quadrillions of events,</li>
<li>leveraging <b>Enterprise Mobility</b> to connect employees, partners and customers, and their devices, anytime, anywhere,</li>
<li>requiring <b>Event Driven Architecture (EDA)</b> to determine the autonomic response required to sensors and changes in state, and correlate events,</li>
<li>that are also placed into context by agile <b>Business Process Architecture (BPA/BPM)</b> and <b>Information Architecture (IA)</b>, with <b>Real-time Business Analytics (BA)</b> to make sense of what is happening,</li>
<li>using capabilities provisioned through APIs and services in a <b>Service Oriented Architecture (SOA)</b> that provides a formal basis for the decoupling of Provider and Consumers resources,</li>
<li>combined with a <b>Web Oriented, or Resource Oriented Architecture (WOA/ROA)</b> exchanging information between those trillions of devices in an efficient manner that will likely be done in a more lightweight manner than full blown Web Service-based SOA, with their implementations defined in a <b>Component Based Software Architecture (CBSA)</b> - with the focus on right-grained software units enabling agile, federated software delivery, that is hosted anywhere, anytime on a <b>Cloud Based Architecture (CBA) </b>that describes the virtualized, federated infrastructure providing scalability, reliability.</li>
</ul>
No one of these styles covers the problem space by itself. Rather, the problem space needs to be decomposed and the appropriate architecture approach applied to each domain.<br />
<h3>
Connected Platform</h3>
Another key enabler will be the increasing use of ‘Connected Platforms’. Cloud ‘platforms’ such as Salesforce, Facebook or Amazon are in wide use and are already dominant in their respective domains because their platforms provide a considerable benefit by way of platform capabilities in comparison to building their own, and more importantly to business perhaps, provide a gateway to a ready-made ecosystem that use the platform.<br />
<br />
Expect Connected Platforms to emerge that act as a ‘hub’ or focal point around which industry ecosystems evolve, and it is likely that every industry will come to be dominated by a few key platform providers.<br />
<br />
Many organizations will therefore have little choice of which Connected Platform they use as they will be forced upon them by participants in their industry – either by the 400lb gorillas who already dominate their industry, or by the platforms to which their ecosystem and end customers have gravitated, forcing them to adopt.<br />
<br />
As illustrated by figure 3, the challenge for each enterprise will be to determine,<br />
<ul>
<li>what their role is in the ecosystem, as provider and /or consumer, or possibly platform operator</li>
<li>hence, which services they should be expected to provide, and which they should consume</li>
<li>what services the Connected Platform is or should be providing, and who should providing them</li>
<li>their willingness to depend on the Connected Platform and the extent to which they allow the platform to dominate</li>
<li>the extent to which architects design their service architecture around the Connected Platform, or to what extent they should design their own platform independent architecture, especially for large organizations who may participate in multiple overlapping ecosystems, with multiple Connected Platforms.</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_6H1c9X__oOnnARDB7xaOod-AKq0g5TvctjB1r6CYJ2OQ5NbwDYlvl4bs26GljrPEjcCz6AasuGo7G3r8RQJ79SVMY79YPFZMQg3xeaYXirN4_sK228uI40kVGBSQTwk-fe61jI5ggeE/s1600/cafacp3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_6H1c9X__oOnnARDB7xaOod-AKq0g5TvctjB1r6CYJ2OQ5NbwDYlvl4bs26GljrPEjcCz6AasuGo7G3r8RQJ79SVMY79YPFZMQg3xeaYXirN4_sK228uI40kVGBSQTwk-fe61jI5ggeE/s400/cafacp3.png" width="400" /></a></div>
<div style="text-align: center;">
<b>Figure 3 – The Connected Platform</b></div>
<h3>
The Architect’s Challenge</h3>
The key challenge for architects is that they cannot treat the various elements of the Connected Architecture as they often do today – as <a href="http://everware-cbdi.com/index.php?cID=118&cType=document" target="_blank">architectural silos </a>[3] in ivory towers. Instead, as discussed earlier the elements must work seamlessly together. But this isn’t solved by Enterprise Architecture – which may contain elements of all these – at least not alone, as this is about working at the detailed level to deliver solutions, not just a high-level view of the enterprise.<br />
<br />
Hence it is important that architects develop a consistent framework for collaboration within the Connected Architecture. This is an area in which <a href="http://everware-cbdi.com/architecture-cs" target="_blank">Everware-CBDI</a> is well placed to assist.<br />
<h4>
References</h4>
[1] Architecture for the Smarter Planet. <a href="http://lwsoa.blogspot.co.uk/2009/10/architecture-for-smarter-planet.html" target="_blank">http://lwsoa.blogspot.co.uk/2009/10/architecture-for-smarter-planet.html </a><br />
[2] IDC Predictions 2013. November 2012, IDC #238044, Volume: 1 <a href="http://www.idc.com/research/Predictions13/index.jsp#.UR4HSmf-unI" target="_blank">http://www.idc.com/research/Predictions13/index.jsp#.UR4HSmf-unI </a><br />
[3] Beware the new silos! <a href="http://everware-cbdi.com/index.php?cID=118&cType=document" target="_blank">http://everware-cbdi.com/index.php?cID=118&cType=document </a>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com1tag:blogger.com,1999:blog-372430950845542968.post-61173138951658340122012-11-30T14:11:00.000+00:002012-11-30T14:11:53.201+00:00Service Concepts 101<div class="BodyTextNormal">
The use of the term ‘Service’ is somewhat overloaded. Everyone
will have heard or used the terms Business Services, IT Services, Software
Services, and now Cloud Services, and yet often there is much confusion and misunderstanding
in their use.</div>
<div class="BodyTextNormal">
As my colleague <a href="http://davidsprottsblog.blogspot.co.uk/" target="_blank">David Sprott </a>suggested in a CBDI
Journal Report, “<a href="http://everware-cbdi.com/eias" target="_blank">Everything is a Service</a>” . In that report David suggested
that the idea that “everything is a service” could be developed to clarify the
taxonomy for Cloud Services and Services in the form of a Unified Service Model
that would deliver convergence of business and IT perspectives.</div>
<div class="BodyTextNormal">
Consequently, I have penned a <a href="http://everware-cbdi.com/service-concepts-101" target="_blank">research note available on Everware-CBDI site</a> , that provides a concept model that explores the basic concepts
of Service and Service-Orientation taking into account this broad perspective
including Business Service, IT Services, Software Services, Cloud Services and
even Human Services</div>
<a name='more'></a><br />
<div class="BodyTextNormal">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--></div>
<div class="BodyTextNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-ansi-language:EN-GB;
mso-fareast-language:EN-GB;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1029"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1"/>
</o:shapelayout></xml><![endif]-->
</div>
<h3>
<span lang="EN-GB">What is a Service?</span></h3>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">Readers
will be familiar with the basic concept of a Service.<span style="mso-spacerun: yes;"> </span>That is, where someone or something provides
a Service to another.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">The
notion that someone or something offers a Service to another introduces the
concept of the Service Provider and Service Consumer as illustrated in Figure
1.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">A
Service Provider is as its name suggests is someone or something that provides
a Service.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">And
the Service Consumer is someone or something that consumes or uses the Service.</span></div>
<div class="BodyTextNormal">
<i><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Real
World Example: A logistics company provides a Goods Delivery Service. This is
used by a manufacturer to ship goods to its clients.</span></i></div>
<div class="BodyTextNormal">
<i><span lang="EN-GB" style="mso-ansi-language: EN-GB;">The
logistics company is the Service Provider.<span style="mso-spacerun: yes;">
</span>The manufacturer is the Service Consumer</span></i><span lang="EN-GB" style="mso-ansi-language: EN-GB;">.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHkbEHra1RWxf607L1la6fhi1wKOCQxRW9VapxpMkwZoSTCJNWUua7HVqGzOPxs0YqBAHEzDIXr2NPezx_Egyneh8H_WNylarZfbLJcEWHS20V8SkbvKxR-GxPZ78VygcFJzyovpr86lI/s1600/sc101fig1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHkbEHra1RWxf607L1la6fhi1wKOCQxRW9VapxpMkwZoSTCJNWUua7HVqGzOPxs0YqBAHEzDIXr2NPezx_Egyneh8H_WNylarZfbLJcEWHS20V8SkbvKxR-GxPZ78VygcFJzyovpr86lI/s320/sc101fig1.png" width="189" /></a></div>
<div class="BodyTextNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></div>
<div class="BodyTextNormal">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-ansi-language:EN-GB;
mso-fareast-language:EN-GB;}
</style>
<![endif]-->
</div>
<div align="center" class="MsoNormal" style="text-align: center;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Figure</span></b><b style="mso-bidi-font-weight: normal;"><span style="mso-ansi-language: EN-US; mso-fareast-font-family: "Times New Roman";"> 1</span><span lang="EN-GB"> Service Consumers and Providers</span></b><span lang="EN-GB"></span></div>
<br />
<h3>
<span lang="EN-GB">Capability</span><span style="mso-ansi-language: EN-US;"></span></h3>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">The reason a Service Provider is able to provide the Service is because
they possess the Capability required to do so.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">A
Capability is the power or ability to perform some function.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">We may
think of a person, an organization or something (a machine, or some technology)
as having the Capability to perform some function.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">In
turn the Service Provider may offer their Capability to others, in the form of
a Service.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">Meanwhile,
a Service Consumer is someone or something that requires the Capability. </span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">Hence
we may understand a Service as a Capability offered by a Service Provider to a
Service Consumer</span></div>
<div class="BodyTextNormal">
<br clear="ALL" style="mso-ignore: vglayout;" />
<i><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Real World Example: A logistics
company has the Capability to deliver goods.<span style="mso-spacerun: yes;">
</span>Therefore it is able to offer a Goods Delivery Service to others.</span></i></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHb4Ue9dQOczRjKE2abdudnbSbqtGPDhuL5M3izWG8yp7XbUNr__oZ1PUjbr8kPMlbsXcyO_BByyPJAqyjBWJkwhxIm8V20izOPO6TNazO3YGvxianPD9qRQlY2iO6MK7bgkcq-apSyvU/s1600/sc101fig2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHb4Ue9dQOczRjKE2abdudnbSbqtGPDhuL5M3izWG8yp7XbUNr__oZ1PUjbr8kPMlbsXcyO_BByyPJAqyjBWJkwhxIm8V20izOPO6TNazO3YGvxianPD9qRQlY2iO6MK7bgkcq-apSyvU/s320/sc101fig2.png" width="320" /></a></div>
<div align="center" class="BodyTextNormal" style="text-align: center;">
<b style="mso-bidi-font-weight: normal;"><span id="goog_1467895568"></span><span id="goog_1467895569"></span>Figure 2 Service and Capability</b></div>
<h3>
<span lang="EN-GB">Types of Service</span></h3>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">In the
real world example used so far, a logistics company provides a Goods Delivery
Service to a manufacturer.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">This
may be referred to as a <b style="mso-bidi-font-weight: normal;">Business Service</b>,
as it reflects the nature of the activity - where one business is providing its
services to another. It is also normally offered on a commercial basis, and may
be considered as a Business Service because business is being transacted
through its use.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">We can
think of <b style="mso-bidi-font-weight: normal;">Business Service</b> as a
particular <i>type</i> of Service.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">Other
types of Service commonly used in an IT context are,</span></div>
<div class="BodyTextNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">IT Service</span></b><span lang="EN-GB" style="mso-ansi-language: EN-GB;">, where the IT department (or 3<sup>rd</sup>
party) provide a service to the business</span></div>
<div class="BodyTextNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Software Service</span></b><span lang="EN-GB" style="mso-ansi-language: EN-GB;">, where a unit of software provides
a service to another software unit</span></div>
<div class="BodyTextNormal" style="margin-left: 36.0pt; mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span lang="EN-GB" style="font-family: Symbol; mso-ansi-language: EN-GB; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB" style="mso-ansi-language: EN-GB;">Cloud Service</span></b><span lang="EN-GB" style="mso-ansi-language: EN-GB;">, where a Software Service is
provided over a network and conforms to cloud computing principles</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">We can
even consider a <b style="mso-bidi-font-weight: normal;">Human Service</b> where
one person provides services to another and relies upon human resources to provide
the required Capability.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">Regardless
of the type of Service, the concepts discussed so far still hold true.</span></div>
<div class="BodyTextNormal">
<span lang="EN-GB" style="mso-ansi-language: EN-GB;">Whether
it is a Business Service, an IT Service or a Software Service, Cloud Service,
or a Human Service, they still all provide a Capability, and are all provided
by a Service Provider and used by a Service Consumer.</span><b style="mso-bidi-font-weight: normal;"> </b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHIb-WbO8UQhpHbLKqCWxBotCI_DSCR2e8B40X2v_q8bYb_kImwmr4xWdc5tQrdwZuRmHpL0j_sUsvB_xNpXDu7vHlmL7Vp1CIhy8jo6nl_89XRVV-t60dC7gQbFYgucHLamqyaIabLbc/s1600/sc101fig3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHIb-WbO8UQhpHbLKqCWxBotCI_DSCR2e8B40X2v_q8bYb_kImwmr4xWdc5tQrdwZuRmHpL0j_sUsvB_xNpXDu7vHlmL7Vp1CIhy8jo6nl_89XRVV-t60dC7gQbFYgucHLamqyaIabLbc/s400/sc101fig3.png" width="400" /></a></div>
<div class="BodyTextNormal" style="text-align: center;">
<b style="mso-bidi-font-weight: normal;">Figure 3 - Types of Service showing
different forms of Service Provider and Consumer</b></div>
<table cellpadding="0" cellspacing="0"><tbody>
<tr><td height="0" width="2"></td></tr>
<tr><td></td><td><br /></td></tr>
</tbody></table>
<div class="BodyTextNormal">
<b style="mso-bidi-font-weight: normal;"><a href="http://everware-cbdi.com/service-concepts-101" target="_blank"><i>Continued in Research Note </i></a></b></div>
<br />Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-50919335009313905212012-09-16T14:43:00.002+01:002012-09-17T12:21:56.957+01:00On Reuse<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-GB</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
</style>
<![endif]-->
<br />
<div class="BodyTextNormal">
<span lang="EN-US">As long as I have been in IT - since I
coded my first subroutine library 35 years ago - the debate on reuse has been
ongoing. At times, it has seemed like a ‘Holy Grail’ for software delivery and
like the Holy Grail it also seems to give rise to endless opportunities to
debate whether it is exists or not, if it is good or bad, or even what it
actually is.</span></div>
<div class="BodyTextNormal">
<br /></div>
<div class="BodyTextNormal">
<span lang="EN-US">Now entering into<a href="http://www.linkedin.com/groups/Is-Reuse-Good-Bad-Idea-36781.S.131296457" target="_blank"> another</a>, I thought
it worth putting down some observations [1].</span></div>
<div class="BodyTextNormal">
</div>
<a name='more'></a><br />
<h3 class="MsoNormal">
Why Reuse?</h3>
<div class="MsoNormal">
I am not going to enter into a long discussion about the
economics of reuse. Enough has already been written on that.<span style="mso-spacerun: yes;"> </span>I see three simple reasons to consider reuse.
Every justification to reuse or not boils down eventually to one of more of the
following,</div>
<br />
<ol>
<li><span style="mso-fareast-font-family: "Times New Roman";"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><b style="mso-bidi-font-weight: normal;">Productivity.</b> Improve productivity by
reusing what has already been developed and tested.</li>
<li><b style="mso-bidi-font-weight: normal;">Consistency.</b> Improve consistency of
process and information by ensuring that common functions are always performed
in the same way</li>
<li><span style="mso-fareast-font-family: "Times New Roman";"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"> </span></span></span><b style="mso-bidi-font-weight: normal;">Best Practice.</b> Improve the execution of
common activities by codifying best practice and algorithms.</li>
</ol>
<br />
<div class="MsoNormal">
Of course all manner of politics and personal bias come into
decision making process, but that is a cultural issue, and enough has already
been written on that too.</div>
<div class="MsoNormal">
<br /></div>
<h3 class="BodyTextNormal">
Forms of Reuse<span lang="EN-US"> </span></h3>
<div class="BodyTextNormal">
<span lang="EN-US">The assumption is normally that the
debate is about software reuse. Ultimately it is, in that the end product of
what is being reused is a software artifact. But there are many points in the
SDLC at which reuse may occur, and there are many forms in which reuse may take
place. For example;</span></div>
<br />
<ul>
<li><span lang="EN-US" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"> </span></span></span><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Software Reuse.</span></b><span lang="EN-US"> A unit of software is
reused. There are many ways this can be achieved, which doesn’t always involve
copying. Instances might be duplicated, or an instance might be shared somehow,
but either way developers are aware of the software they are reusing.</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Service-based Reuse.</span></b><span lang="EN-US"> Software is
ultimately reused, but only via its service interface which helps to decouple
the consumer from the provider, and better encapsulates the software being
reused. Developers are less aware of the software they are reusing, and should
only be aware of the service that encapsulates it.</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Specification or Model Reuse.</span></b><span lang="EN-US"> The
specification is reused, but different instances of software are produced from
it. Providing the transformation is correct in each instance, this enables
consistency but would allow delivery in different technologies for example</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Pattern-based Reuse.</span></b><span lang="EN-US"> A higher form of
abstraction, but a common form of ‘reuse’. More a way of reusing knowledge or
‘best practice’ than software itself.</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Architecture or Blueprint Reuse.</span></b><span lang="EN-US">
Similarly, an architecture may establish a blueprint that is reused</span></li>
</ul>
<br />
<div class="BodyTextNormal">
<span lang="EN-US">So a key task is to determine what
form of use is most appropriate to achieve the intended goal.</span></div>
<div class="BodyTextNormal">
<br /></div>
<h3 class="BodyTextNormal">
Scope of Reuse<span lang="EN-US"> </span></h3>
<div class="BodyTextNormal">
<span lang="EN-US">Establishing the intended scope of
reuse of some asset is also key. Often for example, people attempt to reuse of
an asset on an ‘enterprise’ basis whereas there is not actually an enterprise-wide
requirement. Consequently trying to then ‘force’ the asset on projects (in
order to realize the ROI for its development) only leads to conflict.</span></div>
<div class="BodyTextNormal">
<br /></div>
<div class="BodyTextNormal">
<span lang="EN-US">Rather, the scope of reuse should be
set at an appropriate level and the investment in its delivery commensurate
with that. The scope could be,</span></div>
<br />
<ul>
<li><span lang="EN-US">For an enterprise, establishing
its reuse boundaries</span></li>
<ul>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Global.</span></b><span lang="EN-US"> Or enterprise-wide.</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Common.</span></b><span lang="EN-US"> Or domain or division wide, or
for a product line.</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Local.</span></b><span lang="EN-US"> Or project, product or business
unit wide.</span></li>
</ul>
<li><span lang="EN-US" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"></span></span></span><span lang="EN-US">For an Industry, or domain.
More applicable to standards organizations, and to commercial software vendors
or service providers</span></li>
<li><span lang="EN-US">Ecosystem. Intended to be
reused or shared by many ecosystem participants</span></li>
</ul>
<br />
<h3>
Where to Reuse
<span lang="EN-US"> </span></h3>
<div class="BodyTextNormal">
<span lang="EN-US">Besides the issue of scope, clearly not
everything needs to be built with reuse in mind. Hence there needs to be additional
means by which you can distinguish reusable assets from the non-reusable. For
example, using a layered architecture as a way of classifying assets into
different layers and then facilitating reuse in and between appropriate layers.</span></div>
<div class="BodyTextNormal">
<br /></div>
<div class="BodyTextNormal">
<span lang="EN-US">For example, separate assets into
different types based on </span></div>
<br />
<ul>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Rate of Change.</span></b><span lang="EN-US"> Things that are more
stable in nature are better candidates for reuse than those that frequently
change. I would like to thank my friend and colleague <a href="http://rvsoapbox.blogspot.co.uk/2004/10/adaptation-and-adaptability.htm">Richard
Veryard</a> for introducing me to the concept of ‘<a href="http://en.wikipedia.org/wiki/Shearing_layers">Shearing Layers</a>’ as a
valuable construct in IT architecture</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Core or Context.</span></b><span lang="EN-US"> As well as stable vs
unstable, you might also classify assets using core or context analysis [2],
where context would be most suitable for reuse.</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Separation of Concerns.</span></b><span lang="EN-US"> The traditional
separation of presentation, process and data also helps to determine
reuse.<span style="mso-spacerun: yes;"> </span>Data assets can be reused in many
processes. Processes (or parts of) can be reused in many solutions. Utilities
can be reused everywhere.</span></li>
</ul>
<br />
<div class="BodyTextNormal">
<span lang="EN-US">One of the above classifications may
not be sufficient to determine whether an asset should be reusable or not, but used
together, along with scope, they can certainly help to narrow down whether or
not an asset should delivered with reuse in mind.</span> </div>
<div class="BodyTextNormal">
<br /></div>
<h3 class="BodyTextNormal">
Designing for Reuse<span lang="EN-US"> </span></h3>
<div class="BodyTextNormal">
<span lang="EN-US">Having determined that an asset should
be reusable, it is essential that it should be designed for reuse. A full
discussion is beyond the scope of this short note, but key factors will be</span></div>
<br />
<ul>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Granularity.</span></b><span lang="EN-US"> Finer grained, tightly focused
assets will more likely to be reusable in a wider spectrum of different contexts.
However, that doesn’t mean that coarse-grained software deliverables are not
widely reused in term of the number of instances deployed. Rather, that they
are less likely to be reused in different contexts to the one for which they
were originally designed.</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Generalization.</span></b><span lang="EN-US"> The more generalized an
asset it, the broader applicability it will have</span></li>
<li><b style="mso-bidi-font-weight: normal;"><span lang="EN-US">Configuration.</span></b><span lang="EN-US"> The greater number of
ways an asset can be configured to suit different purposes will make it more
reusable in different solutions.</span> </li>
</ul>
<br />
<h3>
Summary
<span lang="EN-US"> </span></h3>
<span lang="EN-US">I am not suggesting these are the only
ways by which to determine reuse. More, it a suggestion that only by developing
such a framework within your organization can you make rational reuse
decisions, and perhaps more importantly govern reuse with effective policies
that codify such rules.</span><br />
<br />
<div class="BodyTextNormal">
<br /></div>
<div class="BodyTextNormal">
<span lang="EN-US">[1] I have documented much of this
before, but it is mainly behind our pay-wall.</span></div>
<div class="BodyTextNormal">
<br /></div>
<div class="BodyTextNormal">
<span lang="EN-US">[2] Dealing with Darwin. Geoffrey A. Moore.
2005 <a href="http://www.dealingwithdarwin.com/index.php">http://www.dealingwithdarwin.com/index.php</a>
</span></div>
Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-79388453841740160532012-07-02T11:44:00.000+01:002012-07-02T11:44:00.184+01:00Developing Reference 'Things' - Reference Architectures, Reference Models, Reference FrameworksI have spent a lot of time in recent years developing various reference 'things' for clients and as part of our own research. Whether it has been <a href="http://everware-cbdi.com/cbdi-sae-framework" target="_blank">SOA</a>, <a href="http://everware-cbdi.com/ea-cs" target="_blank">Enterprise Architecture</a>, <a href="http://everware-cbdi.com/ccrfam" target="_blank">Cloud Computing</a> or more recently <a href="http://everware-cbdi.com/enterprise-mobility-framework" target="_blank">Enterprise Mobility</a>, one thing has been clear - that organizations often lack a framework that should form the basis for consistency in these domains.<br />
<br />
It is tempting, and common practice, for organizations to respond by acquiring such a framework 'off the shelf'. TOGAF in the EA domain would be a prime example. However, in our experience such 'off the shelf' solutions rarely provide a 100% match to requirements and must be customized and extended to be effective, especially if you want them to be easily assimilated by the organization and not become divisive. Nothing is worse for example than EA becoming just another silo because people don't agree with the framework foisted upon them.<br />
<br />
<a name='more'></a>Moreover, there is rarely a consistent understanding of what is required of a reference 'thing', as I pointed out in my research note on <a href="http://everware-cbdi.com/ccrfam" target="_blank">Cloud Computing Reference Architectures, Models and Frameworks</a>. When asked by clients to help them develop a reference architecture for example, my first question is invariably "what do you mean by reference architecture?", and I am not surprised when I get more than one different answer from the folks involved.<br /><br />
<br />
Hence it became apparent to me as I worked across these different domains that what was required was a reference framework for reference frameworks! Consequently, I set about defining a generic reference framework that I could apply to any domain, and then more importantly, in response to the requirement I outlined above to customize and extend frameworks to match an organization's needs, I developed a repeatable process for <a href="http://everware-cbdi.com/erfoverview" target="_blank">establishing a reference framework</a> together with some 'tools' for gathering requirements and assessing the as-is situation plus any candidate solutions. Follow the link for an overview published on the Everware-CBDI website.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-53849406830685448632012-06-27T06:59:00.001+01:002012-06-27T07:02:12.141+01:00Enterprise Mobility FrameworkIt won't be long before Enterprise Mobility is considered 'business as usual'. But right now, it is analogous to the early days of PC adoption, where end users are largely creating the ‘pull’ for enterprise mobility, rather than the
IT department driving this out from the center. The mobile market is driven by consumers. The consumer (led by
consumer-oriented vendors) is setting the trends and establishing the de
jure standards, not the enterprise. Inconveniently for organizations, their employees are consumers too – hence the demand for BYOD. <br />
<a name='more'></a><br />
Consequently, organizations are typically addressing mobility in an ad-hoc manner at
the project level, leading to inconsistencies, duplication and gaps in
capabilities across the organization. Though this is par for the course
with any such new initiatives.<br />
<br />
Inevitably, as pressure grows, organizations are increasingly assessing their enterprise mobility needs. It is tempting (for IT) to try to satisfy requirements by
simply acquiring technology and products from their favored IT vendor,
who will inevitably claim their Mobile Device Management (MDM) and
Mobile Enterprise Application Platform (MEAP) products will cure all
ills.<br />
<br />
However, history tells us that simply throwing technology at such a problem rarely solves it by itself. Rather, I recommend organizations take a step back and address enterprise mobility more strategically.<br />
<br />
In order to put some consistency behind their enterprise mobility efforts and to
effectively govern them, a good starting point for any organization is
to establish their Enterprise Mobility Framework (EMF). This should not be a 'technical' framework assembled out of products, but a reference framework designed to provide consistent terminology and understanding of the domain.<br />
<br />
Regardless of the domain, I find that establishing a Reference Framework (RF) works well as it establishes the basis and ground rules
for subsequent work. In my experience, many organizations often lack a
consistent framework – or conversely they have too many – and effort is
wasted trying to apply consistency after the fact.<br />
<br />
However, perhaps reflecting the maturity of the market organizations
won’t find such an EMF available ‘off the shelf’ from an industry body or
even some dominant vendor, and so must establish their own.<br />
<br />
Recently faced with this scenario myself on behalf of our clients, I have worked with them to develop their EMF. As a result, I am now able to publish a generic <a href="http://everware-cbdi.com/emf" target="_blank">Enterprise Mobility Framework </a>together with guidelines for its development to meet an organization's unique requirements.<br />
<br />
As Everware-CBDI are not a vendor of enterprise mobility technology, I hope readers will find this a more independent framework that doesn't attempt to steer users towards a particular vendors solution.<br />
<br />
Let me know if you find it useful, or if you need any help in developing your own EMF.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-70305452366593072772011-09-16T09:45:00.000+01:002011-09-16T09:45:12.514+01:00NIST Cloud Computing Reference ArchitectureI see NIST have now published their <a href="http://collaborate.nist.gov/twiki-cloud-computing/pub/CloudComputing/ReferenceArchitectureTaxonomy/NIST_SP_500-292_-_090611.pdf">Cloud Computing Reference Architecture</a> as a recommendation. Little has changed conceptually since earlier drafts, but the document is now more detailed and complete.<br />
<br />
In earlier commentary on <a href="http://lwsoa.blogspot.com/2011/06/cloud-computing-reference-architectures.html">Cloud Computing Reference Architectures, Models and Frameworks</a> I described how there is little concensus on what form a reference "thing" should take or what its content should be, and that most are a mish mash of concepts that have their own structure, but not a consistent structure that enables them to be easily combined or compared for example. The NIST Cloud Computing Reference Architecture is no different in that respect.<br />
<br />
However, it is still a worthy document, and as with earlier NIST output that laid out definitions for core cloud computing concepts such as SaaS/IaaS/PaaS, the reference architecture is bound to be widely referenced as a "standard".Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-38882854506425703452011-07-04T10:36:00.006+01:002011-07-04T11:53:02.484+01:00Service BoundariesRichard Veryard asks in his blog on <a href="http://rvsoapbox.blogspot.com/2011/07/service-boundaries-in-soa.html">Service Boundaries</a> "where did all the boundaries go?" <br />
<br />
CBDI Forum was one of the organizations back in those early days that Richard refers to that promoted the concept of service boundaries, but unfortunately not much of our work on that principle is freely available. So, I thought I would rectify that.<br />
<a name='more'></a><br />
<strong>Services as Points of Flexibility</strong><br />
<div>The first principle described in our CBDI-SAE SOA elearning material that promotes the concept of boundaries is that services are "Points of Flexibility". That is, services should be designed to provide points of flexibility (which we also call <a href="http://msdn.microsoft.com/en-us/architecture/aa480028.aspx">Articulation Points</a> - a term coined by Richard) across functional, organizational or technology boundaries. </div><div>The objective is to allow flexibility/choice for the participant on either side of the Service. </div><div>So services form an important flexibility point – a place where change can occur on one side of the boundary, with minimum impact to the other.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe13iGr44ijk6PR58LC9TKknvJ9l5z2ynXmfTUIXIR_E_F8m4PFAZoVT17D3pY3O8Z7Udbertvv9t60teuQTCndMf7o33wwI65bjkxA_VIPHHBZHw9LU_-di9WQvzHjTkrRzlQWKB5-i4/s1600/service+boundaries.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhe13iGr44ijk6PR58LC9TKknvJ9l5z2ynXmfTUIXIR_E_F8m4PFAZoVT17D3pY3O8Z7Udbertvv9t60teuQTCndMf7o33wwI65bjkxA_VIPHHBZHw9LU_-di9WQvzHjTkrRzlQWKB5-i4/s400/service+boundaries.png" width="400" /></a></div><div></div><div>As the figure above illustrated, services can be placed at the boundaries between:</div><ul><li>Organizations – allowing the participants in the service ecosystem to change</li>
<ul><li>This could also be boundaries within an organization, such as business domains or organizational units. Where certain services are placed on the boundaries between them.</li>
</ul><li>Technologies – allowing the implementation technology used by provider or consumer to change </li>
<li>Resources (such as existing applications and other software artifacts) – that allow the implementation of the provider’s or consumer’s application to change.</li>
</ul><strong>Automation Unit Boundaries</strong><br />
<br />
Another concept in CBDI-SAE that promotes the concept of placing services at boundaries is the Automation Unit (AU). An AU is the collection of software artifacts that provide a service (i.e. its implementation). We use the AU rather than component to avoid the suggestion that an AU must also conform to component-based development (CBD) principles, which it may not do.<br />
The AU concept is a logical grouping of software artifacts. Hence the figure below shows an external view of an AU on the left - that can be derived from looking at its public specification - and an internal view on the right, that is privvy only to the implementor/provider of the AU.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-BwY55Le_5MFfmQoNBy3eZQ6WfWHatYXS8XkXMfQi8uc6XKyYo2wZD6rNNKDqCd0W3yHT-Uu0-5KHgZ9mWsLcuvwu3QxxwtqjFUckQOWvV4vxebRXbfBRNbscAUik9uG8Qi3Lrqktv1c/s1600/AU+boundaries.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="261" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-BwY55Le_5MFfmQoNBy3eZQ6WfWHatYXS8XkXMfQi8uc6XKyYo2wZD6rNNKDqCd0W3yHT-Uu0-5KHgZ9mWsLcuvwu3QxxwtqjFUckQOWvV4vxebRXbfBRNbscAUik9uG8Qi3Lrqktv1c/s400/AU+boundaries.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;">Consequently it can be seen that Orders Service and Customers Service in that example are effectively placed at the boundary of that logical grouping of software artefacts (the AU). Whilst the Sales DataService is not, and is only used inside the boundaries of the AU. The Orders and Customers Services are therefore the "points of flexibility" for the provider and consumer of those services. The provider of the Orders and Customers services would publish those in the Service Catalog for other service consumers to discover and use, whereas the Sales DataService would not be in the catalog (or at least not "public") as this is private to the publisher's implementation.</div><div class="separator" style="clear: both; text-align: left;"><br />
Whereas the Sales DataService is a point of flexibility for the AU implementor, who could for example migrate the Sales Database to a new database platform without impacting the Orders and Customers Service components, as long as the same Sales DataService is provided.</div><div class="separator" style="clear: both; text-align: left;"><br />
<strong>Other Logical Boundaries</strong></div><div class="separator" style="clear: both; text-align: left;"><br />
This concept, that there are services placed on the boundary of the AU, as well as services that exist within the AU - could equally apply to logical boundary groupings such as organizational units, business domains, etc, where the service architecture differentiates between the services provisioned for intra-unit consumption and those for inter-unit consumption and hence placed on the boundary. </div><div class="separator" style="clear: both; text-align: left;">Over time, services could potentially be re-classified as the boundary lines change.</div><div class="separator" style="clear: both; text-align: left;"><br />
<strong>Further Reading</strong></div><div class="separator" style="clear: both; text-align: left;"><br />
More on the concept of Automation Units and other key SOA deliverables can be found in</div><ul><li><a href="http://everware-cbdi.com/index.php?cID=34&cType=document">The Architecture Component of the CBDI-SAE Reference Framework for SOA</a></li>
<li><a href="http://everware-cbdi.com/index.php?cID=31&cType=document">Service Contracts in the Service Oriented Process</a></li>
<li><a href="http://everware-cbdi.com/index.php?cID=32&cType=document">Service Portfolio Planning and Architecture for Cloud Services</a></li>
</ul>See also <a href="http://msdn.microsoft.com/en-us/architecture/aa480028.aspx">Service-Oriented Architecture: Considerations for Agile Systems</a>. An article written by Richard and I for the Microsoft Architect Journal<br />
<ul></ul>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-10326580825662811272011-06-17T20:18:00.003+01:002011-06-17T20:23:07.903+01:00The Service Oriented CloudCloud Computing is intrinsically service-based. But this is not just in the highly generalized sense of the term ‘service’, but also in the more specific Service Oriented Architecture (SOA) use of the term, where capabilities are provided via published service interfaces. When Amazon CTO Werner Vogels describes the Cloud as "a collection of services", in AWS terms the capabilities provided are SOA-style software services, complete with published Web Service interfaces.<br />
<br />
As well as the PaaS and IaaS capabilities provided by AWS or Microsoft's Azure for example, there are also SaaS capabilities provided by the likes of salesforce.com that can be consumed as software services.<br />
<br />
Hence the concept of the<b> Service Oriented Cloud</b> (SOC) illustrated below.<br />
<a name='more'></a><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiq1YgQ9iF3KdXCu7vayEeRMVXXYbXLr_XhfOfhnNwHZzCj6dJaPHOshnKRWyCA01gpyeg8Tk9LVYcltc3bs0uBPsa6sH2gsMxhqQFKWcC3lWHi23UefQSZThd7v6yWsW4Mj2jNlZsbAY/s1600/socsoafig1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="329" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiq1YgQ9iF3KdXCu7vayEeRMVXXYbXLr_XhfOfhnNwHZzCj6dJaPHOshnKRWyCA01gpyeg8Tk9LVYcltc3bs0uBPsa6sH2gsMxhqQFKWcC3lWHi23UefQSZThd7v6yWsW4Mj2jNlZsbAY/s640/socsoafig1.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Service Oriented Cloud</td><td class="tr-caption" style="text-align: center;"><br />
</td><td class="tr-caption" style="text-align: center;"><br />
</td></tr>
</tbody></table>Add in the software services provided by business partners, the government, and others, and it is possible to rapidy assemble agile solutions to support new business requirements from a collection of services from multiple federated providers.<br />
<br />
Though many of those business partner and government services might not be deployed using Cloud Computing today, it is important that their providers rapidly consider this option. As more and more businesses become service-based (that is, as a business, not just from an IT, software perspective), then Cloud Computing becomes increasingly relevant to the business, not just IT.<br />
<br />
The service-based business needs to be elastic, able to scale capabilities such as manufacturing in line with demand. The Service-based business therefore outsources non-core capabilities to specialist business service providers. It participates in global supply chains leveraging the business services provided by its business partners. It constantly seeks additional or alternative sources of capability to improve quality, reduce cost, or to support new requirements.<br />
<br />
To operate in near real-time, and reduce operational expenditure, the service-based business must be highly automated. Hence the IT solutions that enable the service-based business are assembled from the software services offered by multiple providers. In turn, the service-based business must also offer software services to its own partners and customers.<br />
<br />
Consequently, the service providers need to ensure that their services are similarly elastic, and hence deployed using Cloud Computing.<br />
<br />
<b>Service-Based Thinking</b><br />
<br />
The inherent nature of SOA in cloud architecture means service-based thinking permeates across the architecture views.<br />
<ul><li><b>Service-based Business.</b> Business products, process and capabilities as a collection of Business Services. Enabling transformation to the virtual business and its processes, assembled from a collection of business services from multiple federated providers.</li>
<li><b>Service-based Applications.</b> Applications as a collection of Software Services. Where the business is supported by application solutions orchestrating a collection of software services from multiple federated providers.</li>
<li><b>Service-based Infrastructure.</b> Infrastructure capabilities as a collection of Infrastructure Services. Where applications are deployed by orchestrating a collection of platform and infrastructure services from multiple federated providers.</li>
</ul><br />
It might be easy to conclude that SOA was yesterday’s issue. In fact according to some pundits SOA is dead and business transformation, application and IT modernization, and Cloud Computing are more fashionable terms today. But SOA hasn’t gone away! Achieving business improvement, modernized applications and leveraging cloud computing requires a solid foundation based on SOA. Most larger organizations have already adopted SOA to some extent, but few have achieved the critical mass that delivers on the original SOA vision. Moreover, organizations need to understand that all roads <i>still</i> lead to SOA. This is the key architectural style that is intrinsic to all strategic initiatives that will deliver radical improvements in cost and agility.<br />
<br />
You can read more on these concepts and the importance of SOA in a research note I have authored.<br />
<br />
Read <a href="http://everware-cbdi.com/socsoa">In the Service Oriented Cloud, All Roads Lead to SOA </a>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-73215111559205611882011-06-13T13:43:00.002+01:002011-06-13T16:47:17.823+01:00Cloud Computing Reference Architectures, Models and Frameworks<span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited" id="plgslt_Main_Slot_1-wrap">There are a plethora of different reference architectures, models and frameworks for Cloud Computing (CC). As well as several vendors such as IBM or CISCO, it seems every standards or industry body has to have their own reference "thing" too. Hence there are architectures from DMTF, CSA, SNIA and the Open Group (which has been submitted by IBM) as well as several seemingly competing federal initiatives. NIST, who have established the de facto definitions of CC and the service and deployment models also have a <a href="http://collaborate.nist.gov/twiki-cloud-computing/pub/CloudComputing/ReferenceArchitectureTaxonomy/NIST_CC_Reference_Architecture_v1_March_30_2011.pdf">draft CC Reference Architecture</a>. </span><br />
<br />
<span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited">So which one should an organization adopt? Of course there’s no straightforward answer to that question and so I have published a research note on <a href="http://everware-cbdi.com/">Everware-CBDI</a> to provide guidance on how to organize some of the best ideas that are emerging in a practical structure that should stand the test of time.</span><br />
<span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited"></span><br />
<a name='more'></a><span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited"><span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited" id="plgslt_Main_Slot_1-wrap"><br />
</span></span><br />
<span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited"><span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited" id="plgslt_Main_Slot_1-wrap"></span></span><br />
<span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited"><span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited" id="plgslt_Main_Slot_1-wrap"><h2><span style="font-size: small;">Reference ‘Things’</span></h2>A Reference Architecture (RA) “should” provide a blueprint or template architecture that can be reused by others wishing to adopt a similar solution. A Reference Model (RM) should explain the concepts and relationships that underlie the RA. At Everware-CBDI we then use the term Reference Framework (RF) as a container for both. Reference architectures, models and frameworks help to <a href="http://everware-cbdi.com/index.php?cID=78&cType=document">make sense of Cloud Computing.</a><br />
<br />
Unfortunately, such formality is absent from the various reference architectures, models and frameworks that have been published for Cloud Computing; these frequently mix elements of architecture and model, and then apply one of the terms seemingly at random.<br />
<br />
In developing the <a href="http://everware-cbdi.com/cbdi-sae-framework">CBDI-Service Architecture and Engineering Reference Framework</a> (SAE) in support of SOA (Service Oriented Architecture) Everware-CBDI separated out various parts as shown in figure 1. We developed a detailed <a href="http://everware-cbdi.com/index.php?cID=34&cType=document">RA for SOA</a> and a RM for SOA, with particular emphasis on a rich and detailed <a href="http://everware-cbdi.com/mm-v3">Meta Model for SOA</a> and a <a href="http://everware-cbdi.com/index.php?cID=28&cType=document">Maturity Model for SOA</a>. We also developed a detailed process and task decomposition for SOA activities.<br />
<br />
But the RF is easily generalized, as shown in figure 1, where the various elements could be applied to any domain, and explicit references for example to “SOA Meta Model” or “SOA Standards” etc., can be removed.<br />
</span><span class="tribiq_slotWithContents tribiq_slotWithContentsCanBeEdited" id="plgslt_Main_Slot_1-wrap"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL_tHNZEKpP4dJeTHXXC3hKvJIHYxeLZimdbaidaQqr423po183aRjuiPL1Hd3Ra17kzh7XEPj4ecI1-Fg4sj_9iat7NwyRCkA70edPQIBKhmfrONw0VYWK6df3x1QrGE_6_gCxDS8FYo/s1600/generalized+RF+%2528500x359%2529.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL_tHNZEKpP4dJeTHXXC3hKvJIHYxeLZimdbaidaQqr423po183aRjuiPL1Hd3Ra17kzh7XEPj4ecI1-Fg4sj_9iat7NwyRCkA70edPQIBKhmfrONw0VYWK6df3x1QrGE_6_gCxDS8FYo/s400/generalized+RF+%2528500x359%2529.jpg" width="400" /></a></div><div style="text-align: center;"><strong>Figure 1 – Generalized Reference Framework</strong></div><br />
The benefit of this approach is that elements of the framework can then be mapped to each other in different ways to support alternative perspectives such as different usage or adoption scenarios, or the viewpoint of an individual participant or organization. Whereas most of the Cloud Computing Reference architectures, models and frameworks proposed today apply to a single perspective.<br />
<br />
<h2><span style="font-size: small;">Current Cloud Computing Reference Architecture, Models and Frameworks</span></h2><br />
As discussed there are many frameworks and models to choose from. It is not our intention to detail and critique them all individually. Credit must go to NIST who have already done much of that in their 2010 <a href="http://collaborate.nist.gov/twiki-cloud-computing/pub/CloudComputing/Meeting1AReferenceArchitecture011011/NIST_CCRATWG_004_ExistentReferenceModels_010311.pdf">Survey of Cloud Architecture Reference Models</a>.<br />
<br />
We may classify Cloud reference models as one of two styles, either<br />
<br />
<ul><li>Role-Based. Where activities or capabilities are mapped to roles such as cloud provider or consumer. For example,</li>
<ul><li><a href="http://www.dmtf.org/sites/default/files/standards/documents/DSP-IS0102_1.0.0.pdf">DMTF Cloud Service Reference Architecture</a></li>
<li><a href="https://www.opengroup.org/cloudcomputing/uploads/40/23840/CCRA.IBMSubmission.02282011.doc">IBM Cloud Computing Reference Architecture</a> (which has been submitted to the Open Group)</li>
<li><a href="http://collaborate.nist.gov/twiki-cloud-computing/pub/CloudComputing/ReferenceArchitectureTaxonomy/NIST_CC_Reference_Architecture_v1_March_30_2011.pdf">NIST Cloud Computing Reference Architecture</a></li>
</ul><li><strong>Layer-based.</strong> Where activities or capabilities are mapped to layers in an architecture such as application or resource layers or to the service management architecture or security architecture </li>
<ul><li><a href="https://cloudsecurityalliance.org/">Cloud Security Alliance</a> Reference Model is one of many layered models showing the cloud ‘stack</li>
<li><a href="http://www.cisco.com/en/US/solutions/collateral/ns340/ns517/ns224/ns836/ns976/white_paper_c11-617239.html">CISCO Cloud Reference Architecture Framework</a> is an architecture of architecture, placing Cloud on top of layers of Service, Security and Technology architectures</li>
<li><a href="http://www.ietf.org/id/draft-khasnabish-cloud-reference-framework-00.txt">IEFT Cloud Reference Framework</a> goes into more depth, showing the capabilities for each layer.</li>
</ul></ul>Analysis of the these shows that they typically contain,<br />
<ul><li>Roles – that would be better placed in the Organization section of an RF</li>
<li>Activities – which would be part of the Process Model</li>
<li>Layered Architecture – which would be part in the Reference Architecture</li>
</ul>Used this way, the generalized RF in figure 1 becomes a useful tool to analyze proposed Cloud Computing Reference architectures, models and frameworks in terms of understanding better what they actually contain, and a basis for development of an enterprise specific framework.<br />
<br />
Continued in <a href="http://everware-cbdi.com/ccrfam">Everware-CBDI Research Note</a> - Cloud Computing elements placed in generic CCRF, mapping capabilities to roles, process to roles, and recommendations</span></span>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-45226230511941132132011-06-09T09:40:00.003+01:002011-06-09T10:45:25.947+01:00UML Profiles in Visual Studio 2010UML Profiles are supported in Visual Studio 2010 (VS2010). Here I examine how they work and whether our <a href="http://everware-cbdi.com/umlprofile-v3">CBDI-SAE UML Profile for SOA</a> (SAE Profile) can be used in VS2010<br />
<a name='more'></a><br />
<br />
<strong>Creating a UML Profile in VS2010</strong> <br />
<br />
See MSDN for instructions on <a href="http://msdn.microsoft.com/en-us/library/dd465143.aspx">how to define a profile to extend UML</a> in VS2010 and then add the profile to a model.<br />
<br />
Here’s a simple profile I created in VS2010 covering two stereotypes from the SAE Profile - “Automation Unit” and “AU Dependency”. (an Automation Unit is the collection of software artifacts that provide a Service)<br />
<br />
Unlike <a href="http://www.sparxsystems.com.au/products/ea/index.html">Sparx Systems’ Enterprise Architect</a> (EA) that we have used to develop the SAE Profile, the Stereotypes don’t appear in the toolbox so they cannot be added directly to the diagram. Instead you add a Class or Dependency to the diagram, and then chose a Stereotype for it. The figure below shows the Stereotypes for Dependency, and the properties and values that can be set. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJUW4mxnLz_qQC_Y4DXXbieTePFDfVtfPz_Ca8cLlr_Q5sa7d_KI5cCmxB_R6PDtgAMmGWlRepZa54b5TYwuHp52405IYeVBDVZK8gNhTzohfqZqLK4_8m59ZGiUoUtZhhvRFQ_nFUX0g/s1600/VS2010+capture.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJUW4mxnLz_qQC_Y4DXXbieTePFDfVtfPz_Ca8cLlr_Q5sa7d_KI5cCmxB_R6PDtgAMmGWlRepZa54b5TYwuHp52405IYeVBDVZK8gNhTzohfqZqLK4_8m59ZGiUoUtZhhvRFQ_nFUX0g/s640/VS2010+capture.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Use of UML Profile in VS2010</td></tr>
</tbody></table>And here is the schema,<br />
<br />
<br />
<br />
<div style="height: 300px; overflow: auto; width: 700px;"><table cellpadding="0" cellspacing="0" style="width: 650px;"><tbody>
<tr> <td><span style="font-family: Arial, Helvetica, sans-serif; font-size: small;"><code><br />
<?xml version="1.0" encoding="utf-8"?><br />
<profile dslVersion="1.0.0.0" <br />
name="SAEProfile" displayName="SAE Profile" <br />
xmlns="http://schemas.microsoft.com/UML2.1.2/ProfileDefinition"><br />
<stereotypes><br />
<stereotype name="AUDependency" displayName="AU Dependency"><br />
<metaclasses><br />
<metaclassMoniker name="/SAEProfile/Microsoft.VisualStudio.Uml.Classes.IDependency" /><br />
</metaclasses><br />
<properties><br />
<property name="AUDsource" displayName="AUD source" default=""><br />
<propertyType><br />
<enumerationTypeMoniker name="/SAEProfile/AUDsource"/><br />
</propertyType><br />
</property><br />
<property name="AUDtype" displayName="AUD type" default=""><br />
<propertyType><br />
<enumerationTypeMoniker name="/SAEProfile/AUDtype"/><br />
</propertyType><br />
</property><br />
</properties><br />
</stereotype><br />
<stereotype name="AutomationUnit" displayName="Automation Unit"><br />
<metaclasses><br />
<metaclassMoniker name="/SAEProfile/Microsoft.VisualStudio.Uml.Classes.IClass" /><br />
</metaclasses><br />
<properties><br />
<property name="AUhasEmbeddedDataStore" displayName="AUhasEmbeddedDataStore" default=""><br />
<propertyType><br />
<externalType name="/SAEProfile/System.Boolean" /><br />
</propertyType><br />
</property><br />
<property name="AUisDistributedPart" displayName="AUisDistributedPart" default=""><br />
<propertyType><br />
<externalType name="/SAEProfile/System.Boolean" /><br />
</propertyType><br />
</property><br />
<property name="AUname" displayName="AUnam" default=""><br />
<propertyType><br />
<externalType name="/SAEProfile/System.String" /><br />
</propertyType><br />
</property><br />
<property name="AUrequirement" displayName="AUrequirement" default=""><br />
<propertyType><br />
<externalType name="/SAEProfile/System.String" /><br />
</propertyType><br />
</property><br />
<property name="AUtype" displayName="AUtype" default=""><br />
<propertyType><br />
<enumerationTypeMoniker name="/SAEProfile/AUtype" /><br />
</propertyType><br />
</property><br />
</properties><br />
</stereotype><br />
</stereotypes><br />
<metaclasses><br />
<metaclass name="Microsoft.VisualStudio.Uml.Classes.IDependency" /><br />
<metaclass name="Microsoft.VisualStudio.Uml.Classes.IClass" /><br />
</metaclasses><br />
<propertyTypes><br />
<externalType name="System.String" /><br />
<externalType name="System.Boolean" /><br />
<enumerationType name="AUtype"><br />
<enumerationLiterals><br />
<enumerationLiteral name="component" displayName="component"/><br />
<enumerationLiteral name="quasiComponent" displayName="quasiComponent"/><br />
<enumerationLiteral name="wrapper" displayName="wrapper"/><br />
<enumerationLiteral name="script" displayName="script"/><br />
<enumerationLiteral name="BPEL" displayName="BPEL"/><br />
</enumerationLiterals><br />
</enumerationType><br />
<enumerationType name="AUDsource"><br />
<enumerationLiterals><br />
<enumerationLiteral name="fromServiceSpec" displayName="fromServiceSpec"/><br />
<enumerationLiteral name="designChoice" displayName="designChoice"/><br />
<enumerationLiteral name="fromAUSpec" displayName="fromAUSpec"/><br />
</enumerationLiterals><br />
</enumerationType><br />
<enumerationType name="AUDtype"><br />
<enumerationLiterals><br />
<enumerationLiteral name="requiredType" displayName="requiredType"/><br />
<enumerationLiteral name="requiredIntegrity" displayName="requiredIntegrity"/><br />
<enumerationLiteral name="create" displayName="create"/><br />
<enumerationLiteral name="implementationOnly" displayName="implementationOnly"/><br />
<enumerationLiteral name="exclusiveService" displayName="exclusiveService"/><br />
<enumerationLiteral name="exclusiveDeployment" displayName="exclusiveDeployment"/><br />
<enumerationLiteral name="exclusiveInstance" displayName="exclusiveInstance"/><br />
<enumerationLiteral name="nonServiceDependency" displayName="nonServiceDependency"/><br />
</enumerationLiterals><br />
</enumerationType><br />
</propertyTypes><br />
</profile><br />
</code></span></td> </tr>
</tbody></table></div><br />
<br />
<br />
<br />
<strong>Importing the SAE Profile</strong><br />
<br />
In VS2010 you can either create the UML Profile as a Visual Studio Extension as I did above or import an existing UML Profile in an XMI format. As the SAE Profile is available XMI format I tried importing it but unfortunately came up against some limitations.<br />
<br />
The first major one is that we use generalization heavily in the SAE Profile. However, this is not supported in VS2010 and consequently generates the following warning,<br />
<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif; font-size: x-small;">Message : The following element was not imported: SAE Profile::Automation Unit Specification::Generalization. This element has the following type: Generalization. Line 30, position 4.</span><br />
<br />
As a consequence this means many of the key elements of the SAE Profile are not imported. In the SAE Profile Automation Unit for example is a type of Participant (which is used for mapping to SoaML).<br />
<br />
Next it seems that a bug in the import means that enumerations are not imported. Enumerations are used to define the permitted values for properties. We have thousands of enumerations in our profile...<br />
<br />
Hopefully Microsoft will improve this in subsequent releases. I am grateful to <a href="http://blogs.msdn.com/b/stevecook/">Steve Cook</a> at Microsoft for helping me to try and import the SAE Profile.<br />
<br />
In turn we are also migrating the UML model of the SAE Profile from EA over to No Magic’s Magic Draw. We need to do this in order to get support for XMI 2.2, whereas EA only supports 2.1. XMI 2.2 is required by IBM Rational tools, which has been popular in the past amongst our SAE Profile users, but the requirement for XMI 2.2 means that it cannot currently be imported. We will look to see if Magic Draw can also export a format that imports better to VS2010. With thousands of elements in the SAE Profile, trying to convert it to VS2010’s own proprietary profile format would take a fair bit of effort.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-20471736962801952942011-06-07T11:53:00.000+01:002011-06-07T11:53:06.439+01:00Trialing Microsoft Office 365 BetaCurrently trialing the Microsoft Office 365 Beta. It seems tailored made for small businesses like us. Like many small businesses, we already rely on several disparate hosted services such as email, a SharePoint for collaboration, Skype, Webex, plus some use of Google Docs, and so on, all of which are supplied by different providers, resulting in incompatibilities, lack of integration, multiple signons, etc.<br />
Bringing together all these capabilities under one roof seems attractive. It will also help to ensure everyone is using Office 2010 (no more need to save as 2003!).<br />
Will update as we use it more.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-21943027489393082672011-05-27T11:11:00.001+01:002011-06-07T15:58:32.306+01:00Everware-CBDI plays key role in developing ACT-IAC white paper on Enterprise Architecture and Cloud ComputingUnder the auspices of ACT-IAC’s Enterprise Architecture SIG, my colleague Dave Mayo, the President of Everware-CBDI, has led a team in the development of a white paper explaining the role of EA in Cloud Computing. The paper explores architectural issues, management issues and tools for decision making regarding cloud deployments. The fundamental finding is that the prerequisite to success with cloud computing is the establishment of a Service Oriented Architecture that identifies the services deployed to the cloud and how they may be accessed.<br />
<br />
<a href="http://www.actgov.org/knowledgebank/whitepapers/Documents/Shared%20Interest%20Groups/Enterprise%20Architecture%20SIG/Role%20of%20EA%20in%20Federal%20Cloud%20Computing%20-%20EA%20SIG-%2001-2011.pdf">Click to access</a> the White Paper on the ACT-IAC website. (Word)<br />
or view as HTML on the <a href="http://semanticommunity.info/Federal_SOA/11th_SOA_for_E-Government_Conference_April_12_2011/The_Role_of_Enterprise_Architecture_in_Federal_Cloud_Computing">Semantic Community</a>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-31848027488764516932011-05-26T17:58:00.002+01:002011-05-26T18:11:22.979+01:00Windows Azure - Making Migration to the Cloud Seamless?This week I attended a Microsoft <a href="http://uktechdays.cloudapp.net/">UK Tech Days</a> (a sort of local version of TechEd) on building and deploying applications onto the <a href="http://www.microsoft.com/windowsazure/">Windows Azure</a> cloud platform. In typical TechEd style, once a few positioning slides had been quickly dispensed with it was down to business with a deep dive into the code and admin tools. Though my day job isn't as a professional developer, as a consultant and architect I like to know enough about how these things really work.<br />
<br />
I came away impressed with just how seamless they are making the migration of applications to the cloud.<br />
<br />
<a name='more'></a><br />
Fundamentally, what Azure does is provide Windows Server and SQL Server as a "Platform as a Service" (PaaS). Consequently, existing Windows applications, or parts of them, can be redeployed to the cloud with a minimum of effort.<br />
<br />
Several deployment 'patterns' were demonstrated through the day that really highlighted the power of Azure. Want the code in the cloud, but keep the data in house? No problem. Want the reverse? No problem either. Want to keep those thick client applications but move the Access database they share to the Cloud? Straightforward too.<br />
<br />
What this bought home to me is that the vision that we have promoted for over 15 years now at CBDI Forum that through well designed component and service architectures, then a seamless agile deployment environment should be possible, is now not only finally becoming reality, but is also being provided at low cost, and low investment, rather than via some expensive premium product price tag that you might often expect leading edge technology to come with.<br />
<br />
For those building greenfield apps, then this ease with which existing systems can be migrated will clearly not have the same appeal. <a href="http://code.google.com/appengine/">Google App Engine </a>or <a href="http://aws.amazon.com/">Amazon AWS</a> will appear to provide an viable alternative. However, the seamless redeployment of the components of the system that Azure provides as outlined above still applies to new systems as well. The ability for example to bring the database back in-house, or to integrate existing in-house databases with new cloud databases should still be relevant. The ease with which this can be achieved via Windows and Windows Azure was impressive.<br />
<br />
The complete feature set of Windows Server and SQL Server may not be fully available in Azure yet, but regardless it still worthy of consideration as is, and Microsoft were able to highlight a number of case studies of customers already taking advantage of Azure.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-61466723438370446122011-05-10T12:22:00.000+01:002011-05-10T12:22:54.335+01:00CBDI-SAE UML Profile for SOA V3 Now AvailableThanks to the hard work of my colleague <a href="http://www.linkedin.com/in/johncbutler">John Butler</a>, the latest version of our <a href="http://everware-cbdi.com/umlprofile-v3">CBDI-SAE UML profile for SOA</a> is now freely available for download. This impliments V3 of our CBDI-SAE Meta Model for SOA.<br />
<br />
This enables the full lifecycle of SOA to be modeled in UML, enabling SOA artifacts to be associated with both business models at the begining of the lifecycle, through to deployment at the end.<br />
<br />
John has also authored a useful introduction to using the SAE profile and walks through the process of modeling a service specification architecture. This is also available for download.<br />
<br />
Download now at <a href="http://everware-cbdi.com/umlprofile-v3">http://everware-cbdi.com/umlprofile-v3</a>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-74303900339111145892011-02-06T14:50:00.011+00:002011-03-01T11:53:13.381+00:00Cloud Computing. Are Utility and Cloud Computing really analogous to traditional utilities?The analogy is often made between utility computing and other ‘traditional’ utilities such as electricity, gas, water, and telephone. The same analogy is now being made with cloud computing. At a high level this makes sense. In the same way there is no need for each individual or company to operate their own power plant, do they really need to operate their own computers? Why invest in the capital equipment to provide a computing capability if it can be piped into the premises and purchased ‘on demand’? The opportunities for economies of scale, the centralization of expertise, increased reliability and scalability all make perfect sense.<br />
<br />
However, as Nicholas Carr also recognizes in his book “The Big Switch”, analogies often break down once you move to another level of detail as highlighted in the table below. Here we need to understand the difference between the utility (e.g. electricity) and the application of that utility (e.g. cooking).<br />
<a name='more'></a><br />
<table style="width: 100%;"><tbody>
<tr><td valign="top"><strong><span style="font-size: x-small;">Factor </span></strong></td><td valign="top"><strong><span style="font-size: x-small;">‘Traditional’ Utility </span></strong></td><td valign="top"><strong><span style="font-size: x-small;">Utility/Cloud Computing</span></strong></td><td valign="top"><strong><span style="font-size: x-small;">Impact </span></strong></td></tr>
<tr><td valign="top"><strong><span style="font-size: x-small;">Co-location of capabilities </span></strong></td><td valign="top"><span style="font-size: x-small;">Whilst the utility service might be produced ‘off-premise’, its </span><span style="font-size: x-small;">application is very much ‘on-premise’. That is, the electricity might be </span><span style="font-size: x-small;">produced at a power plant, but it powers my oven in my home. Nor do I </span><span style="font-size: x-small;">need visit the nearest water treatment plant to take a bath. (Putting </span><span style="font-size: x-small;">the notions of restaurants and public bath houses to one side...) </span></td><td valign="top"><span style="font-size: x-small;">Both the utility and its application are ‘off-premise’. That is, not </span><span style="font-size: x-small;">only is the raw utility – compute and storage – located ‘off-premise’, </span><span style="font-size: x-small;">but so are the software applications and data hosted on it. </span></td><td valign="top"><span style="font-size: x-small;">Disruption in supply means also a disruption of application. Not only is supply of </span><span style="font-size: x-small;">the utility dependent on a 3rd party, so is its application. I can’t </span><span style="font-size: x-small;">swap to an alternative utility source (e.g. batteries), because I have </span><span style="font-size: x-small;">lost the application as well. How this risk compares to having one or </span><span style="font-size: x-small;">both on-premise requires assessment. </span></td></tr>
<tr><td valign="top"><strong><span style="font-size: x-small;">Portability </span></strong></td><td valign="top"><span style="font-size: x-small;">Though utility suppliers might be monopolistic in some countries or </span><span style="font-size: x-small;">states, the application of it (e.g. powering my oven) is pretty much </span><span style="font-size: x-small;">portable between them. Utilities all supply the same raw product. Whilst </span><span style="font-size: x-small;">voltage might vary by continent, electricity is electricity. If I change </span><span style="font-size: x-small;">my electricity supplier at home I do not have to buy a new oven. </span></td><td valign="top"><span style="font-size: x-small;">Other than in its most basic form – an empty un-purposed server – </span><span style="font-size: x-small;">many utility/cloud capabilities vary from supplier to supplier, even </span><span style="font-size: x-small;">though supporting the same underlying concept. There are few standards </span><span style="font-size: x-small;">in terms of the capability provided, and no standard interfaces. </span></td><td valign="top"><span style="font-size: x-small;">Lock-in. Moving between suppliers is far from as simple as when </span><span style="font-size: x-small;">changing traditional utilities. </span></td></tr>
<tr><td valign="top"><strong><span style="font-size: x-small;">Separation of concerns </span></strong></td><td valign="top"><span style="font-size: x-small;">There are very good levels of separation between utility supply and </span><span style="font-size: x-small;">its application. If I change </span><span style="font-size: x-small;">my electricity supplier I am not </span><span style="font-size: x-small;">constrained to only cook a certain brand of food as a consequence. </span></td><td valign="top"><span style="font-size: x-small;">Utility/cloud supplier’s stacks tend to be highly dependent. I may </span><span style="font-size: x-small;">not be easily able to combine a capability in one layer of the stack </span><span style="font-size: x-small;">from one supplier with a capability in a different layer from another </span><span style="font-size: x-small;">supplier. </span></td><td valign="top"><span style="font-size: x-small;">Lock-in. Buying one capability from the utility/cloud supplier may </span><span style="font-size: x-small;">limit you to buying associated capabilities only from the same supplier. </span><br />
<span style="font-size: x-small;">As well as lack of portability, there is lack of interoperability, </span><span style="font-size: x-small;">either at a coarse or fined grained level. </span></td></tr>
</tbody></table><br />
So there is a breakdown of the analogy. Utility implies a fairly generic capability, but Cloud Computing is not always providing this. Applying the term to more specific capabilities might help people understand the business case, but they shouldn’t misunderstand the possible impact of their dependency upon them. However, this does not imply that cloud and utility computing are unable to deliver the promised benefits, providing the risks are assessed correctly.<br />
<br />
To understand these risks better, and to help make the assessment, I have provided a framework for understanding the different models of utility and cloud computing and assessing them based on variety of factors.<br />
<br />
See my reports <a href="http://everware-cbdi.com/index.php?cID=78&cType=document">Making Sense of Cloud Computing</a> and also <a href="http://everware-cbdi.com/index.php?cID=32&cType=document">Service Portfolio Planning and Architecture for Cloud Services</a> (both free on registration)Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-51266990754582103562011-01-30T09:12:00.001+00:002011-01-30T09:12:59.067+00:00Making Sense of Cloud ComputingThe terms virtualization, utility computing and Cloud computing are often used interchangeably which can be very confusing. A new report I have just authored aims to provide clarification - to identify the similarities and differences in those characteristics, and provide a framework in which organizations can decide which capabilities they require in specific situations – as it is unlikely that one model alone will suit all their requirements.<br />
A visitor from outer space would be forgiven for thinking that virtualization, utility computing and Cloud computing are different capabilities. But most of us understand that many product and service offerings use the terms rather casually and the trend is to assume they are all describing the same thing, where virtualization is synonymous with utility computing which is synonymous with Cloud. Some might say these are just steps in the evolutionary process – where utility has simply evolved into Cloud.<br />
So, are they the same or different? Can the terms be used interchangeably, or are there clear distinctions between them?<br />
<br />
The answer is not straightforward. There are clearly some common, overlapping characteristics that allow the terms to be used interchangeably. But at the same time there are other characteristics that enable them to be distinguished from each other.<br />
<br />
The report aims to provide clarification. To identify the similarities and differences in those characteristics, and provide a framework in which organizations can decide which capabilities they require in specific situations – as it is unlikely that one model alone will suit all their requirements.<br />
<br />
<a name='more'></a>Capabilities<br />
<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">What capabilities are provided by utility and Cloud computing, and where does virtualization fit in? The figure below shows a layered ‘stack’ of IT capabilities and the relationships to Cloud Computing and Utility Computing capabilities.</div> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ZdjHqDjZFhz9dWLHuI6Q_hlncP_T2lUiiB8aPuGKf4JxDSvEa_HXAcnBdLCpvFmBjZlXUVuyrxfJCOircUIVY6cIUjiCuSRpxbaOgIVneJKnfFmf2j4WEDNHgoyoqACka5A9ECvNbW0/s1600/MSCCFig1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="227" s5="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2ZdjHqDjZFhz9dWLHuI6Q_hlncP_T2lUiiB8aPuGKf4JxDSvEa_HXAcnBdLCpvFmBjZlXUVuyrxfJCOircUIVY6cIUjiCuSRpxbaOgIVneJKnfFmf2j4WEDNHgoyoqACka5A9ECvNbW0/s400/MSCCFig1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Utility and Cloud Computing Classification</td></tr>
</tbody></table> <br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">Utility Computing is the provision of infrastructure capabilities such as the server and operating system, compute capability, and storage on a pay as you go (PAYG) basis. In many cases utility computing utilizes server virtualization.</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><br />
</div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">As the figure illustrates, Cloud Computing equates to Utility Computing in terms of the capabilities provided. As mentioned earlier, some might see this as a trend with Cloud terminology simply replacing utility. But Cloud Computing can provide these capabilities on a finer-grained basis that was typically the case with Utility Computing. Cloud also raises the levels of abstraction, providing a higher level of interaction for the consumer via utilities and a management layer that can make them easier to use than raw infrastructure, and provides complete virtualization of resources, usually with self-service provisioning on a multi-tenancy basis. In Cloud terminology these infrastructure resources are provided as Infrastructure as a Service (IaaS).</div><br />
<em>Note we are happy to recommend the NIST definitions of Cloud Computing, which we covered in a <a href="http://everware-cbdi.com/index.php?cID=32&cType=document">previous report</a>.</em><br />
<br />
Security capabilities such as authentication and identification, and networking and mediation capabilities such as message delivery, routing and transformation can also be seen as part of Utility Computing and also classified as IaaS. These capabilities can be combined together into a ‘platform’ and classified as Platform as a Service (PaaS). PaaS provides the IaaS capabilities via a higher layer of utilities, and not directly. Hence the PaaS can be said to encapsulate the IaaS capabilities. <br />
<br />
Layered on top of the platform are the applications or ‘business’ capabilities. These might be broken down into client, business process and business function capabilities, but more often than not are packaged together as an application. Cloud providers don’t normally distinguish between them, and hence they are typically combined as Software as a Service (SaaS), regardless of the granularity or separation of layers. <br />
<br />
The exception to this is Business Process as a Service (BPaaS). This is an emerging layer in which process assembly is offered as a service which allows the consumer to orchestrate services from disparate sources. BPaaS is therefore a specialization of SaaS.<br />
<br />
PaaS is also used to characterize a suite (hence ‘platform’) of application functions that are exposed as service interfaces. For example Google Apps or Salesforce.com provide PaaS capabilities in addition to their core SaaS capability, to expose specific interfaces as a ‘platform’ on which consumers can assemble a custom application.<br />
<br />
The use of PaaS and SaaS may be abused, and we advise that you interpret the capability offered on the basis of level of access and control - that is SaaS delivers applications with no opportunity to manage or control the underlying infrastructure or application capabilities. In contrast PaaS provides control over the deployed application and possibly the hosting environment.<br />
<br />
Their use may also be seen as contextual. That is, as an end user of Google Apps the context would be SaaS, but as a developer using Google Apps as a platform on which to implement a new application, the context would be PaaS.<br />
<br />
Use of a higher layer in the stack usually means the lower layers are inherited. Typically there is no separation of supplier down through the layers from the consumer perspective. That is, whilst the SaaS provider may in turn use a different IaaS or PaaS provider, this is transparent to the SaaS consumer. The exception here is BPaaS which we think qualifies it as a specialization precisely because it allows orchestration of disparate capabilities.<br />
<br />
The term virtualization spans all of these capability layers. Cloud computing environments virtualize the capability at its highest level of abstraction in order to make the underlying resources location independent, more scalable, resilient, and so forth. In the Cloud context, virtualization is a generic term and it may be expected that server virtualization and server clustering technologies provided by platform vendors will be used to provision individual capabilities and resources supporting the Cloud service.<br />
<br />
However, the same virtualization technologies may be employed wholly within an organization’s own private data centre, and so are not necessarily used to support Cloud behaviors (multi-tenancy etc.). Equally in house virtualization which is deployed with multi-tenant elasticity may reasonably be relabeled as a private Cloud.<br />
<br />
Enabling virtualization is usually a necessary first step towards utilizing both utility and Cloud computing. If resources cannot be virtualized, how can they be deployed to the Cloud?<br />
<br />
<strong>Characteristics</strong> <br />
<br />
<br />
Most large enterprises will be commencing use of Cloud, but inevitably they will have a spectrum or continuum of capabilities deployed which span server virtualization, utility and Cloud computing. For most enterprises an early objective of Cloud initiatives will be to rationalize and modernize existing assets. A table I have compiled therefore provides a set of nomenclature which may assist in documenting and classifying existing and planned technology assets.<br />
<br />
As well as considering virtualization, utility and Cloud, I have also included the notion of an outsourced data centre as a further option that many organizations will use. How does this compare to Cloud and Utility? I have also distinguished between public and private Clouds. A private Cloud will provide both utility and application capabilities. As the table shows, in some respects it might be hard to distinguish a private Cloud from a traditional data centre, or the outsourced data center if administered by a 3rd party. However, if it exhibits distinguishing Cloud features such as metering usage on a PAYG basis, providing capability on a fine-grained basis through an easier to administer interface, then it can be identified as a different model. You could further distinguish between Private PaaS/IaaS and Private SaaS provisions, but I don’t think that adds much to the model, as the only difference is the capability offered.<br />
<br />
But beware provider organizations that may have merely relabeled these deployed assets with a more fashionable term! <br />
<br />
<strong>Continued in the </strong><a href="http://everware-cbdi.com/index.php?cID=78&cType=document"><strong>PDF version of the report</strong></a><strong> (free on registration)</strong> <br />
<br />
The full report contains the table of characteristics discussed above plus a set of decision criteria and risk assessments that organizations should take into account when considering utility and cloud computing options. <br />
<br />
<strong>You can also download the </strong><a href="http://everware-cbdi.com/cbdi-journal-index"><strong>complete CBDI Journal</strong></a><strong> which this month contains an associated report looking at Business Driven Cloud Strategy.</strong>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-35278611195449866932011-01-06T14:44:00.004+00:002011-01-06T15:04:48.584+00:00ESB - Everyone's Silver Bullet?Given its prominence in any discussions around SOA for several years, you might think that by now everyone has acquired an Enterprise Service Bus (ESB). However, it is clear that there is still ongoing discussion about the need for an ESB, and questions still remain as to what exactly an ESB is. Cloud computing seems to have renewed interest in the topic. In the same way that people asked "do I need an ESB to do SOA?", we now have "do I need an ESB to do Cloud Computing?" (at least amongst those who recognize that Cloud Computing is largely service-based).<br />
<br />
I sometimes think a better expansion of the abbreviation might be “Everyone’s Silver Bullet”, such is the perception that all you need to buy is an ESB and all your problems are solved. <br />
<a name='more'></a><br />
<div>I have long promoted the view that an ESB isn't a product as such, but a set of capabilities that you might assemble from various sources - either upgrading existing infrastructure, buying new components, or even building some yourself. Some of the capabilities might be embedded in the operating platform you use, or looking forward, you might consider some cloud-based ESB capabilities too.</div><br />
This debate promted me to create the following extract from a report I authored some time ago, but which still seems as relevant today as it did then.<br />
<br />
<strong>The role of SOA Middleware</strong><br />
<br />
<div>SOA middleware may seem an oxymoron. SOA is meant to free organizations from the tyranny of tightly coupled implementations, which in my mind includes creating dependences on middleware, not just application and platform-level dependencies.</div><br />
With support for Web Service protocols embedded in the Application Servers, and WS-STAR providing support for federated, secure, reliable, transactions between endpoints, why should there be a need for additional middleware? <br />
<br />
The reality is that existing benefits of a middleware approach still largely applies. SOA middleware can be used to:<br />
<ul><li>Separate concerns – remove middleware capability such as messaging and mediation away from applications. Though a modern platform can also assist in achieving this, such as Microsoft Windows Communications Framework (WCF)</li>
<li>Support Heterogeneity – separate capability away from OS/Platform specific functions</li>
<li>Provide a more agile environment where changes to infrastructure do not impact applications, or vice versa </li>
<li>Form part of a shared enterprise SOA infrastructure, rather than embedded in or specific to each application solution</li>
<li>Manage by policy, and manage centrally. It is easier to deploy and enforce policies through a layer of SOA infrastructure designed for this purpose.</li>
<li>Web Services are not the only protocol. Even when they do become widely used, most organizations will continue to use the existing middleware and other protocols already in use for some time. Hence SOA middleware often provides support for other protocols.</li>
</ul>A challenge for many organizations today, is that the capability required for SOA middleware and SOA infrastructure in general is that it is spread, and often duplicated across multiple products and technologies. In addition it is often found in a mixture of point solutions and specialist SOA products plus existing infrastructure that is typically upgraded to support SOA requirements. Whilst there may be some good reasons to consider new infrastructure products to support SOA, there is also a strong reason for many organizations to look at how they upgrade their existing infrastructure to support SOA – namely, that they already have it, and the existing infrastructure must remain in place to support existing requirements.<br />
<br />
<div>However, it is not as straightforward as depending on existing infrastructure. Although not an immediate concern for some organizations, SOA will place new demands on infrastructure capability that the existing infrastructure cannot so easily support. Longer term, the SOA infrastructure must itself become Service-based and able to be virtualized in the same way that is required of business capability. Even in the near term, organizations can gain advantage from using a networked approach to some SOA middleware requirements rather than using a hub and spoke approach that frequently exists today. Longer term, the federated SOA will make this a requirement.</div><br />
<strong>The ESB Spectrum</strong><br />
<br />
In earlier reports in our CBDI Journal I identified that there was no commonly agreed definition of an ESB, or a set list of functionality one might expect to find. Consequently, so called ESB products offer a spectrum of capability as shown in the table below. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis9-a6WYKJKUvfyHS7god9CLLDqvrNOZdtm6rYMLl9ByPzK6I1slTGnx8IZRnHynYNtAQWJS8TXV1McfttpE2r7FFCECbP14_PIfaYHAvWyJRRDlyDyno1w-0MXO4aYSbObJOu91lx5C0/s1600/ESB+Spectrum.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="504" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis9-a6WYKJKUvfyHS7god9CLLDqvrNOZdtm6rYMLl9ByPzK6I1slTGnx8IZRnHynYNtAQWJS8TXV1McfttpE2r7FFCECbP14_PIfaYHAvWyJRRDlyDyno1w-0MXO4aYSbObJOu91lx5C0/s640/ESB+Spectrum.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The ESB Spectrum</td></tr>
</tbody></table>At one extreme, ESB products may be little more than a broker, providing routing and transformation capabilities. At the other, ESB products can provide most of the SOA Infrastructure required. It is at this end of the spectrum that the most overlap occurs with other infrastructure domains. Ideally, the range of capabilities offered should be modular enabling organizations to assemble their SOA infrastructure from a range of best of breed capabilities. Unfortunately, not all vendors share a similar goal.<br />
<br />
<div>A well formed ESB can help organizations by providing the core mechanism to deliver SOA run-time agility. The role of ESB includes;</div><ul><li>Providing the mediation layer between service consumers and providers to enable loose coupling</li>
<li>Abstract hard coded transformation and routing of messages away from service consumers and providing resources – making the SOA easier to maintain, manage</li>
<li>Provide a central point of control for mediation and integration policy enforcement</li>
<li>Host Services within the SOA itself</li>
<li>Depending on the ESB implementation</li>
<ul><li>Provide declarative approach to defining mediations</li>
<li>Provide dynamic mediation</li>
<li>Provide policy driven mediation</li>
<li>Provide mediation based on current and emerging open standards such as WS-protocols, WSBPEL, JMS, JBI</li>
</ul><li>Provide on/off ramps for multiple transport and message types</li>
<li>Orchestration of Services</li>
</ul>As already mentioned, the capabilities required will be found in a variety of products and technologies. This will include the Operating System or Platform that hosts the services and automation units, or new SOA infrastructure such as the Enterprise Service Bus. Capabilities will also be found in new Web Service Management or SOA Management products, as well as in upgrades to existing Systems Management tools. Orchestration capabilities might also be found in Business Process Automation products. Some capabilities will also be found in upgrades to existing Message Oriented Middleware and Enterprise Application Integration products, some of which have been reborn as Enterprise Service Bus products.<br />
<div><br />
Consequently, the selection and adoption of SOA infrastructure should be carefully managed. You could assemble it yourself, but it may still be more expedient to acquire a product containing the required capability, and hence delegate the ongoing support to the vendor. If cost of aquisition is an issue in these lean times, then there are several excellent open-source ESBs available.</div><div></div>There is a <a href="http://everware-cbdi.com/cbdi-journal-index">longer version of this available as a PDF for download</a> from our website (free on <a href="http://everware-cbdi.com/register-bronze">registration</a>). The complete report is available to our paying subscribers via our <a href="http://everware-cbdi.com/cbdi-sae-kb-soa-overview">CBDI-SAE Knowledgebase for SOA</a>.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-58054915107893871502011-01-05T10:03:00.002+00:002013-05-21T10:44:18.335+01:00SOA in ContextSOA does not exist in isolation. Whilst it may be the centre of the universe for SOA aficionados, SOA is just part of a "bigger picture". That isn't to say that SOA can be marginalized. Far from it, as SOA is an important part of, and enabler of that bigger picture as the image below illustrates.<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiohSKjYRLz7IL4xnrbpYqmsB85e-RAWD7Dxx0_kdOSXkJjJI-vNajjfn4BoYGHK95rXfNwlXxaaih-zm6D4hKHbR6HuHd2_04xmq1nNSfIplu8ces2kJyLtbsSXcE-b0o9zF0htjqvvFI/s1600/SOA+in+Context.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="305" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiohSKjYRLz7IL4xnrbpYqmsB85e-RAWD7Dxx0_kdOSXkJjJI-vNajjfn4BoYGHK95rXfNwlXxaaih-zm6D4hKHbR6HuHd2_04xmq1nNSfIplu8ces2kJyLtbsSXcE-b0o9zF0htjqvvFI/s400/SOA+in+Context.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SOA in Context</td></tr>
</tbody></table>
So, in SOA terms, we can describe the world in terms of the Service Architecture, which requires SOA-specific Service Management, and SOA Governance. That is, managing the services in an SOA-specific context, both across the delivery life cycle and in the operational state. Similarly, defining SOA-specific policies and exerting governance, again across the delivery life cycle and in the operational state.<br />
<br />
But SOA is also part of, enables, and supports the IT Architecture and Business Architecture. There are not hard lines where one universe ends and another begins. Rather it is a continuum. For example, IT Architecture should contain elements of, link to, integrate with, (and so on...), both the Business Architecture and the Service Architecture. Often these might be combined into an Enterprise Architecture, but we can still identify within that the the Business-specific, IT-specific and SOA-specific aspects, and separate them if we wish into different views. In those views, we can then add detail that is specific only to that view.<br />
<br />
Similarly, SOA Governance is driven by Business and IT requirements, but in turn enables Business and IT governance by ensuring that SOA policies exert governance over Services (again across the delivery life cycle and in the operational state) to deliver both business and IT outcomes, as well as SOA-specific outcomes, as illustrated below.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIQhdCdBG8bDianhhww3eszgunR5RJWuDIAXv1x03OpTsivzW_WbVLFqo82HJSETA0yxA8nt9-Cpo6_vNkVC_m1Uaf1I2d5vaNdV0HJM2JB_r3c_7ydhftjcessoUo-6rfS4_6E-UowdA/s1600/SOA+Governance+in+Context.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="170" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIQhdCdBG8bDianhhww3eszgunR5RJWuDIAXv1x03OpTsivzW_WbVLFqo82HJSETA0yxA8nt9-Cpo6_vNkVC_m1Uaf1I2d5vaNdV0HJM2JB_r3c_7ydhftjcessoUo-6rfS4_6E-UowdA/s400/SOA+Governance+in+Context.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SOA Governance in Context</td></tr>
</tbody></table>
<br />
Nor should the concentric circles in the diagram be misread as implying 'layers', rather they are just indications of broader context. That is, you don't have to go through IT Architecture to connect the Service Architecture to the Business Architecture. I.e. it should be clear in the Service Architecture which Business concepts (business types, business processes, business capabilities, etc,) the various SOA Services support.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-83201537086553761162010-10-14T15:23:00.001+01:002010-10-15T16:20:46.661+01:00Service Provisioning Contracts - New SOA TrainingSOA is fundamentally a contract-based approach. The concept of ‘loose coupling’ works because the dependency between implementations is replaced by a dependency on contracts. As long as the contract between provider and consumer is met, then the dependency on a specific implementation is removed. However, the devil is always as ever in the detail. What contracts are actually required? How are they documented? How should the level of precision required be conveyed?<br />
<br />
To answer these questions, I recently completed work on building, and subsequently delivering, a new SOA training workshop based on our concepts of Service Provisioning Contracts.<br />
<br />
This workshop considers the following three prime contracts used in the provisioning of a Service, and the relationships between the, <br />
<ul><li><strong>Service Level Agreement:</strong> The quality of service contract between service provider and consumer for the operational delivery of the service at run-time.</li>
<li><strong>Service Specification:</strong> The implementation independent behavioral contract between the service provider and consumer, and also the service provider and service implementer, that specifies what a service does but not how it does it.</li>
<li><strong>Automation Unit Specification:</strong> The requirements contract between the service provider and service implementer for the Automation Unit that provides the implementation of one or more service specifications.</li>
</ul><br />
<div><a name='more'></a></div><div>An understand of the content and the role of each of these contracts can be seen in an earlier CBDI Journal Report - <a href="http://an%20understand%20of%20the%20content%20and%20the%20role%20of%20each%20of%20these%20can%20be%20seen%20in%20an%20earlier%20cbdi%20journal%20report%20-%20service%20contracts%20in%20the%20service%20oriented%20process%20-%20which%20is%20now%20freely%20available%20on%20the%20everware-cbdi%20website%20(on%20registration)/">Service Contracts in the Service Oriented Process</a> - which is now freely available on the Everware-CBDI website (on registration). </div><br />
Since that report was authored I have detailed the <a href="http://lwsoa.blogspot.com/2009/06/service-implementation-architecture-and.html">Automation Unit Specification</a>, and also developed an <a href="http://lwsoa.blogspot.com/2009/06/soa-exception-management.html">Exception Management Framework</a> in later reports and so was able to pull this workshop together.<br />
<br />
<br />
Also, since publishing our original work on Service Specification (the <a href="http://everware-cbdi.com/rss-template">CBDI-SAE Service Specification Template</a> is also freely available for download), we have also gained a lot of experience from different customer engagements as to the differing needs for Service Specification and the other contracts. Consequently, as well as looking at the details of each of these contract types, and walking through the corresponding CBDI-SAE templates for their documentation, the workshop also considers how the requirement for them or the amount of detail required varies by context and differing project profiles.<br />
<br />
This workshop doesn't fully replace our existing Service Specification workshop. That goes into more detail on aspects such as developing the Service Information Model and how to document operation behavior, and also includes individual and group exercises on them.<br />
<br />
Those particular modules from the Service Specification workshop might be a good follow on for those specifically tasked with their delivery, whilst not necessary in such detail for the rest of the audience. Similarly, the Service Provisioning Contracts workshop really needs to be proceeded with a good understanding of our Service Architecture approach, in particular the classification and layering of service types as this is referenced in the workshop, and also on understanding the difference between the service specification and service implementation architecture views.<br />
<br />
Hence, we often find that the agendas for the workshops we put on for our customers are typically customized to suit their specific needs and prior experience. <br />
<br />
More details on our workshops can be found in our <a href="http://everware-cbdi.com/education">Education Catalog</a>Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-40112113993626861102010-09-30T16:25:00.000+01:002010-09-30T16:25:44.177+01:00Several CBDI Journal Reports Now Freely Available for DownloadAs well as making the CBDI Journal free from September onwards, we have also published several reports from past journals available for free download. Registration is required (but at no costs)<br />
<br />
See the <a href="http://everware-cbdi.com/index.php?cID=12">CBDI Journal index</a><br />
<br />
Hope you find these useful.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-40845799888658578522010-07-08T12:48:00.001+01:002011-02-20T23:28:40.969+00:00How Long is a Piece of String? The 'Dark Arts' of SOA Project ManagementWe are often asked "how long is a piece of string?" Well that's not entirely true, more likely the question would be something more SOA related such as "can you tell us how long it will take to define a service architecture?" However, without some greater precision of what is actually involved it is equally hard to answer either question. <br />
<a name='more'></a><br />
Clearly scope plays a major factor. For example, is it the service architecture for the whole enterprise, a business domain, or just for a single solution? However, careful project management and estimating requires much greater precision.<br />
<br />
CBDI-SAE becomes very useful in this respect. It isn't just that it details the necessary process decomposition that provides the work breakdown structure required for project management, but also that it provides via the CBDI-SAE meta model, a clearer definition of concepts involved. Rather than some vague notion of what a service is or what an architecture might contain, there are clear definitions of the objects and their relationships, and how they may be structured into deliverables.<br />
This level of detail provides a much better basis for estimating and project management, as the project can be broken down much more precisely, and at the finer-grained level it becomes much easier to apply some guidelines as to how long an activity might take.<br />
That said, there are still many variables involved, and many false assumptions that can be made.<br />
<br />
Project Management and estimating have always been something of a 'dark art'. However, in these days of ever increasing levels of outsourcing and ever so careful cost control, having a sound basis on which to estimate the resources and effort required becomes paramount. So recently, I have begun to document some project management templates to support SOA activities and to provide guidelines for estimating the resources required. <br />
<br />
The first set of resources have been published in our <a href="http://everware-cbdi.com/cbdi-sae-kb-soa-overview">CBDI-SAE SOA Knowledgebase</a> and made available to subscribers to assist them with these activities. To support these resources, I have also authored a report that complements them by explaining with variables and assumptions as well as any 'rules of thumb' or past experience that can be applied to estimating.<br />
<br />
For example, there is a Microsoft Project File as shown below for the entire <a href="http://lwsoa.blogspot.com/2010/02/this-agile-application-modernization.html">Agile Application Modernization Project</a> that contains the process/task decomposition with the predecessors defined, plus also all the inputs and outputs listed as a useful reference for the project manager.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYHZ7YVLggEOwcjcgWGtUCyI2Vi8MuxUBBYDxcoXsb-Z6qIHYb_LgRxCs506IKX43sapdGe7DVd2I0TZOptY57Q2aj4DH4mBKh8P-pY1j_rNEWHPft2V2g_olnk9qWeoNA2dT3hapPTWs/s1600/soaFig2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="331" rw="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYHZ7YVLggEOwcjcgWGtUCyI2Vi8MuxUBBYDxcoXsb-Z6qIHYb_LgRxCs506IKX43sapdGe7DVd2I0TZOptY57Q2aj4DH4mBKh8P-pY1j_rNEWHPft2V2g_olnk9qWeoNA2dT3hapPTWs/s640/soaFig2.gif" width="640" /></a></div>However, with over 300 tasks it might be viewed as rather unwieldy. The intention with these files was foremost to provide the decomposition in a Microsoft Project format as we recognize the usefulness of that and we have had several requests for it.<br />
From these files it is straightforward to extract the processes and tasks required for a more narrowly focused project. The process decomposition in CBDI-SAE lends itself well to that, as many of the process units are already identified as autonomous units of work responsible for some major deliverable.<br />
<br />
Whilst these files reflect the full scope of the Application Modernization project, locating and copying the processes and tasks to support other projects, such as the delivery of the Service Portfolio Plan or a Service Specification for example, is easy enough.<br />
<br />
I plan on publishing further similar resources for our subscribers over the coming months.Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0tag:blogger.com,1999:blog-372430950845542968.post-22647136060883525612010-05-28T11:32:00.002+01:002011-02-20T23:27:38.552+00:00Portfolio Management and SOAIn the current economic climate, most IT organizations are faced with extremely tight budgets. Yet at the same time, the business is likely to be exploring new opportunities for growth or improvements in efficiency that in turn often increase the demand on IT. <a href="http://lwsoa.blogspot.com/search/label/Application%20Modernization">Application Modernization</a> for example is not just a simple case of switching old systems off to immediately save money, but more often requires investment in order to improve efficiency of those systems and in the business processes they support in the long term.<br />
<br />
You sense that for a long time it has been easier for organizations to take the easy option of giving projects the budget and freedom to do what they want, without regard to the needs of other projects or even the organization as a whole, as long as the project promises success.<br />
<br />
However, enterprises of all types, especially the public sector, cannot simply dispense money like this anymore, and now must face up to making difficult decisions to reject project proposals that take such a ‘laissez-faire’ approach, and instead focus on more efficient utilization of the organization’s resources and to “do more with less’ by reducing waste and duplication, whilst increasing sharing and reuse<br />
<br />
Consequently, more attention needs to be paid to the portfolio as a whole, rather than the projects in isolation<br />
<b><br />
Service Portfolio Planning</b><br />
<br />
CBDI Forum has long advocated a Portfolio Management approach to SOA, with Service Portfolio Planning (SPP) being a cornerstone of CBDI-SAE. So in a new report, as well as considering the specific case of SPP, I set out to consider other portfolio types and how to extend conventional portfolio management activities. <br />
<a name='more'></a><br />
The following table for example outlines the typical approach to Portfolio Management, together with some of the ways in which this might be enhanced with our CBDI-SAE concepts.<br />
<br />
<table border="0" cellpadding="4" cellspacing="1"><tbody>
<tr><td align="left" bgcolor="#0099dd" class="style24" valign="top" width="25%"><br />
</td><td align="left" bgcolor="#0099dd" class="style24" valign="top" width="40%"><b>Typical Approach</b></td><td align="left" bgcolor="#0099dd" class="style20" valign="top" width="35%"><b>CBDI-SAE Enhancements</b></td></tr>
<tr><td align="left" bgcolor="#cee6f6" valign="top"><b>Portfolio Types</b></td><td align="left" bgcolor="#cee6f6" valign="top">Project Portfolio<br />
<br />
Application Portfolio</td><td align="left" bgcolor="#cee6f6" valign="top">Separation of Asset-based Portfolios <br />
<ul><li>Service Portfolio</li>
<li>Solution Portfolio (To be)</li>
<li>Current System Portfolio (As is)</li>
</ul></td></tr>
<tr><td align="left" bgcolor="#9fcfef" valign="top"><b>Decision Making</b></td><td align="left" bgcolor="#9fcfef" valign="top">Financial <br />
<ul><li>Funding decisions</li>
<li>Costs</li>
<li>ROI </li>
</ul>Risk<br />
<br />
Strategic Alignment<br />
<br />
Balanced Scorecard </td><td align="left" bgcolor="#9fcfef" valign="top">Architectural integrity<br />
<br />
Shared capabilities<br />
<br />
Separation of Concerns<br />
<br />
Manage cross-portfolio dependency and relationships<br />
<br />
Asset Agility</td></tr>
<tr><td align="left" bgcolor="#cee6f6" valign="top"><b>Scoping</b></td><td align="left" bgcolor="#cee6f6" valign="top">Project-based<br />
<br />
Organizational </td><td align="left" bgcolor="#cee6f6" valign="top">Asset-based<br />
<br />
Business Domain </td></tr>
</tbody></table><br />
Portfolio Management activity today is primarily centered on projects and applications, or on a program-centric approach consisting of multiple projects and applications<br />
<br />
We believe this can be enhanced by additional attention to an asset-based approach, where<br />
<br />
<ul><li>there is finer granularity, and separation of different asset portfolios, rather than just the arbitrary application scope</li>
<li>projects are scoped around the delivery of assets, with projects focused on different asset types, separating concerns.</li>
<li>projects delivering shared assets take a business-domain rather than organizational unit perspective</li>
<li>as well as financial decisions, the portfolios are also managed to</li>
<ul><li>optimize the delivery and usage of shared assets.</li>
<li>provide asset agility, by decoupling assets so they are more responsive to change</li>
</ul></ul>As a consequence of the finer granularity and separation, the asset portfolios will need to be carefully managed to ensure architecture integrity is maintained.<br />
<br />
The following table suggests separating the Application Portfolio into distinct portfolios. This is not to suggest that an Application Portfolio might not today recognize assets such as Services, or classify assets on an As-Is or To-Be basis. For example, the portfolio management may be based on a meta model such as TOGAF. It is more often the case today that they are not managed as distinct portfolios, and hence the investment may be sub-optimal, and typically Application focused where the Application that gets the funding and scopes the project, not the shared capabilities within it.<br />
<br />
<table border="0" cellpadding="4" cellspacing="1"><tbody>
<tr><td align="left" bgcolor="#0099dd" class="style24" valign="top" width="34%"><b>Portfolio</b></td><td align="left" bgcolor="#0099dd" class="style20" valign="top" width="66%"><b>Content</b></td></tr>
<tr><td align="left" bgcolor="#cee6f6" valign="top">Service Portfolio</td><td align="left" bgcolor="#cee6f6" valign="top">Services provided by the organization<br />
<br />
External Services consumed by the organization<br />
<br />
Rich classification of Service Types (as defined by CBDI-SAE)</td></tr>
<tr><td align="left" bgcolor="#9fcfef" valign="top">Solution Portfolio (To-Be)</td><td align="left" bgcolor="#9fcfef" valign="top">The solutions provided by the organization to the business users and/or customers<br />
<br />
The solutions consumed by the organization<br />
<br />
The To-Be solutions<br />
Business Processes encapsulated by the Solution</td></tr>
<tr><td align="left" bgcolor="#cee6f6" valign="top">Current System Portfolio (As-Is)</td><td align="left" bgcolor="#cee6f6" valign="top">The As-Is Systems (Applications)</td></tr>
<tr><td align="left" bgcolor="#9fcfef" valign="top">Platform Portfolio</td><td align="left" bgcolor="#9fcfef" valign="top">Technology platforms on which Services and Solutions are hosted ‘Business’ platforms offering a coherent set of Services to solutions</td></tr>
</tbody></table><br />
There's lots more guidance in the report, covering the Portfolio Management Process, how to balance the top-down concerns of the CIO with the 'bottom up' needs of the individual projects need to support their business sponsors, as well as considering the relationship between Portfolio and Asset Management, but sorry, you will need to use our subscription services to read it...Lawrence Wilkeshttp://www.blogger.com/profile/13110189132992558385noreply@blogger.com0