O Cliente solicita um cutout para uma única coordenada que vai resultar em uma única imagem.
Faz uma requisição com suas credenciais para a API passando como parâmetro survey, RA, Dec, Size, Formato (Fits, Png), algoritimo, banda.
Cutout Service autentica o usuário, registra a solicitação, valida os parâmetros, checa se é possível atender o pedido em tempo hábil (cálculo de tempo baseado no tamanho do cutout ou outros fatores utilizando o histórico de execuções.)
Em caso positivo: processa e retorna o cutout como resultado da requisição.
Em caso negativo: a requisição não atende aos critérios de real time ou tenha alguma inconsistência nos parâmetros retorna mensagem de erro clara explicando o problema e sugestão de solução se possível.
Cutout Service, atualiza o registro da solicitação com status, tempo, tamanho, etc.
Usuário no retorno da requisição, pode estar salvando o resultado como arquivo (download) ou pode estar exibindo a imagem direto no jupyter notebook ou navegador.
Pontos Importantes:
O que caracteriza como real time é a quantidade de posições solicitadas e quantidade de imagens geradas, neste caso sempre que o usuário enviar apenas um par de coordenadas (RA, Dec) e o resultado for apenas um cutout será tratada como Real Time.
Tempo Limite para Real Time Job, a princípio considerar o timeout padrão de requisições http de 30 segundos, mas este valor deve ser um parâmetro configurável na aplicação, o tempo ideal vai ser calibrado a partir dos testes de usuários reais.
Caso a estimativa de tempo para criar este único cutout seja maior que o tempo limite do Real Time, este pedido será adicionado à fila de Jobs passando a ser um Async Job.
Neste cenário do Real Time Job o endpoint se comporta igual a qualquer outro endpoint REST, permitindo requisições simultâneas de diferentes clientes ou até do mesmo, mas tendo um agravante que é o tempo de processamento da requisição neste caso as requisições que o servidor aceitou como real time mas não conseguir processar vão falhar por timeout (Equivalente a negação de serviço).
No Real Time Job não precisa tratar a prioridade do usuário, já que cada pedido é atendido instantaneamente pelo servidor.
Requisição -> Autenticação -> Autorização -> Verifica os Parâmetros -> Estima o Tempo -> Registra o Pedido -> Processa o pedido de forma Síncrona -> Retorna o Cutout.
O Cliente solicita um cutout para uma única coordenada que vai resultar em uma única imagem.
Faz uma requisição com suas credenciais para a API passando como parâmetro survey, RA, Dec, Size, Formato (Fits, Png), algoritimo, banda.
Cutout Service autentica o usuário, registra a solicitação, valida os parâmetros, checa se é possível atender o pedido em tempo hábil (cálculo de tempo baseado no tamanho do cutout ou outros fatores utilizando o histórico de execuções.)
Em caso positivo: processa e retorna o cutout como resultado da requisição.
Em caso negativo: a requisição não atende aos critérios de real time ou tenha alguma inconsistência nos parâmetros retorna mensagem de erro clara explicando o problema e sugestão de solução se possível.
Cutout Service, atualiza o registro da solicitação com status, tempo, tamanho, etc.
Usuário no retorno da requisição, pode estar salvando o resultado como arquivo (download) ou pode estar exibindo a imagem direto no jupyter notebook ou navegador.
Pontos Importantes: O que caracteriza como real time é a quantidade de posições solicitadas e quantidade de imagens geradas, neste caso sempre que o usuário enviar apenas um par de coordenadas (RA, Dec) e o resultado for apenas um cutout será tratada como Real Time.
Tempo Limite para Real Time Job, a princípio considerar o timeout padrão de requisições http de 30 segundos, mas este valor deve ser um parâmetro configurável na aplicação, o tempo ideal vai ser calibrado a partir dos testes de usuários reais.
Caso a estimativa de tempo para criar este único cutout seja maior que o tempo limite do Real Time, este pedido será adicionado à fila de Jobs passando a ser um Async Job.
Neste cenário do Real Time Job o endpoint se comporta igual a qualquer outro endpoint REST, permitindo requisições simultâneas de diferentes clientes ou até do mesmo, mas tendo um agravante que é o tempo de processamento da requisição neste caso as requisições que o servidor aceitou como real time mas não conseguir processar vão falhar por timeout (Equivalente a negação de serviço).
No Real Time Job não precisa tratar a prioridade do usuário, já que cada pedido é atendido instantaneamente pelo servidor.
Requisição -> Autenticação -> Autorização -> Verifica os Parâmetros -> Estima o Tempo -> Registra o Pedido -> Processa o pedido de forma Síncrona -> Retorna o Cutout.