1 / 13

a fin a l, o q u e é u m S D ?

a fin a l, o q u e é u m S D ?. •. N e s t a a ul a , c om ple m e n t an d o o s c o n c ei t o s q u e v i m o s. n as. a ul as. a n t eri o r e s. ,. v a m o s. p r a t i c ar. a. p r o g r a m a ç ão d e l a b o r at ó ri o u t i l i z a nd o u m a s eq u en c i a

oke
Télécharger la présentation

a fin a l, o q u e é u m S D ?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. afinal,oqueéumSD? • Nestaaula,complementandoosconceitosquevimos nas aulas anteriores , vamos praticar a programaçãodelaboratórioutilizandoumasequencia de10passosparaimplementaroRMI; • Os próximos slides para deverão ser executados continuamente servidor,ambos criarmos um cliente e um localmente,paraposteriormente,na partequatrodessaaula rede; configurarmosem • Para que não hajam problemas de compilação/execuçãoéimportante queocomputador jáestejacomasvariáveisdeambientedeclaradase configuradas;

  2. afinal,oqueéumSD? • • • • • • • • • • • Os10passosparacriarmosnossosegundo Definirainterfaceremota; Implementaroobjetoremoto; Implementarumservidorparaoobjeto; Compilaroobjetoremoto; Gerarstubseskeletonscomrmic; Escrever,compilareinstalarocliente; Instalarostubnocliente; RMI: Iniciar Iniciar Iniciar o o o RMIRegistrynoservidor; servidordeobjetos; clientequevaiacessaroservidor;

  3. afinal,oqueéumSD? • • Primeiropasso:Definirainterfaceremota; Declaretodos os métodos que o programa cliente poderáchamarremotamenteem estendadejava.rmi.Remote; umainterface que • Todos os métodos devem declarar throws java.rmi.RemoteException; Istodeveserfeitoparacadaobjetoqueseráacessível atravésdarede; •

  4. afinal,oqueéumSD? • • Segundopasso:Implementaroobjetoremoto; Cadaobjetoremotoéumaclassequeestendeaclasse java.rmi.server.UnicastRemoteObject e que implementaainterfaceremotacriadanopasso1; • Todosos métodos declaram utilizar a exceção para evitarerroscomjava.rmi.RemoteException;

  5. afinal,oqueéumSD? • • • • Terceiropasso:Implementarumservidor; Crieumaclasseque: Crieumainstânciadoobjetoaserservidor; Registre(rebind)oobjeto(comumnome)noservidor denomesRMIRegistry;

  6. afinal,oqueéumSD? • • Quartopasso:Compilaroobjetoremoto; Compiletodasasclasseseinterfacesutilizadas definirainterfacejava.rmi.Remote: para javacMensagem_IF.java ServicoDeMensagens.java • Observação:noEclipse,estepassonãoétãocrítico. Bastaapenassalvarosarquivosqueosbytecodes.class serãogerados(facilmente)deformaautomática;

  7. afinal,oqueéumSD? • • • Quintopasso:GerarStubseSkeletons; UseaferramentadoJ2SDK:rmic Será gerado um arquivo stub (o proxy) skeleton objeto ServicoDeMensagens_Stub.class ServicoDeMensagens_Skel.class remoto(nestecaso,apenasum); eumarquivo para cada • • • RMIC=RMICompiler Useopção-keepsequisermantercódigo-fonte; Execute o rmic sobre as implementações do objeto remotojácompiladas; %rmicServicoDeMensagens; •

  8. afinal,oqueéumSD? • • Sextopasso:Compilareinstalarosclientes; Agora,escrevaumaclasse(ocliente)queiráprocurar, nosistemadenomesjava.rmi.Naming,o(s)objeto(s) remotosdesejado(s): Obtenhaumainstânciaremotadoobjeto(lookup); •

  9. afinal,oqueéumSD? • Sétimopasso:Instalarosstubsnocliente; • Distribua os clientes para as máquinas-cliente. A distribuiçãodeveconter: • Classe(s) que implementa(m) o(s) cliente(s) Cliente.class; • O(s)stub(s)ServicoDeMensagens_Stub.class; • A(s)interface(s)remota(s)Mensagem_IF.class;

  10. afinal,oqueéumSD? • Oitavopasso:IniciaroRMIRegistry noWindows; %startrmiregistry • ORMIRegistryfica"calado"quandoestáexecutando. NesteexemploseráprecisoiniciaroRMIRegistryno diretórioondeestãoosstubseinterfaceRemota; • Isto é, para que o RMIRegistry“veja” o mesmo CLASSPATHqueorestodaaplicação;

  11. afinal,oqueéumSD? • • Nonopasso:Iniciaroservidordeobjetos; Oservidoréumaaplicaçãoexecutávelque objetosnoRMIRegistry.Rodeaaplicação: registra os %javaServicoDeMensagens “Servidordemensagensestánoar!.” • Neste exemplo será precisoiniciar o servidor no diretórioondeestãoosstubseinterfaceRemote; • Isto é para que o RMIRegistryveja o mesmo CLASSPATHqueorestodaaplicação;

  12. afinal, oqueéumSD? • Décimo passo:Executeocliente; • Finalmente,“chame” a máquina virtual Javapara inicializaroCliente.Nesteexemplo,eleprocurapelo serviçodenomeseusaoobjetoremotoviarede; JavaCliente

  13. afinal, o que éumSD? Exercícios Implementeoexemplomostrado, passandomensagensdiferentespara o objetoremoto.Tenteacessaroobjeto remotonamáquinadeumcolega

More Related