permitem a comunicao entre aplicaes distribudas Estratgias Distintas Sockets
RPC - Remote Procedure Call
RMI - Remote Method Invocation
CORBA Commom Object Request Broker Architecture
Conceito de Porta Uma porta um ponto de interao entre uma aplicao e o sistema operacional da mquina.
Proporciona aplicao uma forma de estabelecer um canal de comunicao com o sistema operacional da mquina.
representada por um endereo numrico. Sockets Um socket um mecanismo de baixo nvel, definido como uma extremidade de um canal de comunicao. Um par de processos (thread) se comunica em uma rede utilizando um par de sockets um para cada processo. Um mecanismo do TCP/IP que permite que processos distribudos se comuniquem em uma rede. Um socket formado por um endereo IP concatenado com um nmero de porta. Sockets
Um mecanismo de baixo nvel, entre processos ou threads distribudos, que permitem a troca de um fluxo no-estruturado de bytes entre os threads em comunicao. Sockets Java Sockets orientados a conexo (TCP): Classes: Socket, ServerSocket
Sockets sem conexo (UDP): Classe: DatagramSocket
Socket de difuso (multicast): Classe: MultcastSocket Estruturando os Dados na Comunicao
responsabilidade da aplicao- cliente, o da aplicao-servidor impor uma estrutura de dados.
Existem dois mtodos alternativos de comunicao em nvel mais alto: RPC e RMI RPC
Permite que um processo ou uma thread chame um procedimento ou funo em outro processo, que pode estar em um espao de endereamento separado na mesma mquina ou pode estar executando em um computador remoto conectado por uma rede. Vantagens do RPC
Gerencia o canal de comunicao, de forma que os programas aplicativos podem ser escritos de modo que a localizao de um procedimento, quer local ou remoto, seja transparente.
Mostrar figuras ... RMI um recurso Java. Permite que uma thread invoque um mtodo em um objeto remoto, o qual reside em uma mquina virtual Java (JVM) distinta que pode estar no mesmo computador ou em uma JVM em um computador remoto conectado por rede. RMI RMI baseia-se em objetos: suporta a invocao de mtodos em objetos remotos.
Com RMI possvel passar objetos como parmetros para os mtodos remotos.
Torna possvel aos usurios desenvolver aplicaes Java que sejam distribudas por toda a rede. RMI Para tornar os mtodos remotos transparentes ao cliente e ao servidor, RMI implementa o objeto remoto usando stubs e skeletons.
Um stub um proxy (representante)do objeto remoto, que reside junto ao programa-cliente. RMI Quando o programa-cliente invoca um mtodo remoto, esse stub para o objeto remoto que chamado.
Um stub no cliente serve para criar uma mensagem consistindo do nome do mtodo a ser invocado no servidor e nos parmetros desse mtodo. RMI O stub envia ento essa mensagem para o lado do servidor, onde a mensagem recebida pelo skeleton do objeto remoto.
O skeleton ento faz a extrao dos parmetros e invoca o mtodo desejado no objeto remoto do lado servidor. RMI O skeleton agrega o valor de retorno (ou exceo) em uma mensagem e retorna-a ao programa-cliente.
O stub efetua a extrao do valor de retorno e o passa para o cliente. RMI uma tecnologia Java nativa e por isso requer que todas as aplicaes distribudas sejam escritas em Java. Muitos sistemas existentes que talvez queiramos que seja distribudos so escritos em C, C++, Ada, COBOL, Smaltalk, ou outra linguagem. CORBA permite a comunicao entre aplicaes cliente e servidor heterogneas.