Service Discovery and Component Reuse with Semantic Interfaces

19
1 Telecom and Informatics SDL Forum 2005 Grimstad, Norway Service Discovery and Component Reuse with Semantic Interfaces Richard T. Sanders (SINTEF, Trondheim, Norway) Rolv Bræk (NTNU, Trondheim, Norway) Gregor v. Bochmann & Daniel Amyot (SITE, Univ. Ottawa, Canada)

description

Service Discovery and Component Reuse with Semantic Interfaces. Richard T. Sanders (SINTEF, Trondheim, Norway) Rolv Bræk (NTNU, Trondheim, Norway) Gregor v. Bochmann & Daniel Amyot (SITE, Univ. Ottawa, Canada). Conclusion. - PowerPoint PPT Presentation

Transcript of Service Discovery and Component Reuse with Semantic Interfaces

1Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Service Discovery and Component Reuse

with Semantic Interfaces

Richard T. Sanders (SINTEF, Trondheim, Norway) Rolv Bræk (NTNU, Trondheim, Norway) Gregor v. Bochmann & Daniel Amyot (SITE, Univ.

Ottawa, Canada)

Richard T. Sanders (SINTEF, Trondheim, Norway) Rolv Bræk (NTNU, Trondheim, Norway) Gregor v. Bochmann & Daniel Amyot (SITE, Univ.

Ottawa, Canada)

2Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Conclusion

Service components with semantic interfaces can be described using UML 2.0 collaborations interface role behaviour including goal expressions

Liveness properties can be evaluated improvement over static interfaces

Helps reuse, service discovery and role learning

Service components with semantic interfaces can be described using UML 2.0 collaborations interface role behaviour including goal expressions

Liveness properties can be evaluated improvement over static interfaces

Helps reuse, service discovery and role learning

3Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Service oriented architecture

a service is a collaboration between roles a role is the part an actor (agent) plays in a service a role describes a property of an actor actors may be involved in several services

a service is a collaboration between roles a role is the part an actor (agent) plays in a service a role describes a property of an actor actors may be involved in several services

Actor1 Actor2 Actor3 Actor4 Actor5

Service 3

Service 2

Service 1Service

component

Horizontal composition(within a service)

Vertical composition (within an actor)

4Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

:Actor

Role modelling principles

Validate interfaces behaviour rather than components Safety properties Liveness properties

Validate interfaces behaviour rather than components Safety properties Liveness properties

user A

CA

user B

CB

call A-B:Actor

Semantic interfaceService component

B:CalleeA:Caller

UserCall

UML 2.0 Collaboration

5Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Service feature and a pair of semantic interfaces modelled in UML 2.0

UserCall

A:Caller 1 B:Callee 1

{def: goal : Boolean = A.VoiceCntTo(B) and B.VoiceCntTo(A)}

Collaboration goal

Semantic interface Semantic interface

Service feature

6Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

A:Caller B:Callee

sd UserCall

ref Invite

Callingref

ref Busy

ref Unavailable

alt

Interactions

A:Caller B:Callee

sd Invite

Invite(A, role)

A:Caller B:Callee

sd Calling

Alerting

Reply(options)

connected{goal:Connected(A,B)}

ref End

Collaboration goal

7Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

UserCall

Calling{goal:

VoiceCnt(A,B)}

Invite

Busy

Phases of a UserCall

Collaboration goal

8Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Semantic interfaces with goals and role behaviour

Role behaviour is a projection, and not a complete behaviour (hence spontaneous output)

UML 2.0 does not adequately describe interface behaviour (protocol state machines not satisfactory)

Role behaviour is a projection, and not a complete behaviour (hence spontaneous output)

UML 2.0 does not adequately describe interface behaviour (protocol state machines not satisfactory)

inviting

Alerting

inviter

Busy

idle

Invite(A, role)

alerting{goal=True}

invited

invitee

idle

Alerting

alerted{goal=True}

Busy

Invite(A, role)Role goal

9Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Inviting

?Alerting

?Busy(BusyOptions)

Alerting

?Reply

?EndCnf

!EndReq

!Invite(A, Role)

Connected{goal:

VoiceCntTo(B)}

disconnectForward

!EndReq?EndReq

!EndCnf

endForward

SelectBusyAction

disconnectBackward

Idle

Idle

!EndReq

?EndCnf

Inviting

!Alerting

!Busy(BusyOptions)

Alerting

!Reply

!EndCnf

?EndReq

?Invite(A, Role)

Connected{goal:

VoiceCntTo(A)}

disconnectForward

?EndReq!EndReq

?EndCnf

endForward

SelectBusyAction

disconnectBackward

Idle

Idle

?EndReq

!EndCnf

UserCall::Caller UserCall::Callee

Interface behaviour as transition charts

Caller and Callee are dual roles Caller and Callee are dual roles

