<?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>GIOP</title>
<meta name="wx_namespace" content="0"/>
<meta name="wx_pagename" content="GIOP"/>
<meta name="wx_page_id" content="608802"/>
</head>
<body>
<div id="wx_article">
<wx:section level="1" title="GIOP" id="wxsec1"><h1 class="pagetitle" id="wx1">GIOP</h1>

<p id="wx2">O <b id="wx3">GIOP</b> (General Inter-ORB Protocol), 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="wx4">computação distribuída</a>, é um <a href="/wpt/Protocolo" title="Protocolo" wx:linktype="known" wx:pagename="Protocolo" wx:page_id="1565" id="wx5">protocolo</a> abstrato pelo qual os módulos <a href="/wpt/CORBA#ORB" title="CORBA" wx:linktype="known" wx:pagename="CORBA" wx:page_id="53502" wx:fragment="ORB" id="wx6">ORB</a> se comunicam. Os padrões associados com este protocolo são mantidos pelo <a href="/wpt/Object_Management_Group" title="Object Management Group" wx:linktype="known" wx:pagename="Object_Management_Group" wx:page_id="194139" id="wx7">Object Management Group</a> (OMG).</p>

<p id="wx8">O protocolo <b id="wx9">IIOP</b> (Internet Inter-Orb Protocol) é uma implementação do GIOP para o protocolo de rede <a href="/wpt/TCP/IP" title="TCP/IP" wx:linktype="known" wx:pagename="TCP/IP" wx:page_id="1848" id="wx10">TCP/IP</a>. Também pode ser descrito como uma realização concreta das definições abstratas do GIOP.</p>

<div id="wx_toc"/>

<a id="Tipos_de_mensagens" name="Tipos_de_mensagens"/>
<wx:section level="2" title="Tipos de mensagens" id="wxsec2"><h2 id="wx11">Tipos de mensagens</h2>

<p id="wx12">O OMG define três partes do GIOP:</p>

<ul id="wx13">
<li id="wx14">
<p id="wx15">O <a href="/wpt/Common_Data_Representation" class="new" title="Common Data Representation" wx:linktype="unknown" wx:pagename="Common_Data_Representation" id="wx16">CDR</a> (Common Data Representation) — utilizado para representar os tipos primitivos dos parâmetros e resultados de envio de mensagens a objetos remotos.</p>
</li>

<li id="wx17">
<p id="wx18">O <a href="/wpt/Interoperable_Object_Reference" class="new" title="Interoperable Object Reference" wx:linktype="unknown" wx:pagename="Interoperable_Object_Reference" id="wx19">IOR</a> (Interoperable Object Reference) — define o formato de uma referência a um objeto remoto. Uma IDR típica contém a versão do protocolo de comunicação, o endereço do servidor e uma sequência de <i id="wx20">bytes</i> que identifica o objeto remoto.</p>
</li>

<li id="wx21">
<p id="wx22">Os formatos das mensagens trocadas — as mensagens são trocadas entre os agentes para facilitar as requisições dos objetos, localização da implementação dos objetos, e para gerenciar canais de comunicação. As mensagens definidas são:</p>

<ul id="wx23">
<li id="wx24"><i id="wx25"><a href="/wpt/Request" class="new" title="Request" wx:linktype="unknown" wx:pagename="Request" id="wx26">Request</a></i>
<p id="wx27">— enviada para invocar um <a href="/wpt/M%C3%A9todo_%28programa%C3%A7%C3%A3o%29" title="Método (programação)" wx:linktype="known" wx:pagename="Método_(programação)" wx:page_id="185084" id="wx28">método</a> remoto.</p>
</li>

<li id="wx29"><i id="wx30"><a href="/wpt/Reply" class="new" title="Reply" wx:linktype="unknown" wx:pagename="Reply" id="wx31">Reply</a></i>
<p id="wx32">— retornada em resposta a um <i id="wx33">request</i>. Esta mensagem normalmente contém os dados retornados do método remoto. Em alguns casos o <i id="wx34">reply</i> pode conter uma instrução de redirecionamento para a descrição de uma exceção que foi lançada pelo servidor.</p>
</li>

<li id="wx35"><i id="wx36">CancelRequest</i>
<p id="wx37">— utilizada para cancelar uma mensagem de <i id="wx38">request</i> previamente enviada.</p>
</li>

<li id="wx39"><i id="wx40">LocateRequest</i>
<p id="wx41">— utilizada para verificar se o servidor conhece e suporta determinado objeto remoto e, em caso de resposta negativa, determinar para qual endereço o <i id="wx42">request</i> deve ser enviado.</p>
</li>

<li id="wx43"><i id="wx44">LocateReply</i>
<p id="wx45">— enviada pelo servidor em resposta a uma mensagem do tipo <i id="wx46">LocateRequest</i>. Esta mensagem pode conter, se for o caso, o endereço do objeto remoto que foi movido.</p>
</li>

