Projetar Processos Durante a identificação de elementos de projeto podem ser encontrados objetos ativos (cápsulas) para se representar threads - Em tese cada um deveria possuir sua própria thread Este mapeamento pode depender de requisitos de tempo de resposta, devido ao: - Overhead em mudanças de contexto - Sobrecarga sobre recursos Qualiti Software Processes Projetar distribuição | 2 Copyright © 2002 Qualiti. Todos os direitos reservados. Descrição do Projeto Processos Análise de requisitos de concorrência - Grau em que o sistema precisa ser distribuído - Computação intensiva de algoritmos chaves - Grau de paralelismo suportado pelo ambiente - Necessidade de tolerância a falha - Padrões de recebimento de eventos externos (Periódicos e Aperiódicos) Qualiti Software Processes Projetar distribuição | 3 Copyright © 2002 Qualiti. Todos os direitos reservados. Requisitos de concorrência são guiados por: Processos x Threads - Unidades independentes (ponto de vista de SO) - Mais estáveis - Podem ser recuperados independentemente de outros processos Threads (processos leves) - Possuem controle de concorrência aninhado a - outros processos/threads São mais leves Compartilham área de memória Qualiti Software Processes Projetar distribuição | 4 Copyright © 2002 Qualiti. Todos os direitos reservados. Processos Identificar Processos e Threads - Objetos ativos (cápsulas) agrupados em uma - mesma thread podem ser bloqueados por chamadas síncronas. Separação de conceitos Aproveitar a existência de múltiplas CPUs Aumentar a utilização da CPU Priorizar atividades Aumentar a disponibilidade Qualiti Software Processes Projetar distribuição | 5 Copyright © 2002 Qualiti. Todos os direitos reservados. Preocupações Mapeamento de objetos ativos a threads/processos 2. 3. 4. 5. respondidos, e defina uma thread de controle em separada para tratá-los; A partir do modelo de projeto, agrupe classes, subsistemas e cápsulas em conjuntos de elementos que: • Possuem grande cooperação que entre si; • precisam executar em uma mesma thread de controle. Considere então o impacto de possíveis comunicações entre processos; Combine processos gerados até reduzir ao máximo o número de processos que ainda precisem de distribuição e usem recursos físicos, de forma que sejam suportados pelo ambiente. Identifique se as threads de controle devem se transformar em processos ou threads. Qualiti Software Processes Projetar distribuição | 6 Copyright © 2002 Qualiti. Todos os direitos reservados. 1. Identifique estímulos externos que precisam ser Documentar ciclo de vida do processo Identificar meios de comunicação interprocessos - RPCs, MailBox, Event Boradcast, ... Alocação de recursos - Compartilhamento, aumentar recursos, diminuir sua necessidade, ... Qualiti Software Processes Projetar distribuição | 7 Copyright © 2002 Qualiti. Todos os direitos reservados. Outras Ações ... Em um sistema ATM (Automated Teller Machine), eventos assíncronos podem oriundos de três fontes: - Usuário - Do dispositivo ATM (abertura do caixa para troco) - Rede ATM (requisição de shutdown pela rede) Para lidar com estes eventos, serão definidos três threads de execução com o próprio ATM (usando classes ativas – cápsulas). Qualiti Software Processes Projetar distribuição | 8 Copyright © 2002 Qualiti. Todos os direitos reservados. Exemplo de um diagrama de Processos Exemplo de um diagrama de Processos Copyright © 2002 Qualiti. Todos os direitos reservados. Pode ser construido através do diagrama de componentes Fonte: Rational Unified Process Version 2003.06.01.04 Qualiti Software Processes Projetar distribuição | 9 Projetar Distribuição Descrever como o sistema está organizado nos seus nós físicos (sistemas distribuídos) - Definir a configuração da rede - Alocar processos aos nós Trabalhar na Visão de Implantação ou Distribuição (Deployment) Qualiti Software Processes Projetar distribuição | 11 Copyright © 2002 Qualiti. Todos os direitos reservados. Descrever distribuição Reduzir carga de processador Requisitos especiais de processamento Prover acesso distribuído ao sistema Economia - Ex.: Grid computer Escalabilidade - Ex.: Balanceamento de Carga Confiabilidade - Ex.: Tolerancia a Falhas Qualiti Software Processes Projetar distribuição | 12 Copyright © 2002 Qualiti. Todos os direitos reservados. Motivação para distribuição do sistema Diagrama de implantação: Elemento - Nó - Def.: recurso computacional físico Pode ser de dois tipos - processador - dispositivo <<Node>> <<Processor>> Processador A Lista de processos que executam no Processador A <<Device>> Dispositivo B Processo C Processo D Qualiti Software Processes Projetar distribuição | 13 Copyright © 2002 Qualiti. Todos os direitos reservados. Nó Conexões entre nós identificam: - mecanismo de comunicação - (tecnologia utilizada) meio físico utilizado protocolo de software <<Processor>> Processador A Conexão <<Device>> Dispositivo B Qualiti Software Processes Projetar distribuição | 14 Copyright © 2002 Qualiti. Todos os direitos reservados. Diagrama de implantação: Elemento - Conexão entre nós Máquinas dos usuários finais Máquinas servidoras Processadores especializados Máquinas com configuração especial - desenvolvimento - testes Qualiti Software Processes Projetar distribuição | 15 Copyright © 2002 Qualiti. Todos os direitos reservados. Tipos de processadores De acordo com a configuração da rede, os processos do sistema são alocados aos nós levando em consideração: - Capacidade do nó - Largura de banda do meio de comunicação - Disponibilidade de hardware e links de - comunicação Requisitos de redundância e tolerância a falhas Requisitos de tempo de resposta Qualiti Software Processes Projetar distribuição | 16 Copyright © 2002 Qualiti. Todos os direitos reservados. Alocar processos a nós QIB – Diagrama de distribuição Cliente Copyright © 2002 Qualiti. Todos os direitos reservados. Diagrama de distribuição (visão parcial) Cliente Browser Browser Internet (HTTPS) Internet (HTTPS) Servidor Web Servidor Apache ... ... Qualiti Software Processes Projetar distribuição | 17 Exercício (opcional) – Qualiti Internet Banking - artefatos de requisitos - modelo de análise e projeto Produzir: - Diagrama de processos (opcional) - Diagrama de distribuição do QIB, descrevendo a configuração de rede do sistema (nós e suas conexões) Qualiti Software Processes Projetar distribuição | 18 Copyright © 2002 Qualiti. Todos os direitos reservados. Dado: Projetar Distribuição