Do que trata o artigo

Neste artigo veremos como o Windows Server AppFabric pode nos ajudar a construir aplicações mais robustas, performáticas e escaláveis. Entenderemos melhor esta tecnologia e veremos diversas funcionalidades que ela traz para hospedagem e monitoramento de serviços WCF, workflows WF e para caching de dados. Veremos também como utilizar seu módulo de cache na prática, através de um componente facilmente plugável a qualquer aplicação .NET, seja ela uma aplicação já existente ou nova.

Para que serve

O Windows Server AppFabric se agrega ao Windows Server, tornando mais completa a sua função de servidor de aplicação. Sem ele, tínhamos que criar mecanismos de hospedagem para serviços WCF e workflows WF, bases de persistência e de acompanhamento de execução (tracking) de workflows WF e outras funcionalidades que nem sempre eram tarefas simples. Com o AppFabric temos todos esses recursos ao alcance. Outra funcionalidade agregada é o seu módulo de cache de dados. A ideia principal do cache é a não repetição de computações que sempre produzem o mesmo resultado. Ao invés de repetir, devemos realizar a computação uma vez, armazenar o seu resultado em cache e utilizá-lo sempre que necessário. Desta forma ganhamos performance e diminuímos a carga de trabalho (workload) nos recursos onde estas computações são realizadas, como por exemplo, um servidor de banco de dados.

Em que situação o tema é útil

Aplicações que possuem em sua composição serviços WCF ou workflows WF podem se beneficiar de toda uma plataforma criada especificamente para a hospedagem, gerenciamento e acompanhamento do ciclo de vida, providos pelo AppFabric. Já um mecanismo de cache é útil em praticamente qualquer tipo de aplicação, seja ela um web site, uma aplicação Windows desktop, um serviço ou mesmo um workflow que consuma serviços. Para aplicações web, o uso do cache é ainda mais importante, já que a performance e a escalabilidade sempre são requisitos de alta prioridade. Para arquiteturas orientadas a serviço (SOA) o cache também é extremamente útil, pois neste tipo de arquitetura, muitas vezes são consumidos serviços que expõem funcionalidades e/ou dados de aplicações legadas, que não necessariamente foram projetadas para receber um grande volume de requisições.

Resumo do DevMan

Iniciamos este artigo contextualizando o Windows Server AppFabric e detalhando a sua funcionalidade para caching de dados. Neste ponto são apresentadas diversas funcionalidades cobertas pelo AppFabric Caching Services, sua organização e estrutura. Em seguida revemos um componente para cache apresentado em uma edição anterior da revista e partimos para a prática, apresentando o processo de instalação e configuração do AppFabric e a alteração do componente para sua utilização.

No artigo AOP e Design-Patterns na Prática – Criando um componente para cache facilmente plugável, publicado na edição 69 da .NET Magazine, foi falado sobre a utilização de AOP (Aspect Oriented Programming) para a criação de um componente para cache de dados, facilmente plugável a qualquer aplicação .NET. Nesse artigo, também foi apresentado o framework PostSharp, que facilita a utilização da AOP no .NET e durante a criação do componente também foram abordados alguns Design Patterns, que foram empregados com o objetivo de torná-lo mais extensível.

Neste artigo será mostrado que os designs patterns aplicados anteriormente realmente valeram a pena, pois o componente criado anteriormente será estendido sem dificuldades, utilizando-se agora da mais nova tecnologia para Cache disponibilizada pela Microsoft, o módulo AppFabric Caching Services do Windows Server AppFabric.

Nota do DevMan

O WF, ou Workflow Foundation, faz parte do .NET Framework e disponibiliza aos desenvolvedores um modelo de desenvolvimento baseado em workflows de processos. Em um sistema baseado em WorkFlows, suas tarefas são realizadas em atividades, que são executadas na ordem definida pelo workflow, que nada mais é do que uma sequência de passos que estão conectados de forma lógica.

Como será visto mais adiante, o Windows Server AppFabric é composto por dois módulos, o AppFabric Caching Services e o AppFabric Hosting Services. Este artigo aborda a fundo apenas o primeiro (AppFabric Caching Services), já que o assunto principal é cache.

Nota do DevMan

Simplificadamente, a AOP refere-se à injeção de aspectos (trechos de código / comportamentos comuns) a um código existente, de forma que seu comportamento seja alterado, porém que seu código original fique intacto. Como exemplo, um método que recupere informações de um banco de dados. É possível através da AOP incluir funcionalidades de log, tratamento de exceções, cache de dados, tracing e outros, sem alterar uma linha sequer do código já existente. Com isso se consegue uma melhor separação de responsabilidades e, consequentemente, menores esforços em evoluções futuras.

