Agenda
●Modelo Cliente - Servidor
○Contextualização
○Solução
○Vantagens
○Desvantagens
●Quando Utilizar (Exemplo)
○LoLNews
●Quando Não Utilizar (Exemplo)
○Notificações
●Caso de Sucesso
○Internet
○SGBDs
○Servidor de Arquivos Samba
Contextualização do Modelo Cliente - Servidor
Contexto : Existem recursos e serviços compartilhados que um
grande número de clientes distribuídos desejam acessar.
Deseja-se controlar esse acesso e a qualidade do serviço.
Problema : Ao gerir um conjunto de recursos e serviços
compartilhados, podemos promover manutenibilidade e reuso a
partir da fatoração de serviços. Sendo assim, queremos
melhorar a disponibilidade e escalabilidade, centralizando o
controle, enquanto os recursos e serviços são distribuídos
em um ou vários servidores.
Solução do Modelo Cliente - Servidor
Os clientes interagem solicitando recursos e/ou serviços de
servidores, que fornecem esse conjunto de recursos e
serviços.
Os componentes podem agir como clientes ou servidores.
Pode haver um servidor central ou múltiplos servidores
distribuídos.
Solução do Modelo Cliente - Servidor
Resumo ●Clientes iniciam interações com Servidores, por
meio da requisição de serviços quando
necessitarem e esperando a resposta dessas
requisições
Elementos ●Cliente, Servidor e Conector Requisição/Resposta
Relações ●Attachment Relation (Relação de Ligação)
Restrições ●Clientes são conectados a Servidores apenas por
regras de Requisição/Resposta
●Servidores podem ser clientes apenas de outros
Servidores
●Restrições de números de clientes por servidores
e de quantidade de serviço provido pelo servidor
●É possível substituir, reparar, atualizar ou
mesmo realocar um servidor sem que os
clientes sejam afetados
●Os dados são armazenados no servidor, o que
facilita a centralização da segurança
●Atualizações nos dados são mais fáceis de
administrar
●Funciona com vários clientes de capacidades
diferentes
●Gerenciamento de Performance e Taxa de
Transferência
●Servidor pode ser um gargalo
●O Servidor pode representar um ponto
de falha único
●Decisões de onde colocar
funcionalidades (lado cliente ou
servidor) são geralmente complexas de
mudar depois do sistema pronto
●Clientes podem solicitar serviços, mas
não podem oferecê-los para outros
clientes, sobrecarregando o servidor,
pois quanto mais clientes, mais
informações que irão demandar mais
banda
Quando Utilizar (Exemplo) : LoLNews
Exemplo de um sistema em Java EE, utilizando o tomcat como
servidor.
Quando Não Utilizar (Exemplo) : App com Notificação
Exemplo de um sistema em Android, utilizando o apache2 como
servidor.
Quando Não Utilizar (Exemplo) : App com Notificação
Quando Não Utilizar (Exemplo) : App com Notificação
Repositórios do GitHub
LOLNews : https://bitbucket.org/luanchaoskk/trabalhoweb.git
Notificação : https://bitbucket.org/luanchaoskk/app-
notifica-o-arquitetura.git
Caso de Sucesso : Internet
Caso de Sucesso : SGBDs
Caso de Sucesso : Servidor de Arquivos Samba
Referências
ArchLinux, Samba. Disponível em < https://wiki.archlinux.
org/index.php/Samba>. Acesso em 5 de novembro.
DevMedia, Google Clouding Messaging : Introdução. Disponível
em <http://www.devmedia.com.br/google-cloud-messaging-
introducao/29776>. Acesso em 4 de Novembro.
SEI, Reasoning About Software Quality Attributes. Disponível
em <http://www.sei.cmu.edu/architecture/start/reasoning.
cfm>. Acesso em 5 de Novembro.
Reviewer-Herzog, J. (2015). Software Architecture in
Practice Third Edition Written by Len Bass, Paul Clements,
Rick Kazman. ACM SIGSOFT Software Engineering Notes, 40(1),
51-52.