Você está na página 1de 20

INTRODUÇÃO

Um sistema distribuído é composto por programas executados em diferentes máquinas


e pode apresentar vantagens quando comparado a um sistema centralizado, como por
exemplo, acesso aos serviços em outras máquinas na rede; melhor desempenho devido
ao processamento distribuído; maior confiabilidade decorrente da replicação de dados,
máquinas e periféricos. Em geral, os sistemas distribuídos são, entretanto, mais difíceis
de desenvolver do que os centralizados devido à uma série de dificuldades decorrentes
da distribuição do processamento entre diversas máquinas.
Dessa forma é possível, a partir de uma aplicação cliente orientada a objetos, obter uma
referência para um objeto que oferece o serviço desejado e, através dessa referência,
invocar métodos desse objeto mesmo que a instância desse objeto esteja em uma
máquina diferente daquela do objeto cliente.
Objectivos
Geral
Reflectir sobre os objectos distribuídos.

Especificos
Conceituar objectos distribuídos;
Descrever os objectos de tempo de compilação e execução;
Identificar os objectos persistentes e de transição.
Objectos Distribuidos
Definição
Surgiu da necessidade de se atender aos requisitos de software mais exigentes, oriundos de
sistemas mais complexos.
Reusabilidade
Modularidade
Flexibilidade
Objetos Distribuídos = Programação Orientada a Objetos + Programação Distribuída.
Objectos distribuídos são programas independentes que podem estar localizados em
qualquer nó de uma rede, sendo acessados por clientes remotos via invocação de métodos.
Os clientes não precisam conhecer onde eles residem, isto é, se estão localizados na mesma
máquina do cliente ou não (Orfali et al., 1996), citado por BURGARELI (pag.29, 2003).
cont.
Um sistema de objectos distribuídos é aquele que permite a operação com objectos
remotos. O conceito básico que suporta plataformas de objectos distribuídos é o conceito
de arquiteturas de objectos, que estabelece regras, directrizes e convenções definindo
como as aplicações podem se comunicar e interoperar.
Os sistemas de objetos distribuídos permitem ainda serviços tais como:
- descoberta: permite que clientes localizem objetos que eles necessitam ;
- segurança;
- confiabilidade.
Características dos objectos distribuídos
Distribuição
Transparência
Tolerância a Falhas
Disponibilidade
Recuperabilidade
Concorrência no processamento
Concorrência nos objetos
Melhor desempenho
Cont.

A característica fundamental de um objecto é que ele encapsula dados, denominado


estado e, métodos, que são disponibilizados por meio de uma interface.
Modelos de objectos distribuidos
Existem vários modelos de objetos distribuídos disponíveis no mercado, como:
Corba;
DCOM;
JAVA/RMI.
Cont.
CORBA
O padrão CORBA (Common Object Request Broker Architeture), é um modelo proposto pela
OMG ( Grupo de Gerenciamento de Objetos), que permite aos objetos de sistemas
distribuídos comunicar-se entre si de forma transparente.
Utilizando o padrão CORBA é possível ter aplicações completamente distribuídas.
Potencialmente, com cada parte de software sendo executado em qualquer local da rede e
em qualquer plataforma, sem que o usuário perceba que isto está acontecendo, e sem que o
desenvolvedor precise se preocupar em criar soluções que resolvam os problemas de
interoperabilidade entre os diferentes pedaços da aplicação.
Cont.
DCOM (Distributed Component Object Model)
É uma tecnologia da Microsoft que permite aos componentes de software
comunicarem uns com os outros através de uma rede. O DCOM é baseado no COM
(Component Object Model) e permite que os componentes COM sejam usados em
aplicações distribuídas.
Java/RMI
RMI (Remote Method Invocation) é uma das abordagens da tecnologia Java para prover
as funcionalidades de uma plataforma de objetos distribuídos. Esse sistema de objetos
distribuídos faz parte do núcleo básico de Java desde a versão JDK 1.1.
Nessa implementação é preciso indicar que objetos dessa classe poderão ser
acessados remotamente.
Cont.

Um objecto propriamente dito reside em uma maquina do servidor, onde oferece a mesma
interface oferecida na maquina cliente.

Requisições de invocações que chegam são passadas para um apêndice servidor,


chamado esqueleto(skeleton), que as desmonta para fazer invocações de métodos na
interface de objectos que está no servidor.

O skeleton também é responsável por montar mensagens de respostas para o cliente.


Constituição de um objecto distribuído
Cont.
Toda interação com um objeto se dá através da invocação de seus métodos declarados
com públicos;
Métodos declarados como privados só podem ser invocados pelos demais métodos do
objeto.
Objetos tempo de compilação
São objetos criados durante o processo de criação de um programa. Esses objetos são
definidos pelo programador em seu código fonte e são traduzidos e compilados pelo
compilador em objetos que podem ser usados ​durante a execução do programa.

Os objetos de tempo de compilação são importantes porque permitem que o programador


verifique e valide a estrutura e a lógica do programa antes mesmo de sua execução. Eles
ajudam a garantir que o programa seja executado corretamente e que os erros sejam
detectados antes da compilação.
Objecto de tempo de execução

Objecto de tempo de execução é um objeto criado durante a execução de um programa ou


aplicação em tempo de execução. Esse objeto é criado dinamicamente no momento em que
a execução do programa alcança o código que o define.

Os objetos de tempo de execução são importantes para a execução de programas aquecidos


e para a manipulação de dados em tempo real. Eles podem ser usados ​para armazenar e
manipular informações em tempo de execução, permitindo que o programa responda a
mudanças no ambiente de execução de forma dinâmica.
Objectos persistentes
Um objecto persistente é o que continua a existir mesmo que, no momento em questão, ele
não esteja contido no espaço de endereços de qualquer processo servidor.
Objectos persistentes têm uma existência que pendura durante várias execuções do sistema:
Precisam ser armazenados quando uma execução termina e restaurados quando uma outra
execução é iniciada.
Os objetos persistentes são usados ​para armazenar informações importantes, como dados de
usuários, configurações de sistema e outras informações que são necessárias mesmo depois
que o programa é encerrado. Eles permitem que as informações sejam recuperadas e
actualizadas posteriormente, independentemente da duração da sessão do programa em
execução.
Objectos transitivos ou de transição

São objetos que podem ser transmitidos entre diferentes sistemas distribuídos por meio de
uma rede. Esses objetos são importantes para a comunicação e colaboração entre
diferentes sistemas distribuídos, permitindo que as informações sejam compartilhadas e
processadas entre diferentes sistemas.

Além disso, eles podem ser usados ​para melhorar a eficiência da comunicação entre
diferentes sistemas distribuídos.
CONCLUSÃO

A implementação de objetos distribuídos pode melhorar a interoperabilidade e a integrabilidade entre


diferentes sistemas de software, permitindo que eles trabalhem juntos de forma mais eficiente. O uso
de objetos distribuídos é uma tecnologia crítica para o desenvolvimento de sistemas distribuídos
modernos e eficientes, e é provável que continue a desempenhar um papel importante no futuro. E por
fim, os objetos distribuídos representam uma abordagem promissora para o desenvolvimento de
sistemas distribuídos complexos e é importante que os desenvolvedores estejam cientes de suas
vantagens e limitações.

Os objetos distribuídos são uma abordagem altamente valiosa para o desenvolvimento de


sistemas distribuídos complexos capazes de atender às demandas da computação moderna.

Você também pode gostar