A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

PADRÕES POSA Classificação dos Padrões Detalhamento dos Padrões Layers

Apresentações semelhantes


Apresentação em tema: "PADRÕES POSA Classificação dos Padrões Detalhamento dos Padrões Layers"— Transcrição da apresentação:

1 PADRÕES POSA Classificação dos Padrões Detalhamento dos Padrões Layers
Broker MVC MicroKernel Todo-Parte Mestre-Escravo

2 ARQUITETURA DE SOFTWARE
Ponte entre os Requisitos e sua Implementação [Thaís Batista]

3 ARQUITETURA DE SOFTWARE
Abstração que ajuda a gerenciar complexidade Projeto Arquitetural do Software Estrutura modular do software Componentes Relacionamento entre componentes [Thaís Batista]

4 ARQUITETURA DE SOFTWARE
Formada por várias visões Visão de Caso de Uso: casos de uso com arquitetura mais significante; Visão Lógica: quantidade de camandas, plataforma a ser utilizada, tecnologias, conteiners web, serviços. Visão geral: visão física, banco de dados, servidores. Visão de implantação: distribuição dos componentes. [Thaís Batista]

5 PADRÕES POSA Os Padrões POSA são provenientes dos três Livros “Pattern-Oriented Software Archicteture”: POSA I : A System of Patterns; POSA II: Patterns for Networked and Concurrent Objects; POSA III: Patterns for Resource Management ;

6 PADRÕES POSA - CLASSIFICAÇÃO
Os padrões do POSA são divididos em três grandes grupos: Padrões Arquiteturais Padrões de Projeto Idiomas

7 PADRÕES POSA - CLASSIFICAÇÃO
Padrões Arquiteturais Estrutura de Alto-Nível; Contém um conjunto de sub-sistemas pré- definidos; Define a responsabilidade de cada sub- sistema; Detalha o relacionamento entre os sub- sistemas;

8 PADRÕES POSA - CLASSIFICAÇÃO
Padrões Arquiteturais Classificação Da Lama à Estrutura: ajudam a evitar o excesso de componentes ou objetos. Suportam a decomposição de um sistema completo em sub-tarefas desse sistema. Padrão Layers; Padrão Pipes and Filters; Padrão Blackboard Sistemas Distribuídos Broker

9 PADRÕES POSA - CLASSIFICAÇÃO
Padrões Arquiteturais Classificação Sistemas Interativos: interação homem-máquina. Model – View – Controller Presentation – Abstraction – Control Sistemas Adaptáveis: suportam a adaptação de tecnologias e mudanças de requisitos funcionais. MicroKernel Reflection

10 PADRÕES POSA - CLASSIFICAÇÃO
Padrões de Projeto Estrutura de Médio-Nível; Implementação independente de linguagem de programação; Projetado para “Micro-Arquiteturas” (algo entre um sub-systema e um componente individual);

11 PADRÕES POSA - CLASSIFICAÇÃO
Padrões de Projeto Classificação Decomposição Estrutural Whole-Part Organização do Trabalho Master-Slave Controle de Acesso Proxy Gerenciamento Command Processor View Handler Comunicação Forwarder-Receiver Client-Dispatcher-Server Publisher - Subscriber

12 PADRÕES POSA - CLASSIFICAÇÃO
Idiomas Estrutura de Baixo-Nível (em comparação com os demais); Disponibiliza um guia para implementação dos componentes e relacionamento dos padrões; Considera o padrão no nível da linguagem de programação (descreve o padrão usando construções próprias da linguagem de programação);

13 PADRÕES POSA - CLASSIFICAÇÃO
Idiomas Estrutura de Baixo-Nível (em comparação com os demais); Disponibiliza um guia para implementação dos componentes e relacionamento dos padrões; Considera o padrão no nível da linguagem de programação (descreve o padrão usando construções próprias da linguagem de programação); Padrão Counted Pointer

