|
|
Descrição Geral |
Record
. Um
Record
contém um conjunto de pares (nome, valor). Esses pares
são os atributos do registro. Eis um exemplo de registro:
* titulo alien ano 1979 diretor ridley scott com sigourney weaver com harry dean stanton com yaphet kottoAs linhas acima representam os atributos do registro. A primeira coluna traz o nome do atributo e a segunda o valor. Um registro pode ter vários atributos com o mesmo nome. (O registro acima tem três atributos com o nome "com".) Todo registro tem um atributo chave especificado na criação do registro. (O atributo chave do registro acima é o título, que aparece marcado com um asterisco.) O nome do atributo chave é único dentro do registro, ou seja, nenhum outro atributo do registro pode ter o mesmo nome que o atributo chave. Cada servidor implementará um objeto
RecordSet
, que é
essencialmente uma coleção de Record
s. Um registro de um
RecordSet
é univocamente identificados por seu atributo
chave. Em outras palavras: num RecordSet
não podem existir
dois registros com nomes iguais e valores iguais no atributo chave.
As definições (em IDL) das interfaces Record
e
RecordSet
encontram-se no arquivo sod.idl
. Use-o sem fazer alteração
nenhuma. Para que os programas escritos pelas diferentes equipes
funcionem em conjunto, é crucial que todos se baseiem nas mesmas
definições de interfaces.
Etapas |
RecordSet
com os registros mantidos localmente pelo
servidor.
Na segunda etapa os servidores deixam de ser isolados. Cada servidor
implementará dois objetos RecordSet
:
* titulo alien ano 1979 com sigourney weaver com yaphet kotto
* titulo alien diretor ridley scott com harry dean stanton
* titulo alien ano 1979 com sigourney weaver com yaphet kotto diretor ridley scott com harry dean stanton
Metas |
O Servidor |
sod.idl
. Na
primeira etapa não será implementado o conjunto de registros global (o
globalRecordSet
será null
).
O Cliente |
RecordSet
local e (na segunda etapa)
com o RecordSet
global implementado pelo servidor,
RecordSet
novos registros,RecordSet
por atributo
chave,RecordSet
,RecordSet
que contém algum atributo
de um conjunto especificado;RecordSet
que contém todos os atributos
de um conjunto especificado;Record
, referência essa
previamente obtida como resultado de uma busca por atributo
chave ou de uma adição de registro, interaja com esse registro,
RecordSet
com o qual toda interação ocorre;local
|
Faz o cliente se conectar a outro servidor e passa a trabalhar com o
RecordSet local desse servidor. Este comando recebe o
nome de um servidor, obtém do serviço de nomes uma referência para o
objeto Server correspondente, e deste objeto obtém uma
referência para o conjunto de registros local do Server .
Este conjunto de registros passa a ser o RecordSet
corrente.
|
global
|
Faz o cliente se conectar a outro servidor e passa a trabalhar com o
RecordSet global fornecido por esse servidor. Este
comando recebe o nome de um servidor, obtém do serviço de nomes uma
referência para o objeto Server correspondente, e deste
objeto obtém uma referência para o conjunto de registros global do
Server . Este conjunto de registros passa a ser o
RecordSet corrente.
|
addrec
|
Adiciona um registro ao RecordSet corrente. Recebe o
atributo chave do novo registro, que passa a ser o
Record corrente.
|
getbykey
|
Busca um registro por atributo chave. A busca é efetuada no
RecordSet . Se encontrado, o registro passa a ser o novo
registro corrente.
|
all
|
Lista os (atributos chaves) de todos os registros do repositório corrente. |
findone
|
Lista os (atributos chaves dos) registros do RecordSet
corrente que contém algum dos atributos de uma lista especificada.
|
findall
|
Lista os (atributos chaves dos) registros do RecordSet
corrente que contém todos os atributos de uma lista especificada.
|
addattr
|
Adiciona um atributo ao registro corrente. |
attrs
|
Mostra todos os atributos do registro corrente e indica qual deles é o atributo chave do registro. |
quit
|
Encerra a execuçao do cliente. |
Especificações Adicionais |
Server
,
RecordSet
e Record
devem ser
persistentes. As referências para RecordIterator
s
devem ser transientes.
Server
e os
dois RecordSet
s do servidor devem ser instanciados
no main do servidor.
Record
s locais devem ser implementados por
serventes instanciados dinâmicamente por um
ServantLocator
.
Record
s globais devem ser implementados por
um serventes default.
Forma de Entrega e Prazos |
build.xml
que gere tanto o
servidor como o cliente.
Makefile
que gera o cliente C++ e um
build.xml
que gera o servidor Java.
build.xml
e, se for o caso, o
Makefile
. Ele deve também conter um subdiretório
com a árvore de fontes Java e, se for o caso, outro subdiretório
com os fontes C++.
Registro das Equipes |
![]() |
Equipes registradas:
|