Sei sulla pagina 1di 8

o de Grupo MJACO: Middleware CORBA para Comunicac a

Alysson Neves Bessani , Lau Cheuk Lung , Eduardo Adilio Belinson Alchieri , Joni da Silva Fraga DAS - Departamento de Automac a o e Sistemas UFSC - Universidade Federal de Santa Catarina Campus Universit ario, Caixa Postal 476 - CEP 88040-900 - Trindade - Florian opolis - SC PPGIA - Programa de P os-Graduac a o em Inform atica Aplicada PUC-PR - Pontif cia Universidade Cat olica do Paran a R. Imaculada Conceic a o, 1155 - Prado velho - CEP 80215-901 - Curitiba -PR
neves@das.ufsc.br, alchieri@das.ufsc.br, lau@ppgia.pucpr.br, fraga@das.ufsc.br

Resumo. Este artigo apresenta um middleware CORBA com suporte para comunicac a o o de grupo baseado nas especicac es UMIOP, padronizada pela OMG [OMG, 2001]. Este middleware permite a difus ao de mensagem (ou requisic a ao con avel ou con avel, implementados pelos protoco o) de forma n los UMIOP e ReMIOP, respectivamente, ambos baseados no protocolo de baixo nivel Multicast IP. O modelo integrac a o permite que ambos protocolos sejam inseridos no ORB sem alterar as propriedades de portabilidade e interoperabilidade. Al em disso, o modelo de programac a as em o segue sem grandes diferenc relac a o ao modelo convencional. Abstract. This paper presents a CORBA middleware that supports group communication based on UMIOP specications standardized by OMG [OMG, 2001]. This middleware allows multicast message (or request) in a unreliable or reliable manner, implemented by UMIOP and ReMIOP protocols, respectively, both based on low level IP Multicast protocol. The integration model allows both protocols be inserted into ORB without alter the portability and interoperability properties. Furthermore, the programming model seems to be such as the conventional model, without signicative differences.

o 1. Introduc a
As especicac o es CORBA (Common Object Request Broker [OMG, 2002]) introduzidas pela OMG (Object Management Group) permitiram que objetos distribu dos suplantassem as conseq ue ncias de um ambiente heterog eneo. As primeiras vers oes dessas especicac o es (atualmente na vers ao 3.0.2) admitiam apenas comunicac o es ponto a ponto (usando interfaces de invocac a o est atica ou din amica) entre objetos atrav es de um canal conhecido como ORB (Object Request Broker). As mensagens que trafegam nesse canal seguem uma sintaxe de transfer encia padr ao, denida pelo GIOP (General Inter ORB Protocol), o que torna-as independente das implementac o es de ORB existentes. O

Bolsista CNPq.

