Chapter 1. What is CloverETL Server

CloverETL Server (CS) is the most recent member of CloverETL products family. It introduces the powerful Clover tool into the world of enterprise applications. CloverETL Server itself is an enterprise class application, thus it is shipped as WAR file (WAR stands for Web Archive). CS is tested and works on Apache Tomcat web container, Sun Glassfish application server or IBM Websphere application server. CloverETL Server is basically runtime environment for graphs, which brings new possibilities how to integrate Clover with your own software. Whereas CloverEngine can be integrated only as embedded library, CS implements several interfaces which can be called by another applications using common protocols like http. In addition, CS implements some optimizations of threads and memory management.

Table 1.1. CloverETl server and CloverETL engine comparison

 CloverETL ServerCloverEngine as executable tool
possibilities of executing graphsby calling http (or JMX, etc.) APIs (See details in Chapter 12, Simple HTTP API.)by executing external process or by calling java API
engine initializationduring server startupinit is called for each graph execution
thread and memory optimalizationthreads recycling, graphs cache, etc.not implemented
schedulingscheduling by timetable, onetime trigger, logging includedexternal tools (i.e. Cron) can bes used
statisticseach graph execution has its own log file and result status is stored; each event triggered by the CS is loggednot implemented
monitoringIf graph fails, event listener will be notified. It may send email, execute shell command or execute another graph. See details in Chapter 6, Graph Event Listeners. Additionally server implements various APIs (HTTP and JMX) which may be used for monitoring of server/graphs status.JMX mBean can be used while graph is running
storage of graphs and related filesgraphs are stored on server file system in so called sandboxes 
security and authorization supportCS supports users/groups management, so each sandbox may have its own access privileges set. All interfaces require authentication. See details in Chapter 3, Graphs on Server Side - Sandboxes.passwords entered by user may be encrypted
integration capabilitiesCS provides APIs which can be called using common protocols like HTTP. See details in Chapter 12, Simple HTTP API.CloverEngine library can be used as embedded library in client's Java code or it may be executed as separated OS process for each graph.
development of graphsCS supports team cooperation above one project (sandbox). CloverETL Designer will be integrated with CS in further versions.