1. INTRODUKSJON OG MOTIVASJON
1.1 K LIMAUTFORDRINGEN
(Pub/Sub) apresenta v´arios casos que focam em sistemas distribu´ıdos [3]. Entretanto, de uma forma geral, nenhum deles ´e aplicado ou avaliado diretamente sobre sistemas ub´ıquos. O modelo de comunica¸c˜ao baseado em eventos descreve um paradigma aplic´avel na interconex˜ao de elementos que comp˜oem aplica¸c˜oes em ambientes ub´ıquos de forma ass´ıncrona. Estes ambientes em geral contem aplica¸c˜oes e elementos de rede que s˜ao heterogˆeneos e distribu´ıdos. Eles s˜ao heterogˆeneos devido ao fato destes poderem executar diferentes tipos de tarefas diferentes para o usu´ario, requerendo conjuntos variados de componentes de hardware e software. Eles tamb´em s˜ao distribu´ıdos de tal forma que um ´unico componente poder´a depender de diversos outros, como por exemplo, na obten¸c˜ao de informa¸c˜oes do ambiente atrav´es da utiliza¸c˜ao de componentes variados (e.g., medidores de luminosidade, temperatura, press˜ao atmosf´erica, umidade, qualidade do ar) e execu¸c˜ao de tarefas pelo usu´ario a partir destas informa¸c˜oes. O baix´ıssimo acoplamento entre componentes e a alta flexibilidade na adapta¸c˜ao e extens˜ao de servi¸cos para aplica¸c˜oes m´oveis servem como benef´ıcios para a ado¸c˜ao desta arquitetura na constru¸c˜ao de aplica¸c˜oes m´oveis e tamb´em de servi¸cos ub´ıquos.
Os trabalhos relacionados envolvem pesquisas principalmente nas ´areas de computa¸c˜ao ciente de contexto e a modelagem de sistemas distribu´ıdos baseados em
2.5. Arquitetura Baseada em Eventos e Servi¸cos 29
eventos. Caporuscio et al. [8] apresentam um projeto de desenho de um sistema baseado em eventos que permite as aplica¸c˜oes detectarem eventos em uma determinada regi˜ao e avaliarem a relevˆancia destes levando em considera¸c˜ao o contexto principal da aplica¸c˜ao. Isto permite que aplica¸c˜oes se adaptem `a condi¸c˜oes ambientais espec´ıficas, alcan¸cando assim seus objetivos. A especifica¸c˜ao utilizada inclui o desenho de um prot´otipo baseado no modelo Pub/Sub, similar ao utilizado neste trabalho. Entretanto, nosso trabalho enfoca na utiliza¸c˜ao deste modelo especificamente em ambientes ub´ıquos cientes de contexto atrav´es da utiliza¸c˜ao de mensagens de eventos gerados pelo sistema e publicados a clientes de interesse.
Sacramento et al. [46] propuseram uma arquitetura middleware que permite o desenvolvimento de servi¸cos de processamento de informa¸c˜oes de contexto e aplica¸c˜oes sens´ıveis ao contexto sobre redes sem fio. Na infraestrutura de comunica¸c˜ao do Mobile Collaboration Architecture (MoCA), a interface de comunica¸c˜ao de eventos ou Event Communication Interface (ECI) fornece servi¸cos ass´ıncronos de comunica¸c˜ao atrav´es do modelo de intera¸c˜ao Pub/Sub. Dentro desta estrutura, o servidor de eventos publica os eventos ocorridos para consumidores interessados e subscritos. No nosso trabalho, estendemos o acesso a informa¸c˜oes de perfil e contexto do usu´ario para servi¸cos remotos existentes na Web atrav´es da publica¸c˜ao de eventos vindos do cliente m´ovel. A intera¸c˜ao entre entidades usada pelo MoCA se assemelha muito `a utilizada neste trabalho, com uma pequena diferen¸ca na forma como o servi¸co de eventos proposto foi concebido. Constru´ımos o servi¸co utilizando recursos dispon´ıveis em nuvem (i.e., processador de requisi¸c˜oes, persistˆencia de dados, dentre outros) com o objetivo de abstrair e simplificar a integra¸c˜ao deste com outros servi¸cos presentes na Web.
No que diz respeito `a arquitetura (i.e., topologia e protocolo de comunica¸c˜ao), Carzaniga et al. [9] apresentam quatro solu¸c˜oes arquiteturais para sistemas distribu´ıdos baseados em eventos que podem ser utilizadas na constru¸c˜ao de aplica¸c˜oes ub´ıquas sens´ıveis de contexto e na dissemina¸c˜ao de informa¸c˜oes de contexto de diversos clientes. A primeira delas apresenta uma arquitetura cliente/servidor, onde clientes est˜ao conectados a servidores e estes servidores podem ou n˜ao estar conectados entre si, sendo uma extens˜ao de uma arquitetura centralizada. Servidores recebem eventos gerados em seus clientes e retornam notifica¸c˜oes para os consumidores interessados, sendo estes usu´arios ou servi¸cos remotos. A segunda proposta define uma arquitetura ac´ıclica Peer- 2-Peer (P2P) onde servidores se comunicam em forma de pares, garantindo assim um fluxo bidirecional de eventos, subscri¸c˜oes e notifica¸c˜oes entre os clientes conectados. A terceira proposta apresenta uma arquitetura gen´erica P2P onde a conectividade entre servidores apresenta redundˆancias, permitindo a comunica¸c˜ao bidirecional da mesma forma que a solu¸c˜ao ac´ıclica, mas permite m´ultiplos caminhos entre servidores e
indiretamente entre clientes. A quarta e ´ultima proposta apresenta uma solu¸c˜ao h´ıbrida onde diversos n´ıveis de hierarquiza¸c˜ao e comunica¸c˜ao s˜ao definidos para servidores e clientes que comp˜oem a arquitetura.
Diferente das propostas apresentadas acima, este trabalho utiliza uma solu¸c˜ao de arquitetura cliente/servidor em nuvem para o sistema de gerenciamento de contexto e de eventos. Desta forma, clientes se conectam em um ´unico servidor de dados remoto e acessam servi¸cos remotos baseados em informa¸c˜oes de eventos dispon´ıveis a partir do servidor para a busca de informa¸c˜oes relevantes de contexto remoto ou global. Al´em disto, o servidor ´e respons´avel por fornecer servi¸cos de subscri¸c˜ao, filtragem e notifica¸c˜ao de eventos que ocorram local e remotamente que s˜ao de interesse do usu´ario ou de servi¸cos remotos baseados em informa¸c˜ao.
2.6
Tecnologias em Sistemas Distribu´ıdos e M´oveis
Esta se¸c˜ao apresenta as tecnologias utilizadas na constru¸c˜ao dos prot´otipos apresentados neste trabalho para a avalia¸c˜ao da viabilidade de um servidor de notifica¸c˜ao de eventos para aplica¸c˜oes m´oveis.