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

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

1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)

Apresentações semelhantes


Apresentação em tema: "1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)"— Transcrição da apresentação:

1 1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)

2 2 Características para Comunicação Inter-Processos via RMI. RMI é a extensão do modelo de invocação de método local, ou seja, invocação de método remoto. -> Middleware:. Transparência de Localização: O objeto que faz a invocação não diz se o objeto é local ou remoto.. Protocolos de Comunicação: São independentes dos protocolos da camada de transporte. Ver protocolo request-reply seção 4.4 pg. 145 (Coulouris 2001).. Sistemas Operacionais: As abstrações de alto nível do middleware são independentes de SO.. Uso de várias linguagens de programação

3 3 Interfaces. Organização de programas como conjuntos de módulos que se comunicam. Para controlar as possíveis interações entre módulos uma interface é definida para cada módulo. Permite que a implementação do módulo mude, mantendo-se a mesma interface.

4 4 Interfaces em Sistemas Distribuídos. Difere da interface entre módulos locais pois o outro módulo comunicante encontra-se em um espaço de endereçamento diferente.. Interface de Serviço: Uso em RPC. Interface Remota: Especifica os métodos de um objeto que ficam disponíveis para serem invocados por outros objetos residentes em espaços de endereçamento diferentes.. Interface Definition Language (IDL): São projetadas para definir interfaces (remotas inclusive) que permitam que objetos implementados em diferentes linguagens invoquem-se uns aos outros.

5 5 Comunicação entre Objetos Distribuídos. O modelo de objetos.. Objetos Distribuídos.. O modelo de Objetos Distribuídos.

6 6 Modelo de Objetos. Programa orientado a objetos como uma coleção de objetos interagindo. Um objeto se comunica com outro através da invocação de método, passando argumentos e recebendo resultados.. Referências de Objetos: Objetos podem ser acessados através de referências de objetos. A variável que diz manipular um objeto na verdade manipula uma referência a este objeto. Assim para invocar um método em um objeto, é necessário informar a referência do objeto, o nome do método e juntamente os argumentos de tal método.. Interfaces: Uma interface disponibiliza a assinatura de um conjunto de métodos (isto é, os tipos dos argumentos, valores de retorno e exceções), sem a implementação de tais métodos. (Em java uma classe pode implementar várias interfaces)

7 7 Modelo de Objetos. Ações: Em um programa orientado a objetos é a invocação de um método em algum objeto. Isso pode incluir argumentos. O objeto receptor da invocação, executa o método e retorna o controle a quem invocou. Consequências: - O estado do receptor pode mudar, - Outra invocação pode ser feita. Exceções: Disponibilizam um modo claro de tratar erros sem complicação do código.. Coleta de Lixo: Liberação do espaço ocupado pelos objetos quando eles não são mais necessários.

8 8 Objetos Distribuídos. Particionamento de um programa orientado a objetos onde os objetos ocupam localizações físicas diferentes.. Assim usando o modelo cliente/servidor, uma invocação deve ser enviada como uma mensagem para o objeto que reside remotamente. A invocação é executada e o resultado deve então ser enviado como uma mensagem.. A aplicação distribuída pode assumir outros modelos, que não o cliente/servidor, de forma que os objetos possam ser replicados em localizações distintas para disponibilizar tolerância a falhas, ou migrarem para aumentar a performance e disponibilidade.. Problema do acesso concorrente, gerando condições de corrida (race conditions). Os objetos devem se proteger utilizando primitivas de sincronização ou projetando seções críticas.

9 9 O Modelo de Objetos Distribuídos. Extensão ao modelo de objetos tradicional tornando-o aplicável a objetos distribuídos.. Assim cada processo contém uma coleção de objetos, sendo que alguns dos quais podem receber invocações, sejam remotas ou locais, enquanto outros apenas locais.. Invocações entre objetos em diferentes processos, sejam no mesmo computador ou não, são conhecidas como invocações de métodos remotos.. Objetos que podem receber invocações remotas são conhecidos como objetos remotos.

10 10 O Modelo de Objetos Distribuídos. Os seguintes conceitos são fundamentais para o modelo de objetos distribuídos: - Referência de Objeto Remoto: Objetos podem invocar métodos de objetos remotos, se eles possuem ou tem acesso a referência de objeto remoto de tal objeto. Uma referência de objeto remoto é um identificador que pode ser usado em um sistema distribuído para se referir a um particular e único objeto remoto. - Interface Remota: Todo objeto remoto tem uma interface remota que especifica quais de seus métodos podem ser invocados remotamente. Interfaces remotas como todas as interfaces, não tem construtores. Em CORBA há uma IDL para definir interfaces remotas, em Java, utiliza-se a própria linguagem.

11 11 O Modelo de Objetos Distribuídos Representação de uma referência de objeto remoto: end. Internet porta tempo n o do objeto interface remota do objeto 32 bits

12 12 O Modelo de Objetos Distribuídos. Ações em um Sistema de Objetos Distribuídos: Ocorrem da mesma forma que no modelo de objetos, através de uma invocação de método. Difere quando a invocação é feita para um objeto que não reside no mesmo espaço de endereçamento. Nesse momento é necessária a existência da referência de objeto remoto que pode ser obtida através de uma invocação de método remoto, de forma indireta, isto é, como resultado de uma invocação.. Coleta de Lixo em um Sistema de Objetos Distribuídos: Cooperação entre o coletor local e o remoto.. Exceções: Em Java todos os métodos remotos devem lançar exceções remotas caso ocorram erros durante o processamento da invocação remota.


Carregar ppt "1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)"

Apresentações semelhantes


Anúncios Google