SlideShare a Scribd company logo
1 of 18
Download to read offline
Comunicação Distribuída - Socket
         Prof. Adriano Teixeira de Souza
   Estratégias diferentes que permitem a
    comunicação entre aplicações distribuídas.

   Tipos distintos de comunicação em um sistema
    distribuído:

    ◦ Sockets
    ◦ RMI - Remote Method Invocation
    ◦ CORBA – Commom Object Request Broker Architecture
    ◦ EJB – Enterprise Java Bean
    ◦ Web Services


                              Prof. Adriano Teixeira de Souza
Aplicação                      Aplicação

Transporte                    Transporte

  Rede                            Rede

 Enlace                          Enlace

  Física                          Física




             Prof. Adriano Teixeira de Souza
Aplicação    HTTP,RMI, etc            Aplicação

Transporte   TCP e UDP               Transporte

  Rede       IPv4 e IPv6                  Rede

 Enlace      Ethernet e ATM              Enlace

  Física                                 Física




                     Prof. Adriano Teixeira de Souza
   Principais Características:

    ◦   Protocolo da camada de transporte
    ◦   Complexo
    ◦   Orientado à conexão
    ◦   Confiável
    ◦   Detecção de Erros
    ◦   Controle de Congestionamento
    ◦   Menos performático do que UDP
    ◦   Utilizado em diversas aplicações: FTP, email, HTTP,
        RMI, etc...




                               Prof. Adriano Teixeira de Souza
   TCP usa duas abstrações chamadas Sockets e
    Portas

   Portas e Sockets não existem fisicamente

   Em Java, um socket é um objeto que sabe como
    enviar e receber dados de (e para) um outro
    computador através de uma rede

   Java Sockets usam TCP, apesar que não é
    necessário saber isso para usar Sockets
    (encapsulamento)
                           Prof. Adriano Teixeira de Souza
   Servidores (Servers) são computadores que disponibilizam
    serviços através de Portas

   Cada serviço é disponibilizado através de uma porta

   Quando queremos usar um serviço, usamos TCP, informando
    o endereço IP da máquina e a Porta do serviço

   Por exemplo, o serviço de um HTTP server normalmente
    atende pela porta 80 (default)

   Entretanto, muitos Application Server (Tomcat por exemplo)
    são normalmente configurados para atender pela porta 8080



                                Prof. Adriano Teixeira de Souza
   Exemplos:

    ◦ http://172.17.0.13/         (acesso pela porta 80)

    ◦ http://172.17.0.14:8080/ (acesso pela porta 8080)

    ◦ mysql://arcoverde:3306/jornada

    ◦ rmi://localhost:1099/server




                            Prof. Adriano Teixeira de Souza
   É representado pela classe java.net.Socket
   Usa TCP, logo herda todas as características dele
    (principalmente a confiabilidade)
   Exemplo de Construtor:

public Socket(String ipserver, int porta) throws
  IOException;

   Após o construtor executar, o socket já estará apto para se
    comunicar
   Se o socket não conseguir se comunicar, será lançada uma
    IOException
   Permite escrita e leitura através de Input e OutputStream´s


                                 Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   É representado pela classe java.net.ServerSocket
   A função principal de um ServerSocket é aguardar pela
    conexão de um Socket
   Um dos construtores mais utilizados é:

public ServerSocket(int porta) throws IOException;

   Se o ServerSocket não conseguir se instalar na porta, será
    lançada uma IOException
   Diferente do Socket, após o construtor executar, o
    ServerSocket deverá chamar acept() para aguardar uma
    conexão
   acept() retorna um socket. Após acept() retornar, o
    ServerSocket poderá se comunicar com este socket.

                                 Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Objetos são estruturas complexas

    ◦   Possuem vários atributos
    ◦   Seus atributos podem ser outros objetos
    ◦   Que possuem mais atributos
    ◦   Criando uma estrutura em árvore


   Como enviar via rede um objeto complexo?
    ◦ Com serialização




                              Prof. Adriano Teixeira de Souza
   Serialização é o processo de transformar uma
    estrutura de dados complexa, como um objeto, em
    uma série de bytes
   A série gerada é “enviada pelo fio” da rede
   Do outro lado, o objeto é rematerializado
   Graças ao Java Team, a JVM faz isso para nós
   Basta que indiquemos que a classe do objeto
    implementa a interface java.io.Serializable
   Obs.: os atributos do objeto devem ser Serializable
    também
   Isso é o mesmo processo usado para se gravar um
    objeto em um arquivo
                            Prof. Adriano Teixeira de Souza
   Se você tentar enviar um objeto via rede que
    não pode ser serializado, será lançada uma
    UnmarshalException

   Marshaling e UnMarshaling são outros nomes
    dados para os processos de Desmaterizalizar
    e Materializar o objeto

   Quando ocorrer, observe se o objeto que
    você está enviando é Serializable (lembre-se
    dos atributos)
                         Prof. Adriano Teixeira de Souza
