Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduo
O modelo de arquitetura mapeia
os requisitos essenciais da fase de anlise em uma arquitetura tcnica.
Uma vez que muitas arquiteturas diferentes so possveis, o propsito do projeto arquitetural escolher a melhor configurao
ou talvez a menos pior
Cristiano Biancardi 2
Este o momento para resolver como este modelo ideal ir executar em uma plataforma restrita. importante realar que no existe a soluo perfeita.
O projeto da arquitetura uma tarefa de negociao.
Cristiano Biancardi 4
Em suma:
projeto arquitetural consiste na alocao do modelo essencial de requisitos em uma tecnologia especfica
determinando que processos rodaro em quais processadores, onde os dados sero armazenados e quanta comunicao entre processadores ser necessria.
Cristiano Biancardi
os componentes de hardware:
mquinas clientes e mquinas servidoras,
sistemas operacionais, mecanismos e linguagens de comunicao em rede, sistema gerenciador de banco de dados, localizao ou localizaes dos processos
processamento centralizado, distribudo, paralelo
localizao ou localizaes dos dados fsicos estratgias de sincronizao para dados distribudos geograficamente.
Cristiano Biancardi 7
OBS:
Muitas dessas decises j tero sido tomadas previamente, seja por uma ordem da gerncia, seja pelo fato da organizao j possuir uma plataforma de hardware e software para implementao. Assim, o projeto de arquitetura a busca por atingir os requisitos do negcio, reconhecendo as limitaes da plataforma a ser utilizada.
Cristiano Biancardi 8
A Arquitetura Cliente-Servidor Cliente A computao cliente-servidor um processamento cooperativo de informaes de negcio por um conjunto de processadores
no qual mltiplos clientes geograficamente distribudos iniciam requisies que so realizadas por um ou mais servidores centrais.
Cristiano Biancardi 9
Primordialmente, o termo cliente-servidor usado para descrever software que executa em mais de um hardware de modo a realizar uma tarefa do negcio. A separao de hardware a norma em aplicaes cliente-servidor. A distncia varia desde computadores localizados na mesma sala ou prdio, at aqueles localizados em diferentes prdios, cidades ou mesmo espalhados pelo planeta.
Cristiano Biancardi 10
Atualmente, h muitos tipos diferentes de processadores, que podem ser melhor utilizados para serem clientes ou servidores. Mquinas de grande porte (mainframes), por exemplo, so poderosas, mas requerem grande habilidade para oper-las e so subutilizadas para uma ampla variedade de requisies comuns. Computadores pessoais (PCs), por sua vez, so bem melhores para gerenciar e necessitam de menos habilidades do usurio para oper-los e provem processamento eficiente e barato para muitas das tarefas de uma organizao.
Cristiano Biancardi 11
Cristiano Biancardi
12
Cristiano Biancardi
13
Duas Camadas
forma mais simples a arquitetura cliente-servidor envolve mltiplos clientes fazendo requisies para um nico servidor.
Cristiano Biancardi
14
Trs Camadas
mquinas-cliente esto conectadas via uma rede local a um servidor local de aplicao que, por sua vez, se comunica com um servidor de dados central.
Cristiano Biancardi
15
Cristiano Biancardi
17
Camada de Apresentao
a camada mais externa do sistema de software. Sua funo capturar estmulos de eventos externos e realizar alguma edio dos dados de entrada. encarregada tambm de apresentar respostas aos eventos para o mundo exterior. Localizada em uma mquina cliente.
Cristiano Biancardi 18
servidor pesado
descreve uma alocao de responsabilidades na qual o cliente limitado apresentao da interface e edio mnima, enquanto a maior parte da lgica de negcio e a imposio de regras so executadas no servidor central.
Cristiano Biancardi 21
Cristiano Biancardi
22
Procedimento:
1 - deve-se definir o tipo de dados para cada atributo da entidade/classe. 2 - para estimar o nmero de bytes de uma nica linha, basta somar o nmero de bytes para cada atributo da entidade/classe e adicionar o nmero de bytes da chave primria (se ela no for um atributo da entidade/classe) e das chaves estrangeiras, ou transpostas, que mapeiam os relacionamentos.
Cristiano Biancardi
24
contudo, mais importante estimar o volume de dados para tabelas de transaes, tais como Pedido e Itens de Pedido.
modelo de casos de uso pode nos dizer quais eventos criam instncias destes tipos.
para estimar o tamanho dessas tabelas, necessrio saber quo freqentemente o caso de uso ocorre.
deve ser obtida junto aos usurios.
necessrio determinar o perodo de reteno da informao sobre uma instncia. Cristiano Biancardi
25
Estas estatsticas so usadas para estimar os recursos necessrios para alojar adequadamente a base de dados.
Cristiano Biancardi 26
Uma vez que importante saber que tipo de operao um caso de uso pode realizar em uma entidade/classe, til produzir uma matriz CERA (Criar, Eliminar, Recuperar, Atualizar) Caso de Uso/Entidade (ou Caso de Uso/Entidade)
mostrando se, por ocasio da ocorrncia do caso de uso, o sistema necessitar criar, atualizar, recuperar ou eliminar instncias da entidade/classe.
Cristiano Biancardi 27
Cristiano Biancardi
28
Alguns casos de uso so bem mais crticos do que outros no que diz respeito importncia do sistema ser hbil para responder rapidamente. Pode-se fazer anotaes com estatsticas sobre o modelo de eventos para capturar a freqncia de ocorrncia (ou disparo) e o tempo de resposta desejado para um evento. O objetivo identificar os eventos crticos, j que eles sero objeto de exame minucioso.
Para esses, deve-se levantar a freqncia mdia de ocorrncia, a taxa de pico e o perodo de tempo do pico.
Cristiano Biancardi 30
Eventos uniformes:
freqncia mdia de disparo freqncia de disparo tende a ser mesma ao longo do todo tempo.
Eventos irregulares:
necessrio conhecer as taxas de pico e o perodo em que estes picos ocorrem.
Cristiano Biancardi 31
o sistema tem que ser dimensionado para tratar picos, de modo a sempre atender satisfatoriamente s necessidades dos usurios?
Esta no uma deciso fcil e no deve ser tomada apenas pelo pessoal de desenvolvimento.
Ao contrrio, esta deciso cabe, principalmente, ao cliente.
De maneira geral, a menos que o custo seja proibitivo, a maioria das organizaes prefere
gastar mais dimensionando o sistema pelo pico, evitando inconvenientes para os usurios.
Cristiano Biancardi 32
Analisar tudo?
No necessrio analisar todos os eventos de um modelo de eventos, coletando estatsticas para todo o sistema. Devemos nos concentrar nos principais casos de uso do negcio, aqueles com os maiores impactos sobre o cliente, com os maiores volumes de dados e com as localizaes mais remotas geograficamente.
Cadastro de Produto Transao de Venda
Cristiano Biancardi 33
Desempenho:
Uma caracterstica de qualidade recorrente para sistemas de informao o tempo de resposta. O tempo de resposta mximo aceitvel deve ser definido para cada evento/caso de uso. A equipe do projeto deve concentrar seus esforos sobre os eventos de negcio mais importantes, ou seja, aqueles que ocorrem com maior freqncia e tm mais impactos para os clientes e usurios.
Cristiano Biancardi 34
O tempo de resposta pode ser medido tanto no nvel de evento do negcio quanto no nvel de dilogo.
Negcio: mede o tempo entre a recepo do estmulo inicial do evento at a emisso da resposta final. Todo processo Dilogo: mede o tempo que o sistema leva para responder a um dilogo/consulta, que pode ser apenas uma poro do caso de uso total. Apenas o processamento
Cristiano Biancardi
35
uma nica cpia dos dados mantida em uma localizao central. todas as aplicaes que necessitem acess-los devem fazer suas consultas e atualizaes no servidor central. Os benefcios so numerosos:
fcil fazer cpias de segurana dos dados quando uma nica cpia existe. O projeto do sistema total menos complicado, por exemplo, a segurana mantida centralmente e nenhuma rotina de sincronizao requerida. Os dados so sempre atuais. No h dados redundantes ao longo das localizaes do negcio.
Cristiano Biancardi 38
A desvantagem:
Desempenho Inacessvel:
Servidor central cair Linhas de comunicao carem Neste caso, os locais remotos ficaram efetivamente sem processamento.
Desempenho inaceitvel e risco de queda so os dois fatores que fazem com que negcios muitas vezes descartem bases de dados centralizadas.
Cristiano Biancardi 39
Fragmentao
A distribuio dos dados otimizada de modo que apenas os dados necessrios por cada local so mantidos locais. Vertical ou horizontal.
Cristiano Biancardi
42
Vertical
Ocorre quando apenas certas tabelas ou colunas so fisicamente distribudas a locais remotos. Cada localizao possui apenas aquelas tabelas ou colunas que so requeridas pelos eventos que ocorrem no mesmo. Vantagem:
Reduz trfego em rede, pq? Apenas os elementos de dados necessrios precisam ser sincronizados com outros locais.
Desvantagem:
Estratgia complexa para gerenciar. Os procedimentos de replicao devem ser capazes de sincronizar atualizaes coluna por coluna em diferentes locais.
Cristiano Biancardi 43
Exemplo:
Cristiano Biancardi
44
Horizontal
A fragmentao horizontal ocorre quando apenas certas linhas em uma tabela so fisicamente distribudas a locais remotos. Cada localizao tem sua cpia completa do esquema de banco de dados. As estruturas das tabelas em cada localizao so idnticas, mas as linhas de dados que povoam estas tabelas podem ser diferentes. Geralmente, h uma base de dados principal que contm todos os registros.
Cristiano Biancardi 45
Vantagem:
diminui o trfego na rede, pq? elimina transferncias de dados desnecessrias.
Desvantagem:
o processo de sincronizao tambm de alguma forma complicado principalmente quando diferentes locais compartilham alguns registros.
Cristiano Biancardi 46
Exemplo:
Cristiano Biancardi
47
Cristiano Biancardi
48
Estatsticas capturadas do modelo de eventos incluem a freqncia mdia de disparo dos eventos, taxas de pico para eventos irregulares e expectativas de tempo de resposta.
De posse destas estatsticas, o prximo passo consiste em apliclas topologia de localizao do negcio.
Informao adicional pode ajudar a equipe de projeto a efetuar escolhas arquiteturais slidas.
Exemplo: quo antiga uma entidade pode ser para um dado evento ocorrendo em uma localizao.
Isto pode ajudar a decidir se uma rotina de sincronizao em tempo real necessria ou se uma rotina de atualizao batch suficiente.
Cristiano Biancardi
50
Conhecidos:
o tamanho dos registros, a taxa dos eventos que criam, lem, atualizam e eliminam estes registros e a distncia entre os locais do negcio => a equipe pode, enfim, explorar suas opes arquiteturais.
LEMBREM:
Estratgias de distribuio de dados variam desde completamente centralizada a completamente distribuda. Qualquer que seja a escolha feita, ela deve respeitar, acima de tudo, as necessidades dos usurios.
Cristiano Biancardi
51
Segurana
Garantir a segurana contra acessos indevidos
tem como objetivo no permitir que pessoas no autorizadas tenham acesso a eventos ou aos dados
Identificao
se d atravs de um cdigo unvoco capaz de identificar apenas um usurio.
Autenticao
consiste em comprovar que o usurio mesmo quem ele diz ser na identificao, sendo feita, normalmente, por uma senha.
Autorizao
dada ao usurio, ou a uma classe de usurios, dando acesso a determinados eventos, dados para leitura/escrita.
Cristiano Biancardi 53
Uma matriz Caso de Uso / Classe de Usurio pode ser utilizada para documentar o nvel de autorizao adotado no projeto:
Cristiano Biancardi
54
Controle de usurios
Permiti definir classes de usurios e seus perfis, incluir, excluir ou alterar usurios Alm disso, responsvel pelas atividades de identificao, autenticao e autorizao de usurios.
Cristiano Biancardi
56
Referncias
Practical Analysis and Design for Client/Server and GUI Systems. David A. Ruble, Yourdon Press Computing Series, 1997. Projetando com Qualidade a Tecnologia de Sistemas de Informao. Carlos Magno da S. Xavier, Carla Portilho, Livros Tcnicos e Cientficos Editora, 1995.
Cristiano Biancardi
58
Exerccos
1 - Explique a procedimento para se estimar o tamanho do Modelo de Informao 2 - Enumere os itens de projeto arquitetural que devem ser considerados para aplicaes grandes e complexas. 3 - Com relao ao modelo de eventos, discuta as seguintes situaes:
3.1 - Se o sistema for dimensionado pela capacidade de pico 3.2 - se o sistema for dimensionado pela mdia
4 - Explique a Cliente pesado e Servidor Pesado 5 - Explique os benefcios e as desvantagens relacionadas as estratgias de acesso oportuno a dados
5.1 - Base de dados centralizada 5.2 - Base descentralizada e replicada
6 - Explique: