Interface Capabilities

SIMPROCESS allows for communication outside itself in a variety of ways:

ASCII Files

SIMPROCESS can read from or write to ASCII files. Reading from files can be done using an interface or the Expression language. Writing to files can only be done using the Expression language.

Database operations via JDBC

SIMPROCESS can read from or write to any database if an appropriate Java JDBC driver is available. As of Java 8, Java no longer includes a built-in driver called the JDBC-ODBC Bridge; thus, separate JDBC drivers for specific DBMS must be available. SIMPROCESS includes a JDBC driver for Microsoft Access, but drivers for other DBMS must be added to SIMPROCESS. SIMPROCESS has been tested with Microsoft Access, Microsoft SQL Server, MySQL, and Oracle. Reading from and writing to databases can be done through interfaces or directly using the Expression language.

Microsoft Excel-compatible spreadsheet files

SIMPROCESS can read from and write to .xls or .xlsx spreadsheet files and XML spreadsheet files. This can be done through interfaces or by using the SIMPROCESS Expression language. SIMPROCESS implements this by using a portion of the Jakarta POI project.

External Interaction via Java Remote Method Invocation (RMI)

SIMPROCESS supports, via an add-on license, what are collectively referred to as “remote” capabilities. Most of the features enabled by this add-on use Java’s RMI technology, which allows an “object” to be looked up via the RMI server’s naming facility and then to optionally pass parameters to a method to be invoked on the object. SIMPROCESS features enabled via this add-on include:

  • Use of an external “plot server” so that SIMPROCESS plots may be remotely displayed. Hosting plots on another system reduces the workload of the system on which SIMPROCESS is running. Or the plots can simply be displayed on another Java-enabled system that’s more conducive to viewing by interested parties, whether or not SIMPROCESS is available on that system.
  • RemoteCall Expression statement. This system method, described in more detail in Appendix F of the SIMPROCESS User’s Manual, allows invocation of methods on remote Java objects via RMI. Sample Java source code is included with SIMPROCESS that shows a tiny fraction of what could be done via RemoteCall.
  • ExternalCall Expression statement. Though this Expression statement does not use RMI, it allows for calling methods on Java objects provided by SIMPROCESS users. These Java classes can be added by placing compiled Java class files or Java Archive (JAR) files in a “classes” directory in the model’s directory. Virtually anything can be added to a model in this way. An Attribute of type Object can contain a reference to an external Java object.
  • External Schedule in the Generate Activity. When an External Schedule is present, a Generate will wait for an outside agent to signal it to release Entities into a model. This could include a person manually triggering such release or an application. Because triggering of the External Schedule is done via RMI, it can be done from any Java-enabled system.

Communicating with Web Services via InvokeWebService

The InvokeWebService Expression statement allows SIMPROCESS models to invoke operations (or methods) on Web Services. Return values can be received by SIMPROCESS. SIMPROCESS also has a SOAPCall Expression statement. This statement includes limited support for SOAP, the Simple Object Access Protocol. SOAPCall allows an available Web service to be invoked if it is RPC/encoded and returns a string value.

Enterprise Support: Communication with Web Services

SIMPROCESS has a proven track record in its role as a modeling and simulation tool. More and more often, however, it’s useful to be able to call on simulation capabilities and use the results to make automated business decisions. SIMPROCESS provides that capability through the DispatcherService, a Web service that can be deployed in a Web Container (an application supporting the Java Servlet Specification) or an Application Server, and the SIMPROCESS Dispatcher.

In order to use the Dispatcher and related features, an alternate install set is offered by the installer, called “SIMPROCESS and Dispatcher.” This is not the default set and must be specifically selected. It provides all the components needed to use SIMPROCESS as a regular desktop application, but it also includes components which allow use of the Dispatcher to invoke SIMPROCESS as a service. The Dispatcher is licensed separately from the SIMPROCESS desktop application. The Dispatcher program (it will have the .exe extension on Windows systems) controls the operation of one or more instances of SIMPROCESS when requests are received via the DispatcherService. The dispatcher directory contains all of the other components needed to run SIMPROCESS as a service (including the DispatcherService deployment files). Its precise contents will vary according to the platform on which installation occurs.

The DispatcherService is included among the components in the dispatcher directory. It is the gateway through which a client application obtains SIMPROCESS services. A Web Container or Application Server will be required in order to deploy and use the DispatcherService. A client application must be available that knows how to communicate with the DispatcherService, and a dispatcher must be able to advertise that its services are available to a DispatcherService. The DispatcherService must know where to look for the list of service providers. And finally, a dispatcher must be able to obtain licenses when services are requested.