We may earn an affiliate commission when you visit our partners.
Course image
José Valdvogel

Aprenda na prática os conceito básicos de um sistema distribuído e como realizar a comunicação entre sistemas de diferente plataformas. O curso aborda características importantes na concepção de projetos de arquitetura distribuída, assim como a aplicação prática dentro de um caso de uso que facilita assimilação dos conceitos. Curso feito por desenvolvedor para desenvolvedores.

Enroll now

What's inside

Syllabus

Introdução - Apresentação do Curso

Boas-vindas do curso!

Apresentação rápida do curso, temas e instrutor.

Essa aula irá responder as seguintes questões :

Para quem é esse curso ?

Quais são os pré-requisitos?

O que você irá aprender ?

Conteúdo do curso ?

Quem é o instrutor e porque ele é a melhor pessoa para ensinar esse curso ?

Porque fazer esse curso ?

Read more

Como esse curso será ministrado ?

Apresentando a metodologia de ensino.

Essa aula irá responder as seguintes perguntas:

1. Quais ferramentas usar para esse curso ?

2. Qual será a tecnologia utilizada no curso ?

3. Qual será a IDE utilizada ?

Instalar Java and Netbeans em sua máquina local

Explicando as características principais em um sistema distribuído

Facilitando o entendimento e assimilação do conteúdo com um caso prático de mercado

Explicando troca de mensagens e aplicando ao caso de uso

Explicando sincronismo e falha e aplicando ao caso de uso

Explicando segurança e aplicando ao caso de uso

Explicando heterogeneidade e aplicando ao caso de uso

Explicando desempenho e aplicando ao caso de uso

Explicando custo e aplicando ao caso de uso

Explicando Distribuição Geográfica, Compartilhamento de recursos e Capacidade de expansão e aplicando ao caso de uso

Explicando Disponibilidade e aplicando ao caso de uso

Explicando Concorrência e aplicando ao caso de uso

Explicando Transparência e aplicando ao caso de uso

Explicando conceitos e características do modelo cliente-servidor

Recorte do cenário de caso de uso para implementação.

Características abordadas:

Troca de mensagens

Sincronismo e Falhas

Segurança

Heterogeneidade

Desempenho

Disponibilidade

Transparência

Criando mock do parceiro de acomodação

Importando o WSDL e consumindo Web Service com Java e GlassFish

Criando Rest API, consumindo o Web Service, transformando os dados e retornando XML

Retornando JSON em nossa API Rest

Adicionando Queryparam para os métodos de retorno de Hotel

Finalizando os testes do backend usando Postman

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores key characteristics in distributed architecture projects, offering practical application within a use case to facilitate concept assimilation
Taught by a developer, which may offer practical insights and real-world perspectives relevant to other developers
Uses Java and Netbeans, which are industry-standard tools for building distributed systems and web services
Covers topics such as message exchange, synchronization, failure handling, security, and heterogeneity, which are crucial for robust distributed systems
Employs a client-server model, which is a foundational architectural pattern in distributed computing
Utilizes Java and GlassFish for consuming web services, which may require learners to set up a local development environment

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Conceitos e implementação prática sistemas distribuídos

