Mind map
Estilos e Padrões Arquiteturais 2

Mapa mental: Estilos e padrões arquiteturais
Map content
Estilos e Padrões Arquiteturais 2
4 - Sistemas Distribuídos
- Introdução
- Cenário mais comum
- Sistemas rodando em várias CPUs
- Redes conectando vários computadores
- Vantagens
- Economia; Desempenho e Escalabilidade (usam recursos distribuídos na rede)
- Confiabilidade (uma máquina pode falhar sem afetar o restante do sistema)
- Desvantagem
- Precisam de software específico
- Cenário mais comum
- Padrão Broker
- Introdução
- Pode ser utilizado para estruturar sistemas de software distribuídos que interagem por chamadas remotas
- Um componente broker é responsável por coordenar comunicação, como, enviar solicitações e transmitir resultados e exceções
- Contexto: Sistema distribuído e heterogêneo com cooperação entre componentes independentes
- Requisitos
- Flexibilidade
- Escalabilidade
- Sistema não deve ser dependente do mecanismo de comunicação
- Necessário adicionar, remover, localizar, ativar componentes
- Componentes devem conseguir acessar serviços providos por outros através de chamadas remotas transparentes
- Componentes devem ser adicionados, removidos e alterados em tempo de execução
- Arquitetura deve esconder detalhes de implementação dos usuários dos componentes e serviços
- Interação entre clientes e servidores é baseada em um modelo dinâmico
- Servidores podem atuar como clientes
- Clientes não precisam conhecer a localização dos servidores que eles acessam
- Componente broker atua para separar melhor clientes de servidores
- Servidores
- Se registram no broker
- Tornam seus serviços disponíveis a clientes através de interfaces definidas
- Clientes
- Acessam funcionalidades dos servidores através de requisições ao broker
- Servidores
- Objetos podem ser alterados facilmente
- Deve possuir algum modo de localizar solicitante de requisições
- Oferece APIs a clientes e servidores
- Registrar servidores
- Chamar métodos de servidores
- Responsabilidades
- Localizar o servidor apropriado
- Reenviar solicitações aos servidores
- Transmitir resultados e exceções aos clientes
- Usos conhecidos
- CORBA (Common Object Request Broker Architecture)
- Tecnologia orientada a objetos para distribuir objetos em sistemas heterogêneos
- WWW
- Navegadores atuam como brokers. Servidores WWW atuam como provedores de serviços
- CORBA (Common Object Request Broker Architecture)
- Introdução
- Introdução
5 - Outros Padrões Arquiteturais
- Sistemas de fluxos de dados
- Introdução
- Possuem dois ou mais componentes de processamento
- Transformam dados de entrada em dados de saída
- Transformação de maneira sequencial
- Pipes and filters
- Um componente de processamento tem duas saídas
- Saída padrão
- Saída de erro
- Mecanismos de entrada e saída são chamados portas. Um filtro típico possui três portas
- A saída de de erro pode ser conectada a um componente diferente de processamento
- Possível definir arranjos mais complexos, por exemplo, com decisão de rotear processamento
- Um componente de processamento tem duas saídas
- Introdução
- Sistemas de chamada e retorno
- Introdução
- Caracterizados por um processo inicial de controle que invoca operações
- Utilizado em sistemas orientados a objetos
- Introdução
- Componentes independentes
- Componentes independentes dependem de chamada implícita de operações
- Chamada da operação está desconectada da execução
- Componente “chamador” e “chamado” podem existir em processos separados e até mesmo em processadores distribuídos
- Componentes não conhecem muito uns aos outros
- Componente que gera eventos não conhece componentes que escutam ou reagem a estes eventos
- Exemplo: triggers
- Esses sistemas tendem a ser mais modulares
- Mais possibilidades de reuso
- Sistema em si é mais complexo normalmente
- São uma forma de sistema distribuído
- Sujeitos a restrições de desempenho
- Repositórios
- Envolvem fonte de dados compartilhada
- Motivação: guardar dados persistentes
- Dois elementos principais
- Elemento de dados central
- Múltiplos elementos processadores independentes
- Quadro Negro (Blackboard)
- Do tipo Repositório
- Fontes de conhecimento: elementos processadores
- Quadro negro: elemento central compartilhado
- Exemplo: sistema de banco de dados
- Peer-to-Peer
- Napster, Torrent
- Taxonomias
- A classificação dos estilos arquiteturais pode variar de acordo com a referência bibliográfica
- Sistemas de fluxos de dados
6 - Introdução a Serviços
- Introdução
- Conceito de orientação a serviços não é novo
- Podemos imaginar uma cidade orientada a serviços
- Cada empresa provê serviços para diversos consumidores
- Se dependências são muito grandes, negócios podem ser inibidos
- Negócios podem ter que se adequar a algumas convenções como
- Usar a mesma moeda
- Empregados falam mesma língua que consumidores
- Interface entre os negócios
- Convenções trazem padrões benéficos aos consumidores sem influenciar cada negócio
- SOA – unidades existem de forma autônoma não isoladas umas das outras. Precisam se adequar a princípios e padronização
- Unidades – são chamadas serviços
- SOA – Service Oriented Architecture
- Paradigma de desenvolvimento
- Objetivo é criar módulos funcionais – serviços – com baixo acoplamento e permitindo reutilização
- Acoplamento
- Medida da interdependência entre dois ou mais módulos
- Quanto mais acoplados, mais dependentes e vulneráveis a mudanças
- Coesão
- Seus elementos internos estão relacionados uns com os outros para executar a função do módulo
- Quanto mais coesos, mais fáceis de manter e menos afetados por mudanças
- Componentes fracamente acoplados
- Web Services devem ser componentes fracamente acoplados
- Podem continuar a funcionar mesmo com alterações na comunicação como
- Adição de novos parâmetros
- Omissão de parâmetros
- Mudança de ordem de parâmetros
- Granularidade
- Ajuda a medir a complexidade de um modelo de componentes
- Granularidade fina
- Desce em nível de classes
- Muito detalhado
- Granularidade grossa
- Oculta o modelo de classes básico
- Componentes executam mais de uma função
- SOA visa criar componentes de granularidade grossa
- Como serviços interagem?
- Devem ter conhecimento da existência uns dos outros.
- Este conhecimento é realizado através de descrições de serviços (service descriptions)
- Princípios do Projeto de Serviços
- Autonomia: Possuem controle sob a lógica que encapsulam
- Abstração: Escondem lógica do mundo externo
- Reusabilidade: Lógica dividida em serviços para promover reuso
- Ausência de estado: Serviços minimizam armazenamento sobre informações específicas de suas atividades
- Serviços são projetados para serem encontrados e acessados por mecanismos específicos
- Contrato do serviço: Serviços concordam com um contrato definido por uma ou mais descrições de serviço e documentos relacionados
- Fracamente acoplados: Mantém uma relação que minimiza dependências e apenas têm conhecimento de outros
- Introdução
6 - Introdução a Serviços
- Serviço
- É um componente que atende a uma função de negócio específica
- Recebe requisições e as responde ocultando todo o detalhamento do processamento
- Executa unidades completas do trabalho
- Podem ser “stateless” (não armazenam estado)
- Facilita reutilização
- Manutenção de Estado
- Se saída de um componente é afetada pelo seu estado interno (não somente pela entrada), diz-se que é um componente stateful
- Exemplo: armazenar código do cliente para mostrar produtos de que gosta
- São problemáticos, exigem maior acoplamento, de difícil manutenção e baixa reutilização.
- Se saída de um componente é afetada pelo seu estado interno (não somente pela entrada), diz-se que é um componente stateful
- Mensagens
- Comunicação através de mensagens
- Mensagens devem ser autônomas Unidades independentes de comunicação
- Depois que serviço envia uma mensagem, perde controle do que acontece com ela
- Serviço
Information
- Description
- Introdução a Arquitetura de Software Mind Map on Estilos e Padrões Arquiteturais 2, created by Roberto de Melo on 23/04/2018.
- Created by
- Roberto de Melo
- Views
- 0
- Rating
More on Estilos e padrões arquiteturais