SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Sistemas Distribuídos (SD)
- Thiago Marinho                      - O que é SD?
- Willian                             - Vantagens
                   Vão falar Sobre:
- Gabriel                             - Desvantagens
- Silvio                              - IDL Stub/Skeleton
O que é Sistema Distribuído?

                                                                Conceitos:
“Um sistema distribuído é uma coleção de processadores fracamente
  acoplados interconectados por uma rede de comunicação”. Abraham
                                             comunicação”
   Silberschatz, Peter Galvin, Greg Gagne, Sistemas Operacionais, Conceitos e Aplicações,
   Editora Campus.



"Coleção de computadores independentes que se apresenta ao
  usuário como um sistema único e consistente". Andrew Tanenbaum.


“Definimos um sistema distribuído como sendo aquele no qual os
componentes de hardware ou software, localizados em computadores
interligados em rede, se comunicam e coordena suas ações apenas
enviando mensagens entre si”. Coulourus, G.; Dollimore, J.; Kindberg, T. Sistemas
                           si”
Distribuído Conceitos e Projeto
Programando SD
- RPC
- RMI
- CORBA
RPC
RPC (Remote Procedure Call) em português
  Chamada de Procedimento Remoto. É
  muito utilizado em programas estruturais.
RPC, permite a passagem de funções
  remotas, com parametros de tipo primitivo
  (wrappers) como inteiros, characteres,
  booleanos, não oferece recurso a chamada
  a métodos de Objetos remotos. Utiliza-se
  do modelo Cliente/Servidor, onde a
  aplicação local, solicita um recurso de uma
  outra aplicação distribuida em qualquer site,
  os quais podem estabelecer uma conexão
  TCP, os dados podem trafegar através do
  protocolo UDP, para tal utiliza-se Stubs e
  Skeletons, que são interfaces que permitem
  essa comunicação.                               Não é Orientado a Objeto!
RMI
RMI é uma solução, só e somente só, entre aplicações distribuídas desenvolvidas na linguagem
  Java. Sistema distribuído em Java é quando processos são executados em Máquinas
  Virtuais Java (JVM) diferentes no mesmo computador ou em rede, ou até mesmo em outro
  site. A forma que é feita a comunicação é similar ao RPC, porém RMI dá suporte a Objetos,
  onde métodos remotos podem chamar Objetos, os Objetos são passados por referência ou
  cópia de forma serial, e transparante ao programador, o qual faz declarações de
  implementações de Interfaces (métodos) e implementa algumas classes como Remote,
  RemoteException, Unicast,

Cria-se interface que geram Subs através
do rmic. Stub é a interface que esconde
a forma que é feita a IPC (comunicação
entre os processos) no que tange a forma
que é feita Rede, entre outros, o
programador faz a chamada do método
como se fosse feita numa aplicação local.
// A aplicação remota contém o código com a regra
de negócio que implementa essa chamada remota ao
método isPessoaRemote, informando um Objeto.
Ex:           Boolean           verifica                         =
servidor.isPessoaRemote(Pessoa p1);
Common Object Request Broker Architecture

    Arquitetura comum intermediária para requisições
    de objetos.

É um middleware - uma camada de software intermediária - que permite a
comunicação entre aplicações e servidor heterogêneas, em outras palavras é
um middleware orientado a compartilhamento de objetos. Por exemplo, um
programa C++ pode usar CORBA para acessar um serviço de banco de
dados escrito em COBOL, CORBA permite que aplicações escritas em
diferentes linguagens se comuniquem usando Interface Definition Language
(IDL) e um Object Request Broker (ORB). Uma IDL permite a um objeto
distribuido - como um banco de dados - descrever uma interface para os
serviços que fornece
Vantagens do uso SD

Concorrência: Vários processos podem operar
 ao mesmo tempo em diferentes computadores
 na rede. Esses processos podem (mas não
 precisam) se comunicar uns com os outros
 durante sua operação normal.

Escalabilidade: São escalonáveis de modo que
 as capacidades de um sistema possam ser
 ampliada pela adição de novos recursos. Na
 prática, a ligação em rede pode limitar a
 escalabilidade se muitos computadores forem
Vantagens do uso SD
  Tolerância a defeitos
