O documento discute computação distribuída e como o termo front-end/back-end pode ser aplicado nesse contexto. A computação distribuída envolve o uso de vários computadores para processar tarefas. Exemplos incluem projetos como SETI@home e Folding@home. Na computação em nuvem e clusters, front-end refere-se aos clientes e back-end aos servidores e armazenamento na nuvem. O documento também explica como esses termos são usados no Exchange Server.
1. Colégio São Luis
Tecnologia
Front-End/ Back-End
Andressa J. Silveira
Filipe dos Santos
Hélio Metz
São Leopoldo, 2013
2. ÍNDICE
1. Introdução......................................................................................................... 02
2.1. Computação Distribuída................................................................................ 03
2.2. Exemplos de Computação Distribuída......................................................... 03
3.1. Computação em Nuvem (Cloud Computing)............................................... 05
3.1.1. Front-End/ Back-End na Computação em Nuvem................................ 05
3.2. Computação em Cluster................................................................................. 06
3.2.1. Front-End/ Back-End no Cluster Beowulf............................................ 06
4. Front-End/ Back-End no Exchange Server.................................................... 07
2. Bibliografia........................................................................................................ 10
1|Página
3. 1. INTRODUÇÃO
O termo front-end/ back-end é um termo bem amplo quanto ao mundo
computacional, e portanto, podemos encontrar mais de uma função ligada a ele.
Podemos encontrar o termo front-end/ back-end ligado, por exemplo, aos
profissionais programadores. Há alguns poucos anos passados, existiam
fundamentalmente dois tipos de profissionais que trabalhavam com
desenvolvimento de sites: o Webmaster e o Webdesigner. Porém, com o passar
do tempo, muita coisa mudou. Novos tipos de profissionais ganharam espaço e
passaram a fazer parte do processo de desenvolvimento web: o
desenvolvedor Front-end e o desenvolvedor Back-end.
No entanto, falaremos a respeito do front-end/ back-end ligado ao
modelo computacional de computação distribuída, onde o termo se refere em
uma classificação dentro dessa modalidade computacional, a qual é utilizada de
forma mais eficiente, já que pode ser usada em computadores, celulares,, tablets
entre outros.
Fig.1: A computação distribuída pode ser utilizada em diversos dispositivos.
2|Página
4. 2.1. COMPUTAÇÃO DISTRIBUÍDA
A computação distribuída é um modelo de computação, que funciona a
partir não de um, mas sim, a partir de vários computadores. Então, ao invés de
um único processador para executar todas as tarefas, são utilizados de centenas,
e em algumas situações milhares, de processadores. A jogada está em dividir os
dados (ou até mesmo os problemas) em porções menores que podem ser
então tratadas por máquinas diversas.
Fig.2: A Computação Distribuída pode ser organizada em nuvem (imagem da direita),
em grade(imagem da esquerda) ou em cluster.
Um uso bastante interessante da computação distribuída está em utilizar
da capacidade de processamento da mesma enquanto essa não está sendo
utilizada. Imagine por exemplo, em uma grande empresa ou cidade, a quantidade
de computadores existentes, mas que em algum momento do dia estes estão
ligados mas sem executar nenhuma atividade produtiva, como quando se está
exibindo um protetor de tela. Aqui ideia é utilizareste tempo de processamento
desperdiçado para fins mais uteis.
2.2. EXEMPLOS DE COMPUTAÇÃO DISTRIBUÍDA
Dois exemplos práticos de computação distribuída, é do programa
SETI@Home da Universidade de Berkley, e do programa Folding@home da
Universidade de Stanford. No caso do SETI@Home
(http://setiathome.ssl.berkeley.edu/), o objetivo é de processar a enorme
quantidade de dados recebidos de radiotelescópios pelo
mundo em busca de sinais indicadores vida inteligente fora da Terra, ou seja, o
programa é uma espécie de “caça-ETs” de verdade. No site, as pessoas possuem
a possibilidade fazer o download da aplicação que será instalada como um
3|Página
5. protetor de tela do computador. O programa recebe os dados pela Internet, e faz
o processamento enquanto seu computador está ligado mas não está em uso,
devolvendo assim, as informações coletadas para análise.
Fig.3:O programa SETI utiliza da Computação Distribuida na busca de vida inteligente
fora da Terra.
Já o programa Folding@home (http://folding.stanford.edu/), tem o
objetivo de estudar a estrutura das proteínas relacionadas com a cura de doenças
como Alzheimer, Cancer, Parkinson entre outras. Seu funcionamento é bastante
similar ao SETI. uma informação importante é a de que o grupo do
Folding@home se comprometeu a divulgar todas as descobertas do projeto de
forma livre na Internet, fazendo assim com que outros pesquisadores do mundo
todo possam utilizar dos mesmos dados em suas próprias pesquisas.
Fig.4: Já o Folding, da Stanford, utiliza desta tecnologia na pesquisa de proteínas
ligadas a cura de doenças como Alzheimer e Parkinson.
4|Página
6. 3.1. COMPUTAÇÃO EM NUVEM (CLOUD COMPUTING)
A Computação em Nuvem é um dos modos de execução da computação
distribuída. Computadores na nuvem são configurados para trabalhar juntos, e os
diversos aplicativos usam o poder da computação coletiva como se estivessem
sendo executados em um único sistema. Antes da computação em nuvem, Web
sites e aplicativos baseados em servidor eram executados em um sistema
específico. Já com o advento da computação em nuvem, recursos são usados
como um computador virtual anexado.
Fig.5 :Com a Computação em Nuvem é possível interligar diferentes dispositivos.
3.1.1. FRONT-END/ BACK-END NA COMPUTAÇÃO EM NUVEM
O Front-End/Back-End pode ter seu uso encontrado na computação em
nuvem. Esses dois elementos são conectados por meio de uma rede, geralmente
a Internet.
O front-end é o meio por onde o usuário interage com o sistema. O
mesmo é composto de um cliente de computador, ou a rede de computadores de
um empreendimento, e os aplicativos usados para acessar a nuvem. Já o back-
end é a própria nuvem. Ele fornece os aplicativos, computadores, servidores e
armazenamento de dados que criam a nuvem de serviços.
5|Página
7. 3.2. COMPUTAÇÃO EM CLUSTER
Cluster é denominado um sistema que relaciona dois ou mais
computadores para que estes trabalhem de maneira conjunta no intuito de
processar uma tarefa. Estas máquinas dividem entre si as atividades de
processamento e executam este trabalho de maneira simultânea. A computação
em cluster muitas vezes acaba se tornando como uma solução viável porque os
nós podem até mesmo ser compostos por computadores simples, como PCs de
desempenho mediano. Juntos, eles formam um sistema de processamento com
capacidade suficiente para dar conta de determinadas aplicações que, se
atendidas por supercomputadores ou servidores sofisticados, exigiriam
investimentos muito maiores.
Fig.6: Cluster antigo formado por vários desktops.
3.2.1. BACK-END/FRONT-END NO CLUSTER BEOWULF
O Beowulf faz referência a um padrão de clustering disponibilizado pela NASA
em 1994 e amplamente adotado desde então.
Clusters Beowulf tem como uma de suas características de que entre os nós,
necessita haja pelo menos um que atue como mestre para exercer o controle dos
6|Página
8. demais. Essas máquinas mestres são as chamadas front-end. As demais, são as
denominadas back-end. Há a possibilidade de existir mais de um nó no front-end
para que cada um realize tarefas específicas, como monitoramento, por exemplo.
Fig.7:Exemplo básico de um cluster Beowulf.
7|Página
9. 4. EXEMPLO DE FRONT-END/BACK-END NO EXCHANGE SERVER
Muitos profissionais têm dúvida sobre design de soluções Exchange
Server quando o assunto é utilização de servidores front-end e/ou back-end, a
pergunta mais freqüente é: onde utilizar da melhor forma estes recursos? O
primeiro passo é definirmos as funções do Exchange que podem ser dois tipos
Back-end e Front-end
Back-End
É a função default de qualquer Exchange Server, é onde ficam as
mailboxes dos usuários, pode desempenhar também as funções de OWA, OMA,
POP, SMTP, RPC over HTTP/HTTPS e IMAP. Todo servidor Exchange não
configurado para ser um front-end é automaticamente um back-end server.
Front-End
O servidor front-end é configurado especificamente para esta função, ele
não hospeda nenhuma mailbox de usuário. Ele recebe as solicitações de acesso
dos clientes e funciona como um proxy para estes clientes. Para o usuário que
está externo ele "acredita" que o seu servidor de mensagens é front-end. É
importante ressaltar que o Front-End não possui nenhuma informação
(mensagens) dos usuários.
Fig. 8: Cenário onde uma empresa com dois servidores back-end (Servidor_A e
Servidor_B) com 5 usuários distribuídos da seguinte forma: Servidor_A possui os
usuários Usuario1 e Usuario2; Servidor_B possui os usuários Usuario3, Usuario4 e
Usuario5. Na empresa possui um firewall que protege a rede Interna da internet. Todos
os usuários acessam externamente o Exchange Server.
8|Página
10. Fig. 9: No mesmo cenário, utilizando o recurso do fron-end, a administração fica muito
mais simpes e segura, os servidores da rede interna não estarão publicados na internet,
haverá somente uma publicação de cada protocolo para o servidor Front-End.
Podemos observar que sem duvida a alta disponibilidade é uma das
vantagens do Exchange Server, e a mesma é implementanda de acordo com a
função que ele (o Exchange Server) desempenha. O Back-End usa Cluster
devido a sua natureza que são os dados propriamento ditos (mailboxes de
usuários), enquanto que o Front-End pode utilizar Load Balancing porque não
há nenhuma informação única nestes servidores (os dados: mailboxes estão no
back-end), simplesmente desempenham a função de proxy para usuários
externos.
9|Página