mapeamento do GIOP sobre a camada de transporte TCP/IP e concretizado atrav es do protocolo IIOP (Internet Inter ORB Protocol). Deste modo, IIOP corresponde a uma boa soluc a o para interac o es entre objetos segundo o modelo cliente/servidor, abordando aspectos como controle de erro, ordenac a o FIFO, etc. Apesar desse modelo ser bastante signicativo em sistemas distribu dos, existem aplicac o es que teriam um melhor desempenho em termos de tempo e complexidade de mensagem (n umero, tamanho, etc) se tivessem ao seu dispor mecanismos de comunicac a o multiponto. Usualmente, essas aplicac o es dependem de abstrac o es como grupos de objetos ou da necessidade da disseminac a o de dados sobre v arios hosts da rede. Desta forma, aplicac o es orientadas a grupo poderiam usufruir melhor os servic os de baixo n vel de uma rede. Para tentar suprir a necessidade de comunicac o es multiponto em n vel de middleware CORBA, a OMG publicou as especicac o es UMIOP (Unreliable Multicast InterORB Protocol) [OMG, 2001]. O UMIOP corresponde a um conjunto de especicac o es de um servic o de difus ao n ao con avel para ser inclu do como parte do ORB. O protocolo denido nestas especicac o es, o MIOP (Multicast Inter-ORB Protocol), e respons avel pelo mapeamento do GIOP sobre a pilha UDP/multicast IP. O multicast IP compreende um conjunto de extens oes ao protocolo IP que o habilita na concretizac a o de comunicac o es multiponto [Deering, 1986]. Este protocolo se caracteriza pela aus encia de garantias e pelo alto desempenho, especialmente em redes locais. V arias s ao as aplicac o es que utilizam multicast IP, principalmente em sistemas de difus ao multim dia na Internet. A difus ao de mensagem (multicast ) estabelecida pelo UMIOP e n ao con avel, isto e , n ao h a garantias quanto a entrega da mensagem devido a ` s eventuais perdas de pacotes assumidas no UDP/Multicast IP. O UMIOP, o modelo menos restritivo de comunicac a o de grupo, pode ser empregado em algumas aplicac o es distribu das, por exemplo, em difus ao de m dia cont nua, em que a perda de alguns quadros pode n ao representar a degradac a o (ou perda) da informac a o transmitida. Todavia, aplicac o es tolerante a faltas, aplicac o es groupware, aplicac o es cr ticas, entre outras, na maioria dos casos, exigem garantias mais restritivas de acordo e ordenac a o (por exemplo, difus ao con avel com ordenac a o FIFO, causal, total, etc [Hadzilacos and Toueg, 1994]) dos suportes de comunicac a o de grupo dispon veis. A OMG ainda n ao tem dispon vel especicac o es que atendam a esses requisitos. Este problema est a sendo tratado em etapas e o primeiro passo foi a publicac a o das especicac o es UMIOP. Espera-se que esta iniciativa motive a publicac a o de outras RFPs (Request For Proposal) por parte da OMG, no sentido da especicac a o de suportes a comunicac a o de grupo que fornec am as garantias acima citadas. O objetivo do MJACO e o projeto e implementac a o de um mecanismo no ORB para suporte a difus ao con avel de mensagens (ou requisic o es). A primeira fase do projeto foi a integrac a o do UMIOP no ORB e a sua implementac a o, esse trabalho foi apresentado em [Bessani et al., 2002, Bessani et al., 2003a]. Dando continuidade a este projeto, em [Bessani et al., 2003b] e apresentado o protocolo ReMIOP como parte dos nossos esforc os na integrac a o de difus ao con avel neste ORB. O ReMIOP estende as especicac o es UMIOP com propriedades de difus ao con avel, isto e , oferece garantias que mensagens difundidas alcanc am todos membros corretos de um grupo. O presente artigo descreve os resultados destes experimentos, concretizados atrav es da implementac a o de um ORB CORBA com capacidades multicast, o MJACO. Este ORB pode suportar a integrac a o de diversos protocolos de comunicac a o de grupo com propriedades mais res-

tritivas de acordo e ordenac a o atrav es de um mecanismo de plugins. O artigo est a organizado da seguinte maneira: a sec a o 2 apresenta a arquitetura do MJACO, na sec a o 3 s ao apresentados os protocolos suportados atualmente pelo ORB, na sec a o 4 temos algumas notas sobre a implementac a o do ORB e na sec a o 5 e apresentado o modelo de programac a o em um ORB multicast. Finalmente na sec a o 6 temos algumas considerac o es nais e perspectivas futuras.

2. Arquitetura do MJACO
A implementac a o das especicac o es UMIOP e realizada a partir de extens oes no JacORB [Brose, 1997] (http://www.jacorb.org), um ORB CORBA de alto desempenho e de c odigo aberto que implementa as especicac o es CORBA 2.3. Este trabalho resultou, portanto, no MJACO [Bessani et al., 2002], uma arquitetura denida de tal forma a permitir o conv vio de duas pilhas de protocolos (IIOP/TCP/IP e MIOP/UDP/multicast IP) no mesmo ORB, contribuindo, deste modo, para uma melhor interoperabilidade e portabilidade. A gura 1 apresenta essa arquitetura de integrac a o do UMIOP ao ORB implementada no MJACO. Nesta gura temos o ORB com as duas pilhas de protocolos: uma para a comunicac a o ponto a ponto convencional, baseada em IIOP, utilizando os servic os do TCP/IP; e outra para comunicac a o multiponto formada pelo MIOP, que utiliza UDP/multicast IP como mecanismo de transfer encia de seus pacotes. O nosso modelo de integrac a o apresenta os v arios elementos denidos na especicac a o que comp oem o suporte para os dois modelos de comunicac a o. Foram adicionados ainda outros componentes e extens oes, n ao denidas na especicac a o, cuja nalidade e facilitar o conv vio das diferentes pilhas e melhorar a eci encia de utilizac a o do conjunto.
MGM
create_object delete_object

Aplication Implementation Skeleton Stub Delegate POA

Nucleo do ORB
Basic Adapter IIOP TCP IP Multicast Adapter MIOP UDP IP multicast

Network

Figura 1: Arquitetura do MJ ACO.

O adaptador Multicast (Figura 1), componente fundamental do modelo de integrac a o, e respons avel pela gest ao dos sockets multicast utilizados na recepc a o de pa-

cotes MIOP e pela entrega de mensagens enderec adas a grupos aos POAs ativos (Portable Object Adaptor ) no ORB. O m odulo UMIOP executa as tarefas, de acordo com a especicac a o padr ao, de traduc a o das mensagens GIOP em colec o es de pacotes MIOP e vice-versa. Os m odulos Delegate e o POA s ao os principais componentes do ORB que foram alterados para a introduc a o do UMIOP. O Delegate e o primeiro componente interno ao ORB a ser ativado quando ocorre uma chamada de m etodo no stub. Em nosso modelo, e nele que e escolhida qual das pilhas de protocolos que ser a utilizada para envio de uma mensagem GIOP correspondente ao m etodo chamado. Para isso, o Delegate teve algumas partes alteradas para dar suporte ao envio de mensagens GIOP para grupos, mas nada que o torne incompat vel com a especicac a o. O POA, por sua vez, al em da inclus ao de quatro novos m etodos para a manipulac a o de grupos de objetos descritas nas especicac o es da OMG, teve que ser estendido para o processamento de requisic o es enderec adas a grupos, realizando buscas em uma tabela de grupos ativos para obtenc a o das implementac o es membros do grupo para o qual a mensagem est a enderec ada. O POA tamb em e o componente respons avel pela ativac a o do adaptador multicast para a execuc a o das operac o es de gerenciamento denidas pelo multicast IP.

o de Grupo Suportados pelo MJaco 3. Protocolos de Comunicac a


Al em do IIOP sobre TCP/IP e sobre SSL [Wangham et al., 2001] que o JacORB suporta, o MJACO, conforme j a apresentado, tamb em est a habilitado, atrav es de sua pilha multicast, a realizar comunicac a o multiponto atrav es de v arios protocolos com diferentes qualidades de servic o. Atualmente existem dois protocolos implementados, estes protocolos s ao descritos a seguir. 3.1. MIOP - Multicast Inter-ORB Protocol O protocolo denido pelo padr ao UMIOP para comunicac a o multiponto n ao con avel e o MIOP. Este protocolo mapeia mensagens GIOP para UDP/multicast IP. A func a o b asica do protocolo MIOP e segmentar e encapsular as mensagens GIOP enviadas a grupos em v arios pacotes (colec o es). Estes pacotes cont em um cabec alho, denido nas especicac o es, que cont em uma s erie de campos que permitem a remontagem da mensagem original nos receptores. O protocolo MIOP e bastante simples e fornece apenas um mapeamento quase que direto das mensagens GIOP (que cont em as requisic o es) para o UDP/multicast IP. O mecanismo de plugins suportado pelo MJACO permite a construc a o de mecanismos que adicionem propriedades mais fortes ao MIOP, esses mecanismos devem ser constru dos sempre sobre este protocolo, que e padronizado pela OMG. 3.2. ReMIOP - Reliable MIOP Visando acrescentar propriedades de conabilidade (garantia de entrega de mensagem) ao MIOP, foram propostas um conjunto de extens oes a este, dando origem ao protocolo ReMIOP [Bessani, 2002]. O ReMIOP e um protocolo de difus ao con avel escal avel iniciado pelo receptor (usa pedidos de retransmiss ao -

NACKs) [Levine and Garcia-Luna-Aceves, 1998] nos moldes de protocolos como o SRM [Floyd et al., 1997], LRMP [Liao, 1998] e TRM [Sabata et al., 1996]. Para dar conabilidade ao MIOP, o ReMIOP acrescenta duas novas funcionalidades a ` este:

