Padrões Arquitetônicos

Documentos relacionados
Sistemas Distribuídos

Programação Distribuída. Arquiteturas

Objetos e Componentes Distribuídos: EJB

Arquitetura de Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS ARQUITETURAS. Slides cedidos pela Professora Aline Nascimento

Objetos e Componentes Distribuídos: EJB e CORBA

Sistemas Distribuídos

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Arquiteturas. Capítulo 2

Introdução a Sistemas Distribuídos

Introdução a Computação em Nuvem

Arquiteturas. capítulo

Sistemas Distribuídos Capítulo 2 - Aula 2

Introdução a Computação em Nuvem

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Introdução a SD e suas Metas

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Sistemas Distribuídos

Metas de um Sistema Distribuído

Framework.NET. Linguagem de Programação III. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento Acadêmico de Informática Campus Monte Castelo

Sistemas Distribuidos. Prof. Walter Gima

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Noções do padrão MVC e DAO

Sistemas Operacionais (SO)

Microsoft Visual Studio Community 2013

Exemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros

Sistemas Distribuídos

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas Distribuídos

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Características de Sistemas Distribuídos

Web Services REST e JSON

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Serviços Web: Introdução

O que é um sistema distribuído?

Características de Sistemas Distribuídos

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

O uso consciente da tecnologia para o gerenciamento. Editora Saraiva Emerson de Oliveira Batista

Tipos de Sistemas Distribuídos (Pervasivos)

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Princípios da infraestrutura centrada em aplicativos

Universidade Federal de Goiás Estilos Arquiteturais

Sistemas Distribuídos

Vamos fazer um pequeno experimento

Sistemas Distribuídos

Sistemas Distribuídos

Conceitos relativos a Banco de Dados & Modelos de Informação de Banco de Dados. Introdução

Estilos Arquiteturais

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Prof. Me. Sérgio Carlos Portari Júnior

RecyclerView. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Tipos de Clusters. Introdução. Introdução 21/03/12

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Sistemas Distribuídos

Sistema de Software Distribuído

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Conceitos, Arquitetura e Design

Desenvolvimento de um aplicativo básico usando o Google Android

Arquitetura Cliente-Servidor Generalizada com identificação de tiers. Arquitetura Cliente-Servidor Generalizada com identificação de tiers

Por que é importante?

3 Kaluana Arquitetura

Sistemas Distribuídos

Visões Arquiteturais. Visões Arquiteturais

Notification. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Padrões. Arquitetura de Software Thaís Batista

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Sistemas Distribuídos

Alcides Pamplona

Sistemas Distribuídos

Tipos de Sistemas Distribuídos

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Camada de Aplicação da Arquitetura TCP/IP

Projeto de Arquitetura

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Aplicações com Banco de Dados e Cliente-Servidor

Projeto Integrador. <Projeto Integrador> Documento Visão. Versão <1.0>

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Disciplina: Redes de Computadores

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Introdução aos Sistemas Distribuídos

Redes de Computadores - 3º Período. Projeto Integrador

Desenvolvimento de Aplicações Distribuídas

Sistemas de Informação. Sistemas Operacionais

Introdução a Web Services

Sistemas Distribuídos Capítulo 3 - Aula 3

INTRODUÇÃO. Sistemas Operacionais. Vinícius Pádua

Computação Distribuída

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

Processo Módulo M NPS

Aula 01 Conceito de Banco de Dados e SGBD

Algoritmos e Lógica de Programação Sistemas Operacionais

2 Fundamentação conceitual

Transcrição:

Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão

Objetivos Nesta aula iremos apresentar os conceitos sobre as padrões arquitetônicos em Sistemas Distribuídos. Serão abordados soluções em sistemas distribuídos que podem ser aplicados a vários domínios de problemas. Este conceito é fundamental para o entendimento do desenvolvimento de aplicações em ambientes distribuídos.

Plano de Aula Padrões Arquitetônicos Introdução Arquitetura em Camadas; Arquitetura Baseada em Objetos; Arquitetura centradas em dados; Arquitetura centrada em Eventos; Explorando as camadas lógicas; Outros Padrões.

Introdução Estilo Arquitetônico: formado em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre componentes e, por fim, da maneira como esses elementos são configurados em conjunto para formar um sistema. Componente é uma unidade modular com interfaces requeridas e fornecidas, bem definidas que é substituível dentro de seu ambiente. Conector é um mecanismo mediador da comunicação ou da cooperação entre componentes.

Introdução Usando componentes e conectores podemos chegar a várias configurações, que por sua vez, foram classificados em estilos arquitetônicos (padrões arquitetônicos); Os padrões arquitetônicos baseiam-se nos elementos de arquitetura mais primitivos discutidos anteriormente (entidades); Os padrões não são soluções completas em si, mas oferecem ideias parciais que, quando combinadas levam o projetista a ótimas soluções;

Introdução Iremos discutir aqui vários padrões arquitetônicos: Arquitetura em camadas; Arquiteturas baseadas em objetos; Arquiteturas centradas em dados; Arquitetura baseada em eventos;

Arquitetura em Camadas A ideia básica para o estilo em camadas é simples: os componentes são organizados em camadas; E um componente da camada L i tem permissão de chamar componentes da camada subjacente L i-1, mas não o contrário; Requisições descem pela hierarquia, ao passo que resultados fluem para cima;

Arquitetura em Camadas

Arquitetura em Camadas Client Tier: Modo de visualização do usuário, controles e manipulação de dados; Business Logic Tier: Lógica da aplicação; Database Tier: Gerenciador de banco de dados.

Arquitetura baseada em objetos A essência aqui é que cada objeto corresponde ao que definimos como componente e estes componentes são conectados por meio de uma chamada de procedimento (remota); Este modelo esta fortemente relacionado ao arquitetura de sistemas cliente-servidor; As arquitetura em camadas e baseadas em objetos ainda formam o estilo mais importante para sistemas de grande porte;

Arquitetura baseada em objetos

Arquitetura centradas em dados Se desenvolvem em torno da ideia de que processos se comunicam por meio de um repositório comum (passivo ou ativo); Para Sistemas Distribuídos, esta arquitetura é tão importante quanto a em camadas ou baseada em objeto; Os Sistemas Distribuídos baseado na Web são um grande exemplo; Nele temos processos que se comunicam por meio da utilização de serviços de dados baseado na Web.

Arquitetura centradas em dados

Arquitetura baseada em eventos Neste modelo os processo se comunicam através da propagação de eventos, que opcionalmente também transportam dados; A propagação de eventos tem sido associada, em geral, com o que denominamos sistemas publicar/subscrever; A ideia básica é que processos publiquem eventos após os quais o middleware assegura que somente processos que se subscreveram para esses eventos os receberão; Modelo referencialmente desacoplado.

Arquitetura baseada em eventos Entrega do Evento

Explorando o conceito de Camadas Lógicas Em uma estratégia de camadas lógicas, um sistema complexo é particionado em várias camadas, com uma utilizando os serviços oferecidos pela camada lógica inferior; Uma palavra forte nas camadas lógicas é a abstração ; A camada lógica oferece uma abstração de software, com as camadas superiores desconhecendo detalhes da implementação ou até mesmo a existência das camadas lógicas inferiores.

Camadas Lógicas Neste ponto temos dois conceitos importantes: Plataforma: consiste em camadas de hardware e software de nível mais baixo. Essas camadas lógicas de baixo nível promovem uma interface de programação do sistema para um nível que facilita a comunicação e a coordenação; Middleware: é uma camada de software cujo o objetivo é mascarar a heterogeneidade e fornecer um modelo de programação conveniente para os programadores de aplicativos. Promove o suporte a comunicação e compartilhamento de recursos em uma aplicação distribuída;

Middleware Middleware é um agente de interoperabilidade que pode ser entendido como uma camada de software que não é uma aplicação propriamente dita e que não faz parte do sistema operacional; Esta camada de middleware esconde detalhes de dispositivos de hardware e de software adicional, para fornecer uma interface abstrata e mais simples de programar às aplicações; Em outras palavras, o middleware simplesmente torna mais fácil a construção das aplicações na medida em o desenvolvimento pode se focar no propósito específico das aplicações.

Middleware

Onde o Middleware se encaixa? Entre aplicações e plataformas distribuídas, com finalidade de proporcionar um grau de transparência à distribuição de dados, processamento e controle; É uma camada de software posicionada entre as outras camadas de software.

Contexto do Middleware

Outros Padrões Proxy um proxy é criado no espaço de endereçamento local para representar o objeto remoto. Esse proxy oferece a mesma interface do objeto remoto; Brokerage esse padrão consiste no trio provedor de serviço, solicitante de serviço e um corretor de serviço (broker); Reflexão Suporte a introspecção (descoberta dinâmica de propriedades do sistema) e intercesão (capacidade de modificar a estrutura ou comportamento dinâmicamente).

Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva

Próxima Aula Processos em Sistemas Distribuídos: Comunicação entre Processos, Nomeação e Sincronização

Referências Sistemas Distribuídos - Conceitos e Projeto, George Coulouris, 4ª Edição - Editora Bookman, 784 páginas.