<li id="wx47"><i id="wx48">CloseConnection</i>
<p id="wx49">— enviada pelo servidor para indicar que ele não mais responderá às mensagens.</p>
</li>

<li id="wx50"><i id="wx51">MessageError</i>
<p id="wx52">— enviada em resposta à mensagens mal formadas ou inválidas. Ela não é utilizada para reportar erros que não sejam do sistema de mensagens; tal tipo de erro é reportado através de mensagens do tipo <i id="wx53">reply</i>.</p>
</li>

<li id="wx54"><i id="wx55">Fragment</i>
<p id="wx56">— é uma mensagem que indica uma sequência de mensagens. As mensagens de tamanho grande podem ser divididas em mensagens menores (fragmentos).</p>
</li>
</ul>
</li>
</ul>

<a id="Formato_bin.C3.A1rio" name="Formato_bin.C3.A1rio"/>
</wx:section><wx:section level="2" title="Formato binário" id="wxsec3"><h2 id="wx57">Formato binário</h2>

<p id="wx58">Em uma análise, as mensagens do protocolo GIOP podem ser facilmente reconhecidas pelo seu cabeçalho característico:</p>

<ol id="wx59">
<li id="wx60">
<p id="wx61">Os quatro <a href="/wpt/Caractere" title="Caractere" wx:linktype="known" wx:pagename="Caractere" wx:page_id="64783" id="wx62">caracteres</a> <a href="/wpt/ASCII" title="ASCII" wx:linktype="known" wx:pagename="ASCII" wx:page_id="400" id="wx63">ASCII</a>: G I O P.</p>
</li>

<li id="wx64">
<p id="wx65">Os dois <i id="wx66">bytes</i> que definem a versão do protocolo.</p>
</li>

<li id="wx67">
<p id="wx68">Um <i id="wx69">byte</i> que indica o início da mensagem. O <i id="wx70">bit</i> menos significativo define a <a href="/wpt/Little_endian" title="Little endian" wx:linktype="known" wx:pagename="Little_endian" wx:page_id="90415" id="wx71">ordem do byte</a> (0 - <i id="wx72">big endian</i>, 1 - <i id="wx73">little endian</i>).</p>
</li>

<li id="wx74">
<p id="wx75">Um <i id="wx76">byte</i> que define o tipo da mensagem trafegada (<i id="wx77">reply</i>, <i id="wx78">request</i>, <i id="wx79">fragment</i> e etc.).</p>
</li>

<li id="wx80">
<p id="wx81">Uma "<a href="/wpt/Word_%28tipo_de_dado%29" title="Word (tipo de dado)" wx:linktype="known" wx:pagename="Word_(tipo_de_dado)" wx:page_id="132089" id="wx82">palavra</a>" de 4 <i id="wx83">bytes</i> que define o tamanho da mensagem (com exceção do cabeçalho).</p>
</li>
</ol>

<p id="wx84">As mensagens também podem incluir fragmentos de dados arbitrários, identificados por marcadores inteiros padronizados. Estes fragmentos adicionais de dados são chamados de "contexto de serviço" e são utilizados para estender o padrão de comunicação quando necessário. Existem contextos padronizados para descrever exceções lançadas, para definir a utilização de um conjunto de caracteres específicos e etc. Através de mecanismos baseados no padrão <i id="wx85"><a href="/wpt/Interceptor_%28padr%C3%A3o_de_projeto%29" class="new" title="Interceptor (padrão de projeto)" wx:linktype="unknown" wx:pagename="Interceptor_(padrão_de_projeto)" id="wx86">interceptor</a></i> é possível inserir e obter contextos de serviço específicos nas mensagens trafegadas.</p>

<a id="Situa.C3.A7.C3.A3o_legal_da_sigla_GIOP" name="Situa.C3.A7.C3.A3o_legal_da_sigla_GIOP"/>
</wx:section><wx:section level="2" title="Situação legal da sigla GIOP" id="wxsec4"><h2 id="wx87">Situação legal da sigla GIOP</h2>

<p id="wx88">As marcas <a href="/wpt/CORBA" title="CORBA" wx:linktype="known" wx:pagename="CORBA" wx:page_id="53502" id="wx89">CORBA</a>, <a href="/wpt/IIOP" title="IIOP" wx:linktype="known" wx:pagename="IIOP" wx:page_id="608800" id="wx90">IIOP</a> e <a href="/wpt/OMG" title="OMG" wx:linktype="known" wx:pagename="OMG" wx:page_id="290978" id="wx91">OMG</a> são registradas pelo Object Management Group e devem ser utilizadas com cuidado. A sigla, por outro lado, não é uma marca registrada da OMG <a href="http://www.omg.org/legal/tm_list.htm" class="external autonumber" wx:linktype="external" rel="nofollow" id="wx92"/>. Por este motivo é permitido legalmente citar que uma aplicação implementa uma arquitetura baseada no protocolo GIOP.</p>

