Packnet have been working on ebXML message transfer with a number of clients recently and whilst we tried long and hard to handle this with code (Perl framework) we had to give in and move to a software based solution. After considering few open source solutions like Webswell, Hermes 2 etc, we finally decided to go for ‘Cyclone Activator’ (also called as ‘Synchrony EndPoint’) from Axway Solutions, which is a standalone ebXML Message service implementation. The open source software solutions were not considered as it looked to be more difficult to implement in terms of installation and configuration. Cyclone Activator is a commercial application and it suited our need for an independent application that can sit in the middle of few systems and handle all the messages between them. It looked easy to set up although they were not offering customer support for Ubuntu Linux, which is what we are using in our systems. They offer customer support for other flavours of Linux like Red Hat, Solaris and AIX etc. It is written in java, hence can be installed on Windows and Linux systems and can be configured with a choice of databases like MySQL, Postgres or Oracle etc. The customer support is based in the US – so there could be a delay for purchase/licensing issues as everything has to be passed back and forth from the US.
The installation was straightforward more or less – we faced some issues like we had to create a virtual 32-bit environment on our server as it won’t get installed on the 64-bit environment our server has. The application comes with a comprehensive support document – too comprehensive actually (around 800 pages). Once installed, the user interface is very simple and straightforward and it would allow doing the further configurations. There are good reporting facilities where you can track all the messages, what happened to them – whether they are successfully delivered and all that. You can configure any number of systems as sending and receiving parties and setup is straightforward. Cyclone Activator supports many protocols for exchanging messages other than ebXML – like AS1, AS2, AS3, RosettaNet or webservices. There are provisions to configure for your firewalls and proxy servers, if you have any of those. Cyclone uses its own internal transport servers for delivery exchanges which can be configured easily. The user guide explains all this in detail. We are using ebXML protocol and an https transport server for message exchanges. The messages are digitally signed using the SSL certificate and encrypted using SHA1 algorithm in our case. This makes it really secure. The finer details of message exchange are defined by the CPA (Collaboration protocol agreement) which is commonly agreed between us and our clients. Configuring CPA (importing/exporting etc) is easy using the web interface of cyclone.
In our case the message exchange works like this. We create the XML and write it on to a directory which is monitored by the cyclone activator. Cyclone will pick it up from there, digitally sign it, encrypt it and send it to the destination as mentioned in the Message Meta data (MMD) document. The client system will immediately acknowledge the receipt and it will be recorded by the cyclone. Then the client system will send the response for our request and the cyclone will capture it, verify the authentication and acknowledge the receipt. We have configured cyclone to call a script at the end of this process in order to take further action based on what is there in the response message.