ProActive: Programming, Composing, Deploying on the Grid
An Open Source Middleware For Parallel, Distributed, Multicore Computing

ProActive Programming

Advanced Features


Version 2012-03-09


The OASIS Research Team and ActiveEon Company



INRIA UNSA CNRS-I3S
OW2 ActiveEon



Generated on 2012-03-09

ProActive Programming v2012-03-09 Documentation

Legal Notice

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; version 3 of the License.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

If needed, contact us to obtain a release under GPL Version 2 or 3, or a different license than the GPL.

Contact: or

Copyright 1997-2010 INRIA/University of Nice-Sophia Antipolis/ActiveEon.

Mailing List

Mailing List Archive

http://www.objectweb.org/wws/arc/proactive

Bug-Traking System

http://bugs.activeeon.com/browse/PROACTIVE


Contributors and Contact Information

Team Leader

Denis Caromel
INRIA 2004, Route des Lucioles, BP 93
06902 Sophia Antipolis Cedex
France
phone: +33 492 387 631
fax: +33 492 387 971
e-mail:

Contributors from OASIS Team Contributors from ActiveEon Company
  • Brian Amedro

  • Francoise Baude

  • Francesco Bongiovanni

  • Florin-Alexandru Bratu

  • Viet Dung Doan

  • Yu Feng

  • Imen Filali

  • Fabrice Fontenoy

  • Ludovic Henrio

  • Fabrice Huet

  • Elaine Isnard

  • Vasile Jureschi

  • Muhammad Khan

  • Virginie Legrand Contes

  • Eric Madelaine

  • Elton Mathias

  • Paul Naoumenko

  • Laurent Pellegrino

  • Guilherme Peretti-Pezzi

  • Franca Perrina

  • Marcela Rivera

  • Christian Ruz

  • Bastien Sauvan

  • Oleg Smirnov

  • Marc Valdener

  • Fabien Viale

  • Vladimir Bodnartchouk

  • Arnaud Contes

  • Cédric Dalmasso

  • Christian Delbé

  • Arnaud Gastinel

  • Jean-Michel Guillaume

  • Olivier Helin

  • Clément Mathieu

  • Maxime Menant

  • Emil Salageanu

  • Jean-Luc Scheefer

  • Mathieu Schnoor

Former Important Contributors
  • Laurent Baduel (Group Communications)

  • Vincent Cave (Legacy Wrapping)

  • Alexandre di Costanzo (P2P, B&B)

  • Abhijeet Gaikwad (Option Pricing)

  • Mario Leyton (Skeleton)

  • Matthieu Morel (Initial Component Work)

  • Romain Quilici

  • Germain Sigety (Scheduling)

  • Julien Vayssiere (MOP, Active Objects)


List of Figures
List of Tables
List of Examples
Preface

Part I. Services and Advanced Features

