|
|
![]() |
Em construção... |
Descrição Geral |
Part
. Cada servidor implementará um objeto
PartRepository
, que é essencialmente uma coleção de
Part
s.
As definições (em IDL) das interfaces Part
e
PartRepository
encontram-se neste arquivo. 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.
Cada objeto Part
encapsula as seguintes informações:
(subPart, quant)
, onde subPart
referencia um sub-componente da peça, e quant
indica
quantas unidades do sub-componente aparecem na peça. Uma peça primitiva
tem lista de componentes vazia.
Os sub-componentes de um objeto Part
agregado são também
objetos Part
. Esses objetos não são necessariamente
implementados pelo servidor CORBA que implementa a peça agregada. Eles
podem estar distribuídos por múltiplos servidores. Tais servidores podem
inclusive ter sido escritos por diferentes equipes de projeto.
Metas |
O Servidor |
PartRepository
e Part
. Escreva-o tendo em
mente que poderão ocorrer várias execuções simultâneas do programa
servidor: cada "processo servidor" (uma execução do programa servidor)
implementará um objeto PartRepository
, mais a
correspondente coleção de objetos Part
. Isto significa que
o programa servidor deve receber como argumentos, na linha de comando,
certos parametros que devem variar de um processo servidor para outro
(o nome do servidor, por exemplo).
O Cliente |
bind
|
Faz o cliente se conectar a outro servidor e muda o repositório corrente. Este comando recebe o nome de um repositório e obtém do serviço de nomes uma referência para esse repositório, que passa a ser o repositório corrente. |
listp
|
Lista as peças do repositório corrente. |
getp
|
Busca uma peça por código. A busca é efetuada no repositório corrente. Se encontrada, a peça passa a ser a nova peça corrente. |
showp
|
Mostra atributos da peça corrente. |
clearlist
|
Esvazia a lista de sub-peças corrente. |
addsubpart
|
Adiciona à lista de sub-peças corrente n unidades da
peça corrente.
|
addp
|
Adiciona uma peça ao repositório corrente. A lista de sub-peças corrente é usada como como lista de sub-componentes diretos da nova peça. (É só para isto que existe a lista de sub-peças corrente.) |
quit
|
Encerra a execuçao do cliente. |
Etapas |
Primeira Etapa (EP1 de SOD) |
Segunda Etapa (EP2 de SOD) |
Part
(bem como as referências CORBA para esses
objetos) são persistentes. A queda e a reativação de
servidores não devem ter nenhum efeito sobre os relacionamentos
entre as peças mantidas por esses servidores.
Considere que o número de objetos Part
implementados
por um servidor pode ser grande a ponto de não ser possível manter
em memória um servente para cada Part
. Use um
DefaultServant
ou um ServantLocator
(a seu critério) para resolver este problema.
DefaultServant
:
a cada chamada remota de operação faça o servente default
"vestir a camisa" do objeto CORBA alvo da chamada.ServantLocator
:
use o ServantLocator
para fazer
instanciação de serventes sob demanda. Aplique o evictor
pattern para manter um cache dos serventes que foram
utilizados mais recentemente e para se livrar dos demais.Requisitos |
Registro das Equipes |
![]() |
Equipes registradas:
|