OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact...

48
SOA Blueprints DRAFT, 19 December 2005 Artifact Identifier: [product]-[artifact-type]-[stage]–V0.1–r0.5 Location: Current: docs.oasis-open.org/[tc-short-name]/ [spec-id or profile- id]/latest This Version: docs.oasis-open.org/[tc-short-name]/ [spec-id or profile- id]/[version-id] Previous Version: docs.oasis-open.org/[tc-short-name]/ [spec-id or profile-id]/[version-id] Artifact Type: [artifact-type] Technical Committee: OASIS [official name of technical committee] TC Chair(s): [Chair name] [Chair name] Editor(s): [Editor name] [Editor name] OASIS Conceptual Model topic area: [Topic Area] Related work: This specification replaces or supercedes: [specifications replaced by this standard] This specification is related to: SOA-RM [related specifications] Abstract: [Summary of the technical purpose of the document] Status: This document was last revised or approved by the [TC name | membership of OASIS]on the above date. The level of approval is also listed above. Check the current location noted above for possible later revisions of [Document Identifier] [DD Month YYYY] Copyright © OASIS Open 2005. All Rights Reserved. Page 1 of 48 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 1 2 3

Transcript of OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact...

Page 1: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

SOA BlueprintsDRAFT, 19 December 2005Artifact Identifier:

[product]-[artifact-type]-[stage]–V0.1–r0.5Location:

Current: docs.oasis-open.org/[tc-short-name]/ [spec-id or profile-id]/latestThis Version: docs.oasis-open.org/[tc-short-name]/ [spec-id or profile-id]/[version-id]Previous Version: docs.oasis-open.org/[tc-short-name]/ [spec-id or profile-id]/[version-id]

Artifact Type:[artifact-type]

Technical Committee:OASIS [official name of technical committee] TC

Chair(s):[Chair name][Chair name]

Editor(s):[Editor name][Editor name]

OASIS Conceptual Model topic area:[Topic Area]

Related work:This specification replaces or supercedes:

[specifications replaced by this standard]This specification is related to:

SOA-RM [related specifications]

Abstract:[Summary of the technical purpose of the document]

Status:This document was last revised or approved by the [TC name | membership of OASIS]on the above date. The level of approval is also listed above. Check the current location noted above for possible later revisions of this document. This document is updated periodically on no particular schedule.Technical Committee members should send comments on this specification to the Technical Committee’s email list. Others should send comments to the Technical Committee by using the “Send A Comment” button on the Technical Committee’s web page at www.oasis-open.org/committees/[TC short name].For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the Technical Committee web page (www.oasis-open.org/committees/[TC short name]/ipr.php.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 1 of 38

1

2

3

456789101112131415161718192021222324252627282930313233343536373839404142

123

Page 2: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

The non-normative errata page for this specification is located at www.oasis-open.org/committees/[TC short name].

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 2 of 38

4344

456

Page 3: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

NoticesCopyright © OASIS Open 2005. All Rights Reserved. All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 3 of 38

45

464748495051525354555657585960616263646566676869707172737475767778798081828384

789

Page 4: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Table of Contents1 Introduction......................................................................................................................................... 6

1.1 What is a Blueprint............................................................................................................................ 61.2 How to use a Blueprint...................................................................................................................... 61.3 Audience........................................................................................................................................... 61.4 Terminology....................................................................................................................................... 6

1.4.1 Service Model............................................................................................................................ 61.4.2 Interoperability............................................................................................................................ 71.4.3 Contract..................................................................................................................................... 71.4.4 Actor........................................................................................................................................... 71.4.5 Level.......................................................................................................................................... 7

1.5 Normative References....................................................................................................................... 81.6 Non-Normative References...............................................................................................................8

2 Basic Concepts................................................................................................................................... 93 Service Model................................................................................................................................... 12

3.1 Approach......................................................................................................................................... 123.1.1 What......................................................................................................................................... 133.1.2 Why.......................................................................................................................................... 143.1.3 How.......................................................................................................................................... 153.1.4 The Level 0 picture................................................................................................................... 153.1.5 Adding the Actors..................................................................................................................... 153.1.6 Fleshing out the services..........................................................................................................153.1.7 Level 0 Deliverables.................................................................................................................16

3.2 Level 0............................................................................................................................................. 163.2.1 Enterprise Level 0 model..........................................................................................................163.2.2 Project Level 0 model...............................................................................................................16

3.3 Level 1............................................................................................................................................. 173.3.1 Enterprise Level 1.................................................................................................................... 173.3.2 Project Level 1.........................................................................................................................18

3.4 Virtual, support and shared services...............................................................................................183.4.1 Virtual Services........................................................................................................................183.4.2 Support Services......................................................................................................................18

4 Service Mapping............................................................................................................................... 225 Service Blueprints............................................................................................................................. 23

5.1 Overview......................................................................................................................................... 235.2 Service Pipeline Patterns................................................................................................................23

5.2.1 Overview.................................................................................................................................. 235.2.2 Service Pipeline Concepts.......................................................................................................245.2.3 Coordination Pipeline...............................................................................................................245.2.4 Process Pipeline......................................................................................................................265.2.5 Aggregation Pipeline................................................................................................................265.2.6 Source Pipeline........................................................................................................................26

5.3 Service Patterns.............................................................................................................................. 27

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 4 of 38

85

8687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127

101112

Page 5: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

5.3.1 Component Service.................................................................................................................. 275.3.2 Composite Services................................................................................................................. 275.3.3 Conversational (Workflow) Services........................................................................................285.3.4 Data Services........................................................................................................................... 295.3.5 Publish-Subscribe Services......................................................................................................295.3.6 Service Brokers........................................................................................................................30

5.4 Supporting Types............................................................................................................................ 305.4.1 Processing Mode.....................................................................................................................305.4.2 Behavioral Model.....................................................................................................................315.4.3 Exception Handling and Compensation...................................................................................315.4.4 Routing/Interception and Extensibility......................................................................................315.4.5 Security.................................................................................................................................... 315.4.6 Management and Monitoring....................................................................................................315.4.7 Transport.................................................................................................................................. 315.4.8 Exchange................................................................................................................................. 32

6 Governance and Maintenance..........................................................................................................336.1 Roles............................................................................................................................................... 336.2 Maintaining the Service Model........................................................................................................336.3 Establishing Policies........................................................................................................................ 346.4 Establishing Standards???..............................................................................................................346.5 Operating Environment....................................................................................................................346.6 Versioning....................................................................................................................................... 34

6.6.1 Contract Versioning.................................................................................................................. 346.6.2 Policy Versioning...................................................................................................................... 346.6.3 Exchange Versioning...............................................................................................................34

A. Acknowledgements........................................................................................................................... 36B. Non-Normative Text..........................................................................................................................37C. Revision History................................................................................................................................ 38

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 5 of 38

128129130131132133134135136137138139140141142143144145146147148149150151152153154155156

157158

131415

Page 6: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

1 Introduction[All text is normative unless otherwise labeled]

The SOA environment has various concepts that make up the architecture that are not just technical in nature.

Establishing a business direction Establishing an efficient organization Establishing a holistic service approach Establishing an overarching technical architecture

1.1 What is a BlueprintA blueprint is a structure that can be followed that includes a collection of patterns. Areas that could follow blueprints include architecture, organization or process. Architecture relies on blueprints in a current SOA environment the blueprints are implicit not explicit. Taking case studies and extracting the general and basic structure of the architecture leaving the domain specific functionality as an extension point to the blueprint can establish a blueprint. Blueprint provide a conceptual framework that allows for SOA to be accelerated in an organization by providing a reference point in which to base decisions.

The purpose of these blueprints is to establish pattern sets that can be used within an SOA planning, design or implementation strategy. The blueprints will serve as a basis to start or proceed in a direction toward a successful SOA.

1.2 How to use a BlueprintThese blueprints should be used in the context of planning, design and implementation of SOA. A contractor of a house does not start to work on a house without an established blueprint. The blueprint serves as a rudder to the architecture and helps to steer the architectural direction toward the final goal. A blueprint of a house may contain more rooms with delineations on where the phasing of the building may occur which help to establish a roadmap for the customer that receives the result of the blueprints. Phasing into a larger house when budget has allowed for it. The same can be true for the SOA blueprints, since the blueprints are structured into pattern sets that allow for companies to add pattern sets as they feel more comfortable with the direction SOA is taking them.

1.3 Audience

1.4 TerminologyThe key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC2119].

