(Parte 1 de 140)

A Tecnologia Protheus

O Advanced Protheus é uma nova tecnologia desenvolvida sobre o sistema Advanced, que teve toda a inteligência dividida em duas camadas: Servidor de Aplicação (Protheus Server) e Interface (Remote). Ou seja, uma aplicação 32 bits que se encarrega do gerenciamento das conexões, da execução do código AdvPl e do acesso aos recursos de banco de dados (ADS, Btrieve, CTree ou TopConnect), e uma aplicação thin-client que efetua apenas a interface com o usuário.

Características da Tecnologia Protheus

As principais características da tecnologia Protheus são:

  • Possibilidade de grande variação de topologias de rede e processamento distribuído

  • Baixo tráfego de rede entre o AP5 Server e o AP5 Remote

  • Utilização de configurações, possibilitando o uso de conexões simultâneas através de protocolos diferentes e o acesso a diferentes repositórios  de APO's e diretórios (o que permite o uso de diferentes idiomas, versões, etc, acessando a mesma base de dados)

  • Diferentes possibilidades de impressão de relatórios. No Advanced Protheus pode-se imprimir os relatórios de três formas:

  1. Em disco

  2. Via Windows

  3. Direto na Porta

As impressões efetuadas via Windows ou diretamente na porta podem ser impressas no servidor (o que evitará o tráfego de rede do relatório impresso) ou na estação. As impressões efetuadas em disco também evitam o tráfego de rede. Os relatórios em disco são sempre mantidos no servidor e somente as páginas requisitadas são enviadas à estação.

  • Os arquivos de banco de dados são sempre abertos no servidor. Entretanto, arquivos texto podem ser abertos na estação com a função FOpen. A referência a paths que não contiverem uma letra de drive (por exemplo, "\DADOS\ARQ.TXT"), são consideradas a partir do servidor no diretório informado na seção "RootPath" do arquivo de configurações do Protheus Server

  • Não existe o conceito de "módulos" de sistema. Existe o conceito de programa inicial, de onde a execução do Remote será iniciada (e os outros APO's utilizados serão carregados e descarregados dinamicamente de acordo com sua chamada a partir deste). Isso permite que rotinas que eram de "módulos" diferentes sejam executadas diretamente de um mesmo menu de usuário

As Camadas do Advanced Protheus

O Advanced Protheus é dividido em quatro camadas para a operação são elas:

  • Servidor de Aplicação

  • Terminal Thin-Client

  • Dados

  • Repositório de APO´s

Servidor de Aplicação

O Protheus Server é a aplicação encarregada da compilação e da execução do código em AdvPl, no qual o sistema Siga Advanced está escrito a partir da versão 5.07. Na linguagem AdvPl, as rotinas são mantidas em APO's (Advanced Protheus Objects) individuais em repositórios. Isso permite que as rotinas sejam carregadas/descarregadas dinamicamente da memória da máquina onde o Protheus Server está sendo executado, ou seja, de acordo com a necessidade de execução dos Terminais conectados, e facilita a atualização após correções de não-conformidades ou criação de melhorias, pois apenas os APO's modificados necessitam ser atualizados. Desse modo, a performance é alta e não requer muitos recursos da máquina para a execução do servidor.

Terminal Thin-Client

O Remote é a aplicação encarregada da interface com o usuário. Não existe processamento local, por isso o tráfego de rede entre o Terminal e o Servidor de Aplicação é baixo, tratando-se apenas de comandos para o desenho das telas e do tratamento do teclado e mouse.

Dados

O acesso aos dados é efetuado pelo Servidor de Aplicação utilizando as seguintes bases de dados: ADS, BTrieve, CTree e TopConnect (para padrão SQL). Para bases de dados SQL, existe total suporte a Stored Procedures. No Protheus, todas as bases de dados têm suporte a controle de transação.

Repositório de Apo’s

E no repositório que se encontram os programas escritos em AdvPl que serão carregados para a execução de determinada tarefa. É através do repositório de Apo’s que pode-se incluir novas customizações no sistema.

Estruturação

A estrutura de diretórios do Advanced Protheus

A estrutura de diretórios do Advanced Protheus depende  da versão instalada.

Versão AP5

\ap5\

Diretório inicial do Protheus. É a partir deste diretório que o sistema irá localizar os caminhos informados em parâmetros, customizações, etc.

\ap5\apo\

Diretório onde serão localizados os arquivos de repositório de APO´s.

\ap5\bin\

Diretório onde são localizados os arquivos do núcleo do Protheus: executáveis, bibliotecas de carga dinâmica (DLL´s) e arquivos de configuração do sistema.

\ap5\sigaadv\

Similar ao \SIGAADV\ das versões Advanced 2.0x/4.0x. É o diretório onde se encontram os arquivos de configuração do sistema ERP Advanced, arquivos de menus, etc. É também o diretório inicial de execução no Remote.

\ap5\dadosadv\

Similar ao \DADOSADV\ das versões Advanced 2.0x/4.0x. É o diretório onde se localizam os arquivos de base de dados para versões não SQL.

\ap5\relato\

Similar ao \RELATO\ das versões Advanced 2.0x/4.0x. Diretório para gravação de arquivos de impressão em disco.

\ap5\cprova\

Similar ao \CPROVA\ das versões Advanced 2.0x/4.0x. Diretório para gravação de arquivos de contabilização.

\ap5\ixbpad\

Diretório de localização de programas de exemplo escritos em AdvPl, nos padrões definidos pela Microsiga Software S.A.

\ap5\include\

Diretório de arquivos de inclusão padrão (extensão .CH) necessários para a compilação de programas escritos em AdvPl.

\ap5\util\

Diretório de ferramentas adicionais do Protheus.

 

Versão AP6

\ap6\

Diretório inicial do Protheus. É a partir deste diretório que o sistema irá localizar os caminhos informados em parâmetros, customizações, etc.

\ap6\apo\

Diretório onde serão localizados os arquivos de repositório de APO´s.

\ap6\bin\server\

Diretório onde são localizados os arquivos do núcleo do Protheus Server: executáveis, bibliotecas de carga dinâmica (DLL´s) e arquivos de configuração.

\ap6\bin\remote\

Diretório onde são localizados os arquivos das aplicações clientes (Remote, IDE, Monitor, etc): executáveis, bibliotecas de carga dinâmica (DLL´s) e arquivos de configuração.

\ap6\sigaadv\

Similar ao \SIGAADV\ das versões Advanced 2.0x/4.0x. É o diretório onde se encontram os arquivos de configuração do sistema ERP Advanced, arquivos de menus, etc. É também o diretório inicial de execução no Remote.

\ap6\dadosadv\

Similar ao \DADOSADV\ das versões Advanced 2.0x/4.0x. É o diretório onde se localizam os arquivos de base de dados para versões não SQL.

\ap6\relato\

Similar ao \RELATO\ das versões Advanced 2.0x/4.0x. Diretório para gravação de arquivos de impressão em disco.

\ap6\cprova\

Similar ao \CPROVA\ das versões Advanced 2.0x/4.0x. Diretório para gravação de arquivos de contabilização.

\ap6\ixbpad\

Diretório de localização de programas de exemplo escritos em AdvPl, nos padrões definidos pela Microsiga Software S.A.

\ap6\include\

Diretório de arquivos de inclusão padrão (extensão .CH) necessários para a compilação de programas escritos em AdvPl.

  •  Estas são as estruturas para uma instalação padrão do Protheus de acordo com a versão utilizada. Porém a localização de instalação pode variar de acordo com o local de instalação.

Aplicativos do Advanced Protheus

O Advanced Protheus possui, basicamente, quatro aplicativos utilizados com diferentes finalidades. São eles:

Protheus Server

Trata-se do servidor de aplicação do Advanced Protheus esta é a parte do sistema que será executada no Servidor e será responsável pela comunicação entre o Cliente, a Base de Dados e o Repositório de Apo’s. O nome do executável depende da versão e sistema operacional utilizados, por exemplo: AP5SRV.EXE ou AP6SRVWIN.EXE.

Remote

É o Remote que utilizamos para interagir com todo o sistema, ele poderá ser instalado de duas maneiras, no servidor ou na própria estação de trabalho. O nome do executável depende da versão utilizada, por exemplo: AP5RMT.EXE ou AP6RMT.EXE.

IDE

Trata-se do ambiente de desenvolvimento integrado do Advanced Protheus. É através deste aplicativo que todos os acessos aos repositórios de Apo’s (compilação de customizações, visualização de funções existentes etc.) são efetuados, e também é a ferramenta para desenvolvimento e depuração de aplicações/customizações. O nome do executável depende da versão utilizada, por exemplo: AP5IDE.EXE ou AP6IDE.EXE.

Monitor

Esta ferramenta permite a interação com os usuários conectados ao sistema: Analisar os programas em uso, derrubar conexões pendentes, enviar mensagens ao usuários etc. O nome do executável depende da versão utilizada, por exemplo: AP5MONIT.EXE ou AP6MONIT.EXE

  •  Alem destas aplicações, o Siga Advanced Protheus conta ainda com outros utilitários diversos, como o Diff (utilizado para comparação de arquivos texto) e Dump (utilizado para edição de arquivos binários).

Nomenclaturas Utilizadas

Estas são as principais nomeclaturas utilizadas no Advanced Protheus:

Build: Versão completa do sistema com seus executáveis, Dll’s e RPO completo. O build do sistema pode ser identificado através da opção Miscelâneas | Sobre dentro dos módulos do sistema.

RPO: É o arquivo binário de repositório de APO’s, com o código AdvPl.

Patch: Arquivo binário semelhante ao repositório contendo apenas atualizações de APO’s, correções disponibilizadas pela Microsiga Software S.A., que será aplicado no repositório através do IDE.

Versão Master:  Mesma definição de build porém neste caso a versão será utilizada como referência para a geração de atualizações do sistema (patch’s). Quando gerada, a versão é encaminhada a todos os envolvidos em processos de implantação/utilização do sistema via correio ou disponibilizada no site de FTP do Protheus.

  • A definição dos nomes dos arquivos dos repositórios de APO's e Patch´s seguem o mesmo padrão (diferenciando-se apenas na extensão Patch=.PAT e repositório=RPO) e é efetuada da seguinte maneira AP12345.RPO:

1 – (D)bf, (T)op, (A)ds, (B)trieve, (C)Tree;

2 – (P)ortuguese, (E)nglish, (S)panish;

3 – Versão;

4 – Versão;

5 – Versão;

Por exemplo, APBP609.RPO será um repositório de APO's para base de dados BTrieve, idioma Português e versão 609.

Devido à sua divisão em camadas, a tecnologia Protheus permite montar o ambiente de execução com diferentes topologias, priorizando a execução, o tráfego de rede ou os recursos individuais das máquinas existentes, o que torna o processamento distribuído. Essa é uma das grandes vantagens da tecnologia Protheus.

Características e Possibilidades de Topologias de Rede

  • Pode-se manter um ou mais servidores de aplicação do Protheus (Protheus Server).

  • Um Protheus Server pode estar na mesma máquina que o gerenciador de banco de dados.

  • Máquinas melhores ou com mais recursos podem ter um Protheus Server sendo executado localmente (na estação) visando priorizar o processamento local. Porém há um aumento do tráfego de rede entre o gerenciador de banco de dados e o Protheus Server local.

  • Do mesmo modo, pode-se executar servidores remotamente priorizando o processamento de uma ou mais estações.

  • Utilização do protocolo TCP-IP para as conexões. Na versão AP5 pode-se utilizar também o protocolo NAMED PIPES.

  • Pode-se disponibilizar conexões via Internet através da montagem de um Web Server na empresa ou através de provedores de acesso (como a UOL e o ZAZ). Neste caso, o Protheus Server pode ser executado no provedor ou na empresa utilizando uma LP para a conexão ao provedor de acesso.

  • A Internet é  utilizada apenas como o meio de comunicação, ou seja, a conexão TCP-IP entre o Remote e o Protheus Server. Além da segurança oferecida pelo sistema Advanced, a segurança deverá ser oferecida pela conexão. Por isso, é aconselhável que a máquina onde o servidor Web esteja sendo executado não seja o mesmo do servidor da banco de dados. 

  • O Protheus Server também pode ser executado como um servidor Internet, HTTP e/ou FTP.

  • Pode-se manter uma página para o download do Remote, de modo que os usuário remotos possam efetuar o download para conectar-se e utilizar o sistema. Na versão AP6 pode-se configurar o Remote para se atualizar automaticamente a partir do Protheus Server sendo executado como um servidor FTP.

  •  A definição da melhor topologia para execução é um passo importante da implementação da tecnologia Protheus, pois influenciará totalmente na performance. O maior tráfego de rede está localizado entre o Protheus Server e o Banco de Dados, já que o tráfego entre o Protheus Server e o Remote limita-se às informações para montagem de telas e controle de teclado e mouse. Desta forma, dependendo do tipo e da velocidade da conexão, pode se tornar inviável manter um Protheus Server em uma cidade conectado ao banco de dados em outra.  Por outro lado, caso existam muitas conexões nesta outra cidade, ou caso estas conexões executem processamentos pesados, priorizar o processamento disponibilizando um Protheus Server para ser executado localmente nesta cidade pode ser uma boa solução.

Balanceamento de Carga entre Servidores (LoadBalance)

Introdução

Quando existe uma grande quantidade de usuários que utilizam o sistema e o servidor não possui uma configuração ideal para comportar todos, mas há mais de um servidor disponível, pode-se configurar um esquema de balanceamento de carga para que nenhum servidor fique sobrecarregado e comprometa assim o desempenho da rede e do servidor.

Para que isto seja possível, “nomeamos” um servidor intitulado de “servidor Master” que será o responsável por administrar o balanceamento, além de comportar conexões também.

O balanceamento é feito por proporção, ou seja, se tivermos 60 usuários e definirmos que o servidor Master terá 10 conexões, o servidor Server2 20 e o servidor Server3 30, a proporção aqui é de 1:2:3, ou seja, a cada 1 usuário “pendurado” no servidor Master, 2 entrarão no Server2 e 3 no Server3. Ficaria assim:

#

Usuário

Servidor

01

João

Master

02

Karla

Server2

03

Paulo

Server2

04

Mário

Server3

05

Karina

Server3

06

Daniel

Server3

07

Rosana

Master

Configurando o Servidor Master

O único “ap5srv.ini” que será alterado com as configurações abaixo é o do servidor master, pois é ele quem administrará o balanceamento de carga. Todos os usuários se conectarão inicialmente ao servidor Master, e é este quem efetuará o balanceamento de carga para os outros servidores. Nos “ini’s” dos outros servidores será alterado apenas o parâmetro “rootpath”, para que eles peguem a mesma base de dados do servidor master. As seções que devem ser alteradas são estas abaixo:

[ServerNetwork]

Servers=Master,Server2,Server3

  • aqui deve ser informado o nome das seções para cada servidor, que serão configuradas abaixo.

[Master]

(Parte 1 de 140)

Comentários