Retransmiss oes: como o protocolo Multicast IP admite perdas de pacotes (e conseq uentemente a perda da mensagem), principalmente em sistemas de larga escala, o ReMIOP inclui uma mensagem de controle (NACK) para permitir o pedido de retransmiss oes. Esta mensagem cont em o identicador dos pacotes MIOP extraviados, assim, qualquer membro do grupo que a receber, se tiver os pacotes solicitados, pode difundi-los novamente no grupo; Controle de Fluxo: para evitar sobrecargas e minimizar a perda de pacotes em regi oes congestionadas da rede, o ReMIOP utiliza um mecanismo de controle de uxo. Atrav es deste mecanismo e da premissa (informal) de que o sistema opera a maior parte do tempo em condic o es normais (sem congestionamentos e falhas de omiss ao de envio), e poss vel garantir que todas as mensagens enviadas chegar ao aos membros do grupo.

O ReMIOP opera da seguinte maneira: a colec a o de pacotes MIOP que comp oe uma mensagem CORBA e difundida pelo emissor no grupo sem saber quais s ao seus membros. Os membros receptores podem detectar perdas de pacotes quando encontram lacunas na seq ue ncia das mensagens a serem recebidas. Quando um membro detecta a falta de um pacote, ele difunde uma mensagem de controle (NACK) no grupo pedindo a retransmiss ao. Desta forma, qualquer membro que receber este pedido, seja o emissor ou algum receptor que tenha o pacote solicitado, o difunde novamente no grupo para que os que n ao o receberam tenham a possibilidade de receb e-lo. Este protocolo inclui ainda mensagens de controle, difundidas periodicamente no grupo pelos receptores, para reportar o estado de seus buffers aos emissores, a m de que estes possam ajustar sua taxa de envio atrav es do algoritmo de controle de uxo. O ReMIOP foi concebido de tal forma que suas mensagens sejam interoper aveis com o protocolo MIOP puro, desta forma e poss vel conceber grupos onde alguns membros utilizam ReMIOP e outros apenas MIOP. Nestes grupos os membros que n ao implementam ReMIOP ignoram as mensagens de controle e processam apenas as mensagens de dados difundidas no grupo.

