descadastro
site NCE
 
 
Web Services
 
artigos publicados

Serviços Web – Uma breve introdução (Parte I)

 

Sérgio Manuel Serra da Cruz, M.Sc.
Analista de Suporte NCE/UFRJ

     
 

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.

 
avançar >>
         
 
    página principal
 
Núcleo de Computação Eletrônica
Universidade Federal do Rio de Janeiro
Prédio do Centro de Ciências Matemáticas e da Natureza Bloco C
Caixa Postal: 2324 - CEP: 20.010-974
Cidade Universitária - Ilha do Fundão, Rio de Janeiro - RJ Tel: 2598-3333