14 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Ajuda a estruturar as aplicações que podem ser decompostas em grupos de sub-tarefas, onde cada grupo de sub-tarefas possui um nível de abstração particular; Exemplo: Protocolos de Redes OSI

15 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Problema Imagine que esteja projetando um sistema cuja característica principal é uma mistura de assuntos de alto nível com assuntos de baixo nível, em que os assuntos de alto nível usam os assuntos de baixo nível. A parte de baixo nível está frequentemente perto do hardware A parte de mais alto nível está frequentemente perto do usuário O fluxo de comunicação tipicamente consiste de pedidos fluindo do alto para o baixo níveis As respostas andam na direção contrária

16 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Problema Decompor um sistema, aumentar o nível de abstração e diminuir as dependências entre as partes;

17 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Solução Decompor em camadas de abstração de forma que uma camada não depende da superior e utiliza serviços apenas da camada imediatamente inferior;

18 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Solução 1. Defina o critério de abstração para agrupar tarefas em camadas; 2. Determine o número de níveis de abstração (baseado no critério acima) Cada nível de abstração corresponde a uma camada Às vezes não é simples decidir se deve haver uma quebra de uma camada em subcamadas ou não Camadas demais podem afetar o overhead Camadas de menos comprometem a estrutura

19 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Solução 3. Dê um nome e atribua tarefas a cada camada Para a camada de cima, a tarefa é a tarefa global do sistema, do ponto de vista do usuário 4. Especifique os serviços O princípio básico é de separar as camadas uma das outras Nenhum módulo abrange duas camadas Tente manter mais riqueza acima e menos abaixo Isso ajuda a prover bons serviços de alto nível para o programador "em cima"

20 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Solução 5. Refine as Camadas 6. Especifique uma interface para cada camada A camada J nada sabe sobre a camada J-1 e usa uma interface para acessá-la; Pode usar o padrão Façade para organizar a interface; 7. Estruture as camadas individuais Quebre a camada em subsistemas (partições) menores se ela for complexa;

21 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Solução 8. Especifique a comunicação entre camadas A camada J passa a informação necessária para a camada J-1 ao chamá-la 9. Desacople camadas adjacentes Evite situações em que a camada de baixo sabe algo sobre seus clientes (camada acima) Acoplamento unidirecional é preferível

22 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Solução 10. Projete uma estratégia de tratamento de erros O esforço de programação e overhead podem ser grandes para tratar erros numa arquitetura em camadas Um erro pode ser tratado na camada onde foi descoberto ou numa camada superior No segundo caso, deve haver mapeamento para tornar o erro semanticamente reconhecível pela camada de cima; Tente tratar erros na camada mais baixa possível Isso simplifica todas as camadas superiores que não sabem nem devem saber do erro;

23 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Estrutura

24 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Estrutura

25 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Exemplo

26 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Cada camada individual pode ser uma entidade complexa consistindo de diferentes componentes

27 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Camadas 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 Nomeie 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

28 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Camadas Implementação (Cont..) Especifique os serviços Especifique uma interface para cada camada Refine 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

29 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Conseqüências Reuso de Camadas Devido à boa encapsulação provida pelo uso de interfaces; Suporte a padronização Permite usar implementações de vários fornecedores; Dificuldade de estabelecer a correta granularidade das camadas. Menor eficiência Camadas adicionam overhead;

30 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Exemplo Aplicação Arquitetura 2 Camadas

31 PADRÕES POSA – Padrões Arquiteturais
Padrão Layers (Camadas) Exemplo Aplicação Arquitetura 3 Camadas

32 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters O padrão arquitetural Pipes and Filters provê uma estrutura para sistemas que processam um stream de dados. Cada passo do processamento é encapsulado através de “canos” entre “filtros” adjacentes. A recombinação de filtros permite que você construa famílias de sistemas relacionados. Tipicamente divide a tarefa de um sistema em vários passos de processamento seqüencial. Componentes: São chamados Filtros Tem um conjunto de entradas e um conjunto de saídas

