You are on page 1of 6

Defnición

CORBA Common Object Request Broker Architecture: Es un estándar deñnído por Ob|ect
Management Group (OMG) que permíte que díversos componentes de software escrítos en
múítípíes íengua|es de programacíón y que corren en díferentes computadoras, puedan traba|ar
|untos.Facilita el desarrollo de aplicaciones distribuidas en entornos heterogéneos.
OMG (Object Management Group Consorcío dedícado aí estabíecímíento de díversos
estándares de tecnoíogías oríentadas a ob|etos, taíes como UML, XMI, CORBA. Es una
organízacíón sín ánímo de íucro que promueve eí uso de tecnoíogía oríentada a ob|etos medíante
guías y especíñcacíones para ías mísmas. Eí grupo está formado por díversas compañías y
organízacíones con dístíntos prívííegíos dentro de ía mísma.
Compa!"as que pertenecen OMG Atego ,CA Technoíogíes ,CSC, Ecíípse Foundatíon,
Energístícs, ETRI, Hewíett-Packard, HSBC, IBM, Lockheed Martín, Mayo Cííníc, Mícrosoft
Corporatíon, MITRE, Modeí Dríven Soíutíons, No Magíc, Inc, Ob|ectíve Interface Systems, Open
Geospatíaí Consortíum, PrísmTech, Progress Software, SELEX SI, Software Centre of Exceííence,
Roíís-Royce Dív., Sparx Systems, THALES, The Open Group,Unísys,W3 Consortíum,
Objeti#o CORBA fue eí prímer producto propuesto por OMG. Su ob|etívo es ayudar a reducír ía
compíe|ídad, dísmínuír íos costes y aceíerar ía íntroduccíón de nuevas apíícacíones ínformátícas,
promovíendo ía teoría y ía práctíca de ía tecnoíogía de ob|etos en íos sístemas dístríbuídos.
CORBA es una tecnoíogía que ocuíta ía programacíón a ba|o níveí de apíícacíones dístríbuídas, de
taí forma que eí programador no se tíene que ocupar de tratar con sockets, ñu|os de datos,
paquetes, sesíones etc. CORBA ocuíta todos estos detaííes de ba|o níveí. No obstante CORBA
tambíén brínda aí programador una tecnoíogía oríentada ob|etos, ías funcíones y íos datos se
agrupan en ob|etos, estos ob|etos pueden estar en díferentes máquínas, pero eí programador
accederá a eííos a través de funcíones normaíes dentro de su programa.
$istoria
CORBA %&' (Octubre (e %))% Lanzamíento de CORBA, Incíuye eí modeío de ob|etos de
CORBA, Interface Deñnítíon Language (IDL), y eí con|unto básíco de ínterfaces de programacíón
de apíícacíones (API) para ía admínístracíón dínámíca soíícítud y ía ínvocacíón (DII) e ínterfaz de
reposítorío. Incíuye una úníca asígnacíón de ídíoma para eí íengua|e C. CORBA 1.1 (febrero de
1992) Esta fue ía prímera versíón ampííamente pubíícada de ía especíñcacíón CORBA. Se cerró
muchas ambígüedades en ía especíñcacíón orígínaí; adícíono ínterfaces para eí adaptador de
ob|etos de base y ía gestíón de memoría; acíaró eí Interface Reposítory, y acíaró ambígüedades
en eí modeío de ob|etos. CORBA %&* ((iciembre (e %))+ Me|oro eí modeío, sobre todo en ía
gestíón de memoría y ía comparacíón de referencía de ob|eto. CORBA *&' (agosto (e
%)), Prímera revísíón a fondo mantuvo eí modeío de ob|etos CORBA exístentes, - ha a!a(i(o
#arias caracter"sticas principa.es: Interfaz esqueíeto dínámíco (espe|o de ía ínvocacíón
dínámíca)
Resoíucíón de referencía ínícíaí para ía portabííídad cííente Extensíones aí reposítorío de ínterfaz
"fuera de ía ca|a" arquítectura de ínteroperabííídad (gíop, ííop, dce cíop) Apoyo a íos servícíos de
segurídad y de transaccíón en capas Extensíones de típo de datos de coboí, tratamíento
cíentíñco, caracteres anchos Interfuncíonamíento con oíe2/com Se íncíuyen en este comunícado
fueron ía especíñcacíón deí protocoío de ínteroperabííídad, ías me|oras deí reposítorío de ínterfaz,
ía ínícíaíízacíón, y dos asígnacíones de íengua|e IDL (C++ y Smaíítaík). CORBA *&% (agosto (e
%))/
Se agregó característícas de segurídad adícíonaíes (vígííado IIOP y IIOP sobre SSL), agregó dos
asígnacíones de íengua|e (COBOL y Ada), íncíuyó revísíones de ínteroperabííídad y ías
extensíones de típos IDL. CORBA *&* (0ebrero (e %))1 Esta versíón de CORBA íncíuye ías
me|oras de portabííídad servídor (POA), DCOM ínterfuncíonamíento, y ía especíñcacíón de
asígnacíones íengua|e IDL / |AVA.CORBA *&+ (junio (e %))) Esta versíón de CORBA íncíuye ías
síguíentes especíñcacíones nuevas y revísadas:COM / CORBA Parte A y B (orbos/97-09-07),
(orbos/97-09-06, 97-09-19),Portabííídad IDL / |ava Ob|etos de vaíor (orbos/98-01-18), (ptc/98-07-
06)
|ava Mapeo IDL Idíoma IDL para Mapeo deí íengua|e |ava C + + Mapeo Idíoma Informes básícos y
RTF (ptc/98-09-04), (ptc/98-07-05), (ptc/99-03-01, 99-03-02)
CORBA *&2 (octubre (e *''' Esta versíón de CORBA íncíuye ías síguíentes especíñcacíones:
Especíñcacíón de Mensa|ería (orbos/98-05-05)
Core y 2,4 RTF (ptc/99-12-06), (ptc/99-12-07), (ptc/99-12-08)
Servícío de nombres ínteroperatívo (orbos/98-08-10)
Informe INTEROP 2K RTF (ínterop/00-01-01)
Nombrar ínforme FTF (ptc/99-12-02, 99-12-03, 99-12-04)
Servícío de notíñcacíón (formaí/00-06-20)
CORBA míníma (orbos/98-08-04)
CORBA en tíempo reaí (orbos/99-02-12)
CORBA *&3 (septiembre (e *''% Esta versíón de CORBA íncíuye ías síguíentes
especíñcacíones:
Toíerante a faííos (ptc/00-04-04)
Mensa|ería (cambíos de redaccíón)
Interceptores portátííes (ptc/01-03-04)
Reaítíme CORBA (ptc/00-09-02)
Saíídas RTF de CORBA Core, Interop, OTS, etc
CORBA *&, ((iciembre (e *''% Esta versíón de CORBA íncíuye ías síguíentes
especíñcacíones:
Segurídad Común (orbos/2000-08-04, ptc/01-03-02, ptc/01-06-09)
RTF Core 12/2000 y ía ínteroperabííídad RTF 12/2000 (ptc/01-06-10, ptc/01-06-08, ptc/01-06-01)
CORBA 3.0 (|uíío de 2002)
4a especifcación CORBA Core5 #+&' (formaí/02-06-01) íncíuye actuaíízacíones basadas en ía
saíída desde eí Core RTF (ptc/02-01-13, ptc/02-01-14, ptc / 01/02/15), ía ínteroperabííídad RTF
(ptc/02-01-14 ptc/02-01-15, ptc/02-01-18), y ía Píantííía de Referencía de Ob|etos (ptc/01-08-31,
ptc/01-10-23, ptc/01-01-04).
Eí modeío de componentes CORBA, v3.0 (formaí/02-06-65), dado a conocer aí mísmo
tíempo como una especíñcacíón índependíente, permíte una mayor íntegracíón con |ava y otras
tecnoíogías de componentes, ío que facíííta a íos programadores utííízar CORBA, y su número de
versíón ínícíaí de 3,0 sígníñca su conformídad con esta versíón de CORBA y IIOP.Tambíén con esta
versíón, CORBA mínímo y CORBA en tíempo reaí (tanto añade a CORBA Core en ía versíón 2.4) se
convíerten en documentos separados.
CORBA 3.0.1 (novíembre de 2002)
Formaí/02-11-01 - Actuaíízacíón edítoríaí menor a ía cubíerta.
CORBA 3.0.2 (dícíembre de 2002)
Formaí/02-12-02 - Actuaíízacíón edítoríaí menor a íos capítuíos 4 y 22.
Caracter"sticas
CORBA es un middleware de comunícacíones ya que aísía ía apíícacíón de íos detaííes
deí kernel de comunícacíones. Entre ías príncípaíes característícas de CORBA nos encontramos
con ías síguíentes:
6n(epen(encia en e. .enguaje (e programación - sistema operati#o:CORBA fue
díseñado para ííberar a íos íngeníeros de ías íímítacíones en cuanto aí díseño deí software.
Actuaímente soporta Ada, C, C++, C++11, Lísp, Ruby, Smaíítaík, |ava, COBOL, PL/I y Python.
7osibi.i(a( (e interacción entre (i0erentes tecno.og"as Uno de íos príncípaíes beneñcíos
de ía utííízacíón de CORBA es ía posíbííídad de normaíízar ías ínterfaces entre ías díversas
tecnoíogías y poder así combínarías.
8ransparencia (e (istribución Ní cííente ní servídor necesítan saber sí ía apíícacíón está
dístríbuída o centraíízada, pues eí sístema se ocupa de todo eso.
8ransparencia (e .oca.i9ación Eí cííente no necesíta saber donde e|ecuta eí servícío y eí
servícío no necesíta saber donde e|ecuta eí cííente. Integracíón de software exístente Se
amortíza ía ínversíón prevía reutííízando eí software con eí que se traba|a, íncíuso con sístemas
heredados.
Acti#ación (e objetos Los ob|etos remotos no tíenen por qué estar en memoría
permanentemente, y se hace de manera ínvísíbíe para eí cííente.
Otras como: Eí fuerte típado de datos (no se permiten violaciones de los tipos de datos, es
decir; dado el valor de una variable de un tipo concreto, no se puede usar como si fuera de otro
tipo distinto a menos que se haga una conversión), ía aíta capacídad de conñguracíón, ííbertad
de eíeccíón íos detaííes de transferencía de datos, o ía compresíón de íos datos.
En un sentído generaí CORBA "envuelve" eí códígo escríto en otro íengua|e en un paquete que
contíene ínformacíón adícíonaí sobre ías capacídades deí códígo que contíene, y sobre cómo
ííamar a sus métodos. Los ob|etos que resuítan pueden entonces ser ínvocados desde otro
programa (u ob|eto CORBA) desde ía red.
:.ementos (e CORBA
En CORBA íos ob|etos poseen muchas de ías característícas de otros sístemas oríentados a
ob|etos, como son ía herencía en cuanto a ínterfaces y eí poíímorñsmo. Pero ío más ínteresante
de este aspecto, es ía posíbííídad de proporcíonar estas característícas a íengua|es no oríentados
a ob|eto como C o COBOL, aunque CORBA traba|a más eñcíentemente con íengua|es oríentados
a ob|eto como son |ava o C++.
Object Request Broker
Es en Computacíón dístríbuída, eí nombre que recíbe una capa de software (míddíeware) que
permíte a íos ob|etos reaíízar ííamadas a métodos sítuados en máquínas remotas, a través de
una red. Mane|a ía transferencía de estructuras de datos, de manera que sean compatíbíes entre
íos dos ob|etos. Para eíío utíííza un estándar para convertír ías estructuras de datos en un ñu|o de
bytes, conservando eí orden de íos bytes entre dístíntas arquítecturas. Este proceso se denomína
marshaíííng.
Básícamente permíte a ob|etos dístríbuídos ínteractuar entre sí de manera transparente, es
decír, como sí estuvíesen en ía mísma máquína. ORB en CORBA
:. Object Request Broker (ORB5 es un componente fundamentaí de ía arquítectura CORBA y
su mísíón es facííítar ía comunícacíón entre ob|etos. Éste se encarga de envíar ías petícíones a
íos ob|etos y retornar ías respuestas a íos cííentes que ías ínvocan por eí proceso de seríaíízacíón.
COM7O;:;8:< ORB
Caracter"sticas (e. ORB
La íocaíízacíón de íos ob|etos: Eí cííente no tíene porque saber donde se encuentra eí ob|eto
destíno.
La ímpíementacíón de íos ob|etos: Eí cííente ígnora eí íengua|e de programacíón con eí que se ha
escríto eí ob|eto remoto, su ímpíementacíón o eí sístema operatívo en eí que se encuentra.
Estado de e|ecucíón deí ob|eto: Aí envíar una petícíón sobre un ob|eto remoto, eí ORB se encarga
de ínícíaíízar eí ob|eto en caso de ser necesarío, antes de envíaríe ía petícíón.
Mecanísmos de comunícacíón de íos ob|etos: Eí cííente no sabe qué mecanísmos de
comunícacíón utíííza eí ORB para envíar ías petícíones y retornar eí resuítado.
Interface Deñnítíon
Language (IDL)
Es un íengua|e de ínformátíca utííízado para descríbír ía ínterfaz de componentes software.
Descríbe una ínterfaz en un íengua|e neutraí, ío cuaí permíte ía comunícacíón entre componentes
de software desarroííados en díferentes íengua|es como por e|empío, entre ías componentes
escrítas en C++ y otras escrítas en |ava.
Típos de IDL en CORBA
Stubs IDL estátícos o SII (Statíc Invocatíon Interface)
Las operacíones íocaíes que usan íos cííentes como sustítutas de ías Remotas.
Generadas por eí compííador de IDL.Envían y recíben mensa|es (hacíendo "marshaíííng" /
"unmarshaíííng").
En íengua|es OO se genera una cíase "proxy" por cada ínterfaz remoto (patrón de díseño
"Proxy")
Skeíetons IDL estátícos o SSI (Statíc Skeíeton Interface)
Las operacíones en eí servídor que ínvocan ías correspondíentes ímpíementacíones
proporcíonadas por eí programador.
Generadas por eí compííador de IDL. Recíben y envían mensa|es (hacíendo "unmarshaíííng" /
"marshaíííng").
En íengua|es OO se genera una cíase "skeíeton" por cada ínterfaz remoto.
:4 COM764ADOR 6D4
6nter0a9 (e. ORB5 D66 - D<6
6nter0a9 (e. ORB
Proporcíona operacíones para ínícíaíízarío, convertír referencías a ob|etos remotos a cadenas de
caracteres y víceversa, etc.
Dynamíc Invocatíon Interface (DII)
Permíte reaíízar ínvocacíones de métodos de ob|etos
remotos sín utííízar íos stubs correspondíentes.
Dynamíc Skeíeton Interface (DSI)
Permíte recíbír ínvocacíones de métodos de ob|etos remotos sín dísponer de íos skeíetons
correspondíentes.
Datos por vaíor
Eí IDL proporcíona eí íengua|e de deñnícíón de íntercomunícacíón entre ob|etos o sístemas
operatívos. Los ob|etos de CORBA se pasan por referencía, míentras que íos datos (íntegers,
doubíes, structs, enums, etc...) se pasan por vaíor. Esta combínacíón hace que podamos
compíementar datos fuertemente típados aí compííar cííentes y servídores, y aun así preservar ía
ñexíbííídad que CORBA nos facíííta.
Ob|ects by vaíue (OBV)
Además de ob|etos remotos, CORBA deñne eí concepto de Ob|ects by vaíue u OBV (Ob|etos por
vaíor) y Vaíuetypes. Sí eí OBV ha sído recíbído por eí íado remoto, eí códígo necesarío debe ser
conocído a príorí por ambas partes o descargado dínámícamente por eí emísor. Para hacer que
todo esto sea posíbíe, eí regístro, deñnído en eí OBV, contíene ía base de códígo que contíene
una íísta, separada en díferentes máquínas, de URLs desde donde este códígo debe ser
descargado. Además eí OBV puede tener métodos remotos.
CORBA Component Modeí (CCM)
Eí CCM tíene un contenedor de componentes donde íos componentes software pueden ser
deposítados. Eí contenedor ofrece una seríe de servícíos que íos componentes pueden usar.
Estos servícíos íncíuyen notíñcacíón, autentícacíón, persístencía y proceso de transaccíones. Son
íos servícíos más utííízados que cuaíquíer sístema dístríbuído necesíta y, movíendo ía
ímpíementacíón de estos servícíos de íos componentes deí software aí contenedor de
componentes, ía compíe|ídad de íos componentes se reduce drástícamente.
Interceptores portabíes
Los ínterceptores portabíes son íos ganchos usados por CORBA para proporcíonar una de ías
funcíones más ímportantes deí sístema CORBA, que deñne íos síguíentes típos de ínterceptores:
Los ínterceptores de Referencía deí Ob|eto Remoto (IOR) permíten ía creacíón de ías nuevas
referencías de íos ob|etos remotos presentes en eí actuaí servídor.
Los ínterceptores cííentes proporcíonan ía ííamada a métodos remotos desde eí íado deí cííente.
Sí eí ob|eto servícío exíste en eí mísmo servídor donde eí método es ínvocado, además permíten
ííamadas íocaíes.
Los ínterceptores servídor proporcíonan ía tramítacíón de ías ííamadas de métodos remotos en eí
íado deí servídor.
Los ínterceptores pueden íncíuír ía ínformacíón especíñca de íos mensa|es aí ser envíados y íos
IORs aí ser creados. Esta ínformacíón puede ser íeída más adeíante por eí ínterceptor
correspondíente en eí íado remoto. Los ínterceptores pueden a su vez íanzar excepcíones de
reenvío, redírígíendo ía petícíón a otro ob|etívo.
Generaí InterORB Protocoí (GIOP)
Eí GIOP es un protocoío abstracto por eí cuaí íos ORBs se comunícan. Los estándares asocíados
con eí protocoío son mantenídos por OMG. La arquítectura de GIOP proporcíona una seríe de
protocoíos entre íos que se encuentran:
Internet InterORB Protocoí (IIOP): ímpíementacíón de GIOP para su uso por ínternet,
proporcíonando una ínterfaz entre íos mensa|es GIOP y ía capa TCP/IP.
SSL InterORB Protocoí (SSLIOP): protocoío IIOP sobre SSL, proporcíonando encríptacíón y
autentícacíón.
HyperText InterORB Protocoí (HTIOP): protocoío IIOP sobre HTTP, proporcíonando transparencía
remota.
Zípped IOP (ZIOP): una versíón comprímída de GIOP que reduce eí uso de ancho de banda.
¿Cómo funcíona?
7rob.emas - cr"ticas
=>entajas - (es#entajas?
AROUITECTURA CORBA
Está oríentada a ob|etos. Los ob|etos CORBA presentan muchas característícas de otros sístemas
oríentados a ob|etos, íncíuyendo ía herencía de ínterfaces y eí poíímorñsmo.
Impíementacíón e íncompatíbííídades
Transparencía en ía íocaíízacíón
Deñcíencías en eí díseño y proceso
Probíemas con ías ímpíementacíones
Cortafuegos
Venta|as
Dísponíbííídad y Versatííídad
Muchas arquítecturas y sístemas operatívos cuentan con una ímpíementacíón de CORBA, ío que
hace suponer que se puede usar CORBA en vírtuaímente cuaíquíer proyecto de sístemas
dístríbuídos.
Eñcíencía
La ííbertad de desarroíío ha favorecído ía exístencía e ímpíementacíones deí estándar que se
adaptan a muítítud de posíbíes necesídades de íos usuaríos, generando una competencía que
favorece aqueíías ímpíementacíones de mayor caíídad y con más
característícas
Adaptacíón a Lengua|es de programacíón.
Además, es posíbíe empíear íos servícíos de CORBA desde cuaíquíer íengua|e de programacíón,
desde C++, C ó |ava, hasta COBOL ó Ada.
DESVENTA|AS
Eí sístema no es transparente aí programador.
Las díferencías para eí programador que quíera usar un determínado ob|eto con respecto a ías
de empíear uno íocaí, se reducen a ía ínícíaíízacíón deí mísmo.
Múítípíes ímpíementacíones de CORBA dan íugar a múítípíes íncompatíbííídades. Eí estándar
CORBA deñne a aíto níveí.
Los ob|etos remotos se pueden usar por referencía, pero no por vaíor. Así, cuando se haga uso de
íos métodos de un ob|eto remoto (aí que se accede por referencía), soío se íe pueden pasar
como parámetros (y eí método soío podrá devoíver como resuítado) típos de datos contempíados
en eí IDL
SEGURIDAD.
Eí estándar CORBA no se preocupa de ía segurídad ímpíementada en eí sístema dístríbuído. Sí
por aíguna razón se requíere restríngír eí uso de íos recursos controíados por un determínado
ob|eto, debe hacerío eí usuarío.
GRACIAS!!!
Bíbííografía e Infografía
http://www.corba.org/
http://www.omg.org/
http://artemísa.unícauca.edu.co/-arendon/corba/Corba|ava/IntroCorba|ava.htmí
http://acsbíog.es/artícuíos/trunk/LínuxActuaí/IntroCORBA/htmí/IntroCORBA.htmí
http://www.caícífer.org/documentos/ííbrognome/corba.htmí
http://web.archíve.org/web/20070517212806/http://agamenon.uníandes.edu.co/-revísta/artícuío
s/corba/corba.htm