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.