ProActive v3.0.1 Documentation
Next
ProActive v3.0.1 Documentation
Table of Contents
I. Introduction
1. Principles
1.1. Seamless sequential, multithreaded and distributed
1.2. Active objects: Unifying threads and remote objects
1.2.1. ==> only with modifications of the instanciation code !
1.2.2. Class-based
1.2.3. Instantiation-based
1.2.4. Object-based
1.3. Model of Computation: Based on previous works and studies
1.4. Reuse and Seamless: why and how do we achieve better reuse ?
2. ProActive Installation
2.1. Quick Start
2.1.1. To Test ProActive with the examples
2.1.2. To develop with ProActive
II. Programming
3. ProActive Basis, Active Object definition
3.1. Active objects basis
3.2. What is an active object
4. Typed Group Communication
4.1. Overview
4.2. Creation of a Group
4.3. Group representation and manipulation
4.4. Group as result of group communications
4.5. Broadcast vs Dispatching
5. OOSPMD
5.1. OOSPMD : Introduction
5.2. SPMD Groups
5.3. Barrier : Introduction
5.4. Total Barrier
5.5. Neighbor barrier
5.6. Method Barrier
6. Active Object Migration
6.1. Migration Primitive
6.2. Using migration
6.3. Complete example
6.4. Dealing with non-serializable attributes
7. Exception Handling
7.1. Exceptions and Asynchrony
7.1.1. Barriers around try blocks
7.1.2. TryWithCatch Annotator
7.1.3. Additional API
7.2. Non-Functional Exceptions
7.2.1. Overview
7.2.2. Exception types
7.2.3. Exception handlers
8. Branch and Bound API
8.1. Overview
8.2. The Model Architecture
8.3. The API Details
8.3.1. The Task Description
8.3.2. The Task Queue Description
8.3.3. The ProActiveBranchNBound Description
8.4. An Example: FlowShop
8.5. Future Work
III. Deploying
9. ProActive Basic Configuration
9.1. Overview
9.2. How does it work ?
9.3. Where to access this file ?
9.4. ProActive properties
9.5. Example
10. Variable Contracts for Descriptors
10.1. Variable Contracts for Descriptors
10.1.1. Principle
10.1.2. Variable Types
10.1.3. Variable Types User Guide
10.1.4. Variables Example
10.1.5. Variable Types User Guide
10.1.6. Variables Example
10.1.7. External Variable Definitions Files
10.1.8. Program Variable API
10.1.9. External Variable Definitions Files
10.1.10. Program Variable API
11. ProActive File Transfer Model
11.1. Introduction and Concepts
11.2. Objectives
11.2.1. Main objective
11.2.2. Specific Objectives
11.3. Supported Protocols
11.4. FileTransfer Design
11.4.1. Abstract Definition
11.4.2. Concrete Definition
11.4.3. How it works
11.5. Descriptor FileTransfer XML Tags
12. Using SSH tunneling for RMI or HTTP communications
12.1. Overview
12.2. Configuration of the network
12.3. ProActive runtime communication patterns
12.4. ProActive application communication patterns.
12.5. ProActive communication protocols
12.6. The rmissh communication protocol.
13. Fault-Tolerance
13.1. Overview
13.1.1. Communication Induced Checkpointing (CIC)
13.1.2. Pessimistic message logging (PML)
13.2. Making a ProActive application fault-tolerant
13.2.1. Resource Server
13.2.2. Fault-Tolerance servers
13.2.3. Configure fault-tolerance for a ProActive application
13.2.4. A deployment descriptor example
13.3. Programming rules
13.3.1. Serializable
13.3.2. Standard Java main method
13.3.3. Checkpointing occurrence
13.3.4. Activity Determinism
13.3.5. Limitations
13.4. A complete example
13.4.1. Description
13.4.2. Running NBody example
IV. Composing
14. Components introduction
15. An implementation of the Fractal component model with ProActive
15.1. Specific features of this implementation
15.1.1. Distribution
15.1.2. Deployment framework
15.1.3. Activities
15.1.4. Asynchronous method calls with futures
16. Conformance to the Fractal model and extensions
16.1. Model
16.2. Implementation specific API
16.2.1. fractal.provider
16.2.2. Content and controller descriptions
16.2.3. Collective bindings
16.2.4. Requirements
17. Configuration
17.1. Controllers and interceptors
17.1.1. Configuration of controllers
17.1.2. Writing a custom controller
17.1.3. Configuration of interceptors
17.1.4. Writing a custom interceptor
17.2. Lifecycle : encapsulation of functional activity in component lifecycle
17.3. Shortcuts
17.3.1. Principles
17.3.2. Configuration
18. Architecture Description Language
18.1. Overview
18.2. Example
18.3. Exportation and composition of virtual nodes
18.4. Usage
19. Examples
19.1. From objects to active objects to distributed components
19.1.1. Type
19.1.2. Description of the content
19.1.3. Description of the controller
19.1.4. From attributes to client interfaces
19.2. The HelloWorld example
19.2.1. Set-up
19.2.2. Architecture
19.2.3. Distributed deployment
19.2.4. Execution
19.3. The Comanche example
19.4. C3D - from Active Objects to Components
19.4.1. Reason for this example
19.4.2. Using working C3D code with components
19.4.3. How the application is written
19.4.4. ADL
19.4.5. Source Code
20. Component perspectives : a support for our research work
20.1. Optimizations
20.2. Packaging
20.3. Graphical user interface
20.3.1. Usage
20.4. Other
20.5. Limitations
V. Advanced
21. ProActive Peer-to-Peer Infrastructure
21.1. Overview
21.2. The P2P Infrastructure Model
21.2.1. What is Peer-to-Peer?
21.2.2. The P2P Infrastructure in short
21.3. The P2P Infrastructure Implementation
21.3.1. Peers Implementation
21.3.2. Dynamic Shared ProActive Group
21.3.3. Sharing Node Mechanism
21.3.4. IC2D Screen shot
21.4. Installing and Using the P2P Infrastructure
21.4.1. Create your P2P Network
21.4.2. Example of Acquiring Nodes by ProActive XML Deployment Descriptors
21.4.3. The P2P Infrastructure API Usage Example
21.5. Future Work
22. ProActive Security Mechanism
22.1. Overview
22.2. Security Architecture
22.2.1. Base model
22.2.2. Security is expressed at different level according to who wants to set policy :
22.3. Detailed Security Architecture
22.3.1. Virtual Nodes and Nodes
22.3.2. Hierarchical Security Entities
22.3.3. Resource provider security features
22.3.4. Interactions, Security Attributes
22.3.5. Combining Policies
22.3.6. Dynamic Policy Negotiation
22.3.7. Migration and Negotiation
22.4. Activating security mechanism
22.4.1. Construction of an XML policy :
22.5. How to quickly generate certificate ?
23. Exporting Active Objects and components as web services
23.1. Overview
23.2. Principles
23.3. Pre-requisite : Installing the Web Server and the SOAP engine
23.4. Steps to expose an active object or a component as a web services
23.5. Undeploy the services
23.6. Accessing the services
23.7. Limitations
23.8. A simple example : Hello World
23.8.1. Hello World web service code
23.8.2. Access with Visual Studio
23.9. C# interoperability : an example with C3D
23.9.1. Overview
23.9.2. Access with a C# client
23.9.3. Dispatcher methods calls and callbacks
23.9.4. Download the C# example
24. ProActive on top of OSGi
24.1. Overview of OSGi -- Open Services Gateway initiative
24.2. ProActive bundle and service
24.3. Yet another Hello World
24.4. Current and Future works
VI. User Interface and tools
25. IC2D: Interactive Control and Debugging of Distribution
25.1. Graphical Visualisation within IC2D
25.2. Control within IC2D
25.3. Job monitoring and control
25.4. Launcher
25.4.1. Principles
25.4.2. MainDefinition tag
25.4.3. API
25.4.4. Launcher in IC2D
25.5. Grid and cluster computing
26. ProActive Eclipse plugin
26.1. Overview
26.2. The Guided Tour
26.3. Wizards
26.4. The ProActive Editor
VII. Guided Tour
27. ProActive guided tour
27.1. Installation and setup
28. Introduction to some of the functionalities of ProActive
28.1. Parallel processing and collaborative application with ProActive
28.2. C3D : a parallel, distributed and collaborative 3D renderer
28.2.1. 1. start C3D
28.2.2. 2. start a user
28.2.3. 3. start a user from another machine
28.2.4. 4. start IC2D to visualize the topology
28.2.5. 5. drag-and-drop migration
28.2.6. 6. start a new JVM in a computation
28.2.7. 7. have a look at the source code for the main classes of this application :
28.3. Synchronization with ProActive
28.3.1. The readers-writers
28.3.2. The dining philosophers
28.4. Migration of active objects
28.4.1. 1. start the penguin application
28.4.2. 2. start IC2D to see what is going on
28.4.3. 3. add an agent
28.4.4. 4. add several agents
28.4.5. 5. move the control window to another user
29. Hands-on programming
29.1. The client - server example
29.2. Initialization of the activity
29.2.1. Design of the application
29.2.2. Programming
29.2.3. Execution
29.3. A simple migration example
29.3.1. Required conditions
29.3.2. Design
29.3.3. Programming
29.3.4. Execution
29.4. migration of graphical interfaces
29.4.1. Design of the application
29.4.2. Programming
29.4.3. Execution
30. SPMD PROGRAMMING
30.1. OO SPMD on a Jacobi example
30.1.1. 1. Execution and first glance at the Jacobi code
30.1.2. 2. Modification and compilation
30.1.3. 3. Detailed understanding of the OO SPMD Jacobi
30.1.4. 4. Virtual Nodes and Deployment descriptors
30.1.5. 5. Execution on several machines and Clusters
31. 5. The nbody example
31.1. Using facilities provided by ProActive on a complete example
31.1.1. 1 Rationale and overview
31.1.2. 2 Source files: ProActive/src/org/objectweb/proactive/examples/nbody
31.1.3. 3 Common files
31.1.4. 4 Simple Active Objects
31.1.5. 5 Groups of Active objects
31.1.6. 6 groupdistrib
31.1.7. 7 Object Oriented SPMD Groups
31.1.8. 8 Barnes-Hut
31.1.9. 9 Conclusion
32. 6. Guided Tour Conclusion
VIII. Extending ProActive
33. Adding a Deployment Protocol
33.1. Objectives
33.2. Overview
33.3. Java Process Class
33.3.1. Process Package Arquitecture
33.3.2. The New Process Class
33.3.3. The StartRuntime.sh script
33.4. XML Descriptor Process
33.4.1. Schema Modifications
33.4.2. XML Parsing Handler
34. How to add a new FileTransfer CopyProtocol
34.1. Adding external FileTransfer CopyProtocol
34.2. Adding internal FileTransfer CopyProtocol
35. Adding a Fault-Tolerance Protocol
35.1. Overview
35.1.1. Active Object side
35.1.2. Server side
36. MOP : Metaobject Protocol
36.1. Implementation: a Meta-Object Protocol
36.2. Principles
36.3. Example of a different metabehavior: EchoProxy
36.3.1. Instantiating with the metabehavior
36.4. The Reflect interface
36.5. Limitations
© 2001-2005
INRIA Sophia Antipolis
All Rights Reserved