•   O normal é que
    tenhamos vários
    clientes para poucos
    servidores

•   Assim, um servidor
    deve poder atender a
    vários clientes ao
    mesmo tempo

•   Isto é feito
    escalonando Threads
    no lado do servidor,
    de forma que cada
    Thread cuide de um
    cliente
                           Prof. Adriano Teixeira de Souza
   As aplicações que utilizam a rede são complexas

   A complexidade vêm normalmente por uma gama de serviços
    de infra-estrutura que são necessários para a execução do
    sistema propriamente dito
    ◦ Por exemplo: localização, chamadas de métodos, tolerância a falhas, etc...

   Por que são muito simples, com sockets podemos apenas
    enviar e receber dados

   Implementar todas as funcionalidades infra-estruturais
    utilizando diretamente sockets pode ser um trabalho custoso,
    repetitivo e, na maioria das vezes, complexo

   Para diminuir as responsabilidades das aplicações (e dos
    desenvolvedores delas), são utilizados plataformas de
    software que realizam funcionalidades de infra-estrutura que
    são comuns aos sistemas

                                        Prof. Adriano Teixeira de Souza

More Related Content

What's hot

Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)elliando dias
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
Hypertext transfer protocol (http)
Hypertext transfer protocol (http)Hypertext transfer protocol (http)
Hypertext transfer protocol (http)Shimona Agarwal
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPRedes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPMauro Tapajós
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamentoMauro Pereira
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadoresFelipe Silva
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Protocolos ARP e RARP
Protocolos ARP e RARPProtocolos ARP e RARP
Protocolos ARP e RARPRafael Moreno
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosDaniel Arndt Alves
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesAdriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaVictor Hazin da Rocha
 
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Helder da Rocha
 
Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da redeLeandro Almeida
 

What's hot (20)

Componentes de uma rede
Componentes de uma rede   Componentes de uma rede
Componentes de uma rede
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
Filas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQFilas e mensageria com RabbitMQ
Filas e mensageria com RabbitMQ
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Hypertext transfer protocol (http)
Hypertext transfer protocol (http)Hypertext transfer protocol (http)
Hypertext transfer protocol (http)
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPRedes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDP
 
Equipamentos de Rede
Equipamentos de RedeEquipamentos de Rede
Equipamentos de Rede
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadores
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Protocolos ARP e RARP
Protocolos ARP e RARPProtocolos ARP e RARP
Protocolos ARP e RARP
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação Indireta
 
Servidor proxy
Servidor proxy Servidor proxy
Servidor proxy
 
Protocolo TCP/IP
Protocolo TCP/IPProtocolo TCP/IP
Protocolo TCP/IP
 
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
Curso de RESTful WebServices em Java com JAX-RS (Java EE 7)
 
Unidade2 projeto lógico da rede
Unidade2   projeto lógico da redeUnidade2   projeto lógico da rede
Unidade2 projeto lógico da rede
 

Viewers also liked

Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMICharleston Anjos
 
Windows - Formulários
Windows - FormuláriosWindows - Formulários
Windows - FormuláriosBaguiasri
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
 
Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processosAmedy Caisse
 
O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?paxtecnologia
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Arthur Emanuel
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisWindson Viana
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaArthur Emanuel
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de TempoArthur Emanuel
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 

Viewers also liked (20)

Sockets : Introdução
Sockets : IntroduçãoSockets : Introdução
Sockets : Introdução
 
Socket
SocketSocket
Socket
 
Socket
SocketSocket
Socket
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
 
Windows - Formulários
Windows - FormuláriosWindows - Formulários
Windows - Formulários
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
Socket
SocketSocket
Socket
 
Sincronização e comunicação entre processos
Sincronização e comunicação entre processosSincronização e comunicação entre processos
Sincronização e comunicação entre processos
 
