Desenvolvimento - Web Services

Web Services: Java e XML juntos pela interoperabilidade

Os Web Services são na essência interoperabilidade. A tecnologia chave para esse fim, o XML, tem todo um potencial de implementação e integração com a tecnologia J2EE.

por Eric C M Oliveira



Os Web Services são na essência interoperabilidade-conectando programas e aplicações a outros programas e aplicações, especialmente quando estes são desenvolvidos usando diferentes linguagens, ferramentas ou plataformas. A tecnologia chave para esse fim, o XML, tem todo um potencial de implementação e integração com a tecnologia J2EE.

Podemos conceituar os web service como um tipo de arquitetura da internet através de protocolos abertos (HTTP e SOAP) funcionando e respondendo à requisições HTTP vindas de qualquer ponto e plataforma conectada na internet. Segundo o Gartner Group, "são componentes de software com baixo fator de desacoplamento, utilizado por meio de padrões de internet. Um web service representa uma função de negócio ou um serviço que pode ser acessado por uma outra aplicação, sobre redes públicas e, geralmente, disponibilizado por protocolos conhecidos". De maneira mais simples, podemos definir como um software com capacidade de se comunicar com pessoas, aplicações ou outros web services através de uma rede.

Em termos de implantação, notamos como ponto forte principal, o fato da tecnologia ser baseada em padrões abertos, como XML e SOAP. Além disto, é importante salientar que o ambiente criado com web services é capaz de unir a funcionalidade de aplicações já existentes de diversas plataformas.

Alguns conceitos importantes dos Web services são:

  • SOAP (Simple Object Access Protocol): o protocolo de comunicação utilizado pelos Web Services. Esse já estabelecido padrão de comunicação trabalha com os dado no formato XML, utilizando o protocolo HTTP para transporte de dados.

  • WSDL (Web Services Description Language): os Web Services fornecem uma maneira para descrever suas relações detalhadamente. Assim, torna-se fácil para um usuário construir uma aplicação cliente que utilize essas funcionalidades. Esta descrição é fornecida no formato XML e é conhecida como WSDL.

  • UDDI (Universal Description, Discovery and Integration): são a "lista dos classificados" dos Web Services. Esse serviço possibilita uma forma padrão, rápida e fácil de empresas e usuários encontrarem Web Services que sejam úteis de acordo com seus interesses. Atualmente várias empresas mantêm esse serviço de busca e registro de Web Services: UDDI Org., Microsoft, IBM, SAP, dentre outras.

Os principais papéis nesse tipo de arquitetura podem ser vistos na figura abaixo:

O Web Service provider é onde se implementa uma aplicação do tipo web service, como um servidor de aplicação web, por exemplo. O UDDI registry é o local onde se publica os web services. E o Web Service requestor é o ponto onde se localiza a aplicação que necessita usar um web service, isto é, o cliente.

Graças a portabilidade do XML, podemos ter então aplicações trocando informações com plataformas diferentes, como Java e .NET. É na camada de rede via HTTP que os web services se comunicam, isto é, um programa feito em uma linguagem precisa apenas "entender" um arquivo XML para se conectar a um web service feito em outra linguagem, como pode ser observado na figura abaixo:

Graças ao fato de XML e Java trabalharem de maneira tão coesa juntas, ambas tecnologias aos poucos se tornaram um ponto central para os Web services. Em Java, já na versão J2EE 1.3, já se era encontrado todos os recursos necessários para infraestrutura de Web Services. A versão atual (1.4, de 2004), apresenta integração nativa com Web Services.

Destacam-se APIs como: JAXP (Java API for XML Processing), para leitura, criação, manipulação, transformação de XML, e JAXB (Java API for XML Binding), que mapeia classes Java a documentos XML. As APIs para XML e por conseqüência para Web Services, complementam as APIs da plataforma J2EE APIs. O Java Web Services Developer Pack (Java WSDP) disponibiliza todas essas APIs em um único pacote, facilitando assim a implementação na plataforma da interoperabilidade.

Referências:

www.ibm.com.br
www.java.sun.com
www.msdn.microsoft.com/
www.xmethods.com
www.redbooks.com
http://www-106.ibm.com/developerworks/offers/ws-speed-start/wsdk.html
http://java.sun.com/xml/jaxp/index.jsp
http://java.sun.com/xml/jaxr/index.jsp
http://java.sun.com/xml/jaxrpc/index.jsp
http://java.sun.com/xml/saaj/index.jsp

Eric C M Oliveira

Eric C M Oliveira - Bacharel em Ciencia da Computação/FASP e Comunicação/Unesp, tem experiência em desenvolvimento Java nas plataformas J2SE, J2EE e J2ME, além de atividades ligadas a disciplina de testes, engenharia e qualidade de software. Tem certificações Java SCJP 1.3, SCJP 1.4, Rational Test Management, Rational Robot e RUP (Rational Unified Process).