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.