Segundo os estudantes, este curso oferece uma boa base para entender os conceitos fundamentais de sistemas distribuídos. Muitos destacam a aplicação prática através de um caso de uso real como um ponto forte, ajudando na assimilação. A implementação em Java com Web Services e REST é abordada, embora alguns considerem a tecnologia (GlassFish, JAX-WS) um pouco datada para o mercado atual. O instrutor é frequentemente elogiado pela clareza e didática, tornando tópicos complexos acessíveis. Contudo, há menções de que o áudio em algumas aulas poderia ser melhor e que, para um aprofundamento completo, conhecimento prévio de Java é essencial e estudo complementar pode ser necessário. No geral, é visto como um excelente ponto de partida para desenvolvedores que desejam entrar no mundo dos sistemas distribuídos.
Usa Java, Web Services (WSDL) e REST.
"A implementação é feita em Java, consumindo Web Services e construindo APIs REST."
"Aborda tanto Web Services mais antigos (WSDL) quanto APIs REST modernas."
"É útil para quem trabalha com Java e precisa entender a comunicação entre sistemas."
"As tecnologias escolhidas são relevantes para muitos cenários corporativos ainda hoje."
Exige conhecimento prévio de programação Java.
"Para aproveitar bem, é crucial já ter uma boa base em Java."
"O curso assume que você já sabe programar em Java."
"Se você não domina Java, talvez precise estudar isso antes ou em paralelo."
"O foco na implementação em Java é forte, então venha preparado."
Excelente introdução ao tema para iniciantes.
"Para quem está começando a entender sistemas distribuídos, este curso é perfeito."
"Oferece uma base sólida para quem quer dar os primeiros passos."
"É um ótimo ponto de partida antes de se aprofundar em tópicos mais complexos."
"Sinto que agora tenho uma base para explorar outros frameworks e tecnologias."
Usa um caso de uso prático para demonstrar a aplicação.
"O caso de uso apresentado é super útil para ver como os conceitos se aplicam na prática."
"Gostei bastante da forma como a implementação é construída passo a passo usando o cenário real."
"Os exemplos de código e a aplicação do caso de uso ajudaram muito a solidificar o aprendizado."
"A abordagem prática com a implementação foi fundamental para mim."
"Ver a teoria aplicada em um cenário real de mercado é o grande diferencial."
Explica conceitos complexos de forma acessível.
"Explica de forma clara os conceitos básicos de sistemas distribuídos, tornando o aprendizado muito mais fácil."
"O curso é muito bom, o professor explica muito bem os assuntos abordados."
"Consegui entender os conceitos de sistemas distribuídos que antes pareciam muito abstratos."
"As explicações são bem diretas e fáceis de acompanhar, mesmo para quem está começando."
"A didática do instrutor é excelente, facilitando a compreensão dos temas."
Qualidade do áudio em algumas aulas poderia ser melhor.
"Em algumas partes, o áudio não está muito bom, o que dificulta um pouco acompanhar."
"A qualidade do som varia, em algumas aulas tive que ajustar o volume."
"Poderia melhorar a captação de áudio em certos momentos."
"Um ponto de atenção é o áudio, que às vezes não é ideal."
Algumas tecnologias usadas parecem datadas.
"Achei que o uso do GlassFish e JAX-WS é um pouco antigo para o momento atual do mercado."
"Seria interessante ver a implementação com tecnologias mais recentes, como Spring Boot."
"Embora a base seja útil, a escolha de algumas ferramentas pode não ser a mais popular hoje."
"O foco em tecnologias mais antigas pode desencorajar quem busca o estado da arte."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Implementando Sistemas Distribuídos with these activities:
Revisar os Fundamentos de Java
Refresque seus conhecimentos em Java para entender melhor os exemplos de código e a implementação do curso.
Browse courses on Java
Show steps
  • Revisar a sintaxe básica de Java.
  • Praticar a escrita de pequenos programas Java.
  • Revisar conceitos de orientação a objetos.
Criar um glossário de termos de sistemas distribuídos
Compile um glossário de termos para ajudar a solidificar sua compreensão do vocabulário técnico.
Show steps
  • Identifique os termos-chave usados no curso.
  • Defina cada termo de forma clara e concisa.
  • Forneça exemplos de como cada termo é usado na prática.
  • Organize os termos em um glossário fácil de usar.
Revisar 'Padrões de Arquitetura de Aplicações Corporativas'
Estude padrões de arquitetura para entender melhor como os sistemas distribuídos são projetados e implementados.
Show steps
  • Leia os capítulos relevantes sobre padrões de arquitetura distribuída.
  • Identifique os padrões que são mais relevantes para o caso de uso do curso.
  • Considere como esses padrões podem ser aplicados em seus próprios projetos.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Praticar a implementação de chamadas de API REST
Reforce suas habilidades de implementação de API REST, que são essenciais para a comunicação entre sistemas distribuídos.
Show steps
  • Escolha uma API REST pública para praticar.
  • Implemente chamadas para diferentes endpoints da API.
  • Analise as respostas da API e extraia os dados relevantes.
  • Considere como você pode usar essa API em um sistema distribuído.
Escrever um blog sobre sistemas distribuídos
Compartilhe seu conhecimento sobre sistemas distribuídos escrevendo um post de blog para ajudar outras pessoas a aprender.
Show steps
  • Escolha um tópico específico relacionado a sistemas distribuídos.
  • Pesquise o tópico e colete informações relevantes.
  • Escreva um post de blog claro e conciso que explique o tópico.
  • Publique o post de blog em uma plataforma online.
Criar um sistema distribuído simples
Implemente um sistema distribuído simples para consolidar seu conhecimento dos conceitos do curso.
Show steps
  • Escolha um caso de uso simples, como um sistema de chat ou um sistema de gerenciamento de tarefas.
  • Projete a arquitetura do sistema, incluindo os componentes e as interações entre eles.
  • Implemente o sistema usando as tecnologias aprendidas no curso.
  • Teste o sistema para garantir que ele funcione corretamente.
Revisar 'Designing Data-Intensive Applications'
Aprofunde seu conhecimento sobre os desafios de projetar sistemas que lidam com grandes quantidades de dados.
Show steps
  • Leia os capítulos sobre consistência e tolerância a falhas.
  • Analise os diferentes modelos de consistência e seus tradeoffs.
  • Considere como esses conceitos se aplicam ao caso de uso do curso.

