# Composição de Web services

A composição de Web services consiste em agregar diversos serviços com intuito de resolver um determinado problema ou requisição, ou seja, não utilizar um Web service que resolva o problema por completo, mas agregar diversos Web services menores que irão interagir e resolver este problema.
Utilizar composições de serviços aumenta a reusabilidade dos serviços e permite diversas novas aplicações, tornando possível o uso de serviços sem ter conhecimento de sua implementação, apenas de uma descrição de seu funcionamento.
A tarefa de compor serviços sempre foi possível, porém, inicialmente era realizada manualmente. Para facilitar o processo de integração surgiram padrões como o BPEL4WS, que possibilita integrar serviços no formato de processo de negócios. Unindo estes padrões com a descrição semântica dos serviços, é possível automatizar o processo de composição de Web services, tarefa que é uma das principais linhas de pesquisa na área atualmente.
A composição automatizada de serviços inclui diversas tarefas que também devem ser automatizadas: descoberta, invocação, interoperação, seleção e execução e monitoramento da execução.

# Agregação semântica

A rápida evolução da Web e a criação dos Web services estão transformando a Web de um simples repositório de texto e imagens para um ambiente provedor de serviços.
A Web foi inicialmente projetada para ser interpretada por humanos, o que dificulta a automatização de tarefas. Interpretar um documento HTML de maneira automatizada, por exemplo, não é uma tarefa trivial e apresenta diversos desafios, onde uma simples alteração na forma de apresentação do documento HTML pode fazer com que a ferramenta de interpretação seja ajustada para funcionar corretamente. Da mesma forma, um Web service pode ser facilmente interpretado por uma pessoa, porém, a descrição normalmente existente deste serviço (o documento WSDL) não possibilita a automatização de tarefas avançadas como a composição de serviços.
Agregação semântica consiste em agregar aos Web services meta-dados sobre as propriedades, capacidades, interfaces, pré-requisitos e conseqüências de uso desses serviços, codificados de forma que possam ser interpretados pela máquina. Diversas linguagens de marcação foram criadas com o propósito de agregar semântica aos dados, tais como OIL, OWL e OWL-S e as linguagens da família DAML (DARPA Agente Markup Language) chamadas DAML+OIL, DAML-L e DAML-S, muitas delas baseadas em ontologias e algumas específicas para descrição de serviços, como o DAML-S e o OWL-S. Estes descritores possibilitam que agentes agreguem dados às suas bases de conhecimento com dados precisos sobre diversos serviços e automatizem as tarefas de descoberta, execução, composição e interoperação de serviços.

## Localização e composição
# Web services em ambientes móveis

O artigo "Integrating Semantic Web Services for Mobile Access" descreve um sistema desenvolvido que envolve a utilização de Web services em ambientes móveis com o objetivo de oferecer informações navegacionais e climáticas.
Este sistema foi implementado na cidade Karlsruhe na Alemanha utilizando os Web services disponibilizados pela Deutsche Telekom, ma grande companhia de telecomunicações da Alemanha, sendo parte do projeto chamado "SmartWeb". Neste trabalho, o sistema desenvolvido transforma uma solicitação feita por um dispositivo móvel em uma requisição para um Web service, e então localiza na base de Web services da Deutsche Telekom qual serviço pode ser utilizado.
O sistema também utiliza informações semânticas em conjunto com os Web services. A consulta feita pelo usuário é transformada em um documento EMMA (Extended MultiModal Annotation markup language) que vai representar a semântica desta consulta. Com esta descrição, um mediador vai encontrar um serviço que possa responder a consulta e coordenar a comunicação até que obtenha uma resposta e retorne-a ao usuário.
Para encontrar o serviço adequado, foi feita uma descrição (manualmente) semântica de cada um dos serviços disponibilizados (em torno de 50) utilizando uma extensão do Smart-SUMO, uma ontologia baseada em OWL-S. É feita então a conexão entre o documento EMMA que descreve a consulta e a descrição Smart-SUMO do Web services, baseando-se na saída destes. Para armazenamento e consulta às descrições semânticas dos Web services, é usado Ontobroker.
Encontrado o serviço, a invocação é feita, por enquanto, de maneira estática (hard-coded) e o resultado é retornado ao usuário através do mediador.

# Bibliografia

* ↑ Narayanan, S. and Mcllraith, S. A. "Simulation, Verification and Automated Composition of Web Services", Proceedings of the 11th international conference on World Wide Web, Session: Semantic Web Services, p. 77-88, 2002.
* ↑ McIlraith, SA. "Semantic Web services", Intelligent Systems, IEEE, 2001.
* ↑ Pullen, J. M. et al. "Using Web services to integrate heterogeneous simulations in a grid environment", Future Generation Computer Systems, Volume 21, Issue 1, p. 97-106, 1 January, 2005.
* ↑ Ankolekar, A.; Hitzler, P.; Lewen, H.; Oberle, D. and Studer, R. "Integrating Semantic Web Services for Mobile Access", Proceedings of 3rd European Semantic Web Conference (ESWC), 2006.
* ↑ Verma, Kunal et al. "METEOR-S WSDI: A Scalable P2P Infrastructure of Registries for Semantic Publication and Discovery of Web Services", Information Technology and Management, 2005.