19. Service Orientation

bevyquixoticSecurity

Nov 3, 2013 (3 years and 9 months ago)

240 views

Service Orientation

Main issues:

• What’s special about services?

• Essentials of service
-
oriented SE

SE, Servic Orientation, Hans van Vliet, ©2008

2

Overview


Services, service description, service
communication


Service
-
Oriented Architecture (SOA)


Web services


SOSE: Service
-
Oriented Software Engineering


SE, Servic Orientation, Hans van Vliet, ©2008

3

Italian restaurant analogy


Restaurant provides food: a service



After the order is taken, food is produced, served,
…: service may consist of other services



The menu indicates the service provided: a
service description



The order is written down, or yelled at, the cook:
services communicate through messages


SE, Servic Orientation, Hans van Vliet, ©2008

4

Main ingredients



Services


Service descriptions


Messages



Implementation: through web services

SE, Servic Orientation, Hans van Vliet, ©2008

5

Other example


Citizen looking for a house:


Check personal data


System X




Check tax history


System Y



Check credit history


System Z



Search rental agencies


System A,B





SE, Servic Orientation, Hans van Vliet, ©2008

6

What’s a service


Platform
-
independent computational entity that can be used
in a platform
-
independent way



Callable entities or application functionalities accessed via
exchange of messages



Component capable of performing a task



Often just used in connection with something else: SOA,
Web services, …

SE, Servic Orientation, Hans van Vliet, ©2008

7

What’s a service, cnt’d


Shift from
producing

software to
using

software


You need not host the software


Or keep track of versions, releases


Need not make sure it evolves


Etc


Software is “somewhere”, deployed on as
-
needed
basis


SaaS: Software as a Service


SE, Servic Orientation, Hans van Vliet, ©2008

8

Key aspects



Services can be discovered


Services can be composed to form larger services


Services adhere to a service contract


Services are loosely coupled


Services are stateless


Services are autonomous


Services hide their logic


Services are reusable


Services use open standards


Services facilitate interoperability

SE, Servic Orientation, Hans van Vliet, ©2008

9

Service discovery

Service

registry

Service

provider

Service

requestor

lookup

bind

publish

SE, Servic Orientation, Hans van Vliet, ©2008

10

Service discovery

Rental agency 1

Rental agency 2

Rental agency 2

Municipality

system

Apartment

(immediate, cheap)

publish

Agency 1

Apartment?

Rental agreement

Rental agency 1

Rental agency 1

SE, Servic Orientation, Hans van Vliet, ©2008

11

Service discovery


Discovery is dynamic, each invocation may select a different
one



Primary criterion in selection: contract



Selection may be based on workload, complexity of the
question, etc


潰瑩浩穥 捯浰畴攠牥獯畲捥s



If answer fails, or takes too long


獥汥捴 慮潴桥爠獥牶楣攠


浯牥m晡畬u
-
t潬敲慮捥

SE, Servic Orientation, Hans van Vliet, ©2008

12

Is discovery really new?



Many design patterns loosen coupling between
classes



Factory pattern: creates object without specifying
the exact class of the object.

SE, Servic Orientation, Hans van Vliet, ©2008

13

Services can be composed



Service can be a building block for larger services



Not different from CBSE and other approaches

SE, Servic Orientation, Hans van Vliet, ©2008

14

Services adhere to a contract



Request to registry should contain
everything

needed, not
just functionality



For “normal” components, much is implicit:


Platform characteristics


Quality information


Tacit design decisions



Trust promises?



Quality of Services (QoC), levels thereof



Service Level Agreement (SLA)

SE, Servic Orientation, Hans van Vliet, ©2008

15

Service discovery

Rental agency 1

Rental agency 2

Rental agency 1

Municipality

system

Apartment

(immediate, cheap)

Agency 1

Apartment?

Rental agreement

SE, Servic Orientation, Hans van Vliet, ©2008

16

Services are loosely coupled



Rental agencies come and go



No assumptions possible



Stronger than CBSE loose coupling

