A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "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"— Transcrição da apresentação:

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


Carregar ppt "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"

Apresentações semelhantes


Anúncios Google