• A disponibilidade de muitos computadores e o
  potencial de duplicação de informações
  influenciam na tolerância a falhas de hardware
  e software. Agora, quando a rede falha...
 Por essas vantagens os sistemas distribuídos
  substituíram os antigos das décadas de 1980 e
  1990.
Entretanto, comparados aos sistemas que operam com
  um único processador ou um cluster de processadores,
  os sistemas distribuídos têm algumas desvantagens
Desvantagens de se usar SD
Complexidade: São mais complexos que os centralizados. São
  mais difíceis de se compreender e testar.
Proteção: O sistema pode ser acessado a partir de vários
  computadores diferentes, e o tráfego na rede pode estar sujeito
  a interceptações.
Gerenciamento (esforço): Os computadores podem ser de tipos
  diferentes e podem operar em versões diferentes de SO.
  Defeitos em uma máquina podem se propagar a outras
  máquinas.
Imprevisibilidade: São imprevisíveis em suas respostas. A
  resposta depende da carga total do sistema, sua organização e
  a carga de rede, e isso pode mudar de uma hora para outra.
IDL - Interface Description
               Language
É uma linguagem de computador utilizada para
 descrever a interface dos componentes de software.
 A descrição provida pela IDL é independente de
 qualquer linguagem de programação, por isso
 possibilita a comunicação entre componentes
 escritos em linguagens de programação diferentes.
As IDLs são normalmente utilizadas em software de
  comunicação remota. Ela estabelece uma ponte
  entre sistemas operacionais ou linguagem de
  programação diferentes
Stub e Skeleton
O RMI utiliza para comunicação remota os métodos padrões: Stub e
   Skeleton. Stub em um objeto remoto funciona semelhante a um
   proxy para o objeto remoto. Quando um objeto chama um stub ele
   fica responsável de enviar a chamada ao objeto remoto.
Quando um stub é invocado ele faz as seguintes ações:
- Iniciar uma conexão com o JVM remoto que contém os objetos
   remotos;
- Escrever e transmitir os parâmetros para o JVM remoto;
- Esperar pelos resultados do método invocado;
- Ler as variáveis retornadas ou as exceções retornadas;
- Retornar o valor para o método que fez a chamada ao stub.
- O stub esconde a serialização dos parâmetros e da comunicação
   em nível de rede para simplificar o mecanismo de realização de
   chamada.
Stub e Skeleton

Em JVM remotos, cada objeto remoto deve possuir
   um skeleton. O skeleton é responsável por enviar
   a chamada ao objeto remoto.
Quando um skeleton é invocado ele faz as
   seguintes ações:
- Ler os parâmetros enviados pelo o stub;
- Invocar o método no objeto remoto;
- Escrever e transmitir os resultados ao objeto que
   executou a chamada.
Exemplo
• No exemplo a ser mostrado será utilizado um exemplo
  utilizando o pacote JacORB.




                         • Na imagem a cima é mostrado a
                           interface       que       será
                           posteriormente implementada.
                         • Na imagem ao lado é mostrado a
                           classe     serverImpl      que
                           implementa a interface server
                           acima.
                         • Nela é implementado as
                           mensagens que o server dará ao
                           usuário   que    receberá    as
                           mensagens digitadas para o
                           servidor.
Exemplo
Após a criação e implementação da interface
 serão gerados o stub e o skeleton.
Para gerar o stub e o skeleton é necessário dar
 um comando no compilador que está sendo
 utilizado.
No exemplo mostrado o compilador utilizado
 para criar o stub e o skeleton é o javaC.
Exemplo




Para que o objeto do tipo serverImpl possa
  acesso remoto é preciso instanciá-lo em
  método main de alguma outra classe e
  iniciar o skeleton para isso.
Exemplo




Após o instanciamento do skeleton ao servidor é necessário vincular o
  stub ao cliente e isso é feito na seguinte instrução:
  ((serverStub)s).bind("server",    new       URL("http://www.inf.fu-
  berlin.de/~brose/ServiceLog"));.

Mais conteúdo relacionado

Mais procurados

Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Pepe Rocker
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoDaniel Brandão
 
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
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fsopaulocsm
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Leinylson Fontinele
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)Luis Ferreira
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersDaniel Maia
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01thomasdacosta
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualizaçãocamila_seixas
 

Mais procurados (20)

Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)
 
