UltraESB Users Guide - Getting Started with the UltraESB

This guide introduces the user to the UltraESB installation folder structure, pre-requisites and starting up of the UltraESB using the default scripts

1. Installation

The UltraESB distribution ships as a Zip file, and extraction results in the following key files and directories.

/bin
ultraesb.sh/bat - starts the UltraESB
toolbox.sh/bat - starts the ToolBox
encrypt.sh/bat - encrypts password to be stored on the configuration file
ultraesb-daemon.sh - starts and manages the UltraESB on production deployments (start | stop | etc...)

/conf
ultra-root.xml - the root configuration file that contains the core engine configuration
ultra-dynamic.xml - the default configuration file fragment included into the root configuration, which holds proxy service definitions
/keys - the Keystores for private keys and certificates
/mediation
/classes - default location where mediation Sequences are compiled
/src - default location for any Java source code to be picked within a Sequence

/lib
/patches - patches to any of the libraries used by the UltraESB - this location occurs first in the classpath
/endorsed - Java endorsed directory
/optional - contains optional JAR files. Files not used in your installation maybe deleted
/samples - contains JAR files used in samples. Maybe deleted in a production environment
/test - contains JAR files used for unit tests. Maybe deleted in a production environment

/samples
/conf - sample configuration files
/resources - sample XSDs, WSDLS and XSLTs etc
/src - source code for samples and unit tests
/webapp - Web application loaded into the sample Jetty server for samples/unit tests

/logs - default log directory
/tmp - temporary files

The /bin directory contains shell scripts and batch files to start the UltraESB and the ToolBox test environment, and in addition contains scripts to encrypt passwords stored on the configuration files. The ultraesb-daemon.sh script is suggested for use on production deployments on Linux or Unix platforms and allows start | stop | restart | console | status | dump options. This script runs the UltraESB as a Linux/Unix daemon daemon process, using the Java service wrapper. The bin/wrapper.conf allows one to edit the service wrapper properties.

The /conf directory contains the configuration files, keystores and any Java source code which maybe referenced by the configuration and which needs to be compiled automatically

The lib directory holds all core libraries on which the UltraESB runtime depends. The lib/endorsed directory contains libraries which should override the JDK. The lib/patches is a special directory which will hold any binary patches for the UltraESB runtime, so that a production instance could be patched or reverted back from a patch level easily. The log and tmp directories should always be kept in a local disk. Refer the UltraESB concepts guide for more information, and how these may affect performance of the UltraESB. The lib/optional directory contains libraries which are optional, and maybe deleted where they are not being used. The lib/samples and lib/test directories contains libraries for the samples and unit tests and maybe deleted in a production environment. The samples directory contains configuration files under /samples/conf which allows one to study and experiment with most of the options and features easily.

Prerequisites

  • Operating System

    The UltraESB works best on a Linux operating system, with a Kernel version 2.6 or later. As the UltraESB is a pure Java program, it will work perfectly well on a Windows system as well. However, a Linux system is recommended for production deployment for multiple reasons - including best performance, and ease of configuration and tuning of the OS. The UltraESB is developed on Ubuntu systems, and tested and load/stress tested on the Amazon EC2 on multiple operating systems. The UltraESB performs slightly better on Ubuntu (i.e. Debian) systems and is reccomended over CentOS (i.e. RHEL / Fedora) which is succeptible to memory leaks outside of the JVM.

  • Java Development Kit

    The UltraESB is currently certified against a JDK 1.6.x. Currently it is developed and tested with the Sun JDK, and will be certified against the IBM J9 JDK possibly with configuration options, to work around known limitations. Although the UltraESB will run with later versions or other JDK implementations, they are currently not certified. Note that whenever there are Sequences that requires Java code/fragment compilation a JDK is required and a JRE will not suffice. Thus the Windows scripts are explicitly to look for an use only a JDK.

Starting the default configuration

The default configuration is stored at conf/ultra-root.xml. The default configuration is split into two files for easier maintenance, and the ultra-root.xml imports the second file the ultra-dynamic.xml. The configuration directory and the names of the file/s maybe changed by a user if desired. The UltraESB configuration is a standard Spring configuration file - with additional extensions.