33 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters Conectores São chamados de Pipes; Servem como condutores, transmitindo a saída de Filtro a outro; pipe filtro

34 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters Solução O Pipes e Filters divide uma tarefa no sistemas em passos de processamento seqüencial. A saída de dados de um passo é a entrada do passo subseqüente. Cada passo do processamento é implementado através de um componente filtro. Um filtro consome e entrega dados incrementalmente.

35 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters Solução A entrada do sistema é realizada através de um Data Source, como um arquivo texto, por exemplo. A saída é realizada em um Data Sink, tal como um arquivo, programa de animação, etc. Os filtros, data sources e data sink são conectados sequencialmente através dos pipes. Cada pipe implementa os fluxos de dados entre os passos adjacentes. A seqüência de filtros combinadas por pipes é chamada de processamento pipeline.

36 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters

37 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters

38 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters Estrutura

39 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters Estrutura

40 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters - Implementação Divida as tarefas do sistema em uma seqüê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

41 PADRÕES POSA – Padrões Arquiteturais
Padrão Pipes and Filters - Implementação Conseqüências Ausência da necessidade de arquivos intermediários. Flexibilidade de trocar um filtro: filtros possuem interface simples e podem facilmente ser trocados dentro do processamento. Reuso de componentes Filtros;

42 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard Problema Transformar dados brutos em estruturas de dados de alto-nível como diagramas, tabelas ou frases em inglês. Reconhecimento de imagem, reconhecimento de fala são domínios em que o problema ocorre. São caracterizados por problemas que, quando decompostos em subproblemas, abrange vários campos. As soluções para os problemas parciais requerem diferentes representações e paradigmas.

43 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Cada subsistema é especialista em resolver determinada parte da tarefa completa. Todos os subsistemas trabalham juntos para resolver o problema. 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

44 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard Os subsistemas não se comunicam uns com os outros e nem seguem uma seqüência pré- determinada. Ao invés disso, o sistema principal é determinado pela progresso do estado corrente de cada subsistema. Um controle de acesso central avalia o estado corrente do processamento e coordena os subsistemas especializados.

45 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard Justificativa da denominação BlackBoard Herda da idéia de pessoas que trabalham juntas na frente de um quadro (blackboard) para resolver uma tarefa.

46 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard

47 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard Componentes: Origem 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;

48 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard Componentes: 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 BlackBoad;

49 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard

50 PADRÕES POSA – Padrões Arquiteturais
Padrão 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;

51 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard – 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

52 PADRÕES POSA – Padrões Arquiteturais
Padrão BlackBoard – Implementação 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

53 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker O Padrão Broker é utilizado para estruturar sistemas distribuídos separando componentes que interagem através de chamadas remota de serviços. O broker é responsável por coordenar a comunicação, encaminhado as solicitações e transmitido os resultados ou exceções.

54 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker 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. Os 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.

55 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker 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, possibilitando assim, maior desacoplamento entre clientes e servidores e independência de plataforma (sistemas heterogêneos). Os servidores se registram no broker, assim, seus serviços ficam disponíveis para os clientes através de interfaces.

56 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker Os servidores se registram no broker, assim, seus serviços ficam disponíveis para os clientes através de interfaces. Os clientes acessam as funcionalidades dos servidores através do envio de requisição ao Broker. Entre as tarefas do Broker estão: localizar o servidor apropriado, encaminhar as requisições para o servidor e transmitir os resultados de volta a cliente.

57 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker Estrutura

58 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker

59 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker

60 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker – 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

61 PADRÕES POSA – Padrões Arquiteturais
Padrão Broker – Implementação Projete o componente Broker Especifique detalhes da interação do cliente com o servidor Especifique o comportamento do sistema em caso de falhas

62 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control Contexto: Aplicações interativas com interfaces de usuário gráficas flexíveis e controladas pelo usuários. Problema: Estender a funcionalidade de uma aplicação através apenas da modificação dos menus, da visão do usuário.

