Padrões Arquiteturais e de Integração - Parte 1



Documentos relacionados
Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Introdução ao Modelos de Duas Camadas Cliente Servidor

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

Projeto de Arquitetura

Projeto de Arquitetura

Arquiteturas de Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

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

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

SISTEMAS DISTRIBUIDOS

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

UFG - Instituto de Informática

Eduardo Bezerra. Editora Campus/Elsevier

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Sistemas Cliente-Servidor

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Sistemas Distribuídos

SISTEMA GERENCIADOR DE BANCO DE DADOS

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

ESTUDO DE CASO WINDOWS VISTA

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Engenharia de Requisitos Estudo de Caso

Características Carlos Ferraz

Profs. Deja e Andrei

ARQUITETURA DE SOFTWARE

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Fundamentos de Banco de Dados

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Modelos de Arquiteturas. Prof. Andrêza Leite

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Servidor, Proxy e Firewall. Professor Victor Sotero

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Sistemas Operacionais

Engenharia de Software

Threads. 8 de janeiro de 2015

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Capítulo 7 CAMADA DE TRANSPORTE

Sistemas Operacionais II. Prof. Gleison Batista de Sousa

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc.

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

SISTEMAS OPERACIONAIS

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Paradigma Cliente/Servidor

SISTEMAS DISTRIBUÍDOS

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

SISTEMAS DISTRIBUÍDOS


FIREWALL. Prof. Fabio de Jesus Souza. Professor Fabio Souza

1

Análise e Projeto Orientados por Objetos

Disciplina de Banco de Dados Introdução

Aula 03-04: Modelos de Sistemas Distribuídos

Projeto Arquitetural do IEmbedded

Documento de Análise e Projeto VideoSystem

2 a Lista de Exercícios

Arquitetura dos Sistemas de Informação Distribuídos

Sistemas Operacionais

Tecnologias Web. Padrões de Projeto - Camada de Apresentação

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

Redes de Computadores e suas classificações. Maurício Severich

Sistemas Distribuídos: Conceitos e Projeto Caracterização de Sistemas Distribuídos

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

Sistemas Distribuídos

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Considerações no Projeto de Sistemas Cliente/Servidor

Rodrigo B. Souza*, Adelardo A. D. Medeiros*

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Categorias de Padrões

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

3 SCS: Sistema de Componentes de Software

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

SISTEMAS DISTRIBUÍDOS

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Sistemas Distribuídos

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

Engenharia de Requisitos

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Sistemas Distribuídos

Engenharia de Sistemas Computacionais

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

Transcrição:

1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015

2 / 58 Agenda Tópicos Conceito de padrões. Padrão Layer (Camadas). Padrão Blackboard (Repositório). Arquiteturas de Sistemas Distribuídos. Padrão Broker (Corretor).

3 / 58 Conceito de padrões Sumário 1 Conceito de padrões 2 Padrão Layer (Camadas) 3 Padrão Blackboard (Repositório) 4 Arquiteturas de Sistemas Distribuídos 5 Padrão Broker (Corretor)

4 / 58 Conceito de padrões Conceito de padrões Definição Um padrão é a documentação de uma solução para um problema recorrente. Deve ser suficientemente abstrato para ser reusado em aplicações diferentes.

5 / 58 Conceito de padrões Arquiteturas de referência Definição Embora cada sistema seja único, é comum que sistemas do mesmo domínio tenham arquiteturas similares. Sempre que possível, um projeto deve ser baseado em um padrão arquitetural conhecido.

6 / 58 Conceito de padrões Padrões arquiteturais Definição Padrões arquiteturais expressam formas de organizar a estrutura fundamental do sistema. Permitem a construção de uma arquitetura aderente a certas propriedades. O conhecimento de padrões arquiteturais ajuda na definição da arquitetura do sistema. Verificar se já existe um padrão para um problema deve ser o primeiro passo.

7 / 58 Conceito de padrões Elementos de um padrão Padrões arquiteturais definem Um conjunto de sub-sistemas. As responsabilidades de cada sub-sistema. Regras de relacionamentos entre os sub-sistemas.

