Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1. Explique os tipos de transparência: 
(a) Transparência de acesso 
Oculta diferenças na representação de dados e no modo de acesso 
(b) Transparência de localização 
O local do recurso é desconhecido. 
(c) Transparência de migração 
O recurso pode ser movido, inclusive enquanto está em uso. 
(d) Transparência de relocação 
O recurso pode ser movido, inclusive enquanto está em uso. 
(f) Transparência de replicação 
Múltiplas instâncias de um recurso podem ser utilizadas para aumentar a 
confiabilidade e desempenho. 
(g) Transparência de concorrência 
Vários usuários podem compartilhar o mesmo recurso. 
(h) Transparência à falha 
A falha e a recuperação de um recurso não afetam o sistema. 
 
2. Quanto mais transparente melhor o sistema? Justifique. 
Sim, Transparência refere-se, novamente, do ponto de vista do usuário, a quão 
transparente o sistema é, ou seja, quanto o cliente “desconhece” do 
funcionamento interno do sistema, e isso é uma característica positiva: quanto 
menos o usuário necessitar saber da implementação e funcionamento do 
sistema, ou seja, quanto mais transparente o sistema for, melhor para o usuário. 
 
3.Um sistema aberto é desejável, mas, para que isso aconteça precisamos 
garantir Interoperabilidade e Portabilidade. Redefina um sistema 
distribuído. 
 
Aberto usando o que vem a ser interoperabilidade e portabilidade. 
Interoperabilidade: Caracteriza até que ponto duas implementações de sistemas 
ou componentes de fornecedores diferentes devem coexistir e trabalhar em 
conjunto 
Portabilidade: Caracteriza até que ponto uma aplicação desenvolvida para um 
sistema distribuído A pode ser executada, sem modificação, em um sistema 
distribuído diferente B que implementa as mesmas interfaces 
 
4. O que significa ser um sistema escalável, em relação ao tamanho? 
Um sistema que tem a Facilidade em adicionar mais usuários e recursos ao 
sistema. 
um sistema cujo desempenho aumenta com o acréscimo de hardware e 
software, proporcionalmente à capacidade acrescida, é chamado escalável. É 
importante notar, entretanto, que um sistema dito escalável permite que se 
aumente ou diminua a quantidade de recursos. 
5. Explique e exemplifique três técnicas que auxiliam na melhora da 
escalabilidade. 
 
 • Não aguardar por resposta: comunicação assíncrona. 
 • Útil em processamento em lotes e aplicações paralelas nas quais tarefas mais 
ou menos independentes podem ser escalonadas para execução enquanto outra 
espera comunicação. 
• Há aplicações onde não é possível fazer comunicação assíncrona 
• ex: aplicações interativas: nada melhor a fazer que esperar a resposta. 
• Solução melhor: reduzir comunicação global. 
• Ex.: verificação de erros de sintaxe em validação de formulário: código no 
servidor vs. código no cliente. 
•dividir componente e espalhar pelo sistema. 
• Ex.: DNS. 
• aumenta disponibilidade. 
• diminui latência. 
• equilibra carga. 
• Ex.: Cache (forma “especial” de replicação); 
• cache: decisão tomada pelo cliente; replicação pelo proprietário. 
 • cache: sob demanda; replicação: planejada. • Problema: consistência. 
 
6. Sistemas pervasivos estão em foco na atualidade e geralmente são 
distribuídos. Defina o que são sistemas pervasivos. 
Esses sistemas denominados sistemas distribuídos pervasivos, os 
equipamentos costumam ser caracterizados por seu pequeno tamanho, pela 
alimentação por bateria, por sua mobilidade e por terem somente uma conexão 
sem fio; – Um aspecto importante é a ausência geral de controle administrativo 
humano. O poder computacional está sempre disponível, se encontra em 
qualquer lugar, a todo momento e é acessível com qualquer dispositivo. A 
computação pervasiva propõe o deslocamento da para a centralização no 
usuário e suas atividades. Nesta visão, quem deve ser reconhecido pelo sistema 
é o usuário e não os equipamentos que ele porta ou usa (como estão definidos 
os sistemas computacionais atuais. A comunicação no ambiente pervasivo, por 
causa dos seus requisitos, envolve várias questões e desafios de pesquisa. 
Neste cenário, onde desconexões são frequentes, faz-se necessário um serviço 
de comunicação que leve em consideração o estado da rede e o tipo de conexão. 
. 
 
 
7. Arquiteturas de sistemas mostram, como componentes de software 
podem ser organizados e como se comunicam. Defina o que são 
componentes de software. Diferencie-os dos conectores. 
 
 
um componente é uma unidade modular com interfaces requeridas e fornecidas 
bem definidas que é substituível dentro de seu ambiente. 
- é passível de substituição; 
 
- Necessário respeitar as interfaces; 
 
Conector é descrito como um mecanismo que serve de mediador da 
comunicação ou da cooperação entre componentes. 
 
8. Autores sugerem que trabalhar com os conceitos cliente e servidor é 
uma boa. De forma análoga, dividir um sistema em camadas também é 
recomendado. Quais as camadas mínimas? Descreva cada uma delas. 
 
 3 camadas: 
 
1 nível de interface de usuário: conteúdo que é necessário para fazer interface 
diretamente com o usuário como gerenciamento de exibição (manipula a 
interação com o usuário) 
 
2 nível de processamento: normalmente contém as aplicações (intermediária – 
mantém a funcionalidade central da aplicação) 
 
3: nível de dados: gerencia os dados propriamente ditos sobre os quais está 
sendo executada alguma ação (age sobre o banco de dados ou sistema de 
arquivos;) 
 
 
 
9. Clientes podem ser magros ou gordos. Explique está afirmação usando 
modelo de camadas da arquitetura cliente servidor. 
 
A arquitetura cliente-servidor mais simples é chamada de arquitetura de duas 
camadas em que uma aplicação é organizada como um servidor e um conjunto de 
clientes. Podem utilizar um modelo cliente-magro onde o cliente só responde pela 
camada de apresentação (pode apresentar problemas de escalabilidade e 
desempenho) ou um modelo cliente-gordo (pode apresentar problemas de 
gerenciamento) onde o cliente implementa a lógica de aplicação e as interações 
com os usuários do sistema. 
Na solução de duas camadas, três camadas lógicas devem ser mapeadas em dois 
sistemas de computadores. A linguagem java e a possibilidade de recorrer a applets 
por download permite desenvolver um modelo cliente-servidor intermediário entre 
os modelos magro e gordo. 
 
 
10. Explique a distribuição vertical e horizontal. 
 
vertical - “[...] da perspectiva e gerenciamento de sistema, ter uma distribuição 
vertical pode ajudar: funções são subdivididas lógica e fisicamente por várias 
máquinas, e cada máquina é projetada para um grupo específico de funções.” 
horizontal – “ em arquiteturas modernas, muitas vezes é a distribuição dos 
clientes dos servidores que conta à qual nos referimos como distribuição 
horizontal” 
- o cliente ou o servidor podem ser subdivididos fisicamente em partes 
logicamente equivalentes; 
- Cada parte opera em sua própria porção do conjunto; 
-Busca-se o equilíbrio da carga. 
Ex: peer-to-peer 
 
 
 
11. Como um sistema em camadas funciona? 
Componentes são organizados em camadas; 
O componente da camada L, pode chamar um componente subjacente Li-1; 
Modelo amplamente adotado pela comunidade de redes; 
Requisições descem pela hierarquia; 
Resultados (respostas0 fluem para cima. 
 
12. O que é um processo? Diferencie processo de código. 
 
Um processo costuma ser definido como um programa em execução, isto é, um 
programa que está sendo executado em um dos processadores virtuais dos 
sistemas operacionais no momento em questão 
- o código é a parte que contém as instruções que compõem o programa em 
execução. 
 
13. O que são threads? Quais as diferenças entre um processo e uma 
thread, também chamada de light process? 
 
Thread é uma forma de um processo dividir a si mesmo em duas ou mais tarefas 
que podem ser executadas concorrencialmente. A thread tem vantagens no 
desempenho na execução de processos 
 
Os processos são criados a partir de uma ação qualquer, 
É reservado um espaço na memória para o determinadoprocesso 
 
14. Porque é interessante criar múltiplos processos, mesmo com um único 
processador? 
 
Porque ele vira uma thread e obtém vantagens na execução 
 
15. Explique o que entende por virtualização, em seguida, descreva as 
formas de se fazer isso e suas vantagens. 
 
A virtualização trata de estender ou substituir uma interface existente de modo a 
imitar o comportamento de um outro sistema. É uma solução para auxiliar a 
manutenção de middelwares. 
 
Primeira forma relacionada com a interpretação ou emulação de um conjunto de 
instruções. Ex: jvm, dalvik, wine. 
Segunda abordagem fornece um sistema que é implementado sobre uma 
camada que protege o hardware original, mas oferece interface para o usuário. 
 
16. Explique as camadas e os protocolos da figura abaixo: 
 
 
 
“physical layer” - contém a especificação e implementação dos 
Bits e da transmissão entre transmissor e receptor; 
● “data link layer” - prescreve a transmissão Como uma série de 
Bits no frame para permitir o controle de fluxo e de erros; 
● “network layer” - descreve Como pacotes em uma rede de 
Computadores serão roteados e/ou encaminhados. 
● Obs.: ... para muitos sistemas distribuídos, a interface da camada 
Mais baixa é aquele da camada de rede - “network layer”. 
Protocolos de Transporte 
● “transport layer” - provê as facilidades de comunicação que 
Possibilitam a troca de mensagens entre os processos – base 
Para a maioria dos sistemas distribuídos; 
● ... último elemento do que podemos chamar “basic network protocol 
stack” no sentido que contempla todos os serviços que não são 
Contemplados na camada de rede mas que são necessários para a 
Concepção das aplicações de rede. 
● Protocolos da Internet (Padrões “de facto”): 
● Transmission Control Protocol (TCP) – orientado a conexão, confiável e 
Comunicação orientada por “stream” (fluxo de bytes); 
● User Datagram Protocol (UDP) – comunicação de não confiável; 
● Real-time Transport Protocol (RTP) – especifica formato de pacotes para 
tempo real sem prover mecanismo que garanta a entrega do dado 
Solução – manter os protocolos de middleware nas camadas 
Superiores de modo que possam oferecer diferentes protocolos 
(Sintonizáveis) através de uma interface única. 
● ... esta abordagem pressupõe uma pequena adaptação do 
modelo de referência para comunicação 
“Middleware protocols” - devem suportar serviços de 
Comunicação de alto nível de forma transparente; 
“Middleware protocols” - suporte para serviços de comunicação 
De alto nível de forma transparente: 
● “data (un)marshaling” - necessário para sistemas integrados; 
● “naming protocols” - facilitar o compartilhamento de recursos; 
● “security protocols” - para segurança de comunicação; 
● “scaling mechanisms” - para replicação e salvaguarda 
 
 
 
 
 
 
 
 
 
 
17: Quais os quatro tipos de comunicação poderemos oferecer em um 
middleware? Detalhe cada uma delas 
 
“transient communication”( Comunicação transitória) - servidor de 
comunicação descarta mensagens quando não podem ser entregues no próximo 
servidor ou mesmo no solicitante da requisição. 
 “persistent communication” (Comunicação persistente)- mensagem é 
armazenada no servidor de comunicação pelo tempo que for necessário de 
modo que a entrega da mensagem seja garantida. 
“assynchronous communication” (Comunicação assíncrona)- remetente 
continua o seu processamento imediatamente após submeter a mensagem; 
● “synchronous communication” (comunicação síncrona)- remetente é 
bloqueado até que sua requisição seja enviada ou processada pelo receptor. 
 
 
 
 
18. Diferencie e explique os dois tipos de comunicação ilustrados abaixo: 
 
A – Interação entre cliente e servidor em uma RCP tradicional 
B- Interação que usa RCP ( chamada de procedimento remoto) assíncrona ( 
fornecem de modo a não bloquear o cliente quando não há nenhum resultado a 
esperar 
 
19/20/21 
 
 
22. Diferencie arquitetura de software de arquitetura de sistema. 
 
Arquitetura de software: Preocupa-se com a organização lógica. Como é 
realizada a interação e como são estruturados dos componentes. 
 
Arquitetura de sistemas: os componentes que compõem os sistemas distribuídos 
estão colocados nas várias máquinas. 
 
 
23. O que é o SOA? Descreva está arquitetura. 
 
Service Oriented Architectures (SOA) é, em tradução livre, Arquitetura Orientada 
a Serviços. Esse conceito de arquitetura busca disponibilizar as funcionalidades 
de um sistema como um serviço. 
Desta forma, essas funcionalidades podem ser compartilhadas e reutilizadas 
entre aplicações. Seu principal objetivo é ser mais flexível em atender às 
necessidades do mercado. 
Um dos componentes mais importantes do SOA é o Enterprise Service Bus 
(ESB), um barramento de serviços corporativos. 
Esse barramento disponibiliza com maior facilidade os serviços do sistema para 
os usuários e outras aplicações, acelerando processos de integração. 
O alinhamento com as regras de negócio é um dos maiores benefícios desse 
tipo de arquitetura. Podemos elencar outras vantagens como: 
• A diminuição do tempo de desenvolvimento; 
• O baixo acoplamento entre as partes do sistema facilita a manutenção; 
• O isolamento da estrutura de um serviço traz flexibilidade durante 
mudanças; 
• Facilidade de agregar novas tecnologias a plataformas; 
• E a possibilidade de reutilização de componentes. 
 
24. O que é uma arquitetura RESTful? Onde é utilizada? Descreva-a 
brevemente. 
 
 um estilo de arquitetura de software que define um conjunto de restrições a 
serem usados para a criação de web services (serviços Web). 
 
25. Dois web servers muito utilizados são o Apache e o NGINX. Pesquise a 
respeito e apresente as diferenças entre eles. 
 
Estatísticas de uso 
O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX 
vem a cada ano e de forma consistente ganhando espaço, popularidade e sendo 
a preferência dos novos projetos. Logo, a mudança e, por conseguinte, o 
primeiro lugar em uso será muito em breve. 
Nas análises do site BuiltWith, conseguimos analisar sua participação de 
mercado em diferentes cenários. Em alguns casos, como o Top 10k sites ele fica 
empatado com o Apache. 
.htaccess? 
https://pt.wikipedia.org/wiki/Arquitetura_de_software
https://pt.wikipedia.org/wiki/Restri%C3%A7%C3%B5es_de_integridade
https://pt.wikipedia.org/wiki/Web_service
https://trends.builtwith.com/web-server
Apache tem uma configuração descentralizada, possivelmente espalhada em 
diversos diretórios da aplicação através do arquivo oculto .htaccess. Embora 
seja possível desabilitar essa opção, mas é prática muito comum mantê-la. 
NGINX tem uma configuração centralizada, num único arquivo. Ele não 
reconhece, logo não interpreta, o .htaccess. 
Módulos 
Quase todo o software tem uma arquitetura que permite sua extensibilidade 
através de outros softwares que o complementam. Alguns com o WordPress o 
chamam de plugins, outros de add-ons. No caso dos servidores web o 
chamamos de “módulos”. 
NGINX e Apache tem seu mecanismo de módulos, mas trabalham de forma 
diferenciada um do outro. Através do segundo, os módulos podem ser 
carregados em tempo de execução, enquanto no primeiro os módulos são 
carregados dinamicamente e precisam ser compilados junto ao seu core. 
Através dos módulos ambos conseguem ter as mesmas funcionalidades 
geralmente requisitadas, como: compressão de arquivos, autenticação, 
funcionalidade de e-mail, login, reescrita de URLs, Geolocalização, criptografia, 
Proxing e vários outros. 
Arquivos e interpretação de URLs 
Esse tipo de atividade nos servidores web é muito utilizada para uma infinidade 
de possibilidades, como a implementação de URLs amigáveis, bloqueio de 
determinados arquivos para maior segurança e várias outras regras. 
Ambos permitem a interpretação direta dos arquivos quanto de forma abstrata. 
Expressões regulares são muito utilizadas para o encontro prático de uma 
combinação de possibilidades. 
NGINX foi desenvolvido para ser tanto um servidor web quantoum servidor de 
proxy. Devido sua arquitetura requerida para essas duas atividades, sua 
interpretação primária são com URLs. 
Enquanto isso, o Apache utiliza as diretrizes <Directoy>, <Files> e <Location>, 
o NGINX utiliza os blocos server e locations para interpretar todas as 
requisições. 
Por ser configurado para interpretar diferentes padrões de URLs, o NGINX não 
verifica o sistema de arquivos até que ele esteja preparado para servir a 
requisição, o que explica a não implementação de um mecanismo como 
arquivo .htaccess como o Apache. 
As regras de segurança e performance 
Todo servidor web precisa aplicar regras de segurança para proteção das 
aplicações que estão rodando em seu mecanismo. Todas as dicas que você 
encontrar sobre segurança e que serão aplicadas em servidores web, saiba que 
é possível, em quase 100% dos casos, aplicar em ambos. 
 
Atente-se que no Apache as regras normalmente serão aplicadas no arquivo 
.htaccess ou no httpd.conf. Já no NGINX nos blocos server/locations no arquivo 
de configuração. 
O mesmo se aplica as regras para melhorias de performance, como otimização 
de imagens, aplicação de regras de cachê e compressão de arquivos.

Mais conteúdos dessa disciplina