Dynamic Service Composition Judith E. Y. Rossebø May 21, 2008

advertisement
Dynamic Service Composition
Judith E. Y. Rossebø
May 21, 2008
Outline
•
•
•
•
•
•
Services and service composition
Motivation – why dynamic service composition?
Background for the approach
Overview of the policy-based approach
Example – Voice over IP service
Conclusions
Services and Service Composition
What is a service?
A service is:
an identified functionality aiming to establish
some goals/effects among collaborating
entities.
Captures:
• active services
• passive services
• end user services
• component interfaces
(Web Services, CORBA, JINI, …)
• layered functionality (ISO OSI)
C1
C2
Layer n
Layer n-1
Cn
Service essentials:
• Service is functionality;
• it is behaviour performed by entities.
• Service imply collaboration;
• it makes no sense to talk about service unless at least two entities
collaborate.
• Service behaviour is cross-cutting;
• it may depend on the behaviour of other services
• it may be depend on sharing of resources with other services
• Service behaviour is partial;
• it is to be composed with other services
Service Composition
• Service is considered as a functionality involving a collaboration
among entities to achieve desired goals/effects for end users or
other entities
• Service Composition - allows for incremental service development.
• service components statically or dynamically combined at run time
• Allows for reuse of components
• Modeling service composition using UML 2.x
• UML 2.x collaborations
• Structured way to define services in terms of collaborating roles
• Means to decompose/compose services using collaboration uses
• UML 2.x sequence diagrams
• To specify service behaviour
Role
Role
Collaboration
Collaboration
Service Composition - dependencies
• Cross-cutting nature of services:
• Service components interact for the execution of services
• Services depend on each other (vertical composition)
• Service depend on shared resources and enablers (horizontal composition)
Vertical composition
(within an agent)
service
component/part
Service 1
Service 2
Service 3
Terminal
Agent x
User
Agent y
Group
Agent z
Terminal
User
Agent w Agent k
Horizontal
composition
(within a service)
Our approach to dynamic composition
• Policy combined with modelling techniques
• To make the overall coordination of collaborations participating in a service more flexible
and adaptable.
• We focus on:
Specification of
mechanisms at
service model
layer
Finally, Enable
dynamic
composition in the
runtime system
Enable
transformation
to design
models
Policy-based Dynamic Service Composition
PESM
Service models
Policy Rules
UML Collaborations for
services, connectors
Policy Rule ID
Condition
Trigger
Action
Goal
PDP1_ru1
P1, A.x, B.y
t1
Do CU1
A.g1, B.g1
PDP2_ru1
P2, A.t, C.r
t2
Do CU2
A.g2, C.g2
PDP2_ru2
P3, B.f, C.g
t3
Do CU3
B.g3, C.g3
Model transformation
Local PESMs
Design models
Systems
Local
Policy
Policy Rule ID Condition
Trigger
Action
Goal
PDP1_Ar1
P1, x, B.y
t1
Do CU1
g1
PDP2_Ar1
P2, t, C.r
t2
Do CU2
g2
PDP2_Br2
P3, f,C.g
t3
Do CU3
g3
Components,
conectors
Model transformation
Realization
dynamic composition
Monitoring
term
Service platforms
NGN
Enablers
Why Dynamic Service Compositon?
Motivation
• Securing availability of services is challenging
• The telecommunications environment has evolved
• from centralized to distributed
• Services are being developed in a distributed manner in a
connectionless environment requiring cooperation of several
components and actors
• Example: Ensuring availability of the VoIP services.
• a user expects to be able to place a call, complete the call with out being cut off.
• The service can be secured by e.g., providing stronger authentication
• Can this be deployed dynamically?
Internet
Internet
IP-based
IP-based Net
Net
VoIP
server
VoIP
server
Motivation
• Our approach: Development of (re-usable, flexible)
patterns to ensure availability in composition
• It should be possible to dynamically adapt, change or exchange
services involved in a service collaboration
• Example: Authentication to VoIP
• – Our approach should support exchanging weaker SIP authentication with stronger
IMS AKA authentication…
User
User
authenticateeA
authenticatee
UAs1:UTPA HTTP
UAs1:MTPA
IMS AKA
Digest
authenticateeB
authenticator
Service
Service
Unilateral two pass authentication
Extension of SIP authentication
(username and password based)
providing mutual authentication
: HTTP digest protocol and MD5
(USIM symmetric key-based)
Using IMS AKA
Background
Collaborations and roles
• An elementary collaboration is a service collaboration with exactly
two elementary roles that collaborate on an interface
• An elementary role is the smallest modelling element
• Composite roles are compositions of elementary roles.
• In dynamic composition, these are dynamic compositions of elementary roles
Composing AA-Patterns and Services:
• We provide a framework and classification of authentication and
authorization patterns
• For composing with services
• To ensure that services are accessible to the authorized users only.
UserPull
Authentication
authenticator
authenticatee
authenticator
ty
ar
P
o te
Tw tica
:
s1 hen
A
U ut
A
Access
Server
s auths
h
t
granter
Au ion
:
s2 vat
A
U cti
A
authenticatee
auths
requestor
Service
Access Filter
User
authorisor
authorisee
USs2:Checking
Access Rights
Classification of authentication patterns
TwoParty
Authenticate
Unilateral
Authenticate
UniOnePass
Authenticate
Mutual
Authenticate
UniTwoPass
Authenticate
MTwoPass
Authenticate
MThreePass
Authenticate
Classification of some unilateral two pass
authentication patterns
UniTwoPass
Authenticate
UniTwoPass
Authenticate
Symmetric
ISO /IEC 9798 -2
5 .1.2 Two pass
authentication
UniTwoPass
Authenticate crypto
check function
ISO /IEC 9798 -4
Two Pass
Authentication 5 .1.2
UniTwoPass
Authenticate
Asymmetric
UniTwoPass
Authenticate
using a
Hash Function
ISO /IEC 9798 -2
5 .1.2 Two pass
authentication
rfc 2617
HTTP digest
with MD 5
Specifying AA-patterns :
• UML 2.x collaboration diagram for generic two party AA-patterns
• Specializations of generic patterns with properties/constraints and goals
• UML 2.x sequence diagrams for modelling behavior
• Interactions uses - for flexibility and reusability
• Subject to service constraints (e.g. timing, processor capacity available, strength of
algorithm required
UserPull
TwoPartyAuthenticate
authenticator
ty
ar
P
o te
Tw tica
:
s1 en
UA uth
A
authenticatee
authenticator
Access
Server
auths
hs granter
t
u
:A tion
2
s va
UA cti
A
authenticatee
auths
requestor
Service
Access Filter
User
authorisor
authorisee
USs2:Checking
Access Rights
Composition of VoIP and User Pull patterns
Authentication
authenticatee
authenticator
SecureVoIP (Userpull)
authenticator
1: tion
s
UA tica
en
h
t
Au
auths_granter
ths
u
2:A tion
s
UA ctiva
authenticatee
A
auths_req_or
voip_req_or
User
AccessControl
Server
USs1:
Request
VoIP
authorisee
voip_req_ee
authorisor
USs2:CAR
voip_user
rel_er
ServiceProvider
voip_provider
USs3:
VoIP Use
USs4:END
VoIP
VoIP Use
rel_ee
voip_user
voip_provider
Policy and service management
A policy rule is a rule that defines a choice in the (course of the)
behavior of a system [Damianou, Dulay, Lupu, and Sloman]
• Applied to dynamic service composition:
• Policy rules are specified separately from the roles and
collaborations
• Enables collaborating roles to be dynamically composed at runtime
• Allows for changes to be made at runtime by changing policy rules
• Rather than changing the specifications of the roles themselves
Why apply policy?
• To separate the ordering of the roles from the roles themselves
• To facilitate reusibility of roles in service composition
• Enable dynamic composition at runtime
• Policy is used to govern the composition of roles executed by actors dynamically
• Making e.g. access control policies more evident in service models
• Make it possible to connect the service specification to higher level
strategies and goals
• E.g. level of security to be provided, context parameters
• To assist in selecting the most appropriate AA-patterns to apply.
What is a policy?
• A policy is a set of policy rules.
• A policy rule is of the following form: if trigger T and condition C
then action A and goal G
• The trigger part (an event) describes when the policy should be applied
• A message or signal associated with the collaboration or
• an external signal or message from some other part of the system
• The condition part defines constraints on its applicability
• The action part defines what is to be done
• For composition policies this means execute the collaboration
• The goal part defines what is the desired result when the policy is applied.
PDP1_rule2:
T: ? (Request authentication, External, User)
C: Rel (User.secret, AcS.knowledge), User.True,
AcS.(Unilateral required AND Challenge required)
A: UAs1b (authenticateeT -> User, authenticatorT -> AcS) : UTPA
G: User.unilaterally_authenticated, AcS.authentication_successful
Overview of the approach
Service models
Overview of
the approach
Service
CU1(r1->A,r2->B):C1
r1
r2
CU2:C1
A
r5
Action
CU1
Go
A.g,
Policy Rules
policy
policy policy
CU2(r1->A,r2->C):C1
r4
Trigger
P, A.a, B.b, ?(m,E,A)
PDP2
2
C
3:
r1
PDP1_
rule1
r3
B
C
U
1:
C
1
r2
U
C
• Service models
PDP1
Policy Rule
Condition
ID
PDP3
C
r6
CU4:C3
CU3(r3->B,r4->C):C2
CU4(r5->A,r6->C):C3
Design models
Policy Rule
Condition
Trigger
ID
PDP2_
?RoleReq
True
C_rule1
(r2)
PDP1_A
• Design models
Action
Policy Management
PDP1_B
r1
PDP2_A
PDP2_C
r2
r1
PDP3_B
Policy Rules
PDP3_C
r3
PDP3_A
r2
PlayRole
(r2)
policy
policy policy
r2
r6
r5
Runtime system
• Runtime system
Policy Management
- Translation
- Refinement
- Updating
- Conflict
Resolution
- Dissemination
- Enforcement
Policy Rules
policy
policy policy
Distribution
Goal
Cr2.g
Overview of the policy-driven approach (1/3)
• Service models
• Collaboration diagrams composed from elementary collaborations
Trigger T:
• Choreography is defined by the PESM
A receives message
• PDPi - policy rules govern behavior associated with the collaboration
m from E (external)
(dependenies between sub-collaborations)
• Policy rules stored in table with a pointer to the PDP the rule applies to
Service models
PDP1
Service
B
PDP2
2
C
3:
r1
r3
U
C
C
U
1:
C
1
r2
CU1(r1->A,r2->B):C1
r1
r2
CU2:C1
A
r5
r4
C
Policy Rule
Condition
ID
PDP1_
rule1
PDP3_
rule1
PDP3_
rule2
Action
Goal
CU1
A.g, B.
T, B.k, C.i ?(m2,B,C)
CU3
Policy Rules
T, A.r, C.s ?(m3,A,C)
CU4
B.g,C.
P, A.a, B.b, ?(m,E,A)
CU2(r1->A,r2->C):C1
PDP3
r6
CU4:C3
CU3(r3->B,r4->C):C2
Trigger
CU4(r5->A,r6->C):C3
policy
policy policy
A.g,C.
Service models
Overview of
the approach
PDP1
Service
r1
r2
CU2:C1
A
r5
Action
CU1
Go
A.g,
Policy Rules
policy
policy policy
CU2(r1->A,r2->C):C1
r4
Trigger
P, A.a, B.b, ?(m,E,A)
PDP2
2
C
3:
r1
CU1(r1->A,r2->B):C1
U
C
• Service models
PDP1_
rule1
r3
B
C
U
1:
C
1
r2
Policy Rule
Condition
ID
PDP3
C
r6
CU4:C3
CU3(r3->B,r4->C):C2
CU4(r5->A,r6->C):C3
Design models
Policy Rule
Condition
Trigger
ID
PDP2_
?RoleReq
True
C_rule1
(r2)
PDP1_A
• Design models
Action
Policy Management
PDP1_B
r1
PDP2_A
PDP2_C
r2
r1
PDP3_B
Policy Rules
PDP3_C
r3
PDP3_A
r2
PlayRole
(r2)
policy
policy policy
r2
r6
r5
Runtime system
• Runtime system
Policy Management
- Translation
- Refinement
- Updating
- Conflict
Resolution
- Dissemination
- Enforcement
Policy Rules
policy
policy policy
Distribution
Goal
Cr2.g
Service models
PDP1
Service
CU1(r1->A,r2->B):C1
2
C
3:
r1
r2
CU2:C1
A
r5
Action
Goal
CU1
A.g, B.g
Policy Rules
policy
policy policy
CU2(r1->A,r2->C):C1
CU2(r1->A,r2->C):C1
r4
Trigger
P, A.a, B.b, ?(m,E,A)
PDP2
PDP2
U
C
r1
PDP1_
rule1
r3
B
C
U
1:
C
1
r2
Policy Rule
Condition
ID
PDP3
PDP3
PDP3
C
r6
CU4:C3
CU3(r3->B,r4->C):C2
CU3(r3->B,r4->C):C2
CU4(r5->A,r6->C):C3
CU4(r5->A,r6->C):C3
Design models
Policy Rule
Condition
Trigger
ID
PDP2_
?RoleReq
True
C_rule1
(r2)
PDP1_A
Action
Policy Management
PDP1_B
r1
PDP2_A
PDP2_C
PDP2_C
r2
r1
PDP3_B
r5
Policy Rules
PDP3_C
r3
PDP3_A
r2
r2
PlayRole
(r2)
policy
policy policy
r2
r6
Goal
Cr2.g
Overview of the policy-driven approach (2/3)
• Design models
• Define design components in the form of statemachines that can perform the
roles defined in the service models
• Based on global PESM diagram and global composition policy
• Local PESM is derived for each composite role
• Policy rules are distributed, (e.g. table for each local pesm)
Policy Rule
Condition
Trigger
ID
PDP2_
?RoleReq
True
C_rule1
(r2)
PDP1_A
Action
Policy Management
PDP1_B
r1
PDP2_A
PDP2_C
r2
r1
PDP3_B
r5
Policy Rules
PDP3_C
r3
PDP3_A
r2
PlayRole
(r2)
policy
policy policy
r2
r6
Goal
r2.goal
Service models
Overview of
the approach
PDP1
Service
r1
r2
CU2:C1
A
r5
Action
CU1
Go
A.g,
Policy Rules
policy
policy policy
CU2(r1->A,r2->C):C1
r4
Trigger
P, A.a, B.b, ?(m,E,A)
PDP2
2
C
3:
r1
CU1(r1->A,r2->B):C1
U
C
• Service models
PDP1_
rule1
r3
B
C
U
1:
C
1
r2
Policy Rule
Condition
ID
PDP3
C
r6
CU4:C3
CU3(r3->B,r4->C):C2
CU4(r5->A,r6->C):C3
Design models
Policy Rule
Condition
Trigger
ID
PDP2_
?RoleReq
True
C_rule1
(r2)
PDP1_A
• Design models
Action
Policy Management
PDP1_B
r1
PDP2_A
PDP2_C
r2
r1
PDP3_B
Policy Rules
PDP3_C
r3
PDP3_A
r2
PlayRole
(r2)
policy
policy policy
r2
r6
r5
Runtime system
• Runtime system
• Dynamic composition
Policy Management
- Translation
- Refinement
- Updating
- Conflict
Resolution
- Dissemination
- Enforcement
Policy Rules
policy
policy policy
Distribution
Goal
Cr2.g
Overview of the policy-driven approach (3/3)
• Runtime system
• Service parts/components interact for the execution of services
• Design models are transformed to implementations that can be deployed in the
runtime system
• Bound to system parts depending on role-binding policies
• Policy is distributed to the parts of the system
• Policy enforcement agents in the system parts ensure that policy is enforced
• Dynamic composition (policy-based)
Policy Management
Policy Rules
- Translation
- Refinement
- Updating
- Conflict
Resolution
- Dissemination
- Enforcement
policy
policy policy
Distribution
Example: VoIP service
Basic VoIP service
• Composed of three elementary collaborations
• The User composite roles plays three elementary roles:
• voip_req_or
• voip_user
• vel_er
Composition of VoIP and User Pull patterns
Authentication
authenticatee
authenticator
SecureVoIP (Userpull)
authenticator
1: tion
s
UA tica
en
h
t
Au
auths_granter
ths
u
2:A tion
s
UA ctiva
authenticatee
A
auths_req_or
voip_req_or
User
AccessControl
Server
USs1:
Request
VoIP
authorisee
voip_req_ee
authorisor
USs2:CAR
voip_user
rel_er
ServiceProvider
voip_provider
USs3:
VoIP Use
USs4:END
VoIP
rel_ee
VoIP Use
voip_user
voip_provider
Global PESM:
• Policy governed
PDP1
Unilateral One
Pass
Authentication
UAs1a (authenticateeO->User,
authenticatorO->AcS) : UOPA
• composition
of two party collaborations
• CHOICE of Authentication
• Unilateral one pass
PDP1_rule1:
• Unilateral two
pass User)
T: ? (Request authentication,
External,
C: Rel (User.secret,
AcS.knowledge),
• Mutual
two pass User.True,
AcS. (Unilateral requiredSecureVoIP
AND Challenge
(Userpull) NOT required
A: UAs1a (authenticateeO -> User, authenticatorO -> AcS) : UOPA
authenticator
AccessControl
G: User.unilaterally_authenticated,
AcS.authentication_successful
Server
:
s1 tion
UA tica
n
the
Au
auths_granter
PDP1_rule2:
s
uth
T: ? (Request authentication,
External, User)
A
n
:
s2 atio
A
UAcS.knowledge),
tiv
C: Rel (User.secret,
User.True,
authenticatee
Ac
USs1:
auths_req_or
AcS.(Unilateral
required ANDRequest
Challenge
required)
voip_req_ee
VoIP
voip_req_or
A: UAs1b (authenticateeT
-> User, authenticatorT -> AcS) : UTPA
authorisee
authorisor
User
ServiceProvider
USs2:CAR
G: User.unilaterally_authenticated,
AcS.authentication_successful
voip_user
voip_provider
PDP1_rule3:
USs3:
VoIP Use
rel_er
rel_ee
T: ? (Request authentication, External, User)
C: Rel (User.secretA, AcS.secretB),
User.True, AcS.Mutual required
USs4:END
VoIPauthenticateeB -> AcS) : MTPA
A: UAs1c (authenticateeA -> User,
G: User.authct(AcS), AcS.authct(User)
Unilateral
Two Pass
Authentication
UAs1b (authenticateeT->User,
authenticatorT->AcS) : UTPA
Mutual Two
Pass
Authentication
UAs1c (authenticateeA->Us
authenticateeB->AcS) : MTP
PDP2
UAs2 (authsrequestor -> User,
authsgranter->AcS) : AA
PDP3
USs1: (voip_req_or ->User,
voip_req_ee ->SP) : RM
PDP4
USs2 (authorisee->User,
authorisor->SP) :CAR
PDP5
USs3 (voip_user->User,
voip_provider->SP) : VUse
PDP6
USs4 (rel_er->User,
rel_ee->SP) : EM
Global PESM - transformation to local PESM
PDP1
UAs1a (authenticateeO->User,
authenticatorO->AcS) : UOPA
UAs1b (authenticateeT->User,
authenticatorT->AcS) : UTPA
PDP2
UAs2 (authsrequestor -> User,
authsgranter->AcS) : AA
PDP3
UAs1c (authenticateeA->User,
authenticateeB->AcS) : MTPA
Local PESM - Access Server Composite role:
PDP1_AcS_rule1:
T: ?(RoleReq(authenticatorO), User, AcS)
C: Unilateral required
A: PlayRole( authenticatorO)
G: authentication_successful
authenticatorO
PDP1_AcS_rule2:
T: ?(RoleReq(authenticatorT) ,User, AcS)
C: Unilateral required AND Challenge required
A: PlayRole(authenticatorT)
G: authentication_successful
PDP1_AcS_rule3:
T: ?(RoleReq(authenticateeB), User, AcS
C: Mutual required
A: PlayRole( authenticateeB)
G: authct(User)
PDP1_AcS
authenticatorT
PDP2_AcS
authsgranter
authenticateeB
Conclusions
Conclusions
• We have presented an approach to using policy in dynamic service
composition for coordinating separately specified (re-usable)
behaviors
• Policy enforcement state machine diagram (PESM)
• Diagram specifies the coordination of elementary service collaborations
• Overall choreography becomes more flexible and adaptable
• Policy
• Allows for choice between alternatives of pre-defined behavior, and ordering of
these
• Can involve variables outside of a collaboration, e.g. context or requirements on
strength of security to be provided
• Composition policies
• Provide necessary information for linking the separately specified behaviors
together
• Provide policy enforcement information for enabling and governing dynamic
service composition
Thank you for listening
Questions?
Download