prozima project scheduling engine
PEngine, the Project Scheduling Engine, is a Java library which models complex portfolios of projects, containing multiple schedules, activities, milestones and resources. PEngine's algorithms calculate the optimum allocation of resources across all projects so that time and cost goals are met.
In technical terms, PEngine solves specific extensions to the RCPSP (Resource Constrained Project Scheduling Problem). These extensions include the addition of support for release dates, deadlines, time-switched constraints, multi-project scheduling and hybrid makespan/cost objectives.
features
- Portfolios: Multiple projects which share multiple resources can be scheduled simultaneously.
- Scenarios: Each project may contain multiple schedules and baselines. These schedules may be used to evaluate alternative scenarios.
- Activities: Schedules contain both activities and milestones. Activities require resources to perform work whereas milestones have no work or effort associated with them.
- Reactive Scheduling: Schedules are continuously updated to adapt to changes. At any instant, you know the expected completion time of all activities, milestones and projects.
- Cost Control: Allocate costs to resources using multiple rules and currencies.
- Weighted Scheduling: You specify the balance between time and cost you require and PEngine finds the best possible schedule which meets your goals.
- No Dependencies: No third party libraries are essential to PEngine. One third-party library may be utilised by PEngine if required (this is optional): The Apache Commons Logging package is used to provide advanced logging support. It is a very small package which can be included with proprietary, closed source applications. The use of this package gives developers the ability to view log messages generated by PEngine and to enable or disable logging. This is a major aid to development and debugging.
- Flexible: PEngine is designed to calculate optimal schedules. It makes no assumptions as to where data comes from or is stored. Can be integrated with any application, ranging from mobile applications to large-scale web services.
- Relationships: Activities and milestones can be related to their predecessors in a schedule by one of 4 types of relationship: Start to Start, Start to Finish, Finish to Start and Finish to Finish.
- Constraints: Activities and milestones may be constrained by one of several types of constraint, which include MFOD (Must Finish On Date), MFBD (Must Finish Before Date) etc.. In total, there are 8 types of constraint supported.
- Compact: PEngine occupies less than 250kB when built and optimised.
- Evaluation: There is free evaluation version of PEngine available for download. This enables the user to fully evaluate and test the library and its API before purchase.
- No DRM: PEngine is distributed with no DRM or other licensing technology. The developer only has to think about integrating the library with their code.
documentation
The API provided by the Prozima Planning Engine is available for review. You can view the latest version of the API here in Javadoc format. The API documentation is also included in the PEngine library zip file. The zip file also contains the license under which the library is released and release notes.
downloads
An evaluation version of the Prozima Planning Engine and example code is available for download here.