23
Designing the structure of a service-oriented application Laura Bocchi [email protected]

Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Embed Size (px)

Citation preview

Page 1: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Designing the structure of a service-oriented

application Laura Bocchi

[email protected]

Page 2: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Agenda

UML use case diagrams

Use case diagrams for service-oriented applications

SRML: an overview of the module structure

Page 3: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Use Case Diagrams (recall)System boundaries

Actors

Use cases

Associations between one actor and one use case

There are also other aspects such as the associations between use cases (extension, inclusion, generalisation) and generalisation between actors. We do not consider them here.

Procurement

Supply

Customer

Warehouse

PriceAnalyst

LocalStock

Page 4: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Use Cases and scenarios (1/2)

The set of functionalities (use cases) of a system can be derived by creating a number of scenarios

A scenario involves one or more actors and can be described as an interaction between the involved actors and the system

E.g., Scenario 1: (1) the customer asks for a quote, (2) the system gets a quote using pricing analyst, (3) the system returns the quote

E.g., Scenario 2: (1) the customer asks for a quote, (2) the system gets a quote using the price analyst, (3) the product is no longer on the market, the system return a warning message to the customer

Page 5: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Use Cases and scenarios (2/2)

A use case represents a collection of scenarios that fulfill a common goal from the perspective of the user

E.g., the use case “evaluation” collects Scenario 1 and Scenario 2

Procurement

Evaluate

Customer

PriceAnalyst

Page 6: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Primary & Secondary ActorsAn actor can be a person, a device, a system, etc.

An actor can be a primary actor or a secondary actor

A primary actor

acts on the system

initiates an interaction with the system

uses the system to fulfill his/her goal

A secondary actor

is acted on/invoked/used by the system

helps the system to fulfills its goal

Page 7: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Primary & Secondary Actors (example)

Procurement

Supply

Customer

Warehouse

PriceAnalyst

LocalStock

Discussion:

which actors are primary and which are secondary?

Page 8: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Agenda

UML use case diagrams

Use case diagrams for service-oriented applications

SRML: an overview of the module structure

Page 9: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Use-Case for SOA

We refine the notion of system boundary

We refine the notion of use case

We define different types of primary and secondary actors

SRML notes: section 2

Page 10: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Secondary actors in a SOA

service-actor

resource-actor

Secondary Actors: represent entities to rely on in order to achieve the underlying business goal

Service-actors: represent a functionality to be provided on the fly (typically change from instance to instance)

Resource-actors: are statically bound and persistent (they are the same for all the instances)

Page 11: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Activities vs Services

activities:- applications that use but do not provide services - developed to meet requirements of a specific business organisation

services: - applications that may use and do provide a service- developed to be published and discovered at run-time

!

Discovery and selection

Business IT teams

Service providers

Publication Application development

Ontology (including hierarchies of business protocols)

!

Service repository

Configuration Management

Activity

repository

!

Activity

A_Lau

Activity

A_Ant Reconfiguration

!

Triggers

!(from the service layer for discovery or from

the top layer for new activities)

(activity-oriented as a result of service binding

or activity creation)

Current Business Configuration(activities and their types)

!

Ontology

!(includes hierarchies

of business

protocols)

Page 12: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Primary actors in a SOA

requester-actor

user-actor

Primary Actors: represent entities that initiate the use case and whose goals are fulfilled through the successful complention of the use case

User-actors: instantiate an activity

Requester-actors: are service requester that discovery/instantiate a servicecase diagrams: overview of usage requirements for a system to be built

Page 13: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Different Types of Actor (example)

Procurement

Supply

Customer

Warehouse

PriceAnalyst

LocalStock

ProcurementService

Customer

Supply

Warehouse

Costs

LocalStock

Discussion:

determine the user, requester, service and resource actors

Page 14: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

System boundary and use cases in SOA

In a service-oriented context there is no “system” but a number of services and activities

The system boundary represents the scope as a logic unit developed by the same company

The scope may encompass entities that are physically distributed but are assembled together at design time

A service/activity describes a single usage requirement thus results in one use case

Page 15: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Agenda

UML use case diagrams

A profile for use case diagrams for service-oriented applications

SRML: an overview of the module structure

Page 16: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Modelling in SRML

SRML is a high level modelling language for service-oriented systems with a formal semantics

SRML provides primitives for modelling composite

services

activities

What do we compose?

Page 17: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

ONROADREPAIR

OR:Orchestrator

GP:GPS

OP

intOR

DI:DriverInterface

OIIM:

InterfaceManager

ID

intIM

SLA

SM:SensorMonitor

SO

OCCR:

CarRental

intCR

GA:Garage

intGA

OG

A SRML activity module

One serves-interface: interface to the user

that triggers the activity

An Activity Module is launched by the top layer in a traditional way (no discovery)

A number of component-interfaces

describing the orchestration

A number of uses-interfaces (e.g., GP, DI) representing persistent resources (no discovery)

A number of requires-interfaces

describing the properties expected by external services discovered at run-

time

Page 18: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

A SRML service module

One provides-interface: a description

of the properties provided to the

requester

A Service Module is published, discovered and invoked by a service requester

Page 19: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Use-Case for SOA

ProcurementService

Customer

Supply

Warehouse

Costs

LocalStock

PROCUREMENT

CR:

Customer

SP:

Supplier

LS:

Stock

WR:

Warehouse

intWR

CT:

Costs

intCT

intSP

CS

SSSC

SW

The internal structure, in terms of components, of the module derived from the Use-Case diagram depends on the components we have already available

Page 20: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Textual representation of modulesThe module can have

parameters

A module defines some internal reconfiguration policies

Initialization: assignments and stateTermination condition

Triggering event for the discovery of each requires-interface

Page 21: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Internal policies

The discovery of GA is triggered by the first interaction

with GA

The discovery of CR is triggered by the request

to book the garage

Discussion:

Why we do not define initialisation and termination condition for uses-interfaces?

Why we do not define triggering conditions for provides-interfaces?

Page 22: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

Specification Languages 1/2

Business Roles(Garage,

Orchestrator)

Business Protocols

(Customer, TowTruck)

Interaction Protocols

(used by the wires CG, GT, GB, GL)

Layer Protocols(Bank, LocalAgenda)

logi

cs o

f int

erac

tions

the properties provided by the module are

entailed by the body of the module, relying on the properties of the

required services

e.g., the component GO is an instance of the business role

GarageOrchestrator

e.g., the provides-interface CR is an

instance of the business protocol Customer

e.g., the uses-interface BK is an

instance of the layer protocol Bank

Page 23: Designing the structure of a service-oriented · Designing the structure of a service-oriented ... Use Case Diagrams (recall) System boundaries ... A use case represents a collection

SummaryUse cases and scenarios

Primary and secondary actors

Services vs activities

System boundaries, use cases and actors in SOA

User, requester, resource and service actors

Activities and services in SRML

Graphical and textual notation, internal policies

From use cases to SRML module structure