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

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

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

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

ARQUITETURA DE SOFTWARE

UFG - Instituto de Informática

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Projeto de Arquitetura

Class Colaboradores Class Colaboradores Responsabilidade Responsabilidade

MODELO CLIENTE SERVIDOR

Padrões. Arquitetura de Software Thaís Batista

Fundamentos de Redes de Computadores. Elementos de Redes Locais

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

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

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

Projeto de Arquitetura

SISTEMAS DISTRIBUÍDOS

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Análise e Projeto Orientados por Objetos

Orientação à Objetos. Aécio Costa

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


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

Revisão. Karine Peralta

ESTUDO DE CASO WINDOWS VISTA

SISTEMAS DISTRIBUIDOS

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

Figura 01 Kernel de um Sistema Operacional

Categorias de Padrões

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

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de Página

3 Arquitetura do Sistema

Firewalls. Firewalls

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Camadas da Arquitetura TCP/IP

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

(Open System Interconnection)

Introdução ao Modelos de Duas Camadas Cliente Servidor

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

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

Sistemas Distribuídos

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

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

3 SCS: Sistema de Componentes de Software

Protocolos Hierárquicos

Arquitetura de Redes de Computadores. Bruno Silvério Costa

Engenharia de Sistemas Computacionais

Comunicando através da rede

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS DE ACESSO REMOTO (TELNET E TERMINAL SERVICES) Professor Carlos Muniz

15 Computador, projeto e manufatura

Padrões de projeto 1

Disciplina de Banco de Dados Introdução

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Modelos de Camadas. Professor Leonardo Larback

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

Redes. Pablo Rodriguez de Almeida Gross

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Fundamentos de Informática


O que são DNS, SMTP e SNM

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

Capítulo 7 CAMADA DE TRANSPORTE

Sistemas Operacionais

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

Engenharia de Software III

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

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

Redes de Computadores - Capitulo II prof. Ricardo de Macedo 1 ISO INTERNATIONAL ORGANIZATION FOR STANDARDZATION

SISTEMAS OPERACIONAIS

2 Diagrama de Caso de Uso

Capítulo 9. Gerenciamento de rede

Cap 01 - Conceitos Básicos de Rede (Kurose)

Engenharia de Requisitos Estudo de Caso

REDES DE COMPUTADORES. Arquiteturas de Redes

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

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

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

Desenvolvimento Cliente-Servidor 1

AULA Redes de Computadores e a Internet

Unidade 1. Conceitos Básicos

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

SISTEMAS DISTRIBUÍDOS

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

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

PROJETO DE REDES

Tecnologia de Redes de Computadores - aula 5

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

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

Noções de. Microsoft SQL Server. Microsoft SQL Server

Gerência de Redes. Arquitetura de Gerenciamento.

Group Policy (política de grupo)

Transcrição:

Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros (regras de interação) Termos relacionados: padrão arquitetural, estilo arquitetural, idioma arquitetural Um estilo arquitetural define uma família de sistemas em termos de um padrão de organização estrutural [Shaw96] Define: um vocabulário de componentes tipos de conectores conjunto de restrições que indica como os elementos são combinados Pipes e Filtros Camadas BlackBoard Broker Exemplos de Estilos Arquiteturais Estilo: Pipe e Filtros Tipicamente divide a tarefa de um sistema em vários passos de processamento sequencial Componentes: São chamados Filtros Tem um conjunto de entradas e um conjunto de saídas ealiza o processamento de um stream de dados filtro pipe Conectores: São chamados Pipes Servem como condutores, transmitindo as saídas de um filtro para as entradas de outro. 1

Estilo: Pipe e Filtros Estilo: Pipe e Filtros Especializações do Estilo Pipe e Filtros Pipelines: restringe a topologia a sequência linear de filtros Pipes Tipados (Typed Pipes): estabelece que os dados passados entre dois filtros tenham um tipo bem definido Filtro ecebe dados de entrada ealiza uma função nos dados de entrada Fornece dados de saída Pipe Pipe ecebe dados de entrada ealiza uma função nos dados de entrada Fornece dados de saída Filtros Estilo: Pipe e Filtros Implementação Divida as tarefas do sistema em uma sequência de estágios de processamento: Cada estágio deve depender apenas da saída do seu predecessor direto Todos os estágios são conectados pelo fluxo de dados Defina o formato de dados a ser passado ao longo de cada pipe Decida como implementar cada conexão com pipe Implica em decidir se os filtros são componentes ativos ou passivos Um sistema em camadas é organizado hierarquicamente, cada camada oferecendo serviço a camada acima dela e servindo como cliente da camada inferior. Componentes: São representados por cada camada Conectores: São definidos pelos protocolos que determinam como cada camada irá interagir com outra Limitam as interações a camadas adjacentes 2