Career center

Learners who complete Implementando Sistemas Distribuídos will develop knowledge and skills that may be useful to these careers:
Desenvolvedor de Back-end
Um Desenvolvedor de Back-end é responsável pela lógica do lado do servidor, bancos de dados e integração de APIs. Os tópicos ensinados no curso podem ser muito relevantes para estes profissionais. O curso oferece uma visão prática sobre a comunicação entre sistemas de diferentes plataformas, abordando características importantes na concepção de projetos de arquitetura distribuída. O desenvolvedor, ao aprender sobre troca de mensagens, segurança e desempenho, estará habilitado a construir back-ends mais eficientes e confiáveis. O curso fornece um caso de uso prático que facilita a assimilação dos conceitos, tornando-o valioso para qualquer Desenvolvedor de Back-end.
Arquiteto de Sistemas Distribuídos
Um Arquiteto de Sistemas Distribuídos projeta, implementa e gerencia sistemas computacionais que se estendem por várias máquinas. Este curso pode ser muito útil para quem busca essa carreira, pois aborda os conceitos básicos e a aplicação prática de sistemas distribuídos. O curso explora características cruciais no desenvolvimento de projetos de arquitetura distribuída, como troca de mensagens, sincronismo, falhas, segurança, heterogeneidade e desempenho. Ao aprender como projetar sistemas que lidam com esses desafios, você estará mais preparado para atuar como Arquiteto de Sistemas Distribuídos.
Especialista em Integração de Sistemas
Especialistas em Integração de Sistemas são responsáveis por garantir que diferentes sistemas de software funcionem juntos harmoniosamente. O curso pode ser muito útil para essa função, pois ensina como realizar a comunicação entre sistemas de diferentes plataformas e aborda características importantes na concepção de projetos de arquitetura distribuída. Este profissional pode se beneficiar do conteúdo do curso, que inclui um caso de uso prático para facilitar a assimilação dos conceitos. Ao entender como sistemas distintos interagem, o Especialista em Integração de Sistemas pode garantir a interoperabilidade e o fluxo de dados corretos.
Engenheiro de Software
Engenheiros de Software desenvolvem, testam e implementam aplicações de software. O curso pode ser fundamental para esses profissionais, especialmente aqueles que trabalham com sistemas que requerem comunicação entre diferentes plataformas. Através do estudo de conceitos básicos e da aplicação prática em um caso de uso, o curso ajuda a entender como construir sistemas robustos e escaláveis. Ao participar deste curso, o Engenheiro de Software aprende os princípios de arquitetura distribuída, incluindo pontos como segurança, desempenho e tratamento de falhas, que são essenciais para o desenvolvimento de software moderno.
Arquiteto de Nuvem
O Arquiteto de Nuvem projeta e implementa soluções em nuvem. Muitas soluções em nuvem são sistemas distribuídos. O curso pode ser muito útil para essa função, pois ensina como realizar a comunicação entre sistemas de diferentes plataformas e aborda características importantes na concepção de projetos de arquitetura distribuída. Este profissional pode se beneficiar do conteúdo do curso, que inclui um caso de uso prático para facilitar a assimilação dos conceitos. Ao entender como sistemas distintos interagem, o Arquiteto de Nuvem pode projetar soluções robustas e escaláveis.
Engenheiro de DevOps
Engenheiros de DevOps trabalham para automatizar e otimizar o ciclo de vida do desenvolvimento de software. O curso pode ser valioso para este profissional, especialmente no que tange à implementação e gerenciamento de sistemas distribuídos. O curso aborda características importantes na concepção de projetos de arquitetura distribuída, como desempenho, disponibilidade e segurança. O Engenheiro de DevOps pode usar esse conhecimento para melhorar a implantação e o monitoramento de aplicações em ambientes distribuídos, garantindo maior eficiência e confiabilidade.
Consultor de Arquitetura de Soluções
Consultores de Arquitetura de Soluções aconselham empresas sobre as melhores soluções de tecnologia para seus negócios. O curso pode ser muito útil, pois oferece uma compreensão prática dos conceitos básicos de um sistema distribuído, assim como a comunicação entre sistemas de diferentes plataformas. O curso aborda características importantes na concepção de projetos de arquitetura distribuída, como segurança, desempenho e escalabilidade. Com esse conhecimento, o Consultor de Arquitetura de Soluções pode propor soluções mais eficientes e alinhadas com as necessidades das empresas.
Especialista em Segurança Cibernética
Especialistas em Segurança Cibernética protegem sistemas e redes contra ameaças cibernéticas. O curso pode ser valioso para este profissional, pois aborda aspectos essenciais da segurança em sistemas distribuídos. O curso explora a segurança como uma característica fundamental na concepção de projetos de arquitetura distribuída. O profissional de segurança cibernética pode usar este conhecimento para criar e implementar medidas de segurança mais eficazes em ambientes distribuídos, protegendo dados e sistemas críticos contra ataques.
Analista de Sistemas
Analistas de Sistemas projetam e implementam soluções de software para atender às necessidades de uma organização. O curso pode auxiliar o Analista de Sistemas a entender os desafios e as oportunidades dos sistemas distribuídos modernos. O curso explora a comunicação entre diferentes plataformas e aborda características importantes na concepção de projetos de arquitetura distribuída. Ao participar do curso, o Analista de Sistemas estará mais apto a propor e implementar soluções que aproveitem ao máximo os benefícios dos sistemas distribuídos.
Administrador de Sistemas
Administradores de Sistemas são responsáveis por manter e operar a infraestrutura de TI de uma organização. O curso pode ser útil para este profissional, principalmente em ambientes que utilizam sistemas distribuídos. Ao aprender sobre os conceitos básicos e as características importantes na concepção de projetos de arquitetura distribuída, o administrador estará mais preparado para gerenciar e solucionar problemas em sistemas complexos. O curso oferece uma visão prática que pode ajudar o Administrador de Sistemas a otimizar o desempenho e a disponibilidade dos serviços.
Consultor de TI
Um Consultor de TI aconselha as empresas sobre como usar a tecnologia da informação para atingir os seus objetivos. Este curso pode ser muito benéfico para um Consultor de TI, pois ele oferece uma compreensão prática de sistemas distribuídos e como a comunicação entre sistemas pode ser realizada através de diferentes plataformas. O Consultor de TI pode usar o conhecimento adquirido sobre os conceitos básicos, tais como características importantes na concepção de projetos de arquitetura distribuída, para assessorar os seus clientes com soluções eficientes e inovadoras.
Testador de Software
Um Testador de Software garante a qualidade do software através da criação e execução de testes. O curso pode ser relevante para o Testador de Software, especialmente quando se trata de testar sistemas distribuídos, pois ele fornece uma compreensão dos seus conceitos básicos. Este curso demonstra como realizar a comunicação entre sistemas de diferentes plataformas. Ao adquirir esse conhecimento, o testador estará mais preparado para identificar e reportar problemas em sistemas distribuídos, contribuindo para a criação de software mais robusto e confiável.
Cientista de Dados
Cientistas de dados usam técnicas de aprendizado de máquina para derivar insights preditivos de dados. O curso pode ser útil para aqueles que trabalham com sistemas distribuídos, pois esses sistemas frequentemente envolvem grandes volumes de dados que exigem processamento em paralelo. O curso ajuda a entender como os dados são transmitidos e processados em diferentes plataformas. Com essa compreensão, o Cientista de Dados pode desenvolver modelos mais eficientes e escaláveis para análise de dados em ambientes distribuídos.
Gerente de Projetos de TI
Um Gerente de Projetos de TI supervisiona projetos de tecnologia da informação. O curso pode ser útil para esse profissional, especialmente ao gerenciar projetos que envolvem a implementação de sistemas distribuídos. Ao entender os conceitos básicos e as características importantes na concepção de projetos de arquitetura distribuída, o gerente estará mais preparado para planejar, coordenar e controlar projetos complexos. O curso oferece uma visão prática que pode ajudar o Gerente de Projetos de TI a garantir o sucesso dos projetos.
Analista de Dados
Analistas de dados interpretam dados para encontrar informações relevantes para empresas. O curso pode ser útil para analistas de dados que trabalham com sistemas distribuídos, uma vez que estes sistemas geram grandes volumes de dados que precisam ser processados e analisados. O curso ajuda a compreender como os dados são transmitidos e tratados em diferentes plataformas. Com essa compreensão, o Analista de Dados pode desenvolver melhores estratégias para coletar, armazenar e analisar dados em ambientes distribuídos.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Implementando Sistemas Distribuídos.
Este livro aborda os desafios de projetar sistemas que lidam com grandes quantidades de dados. Ele cobre tópicos como armazenamento de dados, replicação, consistência e tolerância a falhas. É altamente recomendado para quem deseja aprofundar seus conhecimentos sobre sistemas distribuídos. Este livro é amplamente utilizado como referência por engenheiros de software.
Este livro fornece uma visão geral abrangente dos padrões de arquitetura usados em sistemas corporativos. Ele é útil para entender os princípios de design por trás dos sistemas distribuídos. Embora não seja um pré-requisito, a leitura deste livro pode fornecer um contexto valioso para os conceitos abordados no curso. Ele serve como uma referência útil para arquitetos e desenvolvedores.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser