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 ...
Aplicação                      AplicaçãoTransporte                    Transporte  Rede                            Rede Enl...
Aplicação    HTTP,RMI, etc            AplicaçãoTransporte   TCP e UDP               Transporte  Rede       IPv4 e IPv6    ...
   Principais Características:    ◦   Protocolo da camada de transporte    ◦   Complexo    ◦   Orientado à conexão    ◦  ...
   TCP usa duas abstrações chamadas Sockets e    Portas   Portas e Sockets não existem fisicamente   Em Java, um socket...
   Servidores (Servers) são computadores que disponibilizam    serviços através de Portas   Cada serviço é disponibiliza...
   Exemplos:    ◦ http://172.17.0.13/         (acesso pela porta 80)    ◦ http://172.17.0.14:8080/ (acesso pela porta 808...
   É representado pela classe java.net.Socket   Usa TCP, logo herda todas as características dele    (principalmente a c...
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 d...
Prof. Adriano Teixeira de Souza
   Objetos são estruturas complexas    ◦   Possuem vários atributos    ◦   Seus atributos podem ser outros objetos    ◦  ...
   Serialização é o processo de transformar uma    estrutura de dados complexa, como um objeto, em    uma série de bytes...
   Se você tentar enviar um objeto via rede que    não pode ser serializado, será lançada uma    UnmarshalException   Ma...
•   O normal é que    tenhamos vários    clientes para poucos    servidores•   Assim, um servidor    deve poder atender a ...
   As aplicações que utilizam a rede são complexas   A complexidade vêm normalmente por uma gama de serviços    de infra...
Próximos SlideShares
Carregando em…5
×

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

5.020 visualizações

Publicada em

Publicada em: Tecnologia, Educação
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.020
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
263
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Comunicação Distribuída - Socket Prof. Adriano Teixeira de Souza
  2. 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. 3. Aplicação AplicaçãoTransporte Transporte Rede Rede Enlace Enlace Física Física Prof. Adriano Teixeira de Souza
  4. 4. Aplicação HTTP,RMI, etc AplicaçãoTransporte TCP e UDP Transporte Rede IPv4 e IPv6 Rede Enlace Ethernet e ATM Enlace Física Física Prof. Adriano Teixeira de Souza
  5. 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. 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. 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. 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. 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
  10. 10. Prof. Adriano Teixeira de Souza
  11. 11. Prof. Adriano Teixeira de Souza
  12. 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
  13. 13. Prof. Adriano Teixeira de Souza
  14. 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. 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. 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. 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. 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

×