Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Button
TextoVoltar
Linkhttps://tdn.totvs.com/pages/viewpage.action?pageId=736966364







Painel
borderColorlightblue
titleColorOrange
borderStyledashed
titleÍndice
619749959
Índice
maxLevel3


01. Objetivo

Essa documentação visa explanar de forma visual e descritiva  as camadas do produto DTS4THFDatasul 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.2301. Essa documentação não detalha funcionalidades apenas, e em alguns casos, mencionará outras documentações de apoio.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.Image Removed

Image Added

No produto temos a divisão das camadas de FrontEnd, Middleware, Backend BackEnd e Persistência. Cada camada possui tecnologias semelhantes e também específicas para garantir a integridade do sistema e seus componentes.

  1. FrontEnd: Camada 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 (dentre outros que ainda estão por vir).
  2. Middleware: Camada responsável pela orquestração das requisições bem como a segurança de alguns tipos de acesso, principalmente a parte web e enpoints de suporte ao desenvolvimento. Essa camada é chamada de web server no Datasul
  3. Backend: Camada responsável pelas regras e normas de negócios sobre o qual o sistema deve operar. Essa camada é o motor do sistema para tratamento dos dados com objetivo de negócio e toda essa camada é desenvolvimento na linguagem progress e o runtime feito pelo app server opendge tendo suporte ao Classic e ao novo PASOE.
  4. 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.
  5. 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.
  6. 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.Persistent: Camada de persistência de dados, ou seja, o banco de dados. Temos suporte ao Oracle e SQLServer através do componente DataServer da Progress

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 appserver Pasoe e impedir que cenários do ERP concorram com as integrações e outras requisições REST e SOAP. Image Removed

Image Added

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.

 Assunto X

Subtítulo 1.1

Insira o conteúdo

Subtítulo 1.2

Insira o conteúdo

HTML

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.

<style> .custom-button { position: absolute; top: 50px; right: 35px; } .page-metadata div { float: none !important; margin: 4px 0 0 0 !important; } <!********TIRA O MENU LATERAL*********--> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } <!****************************--> </style>