Universidade Federal do Ouro Preto
Proposta de Projeto de Pesquisa em Ciência da Computação
Uma Ferramenta para Prototipagem
de Composiçao de Serviços Web para
Aplicaçoes e Serviços Moveis e
Ubıquos
Waldir Ribeiro Pires Junior
Departamento de Ciência da Computação
Universidade Federal de Minas Gerais
Resumo
Este documento apresenta uma proposta de projeto de pesquisa que envolve o
desenvolvimento de técnicas e ferramentas de composição de serviços Web sensíveis ao
contexto para aplicações e serviços móveis e ubíquos. O objetivo da composição de serviços
Web é permitir a criação de serviços mais sofisticados para usuários móveis a partir de serviços
elementares. A sofisticação destes serviços possibilita uma melhor interação com usuários
móveis no que diz respeito as características inerentes aos cenários existentes na computação
móvel e ubíqua.
Palavras Chave
Computação Móvel, Computação Ubíqua, Computação Ciente de Contexto, Sistemas
Distribuídos, Arquitetura Orientada a Serviços e Eventos, Serviços Web, Composição de
Serviços Web
Proposta de Projeto de Pesquisa Page 2
Índice
1 Objetivos ............................................................................................................................... 3
2 Introdução ............................................................................................................................. 3
2.1 Computação Móvel e Ubíqua ........................................................................................ 3
2.1.1 Pesquisa Realizada ................................................................................................ 4
2.2 Arquitetura Orientada a Serviços .................................................................................. 6
2.2.1 Serviços Web ......................................................................................................... 6
2.2.2 A Composição de Serviços Web ............................................................................ 7
3 Metodologia .......................................................................................................................... 8
4 Desenvolvimento do Projeto................................................................................................. 9
5 Conclusão ............................................................................................................................ 10
6 Referências Bibliográficas ................................................................................................... 10
Proposta de Projeto de Pesquisa Page 3
1 Objetivos
O objetivo principal deste projeto de pesquisa é apresentar soluções e estudos de caso
envolvendo a composição de serviços Web para uso em aplicações e serviços móveis e
ubíquos. Apresentaremos uma introdução sobre as principais áreas de pesquisa relacionadas
ao projeto, a metodologia de pesquisa e o desenvolvimento do trabalho a ser realizado.
2 Introdução
Neste Seção apresentaremos os principais conceitos relacionados ao projeto de pesquisa
proposto por este documento. As principais áreas de pesquisa apresentadas incluem a
computação móvel e ubíqua e a arquitetura orientada a serviços que inclui o uso de serviços
Web e a composição destes serviços.
2.1 Computação Móvel e Ubíqua
De uma forma geral, a computação móvel apresenta a habilidade de uso de tecnologias por
usuários enquanto estes se movem, permitindo o acesso a informações de qualquer lugar e
momento. Ela também define a capacidade de execução de aplicações em dispositivos de
pequeno porte, tais como celulares, Smartphones, Palms, Internet Tablets e PDAs. A
comunicação nestes tipos de dispositivos é normalmente provida na forma sem fio, onde
usuários utilizam serviços móveis de dados e voz. Características tais como a largura de banda
limitada na transmissão de dados, consumo de energia, interferências no canal de rádio e
limitações na interface de usuário fazem parte das restrições da computação móvel.
A computação ubíqua, por sua vez, se beneficia de dispositivos móveis para uma
melhor realização de atividades pelo usuário, fazendo com que ele (o usuário) não necessite
sempre estar explicitamente inserido no mundo computacional para utilizar seus recursos.
Sendo assim, a computação ubíqua se integra ao mundo do próprio usuário, definindo assim
um novo modelo computacional de interação homem-computador no qual o processamento
de informações está integrado a objetos e atividades do dia a dia. Ao contrário do paradigma
da computação desktop onde um usuário conscientemente aciona um único dispositivo para
uma ou mais atividades específicas, a computação ubíqua permite que o usuário acione
diversos dispositivos computacionais e sistemas de forma simultânea e inconsciente durante a
execução de suas atividades comuns, em alguns casos sem estar ciente da presença destes e
de suas atividades no ambiente.
Proposta de Projeto de Pesquisa Page 4
A computação ubíqua utiliza informações do ambiente para a definição do contexto e
adaptação em sistemas em tempo real. Dey et. al. (1) apresenta a computação ciente de
contexto como sendo um paradigma no qual aplicações possuem a capacidade de descobrir e
utilizar informações de contexto, tais como a localização, horário do dia, pessoas e dispositivos
próximos, e atividades do usuário. Rossi et al. (2) apresenta a adaptação como sendo a
capacidade de um sistema computacional ou um middleware em modificar seu
comportamento em resposta às mudanças no contexto ambiental. Sendo assim, aplicações
móveis e serviços remotos podem utilizar informações presentes no contexto para o
provimento de serviços e conteúdo tanto para o usuário quanto para aplicações móveis
presentes no dispositivo.
A ciência de contexto lida diretamente com o ambiente, permitindo que sistemas
computacionais reajam ou adaptem às mudanças detectadas por elementos sensores. Estes
sistemas estão principalmente preocupados com a aquisição de contexto através, por
exemplo, da utilização de sensores para a percepção de uma situação, a abstração e
compreensão do contexto (i.e., associando um estímulo sensorial percebido a um contexto), e
comportamento da aplicação baseado no contexto reconhecido, como por exemplo, habilitar
atividades do usuário baseadas em contexto.
2.1.1 Pesquisa Realizada
No trabalho de pesquisa realizado durante o mestrado, desenvolvemos dois protótipos
que fizeram uso de um servidor de eventos (3) capaz de captar mudanças nas informações de
perfil e contexto do usuário móvel e de serviços Web remotos, conforme apresentado na
Figura 1. No primeiro protótipo (Fig 1b), o Guia Turístico DroidGuide (4) permitiu a coleta de
informações de perfil e contexto turísticas a partir do dispositivo móvel e o compartilhamento
destas informações com serviços Web sensíveis ao contexto relacionados às atividades
turísticas na região. Através da gestão de informações de perfil e contexto no dispositivo e no
servidor remoto de dados, o serviço turístico foi capaz de sugerir atrações turísticas que
melhor se enquadravam nos interesses de usuários móveis, além de receberem informações a
partir de serviços remotos em função de seus interesses e informações de contexto, tais como
dados meteorológicos, de tráfego e informações turísticas.
No segundo protótipo (Fig. 1a), apresentamos a viabilidade na utilização de
arcabouços Web na construção de protótipos de aplicações e serviços móveis e ubíquos
sensíveis ao contexto e coletivos. O Serviço de Contexto de Emergências ou DECS possibilita o
gerenciamento de eventos de emergência, de unidades móveis de emergência (i.e.,
Proposta de Projeto de Pesquisa Page 5
ambulâncias, viaturas policiais e do corpo de bombeiros) e de marcos fixos tais como hospitais
e delegacias. O uso de tecnologias Web tais como o navegador Web, HTTP e AJAX1
possibilitaram a análise de protótipos de serviços Ubíquos de uma forma coletiva, onde cada
janela ou aba do navegador Web desempenhou o papel de cliente móvel ou fixo.
(a) Protótipo DroidGuide.
(b) Protótipo DECS.
Figura 1: Os protótipos desenvolvidos durante o trabalho de mestrado (3).
No desenvolvimento de ambos protótipos, entretanto, a utilização de serviços Web foi
realizada de forma abstrata, já que este não era o foco principal do trabalho. Neste caso,
desenvolvemos os serviços Web para o envio de notificações contendo informações de
contexto global ou remoto para o usuário móvel. Estes serviços não possuíam a capacidade de
processamento de informações de perfil e contexto compostas (múltiplas variáveis,
combinação entre variáveis) e complexas (mais de um serviço elementar). Por exemplo, as
informações de localização e de perfil foram utilizadas por serviços de uma forma bem
simples, não possibilitando inferências sobre as informações compartilhadas pelos serviços
Web.
Imaginemos um cenário onde usuários móveis desejam ou necessitam utilizar serviços
mais complexos, a fim destes oferecerem de uma forma mais inteligente e abrangente
informações de interesse para o mesmo. Podemos citar o exemplo de um serviço de busca de
passageiros (passenger pickup service) em um aeroporto, onde o usuário móvel é responsável
por buscar ou levar um passageiro ao aeroporto, conforme apresentado na Figura 2. Estas
atividades necessitam de diversas informações tais como a distância e a situação do tráfego da
origem ao destino (gestão de rotas), autonomia do automóvel (i.e., combustível disponível)
1 Em inglês, Assynchronous JavaScript and XML.
Proposta de Projeto de Pesquisa Page 6
que efetuará a busca ou retorno, situação do aeroporto e do vôo, período de espera no
desembarque/embarque, informações climáticas da região, características e estado do
passageiro (i.e., tipo e quantidade de bagagem, situação, interesses e desejos, etc.). Esta
abordagem apresenta diversos desafios, tais como algumas características e limitações
presentes em dispositivos móveis (i.e., heterogeneidade, mobilidade, confiabilidade,
segurança, etc.), o processo de composição de serviços móveis/remotos e o compartilhamento
de informações entre serviços (s2s) e entre serviços e o usuário móvel (s2c).
2.2 Arquitetura Orientada a Serviços
A computação orientada a serviços ou SOC2 e a arquitetura orientada a serviços ou SOA3
definem conceitos importantes na área de sistemas distribuídos. Estes conceitos têm sido
amplamente utilizados em projetos e pesquisas relacionadas a criação e utilização de serviços
Web. Em SOC/SOA, a funcionalidade da aplicação é composta de tal forma que permite seu
uso no desenvolvimento de aplicações que integram funcionalidades a partir de serviços
elementares e de outras aplicações, o que é conhecido como composição de serviços ou
serviços compostos. Cada serviço fornece sua funcionalidade para a aplicação tornando-a
disponível através de uma interface padrão de acesso.
A composição de serviços tem sido uma das áreas de grande interesse de pesquisa
recentemente. A motivação geral para isto está relacionada a possibilidade de criação de
serviços compostos, mais complexos e elaborados a partir de um conjunto de serviços já
existentes. De uma forma prática, a composição de serviços elementares permite que
diferentes provedores de serviços sejam unificados a fim de criar serviços mais sofisticados no
nível lógico e semântico. A comunidade de pesquisa da Internet têm reconhecido a
importância da composição de serviços graças a sua flexibilidade e reuso na construção de
aplicações. Entretanto, este reconhecimento tem se focado mais diretamente em serviços
Web utilizados por aplicações Web do que em outras abordagens, como por exemplo, em
aplicações móveis e ubíquas.
2.2.1 Serviços Web
Podemos definir um serviço Web ou Web Service como uma aplicação acessível onde outras
aplicações e/ou seres humanos podem descobrí-la e invocá-la como, por exemplo, a partir da
Internet e/ou dispositivos móveis. Um serviço Web (5) pode apresentar as seguintes
propriedades: (a) independência (a maior possível) de plataformas específicas e paradigmas
2 Em inglês, Service Oriented Computing.
3 Em inglês, Service Oriented Architecture.
Proposta de Projeto de Pesquisa Page 7
computacionais; (b) interorganizacional e (c) facilmente construídos a partir de padrões como
o XML e o SOAP4. Alguns trabalhos existentes já oferecem a possibilidade de integração destes
serviços e recursos com aplicações residentes em dispositivos móveis, como em Christensen et
al. (6), em Chakraborty et al. (7), em Heejung et al. (8). Debaty et al. (9) propôe uma aplicação
que permite acesso a dados móveis e sensíveis ao contexto em uma variedade de ambientes
computacionais ubíquos.
As tecnologias de Serviços Web ou Web Services têm sido consideradas como soluções
promissoras em ambientes computacionais ubíquos heterogêneos. A principal razão disto está
no fato destes serviços utilizarem padrões como o XML, o SOAP, provendo a
interoperabilidade entre serviços e entre clientes, e sua alta capacidade de integração em
processos de negócio (e.g., B2B e B2C). Diversos serviços Web já estão disponíveis para uso
por aplicações, e serviços adicionais direcionados em informações de perfil e contexto podem
ser criados com o objetivo de prover suporte a aplicações em execução nos diversos tipos de
dispositivos móveis existentes. Podemos destacar algumas propostas de Workflows de serviços
Web para ambientes ubíquos que consideram mudanças de dados de perfil e contexto, tais
como em Joohyun et al. (10) e em Cho et al. (11).
2.2.2 A Composição de Serviços Web
Os serviços disponíveis em ambientes ubíquos precisam também prover de uma forma
automática a adaptação para usuários móveis de acordo com as informações dinâmicas de
perfil e contexto que podem ser obtidas tanto do usuário quanto do ambiente em que ele
está. Em alguns casos, a composição de serviços ser torna possível e útil, onde uma
combinação de serviços Web semelhantes e/ou complementares seria disponibilizada ao
usuário. O principal objetivo da composição está na satisfação das necessidades do usuário
através da combinação de serviços elementares criados ou já existentes, em situações onde
não há um serviço disponível no ambiente capaz de realizar uma determinada funcionalidade.
Urbieta et al. (12) destaca a composição de serviços em ambientes inteligentes e dinâmicos
focando nas seguintes características: especificação (i.e., qualidade, uso de recursos, etc.),
execução (i.e., contingência e escalabilidade) e disponibilidade (i.e., topologia, infra-estrutura,
etc.), usabilidade, adaptabilidade e eficiência no seu uso. Bronsted et al. (13) apresenta a
composição de serviços como sendo uma composição de quatro principais áreas: ciência de
contexto, gerenciamento de contingências, gerenciamento da heterogeneidade de dispositivos
e prover recursos aos usuários móveis.
4 Em inglês, Simple Object Access Protocol.
Proposta de Projeto de Pesquisa Page 8
Figura 2: Um serviço composto para uso em aplicações móveis.
Podemos destacar alguns trabalhos já desenvolvidos que apresentam algumas
características da composição de serviços em aplicações e serviços móveis. Chakraborty et al.
(7) apresenta algumas limitações existentes na computação ubíqua no que diz respeito a
composição de serviços nestes tipos de ambientes, já que a composição é aplicada em boa
parte nos ambientes Web distribuídos. É destacado algumas características específicas tais
como a mobilidade, heterogeneidade em dispositivos, confiabilidade e a variabilidade de
recursos no ambiente computacional. Nesta proposta, Chakraborty et al. (7) apresenta uma
abordagem distribuída nos processos de descoberta e intermediação para possibilitar a
composição de serviços em ambientes móveis levando em consideração as limitações
apresentadas acima. Quatro tópicos essenciais são apresentados no que diz respeito a
composição de serviços móveis: (a) um modelo distribuído de coordenação, (b)
heterogeneidade de recursos e ciência do contexto, (c) gerenciamento da mobilidade e
adaptabilidade e (d) tolerança a falhas e confiabilidade.
No nosso trabalho, desejamos extender a coleta e compartilhamento de informações de
perfil e contexto através do uso de serviços Web compostos a fim de possibilitar ao usuário
serviços mais sofisticados. Esta extenção inclui a construção de uma ferramenta de projeto
capaz de criar composições entre serviços Web elementares para aplicações e serviços móveis.
3 Metodologia
Para o desenvolvimento deste projeto, propôe-se a execução das seguintes atividades:
a) Pesquisa Bibliográfica: Elaboração e estudo em forma de pesquisa bibliográfica a fim
de levantar as informações sobre padrões, tecnologias, protocolos, arquiteturas e
propostas existentes de composição de serviços em aplicações e serviços móveis;
Proposta de Projeto de Pesquisa Page 9
b) Fundamentação Teórica: Realizaremos a caracterização do problema da composição
de serviços móveis e do uso destes por aplicações e serviços móveis e ubíquos. A
pesquisa e definição de algoritmos relacionados serão também realizadas nesta etapa
do projeto.
c) Identificação de Requisitos: Definição dos requisitos para o desenvolvimento de um
protótipo de uma aplicação servidora responsável por armazenar, compor e prover
serviços compostos para usuários móveis correlacionado com os itens (a) e (b).
d) Cenários de Uso: Definição de cenários de uso onde aplicações e serviços móveis
podem usufruir de serviços compostos
e) Protótipos: Desenvolvimento do protótipo da aplicação servidora e uma aplicação
cliente que utilize o(s) serviço(s) composto(s) desenvolvido(s) a partir da ferramenta.
f) Análise de Resultados: Avaliação dos protótipos desenvolvidos em termos de carga de
trabalho dos serviços e do servidor remoto de dados, a fim de avaliarmos a
escalabilidade e a capacidade de composição proposta pela ferramenta desenvolvida.
4 Desenvolvimento do Projeto
O desenvolvimento prevê a realização das seguintes etapas:
a) Levantamento do estado da arte relacionado ao problema proposto;
b) Definição de fundamentos teóricos;
c) Identificação e detalhamento de requisitos do compositor de serviços, definição da
arquitetura de sistema;
d) Desenvolvimento da aplicação servidora de composição de serviços Web para
aplicações e serviços móveis;
e) Avaliação da aplicação servidora proposta em termos de escalabilidade, confiabilidade,
segurança e extensibilidade;
f) Apresentação dos resultados e trabalhos futuros em forma de publicações em
conferências nacionais e internacionais.
O projeto de pesquisa será desenvolvido utilizando tecnologias e padrões de código aberto
(open-source), que incluem:
• Plataformas de desenvolvimento de sistemas distribuídos e móveis, tais como o
Python, JavaEE, Android, Web AppEngine, dentre outros;
• Serviços Web já existentes e disponíveis tais como o GMaps, WeatherChannel, dentre
outros;
Proposta de Projeto de Pesquisa Page 10
• Protocolos padrões de comunicação tais como o HTTP, XMPP, SOAP;
• Outros padrões relacionados, tais como o XML, AJAX, WSDL (Web Service Description
Language), padrões de orquestração e coreografia de serviços Web, etc.
5 Conclusão
Apresentamos neste documento uma proposta de projeto de pesquisa em Ciência da
Computação. Realizamos uma apresentação geral das principais áreas de pesquida
relacionadas e definimos a metodologia e o processo de desenvolvimento do trabalho de
pesquisa a ser aplicado no projeto em si.
6 Referências Bibliográficas
1. Dey, Anind K. Understanding and Using Context. Personal and Ubiquitous Computing.
London, UK : Springer-Verlag, 2001. Vol. 5, 1. 1617-4909.
2. Rossi, Pablo and Tari, Zahir. Software adaptation for service-oriented systems. MW4SOC
'06: Proceedings of the 1st workshop on Middleware for Service Oriented Computing.
Melbourne, Australia : ACM, 2006. 1-59593-425-1.
3. Pires Jr, Waldir R. Um Servidor de Gerenciamento de Eventos para o Compartilhamento de
Dados de Perfil e Contexto em Aplicações Móveis. Dissertação de Mestrado em Ciência da
Computação. Belo Horizonte : Departamento de Ciência da Computação, Universidade Federal
de Minas Gerais, 2010.
4. Pires Jr, W. R., Loureiro, A. A. F., Oliveira, R. A. R. Using a Cloud-based Event Service for
Managing Context Information in Mobile and Ubiquitous Systems. Workshop de
Gerenciamento de Redes e Serviços. Gramado, RS, Brasil : Sociedade Brasileira de Redes de
Computadores, 2010.
5. Maamar, Zakaria and Benslimane, Djamal and Narendra, Nanjangud C. What can context
do for web services? Communications of the ACM. New York : ACM, 2006. Vol. 49, 12, pp. 98-
103. http://doi.acm.org/10.1145/1183236.1183238. 0001-0782.
6. Christensen, Jason H. Using RESTful web-services and cloud computing to create next
generation mobile applications. OOPSLA '09: Proceeding of the 24th ACM SIGPLAN conference
companion on Object oriented programming systems languages and applications. Orlando,
Proposta de Projeto de Pesquisa Page 11
Florida, USA : ACM, 2009. pp. 627-634. http://doi.acm.org/10.1145/1639950.1639958. 978-1-
60558-768-4.
7. Chakraborty, Dipanjan and Joshi, Anupam and Finin, Tim and Yesha, Yelena. Service
composition for mobile environments. Mobile Networking Applications. Hingham, MA, USA :
Kluwer Academic Publishers, 2005. Vol. 10, 4, pp. 435-451. 1383-469X.
8. Ingstrup, Jeppe Bronsted and Klaus Marius Hansen and Mads. Service Composition Issues
in Pervasive Computing. IEEE Pervasive Computing. Los Alamitos, CA, USA : IEEE Computer
Society, 2010. Vol. 9, pp. 62-70. http://doi.ieeecomputersociety.org/10.1109/MPRV.2010.11.
1536-1268.
9. Debaty, Philippe and Goddi, Patrick and Vorbau, Alex. Integrating the physical world with
the web to enable context-enhanced mobile services. Mobile Networking Applications.
Hingham, MA, USA : Kluwer Academic Publishers, 2005. Vol. 10, 4. 1383-469X.
10. Joohyun Han1 Contact Information, Yongyun Cho1 Contact Information and Jaeyoung
Choi. Context-Aware Workflow Language Based on Web Services for Ubiquitous Computing.
Computational Science and Its Applications – ICCSA 2005. Hingham, MA, USA : Springer Berlin /
Heidelberg, 2005. Vol. 3481, 4. 1611-3349.
11. Cho, Yongyun and Choi, Jongsun and Choi, Jaeyoung. A Context-Aware Workflow System
for a Smart Home. ICCIT '07: Proceedings of the 2007 International Conference on Convergence
Information Technology. Washington, DC, USA : IEEE Computer Society, 2007. 0-7695-3038-9.
12. Urbieta, Aitor and Barrutieta, Guillermo and Parra, Jorge and Uribarren, Aitor. A survey of
dynamic service composition approaches for ambient systems. SOMITAS '08: Proceedings of
the 2008 Ambi-Sys workshop on Software Organisation and MonIToring of Ambient Systems.
Quebec City, Canada : ICST (Institute for Computer Sciences, Social-Informatics and
Telecommunications Engineering), 2008.
13. Ingstrup, Jeppe Bronsted and Klaus Marius Hansen and Mads. Service Composition Issues
in Pervasive Computing. IEEE Pervasive Computing. Los Alamitos, CA, USA : IEEE Computer
Society, 2010. Vol. 9. 1536-1268.
14. W.T. Tsai, Yinong Chen, Gary Bitter, and Dorina Miron. Introduction to Service-Oriented
Computing. In IFIP International Federation for Information Processing. 2004.
http://www.public.asu.edu/~ychen10/activities/SOAWorkshop/Background.pdf.
Proposta de Projeto de Pesquisa Page 12
Top Related