soa - wordpress.com · web viewservice contractscorresponds to chapter 6. definition. defines terms...

16

Upload: others

Post on 01-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described
Page 2: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

SOA

Build up from reviewing Thomas Erl's SOA Principles of Service Design Service Contracts

Corresponds to Chapter 6 definition

defines terms of engagement provides technical constraints public semantic information

described with 'service description' documents web service contract would be made up of

WSDL definition XML Schema Definition WS Policy description document for SLA

RPC service contracts could be described with IDL or ASN.1 Principle Profile

Definition "services share standardized contracts" services within the same inventory are in compliance

with the same contract design standards Goals

have meaningful levels of interoperability consistency of data models to minimise transformation allow services to be easily understood achieve a level of consistency

Design Characteristics a contract is provided with the service contract is standardised application of design standards

Implementation Requirements design standards in place & in use formal processes for ensuring service modelling & design is

consistent promotion of 'contract first' approach appropriate modelling & design skills

Standardization data representation

avoid unnecessary transformation common definitions for common types causes of non standardisation

auto generated by dev tools part of service adaptor purchase no standards in place standards ignored

functional service expression policies

Page 3: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

assertion vocabularies e.g. WS-SecurityPolicy, WS-ReliableMessaging without standardisation risk of dependency

on underlying implementation parameters & nested policies

structural standards e.g. using WSDL

granularity quantity service contract content & extent of

standardisationcan have direct bearing in principles being realized

has close relationship to service loose coupling & service abstraction principles

Risks with Service Contract Design versioning technology dependencies

technology maturity lifespan compatibility upgradability

development tool deficincies manual crafting to avoid defn being subject minute

changes from App tool capable of supporting aspects of standards

needed ability to import existing services

capture of non technical elements SLAs

Design Fundamentals Design Characteristic

attribute orv quality goal for characteristics that are measurable aim for common characteristics increased consistency increased consistency -> more predictable

Design Principle generalized industry practise recommended guidelines for shaping solution

Design Paradigm approach or school of thought combines with rules governing approach to design

Design Pattern Language when apptern applied to solve 1 problem shows up

another so resolved by a combination of patterns Design Standard Best Practise Design Pattern

Page 4: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

Service OrientatedRelates to Chapter 4 of SOA Principles

Service Orientation as a Design Paradigm Standardized Service Contract Service Loose Coupling Service Abstraction Service Reusability Service Autonomy Service Statelessness

excessive state info can impact scaling Service Discoverability Service Composability

considerations to support service usability service - has specific meaning service can be a collection of related capabilities services are interoperable

service contracts are standardised reducing service coupling means limited interdependency abstraction allows implimentation to evolve designing for re-use in mind raising service autonomy makes service more predictable statlessness allows better scaling options - therefore interoperate

more frequently more consistently service discoverability - easier location by components that want

to use servic es composable requires interoperability

Challenges in Introduction design complexity (potentially increased)

increased performance requirements due to greater usage reliability at peak concurrent usage increased risk due to single point of failure increased demand on hosting service contract versioning issues

design standards facilitate consistency more successful if championed by snr exec need to 'lay down the law' cultural resistance communication & education to overcome

top down requirements conceptualise services through blueprint of all planned

services does create a lot of upfront effort iterative process - will require existing work to be revisited

& reviewed counter-agile service delivery in support of agile solution delivery

initial upfront work can be seen as counter agile once into svc dev - lot more agile as a result

Governance Demands

Page 5: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

other considerations enterprise wide standardisation not required not revolutionary paradigm

Origins & Influences on SOA Object Orientation

reuse abstraction composition

Business Process Management Enterprise Application Integration Aspect Orientated Programming

Service CouplingThis relates to Chapter 7 of the SOA book

coupling types consumer coupling

Consumer-to-implementation will cause problems with linkage to technology bypasses contract maybe seen as attractive for performance reasons can constrain this approach through centralisation

Consumer-to-contract recommended & desirable approach

connection between services to form solution contract based coupling

Logic-to-Contract contract 1st approach doesn't fit when having to accomodate existing logic able to tune logic to contract - potential for

performance improvement contract-to-Function Contract-to-Implementation Contract-to-Technology Contract-to-Logic

allows freedom for service evolution can create situation where service defn has to

change in auto generated situations measurement

