ORIENTAÇÃO A OBJETOS PARA CONSTRUÇÃO DE SERVIÇOS AUTOMATIZADOS EM AMBIENTES DE COMPUTAÇÃO PERVASIVA 1 PEROZZO, Reiner Franthesco 2 ; ZAMBERLAN, Alexandre de Oliveira 3 1 Trabalho de Pesquisa _UNIFRA 2 Curso de Ciência da Computação do Centro Universitário Franciscano (UNIFRA), Santa Maria, Brasil 3 Curso de Sistemas de Informação do Centro Universitário Franciscano (UNIFRA), Santa Maria, Brasil E-mail: reiner.perozzo@unifra.br; alexzl@unifra.br; RESUMO A grande difusão e oferta de dispositivos eletrônicos, com variado poder de computação, baixo consumo de energia e, principalmente, alto grau de conectividade, aliada com a disseminação das redes de comunicação de dados em ambientes automatizados estão contribuindo para o avanço da computação ubíqua e pervasiva. Dentro desse contexto há uma mudança de paradigma: o da onipresença, em que os ambientes tentam oferecer às pessoas suporte inteligente em suas atividades diárias. Com isso, surgem diferentes propostas que buscam criar um modelo genérico de referência para a construção de projetos computacionais nessas áreas. Este trabalho apresenta, justamente, uma proposta de adaptação para uma das principais arquiteturas de referência que estão sendo utilizadas na construção de ambientes pervasivos programáveis. O objetivo desta proposta é oferecer uma nova abordagem, inspirada nos conceitos da orientação a objetos, que visa a criação desses ambientes pervasivos independentes de tecnologia. Palavras-chave: Ambientes Inteligentes; Arquiteturas Computacionais; Automação. 1. INTRODUÇÃO Nos últimos anos a computação ubíqua e pervasiva vislumbrada por (WEISER, 1991) vem ganhando um espaço considerável tanto na área acadêmica quanto industrial. Na computação ubíqua e pervasiva tem-se a definição de um estágio em que sistemas computacionais disponibilizam informações e serviços às pessoas, em qualquer lugar e em qualquer momento. Em algum momento a computação ubíqua e a computação pervasiva podem se confundir, entretanto há uma diferença clara entre ambas: a mobilidade, caracterísitica típica da ubiquidade (ARK & SELKER, 1999; DUCATEL, 2001). Dentro desse contexto estão surgindo cada vez mais propostas de arquiteturas para construção de ambientes ubíquos e pervasivos. Enquanto as arquiteturas antigas eram bastante centralizadas e pouco flexíveis, os sistemas modernos são altamente descentralizados e consistem em dispositivos autônomos baseados em microcontroladores, os quais são capazes de processar a informação localmente e tomar decisões (HELAL, 2005). Estes sistemas adaptativos e flexíveis são considerados sistemas inteligentes altamente confiáveis, em que sensores, atuadores e outros dispositivos de automação podem interagir 1
e comunicar-se um com os outros, usando diferentes padrões (protocolos) de comunicação. (ANASTASOPOULOS et al., 2005). Em cenários de computação ubíqua e pervasiva, tem-se a visão de um mundo cercado por uma grande quantidade de dispositivos que oferecem suporte inteligente às atividades diárias dos usuários. É, basicamente, um paradigma de informações tecnológicas em que os objetos informatizados estão introduzidos em um determinado ambiente físico que se adapta às diferentes necessidades e situações dos usuários (KIRSTE, 2005), tendo autonomia para agir e sendo programado para reconhecer ou, até mesmo, aprender o comportamento do usuário que vive nesse ambiente (HAGRAS, 2004). Esses ambientes estão relacionados com a automação predial e residencial, uma vez que o desenvolvimento de projetos nessa área necessita de sistemas automatizados e microcontrolados, incluindo sensores, atuadores e, principalmente, sistemas inteligentes para o gerenciamento e otimização de tarefas (EDWARDS, 2006). Uma ampla variedade de serviços em áreas como segurança (controle de acesso, identificação de usuários), conforto (controle de temperatura e umidade, iluminação) e entretenimento está surgindo diariamente, trazendo consigo muitos problemas a serem resolvidos, como o aumento do consumo de energia elétrica nesses ambientes, que pode ser otimizado através da utilização de sistemas computacionais inteligentes que tratam do gerenciamento de energia. Outros problemas estão relacionados com as questões de mobilidade, adaptabilidade e heterogeneidade nesses ambientes, devido ao grande número de soluções existentes tanto em termos de hardware quanto em termos de software. Um aspecto importante é que as técnicas de interação entre humanos e ambientes automatizados vêm recebendo, há algum tempo, uma atenção especial na pesquisa. Um exemplo está no centro de estudos da Philips (PHILIPS RESEARCH, 2008), a qual acredita que, no ano de 2020, as pessoas irão se relacionar com os dispositivos microcontrolados de forma mais natural e amigável, uma vez que os ambientes pervasivos e seus dispositivos terão a capacidade de responder às necessidades e adaptar seu comportamento em função da presença dos usuários. A área da computação pervasiva está cercada por uma diversidade de subáreas, exploradas com o claro objetivo de oferecer aos usuários maior conforto, praticidade, segurança ou, simplesmente, que os ambientes possam oferecer suporte inteligente a atividades diárias do ser humano. Como exemplos de projetos que tentam atingir o nível tecnológico previsto pela Philips, é possível citar o projeto Amigo (AMIGO, 2012), que envolve um esforço coletivo entre algumas das principais empresas e instituições de pesquisa da Europa, nos quesitos de telefonia celular, desenvolvimento de software, redes residenciais, e diversos outros segmentos com o objetivo de construir um middleware aberto 2
e padronizado para suportar as mais variadas aplicações existentes em ambientes pervasivos. Outra tentativa é liderada pela empresa Microsoft, através do projeto Easy Living (EASY LIVING, 2008), a qual busca o desenvolvimento de novas tecnologias, também para oferecer suporte à pervasividade. No Easy Living, o foco está mais direcionado aos ramos de visão computacional, rastreabilidade (tracking), redes de sensores e interoperabilidade de dispositivos. Diante das inúmeras propostas de arquiteturas para ambientes de computação pervasiva, há um destaque para a proposta de Helal (2005), que apresenta um modelo arquitetural de referência para a construção de ambientes pervasivos. Entretanto, esse modelo possui algumas restrições, principalmente no que se refere ao uso de uma tecnologia específica: o framework Open Services Gateway initiative (OSGi), em que serviços básicos de um ambiente pervasivo, tais como: sensores e atuadores são representados por bundles (elementos ou aplicações de serviços que podem ser instalados no framework OSGi). A vantagem, nesse caso, é a de que os desenvolvedores de aplicações pervasivas podem criar serviços compostos utilizando um protocolo de descoberta de serviços para encontrar os serviços que, posteriormente, serão utilizados. Entretanto, a principal desvantagem nesse caso é de que toda uma arquitetura conceitual de referência fica dependente de uma tecnologia. Dessa forma, este trabalho aborda uma estratégia orientada a objetos, justamente para substituir por classes e interfaces as camadas da arquitetura de referência genérica de Helal (2005), buscando obter uma maior flexibilidade na construção de ambientes pervasivos. 2. GATOR TECH: ARQUITETURA COMPUTACIONAL DE REFERÊNCIA Muitos sistemas de computação pervasiva desenvolvidos no passado hoje apresentam a falta de habilidade para tratar tanto das novas tecnologias que surgem quanto em domínios específicos de aplicação. A proposta Gator Tech (HELAL, 2005) para ambientes pervasivos programáveis é um projeto vinculado ao laboratório de computação móvel e pervasiva, da Universidade da Flórida, cujo objetivo do projeto é oferecer um modo escalável para o desenvolvimento de tecnologias inteligentes. Existe um esforço dos grupos de pesquisa em universidades e em indústrias para desenvolver protótipos de sistemas que demonstrem os benefícios da computação pervasiva nos mais diversos domínios de aplicação. Os projetos, basicamente, estão focados na integração básica do sistema, o que inclui interconexão, sensores, atuadores, computadores e outros dispositivos presentes no ambiente. 3
O projeto Gator Tech considera a existência de ambientes de execução e bibliotecas de software para o desenvolvimento de ambientes pervasivos programáveis. A descoberta de serviços e os protocolos de gateways integram automaticamente componentes de sistemas utilizando um middleware genérico que suporta uma definição de serviço para cada sensor e atuador no ambiente. Dentro da abordagem proposta no projeto Gator Tech estão destacados mecanismos para: (i) tratar de e-mails inteligentes, com percepção e notificação aos usuários; (ii) o uso de tags RFID para acesso e identificação dos usuários no ambiente; (iii) um simulador de direção para testar as habilidades das pessoas idosas frente ao trânsito, com a intenção de coletar dados para realização de novas propostas de pesquisa; (iv) camas inteligentes, instaladas com equipamentos para monitorar o sono das pessoas; (v) banheiros inteligentes, com exibição de mensagens importantes no espelho, sensores de papel toalha, de fluxo de água e de temperatura; (vi) refrigeradores inteligentes, smartphones, monitoramento e segurança residencial, chamadas de emergência e diversos outros serviços que auxiliam os usuários contemplam o domínio do ambiente pervasivo programável. Para criar a casa inteligente Gator Tech foi desenvolvida uma arquitetura de referência genérica aplicável a qualquer espaço de computação pervasiva. Conforme ilustra a Figura 1, um middleware contém camadas separadas: camadas física, plataforma de sensores, serviços, conhecimento, gerenciamento de contexto e aplicação. Figura 1: Arquitetura de Referência Genérica. Fonte : [HELAL, 2005]. As camadas que fazem parte da arquitetura de referência genérica são especificadas 4
como: Camada Física: composta por várias aplicações domésticas e dispositivos que são utilizados pelos usuários, tais como: lâmpada, televisor, set-top-box (STP) e rádio-relógio. Também são incluídos nesta camada dispositivos como: aparelhos de ar condicionado, termostatos e outros. Camada de Plataforma de Sensores: responsável pela comunicação com os dispositivos de aplicações domésticas, tais como: sensores e atuadores, os representando para o resto do middleware de modo uniforme. A plataforma de sensores é a responsável pela conversão de sensores e atuadores da camada física para serviços de software que podem ser programados ou compostos por outros serviços. Uma vantagem é que os desenvolvedores podem definir serviços sem ter que, necessariamente, entender o mundo físico. Camada de Serviço: composta pelo framework OSGi, em que serviços básicos representam o mundo físico por meio da plataforma de sensores, consistindo em bundles de serviços para cada sensor e atuador representado no framework OSGi. Os desenvolvedores de aplicações podem criar serviços compostos utilizando um protocolo de descoberta de serviços para encontrar e serviços que posteriormente serão utilizados. Camada de Conhecimento: contém uma ontologia de vários serviços, dispositivos e aplicações domésticas conectadas ao sistema. Isso cria a possibilidade de raciocínio sobre os serviços, como, por exemplo: o sistema deve converter a saída de um sensor de temperatura antes de realizar um outro serviço. A engine de raciocínio determina se um algum serviço composto está disponível em um dado momento. Camada de Gerenciamento de Contexto: permite que os desenvolvedores de aplicação criem e registrem os contextos de interesse. Cada contexto é implementado como um serviço OSGi. Um contexto pode definir ou restringir a ativação de serviços para várias aplicações, podendo, também, especificar estados que um ambiente pervasivo não pode entrar. A engine de contexto é responsável por detectar e, possivelmente, recuperar os estados. Camada de Aplicação: consiste de um gerenciador de aplicação para ativar e desativar serviços, e de um ambiente de desenvolvimento integrado com várias ferramentas para auxiliar na criação dos ambientes inteligentes. Com o context builder um desenvolvedor pode construir visualmente um gráfico que relaciona comportamento com contexto. É possível, os desenvolvedores utilizarem agregador de serviços para procurar e descobrir os serviços ou registrar um novo serviço. 5
3. PROPOSTA DO TRABALHO A proposta consiste em utilizar o paradigma da orientação a objetos na construção de serviços automatizados nos ambientes de computação pervasiva, alterando as camadas de Serviço e Plataforma de Sensor da arquitetura de referência Gator Tech, uma vez que elas estão totalmente atreladas a tecnologia OSGi. Outro fator importante é que utilizando o conceito de classes e objetos, presentes na orientação a objetos, os serviços poderiam ser representados por métodos de classes, as quais implementariam as interfaces que também substituiriam os bundles existentes na Plataforma de Sensor. Dessa forma, este trabalho apresenta uma abordagem orientada a objetos para as camadas de Serviço e Plataforma de Sensor proposta por Helal (2005). Dentro desse contexto, a camada de Serviço é substituída pela camada Classes de Serviços, a qual possui um conjunto de classes que compõem os serviços a serem utilizados. A camada Plataforma de Sensor é substituída pela camada de Interfaces, as qual disponibiliza os métodos de comunicação com os dispositivos de automação e deverão ser implementados pelas classes de serviços. No que tange a composição de serviços da arquitetura Gator Tech, a mesma funcionalidade é mantida através dos conceitos de composição e agregação presentes na orientação a objetos, em que classes podem conter outras classes. Figura 2: Adaptação da Arquitetura de Referência. Seguindo essa nova abordagem, considera-se que um serviço disponibilizado no ambiente de computação pervasiva pode ser definido como um método de uma classe com 6
o nome do serviço, sendo que a classe mantenedora do serviço implementa uma interface para comunicação com os elementos da camada física (sensores, atuadores e demais dispositivos de automação). Desse modo, a classe de serviço que implementa a interface deve conhecer as propriedades dos dispositivos para realizar a comunicação. Como exemplos dessas propriedades é possível destacar o protocolo de comunicação utilizado pelo elemento, bem como o endereço de rede, a porta de comunicação e os comandos de ação (escrita ou leitura) dos dispositivos. Para a validação da proposta, tanto as classes quanto as interfaces foram implementadas na linguagem de programação Java, totalmente orientada a objetos e multiplataforma. Entretanto, outras linguagem programação orientada a objetos poderiam ser utilizadas para a implementação e validação dos conceitos propostos. Na Figura 3 é apresentado o código-fonte da Interface Actuador para acesso aos dispositivos de automação, a qual é implementada pela classe Service_B (Figura 4). Figura 3: Código-fonte da interface Actuador. Figura 4: Código-fonte da classe Service_B. Dentre as classes e interfaces desenvolvidas para a proposta, são apresentadas apenas uma de cada modalidade pelo fato de que as demais seguem o mesmo princípio: uma provê o método de acesso e a outra implementa, de fato, esse método. A operacionalização da proposta pode ser dada através da construção de cenários de computação pervasiva que utilize, por exemplo, o conjunto de soluções projetado pela empresa Homesystems (HOMESYSTEMS, 2012), a qual possui uma arquitetura computacional abrangendo diferentes módulos de automação conectados em rede. Esses módulos podem ser autônomos ou receberem comandos de um módulo controlador central, chamado Systembox. O Systembox é um computador com sistema operacional Linux, responsável por controlar a rede Homesystems Network (HSNET) com o protocolo de comunicação que opera sobre a camada física RS-485. O objetivo é executar funcionalidades, oferecendo comunicação remota com todos os módulos da arquitetura, 7
através de uma interface web. A arquitetura Homesystems disponibiliza, ainda, um conjunto de dispositivos que podem ser utilizados em sistemas de iluminação, ar condicionado e sistemas de segurança. Dessa forma, como estudo de caso deste trabalho, considera-se que a Camada Física da arquitetura seja composta por um controlador central e dispositivos de automação, tal como o Systembox e seus módulos. Com isso, o as classes desta proposta implementariam o método de comunicação com o controlador central e realizariam os acionamentos. Um exemplo de como ficaria uma classe de serviço realizando a comunicação e o acionamento do Systembox pode ser observado na Figura 5. Figura 5: Código-fonte da classe Service_B. O código-fonte da Figura 5 representa a classe de serviço Iluminar_Ambiente implementando a interface Actuador e realizando o acionamento da lâmpada para atingir ao objetivo do serviço solicitado. Nesse caso, o Systembox (controlador central de automação) está disponível no endereço de rede 10.1.1.7, sendo que de todos os dispositivos controlador por ele, a lâmpada está configurada como unidade 119, aceitando os comandos para ser ligada (1) ou desligada (0). Esse exemplo confirma a possibilidade e a viabilidade de implementação desta proposta através dos conceitos da orientação a objetos. Uma das principais vantagens deste trabalho em relação ao anterior é que o modelo conceitual da arquitetura de referência fica livre de tecnologias associadas, podendo ser implementada de forma aberta e permitindo a interoperabilidade entre os componentes arquiteturais que se fazem presente na mesma. 8
4. RESULTADOS E DISCUSSÕES A ideia de serviços contida na arquitetura de referência proposta por Helal (2005) baseia-se em ações que um ambiente pervasivo deve executar. Entretanto, essas ações são possíveis somente atrelando o conceito com a tecnologia de serviços OSGi. Tal característica limita o uso da arquitetura e restringe a sua implementação em função de que nem todos os ambientes pervasivos contam com o framework OSGi para orquestração desses serviços. Diante disso, a nova abordagem proposta neste trabalho sugere a substituição da tecnologia OSGi pelos conceitos da orientação a objetos, em que qualquer ambiente pervasivo poderia ser programado através de diferentes linguagem de programação orientadas a objetos, através da implementação de classes e interfaces. Essa abordagem se mostra interessante por permitir que ambientes pervasivos sejam programáveis independente de tecnologias associadas, visando a interoperabilidade entre sistemas e dispositivos por meio de conceitos da orientação a objetos, como demonstrado na Figura 5. 5. CONCLUSÃO Este trabalho apresentou uma nova abordagem para a construção de ambientes pervasivos programáveis. A proposta sugere uma adaptação à arquitetura computacional de referência desenvolvida por Helal (2005), o qual propôs uma modelo que seria genérico o suficiente para permitir a criação de ambientes pervasivos. Entretando, a arquitetura proposta por Helal (2005) tende a ser mais específica, uma vez que ela está fortemente atrelada com a tecnologia OSGi. Dessa forma, este trabalho propôs uma adaptação dessa arquitetura, substituindo duas camadas com o claro objetivo de se obter a generalidade de fato. Para isso, foram sugeridas as camadas de Serviço e de Interfaces, sendo que estas os possuem os conceitos da orientação a objetos, permitindo que seus componentes sejam implementados e utilizados independentemente de tecnologia. Os testes realizados para a validação da proposta destacam a viabilidade de operacionalização da arquitetura, bem como demonstram a sua modularidade e heterogeneidade. Essas características são obtidas pela nova abordagem quando um serviço do ambiente pervasivo pode ser considerado uma classe de serviços que utiliza um dispositivo de automação do ambiente, através da implementação de uma interface de acesso. O resultado da proposta e de sua aplicação sugerem que somente uma arquitetura computacional independente de tecnologia pode, realmente, ser considerada genérica o suficiente para servir como referência para construção de ambientes pervasivos. 9
REFERÊNCIAS AMIGO PROJECT. Ambient intelligence for the networked home environment. Disponível em: <http://www.hitech-projects.com/euprojects/amigo>. Acesso em: 14 ago. 2012. ANASTASOPOULOS, M. et al. Towards a reference middleware architecture for ambient intelligent systems. In: WORKSHOP FOR BUILDING SOFTWARE FOR PERVASIVE COMPUTING, 2005, San Diego. Procedings OOPSLA, 2005. ARK, W. S.; SELKER, T. A look at human interaction with pervasive computers. IBM Systems Journal, Riverton, v. 38, n. 9, p. 504 507, 1999. DUCATEL, K. et al. Scenarios for ambient intelligence (ISTAG Report). Seville: Institute for Prospective Technological Studies (European Commission), 2001. EASY LIVING. Microsoft easy living project. Disponível em <http://research.microsoft.com/easyliving>. Acesso em: 30 out. 2008. EDWARDS, W. K. Discovery Systems in Ubiquitous Computing. IEEE pervasive computing, New York, v. 5, n. 2, p. 70-77, Apr./June 2006. HAGRAS H. et al. Creating an ambient-intelligence environment using embedded agents. IEEE Intelligent Systems, Los Alamitos, v. 19, n. 6, p. 12 20, Nov./Dec. 2004. HELAL, S. ET AL. The Gator Tech Smart House: A Programable Pervasive Space. In: IEEE Pervasive Computing, p 64-74, 2005. HOMESYSTEMS. Ambientes inteligentes, automação e segurança. Disponível em <http://www.homesystems.com.br>. Acesso em: 14 ago. 2012. KIRSTE T. Smart environments and self-organizing appliance ensembles. In: AARTS E, ENCARNAÇÃO J. L.: True Visions, Germany: Springer, 2005. PHILIPS RESEARCH. What is ambient intelligence systems and pervasive computing. Disponível em <http://www.research.philips.com/technologies/syst_softw/ami/index.html> Acesso em: 28 out. 2008. WEISER, M. The computer for the 21st century. Scientific American, New York, v. 265, n. 3, p. 94-104, Sept. 1991. 10