290 likes | 411 Views
Sistemas Distribuídos. Carlos A. G. Ferraz DI/UFPE Aula 08. Objetos Distribuídos. Tópicos Orientação a Objetos Java DCOM Padrões Aplicação Exemplo. DCOM. ORB (Object Request Broker) específico para OLE/ActiveX Como CORBA, separa a interface de um objeto de seu implementação
E N D
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 08
Objetos Distribuídos Tópicos • Orientação a Objetos • Java • DCOM • Padrões • Aplicação Exemplo
DCOM • ORB (Object Request Broker) específico para OLE/ActiveX • Como CORBA, separa a interface de um objeto de seu implementação • Interfaces declaradas usando uma IDL • TypeLibrary: repositório de interfaces
DCOM (cont.) • Um objeto DCOM suporta uma ou mais interfaces • Servidor de objetos deve implementar a interface IClassFactory, que fornece mecanismos para instanciar objetos
DCOM - Servidores de Objetos • In-process • Rodam no mesmo processo que seus clientes • Implementados como bibliotecas de ligação dinâmicas (DLLs)
DCOM - Servidores de Objetos (cont.) • Out-of-process locais • Rodam em processo distinto do de seus clientes • Comunicação através de Lightweight RPC (LRPC)
DCOM - Servidores de Objetos (cont.) • Out-of-process remotos • Comunicação através de RPC semelhante ao DCE (Distributed Computing Environment), como em CORBA • Assim, a comunicação entre uma aplicação cliente e um servidor de objetos, local ou remoto, é transparente
DCOM - Comunicação • Do ponto de vista do cliente, o acesso a membros de uma classe é feito através de ponteiros para os elementos da interface • Como é feita a comunicação com servidores out-of-process?
DCOM - Com. (cont.) • O barramento gera objeto de comunicação (proxy object) • Proxy recebe chamada e converte em RPC • Na outra ponta (lado servidor), stub object faz ação inversa ao proxy object • Semelhante a CORBA!
DCOM • Um componente pode encapsular vários outros, escondendo-os dos processos externos • Interface única inteiramente consistente
DCOM Mecanismos de encapsulação • Por delegação (“clonagem”) • Componente externo encapsula outros componentes e reimplementa a interface de cada um deles • O componente externo redireciona chamadas para o membro correspondente do componente encapsulado (cont...)
DCOM Mecanismos de encapsulação • Por delegação (cont.) • O componente externo delega ao componente encapsulado a responsabilidade de executar o serviço requisitado (cont...)
DCOM Mecanismos de encapsulação (cont.) • Por agregação • Agrega objetos encapsulados dentro do objeto externo e disponibiliza interface diretamente para as aplicações clientes
Processamento Distribuído baseado em Objetos Iniciativas de Padronização • ODP/ISO • CORBA/OMG • DCOM/Microsoft (“padrão” Microsoft - base instalada)
ODP Open Distributed Processing • Comunicação aberta - OSI • Interfaces de HW padrão • Protocolos de comunicação • Processamento distribuído aberto - ODP • Plataformas-padrão de suporte ao processamento distribuído • Baseado em objetos • Encapsulação/Interfaces • Reutilização de componentes
ODP Pontos de Vista • Empresa - impacto nos sistemas da empresa • Informação - fluxo de informação • Computacional - interação entre componentes • Engenharia - componentes de suporte, plataforma • Tecnologia - tecnologia utilizada, incluindo hardware
OMG Object Management Group • 1000+ empresas • Comprometido com desenvolvimento de tecnologia de objetos • CORBA - Common Object Request Broker Architecture • Plataformas: Orbix/IONA, Visibroker/Visigenic, ... • Versão 2.0: interoperabilidade de ORBs/plataformas
CORBA (cont.) • Cooperação para desenvolvimento/incorporação de novos componentes + CFPs (Call For Proposals) • Basic services • Common facilities (horiz. & vert.) • Integração com ODP • Ex: IDL comum
Aplicação Exemplo Anotação de Mídias Contínuas • ANSA (Advanced Networked Systems Architecture) • Conforme ODP • ANSAware • Visões: • Computacional • Engenharia
Aplicação Exemplo Anotação de Mídias Contínuas • Principais objetivos • Reuso de software • Metologia baseada no paradigma de objetos • Suporte de alto nível a multimídia • Independência de S.O. • Abertura
Aplicação Exemplo Anotação de Mídias Contínuas • Usuários em potencial • Músicos • Críticos • Analisadores de discurso
Aplicação Exemplo Anotação de Mídias Contínuas • Componentes • Arquitetura • Aplicação
Aplicação Exemplo Anotação de Mídias Contínuas • Componentes de Arquitetura • Trader • NodeManager
Aplicação Exemplo Anotação de Mídias Contínuas (ex: música) • Componentes de Aplicação • Básicos • AudioServer (dispositivos E/S: auto-falante e microfone) • AudioStorageServer • VoiceRopeServer
Aplicação Exemplo Anotação de Mídias Contínuas • Componentes de Aplicação (cont.) • Aplicação • MusicPlayer • MusicAnnotator
Aplicação Exemplo Anotação de Mídias Contínuas • Interfaces principais • AudCtrl - abre novo canal de áudio • Audio - dados • Ass - manipula arquivo • Vrs - manipula banco de dados • Callback - notificação de eventos aos clientes • Rate - sincroniza/controla relógios lógicos
Aplicação Exemplo Anotação de Mídias Contínuas • Interfaces gráficas • AudioControl - volume de E/S • MusicPlayer - controle remoto (play, pause, skip, stop) e relógio (direção e velocidade) • Annotator - controle de anotações (posição, tipo (paused, continuous), duração) e relógio Os relógios nas GUIs mostram a sincronização entre os componentes
Aplicação Exemplo Anotação de Mídias Contínuas • Sincronização • Buffering no Servidor de Dispositivo (AudioServer) • Compensação de atraso • RateControl • Relógios lógicos • Threads (operação em background) Separação entre controle de dispositivo e ratecontrol é importante para manter abertura
Aplicação Exemplo Principais contribuições • Modelo de construção de aplicações multimídia • Suporte de alto nível a MM • Desenvolvimento conforme ODP