Análise e Projeto de Sistemas Arquitetura de Software CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 1/41 Modelos arquiteturais O projeto de arquitetura pode ser baseado num modelo ou estilo específico de arquitetura. Contudo, a maioria dos sistemas são heterogêneos, ou seja, diferentes partes do sistema são baseados em diferentes modelos e, em alguns casos o sistema pode seguir um modelo composto O modelo escolhido afeta os requisitos nãofuncionais (ex: performance, segurança, disponibilidade, manutenabilidade e distributividade) CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 7/41 Modelos arquiteturais Diferentes modelos ou estilos arquiteturais podem ser produzidos durante o projeto arquitetural Cada um dos modelos representa diferentes perspectivas da arquitetura. Ex: Modelos estruturais estáticos - mostram os principais subsistemas ou componentes do sistema Modelos de controle - lidam com fluxo de controle entre subsistemas. Modelos de decomposição modular - outro nível estrutural onde sub-sistemas são decompostos em módulos CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 8/41 Modelos Estruturais CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 9/41 Exemplo de Modelo Estrutural: Sistema de Controle de um Robot para Empacotamento Vision system Object identification system Arm controller Gripper controller Packaging selection system Packing system CIn-UFPE Conveyor controller ©2003, Alexandre Vasconcelos & Augusto Sampaio 10/41 O modelo de repositório Sub-sistemas devem compartilhar dados. Isto pode ser feito de duas formas: O dado compartilhado é colocado num banco de dados ou repositório, podendo ser acessado por todos os subsistemas Cada sub-sistema mantém seu próprio banco de dados independente e passa dado explicitamente para os outros sub-sistemas Quando a quantidades de dados compartilhados é grande, o modelo de repositório compartilhado é mais apropriado CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 11/41 Modelo repositório: Arquitetura de um conjunto de ferramentas CASE Design editor Design translator Project repository Design analyser CIn-UFPE Code generator Program editor Report generator ©2003, Alexandre Vasconcelos & Augusto Sampaio 12/41 Arquitetura cliente-servidor Modelo de sistema distribuído que mostra como dados e processamento são distribuídos entre um número de componentes (processadores) Conjunto de servidores separados que provêem serviços específicos tais como impressão, gerenciamento de dados, etc. Conjunto de clientes que usam estes serviços Rede permite que clientes acessem os servidores CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 14/41 Modelo cliente-servidor: Biblioteca de filmes e fotografias Client 1 Client 2 Client 3 Client 4 Wide-bandwidth network Catalogue server Video server Picture server Hypertext server Catalogue Film clip files Digitiz ed photographs Hypertext web CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 15/41 Modelo de máquina abstrata Usado para modelar o interfaceamento entre subsistemas Organiza o sistema num conjunto de camadas (ou máquinas abstratas), cada uma provendo um conjunto de serviços Suporta o desenvolvimento incremental de subsistemas em camadas diferentes. Quando uma interface de uma camada muda, somente a camada adjacente é afetada Contudo, geralmente é difícil estruturar sistemas desta forma CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 17/41 Modelo de máquina abstrata: Sistema de gerenciamento de versão Version management Object management Database system Operating system CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 18/41 Modelos de Controle CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 19/41 Modelos de controle Tipos de Controle: centralizado Um sub-sistema tem responsabilidade geral pelo controle de ativação e desativação de outros sub-sistemas baseado em eventos Cada sub-sistema pode responder a eventos gerados externamente por outros sub-sistemas ou pelo ambiente do sistema CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 20/41 Controle centralizado Dividem-se em duas categorias: Modelo de retorno de chamada Se aplica a sistemas seqüenciais. Modelo de sub-rotina top-down, onde o controle começa no topo de uma hierarquia de sub-rotinas e move em direção para baixo. Modelo de gerente Um componente do sistema controla a parada, início e coordenação de outros processos do sistema. Pode ser implementado em sistemas seqüenciais através de sentenças “case”, mas também pode ser aplicado a sistemas concorrentes. CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 21/41 Modelo de retorno de chamada (controle centralizado) Main program Routine 1 Routine 1.1 CIn-UFPE Routine 2 Routine 1.2 Routine 3 Routine 3.1 ©2003, Alexandre Vasconcelos & Augusto Sampaio Routine 3.2 22/41 Sistema de controle de tempo-real (modelo de gerente-centralizado) Sensor processes Actuator processes System contr oller Computation processes CIn-UFPE User interface Fault handler ©2003, Alexandre Vasconcelos & Augusto Sampaio 23/41 Controle baseado em eventos Dirigidos por eventos gerados externamente, onde a ocorrência do evento está fora do controle dos subsistemas que processam o evento. Dois modelos principais Modelo broadcast. Um evento é enviado para todos os subsistemas. Qualquer dos sub-sistemas que trate o evento poderá fazê-lo. Modelos dirigidos a interrupção. Usado em sistemas de tempo-real, onde interrupções são detectadas por um gerenciador de interrupções e repassadas para algum outro componente para processamento. CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 24/41 Modelo Broadcast (controle baseado em evento) Efetivo na integração de sub-sistemas em diferentes computadores de uma rede Sub-sistemas registram um interesse em um evento específico. Quando ele ocorre, o controle é transferido para o sub-sistema que pode tratar o evento A política de controle não está embutida no controlador de mensagens e eventos. Os sub-sistemas decidem quais eventos são de seu interesse. Contudo, sub-sistemas não sabem se e quando um evento será tratado CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 25/41 Broadcast seletivo Sub-system 1 Sub-system 2 Sub-system 3 Sub-system 4 Event and messa ge handler CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 26/41 Sistemas dirigidos a interrupção (controle baseado em evento) Usado em sistemas de tempo real onde a resposta rápida a um evento é essencial Existem tipos conhecidos de interrupção com um manipulador definido para cada tipo Cada tipo está associado com uma localidade de memória e um interruptor de hardware causa a transferência para seu manipulador Permite resposta rápida, porém complexo para programar e difícil de validar CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 27/41 Controle dirigido a interrupção Interrupts Interrupt vector Handler 1 Handler 2 Handler 3 Handler 4 Process 1 Process 2 Process 3 Process 4 CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 28/41 Modelos de Decomposição Modular CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 29/41 Decomposição modular Dois tipos de decomposição abordados Um modelo objeto onde o sistema é decomposto em objetos que interagem Um modelo de fluxo de dados onde o sistema é decomposto em módulos funcionais que transformam entradas em saídas. Também conhecido como modelo pipeline CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 30/41 Arquiteturas de domínios específicos CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 31/41 Arquiteturas de domínios específicos Modelos que são específicos para algum domínio de aplicação Dois tipos de modelo de domínio específico Modelos genéricos que são abstrações de um número real de sistemas e que encapsulam as principais características destes sistemas Modelos de referência que são mais abstratos, modelos idealizados. Permitem comparar diferentes arquiteturas Modelos genéricos são normalmente bottom-up; Modelos de referência são top-down CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 32/41 Modelos genéricos (Arquitetura de domínio específico) Modelo de um compilador é bem conhecido, embora outros modelos existam em domínios de aplicação mais especializados Lexical analyser Symbol table Syntax analyser Syntax tree Semantic analyser Code generator Um compilador genérico pode ser organizado de acordo com diferentes modelos de arquitetura CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 33/41 Modelo de compilador Symbol table Lexical analysis CIn-UFPE Syntactic analysis Semantic analysis ©2003, Alexandre Vasconcelos & Augusto Sampaio Code generation 34/41 Sistema de processamento de linguagem Lexical analyser Syntax analyser Semantic analyser Prettyprinter Abstract syntax tree Grammar definition Optimizer Editor Symbol table Output definition Code generator Repository CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 35/41 Modelos de referência Modelos de referência são derivados de estudos do domínio de aplicação em vez de modelos existentes Pode ser usado como base para uma implementação do sistema ou para comparar sistemas diferentes. Funciona como um padrão contra o qual os sistemas podem ser avaliados Ex: O Modelo OSI é um modelo de camadas para sistemas de comunicação CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 36/41 Modelo OSI de referência 7 Application Application 6 Presentation Presentation 5 Session Session 4 Transport Transport 3 Network Network Network 2 Data link Data link Data link 1 Physical Physical Physical Communica tions medium CIn-UFPE ©2003, Alexandre Vasconcelos & Augusto Sampaio 37/41