SE, Servic Orientation, Hans van Vliet, ©2008

17

Services are stateless



Rental agency cannot retain information: it
doesn’t know if and when it will be invoked again,
and by whom

SE, Servic Orientation, Hans van Vliet, ©2008

18

Services are autonomous, hide their logic


Rental agency has its own rules on how to
structure its process



Its logic does not depend on the municipality
service it is invoked by



This works two ways: outside doesn’t know the
inside, and vice versa

SE, Servic Orientation, Hans van Vliet, ©2008

19

Services are reusable


Service models a business process:


Not very fine grained


Collecting debt status from one credit company is not a
service, checking credit status is



Deciding on proper granularity raises lots of
debate

SE, Servic Orientation, Hans van Vliet, ©2008

20

Service use open standards


Proprietary standards


癥v摯爠汯捫楮



There are lots of open standards:


How services are described


How services communicate


How services exchange data


etc

SE, Servic Orientation, Hans van Vliet, ©2008

21

Services facilitate interoperability


Because of open standards, explicit contracts and
loose coupling



Classical CBSE solutions pose problems:


Proprietary formats


Platform differences


Etc



Interoperability within an organization (EAI) and
between (B2B)

SE, Servic Orientation, Hans van Vliet, ©2008

22

Overview


Services, service description, service communication



Service
-
Oriented Architecture (SOA)



Web services


SOSE: Service
-
Oriented Software Engineering


SE, Servic Orientation, Hans van Vliet, ©2008

23

Service
-
Oriented Architecture



Architecture:


the fundamental organization of a system in its components,
their relationships to each other and to the environment and
the principles guiding its design and evolution



SOA: Any system made out of services?

SE, Servic Orientation, Hans van Vliet, ©2008

24

What is SOA?

Infrastructure service layer

Orchestration/coordination layer

Business services layer

service bus

service

service

service

service

logical

physical

SE, Servic Orientation, Hans van Vliet, ©2008

25

Service bus


Event
-
based messaging engine



Origin: EAI, solve integration problems



Often takes care of:


Mediation: protocol translation, data transformation, etc


Quality of Service issues: security, reliable delivery of messages,
etc


Management issues: logging, audit info, etc.


Service discovery



Can be central (broker, hub), or decentral (smart endpoints)

SE, Servic Orientation, Hans van Vliet, ©2008

26

Service coordination



Orchestration: central control



Choreography: decentral control

SE, Servic Orientation, Hans van Vliet, ©2008

27

Overview


Services, service description, service communication


Service
-
Oriented Architecture (SOA)



Web services



SOSE: Service
-
Oriented Software Engineering


SE, Servic Orientation, Hans van Vliet, ©2008

28

Web services


Implementation means to realize services


Based on open standards:


XML


SOAP: Simple Object Access Protocol


WSDL: Web Services Description Language


UDDI: Universal Description, Discovery and Integration


BPEL4WS: Business Process Execution Language for Web
Services


Main standardization bodies: OASIS, W3C

SE, Servic Orientation, Hans van Vliet, ©2008

29

Coordination of Web services

BPEL4WS

WSDL

Java

WSDL

Java

WSDL

Java

SE, Servic Orientation, Hans van Vliet, ©2008

30

Web services stack

BPEL4WS

WSDL

UDDI

HTTP, FTP, …

SOAP

composition

description

messages

network

discovery

SE, Servic Orientation, Hans van Vliet, ©2008

31

XML


Looks like HTML


Language/vocabulary defined in schema:
collection of trees


Only syntax


Semantic Web, Web 2.0: semantics as well: OWL
and descendants

SE, Servic Orientation, Hans van Vliet, ©2008

32

SOAP


Message inside an envelope


Envelop has optional header (~address), and
mandatory body: actual container of data


SOAP message is unidirectional: it’s NOT a
conversation

SE, Servic Orientation, Hans van Vliet, ©2008

33

WSDL


Four parts:


Web service interfaces


Message definitions


Bindings: transport, format details


Services: endpoints for accessing service. Endpoint =
(binding, network address)

