01. Objetivo
Essa documentação visa explanar de forma visual e descritiva as camadas do produto Datasul for THF. Essa documentação foi escrita durante o desenvolvimento da 12.1.2305 e a última release entregue ao mercado foi a versão 12.1.2403.
02. Visão Geral
O gráfico abaixo mostra as camadas do produto bem como as versões de tecnologias utilizadas em cada uma delas. Vale lembrar que a camada de infraestrutura foi minimizada no gráfico para facilitar o entendimento do produto.
No produto temos a divisão das camadas de FrontEnd, Middleware, BackEnd e Persistência. Cada camada possui tecnologias semelhantes e também específicas para garantir a integridade do sistema e seus componentes.
- FrontEnd: FrontEnd é acamada que é utilizada pelos usuários do produto em qualquer dispositivo ou plataforma, ou seja, camada responsável pela apresentação dos dados tanto em tecnologia web (HTML), client/server (Progress) e apps mobile.
- Middleware: Middleware é a camada do DSS responsável pelos serviços e fornecedores de conteúdo estático (WebServers), Middleware é a porta de entrada para o acesso ao backEend e posterior acesso aos dados. Além disso, essa camada é responsável por manter serviços de rota, autenticação e autorização, licenciamento TOTVS, servir conteúdo estático, parsers, validadores e verificadores de acesso, ou seja, verifica e valida tudo antes de conceder acesso ao backEnd. No produto Datasul for THF o Middleware é orquestrado pelo Tomcat na versão 9.
- Backend: Backend é a camada responsável por executar os objetos de negócio (BusinessLayer), toda a regra de negócio dos módulos envolvidos ou instalados no produto devem rodar obrigatoriamente na camada Backend fazendo desta camada o chamado motor de negócio. Essa camada é controlada pelo componente Pasoe desenvolvido e mantido pela Progress.
- Persistent: Persistence é a camada responsável por manter os dados de produto para dar valor à camada de negócio. Essa camada também conhecida como motor de dados é gerenciada por componentes OpenEdge Database Progress. Para acesso a outras marcas de banco de dados diferentes do normal, como Oracle e SQLServer utilizamos o componente OpenEdge DataServer que realiza a transpilação dos comandos 4GL para o banco de destino.
O Produto Datasul possui um alto acoplamento, devido ao middleware ter sido planejado como uma aplicação monolítica, ou seja, qualquer alteração no middleware é necessário bloquear o acesso pelos usuários à todas as funcionalidades. Além disso, como o sistema monolítico o appserver, responsável pela execução de negócio (BO) concorre diretamente com a execução de outros tipos de acesso como LOGIN, SOAP, REST CUSTOMIZAÇÕES dentre outras.
Com o objetivo de minimizar o problema de concorrência no appserver e atender outras demandas de ofertas de APPs, surgiu o Broker Escalável para dividir a demanda no Pasoe e impedir que cenários do ERP concorram com as integrações e outras requisições REST e SOAP.
Com o broker escalável é possível dividir a demanda e inclusive escalar brokers para determinado cenário para uma maior vazão, vale lembrar que a funcionalidade do broker escalável prevê brokers iguais para uma mesma funcionalidade e nesse caso é realizado o balanceamento das requisições. No entanto, o middleware ainda estabelece uma estratégia monolítica como o anterior.
03. Infraestrutura x Versionamento
O produto Datasul for THF possui alguns requisitos de versionamento de software associados, como Progress, Java, Tomcat entre outros. É mantido e disponibilizado uma matriz de compatibilidade destes softwares através do documento Ciclo Vida Datasul e Tecnologias Associadas.
04. License Server Virtual
O License Server Virtual é uma ferramenta Cross desenvolvida para atender a todas as linhas da TOTVS provendo o licenciamento dos respectivos produtos. O License Server possui comunicação com a camada do FrontEnd e também com a camada BackEnd para a devida liberação da funcionalidade. Para obter detalhes complementares do License Server, sugerimos a leitura do documento TOTVS License Server Virtual.