Desenvolvimento de Software


Web Services e suas Tecnologias de Desenvolvimento (J2EE vs. MS.NET)

Este é o meu primeiro artigo aqui na Internativa, e procurei escolher um assunto que está em evidência nos fóruns de tecnologia: o futuro dos web services e suas tecnologias de desenvolvimento. A partir de hoje, estaremos conhecendo um pouco mais desta tendência e entendendo as diferenças nas tecnologias as quais implementam esses serviços, através de uma série de artigos, aonde faço uma forte comparação entre duas escolhas que o mercado possui para construir os serviços web, ou Web Services: J2EE, concebida pela Sun Microsystems e outros players, e o .NET, desenvolvida pela Microsoft Corporation.

Algumas das afirmativas poderão conflitar com os seus pontos de vista. Mas antes de começar, por favor, lembre-se destas minhas três promessas:

  1. Prometo que irei comparar as tecnologias envolvidas em um nível lógico, neutro e de forma imparcial;
  2. Prometo tentar colocar o que “sinto” sobre a tendência e suas especificações, me baseando em tudo que li e já vivenciei;
  3. Prometo que dispersarei o medo, incerteza e dúvida que existe no mercado de software hoje.

O estudo será dividido nos seguintes artigos:

  • Introdução, Filosofia e Aspectos Gerais sobre Web Services;
  • Web Services com J2EE;
  • Web Services com .NET;
  • Análises Comparativas, apoiando na decisão da implementação de WS;
  • Conclusões, um checklist de argumentos J2EE vs. Microsoft. NET;

Neste primeiro artigo da série "Web Services e Tecnologias de Desenvolvimento", farei uma breve introdução sobre o assunto, contando um pouco sobre sua filosofia, como surgiu e alguns conceitos técnicos e teóricos.

A próxima geração de computação distribuída chegou. Nos últimos anos, a tecnologia XML possibilitou que ambientes computacionais heterogêneos passassem a compartilhar informação através da world-wide web. E com essa revolução, passou a também oferecer um modelo simplificado de compartilhar processos. A partir de uma perspectiva técnica, o advento dos web services não foi uma revolução na computação distribuída e sim uma evolução natural das aplicações XML, de uma apresentação estruturada da informação para a representação estruturada da comunicação inter-aplicações. Podemos dizer que a revolução está nas oportunidades geradas por esta evolução.

O mercado tem oferecido produtos e serviços na web nos últimos anos.

Vamos entender então:

O que são Web Services?

Uma coleção de funções que são empacotadas em uma única entidade e publicadas em uma rede para serem usadas por outros programas. Web services são blocos construídos com a finalidade de criar sistemas distribuídos abertos, e possibilitar que companhias e indivíduos possam disponibilizar seu bem digital para o mundo inteiro, de uma forma rápida e barata.

Antes do advento dos web services, a integração das aplicações corporativas era muito difícil quando se tratando das diferenças de linguagem de programação e middleware utilizados nas organizações. As chances de dois sistemas corporativos utilizarem a mesma linguagem de programação e/ou o mesmo middleware é quase que inexistente, pois não existe uma tecnologia melhor ou pior, e sim na maioria das vezes a preferida, ou com maior capacitação técnica das equipes na implementação. Essa “Guerra de Componentes” traduziu em muitas dores de cabeça na hora do esforço de integração, e resultou em uma epidemia de soluções customizadas, integrações offline e ‘middlemen’. Resumindo, interoperabilidade incômoda, dolorosa e difícil.

Com os web services, qualquer aplicação pode ser integrada se estiverem capacitadas a se comunicarem via internet. A base dos web services é a troca de mensagens em XML através de protocolos web padrão como o http. Esse é um mecanismo muito “leve” de comunicação que qualquer linguagem de programação, middleware, ou plataforma pode realizar, com uma fácil e ótima interoperabilidade. Esses padrões da indústria de software aproveitam a maneira comum como aceitação, tornando de baixíssimo risco a adoção dessa tecnologia pelas corporações. Com web services, você pode integrar dois negócios, departamentos, ou aplicações rapidamente e com baixo custo.

A visão para os web services presume que serviços serão disponibilizados através de registros públicos ou privados. Esses serviços serão autodescritivos, incluindo estrutura de interface, requisitos do negócio, processos, termos e condições de uso. Clientes ou consumidores destes serviços lêem essas descrições e entendem as funcionalidades e habilidades dos mesmos. Ao invocar um serviço, ele automaticamente chama outro serviço a fim de completar a requisição, fornecendo ao consumidor uma informação customizada e completa. Para que esses serviços interajam de forma dinâmica, eles precisam compartilhar informações sobre a identidade do usuário, ou informação do contexto da requisição.

Agora que já temos uma visão geral sobre a filosofia por trás dos web services, vamos descrever resumidamente como eles são feitos e usados. Como dito anteriormente, web services são simplesmente interfaces baseadas em XML para o negócio, aplicação, ou serviços do sistema, já conhecidos em sistemas antigos que ganharam a partir de agora uma nova roupagem, e possui o processo a seguir de desenvolvimento:

  • Um provedor cria, empacota e disponibiliza um serviço web usando uma linguagem de programação, middleware, e plataforma de sua escolha;
  • O provedor define o web service utilizando WSDL (Web Services Description Language). O documento WSDL descreve o web service para os outros.
  • O provedor registra o serviço nos registros UDDI (Universal Description, Discovery and Integration). O UDDI habilita os desenvolvedores a publicar seus web services, que habilitam seus softwares a pesquisar por serviços oferecidos por outros;
  • O consumidor procura pelo serviço nos registro UDDI
  • A aplicação do consumidor estabelece uma conexão com o web service e invoca as operações disponíveis utilizando SOAP (Simple Object Access Protocol). O SOAP oferece um formato XML para representar parâmetros e retornar valores sobre o protocolo HTTP, protocolo que todo web service utiliza.

Esses são os passos básicos e suficientes para se construir e disponibilizar um simples web service. Porém, existem estruturas mais complexas como transações, multi-requisições, esquemas, transmissão de documentos e segurança, requisitos estes que precisam de uma boa especificação para que possamos ter uma infra-estrutura para integração e colaboração do B2B.

Essa é a única maneira de fazer os web services funcionarem, e é preciso resolver ainda uma série de questões. A boa notícia é que:

  • A princípio, os maiores players, incluindo a Sun e a Microsoft, concordam que o SOAP, WSDL e UDDI são um bom caminho e que eles fornecerão uma base para o futuro.
  • Todos os fornecedores de software estão trabalhando juntos para estabelecer padrões, e uma base esta surgindo.

Nos próximos artigos, iremos discutir como o J2EE e o .NET fornecem especificações para construção de web services corporativos.

Obrigado pela sua atenção e até lá!

Angelo Peres - Consultor e Professor Universitário Cesar Cardoso é um profissional certificado MCP (Microsoft Certified Professional) e analista de Sistemas de uma multinacional.
cesar@internativa.com.br