Sistemas Operacionais Aplicados




        Servidor de Aplicações
Entendendo

• O que é um Servidor?
• O que é uma aplicação?
Entendendo

• O que é um Servidor?
  – Um computador que responde a solicitações de
    serviços;
  – Redundante, robusto, etc..
• O que é uma aplicação?
  – Um programa em execução (processo).
Conceitos

• Programa (como é feito, para que serve);
• Serviço (como disponibilizar);
• Rede (como transferir mensagens);
• Modelos de comuncação (como montar a
  arquitetura das aplicações);
• Protocolos (como entender as mensagens);
• Sistemas Distribuídos (como se comporta).
Aplicações Centralizadas

• São aplicações que executam em sua
  totalidade ou quase totalidade em uma única
  máquina.
• Um programa é executado tornando-se um
  processo autonomo
Problemas de Aplicações
            Centralizadas
• Descentralização dos dados (quando mais de uma
  estação deve executar o programa);
• Ambiente não uniforme (diferentes máquinas
  fazendo o mesmo trabalho);
• Alto investimento em estações de trabalho
 (utilizam poucos recursos, principalmente
 processamento);
Sistemas Distribuídos

• Descentralização do processamento (mantendo
  sincronismo dos dados);
• Sistema mais robusto (poucas máquinas processam
  em ambiente controlado);
• Sistema Eficiente (um grupo de máquinas podem
  responder a uma solicitação);
• Redução de custo (estações de trabalho podem
 operar com recurso limitado).
Problemas de Sistemas
             Distribuídos
• Necessidade de infra-estrutura;
• Interconeção de redes;
• Investimento em departamento de tecnologia
  (manter servidores);
• Reestruturação de empresas (que já trabalham
  centralizadas).
Oportunidades

• Prover novos serviços;
• Portabilidade (caso de serviços web);
• Expandir as fronteiras da empresa.
O papel da Rede

• Prove ao sistema um canal de comunicação
  entre as máquinas;
• Fundamental em sistemas distribuídos.
Modelos Rede
Cadmada de Aplicação

• Localizada na fronteira usuário-rede é o local
  em que as aplicações do usuário (ou sistema)
  são executados;
• Tanto cliente quanto servidores utilizam esta
  camada para manter aplicações.
Protocolos

• http, https: Servidor Apache, IIS, etc..
• ftp: Filezilla Server, IIS, etc..
• smtp, pop: Exchange Server, Postfix
• ldap: OpenLDAP e Active Directory
Camada de Transporte

• Centro dos modelos;
• Disponibiliza o acesso a rede para os
  aplicativos na camada superior.
Protocolos

• TCP
• UDP
Comunicação
Chamada Procedimento Local
      (aplicação centralizada)
Chamada Procedimento Remoto
            RPC
• Permite que aplicações invoquem métodos em
  outras aplicações;
• Isola a lógica nos métodos remotos;
• Permite execução de aplicações complexas em
  clientes burros.
Mensagem

• Sempre que uma comunicação é feita em RPC
  uma mensagem é enviada para o servidor.
• Nesta mensagem é passado como parametros
  dados de métodos, parametros de métodos,
  valores, tipos, endereço de retorno, etc..
Formato da Mensagem
Transferência da Mensagem
Troca de Mensagem Sincrona e
         Assíncrona
Retorno de Comunicação
      Assíncrona
Resiliência de Processos

Idéia Básica: Replicar processos em grupos
para proteção contra falhas de processos.


Objetivo: Manter qualidade de serviço.
Resiliência de Processos

Processos idênticos são organizados em grupos
– Quando uma mensagem é enviada a um
grupo, TODOS os membros a recebem
– Se um processo do grupo falhar, espera-se
que um outro se encarregue do tratamento da
mensagem.
Resiliência de Processos

Grupos de processos são dinâmicos
– Grupos podem ser criados, processos podem
se mover entre os grupos.


OBS.: Uma mensagem pode ser enviada a um
grupo de processos e não a um processo
específico.
Estrutura dos Grupos
Processamento
Multiprocessador
Memória em Multiprocessador
Multicomputador
Escalonamento
Escalonamento
Interconexão
Placa de Rede
Placa de Rede
Referência

• Sistemas Operacionais Modernos,
  Tanenbaum;
• Sistemas Distribuídos : Tanenbaum;
• Redes de Computadores : Tanenbaum.

Servidores de Aplicações