• Nenhum resultado encontrado

CAPÍTULO 2 CONCEITOS BÁSICOS

3.3. Descrição dos Casos de Uso

3.3.1. Cliente

Conforme ilustra a Figura 14, o Cliente pode realizar Requisições Síncronas, Requisições Assíncronas e cancelar Requisições assíncronas. Estes casos de uso são descritos nas subseções seguintes.

a) Cliente registra-se no QoMonitor

Esse caso de uso descreve o registro de clientes no QoMonitor. O registro do Cliente é necessário para que o cliente possa utilizar os serviços do QoMonitor. O registro guarda informações do Cliente como nome, endereço IP, porta, lista de parâmetros de entrada e a lista de parâmetros de qualidade do serviço que o cliente deseja que sejam monitorados.

Atores Envolvidos: Cliente.

Pré-condição: Cliente e QoMonitor e estão online e cliente ainda não se registrou.

Pós-condição: Informações do cliente (IP, nome,...etc.) estão armazenadas no QoMonitor. Fluxo:

(i) Nas requisições síncronas, o Cliente registra-se no QoMonitor ao chamar o método getServiceQuality. O registro é realizado conforme descrito na seção 3.3.2.1., subitem (a), (Registro de Cliente no QoMonitor).

(ii) Nas requisições assíncronas o Cliente se registra no QoMonitor ao chamar o método subscribeServiceQuality. O registro é realizado conforme descrito na seção 3.3.2.1., subitem (b), (Registro de Cliente no QoMonitor).

b) Cliente realiza requisição síncrona

Esse caso de uso descreve a ação do Cliente (uma aplicação ou Middeware) para realizar uma requisição síncrona ao QoMonitor, buscando recuperar os dados dos parâmetros de QoS/QoC requisitados pelo cliente.

Atores envolvidos: Cliente, serviço

Pré-condição: Cliente, QoMonitor e serviço estão online

Pós-condição: Cliente recebe os dados dos parâmetros (metadados) que ele requisitou.

Fluxo:

(i) O Cliente chama o método getServiceQuality solicitando que a Fachada Cliente obtenha e retorne os parâmetros de qualidade (metadados) especificados, que deverão ser enviados sincronamente.

(ii) A Fachada Cliente não possui a referência ao objeto serviço, necessário para obter os metadados relativos ao serviço armazenados no Repositório de Metadados. Para tanto, a Fachada Cliente executa o caso de uso detalhado na seção 3.3.2.1.2. (Referenciar serviço registrado no Repositório de Serviços) para obter a referência ao objeto serviço nos dois casos: (a) O serviço já está registrado no Repositório de Serviços e o objeto

serviço armazenado neste repositório. (b) O serviço ainda não está registrado neste repositório, sendo registrado neste momento e o objeto serviço armazenado no mesmo. A seguir, a Fachada Cliente envia o objeto serviço para o Tratador de Requisições. (iii) O Tratador de Requisições envia a referência ao objeto serviço para o Tratador de

Requisições Síncronas, este para o Módulo de Ontologia e este, por sua vez, para o Repositório de Metadados.

(iv) No caso do serviço já está registrado no Repositório de Serviços, os metadados já estão sendo monitorados e aferidos e armazenados no Repositório de Metadados, estando, portanto disponíveis. A partir daí, tudo prossegue conforme descrito no ítem (vi).

(v) No caso do serviço não estar previamente registrado e, portanto, é realizado seu registro conforme descrito na seção 3.3.2.1., subitem (b) (Referenciar Serviço Registrado no Repositório de Serviços), este serviço não está sendo monitorado e os metadados ainda não estão sendo monitorados e aferidos, portanto, não estão disponíveis no Repositório de Metadados. Neste caso, são executados os casos de uso detalhados nas seções 3.3.2.2.1., subitem (a) (Blackboard Obtém Metadados dos Serviços Monitorados); 3.3.2.2.2., subitem (b) (Aferição dos Metadados pelos

Aferidores); 3.3.2.2.3., subitem (a) (Armazenamento dos Metadados Aferidos no Repositório de Metadados). A partir daí, tudo prossegue normalmente, como descrito

no subitem (vi) desta seção.

(vi) O Repositório de Metadados retorna para o Módulo de Ontologia os metadados relativos ao objeto serviço especificado, que os transfere no formato da ontologia para o Tratador de Requisições Síncronas, este para o Tratador de Requisições, que, por sua vez os transfere para a Fachada Cliente e, finalmente, esta entrega os metadados para o cliente solicitante.

