Desenvolvimento - Web Services

Web Services: Comunique-se em Diferentes Plataformas

Descubra como os XML Web Services podem conectar suas diferentes plataformas.

por Wei Meng Lee



Pense nos primórdios do desenvolvimento da Web, quando criamos os primeiros sites Web e escrevemos as primeiras páginas em HTML. Você provavelmente se recorda de como essas páginas eram bonitas e de como ficava emocionado quando adicionava gráficos e animação. Não muito tempo depois, as pessoas podiam tornar essas páginas dinâmicas, personalizando seu conteúdo para usuários específicos. E, da noite para o dia, surgiu uma enorme quantidade de aplicativos Web, do clássico contador de páginas ao super inteligente site da Amazon.com, que mantém um registro de seus padrões de compra e prevê o que você comprará a seguir.

Hoje, você provavelmente já ouviu uma nova expressão — Web services — aplicada aos mesmos conceitos de aplicativos Web. Se você for como a maioria das pessoas, provavelmente ainda está tentando entender o que são Web services. A cada mês, esta coluna investigará novas capacidades de Web services e criará cenários que o ajudarão a determinar como utilizar Web services em sua empresa. Neste artigo, apresentarei os fundamentos dos Web services e o papel desempenhado pelo XML nessa área.

Nos últimos meses, você certamente ouviu falar sobre as qualidades do XML e sobre como essa linguagem vai mudar sua vida. Para avaliar a popularidade do XML, fiz uma busca por livros sobre XML no site Amazon.com; foram retornados nada menos que 300 títulos relacionados a XML. No entanto, quando nasceu, a linguagem XML foi provavelmente a mais incompreendida das linguagens de programação. As pessoas geralmente confundiam-na com uma extensão do HTML, a linguagem mais utilizada na criação de páginas Web. O HTML descreve como o texto é disposto em um documento, ao passo que o XML usa atributos e nomes de tags descritivos para descrever o conteúdo de um documento. Na verdade, para exibir o XML em um navegador Web, você precisa de uma folha de estilo para transformá-lo em HTML.

Apesar do indiscutível valor do HTML no que se refere à exibição de dados, ele não é um bom formato para a troca de informações. Imagine duas empresas trocando informações em documentos no formato HTML. Como o HTML não descreve o conteúdo de um documento, é difícil extrair informações relevantes do documento em questão. É por isso que o XML é crucial para os Web services.

Compreenda o XML

O XML é extremamente simples. Ele define as regras para marcação de um documento, o fechamento apropriado de tags, a distinção entre maiúsculas e minúsculas, o aninhamento correto de elementos etc. No entanto, o documento XML sozinho não é tão útil. Ele funciona juntamente com uma série de tecnologias que permitem que os programadores manipulem documentos XML acompanhando a especificação XML. Essas tecnologias incluem a imposição da estrutura do documento, como o DTD (Document Type Definition) e o XML Schema; recuperação de dados como o Xpath (XML Path), DOM (Document Object Model) e SAX (Simple API for XML); transformação de documentos como o XSLT (Extensible Stylesheet Language Transformation).

Cada tecnologia é responsável por executar uma tarefa específica. Por exemplo, o XML Schema consiste em um documento XML que reforça a estrutura de outro documento XML. O DOM e o SAX oferecem duas técnicas diferentes para recuperar informações de documentos XML e o XSLT facilita a transformação de documentos XML de uma estrutura para outra. A ampla disponibilidade dos analisadores XML também ajudou a aumentar o número de adeptos de XML. Os analisadores XML são programas que sabem como ler e escrever documentos XML. Eles podem extrair partes específicas de um documento ou validar documentos XML. Desse modo, permitem que os programadores manipulem documentos XML de forma relativamente fácil.

O XML é ideal para comunicação entre redes heterogêneas porque suas propriedades baseadas em texto tornam-o independente de plataformas. O SOAP (Simple Object Access Protocol) é a estrutura (framework) para a comunicação baseada em XML. O SOAP, um protocolo baseado em XML para troca de informações entre sistemas distribuídos, foi projetado para ser um protocolo simples e leve, a ser usado no acesso a objetos em servidores remotos através de mensagens XML. Uma mensagem SOAP consiste em um documento XML que contém informações a serem transmitidas de um sistema para outro. Por exemplo, você pode enviar uma mensagem XML para ativar uma chamada de função na máquina de destino. Quando a máquina de destino termina de processar a função, ela envia o resultado de volta à máquina de origem na forma de uma mensagem SOAP.

Você também pode usar o HTTP para transportar mensagens SOAP para o servidor de destino. O HTTP facilita o transporte de mensagens SOAP entre os sistemas porque os firewalls normalmente não bloqueiam o acesso à porta HTTP. E, ao transferir mensagens em XML baseado em texto, os servidores em execução em diferentes plataformas ainda serão capazes de se comunicar. Embora o SOAP costume fazer uso do HTTP como o protocolo de transmissão, ele também usa sem problemas protocolos como FTP, SMTP etc.

