TariffEye Technical sheet
Last revision December 1st 2006
by engineers from the Ecole Polytechnique Fédérale de Lausanne, TariffEye is
written in JAVA 1.4. Some parts of the software use BSH,
which is a java-like syntax scripting language. The software has been tested
with SUN jvm on Windows, MacOSX and Linux x86. Variables and relevant comments
are in English language.
Some third party
software and libraries are used, they will be named on parts they are involved
and a full list is provided at the end of this document.
SimpleData used Eclipse with no special plugins, Eclipse
is not required to compile, or edit TariffEye's code. All the compiling and software packaging is handled by Ant, which is not mandatory to compile the software but the
build.xml must then be used as a reference to understand the building process.
We use Install4j to make installable packages for the different
Debugging and Logging
All the logging system
is based on Log4J.
has been used to elaborate tests.
Main application design and Features
TariffEye, is a
standalone application, but with an asynchronous communications system between
the user-interface and the data-engine. This is a very important fact, having
an autonomous data engine, makes possible to use of Tariff files in other
applications, such as real-time fees calculations, or with a web interface.
The data-engine is an
API that can handle tariffs construction and manipulation as well as portfolio
management and fees calculations.
The data model defines
the way tariffs are designed
High level of abstraction in tariff
The example shows the
graphical representation of the WorkSheets.
Those elements define
the logical and operational toolbox of TariffEye.
Writing a logical
structure such as a Case, Bounds or Sequencer requires less than 300 lines of code. An
operational structure such as the most complex Rate by Slice on Asset is written in 250 lines. That code defines, the
way elements operated but also the way data is stocked, the calculus and the
serialization of these items.
The design of the datamodel makes it very easy to create and to add new
To classify tariffs, a
normal tree structures cannot suffice as it is impossible to define one single
classification for all banks and all tariffs.
This is why TariffEye
can be spatialized in multiple trees structures. For bank tariffs SimpleData
has defined 6 dimensions + 1 user defined tree.
Those dimensions are
tuneable to be sure any kind of classification can be represented with
Tariff matching and element pairing
classification of tariffs makes it possible to find comparable elements between
portfolios, with a high level of accuracy. Elements between assets and
transactions may be paired, to make ventilation of a portfolio automatic for
trees system of Tariff-Eye is designed for data importation from a portfolio or
Threaded fee calculation system
The fee calculation
system is a process apart, seeking for changes on the tariff. Tariff
calculation involves a lot of recursivity and conditional steps, the calculator
highly optimise the fee calculation to prevent redundancy and unnecessary
calculus. At this time on an average PC, fee calculation after a complete
portfolio modification takes less than one second.
The serialization is
the way tariffs are saved on files and distributed.
Robust and evolutive
Tariffs and portfolio
have exactly the same structure; a Tariff in an empty portfolio. This means
that a file containing a portfolio also contains all the tariff information
associated. So sharing portfolios is very easy as all the needed data is in a
containing tariff are "XML armored objects", the files contains serialized Java
objects and their XML representation. Java objects loads very quickly, but they
are very dependents to version of the datamodel, this is why an XML equivalent
is used if TariffEye failed loading a tariff file made with an older version of
XML representation is
achieved with the java beans XML serializer, which makes it very easy to
control versioning of datamodel"s elements. This has been verified during all
the development process where the datamodel evolved a lot.
Security and sharing
TariffEye was designed
from start to be very safe, as handled data was very confidential. So all the
files are encrypted using asymmetric cryptographic keys. The level of
encryption can be adjusted to any company requirements and the files structures
is designed to accept a non limited number of layers of encryption, signature
Today TariffEye comes
with RSA and DES encoders, and a keyring management system.
The GUI of TariffEye
is developed with SUNs swing API. Its identical if used on a Windows or a
on Mac the aqua look and feel is used.
Naturally the UI is
made to manipulate tariffs and portfolio, but it also handles data loading and
They are 3 main
applications, with their specific UI:
1- The simulation
tool, to manipulate portfolios on specific tariffs.
2- The creation
tool, to create tariffs.
3- Creation-live is
a mix of both previous tools.
With the Alloy look and Feel TariffEye has a very clear visual.
!! Not it the GPLized version !! as alloy is not Free :(
Very intuitive and user friendly
A lot of attention and
energy has been spent in TariffEye ergonomics to be sure anyone will feel
comfortable manipulating complex tariffs.
Most of the elements
in TariffEye will show a text information when the mouse pass over them.
TariffEye was designed
for several ways of thinking and different user types. Newcomers and occasional
users will easily find the command for the action they want to perform, as
there are no hidden functions, or deep menus. But a daily user will also notice
that most of the elements on TariffEye are clickable to speed up the
navigation, and that many actions are directly accessible with a right-click.
Popups and validation steps have been avoided to their maximum, to be the less
portfolio filling and transaction generation are embedded, so there is no need
to launch a side window to complete those tasks.
complex elements is made simple and intuitive, as most elements will respond to
The feeling should be
very close to navigation on a web site, without the need to validate every
Easy fees and discounts visualisation
Fees are always
visible to the user; they can be explored with a single tree. The user will
visualize the total fee as well as single transaction effects on the same
un-discounted fees will be shown aside the fees column.
As specified in the Datamodel – calculation system
part, fee calculation is achieved in real time, so the user can see the effect
of the slightest portfolio or tariff manipulation. Even discounts have an
immediate effect on fees. Moving sliders, will change in real time the
relatives" numeric values and graphical chart.
Recursive error and warning indications
Errors and warnings
are not intrusive; they appear recursively on the navigation tree. On the
following example, an error is made the TVA tariff; this is shown with the
little "invalid" icons on the trees. This way a use will find easily where his
attention is required.
Reports are made with JasperReports; they will provide a complete paper
version of a Tariff or a Portfolio simulation. Report templates can be
customized easily by the customer with the set of tools provides with Jasper
The help system use JavaHelp 2.0.
One powerful feature
of TariffEye is its embedded web server and web browser. SimpleData developed a
very light web server with a JSP interpreter. So, it is lighting fast to
develop an extra tutorial, or links to external web services.
The embedded web
server has a special API for JSPs, this API provides a full control of
TariffEye, from web pages. This is very interesting to meet quickly specific
The former use of this
tool was to provide update alerts and news about TariffEye.
Updates and Tariff manager
A simple tool for
online or offline tariff updates.
Language and translations
SimpleDatas unique translation system. When in development stage, a
"learning-mode" is turned on. While the software is tested it automatically
fills text files on a per Java class basis, those files can be directly
translated and corrected, plus it highlights the new entries that need
reviewing. Most of the work for developers is automated.
Licensing and copyright enforcement
The software needs to
be activated online; a computer signature is used to generate the serial code.
The licensing system is made to allow or deny access to specific features, and
if needed it provides a limit in time.
Cracking the software is made very difficult by crypting and hiding
sensitive code in an interpreted script.
As specified, user
data is protected by asymmetric key systems and cannot be compromised even if
SimpleData licensing system was.
Third-part tools and library
Here is a list of the
third part tools and library used for the development that may require
attention because of their licenses. Some open source library and software used
require to be distributed with a copy of their license and their source code.
This does not affect the way TariffEye source code is distributed.
http://www.eclipse.org/ This is a free and
open source IDE.
http://ant.apache.org/ Is a free build tool,
part of the Apache project.
installer from $400 to $1000
Is an HELP management system, provides by SUN.
Free and open-source Logging system
and open-source testing framework
Commercial theme for
java application from $200 to $900
Free and Open-source reporting generator
Free and Open-source chart generator
List of the third party ".jar" files