World of GGPlease note: All new versions will be located at GitHub under Waarp new project name : http://waarp.github.com/Waarp/ The project still remains Open Source under GPL V3.
GoldanGate is an open source file transfer monitor in Java. It unifies several protocols (FTP, HTTP and proprietary protocols) in an efficient and secured way. Its purpose is to enable bridging between several protocols and to enable dynamic pre or post action on transfer or other commands.
GoldenGate is composed of several parts, most of them could be used separately without the full package:
The start idea was to be able to receive through several protocols some files (or not files but data) and to transmit them into a system not directly accessible, but without breaking the global vision of the data transfer (where it is, what status, and so on...). A standard FTP server (or SFTP or FTPS) do not allow to make post action (and of course neither pre action) when a file transfer occurs. So the reason of this new project to be able to imply business actions that can be whatever the need when an event occurs in the transfer protocol.
For instance, when a file is to be transmitted through an FTP service, perhaps some tests should be done to see if the next business step (another application) is ready to accept transfers. When a file is transmitted, an action can occur like for instance checking of integrity (business vision) or retransmission to another business partner (using eventually a different protocol). Also one possibly wants to follow any transfers (or other actions defined in the protocols) and to log them somewhere in its own format, either to just be able to look at what happened or even to restart some actions to correct wrong situation in production.
To be able to do all of that, we decided to implement the most common used file transfer protocols (FTP, HTTP) in such a way they can fulfill those behaviours. FTP was the first step. HTTP for now is simply a bunch of JSP and classes attached to this JSP. SSH is planned.
Of course, if they can do all the stuff we present before, they can also do simple thing like standard FTP server.
Why a proprietary protocol therefore ? Well, all of those protocols suffers from pitfalls like:
What kind of proprietary protocol it will be? It will be a proprietary protocol that mimic the CFT PESIT one plus some extension, including in the protocol itself (block checking and restarting), but also to enable specific functionalities like MD5 block control (optional), restart possibilities, duplexing network connection, SSL support, database support, ...
This project is in production in the French Ministery of Finances to enable file transfers from an FTP protocol (client side) to an OpenR66 protocol (server side protocol) since end of 2009.
|