# Tryton

Tryton es una plataforma informática general de alto nivel en tres capas y de propósito general sobre la cual se desarrolla una solución de negocios (ERP) por medio de los módulos de Tryton.
La plataforma Tryton se organiza en una arquitectura de tres capas: el cliente Tryton, el servidor Tryton y la Base de datos (principalmente PostgreSQL). La plataforma junto con los módulos oficiales están cobijados por la licencia GPLv3.
El nombre Tryton se refiere a Tritón, la luna más grande de Neptuno, y Python, el lenguaje de programación en el que está implementado.
Tryton se originó como un fork de la versión 4.2 de TinyERP (que posteriormente se rebautizó como OpenERP). La primera versión se publicó en noviembre de 2008, en esta versión se reescribieron partes del núcleo y los módulos principales.
En contraste con su proyecto padre y su negocio basado en código abierto, los fundadores de Tryton evitaron crear una red de partners (socios) que tiende a generar oposición y dualidad entre los socios y la comunidad de voluntarios. Se siguió el ejemplo de PostgreSQL en donde el proyecto se dirige por una federación de compañías.
El proceso de lanzamiento de nuevas versiones está basado en series. Una serie es un conjunto de lanzamientos con los mismos dos primeros dígitos (p.e. 1.0 o 1.2) que comparten el mismo API y esquema de base de datos. Cada seis meses aparece una nueva serie y se introducen nuevas versiones en las series anteriores cuando hay nuevos arreglos de fallos.

## Módulos y cobertura funcional

Los módulos oficiales cubren los siguientes campos funcionales:
* Contabilidad y contabilidad analítica
* Administración de ventas
* Administración de compras
* Administración de inventario
* Administración de proyectos y tiempos
* Administración de calendario

## Características técnicas

El cliente y el servidor de aplicación están escritos en Python. El cliente usa GTK+ como librería base de la interfaz de usuario. Ambos están disponibles en Linux, MacOS y Windows. Hay una versión integrada que incluye el cliente y el servidor llamada Neso.
El núcleo provee las bases técnicas necesarias para la mayor parte de aplicaciones de negocios. Sin embargo no está asociada a ningún campo particular de funcionamiento constituyéndose por lo tanto en un marco general de desarrollo de aplicaciones:
* Persistencia de datos: garantizada por mapeo a objetos persistententes llamado Models, que permiten creación, migración y acceso fácil a registros.
* Administración de usuarios: el núcleo viene con características base para administración de usuarios: grupos de usuarios, reglas de acceso por modelos y registros, etc.
* Motor de Workflow: permite la activación de un flujo de trabajo para cualquier modelo del negocio.
* Motor de reportes: el motor de reportes está basado en relatorio que usa ficheros ODT como plantillas y genera reportes ODT o PDF.
* Internacionalización: Tryton está disponible actualmente en inglés, francés, alemán, español, ruso e italiano. Se puede añadir nuevas traducciones directamente por la interfaz del cliente.
* Datos históricos: se puede habilitar la historia para cualquier modelo del negocio permitiendo por ejemplo obtener la lista de todos los costos pasados para cualquier producto. También permite acceder dinámicamente a registros históricos en cualquier momento del pasado: por lo tanto la información del cliente en cualquier factura abierta será aquella que esté en la fecha en la cual se consulte la información.
* Soporte para protocolos DAV: WebDAV, CalDAV y CardDAV. Lo cual permite manejo de documentos pleno y sincronización de calendarios y contactos.
* Soporte para protocolos XML-RPC.
* Hay independencia de Sistema de gestión de bases de datos desde la serie 1.2 y desde la serie 1.4 tiene soporte para SQLite.
* Mecanismo automático de migración integrado: permite actualizar el esquema de base de datos sin intervención humana. Se garantiza la migración de una serie a la siguiente(las versiones de la misma serie no requieren migración). Esta automatización es posible porque el proceso de migración se tiene en cuenta y se prueba continuamente durante el desarrollo.
* Modularidad avanzada: la modularidad permite proveer una aproximación por capas en los conceptos de negocios junto con gran flexibilidad, lo que acelera los desarrollos.