Pular para o conteúdo principal

Projeto de sistemas distribuídos usando CORBA, parte I : O projeto

Na disciplina de Sistemas distribuídos (2º Trimestre -PPGEAS- UFSC - 2011) , tive que fazer um projeto em CORBA para 3 estações , a idéia era termos 3 estações funcionando em maquinas diferentes enviando mensagens uma para as outras, além disso utilizaríamos o conceito de relógios escalares de Lamport para poder ordenar os eventos e mensagens para cumprir a ordem total na entrega das mensagens na camada de aplicação , vou criar uma serie de posta explicando como fizemos o projeto e as dificuldades e detalhes da implementação.

Em tempo , foi por isso que passei um bom tempo sem publicar nada , a disciplina de sistemas distribuídos  e muito extensa e por isso tive que me dedicar e fiquei sem tempo para o blog

Vamos começar com uma explicação simples sobre o CORBA, segundo a wikipedia :
"CORBA (abreviado de Common Object Request Broker Architecture) é a arquitetura padrão criada pelo Object Management Group para estabelecer e simplificar a troca de dados entre sistemas distribuídos heterogêneos. Em face da diversidade de hardware e software que encontramos atualmente, a CORBA atua de modo que os objetos (componentes dos softwares) possam se comunicar de forma transparente ao usuário, mesmo que para isso seja necessário interoperar com outro software, em outro sistema operacional e em outra ferramenta de desenvolvimento. CORBA é um dos modelos mais populares de objetos distribuídos."

Os posts não vão se aprofundar muito no corba já que isso daria um livro inteiro , mas sempre que achar necessário vamos explicar uma ou outra característica do CORBA.

O corba é rival do RMI do Java ou seja funciona com base no principio do RPC ( Remote Procedury Call - Chamada de procedimento remoto), o corba é mais complicado que o RMI mas em compensação tem implementações em diversas linguagens diferentes enquanto o RMI é só em java.



Bom voltando ao projeto de sistemas distribuídos ... o enunciado do projeto era o seguinte :

Implemente um mecanismo baseado em relógios escalares (relógios lógicos de Lamport) que defina a entrega de mensagens obedecendo ordem Total em estações. Considere três estações (ou processos) sujeitas aos seguintes eventos de emissão:

S1 ( e11, m21, m31, e41, m51, m61)
S2 ( e12, m22, e32, m42, m52, e62, m72)
S3 ( m13, m23, e33, e43, m53, m63)

Todos os eventos de emissão de mensagens descritos nas seqüências acima são produzidos em suas estações (ou processos) respectivamente segundo as ordens locais indicadas pelos seus índices. Os eventos eij são internos e eventos mij correspondem à mensagens enviadas a todas estações (às três consideradas). No processo de envio timestamps são concatenados às mensagens usando os relógios lógicos. Os eventos recepção não estão anotados nas seqüências acima, mas são importantes no funcionamento dos relógios lógicos (devem ser atualizados quando de recepções de mensagens).

 Premissas:
        Comunicação ponto a ponto confiável com ordem FIFO entre estações.
 Condições para as decisões de entrega:
       Decisões de ordem em cada nó baseadas em uma fila por emissor (ver
desenho abaixo);
       A simulação dos eventos internos eij deve corresponder a simples ativação
dos respectivos Relógios Lógicos dos respectivos processos Pj.
       A ordem total na liberação das mensagens mij em cada processo toma
como base os valores de timestamp.

 Implementar a partir de objeto aplicação correspondente a dependência
da mensagem m53 como sendo precedida pela emissão dos eventos evento interno e32 e mensagem m21.

 Mostre no final dos eventos simulados as filas de delivery de mensagens nas três estações, com as mensagens difundidas ordenadas por estampilhas do mecanismo implementado.



A partir das especificações do projeto teríamos que criar 3 aplicativos cliente/servidor utilizando o Corba na versão java que já vem na SDK do java SE.

Inicialmente criamos 3 aplicativos exatamente iguais só fazendo algumas distinções para caracteriza-los como rodando em estações diferentes , ao final tivemos que implementar varias modificações no aplicativo padrão da 3º estação para atender ao item de projeto : Implementar a partir de objeto aplicação correspondente a dependência da mensagem m53 como sendo precedida pela emissão dos eventos evento interno e32 e mensagem m21.

Acompanhe nos próximos posts como fizemos a implementação.

Comentários

Postagens mais visitadas deste blog

Video Aulas de Java já disponíveis no 4Shared

Turma segue as video aulas já disponíveis para download no 4Shared , espero que vocês gostem das aulas e por favor postem um comentario no blog dizendo o que vc's acharam preciso desse feed back para o constante aprimoramento das aulas . Basta escolher o arquivo clickar  no link para download ( tenha paciencia os arquivos são grandes ) <p>&lt;p&gt;&amp;amp;amp;amp;lt;p&amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;lt;br&amp;amp;amp;amp;amp;amp;amp;gt;se&amp;amp;amp;amp;lt;/p&amp;amp;amp;amp;gt;&lt;/p&gt;</p> Se a Janela de Download acima não funcionar tente acessar os arquivos usando o seguinte link http://www.4shared.com/dir/34812571/bf01348d/VideoAulas.html Bom estudo  :-)

Notícias da UFSC » UFSC é segunda universidade brasileira melhor colocada no Webometrics

Notícias da UFSC » UFSC é segunda universidade brasileira melhor colocada no Webometrics : A Universidade Federal de Santa Catarina passou à segunda instituição brasileira melhor qualificada no  Ranking Web of World Universities , sendo a primeira universidade federal brasileira no levantamento . No primeiro lugar geral se mantém a USP. No ranking passado, publicado no mês de janeiro, a UFSC ocupava a quarta posição. Na classificação para a América Latina, em que figurava como quinta universidade,  passou a terceira colocada. E no ranking mundial está entre as cem universidades do mundo: subiu da 129ª posição para a 98ª. Harvard University, Massachusetts Institute of Technology e Stanford University se mantêm no topoda classificação mundial. Entre as brasileiras, lideram aUniversidade de São Paulo (USP), UFSC e Universidade Estadual de Campinas (Unicamp)

Serialização de objetos I - Salvando objetos em arquivos

Serialização: como salvar seus objetos Java par utilizar quando precisar  Serialização de objetos é a possibilidade de salvar uma cópia completa de um objeto ou de uma coleção de objetos em um fluxo de saída (arquivo externo), de modo que o objeto pode ser recriado a partir da cópia serializada  quando necessário . A serialização de objetos Java,  fornece um recurso para transformar um grupo ou um único objeto em um fluxo de bits, ou um array de bytes para armazenar ou enviar pela rede,  de modo que o  referido fluxo de bits ou uma matriz de bytes pode ser transformado novamente em objetos Java. O processo de serialização também é conhecido como marshaling de um objeto, e de-serialização é conhecido como un-marshaling. Assim a serialização oferece os seguintes benefícios: Um sistema para persistência de objetos, ou seja, escrever as suas propriedades em arquivos externos ou discos, ou salvá-las em um banco de dados. Um sistema para chamadas d...