<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wx="http://ilps.science.uva.nl/WikiXML/wx" xml:lang="pt" lang="pt">
<head>
<title>CORBA</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="CORBA"/>
<meta name="wx_page_id" content="53502"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="CORBA" id="wxsec1"><h1 class="pagetitle" id="wx1">CORBA</h1>

<p id="wx2"><b id="wx3">CORBA</b> (abreviado de <b id="wx4">C</b>ommon <b id="wx5">O</b>bject <b id="wx6">R</b>equest <b id="wx7">B</b>roker <b id="wx8">A</b>rchitecture) é a arquitetura padrão criada pelo <a href="/wpt/Object_Management_Group" title="Object Management Group" wx:linktype="known" wx:pagename="Object_Management_Group" wx:page_id="194139" id="wx9">Object Management Group</a> para estabelecer e simplificar a troca de dados entre sistemas distribuídos heterogêneos. Em face da diversidade de <a href="/wpt/Hardware" title="Hardware" wx:linktype="known" wx:pagename="Hardware" wx:page_id="976" id="wx10">hardware</a> e <a href="/wpt/Software" title="Software" wx:linktype="known" wx:pagename="Software" wx:page_id="1709" id="wx11">software</a> que encontramos atualmente, a CORBA atua de modo que os <a href="/wpt/Objeto" title="Objeto" wx:linktype="known" wx:pagename="Objeto" wx:page_id="45465" id="wx12">objetos</a> (componentes dos softwares) possam se comunicar de forma transparente ao usuário, mesmo que para isso seja necessário interoperar com outro <a href="/wpt/Software" title="Software" wx:linktype="known" wx:pagename="Software" wx:page_id="1709" id="wx13">software</a>, em outro <a href="/wpt/Sistema_operacional" title="Sistema operacional" wx:linktype="known" wx:pagename="Sistema_operacional" wx:page_id="3839" id="wx14">sistema operacional</a> e em outra ferramenta de desenvolvimento. CORBA é um dos modelos mais populares de objetos distribuídos, juntamente com o <a href="/wpt/DCOM" title="DCOM" wx:linktype="known" wx:pagename="DCOM" wx:page_id="442261" id="wx15">DCOM</a>, formato proprietário da <a href="/wpt/Microsoft" title="Microsoft" wx:linktype="known" wx:pagename="Microsoft" wx:page_id="6530" id="wx16">Microsoft</a>.</p>

<div id="wx_toc"/>

<a id="ORB" name="ORB"/>
<wx:section level="2" title="ORB" id="wxsec2"><h2 id="wx17">ORB</h2>

<p id="wx18">A arquitetura CORBA define o ORB (<i id="wx19">Object Request Broker</i>) como um módulo intermediário entre cliente e objeto, sendo responsável em aceitar a requisição do cliente, enviá-la para o objeto competente e, assim que disponível a resposta, entregá-la para o cliente.</p>

<a id="IDL" name="IDL"/>
</wx:section><wx:section level="2" title="IDL" id="wxsec3"><h2 id="wx20">IDL</h2>

