Com a evolução tecnológica dos produtos da linha Datasul, os serviços do antigo Foundation Saúde estão sendo gradativamente migrados do Jboss 4 para o Tomcat 9.
Neste ponto é comum surgirem algumas dúvidas:
Sim. O cliente é livre para utilizar mais instâncias se tiver alguma necessidade em particular, mas tecnicamente é viável utilizar todos os serviços em uma única instância.
Este é um exemplo de como pode ser tratada a conexão da TISS (http com autenticação Basic) e PTU ON-LINE (https com certificado) sem precisar duplicar a instância:
Arquivo .../apache-tomcat/conf/server.xml:
Normalmente o arquivo terá um connector padrão, utilizado pelo menu Datasul e serviços da TISS:
...
<Service name="Catalina">
...
<Connector port="8180"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8170"
maxThreads="1600"
acceptCount="800"
enableLookups="false"
URIEncoding="ISO-8859-1"
maxParameterCount="1000"/>
...
<Engine name="Catalina" defaultHost="localhost">
...
<Host name="localhost" appBase="webapps" startStopThreads="20"
unpackWARs="true" autoDeploy="true">
...
</Host>
</Engine>
</Service>
...
Para viabilizar a conexão ao PTU ON-LINE com autenticação https e certificado, vamos adicionar um novo Service e Connector, com uma nova porta.
No seu Engine, ao invés de permitir acesso a todos os .war do ambiente, vamos manter a propriedade autoDeploy como false e mencionar explicitamente apenas os permitidos:
<!-- Novo Service isolado: apenas wars do PTU ON-LINE na porta 8190 -->
<Service name="Catalina-PTU">
<Connector port="8190"
maxHttpHeaderSize="8192"
maxThreads="100"
minSpareThreads="25"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
SSLEnabled="true"
clientAuth="false"
sslProtocol="TLS"
keyAlias="server"
keystoreFile="/opt/totvs/sqa_120/apache-tomcat/conf/chave.jks"
keystorePass="changeit" />
<Engine name="Catalina-PTU" defaultHost="localhost">
<Host name="localhost" unpackWARs="true" autoDeploy="false">
<Context path="/totvs-hgp-ptuonline" docBase="/opt/totvs/sqa_120/apache-tomcat/webapps/totvs-hgp-ptuonline.war" />
<Context path="/totvs-hgp-ptu-online-9200" docBase="/opt/totvs/sqa_120/apache-tomcat/webapps/totvs-hgp-ptu-online-9200.war" />
</Host>
</Engine>
</Service>
...
Para controlar o fluxo das requisições recebidas do mundo exterior, recomendamos que os clientes utilizem proxy reverso, que é uma prática comum em serviços publicados (não faz parte do produto Datasul).
Nas configurações das ferramentas de proxy reverso mais populares do mercado (Nginx e Apache), é possível criar regras utilizando a URL como critério de redirecionamento da requisição para o Tomcat do seu Datasul.
Seguindo os exemplos anteriores: