Bancos de Dados III Acesso Cliente Servidor Arquiteturas Rogério Costa rogcosta@inf.puc-rio.br 1 Requisitos de Sistemas Grande competitividade no mercado TI deve apoiar a empresa atendendo com agilidade. Buscam-se aplicativos com base em novos parâmetros... Flexibilidade, Fácil Manutenção, Reusabilidade, Escalabilidade,... 2 1
Aplicações em Camadas Possível solução => modularização e utilização de arquiteturas em camadas... Principais componentes de sistemas de informação: dados regras de negócio - regras que definem a maneira como os dados serão acessados e processados apresentação ao usuário - Interface visível do programa, que é utilizada pelo usuário para acessar a aplicação 3 Divisão em camadas Particionamento físico Divisão de um sistema complexo em mais de uma unidade física Tomou grande impulso com a utilização de PCs e LANs => maior escalabilidade Particionamento lógico Divisão de um sistema em módulos de acordo com seu objetivo/funcionalidade Não é necessariamente acompanhado de um particionamento físico 4 2
Particionamento Lógico 5 Particionamento Lógico Objetivos Por exemplo, permitir que: características sejam adicionadas sem reprojetar a aplicação novos tipos de clientes (software/hardware) sejam adicionados à aplicação interfaces de clientes sejam modificadas com mínimo impacto para a lógica do negócio lógica do negócio seja modificada sem mudar a apresentação do dado esquema do banco de dados ou da fonte de dados sejam modificados com o mínimo impacto na aplicação Exemplo de arquitetura: MVC 6 3
MVC Model-View-Controller/Modelo- Visão(Vista)-Controlador(Controle) Primeira menção ao MVC: 1979 - Projeto da XEROX Foi desenvolvida para ser utilizada como auxílio ao projeto visual Smalltalk-80 Originalmente, existia o Editor 7 MVC Modelo - gerenciamento da informação e comportamento da aplicação. É mais do que apenas uma representação do conteúdo do banco de dados Deve ser constituído pelas entidades de domínio e pelas regras de negócio intrínsecas a essas entidades Atua como camada de validação e abstração entre a interface com o usuário e os dados de negócio. Servidor de banco de dados constitui a camada de persistência do Modelo 8 4
MVC Visão - responsável por apresentar as entidades de domínio ao usuário, constituindo a parte visível do sistema Não contém lógica do funcionamento da aplicação Não contém lógica de navegação entre as telas Pode conter lógica condicional que relacione a forma de apresentação de um dado ao papel do usuário As operações que o usuário realiza na interface visual (pressionamento de um botão, por exemplo) são transformadas em eventos 9 MVC Controlador - garante o total desacoplamento entre Visão e Modelo eventos disparados na Visão são passados para o controlador interpreta as ações do usuário provenientes da Visão e comanda a execução das regras de negócio contidas no Modelo comanda a Visão para que ela apresente adequadamente a informação ao usuário 10 5
MVC Ciclo resumido de operações: Usuário interage com a interface (pressionando um botão, por exemplo) Controlador recebe notificação do evento enviada pelos objetos de interface Controlador acessa o modelo, possivelmente atualizando-o de acordo com a ação Modelo avisa a Visão das modificações, possivelmente através do controle, ou em um esquema Publish-Subscribe Visão usa modelo para gerar a interface adequada Interface aguarda ação do usuário, que reinicia o ciclo 11 MVC Exemplo - Aplicação Web: Usuário pressionou Mostrar os próximos 10 resultados da busca Um evento é disparado - o browser aciona uma requisição ao Controlador Controlador informa ao modelo a necessidade de mais registros Controlador faz Visão reapresentar a mesma página Visão solicitada dados a Modelo, que devolve os próximos 10 resultados, segundo orientação original do Controlador 12 6
MVC - Vantagens Fácil manter, testar e atualizar sistemas múltiplos, pois o modelo MVC gerencia múltiplos visões É simples incluir novos clientes apenas incluindo suas visões e controladores - Visões permitem várias tipos de interfaces: HTML (para browsers), XML (para web services), WML (para dispositivos wireless),... Torna a aplicação extensível e escalonável. Facilidade de desenvolvimento em paralelo para o modelo, a visão e o controlador, pois são independentes 13 MVC - Desvantagens Requer uma quantidade maior de tempo para analisar e modelar o sistema Requer pessoal especializado Não é aconselhável para pequenas aplicações 14 7
Particionamento Físico 15 Modelos de Aplicações Distribuídas Banco de Dados Sistemas Legados Clientes Magros Aplicações Externas Clientes Gordos 16 8
Arquitetura em uma camada Aplicações isoladas, onde tudo (regras de negócios, tratamento de dados e apresentação ao usuário) é tratado dentro do mesmo programa Dominantes até década de 80 como arquitetura corporativa 17 Arquitetura em Duas Camadas Primeiros sistemas cliente-servidor eram de duas camadas (lógicas e físicas) Particionamento lógico Camada cliente trata da lógica de negócio e da interface Camada servidor trata dos dados Particionamento físico Camada cliente em desktops da empresa Camada servidora em servidor de dados corporativo 18 9
Arquitetura em Duas Camadas Com particionamento lógico e físico Aplicação em Desktop Aplicação em Desktop Conexão de Bancos de Dados Servidor de Aplicação / Dados com SGBD BD Camada Cliente Camada Servidor 19 Arquitetura em Duas Camadas Benefícios Boa para criação de aplicações usando ferramentas visuais de construção de sistemas devido a simplicidade Apropriada para pequenas aplicações departamentais Limitações Maior dificuldade em instalação e manutenção (mudanças na lógica de aplicação forçava instalações) Menor escalabilidade (conexões a bancos de dados) Maior dificuldade de acessar fontes heterogêneas 20 10
Modelo Cliente-Servidor em Duas Camadas Modelo em Três Camadas Client Client Application Server DB Server DB Server 21 Arquitetura em 3 Camadas Modularidade: melhor manutenção Separação torna mais fácil o monitoramento do desempenho de cada função Melhora a integração com a utilização de diferentes máquinas em diferentes plataformas Problemas de instalação/manutenção reduzidos, pois mudanças às camadas de aplicação e de dados não necessitam de novas instalações no desktop 22 11
Arquitetura em 3 Camadas Aplicação em Desktop Conexão TCP/IP Servidor de Aplicação Pool de conexões de Bancos de Dados Servidor de Dados Aplicação em Desktop BD Camada de Apresentação Camada de Aplicação Camada de Dados 23 Cliente Magro Web Exemplo com Tecnologia Cliente Gordo Client Browser Client Browser + Applet Application Server - Servlet Application Server DBMS Server DBMS Server 24 12
Arquitetura em 3 Camadas Client Application Server Visão Física: Exemplo com Tecnologia DB Server 25 Duas camadas X Três camadas Número de usuários Desempenho Facilidade no desenvolvimento Divisão física Código Centenas Alta Limitada Duas Camadas Menor (muitos comandos SQL são enviados para o servidor. Os dados de resposta são transmitidos para o cliente, para análise) Maior no cliente Milhares Três Camadas Maior (somente requisições são enviadas pra o servidor de aplicação. SQLs e dados são trocados entre servidores. Pool de conexões ajuda no desempenho) Melhorando (novas ferramentas para desenvolvimento) Maior (camadas podem estar em máquinas independentes). Maior no servidor de aplicação 26 13
Aplicações em N Camadas 27 Arquitetura em N camadas Utilização de Web Services, componentes, objetos distribuídos,... Browser como Cliente Universal Evitar instalação em computadores de clientes, parceiros, fornecedores,... 28 14
Aplicações em N Camadas Maior capacidade de processamento através da distribuição Número de servidores envolvidos depende única e exclusivamente do desenho da aplicação ou das necessidades funcionais 29 15