Chapter 1. Fault-Tolerance
1.1. Overview
1.1.1. Communication Induced Checkpointing (CIC)
1.1.2. Pessimistic message logging (PML)
1.2. Making a ProActive application fault-tolerant
1.2.1. Resource Server
1.2.2. Fault-Tolerance servers
1.2.3. Configure fault-tolerance for a ProActive application
1.2.4. A deployment descriptor example
1.3. Programming rules
1.3.1. Serializable
1.3.2. Standard Java main method
1.3.3. Checkpointing occurrence
1.3.4. Activity Determinism
1.3.5. Limitations and known bugs
1.4. A complete example
1.4.1. Description
1.4.2. Running NBody example
Chapter 2. Security Framework
2.1. Overview
2.2. Security Architecture
2.2.1. Base model
2.2.2. Security is expressed at different levels
2.3. Detailed Security Architecture
2.3.1. Nodes and Virtual Nodes
2.3.2. Hierarchical Security Entities
2.3.3. Resource provider security features
2.3.4. Interactions, Security Attributes
2.3.5. Combining Policies
2.3.6. Dynamic Policy Negotiation
2.3.7. Migration and Negotiation
2.4. How to create policy files and certificates
2.5. Activating security mechanism
2.6. The XML Security Descriptor in details
2.6.1. Construction of an XML policy:
Chapter 3. Message Tagging
3.1. Overview of Message Tagging
3.2. API
3.3. Local Memory Space
3.4. Example of a user Tag implementing the abstract class Tag
3.5. Distributed Services Flow Tag
Chapter 4. Exporting active objects as Web Services
4.1. Overview
4.2. Principles
4.3. Pre-requisite: Installing the Web Server and the SOAP engine
4.4. Steps to expose or unexpose an active object as a web services
4.5. Exposing as a web service on remote Jetty servers launched during the deployment
4.6. Accessing the services
4.7. Limitations
4.8. A simple example: Hello World
4.8.1. Hello World web service code
Chapter 5. Making ProActive programming easier: the ProActive Java Annotations System
5.1. Compile-time annotations
5.1.1. General usage
5.1.2. @ActiveObject
5.1.3. @RemoteObject
5.1.4. @MigrationSignal
5.1.5. @Migratable
5.1.6. Migration Strategy
5.1.7. @NodeAttchedCallback
5.1.8. @VirtualNodesReadyCallback
5.1.9. @ImmediateService
Chapter 6. ProActive on top of OSGi
6.1. Overview of OSGi — Open Services Gateway initiative
6.2. ProActive bundle and service
6.3. Yet another Hello World
6.4. Current and Future works
Chapter 7. An extended ProActive JMX Connector
7.1. Overview of JMX — Java Management eXtension
7.2. Asynchronous ProActive JMX connector
7.3. How to use the connector?
7.4. JMX Notifications through ProActive
7.5. Example: a simple textual JMX Console
Chapter 8. Existing MBean and JMX notifications in ProActive
8.1. Principles
8.2. How to subscribe/unsubscribe to the notifications of a MBean?
8.2.1. Subscribe to the JMX notifications of a ProActive object
8.2.2. Unsubscribe to the JMX notifications
8.3. The ProActive JMX Notifications
8.3.1. How to send a JMX notification?
8.3.2. Example of notification listener
8.3.3. The JMX notifications sent by the ProActive MBean
Chapter 9. TimIt API
9.1. Overview
9.2. Quick start
9.2.1. Introduction
9.2.2. Define your TimIt configuration file
9.2.3. Add time counters and event observers in your source files
9.3. Usage
9.3.1. Timer counters
9.3.2. Event observers
9.4. TimIt extension
9.4.1. Configuration file
9.4.2. Timer counters
9.4.3. Event observers
9.4.4. Chart generation
Chapter 10. Proxy Command
10.1. Overview of proxy command : a bouncing connection command mechanism
10.2. Principles
10.3. Configuration
Chapter 11. Multi Protocol support
11.1. The support of the Multi Protocol in ProActive
11.2. The configuration properties for multi protocol.
11.3. Benchmarking possibilities
11.3.1. Custom Benchmarks
11.3.2. Existings benchmarks
11.4. API for multi-protocol

Part II. Extending ProActive

Chapter 12. How to write ProActive documentation
12.1. Aim of this chapter
12.2. Getting a quick start into writing ProActive doc
12.3. Example use of tags
12.3.1. Summary of the useful tags
12.3.2. Figures
12.3.3. Bullets
12.3.4. Code
12.3.5. Links
12.3.6. Tables
12.4. DocBook limitations imposed
12.5. Stylesheet Customization
12.5.1. File hierarchy
12.5.2. What you can change
12.5.3. The Bible
12.5.4. The XSL debugging nightmare
12.5.5. DocBook subset: the dtd
12.6. Ant targets for building the documentation
12.6.1. Javadoc ant targets
12.6.2. Manual generation ant targets
Chapter 13. How to add a new FileTransfer CopyProtocol
13.1. Adding external FileTransfer CopyProtocol
13.2. Adding internal FileTransfer CopyProtocol
Chapter 14. Adding a Fault-Tolerance Protocol
14.1. Active Object side
14.2. Server side
Chapter 15. MOP: Metaobject Protocol
15.1. Implementation: a Meta-Object Protocol
15.2. Principles
15.3. Example of a different metabehavior: EchoProxy
15.3.1. Instantiating with the metabehavior
15.4. The Reflect interface
15.5. Limitations

Part III. ProActive Extra Packages

Chapter 16. Branch and Bound API
16.1. Overview
16.2. The Model Architecture
16.3. The API Details
16.3.1. The Task Description
16.3.2. The Task Queue Description
16.3.3. The ProActiveBranchNBound Description
16.4. An Example: FlowShop
16.5. Future Work
Chapter 17. Monte-Carlo API
17.1. Overview
17.2. API
17.2.1. Main Class
17.2.2. Tasks
17.2.3. Examples
Bibliography
Index