back to API     next  

version 3.0 (November 2005)

ProActive is a GRID Java library for parallel, distributed, and concurrent computing, also featuring mobility and security in a uniform framework. With a reduced set of simple primitives, ProActive provides a comprehensive API allowing to simplify the programming of applications that are distributed on Local Area Network (LAN), on cluster of workstations, or on Internet Grids. The library is based on an Active Object pattern that is a uniform way to encapsulate:

On top of those basic features, ProActive also includes advanced aspects, such as:

ProActive is only made of standard Java classes, and requires no changes to the Java Virtual Machine, no preprocessing or compiler modification; programmers write standard Java code. Based on a simple Meta-Object Protocol, the library is itself extensible, making the system open for adaptations and optimizations. ProActive currently uses the RMI Java standard library as default portable transport layer.

ProActive features several optimizations improving performance. For instance, whenever two active objects are located within the same virtual machine, a direct communication is always achieved, without going through the network stack. This optimization is ensured even when the co-location occurs after a migration of one or both of the active objects.

ProActive and the (de facto) Standards: ProActive has an architecture that allows the library to interoperate with various official or de facto standards:

Please send us comments, suggestions, bug reports at proactive@objectweb.org Your input will be greatly appreciated.

Content

  1. Principles and Overview
    1. Seamless sequential, multithreaded and distributed
    2. Active objects: Unifying threads and remote objects
    3. Model of Computation Based on previous works and studies....
    4. Reuse and Seamless Why and how do we achieve better reuse ?
    5. HelloWorld, tiny version
  2. Installation
    1. Quick Start
    2. Download and expand the archive
    3. Run a few examples for testing
    4. CLASSPATH to set when writing application using ProActive
    5. Create a java.policy file to set permissions
    6. Create a log4j configuration file
    7. ProActive and the Eclipse IDE
    8. Troubleshooting and support
  1. Active Objects
    1. Active Object basis
    2. What is an Active Object
    3. Active Object: creation and advanced concepts
    4. Instantiation-Based Creation
    5. Object-Based Creation
    6. Specifying the activity of an active object
    7. Restrictions on reifiable objects
    8. Using the Factory Method Design Pattern
    9. Advanced : Customizing the Body of an Active Object
    10. Advanced : Role of the elements of an active object
    11. Asynchrony
    12. Automatic continuations
    13. A Working Example : Hello World
  2. Typed Groups
    1. Overview
    2. Creation of a Group
    3. Group representation and manipulation
    4. Group as result of group communications
    5. Broadcast vs Dispatching
  3. OO SPMD
    1. OOSPMD : Introduction
    2. SPMD Groups
    3. Barrier : Introduction
    4. Total Barrier
    5. Neighbor barrier
    6. Method Barrier
  4. Migration : Computational Mobility
    1. Migration Primitive
    2. Using migration
    3. Complete example
    4. Dealing with non-serializable attributes
  5. Exceptions
    1. Exceptions and Asynchrony
    2. Non-Functional Exceptions
  6. Branch n bound
    1. Overview
    2. The API Architecture
    3. The API Description
    4. An Example: FlowShop
    5. Future Work
  1. JAVA Properties and Configuration - ProActiveConfig.xml
    1. Overview
    2. How does it work ?
    3. Where to access this file ?
    4. ProActive properties
    5. Example
  2. Deployment Descriptors
    1. Objectives and Principles
    2. Different types of VirtualNodes
    3. Different types of JVMs
    4. Validation against XML Schema
    5. Complete example
    6. Infrastructure and processes
    7. Infrastructure and services
    8. Killing the application
    9. Processes
    10. Deployment Variables
  3. File Transfer
    1. Introduction and Concepts
    2. Objectives
    3. Supported Protocols
    4. FileTransfer Design
    5. Descriptor FileTransfer XML Tags
  4. SSH Tunneling
    1. Overview
    2. Configuration of the network
    3. ProActive runtime communication patterns
    4. ProActive application communication patterns.
    5. ProActive communication protocols
    6. The rmissh communication protocol.
  5. Fault Tolerance
    1. Overview
    2. Making a ProActive application fault-tolerant
    3. Programming rules
    4. A complete example
  1. Components introduction
  2. An implementation of the Fractal component model with ProActive
    1. Specific features of this implementation
  3. Conformance to the Fractal model and extensions
    1. Model
    2. Implementation specific API
  4. Configuration
    1. Controllers and interceptors
    2. Lifecycle : encapsulation of functional activity in component lifecycle
    3. Shortcuts
  5. Architecture Description Language
    1. Overview
    2. Example
    3. Exportation and composition of virtual nodes
    4. Usage
  6. Examples
    1. From objects to active objects to distributed components
    2. The HelloWorld example
    3. The Comanche example
    4. The C3D example : turning Active Objects into Components
  7. Component perspectives : a support for our research work
    1. Optimizations
    2. Packaging
    3. Graphical user interface
    4. Other
    5. Limitations
  1. Peer-to-Peer Infrastructure
    1. Overview
    2. The P2P Infrastructure Model
    3. The P2P Infrastructure Implementation
    4. Installing and Using the P2P Infrastructure
    5. Future Work
  2. Security
    1. Overview
    2. Security Architecture
    3. Detailed Security Architecture
    4. Activating security mechanism
    5. How to quickly generate certificate ?
  3. Web Services
    1. Overview
    2. Principles
    3. Pre-requisite : Installing the Web Server and the SOAP engine
    4. Steps to expose an active object or a component as a web services
    5. Undeploy the services
    6. Accessing the services
    7. Limitations
    8. A simple example : Hello World
    9. C# interoperability : an example with C3D
  4. OSGI Open Service Gateway initiative
    1. Overview of OSGi
    2. ProActive on top of OSGi
    3. Yet another Hello World
    4. Current and future works
  1. IC2D : Interactive Control and Debugging of Distribution
    1. Graphical Visualisation within IC2D
    2. Control within IC2D
    3. Job monitoring and control
    4. Launcher
    5. Grid and cluster computing
  2. ProActive Eclipse Plugin
  1. Setup
  2. Introduction to the Environment
    1. Collaborative and Parallel Processing : C3D
    2. Synchronization : Readers / Writers and Dining Philosophers
    3. Migration : Mobile Agents
  3. Hands-on Programming with ProActive
    1. Client-Server
    2. Control of the Activity
    3. Migration
    4. Migration of Graphical Frames
  4. OO SPMD
    1. Execution and first glance at the Jacobi code
    2. Modification and compilation
    3. Detailed understanding of the OO SPMD Jacobi
    4. Virtual Nodes and Deployment descriptors
    5. Execution on several machines and Clusters
  5. A complete example : the nbody example
    1. Rationale and overview
    2. Source files
    3. Common files
    4. Simple Active Objects
    5. Groups of Active objects
    6. groupdistrib
    7. Object Oriented SPMD Groups
    8. Barnes-Hut
    9. NBody Conclusion
  6. Guided Tour Conclusion
  1. Adding a deployment Protocol
    1. Objectives
    2. Overview
    3. Java Process Class
    4. XML Descriptor Process
  2. How to add a new FileTransfer CopyProtocol
    1. Adding external FileTransfer CopyProtocol
    2. Adding internal FileTransfer CopyProtocol
  3. Adding a checkpointing Protocol
  4. MOP : Metaobject protocol
    1. Implementation: a Meta-Object Protocol
    2. Principles
    3. Example of a different metabehavior: EchoProxy
    4. The Reflect interface
    5. Limitations
  1. Booklet
  2. Frequently Asked Questions
  3. References
  4. Index

Credits :

Design Patterns used in the library :



ProActive is part of the ObjectWeb consortium for OpenSource middleware



Copyright © 2001-2005 INRIA All Rights Reserved.