possible to measure coupling & resultant quality score each type of coupling by type - best being lowest score, worst

highest calculate couplnig score over total coupling

coupling and service models entity services

keep coupling to biz entities should only change as biz changes keep agnostic to process

utility services encapsulate legacy so can become implementation coupled use contract to limit implementation associated coupling

Page 6: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

risk of being defined with vendor technology Task Services

can be functionally coupled if service repsents sub biz process will be dependent on

external biz logic can end up with service - consumer coupling where

providing very small services Orchestrated Task services

avoid tech coupling in implementation by using stds e.g. BPEL

impact considerations service loose coupling can have can influence design of standards for contracts emphasis on service abstraction emphasis centralization to maximise re-use increase levels of service autonomy regulate meta data publication for discoverability prevent dependencies that can inhibit service composability

what if coupling is too loose interface types too bareboned/primitive incur greater overhead in data interpretation increased performance requirements

Service Reusability Principle

goals repeated leverage service to improve ROI increase business agility realize agnostic service models enable creation of service inventories with high percentage

of agnostic services design characteristics

The service is defined by an agnostic functional context The service logic is highly generic The service has a generic and extensible contract The service logic can be accessed concurrently

Definition -Services contain and express agnostic logic and can bepositioned as reusable enterprise resources

measurement commercial design considerations

Service Autonomy (Boundaries & Control)Chapter 10 - service Autonmy (Processing Boundaries and Control)

Service Re-usabilityChapter 9

challenges of service design designing for multiple scenarios potential of complexity growth implementing enhancements when there are multiple users

Profile Definition - Services contain and express agnostic logic and

can be positioned as re-usable enterprise resources

Page 7: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

goals allow for service logic to be repeatedly leveraged

over time so as to achieve an increasingly high returnon the initial investment of delivering the service

increase business agility on an organizational level byenabling the rapid fulfillment of future business automationrequirements through wide-scale service composition

enable the realization of agnostic service models To enable the creation of service inventories with a high

percentage of agnostic services characteristics

service is defined by an agnostic functional context service logic is highly generic service has a generic and extensible contract service logic can be accessed concurrently

Implementation Requirements scalable runtime environment solid version control analysts and designers have a high level of SME high level of service dev & commercial s/w dev to ensure

underlying logic generic Measuring re-use & applying commercial design

maximise re-use need to understand potential future uses need to understand organisations biz models,

tech env, and users - hence upfront SOA analysis commerical solution view - helps predict

possible application in future informs most suitable type of logic informs most suitable quanity of logic

common criteria to be applied strategic goals & vision statements existing models such as service inventory blueprint common usage scenarios current biz requirements historical biz patterns (see changes in direction) possible acquisitions that may impact biz model service delivery timelines existing legacy and upgrade plans

can use market survey - as target audience known to measure needs

measures of planned re-use tactical reuse (the services needed now) targeted reuse (features for now & beyond

immediate need, but only extend as need arises) Complete reuse (service developed for complete

range of functionality - use if good service inventory blueprint exists)

measuring actual reuse the number of services that consume the service

Page 8: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

frequency of consumers using the service Commercial Design vs Gold Plating

gold plating risks extra features increase delivery time & cost extra features conflict with program's existing

design goals features may never be needed or used

if apply service re-use properly, wont result in gold plating to achieve re-use need to persue design standards

services defined as re-usable must only be used throughpublished interface - Logic Centralization pattern

motivation for logic centralisation standard risk of adding logic into existing services project not aware of other services where logic better

suited startup effort of a developing with a different service

differentiate between logic centralization & contract centralization Logic 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 & design reuse & service modelling reuse & granularity

service granularity capability granularity data granularity constraint granularity

reuse & service models other principles to be considered

service autonomy service statlessness service discoverability service discoverability service composability

Risks cultural concerns

re-use not engendered managing cross projects as reuse can cross cut its impact surrender of solution design control

governance team focus away from solutions to services change in ownership of services to a central group augmentation of central team

reliability - single service, means if it fails impact far greater

Page 9: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

security - service providing right level of constraint to consumers agile delivery

Service AbstractionRelates to Chapter 8 of Thomas Erl's Principles of SOA Design

for information hiding meta abstraction types

technology information functional information programmtic logic information

hiding how service implemented consider implications of delivery

closed source inhouse open source

