Você está na página 1de 59

Projeto Arquitetural

Prof. Cristiano Biancardi

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

 O processo de projetar a arquitetura inclui:


a coleta de estatsticas de volumes de dados, freqncia de disparo de eventos e expectativas de tempos de resposta para o modelo essencial, a documentao da topologia geogrfica do negcio, a determinao da distribuio geogrfica dos locais de computao, a definio do particionamento de dados e processos entre os locais de computao, a determinao do trfego em rede e tamanho das bases de dados para vrias configuraes.
Cristiano Biancardi 3

Objetivos do Projeto Arquitetural


 At o projeto arquitetural, a questo do hardware ainda no foi tratada,
fase de anlise pressupe-se tecnologia perfeita.

 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

 Ao trmino do projeto arquitetural, a equipe de desenvolvimento deve ter determinado:


 distribuio geogrfica dos requisitos computacionais
 alocao dos subsistemas,

 os componentes de hardware:
 mquinas clientes e mquinas servidoras,

 configurao e o nmero de camadas de hardware cliente-servidor,


Cristiano Biancardi 6

 plataforma de software de implementao:


 linguagens de codificao e apresentao (interface com o usurio),

 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

 Onde fazer uma torrada? Em uma torradeira ou em um fogo industrial?

Cristiano Biancardi

12

Camadas de Hardware ClienteServidor


 Duas Camadas  Trs Camadas

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

Camadas de Software Cliente-Servidor


 Para discutir o desenvolvimento de software em uma arquitetura multicamada de hardware, necessrio primeiro dissecar a aplicao de software em camadas.  Os componentes de uma aplicao de negcio podem ser agrupados em pelo menos trs categorias principais:
Cristiano Biancardi 16

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

Camada de Lgica do Negcio


Contm o cdigo que executa e impe a poltica do negcio. Regras, regulamentos e clculos so encontrados nesta camada.  a camada mais mvel, podendo ser localizada em clientes remotos, no servidor central ou em qualquer outro local intermedirio.
Cristiano Biancardi 19

 Camada de Gerncia de Dados


Prov acesso a dados corporativos. Gerencia requisies concorrentes de acesso s bases de dados, assim como a sincronizao de elementos de dados distribudos. Muito desta camada estar no mesmo local fsico que os dados.
Cristiano Biancardi 20

Cliente Pesado x Servidor Pesado


 cliente pesado
 indica que a camada de lgica do negcio colocada principalmente na mquina cliente e o servidor dedicado ao acesso, distribuio e armazenamento de dados, respondendo a requisies de clientes.

 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

Coletando Estatsticas e Restries


 Modelo de Informao  Modelo de Eventos  Requisitos de Distribuio Geogrfica

Cristiano Biancardi

22

Coletando Estatsticas sobre o Modelo de Informao


 A meta principal deste passo estimar o tamanho de uma base de dados.  Para o projeto de um banco de dados relacional, duas informaes so essenciais:
o tamanho das linhas e o nmero estimado de linhas que podero acumular ao longo do tempo.
Cristiano Biancardi 23

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

Nmero de linhas esperadas para cada tabela:


 algumas entidades resultaro na criao de tabelas de controle, tais como Estado Civil e Pas.
o nmero de instncias nestas entidades relativamente fixo e, portanto, fcil de ser estimado.

 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

 Em suma, colete as seguintes informaes para cada entidade do modelo de informao:


tamanho estimado, em bytes, de uma linha, calculado pelo somatrio dos tipos de dados de cada atributo, adicionado da estimativa para as chaves primria e estrangeiras, taxa de ocorrncia dos casos de uso que criam novas instncias da entidades, perodo de reteno.

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

Coletando Estatsticas sobre o Modelo de Eventos


 Um modelo de eventos aquele que captura as funcionalidades de um sistema segundo uma perspectiva exterior, isto , dos usurios.  O modelo de casos de uso na Orientao a Objetos um exemplo de modelo de eventos.
