O que CORBA?

 

CORBA, da sigla Common Object Request Broker Architecture, a especificao de um OMA (object management architecture) que tem por objetivo a interoperabilidade entre diferentes sistemas computacionais e linguagens de programao atravs de ORBs, que so estruturas que permitem que os programadores faam chamadas de um computador a outro atravs de uma rede. O CORBA definido e padronizado pela OMG.

 

Explique, em linhas gerais, o funcionamento do CORBA e sua arquitetura.

 

O componente fundamental para o CORBA o ORB que tem a tarefa de facilitar a comunicao dos objetos. Provendo o IOR (Interoperable Object Reference), o ORB consegue localizar os objetos destinos e transmitir informao para ou das invocaes de mtodos remotos(RMI).

 

A interface para objetos CORBA especificado pela CORBA Interface Definition Language (IDL). Um compilador traduz a definio IDL em uma linguagem de programao (C++,Java) gerando IDL Stubs e skeletons que provm respectivamente um framework para o lado cliente e um proxy para o lado servidor.

 

Requisies e respostas entre objetos so entregues atravs de um formato padro definido pelo IIOP(Internet Inter-ORB Protocol).

 

O Dynamic Invocation Interface (DII) e o Dynamic Skeleton Interface (DSI) permitem que os objetos sejam criados sem um conhecimento prvio da interface IDL.

 

Requisies so empacotadas em um formato de plataforma independente, atravs do cliente stub(ou no DII) e desempacotadas no lado servidor em um formato especifico definido pelo IDL skeleton (ou no DSI) e peloo objeto adaptador, que serve como um mediador entre a implementao do objeto , o servidor, e o seu ORB, atravs disso desacoplando o cdigo usurio do processo ORB.

 

O Portable Object Adapter (POA) prove objetos CORBA com um conjunto de metodos comuns para acessar funes ORB, abrangendo autentiao de usurio para ativao de objetos e persistncia de objetos. Seu tarefa bsica, entretanto, criar referencia de objetos e despachar requisies ORB apontados para objetos destinos em seus respectivos servidores. Um servidor pode prover um numero qualquer de POAs, cada com seu prprio conjunto de seguranas. POA tambm prove um mecanismo para salvar e restaurar estados de objetos. Isto, junto com o uso do Implementation Repository (IMR), que cuida o start e o restart automtico dos servidores, realizam a persistncia dos objetos.

 

 

 

 

O que significa usar uma API DRB?

 

Mais conhecida como Data Request Broker (DRB) uma camada de acesso a dados heterogneos independente de sua forma de armazenamento fsico. DRB dividido em duas camadas transformando da fonte dos dados para o nvel da aplicao. As duas camadas so chamadas de DRB interface e a camada de implementao que possue os drivers especficos que suporta a leitura de cada tipo fsico de dado. Em pacotes ainda so quebrados em mais duas categorias os Facilities e services , ambos so conceitos amplamente usados na terminologia da arquitetura CORBA.

 

 

 

 

O que significa IIOP?

 

Internet interOrb Protocol, um protocolo de comunicao entre orbs CORBA, publicado pela OMG para uso na internet utilizando o protocolo TCP/IP.

 

 

 

 

O que vem a ser DII?

 

So as chamadas Dynamic Invocation Interfaces, so interfaces de invocao de requisies a objetos tem a mesma semntica de clientes usando chamadas com stubs gerados, usa-se pois clientes que usam stubs possuem limitaes das quais podemos ressaltar:

-    Somente certos tipos particulares de objetos podem ser acessados;

-       Cada cliente escrito para um numero fixo de interfaces;

-       As interfaces precisam ser conhecidas em tempo de compilao;

 

Quais linguagens so suportadas por CORBA?


Ada, C, C++, Lisp, Smalltalk, Java, COBOL, PL/I e Python, dentre outras.

O que IDL e qual seu propsito?


Interface Description Language descreve a interface entre os componentes utilizados (ex: um objeto); Permite uma camada de abstrao de linguagem de programao utilizada ou mesmo sistema operacional.

 

Para que serve a IDL?

 

A IDL (interface definition language), descreve as interfaces das implementaes dos objetos. Uma interface escrita em IDL especifica o formato da chamada das operaes providas pelo objeto e cada um dos parmetros de entrada ou sada necessrios para efetuar a operao.

 

Cite trs caracteristicas da IDL.

 

- A IDL independente do ORB e da linguagem utilizada nas implementaes de cliente e objeto, assim como da mquina e do sistema operacional.

- A IDL uma linguagem puramente declarativa, sem definio de variveis ou estruturas algortmicas. Na IDL so descritos apenas os tipos, as constantes e as operaes necessrias para especificar uma interface de objeto.

- A IDL refora uma idia de "encapsulamento", do conceito de orientao a objetos: os clientes podem somente acessar um objeto por meio daquilo que est definido em sua interface, jamais podem driblar isso e acessar diretamente usua implementao.

 

O que so os stubs e os skeletons e como os mesmos so gerados?

 

Os stubs e os skeletons so componentes intermedirios, entre um cliente e o objeto. O stub um componente do lado do cliente, que contm uma referncia para o objeto remoto. A partir desta referncia, chamamos o mtodo do objeto remoto, via ORB. O skeleton um componente do lado do servidor, e o ORB o usa para gerar a chamada de mtodo remota em uma chamada local no objeto. O skeleton traduz a chamada e os parmetros para a implementao especfica do objeto. No retorno, o skeleton novamente traduz os resultados e erros gerados e os envia de volta para o cliente via ORBs.

 

Cite tecnologias que podem ser utilizadas como alternativa ao CORBA.

 

Troca de mensagens via sockets ou utilizando RPC (no possuem as facilidades que a arquitetura CORBA oferece), DCOM (que basicamente roda em ambientes Windows), Java RMI (que possui uma restrio forte de linguagem de implementao) .NET Remoting (soluo proprietria pouco flexvel), etc.

 

Quais as vantagens de CORBA em relao a abordagens mais tradicionais, como sockets e RPC?

 

A comunicao em sistemas distribudos atravs de sockets ou mesmo de RPC feita de forma no padronizada, sem flexibilidade na hora do endereamento de objetos e de referncias no servidor. J o CORBA, disponibiliza meios de endereamento transparentes e exatos, tornando o trabalho do programador da aplicao mais simples. Alm disso, CORBA utiliza entidades intermedirias para a comunicao dos seus stubs, ao contrrio dos mtodos tradicionais, que no possuem uma facilidade deste tipo.