A runnable manager is the container
for runnable operations that activate execution managers.
You can create an external scheduler to call the runnable operations.
This capability lets you define an execution scheme independent of
the model composition structure.
This capability is available
for Rational Rhapsody projects created with the MicroC profile.
About this task
The
role of the runnable manager is to assemble runnable
operations in your model, as well as to represent the C source file
in which runnable operations are generated. A runnable operation can
select instances of execution managers and specify the execution order
for the execution managers.
The runnable operations and the Initialize function
are API functions for an external scheduler. You can write an external
scheduler, an external main() function, that activates
execution managers but without having any hierarchical order for the
execution managers. The external scheduler calls the runnable operations,
as well as the Initialize function.
To see
a viewlet that describes the basic work flow of the runnable manager
feature, go to the Rational Rhapsody wiki.
Procedure
- Create a project with the MicroC profile and add artifacts
for it as you would typically do (for example, add packages, classes,
and objects). Or open an existing project created with this profile.
- To create a runnable manager, create a package. For example,
you might name it RunnableManagerPkg.
- Add a runnable manager to the package you created. Right-click
the package and select . For example, you might name it RM1.
- Add a runnable operation to your runnable manager. Right-click,
your runnable manager and select . For example, you might name it RO1.
- Double-click your runnable operation to open its Features
window, and on the Activate tab, you can do
the following steps:
- On the Add New row, click ... to
add an instance of an execution manager to the runnable operation.
Use the browser on the Execution Manager Instance Reference window
to select an object you want the execution manager to execute.
- When you have more than one execution manager, use the Move Item
Up and Move Item Down buttons
to specify the order that your execution managers are to
run, as shown in the following figure.
- Click OK.
Results
When you generate code, the execution managers run in the
order specified. In the generated code, the body of a runnable operation
is composed of a series of function calls to the doExecute() functions
of the execution managers that were selected on the Activate tab,
according to the specified order.
Another role of the runnable
manager is to generate an Initialize function that
initializes all the packages that aggregate any of the execution managers
that all the runnable operations activate.