SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMI
Adriano Teixeira de Souza
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidor
dtml2k
 
ConstruçãO De Um Cabo De Redes
ConstruçãO De Um Cabo De RedesConstruçãO De Um Cabo De Redes
ConstruçãO De Um Cabo De Redes
Muninatania
 
Modelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosModelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídos
Portal_do_Estudante_SD
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
elliando dias
 

La actualidad más candente (20)

Sistema Operativo Servidor
Sistema Operativo ServidorSistema Operativo Servidor
Sistema Operativo Servidor
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
Windows server
Windows serverWindows server
Windows server
 
Módulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdfMódulo 3-Sistema Operativo Servidor - V3.pdf
Módulo 3-Sistema Operativo Servidor - V3.pdf
 
Projeto de redes
Projeto de redesProjeto de redes
Projeto de redes
 
Aula 5 - Redes de computadores
Aula 5 - Redes de computadoresAula 5 - Redes de computadores
Aula 5 - Redes de computadores
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMI
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidor
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Rede de computadores
Rede de computadoresRede de computadores
Rede de computadores
 
ConstruçãO De Um Cabo De Redes
ConstruçãO De Um Cabo De RedesConstruçãO De Um Cabo De Redes
ConstruçãO De Um Cabo De Redes
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Computação em Nuvem
Computação em NuvemComputação em Nuvem
Computação em Nuvem
 
Modelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídosModelos de estruturação de sistemas distribuídos
Modelos de estruturação de sistemas distribuídos
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Redes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redesRedes de-computadores-tipos-de-redes
Redes de-computadores-tipos-de-redes
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
Computação em Nuvem
Computação em NuvemComputação em Nuvem
Computação em Nuvem
 

Destacado

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
Adriano Teixeira de Souza
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
Charleston Anjos
 
Windows - Formulários
Windows - FormuláriosWindows - Formulários
Windows - Formulários
Baguiasri
 
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
Mauro Tapajós
 
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
Amedy Caisse
 
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
Adriano 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 – SOA
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
Adriano Teixeira de Souza
 

Destacado (20)

Sockets : Introdução
Sockets : IntroduçãoSockets : Introdução
Sockets : Introdução
 
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
 
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
 
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
 
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 - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 

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

Protocolos OSI/TCP-IP
Protocolos OSI/TCP-IPProtocolos OSI/TCP-IP
Protocolos OSI/TCP-IP
Guimaraess
 
Protocolos 2ªversão
Protocolos   2ªversãoProtocolos   2ªversão
Protocolos 2ªversão
Guimaraess
 
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
Helder da Rocha
 
Desenho da rede
Desenho da redeDesenho da rede
Desenho da rede
H P
 
Desenho de uma rede
Desenho de uma redeDesenho de uma rede
Desenho de uma rede
MaxFiberson
 
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
 
Artigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobraArtigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobra
Goncalvinho
 

Similar a 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
 
Funmentos de Objetos Remotos
Funmentos de Objetos RemotosFunmentos de Objetos Remotos
Funmentos de Objetos Remotos
 
Fundamentos de Objetos Remotos
Fundamentos de Objetos RemotosFundamentos de Objetos Remotos
Fundamentos 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
 
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
 
Artigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobraArtigo distribuidos programação java com rmi e cobra
Artigo distribuidos programação java com rmi e cobra
 

Más de 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árias
Adriano 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 - JMS
Adriano 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 Java
Adriano 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
 

Más de 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)
 

Último

Último (9)

Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

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