Universidade da Beira Interior
Sistemas Distribuídos - 2013/2014
Trabalho Prático
Parte I - 6 valores.
- Trabalho a realizar por grupos de 2 ou 3 alunos.
- Entregar o relatório em papel até às 17 horas de 23 de Maio.
- Envio do código do projeto, até às 24 horas de 23 de Maio.
Enunciado:
Pretende-se criar uma aplicação para vender produtos usados. Para isso, pretende-se um
processo servidor (Catalogo) que irá registar os processos interessados em vender produtos de
uma determinada categoria (Clientes). Cada cliente é responsável por vender os seus produtos.
Para isso regista-se no Catalogo indicando o seu IP, o porto onde ficará à espera de ligações de
clientes interessados nos seus produtos, e a categoria de produtos que pretende vender. Quando
um Cliente pretende adquirir um determinado tipo de produto, solicita ao Catalogo a lista de
Clientes que vendem produtos dessa categoria, recebendo os seus endereços (IP + porto).
O Cliente em seguida entrará em contacto com os Clientes que desejar.
O processo Catalogo deverá ser um servidor RMI, com um objeto remoto que permita:
- registar clientes para vender uma determinada categoria de produtos;
- obter uma listagem de todas as categorias existentes;
- obter a lista de contactos dos clientes que vendem determinada categoria de produtos. Quando
um Cliente solicita quais os clientes que vendem uma determinada categoria, mas essa categoria
não existe no catálogo, esse cliente deve ficar registado de maneira a receber um callback do
Catalogo quando algum cliente se registar para vender essa categoria;
- retirar um Cliente do Catalogo.
Os processos do tipo Cliente deverão ser clientes RMI do processo Catalogo e ao mesmo
tempo ser servidores multi-threaded (com comunicação por Sockets) para os outros clientes.
Um processo Cliente ao receber a lista de endereços irá depois contactar o(s) processo(s) dessa
lista. Cada processo Cliente deverá enviar aos clientes interessados uma lista dos produtos que
têm para venda e respetivo preço. Aos Clientes que o solicitarem devem enviar um contacto
(telefone ou mail) para posterior negociação/venda.
Universidade da Beira Interior
Sistemas Distribuídos - 2013/2014
Os processos clientes terão uma interface de texto com o utilizador.
Os dados do processo Catalogo e de cada processo Cliente devem ser guardados de forma
persistente em ficheiros de objetos.
O relatório deverá descrever a arquitetura da aplicação, a estrutura do código e um
pequeno manual de utilizador.
No final, cada grupo deve:
1 - Enviar por e-mail o código fonte do trabalho usando o endereço: [email protected]
2 - O “subject” do mail deverá conter o número de aluno de cada membro do grupo, sendo da
forma TP-a99999a99999.
3 - Entregar o relatório em papel.
Download

Prático