63 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control Solução: O padrão MVC divide a aplicação em três camadas: Entrada (View), Processamento (Controller) e Saída (Model). Utilizar o padrão Observer e estendê-lo para permitir o controle das janelas baseado-em-eventos. O Padrão MVC estende o Observer incorporando um elemento controlador (Controller).

64 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control O Modelo diz respeito ao gerenciamento da informação e ao comportamento da aplicação. O Modelo seria uma mera representação do conteúdo do banco de dados ou entidades de domínio e pelas regras de negócio intrínsecas a essas entidades. A Visão é responsável por apresentar as entidades de domínio ao usuário, constituindo a parte visível do sistema.

65 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control O Controle garante o total desacoplamento entre essas duas partes principais da aplicação. O Controle interpreta as ações do usuário provenientes da Visão e comanda a execução das regras de negócio contidas no Modelo, além disso, comanda a Visão para que ela apresente adequadamente a informação ao usuário.

66 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control

67 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control View - Não esta preocupada em como a informação foi obtida ou onde ela foi obtida apenas exibe a informação Inclui os elementos de exibição no cliente : HTML , XML , ASP , Applets . É a camada de interface com o usuário. É usada para receber a entrada de dados e apresentar o resultado

68 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control Model - É o coração da aplicação . Responsável por tudo que a aplicação vai fazer. modela os dados e o comportamento por atrás do processo de negócios se preocupa apenas com o armazenamento , manipulação e geração de dados É um encapsulamento de dados e de comportamento independente da apresentação.

69 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control Camada de Controle - determina o fluxo da apresentação servindo como uma camada intermediária entre a camada de apresentação e a lógica. controla e mapeia as ações.

70 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control