<p id="wx21">A CORBA utiliza a IDL (<i id="wx22">Interface Definition Language</i>), uma linguagem baseada em <a href="/wpt/C%2B%2B" title="C++" wx:linktype="known" wx:pagename="C++" wx:page_id="43168" id="wx23">C++</a> que não possui algoritmos nem variáveis, ou seja, é puramente declarativa, e, portanto, é independente da <a href="/wpt/Linguagem_de_programa%C3%A7%C3%A3o" title="Linguagem de programação" wx:linktype="known" wx:pagename="Linguagem_de_programação" wx:page_id="13352" id="wx24">linguagem de programação</a> utilizada para acessá-la. Há padrão de IDL definido pelo OMG para <a href="/wpt/Linguagem_de_programa%C3%A7%C3%A3o_C" title="Linguagem de programação C" wx:linktype="known" wx:pagename="Linguagem_de_programação_C" wx:page_id="1292409" id="wx25">C</a>, C++, <a href="/wpt/Java_%28linguagem_de_programa%C3%A7%C3%A3o%29" title="Java (linguagem de programação)" wx:linktype="known" wx:pagename="Java_(linguagem_de_programação)" wx:page_id="1097" id="wx26">Java</a>, <a href="/wpt/COBOL" title="COBOL" wx:linktype="known" wx:pagename="COBOL" wx:page_id="52863" id="wx27">COBOL</a>, <a href="/wpt/Smalltalk" title="Smalltalk" wx:linktype="known" wx:pagename="Smalltalk" wx:page_id="112766" id="wx28">Smalltalk</a>, <a href="/wpt/Ada_%28linguagem_de_programa%C3%A7%C3%A3o%29" title="Ada (linguagem de programação)" wx:linktype="known" wx:pagename="Ada_(linguagem_de_programação)" wx:page_id="51165" id="wx29">Ada</a>, <a href="/wpt/Lisp" title="Lisp" wx:linktype="known" wx:pagename="Lisp" wx:page_id="23726" id="wx30">Lisp</a>, <a href="/wpt/Python" title="Python" wx:linktype="known" wx:pagename="Python" wx:page_id="34346" id="wx31">Python</a> e <a href="/wpt/IDLscript" class="new" title="IDLscript" wx:linktype="unknown" wx:pagename="IDLscript" id="wx32">IDLscript</a>. Possibilita a <a href="/wpt/Interoperabilidade" title="Interoperabilidade" wx:linktype="known" wx:pagename="Interoperabilidade" wx:page_id="300743" id="wx33">interoperabilidade</a> entre os diversos sistemas, visto a separação que é definida entre interface e execução. A interface de cada objeto é definida de forma bastante específica, enquanto sua execução (código fonte e dados) permanece oculta para o resto do sistema.</p>

<a id="Persist.C3.AAncia" name="Persist.C3.AAncia"/>
</wx:section><wx:section level="2" title="Persistência" id="wxsec4"><h2 id="wx34">Persistência</h2>

<p id="wx35">Ao contrário dos objetos tradicionais, os objetos em <a href="/wpt/Computa%C3%A7%C3%A3o_distribu%C3%ADda" title="Computação distribuída" wx:linktype="known" wx:pagename="Computação_distribuída" wx:page_id="37113" id="wx36">sistemas distribuídos</a> possuem uma característica de dualidade: um estado dinâmico, tipicamente alocado em memória volátil (em <a href="/wpt/Tempo_de_execu%C3%A7%C3%A3o" title="Tempo de execução" wx:linktype="known" wx:pagename="Tempo_de_execução" wx:page_id="276484" id="wx37">tempo de execução</a>), e um estado persistente, que não pode ser destruído após o encerramento do programa que os criou e que pode ser usado para reconstruir o estado dinâmico, devendo ser armazenado em memória não volátil, seja em <a href="/wpt/Sistema_de_arquivos" title="Sistema de arquivos" wx:linktype="known" wx:pagename="Sistema_de_arquivos" wx:page_id="50969" id="wx38">sistema de arquivos</a> ou <a href="/wpt/Banco_de_dados" title="Banco de dados" wx:linktype="known" wx:pagename="Banco_de_dados" wx:page_id="452" id="wx39">banco de dados</a>. A arquitetura CORBA, para prover a persistência, define o <i id="wx40">Persistent Object Service</i> (POS) como sendo responsável por armazenar o estado persistente dos objetos, utilizando quatro elementos:</p>

<ul id="wx41">
<li id="wx42">
<p id="wx43">Objetos Persistentes (Persistent Object (POs))</p>
</li>

<li id="wx44">
<p id="wx45">Gerenciador de Objetos Persistentes (Persistent Objects Manager (POM))</p>
</li>

<li id="wx46">
<p id="wx47">Serviços de Persistência de Dados (Persistent Data Services (PDSs))</p>
</li>

<li id="wx48">
<p id="wx49">Base de Dados (Datastores)</p>
</li>
</ul>

<a id="Ver_tamb.C3.A9m" name="Ver_tamb.C3.A9m"/>
</wx:section><wx:section level="2" title="Ver também" id="wxsec5"><h2 id="wx50"><wx:template id="wx_t1" pagename="Predefinição:Ver_também" page_id="62492"/>Ver também<wx:templateend start="wx_t1"/></h2>