1.4.1 Service ModelA service model represents a given domain and the various interactions with that domain whether they are internal to the domain or external. A domain would represent the business or market specific functions. The service model’s approach is described in this specification.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 6 of 38

159160

161162163164165166167

168169170171172173174

175176177178

179180181182183184185186187

188

189

190191192193

194195196197

198

161718

Page 7: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Note: Sync up with definitions in the rest of the document and the SOA-RM, put in global terminology section?….(Good idea, if we have something called “Service Model” we need to rationalize it with “Reference Model”) Need to figure out what to do with the Support and Tech services are they really distinct? Can we lump them together?

1. Support Services – Services that support the core domain An example of this would be auditing for compliance. (does this suggest metaservices or service infrastructure? Please specify more)

2. Technical Services – non-business requirement functions that are needed for the IT system to be delivered. An example would be a hosting provider.

3. InteroperabilityInteroperability is a requirement of any service that may be accessed from multiple platforms. It essentially means that the invocation mechanism, message format, data format and security requirements of a service can be interacted with successfully by any SOA implementation. In the context of this specification this means that any service consumer should be able to utilize any provided service without modification.

1.4.2 ContractThe functional and non-functional definition of a service, equates to a Service Level Agreement (SLA) builds on the work of Meyer10. (More elaboration is needed. Contracts have non SLA terms such as routing, alerting, logging, load balancing etc)

1.4.3 ActorAn actor invokes a particular service. The actor provides the context of execution and has an established service contract with the service. An actor can be another service, a portal or a desktop application. An actor may be stateful controlling the state in which services are executed within the context of. A consumer (person, system or service) of facilities provided by a Service. Similar to a RUP Actor.

Actors may include: Service Consumers (refer to SOA-RM) Service Providers

1.4.4 LevelLevel is a layer of the service model that represents a part of the domain. Level 0 would represent a high-level overview of the particular domain whether this is from an enterprise viewpoint or a project viewpoint. A level is built from the previous level establishing a decomposition strategy to the service model which allows roll-up of the organization in a strategic sense.

Establishing a level involves defining the actors, domain parts and interacts between the various parts and actors which establish the services that can be derived.

Level 0 - Starts a Service Model. Represents a “70,000 ft” view of the domain. This could encompass a whole company to determine the a roadmap or encompass a project.

Level 1..N – Decomposes Level 0 or preceding Level into more detail establishing finer grained services

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 7 of 38

199

200201202203204

205206207208209210211212213214215216

217218219220

221222223224225

226227228229

230231232233234

235236237

238239240241242

192021

Page 8: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

1.5 Normative References[RFC2119] S. Bradner, Key words for use in RFCs to Indicate Requirement Levels,

http://www.ietf.org/rfc/rfc2119.txt, IETF RFC 2119, March 1997.[Reference] [Full reference citation]

1.6 Non-Normative References[Reference] [Full reference citation]

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 8 of 38

243244

245246247248

249250

222324

Page 9: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

2 Basic ConceptsThe following figure illustrates an overview of the concepts that will be the basis for blueprints later on in the specification.

Establish Serv ice Model Serv ice Model

Establish Serv ice Mapping Serv ice Mapping

Domain Serv ice

Infrastracture Type

Serv ice Type

Develop Architecture Blueprint

Architecture

contains

contains

0..*

creates

feeds

creates

contains

containsfeeds

«realize»

creates

Figure 1 - Overview of establishing an architecture from the SOA Blueprints

Below are the process descriptions:

Establish Service Model – Creates a service model for the organization. The service model will define and contain domain specific services that can later be mapped to a particular type. Establish To Be Service Model Establish AS-IS Service Model Create Roadmap based on both Service Models

Establish Service Mapping – Creates a service mapping of the domain specific services to blueprint concepts that the architecture can be derived. A mapping contains a definition of domain service to a service type. It also contains a mapping of domain service to infrastructure type.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 9 of 38

251252253

254

255256

257258259260261262263264265266267

252627

Page 10: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Develop Architecture – Creates an architecture from the blueprint established in the service mapping process. When addressing an enterprise this may be an enterprise architecture while in the project case this may end up as a solution architecture.

Below are the object descriptions for the above figure:

Service Model – A collection of service definitions established by an analysis of the organizational goals.

Domain Service – A service that is specific to a certain business domain Service Type – A pattern that establishes a context of a service within a blueprint Service Mapping – A mapping of patterns to domain specific services. Infrastructure Type – A pattern that establishes a framework in which to run a service Blueprint – A collection of patterns that establishes the basis of an architecture Architecture – A realization of a blueprint with specific systems and subsystems within the context

of the business domain. This may be at a high-level for an enterprise view or a lower level for the project view.

Figure 2 - Overview of an SOA Architectural Blueprint

Note: Will update this later based on some more SOA-RM updates and concepts extracting from the original blueprints. Also, perhaps it should be “service Policy and Contracts”?

Processing Mode – Represents the mode in which the behavioral model needs to be executed

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 10 of 38

268269270

271272273274275276277278279280281282283

284285286

287288289

290291292293

282930

Page 11: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Routing/Interception - Represents the concept of routing based on policy, interception or any other type of data point

Transport – Represents the actual protocol used to communicate with a given service Exception Handling – Represents the handling of exceptions from either the environment

or predefined exchange problems Compensation – Represents the compensation of the exception handling Domain Specific – Represents the domain specific functionality that needs to be invoked

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 11 of 38

294295296297298299300

313233

Page 12: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

3 Service ModelA major objective in undertaking a service architecture is to create the “big picture” this will act as an overall guide to an enterprise or project and provide a simple view of how the organizorganization, or project, splits its capabilities into services. This big picture is used to aid in understanding how change requests will be handled, new projects commissioned, and business change delivered through IT adherence. The big picture needs to be something that all parties agree on, and all parties use as a reference. Make the big picture clear, use clear colors with a defined key, and most importantly ensure that it is kept up to date. The purpose of a good service architecture is not to focus people’s minds on to the detail of the application, but to ensure they always have the context in which the detail is concerned. A service architecture concerns itself first with the “what”, then the “why” and only finally the implementation question of “how”. The Big picture is the one that tells all stakeholders the “what” and the “why”, it is down to the various areas to determine the most effective “how”.

Figure 3 - Overview of the Service Model

3.1 ApproachThe basis of this approach is to start at the top of the domain, whether this is an enterprise level or for an individual area. The main reasons for doing this are

1. Organizations work “top-down”2. Sets direction3. Uses the organizorganizational functions as its basis