Virtualização
VirtualizaçãoVirtualização
Virtualização
 
Aula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de InformaçãoAula 01 - Introdução ao Sistema de Informação
Aula 01 - Introdução ao Sistema de Informação
 
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
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Questoesde fso
Questoesde fsoQuestoesde fso
Questoesde fso
 
Virtualização - Máquinas Virtuais
Virtualização - Máquinas VirtuaisVirtualização - Máquinas Virtuais
Virtualização - Máquinas Virtuais
 
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)Sistemas Operacionais - Aula 06 (Estrutura do S.O)
Sistemas Operacionais - Aula 06 (Estrutura do S.O)
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggers
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 

Destaque

Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
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 - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosPortal_do_Estudante_SD
 
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
 
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ídosPortal_do_Estudante_SD
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesPortal_do_Estudante_SD
 
Linux - So por Prazer
Linux - So por PrazerLinux - So por Prazer
Linux - So por Prazers4nx
 
Aula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computaçãoAula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computaçãoThiago Marinho
 
Introdução aos sistemas distribuidos
Introdução aos sistemas distribuidosIntrodução aos sistemas distribuidos
Introdução aos sistemas distribuidosJesse Teixeira
 

Destaque (20)

Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas Distribuídos - Clusters
Sistemas Distribuídos - ClustersSistemas Distribuídos - Clusters
Sistemas Distribuídos - Clusters
 
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 - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidos
 
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
 
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 Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redes
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Linux - So por Prazer
Linux - So por PrazerLinux - So por Prazer
Linux - So por Prazer
 
Aula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computaçãoAula de revisão sistemas multimidia ead ufgd lic. computação
Aula de revisão sistemas multimidia ead ufgd lic. computação
 
Introdução aos sistemas distribuidos
Introdução aos sistemas distribuidosIntrodução aos sistemas distribuidos
Introdução aos sistemas distribuidos
 

Semelhante a Apresentação Sistemas Distribuídos - Conceito

Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdfRoberto Aragy
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Vinicius Pulgatti
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPClimabezerra
 
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
 
Apresentação - IT Specialist
Apresentação - IT SpecialistApresentação - IT Specialist
Apresentação - IT SpecialistAlan Carlos
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMICharleston Anjos
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivoelliando dias
 

Semelhante a Apresentação Sistemas Distribuídos - Conceito (20)

Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Modelo de Referência OSI
Modelo de Referência OSIModelo de Referência OSI
Modelo de Referência OSI
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdf
 
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO, Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
Apresentação Java, SOA, MICROSERVICE, HTTP, HTTPS, VERSIONAMENTO DE CONTRATO,
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Sistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPCSistemas Distribuidos, Middleware e RPC
Sistemas Distribuidos, Middleware e RPC
 
XML-RPC.pdf
XML-RPC.pdfXML-RPC.pdf
XML-RPC.pdf
 
Modulo1 1
Modulo1 1Modulo1 1
Modulo1 1
 
Aula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosdsAula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosds
 
Protocolos logicos de_comunicacao
Protocolos logicos de_comunicacaoProtocolos logicos de_comunicacao
Protocolos logicos de_comunicacao
 
11 sockets
11 sockets11 sockets
11 sockets
 
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...
 
Cluster
ClusterCluster
Cluster
 
folha N1.ppt
folha N1.pptfolha N1.ppt
folha N1.ppt
 
Apresentação - IT Specialist
Apresentação - IT SpecialistApresentação - IT Specialist
Apresentação - IT Specialist
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Sistemas distribuídos com RMI
Sistemas distribuídos com RMISistemas distribuídos com RMI
Sistemas distribuídos com RMI
 
Middleware Reflexivo
Middleware ReflexivoMiddleware Reflexivo
Middleware Reflexivo
 

Mais de Thiago Marinho

Apresentação Trabalho de Conclusão de Curso - Ciência da Computação
Apresentação Trabalho de Conclusão de Curso - Ciência da Computação Apresentação Trabalho de Conclusão de Curso - Ciência da Computação
Apresentação Trabalho de Conclusão de Curso - Ciência da Computação Thiago Marinho
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IAThiago Marinho
 