Protocolos de rede são os melhores exemplos de arquiteturas em camadas Definem um conjunto de regras e convenções que descrevem como programas de computador em diferentes máquinas comunicam-se O formato, conteúdo e significado das mensagens são definidas Camada J Oferecer serviços usados pela camada J+1 Delegar subtarefas a camada J-1 Camada J-1 Cada camada individual pode ser uma entidade complexa consistindo de diferentes componentes Componente 3.1 Componente 3.2 Componente 2.1 Componente 2.2 Modelo OSI da ISO Aplicação Apresentação Sessão Transporte ede Modelo TCP/IP Aplicação TCP IP ede de Comunicação Componente 1.1 Componente 1.2 Componente 1.3 Enlace Físico 3

Implementação Defina o critério de abstração para agrupar tarefas em camadas Exemplo: a distância do hardware pode formar os níveis mais baixos e a complexidade conceitual os níveis mais altos Determine o número de níveis de abstração de acordo com seu critério de abstração Nomei as camadas e determine as tarefas de cada uma delas A tarefa da camada mais alta é a percebida pelo cliente As tarefas das demais camadas visam ajudar a realização da tarefa da camada mais alta Implementação cont. Especifique os serviços Especifique uma interface para cada camada efine cada camada: Estruturação de cada camada individualmente Quando uma camada é complexa ela deve ser separada em componentes individuais e cada componente pode seguir um padrão ou estilo diferente Variantes do estilo Sistema de Camadas elaxadas: é menos restritivo quanto aos relacionamentos entre as camadas. Cada camada pode usar os serviços de TODAS as camadas abaixo dela não apenas da camada mais próxima. Camadas através de herança: algumas camadas são implementadas como classes base. As camadas mais altas herdam a implementação das camadas mais baixas. Comum em sistemas orientados a objetos. Vantagens: Permite projetos baseados em níveis crescentes de abstração Permite particionar problemas complexos em uma sequência de passos incrementais Mudanças em uma camada afetam, no máximo, as duas adjacentes Permite que diferentes implementações da mesma camada possam ser usadas desde que mantenham a mesma interface com as camadas adjacentes 4

Desvantagens: Nem todos os sistemas são facilmente estruturados em forma de camadas É difícil encontrar os níveis de abstração corretos (muitas vezes os serviços abrangem diversas camadas). Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários subsistemas especializados agregam seu conhecimento para conseguir uma possível solução aproximada para o problema Os subsistemas especializados são independentes uns dos outros BlackBoard = repositório de dados compartilhados Justificativa da denominação BlackBoard Herda da idéia de pessoas que trabalham juntas na frente de um quadro (blackboard) para resolver uma tarefa. Componentes: Origens do Conhecimento: elementos independentes que resolvem aspectos específicos do problema. Juntos modelam o domínio do problema. Nenhum pode resolver a tarefa do sistema sozinho. Blackboard: elemento central de armazenamento. Armazena dados para resolver o problema que são modificados pelos componentes origens do conhecimento Controle: executa um loop que monitora o estado do blackboard e decide qual a próxima ação que tipicamente é o escalonamento de algum elemento origem do conhecimento 5

Comportamento: -O main loop do componente Controle é iniciado -Controle invoca o procedimento ProximaOrigem() para selecionar o componente Origem do Conhecimento -ProximaOrigem() determina quais Origem do Conhecimento são potenciais candidatos para encontrar a solução -Origem do Conhecimento invoca Inspect() para verificar as soluções correntes no blackboard e Update() para realizar mudanças nos dados do blackboard Blackboard Soluções DadosControle Inspect Update opera em Origem do Conhecimento AtualizaBlackboard execcondição ExecAção ativa Controle loop ProximaOrigem BlackBoard Gerencia dados centrais - Controle Monitora Blackboards Escalona as ativações da origem do conhecimento Origem do Conhecimento Avalia sua aplicabilidade Computa um resultado Atualiza o BlackBoard Blackboard Origem do Conhecimento BlackBoard Tem sido utilizado em aplicações que necessitam de complexas interpretações de reconhecimento de sinais como reconhecimento de fala, de padrões, de imagem Ks1 Ks2 BlackBoard (dados Compartilhados) Ks3 Ks4 Variações do Estilo: epositório: a estrutura de dados central é um repositório. Não especifica um controle. Um Banco de Dados tradicional pode ser considerado um repositório. 6

Implementação Defina o problema: Especifique o domínio do problema e os campos de conhecimento necessários para encontrar uma solução Defina a entrada e saída desejável do sistema Defina o espaço de solução para o problema Divida o processo da solução em passos: Especifique os tipos de conhecimento que podem ser usados para excluir partes do espaço de solução Divida o conhecimento em origens de conhecimento especializadas Implementação cont. Especifique o controle do sistema Determine quais origens do conhecimento tem permissão para realizar mudanças no blackboard Associe as categorias de mudanças no blackboard com um conjunto de possíveis origens do conhecimento Implemente as origens do conhecimento Divida-os em partes de condição e partes de ação Contexto: Construção de um sistema complexo como um conjunto de componentes distribuídos que necessitam comunicar-se. São necessários serviços para adicionar, remover, trocar, ativar e localizar componentes. No estilo Broker componentes devem ser capazes de acessar serviços oferecidos por outros através de invocações remotas e transparentes realizadas via um componente Broker que desacopla servidores de clientes. Usado para estruturar sistemas distribuídos com componentes desacoplados que interagem por invocações remotas ao serviço O componente Broker é responsável por coordenar a comunicação entre os componentes distribuídos 7

