Title: A%20Theory%20of%20Distributed%20Objects%20Toward%20a%20Foundation%20for%20Component%20Grid%20Platforms%20Ludovic%20HENRIO
1A Theory of Distributed ObjectsToward a
Foundation for Component Grid PlatformsLudovic
HENRIO
University of Westminster
- A Theory of Distributed Objects
- Components
- Perspectives
2A Theory of Distributed Objects Contents
- Review
- ASP Calculus
- Semantics and Properties
- A Few More Features
- Implementation Strategies
- Final Words
3Contents
- A Theory of Distributed Objects (I)
- 1 ASP (II, III)
- 2 - Confluence and Determinacy (III)
- 3 - More Features Groups (IV)
- 4 Implementation Strategies Future Updates
(V, VI) - Components (IV)
- Perspectives (VI and beyond)
4Review (informal classification of calculi)
Part I
5Contents
- A Theory of Distributed Objects
- 1 - ASP
- 2 - Confluence and Determinacy
- 3 - More Features Groups
- 4 Implementation Strategies Future Updates
- Components
- Perspectives
6Asynchronous and Deterministic Objects
- ASP Asynchronous Sequential Processes
- Distributed objects
- Asynchronous method calls
- Futures and Wait-by-necessity
- Determinism properties
A Theory of Distributed Objects
Part II
7Structure
Active(a)
1- ASP
Part II
8Sending Requests ( REQUEST )
a
b
foo
beta.foo(b)
resultbeta.foo(b)
1- ASP
Part II, III
9Sending Requests ( REQUEST )
a
b
foo
beta.foo(b)
resultbeta.foo(b)
1- ASP
Part II, III
10Serving Requests ( SERVE )
a
b
Serve(foo)...
foo
beta.foo(b)
bar
Serve(foo)...
1- ASP
Part II, III
11Serving Requests ( SERVE )
a
b
Serve(foo)
beta.foo(b)
bar
Serve(foo)...
1- ASP
Part II, III
12Sending Results ( REPLY )
a
b
foo
1- ASP
Part II, III
13Sending Results ( REPLY )
a
b
foo
1- ASP
Part II, III
14ASP Syntax Source Terms
- Imperative V-calculus
- ASP parallelism primitives
1- ASP
Part II
15Local
Creating an Activity
Sending a Request
Sending a Reply
1- ASP
Part III
16Wait-by-necessity
a
b
delta.send(result)
d
1- ASP
Part II, III
17Wait-by-necessity
a
b
delta.send(result)
result.bar()
d
1- ASP
Part II, III
18Wait-by-necessity
a
b
delta.send(result)
result.bar()
d
1- ASP
Part II, III
19Wait-by-necessity
a
b
Futures updates can occur at any time
result.bar()
d
1- ASP
Part II, III
20Contents
- A Theory of Distributed Objects
- 1 - ASP
- 2 - Confluence and Determinacy
- 3 - More Features Groups
- 4 Implementation Strategies Future Updates
- Components
- Perspectives
21Equivalence Modulo Futures Updates
a
f1
b
g
f2
f3
2 - Confluence and Determinacy
Part III
22Equivalence Modulo Future Updates
a
a
f2
f1
b
g
b
g
f2
f3
2 - Confluence and Determinacy
Part III
23Compatibility
Serves the oldest request on foo OR bar
bar
d
. Serve(foo,bar) Serve(foo,gee)
foo
gee
2 - Confluence and Determinacy
Part III
24Confluence
. Serve(foo,bar) Serve(foo,gee)
foo,bar, foo,gee
2 - Confluence and Determinacy
Part III
25Confluence
foo,bar, foo,gee
?foo, ?bar, ?bar, ?gee
2 - Confluence and Determinacy
Part III
26Confluence
foo,bar, foo,gee
?foo, ?bar, ?bar, ?gee
- Configuration Compatibility
?foo, ?bar, ?bar, ?gee
?foo, ?bar, ?gee, ?bar
?foo, ?bar, ?bar, ?gee
?foo, ?bar, ?gee, ?bar
?foo, ?bar, ?bar, ?gee
?foo, ?bar, ?gee, ?bar
2 - Confluence and Determinacy
Part III
27Confluence
Execution characterized by the order of request
senders
Compatibility ? Confluence
2 - Confluence and Determinacy
Part III
28Deterministic Object Networks
g
b
d
foo,bar , foo,gee
bar,gee , foo
gee bar
bar gee
2 - Confluence and Determinacy
Part III
29Static DON
a
d
f
foo,bar , gee
gee, f,g
foo,bar , gee
f,g
g
g
g
foo
f
foo,bar , gee
foo, bar
bar
e
f
b
bar , gee
gee, f,g
gee, f,g
gee
2 - Confluence and Determinacy
Part III
30ASP Summary and Results
- An Asynchronous Object Calculus
- Structured asynchronous activities
- Structured communications with futures
- Data-driven synchronization
- ASP ? Confluence and Determinacy
- Future updates can occur at any time
- Execution characterized by the order of request
senders - Determinacy of programs communicating over trees,
2 - Confluence and Determinacy
Part III
31Contents
- A Theory of Distributed Objects
- 1 - ASP
- 2 - Confluence and Determinacy
- 3 - More Features Groups
- 4 Implementation Strategies Future Updates
- Components
- Perspectives
32ASP Extensions
- Group communications
- Formalization,
- Atomicity and relations to determinacy.
- Migration
- Optimization and confluence issues
- Components
- Others non-blocking services, join patterns,
delegation ...
3 More Features
Part IV
33Groups of Active Objects
3 More Features
Part IV
34Groups of Active Objects
g1
foo
g2
result
foo
g3
foo
3 More Features
Part IV
35Groups of Active Objects
g1
foo
bar
g2
foo
bar
b
g3
Group.bar()
foo
bar
3 More Features
Part IV
36Groups of Active Objects Atomic Communications
g1
foo
bar
Some programs become deterministic with atomic
group communications
g2
foo
bar
b
g3
Group.bar()
foo
bar
3 More Features
Part IV
37Contents
- A Theory of Distributed Objects
- 1 - ASP
- 2 - Confluence and Determinacy
- 3 - More Features Groups
- 4 Implementation Strategies Future Updates
- Components
- Perspectives
38Implementation Strategies
- ProActive
- Future Update Strategies
- Futures are first class and can be returned at
any time - Lazy / Forward-based / Message-based.
- Loosing Rendez-Vous
- Ensuring causal ordering with one-to-all FIFO
ordering - Comparison with other strategies, e.g.
point-to-point FIFO - Controlling Pipelining
4 Implementation Strategies
Part V
39ProActive A Java API Tools for the GRID
Parallel, Distributed, Mobile, Activities,
across the world !
Desktop
- Model
- Remote Mobile Objects
- Asynchronous Communications with automatic
Futures - Group Communications, Migration, NF Exceptions
- Environment
- XML Deployment, dynamic class-loading
- Various protocols rsh,ssh,LSF,Globus, BPS, ...
- Graphical Visualization and monitoring IC2D
4 Implementation Strategies
Part V
40Future Update Strategies No partial replies and
request
a
b
delta.send(result)
d
4 Implementation Strategies
Part V
41Future Update Strategies
a
b
delta.send(result)
result.bar()
d
g
4 Implementation Strategies
Part V
42Future Update Strategies Message-based
a
b
delta.send(result)
result.bar()
result.bar()
d
Future Forwarded Messages
g
4 Implementation Strategies
Part V
43Future Update Strategies Forward-based
a
b
delta.send(result)
result.bar()
result.bar()
d
g
4 Implementation Strategies
Part V
44Future Update Strategies Lazy Future Updates
a
b
delta.send(result)
result.bar()
result.bar()
d
g
4 Implementation Strategies
Part V
45Future Updates Summary
- Mixed strategies are possible
- All strategies are equivalent(modulo
dead-locks)
Part V, VI
4 Implementation Strategies
46Overview of Implementation Strategies Queues,
Buffering, Pipelining, and Strategies
- Perspectives
- Organize and synchronize implementation
strategies - Design a global adaptative evaluation strategy
Part VI
4 Implementation Strategies
47Contents
- A Theory of Distributed Objects
- 1 - ASP
- 2 - Confluence and Determinacy
- 3 - More Features Groups
- 4 Implementation Strategies Future Updates
- Components
- Perspectives
48Context
- Fractal a component model specification
- An implementation in ProActive
- Hierarchical composition
- Asynchronous, distributed components
- Non-functional aspects and lifecycle
- Formal aspects
- Kell calculus ? component control (passivation)
- ASP components ? Hierarchical aspects and
deterministic components
Components
Part IV
49Components from ASP Terms Primitive Components
- Server Interface potential service
- Client Interface reference to an active object
Components
Part IV
50Hierarchical Composition
Composite component
Primitive component
PC
Export
Export
Output interfaces
Binding
Asynchronous method calls
Input interfaces
CC
PC
PC
Components
Part IV
51Invalid composition
Interface exported twice
Output plugged twice
Except with group communication
Components
Part IV
52Valid Compositions
Output interfaces
Non-confluent
Input interfaces
Non-confluent
Non-confluent
Components
Part IV
53A Deterministic Component
- Based on deterministic primitive components.
- One-to-one mapping from Server to client interface
Components
Part IV
54Component Model Summary and Results
- Specification of deterministic components
- Deterministic primitive components
- Deterministic composition of components
- Semantics as a translation to ASP
Components provide a convenient abstractionfor
statically ensuring determinism
Components
Part IV
55Contents
- A Theory of Distributed Objects
- 1 - ASP
- 2 - Confluence and Determinacy
- 3 - More Features Groups
- 4 Implementation Strategies Future Updates
- Components
- Perspectives
56Perspectives Asynchronous and Distributed
Objects
- Generalize confluence properties
- Scheduling of requests
- Functional servers
- Join patterns
- Strong migration and coherence
- Ojeblik for Obliq
Perspectives
Part VI
57Perspectives Distributed Components
- Non-functional aspects
- Behavioural specification
- LTS for ASP / ASP components
- Interaction between confluence and behavioural
verification - Hierarchical verification
- Verification of component composition and
reconfiguration
Perspectives
Part VI
58Application a Component Platform for Grid
Computing
- Reconfigurability Fault tolerance
- Adaptativity Heterogeneous environments
- Performance scalability, optimizations
- Foundation, Principles
- A component model ? adaptability,
reconfiguration, hierarchical - Separation of functional / non-functional aspects
transparency ? help programming, adaptation - Semantics ? specify and prove behavior, and
optimizations
Perspectives
Part VI
59(No Transcript)
60End of Service ( ENDSERVICE )
a
b
value
...
foo
1- ASP
Part II, III
61End of Service ( ENDSERVICE )
a
b
...
foo
1- ASP
Part II, III
62Activity Creation ( NEWACT )
a
g
Active(a,s)
newactActive(a,s)
1- ASP
Part II, III
63Activity Creation ( NEWACT )
a
Active(a,s)
newactActive(a,s)
1- ASP
Part II, III
64Static DON versus Process Networks
a
d
f
foo,bar , gee
gee, f,g
foo,bar , gee
f,g
g
put
g
g
foo
f
foo,bar , gee
foo, bar
bar
e
f
b
get
bar , gee
gee, f,g
gee, f,g
gee
Part VI
65Objects Topology
b
a
g
d
Part II
66Related Work
- Futures and Wait by Necessity
- MultiLisp by Halstead
- Wait-By-Necessity by Caromel
- Determinism
- pobl by Jones, Linearized channels
- Process Networks by Kahn and MacQueen
- Objects and concurrency
- Obliq, Gordon-Hankin-Lassen
- Actors
- ?-calculus, blue calculus, join-calculus
Part I
67Intermediate Structures
- Terms
- Configuration
- Request queue
- Futures list
- Store
Part III
68Store Partitioning
Part III
69Equivalence Modulo Futures Updates
a
f1
b
g
f2
f3
Part III
70Appendices