Conociendo sobre Odoo: El Framework

CONOCIENDO SOBRE ODOO: EL FRAMEWORK

   
  1. En el mundo de los frameworks de propósito general (sirve para hacer muchos tipos de desarrollos), hay muchas opciones para hacer nuestros desarrollos, cada cual se usara según nos sea mas conveniente, no existe uno sea bueno en todo desarrollo. La cantidad de frameworks que existe actualmente es enorme, algunos prevalecen otro perecen. Para lenguaje en el cual deseamos usar lo mas seguro que habrá un framework que nos facilite la vida:
  • Laravel (basado en PHP).
  • Django (Basado en Python).
  • Drupal (Basado en PHP).
  • Angular (Basado en Javascript).


Pero hay frameworks para desarrollo especifico, como por ejemplo Odoo, enfocado principalmente en el desarrollo de aplicaciones empresariales.

Para conocer de mejor manera un framework siempre es bueno entender su arquitectura. Para entender a Odoo vamos a describirlo en 3 características:

  1. Odoo es multi-tenant.
  2. Odoo es multi-tier.
  3. Odoo tiene una arquitectura similar a MVC.


Explicaremos cada uno a continuación:

1. Odoo es multi-tenant: 
Sobre una misma aplicación podemos usar varias bases de datos al mismo tiempo.

Figura 1: Single Tenant vs. Multi Tenant

2. Odoo es multi-tier:
Esto quiere decir que tiene varios niveles (tiers); en su arquitectura, en si son 3:

Figura 2: La arquitectura de Odoo es multi-tier.

2.1. Tier de presentacion :
Es la parte visual que se le presenta al usuario, el responsable de realizar esto es el ingeniero frontEnd. Para el desarrollo se suele usar: XML, HTML, Javascrit y CSS.

2.2. Tier Logico:
Realiza la logica de la aplicacion, hace calculos y validaciones. Retorna resultados al el cliente. El responsable de realizar esto es el ingeniero BackEnd.

2.3. Data Tier:
Almacena los datos en una base datos o un filesystem:

• Base de datos: Cuando son datos persistente son almacenados en  bases de datos relacionales, en este caso Postgresql.

• FileSytem: Cuando la data es almacenada en una carpeta. Estos son  tipo binarios: archivos de texto, imágenes, videos, etc…

Nota: Por lo tanto si deseamos un backup de nuestro sistema tenemos que tener tanto la copia de nuestra base de datos, asi como los datos de nuestro FileSystem.

3. Odoo tiene una arquitectura similar a MVC: 
Es del tipo MVC (Model-View-Controller) porque no lo es al 100%. Para entenderlo mejor vamos apoyarnos de la figura 3.

Figura 3: Modelo Model-View-Controller

Paso 1: Un navegador o App realiza una petición, esta llega a la capa “Controlador”, en Odoo es llamado los  “Web Controller“, estos son los encargados se reenviar las peticiones al modelo deseado, en Odoo hay 2 tipos de Web Controllers: Controllers y las APIs. Esta escrito en clases de tipo Python. 

Paso 2: El modelo, llamado ORM (Object Relational Mapping), es el encargado de crear las tablas y sus atributos para la base de datos relacionada. Además crea la lógica de negocio: hace cálculos, validaciones, etc. Todo esto lo hace a través de clases (que generalmente son extensiones de la clase “model”, clase principal de la ORM) y funciones basadas en Python. Este ORM tiene un API ORM capaz de interactuar con la base de datos de forma indirecta. 

Paso 3: Los datos solicitados son reenviados a la vista, llamado views, que es la forma como se mostraran los datos. En Odoo están escritos en formato XML con la ayuda de Javascript, HTML, CSS. Además desde Odoo 12 podemos usar Bootstrap 4. Los views son apoyados por los datafiles, que es código XML que muestra los menús, acciones, etc. (llamados recordset, estos ya están almacenados previamente en las bases de datos). Todo esto se explicara a mas detalle en posteriores post. Tener en cuenta que toda petición de lectura, escritura, borrado son realizados a través de la API del ORM via RPC (Remote Procedure Call), que son métodos para poder interactuar con el ORM. 


Empiece a escribir aquí...

Gestión de base de datos en Odoo