Configurando o Application Server como servidor Web para o SmartClient HTML
A partir da build 131227A o Application Server responde nativamente como um servidor Web, fornecendo segurança e escalabilidade ao ambiente Cloud do ERP TOTVS.
A seguir demonstraremos a configuração, de fato muito simples, deste ambiente.
Requisitos
- O ambiente do ERP TOTVS previamente configurado;
- Copiar para a pasta do Application Server o arquivo webapp.dll (windows) ou webapp.so (linux).
Editando o arquivo de configuração do Application Server
Sendo o administrador do ambiente, edite o arquivo de configuração appserver.ini.
Importante:
Após a configuração do arquivo será necessário reiniciar o Application Server para que a camada Web seja devidamente inicializada.
1 - Porta para o acesso HTTP
Indica a porta da onde o servidor ira disponibilizar o acesso ao SmartClient HTML.
[WEBAPP] port=8080
2 - Configuração do ambiente HTTPS (camada de segurança)
Caso o cliente opte por utilizar conexões HTTP seguras, é necessário a configuração dos certificados.
Para isso indique o método que será usado e o caminho para o arquivo de certificado e chave.
[WEBAPP] port=8080 ssl_method=SSL/TLS ssl_certificate=C:\TOTVS\certificate.pem ssl_key=C:\TOTVS\certificate.key
3 - Configuração para descriptografar o protocolo
Caso o cliente opte por descriptografar o protocolo (necessário para emulação de carga do sistema), é necessário desabilitar a chave obfuscate_protocol.
[webapp] obfuscate_protocol = 0
Ao efetuar essa configuração, os dados trafegados são passíveis de leitura (sniffing)
4 - Configuração para controle de acesso HTTP (CORS)
Caso o cliente opte por permitir que o Smartclient HTML seja acessado por um domínio diferente, é necessário informar a chave httpheaders_options.
Essa chave deve ser informada em formato JSON.
Quando não for definida esta chave, o Smartclient HTML só será acessado por páginas web do mesmo domínio (default).
Para especificar um domínio diferente, a chave httpheaders_options deve conter a informação "Access-Control-Allow-Origin".
- httpheaders_options = {"Access-Control-Allow-Origin": "*"}, o Smartclient HTML será acessado por páginas web de qualquer domínio.
- httpheaders_options = {"Access-Control-Allow-Origin": "http://exemplo.com"}, o Smartclient HTML será acessado por páginas web do mesmo domínio e por páginas do domínio http://exemplo.com.
[webapp] httpheaders_options = {"Access-Control-Allow-Origin": "http://exemplo.com"}
O Cross-origin resource sharing (CORS) (ou compartilhamento de recursos de origem cruzada), é a especificação de segurança implementada pelos browsers e que define meios pelo qual um navegador e um servidor web podem interagir para determinar se permiti ou não que seus recursos sejam acessados por uma página web de um domínio diferente.
5 - Configuração para listar os últimos parâmetros iniciais executados em TOTVS|SmartClient HTML
Caso o cliente opte em listar os últimos parâmetros iniciais executados em TOTVS|SmartClient HTML, é necessário habilitar as chaves "LASTMAINPROG" e "ENVSERVER".
Quando não for atribuido valores as chaves, serão carregados os valores (default) dos parâmentros.
[webapp] LASTMAINPROG = SIGAADV,SIGAFIN,SIGAEST ENVSERVER = MSSQLP11,MSSQLP12,MSSQLTST
6 - Configuração para carregar os parâmetros de linha em modo implícito
Caso o cliente opte em listar os parâmetros de linha de modo oculto( implícito ), é necessário habilitar a chave "HideParamsForm", se executado simultaneamente com modo "explícito" a prioridade sera ele, ou seja, a aplicação ignora o modo implícito.
O programa e ambiente a ser executado será sempre o primeiro da lista dos parâmetros "LASTMAINPROG" e "ENVSERVER".
Segue exemplo dos programas a ser executado de acordo com o bloco de código a baixo:
- SIGAADV - Programa Inicial
- MSSQLP11 - Ambiente no Servidor
[webapp] HideParamsForm = 1 LASTMAINPROG = SIGAADV,SIGAFIN,SIGAEST ENVSERVER = MSSQLP11,MSSQLP12,MSSQLTST
Tela de parâmetros do Smartclient HTML
Ao exibir corretamente a página de parâmetros, o ambiente já estará devidamente configurado.
Tela de login do Smartclient HTML