4. Estrat egias Plug aveis no MJACO


O mecanismo de plugins implementado no MJACO permite a integrac a o de estrat egias de conabilidade que podem estender a pilha multicast do ORB. Atrav es deste mecanismo, v arios protocolos de caracter sticas diversas podem ser implementados sobre o servic o de difus ao n ao con avel. A gura 2 apresenta a arquitetura do mecanismo. Na gura 2 temos a estrat egia de conabilidade carregada como uma camada da pilha multicast. A camada que pode ser plugadaca entre as duas camadas (segmentac a o e MIOP) que caracterizam a implementac a o do MIOP. Num n vel mais baixo temos a camada MIOP que encapsula blocos de dados em pacotes MIOP e os envia via UDP/Multicast IP, j a acima do plugin temos a camada de segmentac a o/desegmentac a o

2: Object 1: Object 3: Object

MJaco
RootPOA Object Adapters

ORB Core GIOP Segmentation IIOP


ReMIOP

Multicast Stack

MIOP TCP IP Network UDP Multicast IP

Used Strategy                    Reliability Strategies                   Unreliable                                                                        


MIOP Layers

Figura 2: Arquitetura do MJ ACO com as Estrategias Variaveis.

de mensagens, esta camada e respons avel por desmontar mensagens longas em colec o es de pacotes MIOP e remonta-las nos receptores. O mecanismo de plugin apresentado nada mais e do que uma implementac a o do padr ao de projeto Strategy [Gamma et al., 1995]. Este padr ao permite que o comportamento, m etodo na terminologia da orientac a o a objetos, de um componente, ou objeto, seja trocado, atrav es da substituic a o deste (o comportamento) que ca encapsulado em um objeto (a estrat egia). No caso do MJACO, temos o componente pilha multicast (Multicast Stack) que utiliza como mecanismo para garantir conabilidade de comunicac a o uma estrat egia, encapsulada em um objeto, que pode ser trocada, inclusive em tempo de execuc a o, sem a necessidade de se alterar o c odigo do ORB.

