5. GENERAL DISCUSSION
5.3 L IMITATIONS AND D IRECTIONS FOR F URTHER R ESEARCH
5.3.2 Further Conceivable Research Directions
Os servi¸cos remotos tem como objetivo oferecer recursos ao usu´ario m´ovel tais como o acesso a informa¸c˜oes de perfil e contexto remoto e o consumo de eventos oriundos de mudan¸cas de dados de perfil e contexto do dispositivo m´ovel. Um Web Service (WS) pode ser definido como uma aplica¸c˜ao acess´ıvel onde outras aplica¸c˜oes e/ou seres humanos podem descobrir e invocar, como por exemplo, a partir de dispositivos m´oveis ou celulares (JSR 172 [52]). Maamar et al. [34] apresenta um servi¸co Web com as seguintes propriedades: (a) independˆencia (a maior poss´ıvel) de plataformas espec´ıficas e paradigmas computacionais; (b) interorganizacional e (c) facilmente constru´ıdos a partir de padr˜oes como o Extensible Markup Language (XML) e o Simple Object Access Protocol (SOAP) [65]. Alguns trabalhos existentes j´a oferecem a possibilidade de integra¸c˜ao destes servi¸cos e recursos com aplica¸c˜oes residentes em dispositivos m´oveis, como em Christensen [18], em Chakraborty et al. [10] e em Heejung et al. [12]. Existem, inclusive, alguns trabalhos levando em considera¸c˜ao a ciˆencia de contexto como em Debaty [19], onde ´e proposto uma aplica¸c˜ao que permite acesso `a informa¸c˜oes m´oveis e sens´ıveis ao contexto em uma variedade de ambientes computacionais ub´ıquos.
As tecnologias de Servi¸cos Web tˆeem sido consideradas como solu¸c˜oes promissoras em ambientes computacionais ub´ıquos. A principal raz˜ao disto est´a no fato destes servi¸cos utilizarem padr˜oes como o XML, o SOAP, provendo a interoperabilidade entre servi¸cos e entre clientes, e sua alta capacidade de integra¸c˜ao em processos de neg´ocio (e.g., Business to Business (B2B) e Business to Client (B2C)). Diversos servi¸cos Web j´a est˜ao dispon´ıveis para uso por aplica¸c˜oes, e servi¸cos adicionais direcionados em informa¸c˜oes de perfil e contexto podem ser facilmente criados com o objetivo de prover suporte a aplica¸c˜oes em execu¸c˜ao nos diversos tipos de dispositivos m´oveis existentes. Podemos destacar algumas propostas de workflows de servi¸cos Web para ambientes ub´ıquos que consideram mudan¸cas em informa¸c˜oes de perfil e contexto, tais como em Joohyun et al. [31] e em Cho et al. [17].
2.3.5.1 A Composi¸c˜ao de Servi¸cos Web
Os servi¸cos dispon´ıveis em ambientes ub´ıquos necessitam tamb´em prover de uma forma autom´atica a adapta¸c˜ao para usu´arios m´oveis de acordo com as informa¸c˜oes dinˆamicas de perfil e contexto que podem ser obtidas tanto do usu´ario quanto do ambiente em que
2.4. Padr˜oes de Comunica¸c˜ao e Transporte de Dados 23
ele est´a. Em alguns casos, a composi¸c˜ao de servi¸cos ser torna poss´ıvel e ´util, onde uma combina¸c˜ao de servi¸cos Web semelhantes e/ou complementares seria disponibilizada ao usu´ario. O principal objetivo da composi¸c˜ao est´a na satisfa¸c˜ao das necessidades do usu´ario atrav´es da combina¸c˜ao de servi¸cos existentes, em situa¸c˜oes onde n˜ao h´a um servi¸co dispon´ıvel no ambiente capaz de realizar uma determinada funcionalidade. Urbieta et al. [57] destaca a composi¸c˜ao de servi¸cos em ambientes inteligentes e dinˆamicos com o foco nas seguintes caracter´ısticas: especifica¸c˜ao (qualidade, uso de recursos, etc.), execu¸c˜ao (contingˆencia e escalabilidade) e disponibilidade (topologia, infra-estrutura, etc.), usabilidade, adaptabilidade e eficiˆencia no seu uso. Bronsted et al. [6] apresenta a composi¸c˜ao de servi¸cos como sendo uma composi¸c˜ao de quatro principais ´areas: ciˆencia de contexto, gerenciamento de contingˆencias, gerenciamento da heterogeneidade de dispositivos e prover recursos aos usu´arios m´oveis.
2.4
Padr˜oes de Comunica¸c˜ao e Transporte de Dados
Os protocolos de comunica¸c˜ao e transporte de dados oferecem mecanismos para o envio de dados entre componentes distribu´ıdos em um dado sistema. Os protocolos de comunica¸c˜ao de dados definem regras padronizadas na representa¸c˜ao de dados, sinaliza¸c˜ao, autentica¸c˜ao e detec¸c˜ao de erros necess´arios no envio de informa¸c˜oes sobre um canal de comunica¸c˜oes. Os protocolos no n´ıvel de aplica¸c˜ao dependem de outros protocolos em camadas inferiores para o transporte destes dados sobre a rede, como por exemplo, o HyperText Transfer Protocol (HTTP) e o Extensible Messaging and Presence Protocol (XMPP) [27]. As camadas inferiores do modelo Open Systems Interconnection (OSI) definem protocolos no n´ıvel de camada de transporte, Internet, enlace e f´ısica, provendo assim diversos servi¸cos para camadas superiores.
No que diz respeito `a utiliza¸c˜ao de protocolos de comunica¸c˜ao para sistemas distribu´ıdos, Baldoni et al. [3] recomendam a ado¸c˜ao de protocolos padr˜oes como o Transmission Control Protocol (TCP) ou User Datagram Protocol (UDP), ou protocolos de middleware baseados em TCP como o SOAP ou o Internet Inter-Orb Protocol (IIOP) na comunica¸c˜ao entre componentes distribu´ıdos. A padroniza¸c˜ao na comunica¸c˜ao entre componentes presentes em sistemas distribu´ıdos ´e de extrema importˆancia devido `a necessidade de intera¸c˜ao entre clientes e servi¸cos heterogˆeneos. Desta forma, a utiliza¸c˜ao de protocolos padronizados beneficia a integra¸c˜ao entre os diversos tipos de componentes, sendo estes m´oveis ou fixos, locais ou remotos.
Em destaque na representa¸c˜ao de dados na comunica¸c˜ao entre componentes, o XML define um importante papel na padroniza¸c˜ao das mensagens trocadas entre consumidores e produtores em um sistema baseado em eventos. Sua ado¸c˜ao na
representa¸c˜ao de estruturas de dados arbitr´arias na comunica¸c˜ao de dados pela Web (e.g., HyperText Markup Language (HTML) e SOAP/Web Services) tem sido largamente aplicada devido `a sua simplicidade no envio e processamento das informa¸c˜oes representadas. Outras vantagens incluem a flexibilidade no uso de marcadores ou tags, a padroniza¸c˜ao, independˆencia de plataforma (e.g., imune a mudan¸cas de tecnologia) e a capacidade de envio de documentos neste formato sobre o protocolo HTTP e atrav´es de mecanismos de seguran¸ca tais como firewalls.
2.5
Arquitetura Baseada em Eventos e Servi¸cos
A arquitetura baseada em eventos ou Event Driven Architecture (EDA) [11] define um padr˜ao de arquitetura de sistemas focado na produ¸c˜ao, detec¸c˜ao, consumo e rea¸c˜ao a eventos em decorrer de mudan¸cas de estados conforme apresentado na se¸c˜ao 2.3.2. Esta opera¸c˜ao de consumo e rea¸c˜ao `a eventos pode resultar em atividades executadas pelo usu´ario ou pelo pr´oprio dispositivo. Podemos citar, por exemplo, cen´arios em uma aplica¸c˜ao m´ovel tur´ıstica onde o usu´ario m´ovel inicia suas atividades de visita¸c˜ao a partir de uma lista de atra¸c˜oes de um local. Durante a sua locomo¸c˜ao e visita em atra¸c˜oes, seu estado poder´a alterar continuamente, como por exemplo, ”em movimento”(e.g. entre atra¸c˜oes), ”na atra¸c˜ao”, ”cansado”, ”com fome”, ”conclu´ıdo”. Neste caso, o guia tur´ıstico trata cada uma das mudan¸cas de estado na forma de eventos produzidos e publicados por componentes e aplica¸c˜oes presentes no sistema. Podemos exemplificar tamb´em um servi¸co m´ovel de aux´ılio ao turista interessado em visitar atra¸c˜oes tur´ısticas em uma determinada cidade. A partir do conhecimento de seu perfil (e.g., interesses, idade, estado civil), o servi¸co ´e capaz de sugerir atividades tur´ısticas que melhor se encaixam no perfil definido pelo turista. Outras possibilidades incluem o agrupamento de turistas a partir de interesses m´utuos, o provimento de servi¸cos em tempo real em fun¸c˜ao de condi¸c˜oes definidas no contexto do usu´ario (e.g., fome, sono, com pressa, dentre outros) e a resolu¸c˜ao de conflitos entre grupos tur´ısticos. No que diz respeito `a constru¸c˜ao de sistemas baseados em eventos, o modelo arquitetˆonico utilizado tende para duas alternativas: o orientado a eventos e a servi¸cos. Entretanto, estas alternativas possuem algumas caracter´ısticas em comum, tais como modulariza¸c˜ao, baixo acoplamento e a alta adaptabilidade. Isto demonstra a integra¸c˜ao f´acil e natural de ambas alternativas na modelagem e desenvolvimento de sistemas distribu´ıdos baseados em eventos. Enquanto o sistema eda fornece a publica¸c˜ao e notifica¸c˜ao de eventos, o sistema baseado em Service Oriented Architecture (SOA) permite o fornecimento de acesso `a servi¸cos remotos para aplica¸c˜oes m´oveis. A arquitetura orientada a servi¸cos permite a constru¸c˜ao e integra¸c˜ao de sistemas a partir
2.5. Arquitetura Baseada em Eventos e Servi¸cos 25
de uma composi¸c˜ao de servi¸cos interoper´aveis. Um dos principais focos do modelo SOA est´a no baixo acoplamento entre servi¸cos, sistemas operacionais, linguagens de programa¸c˜ao e outras tecnologias que comp˜oem as aplica¸c˜oes, permitindo assim uma computa¸c˜ao distribu´ıda e programa¸c˜ao modular. Desta forma, toda a arquitetura criada ´e composta por um conjunto de servi¸cos que comunicam entre si atrav´es da passagem de parˆametros entre consumidores e produtores de servi¸cos.