Components
Last updated
Last updated
This is the component diagram of ISM.
This component is the running instance of ISM and this engine can be multiple per machine. This engine runs as a web server for web services or REST services. ISM uses Wildfly-10 version currently.
Two caches are used for faster transaction processing. H2 and Derby contain flow caches and these caches consist of the followings.
· Flow definition
· System information
· Data structure
The information can be loaded when the request arrives, but It??�s recommended to load data to cache before the transaction. The data in the database are just flat records. The data need to be transformed into an object to be used and several tables are used to store a flow information. Loading and converting into a flow takes time and this degrades the performance.
The information in the cache is already binary object, retrieved once and used until the instance is shutdown during runtime. Loading data into cache is called publishing in ISM. If a flow is modified, publishing is used to update the cache.
Flow controller controls the processing of flows. Flow controller finds the entry point of a flow and execute the flow according to the path. The component in each step is a plugin called Task and Flow controller loads this plugin and executes. Flow controller receives parameter from the external client or scheduler and passes to the components.
Two types of tasks are used.
1. Control Task
These tasks are used to determine the direction of the processing.
· Start
· End
· Router
· Split/Join
2. Function Task
These tasks are specific functions like file operation, (s)ftp operation, database operation and others.
If a flow is executed asynchronously and retry count is greater than 0, when this transaction fails in a certain step, it is executed again where it failed with same parameters.
If email notification is enabled for a flow and it fails, email notification is sent.
Plugins are java classes which implement TaskHandler interface and loaded dynamically by Flow controller. Flow controller scans a specific directory ??? custom and this directory is where all the custom classes are located. If a new plugin is uploaded to custom directory, that function is loaded automatically and used via Admin UI.
If a new version of a function is uploaded, that new version is used right after the upload.
Admin UI is a single web console for entire user operations and jetty web server is used.
Designing flows, monitoring transactions, configuring schedules and other operations are performed through Admin UI.