Role goal

10Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Inviting

?Alerting

?Busy(BusyOptions)

Alerting

?Reply

?EndCnf

!EndReq

!Invite(A, Role)

Connected{goal:

VoiceCntTo(B)}

disconnectForward

!EndReq?EndReq

!EndCnf

endForward

SelectBusyAction

Waiting{goal:

WaitForFree(B)}

?Alerting

!wait

disconnectBackward

Idle

Alerting

Idle

!EndReq

!EndReq

?EndCnf

endForward

Inviting

!Alerting

!Busy(BusyOptions)

Alerting

!Reply

!EndCnf

?EndReq

?Invite(A, Role)

Connected{goal:

VoiceCntTo(A)}

disconnectForward

?EndReq!EndReq

?EndCnf

endForward

SelectBusyAction

Waiting{goal:

CallInQueue(A)}

!Alerting

?wait

disconnectBackward

Idle

Alerting

Idle

?EndReq

?EndReq

!EndCnf

endForward

UserCallW::CallerW UserCallW::CalleeW

Adding WaitOnBusy feature

CallerW and CalleeW are dual roles CallerW and CalleeW are dual roles

11Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Safety requirements and subtyping

CallerBusy

SelectBusyAction

ending

EndReq

CalleeBusy

SelectBusyAction

ending

EndReq

CallerWBusy

SelectBusyAction

ending

wait

waiting

EndReq

CalleeWBusy

SelectBusyAction

ending waiting

EndReq wait

Added input: extension

Removed ouput: reduction

12Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Caller CalleeUserCall

CallerW CalleeWUserCallW

ext

extensionreductionred

Subtyping relationships

13Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Incompatible

Using Semantic Interfaces

Compatibility can be decided at design time Can be performed for types, not just instances

Compatibility can be decided at design time Can be performed for types, not just instances

Y: UserAgent

Calleeyi

X: UserAgent

Caller xi

W: UserAgent

CalleeWwi

Z: UserAgent

CallerW zi Compatible {UserCallW.goal}

BA

BWAW

UserCallW UserCallW

UserCall UserCall

Compatible {UserCall.goal}

Compatible {UserCall.goal}

14Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Role negotiation pattern

X: UserAgent Y: UserAgent

RoleRequest(Callee)

RoleConfirm(Callee)

Caller CalleeA B

Run-time role validation

15Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Service role learning pattern

X: UserAgent W: UserAgent

RoleRequest(Callee)

RoleConfirm(CalleeW)

Caller CalleeW

:ServiceBroker

Lookup(C

alleeW

, Calle

r)

Result(i

dCallerW

, pro

vider)

Exp

ort

(Cal

lerW

)

provider:ServiceProvider

Imp

ort

(idC

alle

rW)

CA’CallerW

A BWCallerW

16Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Work done

Role projection and validation: Role projection and safety validation algorithms designed

and implemented Jacqueline Floch: Compositional approach to service validation

(Thursday)

Progress validation algorithms design and implemented To be integrated in the tools used at Teleservice Lab at

NTNU

Role projection and validation: Role projection and safety validation algorithms designed

and implemented Jacqueline Floch: Compositional approach to service validation

(Thursday)

Progress validation algorithms design and implemented To be integrated in the tools used at Teleservice Lab at

NTNU

17Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Work to be done

UML tool support for UML 2.0 collaborations Compatibility checking of role binding at design time

Composition of role behaviour from semantic interfaces Humberto Castejón: Behaviour synthesis from UML/UCM

(Thursday)

Middleware support for service discovery and selection Role validation / negotiation at run-time Define ontologies for semantic interfaces Application to industry cases EU IST project 2006-2008

Semantic Interfaces for Mobile Services (SIMS) SINTEF, NTNU, WUT, Appear Networks, Gentleware, Amena,…

UML tool support for UML 2.0 collaborations Compatibility checking of role binding at design time

Composition of role behaviour from semantic interfaces Humberto Castejón: Behaviour synthesis from UML/UCM

(Thursday)

Middleware support for service discovery and selection Role validation / negotiation at run-time Define ontologies for semantic interfaces Application to industry cases EU IST project 2006-2008

Semantic Interfaces for Mobile Services (SIMS) SINTEF, NTNU, WUT, Appear Networks, Gentleware, Amena,…

18Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Conclusion

Service components with semantic interfaces can be described using UML 2.0 collaborations interface role behaviour including goal expressions

Liveness properties can be evaluated improvement over static interfaces

Helps reuse, service discovery and role learning

Service components with semantic interfaces can be described using UML 2.0 collaborations interface role behaviour including goal expressions

Liveness properties can be evaluated improvement over static interfaces

Helps reuse, service discovery and role learning

19Telecom and InformaticsSDL Forum 2005 Grimstad, Norway

Thanks for listening!Thanks for listening!