Um dos assuntos que tem recebido maior atenção por parte da comunidade técnica de desenvolvedores é: linguagens dinâmicas. Basicamente a pergunta a ser respondida neste contexto é: linguagens dinâmicas, valem a pena? A seguir listo algumas das principais vantagens apontadas por profissionais adeptos das mesmas.
- Expressividade: característica marcante das linguagens dinâmicas, consiste no fato de permitir a construção de soluções que apresentem código “menos ruidoso”. O código apresenta a solução de forma simples e direta.
- Tipagem dinâmica: linguagens dinâmicas de forma geral não são fortemente tipadas (como é o caso do C#, por exemplo). O processo de tipagem dos dados é realizado em tempo de interpretação pelo MOP (MetaObject Protocol). Existem algumas linguagens dinâmicas (caso do Groovy) que muito embora pertençam a este paradigma, necessitam tipar os dados estaticamente, mas estas são excessões a regra.
- Produtividade: evidentemente que, se a linguagem permite escrever soluções diretas e com código limpo, o desenvolvedor tende a ser ágil e produtivo.
- Aprendizado: é factual que a curva de aprendizado com linguagens dinâmicas é diminuida consideravelmente. Isso se deve principalmente ao primeiro item apresentado aqui, isto é, a expressividade.
Estas e algumas outras características tem feito com que linguagens e plataformas tradicionalmente estáticas, tenham expandido seus recursos e estruturas para suportar dinamismo (caso da plataforma .NET, por exemplo). Em artigos futuros falaremos sobre o dinamismo proporcionado pela plataforma .NET.
O fato é: cada vez mais, desenvolvedores web teem procurado conhecer e utilizar linguagens dinâmicas em seus projetos. Particularmente, muito embora reconheça todos os benefícios deste modelo de programação e utilize em grande escala uma das principais linguagens deste modelo em projetos web (a saber, Javascript), tenho algumas ressalvas em relação ao mesmo (isso pode ser discutido em outro momento, este texto não pretende defender ou criticar linguagens dinâmicas, longe disso).
A linguagem Ruby
Se uma linguagem pudesse ser escolhida para representar a categoria “linguagens dinâmicas”, certamente esta linguagem seria Ruby. Simples, dinâmica (obviamente) e com foco na produtividade ela ganha cada vez mais adeptos, principalmente no ambiente web.
Com o surgimento e a ampla adoção do framework Rails, Ruby tornou-se uma excelente alternativa para a escrita de aplicações web. Evidentemente que, como tudo na web, arquivos Ruby precisam ser hospedados. Por inércia, é preciso que um container de páginas web atue como interpretador dos mesmos.
Onde hospedar aplicações Ruby?
Ruby On Rails (ou simplesmente RoR) tradicionamente é hospedado em Windows ou Linux com o container Apache, entretanto, exitem algumas situações em que desenvolvedores gostariam de manter suas aplicações web em um ambiente homogêneo, de preferência, sob a gerência de um mesmo container.
Este texto pretende ser um vetor que indica um novo caminho para “hostear” aplicações web, isto é, Ruby applications em ambiente Windows com Internet Information Services (IIS).
Ruby no IIS – Instalando
Neste texto, a partir daqui, apresentaremos o processo de instalação e configuração do pacote RoRIIS no Internet Information Services.
Você pode encontrar o pacote de instalação do pacote para executar RoR no IIS no Codeplex clicando aqui. O pacote funciona com base na extensão FastCGI (escrevi um artigo recentemente apresentando a mesma aqui mesmo no site. Se não sabe do que se trata, recomendo a leitura do mesmo, que pode ser realizada clicando aqui).
Após efetuar o download do arquivo instalador e executar o mesmo, você deverá estar visualizando uma tela semelhante a apresentada pela Figura 1.
Figura 1. Tela de instalação do RoRIIS
Ao clicar em “Next“, você receberá a tela de “Licence Agreement“. Basta concordar pressionando o botão “I agree“. A tela seguinte apresenta as opções sobre os componentes que você deseja instalar. Para este exemplo estão marcadas as duas opções disponíveis “Rails for IIS FastCGI” e “Ruby SQL Server Support” respectivamente, conforme apresentado pela Figura 2.
Figura 2. Tela de seleção dos componentes a serem instalados
Na tela seguinte você deverá indicar o caminho onde o instalador deverá buscar os arquivos da instalação do Ruby framework. Se você não possui Ruby instalado, você pode baixá-lo e instalá-lo clicando aqui. Para este exemplo, estou indicando o diretório Ruby da minha máquina “C:Ruby186“. A Figura 3 ilustra este processo.
Figura 3. Apontando o diretório da framework Ruby
O FastCGI precisa de acesso ao aplicativo Rails. Este aplicativo (geralmente) fica hospedado na pasta public dentro de Rails. Assim, ao clicar em “Next” você receberá a tela de configuração desta feature. Em meu caso, o caminho indicado é “C:railspublic“. Nesta tela você deve informar também se deseja realizar a configuração do módulo manualmente ou de forma automática. Em meu caso, estou utilizando a opção automática. A Figura 4 ilustra esse processo.
Figura 4. Informando ao FastCGI onde buscar a framework Rails
A etapa seguinte no processo de instalação consiste na geração do arquivo de log do site. Dois parâmetros são esperados neste momento: o nome do site que será criado e, na sequência, o endereço onde será gerado o log daquele site. A Figura 5 ilustra este processo.
Figura 5. Informando os dados para geração de log
Todo site dentro do Internet Information Services está associado a um pool. O pool de aplicativo é, em linhas gerais, um agrupador de URLs que direciona o roteamento das mesmas para um worker process. Assim, nesta tela, você estará configurando duas propriedades básicas do pool a ser criado: Nome e dados de acesso. Para a construção deste exemplo, estou mantendo as sugestões do instalador para ambas as opções, isto é, “ActiveSentryServer” para nome e “Network Service” para dados de identidade. A Figura 6 ilustra este processo.
Figura 6. Parametrizando o pool de aplicativo
A próxima etapa do processo de instalação se não é a mais importante é sem dúvida uma das mais importantes, pois trata da forma como o IIS irá gerenciar os processos criados para as requisições do FastCGI. São basicamente três informações: número de processos Ruby quando a aplicação é inicializada, taxa de incremento de processos e, por último, número máximo de processos na memória. Valor máximo para reciclagem de processos é outro parâmetro a ser configurado nesta tela. Os valores sugeridos neste exemplo são apresentados na Figura 7.
Figura 7. Configurando a gerência de processos do FastCGI
A tela seguinte solicita ao usuário que escolha o local de instalação do RoRIIS. Selecione o local indicado e clique em “Next”. A tela seguinte exibe então o processo de instalação e, no momento posterior, a tela com a mensagem de que a instalação foi completada com sucesso também. Se tudo correu conforme esperado, você deverá visualizar ao final uma tela semelhante a apresentada pela Figura 8.
Figura 8. O processo de instalação completo com sucesso
Por hoje é isso pessoal. No próximo post, veremos aspectos adicionais de configuração e, em seguida, criaremos uma aplicação Ruby de teste para testar a configuração.
Até lá!
Facebook
Twitter
Instagram
LinkedIn
RSS