Protocolos de Comunicação
Next: Conclusão
Up: Implementação do MIU
Previous: Modelo da Aplicação
Estando a informação semântica dispersa pelos três componentes do sistema, é necessário que exista colaboração entre eles.
Tal é conseguido recorrendo a protocolos de comunicação inter-processos desenvolvidos sobre channels UNIX
.
O tipo de mensagens que cada componente pode receber/gerar depende do tipo de tarefas que ele realiza.
O Modelo da Apresentação é responsável pela recepção e envio de eventos válidos do utilizador ao Controlador de Diálogo, o que dá origem às seguintes mensagens no sentido Modelo da Apresentação - Controlador de Diálogo:
- CreateMsg - pedido para que seja criada uma instância de um GI;
- OpenMsg - pedido para que seja activada uma instância;
- KillMsg - pedido para que seja eliminada uma instância;
- StartMsg - início de um determinado evento;
- EndMsg - fim de um evento e, opcionalmente, qual o valor por ele devolvido;
- CancelMsg - cancelamento de um evento.
- CmdMsg - selecção de um dos comandos pré-definidos;
- SetValMsg - envio de um valor a uma instância.
Por seu lado, o Controlador de Diálogo deve processar os eventos e indicar ao Modelo da Apresentaão quais os próximos eventos válidos e quais os valores que devem ser apresentados ao utilizador.
O protocolo de comunicação no sentido Controlador de Diálogo-Modelo da Apresentação é:
- InstMsg - identificação de uma instância recém criada;
- EnableMsg - tornar um determinado evento válido;
- DisableMsg - tornar um determinado evento inválido;
- OutMsg - corresponde às instruções out();
- ShowMsg - atribuição de um valor a uma variável;
- StopMsg - final bem sucedido de um Guião;
- AbortMsg - cancelamento de um Guião;
- GoMsg - terminou o processamento da mensagem recebida.
Figure 7: Comunicações correspondentes a CreateMsg
Na fig. 7 é apresentado, a título de exemplo, o esquema correspondente às comunicações geradas pelas mensagem CreateMsg.
Depois de recebida a mensagem, o Controlador de Diálogo indica o identificador da instância criada (InstMsg) e, de seguida, gera zero ou mais mensagens ShowMsg, OutMsg, EnableMsg e GoMsg para a inicializar; finalmente, a mensagem GoMsg é utilizada para indicar ao Modelo da Apresentação que o Controlador de Diálogo está pronto para receber uma nova mensagem.
O Controlador de Diálogo necessita também comunicar com o Modelo da Aplicação.
Neste caso, o protocolo é mais simples.
As mensagens que o Controlador de Diálogo envia ao Modelo da Aplicação são:
- GetVarMsg - para a obtenção do valor de uma dada variável da Aplicação;
- GetTypeMsgSt - para a obtenção da definição de um dado tipo;
- CallMsg - para a execução de um dado comando;
- HaltMsg - informa o Modelo da Aplicação de que deve terminar a execução.
Na sentido inverso existem apenas as mensagens:
- SetValMsg - para enviar valores ao Controlador de Diálogo, quer como resposta a GetValMsg, quer a CallMsg;
- DefTypMsg - devolução da definição de um tipo.
Faltam agora as comunicações entre o Modelo da Apresentação e o Modelo da Aplicação.
O Modelo da Apresentação envia as mensagens:
- GetTypeMsgLx - para a obtenção da definição de um dado tipo;
- InvMsg - para a verificação de invariantes.
O Modelo da Aplicação responde com:
- SetValMsg - para devolver o resultado do teste de um invariante;
- DefTypMsg - para devolução da definição de um tipo.
Figure 8: Comunicações correspondentes a InvMsg
Na fig. 8 estão representas as mensagens correspondentes a um pedido de verificação de invariante.
Next: Conclusão
Up: Implementação do MIU
Previous: Modelo da Aplicação
Jose Franscisco Creissac Campos
Wed Feb 7 14:27:41 MET 1996