SOA

? SOABuild up from reviewing Thomas Erl's SOA Principles of Service DesignService ContractsCorresponds to Chapter 6definitiondefines terms of engagementprovides technical constraintspublic semantic informationdescribed with 'service description' documentsweb service contract would be made up ofWSDL definitionXML Schema DefinitionWS Policy descriptiondocument for SLARPC service contracts could be described with IDL or ASN.1Principle ProfileDefinition"services share standardized contracts"services within the same inventory are in compliancewith the same contract design standardsGoalshave meaningful levels of interoperabilityconsistency of data models to minimise transformationallow services to be easily understoodachieve a level of consistencyDesign Characteristicsa contract is provided with the servicecontract is standardisedapplication of design standardsImplementation Requirementsdesign standards in place & in useformal processes for ensuring service modelling & design is consistentpromotion of 'contract first' approachappropriate modelling & design skillsStandardizationdata representationavoid unnecessary transformationcommon definitions for common typescauses of non standardisationauto generated by dev toolspart of service adaptor purchaseno standards in placestandards ignoredfunctional service expressionpoliciesassertion vocabulariese.g. WS-SecurityPolicy, WS-ReliableMessagingwithout standardisation risk of dependency on underlying implementationparameters & nested policiesstructural standardse.g. using WSDLgranularityquantity service contract content & extent of standardisationcan have direct bearing in principles being realizedhas close relationship to service loose coupling & service abstraction principlesRisks with Service Contract Designversioningtechnology dependenciestechnology maturitylifespancompatibilityupgradabilitydevelopment tool deficinciesmanual crafting to avoid defn being subject minute changes from Apptool capable of supporting aspects of standards neededability to import existing servicescapture of non technical elementsSLAsDesign FundamentalsDesign Characteristicattribute orv qualitygoal for characteristics that are measurableaim for common characteristicsincreased consistencyincreased consistency -> more predictableDesign Principlegeneralized industry practiserecommended guidelines for shaping solutionDesign Paradigmapproach or school of thoughtcombines with rulesgoverning approach to designDesign Pattern Languagewhen apptern applied to solve 1 problem shows upanother so resolved by a combination of patternsDesign StandardBest PractiseDesign PatternService OrientatedRelates to Chapter 4 of SOA PrinciplesService Orientation as a Design ParadigmStandardized Service ContractService Loose CouplingService AbstractionService ReusabilityService AutonomyService Statelessnessexcessive state info can impact scalingService DiscoverabilityService Composabilityconsiderations to support service usabilityservice - has specific meaningservice can be a collection of related capabilitiesservices are interoperableservice contracts are standardisedreducing service coupling means limited interdependencyabstraction allows implimentation to evolvedesigning for re-use in mindraising service autonomy makes service more predictablestatlessness allows better scaling options - therefore interoperate more frequently more consistentlyservice discoverability - easier location by components that want to use servic escomposable requires interoperabilityChallenges in Introductiondesign complexity (potentially increased)increased performance requirements due to greater usagereliability at peak concurrent usageincreased risk due to single point of failureincreased demand on hostingservice contract versioning issuesdesign standardsfacilitate consistencymore successful if championed by snr execneed to 'lay down the law'cultural resistancecommunication & education to overcometop down requirementsconceptualise services through blueprint of all planned servicesdoes create a lot of upfront effortiterative process - will require existing work to be revisited & reviewedcounter-agile service delivery in support of agile solution deliveryinitial upfront work can be seen as counter agileonce into svc dev - lot more agile as a resultGovernance Demandsother considerationsenterprise wide standardisation not requirednot revolutionary paradigmOrigins & Influences on SOAObject OrientationreuseabstractioncompositionBusiness Process ManagementEnterprise Application IntegrationAspect Orientated ProgrammingService CouplingThis relates to Chapter 7 of the SOA bookcoupling typesconsumer couplingConsumer-to-implementationwill cause problems with linkage to technologybypasses contractmaybe seen as attractive for performance reasonscan constrain this approach through centralisationConsumer-to-contractrecommended & desirable approachconnection between services to form solutioncontract based couplingLogic-to-Contractcontract 1st approachdoesn't fit when having to accomodate existing logicable to tune logic to contract - potential for performance improvementcontract-to-FunctionContract-to-ImplementationContract-to-TechnologyContract-to-Logicallows freedom for service evolutioncan create situation where service defn has to change in auto generated situationsmeasurementpossible to measure coupling & resultant qualityscore each type of coupling by type - best being lowest score, worst highestcalculate couplnig score over total couplingcoupling and service modelsentity serviceskeep coupling to biz entitiesshould only change as biz changeskeep agnostic to processutility servicesencapsulate legacy so can become implementation coupleduse contract to limit implementation associated couplingrisk of being defined with vendor technologyTask Servicescan be functionally coupledif service repsents sub biz process will be dependent on external biz logiccan end up with service - consumer coupling where providing very small servicesOrchestrated Task servicesavoid tech coupling in implementation by using stds e.g. BPELimpact considerations service loose coupling can havecan influence design of standards for contractsemphasis on service abstractionemphasis centralization to maximise re-useincrease levels of service autonomyregulate meta data publication for discoverabilityprevent dependencies that can inhibit service composabilitywhat if coupling is too looseinterface types too bareboned/primitiveincur greater overhead in data interpretationincreased performance requirementsService ReusabilityPrinciplegoalsrepeated leverage service to improve ROIincrease business agilityrealize agnostic service modelsenable creation of service inventories with high percentage of agnostic servicesdesign characteristicsThe service is defined by an agnostic functional contextThe service logic is highly genericThe service has a generic and extensible contractThe service logic can be accessed concurrentlyDefinition -Services contain and express agnostic logic and can bepositioned as reusable enterprise resourcesmeasurementcommercial design considerationsService Autonomy (Boundaries & Control)Chapter 10 - service Autonmy (Processing Boundaries and Control)Service Re-usabilityChapter 9challenges of service designdesigning for multiple scenariospotential of complexity growthimplementing enhancements when there are multiple usersProfileDefinition - Services contain and express agnostic logic andcan be positioned as re-usable enterprise resourcesgoalsallow for service logic to be repeatedly leveragedover time so as to achieve an increasingly high returnon the initial investment of delivering the serviceincrease business agility on an organizational level byenabling the rapid fulfillment of future business automationrequirements through wide-scale service compositionenable the realization of agnostic service modelsTo enable the creation of service inventories with a high percentage of agnostic servicescharacteristicsservice is defined by an agnostic functional contextservice logic is highly genericservice has a generic and extensible contractservice logic can be accessed concurrentlyImplementation Requirementsscalable runtime environmentsolid version controlanalysts and designers have a high level of SMEhigh level of service dev & commercial s/w dev to ensure underlying logic genericMeasuring re-use & applying commercial designmaximise re-use need to understand potential future usesneed to understand organisations biz models,tech env, and users - hence upfront SOA analysiscommerical solution view - helps predictpossible application in futureinforms most suitable type of logicinforms most suitable quanity of logiccommon criteria to be appliedstrategic goals & vision statementsexisting models such as service inventory blueprintcommon usage scenarioscurrent biz requirementshistorical biz patterns (see changes in direction)possible acquisitions that may impact biz modelservice delivery timelinesexisting legacy and upgrade planscan use market survey - as target audience known to measure needsmeasures of planned re-usetactical reuse (the services needed now)targeted reuse (features for now & beyondimmediate need, but only extend as need arises)Complete reuse (service developed for completerange of functionality - use if good service inventory blueprint exists)measuring actual reusethe number of services that consume the servicefrequency of consumers using the serviceCommercial Design vs Gold Platinggold plating risksextra features increase delivery time & costextra features conflict with program's existing design goalsfeatures may never be needed or usedif apply service re-use properly, wont result in gold platingto achieve re-use need to persue design standardsservices defined as re-usable must only be used throughpublished interface - Logic Centralization patternmotivation for logic centralisation standardrisk of adding logic into existing servicesproject not aware of other services where logic better suitedstartup effort of a developing with a different servicedifferentiate between logic centralization & contract centralizationLogic Centralization asks designers to build consumer programs that only invoke designated services when specific types of information processing are required, it does not address how this logic is to be accessed.Contract Centralization asks designers to build consumer programs that access a service only via its published contract, it does not specify which services should be accessed for what purpose.reuse & designreuse & service modellingreuse & granularityservice granularitycapability granularitydata granularityconstraint granularityreuse & service modelsother principles to be consideredservice autonomyservice statlessnessservice discoverabilityservice discoverabilityservice composabilityRiskscultural concernsre-use not engenderedmanaging cross projects as reuse can cross cut its impactsurrender of solution design controlgovernanceteam focus away from solutions to serviceschange in ownership of services to a central groupaugmentation of central teamreliability - single service, means if it fails impact far greatersecurity - service providing right level of constraint to consumersagile deliveryService AbstractionRelates to Chapter 8 of Thomas Erl's Principles of SOA Designfor information hidingmeta abstraction typestechnology informationfunctional informationprogrammtic logic informationhiding how service implementedconsider implications of deliveryclosed sourceinhouseopen sourcequality of service informationmay have to publish detailsconcurrency limitsavailability limits eg scheduled outagesbiz rules that determine way apps respondprofiling of principlemeasuring abstractioncontent abstraction levels(worst) detailedelaborate with many constraints definedcommon with validationwhen business rules have been deferred to a contractabstraction not really being appliedconciseminimal abstraction applied(best) optimizedtypically audited for abstractionvalidation of inputs sparse & capable of handling a widev range of data inputmixed detailsome aspects optimized others nottypical of vevolutionary processcan occur when policies not properly appliedaccess control levelsabstraction typically on the technical domainaccess control on the human domainprevent non service owners from seeing detail they should not needbalance between abstraction & encapsulationencapsulating legacy environments may prove challenging asconstrained by APIs, connectors and existing technologycustom logic - provides best chances to balancerisksmulti-consumer couplingdifficult to get service vs performance right for all consumersabstract too much information can make service unusalble to some consumersContract denomalization pattern may helpmisjudgement by humansabstract too much and human assumption about capability can be a probleminsufficient information lead none use as assumed doesnt meet needsecurity & privacyrisks of compliance etcservice availabilityWeb ReferencesSOA Books Patterns Magazine RedBook- Implementing an SOA using an Enterprise Service Bus Blue Print RedBook - SOA Security PrinciplesRelates to Chapter 5activities to get SOA underwayCommonly supported SOA Principlesduring modelling processService ReliabilityService AutonomyService Discoveryneed to factor principles into design processEstablish Supporting Design standardsprinciples that implement vs regulateprinciples resulting in implementationof specific service patternsstandardized service contractservice re-usabilityservice autonomyservice statelessnessservice discoverabilityprimarily shape & regulateapplications of other principlesservice loose couplingservice abstractionservice composabilitycapability vs operation vs methodcapability = specific function of a servicecapability = expressed within service contractcapability = not a dictation of implementationoperation = capability implimented as web servicemethod = represents capability as partof a service existing as a componentGranularityservice granularityfunctional scope of servicecoarse grained - broad functional context.Maybe 1 or many capabilitiescapability granularityfunctional scope of a specific capabilityfine grained means less work to dodata granularityquantity of data exchanged for a capability to do its workpassing whole documents (even if service onlyneeds a fraction of it) = coarse grainedconstraint granularityhow precise the schema/data modeldefines the data structureService Orientated ComputingBased around Chapter 3key elementsService Orientated ArchitectureService orientationService Orientated Solution LogicServicesService CompositionsService InventoryService ModelsEntity ServicesTask ServicesUtility Servicessupporting services e.g. loggingSOA and Web services1st GenWSDLSOAPUDDI2nd GenWS-* extensionsws-ws-Service Inventory Blue Printspre-service development, consolidate variousbiz models to get global viewsourcesbusiness entity modelslogical data modelscanonical data modelsontologiesService Orientated Analysisa methodology to provide consistent level of service definitionsService modelingservice candidates (candidate services)increased emphasis in BA in design processGoals & BenefitsIncreased Intrinsic Interoperabilityimproved data sharing between appsmake services interoperable - so less actual integration effortfacilitated by consistency of approachIncreased Federationresources & apps united whilst retaining autonomy & governancestandardisation needed upfrontunderpining becomes de-emphasisedIncreased vendor diversification optionsalways 'best of breed' becomes an optionservices approach allows for vendor neutralityIncreased Business & Technology Domain alignmentpromotion of abstraction layersabstraction allows modelling to be better aligned to bizneeds more input from biz SMEsIncreased ROIpotential for re-usedoes require more upfront investment for longer term ROIIncreased Organisational Agilityability to respond to changebetter building blocks - so quicker resultsimproved agnostic allowing for changes easier/quicker to introduceReduced IT Burdenbetter reuse = lower total maintenance ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download