quinta-feira, 26 de maio de 2011

Conceitos Básicos

Toda a comunicação entre processos em um sistema distribuído é baseada em trocas de mensagens, pois, conceitualmente, não há memória compartilhada., Quando vários processos precisam se comunicar, é necessária a adoção de protocolos ou seja, acordos entre as partes que se comunicam, sobre como a comunicação se dará (formatos, conteúdos e significados de mensagens). Cada sistema final na rede executa protocolos que controlam o envio e recepção de informações na rede.

Atualmente, o conjunto de protocolos da Internet – denominado TCP/IP [RFC 1180] – se tornou um padrão de facto em ambientes de sistemas distribuídos. Seus dois protocolos mais importantes são o TCP (Transmition Control Protocol) – orientado a conexões –, e o IP (Internet Protocol), motivo pelo qual esse conjunto de protocolo é conhecido como TCP/IP. A Figura 2.1 mostra a pilha de protocolos TCP/IP, comparando-a com as sete camadas do modelo ISO OSI.


As aplicações usualmente têm acesso aos protocolos de transporte da rede usando sockets. Um socket pode ser concebido como um portão de entrada e de saída de cada processo. Cada processo envia e/ou recebe mensagens através de seus sockets. Devido ao fato que, usualmente, os protocolos de transporte da rede são implementados e controlados pelo sistema operacional, um socket também pode ser concebido como uma interface entre a aplicação e o substrato de comunicação do sistema operacional.


A programação de sistemas distribuídos pode ser feita diretamente em uma linguagem de programação (ex. C, C++ ou Java), usando uma API (Application Program Interface – Interface de Programação de Aplicações) socket.