arquitetura de software prof. antonio alberto p. santana
TRANSCRIPT
ARQUITETURA DE SOFTWARE
Prof. Antonio Alberto P. Santana
- Estrutura da aplicação distribuída Cliente/Servidor
- Transação
- Consultas
- Independência das camadas
- Particionamento da aplicação
AGENDA
ESTRUTURA DA APLICAÇÃO
função lógicade apresentação
função lógica deregras de negócio
função lógica degerenciamento
de dados
banco dedados
tela
Figura 06.2.1 - Camadas básicas de uma típica aplicação cliente/servidor
XXX
ESTRUTURA DA APLICAÇÃO
-Função lógica de apresentação - é a camada que realiza a interação com o usuário final
-Principais funções- garantir a segurança de acesso ao sistema;- permitir a navegação sobre o sistema para a chegada do usuário ao ponto desejado;- realizar a apresentação das informações;- manipular as informações imputadas no sistema;- realizar algumas análises destas informações.
ESTRUTURA DA APLICAÇÃO
- Função lógica de regras de negócio - é responsável pela imposição da política de negócio da organização, comandando a tomada de decisão do processo, conforme os requisitos e regras que determinam o comportamento do negócio.- é a parte da aplicação que dá sentido à existência da própria aplicação.- a comunicação com esta camada é feita através do pedido de processo, que representa a interface da camada.
ESTRUTURA DA APLICAÇÃO
- Função lógica de gerenciamento de dados - tem a responsabilidade de garantir o armazenamento, a manipulação, a consistência, a integridade e a segurança dos dados.
- Principais funções- fazer a leitura e a atualização dos dados;- controlar a segurança do acesso aos dados;- garantir a integridade dos dados;- realizar a validação das operações solicitadas.
GERENCIAMENTO DE DADOS
- Função lógica de gerenciamento de dados - a interface de comunicação com a camada de gerenciamento de dados é representada pelas transações e consultas.
- para garantir consistência, integridade e segurança aos dados, o acesso a eles deve ser feito somente através de um conjunto de transações e consultas cuidadosamente definido.
TRANSAÇÃO
- Definição - Uma transação é “uma seqüência de ações pré-definida, realizada por uma aplicação, que transforma um sistema de computação e seus recursos de um estado consistente para outro, ordenadamente, para realizar a desejada funcionalidade do negócio.” (BERSON, 1992).
TRANSAÇÃO - Propriedades
- Atomicidade- uma transação deve ser completada ou abortada (se uma ação da seqüência falhar, todas as outras já realizadas pela transação deverão ser desfeitas);
- Consistência- uma transação transforma um sistema de computação e seus recursos de um estado consistente para outro também consistente;
TRANSAÇÃO - Propriedades
- Isolamento- os efeitos de uma transação não são visíveis por outras transações enquanto ela não for finalizada;
- Serialização- as informações utilizadas por uma transação são travadas ao longo de sua execução, para evitar que outras transações alterem estas informações antes que aquela seja encerrada;
TRANSAÇÃO - Propriedades
- Durabilidade- alterações feitas por uma transação encerrada (comitada) são permanentes e tolerantes à falha do sistema.
TRANSAÇÃO
- Principais funções - garantir atualizações consistentes - atualizações devem ser implementadas somente por meio de transações para assegurar a consistência;
- impor regras de negócio básicas - as regras de negócio básicas devem ser monitoradas pelas transações;
- evitar atualizações não autorizadas ou inválidas no SGBD - a interface transacional funciona como um guardião para evitar atualizações não autorizadas ou inválidas no Banco de Dados.
CONSULTAS
- Definição - “é um conjunto de consultas projetadas especialmente para recuperar dados da camada de gerenciamento de banco de dados de forma correta e consistente.” (VASKEVITCH, 1995).
CONSULTAS
- Principais funções - simplificar uniões complexas - uma consulta feita pelo usuário pode, muitas vezes, exigir a reunião de diversas tabelas físicas do banco de dados para construir a informação solicitada. A complexidade do banco de dados deve ser transparente ao usuário, de forma que ele possa fazer consultas simples e obter respostas satisfatórias;- - assegurar consistência - os dados consultados devem refletir a integridade da informação, onde as características do evento que a gerou devem ser explicitadas quando a consulta for feita;- - garantir segurança - consultas elaboradas de forma apropriada podem assegurar que informações sensíveis sejam disponíveis apenas aos usuários e aplicativos autorizados.
INDEPENDÊNCIA DAS CAMADAS
- é importante para se alcançar alguns benefícios proporcionados pela arquitetura distribuída, tais como a independência tecnológica, a estabilidade e a reutilização.
- uma camada se torna independente quando os detalhes da sua implementação são encapsulados, escondendo a sua forma de operação, de maneira que a funcionalidade desta camada dependa apenas do estímulo feito através de mensagens, que trafegam sobre uma interface padronizada.
INDEPENDÊNCIA DO GERENCIAMENTO DE DADOS
- se torna independente das regras de negócio quando o SGBD trabalha, sem importar quais são essas regras.
- As transações na interface do SGBD não devem conter quaisquer regras.
INDEPENDÊNCIA DO GERENCIAMENTO DE DADOS
- Regras- protejer cuidadosamente o banco de dados usando um modelo de dados bem planejado - não há substituto para um bom projeto de banco de dados; - desenvolver consultas e transações que ofereçam um bom acesso ao banco de dados - nas atualizações, as transações devem impor regras básicas de consistência, e, nas consultas, elas deverão oferecer uma visão lógica mais simples das complexas estruturas de dados do SGBD; - permitir apenas que transações bem elaboradas atualizem o banco de dados - as transações deverão se tornar verdadeiros guardiões do banco de dados; - isolar o usuário dos detalhes e locais dos bancos de dados fundamentais - a interface de banco de dados deverá se comunicar com uma série de bancos de dados diferentes em diferentes computadores, sem que o usuário ou a aplicação se preocupe com isto.
INDEPENDÊNCIA DAS REGRAS DE NEGÓCIO
- se torna independente da apresentação quando evitamos que estas regras falem com o usuário.
- a interface gráfica de usuário deve ser a única forma do usuário se comunicar com o sistema;
- a independência das regras de negócio objetiva alcançar a interoperabilidade e a reutilização do código da aplicação.
- interoperabilidade - é a capacidade de um módulo da aplicação (trecho do código) interoperar com uma variedade de outros módulos da organização (VASKEVITCH, 1995).
- alcançada a interoperabilidade, teremos viabilizada a reutilização, onde um módulo da aplicação, que realiza uma determinada tarefa, poderá ser utilizado por diversos outros módulos da organização.
INDEPENDÊNCIA D APRESENTAÇÃO
- tem como objetivo aumentar a liberdade e a flexibilidade dos usuários e da organização.
- nesta camada, os usuários poderão moldar a aplicação de acordo com suas necessidades, ao seu jeito, sem que isto afete as regras, as políticas e os procedimentos da organização.
- a organização poderá providenciar mudanças ou mesmo substituição desta camada, sem que as demais sejam afetadas.
- A apresentação envia pedidos formais à camada de regras de negócio, podendo fazer qualquer coisa antes de enviar o pedido ou depois de receber a resposta.
PARTICIONAMENTO DA APLICAÇÃO
- Particionar a aplicação é a forma de dividirmos o código da mesma entre o processo cliente e o processo servidor.
- Essa importância decorre do fato de que a possibilidade de distribuição dos componentes do processamento da aplicação entre cliente e servidor é um dos motivos pelos quais a arquitetura cliente/servidor utiliza o processamento cooperativo, sendo que este representa o fundamento e a força motriz daquela (BERSON, 1992).
APRESENTAÇÃO DISTRIBUÍDA
função lógicade apresentação
Figura 06.4.1.1 - Apresentação distribuída
função lógicade apresentação
função lógica de gerenciamento de dados
função lógicade regras de negócio
dados
cliente servidor
APRESENTAÇÃO DISTRIBUÍDA
- Principal benefício- quando se deseja controlar o acesso e o processamento da aplicação no módulo principal (módulo servidor), deixando apenas a apresentação gráfica para o
processo cliente.
APRESENTAÇÃO REMOTA
função lógica de gerenciamento de dados
função lógicade regras de negóciofunção lógica
de apresentação
dados
cliente servidor
Figura 06.4.2.1 - Apresentação remota
APRESENTAÇÃO REMOTA
- Principal benefício- adequada para as aplicações não-conversacionais onde o processo cliente recebe os dados de entrada e os envia através de uma única mensagem ao processo servidor, recebendo também de volta somente uma mensagem;
- tende a reduzir o tráfego na rede.
- Principal conseqüência- tende a sobrecarregar o servidor, uma vez que
nele centraliza o processamento.
FUNÇÃO DISTRIBUÍDA
função lógicade regras de negócio função lógica de
gerenciamento de dados
função lógicade regras de negócio
função lógicade apresentação
cliente
Figura 06.4.3.1 - Função distribuída
servidor
dados
FUNÇÃO DISTRIBUÍDA
- Principais benefícios- é uma topologia adequada para aplicações altamente interativas e com intensivo I/O de banco de dados;- possibilita melhor aproveitamento do potencial do cliente; - alivia a carga de processamento do servidor;- permite a redução do número de mensagens entre a camada de apresentação e a camada de gerenciamento de dados, o que irá reduzir o tráfego na rede.
- Principal conseqüência- a aplicação implementada nesta topologia tem a desvantagem de se caracterizar como uma implementação
complexa.
GERENCIAMENTO REMOTO DE DADOS
função lógicade apresentação
função lógica de gerenciamento de dados
função lógicade regras de negócio
cliente
dados
Figura 06.4.4.1 - Gerenciamento remoto de dados
servidor
GERENCIAMENTO REMOTO DE DADOS- Principal benefício
- esta topologia pode ser conveniente para aplicações de execução não freqüentes, que se caracterizam por baixo volume de dados nas solicitações e nos resultados.
- Principais conseqüências- sobrecarga na rede - na medida em que todos os dados pesquisados sejam enviados ao cliente, o aumento no tráfego da rede poderá comprometer a performance da aplicação; - um local único de dados, bem como do banco de dados, cria um ponto “único” de falha, gerando desconfiança quanto à segurança;
- os dados, bem como o banco de dados, localizados num único sistema (servidor de dados) podem comprometer o
processamento devido a sua capacidade.
GERENCIAMENTO DE DADOS DISTRIBUÍDO
função lógicade apresentação
função lógicade regras de negócio
cliente
dados
Figura 06.4.5.1 - Gerenciamento de dados distribuídos
função lógica degerenciamento de dados
função lógica de gerenciamento de dados dados
servidores
GERENCIAMENTO DE DADOS DISTRIBUÍDO
- Principal benefício- esta topologia proporciona maior segurança ao sistema, pois os dados críticos podem possuir múltiplas cópias localizadas em servidores diferentes;
- o tráfego na rede pode ser sensivelmente reduzido, já que as solicitações dos dados passam por uma consistência no módulo cliente (entre as camadas de regras de negócio e dados) e, se a solicitação for satisfeita, a mensagem é enviada ao banco de dados remoto; caso contrário, é rejeitada antes de ser enviada
pela rede.
- Principal conseqüência- alta complexidade no gerenciamento de dados.
REFERÊNCIAS BIBLIOGRÁFICAS
BERSON, A. Client/server architecture. 1ª ed. Singapore, McGrow-Hill Book, 1996.
LOOSLEY, C. Client/Server applications development and performance - 6º Congresso Nacional de Novas Tecnologias e Aplicações em Banco de Dados. São Paulo, 1995.
LOOSLEY, CHRIS; High Performance Client/Server, 1ª ed. John Wiley Consumer, 1997.
VASKEVITCH, D. Estratégias Cliente/Servidor. 1ª ed. São Paulo, Berkeley, 1995.
VAUGHN, L. Client/Server System Design & Implementation. 1a. ed. New York, McGrow-Hill, 1994.
F I M