150 likes | 216 Views
a fin a l, o q u e é u m S D ?. •. Na U nid ad e I v i m o s t o d a a p a r t e t e ó ri c a d e c o m o s ã o a p r e s e n t a d o s o s S i s t e m a D i s t ribuíd os , de s d e a p a r t e d a “ c a p a” d o s i s t e m a à d e t a l h e s p r e v e n t i v o s d a q u a l i d ad e
E N D
afinal,oqueéumSD? • NaUnidadeIvimostodaaparteteóricadecomosão apresentadososSistemaDistribuídos,desdeaparteda “capa”dosistemaàdetalhespreventivosdaqualidade edisponibilidadedeserviço; Apartirdestaunidade,iremostrabalharcomaparte • prática adjunto às SDS teorias essenciais para implementaçãode programando adistribuição ascendenteparaaspróximasaulas; UtilizaremosumaarquiteturabaseadaemobjetoscomlinguagemdeprogramaçãoJAVAemnossosexemploscomsockets,processos,nomeação,dentreváriasoutrascaracterísticasquecompõemosSDS; •
afinal,oqueéumSD? • Inicialmenteébomrelembraroquepodeserdefinido como invocaçãoremota baseado na comunicação distribuídaquefoivistaanteriormente; Noentanto,quandoutiliza-seessetermo,subtende-se • queosobjetosexecutemnomesmocomputadorouem computadores separados comunicando-se entre si através de vias denominadas chamadas de métodos remotos–RPC; • Na linguagemJava, a implementação desse conceito APISem Remote surgiunaJDKversão1.1comumpacotede meadosde 1997 que ficou conhecida como MethodInvocation–RMI; Possuisuacoleçãodefinidaemumpacotejava.rmi; •
afinal,oque éumSD? • O pacote de APIS que contém umconjunto de rotinas e bibliotecas configurarem permitem aos profissionais a codificação distribuída através da nomeação de atributos e métodos de acordo com a infraestrutura definidaparaoSD; • A nomeação ocorre, por exemplo, com as primitivas atribuídas, dentre elas “lookup” e “marshalling” que buscam“interagir”aimplementaçãodacomunicação comasredesparaforneceroserviçodeterminado; • Esseserviçoutilizaomodelo decomunicaçãocliente- servidor com aplicações chamadas que gerenciem a da movimentaçãode dosobjetos a partir instanciaçãodeváriasreferênciaseoperações;
afinal,oqueéumSD? • Ofuncionamentotorna-sesimples,poisérealizadode maneira “dividida” seguindo uma ordem para cada “lado”dosistemadeacordocomumasériedepassos; Aidentificaçãodaorigem/destinodoobjetoédefinidacomousodesocketsnoformatodeURLScomafunção • deregistrarosobjetos“publicamente”através darede demais para que sejam apresentados à todos os componentesdoSD: • O serviço de apresentação de nomes para o RMI, é e realizado pelo pacote java.rmi.Naming implementandopelométodoNaming.lookup;
afinal,oqueéumSD? • Jáoregistroé nomesespecial, Sintetizandoa executadoatravésdeumservidorde oRMIRegistry; ideia,osservidorestemafunção • específicadeinstanciarobjetosremotamenteedeixá- los disponíveis parao acessodos componentes de acordocomoserviçobuscado.A“porta”daaplicação evidenciaqualrecursoseráutilizadoouquaisobjetos serãoinvocados; Osclientes,pelocontrário,“pesquisam”pelos . nomes • dosobjetose suas devidas localizações, para qual recursoseráinvocado,deacordocomos parâmetros quesãopassadosàcadanovainstânciadesenvolvida pelosmétodos-pesquisar,comunicareintegrarJVMS;
afinal,oqueéumSD? • Oacessoaosobjetospelasviasdechamadasquesão utilizadaspeloRMI,assimcomonasredes,eparaa própriaprogramaçãoOOérealizadaporinterfaces; • As interfacesnestecontextovisamcompatibilizar (generalizar)osmétodosquepodemserinvocadosde diferentes pontos do sistema e por diferentes dispositivos,masdemaneiraqueopropósitodoserviço nãosejaalteradoduranteesteprocesso; • No RMI, a principal interface é conhecida como InterfaceRemota, objetoremotona realizamtodasas responsávelpelaimplementaçãodo transiçãoemobjetos(proxies)que tarefasnecessáriasparaviabilizara comunicaçãoemrede;
afinal, o que é um SD? • Arquitetura deInvocaçãodeObjetos Remotos;
afinal,oqueéumSD? • ApesardaarquiteturadoRMIsercompostaporobjetos, adivisãoemcamadastambémsetornapresentepara facilitaraabstraçãodosmétodos; ORMIimplementaainvocaçãobasicamenteatravésdetrêsníveisobjetivandofacilitaraprogramaçãodasAPIS • econsequentementeoresultadofinal; Seguindoahierarquiade“programação”,éimportantedestacarcada“camada”,emumaordemdecrescente,daseguintemaneira: • • • • Camada Camada Camada de dede StubseSkeletons; ReferênciasRemotas;Transporte;
afinal, o que é um SD? • Níveishierárquicos do RMI;
afinal,oqueéumSD? ACamadadeStubseSkeletonséconhecidaporestar • “próxima” do programador fornecendo o gerenciamentodiretodasaplicações(objetos)remotas; • Os Stubs são classes utilizadas peloladocliente da aplicação desempenhando afunção de “conectores” entreaaplicaçãoeoobjetosremotosparareceberos parâmetros dos métodosexportados pelos objetos remotoseosencaminhá-losparaoladodoservidor; • Já os Skeletonsrecebem esses parâmetros enviados objetos pelos Stubs e executam as chamadasdos remotosemitindorespostas.Elesrecebemosvaloresde retornodométodoremotoeosdirecionaparaosStubs dos clientes no mesmo formato solicitado anteriormente;
afinal, o que é um SD? • Camadasnumavisão“top-down”;
afinal,oqueéumSD? • A segunda camada, a Camada deReferência,é responsável justamente por mediaro formato da semânticadecomunicaçãodos objetosexistentedentre osStubse osSkeletons; • A função básicaé analisar os dados para enviados e de de recebidos pelose definir “rotas” ecom os dados acordo comos objetos osprotocolos transportedacamada inferior; • Apesar apenas castna de trabalhar como “router”,o RMI suporta omodelode comunicaçãoedistribuiçãouni- maioriadasimplementaçõesdeSDScom“fila” deesperadosdados;
afinal,oqueéumSD? • Aterceiracamada,aCamadadeTransporteabstraias funçõesdetransportecomunsdasredescomfocopara amovimentaçãodosdadosnos OprotocoloutilizadopeloRMI objetos; éoTCP/IP,nachamada • buscapela JVM através dos métodos de invocação locaisoudivididosadjuntosdasinterfacesremotascom a implementação de um protocolodenominado Java RemoteMethodProtocol(JRMP); • Ambos os protocolos formam um conjunto, onde o o primeirodesigna o controlede dados efluxo, e segundopossuicaracterísticasvoltadasparaosobjetos, comoporexemplonousodesocketseexceções;
afinal, o que é um SD? • ImplementaçãodapilhaJRMP;
afinal,oqueéumSD? • Vamosestudaropasso-a-passode comomontarumexemplobásicodeRMIutilizandoa ferramenta dedesenvolvimentoeclipse;