What is retic | Retic
and JyRetic | How to build an adaptor
| How to launch adaptors
Thanks to people that give me feedback on Retic!!
Alexander DEJANOVSKI ( alexander.dejanovski@laposte.net )
============
04/08/2004
============
JyRetic 1.0 is out !! - Download
After a full year since I began working on Retic, 1.0 is finally out...
It comes with great crash handling features brought by the Java Service Wrapper.
Changes are :
- New : The Java Service Wrapper from Tanuki Software is now used to control JyRetic.
It provides great restart on crash features.
- New : Adaptor and parameter definitions are now stored to provide, among others, "restart" features.
- Bug fix : Exception are now correctly raised on error in SQLSink.
- New : SMTP Postprocessor
- New : Jabber Postprocessor
- New : SNMP Trap Appender (logger)
- Various bug fixes and improvements I might have forgotten...
Retic Administrator 1.32 is out !! - Download
Changes are :
- Fix : Corrected bug on WSDL parsing during WS component creation
- Fix : Corrected bug on estimated end time in execution tracking
- New : New items in execution tracking popup menu => Open adaptor definition, Open params definition and restart
- New : support for scheduling permanent adaptors
============
04/03/2004
============
JyRetic 1.0RC4 is out !! - Download
Changes are :
- Bug fix : ToXML pipe didn't work because of an internal type mismatch
- Bug fix : Scheduler didn't want to add recurrent events if there were none already scheduled
- Bug fix : SQLSource didn't properly close the JDBC connection (which didn't prevent it from working)
- Bug fix : Jabber communications with the server are back up
- Improvement : SQLSink threaded inserts now use persistent connections overall adaptor execution (instead of opening/closing connection for each message)
- Some other small bug fixes I might forget.
- Improvement : Support for Xindice 1.1 (to use prior versions of Xindice, place the right libs in the javalib dir and modify jython.bat or jython.sh to include them in the local classpath)
----------------------------------------------------
Retic Administrator 1.3 is out !! - Download
- New : popup menus have appeared to ease operations (try right-clicking on lists and trees), especially adaptor design. - New : possibility to subscribe to get a notice on adaptor end, through a Jabber message (Email will come in future releases)
- Improvement : Refresh schedule is now threaded and non-blocking. You can then set auto-refresh on, while you'll be able to work on other tabs without being interrupted
- New : Images in Running/Terminated adaptors tracking let you know the execution status
- New : Terminated adaptors can be filtered according to end date/hour and/or status
- New : Partial internationalization support (french and english supported, through languages files) => All texts haven't been translated yet.
----------------------------------------------------
Retic SOAP Tester 0.3 is out !! - Download
Major bug fix that prevented from generating correct SOAP Envelopes on some SOAP implementations.
Please upgrade both JyRetic and Retic Admin at the same time or you might get compatibility issues.
Retic is an EAI Server.
Its purpose is to permit applications to communicate, even if
they don't speak the same language (which means transport protocols
as well as data structures).
This is done by building adaptors. An adaptor
is composed of :
- One source
- Several pipes (process data transformations)
- Several sinks (destination of data)
- Several loggers (we'll see later what these are)
- Several preprocessors (they don't carry any message and are
executed only once before source polls begin)
- Several postprocessors (they don't carry any message and are
executed only once after adaptor execution)
Adaptors are tree-like structures that could be
pictured this way:
Retic was initially developped in Python, but
an EAI server means a connectivity with as many protocols and
products as possible. Python, although it's the greatest language
ever, lacks connectivity with databases and MOMs.
That is why Retic was translated to Jython : JyRetic, giving
it JDBC and JMS connectivity (among a lot of other Java packages,
that will provide many useful components).
JyRetic provides the same components than Retic
(parameters are sometimes different of course).
Retic Administrator can control
the Retic as well as JyRetic, as they communicate through XMLRPC
calls.
JyRetic as a Jython src distribution (Jython is
provided in the release so all you need is Java 1.3 or +).
I've decided to stop the developement
of the Python version of Retic. It would take me too much time
to maintain both. Python also lacks good connectivity with enterprise
standards (JDBC, MQSeries, JMS, ...).
Adaptors are described by a XML file.
Retic Administrator is a GUI
that can build adaptors and launch them on servers.
Here is an example of what it looks like :
<?xml version="1.0"
encoding="UTF-8"?>
<retic_adaptor>
++<source name="source1"
type="fileSource" polls="2" pollPeriod="10"
filePath="c:" fileFilter="ext_err*.csv"
newExtension="">
++ ++<pipe
name="transform_to_XML1" type="ToXML" msgKind="delimited"
delimiter=";" rootTag="racine" recTag="rec"
encoding="UTF-8">
++ ++
++<field name="message"/>
++ ++
++<field name="date_traitement"/>
++ ++
++<field name="ident"/>
++ ++
++<field name="no_contrat"/>
++ ++
++<field name="no_lt"/>
++ ++
++<field name="date_lt"/>
++ ++
++<field name="etat"/>
++ ++
++<field name="date_heure_saisie"/>
++ ++
++<sink name="outputToFile1"
type="fileSink" filePath="c:\" fileName="test_sink.xml"
addTimestamp="n"/>
++ ++
++<pipe name="xslt1"
type="XSLT" stylesheet="E:\\Xml\\XSL\\test.xsl">
++ ++
++ ++<sink
name="outputToFile2" type="fileSink" filePath="c:\"
fileName="test_sink.html" addTimestamp="n"/>
++ ++
++ ++<sink
name="outputToFtpFile1" type="ftpSink" ftpHost="ftp.bogus.com"
ftpPort="" ftpUser="guest" ftpPass="guest"
filePath="/E:/ADI" fileName="test_sink.html"
addTimestamp="n"/>
++ ++
++</pipe>
++ ++</pipe>
++</source>
</retic_adaptor>
source1 is a file source that looks for files
that match the filter ext_err*.csv in directory c:\
The file is loaded into pipe transform_to_XML1which transforms
it into an XML file. That XML file is then sent into sink outputToFile2
which saves it as c:\test_sink.xml
Pipe transform_to_XML1 also sends its XML file into pipe xslt1
which applies stylesheet test.xsl to it.
The result of the transformation is sent to sink outputToFile2
(which saves it to c:\test_sink.html) and to outputToFtpFile1
(which saves it via FTP to ftp.bogus.com in directory /E:/ADI
with the name test_sink.html).
To launch an adaptor with the command line, you
must call startAdaptor.py passing it as argument
the name of the config file:
jython startAdaptor.py adaptor.xml
To launch an adaptor with a param
file, just add its name at the end of the command line :
jython startAdaptor.py adaptor.xml
param.xml