service taxonomy

Upload: yesrameshkumar

Post on 08-Apr-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

  • 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.