A tecnologia de serviços Web traz
consideráveis benefícios para
o desenvolvimento de aplicações,
uma vez que propicia a agilidade requerida pelas
empresas frente às rápidas mudanças
no ambiente de negócios. Indiscutivelmente,
a principal vantagem do uso dos serviços
Web está na sua elevada interoperabilidade,
obtida graças à adesão
a protocolos e padrões amplamente difundidos
na Web, como por exemplo, SOAP, HTTP, XML, entre
outros.
Os serviços Web se consolidam a cada
dia como a base das novas iniciativas de negócios
eletrônicos, dentre se destacam organizações
que atuam em diversos mercados (Google, Amazon,
GM, Fedex, UFRJ, Governo Federal). Eles permitem
construir redes intra e interorganizacionais
de aplicações colaborativas e
distribuídas, onde os serviços
Web, na forma de módulos auto-contidos,
são descritos, publicados, localizados
e dinamicamente invocados através de
uma arquitetura orientada a serviços.
Este artigo será dividido em duas partes.
Na primeira apresentaremos os principais conceitos
envolvidos na tecnologia de serviços
Web. Na segunda, que será apresentado
no próximo número, construiremos
um pequeno conjunto de serviços Web e
discutiremos seu funcionamento em detalhes.
1.0 O que são serviços
Web?
Por se tratar de uma tecnologia recente, existem
diversas definições de serviços
Web. Segundo Austin et al. (2002) um serviço
Web é uma aplicação auto-contida,
identificada por um URI (Uniform Resource Identifier),
cujas interfaces e ligações são
definidas, descritas e localizadas por artefatos
que utilizam a linguagem XML (Extensible Markup
Language). Um serviço Web deve ser capaz
de interagir com outras aplicações
através da troca de mensagens XML utilizando
os protocolos de comunicação padrão
atualmente disponíveis na Internet.
Os serviços Web podem estar associados
a domínios de confiança. Por esse
motivo, Kaye (2003) os classifica como serviços
Web internos e externos. Os primeiros estão
relacionados a um único domínio
de segurança, geralmente a própria
empresa ou uma Intranet. Os serviços
Web externos estão, normalmente, conectados
a mais de um domínio ampliando as fronteiras
da condução de negócios
através da Internet. Em última
análise, eles refletem processos de negócio
dos parceiros através da infra-estrutura
da rede, além de possibilitar a interoperação
de sistemas produzidos por fabricantes e tecnologias
distintas.
De acordo com Kaye (l.c.) os serviços
Web apresentam inúmeros benefícios,
dentre os quais destacamos: independência
de plataforma de hardware e software; baixo
acoplamento devido à elevada granulosidade
dos módulos e reusabilidade dos módulos
característicos que aumenta a velocidade
de integração destes. Finalmente,
a ubiqüidade, a padronização
e a escalabilidade dos serviços Web são
diferenciais importantes quando comparados com
outras tecnologias, como por exemplo, CORBA,
DCOM e RMI.
1.1 Arquitetura dos serviços
Web
Os serviços Web são descritos
como uma arquitetura baseada em serviços,
também conhecida por SOA (Service Oriented
Architecture), termo inicialmente definido pela
IBM (GRAHAM et al., 2001; CHAPPEL, JEWELL, 2002;
GOTTSCHALK et al., 2002).
Os componentes da arquitetura SOA representam
uma coleção de serviços
que se comunicam através da troca de
mensagens XML. Nesta arquitetura estão
definidos três papéis que interagem
entre si. Os papéis são:
1-Provedor de serviço – responsável
pela descrição e publicação
de um determinado serviço Web no registro
dos serviços. O provedor também
é responsável por descrever as
informações de ligação
do serviço usadas para sua chamada. As
informações estão representadas
em um documento XML escrito na linguagem padrão
WSDL (Web Service Description Language) (WSDL,
2001);
2-Consumidor do serviço – responsável
por descobrir um serviço, obter a sua
descrição e, usá-lo para
se ligar a um provedor a fim de invocar um serviço
Web;
3-Registro dos serviços - mantém
um diretório com informações
sobre serviços, como por exemplo, nome,
provedor e categoria. O padrão adotado
na SOA para registro é o UDDI (Universal
Description, Discovery and Integration) (UDDI,
2001).
A interação entre os três
papéis envolve: a publicação
da informação sobre um determinado
serviço, a descoberta dos serviços
disponíveis e a ligação
entre esses serviços (KREGER, 2001; GOTTSCHALK
et al., 2002).
A figura 1.1 ilustra como os papéis e
as interações estão relacionados.
Um dos maiores benefícios da arquitetura
SOA é o desacoplamento das requisições
do cliente ao serviço Web. A arquitetura
ainda apresenta outras vantagens, dentre as
quais se destacam o suporte para diferentes
tipos de cliente; a elevada manutenibilidade;
a facilidade de reuso; a escalabilidade e disponibilidade.
Essas vantagens contribuem decisivamente para
a integração de processos de negócio
intra e interorganizacionais além da
capacidade de compartilhar e reutilizar serviços
e recursos.
1.2 Classificação dos
componentes dos serviços Web
Curbera, Mukhi e Weerawarana (2001) afirmam
que a arquitetura de serviços Web é
uma plataforma que tem por objetivo integrar
aplicações na Web. Os autores
usam como critério de classificação
a funcionalidade das especificações.
De acordo com este critério, a plataforma
de serviços Web é classificada
em quatro conjuntos de especificações
que têm em comum o uso da linguagem XML.
Esses conjuntos são:
1-Descrição de serviços
- utilizada para definir as operações,
mensagens e os tipos de dados de um serviço,
também mantendo as informações
sobre como acessar os serviços;
2-Publicação e descoberta de serviços
- contém os protocolos que possibilitam
a localização da descrição
dos serviços.
3-Descrição de composição
de serviços - contém os modelos
e linguagens utilizadas para descrever como
se dará a interação dos
serviços;
4-Protocolos de comunicação -
utilizados para definir, estabelecer e manter
a comunicação entre as aplicações,
também contendo a descrição
dos formatos das mensagens utilizadas no estabelecimento
da comunicação entre aplicações.
Os quatro conjuntos apresentam uma característica
comum, que é o uso da linguagem XML,
padrão aberto e extensível que
permite a integração e troca de
dados entre componentes distintos, garantindo
a interoperabilidade necessária para
a arquitetura.
Discutiremos os principais elementos da categoria
de componentes padronizados nas próximas
seções. |