Barramento Assíncrono
Barramento AssíncronoBarramento Assíncrono
Barramento AssíncronoThiago Marinho
 

Mais de Thiago Marinho (6)

Apresentação Trabalho de Conclusão de Curso - Ciência da Computação
Apresentação Trabalho de Conclusão de Curso - Ciência da Computação Apresentação Trabalho de Conclusão de Curso - Ciência da Computação
Apresentação Trabalho de Conclusão de Curso - Ciência da Computação
 
Agentes Inteligentes - IA
Agentes Inteligentes - IAAgentes Inteligentes - IA
Agentes Inteligentes - IA
 
Barramento Assíncrono
Barramento AssíncronoBarramento Assíncrono
Barramento Assíncrono
 
Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Algoritmos Genéticos
Algoritmos GenéticosAlgoritmos Genéticos
Algoritmos Genéticos
 
Barbeiro Sonolento
Barbeiro SonolentoBarbeiro Sonolento
Barbeiro Sonolento
 

Apresentação Sistemas Distribuídos - Conceito

  • 1. Sistemas Distribuídos (SD) - Thiago Marinho - O que é SD? - Willian - Vantagens Vão falar Sobre: - Gabriel - Desvantagens - Silvio - IDL Stub/Skeleton
  • 2. O que é Sistema Distribuído? Conceitos: “Um sistema distribuído é uma coleção de processadores fracamente acoplados interconectados por uma rede de comunicação”. Abraham comunicação” Silberschatz, Peter Galvin, Greg Gagne, Sistemas Operacionais, Conceitos e Aplicações, Editora Campus. "Coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente". Andrew Tanenbaum. “Definimos um sistema distribuído como sendo aquele no qual os componentes de hardware ou software, localizados em computadores interligados em rede, se comunicam e coordena suas ações apenas enviando mensagens entre si”. Coulourus, G.; Dollimore, J.; Kindberg, T. Sistemas si” Distribuído Conceitos e Projeto
  • 4. RPC RPC (Remote Procedure Call) em português Chamada de Procedimento Remoto. É muito utilizado em programas estruturais. RPC, permite a passagem de funções remotas, com parametros de tipo primitivo (wrappers) como inteiros, characteres, booleanos, não oferece recurso a chamada a métodos de Objetos remotos. Utiliza-se do modelo Cliente/Servidor, onde a aplicação local, solicita um recurso de uma outra aplicação distribuida em qualquer site, os quais podem estabelecer uma conexão TCP, os dados podem trafegar através do protocolo UDP, para tal utiliza-se Stubs e Skeletons, que são interfaces que permitem essa comunicação. Não é Orientado a Objeto!
  • 5. RMI RMI é uma solução, só e somente só, entre aplicações distribuídas desenvolvidas na linguagem Java. Sistema distribuído em Java é quando processos são executados em Máquinas Virtuais Java (JVM) diferentes no mesmo computador ou em rede, ou até mesmo em outro site. A forma que é feita a comunicação é similar ao RPC, porém RMI dá suporte a Objetos, onde métodos remotos podem chamar Objetos, os Objetos são passados por referência ou cópia de forma serial, e transparante ao programador, o qual faz declarações de implementações de Interfaces (métodos) e implementa algumas classes como Remote, RemoteException, Unicast, Cria-se interface que geram Subs através do rmic. Stub é a interface que esconde a forma que é feita a IPC (comunicação entre os processos) no que tange a forma que é feita Rede, entre outros, o programador faz a chamada do método como se fosse feita numa aplicação local. // A aplicação remota contém o código com a regra de negócio que implementa essa chamada remota ao método isPessoaRemote, informando um Objeto. Ex: Boolean verifica = servidor.isPessoaRemote(Pessoa p1);
  • 6. Common Object Request Broker Architecture  Arquitetura comum intermediária para requisições de objetos. É um middleware - uma camada de software intermediária - que permite a comunicação entre aplicações e servidor heterogêneas, em outras palavras é um middleware orientado a compartilhamento de objetos. Por exemplo, um programa C++ pode usar CORBA para acessar um serviço de banco de dados escrito em COBOL, CORBA permite que aplicações escritas em diferentes linguagens se comuniquem usando Interface Definition Language (IDL) e um Object Request Broker (ORB). Uma IDL permite a um objeto distribuido - como um banco de dados - descrever uma interface para os serviços que fornece
  • 7. Vantagens do uso SD Concorrência: Vários processos podem operar ao mesmo tempo em diferentes computadores na rede. Esses processos podem (mas não precisam) se comunicar uns com os outros durante sua operação normal. Escalabilidade: São escalonáveis de modo que as capacidades de um sistema possam ser ampliada pela adição de novos recursos. Na prática, a ligação em rede pode limitar a escalabilidade se muitos computadores forem
  • 8. Vantagens do uso SD Tolerância a defeitos • A disponibilidade de muitos computadores e o potencial de duplicação de informações influenciam na tolerância a falhas de hardware e software. Agora, quando a rede falha... Por essas vantagens os sistemas distribuídos substituíram os antigos das décadas de 1980 e 1990. Entretanto, comparados aos sistemas que operam com um único processador ou um cluster de processadores, os sistemas distribuídos têm algumas desvantagens
  • 9. Desvantagens de se usar SD Complexidade: São mais complexos que os centralizados. São mais difíceis de se compreender e testar. Proteção: O sistema pode ser acessado a partir de vários computadores diferentes, e o tráfego na rede pode estar sujeito a interceptações. Gerenciamento (esforço): Os computadores podem ser de tipos diferentes e podem operar em versões diferentes de SO. Defeitos em uma máquina podem se propagar a outras máquinas. Imprevisibilidade: São imprevisíveis em suas respostas. A resposta depende da carga total do sistema, sua organização e a carga de rede, e isso pode mudar de uma hora para outra.
  • 10. IDL - Interface Description Language É uma linguagem de computador utilizada para descrever a interface dos componentes de software. A descrição provida pela IDL é independente de qualquer linguagem de programação, por isso possibilita a comunicação entre componentes escritos em linguagens de programação diferentes. As IDLs são normalmente utilizadas em software de comunicação remota. Ela estabelece uma ponte entre sistemas operacionais ou linguagem de programação diferentes
  • 11. Stub e Skeleton O RMI utiliza para comunicação remota os métodos padrões: Stub e Skeleton. Stub em um objeto remoto funciona semelhante a um proxy para o objeto remoto. Quando um objeto chama um stub ele fica responsável de enviar a chamada ao objeto remoto. Quando um stub é invocado ele faz as seguintes ações: - Iniciar uma conexão com o JVM remoto que contém os objetos remotos; - Escrever e transmitir os parâmetros para o JVM remoto; - Esperar pelos resultados do método invocado; - Ler as variáveis retornadas ou as exceções retornadas; - Retornar o valor para o método que fez a chamada ao stub. - O stub esconde a serialização dos parâmetros e da comunicação em nível de rede para simplificar o mecanismo de realização de chamada.
  • 12. Stub e Skeleton Em JVM remotos, cada objeto remoto deve possuir um skeleton. O skeleton é responsável por enviar a chamada ao objeto remoto. Quando um skeleton é invocado ele faz as seguintes ações: - Ler os parâmetros enviados pelo o stub; - Invocar o método no objeto remoto; - Escrever e transmitir os resultados ao objeto que executou a chamada.
  • 13. Exemplo • No exemplo a ser mostrado será utilizado um exemplo utilizando o pacote JacORB. • Na imagem a cima é mostrado a interface que será posteriormente implementada. • Na imagem ao lado é mostrado a classe serverImpl que implementa a interface server acima. • Nela é implementado as mensagens que o server dará ao usuário que receberá as mensagens digitadas para o servidor.
  • 14. Exemplo Após a criação e implementação da interface serão gerados o stub e o skeleton. Para gerar o stub e o skeleton é necessário dar um comando no compilador que está sendo utilizado. No exemplo mostrado o compilador utilizado para criar o stub e o skeleton é o javaC.
  • 15. Exemplo Para que o objeto do tipo serverImpl possa acesso remoto é preciso instanciá-lo em método main de alguma outra classe e iniciar o skeleton para isso.
  • 16. Exemplo Após o instanciamento do skeleton ao servidor é necessário vincular o stub ao cliente e isso é feito na seguinte instrução: ((serverStub)s).bind("server", new URL("http://www.inf.fu- berlin.de/~brose/ServiceLog"));.