doc

Propaganda
Faculdade de Engenharia da Universidade do Porto
Licenciatura em Engenharia Electrotécnica e de Computadores
Projecto/Seminário/Trabalho Final de Curso
Exportação de conteúdos do SiFEUP para XML através de
uma biblioteca de definições
Gabriel António Lopes Ribeiro
Orientador do projecto: Professor Raul Moreira Vidal
Co-orientador do projecto: Engenheiro Manuel Machado
Julho 2003
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Resumo
Este relatório refere-se ao projecto “Exportação de conteúdos do SiFEUP para XML
através de uma biblioteca de definições” desenvolvido no âmbito da disciplina
Projecto/Seminário/Trabalho Final de Curso do 5º ano da Licenciatura em Engenharia
Electrotécnica e de Computadores da Faculdade de Engenharia da Universidade do
Porto.
Este projecto é uma das partes constituintes de um projecto mais vasto cujo objectivo
final é a construção de um sistema de informação para a Licenciatura em Engenharia
Informática e Computação da Faculdade de Engenharia da Universidade do Porto. O
trabalho realizado insere-se na área de sistemas de informação e consiste no
desenvolvimento de uma aplicação que permite a disponibilização de conteúdos do
SiFEUP de forma eficiente usando XML.
ii
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Agradecimentos
Professor Raul Moreira Vidal – Orientador do projecto, pelo apoio e orientação do
trabalho.
Engenheiro Manuel Machado – Responsável da Unidade de Sistemas de Informação do
CICA e co-orientador do projecto, pelas sugestões e acompanhamento do trabalho.
Professores João Correia Lopes e Augusto Sousa – Co-orientadores do projecto, pelas
sugestões e apoio dado.
Engenheiro Pedro Strecht – Especialista de Informática da Unidade de Sistemas de
Informação do CICA, pela disponibilidade e apoio na concepção do sistema.
Vítor Carvalho – Designer das páginas do SiFEUP, pelas sugestões e apoio dado na
concepção do exemplo de portal.
Todas as pessoas da Unidade de Sistemas de Informação do CICA pelas sugestões e
excelente ambiente de trabalho proporcionado.
iii
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Índice
1. Introdução __________________________________________________________ 1
1.1. Análise do Problema ______________________________________________ 1
1.2. Objectivos ______________________________________________________ 2
1.3. Definição de Requisitos ____________________________________________ 2
1.3. Escalonamento do Trabalho ________________________________________ 4
1.4. Tecnologias e Ferramentas _________________________________________ 4
2. Modelo de Dados ____________________________________________________ 5
2.1. Modelo Entidade-Associação _______________________________________ 5
2.2. Modelo Relacional ________________________________________________ 6
2.3. Criação das Tabelas na Base de Dados ________________________________ 7
3. Interface Web ______________________________________________________ 12
3.1. Interface de Administração ________________________________________ 12
3.1.1. Criação de Definições _________________________________________ 13
3.1.2. Alteração e Eliminação de Definições ____________________________ 15
3.1.3. Junções ____________________________________________________ 17
3.1.4. Geração de XML ____________________________________________ 17
3.2. Interface de Utilização ____________________________________________ 20
4. Implementação _____________________________________________________ 21
4.1. Procedimentos e Funções _________________________________________ 21
4.1.1. Aspecto da interface web ______________________________________ 21
4.1.2. Autenticação ________________________________________________ 21
4.1.3. Definições __________________________________________________ 21
4.1.4. Junções ____________________________________________________ 22
4.1.5. Geração de XML ____________________________________________ 22
4.2. Análise dos Procedimentos mais Relevantes __________________________ 22
4.2.1. Procedimento form_definicao __________________________________ 22
4.2.2. Procedimento submeter_definicao _______________________________ 23
4.2.3. Procedimento sel_definicao ____________________________________ 23
4.2.4. Procedimento form_juncao_____________________________________ 23
4.2.5. Procedimento submeter_juncao _________________________________ 24
4.2.6. Procedimento form_geraXML __________________________________ 24
4.2.7. Procedimentos gera_XML _____________________________________ 24
4.2.8. Procedimento apresenta_XML __________________________________ 25
4.3. Alguns Aspectos de Optimização de Funcionamento do Sistema __________ 25
4.3.1. Criação da Tabela PARAMETROS_GERACAO ___________________ 25
4.3.2. Cache de XML ______________________________________________ 25
5. Exemplos de Aplicação ______________________________________________ 27
5.1. XML, XSL e CSS _______________________________________________ 27
5.2. Portal LEIC ____________________________________________________ 27
5.3. Exemplo de Integração no SiFEUP __________________________________ 32
6. Conclusões ________________________________________________________ 33
6.1. Trabalho Realizado ______________________________________________ 33
6.2. Perspectivas de Evolução do Projecto ________________________________ 33
6.3. Experiência Pessoal ______________________________________________ 34
Bibliografia e Referências ______________________________________________ 35
Anexo A: Relatório de Especificação de Requisitos __________________________ 36
iv
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
1. Introdução
1.1. Análise do Problema
Este projecto tinha inicialmente como objectivo a construção de um protótipo de um
sistema de informação para uma licenciatura da Faculdade de Engenharia da
Universidade do Porto, especificamente a Licenciatura em Engenharia Informática e
Computação (LEIC). Para esse efeito foi elaborado, no âmbito deste projecto, um
relatório de especificação de requisitos que está anexo a este documento.
Um sistema de informação para uma licenciatura da Faculdade de Engenharia da
Universidade do Porto teria que ir obter grande parte da informação que necessitaria ao
Sistema de Informação Faculdade de Engenharia da Universidade do Porto (SiFEUP),
que é um repositório enorme com toda a informação relevante sobre as actividades da
Faculdade de Engenharia da Universidade do Porto, com interface web.
Devido a esta necessidade e ao facto de ser útil dotar o SiFEUP com uma forma
padronizada de fornecimento de informação, o projecto inicial foi alterado, tendo
passado a orientar-se para a construção de um módulo que permita “Exportação de
conteúdos do SiFEUP para XML através de uma biblioteca de definições”.
O trabalho foi realizado na Unidade de Sistemas de Informação, nas instalações do
Centro de Informática Professor Correia de Araújo, na Faculdade de Engenharia da
Universidade do Porto.
1
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
1.2. Objectivos
Devido à crescente necessidade de retirar informação do SiFEUP por parte de alguns
utilizadores do sistema, surge a necessidade de criar uma biblioteca de disponibilização
de conteúdos, que permita ao utilizador especificar que informação pretende obter. O
acesso a essa biblioteca deve ser feito através de uma interface de utilização prática,
libertando o utilizador da necessidade de ter conhecimentos de base de dados relacionais
para poder utilizá-la.
Outro aspecto que é necessário salvaguardar é a segurança, o utilizador não deve poder
aceder à informação sem restrições, e sim retirar do sistema apenas a informação que a
administração do mesmo disponibilize na biblioteca de conteúdos.
Neste sistema o utilizador tanto poderá ser alguém que necessita de retirar informação
do sistema ocasionalmente, como poderá ser um portal web que usa o sistema de uma
forma sistemática para obter a informação que pretende apresentar. A informação
pretendida pelo utilizador será exportada utilizando o formato XML.
1.3. Definição de Requisitos
Para ilustrar formalmente os requisitos do sistema segue-se o diagrama de casos de uso.
Um diagrama de casos de uso é um diagrama das funcionalidades do sistema, elaborado
com base na linguagem de modelização UML (Unified Modelling Language)[4]. Neste
tipo de diagramas as funcionalidades são designadas por ‘casos de uso’ e os utilizadores
designados por ‘actores’.
No sistema em causa identificam-se os seguintes actores:
-
Administrador
-
Utilizador/Portal
2
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Figura 1.1 – Diagrama de casos de uso
3
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
1.3. Escalonamento do Trabalho
O trabalho realizado foi desenvolvido em várias etapas:
-
Modelação do sistema – modelo entidade-associação, modelo relacional, criação
das tabelas na base de dados.
-
Criação da interface web – duas interfaces, uma de administração, e uma de
utilização.
-
Geração de XML – criação e optimização de um procedimento que retira a
informação do sistema e a disponibiliza em formato XML.
-
Teste e revisões – simulações de utilização do sistema em todas as situações
previstas de modo a eliminar eventuais anomalias no funcionamento do sistema.
-
Protótipo de demonstração – construção de um pequeno protótipo de portal
(SiLEIC) para demonstrar a utilidade do sistema desenvolvido.
As várias etapas não são independentes, todas elas sofreram alterações e optimizações
no decorrer do trabalho.
1.4. Tecnologias e Ferramentas
No desenvolvimento do trabalho foram usadas as seguintes linguagens de programação:
- PL/SQL[1] – usada na implementação de módulos de interacção com a base de
dados.
- HTML [2] – usada na criação das interfaces e na apresentação das páginas
web.
- XML[3] – usada para a exportação da informação.
- Javascript[5] – usada para passagem de parâmetros entre páginas web e para tornar
as páginas interactivas.
As ferramentas usadas foram:
-
Oracle Designer 2000 – usada para a modelização do sistema (modelo entidadeassociação e modelo relacional) e para a criação das tabelas na base de dados.
- Quest SQL Navigator – usada para o desenvolvimento de toda a aplicação.
4
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
2. Modelo de Dados
O projecto consiste na criação de um módulo que permita armazenar dados relativos à
informação que os utilizadores podem retirar do SiFEUP, ou seja, criar uma biblioteca
de definições. Uma definição é um modelo genérico de uma pergunta à base de dados
(query SQL), que é parametrizado de acordo com a informação que se pretende obter.
Para suportar a biblioteca de definições, é necessário um modelo de dados que armazene
toda a informação que será usada na construção da query SQL, que por sua vez será
usada para gerar o documento XML, que será exportado. Neste capítulo é dada a
conhecer a arquitectura do sistema, ou seja, o modelo de dados que foi criado para
suportar as funcionalidades pretendidas para o sistema.
Na construção do modelo de dados foi usada a ferramenta Oracle Designer 2000, tendo
o modelo sofrido várias alterações ao longo da execução do trabalho, de maneira a
adaptar-se melhor à informação que irá armazenar.
2.1. Modelo Entidade-Associação
Inicialmente foi construído o modelo entidade-associação que mostra as tabelas que são
necessárias, a informação que cada tabela deve guardar e as dependências entre as
várias tabelas.
A figura seguinte ilustra o modelo entidade-associação construído.
5
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Figura 2.1 – Modelo Entidade-Associação
2.2. Modelo Relacional
Depois de construído o modelo entidade-associação, através do Oracle Designer 2000
gera-se automaticamente o modelo relacional. O modelo relacional mostra todas as
colunas que as tabelas que serão criadas na base de dados irão possuir, o tipo de dados
de cada coluna e todas as dependências entre tabelas.
A figura seguinte ilustra o modelo relacional obtido.
6
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Figura 2.2 – Modelo Relacional
2.3. Criação das Tabelas na Base de Dados
Com base no modelo relacional acima ilustrado e ainda usando a ferramenta Oracle
Designer 2000 todas as tabelas e dependências associadas foram geradas
automaticamente na base de dados.
Nesta secção é feita uma breve análise da estrutura das tabelas ,indicando as colunas,
tipo de dados, tamanho (quando aplicável) e comentários.
7
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Tabela DEFINICOES
Nesta tabela é armazenada a informação que identifica cada definição, como por
exemplo a sua descrição, o criador, e a data de criação.
Figura 2.3 – Definição da tabela DEFINICOES
Tabela COLUNAS
Nesta tabela é armazenada a informação relativa às colunas que fazem parte das
definições.
Figura 2.4 – Definição da tabela COLUNAS
8
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Tabela DEF_JUNCOES
Nesta tabela é guardada a informação acerca das junções existentes, ou seja, as
definições que fazem parte de cada junção e o tipo de junção que é usada.
Figura 2.5 – Definição da tabela DEF_JUNCOES
Tabela DEF_J_COLUNAS
Esta tabela está associada à tabela DEF_JUNCOES. Para cada junção existente na
tabela DEF_JUNCOES, existe na tabela DEF_J_COLUNAS a informação sobre as
colunas usadas para juntar as definições.
Figura 2.6 – Definição da tabela DEF_J_COLUNAS
9
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Tabela FUNCIONARIOS
Esta é uma tabela que já existia no ambiente do SiFEUP, tendo como finalidade
identificar o criador das definições e das gerações de XML.
Figura 2.7 – Definição da tabela FUNCIONARIOS
Tabela PORTAIS
Esta tabela tem a mesma finalidade que a tabela FUNCIONARIOS, sendo usada para
identificar os portais que usam o sistema. Esta tabela indica também o
REFRESH_TIME de cada portal que é usado na implementação de um mecanismo de
cache de XML que será abordado noutro capítulo deste relatório.
Figura 2.8 – Definição da tabela PORTAIS
10
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Tabela GERACOES_XML
Nesta tabela são guardados o documento XML gerado e a query SQL que foi usado na
sua geração. É de salientar também o campo VALIDA que tem como finalidade testar a
validade ou não da informação armazenada. A definição usada para gerar o documento
XML pode ser alterada, invalidando todas as gerações realizadas até à data para essa
definição.
Figura 2.9 – Definição da tabela GERACOES_XML
Tabela PARAMETROS_GERACAO
Esta tabela armazena os parâmetros associados a cada geração de XML. A finalidade é
utilizar esta informação para optimizar o funcionamento do sistema, como será
mostrado noutro capítulo deste documento.
Figura 2.10 – Definição da tabela PARAMETROS_GERACAO
11
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
3. Interface Web
Neste capítulo é analisada a interface web desenvolvida para a biblioteca de definições.
Esta interface está dividida em dois grupos, a interface de administração e a interface de
utilização.
Para ter acesso à interface web da biblioteca de definições, o utilizador tem que se
autenticar introduzindo o seu código e password no formulário de controlo de acesso,
usado no SiFEUP.
Figura 3.1 – Controlo de acesso
3.1. Interface de Administração
Depois de se autenticar como tal, um administrador tem acesso a todas as
funcionalidades da interface, podendo aceder às várias páginas muito facilmente através
do menu de opções disponível em todas as páginas.
12
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
3.1.1. Criação de Definições
O formulário para criar uma nova definição é interactivo, sendo alguns campos
preenchidos automaticamente. Inicialmente é pedida a introdução dos dados iniciais,
sendo os campos para introdução das colunas da definição, apenas mostrados após a
escolha da primeira tabela. À medida que o administrador necessita de inserir mais
colunas o formulário vai crescendo.
Figura 3.2 – Criação de Definição
Figura 3.3 – Introdução das colunas da definição
13
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Quando o administrador tenta submeter uma definição são feitas várias validações,
sendo-lhe indicado o que deve corrigir (em caso de insucesso), ou que a operação foi
efectuada (em caso de sucesso).
Figura 3.4 – Exemplo de validação de dados
Figura 3.5 – Inserção correctamente efectuada
14
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
3.1.2. Alteração e Eliminação de Definições
O administrador tem a possibilidade de visualizar todas as definições existentes no
sistema.
Figura 3.6 – Pesquisa de Definições
No ecrã de selecção, clicando numa definição da lista, abre-se o formulário de criação
de definições com toda a informação relativa à definição em causa. O administrador
pode assim alterar a definição e voltar a submeter, ou eventualmente eliminar a
definição.
Figura 3.7 – Possibilidade de eliminar ou alterar Definição
15
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Quando a definição que se pretende alterar faz parte de alguma junção, existem
restrições às alterações possíveis.
Figura 3.8 – Restrições às alterações
Eliminar uma definição implica eliminar toda a informação associada a essa definição,
eventuais junções e gerações de XML.
Figura 3.9 – Confirmação de eliminação de Definição
16
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
3.1.3. Junções
Para criar junções existe o seguinte formulário, também interactivo.
Figura 3.10 – Criação de Junções
Para as junções estão também disponíveis todas as funcionalidades anteriormente
descritas para as definições, como por exemplo, eliminar e alterar junções.
3.1.4. Geração de XML
O documento XML pode ser gerado de duas formas, usando o formulário que a
interface disponibiliza para o efeito, ou chamando directamente o procedimento que
gera o documento XML com os respectivos parâmetros. O formulário de geração de
XML foi construído de forma a que o utilizador não necessite de ter quaisquer
conhecimentos de base de dados para utilizá-lo, limitando-se a especificar a informação
que pretende obter. A segunda forma de gerar o documento XML é usada pelos portais
para obter a informação que necessitam, recebendo o XML respectivo.
17
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Figura 3.11 – Formulário de geração de XML
Figura 3.12 – XML gerado
18
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
O administrador pode ainda de visualizar todas as gerações de XML existentes no
sistema e eliminar aquelas que já não se encontrem válidas.
Figura 3.13 – Pesquisar gerações de XML
Figura 3.14 – Eliminação de gerações inválidas
19
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
3.2. Interface de Utilização
Na interface de utilização apenas estão presentes as funcionalidades relacionadas com a
geração e visualização de XML. O utilizador apenas pode gerar XML e visualizar
gerações que eventualmente já existam no sistema.
Figura 3.15 – Pesquisa de gerações de XML
Figura 3.16 – Geração de XML
20
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
4. Implementação
Neste capítulo é feita uma análise dos procedimentos criados para suportar o sistema de
biblioteca de definições. O ambiente de desenvolvimento usado foi o Quest SQL
Navigator. Apresenta-se uma listagem de todos os procedimentos e funções usadas,
seguida de uma breve análise de alguns tópicos relevantes, tais como validações e
optimização.
4.1. Procedimentos e Funções
4.1.1. Aspecto da interface web
Nome
cabecalho
menu_opcoes
botoes
apresentar_mensagem
Descrição
Apresenta cabeçalho das páginas web
Apresenta menu de opções
Apresenta botões de navegação
Apresenta mensagem informativa
Tipo
Procedimento
Procedimento
Procedimento
Procedimento
Descrição
Controlo de acesso ao sistema
Tipo
Função
Descrição
Cria formulário para as definições
Submete formulário de definições
Permite pesquisa de definições
Tipo
Procedimento
Procedimento
Procedimento
4.1.2. Autenticação
Nome
autenticacao
4.1.3. Definições
Nome
form_definicao
submeter_definicao
sel_definicao
21
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
4.1.4. Junções
Nome
form_juncao
submeter_ juncao
sel_ juncao
Descrição
Cria formulário para as junções
Submete formulário de junções
Permite pesquisa de junções
Tipo
Procedimento
Procedimento
Procedimento
Descrição
Cria formulário para gerar XML
Gera o XML
Permite pesquisar gerações de XML
Apresenta XML
Elimina gerações inválidas
Tipo
Procedimento
Procedimento
Procedimento
Procedimento
Procedimento
4.1.5. Geração de XML
Nome
form_geraXML
gera_XML
sel_geracoes
apresentar_XML
Elimina_geracao
4.2. Análise dos Procedimentos mais Relevantes
Nesta secção é feita uma breve análise a alguns dos procedimentos, referindo as
principais funcionalidades que implementam.
4.2.1. Procedimento form_definicao
Este procedimento é usado sempre que se pretende criar, alterar ou eliminar alguma
definição. São usados formulários com elementos do tipo hidden e funções de javascript
para o preenchimento automático de alguns campos do formulário e para passar
parâmetros para outros procedimentos. Quando se trata de criar uma nova definição o
formulário é mostrado em branco, quando se trata de uma operação sobre uma definição
já existente o formulário é carregado com os valores respectivos, valores esses obtidos
da base de dados.
22
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
4.2.2. Procedimento submeter_definicao
Este é o procedimento para realizar todas as operações na base de dados, no que diz
respeito ás definições. Para além disso, é também neste procedimento que são feitas
todas as verificações e operações necessárias, para garantir a consistência dos dados
inseridos na base de dados. De seguida são referidas as verificações feitas por este
procedimento.
- Obrigar o preenchimento de campos obrigatórios.
- Obrigar o preenchimento de campos, se algum campo relacionado também o estiver.
- Verificar se as tabelas indicadas no campo FROM são válidas.
- Impedir repetição de alias nas colunas de uma definição.
- Impedir alteração de campos fundamentais em colunas usadas como condição de
junção.
- Pedir confirmação sempre que se trata de uma operação de eliminação de definição.
- Avisar o utilizador da existência de junções e/ou gerações de XML associadas a uma
definição que pretende eliminar.
- Marcar como inválidas, todas as gerações de XML associadas a uma definição, sempre
que está é alterada.
4.2.3. Procedimento sel_definicao
Este procedimento usa um cursor para retirar da base de dados a listagem de todas as
definições e apresenta-a numa página web de pesquisa de definições com os respectivos
botões de navegação.
4.2.4. Procedimento form_juncao
Este procedimento é similar ao procedimento form_definicao, sendo responsável pela
obtenção dos dados a partir da base de dados no caso de junções já existente, e pela
passagem de parâmetros para outros procedimentos.
23
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
4.2.5. Procedimento submeter_juncao
Tal como no caso das definições, para inserir uma junção na base de dados é necessário
fazer algumas verificações para garantir a consistência dos dados. De seguida são
listadas as verificações feitas por este procedimento.
- Obrigar preenchimento de campos obrigatórios.
- Impedir inserção de junções sem condições de junção.
- Impedir definição de condições de junção entre colunas com tipo de dados diferentes.
4.2.6. Procedimento form_geraXML
Este procedimento é responsável pela passagem dos parâmetros para os procedimentos
que vão gerar o documento XML. Para isso é usado um cursor, que retira da base de
dados todas as colunas que podem ser seleccionadas e/ou parametrizadas. Essa
informação é usada para criar o formulário que é usado pelo utilizador para escolher a
informação que pretende obter no documento XML.
4.2.7. Procedimentos gera_XML
Este procedimento recebe os parâmetros do formulário onde o utilizador escolhe a
informação que pretende, e usa-os para construir a pergunta à base de dados (query
SQL) que vai ser usada para gerar o documento XML. Além disso este procedimento
insere informação relativa à geração de XML actual, na base de dados, logo faz também
algumas verificações que são listadas a seguir.
- Obrigar selecção de pelo menos uma coluna.
- Obrigar preenchimento de parâmetros obrigatórios.
- Impedir a introdução de valores não numéricos para parâmetros do tipo NUMBER.
24
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
4.2.8. Procedimento apresenta_XML
Este procedimento utiliza a query SQL construída pelo procedimento gera_XML para
gerar o documento XML, utilizando o procedimento XMLGen existente no ambiente do
SiFEUP . Depois de gerado, é guardado na base de dados e é apresentado numa página
web.
4.3. Alguns Aspectos de Optimização de Funcionamento do Sistema
4.3.1. Criação da Tabela PARAMETROS_GERACAO
Para evitar que cada vez que fosse gerado um documento XML tivesse que se
acrescentar uma nova entrada na tabela GERACOES_XML , foi criada a tabela
PARAMETROS_GERACAO que guarda os parâmetros que foram usados em cada uma
das gerações. Assim, o procedimento que insere as gerações na base de dados, sempre
que é chamado verifica se já existe uma geração para aquela definição, com aqueles
parâmetros, e em caso afirmativo apenas actualiza a informação.
Isto evita o crescimento desnecessário da tabela GERACOES_XML e evita que se
guarde a mesma informação várias vezes.
4.3.2. Cache de XML
Quando a biblioteca de definições é utilizada por um portal para obter informação, uma
definição pode ser usada de uma maneira sistemática com os mesmos parâmetros. Por
exemplo, o futuro portal da LEIC para mostrar uma lista dos seus docentes usaria uma
definição “Docentes” que lista os docentes de um curso, com o parâmetro CURSO
preenchido com o valor LEIC. Sempre que alguém através do portal, quisesse visualizar
a lista de docentes os parâmetros seriam exactamente os mesmos.
O documento XML seria gerado a cada acesso, o que tornava o processo de
visualização da lista de docentes mais lento. Para além disso, originaria uma sobrecarga
adicional na base de dados do SiFEUP, pois cada vez que o documento XML é gerado,
25
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
é executada a query SQL, que pode ser complexa. Isso seria uma desperdício de
recursos, pois na maioria dos casos a informação obtida seria exactamente a mesma.
Para evitar esta situação foi criada a tabela PORTAIS que tem uma coluna onde é
definido, para cada portal, o período de tempo após o qual a informação deve ser
actualizada (REFRESH_TIME). O sistema, antes de gerar o documento XML verifica
se já existe uma geração com os mesmos parâmetros. Se existe alguma geração nessas
condições, soma-se a data da geração com o valor de REFRESH_TIME do portal, se o
valor obtido for superior à data actual o documento XML volta a ser gerado, caso
contrário é exportado o documento que está guardado na base de dados.
26
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
5. Exemplos de Aplicação
5.1. XML, XSL e CSS
O XML (eXtensible Markup Language) separa rigorosamente o conteúdo da
apresentação, ao contrário do HTML (HyperText Markup Language). XML é uma
representação de dados estruturados em formato texto, ou seja, um documento XML
contém apenas e só informação. Para apresentar a informação, por exemplo num
browser, é necessário formatar o seu conteúdo, usando para esse efeito uma folha de
estilo (XSL ou CSS). Uma folha de estilo CSS (Cascading Style Sheet) usa o conteúdo
documento XML e apresenta-o de uma determinada forma. Uma folha de estilo XSL
(eXtensible Stylesheet Language), apesar da sua maior complexidade, apresenta outras
vantagens, permite a reordenação da informação, e seleccionar a informação que se
pretende apresentar.
5.2. Portal LEIC
Para demonstrar a utilidade da biblioteca de definições e do uso do XML para exportar
a informação, foi construído uma página web bastante simples, que pretende simular o
futuro portal da LEIC.
O portal usa a biblioteca de definições para obter o documento XML com a informação
que pretende disponibilizar, e formata esse documento com uma folha de estilo XSL. A
folha de estilo usada para formatar o documento é local ao portal, a biblioteca de
definições exporta unicamente o documento XML. Desta maneira o portal tem a
possibilidade de apresentar a informação da forma que desejar, podendo inclusive
seleccionar do documento XML apenas a informação que pretende apresentar.
Nesta secção são mostrados dois exemplos. Num dos exemplos é apresentada na página
HTML todo o conteúdo do documento XML criado pela biblioteca de definições. No
segundo exemplo é mostrada apenas alguma da informação contida pelo documento
XML.
27
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Neste primeiro exemplo foi usada a definição “Docentes” que permite obter os dados de
todos os docentes de um curso num determinado ano lectivo. No exemplo a definição
foi parametrizada de forma a fornecer a sigla, o nome, e o e-mail de todos os docentes a
leccionar na LEIC no ano lectivo de 2002/2003.
Figura 5.1 – XML exportado pela biblioteca de definições
Figura 5.2 – XML formatado com XSL e apresentado no portal
28
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Usando o mesmo documento XML obtido da biblioteca de definições pode obter-se
uma visualização diferente, bastando para isso usar uma folha de estilo diferente.
Figura 5.3 – XML formatado com XSL e apresentado no portal
29
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Como segundo exemplo foi usada a definição “Cadeiras” que exporta a informação
relativa a todas as cadeiras de um curso. A definição foi parametrizada de forma a
fornecer o nome, o ano, o semestre e a página web de cada uma das cadeiras da LEIC.
Figura 54 – XML exportado pela biblioteca de definições
Figura 5.5 – XML formatado com XSL e apresentado no portal
30
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Neste segundo exemplo não é apresentada toda a informação contida no documento
XML, é apenas apresentado o nome da cadeira e a respectiva página web, apesar de o
documento XML conter também o ano e o semestre de cada cadeira. Esta formatação é
executada pela XSL que se ilustra na figura seguinte. Note-se que a folha de estilo XSL
usa uma outra folha de estilo CSS (leic.css) para formatar a apresentação (tipo de letra,
fonte,etc).
Figura 5.6 – Documento XSL
Os utilizadores do portal, quando tentarem visualizar a informação num browser,
algures na Internet, receberão apenas páginas HTML, a formatação dos documentos
XML é feita pela portal. O diagrama seguinte ilustra o funcionamento acima referido.
SiFEUP
XML
Portal LEIC
Pedido
de
XML
HTML
Utilizador do
portal na
Internet
Pedido
de
página
Figura 5.7 – Fluxo de Informação
31
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
5.3. Exemplo de Integração no SiFEUP
Nesta secção é dado um exemplo de utilização da aplicação desenvolvida no ambiente
do SIFEUP. Usou-se a definição “Pessoal_activo” para criar a opção “Exportar Pessoal
Activo em XML” na página de pesquisa de informação sobre pessoal do SiFEUP.
Figura 5.8 – Exemplo de integração no SiFEUP
32
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
6. Conclusões
6.1. Trabalho Realizado
Os objectivos do trabalho foram alcançados, foi construída uma biblioteca de
definições, que permite exportar conteúdos do SiFEUP de uma forma eficiente. Com
esta nova aplicação, evita-se a necessidade de ter construir a query SQL, e disponibilizar
os conteúdos, sempre que alguém necessita de alguma informação. O utilizador não
necessita de ter quaisquer conhecimentos sobre base de dados para poder usar a
biblioteca de definições, pois a interface de utilização está construída de forma a que o
utilizador se limite a especificar a informação que pretende obter. A biblioteca de
definições também esta preparada para responder a utilizadores sistemáticos, como por
exemplo portais. Para esse efeito tem implementado um mecanismo de cache de XML,
que evita o uso desnecessário de recursos. Criando definições genéricas e abrangentes,
sempre que algum pedido de informação for feito, basta efectuar uma nova geração da
definição com os parâmetros adequados. Outra grande vantagem que a biblioteca de
definições oferece aos utilizadores, é facto de a exportação dos conteúdos ser feita
usando XML.O documento XML, sendo uma representação estruturada da informação,
permite ao utilizador uma enorme flexibilidade, podendo ser formatado da maneira mais
conveniente antes de ser apresentada a informação. Uma das formas de formatar XML
que apresenta mais potencialidades é o XSL, permite para além da formatação do
aspecto, a reordenação e selecção de conteúdos.
6.2. Perspectivas de Evolução do Projecto
A nível de perspectivas de evolução do projecto, sugerem-se as seguintes:
- Implementar a geração de XML de junções de definições.
- Expandir o modelo de dados e a interface de modo a suportar queries com maior
complexidade.
33
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
6.3. Experiência Pessoal
A nível pessoal, a realização deste projecto permitiu alargar bastante os conhecimentos
sobre as tecnologias usadas, bem como aumentar a aptidão para a programação. Um dos
principais objectivos da disciplina, no âmbito da qual se inseriu este projecto, é
aproximar os alunos da realidade do mundo do trabalho. Este objectivo foi plenamente
alcançado, tendo o aluno realizado o projecto integrado num dinâmico grupo de
trabalho, na Unidade de Sistemas de Informação do Centro de Informática Professor
Correia de Araújo.
34
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Bibliografia e Referências
[1].FEUERSTEIN, Steven – Oracle PL/SQL Programming, O’Reilly & Associates,
Inc., 1995
[2].MUSCIANO, Chuck; KENNEDY, Bill – HTML: The Definitive Guide, O’Reilly &
Associates, Inc., 1997
[3].HEITLINGER, Paulo – O guia prático da XML, Centro Atlântico 2001
[4].SILVA, Alberto; VIDEIRA, Carlos – UML, Metodologias e Ferramentas Case,
Centro Atlântico 2001
[5].FLANNAGAN, David – Javascript: The Definitive Guide, O’Reilly & Associates,
Inc., 1997
35
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Anexo A: Relatório de Especificação de Requisitos
36
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Projecto Seminário Trabalho Final de Curso
LEEC 2002-2003
SILEIC
Relatório de Especificação de Requisitos
Trabalho realizado por:
Gabriel António Lopes Ribeiro
ee98206
37
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
Índice
1. Introdução _________________________________________________________
1.1. Objectivo ______________________________________________________
1.2. Enquadramento _________________________________________________
1.3. Riscos ________________________________________________________
2. Requisitos do Sistema________________________________________________
2.1. Descrição geral dos requisitos do Sistema ____________________________
2.2. Descrição detalhada dos requisitos mínimos do sistema __________________
2.2.1. Gestão de Utilizadores ________________________________________
2.2.2. Plano de Estudos_____________________________________________
2.2.3. Inscrição em disciplinas e turmas ________________________________
2.2.4. Ficha do Aluno ______________________________________________
2.2.5. Folha de avaliação ___________________________________________
2.2.6. Foros de Discussão ___________________________________________
2.2.7. Sistema de Notícias __________________________________________
2.2.8. Vitrina Electrónica ___________________________________________
2.2.9. Gestão de Documentação ______________________________________
2.2.10. Website de Estágios _________________________________________
2.3. Descrição dos Requisitos não Funcionais do Sistema ____________________
38
39
39
39
39
40
40
41
41
41
41
42
42
42
42
43
43
44
45
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
1. Introdução
1.1. Objectivo
Desenvolver um sistema de informação para um curso da faculdade de engenharia da
universidade do porto, especificamente para a LEIC. Sistema esse que deve ter uma
interface simples e intuitiva e possuir funcionalidades inovadoras em relação aos
sistemas já existentes, facilitando o acesso à informação e o trabalho de todas as pessoas
ligadas à licenciatura.
1.2. Enquadramento
Devido ao crescimento em número de pessoas e de cadeiras da LEIC tornou-se
necessário a criação de um sistema de informação que disponibilize um melhor acesso a
toda a informação sobre o curso e que disponibilize também facilidades na avaliação,
entrega de trabalhos, comunicação entre utilizadores, etc.
Como existe já na faculdade um sistema de informação (SiFEUP, que cobre algumas
das funcionalidades necessárias), pretende-se com este projecto não duplicar a
informação, mas sim tirar partido das potencialidades do SiFEUP e implementar novas
e úteis funcionalidades. Com este trabalho espera-se obter um portal específico para a
LEIC, organizando a informação referente à LEIC existente no SiFEUP e
disponibilizando funcionalidades que contribuam para o melhor funcionamento da
licenciatura e do trabalho de todos a ela associados.
1.3. Riscos
Este projecto engloba vários riscos, dos quais se destacam os seguintes:
- Grande dimensão do sistema;
- Tempo limitado para a execução do projecto;
39
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
2. Requisitos do Sistema
2.1. Descrição geral dos requisitos do Sistema
Este sistema é muito vasto podendo ser dividido em várias partes que serão
mencionadas em seguida e analisadas com mais pormenor adiante neste documento:
- Este sistema deve suportar vários tipos de utilizadores, cada um desses tipos com
permissões distintas para aceder ás funcionalidades do sistema, sendo estas sujeitas a
verificação;
- Manter utilizadores e grupos de utilizadores, autenticando o acesso dos mesmos ao
sistema;
- Manter informação actualizada sobre os cursos e planos de estudo;
- Permitir registar a inscrição de alunos em disciplinas e turmas;
- Manter uma ficha de aluno detalhada, com informação de classificações parciais e
faltas de cada aluno;
- Possuir sistema de foros de discussão e notícias;
- Possuir um sistema de vitrina electrónica onde possam ser afixados classificações e
informações importantes;
- Permitir a submissão de entregáveis relativos a trabalhos de grupo e posterior
consulta e anotação por parte dos docentes;
- Possuir um website específico para os estágios da LEIC;
40
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
2.2. Descrição detalhada dos requisitos mínimos do sistema
Nesta secção será feita uma descrição mais pormenorizada das funcionalidades
desejadas para o sistema que foram enumeradas na secção anterior.
2.2.1. Gestão de Utilizadores
O sistema deve suportar quatro tipos de utilizadores:
-
Gestores, responsáveis por gerir e configurar o sistema;
-
Docentes, responsáveis pela informação relativa às cadeiras que leccionam,
planos de aulas, planos de avaliação, foros de discussão, etc;
-
Alunos, têm acesso a informação relativa às cadeiras que frequentam,
participam em foros de discussão, submetem trabalhos, etc;
-
Público, consultam informação pública;
O acesso dos utilizadores ao sistema deve ser autenticado e verificadas as suas
permissões.
2.2.2. Plano de Estudos
O sistema deve permitir a visualização do plano de estudos do curso com a seguinte
informação:
-
Disciplinas por ano e por semestre;
-
Créditos de cada disciplina;
-
Disciplinas optativas;
-
Link para página referente à disciplina;
2.2.3. Inscrição em disciplinas e turmas
O sistema deve permitir aos alunos inscreverem-se em disciplinas e turmas
(funcionalidade existente no SiFEUP).
41
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
2.2.4. Ficha do Aluno
O sistema deve disponibilizar ao aluno uma ficha de aluno detalhada, onde deve constar
a seguinte informação:
-
Nota final em cada disciplina quando disponível;
-
Notas das avaliações parciais (mini-testes, relatórios, etc.) em cada
disciplina;
-
Tipo de frequência;
-
Faltas do aluno em cada disciplina;
2.2.5. Folha de avaliação
O sistema deve permitir que os docentes produzam, no início de cada semestre, uma
folha de avaliação onde especificam os itens de avaliação. Essa especificação pode
alternativamente ser apresentada na ficha de disciplina.
2.2.6. Foros de Discussão
O sistema deve disponibilizar foros de discussão com as seguintes características:
- Possibilidade de criar foros privados (por exemplo um foro específico para
um grupo de utilizadores, uma disciplina, uma comissão);
-
Possibilidade de atribuir permissões distintas aos utilizadores;
-
Permitir arquivar o foro quando retirado do sistema;
2.2.7. Sistema de Notícias
O sistema de notícias deve também permitir:
-
Definir prioridades;
-
Definir prazos de validade;
-
Definir grupos alvo aos quais se dirigem notícias específicas;
-
Notificar via e-mail os utilizadores pertencentes a grupos alvo de notícias
prioritárias;
-
Arquivar notícias;
42
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
2.2.8. Vitrina Electrónica
O sistema deve possuir uma página onde os docentes e a administração possam afixar
classificações e outras informações úteis. Esta secção do sistema deve:
-
Permitir o acesso á informação apenas a utilizadores devidamente
autenticados e com permissões para o fazerem;
-
Permitir que os utilizadores possam pesquisar a informação que querem
visualizar (classificações, informações, ano, semestre, etc);
2.2.9. Gestão de Documentação
O sistema deve disponibilizar um módulo de gestão documental com as seguintes
características:
-
Deve permitir a submissão de trabalhos por parte dos membros de grupos
definidos (várias versões do mesmo trabalho);
-
Deve mostrar os prazos estabelecidos para os trabalhos;
-
Deve registar toda a informação (nome do documento, nome do submissor,
data de submissão, etc.);
-
Deve permitir ao docente anotar o trabalho, atribuindo-lhe uma classificação
e/ou um comentário;
-
Deve permitir a alteração das anotações por parte dos docentes;
-
Deve registar a informação referente ao anotador e a data de anotação;
-
Deve permitir aos alunos a visualização dos trabalhos e das anotações, mas
apenas no caso dos trabalhos por si produzidos (ou pelo seu grupo de
trabalho);
-
Permitir o acesso aos trabalhos também aos docentes das respectivas
disciplinas;
-
O sistema deve armazenar os documentos num sistema de ficheiros local ao
SiLEIC e a restante informação numa base de dados;
43
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
2.2.10. Website de Estágios
O sistema deve possuir uma secção destinada a processar a informação referente aos
estágios da LEIC. Essa secção deve disponibilizar as seguintes funcionalidades:
-
Permitir a submissão de propostas de estágio;
-
Permitir aos alunos candidatarem-se aos estágios;
-
Permitir o fecho das candidaturas e da submissão de propostas;
-
Disponibilizar informação acerca das propostas de estágio e regulamentos;
-
Permitir a colocação de dados pessoais por parte dos alunos (curriculum
vitae) e áreas de interesse;
-
Informar acerca das atribuições de estágios;
44
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições
2.3. Descrição dos Requisitos não Funcionais do Sistema
A informação deve ser partilhada pelo SiLEIC e pelo SiFEUP, não deve existir
duplicação de informação. Quando alterada a informação no SiFEUP, deve
automaticamente ser alterada também no SiLEIC.
45
Download