TinyTM
- Architecture
The diagram at the right shows the main components of the TinyTM architecture.
Only part of this architecture has been implemented at the time of writing,
so please take this as a kind of software development roadmap. Please see
the download section for the available
software.
The Protocol
- The Protocol
The protocol is the core of TinyTM. The protocol sits between the clients
and the server and defines a common language for all participating applications.
The Server Side
- Database Server
For simplicity and development speed reasons we have choosen to use a
database as the "core" TinyTM server. The database serves as a storage
for translation segments and as an application server for the Pl/SQL API.
- Pl/SQL Application Programming Interface
(API)
This API is the core of TinyTM. We have choosen the "Pl/SQL" procedural
SQL language to hide the data model from the various clients. All data
exchanged between clients and servers passes through this API. Pl/SQL
has been very popular in the 80' for client-server applications, but has
pretty much been forgotten since.
Pl/SQL is executed right inside the database, it is fast and accessible
via ODBC (plain database connectivity), one of the most ubiquos protocols
in the IT world. Pl/SQL is supported by PostgreSQL, mySQL, Oracle and
MS SQL Server.
- Web Server and Web Application
The Web server provides a GUI for the administration of TinyTM of users,
groups etc. It may also provide web translation optioins and a "translation
workflow" in the future.
We expect a number of different web applications to emerge with time.
- XML Interface (XML-RPC, SOAP, ...)
These interfaces "wrap" the Pl/SQL API calls into an XML layer.
The Client Side
- Client Overview
First analysis has led us to the conclusion that TinyTM needs to face
a variety of sometimes contradictive requirements. For this reason we
have decided to take care to separarate the translator's environment (the
client) from the server
environment.
- MS-Word Macro
Microsoft Visual Basic programming is not considered particular "fun"
amongst open- source developers. However, MS-Word remains the main tool
in the translation world. For this reason we have developed the MS-Word
macro as the very first TinyTM client.
Also, VBA is relatively easy to learn and might provide a fertile ground
for usability improvements by community members.
- OmegaT
OmegaT (http://www.omegat.org/) is
a popular open-source translation memory written in Java. OmegaT is based
on a "monolitic" architecture without separation between "client"
and "server". However, it should be relatively easy to modify
OmegaT in order to work with the TinyTM server. This would add XML and
HTML translation capabilities to TinyTM and the possibility to run on
non-Windows computers.
- Browser Access
Any browser will be able to access the TinyTM web server.
- Other Applications
We asume that other applications such as content management, helpdesk,
etc. might want to integrate with TinyTM once TinyTM has matured.