quality of service information may have to publish details concurrency limits availability limits eg scheduled outages biz rules that determine way apps respond

profiling of principle measuring abstraction

content abstraction levels (worst) detailed

elaborate with many constraints defined common with validation when business rules have been deferred to a

contract abstraction not really being applied

concise minimal abstraction applied

(best) optimized typically audited for abstraction validation of inputs sparse & capable of handling a

widev range of data input mixed detail

some aspects optimized others not typical of vevolutionary process can occur when policies not properly applied

access control levels abstraction typically on the technical domain access control on the human domain prevent non service owners from seeing detail they should not

need balance between abstraction & encapsulation

encapsulating legacy environments may prove challenging asconstrained by APIs, connectors and existing technology

custom logic - provides best chances to balance risks

multi-consumer coupling

Page 10: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

difficult to get service vs performance right for all consumers

abstract too much information can make service unusalble to some consumers

Contract denomalization pattern may help misjudgement by humans

abstract too much and human assumption about capability can be a problem

insufficient information lead none use as assumed doesnt meet need

security & privacy risks of compliance etc service availability

Web References SOA Books

http://www.soabooks.com/ SOA Patterns

http://www.soapatterns.com/ SOA Magazine

http://www.soamag.com/ IBM RedBook- Implementing an SOA using an Enterprise Service Bus

http://www.redbooks.ibm.com/redbooks/pdfs/sg246346.pdf Wikipedia

http://en.wikipedia.org/wiki/Service-oriented_architecture OASIS

http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm#resources SOA Blue Print

http://www.soablueprint.com/ IBM RedBook - SOA Security

http://www.redbooks.ibm.com/redbooks/pdfs/sg247310.pdf Design Principles

Relates to Chapter 5 activities to get SOA underway

Commonly supported SOA Principlesduring modelling process

Service Reliability Service Autonomy Service Discovery

need to factor principles into design process Establish Supporting Design standards

principles that implement vs regulate principles resulting in implementation

of specific service patterns standardized service contract service re-usability service autonomy service statelessness service discoverability

primarily shape & regulateapplications of other principles

service loose coupling

Page 11: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

service abstraction service composability

capability vs operation vs method capability = specific function of a service capability = expressed within service contract capability = not a dictation of implementation operation = capability implimented as web service method = represents capability as part

of a service existing as a component Granularity

service granularity functional scope of service coarse grained - broad functional context.

Maybe 1 or many capabilities capability granularity

functional scope of a specific capability fine grained means less work to do

data granularity quantity of data exchanged for a capability to do its work passing whole documents (even if service only

needs a fraction of it) = coarse grained constraint granularity

how precise the schema/data modeldefines the data structure

Service Orientated ComputingBased around Chapter 3

key elements Service Orientated Architecture Service orientation Service Orientated Solution Logic Services Service Compositions Service Inventory

Service Models Entity Services Task Services Utility Services

supporting services e.g. logging SOA and Web services

1st Gen WSDL SOAP UDDI

2nd Gen WS-* extensions www.ws-standards.com

www.ws-standards.com www.soaspecs.com

www.soaspecs.com Service Inventory Blue Prints

Page 12: SOA - WordPress.com · Web viewService ContractsCorresponds to Chapter 6. definition. defines terms of engagement. provides technical constraints. public semantic information. described

pre-service development, consolidate variousbiz models to get global view

sources business entity models logical data models canonical data models ontologies

Service Orientated Analysis a methodology to provide consistent level of service definitions Service modeling service candidates (candidate services) increased emphasis in BA in design process

Goals & Benefits Increased Intrinsic Interoperability

improved data sharing between apps make services interoperable - so less actual integration

effort facilitated by consistency of approach

Increased Federation resources & apps united whilst retaining autonomy &

governance standardisation needed upfront underpining becomes de-emphasised

Increased vendor diversification options always 'best of breed' becomes an option services approach allows for vendor neutrality

Increased Business & Technology Domain alignment promotion of abstraction layers abstraction allows modelling to be better aligned to biz needs more input from biz SMEs

Increased ROI potential for re-use does require more upfront investment for longer term ROI

Increased Organisational Agility ability to respond to change better building blocks - so quicker results improved agnostic allowing for changes easier/quicker to

introduce Reduced IT Burden

better reuse = lower total maintenance