SE, Servic Orientation, Hans van Vliet, ©2008

34

UDDI


Three (main) parts:


Info about organization that publishes the services


Descriptive info about each service


Technical info to link services to implementation


SE, Servic Orientation, Hans van Vliet, ©2008

35

UDDI (cnt’d)


Original dream: one global registry


Reality: many registries, with different levels of
visibility


Mapping problems

SE, Servic Orientation, Hans van Vliet, ©2008

36

BPEL4WS


Three main parts:


Partnerlinks: dependencies between services: who sends what to
whom


Global variables


Workflow model: “program”


BPEL4WS is an orchestration language; executable


WS
-
CDL (Web Services Choreography Description
Language) is a choreography language; not executable

SE, Servic Orientation, Hans van Vliet, ©2008

37

Overview


Services, service description, service communication


Service
-
Oriented Architecture (SOA)


Web services



SOSE: Service
-
Oriented Software Engineering


SE, Servic Orientation, Hans van Vliet, ©2008

38

SOSE life cycle

Service oriented

analysis

Service oriented

design

Service

development

Service

testing

Service

deployment

Service

administration

SE, Servic Orientation, Hans van Vliet, ©2008

39

Terminology


service oriented environment (or service oriented
ecosystem)


business process + supporting services


application (infrastructure) service


business service


Task
-
centric business service


Entity
-
centric business service


hybrid service

SE, Servic Orientation, Hans van Vliet, ©2008

40

Terminology

order

fulfilment

service

purchase

order

service

send

utility

service

wrapper

service

customer

profile

service

hybrid services

business services

infrastructure services

entity
-
centric

verify

PO

service

task
-
centric

notification

service

hybrid services

business services

infrastructure services

task centric

entity centric

SE, Servic Orientation, Hans van Vliet, ©2008

41

Strategies for life cycle organization


Top
-
down strategy


Bottom
-
up strategy


Agile strategy

SE, Servic Orientation, Hans van Vliet, ©2008

42

Top
-
down strategy

Service oriented

analysis

Service oriented

design

Service

development

Service

testing

Service

deployment

SE, Servic Orientation, Hans van Vliet, ©2008

43

Top
-
down SO analysis

Define enterprise

business models

Define enterprise

service model

Compose SOA

Perform service

oriented analysis

Service oriented

design

....

step 1

step 2

step 3

step 4

step 1

step 4

step 3

step 2

SE, Servic Orientation, Hans van Vliet, ©2008

44

Bottom
-
up strategy

Model application

services

Design
application

service

Develop

application

services

Test

services

Deploy

services

application service = infrastructure service

SE, Servic Orientation, Hans van Vliet, ©2008

45

SO analysis

SO design

Develop services

Test service operations

Deploy services

Revisit business

(and process) services

Top
-
down

analysis

on
-
going

align with

current
state

business

models

align with

current
state

business

models

Agile strategy

SE, Servic Orientation, Hans van Vliet, ©2008

46

Service oriented analysis





The process of determining how business automation
requirements can be represented through service
orientation

SE, Servic Orientation, Hans van Vliet, ©2008

47

Goals of SO analysis


Appropriateness for intended use


Identify preliminary issues that may challenge required
service autonomy


Define known preliminary composition models

Service operation

candidates

Service candidates

(logical contexts)

SE, Servic Orientation, Hans van Vliet, ©2008

48

3 Analysis sub
-
steps

Service oriented

analysis

Service oriented

design

Define

analysis scope

Identify

automation

systems

Model

candidate services

step 3

step 2

step 1

...

SE, Servic Orientation, Hans van Vliet, ©2008

49

Step 1: Define analysis scope



Mature and understood business requirements


S = ∑i Si, where smaller services may still be quite complex



Can lead to


process
-
agnostic services/service operations (
generic

service
portfolio)


services delivering
business
-
specific

tasks



Models: UML use case or activity diagrams

SE, Servic Orientation, Hans van Vliet, ©2008

50

Order Fulfillment Process

start

