Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Sistemas disttribuids, Notas de aula de Informática

aula de sistemas destribuidos

Tipologia: Notas de aula

2013

Compartilhado em 24/05/2013

helecardino-cabral-7
helecardino-cabral-7 🇧🇷

4.8

(13)

56 documentos

1 / 21

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Tema: CORBA
Helicardino
Maximiano
Nelson
Nuri
Sidney
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Pré-visualização parcial do texto

Baixe Sistemas disttribuids e outras Notas de aula em PDF para Informática, somente na Docsity!

Tema: CORBA

Helicardino

Maximiano

Nelson

Nuri

Sidney

CORBA

A aplicação do modelo CORBA acontece para promover a intercomunicação de objectos distribuídos

em uma rede de computadores, a fim de executar alguma tarefa.

Entretanto, o CORBA é apenas uma parte de uma outra tecnologia também proposta pela OMG, a

OMA (Object Management Architecture), a qual compreende quatro componentes, descritos da

seguinte maneira:

Orientados ao Sistema: ORB's, Objectos de Serviços Orientados a Aplicação: Objectos de Aplicação,

Facilidades Comuns

ORB (Object Request Broker): componente definidor do barramento comum para a troca de

mensagens entre os objectos;

Objectos de Serviços (Common Object Services): serviços implementados por objectos do

sistema, utilizados para ampliar a funcionalidade do barramento de objectos (ORB);

Facilidades Comuns (Common Facilites): definem facilidades e interfaces no nível de aplicação;

Objectos de Aplicação (Application Objects): são os objectos.

A figura abaixo, demonstra melhor a Arquitectura do Modelo de Referência da OMG.  Objectos Serviços Esse tipo de objecto, nada mais é do que uma colecção de serviços (interfaces) que se apresentam independentes de qualquer domínio de aplicação e que abrangem funções básicas que poderão ser usadas para a implementação de um objecto. Na verdade, os objectos de serviços podem ser vistos como uma adição, um complemento das funções exercidas pelo ORB

Facilidades Comuns Assim como os objectos de serviços, as "facilidades comuns" também apresentam-se como uma colecção de serviços (interfaces), os quais podem ser compartilhados horizontalmente a nível de usuário final, diferentemente dos objectos de serviços que possuem seus serviços direccionados ao sistema (ORB). Outra diferença quanto aos objectos de serviços, é que os serviços oferecidos por essa interface (facilidades comuns) não são considerados fundamentais. Existem duas categorias de Facilidades Comuns: horizontal e vertical. Interfaces de Domínio Compreendem premissas parecidas com as dos objectos de serviços e das facilidades comuns, mas estas interfaces estão orientadas para o domínio de uma aplicação específica. Interface de Aplicação Interfaces desenvolvidas especificamente para uma determinada aplicação. O que juntamente ao fato da OMG não produzir aplicações, faz com que não haja uma padronização para essas interfaces

 (^) Semântica dos Objectos  (^) A principal característica de um objecto é disponibilizar um serviço a um determinado cliente, onde esse cliente é qualquer entidade capaz de requisitar tal serviço do objecto. Abaixo estão relacionadas algumas semânticas que serão abordadas no corpo deste trabalho:  (^) Objectos: é uma entidade de identidades encapsuladas, que tem a capacidade de prover serviços aos clientes.  (^) Requisições: é o nome dado ao evento que pode ser utilizado por um cliente para solicitar um serviço de um determinado objecto. Nesta operação, deve conter informações do tipo da operação executada, o objecto alvo, zero ou mais parâmetros, e alguns textos adicionais para a requisição.  (^) Formulário de requisição: é uma descrição ou padrão que podem ser avaliados ou executados em vários tempos para provocar uma emissão de pedido; Valores: entende-se por valores como sendo qualquer coisa que pode ser legalmente utilizada como parâmetro em uma requisição;

 (^) Componentes da Arquitectura CORBA  (^) A arquitectura CORBA é um conjunto complexo de partes que possuem suas particularidades e especificações, que têm como objectivo comum, promover um ambiente que atenda às especificações definidas pela OMG para o CORBA. Abaixo é mostrada a figura com a descrição das partes da família CORBA

 (^) Implementação de Objectos  (^) Entende-se como sendo as operações que podem ser implementadas em uma interface ORB IDL. Este componente tem informações de objectos, como dados internos, os códigos de seus métodos e seus respectivos procedimentos de activação e desactivação determinados na criação do objecto

