External Entity Generation

Generate Activities have an External generation schedule. This schedule works in conjunction with Java Remote Method Invocation (RMI), the RemoteCall Expression statement, and the application SPServer, which is provided with SIMPROCESS. This feature allows you to develop portions of a model and distribute them to separate computers to share the workload without writing any Java code. You simply use the External Schedules in one model and the RemoteCall feature in the other.

The “Two Models Interacting” example is an illustration of external Entity generation in SIMPROCESS. In this example, each model is completely independent even though they are running on the same computer. (Note – you could run them on the different computers by using their RMI addresses). The “TwoModelsInteractingA” model contains process flows for Companies A and B, and the “TwoModelsInteractingB” model maps out another process flow. Company A receives Hardware and Software orders, and a certain percentage requires additional processing (the order contains some accessories available from Company B). The “TwoModelsInteractingB” model decides which orders contain accessories, and pass them to Company B.

The “TwoModelsInteractingA” model has an Expression in the “Create SW Invoice” and “Create HW Invoice” Activities that do RemoteCalls to the external schedule in the “Receive Orders” Activity in the “TwoModelsInteractingB” model. These Expressions define where the Entities are generated in the other model by naming its RMI address, Generate Activity name, and Entity generation schedule name. (Optionally, the Entity to generate, the time of generation, and the quantity to generate can be specified.) Therefore, when Software and Hardware orders enter these Activities, an Entity of the appropriate type is generated in “TwoModelsInteractingB”.

The expression script in “Create SW Invoice” looks like this:

booleanVar : BOOLEAN;
booleanVar := RemoteCall(“rmi://localhost/”, “SPServer”, “generateEntity”, “TwoModelsInteractingB”, “Receive Orders”, ”External1”, “Software”, -1.0 ,1);

The “TwoModelsInteractingB” model has an Expression in the “Send Order to Company B” Activity that does a RemoteCall back to the “Receive Orders” for Company B in “TwoModelsInteractingA”. All of the entities that arrive from “TwoModelsInteractingA” are processed, and a portion of them are returned to Company B (approximately 75%).

Demonstration Models

In order to view the demonstration models you must have SIMPROCESS installed on your computer and you must have a license. If you don’t have SIMPROCESS you may download a trial version.

You must save the demo model zip file by RIGHT CLICKING on the file below and select “Save Target As”. Save the file to your computer. After you launch SIMPROCESS select File and Open. Then navigate to where you saved the demo files and select to open them.

Two Models Interacting

To run these models, the user must do the following:

  1. Open both models.
  2. Adjust the size of SIMPROCESS and the placement of the models so both are visible.
  3. Select Tools/Remote/Start RMI Registry.
  4. Select Tools/Remote/Start SPServer.
  5. Start the “TwoModelsInteractingB” model.
  6. Start the “TwoModelsInteractingA” model.
NOTE – the models need to be started in this order! The “TwoModelsInteractingA” model acts as a “master” model and controls the statistics and the simulation clock. The other model simply performs the Activities when it is called.

While these models are not extremely complex, they illustrate how separate models can be hooked together to form an integrated modeling environment across a network.