receive PO

validate PO

PO

valid

Transform

PO

Import

PO

Send PO

to queue

stop

Send

notification

yes

no

SE, Servic Orientation, Hans van Vliet, ©2008

51

Step 2: Identify automation systems



What is already implemented?


encapsulate


replace



Models: UML deployment diagram, mapping tables

SE, Servic Orientation, Hans van Vliet, ©2008

52

Order Fulfillment Process

start

receive PO

validate PO

PO

valid

Transform

PO

Import

PO

Send PO

to queue

stop

Send

notification

yes

no

already

automated

by

Order

fulfillment

service

same as

previous

same as

previous

(XML
-
> native format)

(currently custom

component)

service candidate

(into accounting sys.)

service candidate

(currently custom legacy)

service candidate

(to accounting clerk's

work queue)

same as previous

SE, Servic Orientation, Hans van Vliet, ©2008

53

Step 3: Model candidate services



How to compose services?



Service (candidates) conceptual model


operations + service contexts


SO principles



Focus on task
-

and entity
-
centred services



Models: BPM, UML use case or class diag.

SE, Servic Orientation, Hans van Vliet, ©2008

54

Example service operation candidates

Receive PO document

PO processing

service

Validate PO document

(If PO document is invalid,)

send rejection notification

(and end process)

Transform PO document

into native

electronic PO format

<<include>>

<<include>>

...

SE, Servic Orientation, Hans van Vliet, ©2008

55

Example business process logic




Not service operation candidates


if PO document is valid, proceed with the transform PO
document step


if the PO document is invalid, end process

SE, Servic Orientation, Hans van Vliet, ©2008

56

Task
-

versus entity
-
centred services



Task
-
centred


(+) direct mapping of
business requirements


(
-
) dependent on specific
process



Entity
-
centred


(+) agility


(
-
) upfront analysis


(
-
) dependent on
controllers

SE, Servic Orientation, Hans van Vliet, ©2008

57

Benefits of business
-
centric SOA



introduce agility



prepare for orchestration



enable reuse

SE, Servic Orientation, Hans van Vliet, ©2008

63

Service
-
oriented design: design sub
-
steps

Service oriented

analysis

Service oriented

design

Compose SOA

Design entity
-
centric

business services

Design infrastructure services

step 3

step 2

step 1

...

Design task
-
centric

business services

step 4

Design SO

business process

step 5

SE, Servic Orientation, Hans van Vliet, ©2008

64

Entity
-
centric business services

Customer

PO

Employee

Invoice

Order

1

*

*

1

1

1

*

*

1

1

1

*

*

1

*

Email

Weekly hours

Customer

Hours billed

...

...

...


Goal: entity
-
centric business service layer + parent
orchestration layer

Receive PO document

PO processing

service

Validate PO document

(If PO document is invalid,)

send rejection notification

(and end process)

Transform PO document

into native

electronic PO format

<<include>>

<<include>>

...

SE, Servic Orientation, Hans van Vliet, ©2008

65

Infrastructure services

Infrastructure service
layer

Business service layer

Orchestration/coordination
layer

PO

processing

service

PO

service

Notification

service

Verify

PO

service

Transform

service

SE, Servic Orientation, Hans van Vliet, ©2008

66

Task
-
centric business services


UML sequence diagram


express and refine order of invocations implicit in the UML use
case diagram

Receive PO document

PO processing

service

Validate PO document

(If PO document is invalid,)

send rejection notification

(and end process)

Transform PO document

into native

electronic PO format

<<include>>

<<include>>

...

Verify PO

service

PO

service

Notification

service

get_PO

[PO data]

send_reject

verify

SE, Servic Orientation, Hans van Vliet, ©2008

67

Summary


Services have a long history (telephony)


Most important characteristic: dynamic discovery
of services


SOA as architectural style


Today’s Web services mostly syntax
-
based


Key design decisions in SOSE concern service
layering, industry standards, and relevant SO
principles


SOSE differentiates from traditional life cycles
mainly in the analysis and design phases