A arquitetura do Odoo¶
A arquitetura do Odoo¶
As aplicações construídas em Odoo podem ser divididas em três camadas:
Dados
Lógica;
Apresentação;
1. Camada de dados¶
PostgreSQL;
Storage;
1.1 PostgreSQL¶
A camada de dados é a camada mais baixa e é responsável pelo armazenamento e persistência dos dados. O Odoo utiliza o PostgreSQL para isso:
Código aberto;
+30 anos: reputação de confiabilidade, robustez de recursos e desempenho.
Important
O PostgreSQL é o único SGBD suportado e foi uma escolha técnica para facilitar a otimização e performance. (De vez em quando aparece alguem perguntando se roda em MySQL =D)
1.2 Arquivos Binários: Anexos, documentos e imagens.¶
Os arquivos binários do Odoo por padrão são salvos em disco.
Warning
- Isso significa que um backup completo do Odoo envolve no mínimo:
Banco de dados;
File store.
2. Camada Lógica: Python¶
A camada lógica é construída em Linguagem Python e é a responsável por todas as iterações com os dados e é gerenciada pelo Servidor do Odoo.
De forma geral o banco de dados só deve ser acessado através desta camada, assim garantindo a consistência dos dados e às corretas permissões de acesso.
3. Camada de Apresentação: HTML5, JavaScript e CSS.¶
A camada de Apresentação é responsável por apresentar os dados e interagir com o usuário. Ele é implementado pela parte cliente do software, que é responsável pela interação do usuário final.
O software cliente usa chamadas de procedimento remoto (RPCs) para o servidor do Odoo.
Tip
Dependendo do escopo de um módulo ele pode ser construido nas três camadas.
Odoo fornece um cliente web pronto para uso. O cliente da web suporta todos os recursos necessários para um aplicativo de negócios, como sessões de login, menus de navegação, listas de dados e formulários.
A API (JSON-RPC) do servidor Odoo é aberta e todas as funções do servidor estão disponíveis através dela.
É usada pelo cliente web oficial e é a mesma disponível para qualquer outro aplicativo. Assim, outras implementações de clientes são possíveis e podem ser construídas em praticamente qualquer plataforma ou linguagem de programação.
Tip
Os aplicativos de desktop e smartphone podem ser criados para fornecer interfaces de usuário específicas, aproveitando as camadas de Dados e Lógica.
Existem módulos da comunidade que estendem API, possibilitando outras formas de acesso a camada lógica: REST, GraphQL e etc.
4. Odoo: Como aprender mais¶
Uma estrutura de site também está disponível para uso como front-end público para usuários externos.
Ele também fornece recursos de CMS, permitindo criar páginas da web estáticas e dinâmicas.
A estrutura do site usa componentes do controlador para o código que implementa a lógica específica da apresentação, mantendo-a separada da camada lógica (Padrão MVC).
Esta é arquitetura principal do Odoo, módulos como Ponto de Venda, IOT e outros possuem sua própria arquitetura e serão detalhados em outros capítulos.