Português English
Contato

Lista de Disciplinas | CMP258

CMP258 – Desenvolvimento de Aplicações Big Data, Cloud, e Fog/EDGE

Responsável: Cláudio Fernando Resin Geyer
Pré-Requisitos: –
Carga Horária: 60 hs
Créditos: 4
Semestres Oferecidos: Primeiro semestre
Matrícula de Graduandos: A matricula deverá ser feita como Aluno Especial

SÚMULA
Conceitos de concorrência, sincronização e comunicação com uso de objetos distribuídos.
Comunicação indireta, consenso e replicação de dados em larga escala. Conceitos de Big Data. Conceitos de sistemas distribuídos em larga escala: Cloud, IoT e Big Data. Frameworks Big Data como Hadoop e Spark. Desenvolvimento de aplicações com Big Data (batch/streaming). Frameworks para Fog/Edge e aplicações móveis como Amazon IoT, Google Cloud IoT, Android e iOs. Desenvolvimento de aplicações IoT com mobilidade. Bibliotecas de Machine Learning para Big Data e IoT.

OBJETIVOS
O tema geral da disciplina é o desenvolvimento de aplicações distribuídas em larga escala nas áreas de Big Data, Fog/Edge, Cloud e Mobile. Ao final da disciplina o aluno deverá conhecer os principais conceitos dessas áreas, seus frameworks atuais, suas principais bibliotecas e APIs, técnicas de programação, algoritmos associados e alguns exemplos de aplicações em áreas como Smart Cities, Biomedicina, Sistemas Autônomos e PLN. O uso de bibliotecas de Machine Learning e Deep Learning associadas ao desenvolvimento das aplicações Big Data em ambientes largamente distribuídos com IoT, Cloud e sistemas autônomos também será estudado.

PROGRAMA
• Introdução: Revisão de conceitos básicos de programação distribuída e paralela: sistemasdistribuídos, aplicações distribuídas, modelos de programação, expressão da concorrência, sincronização e métodos de comunicação; ênfase em ambientes orientados a objetosdistribuídos.
• Big Data: Conceitos de Big Data; Modelo MapReduce; Conceitos de streaming; Frameworkpara Big Data streaming; Introdução à programação MapReduce; Ferramenta para gerência derecursos e jobs; Sistemas de Comunicação (brokers) e de Armazenamento Big Data (NoSQL);Introdução às aplicações Big Data streaming distribuídas e com uso de Machine Learning.
Exemplos de frameworks e ferramentas: Hadoop, Spark, Flink, HDFS, Cassandra, MongoDB.
• Cloud: Conceitos básicos de Cloud; Conceitos de frameworks e ferramentas para o desenvolvimento de aplicações em Cloud (AWS, Google Cloud, MS Azure); Introdução ao desenvolvimento de aplicações em Cloud.
• IoT e Mobile: Conceitos de IoT; Conceitos e exemplos de frameworks para : IoT; Conceitos de Fog/Edge. Introdução ao Processamento Móvel. Mecanismos e protocolos de sincronização e comunicação indireta; Plataformas de esenvolvimento e introdução à programação para dispositivos móveis em ambiente IoT, com opção de uso de arquitetura Fog/Edge. Exemplos de
frameworks: AWS IoT, Google Cloud IoT, Android e outros. Exemplos de message brokers:
Kafka, Rabbit MQ, Zero MQ, ActiveMQ, Kestrel, Mosquito entre outros.
CRITÉRIOS DE AVALIAÇÃO:
• EXEs: 2 a 4 exercícios extra classe em grupos de alunos; pequenos trabalhos sobre o
material apresentado em aula;
• TLs: 2 a 3 trabalhos em grupos de alunos com apresentações; o principal tipo é a análise de
artigos científicos nas áreas da disciplina, mas eventualmente também análise de tutoriais
disponíveis na web (slides, vídeos, …) e de novos mecanismos e bibliotecas; discussão na
turma dos resultados de cada grupo;
• TF: Trabalho Final individual; diversos temas são propostos em função de frameworks,
ferramentas, técnicas e tipos de aplicações mais importantes conforme semestre; os principais
tipos de trabalhos são análise comparativa de ferramentas, mini survey de artigos,
implementação de protótipos, avaliação de desempenho e de qualidade de frameworks e
ferramentas, modelagem de aplicações e algumas combinações.

BIBLIOGRAFIA BÁSICA
• ANDREWS, G. R. Concurrent Programming – Principles and Practice. The
Benjamin/Cummings, Redwood City, 1991.
• Nathan Marz, James Warren – Big Data Principles and best practices of scalable realtime
data systems – Ed. Manning, 1ª ed., 2015. ISBN 9781617290343
• White, Tom – Hadoop – The Definitive Guide, Ed. O’ Reilly, 4ª ed., 2015.

BIBLIOGRAFIA COMPLEMENTAR
• Holden Karau, Andy Konwinski, Patrick Wendell, Matei Zaharia – Learning Spark: Lightning-
Fast Big Data Analysis, Ed. O’ Reilly, 1ª ed, 2015. ISBN: 978-1-449-35862-4
• Ellen Friedman and Kostas Tzoumas- Introduction to Apache Flink -Stream Processing
for Real Time and Beyond, Ed. O’ Reilly, 1ª ed, 2016. ISBN: 978-1-491-99880-9
• Iorga, M., Feldman, L., Barton, R., Martin, M. J., Goren, N., and Mahmoudi, C. (2018). Fog
Computing Conceptual Model. Technical Report NIST 500-325
• Tanwar, S., Tyagi, S., Kumar, N. (2020). Multimedia BigData Computing for IoT
Applications – Concepts, Paradigms and Solutions. Ed. Springer, Vol. 163 ISBN
978-981-13-8758-6
• Arun Kumar Sangaiah, Arunkumar Thangavelu, Venkatesan Meenakshi Sundaram (2018).
Cognitive Computing for Big Data Systems Over IoT. Ed. Springer, ISBN 978-3-319-70687-0
• Tutoriais dos frameworks
• Artigos selecionados.