Utilize XML Web Services

Com o SOAP tratando o formato da mensagem, você pode concentrar sua atenção no fornecimento de um serviço que possa ser usado pelas partes interessadas. Por exemplo, os usuários já conferem os preços de ações em um site da bolsa de valores. No entanto, como geralmente eles só têm interesse em algumas ações, os programadores escrevem programas que busquem apenas as partes relevantes de uma página Web, extraindo as informações diretamente do HTML. Essa técnica é conhecida como raspagem de tela, e baseia-se em um encaixe rígido entre as páginas Web e o programa. Infelizmente, se o layout da página Web mudar, o programa precisará ser atualizado para extrair as informações de forma correta. Em virtude das constantes mudanças nas páginas Web, você pode perceber por que essa não é a melhor maneira de reunir dados de um site Web.

Em vez de enviar informações de marcação para o usuário, é mais eficiente enviar apenas os dados solicitados. Uma vez chamados os dados, os Web Services — como uma função exposta pelo servidor Web — retornarão apenas os resultados apropriados. Esse modelo é muito similar aos aplicativos Web. Na verdade, os Web services não são muito diferentes dos aplicativos Web, a não ser por uma notável exceção: os aplicativos Web oferecem tanto a funcionalidade como os elementos de interface de usuário, ao passo que os Web services se concentram apenas na funcionalidade. Possuir Web services mas não saber como usá-los não ajuda muito.

Para usar os serviços, o consumidor (nesse caso, o aplicativo) precisa estar a par de informações como o tipo de entrada exigida e o resultado gerado pelo Web service. No caso de um site da bolsa de valores, o programador precisa conhecer as informações esperadas pelo Web service e as informações que este retornará, para que o aplicativo que esteja escrevendo possa se comunicar com o Web service de forma apropriada. Você pode usar o WSDL (Web Services Description Language) para criar um documento XML que especifique os Web services oferecidos pelo servidor. O arquivo WSDL se assemelha a um contrato legal, já que descreve exatamente como as duas partes (provedor de Web services e consumidor de Web services) deverão se comunicar e cooperar entre si. Além disso, especifica o formato de mensagem esperado pelo Web service. O WSDL preserva o consumidor de Web services do trabalho interno ocorrido nos Web services (veja a Figura 1).

Fornecendo a Conexão

Figura 1: Fornecendo a Conexão.

O WSDL (Web Services Description Language) vincula o consumidor de Web services ao Web service. O documento WSDL descreve o formato da mensagem trocada entre o Web service e o consumidor dos Web services.

Crie um Índice de Web Services com o UDDI

Com tantos Web services disponíveis na rede, você deve estar se perguntando como fazer para encontrá-los. Da mesma forma que os mecanismos de busca como Yahoo! e Google o ajudam a localizar os dados certos nas páginas Web, o UDDI (Universal Description, Discovery, and Integration) define uma maneira padrão de os Web services publicarem informações e anunciarem seus serviços. O UDDI é basicamente um diretório de Web services que oferece às empresas uma maneira fácil de registrar e localizar serviços.

O diretório permite que os consumidores de Web services executem buscas programáticas por Web services relevantes. Assim que um consumidor souber onde reside um dado Web service, ele precisará localizar o WSDL do Web service. Os Web services fornecem um arquivo de busca em formato XML. Você pode juntar os vários componentes descritos até aqui para criar um Web service amplamente funcional. Veja como funciona: o consumidor de Web services consulta o UDDI em relação a um Web service e o UDDI retorna a lista de Web services disponíveis. Em seguida, o consumidor envia uma solicitação do documento buscado ao Web service e este o retorna. O consumidor então envia um pedido de um documento WSDL ao Web service, e este também o retorna. Por fim, o consumidor envia uma solicitação de serviço e o Web service retorna uma resposta de serviço.

A boa notícia sobre Web services é que você pode começar a desenvolvê-los imediatamente. Nessa fase mais rudimentar, tudo que você precisa é de um servidor Web e de uma tecnologia no lado servidor, como o ASP (Microsoft Active Server Pages), com capacidade para ler e escrever em XML. E, como os Web services são baseados em XML, se o seu aplicativo puder criar e ler documentos em XML, você pode consumir Web services.

Você também já pode tirar proveito de diversas ferramentas existentes para desenvolver e distribuir Web Services. Se utiliza a plataforma Microsoft Windows, pode usar o SOAP Toolkit for Visual Studio 6. Além disso, o Microsoft .NET Framework oferece uma excelente plataforma para desenvolvimento e distribuição de Web services. Sendo assim, comece a pensar em como deseja implementar Web services em sua empresa e equipe sua equipe de desenvolvimento com as ferramentas corretas para dar o passo inicial.

Sobre o Autor

Wei Meng Lee é atualmente editor da série .NET Developer Series da Syngress e autor de vários livros sobre WAP e XML.

Wei Meng Lee

Wei Meng Lee