Modelagem de sistemas da informação – aula 03 mai2011
1. ARQUITETURA TECNOLOGICA
Arquitetura em Camadas
Motivação: Sistemas que devam migrar para ambientes de internet/intranet/extranet;
Muitos SI devem mudar devido a mudanças dos negócios;
Fusões, aquisições, etc..
Pressões para manter custos com TI baixos
Pressões tecnológicas
Desenvolvimento de SI ficou mais complexos nos últimos anos;
Usuários precisam de funcionalidades mais sofisticadas.
Resumindo: Fazer SI a partir do zero, in-house:
É muito caro
Demora muito tempo
Não produz boa qualidade
O QUE QUEREMOS DA TI¿
Flexibilidade
o Possibilidade de satisfazer novos requisitos no negócio rapidamente;
Adaptabilidade
o Customizar uma aplicação para vários usuários usando várias alternativas de
entrega dos serviços da aplicação com impacto mínimo no núcleo da aplicação.
Manutenabilidade
o Poder atualizar uma aplicação, mas minimizando o impacto das mudanças.
Reusabilidade
o Possibilitar rapidamente montar aplicações únicas e dinâmicas;
o Reusar a funcionalidade de sistemas legados em novas aplicações.
Interoperabilidade
o Execução em plataformas diferentes
Escalabilidade
o Distribuir e configurar a execução da aplicação para vários volumes de transação
Robustez
o Menos defeitos
o Confiabilidade e disponibilidade da aplicação.
Resumindo: É tudo que a norma ISSO 9126 caracteriza como qualidade de software.
2. SOLUÇÃO: APLICAÇÕES MULTICAMADAS DISTRIBUIDAS (CLIENTE/SERVIDOR)
Histórico
Arquitetura centralizada, dominantes até a década de 80 como arquitetura corporativa, tinha como
principais problemas a interface não amigável do software.
Arquitetura em duas camadas, os sistemas em camada surgiram para:
Aproveitar melhor os desktops da empresa, que eram ociosos ou mal aproveitados;
Oferecer interface mais amigável aos usuários;
Integrar os desktops e os dados corporativos.
Permitiram aumentar a escalabilidade de uso dos sistemas de informação.
Os primeiros sistemas cliente/servidor eram de duas camadas:
a) Camada cliente, trata da lógica de negócio e da UI (Interface do usuário);
b) Camada servidor, trata do dados (usando SGBD).
Aplicação
PC
Servidor
Aplicação BD
PC
Cliente Servidor
Arquitetura em três camadas
A arquitetura em duas camadas tinha alguns problemas:
a) Falta de escalabilidade (conexões ao BD)
b) Problemas de manutenção (mudança da lógica da aplicação, forçava reinstalação)
Criou se a arquitetura em tres camadas:
a) Camada de apresentação (Interface do Usuário);
b) Camada de aplicação (Lógica do negócio)
c) Camada de Banco de Dados
3. Aplicação
PC
Servidor Servidor
Aplicação Bco Dados
Aplicação BD
PC
Cliente Lógica Negócio Dados
Beneficios da tres camadas:
Problema de manutenção foram reduzidos, pois as mudanças na camada de aplicação e
de dados não necessitam de nova instalações nos desktops;
Observe que as camadas são lógicas
o Fisicamente, várias camadas podem executar na mesma máquina;
o Quase sempre, há separação física das máquinas.
Arquitetura de 3 – 4 camadas baseadas na WEB
A arquitetura de tres camadas original tem como problemas:
A instalação inicial dos programas no desktop é cara;
O problema da manutenção persiste, quando a mudança na camada de apresentação;
Não se pode instalar software facilmente num desktop que não esta sob seu controle
administrativo.
o Ex.: Máquinas de parceiros, Máquinas de Clientes, Máquinas de fornecedores.
Então, usamos o browser como CLIENTE universal
A camada de aplicação se quebra em duas partes:
o Web e Aplicação;
Evitamos instalar qualquer software no desktop e, portanto, menos problemas de
manutenção;
Evitamos instalação em máquinas de parceiros, fornecedores, clientes etc..
AS VEZES CHAMA-SE ISSO DE TRES CAMADAS PORQUE, AS CAMADAS WEB E
APLICAÇÃO FREQUENTEMENTE RODAM NA MESMA MÁQUINA (PARA PEQUENOS
VOLUMES).
Browser
PC
Servidor Servidor
WEB
Bco Dados
4. OBS: Fazer aplicações multicamadas não é fácil.
CARACTERISTICAS DA ARQUITETURA CLIENTE/SERVIDOR
Cliente/Servidor é uma relação entre processos que rodam em máquinas diferentes. O
processo servidor é o fornecedor dos serviços.
O Cliente é o consumidor desses serviços, fundamentalmente uma arquitetura
cliente/servidor implementa ua separação lógica de funções baseada no conceito de
serviços.
o Um servidor pode servir vários clientes ao mesmo tempo e gerenciar os acessos
aos recursos compartilhados;
o O servidor é um processo que pode residir na mesma máquina que o cliente ou
numa máquina diferente que esta ligada através de uma rede.
o Baseado na transmissão de mensagens, a mensagem é o mecanismo de
transporte para os pedidos e resposta dos serviços;
o Escalabilidade, podem evoluir facilmente, quer por adição de novos clientes, quer
por adição de servidores mais potentes;
o Integridade, o código (sw) e os dados devem ser mantidos centralmente, dessa
forma reduzem os custos de manutenção e aumenta a integridade dos dados.
Tipos de servidores: Servidores de aplicações, Servidores de Banco de Dados, Servidores Web..