É inegável a importância que os Web Services adquiriram como meios para o intercâmbio de informações dentro das organizações. Interligando sistemas construídos nas mais variadas plataformas (como .NET, Java, PHP, Delphi, apenas para citar alguns exemplos), estes componentes permitiram a transferência em tempo real de dados entre diferentes aplicações.

Importante destacar que este processo de integração entre sistemas não ficou recluso a soluções implantadas numa Intranet, com os Web Services possibilitando inclusive o compartilhamento de informações entre companhias. Tudo isso foi possível graças à forte padronização em torno deste tipo de tecnologia.

Enfatizando a adoção de padrões abertos como SOAP (Simple Object Access Protocol) e, mais recentemente, de modelos de desenvolvimento como REST (sigla do inglês “Representational state transfer”, com este último privilegiando formatos como JSON e XML), os Web Services são hoje presença marcante na arquitetura de software de companhias dos mais variados segmentos. A plataforma .NET oferece desde os seus primórdios suporte à construção de serviços, com isto acontecendo num primeiro momento através do uso tecnologia ASP.NET (com o desenvolvimento de Web Services baseados em SOAP) e, nos dias atuais, por meio da criação de soluções baseadas nas tecnologias WCF e Web API.

Independentemente da forma como um serviço é implementado, é praticamente certo que em diversos momentos de sua vida útil surgirá a necessidade de se monitorar a forma como o mesmo é utilizado. Este tipo de trabalho envolverá pontos como o conteúdo das requisições enviadas ao mesmo, a origem dessas solicitações, dentre outros aspectos. Embora um Web Service possa ser adaptado para que também desempenhe estas tarefas, o uso de uma aplicação externa com tais capacidades contribuirá para que o serviço em questão não fuja do escopo que justificou a sua concepção.

O utilitário Fiddler (http://www.telerik.com/fiddler) representa um bom exemplo de ferramenta com funcionalidades que possibilitam o monitoramento de serviços. Disponibilizado gratuitamente pela empresa Telerik, este aplicativo pode também ser utilizado em verificações envolvendo Web sites. O aplicativo Fiddler conta com recursos que viabilizam ações como:

  • O debugging/depuração de requisições enviadas a uma aplicação (site ou serviço). Estas solicitações podem ter origens diversas, como dispositivos móveis e softwares instalados em sistemas convencionais como Windows, Mac e Linux;
  • A manipulação de sessões de usuário, com a alteração do conteúdo de requisições e respostas no padrão HTTP;
  • Testes de segurança e performance;
  • A customização das funções de monitoramento, a partir da implementação de extensões baseadas no .NET Framework.

O objetivo deste artigo é demonstrar como esta ferramenta pode ser utilizada no monitoramento de Web Services. Para isto, será utilizada uma aplicação .NET construída sob o framework Web API em conjunto com a versão 4.4.9.3 do utilitário Fiddler.

Monitorando um Web Service

O Web Service que servirá de base para a demonstração de uso do Fiddler foi implementado em outro artigo que escrevi para o portal Devmedia, no qual foi abordada a implementação de serviços RESTful empregando a tecnologia Web API. O download da solução em que consta tal serviço poderá ser feito acessando o link://www.devmedia.com.br/asp-net-web-api-implementando-servicos-restful/31024

Do ponto de vista prático, o serviço mencionado irá retornar o balanço comercial (exportações e importações por país) de uma empresa hipotética nos anos de 2012 e 2013. Este Web Service faz parte de um projeto chamado TesteWebAPI.Services e será acessado via requisições HTTP do tipo GET, tomando como base o endereço descrito a seguir (em que “endereco-site” corresponde ao local em que a aplicação Web API está hospedada, com “{ano}” indicando o período/ano para a obtenção dos dados):

http://endereco-site/balanco/paises/{ano}

A execução deste serviço será feita a partir do Visual Studio Professional 2013. No computador em que os testes foram realizados a IDE assumiu a porta “60913” para a hospedagem do Web Service; este número pode variar, já que o valor citado corresponde a uma porta disponível no momento em que o projeto TesteWebAPI.Services foi gerado. Levando em conta estes aspectos, o acesso aos dados de 2012 aconteceria por meio do seguinte link:

http://localhost:60913/balanco/paises/2012

Após estas considerações, o primeiro passo para demonstrar a utilização da ferramenta Fiddler consiste em iniciar a execução do projeto TesteWebAPI.Services através do Visual Studio.

Com o Web Service já ativo, a próxima tarefa será acessar o utilitário Fiddler (como indicado na Figura 1). Conforme é possível notar, inúmeras requisições são listadas no lado esquerdo desta ferramenta; como nenhum filtro foi habilitado, o Fiddler irá capturar quaisquer requisições e respostas HTTP processadas pelo computador no qual o mesmo foi instalado.

Acessando
o utilitário Fiddler

Figura 1: Acessando o utilitário Fiddler

Para filtrar então as respostas, acessar a “Filters” e habilitar a opção “Use Filters”. No segundo campo da seção “Hosts” selecionar “Show only the following Hosts”, digitando na caixa de texto logo abaixo o valor “localhost:60913”. Os procedimentos descritos neste parágrafo podem ser observados na Figura 2.

Ativando
um filtro dentro do utilitário Fiddler

Figura 2: Ativando um filtro dentro do utilitário Fiddler

Por fim, será necessário ainda excluir todas as entradas que foram capturadas pelo utilitário Fiddler. Isto será feito acessando a partir do botão “Remove sessions from the Web Session list” a opção “Remove all” (Figura 3).

Removendo
todos os dados capturados anteriormente

Figura 3: Removendo todos os dados capturados anteriormente

Acessando o balanço comercial para o ano de 2012 via Google Chrome e observando o resultado no Fiddler, será possível visualizar a resposta em XML gerada pelo Web Service (Figura 4).

Requisição
gerada a partir do Google Chrome

Figura 4: Requisição gerada a partir do Google Chrome

Um segundo teste pode ser realizado por meio do Internet Explorer. A resposta será gerada agora no formato JSON, conforme se observa na Figura 5.

Requisição gerada a partir do Internet Explorer

Figura 5: Requisição gerada a partir do Internet Explorer

É possível também gerar requisições dentro do próprio Fiddler. Isto pode ser feito acessando a aba Composer e indicando dentro de “Parsed” o endereço para se consumir os dados desejados; ao se acionar o botão “Execute” uma nova solicitação será enviada ao Web Services que se está monitorando (Figura 6).

Requisição gerada a partir do próprio Fiddler

Figura 6: Requisição gerada a partir do próprio Fiddler

Conforme demonstrando ao longo deste artigo, o utilitário Fiddler pode contribuir em muito na monitoração de Web sites e serviços. Capturando inclusive o conteúdo de repostas geradas por uma aplicação, esta ferramenta possibilita uma análise detalhada de como o sistema em questão se comporta em um contexto envolvendo as mais diversas situações.

Espero que o conteúdo aqui apresentado possa ser útil no seu dia a dia.

Até uma próxima oportunidade!