universidade do vale do itajaí centro de ciências tecnológicas da

Propaganda
UNIVERSIDADE DO VALE DO ITAJAÍ
CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
SISTEMA WEB PARA GERENCIAMENTO DE REQUISIÇÕES DE UM
OBSERVATÓRIO REMOTO
Área de Sistemas de Computação
por
Maiara Heil
Cesar Albenes Zeferino, Dr.
Orientador
Roberto Miguel Torres, Dr.
Co-orientador
Itajaí (SC), dezembro de 2005
UNIVERSIDADE DO VALE DO ITAJAÍ
CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
SISTEMA WEB PARA GERENCIAMENTO DE REQUISIÇÕES DE UM
OBSERVATÓRIO REMOTO
Área de Sistemas de Computação
por
Maiara Heil
Relatório apresentado à Banca Examinadora do
Trabalho de Conclusão do Curso de Ciência da
Computação para análise e aprovação.
Orientador: Cesar Albenes Zeferino, Dr.
Itajaí (SC), dezembro de 2005
DEDICATÓRIA
Este trabalho é dedicado a todos
os cientista e pesquisadores que se
empenham
em
descobrir
novos
horizontes, buscando cada vez mais,
melhorar a vida das pessoas.
iii
AGRADECIMENTOS
A meus pais, que sempre me deram todo apoio que precisava, bem como a educação e o
exemplo de vida que venho seguindo ao longo dos anos.
A meu noivo e mestre Rafael Luiz Cancian, pelo apoio e compreensão, e pela paciência
pelos longos momentos de não estar ao seu lado.
Aos meus colegas e amigos que tive ao longo desta caminhada, compartilhando alegrias e
angústias.
Ao meu orientador Cesar Albenes Zeferino, pela oportunidade do desafio a ser enfrentado
e os ensinamentos que serão para sempre recordados.
Ao meu co-orientador Roberto Miguel Torres, pelas muitas horas de paciência que teve ao
meu lado mostrando o quão maravilhoso é o céu.
À banca examinadora do meu trabalho, pelas sugestões e criticas para que o trabalho fosse
bem elaborado.
A todos os professores que tive ao longo deste período acadêmico, pelos ensinamentos
adquiridos.
iv
SUMÁRIO
LISTA DE ABREVIATURAS.................................................................vii
LISTA DE FIGURAS..............................................................................viii
LISTA DE TABELAS ................................................................................ x
LISTA DE EQUAÇÕES ...........................................................................xi
RESUMO...................................................................................................xii
ABSTRACT..............................................................................................xiii
1. INTRODUÇÃO ...................................................................................... 1
1.1. OBJETIVOS ..................................................................................................... 5
1.1.1. Objetivo Geral................................................................................................ 5
1.1.2. Objetivos Específicos...................................................................................... 5
1.2. METODOLOGIA............................................................................................. 5
1.3. ESTRUTURA DO TRABALHO ..................................................................... 6
2. FUNDAMENTAÇÃO TEÓRICA ........................................................ 7
2.1. OBSERVAÇÃO ASTRONÔMICA................................................................. 7
2.1.1. Movimento aparente dos astros..................................................................... 7
2.1.2. Sistemas de Referências ................................................................................. 9
2.1.3. Sistemas de Coordenadas Horizontais ........................................................ 10
2.1.4. Sistema de Coordenadas Equatoriais.......................................................... 12
2.1.5. Sistema de Coordenadas Horárias .............................................................. 14
2.1.6. Outros sistemas de Coordenadas ................................................................ 15
2.1.7. Redução ao dia ............................................................................................. 15
2.2. PROJETOS DE OBSERVATÓRIOS VIRTUAIS E REMOTOS ............... 16
2.2.1. Sistema AST/RO .......................................................................................... 16
2.2.2. Sistema ROCS .............................................................................................. 17
2.2.3. Educação em Ciências com Observatórios Virtuais................................... 18
2.2.4. Observatório do Valongo............................................................................. 19
2.2.5. New Mexico Skies......................................................................................... 20
2.2.6. Considerações............................................................................................... 21
2.3. REQUISITOS ................................................................................................. 22
2.3.1. Requisitos para o cadastro........................................................................... 22
2.3.2. Requisitos de acesso ..................................................................................... 23
2.3.3. Requisitos de agendamento ......................................................................... 23
2.3.4. CONSIDERAÇÕES..................................................................................... 23
2.3.5. Requisitos funcionais ................................................................................... 23
2.4. ESCALONAMENTO DE REQUISIÇÕES................................................... 23
2.4.1. FIFO (First In First Out)............................................................................. 25
2.4.2. Prioridade..................................................................................................... 26
2.4.3. Filas múltiplas .............................................................................................. 27
2.4.4. SJF (Smallest Job First)............................................................................... 28
2.4.5. EDF (Earliest Deadline First)...................................................................... 28
2.4.6. SSTF (Smallest Seek Time First)................................................................. 29
2.4.7. Scan............................................................................................................... 30
2.4.8. Considerações............................................................................................... 31
2.5. AMBIENTE DE DESENVOLVIMENTO .................................................... 32
2.5.1. Rotinas disponíveis....................................................................................... 33
2.5.2. Fluxo de execução......................................................................................... 35
3. DESENVOLVIMENTO ...................................................................... 37
3.1. PROJETO ....................................................................................................... 37
3.1.1. Análise de Requisitos ................................................................................... 37
3.1.2. Especificações ............................................................................................... 38
3.1.3. Arquitetura do Sistema................................................................................ 41
3.1.4. Diagramas UML........................................................................................... 43
3.1.5. Banco de Dados ............................................................................................ 55
3.2. IMPLEMENTAÇÃO ..................................................................................... 56
3.2.1. Acesso............................................................................................................ 56
3.2.2. AstraWeb...................................................................................................... 59
3.2.3. Núcleo do Sistema ........................................................................................ 60
3.2.4. Interface........................................................................................................ 63
3.2.5. Integração do Sistema.................................................................................. 67
4. CONCLUSÃO ...................................................................................... 68
REFERÊNCIAS BIBLIOGRÁFICAS ................................................... 70
GLOSSÁRIO............................................................................................. 71
APÊNDICE I – DIAGRAMAS DE SEQUENCIA................................ 72
APENDICE II – CRONOGRAMA DO TCCII..................................... 78
ANEXO I – FORMULÁRIO DO MINIOBSERVATÓRIO
ASTRONÔMICO ..................................................................................... 82
ANEXO II – RESUMO PUBLICADO NOS ANAIS DA REUNIÃO
ANUAL DA SAB....................................................................................... 87
ANEXO III – ARTIGO APRESENTADO NO SIMS 2005 (A SER
PUBLICADO EM EDIÇÃO DA REVISTA HIFEN)........................... 88
ANEXO IV – ARTIGO PUBLICADO E ACEITO NO I2TS (A SER
APRESENTADO EM DEZEMBRO/2005) ........................................... 89
vi
LISTA DE ABREVIATURAS
CARA
CCD
CCMN
CSED
EDF
EOS
ESA
EUA
FIFO
HTML
HTTP
INPE
LSED
NASA
OAI
OOA&D
OOSE
ROCS
SJF
SSTF
TCC
TCCI
TCCII
TCP
TIE
UFRJ
UML
UNIVALI
URL
Center for Astrophysical Resource in Antarctica
Charge Coupled Device
Centro de Ciências Matemáticas e da Natureza
Grupo de Concepção em Sistemas Embarcados e Distribuídos
Earliest Deadline First
Electro Optic Systems
European Space Agency
Estados Unidos da América
First in first out
Hyper Text Markup Language
HyperText Transfer Protocol
Instituto Nacional de Pesquisas Espaciais
Laboratório de Sistemas Embarcados e Distribuídos
National Aeronautics and Space Administration
Observatório Astronômico Itinerante
Object Oriented Analysis & Design
Object Oriented Software Engineering
Robotic Observatory Control System
Smallest Job First
Smallest Seek Time First
Trabalho de Conclusão de Curso
Primeira parte do Trabalho de Conclusão de Curso
Segunda parte do Trabalho de Conclusão de Curso
Tranmission Control Protocol
Telescopes in Education
Universidade Federal do Rio de Janeiro
Unified Modeling Language
Universidade do Vale do Itajaí
Universal Resource Locator
LISTA DE FIGURAS
Figura 1. Imagem do telescópio em que este projeto está inserido: (a) foto do telescópio; (b) e
(d) fotos laterais do telescópio; (c) foto da lente do telescópio..............................................2
Figura 2. Imagem do telescópio em que este projeto está inserido: (a) e (b) fotos da manete;
(c) e (d) fotos da conexão com a câmera CCD (Charge Coupled Device). ............................3
Figura 3. Trajetória vista por um observador..............................................................................9
Figura 4. Parâmetros vinculados aos sistemas de referência.....................................................10
Figura 5. Sistema de coordenadas horizontais ...........................................................................11
Figura 6. Sistema de Coordenadas Equatoriais .........................................................................13
Figura 7. Sistema de Coordenadas Horárias..............................................................................14
Figura 8. Arquitetura do sistema do observatório AST/RO......................................................17
Figura 9. Arquitetura geral do sistema ROCS...........................................................................18
Figura 10. Tela que apresenta temperatura, vento e corrente no New México Skies ..............20
Figura 11. Tela que apresenta tempo claro no New México Skies.............................................21
Figura 12. Escalonamento dos processos utilizando FIFO ........................................................25
Figura 13. Escalonamento dos processos utilizando FIFO visualizado na forma de diagrama
de Gantt................................................................................................................................26
Figura 14. Escalonamento dos processos utilizando prioridade ................................................26
Figura 15. Escalonamento dos processos utilizando prioridade visualizado na forma de
diagrama de Gantt...............................................................................................................27
Figura 16. Escalonamento dos processos utilizando filas múltiplas ..........................................27
Figura 17. Escalonamento dos processos utilizando filas múltiplas visualizada como diagrama
de Gantt................................................................................................................................28
Figura 18. Escalonamento dos processos utilizando SJF ...........................................................28
Figura 19. Escalonamento dos processos utilizando SJF visualizado no diagrama de Gantt...28
Figura 20. Escalonamento dos processos utilizando EDF..........................................................29
Figura 21. Escalonamento dos processos utilizando EDF visualizado no diagrama de Gantt .29
Figura 22. Escalonamento dos processos utilizando SSTF ........................................................30
Figura 23. Escalonamento dos processos utilizando SCAN .......................................................31
Figura 24. Escalonamento dos processos utilizando SCAN .......................................................31
Figura 25. Representação do contexto global do projeto de um observatório remoto .............41
Figura 26. Ligações do contexto global do projeto do observatório remoto .............................42
Figura 27. Camadas envolvidas no projeto do observatório remoto .........................................43
Figura 28. Diagrama de caso de uso do administrador..............................................................44
Figura 29. Diagrama de caso de uso do usuário .........................................................................45
Figura 30. Diagrama de classes do Astra Web ...........................................................................46
Figura 31. Diagrama de classes do Astra Kernel .......................................................................47
Figura 32. Diagrama de colaboração..........................................................................................48
Figura 33. Diagrama de seqüência do cadastro do usuário .......................................................50
Figura 34. Diagrama de seqüência da requisição.......................................................................51
Figura 35. Passos que o sistema segue para a validação da requisição .....................................52
Figura 36. Diagrama de seqüência da execução da requisição ..................................................53
Figura 37. Diagrama de implantação .........................................................................................54
Figura 38. Modelagem do banco de dados..................................................................................55
Figura 39. Teste de execução do AstraWeb .................................................................................58
Figura 40. Comunicação via socket TCP entre os programas AstraWeb e o AstraKernel .........59
Figura 41. Implementação parcial da Classe Astrônomo ..........................................................60
Figura 42. Implementação da Classe do Driver da Estação Meteorológica...............................61
Figura 43. Implementação da Classe Meteorologista.................................................................62
Figura 44. Janela de teste do núcleo do Astra ............................................................................63
Figura 45. Tela Acesso ao Sistema ..............................................................................................64
Figura 46. Tela Cadastro do Usuário..........................................................................................65
Figura 47. Tela Solicitação de Requisição ..................................................................................66
Figura 48. Diagrama de seqüência de avaliação do cadastro do usuário ..................................72
Figura 49. Diagrama de seqüência da exclusão de usuários ......................................................73
Figura 50. Diagrama de seqüência do login do administrador ..................................................73
Figura 51. Diagrama de seqüência da manutenção do observatório.........................................74
Figura 52. Diagrama de seqüência de listar requisições pendentes...........................................74
Figura 53. Diagrama de seqüência de modificação de agendamento ........................................75
Figura 54. Diagrama de seqüência de visualização do cadastro dos usuários...........................75
Figura 55. Diagrama de seqüência de visualização da utilização do telescópio ........................76
Figura 56. Diagrama de seqüência de login................................................................................76
Figura 57. Diagrama de seqüência de visualização de condições meteorológicas .....................77
ix
LISTA DE TABELAS
Tabela 1. Comparação entre os sistemas pesquisados ...............................................................22
Tabela 2. Processos a serem escalonados....................................................................................25
Tabela 3. Algoritmos das filas .....................................................................................................27
LISTA DE EQUAÇÕES
Equação 1.....................................................................................................................................11
Equação 2.....................................................................................................................................11
Equação 3.....................................................................................................................................12
Equação 4.....................................................................................................................................12
Equação 5.....................................................................................................................................13
Equação 6.....................................................................................................................................14
Equação 7.....................................................................................................................................15
Equação 8.....................................................................................................................................15
Equação 9.....................................................................................................................................16
Equação 10...................................................................................................................................16
RESUMO
HEIL, Maiara. Sistema Web para gerenciamento de requisições de um observatório remoto. Itajaí,
2005. 87 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Centro de
Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2005.
A observação astronômica necessita de equipamentos especiais, uma vez que a maioria absoluta dos
objetos celestes não é visível a olho nu. Ao conjunto dado por um telescópio profissional, pelos
equipamentos necessários à sua utilização e pelo espaço físico construído ao seu redor, dá-se o
nome de observatório astronômico. Dados os custos elevados, a necessidade de pessoal
especializado, de condições ambientais (atmosféricas, luminosas, geográficas) favoráveis no local
de observação e a complexidade da construção, operação e manutenção de um observatório
astronômico, torna-se clara a necessidade de compartilhamento desse tipo de recurso. No
Laboratório de Astrofísica da Universidade do Vale do Itajaí (Univali), está sendo desenvolvido,
com o apoio da Petrobrás, um projeto de observatório astronômico. O acesso remoto ao
observatório traz várias vantagens, como a utilização de infra-estrutura e equipamentos de alto custo
sem necessidade de sua aquisição, bem como sua otimização. Este projeto desenvolveu um sistema
Web para gerenciamento das requisições para acesso remoto a esse observatório através da Internet.
Neste trabalho é apresentada uma revisão bibliográfica sobre conceitos relacionados com o objetivo
proposto, como aspectos da observação astronômica, descrição de trabalhos relacionados e técnicas
para o escalonamento de requisições. O texto também apresenta o projeto e o desenvolvimento do
sistema que foi implementado neste Trabalho de Conclusão de Curso.
Palavras-chave: Sistemas de Informação. Escalonamento de Requisições. Observação Astronômica
Remota.
ABSTRACT
The astronomical observation needs special equipments, since the absolute majority of the celestial
objects is not visible. Astronomical observatory is the name given to the collection of a professional
telescope, the equipments needed to its utilization and the building where it is inserted.
Due to expensive costs, the need of specialized workers and favorable environment conditions, the
complexity related to building, operation and maintenance of the astronomical observatory, it is
important to share this kind of resource. At Astrophysical Laboratory at University of Vale do Itajaí
(Univali) it is being developed a project of an astronomical observatory supported by Petrobras. The
remote access to the observatory has many advantages, as the utilization of expensive structures and
infra-structure without buying it, and its optimization. This project to develop a Web system to
manage requisitions for access this observatory in a remote way by using the Internet. In this work,
it is presented review on the concepts related with the proposed, including astronomical observation
issues related works and techniques used to schedule requisitions in computer systems. This text
also presents the design of the system that was implemented in this research.
Keywords: Information Systems. Requisition Scheduler. Remote Astronomical Observation.
1. INTRODUÇÃO
A observação astronômica científica necessita de equipamentos especiais, uma vez que a
maioria absoluta dos objetos celestes não é visível a olho nu. Os equipamentos mais utilizados para
a observação astronômica são antenas e telescópios. Antenas conseguem captar os espectros mais
baixos de freqüência (ondas de rádio) da energia emitida por corpos celestes, enquanto os
telescópios, com auxílio de filtros, conseguem captar os espectros que vão desde o infra-vermelho
até os raios ultra-violeta. Desse modo, considera-se os telescópios como equipamentos
indispensáveis para a observação astronômica.
Telescópios existem em diferentes tipos de óptica, montagens e tamanhos. Entre os tipos de
óptica, destacam-se a newtoniana, a cassegrain e outras. Os principais tipos de montagens são a
equatorial, a equatorial-germânica e a alto-azimutal. O tamanho de um telescópio é dado pelo
diâmetro de sua objetiva (lente ou espelho), que pode variar de cerca de 4 polegadas até alguns
metros. O diâmetro do espelho define o tamanho do telescópio e a sua utilização. Telescópios
amadores têm diâmetros de até poucas dezenas de polegadas e são portáteis, não exigindo nenhum
equipamento extra para a sua utilização. Telescópios profissionais, muito mais úteis à astronomia
científica, podem ter diâmetro de até vários metros e pesar muitas toneladas, de forma que não
podem ser operados manualmente e exigem outros equipamentos e local apropriado, especialmente
construído para sua operação (uma vez que não são portáteis). Ao conjunto dado por um telescópio
profissional, pelos equipamentos necessários à sua utilização e pelo espaço físico construído ao seu
redor, dá-se o nome de observatório astronômico.
Dados os custos elevados, a necessidade de pessoal especializado, de condições ambientais
(atmosféricas, luminosas, geográficas) favoráveis e a complexidade da construção, operação e
manutenção de um observatório astronômico, torna-se clara a necessidade de compartilhamento
desse tipo de recurso.
Ao redor do mundo, na última década, têm surgido diversos projetos que visam compartilhar
o acesso a imagens obtidas por telescópios (projetos de telescópios virtuais) ou compartilhar o
acesso aos próprios telescópios (projetos de telescópios remotos). A diferença principal entre esses
tipos de projeto consiste no simples acesso remoto a bases de dados de imagens já obtidas (no
primeiro caso) ou então a possibilidade de controlar remotamente um telescópio real e obter novas
imagens (no segundo caso). Para controlar remotamente um telescópio, faz-se necessário um
cadastro de usuários com prioridades, e um escalonamento das requisições.
Um projeto envolvendo um observatório itinerante e um fixo na Univali está alocado no
Laboratório de Astrofísica, que foi aprovado e contou com financiamento da Petrobrás. O projeto
incluiu a aquisição de quatro telescópios, sendo dois de pequeno porte (lente de 6” e 10” de
diâmetro) para saída de campo e atividades relacionadas efetivamente ao projeto denominado
Observatório Astronômico Itinerante (OAI), um terceiro telescópio de pequeno porte sem
automatização para servir de base a projetos de instrumentação astronômica, desenvolvidos pelo
LSED (Laboratório de Sistemas Embarcados e Distribuídos). O quarto telescópio, mostrado na
Figura 1 e na Figura 2 de 12” de diâmetro, deverá ser utilizado no observatório da Univali, a ser
construído, com o propósito de adquirir imagens com maior resolução para serem transmitidas via
Web às instituições de ensino médio.
(a)
(b)
(c)
(d)
Figura 1. Imagem do telescópio em que este projeto está inserido: (a) foto do telescópio; (b) e (d)
fotos laterais do telescópio; (c) foto da lente do telescópio
2
(b)
(a)
(d)
(c)
Figura 2. Imagem do telescópio em que este projeto está inserido: (a) e (b) fotos da manete; (c) e
(d) fotos da conexão com a câmera CCD (Charge Coupled Device).
Os principais objetivos do projeto de um observatório fixo são (i) a aquisição de imagens
para o Website da Univali e folders de divulgação; (ii) monitoramento de cometas para missões
espaciais da NASA (National Aeronautics and Space Administration) e da Agência Espacial
Européia (ESA - European Space Agency); (iii) divulgação da universidade em projetos de
extensão junto à comunidade; e (iv) servir de base a outros projetos de pesquisa na Univali.
No estágio atual do desenvolvimento de todo o projeto, os quatro telescópios mencionados e
os demais acessórios já foram adquiridos (custo aproximado de R$ 28.000,00), passaram por testes
mecânicos, ópticos e eletrônicos, e encontram-se disponíveis para uso. Os dois telescópios
relacionados ao projeto do observatório itinerante foram usados em dez saídas de campo, tendo
atendido mais de 1000 alunos de escolas-pólo dos estados de Santa Catarina e Paraná. O telescópio
de menor diâmetro a ser utilizado para automatização já foi alvo de um projeto de conclusão de
curso, denominado “Sistema Embarcado para controle de Telescópio”, desenvolvido por Silva
(2003). O telescópio de maior diâmetro ainda aguarda as condições necessárias para ser utilizado.
3
As maiores dificuldades do projeto do observatório da Univali são a disponibilização de um
espaço físico para a construção do observatório que abrigará o telescópio de maior diâmetro, e a
aquisição de câmera CCD, para ser acoplada ao telescópio.
O presente Trabalho de Conclusão de Curso (TCC) insere-se no contexto do observatório
fixo e desenvolveu um sistema de gerenciamento das requisições de um observatório remoto,
utilizando o telescópio recentemente adquirido pela parceria Univali/Petrobrás. O observatório
remoto pode ser acessado através da página Web que possui um cadastro de usuários, que pode ser
escolas do ensino médio ou instituições de pesquisa interessadas em obter imagens de corpos
celestes. Cada usuário tem uma prioridade associada a si e às requisições solicitadas por ele. Na
geração da requisição, o sistema faz uma série de verificações de consistência, como a da existência
do corpo celeste solicitado, das coordenadas celestes informadas ou da visibilidade do astro no
momento da observação. Sendo consistente, a requisição é escalonada e tem sua execução
agendada. Na data agendada, o sistema verifica as condições meteorológicas (temperatura, umidade
e velocidade do vento) e se forem aceitáveis, a requisição será executada, ou seja, a cúpula se
movimentará, a trapera1 será aberta, o telescópio será apontado para o astro selecionado, a imagem
é capturada e enviada por e-mail para o solicitante. Caso as condições meteorológicas não sejam
aceitáveis, a requisição será reagendada e o solicitante avisado.
Este trabalho é importante por diversos fatores. Inicialmente, deve ser abrangente o
suficiente para poder ser utilizado em diferentes observatórios com certo grau de automação,
permitindo que eles sejam operados remotamente. O acesso remoto ao observatório traz outras
vantagens, como a utilização de infra-estrutura e equipamentos de alto custo sem necessidade de
sua aquisição, bem como sua otimização. A instituição detentora do observatório (a Univali)
também é beneficiada por ter seu nome divulgado e por manter ocupado um recurso que de outra
forma permaneceria ocioso. Este sistema também permite que entidades situadas em locais
desfavoráveis à observação astronômica (poluições luminosa ou atmosférica, ar úmido, céu
nebuloso, etc.) possam utilizar um observatório melhor situado. Outra vantagem é que o
agendamento das requisições libera o pesquisador da necessidade de estar acompanhando o
telescópio no momento da observação.
Este projeto se justifica como um Trabalho de Conclusão de Curso em Ciência da
Computação por fazer uso de diversas tecnologias e conceitos estudados no curso de Ciência da
1
Trapera: componente da cúpula que se abre para permitir a saída do telescópio
4
Computação, como desenvolvimento para Web, banco de dados, engenharia de software e
escalonamento de recursos. Além disso, ele se justifica também pelo seu aspecto de divulgação
científica e vínculo com os grupos de pesquisa da Univali, como o CSED (Grupo de Concepção em
Sistemas Embarcados e Distribuídos) e o Grupo de Astrofísica.
1.1. OBJETIVOS
1.1.1. Objetivo Geral
O objetivo geral deste projeto foi desenvolver um sistema Web para gerenciamento de um
observatório remoto que recebe requisições de observações de corpos celestes, faz a análise e
consistência dessas requisições, seu escalonamento e o seu atendimento.
1.1.2. Objetivos Específicos
Os objetivos específicos deste projeto são:
•
Pesquisar soluções existentes para observatórios remotos e analisar seus pontos fracos e
fortes;
•
Pesquisar conceitos relativos à astronomia (movimento aparente dos astros);
•
Pesquisar algoritmos de escalonamento e métodos de alocação de recursos;
•
Realizar a modelagem do sistema;
•
Implementar o sistema;
•
Testar e validar a implementação do sistema; e
•
Documentar o projeto.
1.2. METODOLOGIA
5
A metodologia utilizada no desenvolvimento deste trabalho é baseada nas seguintes
etapas: (i) Estudo; (ii) Modelagem; (iii) Desenvolvimento; (iv) Validação; (v) Documentação e
Apresentação.
Na etapa Estudo foi realizada uma revisão bibliográfica baseada na leitura de textos
disponíveis em livros, artigos técnico-científicos e sites especializados na Internet. Também foram
feitas entrevistas com o especialista em Astronomia, das quais obteve-se os requisitos do sistema a
ser implementado. Realizou-se então uma análise comparativa das características do sistema
proposto com aquelas de outros já disponíveis. Em seguida, efetuou-se uma análise dos diversos
algoritmos de escalonamento, visando determinar quais seriam adotados neste projeto. Também foi
efetuado um estudo a fim de determinar a plataforma de desenvolvimento a ser utilizada.
Na etapa Modelagem foi realizado o projeto do sistema. Inicialmente fez-se a análise do
projeto utilizando o modelo UML (Unified Modeling Language), onde foram desenvolvidos
diversos diagramas para descrever o projeto. Quatro ciclos (versões) envolvendo análise, projeto,
implementação e testes foram necessários.
As etapas de estudo e modelagem foram realizadas na primeira parte deste trabalho,
denominado TCCI que foi entregue em julho/2005. As etapas Desenvolvimento e Validação foram
objeto da segunda fase desta pesquisa, denominada TCCII e foram entregues em novembro/2005.
A etapa de Documentação, desenvolvida durante todo o trabalho, incluiu a redação dos
textos que compõem este relatório, bem como de um resumo submetido e aceito à um evento
científico.
1.3. ESTRUTURA DO TRABALHO
Este texto é dividido em quatro capítulos, incluindo a Introdução. No Capítulo 2, é
apresentada a fundamentação teórica, na qual se descreve os assuntos relevantes a este trabalho. No
Capítulo 3, é descrita a modelagem e o desenvolvimento do sistema que foi desenvolvido e, no
Capítulo 4, são apresentadas as considerações finais.
6
2. FUNDAMENTAÇÃO TEÓRICA
Ao redor do mundo, na última década, têm sido desenvolvidos diversos projetos que visam
compartilhar o acesso a imagens obtidas por telescópios (projetos de telescópios virtuais) ou aos
próprios telescópios (projetos de telescópios remotos). A diferença principal entre esses tipos de
projeto consiste no simples acesso remoto a bases de dados de imagens já obtidas (no primeiro
caso) ou então a possibilidade de controlar remotamente um telescópio real e obter novas imagens
(no segundo caso). Para controlar remotamente um telescópio, faz-se necessário um cadastro de
usuários com prioridades e um escalonamento das requisições. Alguns exemplos desses tipos de
projetos e conceitos astronômicos são apresentados depois do estudo realizado sobre Astronomia.
2.1. OBSERVAÇÃO ASTRONÔMICA
2.1.1. Movimento aparente dos astros
Sobre a esfera celeste, pode-se observar o “movimento diurno aparente” do Sol dar-se de
leste para oeste, em qualquer hemisfério que se encontre o observador. Por sua vez, se um
observador prestar atenção em uma estrela de uma constelação2, observará seu “movimento noturno
aparente” realizar-se também de leste para oeste.
Se durante dias ou meses observarmos no mesmo horário e direção, a mesma região no céu,
será possível perceber a presença de novas constelações ocupando aquela posição outrora
pertencente à outra constelação. Em virtude do movimento de translação da Terra em torno do Sol,
as mesmas constelações voltarão após um ano a ocupar novamente aquela posição naquele mesmo
instante de tempo. A esse movimento das estrelas em intervalos de um ano denomina-se
“movimento anual aparente” das estrelas.
Existem estrelas que nunca se põe e ficariam sempre visíveis se o Sol não dificultasse sua
observação. Essas estrelas são denominadas de estrelas circumpolares. Para um observador no
Hemisfério Norte, olhando para o ponto cardeal norte, observaria as estrelas circumpolares
executarem um movimento anti-horário em torno do Ponto Celeste Norte. Por sua vez, um
observador no Hemisfério Sul, observando o ponto cardeal sul, verificaria que as estrelas
circumpolares executam um movimento horário em torno do Ponto Celeste Sul. Além disso, quanto
2
Por definição, uma constelação é um agrupamento aparente de estrelas
mais ao norte encontrar-se a estrela, menos tempo ela fica visível, para um observador do
Hemisfério Sul. Por exemplo, as estrelas que se encontram mais ao sul, ficariam visíveis
aproximadamente vinte e quatro horas (supondo, mais uma vez, que o Sol não interferisse em sua
observação). A este movimento que as estrelas executam em quase um dia, dá-se o nome de
“movimento diário aparente”.
O movimento diurno dos astros (movimento cíclico em 24 horas), de leste para oeste, é um
reflexo do movimento de rotação da Terra, de oeste para leste. Ao longo do dia, todos os astros
descrevem no céu arcos paralelos ao Equador. Se considerarmos a esfera celeste como referencial, a
Terra estaria em repouso no centro dela e todos os astros girariam em torno da Terra, descrevendo
trajetórias circulares em torno de um ponto fixo no céu (ponto celeste sul ou ponto celeste norte).
O Sol, por exemplo, se move no céu, nascendo a Leste e se pondo a Oeste, o que nos dá a
impressão de a esfera celeste estar girando de Leste para Oeste.
A inclinação dos arcos descritos pelo astro em relação ao horizonte depende da latitude do
lugar. A Figura 3 mostra a trajetória do astro vista por um observador, situado no equador terrestre,
em outra latitude qualquer e num dos pólos.
8
Figura 3. Trajetória vista por um observador
Fonte: Rosa (1994)
2.1.2. Sistemas de Referências
Para definir a posição de qualquer astro na esfera celeste, é conveniente que seja usado um
sistema de coordenadas. A escolha do sistema de coordenadas é fundamental para uma solução
rápida e fácil. Dentre os diversos tipos, o que os difere é somente a escolha dos elementos básicos,
sendo sempre possível a transformação de um sistema para o outro. A montagem de um telescópio
depende da utilização de um sistema de coordenadas.
9
A intersecção entre o céu e a terra, muito ao longe, por um observador, num lugar bem
plano, é chamada de linha do horizonte e o plano definido por esta linha, de plano do horizonte.
Dessa forma, a linha perpendicular a esse plano denomina-se de vertical do lugar. Essa vertical,
parece furar o céu num ponto bem acima da cabeça do observador, denominado de ponto de zênite,
conforme a Figura 4.
Figura 4. Parâmetros vinculados aos sistemas de referência
Fonte: Boczko (1984)
2.1.3. Sistemas de Coordenadas Horizontais
O sistema de coordenadas horizontais é um sistema local, no sentido de que é fixo na Terra.
Seus planos fundamentais são definidos pelo plano que contém o horizonte do observador (plano
horizontal) e pelo plano meridiano, que contém a linha Norte-Sul, passando pelo observador e pelo
zênite, conforme ilustrado na Figura 5. Nesse sistema, as coordenadas que definem a posição de um
astro são denominadas azimute e altura.
10
Figura 5. Sistema de coordenadas horizontais
Fonte: Boczko (1984)
O azimute, A , é o ângulo medido no plano do horizonte, desde a direção norte, no sentido
para leste, até o vertical do astro, satisfazendo à relação:
0 ≤ A ≤ 360
Equação 1
A altura, h , é o ângulo contado no plano vertical do astro, a partir do horizonte até o astro.
Por convenção, é admitido positivo acima do horizonte (astro visível) e negativo abaixo do
horizonte (astro invisível), obedecendo à relação:
− 90 ≤ h ≤ +90
Equação 2
É uma prática comum utilizar, em vez da altura do astro, a distância zenital do astro, z , ou
seja, o ângulo entre o zênite e o astro, por se tratar de ângulos complementares, prevalecendo a
relação:
11
Equação 3
h + z = 90
A distância zenital é medida a partir do zênite até o astro em questão, valendo-se da relação:
0 ≤ z ≤ 180
Equação 4
Segundo Társia (1993), apesar de ser o de melhor visualização, o sistema de coordenadas
horizontais, conforme Figura 5, apresenta alguns inconvenientes de uso. Em primeiro lugar, as
coordenadas de um mesmo astro, vistas por dois observadores em lugares distintos, são diferentes.
A outra inconveniência de uso das coordenadas horizontais reside no fato que, tanto a altura quanto
o azimute de um astro variam com o tempo, devido ao movimento de rotação da Terra.
2.1.4. Sistema de Coordenadas Equatoriais
O sistema de coordenadas equatoriais é fixo na esfera celeste. Portanto suas coordenadas
não dependem de lugar e instante da observação, ou seja, as coordenadas dos astros se mantém
constantes. Neste sistema, os planos principais são a projeção do equador terrestre na esfera celeste,
chamado de equador celeste. O outro plano é o do meridiano celeste, que é a projeção do plano do
meridiano terrestre na esfera celeste, contendo o ponto Áries (também chamado de ponto Gama, ,
ou ponto Vernal, sendo um ponto do equador, ocupado pelo sol no equinócio da primavera do
Hemisfério Norte), conforme Figura 6.
12
Figura 6. Sistema de Coordenadas Equatoriais
Fonte: Santiago (2001)
No sistema equatorial, as coordenadas da estrela são representadas por: ascensão reta e
declinação.
A ascensão reta, , é o ângulo medido sobre o Equador, com origem no meridiano que passa
pelo ponto e pelo círculo horário que contém a estrela. A ascensão reta varia segundo a relação:
0 h ≤ α ≤ 24 h
Equação 5
sendo que 1h de tempo corresponde a 15 de arco. A contagem é efetuada no sentido horário,
quando vista desde o Pólo Sul.
A declinação, , é o ângulo medido sobre um círculo horário, entre o equador e o paralelo
que passa pela estrela. Por convenção, a declinação é positiva para estrelas do Hemisfério Norte e
negativa para estrelas do Hemisfério Sul, tornando-se válida a relação:
13
− 90 ≤ δ ≤ +90
Equação 6
Segundo Santiago (2001), a ascensão reta e a declinação de um astro permanecem
praticamente constantes por longos períodos de tempo. O sistema equatorial é usado nos catálogos
de objetos celestes, já que suas coordenadas são praticamente constantes.
2.1.5. Sistema de Coordenadas Horárias
O sistema de coordenadas horárias baseia-se no fato que, apesar de ser fixo a Terra, uma das
coordenadas da estrela permanece constante, variando apenas a outra. Neste sistema, adota-se os
seguintes planos fundamentais de referência: o plano do equador e o plano meridiano. Conforme a
estrela realiza seu movimento diário, seu ângulo (declinação) até o equador continua constante, mas
varia o ângulo entre o meridiano do observador e o círculo horário que contém a estrela (ângulo
horário), conforme esquematizado na Figura 7. Assim, a posição de uma estrela num dado instante
de tempo é definida pelas seguintes coordenadas: ângulo horário e declinação.
Figura 7. Sistema de Coordenadas Horárias
Fonte: Santiago (2001)
14
O ângulo horário, H, é o ângulo medido sobre o equador, com origem no meridiano local
( H = 0 ) e extremidade no círculo horário que passa pelo astro. Em particular, este ângulo cresce
conforme o tempo passa, sendo válidas as seguintes relações:
0 h ≤ H ≤ 24 h
Equação 7
ou
− 12 h ≤ H ≤ +12 h
Equação 8
Nesta segunda relação, valores negativos indicam que o astro está localizado no Hemisfério
Oriental, ou seja, antes de sua passagem pelo meridiano do observador. Por sua vez, valores
positivos indicam que o astro se encontra no Hemisfério Ocidental.
A declinação, , segue a mesma definição apresentada anteriormente.
O sistema de coordenadas horárias é o sistema próprio dos telescópios, para poderem manter
indefinidamente um astro em seu campo de visão.
2.1.6. Outros sistemas de Coordenadas
Existem ainda, outros sistemas de coordenadas que podem ser citados, entre eles o sistema
de coordenadas geográficas e o sistema de coordenadas eclípticas. Os Sistemas de Coordenadas
Geográficas são usados para medir a posição sobre a superfície da Terra, tendo como as
coordenadas principais: a latitude e a longitude geográfica. Os Sistemas de Coordenadas Eclípticas
são utilizados para estudos das posições e movimentos relativos ao Sol e objetos do Sistema Solar,
sendo que, o plano fundamental é o plano da eclíptica, que é o plano da órbita da Terra em relação
ao Sol. Suas coordenadas são a latitude e longitude eclíptica.
2.1.7. Redução ao dia
Segundo Társia (1993) “pelo termo redução ao dia entendemos todo o processo de cálculo
da transformação das coordenadas de um astro em um dado instante, a partir de suas coordenadas
15
em uma época, diferente deste instante”. Para este propósito, obtém-se de catálogos estelares de
determinadas épocas (T0), as coordenadas
0
e
0
da estrela, utilizando o ponto
0
da época, e faz-se
as transformações para as coordenadas da data (data atual). Existem alguns passos para obter a
correção desejada da data, são elas:
•
Correção devido à precessão (P);
•
Correção devido ao movimento próprio dos astros (MP);
•
Correção devido a nutação (N);
•
Correção devido à paralaxe anual (PA);
•
Correção devido à aberração anual (AA);
•
Correção devido à paralaxe diária (PD);
•
Correção devido à aberração diária (AD); e
•
Correção devido à refração atmosférica (R).
Pode-se representar todas essas correções utilizando as seguintes expressões:
α = α 0 + ∆α P + ∆α MP + ∆α N + ∆α PA + ∆α AA + ∆α PD + ∆α AD + ∆α R
Equação 9
δ = δ 0 + ∆δ P + ∆δ MP + ∆δ N + ∆δ PA + ∆δ AA + ∆δ PD + ∆δ AD + ∆δ R
Equação 10
2.2. PROJETOS DE OBSERVATÓRIOS VIRTUAIS E REMOTOS
Nesta sessão serão apresentados os projetos de observatórios virtuais e remotos, bem como
suas especificações e características deles.
2.2.1. Sistema AST/RO
O Centro para Pesquisa Astrofísica da Antártida (CARA – Center for Astrophysical
Resourse in Antarctica3) é uma fundação norte americana de ciência com sede na Universidade de
Chicago e gerencia o AST/RO, que é um telescópio de 1,7 metros de diâmetro em operação em
3
Home-page disponível em: <http://astro.uchicago.edu/cara>. Acesso em: 08 abril 2005.
16
Amundsen-Scott, no pólo sul, desde 1995 (CARA, 1995). 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. Disponível para acesso
remoto apenas para seus pesquisadores, a arquitetura do sistema do observatório do AST/RO é
apresentada na Figura 8.
Figura 8. Arquitetura do sistema do observatório AST/RO
Fonte: Cara (1995)
2.2.2. Sistema ROCS
17
Em 2002, a Electro Optic Systems (EOS), empresa australiana que fabrica cúpulas e
diversos outros equipamentos para observatórios astronômicos, lançou o ROCS (Robotic
Observatory Control System), a terceira geração de software para controle de observatórios, que
permite a operação realmente autônoma de observatórios de maneira extremamente flexível. Ele
realiza operações de calibração e manutenção do telescópio, bem como agenda o atendimento a
requisições remotas de observação (ELECTRO OPTIC SYSTEMS, 2002). A arquitetura geral do
sistema ROCS é apresentada na Figura 9.
Figura 9. Arquitetura geral do sistema ROCS
Fonte: Electro Optic Systems (2002)
2.2.3. Educação em Ciências com Observatórios Virtuais
18
Ainda no Brasil, o Instituto Astronômico e Geofísico da Universidade de São Paulo
concebeu, em 2002, o projeto “Educação em Ciências com Observatórios Virtuais”, que agrega
diversas instituições de ensino e pesquisa no país. Essa iniciativa nacional possibilitou a inclusão de
um de seus integrantes no projeto TIE (Telescopes in Education) da NASA, que utiliza o telescópio
do observatório do Monte Wilson (EUA) para observações remotas em projetos pedagógicos para o
ensino de astronomia.
2.2.4. Observatório do Valongo
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, sendo que dele já
foram obtidas imagens celestes. 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. Segundo Werneck, Nader e Campos (2004), ainda está em estudo a interface a ser
disponibilizada para acesso remoto. O aceso encontra-se disponível apenas para as escolas
parceiras, onde estas devem preencher um formulário on-line. Foi enviada uma mensagem ao Dr.
André Milone (2005) do INPE (Instituto Nacional de Pesquisas Espaciais), descrevendo este projeto
e solicitando algumas informações, na qual foi respondido com a mensagem abaixo:
em 2005, jah começaremos atender a pedidos de qq instituição de ensino que fizer contato
conosco; muito embora nunca tenhamos recebido um pedido das escolas parceiras do
Projeto OVs (http://www.observatoriovirtual.pro.br/). Então, por enquanto não enfrentamos
ainda o problema real de gerenciamento dos pedidos de observação. Os dados do
formulário são enviados ao e-mail [email protected] cuja analise deve ser feita
por nossa equipe. Pretendemos ainda transformar tal formulário numa estrutura mais
didática, c/menos dados técnicos e interativo. Você nao quer experimentar p/a fazer um
pedido "real"? E, quem sabe, executar uma observação em si no modo remoto que estah
sendo o nosso objetivo atual (colocar no ar o modo remoto)? Sinta a vontade p/a criticar o
formulario bem como p/a nos questionar no que for preciso. A pagina do formulário eh
http://www.das.inpe.br/miniobservatorio/formulario/index.htm
O formulário citado na mensagem acima encontra-se no anexo.
19
2.2.5. New Mexico Skies
O observatório New Mexico Skies (MIKE & LYNN RICE, 2005), no estado do Novo
México (EUA), situa-se em uma área privilegiada, em termos de astronomia. A cidade mais
próxima fica a 100 milhas do observatório, de modo que o céu dessa localidade é conhecido como
dark skies. Para assegurar essa condição, o governador do estado do Novo México assinou, em
1999, uma lei que proibia qualquer tipo de poluição luminosa naquela área. 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. Todas as
informações podem ser obtidas com imagens dinâmicas e com legendas claras e objetivas,
conforme mostrada na Figura 10 e na Figura 11.
Figura 10. Tela que apresenta temperatura, vento e corrente no New México Skies
Fonte: Mike & Lynn Rice (2005)
20
Figura 11. Tela que apresenta tempo claro no New México Skies
Fonte: Mike & Lynn Rice (2005)
Na página, também é disponibilizada uma imagem astronômica em tempo real e uma
imagem interna do observatório. 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.
2.2.6. Considerações
Os sistemas avaliados nesta subseção incorporam soluções para obtenção de obtenção de
imagens de forma remota, como o sistema proposto neste trabalho. Mas, como pode ser observado
na Tabela 1, os sistemas estudados não possuem um sistema de agendamento como o proposto neste
TCC. No tópico a seguir, serão apresentadas informações necessárias para a solicitação deste
agendamento.
21
Tabela 1. Comparação entre os sistemas pesquisados
Observatório
do Valongo
TIE (Telescopes New México
in Education)
Skies
AST/RO
ROCS
Oferece acesso remoto Sim
ao observatório?
Sim
Sim
Sim
Sim
Oferece agendamento? Não
Não
Não
Sim
Sim
O agendamento é feito Não
de forma automática?
Não
Não
Sem
informação
Sem
informação
Limitações*
Disponível apenas Observação
para participantes apenas no local
do projeto
Disponível
apenas para
participantes do
projeto
Situado no pólo
sul, ótima área
para observação
Disponível
apenas para
participantes do
projeto
Disponível
apenas para
participantes do
projeto
Observatório
em
funcionamento
Disponível
apenas para
participantes do
projeto
Características:
Ainda não tem
interface
implementada
Vantagens*
A parte física
do observatório
já está equipado
Desvantagens*
Disponível
apenas para
escolas com
parceria
* Em relação ao projeto proposto
Observatório em
funcionamento
Ótima estrutura
Disponível apenas Acesso pago
para participantes
do projeto
2.3. REQUISITOS
Os requisitos especificam genericamente as funções providas deste sistema.
2.3.1. Requisitos para o cadastro
Para utilizar os recursos do observatório, a pessoa ou instituição, deve preencher um
cadastro para avaliação do responsável pelo observatório. Os campos desse cadastro, citados
abaixo, são os requisitos necessários para esta etapa.
•
Informações pessoais: nome, CPF, RG, endereço, telefone, data de nascimento,
profissão, e-mail, celular, numero, complemento, CEP, bairro, cidade, estado e país; e
•
Informações institucionais: nome, tipo, departamento, curso, telefone, endereço, número,
complemento, CEP, bairro, cidade, estado e país.
22
2.3.2. Requisitos de acesso
O usuário estando cadastrado deve fazer uso do login e senha para acessar o sistema e então
fazer sua requisição. Os campos da tela de acesso são os requisitos desta etapa, que são eles: login e
senha.
2.3.3. Requisitos de agendamento
Estes requisitos são os dados fundamentais para a solicitação de uma requisição. Nele, o
usuário vai identificar o tipo, a data e todas as informações necessárias para o agendamento de uma
requisição. São eles:
•
Informações sobre o astro: nome do astro ou as coordenadas dele;
•
Informações sobre a data de observação: intervalo de data ou data específica;
•
Informações sobre o horário da observação: intervalo de horário ou horário específico; e
•
Opções: tempo de exposição, imagens consecutivas, filtros ou imagens consecutivas
com todos os filtros.
2.3.4. CONSIDERAÇÕES
Para melhor visualizar estes requisitos, na Seção 3.2 estão apresentadas as telas do sistema,
com os dados necessários preenchidos, o escalonamento da requisição poderá ser realizado.
2.3.5. Requisitos funcionais
Os requisitos funcionais descrevem os passos que o sistema deve seguir, ou seja, o que ele
deve fazer. Estes requisitos serão melhor especificados na seção de modelagem do projeto.
2.4. ESCALONAMENTO DE REQUISIÇÕES
O gerenciamento das requisições do projeto deste trabalho baseia-se em escalonar as
requisições de modo a obedecer todos os critérios que serão expostos nas próximas sessões. Uma
forma conhecida de escalonamento na área da computação é o escalonamento de processos no
Sistema Operacional e o escalonamento de requisições de acesso ao disco rígido. Nas próximas
subseções serão apresentadas as características de seis algoritmos de escalonamento.
23
Em um Sistema Operacional, o escalonador (scheduler) é o componente responsável pelo
agendamento de processos, ou seja, determina a ordem de execução dos processos prontos a
executar e os despacha ao processador (aloca o processo ao processador), o qual pode, então,
executar suas instruções (CANCIAN, 2000).
Para proteger o sistema e impedir que um processo mais importante espere na fila por outros
menos importantes que está executando, o Sistema Operacional deve ter a capacidade de
interromper a execução de um processo (através de uma interrupção do timer), retirá-lo do
processador (colocando-o novamente na fila) e escolher outro processo na fila para executar. À
capacidade do escalonador de interromper a execução de processos dá-se o nome de preempção.
Em escalonadores de sistemas em tempo real4, é essencial que o escalonamento seja preemptivo, o
que melhora o desempenho do sistema e pode diminuir consideravelmente a taxa de perdas de
deadline5, de acordo com Cancian (2000).
Butazzo (1997) fornece uma definição mais formal:
Suponha três conjuntos: um conjunto de n tarefas J = {J1, J2, ..., Jn}, um conjunto de m
processadores P = {P1, P2, ..., Pm} e um conjunto de s tipos de recursos R = {R1, R2, ..., Rs}.
Além disso relações, de precedência entre tarefas podem ser especificadas através de um
grafo acíclico dirigido, e restrições temporais podem ser associadas a cada tarefa. Neste
contexto, escalonamento significa associar processadores de P e recursos de R a tarefas de J
de modo a completar todas as tarefas sob as restrições impostas.
Neste trabalho são apresentadas as características de sete escalonadores: (i) FIFO;
(ii) prioridade; (iii) filas múltiplas; (iv) SJF; (v) EDF; (vi) SSTF; e (vii) SCAN. Para demonstrar
como ocorre o escalonamento em cada tipo de algoritmo, foi elaborada a Tabela 2 , com processos a
serem escalonados, instante de chegada (instante em que cada processo está pronto para o início da
execução), tempo de execução do processo (tempo de processamento), prioridade, deadline
absoluto e setor (este caso para exemplos de escalonamento para acesso a disco). Essas
características serão utilizadas de acordo com o algoritmo de escalonamento, sendo apresentado
como cada algoritmo atende o mesmo conjunto de processos, de maneiras diferentes.
4
Sistema de tempo real é um sistema no qual a corretude depende não apenas dos resultados lógicos da computação,
mas também do tempo no qual os resultados são produzidos.
5
Deadline é o tempo máximo em que um processo pode terminar sua execução.
24
Tabela 2. Processos a serem escalonados
Processo
P1
P2
P3
P4
P5
Instante de
chegada
0
0
2
3
5
Tempo de
execução
5
4
1
3
2
Prioridade
Deadline
absoluto
13
8
5
15
10
2
4
3
1
0
Setor
Selecionado
70
30
20
50
20
2.4.1. FIFO (First In First Out)
O algoritmo de escalonamento FIFO seleciona os processos conforme seu instante de
chegada, ou seja, o primeiro processo criado será o primeiro a ser escalonado. Esse algoritmo não
considera quaisquer características dos processos além de seu tempo de chegada, tendo como única
vantagem a sua simplicidade.
Conforme mostrado na Figura 12, o escalonamento FIFO executa o processo que chega
primeiro até seu término, para depois iniciar a execução do processo seguinte na fila, sem levar em
consideração outras características que não seja o tempo de chegada dos processos. A seta para
cima ( ) indica o instante de criação do processo, ou seja, o momento que ele está pronto para ser
executado.
Processos
P5
P4
P3
P2
P1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Tempo
Figura 12. Escalonamento dos processos utilizando FIFO
Silberchatz (2000) apresenta outra forma de visualização do atendimento dos processos é
utilizando o diagrama de Gantt. Esse diagrama mostra as unidades de tempo e o processo que foi
executado em cada uma. Na Figura 13, é apresentado o diagrama de Gantt para os processos da
tabela quando escalonados pelo algoritmo FIFO.
25
Tempo
P1
0
1
P1
2
P1
3
P1
4
P1
5
P2
Processos
P2
P2
P2
6
7
8
9
P3
10
P4
11
P4
12
P4
13
P5
14
P5
Figura 13. Escalonamento dos processos utilizando FIFO visualizado na forma de diagrama de
Gantt
2.4.2. Prioridade
No algoritmo de escalonamento por prioridade, a cada processo é atribuída uma prioridade.
O algoritmo escalona primeiro os processos com maior prioridade e se dois processos têm a mesma
prioridade, a cada um deles é fornecido uma fatia de tempo (quantum) e eles passam a compartilhar
o processador (escalonamento circular). Em geral, utiliza-se a notação que um valor numérico
menor significa maior prioridade, ou seja, prioridade 0 é o maior nível de prioridade. Na Tabela 2, o
processo P5 é mais prioritário e o processo P1 é menos prioritário.
Um dos problemas deste algoritmo é a possibilidade de postergação indefinida dos
processos, ou seja, processos pouco prioritários podem ser adiados indefinidamente. Uma possível
solução para esse problema é o uso da técnica de envelhecimento, na qual a prioridade dos
processos que aguardam por muito tempo é incrementada.
Neste método de escalonamento, a prioridade é reavaliada a cada chegada de um novo
processo. Um processo pode ser preemptado para permitir a execução de outro processo mais
prioritário que esteja pronto para ser executado naquele momento. Na Figura 14, é ilustrado o uso
deste escalonamento sobre os processos da Tabela 2. O símbolo e nas células indica que o processo
está esperando, ou seja, foi preemptado para permitir a execução de um processo mais prioritário. É
o caso do processo P4, que inicia sua execução no tempo 3 e é interrompido no tempo 5 pela
chegada do processo P5, mais prioritário.
Processos
P5
P4
P3
P2
P1
e
0
1
2
3
e
4
e
5
e
e
6
e
7
e
8
Tempo
Figura 14. Escalonamento dos processos utilizando prioridade
26
9
10
11
12
13
14
Tempo
P1
0
P1
1
2
P1
3
P4
4
P4
5
P5
6
Processos
P5
P4
P1
7
8
9
P1
10
P3
11
P2
12
P2
13
P2
14
P2
Figura 15. Escalonamento dos processos utilizando prioridade visualizado na forma de diagrama de
Gantt
2.4.3. Filas múltiplas
No escalonamento de filas múltiplas, os processos pendentes são colocados em uma de
várias possíveis filas, dependendo de suas características. Cada fila tem uma prioridade diferente e
os processos em cada uma das filas podem ser escalonados por algoritmos diferentes. Desse modo,
apenas se a fila mais prioritária estiver vazia, a segunda fila mais prioritária será analisada e assim
sucessivamente. Esse algoritmo permite dividir os processos em categorias (filas), e atender cada
categoria utilizando um critério diferente.
Diz-se que o algoritmo de filas múltiplas é o escalonador de “alto nível”, enquanto cada
algoritmo utilizado em uma fila específica, é o escalonador de “baixo nível”. Como exemplo, na
Tabela 3 estão apresentadas as filas e o algoritmo de cada uma delas, e na Figura 16, são mostrados
os processos da tabela, executando com base nesse algoritmo.
Tabela 3. Algoritmos das filas
Fila
1
2
3
Processos
P5
P4
P3
P2
P1
Algoritmo
Circular
Prioridade
FIFO
e
e
e
0
1
2
3
e
4
5
6
7
8
9
Tempo
Figura 16. Escalonamento dos processos utilizando filas múltiplas
27
10
11
12
13
14
Tempo
0
P1
1
P1
2
P1
3
P4
4
P1
5
P4
6
Processos
P1
P4
P5
7
8
9
P5
10
P5
11
P4
12
P2
13
P2
14
P2
Figura 17. Escalonamento dos processos utilizando filas múltiplas visualizada como diagrama de
Gantt
2.4.4. SJF (Smallest Job First)
No escalonamento SJF, a cada processo é atribuída uma estimativa do seu tempo de
execução e o escalonador seleciona primeiro o processo com a estimativa de menor duração. Esse
algoritmo tem dois problemas principais: a dificuldade em estimar corretamente o tempo de
execução de um processo e a possível postergação indefinida de processos.
A Figura 18 apresenta o escalonamento dos processos da Tabela 2, quando usado o
algoritmo SJF. Ainda na Figura 18, pode-se observar que o processo P1 ficou por último por ser o
maior, e os processos de tamanhos menores foram executados primeiro.
Processos
P5
P4
P3
P2
P1
e
0
1
2
3
4
5
6
7
8
Tempo
9
10
11
12
13
14
Figura 18. Escalonamento dos processos utilizando SJF
Tempo
0
P1
1
P1
2
P2
3
P3
4
P3
5
P5
6
Processos
P5
P4
P4
7
8
9
P4
10
P1
11
P1
12
P1
13
P1
14
P1
Figura 19. Escalonamento dos processos utilizando SJF visualizado no diagrama de Gantt
2.4.5. EDF (Earliest Deadline First)
Neste escalonamento, a cada processo pendente é atribuído um prazo final para sua
execução (deadline). O processo com o prazo final mais próximo será executado primeiro. Esse é o
28
algoritmo de tempo real mais difundido, embora não considere outras características da tarefa além
de seu prazo final.
As setas para baixo ( ), mostradas na Figura 20, representam os tempos máximos em que
esses processos podem ser executados. Os processos que não forem executados no prazo necessário
serão perdidos, ou seja, não são mais executados. É o caso que ocorre com o processo P1, que
deveria executar em 5 unidades de tempo, executou três e foi perdido, pois não conseguiu cumprir
seu deadline. Um bom escalonador de tempo real deve ter uma taxa de perda de deadline baixa.
Processos
P5
P4
P3
P2
P1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Tempo
Figura 20. Escalonamento dos processos utilizando EDF
Tempo
0
P2
1
P2
2
P3
3
P3
4
P3
5
P2
6
Processos
P2
P5
P5
7
8
9
P1
10
P1
11
P1
12
P4
13
P4
14
P4
Figura 21. Escalonamento dos processos utilizando EDF visualizado no diagrama de Gantt
2.4.6. SSTF (Smallest Seek Time First)
O algoritmo SSTF é usado no escalonamento de requisições geradas por processos que
queiram acessar setores do disco rígido. Ele ordena as requisições pendentes com base na distância
entre o setor requisitado por cada processo e a posição atual do cabeçote de leitura/gravação do
driver do disco rígido. A requisição que necessitar de menor deslocamento (seek time) do cabeçote
será atendida primeiro. Esse algoritmo tende a minimizar o movimento do cabeçote, embora possa
causar a postergação indefinida de requisições muito distantes. A Figura 22 representa um disco
rígido com o braço do cabeçote posicionado no setor 40.
29
Setores
70
P1
60
P4
50
40
30
P2
20
10
P3
0
1
2
P5
3
4
5
6
7
Tempo
8
9
10
11
12
13
14
Figura 22. Escalonamento dos processos utilizando SSTF
No instante 0, há duas requisições pendentes para o setor 70 (P1) e para o setor 30 (P2). O
braço do cabeçote desloca-se então para baixo e a requisição do processo P2 é atendida. O símbolo
“
” indica o atendimento das requisições.
No tempo 1, a única requisição pertence a P1 (setor 70), pois o P3 só é criado no tempo 2.
Após, o cabeçote desloca-se para cima para atender o processo P1, mas no tempo 2, o processo P3 é
criado e sua requisição (setor 20) está mais próxima do braço do cabeçote. E esse, então, inverte seu
movimento e atende a requisição do processo P3 no tempo 4. Nesse instante, a requisição mais
próxima é a do P4 (setor 60) e o braço do cabeçote desloca-se para cima.
No tempo 5, o processo P5 é criado e sua requisição está mais próxima. O braço inverte o
movimento e desloca-se para baixo a fim de atendê-lo, o que ocorre no instante 6. Após, o braço do
cabeçote desloca-se para cima e atende a requisição do P4 (setor 60) e requisição do P1 (setor 60).
2.4.7. Scan
O algoritmo SCAN também é aplicado no escalonamento de requisições de acesso ao disco
rígido e movimenta o cabeçote de leitura/gravação numa direção, atendendo todas as requisições
pendentes em seu caminho, até a requisição mais distante. Após, ele inverte a direção e procede da
mesma maneira. Esse algoritmo pode levar a mais movimentos do cabeçote do que o algoritmo
SSTF, entretanto, não causa postergação indefinida.
A Figura 23 mostra a execução dos processos utilizando o algoritmo SCAN supondo que o
cabeçote de leitura esteja no setor 40 se movendo para baixo. A Figura 24 sugere o mesmo
escalonamento mas com o cabeçote do setor 40 movimentando-se para cima.
30
Na Figura 23, quando o braço move-se para baixo, vai atendendo as requisições de
processos que estejam em seu caminho, neste caso atendendo os processos P2 e P3. O braço do
cabeçote move-se então para acima até seu extremo, atendendo os processos P5, P4 e P1 que estão
em seu caminho neste momento.
Setores
70
P1
60
P4
50
40
30
P2
20
P3
10
0
1
2
P5
3
4
5
6
7
Tempo
8
9
10
11
12
13
14
Figura 23. Escalonamento dos processos utilizando SCAN
Já na Figura 24, quando o braço desloca-se para cima primeiro, faz novamente a
movimentação até seus pontos extremos, atendendo todos os processos em seu caminho. Nesse
caso, atende os processos P4 e P1 quando movimenta-se para cima e os processos P3, P5 e P2
quando movimenta-se para baixo.
Setores
70
P1
60
P4
50
40
30
P2
20
P3
10
0
1
2
P5
3
4
5
6
7
Tempo
8
9
10
11
12
13
14
Figura 24. Escalonamento dos processos utilizando SCAN
2.4.8. Considerações
O escalonamento das requisições de observações astronômicas deste trabalho faz uso de
características de diversos escalonadores citados nas sessões acima, conforme exemplos práticos
citados abaixo.
•
FIFO: no caso de mais de uma requisição de usuários com mesma prioridade, o sistema
os atenderá por ordem de chegada;
31
•
Prioridade: a cada usuário cadastrado será atribuída uma prioridade. No escalonamento
das requisições, será utilizado o método de prioridade para executar a requisição; e
•
EDF: este algoritmo será utilizado no escalonamento de requisições com tempo exato
para atendimento. Por exemplo, na ocorrência de um eclipse solar, se a requisição não
for atendida no momento agendado, ela será perdida;
Como proposta a uma etapa seguinte deste trabalho, sugere-se um refinamento (otimização)
das requisições escalonadas. Esse refinamento baseia-se em fazer melhor uso do telescópio, ou seja,
otimizar a sua movimentação. Para isto, será feito o uso de outros métodos de escalonamento, que
são descritos a seguir:
•
SSTF: A requisição que necessitar de menor deslocamento do telescópio seria atendida
primeiro. Esse algoritmo tende a minimizar o movimento do telescópio, embora possa
causar a postergação indefinida de requisições muito distantes. Mas fatia com que o
telescópio sofresse pequenos movimentos para atender diversas requisições; e
•
SCAN: a característica deste escalonador em relação a este trabalho, é que quando o
telescópio movimenta-se para um determinado local, ele atenda as requisições que
estejam em seu caminho. Isto evitaria que o telescópio fosse movimentado para um
local, e depois, para atender outra requisição, fizesse um caminho semelhante.
2.5. AMBIENTE DE DESENVOLVIMENTO
Para o desenvolvimento do sistema proposto, foi escolhida a linguagem C++ pois possui
recursos necessários a este trabalho. Conforme destaca Deitel (2001), “como C é uma linguagem
padronizada, independente de hardware e amplamente disponível, aplicativos escritos em C podem
ser freqüentemente executados com pouca ou nenhuma modificação em uma ampla variedade de
sistemas de computação diferentes”.
Essa linguagem também permite o desenvolvimento orientado a objeto, que tem diversas
vantagens, tais como:
•
Compatibilidade, portabilidade;
•
Segurança;
•
Reusabilidade;
32
•
Facilidade de integração;
•
Facilidade de extensão; e
•
Eficiência.
Esta linguagem também permitiu que uma interce Web fosse gerada, utilizando
componentes disponíveis. Isso trouxe vários benefícios a este trabalho, pois todo o desenvolvimento
foi feito utilizando uma única ferramenta.
Além disso, ressalta-se que existem diversas rotinas astronômicas já desenvolvidas em C
(SILVA, 2003), as quais serão utilizadas no projeto e são descritas brevemente na subseção a
seguir.
2.5.1. Rotinas disponíveis
Um TCC desenvolvido na Univali (SILVA, 2003) referiu-se a um protótipo para
automatizar um telescópio. O desenvolvimento e a implantação deste projeto, visaram a criação de
um sistema embarcado, baseado em um microcontrolador, para controlar um telescópio com
montagem equatorial, possibilitando o auxílio na observação astronômica para pesquisadores e
alunos, visando uma melhor aprendizagem, através do acompanhamento e localização automática
dos corpos celestes.
A seguir são apresentadas as rotinas implementadas no Trabalho de Conclusão de Curso
(SILVA, 2003) e que são relevantes a este trabalho.
•
Verificar comando: esta função apresenta o menu, espera o comando informado pelo
usuário e invoca o processo responsável por executá-lo;
•
Encaminhar dados: nesta função é verificada qual informação é digitada pelo usuário, e
para qual processo devem ser enviados os dados lidos, de acordo com a opção;
•
Ler longitude: processo que converte uma string recebida para uma estrutura do tipo
longitude, enviando a estrutura para ser validada e posteriormente convertida em graus
decimais;
•
Validar longitude: este processo verifica se uma longitude fornecida pelo usuário está
correta, ou não;
33
•
Converter longitude: função que converte uma estrutura do tipo longitude em graus para
a unidade de graus decimais, recebendo uma estrutura do processo ler longitude e
enviando o resultado para verificar comando;
•
Ler hora: este processo recebe uma opção na qual determina onde deve ser feita a
validação da hora, declinação, ascensão reta ou latitude, enviando em seguida a estrutura
para ser em um número real;
•
Validar Hora_Ar: este processo verifica se uma estrutura do tipo hora ou ar (ascensão
reta) fornecida pelo usuário está correta, ou não;
•
Validar Dec_Lat: esta função verifica se uma estrutura do tipo declinação ou latitude
fornecida pelo usuário está correta, ou não;
•
Converter Hora: função que converte uma estrutura do tipo hora no formato hh/mm/ss
para a unidade de horas decimais, recebendo uma estrutura do processo Ler Hora, e
enviando o resultado para verificar comando;
•
Ler Inteiro: processo que recebe uma string e transforma em inteiro enviado para
verifica comando;
•
Movimentar: processo que tem o objetivo de verificar qual tecla foi pressionada,
enviando assim o número de passos correspondentes para o motor de passo adequado;
•
Calcular Passo Motor Z: processo que controla o motor de passo Z, bem como calcular
e controlar sua posição atual, e movimentos futuros;
•
Calcular Passo Motor H: processo que controla o motor de passo H, bem como calcular
e controlar sua posição atual e movimentos futuros;
•
Calcular Passo Anti-Horário: processo que calcula o próximo passo a ser realizado pelo
motor de passo no sentido anti-horário;
•
Calcular Passo Horário: processo que calcula o próximo passo a ser realizado pelo motor
de passo no sentido horário;
•
Calcular dia Juliano: esta função calcula o dia Juliano através da hora, data, e da
longitude atual;
•
Processo 5.2 Calcula TS: este processo é utilizado para calcular o tempo sideral, através
do dia juliano e da longitude local. Este processo é de autoria de Thorstensen (1993);
34
•
Incrementa TS: esta função recebe e incrementa o tempo sideral a cada segundo, e a
cada 240 segundos, que equivale a 4 minutos (considerando que o motor de passo gire
um grau por passo), enviando um passo e o tempo sideral para calcular H;
•
Calcula Z: este processo calcula a distância zenital e recebe através da função calcular
H as informações da estrela. Verifica também, se o Zênite é menor que o ângulo
permitido de 60º, e enviando a quantidade de passos e a direção para o Calcula Passo
Motor Z;
•
Calcular H: calcula o Ângulo Horário através do tempo sideral e da ascenção reta da
estrela a ser observada;
•
Ler EEPROM: função que procura na EEPROM interna e externa uma estrela com
código igual à obtida;
•
Gravar EEPROM: função que procura nas EEPROM’s interna e externas um endereço
livre e grava uma estrutura do tipo estrela num endereço vago. Se a estrela já está
armazenada na memória, o processo grava a nova estrela na posição da estrela anterior;
•
Calcular Precessão: calcula a precessão da Estrela, a partir do ano do catálogo até a data
atual.
2.5.2. Fluxo de execução
Conforme Silberchatz (2000), o estado de um processo é definido por pelos recursos que ele
está utilizando e pela posição na qual está sendo executado. Existem muitos casos em que seriam
úteis o acesso e o compartilhamento o acesso e o compartilhamento simultâneo de recursos. Essa
situação é realizada com um novo contador de instruções, ou fluxo de execução chamada thread,
com o processamento compartilhando o mesmo espaço de endereçamento.
Esse mesmo autor define fluxo de execução (thread), também chamado de processo leve
(lightweight process), como uma unidade básica de utilização da CPU, consistindo de um contador
de instruções, um conjunto de registradores e um espaço de pilha. O fluxo de execução compartilha
com fluxos irmãos sua seção de código, a seção de dados e recursos do sistema operacional, como
arquivos abertos e sinais, conhecido coletivamente como uma tarefa.
Silberchatz (2000) também define soquete ou socket como interfaces para operações de
entrada e saída em rede, que, por analogia, pode ser comparado a um soquete de energia elétrica em
35
que qualquer para eletrodoméstico poderia ser conectado. Dessa forma, a interface do soquete
consiste em rotinas do sistema que permitem a uma aplicação criar um soquete, conectar um
soquete local e um endereço remoto (que conecta esta aplicação a um soquete criado por outra
aplicação), de forma a poder enviar e receber pacotes com dados por essa conexão.
[FIM DE SEÇÃO. Não remova esta quebra de seção]
36
3. DESENVOLVIMENTO
Neste capítulo, são apresentados o projeto e a implementação do sistema. O projeto descreve
a análise dos requisitos, as especificações e a modelagem do sistema, enquanto que a
implementação apresenta aspectos relativos à materialização e à validação.
A modelagem foi feita utilizando UML (Unified Modeling Language) que é uma linguagem
de modelagem padronizada para engenharia de sistemas orientados a objeto. De acordo com Furlan
(1998), a UML foi concebida a partir de várias técnicas de projeto e análise orientados a objeto
(OOA&D - Object Oriented Analysis & Design) existentes, desenvolvidas por diferentes autores,
como Coad e Yourdon, Shlaer e Mellor, Odell e Martin e, principalmente, a partir do "método
unificado" OOSE (Object Oriented Software Engineering), de Booch, Rumbaugh e Jacobson.
Pode-se dizer que o objetivo principal da UML é definir uma linguagem de modelagem
visual e expressiva, no sentido de prover facilidades na visualização, ou seja, o pleno entendimento
das funções de um sistema a partir de diagramas que o representem, no gerenciamento de
complexidade, permitindo uma representação simplificada das atividades do sistema, ou seja, que
cada aspecto funcional dele seja representado em modelos específicos e, por fim, na comunicação,
unificando a comunicação da equipe de desenvolvimento na forma de diagramas.
Um diagrama é uma apresentação gráfica de uma coleção de elementos de modelo,
freqüentemente mostrado como um gráfico conectado de arcos (relacionamentos) e vértices (outros
elementos do modelo). Nas sessões a seguir serão apresentados os requisitos funcionais, as
especificações e os diagramas que representam este projeto.
3.1. PROJETO
3.1.1. Análise de Requisitos
Os requisitos funcionais descrevem a funcionalidade que o sistema possui, ou seja, o que ele
faz. Esses requisitos serão melhor descritos na especificação do sistema.
Abaixo, são descritos os requisitos funcionais:
•
O sistema permite que usuários se cadastrem;
•
O sistema permite que usuários submetam requisições;
•
O sistema agenda requisições de acordo com a prioridade de cada usuário e conforme
segue:
1. O horário escolhido para observação deve ser no período noturno;
2. No formulário da requisição o usuário pode escolher entre o nome do astro ou definir
as coordenadas;
3. O astro deve estar visível no horário escolhido;
4. Agenda a requisição somente se não houver nenhuma requisição mais prioritária na
hora e data especificadas;
5. Se houver uma requisição menos prioritária, esta é reagendada e tem sua prioridade
incrementada; e
6. Se houver requisição idêntica quanto à observação a ser realizada (coordenadas, data
e hora), faz agrupamento com a requisição mais prioritária.
•
Na data especificada, o sistema dá inicio à execução, realizando as seguintes funções:
1. Verifica se as condições meteorológicas estão adequadas;
2. Envia o comando de abertura da cúpula;
3. Envia o comando de calibração;
4. Envia o comando de localização das coordenadas;
5. Captura imagem;
6. Envia imagem por e-mail;
7. Se alguma das condições anteriores não for satisfeita, a requisição é reagendada e
usuário avisado por e-mail.
3.1.2. Especificações
As especificações são os requisitos funcionais apresentados de forma mais detalhada,
incluindo informações importantes para o sistema, como a tecnologia utilizada e a descrição de
como foram realizados. Os itens abaixo descrevem as especificações deste sistema:
38
•
O sistema permite que usuários se cadastrem. O sistema possui uma interface Web com
um formulário eletrônico com campos de informações que devem ser preenchidos pela
pessoa/instituição que deseja utilizar o observatório. A pessoa solicita a submissão das
informações deste formulário, que são armazenadas em um banco de dados e marcadas
como “cadastro pendente”. No momento adequado o administrador avaliará os cadastros
pendentes e decide pela sua aprovação ou rejeição, marcando o cadastro como “ativo” ou
excluindo as informações do banco de dados, e, após, notificando o usuário. Caso o
usuário tenha o seu cadastro aprovado ele poderá efetivamente acessar o sistema;
•
O sistema permite que usuários submetam requisições. Para a submissão de requisições,
o usuário deve efetuar sua autenticação (login) no sistema. Estando autenticado, ele deve
preencher um formulário eletrônico com informações da sua requisição (nome do astro,
coordenadas, horário, filtro, etc.). Após o usuário submeter o 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 haja problemas de validação, o sistema rejeitará 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:
1. O horário escolhido para observação deve ser no período noturno: Esta validação é
realizada apenas caso o usuário tenha especificado um horário na requisição. São
utilizados cálculos astronômicos que determinam os instantes do pôr do Sol e do
nascer do Sol em uma determinada data. Se o horário escolhido estiver entre esses
instantes, então ele corresponderá ao período noturno;
2. No formulário da requisição o usuário pode escolher entre o nome do astro ou definir
as coordenadas: Caso o usuário escolha o nome de um astro, as coordenadas já
estarão armazenadas no banco do sistema e, serão portanto, consistentes. Se ele
escolher as coordenadas, essas são verificadas por meio da simples comparação dos
valores com os limites aceitáveis para coordenadas;
3. O astro deve estar visível no horário escolhido: Dadas a coordenadas do astro, o
sistema fará uma redução ao dia para verificar se, na data e horário especificados, o
astro se encontrará no mínimo a 20º sobre o horizonte;
39
4. Agenda a requisição somente se não houver nenhuma requisição mais prioritária na
hora e data especificadas: Se na data e hora especificadas em uma requisição não
houver nenhum agendamento, esta requisição será agendada. Se na data e hora
houver uma requisição mais prioritária, a requisição será negada. Caso na data e hora
especificadas houver uma requisição com prioridade mais baixa, a requisição atual
será agendada, e a menos prioritária será reagendada e sua prioridade
incrementada; e
5. Se houver requisição idêntica quanto à observação a ser realizada (coordenadas, data
e hora), faz agrupamento com a requisição mais prioritária: Quando uma requisição
entra no sistema, a primeira coisa a ser feita é uma varredura em todas as requisições
para verificar se já existe requisição idêntica, pois, se existir, o sistema insere mais
um usuário a uma requisição já criada, não precisando criar nova requisição.
•
Atender a requisição na data especificada: Para atender uma requisição, as seguintes
funções são realizadas:
1. Verifica se as condições meteorológicas estão adequadas: O sistema faz verificação
de umidade, vento e temperatura interna e externa do observatório através de
sensores no observatório ou páginas meteorológicas. Se os valores dessas
verificações estiverem dentro dos limites especificados pelo sistema, dá-se
continuidade ao atendimento, caso contrário, a requisição é reagendada e o usuário
notificado;
2. Envia o comando de abertura da cúpula: Se as condições meteorológicas estiverem
adequadas, então a cúpula poderá ser aberta. Este comando será enviado ao driver do
sistema embarcado, um programa responsável pela comunicação com o sistema
computacional dedicado ao acionamento dos componentes do observatório;
3. Envia o 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 será tomada;
4. Envia o comando de localização das coordenadas: O sistema encaminha, ao driver
do sistema embarcado, as coordenadas correntes do astro da requisição que será
atendida. Este então aciona o telescópio;
40
5. Capturar imagem: O sistema passará para o driver um comando para que a câmera
CCD acoplada ao telescópio faça a captura da imagem;
6. Envia imagem por e-mail: O sistema recebe a imagem gerada pela câmera CCD e
gera uma mensagem eletrônica que é enviada aos usuários que solicitaram a
requisição atendida; e
7. Se alguma das condições anteriores não for satisfeita, a requisição é reagendada e
usuário avisado por e-mail.
3.1.3. Arquitetura do Sistema
Como o trabalho aqui proposto está inserido em um projeto de observatório remoto, foram
desenvolvidas ilustrações que representam a arquitetura do projeto como um todo, detalhando a
parte em que este trabalho de conclusão de curso se limita.
A Figura 25 representa o contexto global do projeto de um observatório remoto. O acesso
será via Internet, onde o usuário acessa o servidor e realiza a requisição de observação. Na data e
hora em que uma requisição deve ser atendida, o sistema que está no servidor acessa uma estação
meteorológica que retorna valores ao servidor, o sistema, de acordo com os valores meteorológicos
pode acionar o sistema embarcado que interage com o telescópio e a cúpula. O contexto deste
trabalho limita-se ao sistema que está no servidor, não fazendo parte deste, os sistemas embarcados
e controles da estação meteorológica e do observatório.
Estação
Meteorológica
Internet
Sistema
Embarcado
‘
Figura 25. Representação do contexto global do projeto de um observatório remoto
41
A Figura 26 mostra as ligações do contexto global do projeto do observatório remoto,
separando o servidor em Interface e Núcleo do Sistema. Tanto a interface quanto o núcleo compõe
o projeto aqui proposto. A interface é o meio em que o usuário interage com o sistema do
observatório, e o núcleo faz o gerenciamento das requisições.
Internet
Interface
Núcleo do
Sistema
Driver do
Sistema Embarcado
Interface
Estação
Sistema
Embarcado
Figura 26. Ligações do contexto global do projeto do observatório remoto
A Figura 27 representa as camadas envolvidas no projeto do observatório remoto,
destacando, a proposta do presente TCC. O usuário acessa a página Web que se comunica com o
gerenciador do sistema, este por sua vez, aciona o escalonador que utiliza outros recursos
(Astrônomo, Temporizador, Meteorologista) para escalonar a requisição, ou o Executor, para
executar uma requisição agendada.
42
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 27. Camadas envolvidas no projeto do observatório remoto
3.1.4. Diagramas UML
Abaixo são apresentados os diagramas UML com suas devidas explicações. Foram
utilizados os diagramas que representam aspectos da estrutura e aspectos dinâmicos do sistema.
3.1.4.1. Diagrama de Caso de uso
Diagramas de caso de uso descrevem os requerimentos funcionais do sistema de maneira
conceitual entre usuários e desenvolvedores de sistemas. Ele fornece uma descrição consistente e
clara sobre as responsabilidades que devem ser cumpridas pelo sistema, além de formar a base para
a fase de desenho (FURLAN, 1998).
O sistema possui dois atores, o usuário e o administrador; por este motivo foi construído
dois diagramas de caso de uso, um para cada ator, conforme mostra a Figura 28 e a Figura 29.
A figura abaixo ilustra todas as ações que o administrador tem condições de realizar.
43
ud Caso de uso do Administrador
Aprov ar/Reprov ar
Cadastro do
Usuário
Ver Cadastro de
Usuários
Fazer Login
Listar Requisições
Pendentes de
usuários
Modificar
Agendamento
Administrador
Ver Utilização do
Telescópio
Fazer Manutenção
do Observ atório
Excluir Usuários
Listar Usuários
Fazer
Administração do
Site
Figura 28. Diagrama de caso de uso do administrador
O diagrama de caso de uso do usuário ilustra todas as ações que o usuário é capaz de
realizar.
44
ud Caso de uso do usuário
Ver Condições
Metereológicas
Preencher
Cadastro
Submeter Cadastro
Listar Requisições
Pendentes
Confirmar Cadastro
Preencher
Requisição
Alterar Cadastro
Usuário
Pedir Exclusão do
Cadastro
Submeter
Requisição
Alterar Requisição
Fazer Login
Excluir Requisição
Figura 29. Diagrama de caso de uso do usuário
3.1.4.2. Diagrama de Classes
O diagrama de classes representa a estrutura lógica estática em uma superfície e a coleção de
elementos que descrevem o modelo e as suas relações. Cada classe descreve as ações que serão
realizadas. A Figura 30 descreve as classes desse sistema, que são: Gerenciador, Escalonador,
Meteorologista, Executor, Astrônomo e Temporizador; todos com as suas devidas ações a serem
realizadas.
45
c d As tr a W e b
TW e b Mo d u le
TW e bM odule 1
#
#
#
#
#
#
#
#
#
#
#
-
p p In d e x: TP a g e P ro d u c e r*
C lie n tS o cke t: TC lie n tS o ck e t*
p p P rin cip a l: TP a g e P ro d u ce r*
p p C a d a s tro : TP a g e P ro d u ce r*
p p R e q u is ic a o : TP a g e P ro d u ce r*
p p L o g in In va lid o : TP a g e P ro d u ce r*
T im e rT im e o u t: TTim e r*
p p E s q u e c e u S e n h a : TP a g e P ro d u ce r*
p p E n vio u S e n h a : TP a g e P ro d u ce r*
p p R e q P e n d e n te s : TP a g e P ro d u ce r*
p p R e q L is ta : T P a g e P ro d u ce r*
a Tim e o u t: b o o l
#
#
#
#
#
#
#
#
#
#
#
#
+
W e b Mo d u le 1 Actio n S u b m itR e q u e s tActio n (TO b je ct* , TW e b R e q u e s t* , T W e b R e s p o n s e * , b o o l& ) : vo id
W e b Mo d u le 1 P o s tL o g in Actio n (TO b je ct* , T W e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
p p P rin cip a lH TML Ta g (TO b je ct* , TTa g , An s iS trin g , TS trin g s * , An s iS trin g & ) : vo id
W e b Mo d u le 1 G e tP rin c ip a lAc tio n (TO b je ct* , TW e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
T im e rT im e o u tTim e r(T O b je c t* ) : vo id
W e b Mo d u le 1 a cS u b m itS e n h a Actio n (TO b je ct* , T W e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
W e b Mo d u le 1 a cS u b m itR e q u is ica o Ac tio n (TO b je ct* , TW e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
p p R e q u is ic a o H TML Ta g (TO b je ct* , TT a g , An s iS trin g , TS trin g s * , An s iS trin g & ) : vo id
p p R e q P e n d e n te s H TML T a g (TO b je c t* , TTa g , An s iS trin g , TS trin g s * , An s iS trin g & ) : vo id
W e b Mo d u le 1 a cR e q u is ica o Actio n (TO b je c t* , TW e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
W e b Mo d u le 1 a cR e s P e n d e n te s Actio n (TO b je ct* , T W e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
W e b Mo d u le 1 a cS u b m e te C a d a s tro Actio n (TO b je ct* , TW e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
Ve rifica P a ra m e tro s C o rre to s U R L (TO b je ct* , TW e b R e q u e s t* , TW e b R e s p o n s e * , b o o l& ) : vo id
C o n n e ctTo As tra K e rn e l() : b o o l
D is co n n e ctTo As tra K e rn e l() : vo id
S e n d Me s s a g e To As tra K e rn e l(S trin g ) : in t
S e n d Fie ld s To As tra K e rn e l() : in t
S e n d Fie ld s To As tra K e rn e l(S trin g ) : in t
R e c e ive Me s s a g e Fro m As tra K e rn e l() : S trin g
G e tR e q u e s tFie ld s () : S trin g
G e tQ u e ryFie ld s () : S trin g
G e tQ u e ryFie ld (S trin g ) : S trin g
T W e b Mo d u le 1 (TC o m p o n e n t* )
Figura 30. Diagrama de classes do Astra Web
46
c d As tr a Ke rne l
ClGe re n c ia dor
-
Me te o ro lo g is ta : C lMe te o ro lo g is ta *
E s ca lo n a d o r: C lE s c a lo n a d o r*
C a rte iro : C lC a rte iro *
Ta b U s u a rio s : C lT a b U s u a rio s *
Ta b As tro s : C lTa b As tro s *
Ta b H o ra rio s : C lTa b H o ra rio s *
Ta b R e q u is ico e s : C lTa b R e q u is ic o e s *
Ta b Me te o ro lo g ic o s : C lTa b Me te o ro lo g ico s *
Ta b R e q u is ico e s _ U s u a rio : C lTa b R e q u is ic o e s _ U s u a rio *
Ta b In s titu ic o e s : C lTa b In s titu ico e s *
Ta b C a rg o s : C lT a b C a rg o s *
S e rve rS o c k e t: TS e rve rS o c k e t*
+
+
+
+
-
C lG e re n c ia d o r(vo id )
_ Fa z_ Te s te s () : vo id
_ C ria G ra fic o C o n d ic o e s (in t) : vo id
_ C ria G ra fic o R e q (in t, in t) : vo id
_ E fe tu a _ L o g in (S trin g , S trin g , s R e g is tro U s u a rio *) : in t
_ O n S o ck e tG e tTh re a d (S ys te m ::TO b je c t*, TS e rve rC lie n tW in S o ck e t* , TS e rve rC lie n tTh re a d * & ) : vo id
_ Tra ta Me n s a g e m W e b (S trin g , S trin g *) : vo id
_ Tra ta Me n s a g e m L o g in (TS trin g L is t* ) : S trin g
_ Tra ta Me n s a g e m G e tN u m R e q (TS trin g L is t* ) : S trin g
_ Tra ta Me n s a g e m E s q u e ce u S e n h a (TS trin g L is t* ) : S trin g
_ Tra ta Me n s a g e m S u b m e te R e q u is ic a o (T S trin g L is t* ) : S trin g
_ Tra ta Me n s a g e m G e tN o m e As tro s (TS trin g L is t*) : S trin g
_ Tra ta Me n s a g e m G e tR e q P e n d e n te s (TS trin g L is t* ) : S trin g
_ Tra ta Me n s a g e m S u b m e te C a d a s tro (TS trin g L is t*) : S trin g
C lL o g
ClAs tronom o
#
#
#
#
#
#
#
#
C lAs tro n o m o (vo id )
Fa c a _ R e d u c a o _ a o _ D ia (TD a te Tim e , d o u b le , d o u b le , TD a te T im e , d o u b le * , d o u b le * ) : vo id
D e te rm in e _ P e rio d o _ Vis ive l_ n a _ D a ta (TD a te Tim e , d o u b le , d o u b le , TD a te Tim e , TD a te Tim e *, TD a te Tim e *) : vo id
C a lc u le _ D a ta _ J u lia n a (flo a t, TD a te Tim e , flo a t) : flo a t
C a lc u le _ Te m p o _ S id e ra l(flo a t, flo a t) : flo a t
C a lc u le _ An g u lo _ H o ra rio (flo a t, flo a t) : flo a t
C a lc u le _ Z(flo a t, flo a t) : flo a t
C a lc u le _ Altu ra _ As tro (TD a te Tim e , d o u b le , d o u b le , T D a te Tim e , TD a te Tim e ) : flo a t
C lL o g
ClEs c a lona d or
ClEx e c utor
+
-
As tro n o m o : C lAs tro n o m o *
m e n s a g e m : S trin g
E xe c u to r: C lE xe c u to r*
Te m p o riza d o r: C lT e m p o riza d o r*
C a rte iro : C lC a rte iro *
Ta b H o ra rio s : C lTa b H o ra rio s *
Ta b R e q u is ic o e s _ U s u a rio : C lTa b R e q u is ic o e s _ U s u a rio *
Ta b R e q u is ic o e s : C lTa b R e q u is ico e s *
Ta b U s u a rio s : C lTa b U s u a rio s *
Ta b As tro s : C lTa b As tro s *
#
#
#
-
C lE s c a lo n a d o r(vo id )
R e q u is ic a o _ Te rm in a d a () : in t
E s c a lo n e _ R e q u is ic a o (TS trin g L is t* , s R e g is tro R e q u is ic a o , b o o l) : S trin g
_ Ve rifiq u e _ As tro _ Vis ive l_ N a _ D a ta (TD a te Tim e , TD a te Tim e , d o u b le , d o u b le , T D a te Tim e ) : b o o l
Ve rifiq u e _ As tro _ Vis ive l(s R e g is tro R e q u is ic a o ) : b o o l
_ E xe c u te _ R e q u is ic a o () : vo id
_ In ic ie _ Te m p o riza c a o _ E s ca lo n a m e n to () : in t
_ Ag ru p e _ R e q u is ic a o (T S trin g L is t*, s R e g is tro R e q u is ica o *, TD a te Tim e , TD a te Tim e ) : in t
_ E xc lu i_ R e q u is ic a o _ B a n c o (in t) : vo id
_ E s ca lo n e _ R e q u is ic a o _ P a ra (TS trin g L is t*, s R e g is tro R e q u is ica o , TD a te Tim e , TD a te Tim e , b o o l) :
_ Ve rifiq u e _ R e s tric o e s (s R e g is tro R e q u is ic a o ) : S trin g
Figura 31. Diagrama de classes do Astra Kernel
47
-
Me te o ro lo g is ta : C lMe te o ro lo g is ta *
Te m p o riza d o r: C lTe m p o riza d o r*
D rive rS E : C lD rive rS E *
C a rte iro : C lC a rte iro *
Ta b U s u a rio s : C lTa b U s u a rio s *
Ta b As tro s : C lTa b As tro s *
Ta b R e q u is ic o e s _ U s u a rio : C lTa b R e q u is ic o e s _ U s u a rio *
a T im e o u t: b o o le a n
+
+
-
C lE xe c u to r(vo id )
E xe c u te _ R e q u is ic a o (s R e g is tro R e q u is ic a o ) : in t
_ T im e o u t() : vo id
_ In ic ie Te m p o riza c a o (in t, in t) : vo id
S trin g
3.1.4.3. Diagrama de Colaboração
O diagrama de colaboração descreve os métodos invocados, quem invoca e quem é
invocado. Na Figura 32, as comunicações foram numeradas para facilitar a explicação das ligações.
Interface
Gerenciador
Servidor
Web
7
1
4
6
Escalonador
Temporizador
5
3
Meteorologista
Executor
2
Astrônomo
Web
Interceptor
Figura 32. Diagrama de colaboração
Abaixo é apresentada a descrição de cada ligação:
•
Ligação 1: o Gerenciador recebe os parâmetros da interface Web e invoca o Escalonador
para executar todo o processo de escalonamento;
•
Ligação 2: o Escalonador invoca o Astrônomo, pois um dos passos do escalonamento é a
consistência astronômica dos dados submetidos pelo usuário;
•
Ligação 3: o Escalonador invoca o método Temporizador, sendo que este guarda a data e
hora da próxima execução. Então caso o sistema tenha recebido uma nova requisição, o
Temporizador deve ser atualizado;
•
Ligação 4: o Temporizador invoca o Escalonador quando chegar a data e hora da
requisição ser atendida;
•
Ligação 5: caso o Escalonador tenha sido invocado para executar, ele invoca o Executor,
que será responsável pela execução;
•
Ligação 6: quando o Executor estiver ativado, ele invoca o Meteorologista para verificar
as condições meteorológicas; e
48
•
Ligação 7: o Gerenciador invoca o Meteorologista quando precisa de informações
meteorológica para alimentar o banco de dados ou quando um usuário requisitar
informações meteorológicas atualizadas.
3.1.4.4. Diagramas de Seqüência
O diagrama de seqüência expõe o aspecto do modelo que enfatiza o comportamento dos
objetos em um sistema em seqüência temporal de mensagem e representação das atividades e
operações. Os objetos são desenhados em linhas verticais e a seqüência das linhas é lida de cima
para baixo. Pode-se desenvolver um diagrama de seqüência para cada caso de uso existente. Nas
próximas figuras serão apresentados os diagramas de seqüência que descrevem os principais casos
de uso deste sistema. No apêndice são apresentados os diagramas de seqüência dos demais casos de
uso.
No diagrama de seqüência do cadastro do usuário, o usuário acessa a interface, submete o
cadastro que vai para o Gerenciador. O cadastro é enviado ao administrador que faz uma avaliação.
Caso esta avaliação seja positiva, o Gerenciador grava o cadastro no banco. Um retorno desta
avaliação é enviado ao usuário.
49
s d C a d a s t r o d o U s u á r io
U s u á ri o
In te rfa c e
G e re n c i a d o r
Ad m
P r e e n c h e c a m p o s d o c a d a s tro
S u b m e te c a d a s tro
S u b m e te c a d a s tr o (d a d o s )
U s u á ri o Va l i d a C a d a s tro
Figura 33. Diagrama de seqüência do cadastro do usuário
A Figura 34 mostra o diagrama de seqüência da solicitação de uma requisição. O
usuário preenche o cadastro e o submete. O Gerenciador envia-o ao Escalonador, que verifica com
o Astrônomo se os dados astronômicos inseridos são válidos. Se não forem, ele envia uma
mensagem ao usuário informando o problema. O Escalonador ainda verifica se existe choque com
outras requisições nesta data e hora. Se for necessário reescalonar uma requisição, ele o faz. O
Escalonador também verifica a possibilidade de agrupamento de requisições. Se a requisição for
inserida, o Escalonador atualizará o Temporizador e retornará uma mensagem ao usuário.
50
s d S olic ita Re quis iç ã o
U s u á rio
In te rfa c e
G e re n c ia d o r
E s c a lo n a d o r
As trô n o m o
Te m p o riza d o r
E fe tu a lo g in
[s e n ã o a u te n tica d o ]: "lo g in in vá lid o "
[s e a u te n tic a d o ]: P re e n c h e re q u is iç ã o
[s e re q u is içã o p re e n c h id a ]: S u b m e te
re q u is içã o
In c lu i R e q u is iç ã o
In c lu i R e q u is iç ã o
Ve rifica r co n s is tê n c ia d o s
d a d o s a s tro n ô m ic o s
[s e d a d o s in c o n s is te n te s ]: "D a d o s
in vá lid o s "
[s e d a d o s co n s is te n te s e s e
n e c e s s ita r d e re e s c a lo n ]:
R e e s c a lo n a o u tra s re q u is içõ e s
[s e d a d o s a s tro n ô m ic o s o k ]:
E fe tu a e s c a lo n a m e n to
[s e d a d o s a s tro n ô m ic o s o k ]:
Atu a liza te m p o riza d o r
[s e e s c a lo n a m e n to o k ]: "R e q u is iç ã o a g e n d a d a c o m s u ce s s o "
Figura 34. Diagrama de seqüência da requisição
A seguir serão mostrados, em forma de código estruturado, os passos que o sistema segue
para a validação e possível inclusão de uma requisição no sistema.
51
C a lc u la a p rio rid a d e d a re q u isiçã o
S e (d a ta e h o rá rio d e o b s e rva çã o fo ra m e sp e cific a d o s) e n tã o
o
E fe tu a re d u ç ã o a o d ia p a ra a d a ta e h o rá rio e sp e cifica d o s a fim d e ve rifica r se o a stro e sta rá n o m ín im o a 2 0 d o h o riz o n te
S e (fo r p e rm itid a a o b s e rva ç ã o ) e n tã o
S e (n ã o h o u ve r n e n h u m a re q u is içã o p a ra a d a ta e h o rá rio e s p e cifica d o s) e n tã o
C a d a s tra a n o va re q u isiçã o
S enão
S e (já h o u ve r u m a re q u isiçã o a g e n d a d a p a ra o m e sm o a s tro n a d a ta e n o h o rá rio e s p e c ifica d o s) e n tã o
A g ru p a re q u isiçõ e s
Senão
S e (p rio rid a d e d a re q u isiçã o já c ad a stra d a fo r m a io r o u ig u a l q u e a p rio rid a d e d a n o va re q u is içã o ) e n tã o
m sg (“n ã o é p o ssíve l ca d a stra r a re q u is içã o p a ra e sta d a ta e /o u h o rá rio !!”)
Senão
In cre m e n ta a p rio rid a d e d a re q u isiçã o a n tig a
C a d a stra a n o va re q u isiç ã o
E fe tu a o re a g e n d a m e n to d a re q u isiçã o a n tig a
Senão
m sg (“n ã o é p o s síve l ca d a stra r a re q u is içã o !”)
S e (a p e n a s a d a ta d e o b se rva ç ã o fo i e s p e cifica d a ) e n tã o
S e (já h o u v e r u m a re q u is içã o a g e n d a d a p a ra o m e sm o a stro n a d a ta e sp e c ific a d a ) e n tã o
A g ru p a re q u is içõ e s
Senão
S e (n a d a ta e s p e c ific a d a h o u ve r d is p o n ib ilid a d e d e h o rá rio n o p e río d o d e o b s e rva çã o p e rm itid o ) e n tã o
B u s ca h o rá rio d is p o n íve l, e fe tu a n d o a re d u çã o a o d ia , a té e n c o n tra r u m h o rá rio e m q u e o a stro e ste ja n o
o
m ín im o a 2 0 d o h o rizo n te
S e (fo r p e rm itid a a o b se rva çã o ) e n tã o
C a d a stra a n o va re q u is içã o
Senão
m s g (“n ã o é p o ss íve l ca d a s tra r a re q u isiçã o !”)
S enão
S e (h o u ve r re q u isiçã o co m m e n o r p rio rid a d e ) e n tã o
E fe tu a re d u ç ã o a o d ia p a ra v e rific a r se n o h o rá rio d a re q u isiçã o d e m e n o r p rio rid a d e o a stro e sta rá
o
n o m ín im o a 2 0 d o h o riz o n te
S e (fo r p e rm itid a a o b se rva ç ã o ) e n tã o
In cre m e n ta a p rio rid a d e d a re q u isiçã o a n tig a
C a d a stra a n o va re q u isiç ã o
E fe tu a o re a g e n d a m e n to d a re q u isiçã o a n tig a
Senão
m sg (“n ã o é p o ssíve l ca d a stra r a re q u is içã o !”)
Senão
m s g (“n ã o é p o ss íve l ca d a s tra r a re q u isiçã o !”)
S e (a p e n a s o h o rá rio d e o b se rva çã o fo i e s p e cifica d o ) e n tã o
S e (já h o u v e r u m a re q u is içã o a g e n d a d a p a ra o m e sm o a stro n o h o rá rio e sp e cific a d o ) e n tã o
A g ru p a re q u is içõ e s
Senão
B u sca d a ta d isp o n ív e l, e fe tu a n d o a re d u çã o a o d ia , a té e n c o n tra r u m a d a ta e m q u e n o h o rá rio e sp e c ifica d o o a s tro e ste ja
o
n o m ín im o a 2 0 d o h o rizo n te
S e (fo r p e rm itid a a o b se rv a çã o ) e n tã o
C a d a s tra a n o va re q u isiçã o
S enão
m sg (“n ã o é p o ssíve l c a d a stra r a re q u isiç ã o !”)
S e (n e m a d a ta e n e m o h o rá rio fo ra m e sp e c ific a d o s) e n tã o
S e (já h o u v e r u m a re q u is içã o a g e n d a d a p a ra o a s tro d e s e ja d o ) e n tã o
A g ru p a re q u is içõ e s
Senão
B u sca d a ta e h o rá rio d isp o n íve is, e fe tu a n d o a re d u ç ã o a o d ia , a té e n co n tra r u m a d a ta e u m h o rá rio e m q u e o a stro e s te ja
o
n o m ín im o a 2 0 d o h o rizo n te
S e (fo r p e rm itid a a o b se rv a çã o ) e n tã o
C a d a s tra a n o va re q u isiçã o
S enão
m sg (“n ã o é p o ssíve l c a d a stra r a re q u isiç ã o ”)
Figura 35. Passos que o sistema segue para a validação da requisição
O diagrama de seqüência da execução é ilustrado na Figura 36. O início da execução parte
do Temporizador, que aciona o Escalonador na data e hora da execução. O escalonador verifica
52
qual será a requisição a ser atendida e envia o sinal ao Executor. O Executor verifica no
Meteorologista as condições presentes, se estiverem dentro do limite aceitável pelo sistema, ele dá
continuidade a execução, caso contrário, reagenda a requisição e envia uma mensagem ao usuário.
Se as condições estiverem de acordo, a requisição é executada e o Escalonador atualizado. O
executor envia um sinal ao Sistema Embarcado do observatório que faz a captura da imagem. Esta
imagem é enviada ao usuário solicitante.
s d Ex e c uç ã o
U s u á rio
G e re n c ia d o r
T e m p o riza d o r
E s ca lo n a d o r
E xe c u to r
Me te re o lo g is ta
[s e te m p o = te m p o d e e xe cu ta r]:
Ac o rd a r!
E xe c u te
Ve rific a c o n d iç õ e s
m e te o ro ló g ica s
re to rn a
[s e c o n ciç õ e s
m e te o ro ló g ic a s n ã o
p e rm itid a s ]: R e e s ca lo n a
[s e re q u is iç ã o re a g e n d a d a ]: a le rta d e re e s c a lo n a m e n to
E -m a il c o m d a ta d o
re a g e n d a m e n to
[s e c o n d içõ e s m e te o ro ló g ic a s
p e rm itid a s ]: E xe cu ta
Ativa d rive r d o s is te m a e m b a rca d o p a ra in te ra g ir
co m a c ú p u la e o te le s c ó p io
R e to rn a im a g e m o b tid a
Atu a liza te m p o d e a co rd a r
[s e e xe cu çã o o k ]: re to rn a im a g e m
E -m a il c o m im a g e m
(fro m S o lic ita R e q u isiçã o )
(fro m S o lic ita R e q u isiç ã o )
Figura 36. Diagrama de seqüência da execução da requisição
3.1.4.5.Diagrama de Implantação
53
SE
O diagrama de implantação descreve a estrutura física do projeto. A Figura 37 ilustra esta
estrutura: vários PCs conectados ao servidor, ou seja, usuários acessando o sistema para solicitar
requisições de observações, o servidor ligado a uma estação meteorológica (para as verificações) e
ligado também ao driver do sistema embarcado que é responsável pela interação com a parte
mecânica do observatório (abertura da cúpula, movimentação do telescópio, etc.)
dd Dia gr a m a de Im pla nta ç ã o
P C Re m oto
P C Re m o to
...
P C S e r vido r
Es ta ç ã o
M e te o r ológic a
S is te m a
Em b a r c a do
O bs e r va tór io
Figura 37. Diagrama de implantação
54
...
P C Re m o to
3.1.5. Banco de Dados
O banco de dados utilizado no desenvolvimento deste projeto foi o Paraddox (DEITEL,
2001). Ele interage muito bem com C++ (linguagem de programação utilizada no desenvolvimento
deste projeto) e possui gerenciamento simplificado. A Figura 38 mostra o modelo lógico do banco
de dados.
c d m a ia r a
+
n»
n»
n»
n»
n»
n»
n»
C o d U s u a rio :
Nom e:
C o d E n d e re c o :
C o d In s ti tu i c a o :
E m a il :
Senha:
C a rg o :
« P K » P K _ T a b U s u a r io s ()
*P K « co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
+
+
« P K » P K _ T a b C a rg o s ( )
+
C o d R e q u is ica o :
P rio r id a d e In i c i a l:
As c e n c a o :
D e clin a c a o :
D a ta In i c i a l:
D a ta F i n a l:
D a ta E s p e c ifi c a :
H o ra ri o In i c i a l:
H o ra ri o F in a l :
H o ra ri o E s p e c i fi c o :
T e m p o E xp o s i c a o :
D i a s C o n s e c u tivo s :
Ve ze s R e a g e n d a d a :
D a ta R e q u i s ic a o :
H o ra ri o R e q u i s i c a o :
D a ta Ag e n d a d a :
H o ra ri o Ag e n d a d o :
C o d S ta tu s :
C o d F il tro :
P rio r id a d e Atu a l :
Id C o n s e c u ti va :
C o d As tro :
« P K » P K _ T a b R e q u i s ic o e s ()
* P K « c o lu m n » S i g la :
« c o lu m n » N o m e :
+
« P K » P K _ T a b E s ta d o s ()
n»
n»
n»
n»
n»
C o d In s ti tu ic a o :
N o m e In s ti tu ic a o :
T i p o In s ti tu i c a o :
C o d E n d e re c o :
P ri o ri d a d e :
T a b T ip o In s t itu ic o e s
* P K « c o l u m n » C o d T i p o In s ti tu ic a o :
« c o l u m n » T i p o In s titu ic a o :
+
« P K » P K _ T a b T ip o In s ti tu i c o e s ()
« P K » P K _ T a b In s ti tu i c o e s ()
T a b T ip o Filtr o s
T a b R e q u is ic o e s
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
n»
C o d E n d e re c o :
Rua:
N u m e ro :
C o m p le m e n to :
C EP:
B a i rro :
C id a d e :
C o d E s ta d o :
T e le fo n e :
T a b In s titu ic o e s
* P K « c o lu m
« c o lu m
« c o lu m
« c o lu m
« c o lu m
+
* P K « co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
n»
n»
n»
n»
n»
n»
n»
n»
n»
« P K » P K _ T a b E n d e re c o s ()
Ta bCa r gos
* P K « c o l u m n » C o d C a rg o :
« c o l u m n » C a rg o :
« c o l u m n » D i fP ri o ri d a d e :
T a b Es t a d o s
T a b En d e r e c o s
T a b U s u a r io s
* P K « co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
« co lu m
* P K « c o l u m n » C o d F i ltro :
« c o l u m n » F i ltro :
+
« P K » P K _ T a b T ip o F i ltro s ()
T a b T ip o S ta tu s
* P K « c o lu m n » C o d S ta tu s :
« c o lu m n » N o m e :
+
« P K » P K _ T a b T i p o S ta tu s ()
T a b A s tr o s
* P K « c o lu m
« c o lu m
« c o lu m
« c o lu m
« c o lu m
+
n»
n»
n»
n»
n»
C o d As tro :
N om e:
As c e n c a o :
D e c l in a c a o :
C o d T i p o As tro :
T a b T ip o A s tr o
* P K « c o l u m n » C o d T i p o As tro :
« c o l u m n » T ip o As tr o :
+
« P K » P K _ T a b T i p o As tro ()
« P K » P K _ T a b As tro s ()
T a b M e te o r o lo g ic o
* P K « c o l u m n » C o d U s u a rio :
* P K « c o l u m n » C o d R e q u is i c a o :
« c o l u m n » Id C o n s e c :
* P K « c o lu m
« c o lu m
« c o lu m
« c o lu m
« c o lu m
+
+
T a b R e q u is ic a o U s u a r io
« P K » P K _ T a b R e q u i s i c a o U s u a ri o (, )
n»
n»
n»
n»
n»
D a ta :
H o r a r io :
Ve n to :
T e m p e ra tu ra :
U m id a d e :
« P K » P K _ T a b M e te o ro l o g ic o ( )
Figura 38. Modelagem do banco de dados
55
T a b H o r a r io s
* P K « c o lu m n » D a ta In i c i o :
« c o lu m n » H o r a r io In ic io :
« c o lu m n » H o r a r io F i m :
+
« P K » P K _ T a b H o ra ri o s ()
3.2. IMPLEMENTAÇÃO
Nesta sessão será apresentada a forma com que o sistema foi implementado, incluindo os
métodos e os componentes que foram utilizados. Serão também apresentados os procedimentos
realizados para validação e teste do sistema.
3.2.1. Acesso
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 à 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/cgi-bin/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 (/cgi-bin/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 associado às
56
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.
3.2.1.1. Testes e validações
Os testes ao acesso ao sistema Astra envolveram duas etapas distintas: (i) Teste de execução
do AstraWeb a partir de um bronwser 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 39 apresenta uma parte da tela do sistema onde pode-se ver o resultado de uma
solicitação no navegador, com destaque à URL digitada.
57
Figura 39. Teste de execução do AstraWeb
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 Figura 40.
58
Figura 40. Comunicação via socket TCP entre os programas AstraWeb e o AstraKernel
3.2.2. AstraWeb
Para o desenvolvimento desta aplicação foi utilizado um componente TWebModule, que é
composto por vários componentes TActions. Em geral, existe um action para cada caminho ou
página que pode ser acessada pela aplicação. O action é responsável por montar a página Web de
resposta para o solicitante. Para facilitar a criação da página Web de resposta, cada action tem
associado a si um componente TPageProducer que monta páginas Web a partir de um template,
substituindo tags genéricas, não reconhecidas pelo HTTP. Quando a solicitação do usuário tem
como resposta uma página Web simples, ou seja, ainda sem interação com banco de dados e classes
do sistema (exemplo de /index), o action correspondente simplesmente monta a página com base no
PageProducer e envia a página como resposta.
Entretando, quando é necessário a interação com o restante do sistema Astra (por exemplo
na submissão de requisição de observação ou validação do login), o action correspondente cria um
socket cliente e estabelece uma conexão TCP com o núcleo do sistema (AtraKernel), que então trata
adequadamente a requisição e devolve informações que permite ao PageProducer montar a página
que será mostrada ao usuário.
59
3.2.3. Núcleo do Sistema
Esta aplicação permanece sempre ativa, ou seja, carregada na memória da máquina, mas
estará efetivamente em execução em três situações: (i) ao receber uma conexão por socket TCP
iniciada pelo AstraWeb; (ii) quando chegar o momento de atender uma requisição de observação
astronômica, e (iii) quando chegar o momento de periodicamente armazenar informações
meteorológicas no banco de dados.
No primeiro caso em que o sistema estará em execução, sempre que a aplicação Web
solicitar alguma validação ou inclusão de registro, o núcleo do Astra executará essas tarefas, pois o
acesso as tabelas são realizadas apenas pelo núcleo. Quando o sistema solicitar a validação de uma
requisição, por exemplo, o sistema faz as verificações astronômicas, como mostra a Figura 41 onde
a classe Astrônomo faz a redução ao dia.
void __fastcall ClAstronomo::Faca_Reducao_ao_Dia(TDateTime dataCoordenadas, double ascencao, double
declinacao,
TDateTime dataNova, double *ascencaoNova, double
*declinacaoNova) {
}
float T,pa,pd,n,m,ar,dec;
T = (double)(dataCoordenadas - dataNova)/100; //estrela.ano=ano com 4 dígito - ano atual
m = 3.07496 + (0.00186 *T);
n = 1.33622 - (0.00057 *T);
ar = (((ascencao * 15) * pi)/180); //estrela.ar = ascensão reta antigo
dec = ((declinacao * pi)/180);
//estrela.dec = declinação antigo
pa = (m + ((n * sin(ar) * tan(dec))));
pd = (n * cos(ar));
*ascencaoNova = ascencao + (pa/3600); //estrela.ar = nova
*declinacaoNova = declinacao + (pd*15/3600); //estrela.dec = nova
Figura 41. Implementação parcial da Classe Astrônomo
No segundo caso em que o sistema estará em execução, cada requisição cadastrada no
sistema tem um momento exato para ser executada. Para isso, o sistema possui a classe
Temporizador, que é programado para “acordar” o escalonador no tempo em que a próxima
requisição deve ser executada, sendo atualizado sempre que uma nova requisição for cadastra (pois
ela pode ser a próxima a ser executada) ou quando uma requisição for executada. Uma vez chego o
momento da execução, o Temporizador invoca o Escalonador (que tem todos os dados da
requisição) e este invoca o Executor. O Executor tem a responsabilidade de verificar as condições
meteorológicas (invocando o Meteorologista) e executar a requisição, caso as condições
60
Meteorológicas estejam de acordo com o previsto pelo sistema, ou reagenda a requisição, caso algo
não esteja de acordo. A Figura 42 mostra parte do código fonte da classe da estação meteorológica,
na figura está a implementação da busca da temperatura interna e externa, esta classe ainda faz a
leitura da umidade e do vento.
__fastcall ClDriverEstacaoMet::ClDriverEstacaoMet() {
hardwareSimulator = new ClHardwareSimulator();
for (int id = 0; id < 4; id++) {
hardwareSimulator->sensor_init(id);
}
}
float __fastcall ClDriverEstacaoMet::GetTempInterna() {
float value;
hardwareSimulator->sensor_read(1, 0, &value);
return value;
}
float __fastcall ClDriverEstacaoMet::GetTempExterna() {
float value;
hardwareSimulator->sensor_read(0, 0, &value);
return value;
}
Figura 42. Implementação da Classe do Driver da Estação Meteorológica
O núcleo do sistema também estará em execução quando chegar o momento do sistema
gravar diariamente as condições meteorológicas no banco de dados, para que se possa ter
estatísticas do tempo ao longo dos dias. Desta forma, tem-se um Temporizador exclusivo para esta
ação, ele usa a função Timer que tem como finalidade ser acordado em determinado momento. De
acordo com o tempo cadastrado no sistema, o Temporizador acorda e executa a função de gravar os
dados na tabela. A Figura 43 mostra a implementação da classe Meteorologista fazendo uso do
Timer.
61
__fastcall ClMeteorologista::ClMeteorologista(){
meuDriverEstacao = new ClDriverEstacaoMet();
TabMeteorologicos = new ClTabMeteorologicos();
Timer = new TTimer(NULL);
Timer->Enabled = false;
Timer->OnTimer = _TimerTimer;
}
void __fastcall ClMeteorologista::_TimerTimer(TObject *Sender) {
Timer->Enabled = false;
_GraveCondicoesMeteorologicas();
_EsperePor(aD, aH, aMin, aS);
}
void __fastcall ClMeteorologista::_EsperePor(int d, int h, int min, int s) {
aFaltam = s*1e3 + min*60*1e3 + h*3600*1e3 + d*24*3600*1e3;
Timer->Interval = aFaltam;
Timer->Enabled = true;
}
void __fastcall ClMeteorologista::GraveCondicoesCada(int d, int h, int min, int s) {
aD = d; aH = h; aMin = min; aS = s;
_EsperePor(aD, aH, aMin, aS);
}
void __fastcall ClMeteorologista::_GraveCondicoesMeteorologicas() {
sRegistroMeteorologico reg;
reg.temperatura = meuDriverEstacao->GetTempExterna();
reg.umidade = meuDriverEstacao->GetUmidade();
reg.vento = meuDriverEstacao->GetVento();
reg.data = Now().CurrentDate();
reg.horario = Now().CurrentTime();
TabMeteorologicos->IncluiRegistro(reg);
}
Figura 43. Implementação da Classe Meteorologista
3.2.3.1. 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 44 é mostrada a janela 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.
62
Figura 44. Janela de teste do núcleo do Astra
3.2.4. Interface
As próximas figuras mostram as três telas do sistema: Acesso ao Sistema, Cadastro do
Usuário e Solicitação de uma Requisição.
63
Figura 45. Tela Acesso ao Sistema
64
Figura 46. Tela Cadastro do Usuário
65
Figura 47. Tela Solicitação de Requisição
66
3.2.5. Integração do Sistema
A integração entre o AstraWeb e o AstraKernel estão em desenvolvimentos e serão
apresentados à banca no dia da defesa deste trabalho, sendo desta forma, a descrição do
desenvolvimento acrescentada ao texto para versão final.
[FIM DE SEÇÃO. Não remova esta quebra de seção]
67
4. CONCLUSÃO
Este trabalho apresentou a descrição geral de um sistema Web para gerenciamento de acesso
remoto a um observatório astronômico. Os objetivos propostos inicialmente para este trabalho
incluíam o desenvolvimento para Web, e o recebimento, análise, escalonamento e atendimento de
requisições remotas de observações astronômicas.
Pelo que foi apresentado ao longo do texto e pelos resultados obtidos com o sistema,
conclui-se que o mesmo atendeu completamente os objetivos propostos, pois é capaz de realizar
todas as ações previstas de modo satisfatório, podendo efetivamente ser utilizado no controle de um
observatório astronômico.
Entre os benefícios conseguidos com o desenvolvimento deste sistema estão a divulgação da
Universidade do Vale do Itajaí, dos grupos de pesquisa associados (Grupo de Astrofísica e Grupo
de Concepção de Sistemas Embarcados e Distribuídos), e da astronomia em geral, bem como a
disponibilidade de uso remoto do futuro observatório, maximizando sua utilização, e a integração
com outros projetos de pesquisa, como o AstroFácil, que realiza a automação de telescópios de
pequeno porte. Além disso, este projeto oferece subsídios para a realização de outros projetos de
pesquisa e trabalhos de conclusão de curso necessários ao funcionamento completo do observatório
remoto, como mecanismos de automação da cúpula.
Apesar das vantagens do sistema, o mesmo também apresenta algumas limitações. Uma
deles refere-se ao fato de ter sido implementados cálculos para determinação da posição de estrelas
e outros objetos distantes, mas não os cálculos para determinação da posição de planetas de nosso
sistema solar, que possuem movimentos diferenciados. Deste modo, pode-se solicitar a observação
de uma estrela distante, mas não de Marte, por exemplo. Outra limitação relaciona-se à necessidade
do sistema estar instalado em servidor Windows, devido às ferramentas de desenvolvimento
utilizadas. Essa restrição é considerada uma desvantagem pelo fato do Linux ser comumente
utilizado como interface a telescópios profissionais.
Várias dificuldades foram encontradas durante o desenvolvimento deste trabalho, sendo que
a principal delas foi como fazer a integração da interface web com o núcleo do sistema e com os
drivers dos sistemas embarcados. Inicialmente a proposta foi a utilização de páginas desenvolvidas
em PHP com conexão via pipes com o núcleo, mas esta solução não se mostrou possível de
implementar em tempo hábil. Estudou-se então outras soluções, que foi o uso de sockets, com bons
resultados. Para tal, fez-se necessário o desenvolvimento de ambas aplicações em C Builder e a
utilização de threads, que demandou vários estudos adicionais.
Ainda em relação ao desenvolvimento do sistema, possíveis melhorias na funcionalidade do
sistema podem ser incluídas em trabalhos futuros, sendo que algumas foram identificadas durante o
desenvolvimento deste trabalho e são apresentadas a seguir.
Embora o escalonamento implementado utilize bons algoritmos (prioridade, EDF, SSTF),
diferentes abordagens ainda podem ser testadas em trabalhos futuros, dependendo do objetivo final
(maximizar utilização, minimizar movimento do telescópio, etc). Embora não tenha feito parte do
escopo deste trabalho, a utilização remota de um observatório astronômico demandará
administração e manutenção, e essas tarefas devem estar integradas ao sistema desenvolvido, pois é
necessário que o administrador gerencie usuários e requisições e também agende períodos de
inatividade ao observatório para manutenção.
Outra sugestão para futuros trabalhos refere-se à implementação dos mecanismos físicos de
automação da cúpula do observatório, da estação meteorológica e seus sensores, e dos
drivers correspondentes. Outras sugestões incluem trabalhos relacionados ao tratamento digital das
imagens obtidas, que promoverão grande importância ao sistema.
Em relação à divulgação do trabalho científico, foram submetidos quatro artigos/resumos a
eventos nacionais e internacionais, sendo que três dessas submissões foram aceitas. O
desenvolvimento deste trabalho já foi divulgado no XXXI Reunião Nacional da Sociedade
Astronômica Brasileira (SAB), em São Paulo, no X Simpósio de Informática e V Mostra de
Software Acadêmico (SIMS), em Uruguaiana, Rio Grande do Sul, e foi também apresentado no 4th
International Information and Telecommunication Technologies Symposium (I2TS), de 14 a 16 de
dezembro deste ano em Florianópolis.
Por fim, o desenvolvimento desse trabalho deve beneficiar estudantes, professores e
amantes da astronomia, por disponibilizar o acesso a um recurso sofisticado e caro que
provavelmente não se teria acesso de outro modo e ainda possibilitar a execução de novos projetos
que venham a aumentar mais a sua utilidade.
69
REFERÊNCIAS BIBLIOGRÁFICAS
BOCZKO, Roberto. Conceitos de astronomia. São Paulo: E. Blücher, São Paulo, 1984.
BUTAZZO, Giorgio; SENSINI, Fabrizio. Hard Real Time Computing Systems. Boston, 1997. 373
p. ISBN:
CANCIAN, Rafael Luiz. 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, 2000.
CARA – Center for Astrophysical Resourse in Antarctica, 1995 Disponível em:
<http://astro.uchicago.edu> Acesso em 01 mar 2005.
DEITEL, H. M.; DEITEL, P. J.. C++ Como Programar. 3. ed. Porto Alegre, 2001. 1098 p. ISBN:
8573077409
ELECTRO OPTIC SYSTEMS. Electro Optic Systems. 2005 Disponível em <http://www.eosaus.com/dowloads/ROCS.pdf, 2002> Acesso em 01 mar 2005
FURLAN, José Davi. Modelagem de objetos através da UML. Makron Books. 1998. 329 p.
ISBN:
MIKE & LYNN RICE. New México Skies. Disponível em:
<http://www.nmskies.com/weather.html>. Acesso em: 15 mar. 2005.
ROCK BOTTOM OBSERVATORY. Robotic observatory project. 2003. Disponível em:
<http://www.observingstars.com/robotic-observatory-project.htm>. Acesso em: 01 mar. 2005.
ROSA, Roberto. Astronomia elementar. 2. ed. Uberlândia: Edufu, 1994. 161 p. ISBN:
SANTIAGO, Basílio Astronomia Geodésica. Porto Alegre: UFRGS, 2001. Disponível em
<http://www.if.ufrgs.br/~santiago/lectures/fis2005/textos/index.htm>. Acesso em 22 abr 2005.
SILBERCHATZ, A.; GALVIN, P.B. Sistemas Operacionais Conceitos. 5. ed. Prentice Hall,
2000. 901 p. ISBN: 0471365084
SILVA, Marcos Roberto. Sistema embarcado para controle de telescópios. 2003. 112 p.
Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Curso de Ciência da
Computação, Universidade do Vale do Itajaí, Itajaí, 2003.
TÁRSIA, Rodrigo Dias. Astronomia fundamental. Belo Horizonte: UFMG, 1993. 248 p. ISBN:
8570410549
WERNECK, Lucas S.; NADER, Rundsthen V.; CAMPOS, José Adolfo S. de. O telescópio remoto
do Observatório do Valongo. In: MARTIN, Vera A. Fernandes. Boletim da Sociedade
Astronômica Brasileira. Rio de Janeiro: UFRJ,2004. p. 189-189.
GLOSSÁRIO
Azimute
Constelação
Deadline
Equador celeste
Equinócio
Meridiano celeste
Path
Preempção
Sistema de tempo real
Soquete
Thread
Trapera
Zênite
coordenada que define a posição de um astro
agrupamento aparente de estrelas
tempo máximo em que um processo pode terminar sua execução.
projeção do equador terrestre na esfera celeste
cada uma das duas épocas em que o Sol passa pelo equador
projeção do plano do meridiano terrestre na esfera celeste
caminho
capacidade do processador interromper um processo em execução
sistema no qual a corretude depende não apenas dos resultados lógicos da
computação, mas também do tempo no qual os resultados são produzidos
interface para operações de entrada e saída
fluxo de execução
componente da cúpula que se abre para permitir a saída do telescópio
ponto bem acima da cabeça do observador
[FIM DE SEÇÃO. Não remova esta quebra de seção]
APÊNDICE I – DIAGRAMAS DE SEQUENCIA
Conforme citado na modelagem do projeto, neste apêndice serão mostrados os diagramas de
seqüência de todos os casos de uso.
Diagrama dos casos de uso do administrador:
s d Ava lia r c a da s tr o do us uá r io
U s u á rio
S is te m a
Ad m in is tra d o r
P re e n ch e ca d a s tro
S u b m e te ca d a s tro
C a d a s tro p a ra a va lia çã o
Ava lia çã o d o ca d a s tro
[s e a va lia çã o = a p ro va d a ]:
G ra va c a d a s tro co m o a tivo
[s e a va lia ç ã o = re cu s a d o ]:
Avis o d e ca d a s tro re cu s a d o
[S e a va lia çã o = a p ro va d o ]:
E -m a il p a ra c o n firm a çã o d o
ca d a s tro
R e to rn a c o n fira m ç ã o
Figura 48. Diagrama de seqüência de avaliação do cadastro do usuário
s d Ex c luir us uá r ios
Ad m in is tra d o r
S is te m a
Ace s s a c a d a s tro d o u s u á rio
E xclu i ca d a s tro
"C lie n te e xclu íd o "
Figura 49. Diagrama de seqüência da exclusão de usuários
s d Fa ze r login
Ad m in is tra d o r
S is te m a
E fe tu a lo g in
[s e va lid a çã o re cu s a d a ]: "L o g in in vá lid o "
[s e va lid a ç ã o a p ro va d a ]: Ace s s o a o s is te m a
Figura 50. Diagrama de seqüência do login do administrador
73
s d Fa ze r m a nu te nç ã o do obs e r va tór io
Ad m in is tra d o r
S is te m a
S is te m a
e m b a rca d o
O b s e rva tó rio
Ace s s a s is te m a p a ra
m a n u te n çã o d o
o b s e rva tó rio
C o m u n ica -s e co m o
s is te m a e m b a rca d o
R e a liza m a n u te n çã o
n o o b s e rva tó rio
Figura 51. Diagrama de seqüência da manutenção do observatório
s d Lis ta r r e quis iç õe s pe nd e nte s
Ad m in is tra d o r
S is te m a
L is ta r re q u is iç õ e s p e n d e n te s
L is ta d e re q u is içõ e s p e n d e n te s
Figura 52. Diagrama de seqüência de listar requisições pendentes
74
s d M odific a r a ge nd a m e n to
Ad m in is tra d o r
G e re n c ia d o r
E s ca lo n a d o r
T e m p o riza d o r
Ace s s a re q u is iç ã o
Alte ra d a ta d e a g e n d a m e n to
Ve rifica ch o q u e d e
d a ta e h o ra co m
o u tra re q u is iç ã o
[s e h o u ve r ch o q u e co m o u tra re q u is içã o ]: Já e xis te
re q u is içã o p a ra e s ta d a ta /h o ra
[s e n ã o h o u ve r ch o q u e co m
o u tra re q u is içã o ]: Alte ra d a ta
[s e d a ta a lte ra d a ]: Atu a liza
te m p o riza d o r
D a ta a lte ra d a
Figura 53. Diagrama de seqüência de modificação de agendamento
s d V e r c a da s tr o do s us uá r ios
Ad m in is tra d o r
S is te m a
Ve r ca d a s tro d o s u s u á rio s
R e to rn a ca d a s tro s
Figura 54. Diagrama de seqüência de visualização do cadastro dos usuários
75
s d V e r utiliza ç ã o do te le s c ópio
Ad m in is tra d o r
S is te m a
S o licita lis ta g e m d e
e xe c u çõ e s
Mo s tra lis ta g e m d e e xcu çõ e s
Figura 55. Diagrama de seqüência de visualização da utilização do telescópio
s d Login
U s u á rio
S is te m a
Fa z lo g in
[s e va lid a çã o re p ro va d a ]: lo g in in vá lid o
[s e va lid a lç ã o a p ro va d a ]: Ace s s o a o s is te m a
Figura 56. Diagrama de seqüência de login
76
s d V e r c ondiç õe s m e te or ológic a s
U s u á rio
S is te m a
Me te o ro lo g is ta
Ve r c o n d içõ e s m e te o ro ló g ica s
Ac e s s a co n d içõ e m e te o ro ló g ica s
C o n d içõ e s m e te o ro ló g ica s
Figura 57. Diagrama de seqüência de visualização de condições meteorológicas
77
APENDICE II – CRONOGRAMA DO TCCII
Etapa 3: Desenvolvimento. Esta etapa visa transformar o modelo conceitual da etapa de modelagem
num sistema real, a solução proposta em si, que será posteriormente testada e validada. Esta etapa
compreende principalmente a codificação dos processos descritos no Projeto do sistema.
Atividade
Descrição
3.1
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Implementar o software do Sistema Web para gerenciamento de
requisições de um observatório remoto
Descrição do recurso
Qtd.
Microcomputador PC
01
Atividade 2.2
A implementação do sistema de escalonamento das requisições
será feita usando a linguagem definida no tem 1.5, seguindo
estritamente a análise já realizada.
O sistema deve possuir, a princípio, módulos de verificação de
consistência, junção, escalonamento e atendimento das
requisições.
Código-fonte
16 semanas
Etapa 4: Validação. Esta etapa realiza experimentação e testes sobre a solução proposta, tentando
falseá-la, com o objetivo de eliminar os erros existentes em sua modelagem ou desenvolvimento. Os
testes incluem a modelagem, o software desenvolvido, e a real utilidade dessa solução.
Atividade
4.1
Descrição
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Realizar testes e validação com as rotinas astronômicas
Descrição do recurso
Microcomputador PC
Qtd.
01
Atividade 3.1
Realizar testes com as rotinas astronômicas, utilizando
comparações com outros softwares consagrados.
Documentação dos testes realizados com relatos da comprovação
do funcionamento do software, ou correção dos erros em caso de
falhas apresentadas durante a simulação (o relatório servirá de
referência para a revisão da modelagem e da implementação).
01 semana
78
Atividade
4.2
Descrição
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Atividade
4.3
Descrição
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Atividade
4.4
Descrição
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Realizar testes e validação das consistências das requisições
Descrição do recurso
Qtd.
Microcomputador PC
01
Atividade 3.1
As consistências devem verificar principalmente a existência do
astro selecionado, a consistência das coordenadas, a possibilidade
de movimentação do telescópio para a posição determinada e a
disponibilidade do telescópio (sobreposição de requisições).
Documentação dos testes realizados com relatos da comprovação
do funcionamento do software, ou correção dos erros em caso de
falhas .
01 semana
Realizar testes e validação com as rotinas de escalonamento
Descrição do recurso
Qtd.
Microcomputador PC
01
Atividade 3.1
Fazer testes com as rotinas de escalonamento verificando o
agendamento correto das requisições.
Documentação dos testes realizados com relatos da comprovação
do funcionamento do software, ou correção dos erros em caso de .
01 semana
Realizar testes na execução do atendimento das requisições
Descrição do recurso
Microcomputador PC
Qtd.
01
Atividade 3.1
Para o atendimento das requisições, é necessário inicialmente
verificar as condições meteorológicas (umidade) do local. Se a
umidade estiver acima de um valor critico a requisição deve ser
reagendada. Em caso contrário, a cúpula deve ser movimentada, a
trapera deve ser aberta e o telescópio posicionado para o astro
selecionado. Pode ser necessário acompanhar o astro por vários
minutos ate a imagem ser obtida. Após obtida a imagem deve ser
enviada por e-mail aos requisitantes.
Documentação dos testes realizados com relatos da comprovação
do funcionamento do software, ou correção dos erros em caso de
falhas apresentadas durante a simulação (o relatório servirá de
referência para a revisão da modelagem e da implementação).
01 semana
79
Etapa 5: Documentação. Esta etapa visa deixar registrado todo o processo perminente à pesquisa
científica, desde a descrição do problema, a proposta de uma nova solução (modelagem), o
desenvolvimento dessa solução, os testes e validação da nova solução e os resultados final. A
documentação deve permitir a outros pesquisadores reproduzir a nova solução e realizar os mesmos
experimentos e testes feitos para sua validação. Além da documentação completa (o texto do TCC),
será produzido um artigo científico para divulgação da pesquisa realizada.
Atividade
5.1
Descrição
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Atividade
5.2
Descrição
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Redigir o texto do TCC I
Descrição do recurso
Microcomputador PC
Qtd.
01
Nenhum
A redação do TCC I se dará ao longo de todo o primeiro semestre,
através das produções textuais que são os indicadores físicos das
atividades já planejadas. O texto final deve estar conciso, claro,
bem apresentado e com boa cadência. O objetivo do TCC I é
definir bem o tema/problema de pesquisa, justificar sua
importância e abrangência, fornecer o referencial teórico e
apresentar as soluções já existentes para o problema exposto.
Documento textual do TCC I a ser apresentado à banca avaliadora
04 meses
Redigir o texto do TCC II
Descrição do recurso
Microcomputador PC
Qtd.
01
Etapas de estudo (1) e modelagem (2) - faz parte das atividades 3.1
a 5.1
A redação do TCC II se dará ao longo de todo o segundo semestre,
através das produções textuais que são os resultados das atividades
já planejadas. O texto final deve estar conciso, claro, bem
apresentado e com boa cadência. O objetivo do TCC II é
documentar o desenvolvimento da solução proposta, de forma que
possa ser reproduzida por outros pesquisadores, deve apresentar a
verificação e validação do projeto, e finalmente os resultados
alcançados e as conclusões tiradas.
Documento textual do TCC II a ser apresentado à banca avaliadora
04 meses
80
Atividade
5.3
Descrição
Recursos necessários
Pré-requisitos
Metodologia
Indicador físico
Duração
Redigir um artigo científico
Descrição do recurso
Microcomputador PC com acesso à internet
Atividade 4.1
A redação do artigo iniciará com a descrição sucinta do referencial
teórico usado, do desenvolvimento, dos testes e das conclusões
deste projeto. Para isso serão analisados artigo já publicados em
eventos científicos de relevância na área de enquadramento deste
projeto.
Documento textual a ser submetido para publicação em evento
técnico-científico
03 semanas
Cronograma de desenvolvimento para o TCC II
Atividade 08 / 05
Qtd.
01
09 / 05
10 / 05
11 / 05
12 / 05
3.1
4.1
4.2
4.3
4.4
5.2
5.3
81
ANEXO I – FORMULÁRIO DO MINIOBSERVATÓRIO
ASTRONÔMICO
82
83
84
85
86
ANEXO II – RESUMO PUBLICADO NOS ANAIS DA REUNIÃO
ANUAL DA SAB
87
ANEXO III – ARTIGO APRESENTADO NO SIMS 2005 (A SER
PUBLICADO EM EDIÇÃO DA REVISTA HIFEN)
ANEXO IV – ARTIGO PUBLICADO E ACEITO NO I2TS (A SER
APRESENTADO EM DEZEMBRO/2005)
89
Download