Cristiano Biancardi 29

 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

 A principal questo a ser colocada sobre este assunto :

 o sistema tem que ser dimensionado para tratar picos, de modo a sempre atender satisfatoriamente s necessidades dos usurios?

 Se o sistema for dimensionado pela capacidade de pico,


 provavelmente ele ficar ocioso grande parte do tempo.

 Por outro lado, se for dimensionado pela mdia,

 nos momentos de pico no atender totalmente 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

Determinando Requisitos de Distribuio Geogrfica


 O prximo passo do projeto arquitetural consiste em examinar a distribuio geogrfica dos casos de uso, o que conduz naturalmente distribuio necessria ao acesso dos dados.  Juntos - a freqncia de disparo dos casos de uso, volume de dados, restries de tempo de resposta e a distribuio geogrfica do negcio
formaro a base para se determinar uma arquitetura aceitvel para o sistema em questo.
Cristiano Biancardi 36

Estratgias de Acesso Oportuno a Dados


 Levantamento de locais de acesso  Qual a melhor estratgia para a distribuio dos dados?  Principais estratgias:
Base de dados centralizada Dados descentralizados e replicados
Cristiano Biancardi 37

 Uma nica Base de Dados Centralizada

 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

 Dados Descentralizados e Replicados


 Base de dados pode ser completamente replicada em todos os locais que dela necessitem.  Atualizaes em um local podem ser irradiadas (broadcast) para outros locais em tempo real.  Com esta estratgia, h vrios benefcios bvios:
 projeto das aplicaes locais simplificado por ter acesso a dados locais.  tempo de resposta para cada transao no onerado pelo alto trfego em rede.  prov acesso local rpido.
Cristiano Biancardi 40

 As desvantagens, contudo, envolvem muitas complicaes:


 O trfego global na rede aumenta devido replicao de dados em todos os locais.  Rotinas complexas de sincronizao so necessrias para manter as vrias cpias da base de dados atualizadas.  Podem surgir problemas se o mesmo registro for atualizado em dois locais.  Se um dos servidores cair ou o software de replicao falhar, pode ser difcil reconstruir o conjunto dos dados e reaplicar atualizaes na ordem correta.  Qual base de dados a principal? Procedimentos de back-up tornam-se mais complexos.  Dados completamente replicados podem conduzir a redundncia desnecessria de dados.
Cristiano Biancardi 41

 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

Combinando: Vertical e Horizontal


Cada local possui apenas as colunas e linhas que so realmente necessrias para os eventos que ocorrem ali. Tal estratgia quando levada ao extremo pode ser muito difcil de gerenciar.

Cristiano Biancardi

48

 Sumrio da Determinao da Distribuio Geogrfica


 Os modelos criados durante a fase de anlise provem uma riqueza de informao para a determinao dos requisitos de distribuio geogrfica de um sistema.  Comear coletando estatsticas para determinar o tamanho total da base de dados
 informao crtica para:
determinao da necessidade de espao em disco situaes onde os dados so fisicamente distribudos. o tamanho dos registros e a freqncia de disparo dos eventos permitiro estimar o trfego em rede.
Cristiano Biancardi 49

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

Para controlar o acesso, necessrio:


Identificar Autenticar e Autorizar usurios.
Cristiano Biancardi 52

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

 Novos casos de uso?


Novos casos de uso podem ser adicionados ao modelo de eventos, tais como:
 atividades de segurana anteriormente relacionadas  limpeza, reorganizao, cpia e restaurao de arquivos  facilidades de ajuda (help).
Cristiano Biancardi 55

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

Deteco da ocorrncia de violaes


 Muitas vezes s percebemos que um sistema foi violado aps o ocorrido.  Quando for necessrio maior nvel de segurana, importante criar um procedimento de monitorao que registre os usurios que acessaram o sistema e os casos de uso por eles realizados.  O arquivo que guarda essas informaes chamado de histrico (log).  Para consulta a esse arquivo, necessrio criar mais um caso de uso de cunho tecnolgico, a auditoria.
Cristiano Biancardi 57

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:

 6.1 - Fragmentao Vertical  6.2 - Fragmentao horizontal  6.3 - Fragmentao Mista


Cristiano Biancardi 59