8 / 58 Conceito de padrões Características dos padrões Padrões são abstratos Os padrões não definem completamente a arquitetura do sistema. Padrões são templates que devem ser refinados. Exemplos de refinamentos Incluir outros componentes e novos relacionamentos. Definir padrões de projeto em fases subsequentes. Assim como ocorre em padrões de projeto, sistemas complexos podem ter mais de um padrão de arquitetura. As propriedades do sistema, como desempenho, proteção e disponibilidade influenciam na escolha do padrão.

9 / 58 Conceito de padrões Exemplos de Padrões Arquiteturais Exemplos de padrões por categoria Da desordem à estrutura: Layer (Camadas), Blackboard (Repositório), Pipes and Filters (Dutos e Filtros). Sistemas distribuídos: Broker (Corretor). Sistemas iterativos: MVC. Sistemas adaptáveis: Microkernel.

10 / 58 Padrão Layer (Camadas) Sumário 1 Conceito de padrões 2 Padrão Layer (Camadas) 3 Padrão Blackboard (Repositório) 4 Arquiteturas de Sistemas Distribuídos 5 Padrão Broker (Corretor)

Padrão Layer (Camadas) Padrão Layer (Camadas) Características Organiza o sistema em um conjunto de camadas. Cada camada oferece um conjunto de serviços. Cada camada tem uma função bem definida no sistema. 11 / 58

Padrão Layer (Camadas) Padrão Layer (Camadas) Uma camada somente Solicita serviços da camada inferior. Fornece serviços para a camada superior. 12 / 58

13 / 58 Padrão Layer (Camadas) Padrão Layer (Camadas) Exemplo - Modelo de camadas para sistemas de comunicação

14 / 58 Padrão Layer (Camadas) Padrão Layer (Camadas)

15 / 58 Padrão Layer (Camadas) Padrão Layer (Camadas) Vantagens É possível desenvolver cada camada de forma independente (redução do tempo). As camadas podem ser facilmente substituídas por equivalentes. Mudanças em uma camada só impactam a camada imediatamente superior.

16 / 58 Padrão Layer (Camadas) Padrão Layer (Camadas) Desvantagens É difícil manter a integridade entre as camadas. Muitas camadas podem comprometer o desempenho do sistema, pois a requisição precisa trafegar pelas várias camadas até ser atendida.

17 / 58 Padrão Blackboard (Repositório) Sumário 1 Conceito de padrões 2 Padrão Layer (Camadas) 3 Padrão Blackboard (Repositório) 4 Arquiteturas de Sistemas Distribuídos 5 Padrão Broker (Corretor)

18 / 58 Padrão Blackboard (Repositório) Blackboard (Repositório) Características Útil quando vários subsistemas precisam manipular uma mesma base de dados (dados compartilhados). Um (ou mais) subsistema gera os dados e vários subsistemas leem os dados.

19 / 58 Padrão Blackboard (Repositório) Blackboard (Repositório) Exemplo de um sistema que utiliza o padrão Blackboard

20 / 58 Padrão Blackboard (Repositório) Blackboard (Repositório) Vantagens Maneira eficiente de compartilhar dados. Backup é centralizado (mais fácil). Formas de proteção dos dados podem ser implementadas. Os subsistemas que gravam dados não necessitam saber quem os usa. Fácil integrar novos subsistemas.

21 / 58 Padrão Blackboard (Repositório) Blackboard (Repositório) Desvantagens É preciso definir um padrão de acesso e manipulação dos dados. Os subsistemas precisam se adaptar a este padrão. Necessário tratar requisitos não-funcionais divergentes entre os subsistemas: alta disponibilidade / alta segurança.

22 / 58 Padrão Blackboard (Repositório) Exercício 01 Ferramentas CASE (Computer-Aided Software Engineering) são utilizadas para dar suporte aos projetos de engenharia de software. Exemplos de funções das ferramentas CASE são geração de código, testes automatizados, controle de versão de artefatos e modelagem de sistemas. Em projetos de software, é cumum que uma ferramenta CASE utilize dados gerados por outra. Considerando tais características, qual o padrão arquitetural mais adequado para a construção dessas ferramentas? Justifique e represente graficamente a arquitetura.

23 / 58 Arquiteturas de Sistemas Distribuídos Sumário 1 Conceito de padrões 2 Padrão Layer (Camadas) 3 Padrão Blackboard (Repositório) 4 Arquiteturas de Sistemas Distribuídos 5 Padrão Broker (Corretor)

