Apresentação Sistemas Distribuídos - Conceito

5.475 visualizações

Publicada em

Básico sobre conceito de Sistemas Distribuídos, RPC, RMI e Corba.

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

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

Nenhuma nota no slide

Apresentação Sistemas Distribuídos - Conceito

  1. 1. Sistemas Distribuídos (SD)- Thiago Marinho - O que é SD?- Willian - Vantagens Vão falar Sobre:- Gabriel - Desvantagens- Silvio - IDL Stub/Skeleton
  2. 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 oscomponentes de hardware ou software, localizados em computadoresinterligados em rede, se comunicam e coordena suas ações apenasenviando mensagens entre si”. Coulourus, G.; Dollimore, J.; Kindberg, T. Sistemas si”Distribuído Conceitos e Projeto
  3. 3. Programando SD- RPC- RMI- CORBA
  4. 4. RPCRPC (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. 5. RMIRMI é 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ésdo rmic. Stub é a interface que escondea forma que é feita a IPC (comunicaçãoentre os processos) no que tange a formaque é feita Rede, entre outros, oprogramador faz a chamada do métodocomo se fosse feita numa aplicação local.// A aplicação remota contém o código com a regrade negócio que implementa essa chamada remota aométodo isPessoaRemote, informando um Objeto.Ex: Boolean verifica =servidor.isPessoaRemote(Pessoa p1);
  6. 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 acomunicação entre aplicações e servidor heterogêneas, em outras palavras éum middleware orientado a compartilhamento de objetos. Por exemplo, umprograma C++ pode usar CORBA para acessar um serviço de banco dedados escrito em COBOL, CORBA permite que aplicações escritas emdiferentes linguagens se comuniquem usando Interface Definition Language(IDL) e um Object Request Broker (ORB). Uma IDL permite a um objetodistribuido - como um banco de dados - descrever uma interface para osserviços que fornece
  7. 7. Vantagens do uso SDConcorrê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. 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. 9. Desvantagens de se usar SDComplexidade: 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. 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. 11. Stub e SkeletonO 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. 12. Stub e SkeletonEm 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. 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. 14. ExemploApó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. 15. ExemploPara 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. 16. ExemploApó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"));.

×