Projeto Usando CORBA

Sistemas de Objetos Distribuídos - Primeiro Semestre de 2004

. Descriçao Geral
. Etapas
. Resultados
        
. Requisitos
. Registro das equipes
[at work icon] Em construção...

Descrição Geral

Vamos construir um "versão enxuta" de um sistema de informatização de bibliotecas. O sistema será distribuído por múltiplos servidores CORBA, cada qual gerenciando uma biblioteca. Cada servidor de gerenciamento de biblioteca implementará dois "objetos principais": um objeto Biblioteca e um objeto BibAdmin. Interagindo com o primeiro desses objetos, os usuários terão acesso a serviços rotineiros da biblioteca: consultas, empréstimos e devoluções. Interagindo com o segundo, o pessoal da biblioteca efetuará operações administrativas: cadastramento de um novo livro, adicão de mais exemplares de um livro ao acervo da biblioteca, etc.

Além dos objetos Biblioteca e BibAdmin, o servidor implementará uma coleção de objetos Livro. A cada Livro, por sua vez, estará associada uma coleção de objetos ExemplarDeLivro. Podemos pensar que um objeto Biblioteca possui um conjunto de Livros, e que cada Livro possiu um conjunto de objetos ExemplarDeLivro. Quaisquer alterações nesses conjuntos, entretanto, tem de ser efetuadas através do objeto BibAdmin.

A funcionalidade de nosso sistema de informatização de bibliotecas irá crescendo ao longo do semestre.

Etapas

O projeto será dividido em duas etapas, que corresponderão aos EPs 1 e 2 de SOD (MAC 440/5759). Ao final da segunda etapa as equipes farão uma demonstração do funcionamento de seus sistemas.

Primeira Etapa (EP1 de SOD): servidores isolados, objetos não persistentes

Segunda Etapa (EP2 de SOD): servidores interligados, objetos persistentes

Resultados

Para cada uma das etapas, cada equipe de projeto escreverá um "programa servidor" e um ou dois "programas clientes".

O Servidor

Em cada etapa o programa servidor implementará as interfaces definidas no arquivo IDL especifico dessa etapa. Escreva-o tendo em mente que poderão ocorrer várias execuções simultâneas do mesmo programa servidor. Cada "processo servidor" (uma execucão do programa servidor) corresponde a uma biblioteca. Portanto o programa servidor precisa receber como argumentos os parâmetros que variam de uma biblioteca para outra. Na primeira etapa, esses parâmetros devem especificar os nomes dos "objetos principais" do servidor, além do nome, cidade e estado da biblioteca. Para não ter que passar ao seu programa servidor uma longa lista de argumentos na linha de comando, você pode passar na linha de comando o nome de um arquivo contendo as definições dos parâmetros específicos de uma biblioteca.

O(s) Cliente(s)

Os programas clientes serão usados para exercitar o sistema. Fica a critério de cada equipe decidir se escreve dois clientes, um para os serviços rotineiros (cliente da Biblioteca) e outro para as operações administrativas (cliente do objeto BibAdmin), ou se escreve um só cliente, que funcione tanto para os serviços rotineiros como para as operações administrativas. De qualquer modo, o(s) cliente(s) devem permitir que o usuário:

O(s) cliente(s) devem também permitir que o usuário: Fiquem à vontade para definir como seu(s) programa(s) cliente(s) vai(ão) interfacear com os usuários. O único requisito é que a interface com o usuário permita que o sistema seja exercitado da forma descrita acima.

Requisitos

Devem ser utilizados os seguintes ORBs:

O projeto deve empregar mais de uma linguagem, isto é, não pode ser inteiramente escrito em C++ ou em Java. Em pelo menos uma das etapas, um dos programas (servidor ou cliente) produzidos deve ter sido escrito numa linguagem diferente do outro.

Registro das Equipes

Este projeto será desenvolvido em equipes de um ou dois alunos. As equipes devem se registrar com o professor, via email, até o dia 20 de abril.


Valid CSS! Valid XHTML 1.0! Last modified: Tue Apr 13 11:59:06 EST 2004
Francisco Reverbel
reverbel at ime.usp.br