Versões comparadas

Chave

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

...

Pre-requisitos


  1. Configuração da infraestrutura para fornecer um nome de rede, dominio ou sudominio para cada Tenant. 
    Ex.: cliente1.totvs.com.br, cliente2.totvs.com.br, clienteN.totvs.com.br
    Todos estes direcionando para o mesmo ambiente de instalação.
  2. Utilizar o configurador global.
  3. Utilizar o TOTVS Update.


Informações
titleImportante

As configurações de Portal e HOST são totalmente independentes, ou seja, uma não implica absolutamente nada na outra. Portanto pode-se utilizar somente o multi tenancy do portal, sem nenhuma configuração adicional no host.


Configurando o HOST como Multi Tenancy


  1. Fazer a instalação do Server do RM no servidor e configurá-lo como servidor de atualização conforme documentação disponível neste link.
  2. Criar um alias de banco para cada Tenant e dar um nome que possa ser inserido em um domínio, subdomínio ou nome de recurso de rede.
  3. Criar o arquivo de configuração global contendo a tag SubDomainMask respeitando os seguintes critérios:
    Vamos supor que você possui dois Tenants onde seus respectivos Alias são: cliente1 e cliente2.
    - Se o seus subdomínios forem: cliente1.empresa.com e cliente2.empresa.com então a tag SubDomainMask deve ser [ALIAS].empresa.com
    - Se o seus domínios forem: www.cliente1.com e www.cliente2.com então a tag SubDomainMask deve ser www.[ALIAS].com
    - Se o seus nomes de rede forem: cliente1 e cliente2 então a tag SubDomainMask deve ser somente [ALIAS]
  4. Os arquivos de .config de cada aplicação devem conter apenas a tag configpath, conforme documentação acima relacionada.
  5. Seguem exemplos de como devem ficar os arquivos de configuração: RM.AliasManager.exe.configRM.exe.configRM.Host.exe.configConfiguracaoRM.config
  6. As tags UpdateServerServicesHostName devem direcionar para um endereço padrão

    ou para qualquer um Tenant

    válido, pois não faz nenhuma diferença, por ser uma tag relacionada à ambiente e infraestrutura.

    Aviso
    titleAtenção

    Especificamente para a tag ServicesHostName recomendamos utilizar um endereço válido que exponha os serviços, mas sem um tenant específico.

    Exemplo: tenant.dominio.com

    Ao utilizar o WSDL é importante que o cliente de consumo, SOAP UI por exemplo, consiga obter uma resposta deste endereço, mas o cliente deverá obrigatoriamente trocar o tenant pelo nome correto do seu Alias para consumir o serviço.

    Image Added


    Ao adicionar o WSDL no SOAP UI, por exemplo teremos o seguinte nas requisições:

    Image Added


    O trecho tenant deve ser trocado pelo nome do Alias que representa o tenant do cliente.  

    Não é possível expor WSDLs específicos por tenant.

  7. Os arquivos acima devem ficar no diretório de instalação do RM (RM.Net) no servidor.
  8. Feito isso os domínios, subdomínios ou nomes de rede devem ser criados de forma compatível com a configuração acima.
  9. Feito isso basta acessar normalmente as URLs de serviço, como por exemplo:
    1. http://empresa1.totvs.com.br:8051/wsUpdate  - Este para baixar o SmartClient e utilizar já com o alias correto de forma transparente.
    2. http://empresa1.totvs.com.br:8051/wsReport  - Este para gerar relatórios via web service.
    3. Após baixar o Smart Client, basta executá-lo que ele já estará configurado corretamente para o Tenant correto.