O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?O que é Middleware? E o que isso tem a ver com SOA?
O que é Middleware? E o que isso tem a ver com SOA?
 
Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05Sistemas Distribuídos - Aula 05
Sistemas Distribuídos - Aula 05
 
Capítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - CoulourisCapítulo 2 - Sistemas Distribuídos - Coulouris
Capítulo 2 - Sistemas Distribuídos - Coulouris
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 

Similar to Sistemas Distribuídos - Comunicação Distribuída - Socket

Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Referencia de redes.pdf
Referencia de redes.pdfReferencia de redes.pdf
Referencia de redes.pdfProfTelmaLcia
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdfRoberto Aragy
 
Protocolos OSI/TCP-IP
Protocolos OSI/TCP-IPProtocolos OSI/TCP-IP
Protocolos OSI/TCP-IPGuimaraess
 
Protocolos 2ªversão
Protocolos   2ªversãoProtocolos   2ªversão
Protocolos 2ªversãoGuimaraess
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
Desenho da rede
Desenho da redeDesenho da rede
Desenho da redeH P
 
Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVAMarcio Palheta
 
Desenho de uma rede
Desenho de uma redeDesenho de uma rede
Desenho de uma redeMaxFiberson
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...veruzkavaz
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...veruzkavaz
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAwolkartt_18
 

Similar to Sistemas Distribuídos - Comunicação Distribuída - Socket (20)

Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
11 sockets
11 sockets11 sockets
11 sockets
 
Computacao distribuida com rmi
Computacao distribuida com rmiComputacao distribuida com rmi
Computacao distribuida com rmi
 
Web service
Web serviceWeb service
Web service
 
O que é um protocolo de rede
O que é um protocolo de redeO que é um protocolo de rede
O que é um protocolo de rede
 
Fundamentos de Objetos Remotos
Fundamentos de Objetos RemotosFundamentos de Objetos Remotos
Fundamentos de Objetos Remotos
 
Funmentos de Objetos Remotos
Funmentos de Objetos RemotosFunmentos de Objetos Remotos
Funmentos de Objetos Remotos
 
Referencia de redes.pdf
Referencia de redes.pdfReferencia de redes.pdf
Referencia de redes.pdf
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdf
 
Protocolos OSI/TCP-IP
Protocolos OSI/TCP-IPProtocolos OSI/TCP-IP
Protocolos OSI/TCP-IP
 
Protocolos 2ªversão
Protocolos   2ªversãoProtocolos   2ªversão
Protocolos 2ªversão
 
Curso de redes_cisco
Curso de redes_ciscoCurso de redes_cisco
Curso de redes_cisco
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Desenho da rede
Desenho da redeDesenho da rede
Desenho da rede
 
Implementação de Sockets em JAVA
Implementação de Sockets em JAVAImplementação de Sockets em JAVA
Implementação de Sockets em JAVA
 
Desenho de uma rede
Desenho de uma redeDesenho de uma rede
Desenho de uma rede
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
 
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...Ccna exploration   fundamentos de rede - 3 funcionalidade e protocolos da cam...
Ccna exploration fundamentos de rede - 3 funcionalidade e protocolos da cam...
 
Modelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNAModelos TCP/IP e OSI para CCNA
Modelos TCP/IP e OSI para CCNA
 

More from Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 

More from Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 

