• Aucun résultat trouvé

slides

N/A
N/A
Protected

Academic year: 2022

Partager "slides"

Copied!
26
0
0

Texte intégral

(1)

EDOC’02 – 19/09/2002

An Architecture and a Process for

Implementing Distributed Collaborations

Eric C´ ARIOU, Antoine BEUGNARD, Jean-Marc J ´EZEQUEL´

(2)

I NTRODUCTION

➤ Key-point in distributed systems: communication among remote components

➤ Non-functional constraints can impact the implementation

➤ Our proposition:

➥ The reification of interaction abstractions as software compo- nents

➥ An architecture and a specification process of these compo- nents

(3)

O UTLINE

1. Study of a reservation system in two different contexts 2. Influence of non-functional constraints

3. Introduction to interaction components

4. How interaction components can help in management of non- functional constraints

(4)

R ESERVATION OF PLACES IN BUSES

➤ A small bus company with few journeys

➤ A single agency sells places in buses for this company

ErnestCo Agency

BusCompany Bus Seat

Reservation

observer

reserver source

➤ The components interact through a reservation system

(5)

R ESERVATION OF PLACES IN FLIGHTS

➤ A big airline company with hundreds of flights

➤ Thousands of travel agencies worldwide distributed

Airline: ErnestAir

TravelAgency:A Agency

TravelAgency:Z Agency source

reserver

reserver

observer observer

Flight seat reservation

. . .

➤ The components interact through a reservation system

(6)

A N ABSTRACT RESERVATION SYSTEM

➤ In both applications:

➥ Reservers components: reservation of identifiers (places) and cancellation of reservations

➥ Source components: addition and removal of informations on resources (buses or planes)

➤ Same requirements same reservation abstraction, same inter- action abstraction

(7)

T HE RESERVATION SYSTEM IMPLEMENTATION

➤ But the context is different:

➥ Number and localization of interacting components

➥ Number of data to handle

➤ A single small data server is enough for the first case but not for the second need different implementations to face scalability same functional requirements but different implementations

(8)

I NTERACTION ABSTRACTIONS

➤ Non-functional constraints (e.g. scalability, security, reliability) im- pact the implementation of an interaction abstraction

➤ Some questions:

➥ How to specify an interaction abstraction ?

➥ How to have several implementations of the same abstrac- tion ?

we propose to use interaction components

(9)

I NTERACTION COMPONENTS ( OR MEDIUMS )

Software component integrating any communication (coordination, in- teraction) system or protocol

➤ Independently of its complexity: a consensus protocol, a multime- dia stream broadcast, a voting system...

➤ At specification level: a UML collaboration following specific de- sign rules

➤ At implementation and deployment levels: an instantiable compo- nent

reification of an interaction abstraction during all the software pro- cess

(10)

S PECIFICATION OF A MEDIUM : USAGE CONTRACT

➤ A UML collaboration specifies a medium

➥ Depending on their needs, components using the medium play different roles

➥ For each role: interfaces of offered and required services

➤ OCL and others UML features for specifying the services seman- tics

➤ Abstract specification: without implementation assumption

(11)

T HE RESERVATION MEDIUM

ReservationMedium

Boolean cancelerIsReserver