5. Programando com um ORB Multicast


A utilizac a o das capacidades de comunicac a o multiponto do MJACO implica em algumas diferenc as no que diz respeito ao modelo de programac a o utilizado pelo CORBA, diferenc as estas advindas das particularidades de se trabalhar com invocac a o remota de m etodos para grupos. A noc a o de grupo e encapsulada em uma refer encia de grupo, que para o usu ario do ORB e id entica a refer encia de objeto (IOR - Interoperable Object Reference [OMG, 2002]). Do ponto de vista do cliente a programac a o e id entica a programac a o de aplicac o es cliente/servidor, desta forma basta se obter a refer encia de grupo e invocar os m etodos tal como no CORBA convencional. J a para no servidor, existem alguns de detalhes que devem ser levados em considerac a o:


Em primeiro lugar o modelo de objetos UMIOP s o permite a invocac a o de m etodos oneway (sem resposta) via MIOP [OMG, 2001]. Assim, n ao se pode considerar a obtenc a o de respostas de grupos a n ao ser utilizando-se mecanismos de callback na IDL;

Cada membro deve ser adicionado ao grupo. Para tanto as especicac o es UMIOP denem quatro novas operac o es para o POA que permitem a associac a o de objetos a grupos (associac a o de implementac o es a refer encias de grupos); As invocac o es de m etodos do grupo que exigem respostas s ao sempre encaminhadas via IIOP/TCP/IP a uma refer encia de objeto contida na refer encia de grupo. O objeto enderec ado por esta refer encia e chamado de membro IIOP do grupo.

A utilizac a o de diferentes modelos de difus ao no MJACO, neste caso UMIOP e ReMIOP, n ao altera o modelo de programac a o apresentado, j a que o plugin de conabilidade utilizado e denido como uma propriedade do ORB e trabalha internamente na pilha multicast.