Sistemas Distribuídos - Comunicação Distribuída - Socket

  • 1. Comunicação Distribuída - Socket Prof. Adriano Teixeira de Souza
  • 2. Estratégias diferentes que permitem a comunicação entre aplicações distribuídas.  Tipos distintos de comunicação em um sistema distribuído: ◦ Sockets ◦ RMI - Remote Method Invocation ◦ CORBA – Commom Object Request Broker Architecture ◦ EJB – Enterprise Java Bean ◦ Web Services Prof. Adriano Teixeira de Souza
  • 3. Aplicação Aplicação Transporte Transporte Rede Rede Enlace Enlace Física Física Prof. Adriano Teixeira de Souza
  • 4. Aplicação HTTP,RMI, etc Aplicação Transporte TCP e UDP Transporte Rede IPv4 e IPv6 Rede Enlace Ethernet e ATM Enlace Física Física Prof. Adriano Teixeira de Souza
  • 5. Principais Características: ◦ Protocolo da camada de transporte ◦ Complexo ◦ Orientado à conexão ◦ Confiável ◦ Detecção de Erros ◦ Controle de Congestionamento ◦ Menos performático do que UDP ◦ Utilizado em diversas aplicações: FTP, email, HTTP, RMI, etc... Prof. Adriano Teixeira de Souza
  • 6. TCP usa duas abstrações chamadas Sockets e Portas  Portas e Sockets não existem fisicamente  Em Java, um socket é um objeto que sabe como enviar e receber dados de (e para) um outro computador através de uma rede  Java Sockets usam TCP, apesar que não é necessário saber isso para usar Sockets (encapsulamento) Prof. Adriano Teixeira de Souza
  • 7. Servidores (Servers) são computadores que disponibilizam serviços através de Portas  Cada serviço é disponibilizado através de uma porta  Quando queremos usar um serviço, usamos TCP, informando o endereço IP da máquina e a Porta do serviço  Por exemplo, o serviço de um HTTP server normalmente atende pela porta 80 (default)  Entretanto, muitos Application Server (Tomcat por exemplo) são normalmente configurados para atender pela porta 8080 Prof. Adriano Teixeira de Souza
  • 8. Exemplos: ◦ http://172.17.0.13/ (acesso pela porta 80) ◦ http://172.17.0.14:8080/ (acesso pela porta 8080) ◦ mysql://arcoverde:3306/jornada ◦ rmi://localhost:1099/server Prof. Adriano Teixeira de Souza
  • 9. É representado pela classe java.net.Socket  Usa TCP, logo herda todas as características dele (principalmente a confiabilidade)  Exemplo de Construtor: public Socket(String ipserver, int porta) throws IOException;  Após o construtor executar, o socket já estará apto para se comunicar  Se o socket não conseguir se comunicar, será lançada uma IOException  Permite escrita e leitura através de Input e OutputStream´s Prof. Adriano Teixeira de Souza
  • 12. É representado pela classe java.net.ServerSocket  A função principal de um ServerSocket é aguardar pela conexão de um Socket  Um dos construtores mais utilizados é: public ServerSocket(int porta) throws IOException;  Se o ServerSocket não conseguir se instalar na porta, será lançada uma IOException  Diferente do Socket, após o construtor executar, o ServerSocket deverá chamar acept() para aguardar uma conexão  acept() retorna um socket. Após acept() retornar, o ServerSocket poderá se comunicar com este socket. Prof. Adriano Teixeira de Souza
  • 14. Objetos são estruturas complexas ◦ Possuem vários atributos ◦ Seus atributos podem ser outros objetos ◦ Que possuem mais atributos ◦ Criando uma estrutura em árvore  Como enviar via rede um objeto complexo? ◦ Com serialização Prof. Adriano Teixeira de Souza
  • 15. Serialização é o processo de transformar uma estrutura de dados complexa, como um objeto, em uma série de bytes  A série gerada é “enviada pelo fio” da rede  Do outro lado, o objeto é rematerializado  Graças ao Java Team, a JVM faz isso para nós  Basta que indiquemos que a classe do objeto implementa a interface java.io.Serializable  Obs.: os atributos do objeto devem ser Serializable também  Isso é o mesmo processo usado para se gravar um objeto em um arquivo Prof. Adriano Teixeira de Souza
  • 16. Se você tentar enviar um objeto via rede que não pode ser serializado, será lançada uma UnmarshalException  Marshaling e UnMarshaling são outros nomes dados para os processos de Desmaterizalizar e Materializar o objeto  Quando ocorrer, observe se o objeto que você está enviando é Serializable (lembre-se dos atributos) Prof. Adriano Teixeira de Souza
  • 17. O normal é que tenhamos vários clientes para poucos servidores • Assim, um servidor deve poder atender a vários clientes ao mesmo tempo • Isto é feito escalonando Threads no lado do servidor, de forma que cada Thread cuide de um cliente Prof. Adriano Teixeira de Souza
  • 18. As aplicações que utilizam a rede são complexas  A complexidade vêm normalmente por uma gama de serviços de infra-estrutura que são necessários para a execução do sistema propriamente dito ◦ Por exemplo: localização, chamadas de métodos, tolerância a falhas, etc...  Por que são muito simples, com sockets podemos apenas enviar e receber dados  Implementar todas as funcionalidades infra-estruturais utilizando diretamente sockets pode ser um trabalho custoso, repetitivo e, na maioria das vezes, complexo  Para diminuir as responsabilidades das aplicações (e dos desenvolvedores delas), são utilizados plataformas de software que realizam funcionalidades de infra-estrutura que são comuns aos sistemas Prof. Adriano Teixeira de Souza