ORB É responsável pela comunicação, de forma transparente, entre o cliente e a implementação do objecto desejado. O ORB é a principal arma na simplificação da programação em ambientes distribuídos, já que o mesmo libera os programadores de realizarem o árduo trabalho de programar a baixo nível os detalhes das invocações dos métodos.

. Interface ORB A interface ORB foi definida, dentro da especificação CORBA, como uma "interface abstracta" para o ORB, servindo como uma biblioteca de ajuda para os serviços locais do mesmo (ORB). Onde ainda, por esta interface se tratar de uma entidade lógica, pode ser implementada de diversas maneiras, portanto, a interface ORB vem justamente para desacoplar as aplicações dos detalhes de cada uma dessas implementações de ORB Interface de Invocação Dinâmica (DII) Permite ao cliente, por meio do descobrimento dos métodos em tempo de execução, um acesso directo aos mecanismos de requisição residentes em um ORB e também que realizem uma sincronização deferida não- bloqueada (operações separadas de envio e recebimento) e chamadas unidireccionais (só de envio). Neste tipo de invocação, esse processo é feito de forma dinâmica sem necessitar passar pela interface específica da IDL para que seja activado (Stub).

Invocações Entende-se por invocação, como sendo o processo utilizado para se chamar um determinado método para que possa ser feito um acesso a um serviço de um determinado objecto. A especificação CORBA provê dois diferentes tipos de processos de invocações que podem ser feitos ao objecto alvo: Estática e Dinâmica. Invocação Estática Este tipo de invocação é gerado directamente em um formulário do stub, e compilada pelo compilador IDL. Nessa invocação, o cliente está ciente de quais objectos e métodos estão disponíveis além de ter todas as interfaces do sistema já definidas. É perfeito para programas que na hora de compilar a invocação, sabem quais as operações que vão precisar usar. Stubs: conhecidos também como proxies, por possuírem a capacidade de localizar os objectos alvos, estão localizados no lado do cliente, e são gerados a partir da compilação da interface do cliente definida anteriormente em IDL Skeletons: estes por sua vez, executam função similar ao Stub do cliente, porém encontram-se situados no "lado" do servidor. Os Skeleton disponibilizam os métodos dos objectos servidores para o resto do sistema

Invocação Dinâmica As invocações dinâmicas, caracterizam-se por permitir que programa/clientes possam dinamicamente construir e invocar requisições a objectos. Todas as informações necessárias para que o cliente possa realizar o processo de invocação, são encontradas no Repositório de Interfaces Interface de Invocação Dinâmica (DII) Trata-se de uma interface que permite, através de um acesso directo aos mecanismos de requisição providos por um ORB, descobrir ou construir dinamicamente uma invocação a um objecto, permitindo a inclusão do mesmo sem que seja necessário um conhecimento prévio de quais objectos ou métodos estão disponibilizados Interface Skeleton Dinâmica (DSI): Este trabalha de forma similar ao DII, entretanto, oferece seus recursos para os objectos servidores, permitindo-lhes que novos objectos servidores sejam criados sem a necessidade de se usar os Skeletons. A figura abaixo ilustra o funcionamento de uma DSI:

Repositório de Interfaces O Repositório de Interfaces, ou IR, é um componente utilizado pela IDL para se armazenar todas as definições dos seus objectos. Esse componente deve estar sempre disponível tanto ao cliente como também ao ORB e às implementações, para isso, pode-se adicionar, excluir ou mesmo executar a depuração dessas tais interfaces, além de também se poder ter suas operações invocadas como qualquer outro objecto. Adaptador de Objectos O Adaptador de Objectos, é um componente da especificação CORBA que exerce o papel de intermédio na comunicação entre os objectos e o ORB, ajudando o ORB a entregar as requisições à implementação dos objectos bem como também ajuda na activação dos objectos. Esse componente se faz necessário devido a grande diversidade existente de implementações de objectos Interoperabilidade Com o avanço da tecnologia CORBA, foram surgindo no mercado ORB’s de diferentes fabricantes. Isso é positivo no sentido que permite às diversas empresas desenvolvedoras produzirem produtos que melhor se adaptem as especificações e necessidades de cada um desses ORB’s, entretanto, a primeira versão do CORBA só trata de interoperabilidade entre ORB’s de um mesmo fabricante, com isso surge a necessidade de novos padrões, conceitos que permitam a relação entre esses novos ORB’s (fabricantes diferentes).

. Segurança A Arquitectura CORBA implementa alguns serviços que visam a segurança na transmissão das operações realizadas, como exemplo temos: - Autenticação: trata-se de um identificador único, que permite ao cliente acessar qualquer servidor em qualquer lugar. Essa autorização se procede a partir de um simples logon, que pega a autenticação e lhe oferece um conjunto de opções de segurança para a comunicação. Para uma maior segurança, nenhuma palavra-chave é armazenado no login script do cliente. Após feita a autenticação de um cliente em um determinado ORB da rede, o mesmo (ORB) se encarrega de propagar a autenticação por todo o resto da rede. - Autorização: após feita a autenticação do cliente, os servidores de objectos ficam encarregados de verificar quais operações podem ser feitas por aquele determinado cliente. Para tal, os servidores usam as ACLs que contém uma lista de nomes e suas respectivas operações que podem ser executadas pelos mesmos. É possível implementar várias políticas de ALC, podendo ser implementadas tanto pelo ORB como pelos servidores de objectos.

 Arquitectura de Aplicações Baseadas na Internet

Actualmente existem vários tipos de arquitecturas além da de objectos distribuídos, que permitem

utilizar-se de aplicações baseadas na Internet / Intranet. Sem dúvida, a arquitectura baseada em objectos

distribuídos é muito superior em relação às demais. Abaixo, pode-se ver uma breve descrição das

características de arquitecturas utilizadas na Web, e poderá chegar a conclusão, como foi dito, que

arquitectura de objectos distribuídos, na Web, é superior em relação as demais.

 Arquitectura Baseada em http

Neste tipo de arquitectura, para a comunicação entre o cliente e o servidor Web (a partir de um browser),

é utilizado o já tão conhecido por todos internautas, protocolo http, e a nível de comunicação entre o

servidor Web e seus dados, é utilizado o protocolo CGI e seus derivados. Este protocolo, apesar de ser

ainda o mais difundido e utilizado, apresenta algumas deficiências como:

O CGI requer a criação de um processo para cada requisição que é feita;

 Os servidores ficam responsáveis em gerar uma apresentação em HTML para o cliente, ocasionando

assim um tráfego adicional na rede por necessitar fazer uma leitura a mais no servidor.

O protocolo http não interage muito bem com o TCP (Protocolo de Transporte utilizado na Internet);

Arquitectura Baseada em Protocolos "Pessoais" Como o próprio nome já diz, nesse tipo de arquitectura, o protocolo utilizado é de carácter pessoal, a critério do programador, ou seja, não está vinculado a nenhum conhecido no mercado (http), entretanto nesse tipo de arquitectura, o programador precisará ter muito mais conhecimento em programação de baixo nível de rede, já que ele será responsável por programar as funções que o protocolo precisará realizar, tornando assim muito mais difícil a sua concretização Arquitectura Baseada em Objectos Distribuídos Com o avanço da tecnologia, e com o advento de novos conceitos na programação, surgiu um novo marco na arquitectura de comunicação entre cliente e o servidor Web, justamente uma nova arquitectura que se baseia no recente conceito dos objectos distribuídos. As vantagens que essa nova arquitectura trouxe, deixaram obsoletas as arquitecturas baseadas em protocolos pessoais e fizeram com que as tradicionais http fossem rebaixadas para níveis de sistemas menos complexos e interactivos