Title: ActorFrame an introduction
1ActorFramean introduction
- Rolv Bræk
- NTNU
- Department of Telematics
2The challenge
How to supportRapid, Compositional, and Correct
development with Dynamic deployment of
Innovative Convergent Services?
3First principle Serve the Application domain
4Second principlemirror the environment!
ServiceFrame Agents serving the environment
5Third principleenable the right class of service
- Client-server (traditional O-O and IS)
- One-way initiatives
- A service as an interface
- Synchronous communication
- Restricted structure
- Peer-to-peer (telecom and real-time)
- Multi-way initiatives
- A service as a collaboration
- Asynchronous communication
- General structure
... now meeting each other
We focus on P2P and consider CS a special case
6Fourth principlesupport the cross-cutting
nature of services
- a service is a collaboration between roles
performed by agents - a role is the part an agent (or actor) plays in a
service - agents may be involved in several services
- horizontal and vertical role composition
7Fifth principlecomponent based framework with
loose coupling- Actors and Agents
8Sixth principleservices as collaborations
UserCall
inviteRoleRequest
requested
bCalled Agent
cCalling
requester
invoked
a
b
bBusy
b
a
aCaller
bCallee
b
a
uUnavailable
- with
- goal expressions for liveness
- behaviour specified using MSC and state machines
- features represented by collaboration uses
- role behaviour designed as actor state machines
9... and roles/actors bound to agents
FullCall
atTermCallee
auUserCaller
btTermCaller
buUserCallee
ucUserCall
oTermCall
tTermCall
collaborations
agents
btTermCallee
auUserCaller
atTermCaller
buUserCallee
ucUserCall
oTermCall
tTermCall
fcxFullCall
- Actors as service components (provide roles)
- Actors for separate services and sessions
10Agent structure example reflecting the domain
and the environment
AmigosApplication
Plattformindenpendent
Mp1MeetingPlace
KariUserAgent
t1TermAgent
t2TermAgent
OlaUserAgent
Mp2MeetingPlace
11Services as collaborations with roles
Chat service
ref
Chat interaction
designed as Actors with (Role) state machines
12... bound to Agents
Platformindenpendent
AmigosApplication
Mp1MeetingPlace
KariUserAgent
t1TermAgent
t2TermAgent
OlaUserAgent
Mp2MeetingPlace
13... with platform adaptors and edges
AmigosFramework
Mp1MeetingPlace
KariUserAgent
t1TermAgent
Platformindenpendent
t2TermAgent
OlaUserAgent
Mp2MeetingPlace
Service Platform Specific
ComputingPlatform Specific
14Dynamic structure composition - horizontal
UserAgent
Caller
T
U
a
B
A
1
2
Callee
b
3
A
B
ubUserAgent
uaUserAgent
Tb TerminalAgent
Ta TerminalAgent
callee
Caller
POT
POT
2
2
1
1
1
1
3
3
- Dynamic links imply that roles are dynamically
assigned to actors. - This requires dynamic role management mechanisms
for discovery, selection, adaptation and
invocation. - A large class of services are triggered in
response to dynamic link requests (at least
communication control services). - There may be constraints on what actors are
allowed to play given roles, e.g. B must be the
individual identified by the called party
identifier, B must have a given responsibility, B
may be any object that can play the role. - The state of an actor may determine what roles
the actor is able to play at any given time, e.g.
busy, free. - Compatibility rules must be applied on dynamic
liks to ensure goal and progress
15Seventh principleSupport dynamic role binding
- Dynamic role binding is central to many services,
it entails - Agent identification, which aims at identifying
an agent by consulting a name-server or
performing a service discovery. (Note that some
service features are related to the agent
identification, e.g. aliasing, business domain
restrictions or originating and terminating
screening features in telephony.) - Role request, which aims at creating a dynamic
link with a coordinated feature set. This means
to request the identified agent (from phase 1) to
play a role with a certain feature set. If the
agent is able to play the requested
role/features, it invokes it and a link is
dynamically established between the requesting
and the requested roles, so that they can
collaborate. If not a substitute role may be
negotiated, or the request may be queued. - Role release, which signals that a role is
finished and has released whatever resources it
had occupied.
16Role request pattern
RoleRequest
requestedAgent
requester Actor
invoked Actor
- All actors inherits this behaviour (from
ltltActorgtgt) - The invoked role depends on the actor descriptor
(content constraints) state and policy of the
requested actor - Role negotiation may take place, by extending the
standard pattern
17Actor Default Behavior (enhanced composite
diagram)
18The invoked role behaviour proceeds until
- It needs to bring a new role into the
collaboration (i.e. create another dynamic role
biding). - In this case it first needs to identify the agent
and then initiate a role request to this agent as
explained. - It needs to check what feature or feature set to
select at a certain point if this depend on agent
policy (e.g. if mid-call telephony services are
allowed) - It needs to signal to its own agent that it is
available for additional linking, in response to
an incoming role request (e.g. to perform a call
waiting feature) or - It is finished and performs role release.
19Eigth principleImplementation layering
Application
E.g AMIGOS
MyUserAgent, MyTerminalAgent,
MyCommunityAgent,. My Roles
ServiceFrame
Provides Application
UserAgents, TerminalAgents, CommunityAgents,
domain concepts
ApplicationActors, .
Provides Role modelling
ActorFrame
concepts
Actors, Roles, Plays, Patterns, .
Provides UML2.0
JavaFrame
concepts
CompositeObjects, StateMachines,
Mediators,
CompositeStates, Asynchronous communication,
Java VM
20... with platform portability
Functionality using Actor model
PlM
Modeling
PSM
Implementation using Actor classes
Implementation using Actor classes
Implementation using Actor classes
ActorFrame
EJB ActorFrame
Midlet ActorFrame
Implementation
EJB simulator
EJB
JVM
Terminals, appliances
Application servers
21... and distribution transparency
- Freedom to deploy actors on small devices and
servers - Global address space and transparent messaging
- Simple configuration, but not yet self-configuring
22Ninth principle dynamic system - open structure
with object and type dynamics
ApplicationSystem
compose
Application - PIM Adaptation - PIM
compose
Models
translate
translate
Java Frameworks
Application Implementation
dynamicallydeploy
compose
edge
Actor descriptor content and context
State machines SM and CS
edge
23Actor (Deployment) Descriptor
24OSGi Container
OSGi
Actors
ActorRouter
Actors
osgi
Actors
Forward table
Bundles
25Creating an OSGi Bundle
- Deploy the Router
- Registrate the router in Service Registery
- Deploy the bundle
- Bundle finds the Router in the Service Registery
- The bundle connects itself to the Router via a
Connector - Messages to other bundles is send via the Router
Service Registery
26Communication
OSGI container
OSGI container
OSGi
OSGi
OSGi
OSGI
ActorRouter
ActorRouter
TCP Session
TCP Session
J2SE
J2SE
Actors
Actors
UDP
UDP
Bluetooth
Service
SOAP
27Tenth principle model driven service engineering
Collaborations with behaviour
Role behaviours
design synthesis
Service models
composition
composition
ApplicationSystem
composition
composition
Application models -PIM
Agents Actors
System
28Towards Service Oriented Development
- This is our research focus. You may participate!
29... using the RAMSES tool set
RAMSES
Service models
PIM
Roles
Modelingusing UML2.0
PIM, PIM
Systems
Actors
Agents
PM
Systems
Actors
Agents
Implementingusing Javaframmeworks
ActorFrame