Sistema Web para Gerenciamento do Acesso a um Observatório

Propaganda
209
Sistema Web para Gerenciamento do Acesso a um
Observatório Astronômico
Maiara Heil Cancian, Cesar Albenes Zeferino, Rafael Luiz Cancian, Roberto Miguel Torres
Centro de Ciências Tecnológicas da Terra e do Mar (CTTMar)
Universidade do Vale do Itajaí (UNIVALI)
Rua Uruguai, 458 - Caixa Postal 360 – 88302-202 – Itajaí – SC Brazil
{maiara.heil, zeferino, cancian, torres}@univali.br
Resumo. Sistemas de informação baseados na Internet estão cada vez mais
presentes nos mais diferentes domínios. Uma das áreas de grande aplicação
consiste no acesso remoto a infra-estruturas de alto custo que podem ser
compartilhadas através da rede. Neste contexto, este artigo apresenta o
desenvolvimento de um sistema Web que será aplicado no acesso remoto a um
observatório astronômico a fim de ampliar o acesso a essa infra-estrutura que
possui alto custo de instalação e manutenção. O sistema permite que os
usuários agendem a aquisição de imagens astronômicas através de uma
interface Web e recebam essas imagens via e-mail, as quais são capturadas
automaticamente pelo telescópio do observatório.
1. Introdução
Na última década têm sido desenvolvidos diversos projetos de telescópios virtuais e
telescópios remotos que visam permitir o compartilhamento do acesso a imagens
astronômicas. A diferença principal entre os dois tipos de projeto reside no fato de que,
em telescópios virtuais, é fornecido apenas o acesso remoto a uma base de dados de
imagens já obtidas por telescópios, enquanto que, em telescópios remotos, é oferecida a
possibilidade de controlar remotamente um telescópio real e obter novas imagens.
O Laboratório de Astrofísica da Universidade do Vale do Itajaí (UNIVALI) está
implantando um observatório astronômico que poderá ser operado remotamente. Com o
apoio da Petrobrás, já foi adquirida parte dos equipamentos necessários.
O presente trabalho desenvolveu um sistema Web para submissão, gerenciamento e
atendimento de requisições de utilização remota do observatório. Esse sistema,
doravante denominado Astra, possui uma interface Web, um módulo de cadastro dos
usuários e um núcleo responsável pelo escalonamento e atendimento das requisições de
acesso ao observatório. Tal núcleo utiliza diferentes critérios de escalonamento a fim de
otimizar o uso dos recursos compartilhados.
O resultado principal desse projeto foi a ampliação do acesso à observação astronômica,
pois o sistema permite o acesso remoto gratuito não apenas por parte de pesquisadores
da área de astronomia, mas, especialmente, de jovens em fase escolar, estimulando o
interesse científico desses alunos e fortalecento a astronomia observacional amadora.
Este artigo está estruturado em seis seções e apresenta uma descrição do sistema Web.
A Seção 2 oferece uma breve descrição de trabalhos relacionados, com ênfase na
Grahl, E. A; Hübner, J. F. (Eds.). Anais do XV Seminário de
Computação, Blumenau, 20-22 de Novembro, 2006. p 209-220.
210
caracterização de alguns projetos de observatórios remotos. A Seção 3 apresenta a
arquitetura do sistema Astra, enquanto que a Seção 4 descreve a sua funcionalidade. A
Seção 5 apresenta aspectos relacionados à implementação do sistema e, concluindo, a
Seção 6 apresenta as considerações finais.
2. Trabalhos Relacionados
Atualmente, existem diversos observatórios remotos e virtuais disponíveis com acesso
via Internet. O AST/RO é um telescópio de 1,7 metros de diâmetro em operação em
Amundsen-Scott, no pólo sul, desde 1995, e é gerenciado pelo Center for Astrophysical
Resourse in Antarctica (CARA). Todo o sistema AST/RO é altamente automatizado
para reduzir ao mínimo a necessidade da intervenção humana e possibilitar sua
utilização durante o inverno, período no qual a estação deve ser abandonada. Entretanto,
o sistema é disponível para acesso remoto apenas para seus pesquisadores [CARA,
2002].
O observatório New Mexico Skies, no estado do Novo México (EUA), situa-se em uma
área privilegiada, em termos de astronomia. O observatório possui uma ampla estrutura
e faz uso de vários telescópios. Em sua página na Internet [Mike & Lynn Rice, 2005],
são disponibilizadas, em tempo real, informações necessárias para observação
astronômica, como velocidade do vento, temperatura, massa de ar, condições do céu,
etc. Os telescópios desse observatório são alugados para o público, com taxas que
variam de U$ 165,00 por dia a U$ 100,00 por hora.
O Observatório do Valongo [Werneck, Nader e Campos, 2004] é um Instituto do Centro
de Ciências Matemáticas e da Natureza (CCMN) da Universidade Federal do Rio de
Janeiro (UFRJ), que, em 2004, adquiriu, juntamente com outras cinco instituições
astronômicas, um conjunto de equipamentos necessários para montagem de um
observatório remoto (telescópio, câmera CCD, conjunto de filtros, etc.). Com a chegada
do equipamento, foi feito o projeto da cúpula controlada por computador e hoje esse
observatório já pode ser utilizado. Porém, a completa operação remota ainda não foi
implementada pela ausência de uma interface adequada, impossibilitando que o
observatório seja controlado remotamente.
Dos trabalhos descritos acima, nenhum deles contempla simultaneamente as duas
principais características definidas para o observatório da UNIVALI: acesso remoto
gratuito pela Internet e sem restrição ao tipo de público-alvo.
3. Arquitetura do Sistema Astra
A Figura 1 apresenta a arquitetura básica do observatório remoto a ser implementado na
UNIVALI (a fotografia é apenas ilustrativa). Através da Internet, os usuários tem acesso
ao observatório por meio do sistema Astra, em execução em um microcomputador
instalado no local do observatório. O observatório contará ainda com um sistema
computacional embarcado e uma estação meteorológica básica. O primeiro comandará
os mecanismos de automação do observatório, enquanto que o segundo incluirá uma
série de sensores para obtenção do estado das variáveis meteorológicas.
211
Estação
Meteorológica
Internet
Sistema
Embarcado
‘
Figura 1. Arquitetura básica do observatório remoto
A Figura 2 mostra uma estrutura em camadas do observatório remoto, com destaque aos
módulos que constituem o sistema Astra (em cinza), desenvolvido em um trabalho de
conclusão de curso [Heil, 2005]. Os usuários acessam o sistema através de uma
interface Web. O núcleo do sistema é constituído pelos módulos: Gerenciador,
Escalonador, Executor, Astrônomo, Temporizador e Meteorologista (cujas
funcionalidades são descritas logo a seguir).
Usuário
Interface Web
Sistema
Astra
Gerenciador
Escalonador
Executor
Astrônomo
Temporizador
Meteorologista
Driver do Sistema Embarcado
Interface da Estação
Meteorológica
Sistema Embarcado
Estação Meteorológica
Observatório
Figura 2. Arquitetura do observatório remoto e do sistema Astra
A Figura 3 mostra um diagrama de colaboração que ilustra as inter-relações entre os
módulos componentes do sistema Astra, as quais são descritas após a figura.
212
Interface Web
1
Gerenciador
8
2
4
Temporizador
Escalonador
Meteorologista
7
6
Executor
5
3
Astrônomo
Figura 3. Diagrama de colaboração do sistema Astra
•
Ligação 1: a Interface Web envia os parâmetros da requisição ao
Gerenciador;
•
Ligação 2: o Gerenciador invoca o Escalonador para executar o
escalonamento da requisição;
•
Ligação 3: o Escalonador invoca o Astrônomo para que ele verifique a
consistência astronômica da requisição a fim de confirmar se o astro estará
visível na data desejada e horário desejados;
•
Ligação 4: o Escalonador invoca o Temporizador que irá se programar para
despertar o Escalonador na data e na hora de atendimento da próxima
requisição;
•
Ligação 5: o Temporizador invoca o Escalonador quando chegar a data e
hora da requisição a ser atendida;
•
Ligação 6: caso o Escalonador tenha sido despertado para atender uma
requisição, ele invoca o Executor, módulo responsável pelo envio de
comandos de acionamento do observatório ao driver do sistema embarcado;
•
Ligação 7: o Executor, ao ser ativado, invoca o Meteorologista para verificar
se as condições meteorológicas estão adequadas para a realização da
observação;
•
Ligação 8: o Gerenciador invoca o Meteorologista quando precisar de
informações meteorológica para alimentar o banco de dados ou quando um
usuário requisitar informações meteorológicas atualizadas; e
Uma vez atendida a requisição, o Gerenciador envia uma mensagem de resposta ao
usuário, contendo a(s) imagem(ns) associada(s) à requisição. Outros tipos de mensagem
também podem ser enviadas, como, por exemplo, para informar o não agendamento de
uma requisição ou o re-agendamento de uma requisição previamente escalonada, entre
outras.
213
4. Funcionalidade do Sistema Astra
4.1 Submissão e Agendamento de Requisições
O sistema possui uma interface Web com um formulário eletrônico com campos de
informações que deverão ser preenchidos pela pessoa/instituição que desejar utilizar o
observatório. O usuário solicitará a submissão das informações desse formulário, que
serão armazenadas em um banco de dados e marcadas como “cadastro pendente”. No
momento adequado, o administrador avaliará os cadastros pendentes e decidirá pela sua
aprovação ou rejeição. No primeiro caso, ele irá marcar o cadastro como “ativo” e
atribuirá uma prioridade ao usuário, enquanto que, no segundo, ele irá excluir as
informações do banco de dados. Após, o administrador irá notificar o usuário, o qual
poderá acessar o sistema se o seu cadastro tiver sido aprovado.
Figura 4. Tela de cadastro de usuário
Para a submissão de requisições, o usuário deve efetuar o login no sistema. Uma vez
autenticado, ele deverá preencher um formulário eletrônico com informações da sua
requisição (nome e coordenadas do astro, data e hora da observação, filtro, etc.).
214
Figura 5. Tela de cadastro de requisição astronômica
Após a submissão do formulário, o sistema faz a validação desses campos. Caso todos
os campos satisfaçam as condições impostas, a requisição é escalonada e o usuário
recebe uma mensagem com a data e o horário nos quais a requisição será atendida. Caso
existam problemas de validação, o sistema rejeita a requisição e o usuário recebe uma
mensagem com o motivo dessa rejeição. As validações feitas pelo sistema no momento
da solicitação da requisição são especificadas a seguir:
•
O astro deve estar visível no horário escolhido,
•
O horário escolhido para observação deve ser no período noturno,
•
No formulário da requisição o usuário poderá fornecer o nome do astro ou as
suas coordenadas.
Se na data e hora especificadas em uma requisição não houver nenhum outro
agendamento, a requisição é agendada. Porém, se já houver uma requisição mais
prioritária, a requisição é negada. Caso, na data e hora especificadas, houver uma
215
requisição com prioridade mais baixa, a requisição atual é agendada, e a menos
prioritária é re-agendada e sua prioridade incrementada. Porém, se houver uma
requisição idêntica quanto à observação a ser realizada (coordenadas, data e hora), é
efetuado o agrupamento dessas requisições, sendo que o resultado da observação é
enviado a todos os requisitantes.
4.2 Atendimento de Requisições
As requisições agendadas são escalonadas e a execução delas é disparada pelo módulo
Temporizador. Durante a execução do atendimento de uma requisição, as seguintes
funções são realizadas:
•
Verificação das condições meteorológicas: O módulo Meteorologista faz a
verificação da umidade, da velocidade do vento e das temperaturas interna e
externa do observatório através de sensores da estação meteorológica ou
mesmo de páginas Web com informações meteorológicas. Se os valores
medidos estiverem dentro de limites definidos, dá-se continuidade ao
atendimento, caso contrário, a requisição é re-agendada e o usuário
notificado;
•
Envio do comando de abertura da cúpula: Se as condições meteorológicas
estiverem adequadas, então a cúpula do observatório é aberta. Este comando
é enviado pelo módulo Executor ao driver do sistema embarcado;
•
Envio do comando de calibração: Se esta for a primeira requisição a ser
atendida no dia, o telescópio é ligado e faz uma calibração para identificar as
coordenadas em que ele se encontra. Caso não seja a primeira requisição,
nenhuma ação é tomada;
•
Envio do comando de localização das coordenadas: O módulo Executor
encaminha as coordenadas correntes do astro da requisição que é atendida ao
driver do sistema embarcado. Este então aciona os mecanismos de
posicionamento do telescópio;
•
Captura da imagem: O módulo Executor envia ao driver um comando para
que a câmera CCD acoplada ao telescópio realize a captura da imagem; e
•
Envio da imagem por e-mail: O sistema recebe a imagem gerada pela câmera
CCD e o módulo Gerenciador gera uma mensagem eletrônica que é enviada
ao(s) usuário(s) que submeteu(ram) a requisição atendida.
5. Implementação
O sistema foi implementado utilizando as seguintes tecnologias/linguagens: (i) Sistema
Operacional Windows
; (ii) Interface Web implementada em linguagem PHP; (iii)
Banco de dados Paradox 7; e (iv) Núcleo implementado em linguagem C++.
5.1 Desenvolvimento do Sistema
O sistema desenvolvido possui dois processos independentes. O primeiro consiste de
um gerador de interface Web para interação com os usuários remotos. O segundo
consiste do núcleo do sistema, que é responsável por realizar as tarefas relacionadas à
216
execução das requisições dos usuários. A comunicação entre os dois processos é feita
através de sockets.
O acesso ao sistema dá-se através da internet, digitando uma URL (Universal Resource
Locator)
como,
por
exemplo,
http://www.observatorio.univali.br/cgibin/astraWeb.exe/index. Através de mecanismos de roteamento da internet, a primeira
parte da URL (http://www.observatorio.univali.br) é avaliada e a solicitação HTTP
(Get, Post, Put) chega à máquina destino, onde um servidor Web aguarda conexões no
port 80 (padrão do protocolo HTTP). O servidor Web (Apache, por exemplo) recebe a
solicitação e invoca o programa especificado na segunda parte da URL (/cgibin/astraWeb.exe). Este programa, denominado aqui de AstraWeb, tem sua execução
iniciada a cada nova solicitação HTTP e recebe a última parte da URL, denominada
caminho ou path (/index). Com base nesse caminho, esse programa deve tomar as ações
necessárias e gerar a resposta adequada à solicitação.
Como o programa invocado pelo servidor Web terá múltiplas instâncias em execução, e
sendo isso indesejável ao núcleo do sistema Astra, o programa AstraWeb é apenas um
interceptador de solicitações Web, e sempre que necessário comunica-se com outro
processo independente, o AstraKernel, que compreende o núcleo do sistema Astra.
Deste modo, pode haver inúmeras instâncias do AstraWeb em execução, mas uma única
instância do AstraKernel. Outro motivo para ter-se dois programas independentes é que
o núcleo “acorda” em instantes específicos para executar as requisições já cadastradas
ou para armazenar as condições meteorológicas atuais, e não pode depender da
existência de solicitações HTTP para executar.
Embora o sistema deva executar de maneira independente das solicitações HTTP, ele
também deve ser capaz de atendê-las rapidamente, uma vez que há um timeout ou
deadline associado às solicitações. Uma solução seria fazer uma varredura periódica.
Entretanto, além de imprecisa, essa solução é ineficiente e teria um alto custo de
desempenho. Assim, optou-se pela separação do atendimento às solicitações Web e
geração das páginas HTML de resposta (responsabilidade do AstraWeb) do
processamento e escalonamento das requisições de observação astronômica
(responsabilidade do AstraKernel). A comunicação entre esses programas é assíncrona e
é realizada através de sockets TCP.
O AstraWeb reside na pasta cgi-bin do servidor Web da máquina (normalmente
c:\apache\cgi-bin) e é invocado a cada nova solicitação HTTP. Basicamente, ele
transmite a solicitação via socket TCP para o núcleo do Astra que realiza o tratamento e
envia informações de retorno de volta ao AstraWeb através da mesma conexão TCP.
Deste modo, uma única instância do AstraKernel permanece sempre executando. Para
evitar a verificação periódica de requisições TCP, o núcleo do Astra cria um socket
servidor (port 5000) que é ativado apenas quando há uma nova solicitação. Se houver
muitos usuários conectados à internet gerando solicitações ao sistema, pode ser
inaceitável haver um único núcleo atendendo tais requisições. Portanto, assim como em
implementações normais de socket servidores, cada conexão aceita pelo núcleo do
Astra cria uma nova thread específica para atendê-la.
217
5.2 Algoritmos Usados no Escalonamento de Requisições
No sistema Astra, o agendamento das requisições de observações astronômicas faz uso
de características de diversos algoritmos de escalonamento tipicamente adotados em
sistemas computacionais [Silberchatz, 2000] e [Cancian, 2000]. Basicamente, ele tem
que ser capaz de lidar com múltiplas requisições e agendar corretamente a execução
dessas requisições com base em critérios específicos. Em especial, destaca-se que cada
usuário do sistema tem um nível de prioridade definido pelo administrador, o qual é
considerado durante o escalonamento. No caso de mais de uma requisição de usuários
com mesma prioridade, o sistema os atende por ordem de chegada (algoritmo FIFO First-In, First-Out). No caso de existir uma requisição com tempo exato para
atendimento (ex. eclipse solar), é usado o algoritmo EDF (Earliest Deadline First).
Também são usados algoritmos específicos para minimizar os movimentos do
telescópio. Como o telescópio movimenta-se de modo semelhante a um cabeçote de
leitura/gravação de um acionador de disco rígido, em algum momento que o telescópio
estiver fazendo um trajeto para obter uma imagem, ele poderá executar outra requisição
que esteja em seu caminho. Esse gerenciamento utiliza características dos algoritmos
SSTF (Smallest Seek Time First) e SCAN.
6. Testes e Validações
Os testes do núcleo do Astra foram realizados fazendo simulações com os drivers,
gerando valores aleatórios de condições meteorológicas. A interação com a parte física
do observatório também foi simulada, gerando mensagens para informar o
administrador quando a cúpula estivesse aberta ou fechada. Desta forma, a requisição
era submetida ao sistema, os drivers simulados e as consistências realizadas.
Na figura 6 é mostrada a tela do sistema em que foram realizados os testes dos drivers,
da temporização, envio de e-mail ao usuário e simulação de visualização da imagem do
telescópio.
Figura 6. Tela do sistema de teste dos drivers da estação e do observatório
218
Já os testes ao acesso ao sistema Astra envolveram duas etapas distintas: (i) Teste de
execução do AstraWeb a partir de um browser e a geração de uma página HTML de
resposta; e (ii) comunicação via socket TCP entre os programas AstraWeb e o
AstraKernel.
Para a realização do primeiro teste, iniciou-se o servidor Apache na máquina que
continha a aplicação AstraWeb. Com o servidor executando, invocou-se a aplicação
através de navegadores Internet Explorer, tanto da própria máquina quanto de outras
máquinas conectadas à internet. Em todos os casos obtinha-se, na janela do navegador
utilizado, as páginas HTML geradas pelo AstraWeb. A Figura 7 apresenta uma parte da
tela do sistema onde pode-se ver o resultado de uma solicitação no navegador, com
destaque à URL digitada.
Figura 7. Acesso ao sistema Astra
219
Em relação ao segundo teste, foram criadas duas aplicação (cliente e servidor) que se
comunicam via socket, No exemplo abaixo, o cliente envia uma mensagem ao servidor,
que identifica o cliente e recebe a mensagem, conforme Figura8.
Figura 8. Aplicação cliente e servidor
Após todos os testes comprovando o funcionando isolado de seus módulos, foi realizada
a integração do sistema, que mostrou-se totalmente funcional. Assim, o Astra já pode
ser utilizado para gerenciar requisições remotas a um observatório e comandar os
dispositivos de automação desse observatório para que seu telescópio capture as
imagens requisitadas. Para sua disponibilização final, aguarda-se apenas a aquisição dos
demais componentes físicos (cúpula, câmera CCD, sensores, motores, etc) para a
construção do observatório.
7. Considerações Finais
Este artigo apresentou o sistema Astra, que é um sistema Web para gerenciamento de
acesso remoto a um observatório astronômico. Foram abordados os principais aspectos
dos requisitos de seu funcionamento e testes para sua validação.
O desenvolvimento do sistema Astra está concluído e encontra-se totalmente funcional,
embora melhoramentos e a inclusão de novas funcionalidades, como a utilização remota
em tempo real do observatório, tenham sido detectados e devem ser implementados no
futuro.
O sistema Astra faz parte de um projeto maior, que visa a construção de um
observatório que possa operar autonomamente. Assim, apesar de concluído, o Astra
depende que outros projetos paralelos, como os que implementam o sistema embarcado
para controle da estação meteorológica e da cúpula do observatório sejam também
concluídos e que o observatório seja efetivamente construído, para que o sistema seja
disponibilizado.
220
Referências
Boczko, R. (1984) “Conceitos de Astronomia”. São Paulo, E. Blücher.
Silberchatz, A.; Galvin, P.B. (2000) “Sistemas Operacionais Conceitos”. São Paulo,
Prentice Hall.
Cancian, R. L. (2000) “Avaliação de Desempenho de Algoritmos de Escalonamento e
Tempo Real para o Ambiente de Multicomputador CRUX”. 2001. 174 p. Dissertação
de Mestrado em Ciência da Computação – Universidade Federal de Santa Catarina,
Florianópolis.
CARA (2002) “Center for Astrophysical Resourse in Antarctica”, Disponível em:
<http://astro.uchicago.edu>. Acesso em: 28 de julho de 2005.
EOS (2002) “Robotics Observatory Control System: the complete autonomous robotic
control system”, Queanbeyan, Electro Optic Systems Pty Limited.
Heil, Maiara (2005) “Sistema Web para Gerenciamento de Requisições de um
Observatório Remoto”.
Mike & Lynn Rice (2005) “New México Skies”. Disponível
<http://www.nmskies.com/weather.html>. Acesso em: 28 de julho de 2005.
em:
Observatórios Virtuais (2005) “Observatórios Virtuais: Projeto Educacional na área de
Ciências envolvendo instituições de pesquisa em Astronomia e escolas de ensino
médio e fundamental”. Disponível em: <http://www.observatoriovirtual.pro.br/
index.htm>. Acesso em: 28 de julho de 2005.
Társia, R. D. (1993) “Astronomia Fundamental”, Belo Horizonte, UFMG. 248 p.
Werneck, L. S., Nader, R. V. e Campos, J. A. S. (2004) “O Telescópio Remoto do
Observatório do Valongo”, In: Boletim da Sociedade Astronômica Brasileira,
Editado por Vera A. Fernandes Martin, Rio de Janeiro, UFRJ, 2004. p. 189-189.
Download