O que Ž CORBA?

 

CORBA, da sigla Common Object Request Broker Architecture, Ž a especifica�‹o de um OMA (object management architecture) que tem por objetivo a interoperabilidade entre diferentes sistemas computacionais e linguagens de programa�‹o atravŽs de ORBÕs, que s‹o estruturas que permitem que os programadores fa�am chamadas de um computador a outro atravŽs 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 comunica�‹o dos objetos. Provendo o IOR (Interoperable Object Reference), o ORB consegue localizar os objetos destinos e transmitir informa�‹o para ou das invoca�›es de mŽtodos remotos(RMI).

 

A interface para objetos CORBA Ž especificado pela CORBA Interface Definition Language (IDL). Um compilador traduz a defini�‹o IDL em uma linguagem de programa�‹o (C++,Java) gerando IDL Stubs e skeletons que prov�m respectivamente um framework para o lado cliente e um proxy para o lado servidor.

 

Requisi�›es e respostas entre objetos s‹o entregues atravŽs de um formato padr‹o 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 prŽvio da interface IDL.

 

Requisi�›es s‹o empacotadas em um formato de plataforma independente, atravŽs 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 implementa�‹o do objeto , o servidor, e o seu ORB, atravŽs disso desacoplando o c—digo usu‡rio do processo ORB.

 

O Portable Object Adapter (POA) prove objetos CORBA com um conjunto de metodos comuns para acessar fun�›es ORB, abrangendo autentia�‹o de usu‡rio para ativa�‹o de objetos e persist�ncia de objetos. Seu tarefa b‡sica, entretanto, Ž criar referencia de objetos e despachar requisi�›es ORB apontados para objetos destinos em seus respectivos servidores. Um servidor pode prover um numero qualquer de POAs, cada com seu pr—prio conjunto de seguran�as. POA tambŽm 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 autom‡tico dos servidores, realizam a persist�ncia dos objetos.

 

 

 

 

O que significa usar uma API DRB?

 

Mais conhecida como Data Request Broker (DRB) Ž uma camada de acesso a dados heterog�neos independente de sua forma de armazenamento f’sico. DRB Ž dividido em duas camadas transformando da fonte dos dados para o n’vel da aplica�‹o. As duas camadas s‹o chamadas de DRB interface e a camada de implementa�‹o que possue os drivers espec’ficos que suporta a leitura de cada tipo f’sico de dado. Em pacotes ainda s‹o quebrados em mais duas categorias os Facilities e services , ambos s‹o conceitos amplamente usados na terminologia da arquitetura CORBA.

 

 

 

 

O que significa IIOP?

 

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

 

 

 

 

O que vem a ser DII?

 

S‹o as chamadas Dynamic Invocation Interfaces, s‹o interfaces de invoca�‹o de requisi�›es a objetos tem a mesma sem‰ntica de clientes usando chamadas com stubs gerados, usa-se pois clientes que usam stubs possuem limita�›es 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 compila�‹o;

 

Quais linguagens s‹o suportadas por CORBA?


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

O que Ž IDL e qual seu prop—sito?


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

 

Para que serve a IDL?

 

A IDL (interface definition language), descreve as interfaces das implementa�›es dos objetos. Uma interface escrita em IDL especifica o formato da chamada das opera�›es providas pelo objeto e cada um dos par‹metros de entrada ou sa’da necess‡rios para efetuar a opera�‹o.

 

Cite tr�s caracteristicas da IDL.

 

- A IDL Ž independente do ORB e da linguagem utilizada nas implementa�›es de cliente e objeto, assim como da m‡quina e do sistema operacional.

- A IDL Ž uma linguagem puramente declarativa, sem defini�‹o de vari‡veis ou estruturas algor’tmicas. Na IDL s‹o descritos apenas os tipos, as constantes e as opera�›es necess‡rias para especificar uma interface de objeto.

- A IDL refor�a uma idŽia de "encapsulamento", do conceito de orienta�‹o 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 implementa�‹o.

 

O que s‹o os stubs e os skeletons e como os mesmos s‹o gerados?

 

Os stubs e os skeletons s‹o componentes intermedi‡rios, entre um cliente e o objeto. O stub Ž um componente do lado do cliente, que contŽm uma refer�ncia para o objeto remoto. A partir desta refer�ncia, chamamos o mŽtodo do objeto remoto, via ORB. O skeleton Ž um componente do lado do servidor, e o ORB o usa para gerar a chamada de mŽtodo remota em uma chamada local no objeto. O skeleton traduz a chamada e os par‰metros para a implementa�‹o espec’fica 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 (n‹o possuem as facilidades que a arquitetura CORBA oferece), DCOM (que basicamente roda em ambientes Windows), Java RMI (que possui uma restri�‹o forte de linguagem de implementa�‹o) .NET Remoting (solu�‹o propriet‡ria pouco flex’vel), etc.

 

Quais as vantagens de CORBA em rela�‹o a abordagens mais tradicionais, como sockets e RPC?

 

A comunica�‹o em sistemas distribu’dos atravŽs de sockets ou mesmo de RPC Ž feita de forma n‹o padronizada, sem flexibilidade na hora do endere�amento de objetos e de refer�ncias no servidor. J‡ o CORBA, disponibiliza meios de endere�amento transparentes e exatos, tornando o trabalho do programador da aplica�‹o mais simples. AlŽm disso, CORBA utiliza entidades intermedi‡rias para a comunica�‹o dos seus stubs, ao contr‡rio dos mŽtodos tradicionais, que n‹o possuem uma facilidade deste tipo.