Date post: | 08-Apr-2018 |
Category: |
Documents |
Upload: | yesrameshkumar |
View: | 227 times |
Download: | 0 times |
of 36
8/6/2019 Service Taxonomy
1/36
8/6/2019 Service Taxonomy
2/36
Session Objectives and Agenda
Understand the need for a Service TaxonomyUnderstand the service types defined by the Taxonomy
Their roles and characteristics
The similarities and differences between themUnderstand how service types are composed together
Describe a particular composition model of the elementsdescribed by the taxonomy (Process Driven)Hint to other models (e.g. Event Driven)
Understand how service types relate to Business & ITrelated decisions
8/6/2019 Service Taxonomy
3/36
SOA Complexity
SOA aims to expose functional assets andbusiness processes so that they can be reused
A typical large enterprise can expect to have dozensof course-grained sets of services
Many of them are likely to use other lower-levelservices, which in turn could use even finer-grainedservices, and so on
Managing a huge toolbox of reusablecomponents is very difficult
To promote composition and reuse, we need awell structured service catalog
Without it our SOA efforts will collapse under their own weight!
8/6/2019 Service Taxonomy
4/36
Taxonomy
A classification of things, as well as to the principlesunderlying such a classificationMathematically, a Hierarchical Taxonomy is a tree
structure of classifications for a given set of objectsContainment hierarchy
Programming Languages
.NET
C# VB
Other
C++ COBOL
8/6/2019 Service Taxonomy
5/36
Defining a Good Taxonomy
Trucks
SedansMini Vans
StationWagons
8/6/2019 Service Taxonomy
6/36
8/6/2019 Service Taxonomy
7/36
Solution Components
Application FrameworkBus Services
Part of the supporting distributed computing infrastructure
Functionality it is not specific to any application Application Services
Coarse grained, high-level app building blocks
Application ServicesCommunication
Services
UtilityServices
Application Framework
8/6/2019 Service Taxonomy
8/36
Bus Services
Communication ServicesOffer message transfer facilitiesE.g. message-routing, publish-subscribe,
Utility ServicesOffer capabilities unrelated to message transfer E.g. service-discovery, federated-identity,
Application Services
CommunicationServices
UtilityService
s
Service Authoring Framework
8/6/2019 Service Taxonomy
9/36
Application Services
Entity ServicesManipulate business entitiesE.g. Employee, Purchase Order, Conveyer Belt
Capability Services and Activity ServicesFunctional building blocks of the applicationE.g. Check Vacation Eligibility, Verify Customer Credit
Process ServicesCompose and orchestrate Entity, Capability and ActivityServices to implement business processesE.g. Authorize Vacation, Process Purchase Order
Application Services
CommunicationServices
UtilityService
s
Service Authoring Framework
8/6/2019 Service Taxonomy
10/36
Application Services
Sample CompositionProcess Driven Solution
Process
Capability
Activity
Capability
CommunicationServices
UtilityServices
Discovery
STS
Sc ema appin
Routin PublisSubscribe Queuin
Activity
Clou
EntityEntity
Activity Capability
Entity
BizTalk, WCF, WF, S Q
8/6/2019 Service Taxonomy
11/36
Communication Services
RoleTransport messagesInto, out of, and within the system
Across network or protocol boundaries
Not concerned with the content of the messagesMessage schema agnosticMay use message parts to determine message advancement
ExamplesRelays, pub-sub, routers, queues, gateways
Application Services
CommunicationServices
UtilityService
s
Service Authoring Framework
8/6/2019 Service Taxonomy
12/36
Communication Services
InterfacesGeneric interface for receiving & forwarding messagesInterface is message-schema agnostic
Management and possibly monitoring interfaces
Management Monitoring
CommunicationService
8/6/2019 Service Taxonomy
13/36
Communication Services
CharacteristicsCharacteristic Details
State Management No app state. Self state configured by the
applicationMonitoring &Diagnostics
Analysis of message traffic patterns. Error ratereporting
Security App-specific requirements, regulatory, etc. withpermissions at App, User, or App-User
Errors Network level (e.g. round robin)
Construction &Management
A commodity (build centrally or buy) thats builtto last and is centrally managed
8/6/2019 Service Taxonomy
14/36
Utility Services
RoleGeneric, non-messaging, app-agnostic services
E.g. STS, discovery, message schema translation, etc.
Configured on how to perform operations for the appE.g. schema mapping for schema translation service
Application Services
CommunicationServices
UtilityService
s
Service Authoring Framework
8/6/2019 Service Taxonomy
15/36
Utility Services
Interfaces An interface specific to the service functionalityProcesses messages sent to itMessage exchange is typically request-response
May also have management and monitoring interfaces
UtilityService
Management Monitoring
FunctionalInterface
8/6/2019 Service Taxonomy
16/36
Utility Services
CharacteristicsCharacteristic Details
State Management No app state. Self state configured by the
applicationMonitoring &Diagnostics
Analysis of service requests. Error ratereporting
Security App-specific requirements, regulatory, etc. withpermissions at App, User, or App-User
Errors Errors handling is specific to the servicesfunctionality
Construction &Management
A commodity (build centrally or buy) thats builtto last and is centrally managed
8/6/2019 Service Taxonomy
17/36
Application Services
(Recap)Entity ServicesManipulation of business entitiesE.g. Employee, Purchase Order, Conveyer Belt
Capability Services and Activity ServicesFunctional building blocks of the applicationE.g. Check Vacation Eligibility, Verify Customer Credit
Process ServicesCompose and orchestrate Entity, Capability and ActivityServices to implement business processesE.g. Authorize Vacation, Process Purchase Order
Application Services
CommunicationServices
UtilityService
s
Service Authoring Framework
8/6/2019 Service Taxonomy
18/36
Entity Services
RoleUnlock and surface the business entities in the systemData-centric components ("nouns") of the business processExpose the information stored in one or more data stores in thesystem through a service interface
Abstract data storese.g. SQL Server, Active Directory, etc.
The information being managed is of general interestUsed in several or even all the systems in the organization
Application Services
CommunicationServices
UtilityServices
Service Authoring Framework
8/6/2019 Service Taxonomy
19/36
Entity Services
InterfacesCRUD interface at the entity levelOperations may depend on access & modification restrictionsEntities are structured typesUnderlying data stores typically relational or hierarchical
Additional domain-specific operations Addressing problem-domainSupport apps features & use-cases
E.g. FindCustomerIdByCriteria
EntityService
FunctionalInterface
(CRUD + domainspecific)
8/6/2019 Service Taxonomy
20/36
8/6/2019 Service Taxonomy
21/36
8/6/2019 Service Taxonomy
22/36
Capability Services
RoleRepresent business-level capabilities of the org Action-centric building blocks of the organizationsbusiness processes
Atomic verbs"Can be further divided by the type of service that theyprovide
By business function: Financial, ERP, Mfg., etc.By type: 3rd-party interfacing, internal/unique to business, etc.Etc.
Application Services
CommunicationServices
UtilityServices
Service Authoring Framework
8/6/2019 Service Taxonomy
23/36
Capability Services
InterfaceInterface specific to the capability they representMay thinly wrap an existing (legacy) or newly acquiredbusiness capability
Faade service is opaqueUnderlying capability can be replaced without changing theservice interface used to access itFaade service is considered the Capability ServiceUnderlying capability becomes an implementation detail
CapabilityService
FunctionalInterface
ExistingCapability
NewCapability
Service
FunctionalInterface
8/6/2019 Service Taxonomy
24/36
Capability Services
CharacteristicsCharacteristic Details
State Management Manage transient state, for shorter than the
duration of the processConsistency Atomic TX (flowed downstream) & Reservation
pattern (over downstream store)
Security App-specific access restriction requirements,regulatory, etc. Permissions at App level
Errors Error compensation part of SLE/SLA
Construction &Management
Built /Buy/Lease to last (workflow or code).Used by multiple apps & centrally managed
8/6/2019 Service Taxonomy
25/36
Activity Services
RoleBusiness-level capabilities or action-centric businesslogic elements (building blocks)
Used in a single composite-app or a single solutionMay evolve into Capability Services
Forces impacting creation of Activity ServicesDecomposition of a complex processEnabling reuse of functionality in several places
Within a single Process Service or acrossdifferent Process Services
Forces can stem from a variety of sources
Architectural/implementation requirements,organizational forces, security requirements,
regulatory requirements, etc.
Application Services
CommunicationServices
UtilityServices
Service Authoring Framework
8/6/2019 Service Taxonomy
26/36
Activity Services
InterfaceService interface is specific to the capabilityIt is possible for an Activity Services to wrap an existingunit of functionality
Especially in Lift and Shift cases
ActivityService
FunctionalInterface
ExistingFunctionality
New
ActivityService
FunctionalInterface
8/6/2019 Service Taxonomy
27/36
Activity Services
CharacteristicsCharacteristic Details
State Management Manage transient state. Wrapping cases will
actually hold app stateConsistency Atomic TX (used internally) & Reservation
pattern (with wrapped system)
Security App-specific access restriction requirements,regulatory, etc. Permissions at App level
Errors Error compensation part of SLE/SLA
Construction &Management
Built in-house to last (workflow or code). Usedby single apps & managed accordingly. Over time may transition into a Capability
8/6/2019 Service Taxonomy
28/36
Process Services
RoleCombine data-centric and action-centric building blocksto implement business processes
Compose the functionality of Activity Services, CapabilityServices, and Entity Services and tie them together withbusiness logicDesigned to enable process agility
May be composed into the workflows of other ProcessServices
Are not be re-categorized as Capability or Activity Services dueto their long-running nature and the fact that they implement anagile process
Application Services
CommunicationServices
UtilityServices
Service Authoring Framework
8/6/2019 Service Taxonomy
29/36
Process Services
InterfacesOften fronted with a user interface that initiates,controls, and monitors the process
Service interface typically geared towards consumption by thepresentation layer Provides the right level of granularity required to satisfy the usecases that the user-facing front-end implements
Monitoring the business process (BAM)
ProcessService
FunctionalInterface
Monitoring
8/6/2019 Service Taxonomy
30/36
Process Services
CharacteristicsCharacteristic Details
State Management Manage app state for the duration of a the
process implementedConsistency None or Reservation pattern (if recomposing)
Security User-specific access restrictions
Errors Error handling is an integral part of the processbegin implemented
Construction &Management
Built in-house to change (workflow). Used by asingle app & managed per-app. May berecomposed into another process
8/6/2019 Service Taxonomy
31/36
Service Taxonomy Summary
Category State Security Errors Build/Buy Mgmt.
Messaging Self N/A Limited Buy Centralized
Utility Self User/App Limited Buy Centralized
Entity System User/App Limited Build CentralizedCapability None/Self App Meet SLE/A B/B/Lease Centralized
Activity None/Self App Meet SLE/A Build Per app
Process Process User Biz Logic Build Per app
8/6/2019 Service Taxonomy
32/36
Presentation Summary
For the architect, having a good grasp of the differentcategories helps with:
Classifying existing or new servicesDefining the proper functionality to include in a particular
service in order to promote composition and reuseFor IT & BDM, understanding the business value of acomponent and its commoditization level
Affects build vs. buy vs. lease decisionsMay expose opportunities for making a service available for
others as a SaaS offering
For more details on this topics see my article in the Architecture Journal
8/6/2019 Service Taxonomy
33/36
Call to Action
Catalogue your existing servicesEnhance the Taxonomy to fit your needs
Subclass the taxonomy categories as needed
Split categories with many services using finer granularity
E.g. Sales related entities vs. Manufacturing related entitiesCreate orthogonal categories for services to help discoverabilityNot a parallel service taxonomy!
Attributes that cut across taxonomy categoriesE.g. Customer related services vs. Partner related services
Give us feedbackHow can we make this more useful for you?Would you like to see us using this taxonomy in our product planningprocess? If so, how?
8/6/2019 Service Taxonomy
34/36
Resources
T echnical Communities, Webcasts, Blogs, Chats & User Groupshttp://www.microsoft.com/communities/default.mspx
Microsoft Learning and Certificationhttp://www.microsoft.com/learning/default.mspx
Microsoft Developer Network (MSDN) & T echNethttp://microsoft.com/msdnhttp://microsoft.com/technet
T rial Software and Virtual Labshttp://www.microsoft.com/technet/downloads/trials/default.mspx
8/6/2019 Service Taxonomy
35/36
8/6/2019 Service Taxonomy
36/36
2007 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.