# Introdução

Na literatura podem ser encontrados diversos livros e artigos que descrevem em detalhes os diversos conceitos que formam os Web services. Nesta seção temos como objetivo introduzir alguns desses conceitos e justificar o uso e a necessidade de Web services no contexto deste livro: a interoperação de sistemas heterogêneos para a criação sistemas de informação distribuídos. Por fim, são apresentados e discutidos alguns tópicos de pesquisa atuais relacionados a esta área.
De acordo com a W3C, um Web service é um sistema de aplicações com o objetivo de possibilitar a interoperação entre máquinas através de uma rede. Eles buscam resolver o problema de heterogeneidade de software e hardware de diferentes sistemas conectados à Web (afinal, a Web é um ambiente heterogêneo).
Diferente de arquiteturas como o CORBA, a base dos Web services foi definida de forma simples baseando-se em poucas tecnologias existentes, o que garante maior flexibilidade e liberdade de escolha às implementações que serão feitas. Os Web services apresentam duas premissas para tratar a interoperação de sistemas heterogêneos: prover a interoperabilidade básica através de um pequeno conjunto de protocolos comuns e apresentar uma representação uniforme das aplicações que são acessíveis utilizando múltiplos protocolos de comunicação.
O mesmo artigo também afirma que um dos objetivos dos Web services é prover um framework flexível onde a interoperabilidade universal não limite a eficiência da integração. Arquiteturas como o CORBA, possibilitavam implementações com desempenho elevado, mas às custas de uma alta complexidade do sistema, como já comentado na seção sobre a arquitetura CORBA.
A base dos Web services está no uso do XML, padrão amplamente divulgado e adotado atualmente. O XML é utilizado em conjunto com XML Schema para representação e definição dos dados, sendo utilizados nos diversos componentes das várias camadas da pilha dos Web services. Esta base pode ser vista como dois blocos:
* Protocolo para troca de dados: O uso de XML para troca de dados aproveita todas as vantagens deste padrão amplamente divulgado e adotado e possibilita a interação entre serviços através da Web;
* Representação unificada dos sistemas: Para que seja possível a comunicação entre processos heterogêneos, uma definição padrão, comum a todos e independente de plataforma deve existir. Para isso, os Web services utilizam uma IDL (Interface Definition Language) para definição da interface de cada sistema, que utiliza XML e XML Schema para definição dos dados e dos serviços disponibilizados por ele.

# Arquitetura e componentes

Seção sobre a arquitetura dos Web services e alguns componentes (especificações, padrões) que formam esta arquitetura.

# Linhas de pesquisa

Esta seção apresenta alguns conceitos importantes relacionados a Web services e as tendências atuais de pesquisa na área.

# Ligações externas

* Web services na Wikipedia: http://pt.wikipedia.org/wiki/Web_service
* Site da organização OASIS, responsável por algumas padronizações relacionadas aos Web services: http://www.oasis-open.org (em inglês)

# Bibliografia

* ↑ Curbera, F.; Nagy, W.; Weerawarana, S. "Web Services: Why and How", OOPSLA 2001 Workshop on Object-Oriented Web Services, ACM, 2001.