Using the organizational structure or functions of a business as the basis for services is not a new idea but these have mainly been process driven rather than service driven efforts and have attempted to answer all questions rather than aiming for clarity around the key question of what services need to be [Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 12 of 38

301302303304305306307308309310311312

313

314315

316317318319320321322323324343536

Page 13: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

made available and how. It needs to be noted that while organizational functions tend to be relatively stable, the actual structure and departments can often be flexible especially when a new senior executive is appointed. The objective is to use the organizational functions, the “what” of the enterprise, and not the temporal representation of those within an organization chart.The focus of the approach is to establish the “What”, “Why”, and “How” of the organization to derive the service model that represents the organization.

Establishing a service model gives you the map for the enterprise or project and enables further analysis and detail to be created, while ensuring that these efforts are not impacting each other. Before engaging on a services architecture it is important to have a broad understanding of the area for which the task is being under-taken. If undertaking the task at an enterprise level this should include the external drivers on the company as well as an understanding of the sector it is in. If it is a specific project or program then it is key to understand the primary drivers for the project. The result of this pre-work should be for the analyst, architect, consultant or manager to understand the external drivers for the architecture that is being created. A key element to start at this stage is the glossary of terms, so certain elements can be quickly referenced when required.At this stage it is also important to identify the key stakeholders who are required to create the Level 0 and Level 1 service architecture, and plan the event to which they will be brought in order to create the architecture.

3.1.1 WhatExternal actors round out the domain under consideration and represent the totality of the “what” within the Level 0 (…N) model. The key here is that the actors are external to the services, rather than being the internal objectives of those services.

For an enterprise this (Figure 21) expands on the “what” of the enterprise to talk about the “with whom”. This can be a powerful tool to help and enterprises determine the scope and importance of partners. If they are not important at Level 0 they should probably not be considered strategic. For Projects (Figure 22) the impact can be less as although it defines the totality of “what” for the project it doesn’t at this stage define the full “why” of the project. It is therefore important to understand at what level the diagrams become truly useful. For our Enterprise it was reached in stage 1, for our project we have to refine again.

Budgeting, planning and cost/revenue tracking can occur from a level 0 service. In addition, the management of projects and metrics associated with maintenance can be fall into planning and strategic goals around the level 0 service.

Note DM added:“What” can be expanded to include defining a high level domain model that represents the entities in which an organization is focused on. This creates a validation and a roadmap approach that can establish both the services within the organization and what entities within an organization are acted upon given a complete picture of the enterprise.

The focus for the first level is the same question as for all levels “What is it?” the ambition here is first to get the high-level picture. The first, and most important element, is to determine what the actual services are, without worrying about the interactions. At this stage the most valuable tool is a white board as there may be many candidates for Level 0 services depending on either the perspective or opinion. The target is a clear statement of just the Level 0 services.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 13 of 38

325326327328329330

331332333334335336337338339340341342343

344

345346347348

349350351352353354355

356357358359

360361362363364365

366367368369370371

372

373839

marchadr, 01/03/-1,
Page: 1Should we elaborate???
Page 14: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

For the enterprise the first element is going to be the core Services themselves. This just describes the “what” of the enterprise, and absolutely no more. It is critical that a business agrees on this diagram before attempting anything else, because if the top can’t be agreed upon there are some significant differences in how the organization perceives itself. The following figure represents an example of the four key areas that define what a business provides.

For a project the approach, and need for agreement is no different. The question is “what is it about” and the answer the key domains that need to work together to solve the problem. Figure 20 shows this minimal set of services required for the vendor managed inventory project. It’s important to note on a project basis that the driver is still what are the business focused rather than project focused services that are required. The services created must fit within the context of the overall business and not just be specific to the project.The level 0 picture in Figure 19 represents the most powerful picture for an enterprise, it shows clearly what the organization is about. For a project the type of Level 0 diagram shown in Figure20 can sometimes be compelling but more often the next level of refinement is need to really explain what the project as opposed to the services it delivers is about. This is because a project has explicit drivers that provide context to the services, while an enterprise is the services themselves.

3.1.2 WhyLevel 0 (…N) establishes the “why” by understanding why the various services and actors interact. This is the key question to pose at this stage, “does service X interact with service Y and if so why does it interact”. The aim here is to start defining the value contract for the service that it offers to the world. This then delivers for the enterprise, Figure 3, a full definition of both what the organization does, and why it does it, and for the project, Figure 4, completes the picture as to why the project is being under-taken.

An example of how to achieve this would be to establish lines between the services and actors within the service model.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 14 of 38

373374375376377

378

379380381382383384385386387388389390391392

393

394395396397398399

400401402

404142

Page 15: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

3.1.2.1 Determining ServicesWhen determining a service architecture a useful technique is have people imagine they are looking at the enterprise, department or project from the outside. At this level what do they see? What a Service Architecture should be driving them towards is identifying the types of work that are being undertaken. “What does it do?” is the driving question at this level, the objective is to understand the form of the services rather than their details, so as the discussion delves down towards “well I ask for a paper clip and they give me a quote, then I submit the purchase request and they…..” it is important to ask for a term that groups all of those elements together, ask “So what would you call that type of function in your company?”, or “and as a group what are they know as?”. It is critical not to get bogged down in the process elements and to be thinking in the service architecture purely of the groupings. Once the primary groupings have been defined you can then work on the primary tasks, again doing these at a high level, the intents, rather than the specific elements that are undertaken.

3.1.3 How“How” is mapped based on the lowest level established in the service model.The service mapping section describes in detail the establishment of the “how”.

[ Need figure ]

Service Architecture is driven by the domain which needs a different mechanism for understanding how organizational entities work together. The objective of this approach to service architecture is to understand the functional groupings of an organization, and hence the services that it provides both internally and externally.

Creating the service architecture is about creating broad sweeping models, not the detail within those models which removes the discussions of a specific flow within a certain interaction. Everyone needs to agree at a set of interactions at a high level such as an interaction from“Service A to Service B”.

The Level 0 pictureAdding the ActorsThe next elements to be added to the diagram are the external actors these round out the domain under consideration and represent the totality of the “what” within the Level 0 model. The key here is that the actors are external to the services, rather than being the internal objectives of those services.

For an enterprise this (Figure 21) expands on the “what” of the enterprise to talk about the “with whom”. This can be a powerful tool to help and enterprises determine the scope and importance of partners. If they are not important at Level 0 they should probably not be considered strategic. For Projects (Figure 22) the impact can be less as although it defines the totality of “what” for the project it doesn’t at this stage define the full “why” of the project. It is therefore important to understand at what level the diagrams become truly useful. For our Enterprise it was reached in stage 1, for our project we have to refine again.Fleshing out the servicesOnce the full diagram has been defined its time to fill in the information required to describe the service. The sort of information required is described in the Template of a Service Definition section. It is recommended at this stage that break-out groups are created to focus on each of the services; these should include people from that service domain, and people from the services that interact with that service. These groups should then report back the definitions for a final confirmation by the whole group.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 15 of 38

403404405406407408409410411412413414

415

416417418

419420

421422423424425

426427428429430431432433434435

436437438439440441442443444445446447448

449

434445

Page 16: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

3.1.4 Level 0 DeliverablesAt this stage the following elements should have been created [[ Table ]]

3.2 Level 0The key when considering architecture at Level 0 is that each of these services must be core and central to the actual business being considered. For this reason support services, which may have large departments, would not be considered as Level 0 services. At Level 0 the important element to consider is that each Level 0 system could potentially be considered as an area in its own right, so its replacement would have minimal impact on the other services in the domain. For an organization this often means that the model reflects areas that could be either outsourced, sold or partnered. And for a project it often represents the different business objectives that the system has. The other key element in deciding what the Level 0 services are is that combining level 0 services into larger domains would not reduce the high-level clarity of the system. As a rule of thumb the number of Level 0 services should be between 1 and 5.

[[ figure for this ]]

3.2.1 Enterprise Level 0 modelFor the enterprise the approach to understanding the services in the Level 0 model is to understand what the key business areas are that make up that enterprise. With Oblivion Widgets these can be split into four key areas, Sales, Manufacture, Logistics & Warehouse and Finance, these represent the central elements of the business. The key actors at this stage are those that interact with the services externally, not the internal actors who provide that service. The question therefore is “what is it?”.Figure 3 Enterprise Level 0Figure 3 shows the level 0 model for Oblivion Widget with the key external actors. It also details the primary interactions that those actors have with the services. These are not individual functions, but descriptions of the purpose of the interaction. On this diagram there is no description of the process of the interaction, only the start, or end, of an interaction. This picture is deliberately simple, and should be kept so. Its intention is to act as the reference point for all initial decisions within the organization and as a reference point to which every stakeholder, business, IT, internal or external can agree. These boundaries also mark the areas within which change will be managed and constrained.

3.2.2 Project Level 0 modelWithin a specific project exactly the same approach is taken, this time at a much lower level, if an organization has undertaken an enterprise Service decomposition then its important for this to be used as the base for the project, not only does it represent a head-start on the process but also ensures that the required stakeholders are aware of the project and its impacts. The first element is to understand what is required of the project as a simple statement. The objective here is to minimise the amount of stock carried while maintaining, or reducing, the amount of out-of-stock issues that customers have.

The project level 0 (Figure 4) is equally simple, and hopefully equally powerful, the intention is to understand the objective of the project from a simple diagram and the domains which the project covers. From a top level the objective of the project is therefore simple, the organization (Corporate actor) wishes to minimise the amount of stock required, and the vendor is now responsible for managing their own stock levels. Flows which are not directly changed in the project scope, e.g. ship against order. Are excluded at this level.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 16 of 38

450451452453

454455456457458459460461462463

464465

466

467468469470471472473474475476477478479480

481

482483484485486487488

489490491492493494495

464748

Page 17: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

In order to demonstrate the purpose and options at this stage it is recommended to create a number of business activity diagrams, these should be seen not as formal process definitions, but as sketches that represent either the different options or the different scenarios. Figure 5 and Figure 6 show two such diagrams. These are very high level and are used to demonstrate how a polling (former) or event (later) approach to VMI would work.

The objective here is simplicity, not to go into the detail. Level 0 should be kept deliberately abstract and be clearly understood by all stakeholders. If understanding of the domain is lost at this stage there is little hope that the project will succeed. It is normal that the activity diagrams used here are revisited in detail by either the business process or architecture streams of a project or programme. It is important to retain the context described at this level, even if the full content is much more detailed.

3.3 Level 1Level 1 Services are where element start to become more “real”, quite often these can be identified not just as areas in which people work, or conceptual goals of a project, but as the actual day-to-day areas in which people work, and the IT services that will be implemented to support them, at an enterprise level these may map to the departments in the business, and within a project to the roles and IT Application areas that are required.

There are several elements that need to be borne in mind when considering decomposition. The first is that the enclosing service confers behaviour and management onto those at a lower level. This means that while services from two distinct domains can interact, they have to do so in a manner that enforces the surrounding, as well as service specific, contract. This inheritance of principles, contracts and other functional and non-functional attributes is central to a well constructed model. This rather than thinking of a circle on a circle, a better mental model is to think about nested spheres (Figure 7).

The second is that the purpose of this classification is to enable simple navigation of the service architecture to ensure it can be understood and future requirements can be easily classified within the service models. The purpose here is to avoid the “death by availability” challenge that comes with too flat a structure. Without a defined structure and governance model it becomes impossible to manage the complexity of the enterprise (Figure8). Its this problem that SOA tries to address so its important that any Service model is designed to aid in comprehension, not to stress the complexity of the environment.

3.3.1 Enterprise Level 1Rather than decompose all of the Level 0 services one service has been chosen, namely manufacturing. The principles remain the same for manufacturing. The Level 1 for manufacturing splits down Oblivion into six distinct areas. Thanks to the centralisation of purchasing around stock management the only area that needs to make direct purchasing requests is R&D as they use newer materials than are currently being used. A key part of this level 1 diagram is that it identifies other level 1 services with which it interacts. This is why some form of common tooling can help in creating the service model so changes in terms are instantly reflected across the various instances of that service.An enterprise Level 1 sometimes matches the operating departments within a division, or at least a potential set of operating departments. It is risky to attempt a one-to-one mapping of services to departments as these can be subject to change, while the organizational functions they undertake will remain relatively complex. The importance of a service is that it represents “what”, the department often represents “how” . This is quite often the stage at which more discussion is required as the key is to understand the key services that the division is offering, rather than just repeating that “Frank runs both Packaging and R&D”, if the two elements have a clearly distinct purpose then they should be represented

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 17 of 38

496497498499500

501502503504505506

507

508509510511512513

514515516517518519520

521522523524525526527

528

529530531532533534535536537538539540541542543

495051

Page 18: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

as separate services. Again logical groups should be represented as one service and further decomposed as required.

3.3.2 Project Level 1A project level 1 is often the stage at which the requirements become more apparent for the system, where the Level 0 (Figure 4) details the intent of the project and sets it context, the Level 1 indicates the actual work to be undertaken and explains how it will work.

Figure 10 applies the same principles used to create Figure 9, only this time applied to the specific requirements of the project. Again the external interactions are reported, and the major interactions within the service model. Level 1 often refers to the major software components of a delivered system, these can be as large as whole packaged solutions, for instance Logistics Management in this case, or bespoke areas of targeted development, for example forecasting. It is within Services at this level at the requirements are often initially captured. For small projects a Level 1 de-composition will be all that is required. Level 1 can also be more complex than level 0, but a maximum of 8 Level 1 services for each Level 0, with a normal amount being around 4, should be used as a guide.

3.4 Virtual, support and shared servicesFurther refinement can be driven by two different objectives. The first objective is to delve deeper and understand the problem domain more. This will take a similar mechanism as that defined for Level 0 to Level 1 decomposition and produces the Level 2+ decompositions that might be required. The other refinement is, for a given service, to focus on the different external representations that it may have. This is used for Services, and collections of Services, which have a number of external consumers which interact with a common set of functionality in differing ways. This should not be used where a service just has multiple actors who call differing functionality, for example a purchasing service where some people buy, some price, and others approve, these functions make up common areas defined by roles within one services.

3.4.1 Virtual ServicesVirtual Services should be used where a collection of internal services is combined to provide an external view for a customer, thus creating a “virtual service” that is one which provides no direct business function but which offers a façade over those services. It should also be used where one service provides distinct operational objectives depending on how it is being invoked.Virtual Services are often the information or interaction points in the systems. Because they are virtual, have no direct business domain, does not mean they are trivial or are not owned by a clear domain within the business, and often can be the source of projects on their own within Enterprise models. Sales or customer portals are often represented as virtual services and owned by the Sales Level 0 service.

How they are differentiated from normally services, beyond being represented hatched on a diagram, is that they are not a service in which business logic will be implemented. Virtual Services therefore provide a way to indicate where business logic can be co-ordinated and potentially simplified, but the implementation of the actual logic should only be done in full services.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 18 of 38

544545

546

547548549550

551552553554555556557558559

560

561562563564565566567568569570

571

572573574575576577578579580

581582583584585

586

525354

Page 19: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

3.4.2 Support ServicesSupport Services are often the technology elements that the business doesn’t care exist, as long as they exist. These are split into two groups, those where have a clear encompassing service in the enterprise model, and those which fall within Shared Services. Support Services have two distinct groups, technical and associated.

3.4.2.1 Technical Support ServicesTechnical Support Services can vary from elements such as hosting and printing, through to specific plant control elements or an RF-ID portal. As with other services it is possible for these to be relatively high level and be decomposed into further technical services. The key element with technical services is that they provide support to a business function, rather than being the specific business function themselves. For this reason it is important to differentiate between pure technical services, and those business elements that have been automated. It is also critical not to fall into the trap of creating services from existing technical elements just because they exist in a given form.

Technical support services are those elements that support the business, not business functions in their own right. Having an ERP system does not mean that “Enterprise Resource Planning” is a specific business domain in its own right. Nor does the existence of a CRM system mean that “Customer Relationship Management” becomes a support service automatically. The objective of a service architecture is not to determine the technology that will be used, but the domains of functionality that are required.It is the job of application architecture and design to determine the most appropriate technologies and their implementations. Technical Support Services therefore are used only to indicate those elements which indicate a category of supporting function that is required by the main business elements. These are normally only defined at lower levels of granularity, and are normally shared between multiple domains, they are also consumed by Business Services, rather than being consumers of business services themselves.

3.4.2.2 Associated Support ServicesAssociated Support Services are those elements that are not required for the business operation of the system, but which are required for the business to operate. Elements such as Human Resources, Desktop Support and other internal only functions of business, and projects, need to be represented on the overall service map. It is important however to remember that these elements are not central to the operation of a business and should not therefore be exposed as Level 0 services.Associated Support Services should always be represented on diagrams in a specific way in order that everyone is clear as to what the primary goals of the project or enterprise are. Associated support services may often be important to the operation of the enterprise or project, but their existence is only to ensure that the business services are delivered, without the business services there is no reason to have an associated support service. Associated Support services are often also Shared Services that provide a supporting function to multiple business services.

The relationships between associated support functions are often irrelevant at the business level and just need to be described only on the Associated Support service.

3.4.2.3 Shared ServicesAs a service architecture drives into more detail it is common to identify certain services that are common between multiple business areas. These services maybe technical or support services, or may on certain occasions be clear business services which are defined to work in two places. In all of these cases it is important to recognise that some elements of the service might be shared, or that the whole service is

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 19 of 38

587588589590591

592

593594595596597598599600

601602603604605606607608609610611612613

614615616617618619620621622623624625

626627628

629630631632633

555657

marchadr, 01/03/-1,
Page: 1Should probably move this into the service type definitions? Or maybe in terminology? Not sure how much we can trim this down since some of this will probably be talked about in the blueprints sections, specifically around the virtualization
Page 20: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

common between multiple areas. Representing shared services requires an increased level of control and visibility, it is recommended that shared services are grouped into two groups: Technical and Support services split by

Shared between multiple business services at all levels and across Level 0 service boundaries

Shared between multiple business services with a specific level of a hierarchy (e.g. within the Level 1 diagram for a Level 0)

Those with common or similar bases, but differing drivers or implementations. Business Services split by

Totally shared services with defined business reason for being shared “Apparently” shared service, these are services that appear to have the same characteristics

but are deliberately separated “Common Base” these are business services that shared a common base of context but have

been specialised for a particular business purpose

The reason for making these classifications is that it enables IT teams to understand which services can be re-used across domains and which even though they appear common should either be hosted or implemented separately due to differing business demands. It also helps to drive both business and IT investment decisions about where the most benefit could be derived, and to help with the prioritisation of work. It is important to consider that Services with differing objectives and measures can be implemented as a shared service by building the service to meet the most stringent requirements. This assessment should be made on cost-benefit grounds and requires a realistic view of possible re-use. This can either be done at this stage, or more normally identified as a potential at this stage and then clarified during a future iteration. The advantage of a clear Service Architecture is that it gives clarity and context for that decision.

Figure 14, which is Figure 9 without the external services, shows an example of both a cross domain shared service and a domain specific share support service. The examples chosen here are for Auto-ID (barcodes, RF-ID, EPC etc) technical service, which need to be available across the organization, and of clinical trials support services which while specific to this domain, are to be shared between the R&D and Regulatory efforts. Diagrams such as Figure 14 should be used as decorations to the key service models to demonstrate additional elements, rather than trying to put all these elements on the key business diagrams. A key part of these diagrams however is that they direct the strategy of these support services. If an organization wished to trial multiple different Auto-ID solutions it would be reasonable to specify these services as not shared, but as having a common base. A future strategy that adopts one of these approaches would then be focused on unifying these disparate services. Figure 15 gives an example of another secondary diagram that can be used to represent common bases for services, as with a multiple pilot approach for Auto-ID all of the various types of forecasting are at their heart forms of demand forecast. This does not mean that these services are the same, or even that they share any business drivers or goals, but that the conceptual frameworks for the services share a similar base.

Figure 16 Shared Business ServiceIt is important to identify these common bases as they can, on occasion, lead to the identification of potential shared services and also identify areas where business services can co-operate on common ideas and approaches. This is particularly important when trying to foster cross-functional links in organizations as it can be used as a basis for common understanding. Figure 16 shows an example of a shared service, in this case explicitly referenced, this is an example of where exactly the same functions are duplicated between two parts of an organization, but the processes, priorities and directions of the service remain the same. These shared services can often be physically manifest by separate departments, but which a shared IT and audit capability. It is important to note at this level however that they are, from a business perspective performing the same function and that any real-world separation is a matter of logistics or convenience not of differing business objectives. Figure 17

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 20 of 38

634635636637638639640641642643644645646647

648649650651652653654655656657658

659660661662663664665666667668669670671672673

674675676677678679680681682683684

585960

Page 21: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

details a case where services, though apparently shared, are in fact distinct services with distinct objectives.

In the case of Figure 17 this is due to regulatory pressures on the market in question which ensure a clear separation between clinical trials during the course of a companies R&D and those conducted for regulatory approval. “Apparently” shared services are often driven by regulatory drivers, either due to differing legal rules across regions or due to specific legislation around a business domain. When decomposing these apparently shared services it is normal to identify elements that are shared services, and others which must remain separate. The difference between these three forms of sharing, Common Base (Figure 15), Shared (Figure 16) and Apparently Shared (Figure 17) is more than just a semantic one. Common Base services are functionality different but have either a common “ethos” or core approach, they however are not the same either in form of their objectives or their direct function. Shared services are alike in both their objective and their function and can be view as a single service shared across an organization. Apparently Shared services are those which share both objective and function, but are separated due to indirect concerns, in other words they are kept separate by factors not driven by the business. By identifying these groups, normally as a third or forth iteration after the basic business service model is done, businesses and IT can identify opportunities for consolidation and co-operation, but done within the correct legal and operating constraints.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 21 of 38

685686

687688689690691692693694695696697698699700701702

616263

Page 22: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

4 Service MappingService mapping establishes the mapping between the service model defined by the analysis of the business organization and the technical evaluation of what blueprint to use for a given service.

It establishes a roadmap and matrix for creating an SOA Environment by knowing what business service will be represented by which service type and what the infrastructure type will be for a given service.

Below is a table that represents an example approach to service mapping.

Service Service Type Infrastructure Service Actors

<Name of Service from Service Model>

Composite Aggregate <Actor from Service Model>

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 22 of 38

703704705

706707708

709710

646566

Page 23: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

5 Service Blueprints5.1 Overview

5.2

5.3 Service Pipeline Patterns

5.3.1 OverviewService Pipeline patterns represent the container in which a service is invoked. It contains all the supporting services to achieve the exchange interaction with a consumer and a service provider. A Service Pipeline is a chain of services or utilities that are used pre and post to the invocation of the service.

A Service Pipeline may include the following: Exchange Normalization – unifying the exchange format across versions used by a service consumer

Required by: Service Consumer Routing – routes an invocation across service providers abstracting the endpoint Virtualization – a virtual service that abstracts multiple services Transport – transportation protocol used to access a service, example HTTPS, etc… Service Policy – defines the policy associated with a service that governs the use of a service Service Contract – defines what a service consumer expects including SLAs, etc… Compensation – determines what steps to take depending on an exception within the service

invocation, may be an extension to routing Exception Handling – manages the exceptions that occur that the infrastructure can react or

compensate for Monitoring – tracks the uptime and performance of a particular service Event Disbursement – disburses events based on what type of interactions a particular service

triggers Consumer Authorization – authorizes the service consumer for a particular service and establishes

access to particular operations/tasks, may be based on policy Service Repository – stores states associated with a coordination initiative within a service interaction

process or data for a particular service state Service State – state associated with a service Service Federation? – contains registration services for federating invocations across services Service Registry – contains policy and contracts Context – contains data that can be used by a variety of services Service Client – the service consumer of the particular service or set of services

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 23 of 38

711

712

713

714

715

716717718719720

721722723724725726727728729730731732733734735736737738739740741742743744745

676869

marchadr, 01/03/-1,
Page: 1Should put in an overview picture of how blueprints fit together and build on the service model
Page 24: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

5.3.2 Service Pipeline Concepts

5.3.2.1 Securing an InfrastructureSecuring an infrastructure involves locking down the infrastructure which requires authentication and authorization of the service consumer to the service provider. An infrastructure would need to contain policy enforcement, secure transportation, on behalf of actor validation, etc…. need to flush this out more.[[ Composite Diagram of the secure infrastructure pattern ]]

5.3.3 Coordination PipelineA coordination pipeline provides a framework in which multiple services and service consumers can coordinate activities. This may involve securing the service pipeline as defined in the “securing an infrastructure section”. The coordination pipeline may contain the following:

Service Repository – see concept section for more details Service Federation? – see concept section for more details Coordination Context – defines the context in which a service is invoked Participant – an actor within the coordination of services, may abstract the actual service

being invoked Coordinator – establishes the context for a given coordination Service Consumer - see concept section for more details Coordination Initiator – initiator of the coordination and establishes the beginning of the

coordination Coordination Event – an event that occurs within the coordination of participants

The figure below illustrates the composite parts and their relationships within the pipeline. The figure focuses on the static structure of the pipeline and does not focus on the dynamic behavior.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 24 of 38

746

747748749750751752

753

754

755756757758759760761762763764765766767768

769770771

707172

Page 25: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Optional parts before coordinator,service, etc...

Serv ice Consumer

Exchange Normalization

Serv ice Prov ider

Serv ice

Operation

Routing

Virtualization

Repository

Registry

Policy

Contract

Transport

Coordination Context

Coordinator

Coordination Initiator

Participant

Serv ice Federation

populates

contains, exposes

use

manages

managesgoverns

manages

extends

uses

«role binding»

«role binding»

«role binding»

allows access

notifies, registers

uses, registers

invokes

governs

uses

creates

uses

manages

Figure 4 - Coordination Infrastructure Composite Diagram

[[ Insert a flow diagram of some sort to show how the parts work in a dynamic way ]]

Requirement A service needs to invoke other services. The service acts as a service actor and a service provider.

Benefit Environment for a service to coordinate with other services.

Risks Performance time increases in relation to the aggregation aspects of the infrastructure.

5.3.3.1 ExamplesMight just have an example in the case study to remove this section.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 25 of 38

772773

774

775

776777

778

737475

Page 26: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

5.3.4 Process PipelineA process pipeline provides a framework in which multiple services are executed within a certain process flow. This may involve securing the pipeline as defined in the “securing an infrastructure section”. The process pipeline builds upon the concepts in the coordination pipeline. The process pipeline may contain the following:

Service Repository – see concept section for more details Process Initiative – defines the interactions needing to occur and the exchange mapping

associated to process involving 1..N services Process State – state that is associated with a process that can be stored within a service

repository, contains the order and process instance of a particular service Process Event – an event that occurs within the process of invoking services related to the

overall process direction used for routing and compensation within a service

[[ Composite Diagram of the secure infrastructure pattern ]]

Requirement A service needs to invoke other services. The service acts as a service actor and a service provider.

Benefit Environment for a service to coordinate with other services.

Risks Performance time increases in relation to the aggregation aspects of the infrastructure.

5.3.4.1 ExamplesMight just have an example in the case study to remove this section

5.3.5 Aggregation PipelineAn aggregation pipeline provides a framework in which a service can act as a service actor to other services. An aggregation pipeline can build off of the principles defined in the securing an infrastructure. The aggregation pipeline may contain the following: Service – See Concepts section for more details

[[ Composite Diagram of the secure infrastructure pattern ]]

Requirement A service needs to invoke other services. The service acts as a service actor and a service provider.

Benefit Environment for a service to coordinate with other services.

Risks Performance time increases in relation to the aggregation aspects of the infrastructure.

5.3.5.1 ExamplesMight just have an example in the case study to remove this section.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 26 of 38

779780781782783784785786787788789790

791792

793

794

795796

797798799800801802

803804

805

806807

767778

Page 27: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

5.3.6 Source PipelineA source pipeline provides a framework in which a service can retrieve data from a data source. A source pipeline can build off of the principles defined in the securing an infrastructure section. need to flush this out more.[[ Composite Diagram of the secure infrastructure pattern ]]

Requirement A service needs to work with a datasource to fulfill its functionality.

Benefit Environment for a service to retrieve and work with data appropriately.

Risks Performance time increases in relation to the additional service processing with the infrastructure.

5.3.6.1 ExamplesMight just have an example in the case study to remove this section.

5.4 Service Patterns

5.4.1 Component ServiceA component service is a simple atomic action on a simple entity that does not depend on another service to function. There are typically no internal rules or invocations of other services through a component service.

Requirement The requirement for a component service would be….

Benefit The benefit is an abstraction of an entity in which the service is providing operations upon

Risks The risks of using a component service type is a slight increase in performance time to access the entity in which a service actor was originally invoking

Example Database access to a single table can be thought of as a component service. Operations such as get, add, update or delete would invoke equivalent SQL statements against the database.

Implementations <specs that are related>

Secure Infrastructure

Infrastructure Types

<Type of infrastructures that can accommodate the service, what frameworks can support it>

5.4.2 Composite ServicesA composite service, termed a business service in this specification, is also atomic in nature, but orchestrates the invocation of component services into a business level process. Composite services may be invoked in any processing mode.

Requirement A composite service may hold internal state while invoking other services. A [Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 27 of 38

808809810811812

813

814

815816

817

818819820821

822

823824825826

827

798081

Page 28: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

composite service should aggregate the responses from a particular set of service invocations.

Benefit The benefit is an abstraction of the entity in which the service is providing operations against

Risks The risks of using a composite service type is an increase in performance time and additional points with in the request/response cycle depending on the infrastructure. The additional points are introduced with the coordination and the composition nature of the service.

Example Submitting an expense report may invoke component services to add an entry to the ExpenseReport table, add multiple entries to the ExpenseReportItem table, send an email to an employee, create a task and place this in the employee’s manager’s task list. A composite service is stateless as viewed by the consumer, however, and does not manage a long lived transaction, as opposed to a workflow service. [[ update with SOALogic example]]

Implementations Related technologies that can help to achieve a composite service:

BPEL4WS WS-Coordination

Infrastructure Types

<Type of infrastructures that can accommodate the service, what frameworks can support it>

Secure Infrastructure

5.4.3 Conversational (Workflow) ServicesA conversational service typically has state associated with it and acts like a finite state machine. A certain operation on that service will start the conversation and set some item into a specific state. Subsequent operations may continue the conversation and change the state of the item. The conversation is ended with an operation that sets the conversation to a final state.Operations within the service may be invoked within any processing mode.

Requirement A conversational service may store conversational state to allow for a long running process. A conversational service needs to invoke the next service within the process depending on the particular state of the conversation. The service needs to have a mechanism for correlating individual operations using a conversational state entity.

Benefit The benefit is an abstraction of the coordination effort required to have N number of services working together within a certain process definition.

Risks The risks of using a conversational service type is an increase in performance time and additional points with in the request/response cycle depending on the infrastructure. The additional points are introduced with the conversational nature of the service.

Example Submitting an expense report may invoke component services to add an entry to the ExpenseReport table, add multiple entries to the ExpenseReportItem table, send an email to an employee, create a task and place this in the employee’s manager’s task list. A composite service is stateless as viewed by the consumer, however, and does not manage a long lived transaction, as opposed to a workflow service. [[ update with SOALogic example]]

Implementations Related technologies that can help to achieve a composite service:

BPEL4WS WS-Coordination

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 28 of 38

828

829830831832833834

835

828384

Page 29: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Infrastructure Types

<Type of infrastructures that can accommodate the service, what frameworks can support it>

Secure Infrastructure Aggregation Infrastructure

5.4.4 Data ServicesA data service provides a mechanism for querying a datasource or multiple datasources through a message based request response mechanism. The user of the data service is not aware of the actual physical source of the data, nor its storage format. Data services can be combined together to provide a single response containing data from multiple services through the use of a composite service.

Requirement A data service may route query parameters to the correct source. A data service may combine resultant data in the correct response format.

Benefit The benefit is an abstraction of the data storage technology in which the service is providing operations against

Risks The risks of using a data service type is a slight increase in performance time based on the addition of the abstraction to the datasource.

Example Submitting an expense report may invoke component services to add an entry to the ExpenseReport table, add multiple entries to the ExpenseReportItem table, send an email to an employee, create a task and place this in the employee’s manager’s task list. A composite service is stateless as viewed by the consumer, however, and does not manage a long lived transaction, as opposed to a workflow service. [[ update with SOALogic example]]

Implementations Related technologies that can help to achieve a composite service:

BPEL4WS WS-Coordination

Infrastructure Types

<Type of infrastructures that can accommodate the service, what frameworks can support it>

Secure Infrastructure Aggregation Infrastructure Source Infrastructure

5.4.5 Publish-Subscribe ServicesPublish-subscribe services are ones in which interested parties may request notification of certain events. Some entity manages a list of subscribed parties and publishes notification in the form of a message when the event takes place. Services of this type are not bound to any form of transport and the services invoked upon publishing can be of any type. Subscription and subsequent publishing of messages could be through a Service Broker, or managed explicitly by a set of subscribe/unsubscribed messages sent to a subscription manager. Need to rework this into something else maybe Listening Service and Triggering service.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 29 of 38

836

837838839840841

842

843844

845846847848849850851852

858687

Page 30: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Requirement A publish-subscribe may trigger an event sent to a subscription service. A publish-subscribe service needs to notify all listeners for the requested event.

Benefit The benefit is provide events to other services to act upon. This may help in cases where the conversational service is used.

Risks The risks of using a publish-subscribe service type is a slight increase in performance time based on the addition of the abstraction to the datasource.

Example Submitting an expense report may invoke component services to add an entry to the ExpenseReport table, add multiple entries to the ExpenseReportItem table, send an email to an employee, create a task and place this in the employee’s manager’s task list. A composite service is stateless as viewed by the consumer, however, and does not manage a long lived transaction, as opposed to a workflow service. [[ update with SOALogic example]]

Implementations Related technologies that can help to achieve a composite service:

BPEL4WS WS-Coordination

Infrastructure Types

<Type of infrastructures that can accommodate the service, what frameworks can support it>

Secure Infrastructure Aggregation Infrastructure Source Infrastructure

5.4.6 Service BrokersThis specification defines a service broker as an intermediary service that manages the invocation of a set of registered services based on a set of rules. This incorporates routing of the messages and possibly data transformation between the incoming message and the requirements of the brokered service. A broker may itself be configured to be invoked synchronously or asynchronously.

The routing to registered services can be message based (only the actual message name matters) or content based (some part of the data contained in the message is used in the routing rules).

The broker may invoke one or many services concurrently depending on how it is configured. If many services are invoked it may wait for all to complete or just one to complete before notifying the client, if running synchronously.

5.5 Supporting Types

5.5.1 Processing ModeServices can be invoked in one of two modes, synchronously or asynchronously. The mode chosen for a particular service depends upon its potential usage, how long the service takes to run and how reliable the service invocation needs to be.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 30 of 38

854

855856857858859

860861862

863864865866

867

868

869870871872

888990

Page 31: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

5.5.1.1 SynchronousSynchronous services return a response to the invoker of the service after the service has completed processing. Some usage patterns (such as a Web application retrieving data via a service) require this kind of interaction. Such services cannot take more than a couple of seconds to execute and are not inherently reliable. The service invocation is not guaranteed and may terminate due to transport issues. The transport for such services is usually local invocation or remote invocation utilizing HTTP.

5.5.1.2 AsynchronousAsynchronous services do not return any response to the invoker, although they may return an acknowledgement of receipt. The communication of the status of processing or the return of any requested information is usually handled by sending a return asynchronous message through a callback or other mechanism. These messages have to be correlated in order that they can be matched with the original request (standards such as WS-Addressing and BPEL4WS aim to help define the correlation mechanism). The transport for such messages can be over http, but is often through a message broker or other asynchronous transport such as SMTP (email).

5.5.2 Behavioral Model

5.5.2.1 Serial CoordinationWithin a composite (or workflow) service component services (or other composite services) can be invoked in order. Serial orchestration is the process by which these services are invoked in order, waiting for the completion of one before the next is executed.

5.5.2.2 Parallel CoordinationParallel orchestration involves the execution of services concurrently. That is many services may be invoked at one time. Certain sections of a composite service may be concurrent, with a join point at which all services must be complete before moving on.

5.5.3 Exception Handling and CompensationWhen a service invocation fails with an exception, there usually needs to be some way of handling this failure. Timeout or watchdog mechanisms can also raise exceptions in the cases where a certain time period has expired, or a value has crossed some threshold. A simple mechanism of handling such exceptions is to log or report them via some notification to the invoker of the service. In a complex business transaction, however, some action may need to be taken if a service that was expected to succeed as part of the transaction, fails. A compensating transaction is a mechanism for undoing some actions that were already completed that are now inconsistent because the service failed. This can be extended for workflow services, where some transaction may have to compensate for actions committed previously in the workflow.

5.5.4 Routing/Interception and ExtensibilityInterception is a mechanism for inserting additional functionality into a system without modifying or affecting existing components. Functionality that cuts across many aspects of a system can be inserted via interceptors, extending the capabilities of the system. For example, a logging or auditing service could be added to a security service by adding a logging interceptor to the access points of all security services.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 31 of 38

873874875876877878

879880881882883884885886

887

888

889890891892

893894895896

897

898899900901902903904905906907

908909910911912

913

919293

Page 32: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

5.5.5 Security

5.5.6 Management and Monitoring

5.5.7 Transport

5.5.7.1 Transport SecurityTo ensure protection of confidential resources a variety of techniques are available within SOA to ensure security. This can be applied at various levels within the transport stack.

5.5.7.1.1 Http AuthenticationBasic http authentication will secure web services on the http transport layer. This requires that a client to that service passes some credential to gain access to the service.

5.5.7.1.2 Https EncryptionIn addition to authentication, more security can be applied by using https with the Secure Sockets Layer (SSL) protocol. This utilizes a public / private key algorithm to exchange a (symmetric) key used to encrypt and decrypt data. Such security reduces the chances of a third party intercepting and understanding information passed to and from a service.

5.5.8 Exchange

5.5.8.1 Exchange Security

5.5.8.1.1 XML SigningAuthentication validates the identity of a party and encryption helps to make the information contained in a service invocation secure. XML Signing adds to this security by providing a mechanism to ensure validate the identity of the sender and to check that the actual data transmitted has not been tampered with between the consumer and provider of a service. This is achieved by applying an algorithm that provides a signature corresponding to sender and the contents of a message. If the data is modified the key will no longer match the contents and such situations can be caught immediately.

5.5.8.1.2 XML EncryptionAt a higher level in the message stack than Https encryption, XML encryption provides requirements for a XML syntax and processing for encrypting digital content, including portions of XML documents and protocol messages. It describes how to use XML to represent a digitally encrypted Web resource (including XML itself) in which the XML representation of the encrypted resource must be a first class object (i.e., referenceable and consequently describable, signable, etc.) and represented by a distinct element type.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 32 of 38

914

915

916

917918919

920921922

923924925926927

928

929

930

931932933934935936937

938939940941942943944

945

949596

Page 33: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

6 Governance and Maintenance6.1 Roles

Policy Creator

Policy

Serv ice Prov ider

Serv ice Consumer

Serv ice Contract

Serv ice Operations

Serv ice

governs

creates

validates

adheres to

uses

createscontribute

contribute

Figure 5 - Governance Role Overview

6.2 Maintaining the Service ModelOnce the decision has been made for the first time the architecture becomes a living artifact that needs a regular review. Reviews should be initiated as part of normal business and technology change procedures, it should become enshrined in these procedures to first consider the impact on the service architecture. In the absence of such a review it is recommended that the follow minimum review periods be adopted.

Level 0 this should be done once a year, Level 1+ once a quarter

A review both as part of a business or technical change, or via a standard review period, should not attempt to re-create the whole architecture but focus on those changes that may impact parts of the architecture, the objective in these reviews should be to understand the change, not to re-create the architecture.These created artifacts must therefore be available not via word documents but via a collaborative environment which people can quickly access, and potentially augment. Without an environment in which the big picture is created, agreed upon and made visible a service architecture will become yet another piece of “shelfware” that means nothing to anyone. The approaches, and terms, used in the Service Architecture must be driven into other areas, for instance the Enterprise and Business Architectures, to ensure there are solutions that can be completely traced.

If a review identifies fundamental changes in the way an enterprise operates, most often due to a large scale acquisition, merger, disposal or outsource, then a full architecture review should be undertaken and potentially a new top down architecture created. This should be enshrined within these business change programs, and indeed form the basis for how the IT organization is to be guided and directed by the business. The intention of such a review within a major change is to ensure effective implementation; it should therefore run in parallel with such efforts. Comparing the established service architectures of

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 33 of 38

946

947

948949

950

951952953954955956957958959960961962963964965966967968

969970971972973974975

979899

Page 34: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

organizations that are attempting an acquisition or merger is a good way of noting the compatibility of those organizations. While they may external exhibit the same functions to the market a service architecture comparison can identify potentially serious discrepancies in how the organizations approach that common task. This matching of service architecture also represents a good way of identifying areas of commonality that can be turned into single shared services to deliver the expected cost savings.

6.3 Establishing Policies

6.4 Establishing Standards???

6.5 Operating EnvironmentNeed this???

6.6 Versioning

6.6.1 Contract VersioningA contract between a service consumer and a service provider may be versioned throughout the lifetime of the service provided by the service provider. The versioning of the contract should not affect existing contracts between other consumers of the same service. This should reduce the coordination effort with established service consumers.

6.6.2 Policy VersioningThe policy of a particular service provider may be versioned as modifications occur within the service provided by the service provider. The versioning of the policy may affect all consumers of the service and needs to be communicated properly. Service consumers are affected by the policy change which may lead to a coordination and socialization effort lead by the service provider before the modification and versioning occurs.

6.6.3 Exchange VersioningThe exchange format that is required and provided by the service may be modified throughout the lifetime of the particular service. The versioning of the exchange format may happen on a consumer by consumer rollout thereby not affecting all consumers. In this case, the exchange format should support the existing versions of the exchange with a roadmap of when those versions will be deprecated. Providing a roadmap of when versions are no longer supported gives a consumer opportunity to budget and plan for modifying the interaction details on the consuming of the service.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 34 of 38

976977978979980

981

982

983

984985

986

987988989990991

992

993994995996997998

999100010011002100310041005

1006

100101102

Page 35: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

Serv ice Consumer - YService - B

Serv ice Consumer - XService - B

Serv ice Prov ider B

Service - B

Operation A

Operation A - v1.0 Operation A - v1.1

Operation A - v1.0 Operation A - v1.1

«realize» «realize»

«delegate»

Figure 6 - Overview of Exchange Versioning

In addition to the exchange being versioned for a given operation on the service, the entities in which the operation depends on may be versioned by another exchange. For instance, there could be an operation B that might version the entity that operation A requires.

6.6.3.1 Web ServicesSchemas versioning is needed by a web service.

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 35 of 38

10071008

100910101011

10121013

103104105

marchadr, 01/03/-1,
Page: 1Need to talk more about this, since most of the services today provide schemas and wsdls that need to be versioned and maybe there is a suggested strategy… Let’s see what happens with this one.
Page 36: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

A. AcknowledgementsThe following individuals have participated in the creation of this specification and are gratefully acknowledged:Participants:

[Participant Name, Affiliation | Individual Member][Participant Name, Affiliation | Individual Member]

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 36 of 38

1014

10151016101710181019

1020

106107108

Page 37: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

B. Non-Normative Text

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 37 of 38

1021

109110111

Page 38: OASIS SOA Blueprints Specification · Web viewDRAFT, 19 December 2005. Artifact Identifier:--–V0.1–r0.5. Location: Current: docs.oasis-open.org// /latest. This Version: docs.oasis-open.org

C. Revision History[optional; should not be included in OASIS Standards]

Revision Date Editor Changes Made

0.1 12/01/2005 Daniel Marchant Initial creation of the document

[Document Identifier] [DD Month YYYY]Copyright © OASIS Open 2005. All Rights Reserved. Page 38 of 38

1022

1023

1024

10251026

112113114