Configurando o Portal Corpore.NET e FrameHTML como Multi Tenancy


  1. Fazer a instalação do Portal RM no servidor.
  2. Criar um alias de banco para cada Tenant e dar um nome que possa ser inserido em um domínio, subdomínio ou nome de recurso de rede.
  3. Em todos os alias será necessário deixar em branco o parâmetro URL do Portal em Parâmetros Globais.
  4. Configurar a tag SubDomainMask nos arquivos Web.config dos diretórios Corpore.Net e FrameHTML respeitando os seguintes critérios:
    Vamos supor que você possui dois Tenants onde seus respectivos Alias são: cliente1 e cliente2.
    - Se o seus subdomínios forem: cliente1.empresa.com e cliente2.empresa.com então a tag SubDomainMask deve ser [ALIAS].empresa.com
    - Se o seus domínios forem: www.cliente1.com www.cliente2.com então a tag SubDomainMask deve ser www.[ALIAS].com
    - Se o seus nomes de rede forem: cliente1 cliente2 então a tag SubDomainMask deve ser somente [ALIAS]
  5. A Tag dos arquivos web.config devem ficar desta forma, por exemplo:  <add key="SubDomainMask" value="[ALIAS].totvs.com" />
  6. A Tag FrameHtmlUrl do web.config do Corpore.Net deve ser preenchida normalmente, sem se preocupar com o tenant, por exemplo: <add key="FrameHtmlUrl" value="http://localhost:8080/RM" />
  7. Feito isso basta acessar os portais normalmente. O seletor de alias não estará mais disponível para selecionar o Tenant, pois o mesmo será resolvido de forma transparente.


Informações
titleFacilidade!

Para adicionar um novo tenant no ambiente de instalação, basta criar o Alias de banco e criar um dominio, subdomínio ou nome de rede que respeite as regras definidas no parâmetro SubDomainMask!!

Informações
titleImportante

As configurações de Portal e HOST são totalmente independentes, ou seja, uma não implica absolutamente nada na outra. Portanto pode-se utilizar somente o multi tenancy do portal, sem nenhuma configuração adicional no host.


Como funciona?



Com o ambiente configurado, o Portal Corpore.NET, FrameHTML, Web Services (somente expostos pelo HOST, conforme recomendado) e RM.exe farão a escolha do Tenant de forma transparente. Exemplo:

  • Criamos apenas UMA instalação do RM e configuramos a tag SubDomainMask com a informação [ALIAS].totvs.com.br nos arquivos de confguração, confirme orientação acima.
  • Neste exemplo considero que temos os portais e o servidor de aplicação (HOST) instalado no ambiente.
  • O primeiro cliente vai utilizar o ambiente, então chamaremos ele de cliente1.
  • Criamos um alias de nome cliente1 no ambiente.
  • Criamos um subdomínio público, direcionado para o ambiente de instalação, chamado cliente1.totvs.com.br.
  • O cliente agora pode acessar o endereço http://cliente1.totvs.com.br:8051/wsUpdate para baixar o SmartClient.
  • O SmartClient não dará opção para selecionar alias, pois será resolvido de forma transparente.
  • Os WebServices podem ser listados através do endereço http://cliente1.totvs.com.br:8051/wsPageIndex.
  • Não será necessário configurar nenhum alias Default.
  • O portal pode ser acessado pelo endereço http://cliente1.totvs.com.br/Corpore.Net e também não terá opção para selecionar alias.
  • O segundo cliente vai utilizar o ambiente, então chamaremos ele de cliente2.
  • Criamos um alias de nome cliente2 no ambiente.
  • Criamos um subdomínio público, direcionado para o ambiente de instalação, chamado cliente2.totvs.com.br.
  • Basta isso e o cliente2 pode acessar da mesma forma que o cliente1, porem com o endereço cliente2.totvs.com.br.
  • Em resumo, os dois clientes estão utilizando o mesmo ambiente de forma tranparente e sem a necessidade de se preocupar em selecionar o alias.


Informações

Os servidores de portal e servidor de aplicação (HOST) não precisam ser os mesmos, basta fazer as configurações devidas em ambientes separados e criar os sudomínios dirrecionando-os corretamente.