24 / 58 Arquiteturas de Sistemas Distribuídos Sistemas Distribuídos (SD) Conceito É aquele em que as informações em fase de processamento são distribuídas para vários computadores, em vez de ficarem confinadas em uma única máquina (Sommerville, 2011). Praticamente todos os grande sistemas computacionais atualmente são distribuídos.

25 / 58 Arquiteturas de Sistemas Distribuídos Propriedades de SD Características Compartilhamento de recursos: recursos de hardware e software (discos, impressoras, arquivos, compiladores) estão em diferentes computadores da rede. Transparência: permite que equipamentos e software de fabricantes diferentes sejam combinados. Concorrência: vários processos podem operar ao mesmo tempo em diversos computadores da rede. Escalabilidade: as capacidades dos sistemas (poder de processamento, tamanho da memória) podem ser ampliadas pela adição de novos recursos. Tolerância a falhas: a duplicação de informações e alta disponibilidade aumentam a capacidade do sistema em se recuperar de falhas.

26 / 58 Arquiteturas de Sistemas Distribuídos Multiprocessadores Um sistema distribuído multiprocessador ocorre quando Vários processos de um mesmo sistema podem ser executados em diferentes processadores. A distribuição dos processos nos processadores pode ser predefinida ou ser realizada por um dispatcher.

27 / 58 Arquiteturas de Sistemas Distribuídos Multiprocessadores Exemplo: controle de semáforos

Arquiteturas de Sistemas Distribuídos Cliente-Servidor Características Organizada como um conjunto de serviços (servidores e clientes dos serviços). Exemplos de servidores: servidor de impressão, servidor de arquivos etc. 28 / 58

29 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor

30 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Características Requer uma estrutura de rede para clientes acessarem os serviços. Clientes sabem quais os serviços e servidores estão disponíveis. Servidores não conhecem seus clientes.

31 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Protocolo request-reply Um cliente faz um pedido ao servidor e espera pela resposta. O servidor executa o serviço e responde ao cliente.

32 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Exemplo de aplicação Cliente-Servidor

33 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Vantagens A distribuição de dados é fácil e direta. Possibilita hardware mais barato (clientes leves). Facilidade em adicionar novos servidores ou atualizar servidores existentes.

34 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Desvantagens Pode haver redundância de serviços em diferentes servidores. Não prevê registro central de serviços (difícil descobrir quais serviços estão disponíveis).

35 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Cliente Magro O cliente executa apenas o software de apresentação. Todo o processamento da aplicação (negócio) e gerenciamento de dados são realizados no servidor. Cliente Gordo O cliente implementa a lógica da aplicação e apresentação. O servidor é responsável apenas pelo gerenciamento de dados.

36 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Cliente Gordo x Cliente Magro

37 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Desvantagens do cliente magro: Impõe uma grande carga de processamento no servidor. Alto tráfego na rede entre o cliente e o servidor. Desvantagens do cliente gordo: Gerenciamento mais complexo da aplicação. Uma alteração nas regras de negócio requer atualizações em todos os clientes.

38 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Exemplo: Cliente Gordo

39 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Arquitetura em duas camadas Tem a desvantagem de organizar três camadas lógicas (apresentação, negócio e dados) em dois sistemas de computador (cliente e servidor). Arquitetura multicamadas Separa as lógicas de apresentação, negócio e dados em processadores distintos. Aumenta a escalabilidade: fácil adicionar novos servidores de aplicação quando o número de usuários aumenta.

40 / 58 Arquiteturas de Sistemas Distribuídos Cliente-Servidor Arquitetura em três camadas

41 / 58 Padrão Broker (Corretor) Sumário 1 Conceito de padrões 2 Padrão Layer (Camadas) 3 Padrão Blackboard (Repositório) 4 Arquiteturas de Sistemas Distribuídos 5 Padrão Broker (Corretor)

Padrão Broker (Corretor) Broker (Corretor) Conceito Padrão utilizado para estruturar sistemas distribuídos. Organiza a comunicação entre componentes que interagem através de chamadas remotas de serviços. Responsável por encaminhar as solicitações e transmitir os resultados ou exceções. 42 / 58