The ultra-root.xml specifies the transports to be used, and the proxy services to be exposed over these transports. The UltraESB configuration file schema is available at http://schemas.ultraesb.org/ultraesb-1.0.xsd. This allows a user to use any schema aware IDE or editor that supports validation and auto-completion, to easily edit the configuration. In this guide, we will use the excellent IntelliJ IDEA IDE Community Edition, which is now offered free of charge.

To start the UltraESB, execute the ultraesb.sh/bat scripts from the bin directory.

asankha@asankha:~/java/ultraesb-1.0-beta-1/bin$ ./ultraesb.sh 
Starting AdroitLogic UltraESB ...
Using JAVA_HOME : /opt/jdk
Using ULTRA_HOME: /home/asankha/java/ultraesb-1.0-beta-1
Using ULTRA_CONF: /home/asankha/java/ultraesb-1.0-beta-1/conf
Reading configuration from : /home/asankha/java/ultraesb-1.0-beta-1/conf/ | Current directory is : /storage/NonBackup/Java/Runtime/ultraesb-1.0-beta-1/.
2010-01-07 10:11:56,948 [-] [main] INFO LicenseManager Server ID : f6fe2c2b-97d2-4041-b84a-5bfd37255372 Days left for evaluation : 29
2010-01-07 10:11:56,951 [-] [main] INFO LicenseManager You are currently using this software under an evaluation license of 30 days. To obtain a full license free of charge, please visit http://adroitlogic.org
2010-01-07 10:11:57,010 [-] [main] INFO ServerManager Loading root configuration from file : conf/ultra-root.xml
2010-01-07 10:11:58,681 [-] [main] INFO Configuration Starting UltraESB/1.0-beta-1 (c) 2010 AdroitLogic. All Rights Reserved
2010-01-07 10:11:58,913 [-] [HttpNIOSender-http-sender] INFO HttpNIOSender Starting NIO Sender : http-sender ...
2010-01-07 10:11:59,102 [-] [main] INFO HttpsNIOListener Https transport sender : https-sender using default identity
2010-01-07 10:11:59,103 [-] [main] INFO HttpsNIOListener Https transport sender : https-sender is using the default trust store
2010-01-07 10:11:59,571 [-] [HttpsNIOSender] INFO HttpsNIOSender Starting NIO Sender : https-sender ...
2010-01-07 10:11:59,688 [-] [HttpNIOListener-http-8280] INFO HttpNIOListener Starting NIO Listener : http-8280 on port : 8280 ...
2010-01-07 10:11:59,698 [-] [main] INFO HttpsNIOListener Loading Identity Keystore from : conf/keys/identity.jks
2010-01-07 10:11:59,757 [-] [main] INFO HttpsNIOListener Loading Trust Keystore from : conf/keys/trust.jks
2010-01-07 10:11:59,828 [-] [HttpsNIOListener] INFO HttpsNIOListener Starting NIO Listener : https-8443 on port : 8443 ...
2010-01-07 10:12:01,793 [-] [main] INFO Endpoint Initialized endpoint : echo-proxy-inDestination
2010-01-07 10:12:01,797 [-] [main] INFO Endpoint Initialized endpoint : echo-proxy-outDestination
2010-01-07 10:12:01,798 [-] [main] INFO ProxyService Proxy service : echo-proxy started...
2010-01-07 10:12:01,798 [-] [main] INFO ProxyService Proxy service : echo-back started...
2010-01-07 10:12:01,800 [-] [main] INFO Configuration UltraESB/1.0-beta-1 started with root configuration..
2010-01-07 10:12:01,901 [-] [main] INFO ServerManager Application context created and initialized..

The UltraESB installation installs itself on first execution for an evaluation period of 30 days. You should then submit the generated Server ID reported by the LicenseManager to http://adroitlogic.org to obtain a full production license for perpetual use on any number of instances, FREE OF CHARGE. To learn how you could access the source code of the UltraESB, refer to the FAQs at http://adroitlogic.org.

Once the message "Application context created and initialized.." appears on the output, the UltraESB is ready for use. During development time, it is recommended to start the UltraESB with this script, which will report any errors on the console for easy resolution. Once a configuration is being deployed in production, the ultraesb-daemon.sh script should be used to start, stop and manage the instance whereever possible.

asankha@asankha:~/java/ultraesb-1.0-beta-1/bin$ ./ultraesb-daemon.sh 
Usage: ./ultraesb-daemon.sh { console | start | stop | restart | status | dump }