Gustavo Henrique Rodrigues Pinto Tomas UMA ARQUITETURA PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS Dissertação de Mestrado Universidade Federal de Pernambuco [email protected] www.cin.ufpe.br/~posgraduacao RECIFE 2014 Universidade Federal de Pernambuco Centro de Informática Pós-graduação em Ciência da Computação Gustavo Henrique Rodrigues Pinto Tomas UMA ARQUITETURA PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS Trabalho apresentado ao Programa de Pós-graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de Mestre em Ciência da Computação. Orientador: Vinicius Cardoso Garcia Coorientador: Alexandre Alvaro RECIFE 2014 Catalogação na fonte Bibliotecário Jefferson Luiz Alves Nazareno, CRB 4-1758 Tomas, Gustavo Henrique Rodrigues Pinto. Uma arquitetura para cidades inteligentes baseada na internet das coisas. – Recife: O Autor, 2014. 109f. : fig. Orientadora: Vinícius Cardoso Garcia. Dissertação (Mestrado) - Universidade Federal de Pernambuco. Cin. Ciência da computação , 2014. Inclui referências e apêndice. 1. Engenharia de software . 2. Internet das coisas. I. Garcia, Vinícius Cardoso. (orientador). II. Título. 005.1 (22. ed.) MEI 2014-56 Dissertação de Mestrado apresentada por Gustavo Henrique Rodrigues Pinto Tomas à Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco, sob o título “Uma Arquitetura para Cidades Inteligentes Baseada na Internet das Coisas” orientada pelo Prof. Vinicius Cardoso Garcia e aprovada pela Banca Examinadora formada pelos professores: ______________________________________________ Prof. Kiev Santos da Gama Centro de Informática / UFPE ______________________________________________ Prof. Gibeon Soares de Aquino Junior Departamento de Informática e Matemática Aplicada/UFRN _______________________________________________ Prof. Vinícius Cardoso Garcia Centro de Informática / UFPE Visto e permitida a impressão. Recife, 26 de fevereiro de 2014. ___________________________________________________ Profa. Edna Natividade da Silva Barros Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco. À minha família, por sempre me proporcionar totais condições para a realização dos meus estudos. Aos meus irmãos, que esta dissertação sirva de inspiração para suas futuras decisões profissionais. À Crisley, por sempre estar ao meu lado e me ajudar a ver o lado bom de tudo. Dedico. Agradecimentos Primeiramente gostaria de agradecer a Deus por me proporcionar todas as condições para a realização deste trabalho e, principalmente, por ter colocado em meu caminho pessoas muito especiais que me ajudaram nesta aventura. Algumas destas pessoas serão brevemente citadas a seguir: Agradeço ao meu orientador Vinicius Cardoso Garcia, pela orientação, pelo espírito acolhedor, pelo incentivo e pelas cobranças, totalmente necessárias, para me manter o tempo todo focado no objetivo final. Não poderia deixar de agradecer a liberdade e abertura para discutir novas ideias e definir novas metas, sem deixar de lado a qualidade do trabalho. Os questionamentos e a experiência de outras áreas foram de suma importância para a concretização da proposta. A coragem em se aventurar em uma área de pesquisa recente, na qual ninguém possuía muita experiência, fatalmente separa os vencedores dos medrosos. Além disso, a confiança em permitir, que uma parte do mestrado seja realizada remotamente, certamente foi uma atitude de uma pessoa grande, tanto profissionalmente quanto espiritualmente. Ao grande pesquisador e amigo Alexandre Alvaro pela ajuda e compartilhamento de suas experiências antes mesmo de iniciar o mestrado. Certamente daquele dia em diante, você começou a ser observado com olhos de admiração. Agradeço também por ter apresentado a área de pesquisa e, principalmente, as oportunidades que estavam envolvidas. Os feedbacks do trabalho sempre contribuíram de forma muito positivamente, assim como os bate-papos, por mais “viajados” que fossem. Ao grande irmão de consideração Welington Manoel da Silva, pelo tempo de convivência, pelos aprendizados deste período e, principalmente, pela paciência e bom humor para enfrentarmos juntos toda aquela situação. Em relação à parte técnica, todos os questionamentos e palpites foram fundamentais para o aprimoramento da proposta. A forma pelo qual Welington compartilhou seus conhecimentos comigo certamente evidencia uma das suas principais características: compaixão com o próximo. Agradeço a minha família pela compreensão nos dias em que fiquei trancado no quarto e nos dias de indisponibilidade para conversar por telefone. Em especial aos meus pais Érica e Elcio, agradeço ao suporte que, por mais que não seja o que eles gostariam de proporcionar, foi muito mais do que o suficiente para a minha formação, tanto como homem quanto profissional. Ainda em relação à família, agradeço aos meus irmãos Larissa e Júnior, por aturarem o meu mau humor quando as coisas pareciam estar desabando. Sinceramente, espero que este novo objetivo alcançado na minha vida sirva de exemplo para que eles acreditem nos respectivos potenciais e, principalmente, na capacidade de atingir seus objetivos. Não poderia de deixar de fora a minha amiga, companheira, revisora de textos em inglês e português: Crisley. A sua compaixão e o seu jeitinho singular foram as forças que eu precisava nos momentos de maiores dificuldades. Olhando para trás, não consigo enxergar outra forma de enfrentar os meus desafios sem o seu positivismo. A compreensão e a paciência para enfrentar 9 meses à distância certamente comprovaram que somos iguais ao amanhecer: independente do que aconteça, sempre estaremos juntos para enfrentar qualquer tipo de escuridão. Ao Centro de Estudos e Sistemas Avançados do Recife (C.E.S.A.R) pela coragem e confiança em aceitar o desafio de conciliar a rotina de trabalho de 40h semanais com as disciplinas do mestrado. Nesse sentido, gostaria de agradecer imensamente os meus gestores Paulo Urbano e Roberta Hazin pela coragem, compreensão e, principalmente, por não aliviarem as minhas tarefas, o que contribuiu muito para a minha formação acadêmica e profissional. Espero que eles tenham a consciência de que esse tipo de atitude afetou, e muito, positivamente a vida de uma pessoa. Certamente gestores com esse perfil deveriam ser supervalorizados nas suas atribuições. Considero a forma como a situação foi conduzida um exemplo a ser seguido na minha vida. Finalmente, gostaria de agradecer a todos que de alguma forma, direta ou indiretamente, contribuíram para a realização deste trabalho. Resumo De acordo com recentes pesquisas, a população mundial esta crescendo de forma desproporcional aos recursos necessários para a vida humana. Cada vez mais a quantidade de pessoas vivendo nas áreas urbanas aumenta, devido à diversos fatores, como as oportunidades que são geradas nestes grandes centros. Este desenfreado crescimento populacional, principalmente nas áreas urbanas, além de outros fatores como má governança, ocasiona e/ou intensifica diversos problemas urbanos. Para exemplificar este fato, pode-se citar os grandes problemas que as cidades brasileiras enfrentam nas áreas de transporte, saúde e educação, evidenciados, rotineiramente, pela mídia em geral. Neste contexto, o conceito de Cidade Inteligente (CI) visa mitigar estes problemas a fim de aumentar a qualidade de vida dos cidadãos. Para tal, uma importante ferramenta para a implementação de uma CI é a Internet of Things (Internet das Coisas) (IoT), na qual diversos objetos são combinados para atingir um objetivo em comum como, fornecer informações do fluxo de veículos de uma cidade. Porém, para que este cenário seja de fato consolidado, necessita-se de uma Arquitetura de Software (AS) capaz de integrar e combinar as diferentes tecnologias e dados que compõem os serviços urbanos. Na literatura pode-se encontrar várias Arquiteturas de Software (AS’s) para CI, inclusive com apoio de grandes empresas. Porém, estas AS’s visam atender apenas um determinado serviço urbano com uma aplicação específica, o que não caracteriza de fato uma implementação de CI. Motivado por estes desafios, esta dissertação apresenta a especificação, o projeto e a avaliação de uma AS para CI que permite a integração com IoT, baseado no conjunto de requisitos extraídos das soluções existentes. Adicionalmente, são discutidos os resultados obtidos, os problemas encontrados, e as direções futuras para pesquisa e o desenvolvimento. Palavras-chave: Cidades Inteligentes, Internet das Coisas, Arquitetura de Software Abstract According to recent researches, global population is increasing disproportionally from the essential resources for human life. More and more, the amount of people living in urban areas is increased due to several factors, including the opportunities which are generated in these locals. This unbridled populational growth, mainly in urban areas, and other factors such as poor governance, leads and/or enhances many urban problems. To illustrate this fact, we can mention the major problems that Brazilian cities face in the areas of transport, health and education, evidenced routinely by the media in general. In this context, the Smart City (SC) concept attempts to mitigate these problems in order to increase the citizens quality of life. For such an important tool for the implementation of a SC is the Internet of Things (IoT), in which several objects are combined to achieve a common goal, such as, details of the flow of vehicles in a city. Nevertheless, in order to consolidate this scenario, a software architecture that is able to integrate and combine different technologies and data that comprise the urban services is required. In literature we can find several architectures for SC, including support of large companies. However, these architectures aim to meet only an urban service with specific application, which features not in fact an implementation of SC. Motivated by these challenges, this thesis presents the specification, the design and evaluation of a SC architecture that allows integration of IoT technologies, based on a set of requirements drawn from existing approaches. Additionally, we discuss the results obtained, the problems found, and the future steps for research and development. Keywords: Smart Cities, Internet of Things, Software Architecture Lista de Figuras 1.1 Arquitetura de Software (AS) da solução proposta . . . . . . . . . . . . . . . . 25 3.1 3.2 Estratégia de Busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado da filtragem das abordagens . . . . . . . . . . . . . . . . . . . . . . 39 40 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Integração das visões do modelo “4+1” com as visões definidas pelo SEI Visão lógica da Arquitetura de Software (AS) proposta . . . . . . . . . Abstração da operação de um recurso receber dados . . . . . . . . . . . Abstração da operação de um recurso fornecer dado . . . . . . . . . . . Abstração da operação de um recurso fornecer um novo tipo de dado . . Operação de composição de dados urbanos . . . . . . . . . . . . . . . Visão de Implementação . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de Componente Conector . . . . . . . . . . . . . . . . . . . Diagrama de Dependências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 63 66 66 66 67 70 71 72 5.1 Resultado da avaliação dos cenários . . . . . . . . . . . . . . . . . . . . . . . 88 . . . . . . . . . . . . . . . . . . . . . . . . . . . B.1 Printscreen do formulário online utilizado pelos participantes para propor os cenários de uso da AS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Printscreen da Parte 1/3 do formulário online para quantificar a adequação da AS aos respectivos cenários . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3 Printscreen da Parte 2/3 do formulário online para quantificar a adequação da AS aos respectivos cenários . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.4 Printscreen da Parte 3/3 do formulário online para quantificar a adequação da AS aos respectivos cenários . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 107 107 107 Lista de Tabelas 3.1 3.2 3.3 3.4 Quantidade de abordagens por fonte de pesquisa Abordagens resultantes por ordem cronológica Resumo das abordagens descritas na literatura . Mapeamento requisitos-arquiteturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 42 49 56 4.1 4.2 4.3 4.4 Requisitos abordados . . . . . . . . . . . . . . . . . . . . . . . . . . Mapeamento Requisitos por Módulo . . . . . . . . . . . . . . . . . . Resumo da quantidade de processos e threads em tempo de execução Requisitos físicos de utilização da arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 65 68 71 5.1 5.2 5.3 5.4 5.5 5.6 Métodos de Avaliação Vs Atributos de Qualidade Métodos de Avaliação Vs Objetivo . . . . . . . . Etapas do método adaptado . . . . . . . . . . . . Expertises da equipe de avaliação . . . . . . . . Priorização dos Atributos de Qualidade . . . . . Cenários resultantes de acordo com a relevância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 79 80 81 84 87 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Repositórios de busca na Systematic Literature Review (Revisão Sistemática da Liteturatura) (SLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Lista de Acrônimos AS Arquitetura de Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 DHT Distributed Hash Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 IoT Internet of Things (Internet das Coisas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 CI Cidade Inteligente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 SLR Systematic Literature Review (Revisão Sistemática da Liteturatura) . . . . . . . . . . 38 SOA Arquitetura Orientada a Serviços . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 TIC Tecnologia da Informação e Comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Sumário 1 2 Introdução 23 1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.2 Estabelecimento do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.3 Visão Geral da Solução Proposta . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.3.1 Visão Geral da Arquitetura de Software (AS) . . . . . . . . . . . . . . 25 1.4 Escopo Negativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.5 Principais Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.6 Organização da Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Cidades Inteligentes e Internet das Coisas 29 2.1 Conceito de Cidade Inteligente (CI) . . . . . . . . . . . . . . . . . . . . . . . 31 2.2 Conceito de Internet of Things (Internet das Coisas) (IoT) . . . . . . . . . . . . 33 2.3 Integração de Cidade Inteligente (CI) com Internet of Things (Internet das Coisas) (IoT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Considerações Finais do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4 3 Revisão da Literatura de Arquiteturas de Software para Cidades Inteligentes 37 3.1 Revisão Sistemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.1.1 Metodologia de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.1.1.1 Estratégia de Busca e Fontes de Dados . . . . . . . . . . . . 39 3.1.1.2 Seleção das Abordagens . . . . . . . . . . . . . . . . . . . . 40 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.1.2.1 Abordagens Resultantes . . . . . . . . . . . . . . . . . . . . 42 Revisão Exploratória . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.2.1 Metodologia de Pesquisa . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.3 Consolidação das Abordagens Encontradas . . . . . . . . . . . . . . . . . . . 48 3.4 Requisitos para uma Arquitetura de Software para Cidades Inteligentes . . . . . 48 3.4.1 Interoperabilidade de objetos . . . . . . . . . . . . . . . . . . . . . . . 50 3.4.2 Monitoramento em tempo real . . . . . . . . . . . . . . . . . . . . . . 50 3.4.3 Sustentabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.4.4 Aspectos sociais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4.5 Ubiquidade/Mobilidade . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.6 Privacidade e Segurança dos dados . . . . . . . . . . . . . . . . . . . . 52 3.4.7 Geolocalização dos sensores . . . . . . . . . . . . . . . . . . . . . . . 52 3.1.2 3.2 4 3.4.8 Composição de Dados Urbanos . . . . . . . . . . . . . . . . . . . . . 53 3.4.9 Histórico de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4.10 Disponibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.4.11 Sensoriamento e Processamento Distribuído . . . . . . . . . . . . . . . 54 3.4.12 Flexibilidade/Extensibilidade . . . . . . . . . . . . . . . . . . . . . . 55 3.5 Sumário dos Requisitos para Cidades Inteligentes . . . . . . . . . . . . . . . . 55 3.6 Discussão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.7 Considerações Finais do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . 57 Uma Arquitetura de Software para Cidades Inteligentes baseada na Internet das Coisas 59 4.1 Requisitos abordados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.2 Metodologia “4+1” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.3 Visão Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.3.1 Módulo de Acesso e Comunicação (MAC) . . . . . . . . . . . . . . . 62 4.3.2 Módulo de Gerenciamento de Recursos (MGR) . . . . . . . . . . . . . 63 4.3.3 Módulo de Gerenciamento e Distribuição de Dados (MGDD) . . . . . 64 4.3.4 Módulo de Persistência de Dados (MPD) . . . . . . . . . . . . . . . . 65 4.3.5 Mapeamento Requisito x Módulo . . . . . . . . . . . . . . . . . . . . 65 4.3.6 Operações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3.6.1 Consumidor: Recurso receber dados . . . . . . . . . . . . . 66 4.3.6.2 Produtor: Fornecer dado . . . . . . . . . . . . . . . . . . . . 66 4.3.6.3 Compor um dado urbano . . . . . . . . . . . . . . . . . . . 67 Visão de Execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.4.1 Módulo de Acesso e Comunicação (MAC) . . . . . . . . . . . . . . . 67 4.4.2 Módulo de Gerenciamento de Recursos (MGR) . . . . . . . . . . . . . 68 4.4.3 Módulo de Gerenciamento e Distribuição de Dados (MGDD) . . . . . 68 4.4.4 Módulo de Persistência de Dados (MPD) . . . . . . . . . . . . . . . . 69 4.5 Visão de Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.6 Visão Física . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.7 Visão Componente Conector . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.8 Visão de Dependências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.9 Cenários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.9.1 Desenvolvimento de aplicações móveis . . . . . . . . . . . . . . . . . 72 4.9.2 Emitir Alertas com Informações de Trânsito . . . . . . . . . . . . . . . 73 4.9.3 Definição de Estratégia Efetiva de Investimento de Recursos . . . . . . 73 4.9.4 Predição de Catastrófes em Áreas de Riscos . . . . . . . . . . . . . . . 73 4.10 Discussão do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.11 Considerações Finais do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . 74 4.4 21 5 6 Avaliação da Arquitetura de Software 5.1 Métodos de Avaliação . . . . . . . . . . . . . 5.1.1 Métodos Analisados . . . . . . . . . 5.1.2 Descrição dos métodos restantes . . . 5.2 Adaptação dos métodos de avaliação . . . . . 5.2.1 Definição do método de avaliação . . 5.2.2 Equipe de Avaliação . . . . . . . . . 5.2.3 Descrição do Método de Avaliação . 5.3 Processo de Avaliação Executado . . . . . . . 5.3.1 Primeira Reunião . . . . . . . . . . . 5.3.2 Segunda Reunião . . . . . . . . . . . 5.3.3 Terceira Reunião . . . . . . . . . . . 5.4 Resultados da Avaliação da Arquitetura . . . 5.4.1 Resultados da Avaliação dos Cenários 5.4.2 Resultados Gerais . . . . . . . . . . . 5.5 Ameaças à Avaliação . . . . . . . . . . . . . 5.6 Considerações Finais do Capítulo . . . . . . Conclusão 6.1 Principais Conclusões . 6.2 Trabalhos Relacionados 6.3 Trabalhos Futuros . . . 6.4 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 78 78 79 80 80 81 81 83 83 85 86 86 87 89 89 90 . . . . 91 91 92 94 94 97 Apêndice 103 A Repositórios de busca na SLR 105 B Avaliação da Arquitetura de Software (AS) 107 23 1 Introdução Pequenas oportunidades são muitas vezes o começo de grandes empreendimentos. —DEMÓSTENES 1.1 Motivação De acordo com relatório divulgado pela UNESCO NATIONS (2007), por volta de 1950, 30% da população mundial vivia em áreas urbanas e em 2010 esta porcentagem subiu para 50%. Estima-se que em 2050 a porcentagem de pessoas vivendo nos grandes centros urbanos será de 70%. Além disso, 10% da população mundial vive nas 30 principais metrópoles DOBBS; INSTITUTE (2011). No cenário nacional, segundo a pesquisa realizada pelo Instituto Brasileiro de Geografia e Estatística (IBGE), publicada no Diário Oficial da União 1 , em julho de 2012 o Brasil chegou a 193.946.886 habitantes, que representa um aumento de aproximadamente 1,65% em relação ao ano de 2010. A expansão das cidades enfrenta uma série de desafios. Embora as cidades ocupam menos de 2% da massa terrestre, os residentes urbanos consomem mais de três quartos dos recursos naturais do mundo e são os principais responsáveis pela emissão de gases do efeito estufa MARCEAU (2008). Problemas decorrentes da rápida urbanização indicam uma perda de funcionalidades básicas para ser um lugar habitável: por exemplo, a dificuldade na gestão de resíduos, a escassez de recursos naturais, a poluição do ar, as doenças humanas, o intenso tráfego de veículos e deterioração e envelhecimento das infraestruturas KRCO (2010). Algumas iniciativas isoladas estão sendo desenvolvidas para mitigar alguns dos problemas urbanos NAM; PARDO (2011). As iniciativas vão de aplicativos como “Waze”2 , um serviço que combina geolocalização no celular com indicações do fluxo e problemas de trânsito via smartphones, até governamentais, como o Centro de Operações da Prefeitura do Rio de 1 http://saladeimprensa.ibge.gov.br/noticias?view=noticia&idnoticia=2204 2 https://www.waze.com/ 24 CAPÍTULO 1. INTRODUÇÃO Janeiro3 , sistema que integra informações a respeito dos diferentes serviços públicos oferecidos pela cidade. Porém, para de fato estabelecer uma Cidade Inteligente (CI) é necessário que estas iniciativas estejam integradas em uma mesma Arquitetura de Software (AS), seja para compartilhar informações, seja para facilitar a definição da estratégia de atuação FILIPPONI et al. (2010); ANTHOPOULOS; FITSILIS (2010); HAUBENSAK (2011); SANCHEZ et al. (2011); HERNáNDEZ-MUñOZ et al. (2011). Da mesma forma, necessita-se de uma AS que permita a criação de novas iniciativas para solucionar os problemas dos cidadãos FILIPPONI et al. (2010); HAUBENSAK (2011); SANCHEZ et al. (2011), como por exemplo, o monitoramento da qualidade do transporte coletivo. Além disso, este trabalho é motivado pela vasta gama de sensores, atuadores, pessoas, sistemas, drivers e qualquer outro componente capaz de interagir com os serviços urbanos. Ao aplicar este conjunto de componentes nos contextos urbanos, vários desafios são gerados para integrá-los e obter o melhor de cada componente. Para este e outros cenários semelhantes, uma AS para CI pode ajudar a integrar esses diversos componentes. Para tal, a AS deve ser totalmente plugável e expansível, do ponto de vista dos protocolos de comunicação implementados. 1.2 Estabelecimento do Problema Motivado pelas questões apresentadas na Seção anterior, o principal objetivo deste trabalho é, em linhas gerais: Especificar, projetar e implementar uma Arquitetura de Software (AS) para Cidade Inteligente (CI) que permita o desenvolvimento de soluções com base em Internet of Things (Internet das Coisas) (IoT), independente das especificações de cada tecnologia e características físicas das cidades. Além disto, este trabalho visa prover uma implementação de referência desta AS. 1.3 Visão Geral da Solução Proposta A fim de atingir os objetivos deste trabalho, estabelecidos na Seção anterior, foi realizado um estudo das Arquiteturas de Software (AS’s) para CI baseada em IoT tanto na academia quanto na indústria, por meio de dois métodos de revisão literária: Revisão Exploratória e Revisão Sistemática. Este estudo teve como finalidade identificar as técnicas empregadas nestas soluções e se existia a necessidade da criação de um novo padrão arquitetural para este contexto. A partir dos objetivos das abordagens encontradas nestes dois métodos de revisão, um conjunto de requisitos ao qual uma nova AS para CI deve atender foi estabelecido. Em seguida, 3 http://www.rio.rj.gov.br/web/corio 25 1.3. VISÃO GERAL DA SOLUÇÃO PROPOSTA a AS da solução foi proposta visando atingir um sub-conjunto destes requisitos, que representa os requisitos fundamentais. Por fim, a AS foi submetida à um processo de avaliação formal adaptado do SAAM KAZMAN et al. (1994) e ATAM KAZMAN et al. (1999, 2000). 1.3.1 Visão Geral da Arquitetura de Software (AS) A AS consiste em módulos que implementam um conjunto de requisitos fundamentais para o contexto de CI. Estes requisitos são implementados a partir da utilização de padrões arquiteturais já conhecidos e utilizados em outros tipos de AS’s de software, como publishersubscriber. A Figura 1.1 ilustra a AS proposta. Módulo de Acesso e Comunicação (MAC) REST Módulo de Persistência de Dados (MPD) Interface: Protocolos de troca de mensagens DHT-BD Registro de recursos Interface: Banco de Dados Driver BD3 BD3 Driver BD2 BD2 Driver BD1 BD1 Configuração de recursos Módulo de Gerenciamento de Recursos (MGR) C DHT Canal de dados C ... C C ... C C ... .... Canal 2 Canal 1 ... P P ... P P ... Canal 3 P P Módulo de Gerenciamento e Distribuição de Dados (MGDD) ... Figura 1.1: Arquitetura de Software (AS) da solução proposta Os módulos da AS são: Módulo de Acesso e Comunicação (MAC), Módulo de Gerenciamento de Recursos (MGR), Módulo de Gerenciamento e Distribuição de Dados (MGDD) e Módulo de Persistência de Dados (MPD). Estes módulos fornecem as funcionalidades essenciais utilizadas pelos diferentes tipos de usuários do sistema. O MAC representa o ponto de entrada dos usuários, aplicações ou até mesmo serviços externos. O MAC provê todos os mecanismos necessários para o acesso e a comunicação com a AS, tanto para envio quanto para recebimento de informações. Por sua vez, o MGR visa gerenciar as informações relativas aos diferentes tipos de recursos disponíveis na AS. Já o MGDD possui a responsabilidade de disseminar os dados na AS, tanto os dados de fora para dentro da AS quanto os dados obtidos a partir de alguma computação interna para os agentes externos. O último módulo (MPD), como o próprio nome já identifica, possui a responsabilidade de armazenar os dados oriundos dos diferentes níveis da AS. Estes dados, nos mais variados estágios da AS, são importantes para a predição de acontecimentos futuros, a partir do histórico 26 CAPÍTULO 1. INTRODUÇÃO de dados. Os detalhes da AS serão descritos no Capítulo 4. 1.4 Escopo Negativo Como a solução proposta por esta dissertação faz parte de um contexto mais amplo, um conjunto de aspectos relacionados não será tratado no escopo deste trabalho. Adicionalmente, os requisitos tratados na solução não formam um conjunto completo e fechado de funcionalidades que devem sempre estar presentes em qualquer AS para CI. Contudo, acredita-se que os requisitos identificados podem servir como base para a construção e/ou adaptação de uma AS para CI que combine tecnologias de IoT, tanto para coletar informações quanto para atuar no ambiente. Os seguintes aspectos não fazem parte do escopo deste trabalho: 1.5 Modelo de Negócio: Aspectos relacionados ao suporte a modelos de negócio e estratégias de monetização e cobrança desta proposta não serão tratados neste trabalho; Análises de big data: Apesar da grande quantidade de dados trafegados na AS, este trabalho não faz nenhum tipo de análise de big data, apenas permite que um serviço que o faça seja criado; Semântica dos Dados: Este trabalho não faz distinção entre semântica dos dados, uma vez que qualquer tipo de dado relacionado à cidade pode trafegar na AS. Principais Contribuições Como resultado do trabalho apresentado nesta dissertação, as seguintes contribuições podem ser destacadas: Estado de arte de AS para CI: A partir das revisões da literatura executadas foi possível apresentar um resumo a respeito do estado da arte de CI no Brasil e no mundo, a partir da descrição de algumas abordagens com ou sem apoio dos setores estatais e privados; Comparativo entre dois métodos de revisão literária: A partir dos resultados obtidos nas duas avaliações executadas (Revisão Sistemática e Revisão Exploratório) foi possível estabelecer um comparativo em relação a eficiência de cada método, principalmente relacionado à questões de pesquisa com relevância acadêmica e mercadológica; Requisitos de uma AS para CI: Um conjunto de requisitos essencias que uma AS para CI deve atender foi estabelecido, a partir da análise das soluções existentes; 27 1.5. PRINCIPAIS CONTRIBUIÇÕES Arquitetura de Software (AS) para CI e IoT: Uma AS que visa atender aos principais requisitos de CI que combina conceitos de IoT foi especificada; Implementação inicial: Baseado na proposta desta dissertação, uma implementação inicial foi realizada e disponibilizado em domínio público. Esta implementação serve de guia para a utilização desta proposta em qualquer cidade; Adaptação de dois métodos de avaliação: Não foi encontrado na literatura nenhum método de avaliação que fosse totalmente compatível com as peculiaridades do contexto deste trabalho. Logo, foi proposta e utilizada uma adaptação de dois métodos de avaliação: SAAM e ATAM. Esta adaptação foi aplicada, na qual se pôde comprovar a sua utilidade. Este método pode ser empregado em qualquer contexto semelhante, principalmente se a equipe esta geograficamente distribuída. Além das contribuições finais listadas acima, alguns resultados intermediários deste trabalho estão sendo reportados na literatura, como mostrado a seguir: TOMAS, G. H. R. P.; SILVA, W. M.; GARCIA, V. C. ; ALVARO, Alexandre, GAMA, Kiev. Towards a Smart City Architecture based on Internet Of Things. Internet of Things Technology and Applications in Information Sciences and Service Sciences, 2014. DA SILVA, WELINGTON M. ; ALVARO, Alexandre ; TOMAS, GUSTAVO H. R. P. ; AFONSO, RICARDO A. ; DIAS, KELVIN L. ; Garcia, Vinicius C. . Smart cities software architectures. In: the 28th Annual ACM Symposium, 2013, Coimbra. Proceedings of the 28th Annual ACM Symposium on Applied Computing - SAC ’13. New York: ACM Press. p. 1722-1727. TOMAS, G. H. R. P. ; SILVA, W. M. ; Garcia, Vinicius Cardoso ; ALVARO, Alexandre . Smart Cities Architectures: A Systematic Review. In: The 15th International Conference on Enterprise Information Systems (ICEIS), 2013, Angers. Proceedings of the 15th International Conference on Enterprise Information Systems (ICEIS). Lisboa: SCITEPRESS Science and Technology Publications, 2013. p. 410-417. SILVA, W. M. ; TOMAS, G. H. R. P. ; Garcia, Vinicius Cardoso ; ALVARO, Alexandre . Synaptic City: An architectural approach using an OSGI Infrastructure and GMaps API to build a City Simulator. In: The 15th International Conference on Enterprise Information Systems (ICEIS), 2013, Angers. Proceedings of the 15th International Conference on Enterprise Information Systems (ICEIS). Lisboa: SCITEPRESS Science and Technology Publications, 2013. p. 427-434. AFONSO, R. A. ; SILVA, W. M. ; TOMAS, G. H. R. P. ; ALVARO, Alexandre ; Garcia, Vinicius Cardoso . Br-SCMM: Modelo Brasileiro de Maturidade para Cidades 28 CAPÍTULO 1. INTRODUÇÃO Inteligentes. In: IX Simpósio Brasileiro de Sistemas de Informação (SBSI), 2013, João Pessoa. Anais do III Simpósio Brasileiro de Sistemas de Informação. Curitiba, PR, novembro de 2006. Porto Alegre: Sociedade Brasileira de Computação, 2013. v. 1. p. 511-516. 1.6 Organização da Dissertação O restante desta dissertação está organizado conforme se segue: Capítulo 2: contextualiza a temática de CI e IoT, além de esclarecer a interação entre as duas áreas de pesquisa; Capítulo 3: apresenta a revisão bibliográfica sobre AS para CI que combinam tecnologias IoT, com o objetivo de identificar as principais soluções existentes na academia e na indústria e estabelecer um conjunto de requisitos fundamentais que uma nova AS deve atender; Capítulo 4: descreve em detalhes a proposta da AS, ressaltando, principalmente, como cada requisito é implementado; Capítulo 5: discute o processo de avaliação de AS realizado, totalmente remoto, durante o desenvolvimento da solução, e apresenta os principais resultados; Capítulo 6: conclui esta dissertação por meio de de um resumo das principais contribuições desta pesquisa e discussões a respeito de alguns trabalhos relacionados. Por fim, são apresentadas algumas observações finais e direções para pesquisas futuras. 29 2 Cidades Inteligentes e Internet das Coisas A alegria que se tem em pensar e aprender faz-nos pensar e aprender ainda mais. —ARISTÓTELES As cidades são sistemas complexos que concentram um grande conjunto de serviços e de infraestruturas e consomem um crescente volume de recursos e de energia, com um significativo impacto a nível econômico, ambiental e de qualidade de vida COMPUTERWORLD (2013). A literatura apresenta diversas definições do termo Cidade, porém a mais aceita é descrita em kuper1995social como “um povoado relativamente grande e permanente”. Geralmente, uma cidade possui alta densidade populacional e os cidadãos interagem com indústrias, comércios e serviços. No quesito operacional, cidades são baseadas em um conjunto de serviços urbanos básicos: energia, água, transporte, infraestrutura de informação e comunicação, mercado, saúde pública e saneamento público MORVAJ; LUGARIC; KRAJCAR (2011). Este conjunto de serviços urbanos básicos é justamente onde se localizam os principais problemas das cidades MORVAJ; LUGARIC; KRAJCAR (2011). Além disso, com o crescimento populacional supracitado no Capítulo anterior e o envelhecimento das infraestrturas, surge a necessidade de aprimorar técnicas para otimizar a utilização destes serviços KRCO (2010). Simultaneamente, necessita-se de um sistema no qual os demais serviços possam ser criados e/ou otimizados para suprir as necessidades dos cidadãos. Estes fatores demonstram os grandes desafios para os gestores das cidades. Problemas relacionados ao tráfego, segurança, consumo de água e energia, dentre outros, têm sido cada vez mais difíceis de serem administrados. A saber: Segurança: Os altos índices de criminalidade são grandes preocupações da sociedade. Assaltos, tráfico de drogas e crime organizado são manchetes na TV e nos jornais todos os dias e são uma dura realidade das cidades brasileiras. Catástrofes como enchentes são um problema de defesa civil devido a ocupação desordenada de encostas e morros, ameaçando diversas comunidades em cidades por todo o Brasil. Segundo o Mapa das Ocorrências Registradas pelas 30 CAPÍTULO 2. CIDADES INTELIGENTES E INTERNET DAS COISAS Polícias Civis (Janeiro de 2004 a Dezembro de 2005)1 , desenvolvido pela Secretaria Nacional de Segurança Pública, entre 2004 e 2005 a taxa de roubo no Brasil por 100 mil habitantes aumentou de 516,7 para 519,4; Transporte: O sistema de transporte coletivo é de qualidade e eficiência questionáveis na maioria das cidades brasileiras. Com o aumento do poder aquisitivo no Brasil e as crescentes facilidades no financiamento de veículos, a quantidade de motocicletas e automóveis no país é cada vez maior. A infraestrutura viária não acompanha este crescimento da frota nacional e o trânsito é um problema em muitas cidades. Soluções paliativas, como rodízio de veículos, apenas atenuam o crescimento do problema do tráfego, quando, na verdade, uma otimização no sistema de transportes coletivos faz-se necessária. Dois exemplos da situação do transporte coletivo no Brasil podem ser encontrados na Pesquisa de Mobilidade Da Região Metropolitana de São Paulo2 : i) entre 2002 e 2012, a frota de veículos particulares cresceu 18%; ii) no mesmo período, a taxa de motorização passou de 184 para 212 automóveis particulares por 1.000 habitantes; Saúde: No Brasil, a infraestrutura do sistema de saúde é insuficiente para atender à demanda. Vários hospitais públicos possuem atendimento deficitário, forçando pacientes a aguardarem em longas filas de espera e o mesmo problema vem assolando pacientes do sistema privado com planos de saúde. De acordo com a pesquisa da Assistência Médico-Sanitária(AMS)3 realizada em 2002 pelo IBGE, houve uma variação na quantidade de leitos disponíveis no Brasil, de 3,65 leitos por 1 000 habitantes em 1992, para 2,70 em 2002, uma redução de quase 25%; Uso sustentável de recursos: O aumento do poder aquisitivo das classes mais pobres gerou uma elevação no consumo de energia elétrica, mas classes média e alta ainda representam a maior fatia do consumo de energia elétrica, pelo padrão de consumo e conforto que envolve diversos tipos de eletroeletrônicos. Em Foz do Iguaçu, por exemplo, 7% das famílias correspondem a mais de 65% do consumo de energia elétrica da cidade HEBERTY H. AMARAL; FERNANDES (2010); Gestão de resíduos: O lixo tem se tornado um grande problema para cidades de países em desenvolvimento. Enquanto cidades de países desenvolvidos põem em prática diversas soluções de tratamento de lixo orgânico e de reaproveitamento de materiais recicláveis, cidades de países como o Brasil não conseguem definir ou executar práticas de reciclagem, salvo raras exceções. Por exemplo, de acordo com a Associação Brasileira de Empresas de Limpeza Pública e Resíduos Especiais (ABRELPE)4 , em 2012 cerca de 60% dos municípios registraram alguma iniciativa de coleta seletiva. Embora seja expressiva a quantidade de municípios com iniciativas de coleta seletiva, muitas vezes estas atividades resumem-se à disponibilização de pontos de entrega voluntária ou convênios com cooperativas de catadores, que não abrangem a totalidade do território ou da população do município. 1 http://portal.mj.gov.br/services/DocumentManagement/FileDownload.EZTSvc.asp?DocumentID={42595482- B0DD-4185-918E-80E4BAFAFC72}&ServiceInstUID={B78EA6CB-3FB8-4814-AEF6-31787003C745} 2 http://www.metro.sp.gov.br/pdf/mobilidade/pesquisa-mobilidade-2012.pdf 3 http://www.ibge.gov.br/home/estatistica/populacao/condicaodevida/ams/default.shtm 4 http://a3p.jbrj.gov.br/pdf/ABRELPE%20%20Panorama2012.pdf 31 2.1. CONCEITO DE Cidade Inteligente (CI) Apesar da evidente necessidade de cidades cada vez mais inteligente e a atenção que a academia tem destinado para o tema, ainda não há um consenso a respeito da definição do conceito de Cidade Inteligente (CI), nem quanto ao ambiente mais adequado para empregá-lo GIFFINGER; PICHLER-MILANOVIĆ (2007); CARAGLIU; DEL BO; NIJKAMP (2009); LI et al. (2011). Logo, a Seção 2.1 visa clarificar a definição de CI a ser utilizada durante este trabalho. Um paradigma que vem sendo utilizado em diversas abordagens para CI é a utilização de IoT como ferramenta para captar dados e atuar sobre os serviços urbanos. Logo, a Seção 2.2 visa contextualizar a IoT, a partir de alguns exemplos de aplicações. Por sua vez, a Seção 2.3 inicialmente pontua alguns dos principais desafios, principalmente, nas cidades brasileiras. Em seguida, apresenta-se a integração existente entre estas duas áreas de pesquisa e alguns exemplos de utilização desta integração para mitigar alguma deficiência urbana. Por fim, a Seção 2.4 consolida as principais contribuições deste Capítulo. 2.1 Conceito de Cidade Inteligente (CI) A literatura apresenta algumas definições para o termo CI, porém ainda não há um consenso a respeito deste conceito. A seguir, são apresentadas as principais definições descritas na literatura e a definição que será utilizada no decorrer deste trabalho. Em Giffinger-2007 é ilustrada uma série de diferentes ambientes na qual o termo foi utilizado. Por exemplo, a definição de CI, quando associada com economia, é uma cidade com indústria inteligente, na qual são empregadas tecnologias de última geração para aprimorar os aspectos financeiros e econômicos. No aspecto educação, Giffinger et. al. caracteriza CI como o nível de escolaridade dos cidadãos. Além disso, de acordo com Giffinger et. al., uma CI também pode ser mensurada a partir do relacionamento entre o governo e os cidadãos e a utilização de modernas tecnologias, não somente relacionada à Tecnologia da Informação e Comunicação (TIC), mas também à outros domínios, como transporte e logística. Por fim, Giffinger et. al. define seis características principais para cidades inteligentes: smart economy, smart people, smart governance, smart mobility, smart environment e smart living. A partir disso, uma CI é uma cidade com bom desempenho nestas seis características, construída a partir da combinação inteligente de atividades independentes, auto-decisivas e em prol dos cidadãos. Esta definição, oriunda dos resultados do projeto European Smart Cities CARAGLIU; DEL BO; NIJKAMP (2009), é a mais bem conhecida e com maior aceitação na literatura HERNáNDEZ-MUñOZ et al. (2011), pois permite quantificar o nível de inteligência das cidades. Por exemplo, inovação faz parte do eixo smart economy e é calculado pela quantidade de patentes por habitantes HAUBENSAK (2011). Apesar dessa definição ser considerada a mais abrangente, cada trabalho adota uma definição mais apropriada para o escopo do projeto. Em Kehua-2011, a IBM define CI como o uso de TIC para capturar, analisar e integrar informações relevantes no núcleo dos sistemas 32 CAPÍTULO 2. CIDADES INTELIGENTES E INTERNET DAS COISAS das cidades. Ao mesmo tempo, uma CI pode tomar decisões inteligentes para diferentes tipos de necessidades, incluindo aspectos diários, proteção ambiental, segurança pública, serviços da cidade e atividades industriais e comerciais. Analogamente, em moss2009informed o termo CI é definido como uma cidade que combina TICs com a infraestrutura física, para prover conveniências aos cidadãos, como: eficiência energética; aumento da qualidade da água e do ar; identificar e resolver rapidamente qualquer problema no funcionamento dos sistemas da cidades; mitigar desastres; capturar dados para apurar a tomada de decisões e a utilização de recursos de forma eficiente. Logo, a CI não pode ser vista como a soma de partes independentes, mas uma rede de infraestrutura interconectada, na qual cada recurso é dependente do outro. Em Steventon-2005, as CIs se referem aos ambientes físicos em que as TICs e os sistemas de sensoriamento são transparentes para os cidadãos, porém desepenham papel fundamental para garantir o funcionamento operacional da cidade. Uma CI também é definida como um território no qual as TICs propiciam inovações em diversos segmentos, combinando a criatividade e o talento individual em prol da população da cidade, instituições locais e orgãos governamentais KOMNINOS (2002); SCHUMPETER (1934). Em Dossier-2013 defende-se que CI não é um conceito tecnológico, mas um conceito sociotécnico. Integra-se três vertentes essenciais: a tecnologia, as pessoas e as instituições. Uma CI tem que centrar a sua atuação nos cidadãos e nas comunidades onde vivem e trabalham. Em relação aos aspectos governamentais, toppeta2010smart acredita que uma CI deve identificar e otimizar os processos governamentais, mitigando a burocracia que envolve o processso de inovação de soluções e gerenciamento de técnicas sustentáveis. Por fim, CI pode ser considerada um conjunto de comunidades inteligentes LI et al. (2011). A partir dessa perspectiva, a World Foundation for Smart Communities (Fundação Mundial para Cidades Inteligentes)5 define que uma CI é uma comunidade com avanços significativos em TICs que transformam o cotidiano dos cidadãos, melhorando os aspectos relacionados ao trabalho e ao lazer de forma incremental e transparente EGER (2011). Além da falta de consenso quanto ao termo CI, existem outros termos que são comumente aplicados aos mesmos contextos, como “cidades virtuais”, “cidades digitais”, “cidade informatizada”, “cidade eletrônica” KOMNINOS (2006). Ao generalizar esse conceito aos ambientes inteligentes que se relacionam com serviços urbanos, vários sinônimos de CI são frequentemente empregados, como “information city”, “wired city”, “telecity”, “knowledgebased city”, “electronic communities”, “electronic community spaces”, “flexicity”, “teletopia”, “cyberville” DROEGE (1997). Essa ausência de consenso é devido aos múltiplos movimentos científicos, tecnológicos e sociais que compõem o contexto de uma cidade KOMNINOS (2006). Em cada disciplina, existe uma série de problemas que afetam diretamente diversos serviços existentes, como transporte, 5 http://www.smartcommunities.org 2.2. CONCEITO DE IOT! (IOT!) 33 segurança, provisão/consumo de energia elétrica e água, saneamento básico, utilização de recursos naturais, controle de catástrofes, principalmente no que tange a gestão individual e influência mútua, até como planejar e otimizar a utilização em resposta a diferentes cenários. Neste trabalho, uma combinação destas principais definições com diferentes vieses é considerada: “Cidade Inteligente (CI) é a combinação de Tecnologia da Informação e Comunicação (TIC) com todos os aspectos que compõem uma cidade, desde aos aspectos físicos até governamentais, combinados de forma a satisfazer às necessidades dos cidadãos ”. 2.2 Conceito de Internet of Things (Internet das Coisas) (IoT) De acordo com giusto2010internet, a Internet of Things (Internet das Coisas) (IoT), também conhecida como Internet dos Objetos, é um paradigma que vem crescendo no cenário moderno de telecomunicações sem fio. A idéia básica deste conceito é a presença de um conjunto de objetos (things) - como Radio-Frequency IDentification (RFID), sensores, atuadores, telefones celulares - que, por meio de mecanismos de endereçamento único (como a Internet), são capazes de interagir e cooperar uns com os outros para alcançar objetivos em comum. Sem dúvida, o principal impacto da IoT será sobre alguns aspectos do cotidiano e comportamento das pessoas ATZORI; IERA; MORABITO (’2010’). Por exemplo, já existem aplicações IoT que permitem o monitoramento de atividades físicas6 e controle de medicamentos de uso contínuo7 . Outro conjunto de aplicações que interferem no cotidiano das pessoas são as voltadas para o ambiente doméstico. Por exemplo, ligar e desligar aparelhos domésticos à distância8 , medir a temperatura da casa9 e até mesmo monitorar o jardim10 já são realidades. Ao considerar a diversidade de aplicações ilustradas acima, pode-se inferir o motivo pelo qual IoT é incluída pelo Conselho Nacional de Inteligência dos EUA (NIC) na lista das seis tecnologias civis “com impactos potenciais sobre o poder nacional dos EUA” (NIC). Além disso, o NIC prevê que até 2025 os “objetos” estarão presentes em todas as coisas cotidianas, como documentos, embalagens de alimentos e móveis. A partir da evidente gama de possibilidade oriundas da IoT, torna-se natural associá-las ao contexto de CI. Em uma CI, para o funcionamento adequado dos serviços inteligentes é necessária a utilização de tecnologias que sejam capazes de captar e distribuir estas informações LI et al. (2011) para uma AS centralizada HAUBENSAK (2011). 6 http://www.fitbit.com/ 7 http://www.vitality.net/glowcaps.html 8 http://www.belkin.com/us/Products/home-automation/c/wemo-home-automation/ 9 https://nest.com/ 10 http://www.harvestgeek.com/ 34 2.3 CAPÍTULO 2. CIDADES INTELIGENTES E INTERNET DAS COISAS Integração de Cidade Inteligente (CI) com Internet of Things (Internet das Coisas) (IoT) A partir dos problemas comumente enfrentado pelas cidades, surge o desafio de combinar diferentes informações com TIC, a fim de mitigar estes problemas e promover melhores condições de vida aos cidadãos. Neste sentido, as tecnologias IoT também podem ser integradas como ferramentas para monitorar os eventos de um ambiente, atuar a fim de conter uma situação emergencial ou, até mesmo, propagar uma informação relevante. Os cenários da utilização de TICs e IoT para esta finalidade são os mais variados. Um exemplo é o monitoramento do trânsito em estradas e rodovias. Este monitoramento, a partir de sensores espalhados pelas vias, poderia alimentar sistemas de informação capazes de gerar rotas em tempo real, redistribuindo os veículos, aumentando a fluidez das vias. Esta redistribuição poderia ser feita ao enviar informações para os dispositivos GPS dos veículos ou até mesmo por um conjunto de painéis indicativos para orientar os motoristas sobre a melhor rota. A comunicação e a troca de informações entre estes diferentes objetos constituem um cenário de uso clássico de IoT. Outro exemplo da utilização maciça de TIC e IoT é o controle do consumo residencial de energia elétrica a partir de eletrodomésticos habilitados a otimizar seu funcionamento de acordo com os hábitos e necessidades de seus moradores. Além disso, estes eletrodomésticos, atuando em uma rede de objetos, podem trocar informações a fim de otimizar tarefas rotineiras dos cidadãos, tais como, compras nos supermercados e manutenção do lar. Um caso real da eficiência em aplicar TICs baseada em IoT é a redução de 30% das emissões de carbono em Londres, apenas com a mudança de comportamento dos cidadãos, a partir do acompanhamento de todas as tarefas dia-a-dia TOMORDY (2011). Esta mudança de comportamento foi possível a partir de uma rede sensores que fornecia informações do nível de carbono em tempo real . 2.4 Considerações Finais do Capítulo Este Capítulo contextualizou as duas grandes áreas de pesquisa deste trabalho: Cidade Inteligente (CI) e Internet of Things (Internet das Coisas) (IoT). Como discutido previamente, ainda não há um consenso a respeito da definição mais adequada para CI. Logo, a Seção 2.1 apresentou algumas definições disponíveis na literatura. A partir destas, a definição a ser utilizada neste trabalho foi explicitada, considerando os diferentes pontos de vistas dos demais autores. Em seguida, a IoT foi definida e exemplificada na Seção 2.2. A partir desta, pode-se notar a evidente correlação entre estas duas áreas de pesquisa. Este fato pode ser comprovado ao analisar as principais aplicações de IoT: a grande maioria visa otimizar algum aspecto 35 2.4. CONSIDERAÇÕES FINAIS DO CAPÍTULO relacionado ao cotidiano das pessoas, tanto no ambiente profissional quanto no doméstico ATZORI; IERA; MORABITO (’2010’). Por fim, a Seção 2.3, apresentou alguns exemplos de utilização de IoT e dos conceitos de CI para mitigar estes problemas urbanos. Algumas destas iniciativas já estão sendo desenvolvidas e validadas, porém, para de fato se estabelecer uma CI, é necessária a integração destas iniciativas a partir de uma AS centralizada FILIPPONI et al. (2010); ANTHOPOULOS; FITSILIS (2010); HAUBENSAK (2011); SANCHEZ et al. (2011); HERNáNDEZ-MUñOZ et al. (2011). Diversas abordagens já estão sendo desenvolvidas utilizando o paradigma: IoT como ferramenta para captar e atuar sobre os serviços urbanos em prol da consolidação de uma CI. Logo, o próximo Capítulo apresenta exemplos destas abordagens, encontradas a partir de dois métodos de revisão da literatura. 37 3 Revisão da Literatura de Arquiteturas de Software para Cidades Inteligentes Cada dia sem treinar, estudar ou se dedicar a algo realmente importante significa um dia mais distante da realização do seu sonho. —BERNARDO ROCHA DE REZENDE, 2010 (Transformando Suor em Ouro) No contexto de uma Cidade Inteligente (CI), as Arquitetura de Software (AS) são de suma importância por uma série de fatores. Primeiramente, uma AS pode permitir a troca de informações entre diferentes serviços urbanos, a fim de fornecer serviços mais efetivos para os cidadãos. Outro fator relevante é a possibilidade de criar aplicações Internet of Things (Internet das Coisas) (IoT) que consumam ou forneçam algum tipo de dado para uma determinada finalidade, como por exemplo, captar informações de pontos turísticos da cidade para melhorar a experiência dos turistas. Esta integração das aplicações IoT com a AS será independente da tecnologias utilizada, devido a vasta gama de sensores, atuadores, pessoas, sistemas, drivers e qualquer outro componente capaz de interagir com os serviços urbanos. Além disso, a AS pode permitir que governos adotem ações estratégicas voltadas para as reais necessidades dos cidadãos. Ao adotar um modelo como esse, na qual uma AS centralizada processa e distribuí dos dados dos serviços urbanos, uma CI pode de fato ser implementada, uma vez que existirá um meio pelo qual os serviços urbanos poderão ser integrados FILIPPONI et al. (2010); ANTHOPOULOS; FITSILIS (2010); HAUBENSAK (2011); SANCHEZ et al. (2011); HERNáNDEZ-MUñOZ et al. (2011). Nos ínicio dos anos 90, a AS era basicamente voltada para os sistemas cliente-servidor, na qual uma máquina exercia o papel de cliente requisitante e a outra máquina, o papel de servidor com a responsabilidade de atender as requisições SOMMERVILLE (2007). Deste modo, a arquitetura cliente-servidor tornou-se padrão no desenvolvimento de software, sendo em nossa 38 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES atualidade ainda explorada e, sobretudo, mesclada a outras AS para atender ao objetivo de um software FOWLER (2012). Já na década de 2000, nota-se que as aquiteturas propostas são cada vez mais heterogêneas, na qual estilos e tecnologias diferenciadas se misturam para formar novas versões de representações arquiteturais BASS; CLEMENTS; KAZMAN (1998). Dessa forma, o que se almeja investigar neste Capítulo é o estado da arte de Arquiteturas de Software (AS’s) para CI que empregam IoT na solução de problemas urbanos. Para aumentar a abrangência desta investigação, duas revisões da literatura foram realizadas: Revisão Sistemática (Seção 3.1) e Exploratória (Seção 3.2). As revisões sistemáticas possibilitam a replicação do procedimento, pois possuem um processo repetitível. Porém, a temática deste trabalho envolve aspectos mercadológicos que podem ser excluídos dessas revisões, por não serem publicados nos veículos convencionais. Logo, as revisões exploratórias são importantes, pois permitem incluir diversos trabalhos de diferentes veículos de publicação, como por exemplo, relatório técnico de empresas. Porém, esse tipo de revisão possui certa resistência por ser baseado totalmente nas buscas não-metódicas do pesquisador. Estes dois métodos de revisão literária também têm como objetivo identificar a necessidade de criar ou adaptar um padrão arquitetural específico para este contexto de CI e IoT. Na Revisão Sistemática, foram selecionadas 11 abordagens. Já na Revisão Exploratória 16 abordagens foram selecionadas. Nestas duas revisões, 7 abordagens foram encontradas em ambas as revisões. Estes trabalhos destacam-se por envolverem aspectos acadêmicos e mercadológicos. Nestes casos, optou-se por descrevê-los apenas na Revisão Sistemática. Por fim, ao todo, foram encontrados 20 abordagens condizentes com o objetivo deste trabalho. Após a descrição das abordagens encontradas nas duas revisões, a Seção 3.3 visa consolidar as características mais relevantes de cada abordagem. Em seguida, pretende-se estabelecer um conjunto de requisitos que uma AS para CI deve atender (Seção 3.4). Este conjunto de requisitos e os demais resultados da Revisão Exploratória foram publicados em SAC:2013. Já os resultados da Revisão Sistemática foram publicados em ICEIS-2013. Por fim, a Seção 3.6 dicute os pontos mais relevantes deste Capítulo e a Seção 3.7 finaliza o Capítulo. 3.1 Revisão Sistemática Conforme brevemente introduzido na Seção anterior, de acordo com Kitchenham-2007 o objetivo de uma Systematic Literature Review (Revisão Sistemática da Liteturatura) (SLR) é fornecer indícios para o desenvolvimento de pesquisas baseadas em evidências, a partir da seleção e síntese das pesquisas mais relevantes. Além disso, a SLR deve identificar, avaliar, interpretar e comparar todas as fontes relevantes para uma determinada questão de pesquisa. Diversas abordagens arquiteturais têm sido propostas na literatura, mas essa revisão foca-se somente nas AS’s que utilizam o paradigma de combinar IoT como ferramenta para a implementação de uma CI. 39 3.1. REVISÃO SISTEMÁTICA 3.1.1 Metodologia de Pesquisa O objetivo desta subseção é descrever a estratégia de busca e todos os passos utilizados para filtrar e extrair as informações relevantes de cada pesquisa. Essa estratégía segue as recomendações descritas por Kitchenham-2007. 3.1.1.1 Estratégia de Busca e Fontes de Dados A estratégia empregada para a construção das strings de buscas segue a mesma metodologia emprega por Kitchenham-2007, Chen-2009 e Khurum20091982. Esta estratégia é ilustrada na Figura ??. file = images/string p rocess.eps, width = 10cm Figura 3.1: Estratégia de Busca Seguindo esta estratégia, a seguinte string de busca foi definida: (smart city OR intelligent city OR digital city OR urban environment) AND (internet of things OR heterogeneous sensors) AND (architecture OR middleware OR platform) Devido à variação dos resultados de cada motor de busca das principais fontes digitais da literatura (como IEEExplore, Springer Link e ACM Digital Library), não é possível utilizar a mesma string de busca em todas as fontes digitais CHEN; ALI BABAR; ALI (2009). Logo, foi necessário um esforço para garantir que as strings utilizadas sejam logicamente e semanticamente equivalentes. Após definir a string de busca, realizou-se a busca nos seguintes repositórios digitais (1. IEEExplore; 2. Science Direct; 3. ACM Digital Library; 4. Springer Link; 5. CiteSeerX; 6.Academia.edu; e 7. ISI Web of Science). Além disso, considerando que CI é uma linha de pesquisa que envolve diversos aspectos de negócio e mercado, realizou-se a busca por patentes no banco de patentes World Intellectual Property Organization(WIPO)1 . Em relação à busca manual, foi realizada nos seguintes anais (1. International Conference on Computational Intelligence, Modeling and Simulation (IJCCI); 2. International Conference on Intelligent Environments (IE); 3. Multimedia Information Networking and Security (MINES); 4. Emerging Technologies for a Smarter World (CEWIT); 5. International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS)). A Tabela 3.1 ilustra a quantidade de abordagens encontradas de acordo com as fontes de pesquisa. 1 http://www.wipo.int 40 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES Tabela 3.1: Quantidade de abordagens por fonte de pesquisa Fonte de Dados 1. IEEExplore 2. Science Direct 3. ACM Digital Library 4. Springer Link 5. CiteSeerX 6. Academia.edu 7. ISI Web of Science 8. WIPO 9. IJCCI 10. IE 11. MINES 12. CEWIT 13. IMIS Total # 24 1291 1933 1484 399 42 4 1233 4 8 3 3 7 6435 A qualidade dos motores de busca podem influenciar a integridade das abordagens identificadas como primários, conforme discutido em Chen-2009. Dessa forma, algumas abordagens podem não ter sido incluídas, caso os autores tenham usado outros termos além dos mencionados acima. 3.1.1.2 Seleção das Abordagens Nesta SLR foram selecionadas somente abordagens que propõem uma AS e/ou framework que centralize os diversos contextos e tecnologias que envolvem o ambiente urbano. Para tal, 5 pesquisadores, sendo 2 mestrandos, 2 PhD e 1 doutorando, foram envolvidos no processo de seleção e classificação Após definir a string de busca e as fontes, foram definidos filtros para classificar as abordagens encontradas. A Figura ?? ilustra os resultados de cada filtro, baseado na quantidade de abordagens resultantes. file = images/step f ilters.pd f , width = 10cm Figura 3.2: Resultado da filtragem das abordagens O objetivo destes filtros é selecionar as principais abordagens que descrevem AS’s para CI baseadas em IoT. O primeiro filtro corresponde a todas as abordagens encontradas nas fontes de pesquisa, descritas anteriormente, a partir da string de busca. O segundo filtro foi aplicado para excluir as abordagens que não foram publicadas entre 2008-2012. Este intervalo foi escolhido após analisar e verificar que as abordagens propostas antes de 2008 relatam CI e IoT isoladamente, ou seja, as abordagens foram propostas para solucionar problemas específicos de um contexto usando apenas uma tecnologia, sem analizar a 41 3.1. REVISÃO SISTEMÁTICA conexão entre os diferentes contextos urbanos. Para realizar a terceira filtragem, todos os títulos das abordagens foram lidos e resultaram apenas 71. Esta alta discrepância com o valor resultante do filtro anterior está relacionada a falta de eficiência das engines de busca, como discutido em Kitchenham:2009:SLR:1465742.1466091. O quarto filtro corresponde à elimição de abordagens duplicadas. Já, para realizar o quinto filtro, todos os resumos foram lidos e discutidos entre a equipe. Cada uma das 33 abordagens resultantes foram lidas e discutidas entre a equipe desta SLR. Em seguida, apenas 11 abordagens resultaram como relevantes para a proposta deste trabalho. Em relação aos critérios de inclusão, as abordagens foram incluídas se: Propõem uma AS para centralizar a informação de diferentes contextos urbanos OU Descreve uma AS IoT na qual seu design permite a combinação de uma ou mais tecnologias diferentes e/ou contextos urbanos E Abordagens que ainda não foram selecionadas. Durante esta revisão, foram encontradas diversas abordagens que descrevem a mesma AS. Neste caso, somente o trabalho mais completo foi considerado. Após essa etapa, restaram 11 abordagens para serem analisadas. Existem diversas razões para esta alta discrepância entre a quantidade inicial de trabalhos com a quantidade resultante. A principal razão é a alta quantidade de estudos duplicados com resultados semelhantes. Estas razões são discutidas e explicadas em Kitchenham:2009:SLR:1465742.1466091. Em relação às patentes, não foi encontrada nenhuma patente relacionada. Geralmente, as patentes mais próxima à temática dessa revisão sistemática descrevem um algoritmo específico ou a otimização de uma técnica empregada em um ambiente controlado. 3.1.2 Resultados Após realizar as buscas nas principais fontes de pesquisa, filtrar as abordagens de acordo com os critérios descritos na Seção anterior, restaram 11 abordagens. Estas abordagens foram lidas e discutidas entre os 5 pesquisadores supracitados, com o objetivo de realçar os tópicos relacionados às questões de pesquisa. Esta seção visa discutir estas abordagens, iniciando por uma descrição inicial de cada abordagem. Caso uma abordagem tenha algum nome, este será utilizado para referir-se a ela. Caso contrário, será dado um nome usando o sobrenome do primeiro autor seguido pelo ano de publicação. A Tabela 3.2 lista as 11 abordagens analisadas, organizadas em ordem cronológica. 42 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES Tabela 3.2: Abordagens resultantes por ordem cronológica ID 1 2 3 4 5 6 7 8 9 10 11 3.1.2.1 Abordagem Al-Hader’2009 Anthopoulos’2010 SOFIA EcoCity/ISMP-UC CPAF SmartSantander IMS USN Wu’2011 Fazio’2012 S3 OiA Ano 2009 2010 2010 2011 2011 2011 2011 2011 2011 2012 2012 Referência AL-HADER et al. (2009) ANTHOPOULOS; FITSILIS (2010) FILIPPONI et al. (2010) LEE; BAIK; CHOONHWA LEE (2011) MOSTASHARI et al. (2011) SANCHEZ et al. (2011) SHAO (2011) HERNáNDEZ-MUñOZ et al. (2011) WU et al. (2011) FAZIO et al. (2012) VEGA-BARBAS et al. (2012) Abordagens Resultantes Arquitetura de Software (AS) para CI podem ser desenvolvidas a partir de diferentes áreas do conhecimento. Esta Seção visa fornecer uma descrição alto-nível das AS’s encontradas, ordenadas em ordem cronológica, ressaltando os principais objetivos e características de cada abordagem. Iniciando por Al-Hader’2009 AL-HADER et al. (2009), no qual é proposto uma AS baseada em quatro princípios: aplicações, negócios, gerenciamento de processos e infraestrutura de redes. O primeiro princípio corresponde às aplicações que fazem uso de diferentes tecnologias para monitorar sensores, como Global Positioning System (GPS). De acordo com AL-HADER et al. (2009), a maioria destas aplicações atendem as demandas operacionais das cidades, porém, ao utilizar as regras definidas no segundo princípio - negócios - elas podem agregar soluções economicamente viáveis. O terceiro princípio é o gerenciamento de processos na qual relacionamentos, regras, estratégias e políticas entre as aplicações e as unidades de negócios são definidas. Finalmente, o último princípio corresponde a toda a infraestrutura de rede, responsável por conectar os outros três princípios. anthopoulos2010digital propõem uma AS baseada na análise de diferentes iniciativas já implementadas, modelada a partir dos princípios das Enterprise Architectures BOOCH (2010). anthopoulos2010digital enfatizam que a construção de uma CI deve ser guiada pela integração de sistemas legados com as novas infraestruturas, migração e reuso de dados existentes, simplificação dos processos urbanos, otimização da utilização de recursos naturais, interoperabilidade de sistemas e equipamentos e prover ferramentas para monitoramento, gerenciamento e análises. A integração de sensores é um dos objetivos da AS conhecida como SOFIA FILIPPONI et al. (2010), centrada no conceito de Smart Environment (Ambiente inteligente) como um ecossistema de interação de objetos, como sensores, dispositivos e sistemas embarcados em geral. A AS SOFIA é baseada em eventos, na qual cada evento corresponde à mudança de estado de qualquer sistema de TIC. Estes eventos podem ser iniciados a partir de eventos do mundo 43 3.1. REVISÃO SISTEMÁTICA real (como detecção de presença) ou ao término de algum processamento. O monitoramento e gerenciamento de sensores também são objetivos definidos pela abordagem denomida EcoCity/ISMP-UC LEE; BAIK; CHOONHWA LEE (2011). A AS EcoCity/ISMP-UC é constituída de três camadas. A camada inferior consiste de diferentes tipos de sensores, atuadores e outros dispositivos distribuídos pela cidade. Já a camada superior representa um conjunto de serviços U-eco City. Entre essas duas camadas existe um middleware responsável por coletar e processar informações contextuatilizadas. Esta AS orientada à serviços possibilita o desenvolvimento de serviços independentes e que sejam consumidos via interfaces padronizadas, como web services. Por sua vez, mostashari2011citizens propõem um framework denominado Cognitive Process Architecture Framework (CPAF), o qual permite o desenvolvimento de diferentes serviços urbanos com habilidades cognitivas. Nesse contexto, cognição é a habilidade do sistema aprender a partir das experiências anteriores e adaptar seu comportamento a partir destas conclusões. Um sistema cognitivo é capaz de perceber e responder às mudanças no ambiente, portanto, pode melhorar a performance dos serviços urbanos. Outra abordagem na qual utiliza vários sensores embarcados nos contextos urbanos é SmartSantander SmartSantander-2011. A quantidade de dispositivos configurados na AS é superior à 12.000. O SmartSantander provê: i) uma AS refência para sistemas IoT; ii) um escalável e heterogêneo laboratório para prototipação de aplicações IoT; iii) um conjunto representativo de casos de uso implementados para facilidades de experimentação e iv) um grande conjunto de experimentos relacionados à Internet do Futuro. Com o mesmo objetivo de interoperabilidade de objetos abordado em Smart Santander, a abordagem IMS SHAO (2011) propõe uma AS que combina IoT com os cidadãos das cidades. Changheng-2011 acreditam que o desenvolvimento de TIC esta relacionado à proximidade com os moradores das cidades. Para isso, IMS é baseada em três camadas: acesso, sessão e aplicações. A camada de acesso é a camada mais baixa e provê toda a infraestrutura para acessar a rede IMS a partir de diferentes terminais. A camada de sessão provê o gerenciamento de sessões entre a camada inferior (Acesso) e a superior (Aplicações). Finalmente, a camada de aplicação permite o desenvolvimento de diversas aplicações. A interoperabilidade de objetos também é explorada por Hernandez-2011, que propõem uma AS denominada Ubiquitous Sensor Network (USN). O objetivo é prover uma infraestrutura que seja capaz de integrar sensores heterogêneos e distantes geograficamente em um base centralizadora, na qual serviços podem ser facilmente desenvolvidos. Adicionalmente, a AS inclui um módulo conhecido como USN-Gateway que possibilita a interoperabilidade entre redes de sensores e redes IP. Da mesma forma que USN, Wu’2011 WU et al. (2011) propõem um middleware para gerenciamento de informações dispersas oriundas de múltiplas fontes, com diferentes formatos e estruturas. Esta abordagem é construída seguindo os princípios de Arquitetura Orientada a Serviços (SOA), baseada em duas principais componentes: modelo Contract-First e agente de 44 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES troca de mensagens. Em Fazio’2012 FAZIO et al. (2012) é proposto uma AS que permite a agregação de diferentes tipos de informações oriundas de diferentes sensores distribuídos pelos contextos urbanos. O principal objetivo dessa abordagem é de prover dados contextualizados, combinando diferentes fontes de dados. Para isso, a AS consiste de quatro camadas: I) REST que permitem interações sob-demanda com os clientes, aplicações e outros serviços; II) Sensor Observation Service Agent (SOS Agent) que suporta todas as funcionalidades para a descrição de sensores; III) Sensor Manager capaz de interagir com sensores, coordenar suas atividades e coletar dados para as demais camadas; IV) Sensing Infrastructure é composto de vários diferentes sensores. Finalmente, a abordagem conhecida como S3 OiA VEGA-BARBAS et al. (2012) também permite o gerenciamento de diferentes tipos de informação. A AS S3 OiA é sintática e semântica aos princípios do SOA, que permitem a integração de qualquer tipo de dispositivo IoT. Com essa estratégia, a AS suporta a composição de aplicações ad hoc. Para tal, foi definido dentro do projeto da AS um conjunto de módulos de dependência semântica de gestão que controlam serviços e recursos, permitindo que os aplicativos já criados possam continuar a execução, apesar das mudanças do contexto. 3.2 Revisão Exploratória As abordagens e iniciativas em CI que se baseiam na adoção de IoT podem ser desenvolvidas tanto no ambiente acadêmico quanto no empresarial. Por exemplo, pode-se ressaltar o interesse das organizações governamentais e/ou privadas, como Microsoft PLANIT (2012), além das iniciativas nos modelos de Startup, como Libelium 2 e Every 3 . Além disso, pode-se encontrar diversas iniciativas em formato Web/HTML ou relatório técnico disponibilizados pela própria organização, como HP HOOVER et al. (2010) e IBM DIRKS; KEELING (2009). Desta forma, para aumentar a eficácia e a abrangência da revisão literária faz-se necessário à realização de uma revisão exploratória. Uma revisão exploratória consiste em um mecanismo que não possui nenhum processo pré-definido para encontrar as fontes de informações. Nesse tipo de revisão, todas as fontes relacionadas com o tema são analisadas, independente do tipo e do veículo de publicação do conteúdo. Em algumas situações, essas revisões podem ser consideradas mais abrangentes, por não possuírem nenhum processo de classificação. Porém, em outras situações, são consideradas tendenciosas, já que o processo de revisão dificilmente pode ser repetido. Logo, essa revisão exploratória visa discutir e analisar as principais abordagens que propõem uma AS para CI baseada em IoT, encontradas nos mais diversos veículos de comunicação. Dentre eles, destacam-se websites, blogs, relatórios técnicos não publicados e eventos. 2 http://www.libelium.com 3 http://www.evrythng.com 45 3.2.1 3.2. REVISÃO EXPLORATÓRIA Metodologia de Pesquisa Nas revisões exploratórias não há um processo ou guideline definido POLLITT (2007). Geralmente, o procedimento consiste em levantar diversas fontes com a informação desejada e então separá-las a partir de métodos específicos. No caso dessa revisão, inicialmente algumas buscas foram realizadas em três repositórios de buscas: IEEE Xplore, Mendeley e ACM Digital Library. As principais palavras-chaves utilizadas foram: Smart Cities, Internet of Things, Architecture, Smart Enviroment, Digital City, Smart Cities Survey. Apesar de empregar estas palavras-chaves, nenhuma string de busca específica foi definida. A partir dos resultados dessas buscas, alguns trabalhos foram classificados como relevantes de acordo com o título e uma rápida leitura do conteúdo. Em seguida, todos os trabalhos restantes foram lidos e discutidos, com o mesmo grupo da Revisão Sistemática, do ponto de vista arquitetural e do emprego das tecnologias IoT para resolver a problemática de CI. A partir destas fontes, as principais referências destes trabalhos também foram analisadas, repetindo a abordagem até não restar nenhum trabalho potencialmente interessante. As revisões exploratórios possuem alguns riscos eminentes. No contexto deste trabalho, a principal ameaça é de não encontrar abordagens maduras e com os mesmos objetivos desta proposta, uma vez que a metodologia de pesquisa não é abrangente o suficiente. Além disso, ao realizar uma revisão exploratório após a SLR pode-se encontrar várias abordagens repetidas. 3.2.2 Resultados Em klein2008industrial é relatada uma perspectiva de CI voltada para negócio, especificamente de provedores de infraestruturas e soluções dentro do contexto de utilização eficiente de energia elétrica para infraestruturas inteligente e data centers. O objetivo do trabalho é aderir eficiência energética dos equipamentos, reduzindo os custos com energia e criando mecanismos para que softwares e serviços tornem-se autoconscientes de seu consumo de energia. De acordo com os autores, esta característica é essencial na implementação de uma AS de CI, permitindo desenvolvimento e operação sustentáveis. Em MB2-2010 é proposta uma plataforma chamada Magic Broker (MB2), a qual possui o objetivo de permitir a interoperabilidade de objetos. Inicialmente desenvolvida com o objetivo de prover um modelo consistente e padronizar as interfaces para a construção de aplicações de IoT, o MB2 esta sendo adaptado para o contexto de CI. Para tal, além de prover a API para consultas, a plataforma provê abstrações fundamentais, como: eventos, estado, serviços e gerenciamento de conteúdo. O MB2 consiste de uma evolução do MB original ERBAD et al. (2008), na qual foram inseridas diversas características para a construção de aplicações ubíquas, como a inclusão de um middleware responsável por tratar as informações oriundas dos diferentes dispositivos. Para tal, foram acoplados diversos protocolos de comunicação como HTTP e XML. Cada implementação 46 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES desses protocolos foi implementada usando serviços OSGi4 . Seguindo o princípio de ser um laboratório para validação de tecnologias com foco em CI, em Lisboa/Portugal foi construída uma cidade com 1700 hectares de extensão. Conhecida como PlanIT Valley5 , a cidade deve produzir 150% da energia necessária, gerenciar os resíduos sólidos e reciclar toda a água consumida. Empresas privadas, como a Microsoft, Cisco, Massachusetts Institute of Techonology e McLaren Eletronic System estão apoiando esse projeto PLANIT (2012). A estratégia desse projeto é implementar um Sistema Operacional Urbano(UOS). Esse sistema operacional é uma plataforma com o intuito de integrar cada domínio que compõem uma cidade. O sistema será alimentado por uma vasta rede de sensores e todos esses dados serão capturados por tempo indeterminado, para auxiliar na tomada e na predição de decisões. Além de prever catástrofes, caso ocorra, o sistema pode antever os possíveis impactos na cidade. A sustentabilidade é um fator relevante que foi abordado em outras abordagens, como em Masdar City HAUBENSAK (2011). A cidade de Masdar City foi desenvolvida no deserto de Abu Dhabi com 6 km quadrados, 50.000 habitantes, 1500 empresas e universidades. O objetivo do projeto é desenvolver projetos auto-suficientes com o mínimo de impacto ambiental. Toda a cidade é livre de combustíveis fósseis, na qual toda a energia é oriunda de fontes renováveis, sem nenhum tipo de resíduo. Além disso, 80% da água consumida será tratada. No quesito transporte, os veículos privados são proibidos e os meios de transporte são veículos elétricos e bicicletas. As estações de transportes elétricos serão separadas por uma distância de no máximo 200 metros. A primeira fase do contém aparelhos ecologicamente corretos desenvolvidos pela General Eletric (GE). Em nam2011conceptualizing é descrita a teoria da sinergia que deve existir entre tecnologia, pessoas e instituições na concepção de CI. O trabalho destaca especificamente que a inteligência refere-se comumente às mudanças inovadoras trazidas por novas tecnologias. Em relação ao aspecto tecnologia, os autores afirmam que é essencial que a cidade possua alta adaptabilidade às necessidades de seus cidadãos, independente de suas limitações, com capacidade de autoconfiguração, proteção, otimização e recuperação de falhas, garantindo disponibilidade de serviços a qualquer tempo. Para isso, faz-se necessário uma infraestrutura de computação ubíqua, sobre a qual os serviços serão disponibilizados. De acordo com andreini2011scalable, SOA é considerada uma investida promissora na construção de CI através da implementação da IoT. Assim, objetos conectados à rede publicariam seus serviços, que por sua vez seriam acessados a partir de clientes móveis, permitindo interações humano-máquina e máquina-máquina (M2M) mais flexíveis. Isso seria construído a partir de uma abordagem semelhante ao Domain Name System (DNS), no qual um objeto seria identificado através de um nome, usado para acessá-lo e consultar serviços. Os autores propõe uma implementação usando Distributed Hash Table (DHT), que atribui o nível de escalabilidade 4 http://www.osgi.org 5 http://living-planit.com 47 3.2. REVISÃO EXPLORATÓRIA desejado para a abordagem adotada, permitindo a recuperação eficiente de serviços no contexto de aplicações para CI. Outro aspecto muito relevante para qualquer centro urbano é a predição, prevenção e correção de situações catastróficas, nas quais medidas urgentes devem ser tomadas no menor tempo, com a máxima eficácia possível. Em asimakopoulou2011buildings, é proposto uma AS de gerenciamento de desastres, baseada na coleta de informações de diversas entidades incluindo pessoas, residências, veículos - imersas em um ambiente totalmente conectado, que monitoram o meio à sua volta. No processo de geração de respostas a situações de emergência é necessário que se tenha conhecimento histórico e em tempo real, das entidades e do ambiente no domínio em questão, para que a solução encontrada seja eficaz. Para isso utilizou-se da abordagem crowdsourcing, na qual os próprios cidadãos, habilitados por algum tipo de aplicação e/ou dispositivo, contribuem com o fornecimento de dados sobre determinado cenário crítico, auxiliando os stakeholders no processo de tomada de decisão com dados precisos e atualizados. Já em relação à segurança, ainda na abordagem de asimakopoulou2011buildings é discutido que os consumidores e fornecedores de dados devem ser devidamente autenticados. Todas as entidades envolvidas na dinâmica proposta pela AS são consideradas recursos, e sua alocação envolve uma negociação baseada em conjuntos de políticas. Isso garante que a utilização dos recursos será sempre priorizada de acordo com a gravidade da situação corrente. Mecanismos específicos foram criados para permitir alocação dinâmica e geração parametrizada de alertas, assegurando a disponibilidade dos recursos. Concomitantemente, em attwood2011sccir é proposta uma AS para infraestruturas críticas em CI, que destaca a necessidade de coleta de dados tempo real de diversos aspectos dentro do ambiente urbano, servindo como substratos para tomada de decisões em situações críticas. O funcionamento básico da AS consiste em um mecanismo de anotação e agregação, no qual uma rede de sensores distribuída pela cidade estaria conectada e cujos dados estariam mapeados para um serviço específico (Ex.: falha no sistema de distribuição de energia elétrica). Quando algum tipo de falha fosse detectado, os dados coletados seriam fornecidos a uma instância de raciocínio, responsável por sugerir as medidas a serem tomadas para normalizar a situação. Para o caso de falha em algum nó da rede de sensores, outra rede seria criada a partir dos nós ainda em funcionamento, permitindo a preservação e distribuição dos dados. Para que esta AS seja implementada é requerida uma infraestrutura de hardware distribuída, com capacidade de processamento em tempo real, de alta disponibilidade, preparada para demandas variáveis, tolerante a falhas e energeticamente eficiente. Por fim, a sustentabilidade também é explorada na AS proposta por Zygiaris-2012. O principal objetivo desta AS é propor um modelo que possa ser empregado em qualquer planejamento urbano inteligente. Este modelo contempla os conceitos sustentáveis, especificamente na segunda camada, conhecida como Green City. Essa camada é sustentada pela camada responsável pela infraestrutura da cidade e contém todas as políticas ambientais, por exemplo, o nível de CO2 permitido pelas residências. As demais camadas correspondem, respectivamente: 48 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES inovação, aplicação, integração, sincronização e interconexão entre diferentes redes. Para validar o objetivo proposto, este modelo foi utilizado nas cidades de Barcelona, Amsterdã e Edimburgo. 3.3 Consolidação das Abordagens Encontradas As Seções anteriores descrevem várias abordagens obtidas de dois métodos distintos: Revisão Sistemática (Seção 3.1) e Exploratória (Seção 3.2). Na Revisão Sistemática, foram selecionadas 11 abordagens. Já na Revisão Exploratória 16 abordagens foram selecionadas e 7 abordagens foram encontradas em ambas as revisões. No total, 20 abordagens foram encontradas a partir destes dois métodos. A partir da descrição dessas abordagens, pode-se notar a relevância da temática de CI, devido, dentre outros fatores, ao interesse de grandes empresas como Microsoft e Cisco. A Tabela 3.3 resume as principais características dessas abordagens. Para abordagens publicadas em periódicos, a coluna “Ano” refere-se ao ano de publicação. Já para as demais, a mesma refere-se ao ano de criação. Por sua vez, a coluna “Incentivo” categoriza as abordagens que recebem incentivos dos governos (Público), iniciativa privada (Privada) ou de ambos (Ambos). Ao análisar a Tabela 3.3 percebe-se que a maioria das abordagens não estão amplamente validadas em diversos contextos, o que ratifica o caráter inovador deste trabalho. Além disto, nota-se que das 20 abordagens, 11 não possuem nenhum tipo de validação prática. Este fato deve-se à alguns fatores, como: Imaturidade da implementação das abordagens; Falta de dados reais para simulações; Pouquíssimas APIs públicas para acessos aos serviços de interesse do cidadão; Falta alta de apoio governamental para a realização de experimentos práticos nos ambientes reais. Esta falta de suporte governamental é comprovada na coluna “Incentivo”, na qual apenas 4 abordagens contém esse tipo de suporte. A partir dessas abordagens, a próxima Seção visa elencar um conjunto de requisitos mínimos que uma nova AS para CI que combine IoT deve atender. 3.4 Requisitos para uma Arquitetura de Software para Cidades Inteligentes Considerando as diferentes realidades de CI nos mais diversos lugares do planeta, é natural imaginar que uma mesma AS não se aplique a todos os cenários. Principalmente pelo Ano 2008 2009 2010 2010 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2011 2012 2012 2012 2012 Aborgagem Klein’2008 Al-Hader’2009 Anthopoulos’2010 MB2 Andreini’2011 Asimakopoulou’2011 Attwood’2011 IMS CPAF SOFIA Wu’2011 Masdar City USN EcoCity/ISMP-UC Nam’2011 SmartSantander Zygiaris’2012 S3 OiA Living PlanIT Fazio’2012 Prover dados combinados Integração de dispositivos via SOA Criação de Sistema Operacional Urbano Modelo para gerenciamento inteligente de qualquer cidade Criação de plataforma ubíqua Plataforma para a criação de soluções urbanas inteligentes Gerenciamento eficiente de informações dispersas oriundas de múltiplas fontes, com diferentes formatos e estruturas Implementar sustentabilidade nos serviços urbanos Interoperabilidade de objetos O monitoramento e gerenciamento de sensores remotamente Plataforma para situações críticas Interoperabilidade de objetos Criação de serviços urbanos com habilidades cognitivas Integração de sensores Plataforma escável que permite a interoperabilidade de objetos a partir de SOA Predição, prevenção e correção de situações catastróficas Objetivo Aumentar a eficiência energética de dispositivos conectados ao ambiente urbano Permitir a criação de soluções inteligentes Integração dos sistemas legados com as novas infraestruturas, migração e reuso de dados existentes Permitir a interoperabilidade de objetos Em andamento Sem validação prática Validada em ambiente controlado Sem validação prática Validada em ambiente controlado Validado nas cidades de Barcelona, Amsterdã e Edimburgo Sem validação prática Em andamento em Lisboa, Portugal Validada em ambiente controlado Validada em ambiente controlado Sem validação prática Sem validação prática Sem validação prática Validada em ambiente controlado Sem validação prática Validada em ambiente controlado Sem validação prática Sem validação prática Sem validação prática Validação Sem validação prática Privada Privada Privada Ambos Privada Privada Ambos Privada Ambos Privada Privada Privada Privada Privada Privada Privada Privada Ambos Privada Incentivo Privada 49 3.4. REQUISITOS PARA UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES Tabela 3.3: Resumo das abordagens descritas na literatura fato de que não se pode generalizar restrições locais, aspectos financeiros, sociais e ambientais, ou mesmo garantir a adequação à dinâmica do cotidiano das diferentes localidades. A partir do levantamento das arquiteturas realizado, a proposta desta Seção é discutir um conjunto de requisitos fundamentais que devem ser atendidos na implantação de uma AS para CI. 50 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES 3.4.1 Interoperabilidade de objetos Um dos requisitos mais discutidos e estudados em projetos IoT é a interoperabilidade de objetos, na qual cada objeto é uma abstração de um sensor, atuador ou qualquer outro dispositivo capaz de realizar algum tipo de computação ATZORI; IERA; MORABITO (’2010’). De fato, este é um requisito crítico para a consolidação de qualquer plataforma que utilize uma vasta gama de objetos com diferentes especificações técnicas. No contexto de CI este requisito também é fundamental, visto que os dados são oriundos de diversos objetos, com tecnologias e protocolos variados. As AS’s designam um módulo ou camada para atender esse requisito, como em SOFIA FILIPPONI et al. (2010), USN HERNáNDEZ-MUñOZ et al. (2011), EcoCity/ISMP-UC LEE; BAIK; CHOONHWA LEE (2011), Living PlanIT PLANIT (2012), Zygiaris’2012 ZYGIARIS (2012), Wu’2011 WU et al. (2011) e S3 OiA VEGA-BARBAS et al. (2012). Em particular, no caso da USN HERNáNDEZ-MUñOZ et al. (2011) este módulo, conhecido como USN-Gateway, além de ser responsável pela interoperabilidade dos objetos em relação a plataforma, também implementa mecanismos que permitem a interoperabilidade entre redes de sensores e a rede IP. 3.4.2 Monitoramento em tempo real Outro importante requisito inerente ao contexto de CI é o monitoramento em tempo real. Este requisito é de suma importância para manter todos os serviços da cidade constantemente atualizados. Além disso, o monitoramento em tempo real é a ferramenta mais importante para fornecer as informações mais relevantes para a predição e tomada de decisões de eventos futuros e prever fenômenos. Um exemplo disso é o monitoramento do nível dos rios durante as temporadas de chuva. Nessa situação, a partir de um monitoramento efetivo é possível tomar medidas para mitigar possíveis transtornos aos cidadãos, como enchentes e a transmissão de doenças. Logo, este requisito pode ser considerado como fundamental. Neste contexto, as AS’s que visam atender esse requisito são Al-Hader’2009 AL-HADER et al. (2009), SOFIA FILIPPONI et al. (2010), SmartSantander SANCHEZ et al. (2011), USN HERNáNDEZ-MUñOZ et al. (2011), Asimakopoulou’2011 ASIMAKOPOULOU; BESSIS (2011), Attwood’2011 ATTWOOD et al. (2011) e Living PlanIT PLANIT (2012). 3.4.3 Sustentabilidade As cidades concentram altos índices de consumo de recursos naturais, como água e alimentos. Além disso, vários problemas de poluição, seja poluição sonora, visual, atmosférica, da água ou do solo, prejudicam a qualidade de vida dos cidadãos de várias cidades, principalmente as metrópoles. 51 3.4. REQUISITOS PARA UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES Neste sentido, uma AS para CI deve permitir que políticas sustentáveis (sustentabilidade) sejam implementadas com base em estatísticas relacionadas ao dia-a-dia dos cidadãos. Por exemplo, iniciativas de consumo consciente de alimentos podem ser implementadas ao mapear os hábitos dos cidadãos durante um dia. Desta forma, estas políticas sustentáveis devem otimizar a utilização de recursos naturais, a partir de iniciativas relacionadas ao meio ambiente e economia FELS (2010). Para tal é importante ressaltar que políticas devem ser propostas nos diversos domínios que compõem uma cidade, como Transporte e Educação. As AS’s que integram sustentabilidade são Klein’2008 KLEIN; KAEFER (2008), EcoCity/ISMP-UC LEE; BAIK; CHOONHWA LEE (2011), SmartSantander SANCHEZ et al. (2011), Masdar City HAUBENSAK (2011) e Zygiaris’2012 ZYGIARIS (2012). 3.4.4 Aspectos sociais Na implantação de CI a importância de alocar recursos, mais escassos, de forma otimizada não pode significar a erosão da qualidade de vida das pessoas. Até porque, para de fato estabelecer uma CI é necessário envolver as pessoas, procurando a sua participação para lhes proporcionar maior qualidade de vida, mas protegendo a dimensão humana das urbes cada vez mais em risco COMPUTERWORLD (2013). Uma AS para CI não pode ser sustentada somente com tecnologia. O propósito principal na concepção de uma CI é o aumento na qualidade de vida de seus cidadãos, através de aspectos sociais. Apesar do aparato tecnológico fazer parte dos elementos necessários para a implementação de uma solução mais robusta, as pessoas precisam participar e ser beneficiadas pelo processo, caso contrário, todo investimento será em vão. Um exemplo disso, é a Cidade Digital de Trikala, Grécia, que após cinco milhões de euros gastos em manutenção de infraestrutura e 6 anos de funcionamento, a população não utilizava ou não tinha conhecimento dos serviços digitais disponíveis ANTHOPOULOS; FITSILIS (2010). De qualquer forma, CI são construídas por pessoas, para pessoas, e essa deve ser uma premissa contemplada em todas os aspectos supridos pela AS. Uma CI é feita de, sobretudo, uma mudança no comportamento de seus cidadãos. As pessoas precisam sentir-se inclusas como parte fundamental na implantação de uma CI, sentir-se estimuladas a fazer parte da solução. Para isso podem ser criadas formas de estimular e/ou retribuir esse interesse, como é caso da iniciativa Fun Theory6 , da Volkswagen, na qual mudam-se as maneiras de fazer as coisas, a fim de estimular a mudança de hábitos. Além disso, os serviços devem estar disponíveis para todos os cidadãos independente de quaisquer restrições social, física, econômica ou financeira, a tecnologia deve ser aplicada a fim de trazer benefícios coletivos, e não alienar ou elitizar uma pequena parte da população. 6 http://www.thefuntheory.com/ 52 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES Apesar da evidente importância deste requisito fundamental, apenas as AS’s que explicitamente contém aspectos sociais são Klein’2008 KLEIN; KAEFER (2008), IMS SHAO (2011) e Asimakopoulou’2011 ASIMAKOPOULOU; BESSIS (2011). 3.4.5 Ubiquidade/Mobilidade A proximidade dos dispositivos com as pessoas/cidadãos, geralmente a partir da internet, origina o termo ubiquidade SPÍNOLA; TRAVASSOS (2012). Neste sentido, este termo corresponde a qualquer tecnologia móvel capaz de capturar informação sobre o ambiente ou atuar sobre o mesmo SANCHEZ et al. (2011). Ao considerar que 4 bilhões de cidadãos já possuem smartphones HALL (2012), é natural associar ubiquidade ao uso destes dispositivos. Porém outros dispositivos devem ser utilizados, como ZigBee e RFID (Radio-frequency identification). Logo, uma AS para CI deve permitir a comunicação efetiva com os mais diversos dispositivos oriundos da temática de ubiquidade, uma vez que estes estarão fisicamente próximos aos cidadãos. Neste contexto, as AS’s que já empregam alguns destes princípios são SmartSantander SANCHEZ et al. (2011), USN HERNáNDEZ-MUñOZ et al. (2011), MB2 BLACKSTOCK et al. (2010) e Zygiaris’2012 ZYGIARIS (2012). 3.4.6 Privacidade e Segurança dos dados O ambiente de uma cidade pode ser considerado ubíquo já que diversos sensores são instalados em diferentes locais e coletam diferentes tipos de informação SANCHEZ et al. (2011). Todo esse volume de dados deve ser protegido fazendo uso das políticas de privacidade e segurança dos dados, tanto em relação à disponibilidade quanto ao armazenamento. Certamente a consolidação destes políticas é um desafio que pode impedir os cidadãos, instituições e o governo de fornecerem determinados dados críticos. Este fato pode ser comprovado a partir dos recentes casos de violação de privacidade dos dados governamentais amplamente divulgados pela imprensa, como os documentos vazados da National Security Agency (NSA) BIRD (2013). Devido a alta relevância deste requisito, não é admissível que uma AS não o satisfaça. Apesar disso, apenas as AS’s SmartSantander SANCHEZ et al. (2011), Living PlanIT PLANIT (2012) e Fazio’2012 FAZIO et al. (2012) abordam este requisito. 3.4.7 Geolocalização dos sensores De acordo com Changheng-2011, Hernandez-2011, Barbas-2012, a geolocalização dos sensores é fundametal para o refinamento do processo de análise de dados. Neste sentido, um sensor corresponde à uma abstração de qualquer dispositivo capaz de fornecer informações sobre determinado contexto. 53 3.4. REQUISITOS PARA UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES A partir destas informações geográficas dos sensores é possível realizar ações específicas para cada ambiente JAUREGUI-ORTIZ et al. (2012). Esta característica pode ser notada nas abordagens IMS SHAO (2011), USN HERNáNDEZ-MUñOZ et al. (2011) e S3 OiA VEGABARBAS et al. (2012). No caso da abordagem IMS, a geolocalização dos sensores é importante para a investigação do comportamento dos cidadãos; na USN, a localização é considerada um requisito diferenciador; por fim, em S3 OiA a localização é utilizada para unificar as ações realizadas sobre um determinado conjunto de sensores. 3.4.8 Composição de Dados Urbanos Em uma visão sistêmica, ambientes urbanos são essencialmente um conjunto de domínios complexos (como transporte, água, energia elétrica, saneamento básico, etc.) disponibilizados para suprir as necessidades de seus cidadãos. AS’s que se dispõe a dar suporte à esses sistemas devem considerá-los como complementares na busca de um gerenciamento urbano efetivo, ao invés de tratá-los de forma isolada. Pelo fato de que CI pode ser considerada um sistema de sistemas, a composição dos dados oriundos destes ambientes urbanos deve ser considerada um requisito fundamental. Estes dados de cada ambiente urbano deve ser disponibilizado de forma que possam ser reutilizados e agrupados para criar uma visão holística e contextualizada da cidade na qual a AS foi implementada ANTHOPOULOS; FITSILIS (2010); NAM; PARDO (2011); PLANIT (2012). Para atender essa composição de dados urbanos as AS’s Nam’2011 NAM; PARDO (2011), CPAF MOSTASHARI et al. (2011), IMS SHAO (2011), Anthopoulos’2010 ANTHOPOULOS; FITSILIS (2010), Fazio’2012 FAZIO et al. (2012) e Living PlanIT PLANIT (2012) implementam explicitamente algum módulo que visa atender este requisito fundamental. 3.4.9 Histórico de dados No contexto de CI, todos os componentes que compõem cada domínio de uma cidade estão constantemente sendo modificados, seja por eventos humanos, naturais ou tecnológicos. Dessa forma, todo dado captado tem potencial para se tornar uma informação relevante, desde que seja agregado a outros dados. Estes dados históricos podem ser empregados na predição de eventos futuros, principalmente quando houver um grande período sem dados em tempo real. Por exemplo, a partir de informações meterológicas dos anos anteriores é possível prever os meses que poderão ter tempestades. Com informação nessa granularidade é possível adotar providências preventivas para evitar catóstrofres. Logo, torna-se substancial que as AS’s contemplem mecanismos eficientes de armazenamento e consulta desses dados. Como é citado em MB2 BLACKSTOCK et al. (2010), SmartSantander SANCHEZ et al. (2011), EcoCity/ISMP-UC LEE; BAIK; CHOONHWA LEE 54 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES (2011) e Living PlanIT PLANIT (2012), estas informações historicamente armazenadas potencializarão os resultados obtidos a partir de um algoritmo de contexto e mineração de dados. 3.4.10 Disponibilidade Para permitir a captação de dados em tempo real e o fornecimento de informações contextualizadas, a AS deve ser altamente disponível, em qualquer dia e horário. Na literatura existem diversas iniciativas que propõem mecanismos para garantir a disponibilidade da AS. Dentra elas, a mais discutida e utilizada é relacionada à Cloud Computing. Desta forma, caso a infraestrutura de cloud computing seja utilizada, mecanismos de controle de fluxo, colisão e redundância devem ser inerentes à solução. Nas AS’s SmartSantander SANCHEZ et al. (2011), USN HERNáNDEZ-MUñOZ et al. (2011) e Nam’2011 NAM; PARDO (2011), estas situações são tratadas utilizando diversos mecanismos de modularidade em relação a cloud. 3.4.11 Sensoriamento e Processamento Distribuído Para que sejam propostas soluções para o aumento da eficácia em serviços urbanos é necessário que se façam aferições das características qualitativas ou quantitativas que permeiam esses serviços, bem como do resultado que produzem. É através de sensoriamento que se obtêm a visão computacional do ambiente urbano; quanto maior o número de sensores e mais disperso eles estiverem, maior será o escopo abrangido pela AS. A heterogeneidade dos sensores utilizados influencia na riqueza de detalhes e na quantidade de dados que podem ser extraídos de cada cenário monitorado, sendo possível obter resultados mais precisos. Por exemplo, reports de trânsito em determinada via podem ser melhor analisados se complementados com imagens obtidas através de câmeras instaladas nas redondezas. Em situações que exigem que medidas preventivas ou corretivas sejam tomadas instantaneamente exige-se processamento em tempo real, com tempo de resposta rápido o suficiente para fornecer embasamento para ações que devem ser executadas assim que determinada situação é identificada. Considerando quantidades massivas de dados coletados, o suporte à esse tipo de contexto sugere a necessidade de processamento distribuído, explorando a capacidade da infraestrutura existente. Uma cidade capaz de monitorar todo o ambiente a sua volta, captar dados e gerar informações e conhecimento, permite execução de seus serviços de forma otimizada e um gerenciamento urbano eficiente. As AS’s que visam atender esse requisito são USN HERNáNDEZ-MUñOZ et al. (2011), SOFIA FILIPPONI et al. (2010), Andreini’2011 ANDREINI et al. (2011) e EcoCity/ ISMP-UC LEE; BAIK; CHOONHWA LEE (2011). 55 3.4.12 3.5. SUMÁRIO DOS REQUISITOS PARA CIDADES INTELIGENTES Flexibilidade/Extensibilidade Este requisito corresponde à capacidade da AS adaptar-se à mudanças e extensões. Além da inserção de novos serviços, a AS deve ser capaz de adaptar-se à novos requisitos inerentes ao contexto de implementação. Por exemplo, a AS deve ser independente de padrões específicos de hardware. Apesar da evidente relevância deste requisito, apenas três AS’s exploram este requisito: Klein’2008 KLEIN; KAEFER (2008), MB2 BLACKSTOCK et al. (2010) e EcoCity/ISMP-UC LEE; BAIK; CHOONHWA LEE (2011). 3.5 Sumário dos Requisitos para Cidades Inteligentes A Tabela 3.4 ilustra um resumo dos requisitos que foram implementados nas AS’s abordadas nesse Capítulo. Nesta tabela, a coluna # representa a quantidade de abordagens encontradas que visam atender ao determinado requisito. Ao analisar essas informações, pode-se perceber que nenhuma dessas AS’s implementam minimamente todos os requisitos levantados. Isto deve-se ao fato de que as AS’s geralmente são projetadas para propósitos específicos e cada uma propõe uma solução focada especificamente no problema que pretende resolver. Além disso, percebe-se que os requisitos de Interoperabilidade de Objetos e Monitoramento em Tempo Real são os mais abordados pelas AS’s. Esta observação confirma a importância em monitorar constantemente todos os aspectos que envolvem a cidade, processar e disponibilizar os dados coletados rapidamente, a fim de fornecer uma visão de estado do ambiente urbano mais precisa e atualizada para dar suporte às tomadas de decisão em tempo real. A AS descrita em PLANIT (2012) atende o maior número de requisitos considerados essenciais no contexto desse trabalho. A abordagem de estruturação da AS, cujas camadas apresentam os mesmos princípios de abstração encontrados em sistemas operacionais, garante as mesmas vantagens aos mesmos atribuídas - como abstração e gerenciamento de dispositivos físicos - que aliada à conectividade expande a abrangência de atuação dentro do ambiente urbano, criando um ambiente pervasivo favorável a uma gestão urbana efetiva. 3.6 Discussão do Capítulo Neste Capítulo foram apresentadas 20 abordagens, em diferentes estágios de validação, oriundas de dois tipos de revisão: Revisão Sistemática e ad hoc. A partir da revisão exploratória foram encontrados trabalhos com investimentos da iniciativa privada e que já se encontram em estágio de prototipação. Ao término desse Capítulo, pode-se perceber que não há a necessidade da criação de um novo padrão arquitetural ou adaptação de um padrão já existente para o contexto de CI e IoT. 56 CAPÍTULO 3. REVISÃO DA LITERATURA DE ARQUITETURAS DE SOFTWARE PARA CIDADES INTELIGENTES Tabela 3.4: Mapeamento requisitos-arquiteturas Requisito Interoperabilidade de objetos Monitoramento em tempo real Sustentabilidade Aspectos sociais Ubiquidade/Mobilidade Privacidade e Segurança dos dados Geolocalização dos Sensores Composição de Dados Urbanos Histórico de dados Disponibilidade Sensoriamento e Processamento Distribuído Flexibilidade/Extensibilidade Abordagens SOFIA, USN, EcoCity/ISMP-UC, Living PlanIT, Zygiaris’2012, Wu’2011 e S3 OiA Al-Hader’2009, SOFIA, SmartSantander, USN, Asimakopoulou’2011, Attwood’2011 e Living PlanIT Klein’2008, EcoCity/ISMP-UC, SmartSantander, Masdar City e Zygiaris’2012 Klein’2008, IMS e Asimakopoulou’2011 SmartSantander, USN, MB2 e Zygiaris’2012 SmartSantander, Living PlanIT e Fazio’2012 # 7 IMS, USN e S3 OiA Nam’2011, CPAF, IMS, Anthopoulos’2010, Fazio’2012 e Living PlanIT MB2, SmartSantander, EcoCity/ISMP-UC e Living PlanIT SmartSantander, USN e Nam’2011 USN, SOFIA, Andreini’2011 e EcoCity/ISMP-UC 3 6 Klein’2008, MB2 e EcoCity/ISMP-UC 2 7 5 3 4 3 4 3 4 Ainda em relação aos padrões arquiteturais, nota-se que o modelo de arquiteturas em camadas é o mais utilizado, pois permitem o escalonamento de uma AS. Outro padrão bastante empregado pelas AS’s foi o publisher-subscriber, devido, principalmente, as vantagens em utilizá-lo para modelar o ambiente real. Além disso, pode-se perceber que algumas AS’s foram propostas para finalidades específicas, como gerenciamento de catastrófes. Apesar disso, essas AS’s possuem mecanismos interessantes de tratamento de eventos em tempo real que devem ser considerados no desenvolvimento de qualquer AS para CI. Apesar dos objetivos comuns destas abordagens, uma coisa é fato: ainda não há um consenso amplamente aceito na literatura sobre quais os requisitos que uma AS deve atender para ser considerada efetiva, independente da forma como foi implementada. A partir das abordagens estudadas, pode-se estabelecer um conjunto de requisitos essenciais ao analisar os principais objetivos das abordagens previamente descritas. Esses requisitos constituem a base para qualquer AS para CI, pois abrangem os princípios definidos para uma CI. Ao analisar esse conjunto de requisitos, nota-se que nenhuma AS atendeu todos os requisitos. Geralmente, as AS’s são propostas com propósitos específicos e ignoram alguns requisitos essenciais. Dessa forma, ao propor uma nova AS para CI é de suma importância que ela atenda a maior quantidade desses requisitos, para que uma cidade possa ser de fato considerada inteligente. Esses requisitos servirão como pilares para a elaboração da AS para CI que combine as tecnologias de IoT que será descrita nos próximos Capítulos. 57 3.7 3.7. CONSIDERAÇÕES FINAIS DO CAPÍTULO Considerações Finais do Capítulo Este Capítulo apresentou algumas abordagens arquiteturais encontradas na litetura. Para tal, dois métodos de revisão da literatura foram utilizados: Revisão Sistemática e ad-hoc. A Seção 3.1 apresentou a metodologia utilizada durante o processo de revisão sistemática. Posteriormente, os resultados foram apresentados em ordem cronológica. Por sua vez, a Seção 3.2 apresentou a revisão ad-hoc e os respectivos resultados, ressaltando, principalmente, o estágio de validação das abordagens encontradas. Na Seção 3.3 foi realizado uma consolidação das características mais relevantes de cada abordagem. Por fim, a Seção 3.4 apresentou um conjunto de requisitos, extraídos a partir da análise das abordagens, que uma AS para CI deve atender. Estes requisitos foram utilizados para guiar o desenvolvimento da proposta deste trabalho. Logo, o próximo Capítulo apresenta esta proposta, utilizando um método de descrição arquitetural amplamente discutido na literatura KRUCHTEN (1995). 59 4 Uma Arquitetura de Software para Cidades Inteligentes baseada na Internet das Coisas Os verdadeiros analfabetos são os que aprenderam a ler e não lêem. —MARIO QUINTANA, 2006 (Caderno H) Baseado nas demandas de uma AS para Cidade Inteligente (CI) que possibilite a integração de tecnologias IoT e no conjunto de requisitos que foi definido no Capítulo anterior, este Capítulo visa propor uma AS para CI que permita a combinação com tecnologias IoT. O foco da solução proposta consiste em atender um sub-conjunto destes requisitos, bem como prover mecanismos, do ponto de vista de infraestrutura, para que novos requisitos possam ser futuramente incluídos, de acordo com o contexto de cada cidade. Dessa forma, a Seção 4.1 apresenta este sub-conjunto de requisitos que serão abordados nesta proposta. Já para descrever a proposta detalhadamente é utilizado um método de descrição de AS’s baseado em visões, conhecido como “4+1”, na Seção 4.2. Em seguida, cada visão abordará aspectos específicos da AS. A Seção 4.3 apresentará a Visão Lógica, a partir de um ponto de vista funcional, relacionando os principais módulos e as operações realizadas com mais frequência. Por sua vez, a Seção 4.4 apresentará a Visão de Execução, com o mapeamento dos componentes lógicos em processos e threads. A Seção 4.5 apresentará a Visão de Implementação, seguido da Seção 4.6 explicitando a Visão Física. Além das visões deste método, duas outras visões definidas pelo SEI CLEMENTS (2003) foram utilizadas para facilitar a compreensão pelos stakeholders: Visão Componente Conector (Seção 4.7) e Visão de Dependências (Seção 4.8). Por fim, a Seção 4.9 apresentará alguns dos principais cenários de utilização desta AS, do ponto de vista de orgãos governamentais e não-governamentais, cidadãos e desenvolvedores. Finalmente, a Seção 4.10 consolida as principais características da AS proposta discutidas 60CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS neste Capítulo e a Seção 4.11 finaliza o Capítulo. 4.1 Requisitos abordados A partir da descrição dos requisitos realizada no Capítulo anterior, um sub-conjunto de requisitos foi selecionado para ser abordado nesta proposta de AS. A Tabela 4.1 exibe todos os requisitos e indica quais destes foram abordados nesta proposta, ordenados pela quantidade de abordagens encontradas que visam atender o determinado requisito, conforme ilustrado na coluna #. Tabela 4.1: Requisitos abordados Requisito Interoperabilidade de objetos Monitoramento em tempo real Composição de Dados urbanos Sustentabilidade Histórico de dados Ubiquidade/Mobilidade Sensoriamento e Processamento Distribuído Geolocalização dos Sensores Privacidade e Segurança dos dados Aspectos sociais Disponibilidade Flexibilidade/Extensibilidade Abordado Sim Sim Sim Não Sim Sim Sim Sim Não Não Não Sim # 7 7 6 5 4 4 4 3 3 3 3 2 Ao analisar a Tabela 4.1, percebe-se que do total de 12, apenas 4 não foram incluídos nesta proposta e 8 foram incluídos. Para realizar essa priorização, dois fatores foram ponderados: i) a importância/relevância do requisito, inferida a partir da quantidade de abordagens na literatura que visam satisfazer esse requisito, conforme pode ser observado na coluna “#”; e ii) este conjunto de requisitos foi incluído nesta proposta são os requisitos mínimos que toda AS de software para CI deve atender. Os demais requisitos que, mesmo considerados importantes/relevantes, não foram abordados nesta proposta, dificilmente podem ser abordados nesta proposta no estágio atual. A saber: Sustentabilidade: A proposta atual não possui nenhuma parceria com instituições governamentais. Logo, nas 5 abordagens na qual esta requisito foi encontrado, todas possuíam uma parceria com as prefeituras locais, que criavam campanhas para incentivar o consumo consciente dos cidadãos. Privacidade e Segurança dos dados: De fato, esta necessidade foi identificada no começo desta pesquisa, porém um outro trabalho de mestrado está sendo desenvolvido com este escopo. Este trabalho de privacidade será acoplado à esta proposta assim que finalizado. Para isso, as definições de interfaces e padrões de mensagens estão sendo definidas em conjunto. O escopo deste trabalho de privacidade é criar um 61 4.2. METODOLOGIA “4+1” mecanismo em que, a partir das interações anteriores, os cidadãos possam “negociar” o quão seus dados estarão disponíveis para um determinado provedor de serviço urbano. 4.2 Aspectos sociais: Da mesma forma que o requisito de Sustenabilidade, para que a AS atenda ao requisito de Aspectos Sociais é necessário o estabelecimento de parcerias com as instituições governamentais para de fato incluir os cidadãos como parte do sistema de uma CI. Disponibilidade: O requisito de Disponibilidade está relacionado à infraestrutura na qual esta proposta estará sendo executada. Metodologia “4+1” A Arquitetura de Software (AS) tem desempenhado um papel fundamental no desenvolvimento de sistemas de software. Ela oferece um maior entendimento da aplicação por dividi-la em um conjunto de componentes que interagem entre si para realizar parte de uma ou várias funcionalidades do sistema GARLAN; SHAW (1994). Porém, diversos autores relatam a falta de eficiência em documentar essas AS’s para que sejam legíveis para os mais variados stakeholders GARLAN; SHAW (1994); CLEMENTS (2003). Visando atender essa ineficiência, em Kruchten:1995:VMA:624610.625529 é proposto um método de descrição de AS’s baseado em visões chamado “4+1”. Para facilitar a compreensão pelos stakeholders, duas outras visões definidas pelo SEI CLEMENTS (2003) foram utilizadas: Visão Componente Conector e Visão de Dependências. A integração dessas visões é ilustrada na Figura ??. file = images/prom odelo.pd f , width = 10cm Figura 4.1: Integração das visões do modelo “4+1” com as visões definidas pelo SEI Este uso de múltiplas visões permite abordar separadamente as preocupações de vários stakeholders da AS: usuários finais, desenvolvedores, engenheiros de sistemas, gerentes de projetos, entre outros; e permite avaliar separadamente os requisitos funcionais e não funcionais. Estas visões abordam aspectos de relevância arquiteturais sob diferentes perspectivas: A visão lógica aborda os elementos significativos do projeto para a AS adotada e a relação entre eles. Entre os principais elementos estão os módulos, os componentes, os pacotes e as classes principais de aplicação; A visão de execução relata os aspectos de concorrência e sincronização do sistema, mapeando os elementos da visão lógica de processos, threads e tarefas de execução; 62CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS A visão de implementação centra-se em aspectos relacionados com a organização do código-fonte do sistema, padrões de AS utilizada e as orientações e as normas para o desenvolvimento do sistema; A visão física demonstra as configurações de hardware e o mapeamento dos elementos de software para os elementos de hardware no ambiente do sistema; A visão componente conector se refere ao comportamento dos componentes em tempo de execução e seus conectores, que são responsáveis pela comunicação entre estes; A visão dependências ilustra as dependências existentes entre os módulos da AS ; Os cenários mostram um subconjunto dos casos de uso significativo da AS. No contexto de CI, diferentes stakeholders são envolvidos no processo de criação de uma solução eficiente, por exemplo, prefeito, secretarias públicas, desenvolvedores e cidadãos. Logo, o método “4+1” foi escolhido e duas visões foram adicionadas para descrever esta proposta arquitetural justamente para contribuir no entendimento por estes diferentes stakeholders. 4.3 Visão Lógica Esta Seção demonstra a organização da AS a partir de um ponto de vista funcional. Os principais elementos, como módulos e componentes principais são especificados. A interface entre estes elementos também é especificada. A Figura 4.2 ilustra a arquitetura do ponto de vista lógico. As subseções seguintes explicitarão cada módulo, ressaltando sua responsabilidade e os requisitos funcionais atendidos. 4.3.1 Módulo de Acesso e Comunicação (MAC) O Módulo de Acesso e Comunicação (MAC) representa o ponto de entrada para as aplicações e serviços externos. O MAC provê os mecanismos necessários para o acesso e a comunicação com a AS, a partir da interface REST (Representational state transfer). De acordo com MB2-2010 e Hernandez-2011, utilizar uma interface padronizada, como REST, é uma das técnicas empregadas para tornar a AS compatível com as tecnologias móveis, como totens, smartphones e tablets. Esta decisão arquitetural permite que a AS torna-se compatível com o requisito de ubiquidade/mobilidade. Além disso, de acordo com MB2-2010 e Filipponi-2010, a principal estratégia para que uma AS contemple a interoperabilidade de objetos é permitir a comunicação com dispositivos e sistemas através de diferentes protocolos de troca de mensagens. Para tal, o MAC contém 63 4.3. VISÃO LÓGICA Módulo de Acesso e Comunicação (MAC) REST Módulo de Persistência de Dados (MPD) Interface: Protocolos de troca de mensagens DHT-BD Registro de recursos Interface: Banco de Dados Driver BD3 BD3 Driver BD2 BD2 Driver BD1 BD1 Configuração de recursos Módulo de Gerenciamento de Recursos (MGR) C DHT Canal de dados C ... C C ... C C ... .... Canal 2 Canal 1 ... P P ... P P ... Canal 3 P P Módulo de Gerenciamento e Distribuição de Dados (MGDD) ... Figura 4.2: Visão lógica da Arquitetura de Software (AS) proposta uma interface padronizada que permite a inserção de novos adaptadores que implementam os diferentes protocolos de troca de mensagem sob demanda. O funcionamento do MAC consiste em receber cada requisição dos diferentes recursos e encaminhá-las para os demais módulos. Para isso, o MAC oferece todos os operações para interagir com a AS, por exemplo, operações responsáveis pelo Registro de Recursos, como será detalhado na seção a seguir. De acordo com a operação do método, este delega ação para o respectivo módulo. 4.3.2 Módulo de Gerenciamento de Recursos (MGR) Do ponto de vista de uma AS para CI, um recurso pode ser considerado sensores espalhados pela cidade, um cidadão portando um dispositivo móvel ou até mesmo um sistema externo (como um perfil em qualquer rede social), dentre outros tipos de fornecedores de dados SANCHEZ et al. (2011); KLEIN; KAEFER (2008); ASIMAKOPOULOU; BESSIS (2011). Desta forma, o Módulo de Gerenciamento de Recursos (MGR) visa gerenciar as informações relativas a estes fornecedores de dados. Dentre essas informações, a geolocalização dos sensores deve ser mantida a fim de aumentar a eficiência e a confiabilidade do dado fornecido HERNáNDEZ-MUñOZ et al. (2011); SHAO (2011); VEGA-BARBAS et al. (2012). Para tal, o MGR contém dois sub-módulos: Registro e Configuração de recursos. O Registro de Recursos contém operações, acessíveis a partir do MAC, que permitem o registro de um recurso. Além disso, a partir da existênca deste recurso, este sub-módulo disponibiliza todas as informações de um recurso por toda a AS. Já o sub-módulo de Configuração de Recursos possui operações para gerenciar as configurações do recurso, por exemplo, a frequência de tempo 64CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS em que os dados são disponibilizados. 4.3.3 Módulo de Gerenciamento e Distribuição de Dados (MGDD) O Módulo de Gerenciamento e Distribuição de Dados (MGDD) possui a responsabilidade de disseminar os dados por toda AS. Logo, pode ser considerado o core da AS, por (i) atender a maior quantidade de requisitos; (ii) implementar os principais mecanismos que diferenciam esta AS das demais abordagens semelhantes e (iii) implementar toda a infraestrutura de distribuição de dados. Um dos padrões mais utilizados no design de AS é o publisher-subscriber, na qual a principal vantagem é o desacoplamento entre os produtos e fornecedores de dados BUSCHMANN et al. (1996). O MGDD contém uma implementação deste padrão, representados na Figura 4.2 pelas caixas com a letra ’P’ e ’C’, respectivamente. No MGDD, os fornecedores (publisher) fornecem dados em um canal específico de dados; por sua vez, os consumidores (subscriber) devem ser inscreverem nestes canais de dados para que assim que um novo dado seja disponibilizado, este possa ser recebido e processado. Este comportamento é classificado como uma das técnicas para modelar-se eventos do mundo real em AS, pois permite disparar eventos simultâneamente, na qual pode-se ativar um ou mais eventos possivelmente encadeados FILIPPONI et al. (2010); HERNáNDEZ-MUñOZ et al. (2011); SANCHEZ et al. (2011); WU et al. (2011); FAZIO et al. (2012). A implementação do padrão publisher-subscriber no MGDD também possibilita a adequação à um dos mais importantes requisitos de uma AS para CI: a Composição de Dados Urbanos PLANIT (2012); NAM; PARDO (2011); MOSTASHARI et al. (2011). Para tal, um mesmo componente consumidor (subscriber) pode se inscrever em dois ou mais canais, obter estes diferentes dados e compô-los de alguma forma. A Seção 4.3.6 exemplificará esse cenário. Além disso, o MGDD permite que novos canais de dados sejam criados sob demanda. Esta peculiaridade proporciona certa flexibilidade para a AS, visto que não há restrições do limite para a criação de canais nas quais dados possam ser trafegados. Assim que um novo canal de dados é criado, este deve registrar-se na “Distributed Hash Table (DHT) Canais de Dados”. Esta DHT permite que os canais de dados sejam acessíveis para todos os consumidores, através de consultas pelo tipo de dado que é disponibilizado. Da mesma forma, DHT é utilizada para os fornecedores obterem a referências para os canais mais apropriados para fornecerem seus dados. A Seção 4.3.6 exemplificará este cenário com um caso prático. Além disso, a utilização de uma DHT é importante para prover escalabilidade e processamento distribuído. A escalabilidade é obtida a partir da criação de novos canais de dados, a medida que o sistema se expande. Da mesma forma, como não há limite de consumidores e fornecedores no mesmo canal de dado, a DHT permite a escalabilidade em termos de recursos de dados. 65 4.3. VISÃO LÓGICA Já em relação ao processamento distribuído, a DHT permite que os canais de dados estejam distribuídos em diferentes hosts, desde previamente registrado no MGR. Logo, assim que uma consulta por um respectivo canal de dado é realizado na DHT, esta se encarregará de encontrar as informações deste canal, a partir das informações do MGR. Desta forma, uma camada de abstração é criada entre o canal e os consumidores e fornecedores, a fim de proporcionar maior desacoplamento, extensibilidade e flexibilidade. 4.3.4 Módulo de Persistência de Dados (MPD) O Módulo de Persistência de Dados (MPD) possui a responsabilidade de armazenar os dados oriundos dos diferentes níveis da AS. Estes dados, em todos os níveis da AS, são importantes para a predição de acontecimentos futuros, a partir do histórico de dados. Para tal, o módulo deve realizar consultas e inserções rápidas e fornecer uma interface transparente para quem a utiliza sobre o respectivo banco de dados. Esta interface é importante para permitir o desacoplamento entre o respectivo banco de dados com os componentes que o utilizam. Antes de algum recurso realizar uma consulta em um banco de dados específico, este pode ser encontrado a partir da “DHT Banco de Dados”. Por sua vez, essa DHT tem a responsabilidade de gerenciar todos os drivers de banco de dados disponíveis no momento da transação, além de permitir que os bancos de dados estejam distribuídos em diferentes hosts. Estudos futuros devem ser realizados para avaliar o banco de dados mais adequado de acordo com o tipo e formato do dado. 4.3.5 Mapeamento Requisito x Módulo A Tabela 4.2 ilustra o módulo no qual cada requisito é contemplado. Como nota-se, geralmente um requisito é implementado a partir da combinação de dois ou mais módulos da AS. Tabela 4.2: Mapeamento Requisitos por Módulo Requisito Interoperabilidade de objetos Monitoramento em tempo real Composição de Dados urbanos Histórico de dados Ubiquidade/Mobilidade Sensoriamento e Processamento Distribuído Geolocalização dos Sensores Flexibilidade/Extensibilidade MAC X X X MGR X X X X X X MGDD X X X X X X X MPD X X X X 66CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS 4.3.6 Operações Esta Seção apresenta as principais operações a serem realizadas na AS, a partir de Diagramas de Sequência. 4.3.6.1 Consumidor: Recurso receber dados A Figura ?? ilustra uma abstração de um diagrama de fluxo referente as atividades a serem realizadas para que um recurso obtenha um dado. Este diagrama abstrai algumas peculiaridades, como a implementação da interface padronizada exigida para o funcionamento correto do padrão publisher-subscriber. Inicialmente, este recurso deve solicitar a referência do canal que contém o dado em questão, a partir do mapeamento existente na DHT. Caso a DHT encontre este canal, a referência é retornada. De posse da referência, o recurso pode se inscrever no respectivo canal. Assim que um novo dado for fornecido por qualquer recurso fornecedor, o dado será imediatamente sentregue aos recursos que se inscreveram nesse canal. file = images/receberd ado.pd f , width = 10cm Figura 4.3: Abstração da operação de um recurso receber dados 4.3.6.2 Produtor: Fornecer dado Por sua vez, o mecanismo para fornecer um dado é bem parecido ao recebimento de um dado. Existem dois cenários específicos para o fornecimento de dado: (i) quando já existe um canal no qual o dado é disponibilizado, ou seja, existe pelo menos mais um recurso fornecedor que já fornece esse dado; ou (ii) quando é o primeiro recurso fornecedor a fornecer o dado. Em ambos os casos, primeiramente, o recurso deve verificar na DHT se já existe um canal no qual este dado é fornecido. Caso exista, a DHT retornará a referência desse canal que corresponde ao primeiro cenário, como ilustrado na Figura ??. file = images/fornecerd ado.pd f , width = 10cm Figura 4.4: Abstração da operação de um recurso fornecer dado Caso contrário, a DHT retornará uma resposta de que o canal requisitado não existe, como ilustrado na Figura ??. A partir desta resposta, o recurso fornecedor deve solicitar uma nova referência de canal para fornecer este tipo de dado, fornecendo as informações necessárias. Feito isso, a DHT retornará a referência ao novo canal. file = images/fornecern ovod ado.pd f , width = 10cm Figura 4.5: Abstração da operação de um recurso fornecer um novo tipo de dado De posse da referência ao canal que será fornecido o dado, em ambos os casos, basta o recurso fornecedor enviar os respectivos dados assim que eles estiverem disponíveis. 67 4.3.6.3 4.4. VISÃO DE EXECUÇÃO Compor um dado urbano A operação de compor um dado urbano pode ser considerada uma combinação entre as operações de Receber e Fornecer um dado. Como ilustrado na Figura ??, esta operação é dividida em 3 fases: Setup, Consumo de Dados e Criação de dados. A primeira fase, Setup, corresponde aos passos necessários para iniciar uma composição de dados urbanos. Inicialmente, o recurso deve consultar se o canal com o dado que será combinado já existe. Caso não exista, o recurso deve solicitar a disponibilização deste canal e a devida referência deve ser retornada. De posse da referência do canal na qual será disponibilizada o dado combinado, inicia-se a segunda fase, conhecida como Consumo de Dados. Nesta fase, o recurso deve consultar a DHT para adquirir a referência de todos os canais que já fornecem os dados que serão utilizados para a combinação. Após obter a referência de todos os canais, o recurso deve se inscrever para receber os dados oriundos destes canais. file = images/compord ado.pd f , width = 14cm Figura 4.6: Operação de composição de dados urbanos Não há nenhuma restrição na quantidade de dados que podem ser utilizados para combinação, ou seja, o recurso pode se inscrever em vários canais para utilizar estes dados na combinação. Feito isso, inicia-se a terceira fase, Criação de Dados. Esta fase corresponde ao mecanismo de receber os dados dos vários canais inscritos, combiná-los de alguma forma utilizando algum tipo de regra de negócio e disponibilizá-lo no canal obtido na fase de Setup. Vale ressaltar que a fase de Criação de Dados é a única que continua sendo executada em background por tempo indeterminado. Além disso, ressalta-se que o momento em que a nova informação combinada é disponibilizada no canal resultante depende da regra de negócio implementada. Por exemplo, um recurso de combinação de dados que gera um relatório das unidades de emergência por regiões de uma cidade pode consumir os dados de cada unidade e gerar esse relatório uma vez por dia. 4.4 Visão de Execução Esta Seção apresenta o mapeamento dos componentes lógicos da AS em processos e threads em tempo de execução, resumidos na Tabela 4.3. 4.4.1 Módulo de Acesso e Comunicação (MAC) O MAC possui um processo principal responsável por receber as requisições oriundas dos mais variados tipos de clientes. Além disto, este processo é responsável por conter a interface que sera implementada por cada adaptador. 68CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS Tabela 4.3: Resumo da quantidade de processos e threads em tempo de execução Módulo MAC MGR MGDD MPD Processos 1 por adaptador + 1 principal 1 por sub-módulo + 1 principal 4 processos principais Threads 1 por requisição 1 por operação 1 por consumidor de dados + 1 por fornecedor de dados + 1 por canal de dado 1 principal + 1 DHT + 1 por 0 Banco de Dados Por sua vez, cada adaptador pode ser executado em um outro processo independente, visto que o único recurso compartilhado é a interface do processo principal. Já em relação as requisições, uma thread é criada para cada requisição, já que as requisições são gerenciadas de forma independente. 4.4.2 Módulo de Gerenciamento de Recursos (MGR) O MGR possui um processo principal que é responsável por conter todas as interfaces das operações visíveis aos demais módulos. Além disto, cada cada sub-módulo é executado em processo separado para que técnicas de cache possam ser futuramente desenvolvidas de forma eficiente. As operações que serão realizadas nos sub-módulos devem ser eficientes a ponto de não comprometer a computação do recurso requisitante. Logo, para cada operação, uma thread é iniciada para tratar está requisição. A sincronização das informações será feita utilizando técnicas de sincronização por transação. 4.4.3 Módulo de Gerenciamento e Distribuição de Dados (MGDD) O MGDD possui quatro processos principais: (i) o primeiro corresponde ao processo responsável pela implementação dos canais de dados; na mesma linha, um processo é necessário para controlar os (ii) consumidores e (iii) outro para os fornecedores; finalmente, (iv) o último processo é responsável por gerenciar a DHT. Como cada recurso, seja este consumidor ou fornecedor de dado, é independente dos demais e contém as suas próprias dependências para realizar a computação, uma thread é criada para cada recurso. Da mesma forma, uma thread é criada para cada canal de dado. Esta thread pode ser executada em outro host. 69 4.5. VISÃO DE IMPLEMENTAÇÃO 4.4.4 Módulo de Persistência de Dados (MPD) Por sua vez, o MPD constitui-se de dois processos: gerenciador de instâncias de banco de dados e a DHT. Este gerenciador é responsável por obter os dados dos diferentes módulos e armazenar no respectivo banco de dados para a predição de eventos futuros. Da mesma forma que o MGDD, cada instância de banco de dados constitui uma novo processo. Estes novos processos também podem ser executadas em um host diferente. 4.5 Visão de Implementação Esta Seção descreve as estratégias utilizadas para a implementação de referência do sistema de acordo com a AS estabelecida. Esta implementação está disponível em domínio público1 . A AS proposta visa atender alguns requisitos considerados como não funcionais, porém não menos importante, como escalabilidade e flexibilidade. Logo, a infraestrutura a ser utilizada para implementação deve ser robusta para atender os diversos sistemas que a utilizarão, além da maciça quantidade de dados. Além disto, como a AS proposta contém vários componentes independentes, a infraestrutura deve proporcionar o deploy de componentes/adaptadores sem que os demais sejam afetados, conhecido como hot-deploy TOUSEAU; DONSEZ; RUDAMETKIN (2008); MARTíN et al. (2009). Neste contexto, a plataforma OSGi consolida-se como uma das mais indicadas para aplicações na qual hot-deploy é de suma importância TOUSEAU; DONSEZ; RUDAMETKIN (2008); MARTíN et al. (2009). Conforme definido por Gama:2010:SAA:1764810.1764818 : A plataforma de serviço OSGi2 é um middleware universal para desenvolvimento de aplicações modulares, usando princípios de SOA para implementar o desacoplamento entre componentes. A tecnologia OSGi aproveita a modularização na plataforma Java, que permite instalar, atualizar, para iniciar, parar e desinstalar componentes em tempo de execução sem a necessidade de reinicialização do sistema. A plataforma OSGi é composta por um conjunto de especificações, conduzido por um consórcio de empresas. As especificações são realizadas por diferentes implementações como o Apache Felix3 , Equinox4 e Knopflerfish5 GAMA; DONSEZ (2010). No contexto deste trabalho, a plataforma OSGi foi utilizada para proporcionar maior modularidade, escalabilidade e facilitar a manutenção de componentes. Dentre as implementações de OSGi, foi escolhida o Equinox, pela familiariade com o arcabouço Eclipse6 . Cada componente da AS foi implementada utilizando um bundle, que representa um conjunto de classes 1 https://github.com/gustahrodrigues/Synaptic 2 http://www.osgi.org 3 http://felix.apache.org 4 http://www.eclipse.org/equinox 5 http://www.knopflerfish.org 6 https://www.eclipse.org/ 70CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS Java, geralmente empacotados como “jar”. A Figura 4.7 ilustra a organização dos bundles que representam a implementação dos respectivos componentes, do ponto de vista de implementação sobre o Equinox. file = images/implementation.pdf, width = 14cm Figura 4.7: Visão de Implementação Ao análisar a imagem 4.7, nota-se que o bundle responsável pela MAC contém um adaptador com a implementação inicial de JSON7 utilizando a bibilioteca fornecida pelo Google Inc. conhecida como GSON8 . Este bundle comunica-se ativamente com o bundle responsável pela comunicação via REST. Por sua vez, o módulo REST implementa utilizando o framework Restlet9 . Em relação ao módulo MGR, percebe-se que ele se resume em dois bundles: Registro de Recursos e Configuração de Recursos. Estes dois bunddles representam os processo descritos previamente. Já no módulo MGDD, a implementação do padrão publisher-subscriber foi realizada utilizando o serviço oferecido pelo próprio OSGi Equinox denominado EventAdmin. O EventAdmin corresponde à um serviço que contém a implementação de canais de distribuição de dados, na qual consumidores de dados podem se inscrever nos respectivos tópicos de interesse e os fornecedores de dados podem fornecer os dados nestes canais. Na Figura 4.7 as caixas “C” e “P” representam os consumidores e fornecedores de dados. Como pode ser observado, a DHT Canal de Dados comunica-se ativamente com o EventAdmin para gerenciar os canais de dados. Por fim, a ilustração correspondente ao módulo MPD exemplifica a utilização de um banco de dados específico, conhecido como MongoDB10 . Similarmente à DHT Canal de Dados, a DHT Banco de Dados utiliza as informações de cada bundle referente a um banco de dados para gerenciá-lo e oferecê-lo aos demais componentes da AS. Caso um novo banco de dados seja inserido, basta plugar o respectivo bundle sobre a plataforma OSGi Equinox e registrá-lo na DHT de Banco de Dados. 4.6 Visão Física Esta Seção visa descrever os requisitos físicos mínimos para utilização da AS proposta. Por se tratar de um ambiente distribuído, com vários acessos exigindo o máximo de escalabilidade, é de suma importância a utilização de um ambiente Cloud. Para propósitos de testes e validações, foi utilizada uma infraestrutura mínima do serviço Amazon AWS11 . A Tabela 4.4 resume as principais características de hardware e software dessa 7 http://www.json.org/ 8 https://code.google.com/p/google-gson/ 9 http://restlet.org/ 10 http://www.mongodb.org/ 11 http://aws.amazon.com/ 71 4.7. VISÃO COMPONENTE CONECTOR infraestrutura. Tabela 4.4: Requisitos físicos de utilização da arquitetura Requisito Configuração Hardware Plano Amazon AWS Memória RAM Amazon EC2 - Free Tier 613Mb Software Amazon Machine Image (AMI) amzn-ami-pv-2012.09.0.x86_64-ebs Sistema Operacional Linux Amazon (Red Hat) Restlet Versão 2.4.1 GSON Versão 2.2.4 MongoDB Versão 2.4.6 Servidor Web Jetty 7 Para a utilização em um ambiente real de produção é evidente que esta configuração não é suficiente. Nesse contexto, deve-se analisar as soluções de Cloud oferecidas pelos provedores para obter melhor desempenho da AS, como por exemplo, Amazon Dynamo DB12 e Amazon Elastic Map Reduce13 . 4.7 Visão Componente Conector Esta seção se refere ao comportamento dos componentes em tempo de execução e seus conectores, que são responsáveis pela comunicação entre estes. A Figura 4.8 ilustra o diagrama de componente conector desta proposta. file = images/cc.eps, width = 10cm Figura 4.8: Diagrama de Componente Conector Como pode ser observado na Figura 4.8, os componentes principais são Recurso e Dado. Apesar destes dois componentes fazerem parte logicamente do MGR, eles são utilizados pelos demais módulos da AS. No próprio MGR, estes componentes são utilizados pelos módulos de Configuração e Gerenciamento de Recurso. Os dados que trafegam na AS são representados pelo componente Dado. Toda vez que um determinado recurso fornecer ou consumir um dado, este deve usar o conector existente entre os componentes Recurso e Dado. No caso do MAC, o componente Recurso é utilizado pois representa a entidade que fornece e recebe dados da arquitetura. Esta comunicação é realizada a partir do outro componente REST. O MGDD contém uma porta para cada canal de dado. Esta porta é uma abstração para a comunicação realizada com os diversos Recursos consumidores ou fornecedores de dados. 12 http://aws.amazon.com/dynamodb/ 13 http://aws.amazon.com/elasticmapreduce/ 72CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS Além disto, o MGDD contém um componente denominado DHT com as responsabilidades já descritas na Seção Visão Lógica. Como pode ser observado, o MGDD possui um conector para cada recurso associado à um canal. Por sua vez, o MPDD possui conectores associados aos módulos MGR e MGDD para que as informações trafegadas nestes dois módulos possam ser armazenadas para a predição de eventos futuros. Além disto, uma porta é associada à cada instância de banco de dados. 4.8 Visão de Dependências Esta seção visa ilustrar as dependências existentes entre os módulos da AS. A Figura 4.9 ilustra o diagrama de dependências entre os módulos desta proposta. file = images/dependency.eps, width = 10cm Figura 4.9: Diagrama de Dependências Como pode ser observado na Figura 4.8, apesar do MGDD ser o core da AS, o módulo que é mais utilizado pelos demais é o MGR. Este fato deve-se ao fato dos componentes Recurso e Dado estar logicamente declarados no MGR. Logo, o MGDD depende do MGR para interagir com os recursos inscritos em cada canal, além de gerenciar os respectivos dados. Por sua vez, o MGR contém dependência apenas do MAC. Esta dependência deve-se ao fato do MAC ser a porta de entrada e saída dos sistemas externos com a AS. Logo, para que um recurso consiga receber de fato os dados é necessário utilizar os mecanismos providos pelo MAC. Assim como no diagrama de Componentes Conectados, o MPDD possui dependência com os módulos MGR e MGDD para que as informações trafegadas nestes dois módulos possam ser armazenadas para a predição de eventos futuros. 4.9 Cenários Esta Seção visa apresentar alguns dos principais cenários de utilização da AS proposta. 4.9.1 Desenvolvimento de aplicações móveis Um desenvolvedor pode criar aplicações móveis que consumam informações das cidades e mantenham seus usuários atualizados sobre os acontecimentos. Por exemplo, uma aplicação que identifique os pontos de alagamento em uma avenida ou registre regiões afetadas pela falta de energia. Do ponto de vista da arquitetura proposta, esta proposta deveria ser implementada da seguinte forma. Um recurso, correspondendo à aplicação, deve realizar todas as interações com a arquitetura através da interface REST, disponível do MAC. O primeiro passo é registrar à 73 4.9. CENÁRIOS aplicação como um recurso no MGR. Para isto, a aplicação deve invocar o respectivo método oferecido pelo MAC, provendo as devidas informações do recurso. Em seguida, este recurso deve consultar a “DHT Canais de Dados” para obter as referências para todos os canais que oferecem as informações relevantes da respectiva cidade. Após se inscrever nestes canais, assim que um novo dado é disponibilizado, a aplicação deve recebê-los a partir de consultas REST. De posse destes dados, a aplicação pode exibi-los da maneira mais adequada. 4.9.2 Emitir Alertas com Informações de Trânsito As companhias de gerenciamento de trânsito das cidades podem utilizar esta arquitetura para emitir informações de trânsito da cidade. Para isso, basta registrar cada sensor como um recurso fornecedor de dado na arquitetura. Estes sensores podem ser as câmeras de trânsito, informações de veículos em radares e quantidade de veículos nas cabines de pedágio por minuto. Além disso, será necessário registrar um recurso consumidor no MGR responsável por se inscrever nos canais nas quais estão informações serão fornecidades. A partir disto, este recurso deve interpretar estas informações e gerar os alertas de acordo com a situação do trânsito. 4.9.3 Definição de Estratégia Efetiva de Investimento de Recursos As secretarias das prefeituras podem definir estratégias para aplicação dos recursos específicos para as reais demandas da cidade. Para isso, uma vez que os dados dos problemas da cidade estejam trafegando pelos diferentes canais do MGDD, basta um recurso, representando o sistema da secretaria se inscrever nestes canais. A medida que um dado é disponibilizado, este recurso pode consolidar estas informações em forma de gráfico ou até mesmo notificar os respectivos responsáveis, além de estimar o custo para resolver aquele problema. 4.9.4 Predição de Catastrófes em Áreas de Riscos Um sistema pode ser desenvolvido para predizer catastrófes em áreas de riscos. Para isto, este sistema deve se registrar no MGR como um recurso consumidor de dados. Em seguida, este recurso pode solicitar ao MPD informações anteriores associadas à área, por exemplo, informações da quantidade de chuva nos últimos verões. De posse destas diferentes informações, o recurso pode implementar uma lógica que permite inferir conhecimentos a partir destas informações, por exemplo, usando uma técnica de Rede Neural. Estas informações contextualizadas devem ser fornecidades em outro canal para que outros recursos possam utilizá-las para alguma outra finalidade. Em seguida, um recurso consumidor de dado deve se inscrever neste canal que está fornecendo essas informações contextualizadas e consolidá-las no sistema de predição de catastrófes. 74CAPÍTULO 4. UMA ARQUITETURA DE SOFTWARE PARA CIDADES INTELIGENTES BASEADA NA INTERNET DAS COISAS 4.10 Discussão do Capítulo O conjunto de cenários descrito constitui exemplos de utilização da AS. Por ser uma AS para propósito genérico, esta pode ser facilmente adaptada para os contextos locais de cada região. Pode-se imaginar diversos cenários de utilização, desde uma região litorânea utilizar a AS para executar programas de balneabilidade até o controle de obesidade dos idosos de uma região. Além desta flexibilidade em relação ao propósito da AS, pode-se facilmente identificar que esta proposta é flexível em termos de aplicabilidade. Por exemplo, inicialmente concebida para ser aplicada em uma cidade, esta AS pode ser implementada em diversas escalas, como um prédio (Smart Build) e residências (Smart Home). A partir desta flexibilidade, governos e instituições podem usar esta AS para criar várias instâncias federativas, como por exemplo, uma instância para região de Sorocaba, outra para Campinas e uma última para a região metropolitana de São Paulo. A partir dessa configuração, essas 3 instâncias podem interagir para as estratégias de atuação. Por fim, é necessário ressaltar que os requisitos de hardware discutidos foram suficientes para testes em pequena escala, porém não serão suficientes no ambiente de produção real. Esta fato se deve principalmente a fatores relacionados a concorrência, acessos simultâneos e performance. Logo, esse quesito prático não pode ser considerado suficiente para a avaliação da proposta. Dessa forma, o Capítulo seguinte descreve um método para avaliação da AS proposta, ressaltando os resultados obtidos ao aplicá-lo. 4.11 Considerações Finais do Capítulo Este Capítulo iniciou-se apresentando o sub-conjunto de requisitos abordados nesta proposta na Seção 4.1. Para guiar a descrição desta proposta, a Seção 4.2 apresentou o método de descrição de AS’s utilizado, conhecido como “4+1”, que, quando combinado com duas outras visões definidas pelo SEI, se mostrou ser bastante efetivo para o contexto deste trabalho. Em seguida, a AS proposta foi apresentada, de acordo com as visões do método: Lógica (Seção 4.3), Execução (Seção 4.4), Implementação (Seção 4.5), Física (Seção 4.6), Visão Componente Conector (Seção 4.7) e Visão de Dependências (Seção 4.8). A Visão Lógica apresentou, a partir de um ponto de vista funcional, os principais módulos e as operações frequentemente realizadas. Por sua vez, a visão de Execução mostrou o mapeamento dos componentes lógicos em processos e threads. A Visão de Implementação apresentou a implementação de referência que foi realizada e está disponível ém domínio público14 . A Visão Física relatou algumas características de hardware utilizadas para está implementação de referência. Por fim, as duas visões definidas pelo SEI foram descritas para facilitar a compreensão pelos stakeholders. 14 https://github.com/gustahrodrigues/Synaptic 75 4.11. CONSIDERAÇÕES FINAIS DO CAPÍTULO Ao término das descrições das Visões, pode-se compreender as responsabilidades e a comunicação entre os seis módulos da AS proposta. O módulo MCA corresponde ao ponto de comunicação da AS com os sistemas externos. Já o MGR corresponde à manutenção dos recursos na AS, principalmente ao cadastro e configuração dos mesmos. Por sua vez, o módulo MGDD é responsável por difundir os dados de/para os recursos na AS. Finalmente, o módulo MPD é responsável por armazenar todas as informações relevantes, em qualquer ponto da AS, para consultas posteriores. Esse conjunto de módulos compõe a proposta que visa agregar valores para os cidadãos das cidades do Brasil. Alguns desses cenários foram discutidos neste Capítulo (Seção 4.9), ressaltando principalmente o ponto de vista das entidades que podem propor estratégias em prol do cidadão. Finalmente, a Seção 4.10 abordou algumas características importantes da AS proposta. A partir da descrição da AS reaizada neste Capítulo, o próximo Capítulo descreve um método para avaliação, baseado em dois métodos: SAAM e ATAM. 77 5 Avaliação da Arquitetura de Software Obstáculo é aquilo que você enxerga quando tira os olhos do seu objetivo. —JUSTIN HERALD, 2006 ˙It’s All a Matter of Attitude A disciplina de avaliação de Arquitetura de Software (AS) tem se mostrado uma importante ferramenta para quantificar a qualidade de um software a partir da sua descrição AS KAZMAN et al. (1994). De fato, alguns experimentos industriais mostraram que a aplicação de métodos de avaliação de AS gera ganhos consideráveis durante o desenvolvimento de software. Em Maranzano2005 são relatados vários exemplos da utilização do processo de valiação de AS em grandes empresas, como AT&T 1 e Lucent Technologies2 . Maranzano2005 demonstram que o uso de tal abordagem nestas empresas gerou um ganho de cerca de 1 milhão de dólares em cada projeto que teve seus problemas identificados e resolvidos previamente. Sendo assim, podemos concluir que tão importante quanto definir a arquitetura de um sistema de software é tentar realizar uma avaliação do que foi definido, com o objetivo de identificar as falhas antes que se tornem grandes problemas no futuro. Logo, a partir da descrição de módulos realizada no Capítulo anterior, este Capítulo visa avaliar a AS proposta. Para tal, inicialmente, serão apresentados alguns métodos de avaliações de AS’s disponíveis na literatura (Seção 5.1). Ao analisar esses métodos, foi concluído que nenhum deles atendia o contexto deste trabalho. Logo, a Seção 5.2 propõe uma adaptação de dois métodos de avaliação de AS’s amplamente aceitos e validados na literatura ROY; GRAHAM (2008): SAAM KAZMAN et al. (1994) e ATAM KAZMAN et al. (1999, 2000). Posteriormente, será discutido o processo adotado durante a avaliação desta AS (Seção 5.3). Em seguida, a Seção 5.4 discute alguns resultados e comentários a respeito das principais questões que surgiram durante a avaliação desta AS. Além disso, a Seção 5.5 discute as principais ameaças à avaliação realizada. 1 http://www.att.com/ 2 http://www.lucent.com/ 78 CAPÍTULO 5. AVALIAÇÃO DA ARQUITETURA DE SOFTWARE Por fim, a Seção 5.6 consolida as principais características do método proposto e dos resultados obtidos a partir do processo de avaliação utizado. 5.1 Métodos de Avaliação As arquiteturas de software visam estruturar os componentes de software da melhor maneira para garantir a qualidade do produto final CLEMENTS (2003). Dessa forma, é de suma importância que a avaliação da qualidade do software seja iniciada antes mesmo da implementação, para que possíveis erros arquiteturais sejam identificados e corrigidos a fim de minimizar custos. Para realizar tal procedimento, um método de avaliação é utilizado para guiar os procedimentos de execução e auxiliar na interpretação dos resultados. Embora os métodos de avaliação de AS possam variar quanto às técnicas que utilizam, pode-se dizer que, de uma maneira geral, os métodos possuem um propósito em comum KAZMAN et al. (2005). Este propósito é: investigar se uma determinada AS satisfaz os objetivos de negócio do sistema para o qual foi projetada. Logo, a seguir é apresentada uma breve descrição de alguns métodos baseados em cenários que serviram de base para a adaptação utilizada na avaliação da AS proposta. 5.1.1 Métodos Analisados A literatura apresenta vários métodos de avaliação, com diferentes objetivos e contextos de execução, como pode-se constatar nos relatos de roy2008methods, Shanmugapriya-2012; bass-2012. A partir dessas referências, um conjunto de métodos candidatos a ser utilizado foi estabelecido. Para filtrar esse conjunto de métodos, a primeira condição a ser utilizada foi os atributos de qualidade (QA) que o método visa avaliar. Como a AS proposta não possui uma única finalidade, que possa ser avaliada por um único atributo de qualidade, optou-se por adotar métodos que compreendem vários atributos de qualidade. A Tabela 5.1 apresenta os métodos encontrados, nas referências relatadas anteriormente, que satisfazem esse pré-requisito. Tabela 5.1: Métodos de Avaliação Vs Atributos de Qualidade Método SAAM ATAM SBAR SACAM DoSAM Atributo de Qualidade Modificabilidade e funcionalidade, mas pode ser adaptado para outros Vários Atributos de Qualidade Vários Atributos de Qualidade Vários Atributos de Qualidade Vários Atributos de Qualidade Um outro fator que deve ser levado em consideração no momento de escolher qual método de avaliação utilizar é o objetivo do método CLEMENTS (2003). Logo, a Tabela 5.2 apresenta o objetivo de cada método resultante do pré-requisito anterior. 79 5.1. MÉTODOS DE AVALIAÇÃO Tabela 5.2: Métodos de Avaliação Vs Objetivo Método SAAM ATAM SBAR SACAM DoSAM Objetivo Adequação arquitetural e identificação de riscos Foco em sensibilidade da arquitetura e análise trade-off Avaliar arquiteturas legadas a partir de reengenharia, utilizando Domain Specific Software Architecture, para criar uma base reutilizável e flexível Comparação com outras arquiteturas de software descritas na literatura Comparação com outras arquiteturas de software descritas na literatura A partir destas duas pré-condições, nota-se que o método SBAR não pode ser utilizado pois a AS proposta não é uma legada. Por sua vez, SACAM e DoSAM não devem ser utilizados, pois não há nenhuma outra AS, disponível e amplamente aceita na literatura, que possa ser comparada com a AS proposta, devido a falta de especificação e detalhamento arquitetural. Por fim, restaram apenas dois métodos que satisfazem o contexto da AS proposta: (1) SAAM KAZMAN et al. (1994) e (2) ATAM KAZMAN et al. (1999, 2000). A seguir uma breve descrição de cada um desses métodos é apresentada. 5.1.2 Descrição dos métodos restantes SAAM (Software Architecture Analysis Method) é um método de avaliação simples que pode ser adaptado à diferentes contextos. Inicialmente proposto para ser utilizado para analisar modificabilidade e funcionalidade, o SAAM é amplamente utilizado nos demais atributos de qualidade, tais como portabilidade, extensibilidade e integrabilidade QUN-LI; JIE (2008). O método SAAM inclui 6 atividades: (i) desenvolvimento dos cenários; (ii) descrição da AS avaliada; (iii) classificação e priorização dos cenários; (iv) avaliação dos cenários individual e indireta; (v) interação entre os cenários; (vi) avaliação global dos cenários KAZMAN et al. (1994). Algumas das principais vantagems do SAAM são a melhoria na documentação da AS e a identificação de riscos KAZMAN et al. (1994). ATAM (Architecture Tradeoff Analysis Method) é um método baseado em cenários, porém, é mais complexo se comparado ao SAAM. A aplicação do ATAM revela quão bem uma AS satisfaz os requisitos de qualidade desejados, além de identificar os riscos arquiteturais e os conflitos (trade-offs) existentes para se alcançar tais requisitos QUN-LI; JIE (2008). O ATAM inclui 4 atividades principais: (i) Descrição: apresentação do ATAM, dos objetivos de negócios e da AS; (ii) Investigação e Análise: geração dos atritos de qualidade utilizando utility tree; análise das abordagens arquiteturais; brainstorm e 80 CAPÍTULO 5. AVALIAÇÃO DA ARQUITETURA DE SOFTWARE priorização dos cenários; (iii) Testes: Análise da AS proposta; (iv) Apresentação dos Resultados KAZMAN et al. (1999, 2000). 5.2 5.2.1 Adaptação dos métodos de avaliação Definição do método de avaliação Apesar dos dois métodos restantes serem os mais adequados para a AS proposta, o contexto de aplicação do método não condizia com o contexto deste trabalho, devido as seguintes peculiaridades: A equipe de avaliação estava distribuída geograficamente, com rotinas e compromissos diferentes. Logo, a avaliação deveria ser totalmente remota; Na equipe de avaliação, não há nenhum stakeholder com domínio em ambos os temas de pesquisa que envolvem esta proposta (CI e IoT); Não foi encontrada nenhum método de avaliação para o contexto de equipes distribuída geograficamente; Como as reuniões seriam realizadas por Skype, as reuniões deveriam ser curtas para manter a equipe concentrada. Logo, surgiu a necessidade de propor uma adaptação dos dois métodos a fim de sanar essas peculiaridades. Esta adaptação é baseada no SAAM e ATAM, porém as atividades são específicas para o contexto remoto. Apesar disto, nenhuma nova etapa foi criada, pelo contrário, as etapas recomendadas pelo SAAM e ATAM foram apenas combinadas e adaptadas para o respectivo contexto. A Tabela 5.3 apresenta as 10 etapas do método adaptado. Tabela 5.3: Etapas do método adaptado 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º Apresentação do Processo de avaliação Apresentação dos Objetivos de Negócios Apresentação da AS Priorização dos QAs Contextualização sobre cenários Apresentação dos cenários Priorização dos cenários Avaliação dos cenários propostos Avaliação das interações entre Cenários e QAs Consolidação dos Resultados 81 5.2.2 5.2. ADAPTAÇÃO DOS MÉTODOS DE AVALIAÇÃO Equipe de Avaliação A primeira etapa para a definição do método de avaliação a ser utilizado foi a escolha da equipe de avaliação. Devido ao fato de que CI pode ser considerado um sistema de sistemas heterogêneos, as pessoas escolhidas para participar da equipe são de diferentes áreas de pesquisa, com diferentes experiências e visões. Além disso, a heterogeneidade da equipe enriquece as discussões, pois cada um avalia o mesmo quesito por diferentes pontos de vista, baseado nos respectivos backgrounds CLEMENTS (2003). Esta equipe foi composta por desenvolvedores e arquitetos provenientes do C.E.S.A.R, professores do CIN-UFPE e da UFSCar Sorocaba. Ao total, 5 pessoas foram envolvidas no processo de avaliação. A Tabela 5.4 ilustra as expertises dos envolvidos, na qual a coluna “#” ilustra a quantidade dos envolvidos com a determinada expertise. Vale ressaltar que um mesmo envolvido pode ter mais de uma expertise. Tabela 5.4: Expertises da equipe de avaliação Expertise Doutores ou Doutorandos Mestres ou Mestrandos Engenheiros de Sistemas Especialistas em Cloud Computing Especialistas em IoT Especialistas em Arquiteturas escaláveis Especialistas em Arquiteturas de propósito geral Especialistas em Negócios 5.2.3 # 3 2 4 1 2 2 2 2 Descrição do Método de Avaliação Inicialmente o processo de avaliação deve ser descrito, ressaltando principalmente quais os artefatos esperados de cada etapa. Em seguida, como recomenda o SAAM, um participante da equipe de avaliação com a visão de negócio deve apresentar as expectativas de uma AS para CI que combine IoT. Esta etapa é de suma importância, pois estas expectativas serão utilizadas para quantificar o quão a AS proposta atende aos objetivos estabelecidos. A próxima etapa consiste na apresentação da AS propriamente dita. Nesta etapa, o arquiteto pode utilizar o método de descrição arquitetural que lhe interesse. Entretanto, este método deve fornecer subsídios suficientes para o completo entendimento da AS por parte dos demais participantes, incluindo interações entre os módulos, regras de negócios e o ciclo de vida dos componentes KRUCHTEN (1995). Em seguida, deve-se realizar a etapa de priorização dos atributos de qualidade com base nos objetivos de negócios, previamente discutidos. Para tal, recomenda-se que o arquiteto sugira um conjunto de atributos de qualidade pré-selecionados que possam ser empregados. A literatura 82 CAPÍTULO 5. AVALIAÇÃO DA ARQUITETURA DE SOFTWARE apresenta alguns métodos de priorização dos atributos de qualidade, porém o mais usual é estabelecer que cada participante possui 3 votos que deve ser distribuído dentre os atributos de qualidade. Após todos os participantes votarem, os atributos de qualidade que receberem mais votos devem ser considerados mais prioritários. A contexualização sobre o que são cenários para toda a equipe de avaliação deve ser realizada a seguir. Um cenário, neste contexto, ilustra os tipos de atividades que um sistema deve suportar. Um exemplo de cenário pode ser: “Qual o impacto na arquitetura caso ocorra uma mudança no modelo de troca de mensagens entre os componentes”. Vale ressaltar que o desenvolvimento desses cenários é crucial para capturar os principais usos do sistema, seus usuários, antecipar mudanças no sistema, e qualidades que o sistema deve satisfazer agora e no futuro. Estes cenários devem ser elicitados por todos os stakeholders do sistema a partir dos objetivos de negócios, logo, representam questões sob diferentes pontos de vista e, na maioria das vezes, trazem informações bem específicas do sistema avaliado. Antes da próxima etapa deste processo de avaliação é importante criar algum mecanismo para que os participantes possam propor os possíveis cenários. Uma técnica que pode ser utilizada é o compartilhamento de uma planilha online entre cada participante e o arquiteto. Após todos os membros da equipe de avaliação escrevem os possíveis cenários, o arquiteto deve consolidar os cenários propostos. Esta consolidação resume-se em filtrar os cenários duplicados e reescrever alguns com outras palavras para facilitar a compreensão. No início da próxima etapa, todos os cenários propostos pelos participantes devem ser apresentados, para que os demais participantes conheçam os diferentes pontos de vista. Em seguida, todos devem priorizar os cenários de acordo com a relevância para a AS proposta. Esta priorização pode ser feita da mesma forma que a priorização dos QAs. Para a próxima etapa, de avaliação dos cenários propostos, também é interessante criar um mecanismo para que seja realizada remotamente. Um exemplo é a criação de um formulário online na qual cada participante deve dar uma nota para o quão cada cenário está contemplado pela AS. Feito isso, na etapa seguinte o arquiteto deve conduzir uma discussão a respeito das interferências dos atributos de qualidades nos cenários priorizados, como descrito pelo ATAM. Geralmente estas discussões geram conclusões de que, para atender a um cenário específico, mas muito relevante, deve-se deixar de implementar totalmente um atributo de qualidade. Por fim, o arquiteto deve apresentar os resultados finais do processo de avaliação. Nesta etapa é importante apresentar todos os artefatos gerados em cada etapa do processo de avaliação. Além disso, devem ser apresentados os pontos positivos e os pontos de melhoria que, a partir do processo executado, foram identificados. 83 5.3 5.3. PROCESSO DE AVALIAÇÃO EXECUTADO Processo de Avaliação Executado A partir da descrição do processo de avaliação na Seção anterior, o processo foi executado remotamente via Skype e as etapas foram divididas em 3 reuniões: 5.3.1 Primeira Reunião O objetivo da primeira reunião foi apresentar os objetivos de negócios da AS proposta e contextualizar todos os envolvidos no processo de avaliação em relação à temática de CI. As etapas da reunião foram as seguintes: a) Apresentação do Processo de Avaliação (Duração 30min): Inicialmente, foi descrito a origem da adaptação dos métodos, ressaltando as principais diferenças com os métodos disponíveis na literatura. Consequentemente, o processo de avaliação a ser utilizado foi descrito. O objetivo desta etapa foi situar todos os envolvidos em relação ao objetivo do processo e aos próximos passos; b) Objetivos de Negócios (Duração 30min): A segunda etapa da reunião teve a intenção de definir e apresentar os objetivos de negócios da AS proposta. Este passo foi importante para que os participantes da avaliação entendessem o contexto do sistema e também as limitações técnicas, econômicas e de cronograma existentes para a execução do projeto. Todos esses aspectos foram apresentados para ajudar na definição dos atributos de qualidade a serem considerados no processo de avaliação; c) Apresentação da AS (Duração 1hora): Neste passo, a AS proposta foi detalhada pelo arquiteto através de uma visão de módulos. Para tal, foi utilizado o framework de descrição AS conhecido como “4+1” KRUCHTEN (1995). Cada módulo foi detalhado, ressaltando, principalmente, o requisito arquitetural que este visa atender. Além da visão de módulos, foi apresentada a comunicação entre os módulos. Esta apresentação foi de suma importância para os participantes perceberem como os requisitos foram implementados para avaliar se de fato eles satisfazem as necessidades dos contextos de CI. Além disso, por meio desta descrição detalhada é possível identificar possíveis falhas e/ou pontos de melhoria na AS proposta; d) Priorização dos Atributos de Qualidade (Duração 1hora): Como alguns participantes não estavam acostumados ao conceito de Atributos de Qualidade, inicialmente foi descrito o que são e quais os objetivos dos mesmos. Em seguida, o arquiteto apresentou os atributos de qualidade definidos pela ISO/IEC 9126 ISO/IEC (2001) e pelo CMU/SEI-95-TR-021 BARBACCI et al. (1995), com o objetivo de exemplificar possíveis atributos de qualidade aplicáveis à AS proposta. 84 CAPÍTULO 5. AVALIAÇÃO DA ARQUITETURA DE SOFTWARE Ao término dessa etapa, os participantes sugeriram alguns atributos de qualidade, com base nos objetivos de negócios. Em seguida, foi realizado uma votação para priorizar quais os atributos melhor expressam os objetivos de negócios, apresentados anteriormente. Nesta votação, cada participante poderia distribuir 3 votos entre os atributos de qualidade. Cada voto foi computado individualmente a partir de um formulário online disponibilizado para cada envolvido. A Tabela 5.5 exibe o resultado desta votação. A coluna “fonte”, refere-se à origem do atributo de qualidade, na qual “participante” são os atributos propostos pelos participantes da avaliação. Tabela 5.5: Priorização dos Atributos de Qualidade # 1º 2º 3º 4º 5º 6º 7º 8º 9º 10º 11º QA Confiabilidade Funcionalidade Escalabilidade Portabilidade Disponibilidade Segurança Performance Eficiência Usabilidade Acoplamento Manutenabilidade Fonte ISO/IEC 9126 e CMU/SEI-95-TR-021 ISO/IEC 9126 Participantes ISO/IEC 9126 Participantes CMU/SEI-95-TR-021 CMU/SEI-95-TR-021 ISO/IEC 9126 ISO/IEC 9126 CMU/SEI-95-TR-021 ISO/IEC 9126 Votos 4 3 2 1 1 1 1 1 1 0 0 As definições consideradas para os atributos foram: Confiabilidade: visa avaliar se a arquitetura estará disponível quando necessário; Funcionalidade: conjunto de atributos que evidenciam a existência de um conjunto de funções e suas propriedades especificadas. As funções são as que satisfazem as necessidades explícitas ou implícitas; Escalabilidade: capacidade que um sistema possui de se expandir, de forma a permitir o atendimento das necessidades pelo crescimento do número de usuários do sistema, ou também pelo aumento das informações a serem processadas; Portabilidade: capacidade do sistema ser transferido de um ambiente para outro; Disponibilidade: refere-se ao conjunto de atributos que interferem na probabilidade de que um sistema esteja funcionando e pronto para uso em um dado instante de tempo; 85 5.3. PROCESSO DE AVALIAÇÃO EXECUTADO Segurança: refere-se ao conjunto de propriedades da arquitetura que interferem diretamente na garantia da integridade dos dados da aplicação e no acesso aos mesmos; Performance: visa quantificar se a arquitetura computará os dados em tempo hábil, coerente com o contexto da requisição; Eficiência: conjunto de atributos que interferem diretamente nos tempos de resposta de um sistema; Usabilidade: conjunto de atributos que evidenciam o esforço necessário para se poder utilizar o software, bem como o julgamento individual desse uso, por um conjunto explícito ou implícito de usuários; Acoplamento: refere-se ao grau de dependência entre os componentes de software; Manutenabilidade: atributos do software que evidenciam o esforço necessário para modificá-lo, remover seus defeitos ou adaptá-lo a mudanças. e) Contextualização sobre Cenários (Duração 20min): O último passo dessa primeira reunião, foi a contextualização sobre cenários. Da mesma forma como os atributos de qualidade, inicialmente foi realizada uma breve apresentação sobre o que são e quais as necessidades dos cenários. Em seguida, alguns cenários foram exemplificados, como “Disponibilizar um novo tipo de dado” e “Combinar informações de duas ou mais fontes de dados”. Por fim, uma planilha foi compartilhada com cada participante para que eles pudessem detalhar os cenários de utilização da AS com base nos objetivos de negócios. Para isso, um prazo de 4 dias foi estipulado para que todos os participantes descrevessem os possíveis cenários. 5.3.2 Segunda Reunião A Segunda Reunião foi marcada uma semana depois da primeira reunião, para mitigar o risco dos participantes esquecerem algum tópico abordado. Após os 4 dias estipulados para que todos os participantes descrevessem os cenários, o arquiteto consolidou todos os cenários. Esta consolidação resumiu-se em, basicamente, filtrar os cenários duplicados e reescrever alguns com outras palavras para facilitar a compreensão dos demais participantes. Apenas 2 cenários foram considerados duplicados e 1 precisou ser reescrito. a) Apresentação dos Cenários (Duração 30min): Nessa primeira etapa da segunda reunião, foram apresentados todos os cenários propostos pelos participantes da avaliação no prazo estipulado. Como vários participantes possuem diferentes visões e 86 CAPÍTULO 5. AVALIAÇÃO DA ARQUITETURA DE SOFTWARE experiências, foram identificados diferentes nichos de aplicabilidade da AS proposta, por exemplo, em contextos totalmente distribuídos ou, até mesmo, em contextos federados. b) Priorização dos Cenários (Duração 1hora): A segunda etapa foi uma discussão conduzida pelo arquiteto na qual o objetivo era a priorização dos cenários. Essa discussão foi guiada pelo arquiteto, na qual cada cenário foi discutido e um peso de relevância foi atribuído para cada cenario. Essa priorização levou em consideração os cenários mais aplicáveis, coerentes e factíveis na AS proposta. c) Avaliação dos Cenários propostos (Duração 1hora): Em seguida, os cenários priorizados foram avaliados e discutidos sobre a AS proposta. O principal objetivo foi avaliar o quão os cenários levantados condizem com a natureza da AS proposta. Ao término desta reunião, os cenários resultantes são exibidos na Tabela 5.6, ordenados de acordo com a priorização. 5.3.3 Terceira Reunião Da mesma forma que a Segunda Reunião, a Terceira e última reunião foi marcada uma semana depois. O objetivo primordial dessa reunião foi consolidar os resultados e definir as possíveis ações a serem tomadas para aprimorar a proposta. Para tal, foi criado um formulário online com todos os cenários, ordenados por ordem de priorização. O objetivo deste formulário foi de mensurar quantitativamente o quão a AS contempla cada cenário. a) Avaliação das interações entre Cenários e Atributos de Qualidade (Duração 1hora): Nesta primeira etapa da reunião, os participantes discutiram o quão os cenários priorizados conflitavam com os atributos de qualidade. b) Consolidação dos Resultados (Duração 1hora): Nesta etapa os resultados foram apresentados. Primeiramente, um overview sobre cada artefato gerado durante o processo foi apresentado, principalmente a priorização dos atributos de qualidade e os cenários. A próxima Seção detalhará esses resultados. A Seção a seguir resume os resultados obtidos com o processo de avaliação de AS realizado. 5.4 Resultados da Avaliação da Arquitetura Um dos benefícios de se realizar qualquer avaliação de Arquitetura de Software (AS) é a melhoria de comunicação entre os stakeholders, resultando em um melhor entendimento dos requisitos. 87 5.4. RESULTADOS DA AVALIAÇÃO DA ARQUITETURA Tabela 5.6: Cenários resultantes de acordo com a relevância ID C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 Cenário Armazenar dados fornecidos por diferentes contextos e provedores, independente do formato e da natureza do dado Consultar dados oriundos de um provedor de dado, independente de quando esse dado foi gerado Permitir que novos tipos de informações sejam fornecidas, a partir da combinação de uma ou mais fontes de dados Permitir a inclusão de novos provedores de dados A AS deve auxiliar a interoperabilidade entre sistemas, na qual um evento gerado externamente pode disparar ações A AS deve auxiliar a fusão de dados, na qual um evento produzido internamente com base na análise de dados/histórico pode gerar ações externas A AS deve permitir a comunicação via API A AS deve permitir a recuperação de grandes massas de dados históricas de diversas fontes, a fim de obter previsões que dizem respeito à prestação de serviços urbanos Fornecer algum mecanismo para tolerância a falhas (redundância) Permitir a criação e comunicação de instâncias federativas, baseada em serviços Possuir mecanismo para a inclusão de novos protocolos de comunicação na AS Plugar novas soluções para diferentes contextos utilizando a mesma infraestrutura Suporte a serviços em Cloud Computing já existentes (Ex.: Google Analytics e cloud storage) Gerenciar os dados do usuário de acordo com as políticas de privacidade governamentais Logo, conforme descrito na Seção anterior, para mensurar quantitativamente o quão a AS contempla cada cenário, foi criado um formulário online com todos os cenários, ordenados por ordem de priorização. Neste formulário, cada participante deveria atribuir uma nota para a adequação de cada cenário, na qual 5 representa que a AS ATENDE TOTALMENTE e 0 significa que NÃO ATENDE ao cenário em questão. A partir deste formulário, foram obtidas algumas conclusões, que serão exemplificadas nas posteriores subseções. 5.4.1 Resultados da Avaliação dos Cenários Cada participante respondeu o formulário online independentemente. A partir disso, o arquiteto consolidou todas as respostas anonimamente. A figura 5.1 ilustra a média e o desvio padrão das respostas, além de 3 faixas de satisfatoriedade, definidas pelos próprios participantes da avaliação. 88 CAPÍTULO 5. AVALIAÇÃO DA ARQUITETURA DE SOFTWARE file = images/cenarios.eps, width = 10cm Figura 5.1: Resultado da avaliação dos cenários Para analisar os resultados na Figura 5.1, deve ser considerada a relevância dos cenários propostos, priorizados durante o processo de avaliação. Como é possível notar, na opinião dos participantes, a AS atende à três cenários de maneira EXCELENTE. O primeiro cenário (C2) é relacionado aos mecanismos de distribuição de dados implementados no MGDD (Seção 4.3.3), principalmente a utilização da DHT de dados. Conforme discutido, a utilização da DHT permitiu que os recursos fornecedores e consumidores e os canais de dados estejam distribuídos em uma infraestrutura de cloud. Já o segundo cenário categorizado como EXCELENTE (C4) foi obtido a partir da implementação do padrão publisher-subscriber também no MGDD. Esta implementação permite que um dado seja disponibilizado para todos os recursos consumidores assim que é produzido. No contexto de CI, esta característica básica é de suma importância se todos os consumidores receberam os dados simultâneamente e está contemplada nesta proposta. Além disso, o desacoplamento entre fornecedores e consumidores de dados oriundos a partir do padrão publisher-subscriber também é de suma importância para futuras expansões da AS. O último cenário avaliado positivamente (C7) é oriundo do modelo de abstração e da flexibilidade implementada no MAC (Seção 4.3.1). Esta abstração permite que novos protocolos de troca de mensagens sejam inseridos sob demanda. Já a flexibilidade está relacionada à capacidade de trocar a interface REST ou, até mesmo, incluir outro padrão em paralelo. A maioria dos cenários foram considerados SATISFATÓRIOS pelos participantes da avaliação. Embora este resultado indique que a AS, em uma primeira instância, atende a um conjunto de contextos de utilização, ela deve ser aprimorada para atender de maneira segura e eficiente aos demais contextos. Além disso, dois cenários foram classificados como PÉSSIMO. O primeiro (C9) está relacionado à inserção de algum mecanismo de tolerância a falhas. Não foi encontrado nenhum mecanismo semelhante nas abordagens encontradas na literatura. Porém, no contexto de uma CI é inadmissível que todo o sistema da cidade deixe de funcionar devido à um problema em algum módulo ou componente de software. A literatura apresenta diversas técnicas de redundância, tanto de dados como de componentes de software, que devem ser inseridas na proposta. Além disso, estratégias de backup, controle de acesso e demais aspectos relacionados à confiabilidade da proposta devem ser investigadas. O outro cenário que foi classificado como PÉSSIMO (C14) corresponde às políticas de privacidade de dados utilizadas pela AS. Conforme pôde ser verificado, este requisito não faz parte desta AS. Além disso, esta necessidade foi identificada no começo desta pesquisa, porém um outro trabalho de mestrado está sendo desenvolvido com este escopo. Este trabalho de privacidade será acoplado à esta proposta assim que finalizado. Para isso, as definições de interfaces e padrões de mensagens estão sendo definidas em conjunto. O escopo deste trabalho 89 5.5. AMEAÇAS À AVALIAÇÃO de privacidade é criar um mecanismo em que, a partir das interações anteriores, os cidadãos possam “negociar” o quão seus dados estarão disponíveis para um determinado provedor de serviço urbano. 5.4.2 Resultados Gerais Esta sub-seção visa elencar os resultados gerais obtidos a partir do processo de avaliação executado. Estes resultados foram extraídos a partir das discussões com os participantes e não necessariamente são observados nos artefatos do processo. Primeiramente, o fato de dois de três cenários categorizados como EXCELENTE estarem diretamente relacionado ao MGDD era esperado. O MGDD pode ser considerado o core da proposta, principalmente devido ao módulo de distribuição de dados utilizado. Este modelo, utilizando o padrão publisher-subscriber foi encontrado em outros contextos e adaptado para esta proposta. Além disso, a alta quantidade de requisitos que o MGDD visa satisfazer representa os principais diferenciais desta proposta com as demais. Este fato alerta para possíveis problemas relacionados ao acoplamento do MGDD com o restante da AS. Por exemplo, deve-se prever e criar mecanismos para mitigar os possíveis problemas no MGDD relacionados à indisponibilidade da DHT Canais de Dados. Caso isso aconteça, os demais módulos devem continuar funcionando corretamente a partir de mecanismos de redundância. Além disso, de acordo com os participantes, não é necessário descrever um novo padrão arquitetural para o contexto de CI e IoT. Esta conclusão foi obtida a partir da avaliação de que a proposta atual contempla alguns padrões arquiteturais e já atende diversos cenários de utilização. De maneira geral, estes resultados mostram que a AS pode e deve ser utilizada em um contexto real, para, de fato, verificar a adequação da AS ao contexto de CI e IoT. Logo, como trabalho futuro, a proposta atual será implantada em um ambiente real por meio de parcerias com orgãos interessados. 5.5 Ameaças à Avaliação Na avaliação da arquitetura descrita previamente, algumas ameaças foram identificadas. Estas ameaças não afetam diretamente o resultado final desta avaliação, porém devem ser analisadas para trabalhos futuros. A primeira ameaça está relacionada à quantidade de pessoas envolvidas no processo de avaliação. Por mais que a equipe tenha várias expertises diferentes englobando várias áreas de uma cidade, como recomendado por clements2003documenting, se mais pessoas tivessem participado da avaliação outros pontos de vistas poderiam ser levantados. Infelizmente, este pequeno número de participantes foi devido à disponibilidade do grupo de pesquisa para a realização das três reuniões mencionadas. 90 CAPÍTULO 5. AVALIAÇÃO DA ARQUITETURA DE SOFTWARE A outra ameaça está relacionada com a ordem das etapas do método de avaliação. Como apresentação da arquitetura foi realizada antes da definição e priorização dos atributos de qualidade e dos cenários, a opinião dos participantes pode ter sido enviesada. Apesar disto, no inicio das etapas de definição e priorização dos atributos de qualidade e dos cenários foi ressaltado que as opiniões deveriam ser a partir da apresentação dos objetivos de negócios. Logo, uma melhoria no método de avaliação é alterar a ordem destas etapas. 5.6 Considerações Finais do Capítulo Este Capítulo iniciou-se apresentando os filtros aplicados nos métodos de avaliação disponíveis na literatura Seção 5.1. Estes filtros foram aplicados de acordo com o contexto da avaliação a ser executada. Após estes filtros, os métodos SAAM e ATAM foram considerados os mais indicados. Porém, a versão original destes métodos não condiz com o contexto desta avaliação. Logo, a Seção 5.2 propôs uma adaptação destes dois métodos de avaliação de AS’s amplamente aceitos e validados na literatura. Finalmente, a Seção 5.3 apresentou todas as etapas do processo de avaliação executado. Por fim, a Seção 5.4 discutiu os principais resultados da avaliação. A partir da avaliação realizada, pode-se mensurar o quão a AS está apta para ser implantada em um contexto real. Dessa forma, o próximo Capítulo finaliza o trabalho descrevendo as principais conclusões e as atividades futuras, como implantar a AS em um ambiente real e controlado. 91 6 Conclusão Feliz aquele que transfere o que sabe e aprende o que ensina. —CORA CORALINA, 2007 (Vintém de cobre: meias confissões de Aninha. 9. ed . São Paulo: Global.) Uma vez que a AS para Cidade Inteligente (CI) foi especificada e projetada, algumas conclusões e direções para trabalhos futuros podem ser apontadas. Desta forma, este Capítulo apresenta as conclusões finais deste trabalho e está organizado da seguinte maneira: a Seção 6.1 apresenta um resumo das principais conclusões deste trabalho. A Seção 6.2 relata alguns trabalhos relacionados. A Seção 6.3 aponta um conjunto de trabalhos futuros, e finalmente, a Seção 6.4 contém a conclusão final da dissertação. 6.1 Principais Conclusões Esta Seção resume as principais conclusões deste trabalho, enumeradas abaixo: O crescimento populacional desenfreado, combinado com outras questões de má governança, tem potencializado os problemas urbanos. Estes problemas estão relacionados aos diversos serviços de uma cidade, como saúde, transporte e lazer. Consequentemente, estes problemas afetam diretamente o dia-a-dia dos cidadãos e dificultam o gerenciamento das cidades pelos gestores (Seção 1.1). Apesar da evidente necessidade de cidades cada vez mais inteligentes, ainda não há um consenso sobre a definição mais adequada para o termo CI. Mesmo assim, várias abordagens estão sendo desenvolvidas com o paradigma de utilizar IoT como ferramenta para a implementação, de fato, de uma CI. Neste contexto, as tecnologias IoT são utilizadas, principalmente, para monitorar, controlar e atuar sobre os diversos serviços urbanos (Capítulo 2). 92 CAPÍTULO 6. CONCLUSÃO 6.2 Na literatura, várias abordagens estão sendo desenvolvidas com este paradigma. Porém, a maioria destas abordagens focam em apenas um conjunto muito restrito de serviços urbanos e não consideram a integração entre estes serviços (Capítulo 3). A AS proposta por esta dissertação permite que os dados entre os diferentes serviços urbanos sejam difundidos para todos os recursos interessados. Para tal, a AS implementa um padrão arquitetural bastante conhecido na literatura chamado de publisher-subscriber (Capítulo 4). Para avaliar a AS proposta, dois métodos de avaliação arquitetural foram adaptados para o contexto deste trabalho. Esta adaptação mostrou-se bastante útil, uma vez que os principais benefícios citados na teoria, tais como composição de dados urbanos, foram confirmados (Seção 5.4). Trabalhos Relacionados Em livingPlanIT foi adotada uma estratégia de implementar um Sistema Operacional Urbano (UOS). Este sistema operacional consiste em uma plataforma que visa integrar cada domínio que compõe a cidade. O sistema é alimentado por uma vasta rede de sensores e todos esses dados são capturados por tempo indeterminado, para auxiliar na tomada e na predição de decisões. Além de prever catástrofes, caso ocorra, o sistema pode antever todos os possíveis impactos na cidade. As principais diferenças da abordagem de livingPlanIT e esta proposta são a parceria com setor privado (livingPlanIT possui uma parceria com Cisco e Microsoft) e o modelo de distribuição de dados, uma vez que no modelo adotado em livingPlanIT a disponibilização de um novo tipo de dado é custosa, do ponto de vista arquitetural. Outra abordagem em que se utilizam vários sensores embarcados nos contextos urbanos é SmartSantander SANCHEZ et al. (2011). A quantidade de dispositivos configurados na AS é superior à 12.000. O SmartSantander provê: i) um modelo de refência de arquitetura para sistemas IoT do mundo real; ii) um escalável, heterogêneo e confiável facilitador de experimentos; iii) um conjunto representativo de casos de uso implementados para facilidades de experimentação e iv) um grande conjunto de experimentos e resultados sobre o futuro da internet. A principal diferença da abordagem descrita por SmartSantander-2011 com esta proposta, além da parceria com o setor privado, são os mecanismos que permitem a composição de dados urbanos. Na proposta deste trabalho, assim que um dado novo é disponilizado, permite-se a criação de um novo canal para este dado. Além disto, esta proposta contempla mecanismos de gereção de histórico, que é fundamental para a tomada de decisões futuras. Por sua vez, em Filipponi-2010 a integração de sensores é abordada a partir de uma AS baseada em eventos, na qual cada evento corresponde à mudança de estado de qualquer sistema de TIC. Estes eventos podem ser iniciados a partir de eventos do mundo real (como detecção de presença) ou ao término de algum processamento. A abordagem de Filipponi-2010 é 93 6.2. TRABALHOS RELACIONADOS bastante similar com esta proposta no quesito de modelagem do ambiente real. Porém, a principal diferença é a existência nesta proposta de um mecanismo para geração de histórico para a previsão de futuros eventos. Além disto, as informações de cada sensor que está fornecendo os dados pode ser utilizada para otimizar o desempenho dos algoritmos SHAO (2011); HERNáNDEZ-MUñOZ et al. (2011); VEGA-BARBAS et al. (2012). Neste sentido, em Hernandez-2011 é proposta uma AS (USN), com o objetivo de prover uma infraestrutura que seja capaz de integrar sensores heterogêneos e dispersos geograficamente em um base centralizadora, na qual serviços podem ser facilmente desenvolvidos. Esta abordagem de Hernandez-2011 é similar a esta proposta nas técnicas adotadas para permitir a integração de sensores heterogêneos. A principal diferença é que nesta proposta novos protocolos de troca de mensagens podem ser facilmente inseridos. Além disto, o custo para integrar diferentes fornecedores de dados nesta proposta é muito baixo para otimizar o desempenho em larga escala. Finalmente, em Components-2009 é proposta uma AS baseada em quatro princípios: aplicações, negócios, gerenciamento de processos e infraestrutura de redes. O primeiro princípio corresponde às aplicações que fazem uso de diferentes tecnologias para monitorar sensores, como GPS. A maioria dessas aplicações atendem as demandas operacionais das cidades, porém, ao utilizar as regras definidas no segundo princípio - negócios - elas podem agregar soluções economicamente viáveis. O terceiro princípio é o gerenciamento de processos no qual relacionamentos, regras, estratégias e políticas entre as aplicações e as unidades de negócios são definidos. O último princípio corresponde a toda a infraestrutura de rede, responsável por conectar os outros três princípios. A principal diferença da abordagem de Components-2009 para esta proposta é a criação de um componente específico para modelos de negócio. Este diferencial pode ser facilmente incorporado nesta proposta, uma vez que este componente poderia ser um consumidor de dado que, a partir dos dados que estão trafegando na arquitetura, inferir um modelo de negócios eficaz com estas informações. Ao analisar os principais trabalhos relacionados, pôde-se observar que todos visam mitigar apenas uma deficiência tecnológica relacionada à CI. Apenas a abordagem de livingPlanIT visa integrar as informações provenientes de diferentes domínios de uma cidade, o que pode contribuir para tornar uma cidade de fato inteligente. Além disto, o conjunto de requisitos que esta proposta contempla é superior à todos os trabalhos relacionados. Apesart deste conjunto de requisitos ter sido definido juntamente com esta proposta, este refleta uma série de características que qualquer Arquitetura de Software (AS) para Cidade Inteligente (CI) deveria atender. Os resultados desta dissertação estão baseados em um trabalho de pesquisa que analisou o estado da arte e da prática no tocante as AS’s de software para CI que combinam tecnologias IoT. Estes resultados envolvem, entre outras coisas: (i) um levantamento das soluções existentes, (ii) a extração de um conjunto de requisitos que uma AS para CI deve atender, (iii) o projeto da AS, (iv) a avaliação preliminar da AS e (v) uma implementação de referência. 94 6.3 CAPÍTULO 6. CONCLUSÃO Trabalhos Futuros A versão inicial desta AS não contempla algumas características, principalmente as questões relatadas na Seção 1.4, e os resultados da avaliação da AS: 6.4 Utilização em Ambiente Real: A proposta atual será implantada em um ambiente real a partir de parcerias com empresas e prefeituras. Certamente essa etapa vai contribuir com a proposta e avaliar, de fato, à adequação ao contexto deste trabalho. Mecanismo de tolerância à falhas: Estratégias de redundância devem ser implementadas para que os serviços urbanos não sejam afetados devido a uma eventual falha em algum ponto da AS; Políticas de privacidade: Já que vários dados pessoais dos cidadãos trafegarão pela AS, torna-se indispensável a adequação de políticas de privacidade, principalmente relacionadas ao armazenamento, utilização e descarte dos dados; Modelo de Negócio: Modelos de negócios devem ser discutidos para suprir os custos envolvendo a implementação, manutenção e expansão desta AS no ambiente real. Uma estratégia que deve ser discutida é a parceria com governos e empresas para a utilização desta AS; Análises de big data: Com o alto volume de dados potencialmente gerado a partir da utilização desta AS, análises de big data devem ser feitas para otimizar o desempenho dos serviços urbanos; Semântica dos Dados: Futuras pesquisas podem investigar a melhor estratégia de semântica dos dados a ser implementada nesta proposta. Conclusão A necessidade de cidades cada vez mais inteligentes é notoriamente crescente. Vários dados publicados pela mídia em geral comprova que o crescimento populacional não está alinhado com o desenvolvimento das infraestruturas e dos principais serviços urbanos. A precariedade destes serviços urbanos afeta negativamente a qualidade de vida dos cidadãos. Logo, torna-se fundamental o investimento em estratégias que visam mitigar estes problemas urbanos para otimizar a vida dos cidadãos. Estas iniciativas devem ser desenvolvidas considerando as partes envolvidas: governo e cidadãos. Além disso, torna-se importante que os cidadãos estejam conscientes do seu papel em prol de uma cidade melhor para todos. Neste sentido, esta dissertação apresentou a especificação e o projeto de uma AS para CI que permite a integração de tecnologias IoT para mitigar estes problemas urbanos. Esta 95 6.4. CONCLUSÃO AS foi proposta a partir de um conjunto de requisitos mais importante extraído das principais abordagens disponíveis na literatura. 97 References AL-HADER, M. et al. Smart City Components Architicture. In: COMPUTATIONAL INTELLIGENCE, MODELLING AND SIMULATION. Anais. . . [S.l.: s.n.], 2009. p.93–97. ANDREINI, F. et al. A scalable architecture for geo-localized service access in smart cities. In: FUTURE NETWORK & MOBILE SUMMIT. Anais. . . [S.l.: s.n.], 2011. p.1–8. ANTHOPOULOS, L.; FITSILIS, P. From digital to ubiquitous cities: defining a common architecture for urban development. In: INTERNATIONAL CONFERENCE ON INTELLIGENT ENVIRONMENTS, 6. Proceedings. . . [S.l.: s.n.], 2010. p.19–21. ASIMAKOPOULOU, E.; BESSIS, N. Buildings and Crowds: forming smart cities for more effective disaster management. In: INNOVATIVE MOBILE AND INTERNET SERVICES IN UBIQUITOUS COMPUTING (IMIS), 15TH INTERNATIONAL CONFERENCE. Anais. . . [S.l.: s.n.], 2011. p.229–234. ATTWOOD, A. et al. SCCIR: smart cities critical infrastructure response framework. In: DEVELOPMENTS IN E-SYSTEMS ENGINEERING (DESE), 2011. Anais. . . [S.l.: s.n.], 2011. p.460–464. ATZORI, L.; IERA, A.; MORABITO, G. The Internet of Things: a survey. Comput. Netw., New York, NY, USA, v.54, n.15, p.2787–2805, ’2010’. BARBACCI, M. et al. Quality Attributes. [S.l.]: Software Engineering Institute, 1995. Technical report. BASS, L.; CLEMENTS, P.; KAZMAN, R. Software Architecture in Practice. Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 1998. BIRD, S. Security and Privacy: why privacy matters. Science and Engineering Ethics, [S.l.], v.19, n.3, p.669–671, 2013. BLACKSTOCK, M. et al. MAGIC Broker 2: an open and extensible platform for the internet of things. In: INTERNET OF THINGS (IOT), 2010. Anais. . . [S.l.: s.n.], 2010. p.1–8. BOOCH, G. Enterprise Architecture and Technical Architecture. Software, IEEE, [S.l.], v.27, n.2, p.96–96, 2010. BUSCHMANN, F. et al. Pattern-oriented software architecture: a system of patterns, vol.1. [S.l.]: Wiley, 1996. CARAGLIU, A.; DEL BO, C.; NIJKAMP, P. Smart cities in Europe. [S.l.]: VU University Amsterdam, Faculty of Economics, Business Administration and Econometrics, 2009. Serie Research Memoranda. (0048). CHEN, L.; ALI BABAR, M.; ALI, N. Variability management in software product lines: a systematic review. In: INTERNATIONAL SOFTWARE PRODUCT LINE CONFERENCE, 13., Pittsburgh, PA, USA. Proceedings. . . Carnegie Mellon University, 2009. p.81–90. (SPLC ’09). CLEMENTS, P. Documenting Software Architectures: views and beyond. [S.l.]: Addison-Wesley, 2003. (SEI series in software engineering). 98 REFERENCES COMPUTERWORLD. Smart Cities. "[Online] Acessado em 05-Agosto-2013", http: //www.computerworld.com.pt/2013/07/04/dossier-smart-cities/. DIRKS, S.; KEELING, M. A Vision of Smarter Cities. Centre for Economic Development, Dublin, Ireland, [S.l.], 2009. DOBBS, R.; INSTITUTE, M. G. Urban World: mapping the economic power of cities. [S.l.]: McKinsey Global Institute, 2011. DROEGE, P. Intelligent Environments: spatial aspects of the information revolution. [S.l.]: Elsevier Science, 1997. EGER, J. M. Ten Steps to Becoming a Smart Community. [S.l.]: California Institute for Smart Communities, 2011. "[Online] Acessado em 16-Outubro-2012". ERBAD, A. et al. MAGIC Broker: a middleware toolkit for interactive public displays. In: ANNUAL IEEE INTERNATIONAL CONFERENCE ON PERVASIVE COMPUTING AND COMMUNICATIONS, 6., Washington, DC, USA. Anais. . . IEEE Computer Society, 2008. p.509–514. (PERCOM ’08). FAZIO, M. et al. Heterogeneous Sensors Become Homogeneous Things in Smart Cities. In: SIXTH INTERNATIONAL CONFERENCE ON INNOVATIVE MOBILE AND INTERNET SERVICES IN UBIQUITOUS COMPUTING (IMIS). Anais. . . [S.l.: s.n.], 2012. p.775 –780. FELS, S. Sustainable communities: where does communication fit in? In: FIRST INTERDISCIPLINARY WORKSHOP ON COMMUNICATION FOR SUSTAINABLE COMMUNITIES, New York, NY, USA. Anais. . . ACM, 2010. p.1:1–1:2. (IWCSC ’10). FILIPPONI, L. et al. Smart City: an event driven architecture for monitoring public spaces with heterogeneous sensors. In: INTERNATIONAL CONFERENCE ON SENSOR TECHNOLOGIES AND APPLICATIONS, 4., Washington, DC, USA. Anais. . . IEEE Computer Society, 2010. p.281–286. FOWLER, M. Patterns of Enterprise Application Architecture. [S.l.]: Pearson Education, 2012. (Addison-Wesley Signature Series (Fowler)). GAMA, K.; DONSEZ, D. A survey on approaches for addressing dependability attributes in the OSGi service platform. SIGSOFT Softw. Eng. Notes, New York, NY, USA, v.35, n.3, p.1–8, May 2010. GARLAN, D.; SHAW, M. An Introduction to Software Architecture. Pittsburgh, PA, USA: School of Computer Science Carnegie Mellon University Pittsburgh, 1994. GIFFINGER, R.; PICHLER-MILANOVIĆ, N. Smart Cities: ranking of european medium-sized cities. [S.l.]: Centre of Regional Science, Vienna University of Technology, 2007. HALL, N. Are There Really More Mobile Phones Than Toothbrushes? "[Online] Available: 1-August-2012", http://bit.ly/RInZMi. HAUBENSAK, O. Smart Cities and Internet of Things. Business Aspects of the Internet of Things, [S.l.], p.33, 2011. 99 REFERENCES HEBERTY H. AMARAL, D. C. C.; FERNANDES, D. M. Estudo da relação entre as classes sociais e o consumo de energia elétrica residencial do município de Foz do Iguaçu do estado do Paraná. 8º congresso internacional sobre geração distribuída de energia no meio rural, [S.l.], 2010. HERNáNDEZ-MUñOZ, J. M. et al. Smart cities at the forefront of the future internet. In: DOMINGUE, J. et al. (Ed.). The future internet. Berlin, Heidelberg: Springer-Verlag, 2011. p.447–462. HOOVER, C. E. et al. Sustainable IT Ecosystems: enabling next-generation cities. [S.l.]: Hewlett-Packard Development Company, 2010. ISO/IEC. ISO/IEC 9126. Software engineering – Product quality. [S.l.]: ISO/IEC, 2001. JAUREGUI-ORTIZ, S. et al. Smart Environmental Architecture for Node Localization in a Wireless Sensor Network. In: INTELLIGENT ENVIRONMENTS (IE), 2012 8TH INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2012. p.222 –227. KAZMAN, R. et al. SAAM: a method for analyzing the properties of software architectures. In: SOFTWARE ENGINEERING, 16., Los Alamitos, CA, USA. Proceedings. . . IEEE Computer Society Press, 1994. p.81–90. (ICSE ’94). KAZMAN, R. et al. Experience with performing architecture tradeoff analysis. In: SOFTWARE ENGINEERING, 1999. PROCEEDINGS OF THE 1999 INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 1999. p.54–63. KAZMAN, R. et al. ATAM: method for architecture evaluation. 2000. KAZMAN, R. et al. A Basis for Analyzing Software Architecture Analysis Methods. Software Quality Control, Hingham, MA, USA, v.13, n.4, p.329–355, Dec. 2005. KLEIN, C.; KAEFER, G. From Smart Homes to Smart Cities: opportunities and challenges from an industrial perspective. In: INT. CONF. NEW2AN AND 1ST RUSSIAN CONFERENCE ON SMART SPACES, RUSMART ON NEXT GENERATION TELETRAFFIC AND WIRED/WIRELESS ADVANCED NETWORKING, 8., Berlin, Heidelberg. Anais. . . Springer-Verlag, 2008. p.260–260. KOMNINOS, N. Intelligent Cities: innovation, knowledge systems and digital spaces. [S.l.]: Taylor & Francis, 2002. KOMNINOS, N. The architecture of intelligent clities: integrating human, collective and artificial intelligence to enhance knowledge and innovation. In: IET INTERNATIONAL CONFERENCE ON INTELLIGENT ENVIRONMENTS, 2. Anais. . . [S.l.: s.n.], 2006. v.1, p.13–20. KRCO, S. SmartSantander - A smart city example. ICT event 2010, [S.l.], 2010. KRUCHTEN, P. The 4+1 View Model of Architecture. IEEE Softw., Los Alamitos, CA, USA, v.12, n.6, p.42–50, Nov. 1995. LEE, J.; BAIK, S.; CHOONHWA LEE, C. Building an integrated service management platform for ubiquitous cities. Computer, Los Alamitos, CA, USA, v.44, p.56–63, 2011. 100 REFERENCES LI, X. et al. Smart community: an internet of things application. IEEE Communications Magazine, [S.l.], v.49, n.11, p.68–75, 2011. MARCEAU, J. Introduction: innovation in the city and innovative cities. Innovation: Management, Policy & Practice, [S.l.], v.10, n.2-3, p.136–145, 2008. MARTíN, J. et al. A Home E-Health System for Dependent People Based on OSGI. In: MARTíNEZ MADRID, N.; SEEPOLD, R. (Ed.). Intelligent Technical Systems. [S.l.]: Springer Netherlands, 2009. p.117–130. (Lecture Notes in Electrical Engineering, v.38). MORVAJ, B.; LUGARIC, L.; KRAJCAR, S. Demonstrating smart buildings and smart grid features in a smart energy city. In: ENERGETICS (IYCE), 3RD INTERNATIONAL YOUTH CONFERENCE. Anais. . . [S.l.: s.n.], 2011. p.1–8. MOSTASHARI, A. et al. Citizens as sensors: the cognitive city paradigm. In: EMERGING TECHNOLOGIES FOR A SMARTER WORLD (CEWIT), 2011 8TH INTERNATIONAL CONFERENCE & EXPO ON. Anais. . . [S.l.: s.n.], 2011. p.1–5. NAM, T.; PARDO, T. Conceptualizing smart city with dimensions of technology, people, and institutions. In: ANNUAL INTERNATIONAL DIGITAL GOVERNMENT RESEARCH CONFERENCE: DIGITAL GOVERNMENT INNOVATION IN CHALLENGING TIMES, 12. Proceedings. . . [S.l.: s.n.], 2011. p.282–291. NATIONS, U. World Population Prospects: the 2006 revision and world urbanization prospects. New York: United Nations, 2007. (NIC), N. I. C. Disruptive Civil Technologies - Six Technologies with Potential Impacts on US Interests Out to 2025. [S.l.]: National Intelligence Council (NIC), 2008. PLANIT, L. Cities in the Cloud, A Living PlanIT Introduction to Future City Technologies. In: LIVING PLANIT. Anais. . . [S.l.: s.n.], 2012. POLLITT, M. M. An Ad Hoc Review of Digital Forensic Models. In: SYSTEMATIC APPROACHES TO DIGITAL FORENSIC ENGINEERING, 2007. SADFE 2007. SECOND INTERNATIONAL WORKSHOP ON. Anais. . . [S.l.: s.n.], 2007. p.43–54. QUN-LI, S.; JIE, L. Two software architecture evaluation methods based on scenario. In: CONTROL AND DECISION CONFERENCE, 2008. CCDC 2008. CHINESE. Anais. . . [S.l.: s.n.], 2008. p.2001–2004. ROY, B.; GRAHAM, T. N. Methods for evaluating software architecture: a survey. School of Computing TR, [S.l.], v.545, p.82, 2008. SANCHEZ, L. et al. SmartSantander: the meeting point between future internet research and experimentation and the smart cities. In: FUTURE NETWORK & MOBILE SUMMIT (FUTURENETW). Anais. . . [S.l.: s.n.], 2011. p.1–8. SCHUMPETER, J. A. The Theory of Economic Development: an inquiry into profits, capital, credit, interest, and the business cycle. [S.l.]: Transaction Books, 1934. (Harvard Economic Studies). SHAO, C. An Internet of Things Application with Location Perception Based on IMS. In: THIRD INTERNATIONAL CONFERENCE ON MULTIMEDIA INFORMATION NETWORKING AND SECURITY (MINES). Anais. . . [S.l.: s.n.], 2011. p.163–166. 101 REFERENCES SOMMERVILLE, I. Software Engineering. 8.ed. [S.l.]: Addison Wesley, 2007. SPÍNOLA, R. O.; TRAVASSOS, G. H. Towards a framework to characterize ubiquitous software projects. Inf. Softw. Technol., Newton, MA, USA, v.54, n.7, p.759–785, July 2012. TOMORDY, M. Smart Cities - Transforming the 21st century city via the creative use of technology. [S.l.]: ARUPCorp., 2011. TOUSEAU, L.; DONSEZ, D.; RUDAMETKIN, W. Towards a SLA-based Approach to Handle Service Disruptions. In: IEEE INTERNATIONAL CONFERENCE ON SERVICES COMPUTING - VOLUME 1, 2008., Washington, DC, USA. Proceedings. . . IEEE Computer Society, 2008. p.415–422. (SCC ’08). VEGA-BARBAS, M. et al. Smart Spaces and Smart Objects Interoperability Architecture (S3OiA). In: INNOVATIVE MOBILE AND INTERNET SERVICES IN UBIQUITOUS COMPUTING (IMIS), 2012 SIXTH INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2012. p.725–730. WU, H. et al. A Framework for Integrating Heterogeneous Spatial Information and Applications Adaptively Based on Multi-agent and Web Service. In: MULTIMEDIA INFORMATION NETWORKING AND SECURITY (MINES), 2011 THIRD INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2011. p.253 –257. ZYGIARIS, S. Smart City Reference Model: assisting planners to conceptualize the building of smart city innovation ecosystems. Journal of the Knowledge Economy, [S.l.], p.1–15, 2012. Apêndice 105 A Repositórios de busca na SLR Tabela A.1: Repositórios de busca na SLR Nome IEEExplore Science Direct ACM Digital Library Springer Link CiteSeerX Academia.edu ISI Web of Science & Digital World Intellectual Property Organization (WIPO) International Conference on Computational Intelligence, Modeling and Simulation (IJCCI) International Conference on Intelligent Environments (IE) Multimedia Information Networking and Security (MINES) Emerging Technologies for a Smarter World (CEWIT) International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS)) Tipo Digital Digital Digital Digital Digital Digital Digital Patente Digital Manual URL http://ieeexplore.ieee.org/ http://www.sciencedirect.com/ http://dl.acm.org/ http://link.springer.com/ http://citeseerx.ist.psu.edu/ http://www.academia.edu/ http://wokinfo.com/ http://www.wipo.int Manual http://www.intenv.org/ Manual http://www.ieee-mines.org/ Manual http://www.cewit.org/ Manual http://voyager.ce.fit.ac.jp/conf/imis/2013/ http://www.ijcci.org/ 107 B Avaliação da Arquitetura de Software (AS) file = images/proposs cenarios.eps, width = 10cm Figura B.1: Printscreen do formulário online utilizado pelos participantes para propor os cenários de uso da AS file = images/scenarios1 .eps, width = 10cm Figura B.2: Printscreen da Parte 1/3 do formulário online para quantificar a adequação da AS aos respectivos cenários file = images/scenarios2 .eps, width = 10cm Figura B.3: Printscreen da Parte 2/3 do formulário online para quantificar a adequação da AS aos respectivos cenários file = images/scenarios3 .eps, width = 10cm Figura B.4: Printscreen da Parte 3/3 do formulário online para quantificar a adequação da AS aos respectivos cenários