Sistemas Distribuídos 2001/2002

 

Especificação dos parâmetros, variáveis de estado, estímulos e interface de rede

Versão 2.1 (resultado da aula de 16.04.2002, com algumas correcções em 08.05.2002)

 

Parâmetros | Variáveis de estado | Estímulos | Critérios de Amizade | Interface | Interface de utilizador

 

 

Parâmetros (características invariantes)

 

Nome

Domínio

Identificacao

Número inteiro positivo

Sexo

{feminino, masculino}

Idade

Número inteiro positivo

Cor preferida

{vermelho, laranja, amarelo, castanho, verde, azul, violeta, rosa, branco, preto}

Clube de futebol

{guimaraes, braga, porto, boavista, benfica, sporting}

Preferências:

-         cinema

-         teatro

-         cafe

-         desporto

 

{sim, nao}

{sim, nao}

{sim, nao}

{sim, nao}

 

 

Variáveis de estado

 

Nome

Domínio

Alegria

[-10,10], valor inicial = 0

Grau de amizade(1)

[-10,10], valor inicial = 0

Quantidade de amigos

[0 ,¥[, valor inicial = 0

(1) Esta variável tem a forma de um vector. Cada elemento do vector representa o grau de amizade desta “pessoa” com cada uma das restantes. Cada elemento do vector é composto pela identificação da outra “pessoa” e pelo respectivo grau de amizade.

 

Estímulos

 

Nome

Domínio

Resposta

Dar presente (cor)

{vermelho, laranja, amarelo, castanho, verde, azul, violeta, rosa, branco, preto}

{sim, nao}(2)

Convidar (actividade)

{cinema, teatro, cafe, desporto}

{sim, nao}(3)

Saudar

-

{sim, nao}(4)

Conversar (tema)

{cinema, teatro, cafe, desporto}

{sim, nao}(5)

(2) “sim” representa que a oferta foi aceite.

(3) “sim” representa que o convite foi aceite.

(4) “sim” representa que a saudação foi devolvida.

(5) “sim” representa que o tema foi aceite para conversa.

 

 

Especificação dos critérios de amizade

 

Define-se que duas “pessoas” são amigas quando as duas acumulam um total de 17 ou mais pontos, obtidos da seguinte forma:

 

Têm a mesma cor preferida:

1 ponto

São do mesmo clube de futebol:

2 pontos

Têm preferências semelhantes:

3 pontos por cada preferência igual

Diferença de idade:

            0 – 5 anos:

            6 – 10 anos:

            11 – 20 anos:

            > 21 anos

 

3 pontos

2 pontos

1 ponto

0 pontos

Grau de amizade (6):

Variável, entre –10 e 10 pontos

 

(6) A variável de estado “Grau de amizade” tem inicialmente o valor zero, e varia ao longo do tempo em função dos estímulos recebidos. A forma como cada “pessoa” reage aos estímulos é livre.

 

Interface

 

Protocolo de comunicações

A comunicação entre as diversas aplicações deverá ser implementada através do protocolo HTTP.

 

Localização das aplicações

A localização de cada aplicação será descrita por um URL.

A lista com a localização de todas as aplicações estará disponível em:

 

http://marte.dsi.uminho.pt/sd/aplicacoes.xml

 

e terá o seguinte formato:

 

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

<LISTA_APPLS>

<APPL>

      <LOCATION>

http://host/aplicacao1.asp

            </LOCATION>

            <ID>

                  1

            </ID>

</APPL>

<APPL>

      <LOCATION>

http://host/aplicacao34.php

            </LOCATION>

            <ID>

                  34

            </ID>

</APPL>

      ...

</LISTA_APPLS>

 

onde http://host/aplicacao34.asp representa o URL de cada uma das aplicações e onde 34 representa a identificação (parâmetro identificacao) de cada aplicação.

Este exemplo mostra ainda que as aplicações poderão ser desenvolvidas usando uma de várias tecnologias diferentes: ASP, PHP ou JSP.

A localização de cada aplicação deverá ser fornecida por cada um dos grupos no momento de entrega do trabalho. A identificação será atribuída pelo docente.

 

A versão final desta lista estará disponível no dia 16.05.2002, isto é, dois dias após a data limite de entrega dos trabalhos. Até lá a lista poderá conter alguns URLs, de acordo com pedidos dos alunos.

 

Interface

A comunicação entre as aplicações faz-se através de pedidos HTTP com passagem de parâmetros usando o método GET.

O formato geral dos pedidos é o seguinte:

 

http://host/aplicacao.asp?id=...&tipo=...&nome=...&extra=...

 

onde:

 

id representa a identificação da aplicação que está a efectuar o pedido;

tipo = informação | estimulo

nome= sexo | idade | cor | clube | cinema | teatro | cafe | desporto | alegria | amizade | amigos | todos | presente | convidar | saudar | conversar

extra = vermelho | laranja | amarelo | castanho | verde | azul | violeta | rosa | branco | preto | cinema | teatro | cafe | desporto

 

Os valores do parâmetro “nome” a vermelho são utilizados em pedidos de informação (tipo=informação), enquanto que os valores a azul são utilizados para a emissão de estímulos (tipo=estimulo).

Os valores do parâmetro “extra” a verde são utilizados para representar a cor de um presente (tipo=estimulo&nome=presente), enquanto que os valores a amarelo são utilizados para representar um tipo de convite (tipo=estimulo&nome=convidar) ou um tema de conversa (tipo=estimulo&nome=conversar).

 

Acesso aos valores dos parâmetros e variáveis de estado de uma aplicação

Cada aplicação deverá disponibilizar uma interface para acesso aos valores dos seus parâmetros e variáveis de estado.

Para isso, em resposta a um pedido HTTP do tipo:

 

http://host/aplicacao1.asp?id=34&tipo=informacao&nome=todos

 

a aplicação 1 deve responder à aplicação 34 com um ficheiro XML com o seguinte formato:

 

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

<pessoa>

<informacao>

<identificacao>

(inteiro)

</identicacao>

<sexo>

(string)

</sexo>

<idade>

(inteiro)

</idade>

<cor>

(string)

</cor>

<clube>

(string)

</clube>

<cinema>

(string)

</cinema>

<teatro>

(string)

</teatro>

<cafe>

(string)

</cafe>

<desporto>

(string)

</desporto>

<alegria>

(inteiro)

</alegria>

<amizade>

(inteiro)

</amizade>

<amigos>

(inteiro)

</amigos>

</informacao>

</pessoa>

 

Uma aplicação deverá ainda ser capaz de responder a pedidos do valor de apenas um parâmetro ou variável de estado:

 

http://host/aplicacao1.asp?id=34&tipo=informacao&nome=cor

 

que deve ter como resposta um ficheiro XML com a seguinte estrutura:

 

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

<pessoa>

<informacao>

<cor>

(string)

</cor>

</informacao>

</pessoa>

 

Estímulos

 

A emissão de estímulos faz-se usando a especificação geral descrita acima.

A resposta a um estímulo deve também ser um ficheiro XML com a seguinte estrutura:

 

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

<pessoa>

<resposta>

string

</resposta>

</pessoa>

 

Por exemplo, a resposta ao estímulo:

 

http://host/aplicacao1.asp?id=34&tipo=estimulo&nome=convidar&extra=teatro

 

poderá ser:

 

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

<pessoa>

<resposta>

sim

</resposta>

</pessoa>

 

enquanto que a resposta ao estímulo:

 

http://host/aplicacao1.asp?id=34&tipo=estimulo&nome=saudar

 

poderá ser:

 

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

<pessoa>

<resposta>

nao

</resposta>

</pessoa>

 

Interface de utilizador

 

A interface de utilizador de cada aplicação deverá conter, no mínimo, os seguintes elementos:

 

-         um botão que permita iniciar o processo de procura de amigos;

-         uma indicação do número actual de amigos

 

Data da última actualização: 08.05.2002