ReserveId reserve(ResourceId) cancel(ReserveId, ResourceId

<< interface >>

IReserverMediumServices

<< interface >>

nbAvailableId(ResourceId) IObserverMediumServices /source

ReserveId /reserver

ResourceId

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

/observer

ResourceId ResourceId

*

*

* originalSet available

*

0..1

reserved

* resources

*

ResourceId

(12)

T HE RESERVATION MEDIUM

ReservationMedium

Boolean cancelerIsReserver

<< interface >>

IReserverMediumServices

<< interface >>

IObserverMediumServices

ReserveId ResourceId

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

ResourceId ResourceId

*

*

* originalSet available

*

0..1

reserved

* resources

*

ResourceId

/source

/observer /reserver

(13)

T HE RESERVATION MEDIUM

/source

ReserveId /reserver

ResourceId

/observer

ResourceId ResourceId

*

*

* originalSet available

*

0..1

reserved

*

resources

*

ResourceId

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

ReservationMedium

Boolean cancelerIsReserver

ReserveId reserve(ResourceId) cancel(ReserveId, ResourceId)

<< interface >>

IReserverMediumServices

<< interface >>

nbAvailableId(ResourceId) IObserverMediumServices

(14)

T HE RESERVATION MEDIUM

<< interface >>

IReserverMediumServices

<< interface >>

IObserverMediumServices /source

/reserver

ResourceId

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

/observer

ReservationMedium

Boolean cancelerIsReserver

0..1

*

*

*

originalSet available

*

reserved

*

resources

*

ResourceId

ReserveId ResourceId

ResourceId

(15)

D EPLOYMENT ARCHITECTURE OF A MEDIUM

➤ A “role manager” is locally associated with each component

➤ Medium = logical unit composed of all the role managers

➤ A role manager can be as complex as required

Manager Observer

Middleware AirLine

Manager Reservation

Information

Reserver

Reserver Manager Source

Manager Site A

Site B

Middleware

TravelAgencyA

TravelAgencyB Site D Site C

Flight Seat Reservation

(16)

A DVANTAGES OF THIS ARCHITECTURE

➤ Several implementations of the same abstraction are easily real- izable

➤ Good separation of functional and interactional concerns even at implementation level

(17)

FROM ABSTRACT SPECIFICATION TO IMPLEMENTATIONS

➤ Specification refinement process:

➥ Transform an abstract specification into an implementation one according to implementation choices or constraints

➥ Transform the single UML class medium into a set of role man- agers classes to match the deployment architecture

➥ From usage contract to implementation contract

➤ A single abstract specification can lead to several implementation designs

(18)

THE RESERVATION MEDIUM AT ABSTRACT LEVEL

ReserveId reserve(ResourceId)

<< interface >>

IReserverMediumServices

<< interface >>

nbAvailableId(ResourceId) IObserverMediumServices /source

/reserver

ResourceId

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

/observer

*

*

*

*

originalSet available

*

0..1

reserved

resources

*

ResourceId

ReserveId ResourceId

ReservationMedium

Boolean cancelerIsReserver

ResourceId

(19)

EXAMPLE: DISTRIBUTED DATA MANAGEMENT CHOICE

ReserveId reserve(ResourceId) cancel(ReserveId, ResourceId)

<< interface >>

IReserverMediumServices

<< interface >>

nbAvailableId(ResourceId) IObserverMediumServices /source

/observer

ResourceId ResourceId ResourceId

ReserveId ResourceId

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

/reserver

*

ResourceId

*

0..1

localAvailable

originalLocalSet

*

*

* reserved

* originalSet

resources *

*

Boolean cancelerIsReserverer ReserverManager

ObserverManager SourceManager

*

(20)

EXAMPLE: DISTRIBUTED DATA MANAGEMENT CHOICE

<< interface >>

IReserverMediumServices

<< interface >>

IObserverMediumServices SourceManager

ObserverManager /source

/observer

ResourceId

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

/reserver

* ResourceId

*

*

0..1

localAvailable

originalLocalSet

*

*

* reserved

* originalSet

resources *

ResourceId ReserveId

ResourceId

*

Boolean cancelerIsReserverer ReserverManager

ResourceId

(21)

D EPLOYMENT VIEW

/source

SourceManager 1

<< Middleware >>

ISourceMediumServices

ISourceComponentServices

/observer

IObserverComponentServices

ObserverManager IReserverMediumServices

IObserverMediumServices

* /reserver

ReserveId ResourceId

*

*

<< Middleware >>

localAvailable * localOriginalSet ResourceId

ReserverManager

IReserverComponentServices

(22)

C ONCLUSION

Interaction component: reification of interaction abstraction during all the software process

➤ Advantages for the interaction management:

➥ Good separation of functional and interactional concerns even at the implementation and deployment levels

➥ Good reusability of interaction abstractions

➤ A deployment architecture and a refinement process:

➥ From abstract specification to several implementations

➥ Selection of the adapted implementation depending on the

(23)

C ONCLUSION

➤ A Java framework for implementing mediums:

➥ Easy use of interactions components in applications

➥ Easy implementation of different version of a same abstraction

➥ Downloadable as free software (GPL licence)

➤ For more information:

➥ Web: http://www-info.enst-bretagne.fr/medium/

➥ E-mail: [email protected]

(24)

B AD DESIGN FOR THE RESERVATION INTERACTION

ErnestCo Agency BusCompany

SeatId

source

Bus Seat Reservation

observer

reserver sets

➤ Identifiers managed outside the collaboration

➤ An implementation choice is already done less implementation

(25)

C ENTRALIZED DATA MANAGEMENT

ReservationManager Boolean cancelerIsReserver

ReserveId reserve(ResourceId) cancel(ReserveId, ResourceId)

<< interface >>

IReserverMediumServices

<< interface >>

nbAvailableId(ResourceId) IObserverMediumServices

ResourceId ReserveId

ResourceId ResourceId

SourceManager

ReserverManager

ObserverManager /reserver

/source

addReserveIdSet(ResourceId, ReserveId[]) removeReserveIdSet(ResourceId)

ISourceMediumServices

<< interface >>

/observer

*

*

* originalSet available

*

0..1

reserved

*

resources

*

ResourceId

(26)

C ENTRALIZED DATA MANAGEMENT

/reserver

ReserverManager

ObserverManager

<< Middleware >>

IReserverComponentServices

IReserverMediumServices /source

SourceManager

Boolean usable = false ReservationManager

ReserveId

* *

ResourceId available originalSet

/observer

ISourceComponentServices

ISourceMediumServices

IObserverMediumServices

*

Références

Documents relatifs

This study was conducted as one component of a larger research aiming to study (a) lay thinking of health (i.e. individual free associations of health-related terms followed by

coli FdhD, it has been reported that especially the first cysteine of the two cysteines in the conserved 121 CXXC 124 motif is essential for its role in transferring the sulfur

When forming their value proposition, which is needed for acquiring new customers, the company may focus one of the three main assets that are needed to run process instances:

As an extension of early approaches to centre management tasks around decisions informed by multi-dimensional data (“business questions”, cf. [Co98]), the informed de- cision

So, the second step to ensure that our work reaches the right audience is drawing attention to our work, creating a community, and engaging the public.. As written by

Visitation network (a ), pollen type network (b ), and nutritional network (c ), representing four/five bumblebee species (bottom ) and 11 plant species visited (a ), 35 pollen

We, therefore, investigated (1) whether colonies of honeybees and two different bumblebee species located at the same habitat use the same or different plant spectrum for

Stable isotope compositions were studied in particulate organic matter (POM), zooplankton and different trophic groups of teleosts to compare food chains based