image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image

GP

Guilherme Pedromilo10/01/2025 19:00
Compartilhe

Tecnologia "Multi-Tenant and Multi-Schemas" Venturo ERP

    Introdução:

    Projeto desenvolvido pela equipe Venturo's Dev Team, apresentado como requisito de final de atividade integrada do curso de Desenvolvimento de Sistemas da Escola Senai "Dr. Celso Charuri" – unidade Sumaré, em conjunto com o ensino regular oferecido pela unidade SESI-SP "Chalil Zabani" (CE 436) - unidade Nova Odessa. Integrantes da equipe:

    A organização Venturo e o projeto estão disponíveis no GitHub. Este artigo não tem como objetivo comercializar o produto, mas sim apresentar a solução criada para atender às necessidades identificadas no processo de desenvolvimento do sistema Venturo ERP.

    O que é Multi-Tenant e Multi-Schemas ?

    Multi-Tenant é uma arquitetura de software em que uma única instância do sistema atende a múltiplos clientes (ou tenants), isolando dados e configurações de cada um, mas compartilhando a mesma infraestrutura. Diferencia-se do modelo Single-Tenant, no qual cada cliente possui seu próprio banco de dados dedicado.

    Multi-Schemas é uma estrutura de banco de dados em que múltiplos esquemas são utilizados para organizar os dados. Cada cliente ou empresa possui seu próprio esquema dentro do mesmo banco de dados físico, garantindo a separação e a segurança das informações.

    image

    Figura 1 – Esquema de funcionamento do sistema Venturo. Fonte: PEDROMILO et al. Venturo: Sistema de Gestão de Recursos Empresariais, (2024).

    Estrutura do sistema Venturo ERP:

    A estrutura do sistema Venturo ERP é baseada na Figura 1. Os clientes são empresas que adquiriram e possuem acesso autorizado aos recursos do Venturo ERP, podendo se conectar simultaneamente, cada uma com seu próprio banco de dados. Para isso, cada empresa cadastrada e autorizada pelo suporte do Venturo ERP recebe um banco de dados, cujo nome é o ID da empresa no banco de dados principal. Caso a empresa seja desautorizada (por rescisão contratual, atraso de pagamento ou decisão do suporte), o acesso ao banco de dados e aos recursos do Venturo ERP é bloqueado. Entretanto, as informações permanecem seguras e podem ser recuperadas caso a empresa seja reautorizada.

    Solução e criação da tecnologia:

    Após diversas pesquisas, desenvolvimento de protótipos e aprimoramentos, a solução encontrada foi utilizar a biblioteca Knex.js, um SQL query builder que facilita a comunicação com bancos de dados. Assim, foram criados dois arquivos de configuração: um para o banco de dados principal e outro para os bancos de dados das empresas.

    image

    Figura 2 – Arquivos de configuração Knex.js. Fonte: PEDROMILO et al. Venturo: Sistema de Gestão de Recursos Empresariais, (2024).

    Dessa forma, o sistema Venturo ERP foi estruturado com funções que dependem apenas do banco de dados principal, utilizando a função de conexão "mainDb", e funções que dependem dos bancos de dados das empresas, utilizando a função "createEmpresaKnexConnection", que recebe o ID da empresa como identificador do banco de dados. Funcionários e gestores estão vinculados ao banco de dados da respectiva empresa, garantindo o envio seguro do ID via token.

    Referências:

    PEDROMILO, Guilherme Veiga; TEIXEIRA, João Pedro Araújo; SANTOS, Isabella Texeira dos; FERREIRA, Caio Felipe Vieira. Venturo: Sistema de Gestão de Recursos Empresariais. Sumaré: Escola SENAI "Dr. Celso Charuri", 2024. Acesso em: 10/01/2025

    Compartilhe
    Comentários (0)