6. Conclus ao
Este artigo apresentou o MJACO, uma extens ao do JacORB com capacidades multicast. Este ORB, disponibiliza, al em de comunicac o es ponto a ponto, um mecanismo padronizado de difus ao n ao con avel e, a partir deste, um conjunto de extens oes para obter um protocolo de difus ao con avel, mais adequado a implementac a o de garantias mais restritivas de acordo e ordenac a o. A arquitetura MJACO segue um modelo de integrac a o, baseado em plugins, que e bastante ex vel e n ao compromete aspectos de interoperabilidade e portabilidade do ORB como um todo. Al em disso, as abordagens de invocac a o est atica e din amica no CORBA s ao mantidas mesmo com as extens oes propostas s o n ao o retorno de invocac a o (resposta), tal como denido na especicac a o UMIOP. No entanto, isso pode ser conseguido com m etodos callback declarados na interface IDL t ecnica de programac a o admitida no CORBA. Medidas de desempenho comparando os protocolos UDP/Multicast IP, UMIOP e ReMIOP s ao apresentados em [Bessani et al., 2003b, Bessani et al., 2002] com o intuito de expor os custos de prover comunicac a o multiponto em n vel de middleware e da difus ao con avel assegurada pelo ReMIOP. A implementac a o do MJACO e parte do projeto G ROUP PAC [Lung, 2001] (http://www.lcmi.ufsc.br/grouppac) que corresponde a um conjunto de objetos de servic o desenvolvidos com a nalidade de facilitar a implementac a o de aplicac o es distribu das tolerantes a faltas. No G ROUP PAC devem conviver as duas pilhas de protocolos IIOP/TCP/IP e ReMIOP/MIOP/UDP/multicast IP possibilitando um mais amplo espectro claro, de suportes de protocolos aos modelos de comunicac a o de objetos distribu dos. E que al em de aplicac o es toler ancia a faltas, o MJACO pode ser utilizado para o desenvolvimento de outras aplicac o es CORBA orientada a grupo, tal como groupware, processamento paralelo, multim dia distribu da, etc. O MJACO pode ser obtido no enderec o http://grouppac.sourceforge.net, assim como seus manuais de instalac a o e programac a o.

Refer encias
Bessani, A. N. (2002). O Padr ao UMIOP como Base para Comunicac a o de Grupo Con avel em Sistemas Distribu dos de Larga Escala. Dissertac a o de mestrado em engenharia el etrica, Centro Tecnol ogico, Universidade Federal de Santa Catarina, Florian opolis.

Bessani, A. N., da Silva Fraga, J., and Lung, L. C. (2002). Mjaco - integrac a o do multicast ip na arquitetura corba. In Anais do 20o. Simp osio Brasileiro de Redes de Computadores, Buzios - RJ - Brasil. Bessani, A. N., Lung, L. C., and da Silva Fraga, J. (2003a). Integrating the multicast interorb protocol on corba. Submetido ao 6th IEEE International Symposium on Objectoriented Real-time distributed Computing. Bessani, A. N., Lung, L. C., and da Silva Fraga, J. (2003b). Remiop: Projeto e implementac a o de um mecanismo de difus ao con avel no corba. Submetido ao 21o. Simp osio Brasileiro de Redes de Computadores (Natal - RN - Brasil). Brose, G. (1997). Jacorb: Implementation and design of a javaorb. In Proceedings of IFIP WG 6.1 International Working Conference on Distributed Applications and Interoperable Systems. Deering, S. E. (1986). Host extensions for ip multicasting (rfc 988). IETF Request For Comments. Floyd, S., Jacobson, V., Liu, C.-G., McCane, S., and Zhang, L. (1997). A reliable multicast framework for light-weight session and application level framing. IEEE/ACM Transactions on Networking. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading. Hadzilacos, V. and Toueg, S. (1994). A modular approach to the specication and implementation of fault-tolerant broadcasts. Technical report, Department of Computer Science, Cornell University, New York - USA. Levine, B. N. and Garcia-Luna-Aceves, J. J. (1998). A comparison of reliable multicast protocols. Multimedia Systems, 6(5):334348. Liao, T. (1998). Light-weight reliable multicast protocol. http://webcanal.inria.fr/lrmp/. Dispon vel em

Lung, L. C. (2001). Experi encias com Toler ancia a Faltas no CORBA e Extens oes no FT-CORBA para Sistemas Distribu dos de Larga Escala. Tese de doutorado em engenharia el etrica, Centro Tecnol ogico, Universidade Federal de Santa Catarina, Florian opolis. OMG (2001). Unreliable multicast inter-orb protocol specication v1.0. OMG Standart. OMG (2002). The common object request broker architecture specication v3.0. OMG Standart Document formal/02-12-06. Sabata, B., Brown, M., Denny, B., and Heo, C. H. (1996). Transport protocol for reliable multicast: Trm. In Proceedings of the International Conference on Networks, Orlando - Fl orida - USA. Wangham, M. S., Lung, L. C., Westphall, C. M., and da Silva Fraga, J. (2001). Integrating ssl to the jacoweb security framework: Project and implementation. In Proceedings of IM2001 - IFIP/IEEE International Symposium on Integrated Network Management, Seattle, Washington - USA.

Potrebbero piacerti anche