An EAI open source project created and developed by Guénolé de
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
Third chapter quickly show the architecture of the solution and fourth
chapter gives more details about the key concepts of the
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).
is it ?
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.
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.
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).
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.
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.
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.
: 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
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