c) Cliente realiza requisição assíncrona

Esse caso de uso descreve a ação do Cliente (uma aplicação ou Middeware) para realizar uma requisição assíncrona ao QoMonitor, buscando recuperar os dados dos parâmetros de QoS/QoC requisitados pelo Cliente, quando algum evento especificado pelo cliente acontece.

Atores Envolvidos: Cliente, serviço.

Pós-condição: Cliente recebe os dados dos parâmetros que ele requisitou.

Fluxo:

(i) O Cliente chama o método subscribeServiceQuality informando os dados do serviço a ser monitorado e os metadados que ele deseja recuperar assincronamente quando o evento (condição) especificado pelo cliente acontecer.

(ii) O Cliente e a Fachada Cliente já conhecem o ID de registro do Cliente no

QoMonitor, pois ao chamar o método subscribeServiceQuality, o cliente foi

registrado, conforme descrito na seção 3.3.1.1., (Cliente se registra no QoMonitor), subítem (ii). Porém, a Fachada Cliente não possui a referência ao objeto serviço, necessário para obter os metadados relativos ao serviço armazenados no

Repositório de Metadados. Para obtê-lo, Fachada Cliente executa o caso de uso

detalhado na seção 3.3.2.1., subitem (b) (Referenciar serviço registrado no

Repositório de Serviços) nos dois casos: (a) O serviço já está registrado no Repositório de Serviços e o objeto serviço armazenado neste repositório. (b) O

serviço ainda não está registrado neste repositório, sendo registrado neste momento e o objeto serviço armazenado no mesmo. A seguir, a Fachada Cliente envia a referência o objeto serviço para o Tratador de Requisições.

(iii) O Tratador de Requisições envia a referência ao objeto serviço para o Tratador de

Requisições Assíncronas, este para o Módulo de Ontologia e este, por sua vez,

para o Repositório de Metadados.

(iv) No caso do serviço já está registrado no Repositório de Serviços, os metadados já estão sendo monitorados e aferidos e armazenados no Repositório de Metadados, estando, portanto disponíveis. A partir daí, tudo prossegue conforme descrito no item (vi).

(v) No caso do serviço não está anteriormente registrado é realizado seu registro conforme descrito é executado o caso de uso descrito na seção 3.3.2.1., subitem (b) (Referenciar serviço registrado no Repositório de Serviços). Como ele não estava registrado, este serviço não está sendo monitorado e os metadados ainda não estão sendo monitorados e aferidos, portanto, não estão disponíveis no

Repositório de Metadados. Neste caso, são executados os casos de uso

detalhados nas seções 3.3.2.2.1., subítem (a) (Blackboard Obtém Metadados dos Serviços Monitorados); 3.3.2.2.2., subitem (b) (Aferição dos Metadados pelos Aferidores); 3.3.2.2.3., subitem (a) (Armazenamento dos Metadados

Aferidos no Repositório de Metadados). A partir daí, tudo prossegue normalmente, como descrito da seção (vi) desta seção.

(vi) O Repositório de Metadados retorna para o Módulo de Ontologia os metadados relativos ao objeto serviço especificado, que os transfere no formato da ontologia para o Tratador de Requisições Assíncronas. Este último,verifica continuamente se a condição de retorno (evento) ocorreu e caso tenha ocorrido, envia os metadados para o Módulo Publish/Subscribe publicá-los.

d) Cliente cancela requisição assíncrona

Esse caso de uso descreve como o Cliente cancela uma Requisição Assíncrona.

Atores Envolvidos: Cliente, serviço.

Pré-condição: Cliente realizou requisição assíncrona. Pós-condição: QoMonitor cancela requisição assíncrona. Fluxo:

Para cancelar uma Requisição Assíncrona, o Cliente chama o método

unsubscribeServiceQuality da API do QoMonitor, que requer como parâmetro o identificador

da subscrição (ID) recebido como resposta ao método subscribeServiceQuality. A Fachada

Cliente transfere o identificador para o Tratador de Requisições, e este, para o Tratador de Requisições Assíncronas, que remove a subscrição da lista de subscrições. Desta forma, a

requisição assíncrona está cancelada e o QoMonitor suspende o envio dos metadados de qualidade ao Cliente de forma assíncrona.