Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRaul Monteiro Gorjão Alterado mais de 7 anos atrás
1
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/SD2006 Aula 19-20: Middleware: Exemplo com Java RMI, RPC, Modelo de Eventos
2
Instituto de Informática - UFG Exemplo de RMI: Java RMI ● Definição de interfaces ● Implementação do servidor ● Implementação de objeto ● Implementação do cliente
3
Instituto de Informática - UFG Java RMI: Exemplo de interface i mport java.rmi.*; import java.util.Vector; public interface Shape extends Remote { int getVersion() throws RemoteException; GraphicalObject getAllState() throws RemoteException; } public interface ShapeList extends Remote { Shape newShape(GraphicalObject g) throws RemoteException; Vector allShapes() throws RemoteException; int getVersion() throws RemoteException; }
4
Instituto de Informática - UFG Java RMI: a classe Naming do RMIregistry void rebind (String name, Remote obj) This method is used by a server to register the identifier of a remote object by name, as shown in Figure 15.13, line 3. void bind (String name, Remote obj) This method can alternatively be used by a server to register a remote object by name, but if the name is already bound to a remote object reference an exception is thrown. void unbind (String name, Remote obj) This method removes a binding. Remote lookup(String name) This method is used by clients to look up a remote object by name, as shown in Figure 15.15 line 1. A remote object reference is returned. String [] list() This method returns an array of Strings containing the names bound in the registry.
5
Instituto de Informática - UFG Java RMI: Implementação do servidor import java.rmi.*; public class ShapeListServer{ public static void main(String args[]){ System.setSecurityManager(new RMISecurityManager()); try{ ShapeList aShapeList = new ShapeListServant(); Naming.rebind("Shape List", aShapeList ); System.out.println("ShapeList server ready"); } catch(Exception e) { System.out.println("ShapeList server main " + e.getMessage());} }
6
Instituto de Informática - UFG Java RMI: Implementação de objeto (servant) import java.rmi.*; import java.rmi.server.UnicastRemoteObject; import java.util.Vector; public class ShapeListServant extends UnicastRemoteObject implements ShapeList { private Vector theList; // contains the list of Shapes private int version; public ShapeListServant() throws RemoteException{...} public Shape newShape(GraphicalObject g) throws RemoteException { version++; Shape s = new ShapeServant( g, version); theList.addElement(s); return s; } public Vector allShapes()throws RemoteException{...} public int getVersion() throws RemoteException {... } }
7
Instituto de Informática - UFG Java RMI: Cliente import java.rmi.*; import java.rmi.server.*; import java.util.Vector; public class ShapeListClient{ public static void main(String args[]){ System.setSecurityManager(new RMISecurityManager()); ShapeList aShapeList = null; try{ aShapeList = (ShapeList) Naming.lookup("//fmc.ShapeList"); Vector sList = aShapeList.allShapes(); } catch(RemoteException e) {System.out.println(e.getMessage()); }catch(Exception e) {System.out.println("Client: " + e.getMessage());} }
8
Instituto de Informática - UFG Classes que dão suporte a Java RMI RemoteServer UnicastRemoteObject Activatable RemoteObject
9
Instituto de Informática - UFG Exercício prático ● Executar o exemplo de RMI apresentado acima completar a implementação compilar e gerar os artefatos necessários demonstrar a execução ● Verificação e esclarecimento de dúvidas em aula prática (laboratório) 15/09
10
Instituto de Informática - UFG RPC Chamada de Procedimentos Remotos
11
Instituto de Informática - UFG Implementação de RPC client Request Repl y Communication module dispatcher service client stub server stub procedur e client processserver process procedur e program Qual a diferença notável em relação a RMI?
12
Instituto de Informática - UFG Exemplo de definição de interface utilizando a linguagem Sun XDR const MAX = 1000; typedef int FileIdentifier; typedef int FilePointer; typedef int Length; struct Data { int length; char buffer[MAX]; }; struct writeargs { FileIdentifier f; FilePointer position; Data data; }; struct readargs { FileIdentifier f; FilePointer position; Length length; }; program FILEREADWRITE { version VERSION { void WRITE(writeargs)=1;1 Data READ(readargs)=2;2 }=2; } = 9999;
13
Instituto de Informática - UFG Notificação de Eventos
14
Instituto de Informática - UFG Eventos e notificações (modelo Publish-Subscribe) ● Modelo de comunicação assíncrona entre gerador de eventos (objetos de interesse) e consumidores de eventos (assinantes) ● Eventos são comunicados via notificações ● Completo desacoplamento entre geradores e consumidores de eventos um gerador de eventos não sabe quais consumidores recebem suas notificações ● Tipos de eventos tipos de dados envolvidos em um evento
15
Instituto de Informática - UFG Eventos e notificações: Exemplo
16
Instituto de Informática - UFG Arquitetura distribuída para notificação de eventos subscriberobserverobject of interest Event service object of interest observer subscriber 3. 1. 2. notification
17
Instituto de Informática - UFG Papéis dos componentes de uma arquitetura de eventos ● Objeto de interesse gerador de eventos de algum tipo especificado ● Evento ocorrência em um objeto de interesse ● Notificação objeto que contém informação sobre um evento, utilizado para comunicá-lo aos interessados ● Assinante objeto que registra interesse por notificações de certo tipo de evento
18
Instituto de Informática - UFG Papéis dos componentes de uma arquitetura de eventos (2) ● Objeto Observador intermediador entre objetos de interesse e assinantes implementa a lógica de notificação ● detecção de eventos; encaminhamento, filtragem e correlação de eventos (para detectar padrões); caixa postal de eventos seu uso é opcional ● Publicador torna tipos de eventos conhecidos do público pode ser o objeto observador ou o próprio objeto de interesse que gera o evento
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.