Windows Server AppFabric

O Windows Server AppFabric é o resultado da junção de dois projetos anteriores da Microsoft, o Dublin e o Velocity, tornando-se agora uma única extensão gratuita para a função servidor de aplicativos do Windows Server. O AppFabric adiciona inicialmente duas funcionalidades ao servidor:

· AppFabric Caching Services: consiste em um conjunto de bibliotecas que permite trabalhar com o seu mecanismo de cache de dados e toda uma estrutura que serve para armazenar e gerenciar os dados em memória de forma eficiente. Diversos tipos de aplicações podem se beneficiar deste recurso, especialmente as aplicações ASP .NET;

· AppFabric Hosting Services: Provê funcionalidades para hospedagem e monitoramento de aplicações construídas com Windows Communication Foundation e Windows Workflow Foundation.

O AppFabric Hosting Services não provê toda essa infraestrutura de hospedagem por si só. Ele conta com o IIS (Internet Information Services) e também com o WAS (Windows Process Activation Services), adicionando algumas extensões de gerenciamento a eles. O WAS gerencia a ativação e o ciclo de vida de processos que contém aplicações que hospedam serviços WCF, de forma que seja possível a utilização de protocolos como o Net.TCP e não mais somente o HTTP. Já o IIS tem sido usado com frequência para hospedagem de serviços WCF, que por sua vez podem expor um workflow WF.

Usando estas extensões, um administrador pode fazer coisas como setar configurações WCF, iniciar e parar serviços, examinar os seus endpoints, suspender e continuar ou terminar instâncias específicas de um workflow, por exemplo.

Outra característica bastante interessante do AppFabric Hosting Services é que ele provê uma base de persistência de workflows WF e também uma base de monitoramento, onde podem ser gravadas informações que permitem acompanhar o detalhamento da execução de um workflow. Ambas as bases de dados já são pré-configuradas e disponibilizadas por ele, o que antes eram tarefas do desenvolvedor.

Além disso, tanto o AppFabric Hosting Services quanto o AppFabric Caching Services contam também com uma ferramenta de gerenciamento padrão, que é o Windows PowerShell. O PowerShell é uma versão aprimorada do prompt de comando, voltada para administração de sistemas, que possibilita a execução de comandos e scripts de automatização. Ele acompanha o Windows 2008 e também pode ser baixado gratuitamente para versões anteriores do Windows.

A Figura 1 apresenta um esquema que ilustra a estrutura do AppFabric dentro do Windows Server, como foi descrito, e na Figura 2 o dashboard adicionado ao IIS pelo AppFabric Hosting Services. Através deste dashboard pode-se acompanhar os workflows ativos, ociosos e suspensos que estão hospedados no servidor e também acompanhar as chamadas para serviços WCF que foram bem-sucedidas ou que tiveram erros. Em ambos os casos há a possibilidade de se ver dados consolidados, como os ilustrados na Figura 2, e também dados detalhados.

Figura 1. Estrutura do AppFabric no Windows Server

Figura 2. Dashboard adicionado ao IIS para monitoramento do AppFabric Hosting Services

Armazenamento e organização de dados no cache

O AppFabric Caching Services permite criar uma estrutura de cluster de servidores de cache. Isso significa que as aplicações que utilizam a funcionalidade de cache enxergam apenas um mecanismo de cache e o AppFabric gerencia e distribui as informações em um ou mais servidores que participam de um mesmo cluster. Dentro de cada servidor é possível ter um ou mais caches nomeados, que são unidades distintas de cache e que podem ter configurações distintas, como por exemplo, o tempo de expiração dos itens, o tamanho máximo de memória a ser utilizada pelo cache e o algoritmo utilizado para limpeza quando este tamanho é atingido. Cada cache nomeado pode conter uma ou mais regiões nomeadas, permitindo o agrupamento de um conjunto de dados. Os itens que são guardados em uma determinada região só podem ser obtidos posteriormente da mesma região. A chave dos itens é única por região.

Além das regiões, os itens também podem ser classificados com tags, que consistem em um conjunto de caracteres que classificam o item guardado no cache de alguma forma. Uma vez classificados, há a possibilidade de buscá-los por meio de uma ou mais tags.

...
Quer ler esse conteúdo completo? Tenha acesso completo