Submarine project
An EAI open source project created and developed by Guénolé de Cadoudal (guenoledc@yahoo.fr)
This document is an introduction and a reference document of the Submarine project. If you start with Submarine, I advice you to read chapter 1, 3 and 4 first (about 8 pages).
First chapter gives you the story and the spirit of the Submarine projet. The second chapter will explain you how to install it on your system.
Third chapter quickly show the architecture of the solution and fourth chapter gives more details about the key concepts of the architecture.
The fifth chapter is a user reference for the connectors, tools and configuration file. You will need to read this chapter when you will try to implement your own Submarine project (which is all the matter).
What is it ?
The Submarine project is an open-source development of an EAI server. EAI means "Enterprise Application Integration". Much clearly, EAI is a software architecture concept for simplifying, automating, building correlation and exploiting all the communication messages between company’s applications and between companies themselves.
EAI is now a well known concept and a lot of commercial tools are on the market. The thing is that those tools are very expensive and not all the time very open to companies specific developments. These points brings me to the idea that the open-source community needs an EAI server which is not yet the case.
I am a french consultant in EAI and architecture system and I have a good knowledge of all the most representative EAI solution of the market (CrossWorld, SeeBeyond, Mercator, BEA, Microsoft, IBM, Cross Database Technology).
I build this first version of Submarine with few capabilities but with the goal of being (with the open-source community help) in 2 or 3 versions as competitive as the big ones. 
The Submarine project could be see as a server that handles multiple kinds of messages of different natures (file, stream, object), parses them into XML internal messages, transforms them using the XSLT technology, serializes them into another kind of messages and finally writes the resulting messages to some destinations. 
The actual spirit of the Submarine project is very close to the Jakarta-Tomcat (Catalina) application server project. It is a full java project, a standalone server, in which you are able to build your application without modifying the engine source code. 
Submarine : Why this name ? The name comes from a reflection I have on the place of the EAI systems in the enterprise information system. EAI is always invisible to end-users but it is always situated under the front-end applications like application server, legacy, ERP,... So if end-users are boat passengers and applications are boats then the EAI (Submarine) is under the sea. Another point of view is that in a war, one of the most important piece is the submarine ship, and in the enterprise information system EAI is also one of the main pieces. I choose the Beatles "Yellow Submarine" picture for logo, because I am a fan of this group.The development project is hosted by the sourceforge projet at www.sourceforge.net/submarine.
The Submarine project was build around a true enterprise EAI project in order to answer to the true needs of EAI. This company is a French bank named Zebank, which activity target is mainly on the Internet.
Today, Submarine is the integrating system between back office applications, the front office web site and the back office CRM and bank system.
In that context, Submarine manage around 10.000 messages a day under a linux Pentium server with 512Mo Ram. It spends less than 2% of the machine cpu. The average size of one message is 1k octets