Broker egistrar servidores Localizar servidores Transferir mensagens Interoperar com outros brokers através de Pontes Clientes Servidores Pontes Servidor Implementa serviços egistra-se com o Broker Envia respostas ao cliente Cliente Enviar solicitações a servidores Broker Broker Ponte Encapsula funcionalidade específica da rede ealiza mediação entre o broker local, a ponte e o broker remoto Broker Ponte Implementação Defina um modelo de objetos ou use um modelo existente Defina qual tipo de interoperabilidade entre componentes o sistema deve oferecer Em geral usa-se uma Linguagem de Definição de Interfaces Especifique a API que o componente Broker oferece para interagir com clientes e servidores Implementação cont. Projete o componente Broker Especifique detalhes da interação do cleinte com o servidor Especifique o comporatmento do sistema em caso de falhas 8

Benefícios: Transparência de Localização: como o broker é responsável por localizar um servidor usando um único identificador, clientes não precisam saber onde os servidores estão. Mudança e Extensibilidade dos Componentes: se os servidores mudam a implementação mas mantêm a interface, não há impacto para os clientes. Benefícios (cont.): Portabilidade do sistema Broker: o broker esconde o sistema operacional e detalhes da rede usando camadas de indireção. Quando portabilidade é necessária é suficiente, em alguns casos, portar o broker.para isto, é interessante que o broker seja estruturado usando um estilo em camadas onde as camadas mais baixas esconda detalhes específicos do sistema. eusabilidade: ao construir novas aplicações pode-se reusar componentes Variações do Estilo: Broker de Comunicação Direta: relaxa a restrição que clientes podem direcionar solicitações através do broker local. Nesta variante clientes podem comunicar-se diretamente com servidores. O broker informa ao cliente qual o canal de comunicação que o servidor oferece Sistema Trader: uma solicitação do cliente é usualmente encaminhada a exatamente um único servidor. Em um sistema Trader o broker apenas conhece quais servidores podem oferecer o serviço e encaminha a solicitação ao servidor apropriado Estudos de Caso Objetivo: Mostrar como diferentes soluções arquiteturais para o mesmo problema oferece diferentes benefícios 9

Estudo de Caso 1 Tektronix Desenvolver uma arquitetura reusável para Osciloscópios. Osciloscópio é um sistema de instrumentação que recebe sinais elétricos e mostra figuras deles na tela. Osciloscópios atuais são baseados em tecnologia digital e tem um software complexo Estilo Camadas Estudo de Caso 1 O estilo em camadas particiona as funções do Osciloscópio em grupos bem definidos: - A camada central consiste nas funções realizadas por hardware - A camada Digitalização realiza a digitalização do sinal e armazena-o para futuro processamento -A camada Visualização realiza o processamento sobre o sinal para futura exibição -A camada epresentação realiza o mapeamento das formas digitalizadas para representação visual -A camada Manipulação é utilizada pelo usuário para decidir quais dados serão exibidos Hardware Digitalização Visualização epresentação Manipulação Problema: estrição de interação do usuário apenas com a camada de Manipulação. Em Osciloscópios o usuário muitas vezes precisa afetar diretamente a função de todas as camadas, por exemplo, para setar parâmetros e escolher modos de transformação de acordo com os dados. Estudo de Caso 1 Estilo Pipe-Filtros Modificado O estilo pipe-filtros realiza transformações incrementais de dados. Transformadores de sinais são usados como elementos filtros. Cada filtro pode receber entradas do usuário para setar parâmetros de operação do filtro. É como se cada filtro tivesse uma interface de controle que determina qual Função deve ser aplicada sobre a entrada de dados. IU IU IU sinal Filtro1 Filtro2 Filtro3 Estudo de Caso 2 Sistema de econhecimento de Padrões (Interpretação de Voz) Desenvolver uma arquitetura para o sistema Dado um banco de dados com um vocabulário e um conjunto de programas distribuídos que realizam a interpretação dos arquivos de voz Os programas podem gerar uma saída em formato texto ou podem não conseguir gerar uma saída porque não reconheceu o padrão de entrada 10

Estilo BlackBoard Estudo de Caso 2 - O banco de dados é o epositório Compartilhado (o BlackBoard) - Os programas que realizam a interpretação são as Origens do Conhecimento Interpret.1 Interpret.2 controle Vocabulário De Padrões Interpret.3 Interpret.4 Estudo de Caso 2 Estilo BlackBoard+Broker -As Origens do Conhecimento (Interpret) estão distribuídos e são mediados por um Broker -Os Interpret. são servidores na arquitetura Broker Interpret.1 Interpret.2 B O K E B O K E controle Vocabulário De Padrões B O K E Interpret.3 B O K E Interpret.4 11