71 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control [ - Referência

72 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control

73 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control

74 PADRÕES POSA – Padrões Arquiteturais
Padrão Model-View-Control Conseqüências Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil manter , testar e atualizar sistemas múltiplos. É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles. Torna a aplicação escalável. É possível ter desenvolvimento em paralelo para o modelo , visão e controle pois são independentes.

75 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control O PAC possui uma arquitetura que vai além da arquitetura do MVC. O MVC é restrito a GUI’s com uma ou mais visões em cima do mesmo modelo. Se o modelo consistir de subestruturas que todas requerem uma forma especial de interação, então é necessário uma estrutura de GUI’s mais complexa. O PAC não tem o modelo como um componente principal. Para isso, possui uma estrutura hierárquica de componentes PAC.

76 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control Cada componente PAC é constituído de três items: Presentation Abstraction Control

77 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control Presentation: é similar ao View do MVC. Ele mostra as informações provenientes da camada Abstraction. Abstraction: contém dados como o Model do MVC. Entretanto, é parte de uma estrutura de dados maior, mais completa. Control: é um pouco similar ao Control do MVC. Processa eventos externos e atualiza o modelo. A diferença pro MVC é que no PAC o Control passa as requisições para o seu PAC pai.

78 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction-Control O PAC agrupa os componentes Controlador e Visão dentro de um único componente chamado Apresentação

79 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction-Control Comparação: O MVC é assim....

80 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control

81 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control

82 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control Nível Intermediário Alto-Nível

83 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control A camada Control do pai cria os PAC filhos quando o programa é iniciado. Quando o Control recebe um evento de um usuário (1), ele pode atualizar a Presentation (2a) e/ou Abstraction (2b). Então o Control envia o envio de mudança para seu PAC pai (3). O Pai atualiza seus filhos (5) e atualiza a Presentation (6a) e/ou Abstraction (6b). Depois da atualização de todos os filhos, os pais são atualizados (7).

84 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control PAC nível-topo: Prover a funcionalidade principal Controlar a hierarquia dos PAC PAC nível intermediário Coordenar os PACs nível base Compor PACs bases em uma única unidade mais abstrata PAC nível base Prover uma visão específica Prover uma serviço do sistema

85 PADRÕES POSA – Padrões Arquiteturais
Padrão Presentation-Abstraction- Control Presentation -Visualização e interação com o usuário; Control Interação com o componente de nível Intermediário; Abstraction -Mantém informações sobre os dados a serem exibidos;

86 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Se aplicam a sistemas de software que devem estar aptos a se adaptarem a mudanças nos requisitos do sistema. Separam um núcleo funcional mínimo das funcionalidades estendidas e das partes específicas do cliente; [

87 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel O uso de micro-núcleos se aplica a sistemas que precisam ser adaptados para mudanças nos requisitos. Premissa básica do bom programador OO: Design for Change; Exemplo: Sistema operacional hipotético Hydra no qual podemos executar aplicação Windows ou UNIX Systen ;

88 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Contexto: Desenvolvimento de várias aplicações que utilizam interfaces similares baseadas numa mesma funcionalidade;

89 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Problema: A necessidade de adaptação contínua à evolução de hardwares e softwares; A necessidade de ser portável, extensível e adaptável para permitir a integração com novas tecnologias.

90 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Problema: Software básico é utilizado ao longo de muitos anos, às vezes décadas. Ao longo da sua vida, acontecem muitas mudanças no hardware, nos modelos de programação, nos tipos de bibliotecas utilizadas, e nos requisitos das aplicações; O núcleo da funcionalidade do software básico deve ser encapsulado em um componente que seja o menor possível e que consuma o mínimo possível de recursos computacionais para não prejudicar as aplicações para as quais ele oferece suporte;

91 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Solução: Encapsule os serviços fundamentais da sua plataforma em um componente chamado de “micronúcleo”; O micronúcleo oferece os seus serviços básicos através de sua interface bem definida; “Servidores Internos”: funcionalidade estendida do micronúcleo, que não é essencial e que não pode ser implementada sem aumentar a complexidade do micronúcleo

92 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Solução: Outros componentes chamados de “servidores externos” utilizam a interface do micronúcleo para prover outros tipos de interfaces baseadas na funcionalidade exportada pelo micronúcleo. Os clientes (aplicações) interagem com o sistema através dos “servidores externos”;

93 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel

94 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Participantes MicroKernel: encapsula as diversas dependências do sistema, externalizando uma interface para prover acesso aos seus serviços. Ele implementa os serviços fundamentais do sistema que não podem ser exportados para outros componentes. Assim, cabe a este componente o controle e a coordenação do acesso aos recursos do sistema.

95 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Participantes Servidor Interno:Quando certa funcionalidade não tem como ser implementada em seu componente microkernel sem resultar em um aumento da complexidade e do tamanho deste, então ela deve ser exportada para um servidor interno(internal server) que proverá tal serviço ao componente. Só pode ser acessado pelo microkernel.

96 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Participantes Servidor Externo: Os servidores externos usam interfaces para expor determinados serviços do núcleo funcional mínimo. Eles trabalham recebendo requisições do cliente, invocando serviço pedido ao microkernel e retornando os resultados para o cliente.

97 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Participantes Cliente: são as aplicações em si que se associam com um – e apenas um – servidor externo, acessando a sua interface, a fim de usufruir dos serviços providos pelo microkernel. Um cliente que necessita acessar um serviço do microkernel deve faze-lo por meio de um acesso a um servidor externo. Este servidor externo encaminhará a requisição para o microkernel, que em seguida retornará o serviço ao cliente.

98 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Participantes Adaptador: Para evitar que os clientes tenham que conhecer a interface dos servidores externos e sejam obrigados a implementá-la diretamente, uma classe auxiliar chamada de Adaptador é utilizada a fim de esconder estas peculiaridades do cliente. Assim, quando um cliente faz uma requisição de serviço do microkernel, é responsabilidade do adaptador tratar e encaminhar esta chamada de forma adequada ao servidor apropriado.

99 PADRÕES POSA – Padrões Arquiteturais
Padrão MicroKernel Conseqüências: Portabilidade; Flexibilidade e extensibilidade através da implementação de um novo servidor externo; Separação de regras e mecanismos. Escalabilidade; Confiança; Transparência.

100 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Permite mudar as estruturas e o comportamento de um sistema de software dinamicamente; Suporta a modificação dos aspectos funcionais, tais como estruturas de tipos e mecanismos de chamada de função;

101 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Exemplo: Considere um sistema em C++ que necessita que seus objetos sejam guardados no disco de forma persistente. Poderíamos implementar um método para ler e escrever objetos do disco para cada tipo de objeto: obviamente ruim. Poderíamos oferecer uma superclasse básica para objetos persistentes da qual todos os objetos persistentes deveriam herdar. As subclasses deveriam sobrecarregar os métodos para leitura e escrita do disco. Problema: mudanças nas classes nos forçariam a atualizar estes métodos manualmente, ou seja, persistência e a funcionalidade básica da aplicação estão fortemente acopladas/misturadas. Queremos desenvolver um mecanismo de persistência desacoplado da funcionalidade das aplicações. Este mecanismo deveria ser capaz de enxergar em tempo de execução a estrutura interna dos objetos e decidir o que deve ser armazenado em disco.

102 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Contexto Construção de sistemas que permitem, a priori, a sua própria modificação.

103 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Problema

104 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Problema: Os requisitos para uma dada aplicação evoluem ao longo do tempo. Forças: Mudar software convencional (que não está preparado para mudanças) é muito difícil e sujeito a erros; Sistemas de software adaptáveis em geral tem uma estrutura interna complexa; Quanto maior o número de mecanismos diferentes que aplicamos em um sistema para torná-lo mais adaptável, mais complexo ele fica; As mudanças exigidas podem ser de muitos tipos; desde adicionar um pequeno atalho a uma seqüência de comandos até mudar completamente uma aplicação para adaptá-la a um cliente específico.

105 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Solução: Faça com que o software seja ciente de si mesmo (self- aware), que ele conheça a sua própria estrutura e que seja possível inspecionar e modificar a sua estrutura interna e comportamento.

106 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection A aplicação é dividida em duas partes: Um meta-nível fornece informações a respeito das propriedades selecionadas do sistema e torna o software consciente disso; Oferece uma auto-representação do software para que ele tenha conhecimento da sua própria estrutura e comportamento. Ele é composto de meta-objetos.

107 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Um nível-base inclui a lógica da aplicação. A implementação é feita sobre o meta-nível; define a lógica da aplicação e é composto pelos objetos da aplicação (por exemplo, os componentes). Os objetos utilizam os meta-objetos para os aspectos não-funcionais.

108 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Uma interface é especificada para manipulação dos meta-objetos do meta- nível através de um protocolo de meta- objetos; Guardam informações sobre os tipos utilizados, os algoritmos utilizados, os mecanismos de comunicação utilizados, os mecanismos de persistência utilizados, etc.

109 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Class Colaboradores Base Level Meta Level Responsability Implementa a lógica da aplicação; Usa informações provenientes do meta level; Class Colaboradores Meta Level Base Level Responsability Encapsula sistemas internos que podem mudar; Provê uma interface para facilitar as modificações do meta level Class Colaboradores Metaobjetc Protocol Meta Level / Base Level Responsability Oferece uma interface para especificar as mudanças do meta level; Executa mudanças especificadas

110 PADRÕES POSA – Padrões Arquiteturais
Padrão Reflection Conseqüências Nenhuma modificação de código explícita: ao extender o software, passe o novo código para o meta-nível como um parâmetro do meta-objeto. O meta-objeto é responsável por entregar as mudanças. Facilidade ao mudar o software: o meta-objeto encapsula de forma segura as mudanças.


Carregar ppt "PADRÕES POSA Classificação dos Padrões Detalhamento dos Padrões Layers"

Apresentações semelhantes


Anúncios Google