<ul id="wx51">
<li id="wx52"><a href="/wpt/Object_Transaction_Service" title="Object Transaction Service" wx:linktype="known" wx:pagename="Object_Transaction_Service" wx:page_id="549170" id="wx53">Object Transaction Service</a></li>
</ul>

<a id="Liga.C3.A7.C3.B5es_externas" name="Liga.C3.A7.C3.B5es_externas"/>
</wx:section><wx:section level="2" title="Ligações externas" id="wxsec6"><h2 id="wx54"><wx:template id="wx_t2" pagename="Predefinição:Ligações_externas" page_id="62491"/>Ligações externas<wx:templateend start="wx_t2"/></h2>

<ul id="wx55">
<li id="wx56"><wx:template id="wx_t3" pagename="Predefinição:((en))" page_id="134483"/><span style="cursor: help; font: bold small monospace;" title="Idioma: [[Língua inglesa|en]]" id="wx57">(<a href="/wpt/L%C3%ADngua_inglesa" title="Língua inglesa" wx:linktype="known" wx:pagename="Língua_inglesa" wx:page_id="6962" id="wx58">en</a>)</span><wx:templateend start="wx_t3"/> <a href="http://www.omg.org" class="external text" wx:linktype="external" rel="nofollow" id="wx59">Object Management Group</a>
<p id="wx60">- grupo criador do CORBA</p>
</li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wpt/index.php?title=Especial:Categories&amp;article=CORBA" title="Especial:Categories" wx:linktype="known" wx:pagename="Especial:Categories" id="wx61">Categorias de páginas</a>: <span dir="ltr" id="wx62"><a href="/wpt/Categoria:CORBA" title="Categoria:CORBA" wx:linktype="known" wx:pagename="Categoria:CORBA" wx:page_id="608803" id="wx63">CORBA</a></span></div>
<div id="wx_languagelinks">
Outras línguas: <a href="http://de.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture" class="external" wx:linktype="interwiki" wx:pagename="de:Common_Object_Request_Broker_Architecture" id="wx64">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture" class="external" wx:linktype="interwiki" wx:pagename="en:Common_Object_Request_Broker_Architecture" id="wx65">English</a> | <a href="http://es.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="es:CORBA" id="wx66">Español</a> | <a href="http://eu.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="eu:CORBA" id="wx67">Euskara</a> | <a href="http://fr.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture" class="external" wx:linktype="interwiki" wx:pagename="fr:Common_Object_Request_Broker_Architecture" id="wx68">Français</a> | <a href="http://ga.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="ga:CORBA" id="wx69">Gaeilge</a> | <a href="http://gl.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="gl:CORBA" id="wx70">Galego</a> | <a href="http://hu.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture" class="external" wx:linktype="interwiki" wx:pagename="hu:Common_Object_Request_Broker_Architecture" id="wx71">Magyar</a> | <a href="http://it.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="it:CORBA" id="wx72">Italiano</a> | <a href="http://ja.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture" class="external" wx:linktype="interwiki" wx:pagename="ja:Common_Object_Request_Broker_Architecture" id="wx73">日本語</a> | <a href="http://lt.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="lt:CORBA" id="wx74">Lietuvių</a> | <a href="http://nl.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture" class="external" wx:linktype="interwiki" wx:pagename="nl:Common_Object_Request_Broker_Architecture" id="wx75">Nederlands</a> | <a href="http://pl.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="pl:CORBA" id="wx76">Polski</a> | <a href="http://ru.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="ru:CORBA" id="wx77">Русский</a> | <a href="http://sl.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="sl:CORBA" id="wx78">Slovenščina</a> | <a href="http://sv.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="sv:CORBA" id="wx79">Svenska</a> | <a href="http://tr.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="tr:CORBA" id="wx80">Türkçe</a> | <a href="http://uk.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="uk:CORBA" id="wx81">Українська</a> | <a href="http://zh.wikipedia.org/wiki/CORBA" class="external" wx:linktype="interwiki" wx:pagename="zh:CORBA" id="wx82">中文</a></div>
</body>
<wx:templatearguments for="wx_t1"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t2"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t3"><wx:argument name=""/></wx:templatearguments>
</html>
