OfficeFrame provides the runtime environment to execute jobs based on the Job Based Architecture. The main focuses of OfficeFrame include:
It also provides an additional concept, Administration. As application functionality is separated into Jobs, Administration Duties can be weaved in between the Jobs. This is much like weaving aspects around methods and enables the Administration Duties (which are themselves Jobs) to handle such things as logging and transaction management.
The OfficeFrame is provided as a single jar with no dependencies (except those provided by the JRE). The reason for this is that it is the pure implementation of the Job Based Architecture and does not want to dictate which plug-ins must be used. It also contains the multi-threading state machine that is at the heart of the Job Based Architecture implementation and does not want this to be poluted with the specifics of plug-ins.
As the OfficeFrame provides only the core, it only provides an API to configure it for running. This has been intentional as the OfficeCompiler is responsible for using this API to configure OfficeFrame. This enables OfficeFrame to focus on supporting the Job Based Architecture (with OfficeCompiler compiling the graphical models into the OfficeFrame). It is anticipated that you should not be using OfficeFrame directly, but rather use the graphical models that are compiled by the OfficeCompiler.
As long as you are familiar with the Job Based Architecture, you need not delve into the specifics of OfficeFrame. If however, you want a deeper understanding some recommended places to start looking into the code are:
| Class | Description |
|---|---|
| net.officefloor.frame.api.OfficeFrame | The starting point for the OfficeFrame configuration API |
| net.officefloor.frame.impl.execute.job.AbstractJobContainer | The core class providing functionality to manage execution of jobs |