·

Cursos Gerais ·

Linguagens de Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Exercício de Programação Distribuída Sistema de Busca de Produtos versão estendida Construa um sistema distribuído de busca de produtos conforme mostra a figura abaixo com os seguintes tipos de processos 1 Loja mantém o catálogo de produtos de uma loja Para cada produto há dois campos título texto e preço número real 2 Consumidor implementa uma interface humanocomputador que possibilita um usuário anônimo realizar buscas de produtos Em cada busca o usuário deve fornecer um texto parcial substring do título do produto desejado Como resposta a uma busca o usuário visualiza a lista de produtos disponíveis em cada uma das lojas que compõem o sistema 3 Servidor de Busca de Produtos faz a intermediação das solicitações de busca entre os consumidores e as lojas Para cada solicitação de busca o servidor envia uma mensagem para o grupo de lojas e aguarda como resposta de cada loja a sua lista de produtos que satisfaz o texto parcial fornecido isto é os produtos cujos títulos contêm o texto parcial Depois de recebidas as respostas das lojas o servidor concatena todas essas respostas em uma única lista e a envia como resposta para o consumidor Caso a resposta de uma loja não chegue dentro de um tempo máximo Tmax após o envio da mensagem de solicitação de busca enviada ao grupo de lojas o servidor desiste de aguardar aquela resposta e monta a lista única de resposta somente a partir das respostas obtidas das outras lojas Cada busca realizada é devidamente registrada pelo servidor em um arquivo de log pode ser em formato texto ou csv constando a data dia e hora da busca o identificador único gerado pelo próprio Servidor da busca o texto parcial utilizado e a quantidade de produtos retornados por cada loja 4 Administrador implementa uma interface humanocomputador que possibilita um usuário administrador do sistema realizar as seguintes operações a Visualizar o histórico de buscas realizadas pelo servidor b Visualizar o valor atual de Tmax c Atualizar o valor de Tmax Sistema de Busca de Produtos Servidor de Busca de Produtos Grupo de Lojas Loja A Loja C Loja B Consumidor Administrador TCP TCP UDP multicast UDP unicast UDP unicast UDP unicast Requisitos orientações e sugestões para a implementação do sistema 1 A implementação do catálogo de produtos de uma Loja pode ser feita por meio de uma lista fixa armazenada em memória principal não é preciso utilizar banco de dados nem arquivo 2 A comunicação entre o Consumidor e o Servidor deve ser implementada por meio de TCP O mesmo se aplica para a comunicação entre o Administrador e o Servidor 3 O grupo de lojas deve conter no mínimo três instâncias do processo do tipo Loja Podese supor que a quantidade de membros no grupo é imutável ao longo da execução do sistema Assim o Servidor não precisa saber quantos membros estão ativos em cada momento 4 O envio de mensagem do Servidor para o grupo de processos do tipo Loja deve ser implementado por meio do protocolo UDP no modo multicast A mensagem deve informar o texto parcial fornecido para a busca e o identificador único da busca 5 O envio de mensagem de um processo do tipo Loja para o Servidor deve ser implementado por meio do protocolo UDP no modo unicast Para tanto o Servidor deverá criar uma thread exclusivamente para receber mensagens vindas das instâncias de Loja em um socket e porta alocados para esse fim Esse esquema exige que a Loja conheça o número da porta alocada Como as respostas vindas das instâncias de Loja podem se referir a diferentes buscas pois pode haver um conjunto de consumidores simultâneos cada mensagem deve carregar o identificador único da correspondente busca