Sistemas Distribuídos
Artigos Científicos: Sistemas Distribuídos. Pesquise 862.000+ trabalhos acadêmicosPor: scarpeli • 1/6/2014 • 727 Palavras (3 Páginas) • 445 Visualizações
Introdução aos Sistemas Distribuídos
Passo 1 - IPC (Inter-Process Communication)
Com a necessidade dos sistemas terem que seus processos trabalham independentes e não afetem, no entanto, ele tem que se comunicar com os outros processos e para que isso fosse possível a solução é criar um mecanismo que os processos se comuniquem. Ai que entra o IPC.
O IPC é um conjunto de mecanismos de troca de informações entre múltiplos threads de um ou mais processos, que trabalha com a necessidade de coordenar o uso de recursos (ou também sincroniza-los).
O IPC tem que ser rápido, simples de ser implementado, possuir modelo de sincronização bem definido, versátil e funcionar igualmente em sistemas distribuídos.
A sincronização é a parte mais importante e tem que permitir que o responsável pelo envio indique quando um dado foi transmitido e que o processo que receberá as informações saiba quando um dado está disponível. Também deve informar quando podem realizar uma nova IPC.
Passo 2 - RMI (Remote Method Invocation)
O RMI é uma tecnologia que facilita o desenvolvimento de aplicações distribuídas. Ele é suportado pela plataforma JAVA e permite chamar métodos de objetos remotos (que estão de maquinas virtuais diferentes).
Ele separa a interface e a implementação de uma classe. Por permitir acesso a um método remoto ele pode assumir as características de uma classe de uma maquina virtual diferente.
O RMI possui três camadas que são:
1. Camada Stub/skeleton: recebe chamadas da aplicação cliente feitas a interface e reencaminha para o objeto remoto;
2. Camada de Referencias Remota: trabalha com a gestão e a interpretação de referencias remota;
3. Camada de Transporte: faz a ligação entre as maquinas virtuais através do protocolo TCP/IP.
Passo 3 - Comparando as tecnologias IPC e RMI
IPC - ou comunicação inter-processos, como o nome já diz, serve para que processos diferentes comuniquem-se uns com os outros passando dados, mensagens, comunicações de estados entre eles, etc.
Tendo em vista esses base sobre IPC, mostrarei um exemplo de como fazer isso, digamos que, você tenha dois programas, um para extrair faixas de CDs e outro que transforma o resultado do primeiro em ogg.
Você poderia usar essa biblioteca para que eles conversem entre si, o primeiro avisando que terminou de extrair o arquivo 1.wav para o segundo, fazendo com que ele comece a codificação.
Depois você resolve escrever uma interface gráfica para estes programas. Usando o mesmo método, sua interface pode dizer para o ripador "extra as faixas 1,2 e 3 do CD em tal drive" e ficar, por sua vez, recebendo informações dos dois programas sobre o estado deles, se estão rodando certo, quantos % já foi extraído e codificado, etc.
RMI - Consiste basicamente em dois programas, segundo a arquitetura cliente-servidor, onde um seria o cliente e outro o servidor.
O servidor instancia objetos remotos, o referencia com um nome e faz um "BIND" dele numa porta, onde este objeto espera por clientes
...