<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="wx93"><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="wx94">
<li id="wx95"><a href="/wpt/ESIOP" class="new" title="ESIOP" wx:linktype="unknown" wx:pagename="ESIOP" id="wx96">ESIOP</a></li>

<li id="wx97"><a href="/wpt/HTIOP" class="new" title="HTIOP" wx:linktype="unknown" wx:pagename="HTIOP" id="wx98">HTIOP</a></li>

<li id="wx99"><a href="/wpt/XIOP" class="new" title="XIOP" wx:linktype="unknown" wx:pagename="XIOP" id="wx100">XIOP</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="wx101"><wx:template id="wx_t2" pagename="Predefinição:Links_externos" page_id="917352"/>Ligações externas<wx:templateend start="wx_t2"/></h2>

<ul id="wx102">
<li id="wx103"><wx:template id="wx_t3" pagename="Predefinição:En" page_id="257364"/><span style="cursor: help; font: bold small monospace;" title="Idioma: [[Língua inglesa|en]]" id="wx104">(<a href="/wpt/L%C3%ADngua_inglesa" title="Língua inglesa" wx:linktype="known" wx:pagename="Língua_inglesa" wx:page_id="6962" id="wx105">en</a>)</span><wx:templateend start="wx_t3"/> <a href="http://www.omg.org/docs/formal/04-03-12.pdf" class="external text" wx:linktype="external" rel="nofollow" id="wx106">O padrão oficial CORBA e GIOP.</a></li>

<li id="wx107"><wx:template id="wx_t4" pagename="Predefinição:En" page_id="257364"/><span style="cursor: help; font: bold small monospace;" title="Idioma: [[Língua inglesa|en]]" id="wx108">(<a href="/wpt/L%C3%ADngua_inglesa" title="Língua inglesa" wx:linktype="known" wx:pagename="Língua_inglesa" wx:page_id="6962" id="wx109">en</a>)</span><wx:templateend start="wx_t4"/> <a href="http://tele.informatik.uni-freiburg.de/Research/fmvdoos.htm" class="external text" wx:linktype="external" rel="nofollow" id="wx110">Formalização e validação do GIOP.</a></li>

<li id="wx111"><wx:template id="wx_t5" pagename="Predefinição:En" page_id="257364"/><span style="cursor: help; font: bold small monospace;" title="Idioma: [[Língua inglesa|en]]" id="wx112">(<a href="/wpt/L%C3%ADngua_inglesa" title="Língua inglesa" wx:linktype="known" wx:pagename="Língua_inglesa" wx:page_id="6962" id="wx113">en</a>)</span><wx:templateend start="wx_t5"/> <a href="http://citeseer.csail.mit.edu/cs?q=GIOP" class="external text" wx:linktype="external" rel="nofollow" id="wx114">Citações do CiteSeer.</a></li>
</ul>
</wx:section></wx:section></div>
<div id="wx_categorylinks">
<a href="/wpt/index.php?title=Especial:Categories&amp;article=GIOP" title="Especial:Categories" wx:linktype="known" wx:pagename="Especial:Categories" id="wx115">Categorias de páginas</a>: <span dir="ltr" id="wx116"><a href="/wpt/Categoria:CORBA" title="Categoria:CORBA" wx:linktype="known" wx:pagename="Categoria:CORBA" wx:page_id="608803" id="wx117">CORBA</a></span></div>
<div id="wx_languagelinks">
Outras línguas: <a href="http://de.wikipedia.org/wiki/GIOP" class="external" wx:linktype="interwiki" wx:pagename="de:GIOP" id="wx118">Deutsch</a> | <a href="http://en.wikipedia.org/wiki/General_Inter-ORB_Protocol" class="external" wx:linktype="interwiki" wx:pagename="en:General_Inter-ORB_Protocol" id="wx119">English</a> | <a href="http://es.wikipedia.org/wiki/GIOP" class="external" wx:linktype="interwiki" wx:pagename="es:GIOP" id="wx120">Español</a> | <a href="http://ja.wikipedia.org/wiki/GIOP" class="external" wx:linktype="interwiki" wx:pagename="ja:GIOP" id="wx121">日本語</a> | <a href="http://lt.wikipedia.org/wiki/GIOP" class="external" wx:linktype="interwiki" wx:pagename="lt:GIOP" id="wx122">Lietuvių</a> | <a href="http://ru.wikipedia.org/wiki/GIOP" class="external" wx:linktype="interwiki" wx:pagename="ru:GIOP" id="wx123">Русский</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>
<wx:templatearguments for="wx_t4"><wx:argument name=""/></wx:templatearguments>
<wx:templatearguments for="wx_t5"><wx:argument name=""/></wx:templatearguments>
</html>