Padrão Broker (Corretor) Broker (Corretor) Contexto Seu ambiente é um sistema distribuído e possivelmente heterogêneo, com componentes independentes que cooperam entre si. 43 / 58

Padrão Broker (Corretor) Broker (Corretor) Problema Construir um sistema de software complexo como um conjunto de componentes desacoplados e inter-operantes. Serviços para adicionar, remover, trocar, ativar e localizar componentes são também necessários. Aplicações que usam esses serviços não devem depender de detalhes específicos do sistema para garantir portabilidade e interoperabilidade, mesmo dentro de uma rede heterogênea. 44 / 58

45 / 58 Padrão Broker (Corretor) Broker (Corretor) Problema (continuação) Componentes devem ser capazes de acessar serviços oferecidos por outros componentes através de invocações de serviços remotos com transparência da localização. Pode ser necessário trocar, adicionar ou remover componentes em tempo de execução. A arquitetura deve esconder detalhes específicos de implementação dos usuários de componentes e serviços.

46 / 58 Padrão Broker (Corretor) Broker (Corretor)

47 / 58 Padrão Broker (Corretor) Broker (Corretor) Exemplo: sistema de informações a turistas Alguns computadores na rede hospedam um ou mais serviços independentes que mantêm informações sobre eventos, restaurantes, hotéis, monumentos históricos ou transporte público. Terminais de computadores são conectados à rede. Turistas por toda a cidade podem acessar informações nas quais estão interessados a partir dos terminais usando navegadores de Web (Web browsers).

48 / 58 Padrão Broker (Corretor) Broker (Corretor) Exemplo: sistema de informações a turistas

49 / 58 Padrão Broker (Corretor) Broker (Corretor) Solução Utilize um componente broker (intermediário) para alcançar melhor desacoplamento entre clientes e servidores. Os servidores se registram junto ao broker e tornam seus serviços disponíveis aos clientes através das interfaces de seus métodos. Clientes acessam a funcionalidade dos servidores enviando requisições através do broker. As tarefas do broker incluem: Localizar o servidor apropriado. Repassar a requisição ao servidor. Transmitir resultados e exceções de volta ao cliente.

50 / 58 Padrão Broker (Corretor) Broker (Corretor) Componentes do padrão cliente; servidor; broker; bridge (ponte); proxy (representante) de cliente (client-side proxy); proxy de servidor (server-side proxy).

51 / 58 Padrão Broker (Corretor) Broker (Corretor) Cliente Implementa funcionalidade do usuário. Envia requisições a servidores através de um proxy de cliente. Servidor Implementa serviços. Registra a si mesmo no broker local. Envia respostas e exceções de volta ao cliente através de um proxy de servidor.

52 / 58 Padrão Broker (Corretor) Broker (Corretor) Broker Registra e exclui registro dos servidores. Transfere mensagens. Realiza recuperação de erros. Interage com outros brokers através das bridges (pontes). Localiza servidores. Brigde Encapsula funcionalidade específica da rede. Faz a mediação entre o broker local e a bridge de um broker remoto.

53 / 58 Padrão Broker (Corretor) Broker (Corretor) Proxy de Cliente Encapsula funcionalidade específica do sistema cliente. Faz a mediação entre o cliente e o broker. Proxy de Servidor Chama serviços dentro do servidor. Encapsula funcionalidade específica do sistema servidor. Faz a mediação entre o servidor e o broker.

54 / 58 Padrão Broker (Corretor) Broker (Corretor) Estrutura

55 / 58 Padrão Broker (Corretor) Broker (Corretor) Dinâmica

56 / 58 Padrão Broker (Corretor) Exercício 02 O que ocorre se o serviço não é encontrado no servidor local? Altere o diagrama de sequência do slide anterior de modo a englobar esta situação.

57 / 58 Padrão Broker (Corretor) Referências PRESSMAN, Roger S. Engenharia de software. Tradução de Jose Carlos Barbosa dos Santos. São Paulo: McGraw-Hill;Makron Books, 1995. SOMMERVILLE, Ian. Engenharia de software. Tradução de Mauricio de Andrade. 9. ed. São Paulo: Pearson Education do Brasil;Addison-Wesley, 2011. BUSCHMANN, F. et al. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley and Sons, 1996.

58 / 58 Padrão Broker (Corretor) - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015