Como parte do lançamento do RAD Studio 11 Alexandria, anunciamos a disponibilidade de uma nova opção para implantar e licenciar o RAD Server, com o objetivo de simplificar a implantação para instalações que não requerem uma grande quantidade de solicitações REST.
Table of Contents
O que é RAD Server?
Antes de entrar em detalhes, deixe-me lembrá-lo do que é o RAD Server. É um mecanismo de servidor REST que permite desenvolver rapidamente endpoints REST, principalmente servindo JSON, usando Delphi ou código C ++ Builder baseado em FireDAC (ou outras camadas de acesso a dados). Resumindo, você cria pacotes complementares (BPLs), cada um registrando pontos de extremidade de URL adicionais e fornecendo uma implementação. Além disso, o RAD Server vem com vários serviços prontos para uso. Você pode ler mais em https://www.embarcadero.com/products/rad-server .
Por que RAD Server Lite?
O RAD Server requer um banco de dados backend, baseado em InterBase, e geralmente é implementado como um módulo DLL de servidor web para IIS ou Apache. Por esse motivo, uma implantação padrão requer:
- O servidor web e sua configuração do módulo RAD Server
- A implantação e configuração do servidor RAD
- Uma instalação do InterBase com uma licença de servidor RAD para fins especiais (uma licença que o usuário precisa registrar no dispositivo de destino para ativar)
Para o desenvolvimento, há muito oferecemos uma versão autônoma do servidor RAD, com base no servidor Indy HTTP, que oferece desempenho limitado, mas implantação muito mais fácil e a capacidade de ser executado no depurador (para que você possa depurar o código dos módulos do servidor RAD) . A versão de desenvolvimento não se destina e não está licenciada para implantação. Ele tem um limite no número de usuários que você pode criar e pode trabalhar com uma edição local do InterBase Developer (a licença para ele faz parte da licença do RAD Studio).
O RAD Server Lite (também conhecido como RSLite) oferece um modelo de implantação mais simples para servidores de teste e cenários que não exigem muito rendimento e oferece isso usando o mecanismo de banco de dados integrado InterBase, IBToGo, em vez do servidor completo e o combina com um modelo de licenciamento simplificado. O RSLite usa o mesmo binário da edição de desenvolvimento (que vem com o RAD Studio) junto com os binários IBToGo e um arquivo de comprovante de licença que você pode implantar com sua solução (não requer registro no computador em que o implanta).
Como ele usa um banco de dados integrado e o componente Indy HTTP Server, ele não pode atender ao mesmo número de solicitações por segundo de uma instalação completa normal do servidor RAD e não pode ser escalonado com vários front-ends do servidor RAD. Não adicionamos nenhuma limitação embutida no código, mas a arquitetura subjacente usada pelo RSLite tem uma escalabilidade muito mais limitada, mas esperamos que seja suficiente para muitos cenários de implantação simples – tendo em mente que a taxa de transferência também depende do código específico os módulos do seu servidor RAD são executados. Observe que, para implantação em um sistema público, recomendamos evitar expor o servidor RSLite HTTP diretamente, mas torná-lo acessível por meio de uma configuração de proxy, para que você ainda tenha um servidor web (como Apache ou IIS) fornecendo o contexto de segurança para o HTTPS de entrada chamadas e encaminhá-las para RSLite.
Pedindo uma licença
Agora, vamos aos aspectos práticos do RSLite. Primeiro, você precisa resgatar uma licença, algo que você pode fazer com qualquer licença Enterprise ou Architect para RAD Studio 11 (incluindo Delphi 11 e C ++ Builder 11). Tudo que você precisa fazer é visitar a página:
https://reg.embarcadero.com/srs6/promotion.jsp?promoId=572
e siga as instruções fornecidas: você precisará de sua chave de registro e conta EDN. O processo aqui não é apenas receber uma chave de licença para RSLite, mas um arquivo slip (uma licença armazenada em um arquivo .TXT) que você pode implantar junto com a instalação. Esta licença não tem limitações em termos de número de instalações (mas você não pode ter duas instâncias rodando na mesma máquina). Observe que o arquivo de licença precisa ser colocado em uma subpasta específica, ao contrário do que as informações gerais no site de resgate podem parecer implicar.
Implantando um projeto RAD Server Lite
Depois de obter a licença, como você implanta o RSLite? Existem duas considerações diferentes:
- Primeiro, você precisa criar uma configuração de implantação com RSLite, os pacotes de tempo de execução necessários e a implantação IBToGo (as etapas estão abaixo)
- Em segundo lugar, você precisa gerar um arquivo de banco de dados adequado para produção, compatível com a licença IBToGo – um banco de dados local criado pela edição RAD Server Developer não será compatível
Os arquivos para implantar
Em termos práticos, estes são os arquivos necessários para implantar uma solução RSLite (além dos pacotes de aplicativos e suas dependências):
- O executável RSLite, que é o mesmo da edição do desenvolvedor: EMSDevServer.exe disponível na pasta bin do RAD Studio (ou versão semelhante de 64 bits)
- Os pacotes de tempo de execução RAD Studio necessários, que incluem aqueles necessários para uma instalação mínima (listados aqui e disponíveis na pasta RAD Studio win32 ou win64 redist) mais qualquer outro pacote de tempo de execução exigido pelo código em seus módulos de servidor RAD:
- bindengine280.bpl
- dbrtl280.bpl
- emsclientfiredac280.bpl
- emsserverapi280.bpl
- FireDAC280.bpl
- FireDACCommon280.bpl
- FireDACCommonDriver280.bpl
- FireDACIBDriver280.bpl
- rtl280.bpl
- vcl280.bpl
- vcldb280.bpl
- vclFireDAC280.bpl
- vclimg280.bpl
- vclwinx280.bpl
- vclx280.bpl
- xmlrtl280.bpl
- Os arquivos de implantação do InterBase ToGo encontrados na pasta redist do documento público InterBase (por exemplo, C: / Usuários / Público / Documentos / Embarcadero / Interbase / redist / InterBase2020) nas subpastas win32_togo ou win64_togo – para Linux você pode encontrar o libibtogo.so arquivo na pasta redist do InterBase adequada
- Adicione o arquivo de licença obtido acima à pasta interbase / license (parte da configuração do IBToGo redist)
Tempo de execução MSVC
Observe também que, para executar o IBToGo (e também o RSLite usando IBToGo) em uma máquina Windows de destino, é necessário ter a biblioteca de tempo de execução do Visual C ++ 2013 instalada. Em uma máquina de desenvolvedor com RAD Studio, você provavelmente já o terá instalado. Em uma máquina de implantação de destino geral, no entanto, pode ser necessário instalá-lo depois de baixá-lo da Microsoft .
Criando o banco de dados de produção
Com essa configuração, você pode iniciar o RSLite executando o aplicativo EMSDevServer.exe. Se a máquina alvo tiver um cliente InterBase, no entanto, ela irá selecioná-lo como prioridade mais alta, e se o cliente InterBase for a edição Developer que vem com o RAD Studio, tudo funcionará, mas em uma configuração padrão do RAD Server Developer.
Você pode descobrir isso facilmente porque quando o servidor RAD é iniciado, ele informa se esta é uma configuração “RSLite” em seu log. As primeiras linhas serão semelhantes a:
{“Thread”: 19124, ”ConfigLoaded”: {“Filename”: ”[pasta] emsserver.ini”, ”Exists”: true}} {“Thread”: 19124, ”Licensing”: { “Lite”: true , ”Licensed”: true, ”LicensedMaxUsers”: 2}} {“Thread”: 19124, ”DBConnection”: {“InstanceName”: ””, ”Filename”: ”[folder] emsserver.ib”}}
Se o código está indicando que “Lite” está definido como falso, você pode precisar desativar manualmente o carregamento da biblioteca cliente InterBase gds32.dll (ou sua versão de 64 bits), geralmente encontrada em C: / Windows / SysWOW64 (se o cliente InterBase a biblioteca não pode ser encontrada, ela carrega o ibtogo.dll local – algo que tornaremos configurável em uma versão futura).
Agora, se você iniciar o RSLite (com a configuração adequada) e não houver nenhum arquivo emsserver.ini e nenhum arquivo de banco de dados emsserver.ib, ele solicitará que você crie um. Para que isso funcione, o RSLite precisa encontrar a configuração na pasta Object Repository do RAD Studio (ObjRepos na pasta do produto). A maneira mais fácil de fazer isso é copiar os arquivos em ObjRepos / en / ems em uma pasta com este caminho relativo de emsdevserver.exe: “../ObjRepos/en”. Em outras palavras, você precisa de uma pasta ObjRepost no mesmo nível da pasta que contém sua instalação RSLite
Nota: Isso não é necessário para cada implantação RSLite, apenas uma vez para gerar um banco de dados de produção que você pode copiar posteriormente nos computadores de destino como está. Na verdade, o banco de dados criado em um ambiente de desenvolvimento não é compatível com a implantação do RSLite.
Recomendo que você especifique como pasta de destino a mesma de sua implantação RSLite, para que o assistente crie um arquivo emsserver.ini e um arquivo de banco de dados emsserver.ib em sua pasta de implantação. Agora pegue a pasta inteira com RSLite, esses arquivos de configuração, os pacotes de tempo de execução e o IBToGo, incluindo a licença, e você terá tudo o que precisa para implantar em um computador Windows de destino.
Configuração de proxy
Como mencionei, não é recomendado expor o RSLite diretamente como um aplicativo da web público, devido às suas limitações em termos de proteção e criptografia. Eu recomendo usar uma camada de proxy, com um serviço dedicado ou usando um dos serviços da web populares como front end. No Apache, por exemplo, ao configurar um host virtual, habilitar HTTPS e redirecionar o tráfego para a instância RSLite com uma configuração como a seguinte:
[crayon-673fbf00aef8d525198806/]
Para Linux
Para Linux, você pode seguir etapas semelhantes às acima e tudo deve funcionar conforme o esperado. Como alternativa, você também pode considerar instalar o servidor RAD completo e não adicionar IBToGo à instalação:
-
- Instale o servidor RAD usando o ems_install.sh disponível na pasta de instalação do RAD (https://docwiki.embarcadero.com/RADStudio/Sydney/en/Configuring_Your_RAD_Server_Engine_or_RAD_Server_Console_on_Linux)
- Copie os arquivos IBToGo da pasta “redist” do Interbase para a pasta EMS no Linux (/ usr / lib / ems)
- Execute o EMSDevServerCommand e siga o assistente para criar o banco de dados EMS e o arquivo de configuração (observe que pode ser necessário executar o aplicativo via sudo para ter as permissões adequadas )
Atualizando para o Servidor RAD Completo
Como uma observação final, deixe-me lembrar a você que o RSLite tem um escopo limitado em termos de tráfego de solicitações de usuários que ele pode manipular. Se você precisar de largura de banda e taxa de transferência maiores, recomendamos implantar o servidor RAD completo.
Qualquer cliente com uma Enterprise Edition do RAD Studio, Delphi ou C ++ Builder recebe uma licença de implantação da versão completa de produção do RAD Server. Os clientes da Architect Edition recebem uma licença de implantação ilimitada (mas que ainda requer ativação para cada servidor em que você deseja implantar). Alternativamente, você pode entrar em contato com nossa equipe de vendas para um contrato RAD Server VAR, que permitiria a você distribuir o servidor RAD completo simplesmente implantando um arquivo de comprovante junto com seu aplicativo, para clientes ilimitados e sem a necessidade de registro.