Readablewiki

ProActive

Content sourced from Wikipedia, licensed under CC BY-SA 3.0.

ProActive Parallel Suite is open-source software for enterprise workload orchestration. It helps you define a workflow of tasks (executables or scripts in any language) with their dependencies, then schedules and runs them to make efficient use of computing resources. It uses an “active object” design to improve task distribution and fault tolerance.

Developed by ActiveEon with contributions from INRIA and the OW2 Consortium, ProActive is written in Java and is cross-platform. The latest stable release is 10.0 (F-Zero), released on July 12, 2019. It is licensed under the AGPL and can be found at www.activeeon.com.

How it works
- Active objects: Each active object runs in its own thread. It can be created on any host, and its location is transparent to others. An active object is made of a body (which handles calls) and a standard Java object. The body queues incoming calls and executes them in an order defined by a synchronization policy (FIFO if none is set). There is no internal parallelism inside a single active object, which helps keep certain correctness properties.
- Proxies and futures: When a caller uses an active object, a proxy represents the target. Calls are turned into requests and often become asynchronous, immediately returning a future object that represents the pending result. The caller can continue executing, and will be blocked automatically if the result is needed before it’s available.
- Subsystems and data handling: Applications are organized into subsystems, each with one active object (and possibly passive objects). Subsystems do not share passive objects. If a caller passes a passive object as a parameter to an active object, that object is deep-copied to avoid sharing. Active objects are passed by reference, while passive objects are passed by value.
- Asynchrony and wait-by-necessity: Most calls are asynchronous, creating a future placeholder for the result. If the code needs the result, it waits only as long as necessary, using a wait-by-necessity approach.

Background
ProActive is built on the active object model, a formal approach to distributed programming described in the ASP calculus. It enables applications to run in sequential, multi-threaded, or distributed environments with little or no structural changes, thanks to asynchronous calls, futures, and controlled data sharing. The concept originated with Denis Caromel and has been extended by INRIA researchers.


This page was last edited on 2 February 2026, at 05:05 (CET).