Apêndices
Apêndice 1 - Principais Casos de Uso DiTeD
Apêndice 1.a - Ciclo de vida de um documento digital no DiTeD
Apêndice 1.1 - Depositar Documento (Casos de Uso)
Apêndice 1.1d - Descrição completa dos Casos de Uso
Apêndice 1.1s - Depositar Documento (Diagrama de Sequências)
Apêndice 1.1.1s - Seleccionar Género, Seleccionar Língua (Diagrama
de Sequências)
Apêndice 1.1.2s - Seleccionar Organizações
(Diagrama de Sequências idêntico à selecção de termos)
As organizações, quer ao nível da base de dados quer ao nível da lógica
de negócio são em todo idênticas aos termos de indexação.
Possuem uma hierarquia semelhante, logo uma navegação e um
processo de escolha idênticos (Veja o apêndice 1.1.3s que mostra a
selecção de termos de indexação).
Apêndice 1.1.3s - Seleccionar Termos de Indexação (Diagrama de
Sequências)
Apêndice 1.1.4s - Seleccionar Autores (Diagrama de Sequências)
Apêndice 1.1.5s - Seleccionar Colaboradores (Diagrama de
Sequências)
Apêndice 1.1.6s - Upload de Ficheiros (Diagrama de Sequências)
Apêndice 1.2 - Editar Documento Depositado (Casos de Uso)
Apêndice 1.2s - Editar Documento Depositado (Casos de Uso)
Apêndice 1.3 - Pesquisar Entidades (Casos de Uso)
Apêndice 1.3d - Descrição completa dos Casos de Uso
Apêndice 1.3.1s - Navegar por Índices (Diagrama de Sequências)
Apêndice 1.3.2s - Pesquisar Entidades (Diagrama de Sequências)
Apêndice 1.4 - Administrar Sistema (Casos de Uso)
Apêndice 1.4d - Descrição completa dos Casos de Uso
Apêndice 1.4.1s - Login/Logout Administrador (Diagrama de
Sequências)
Apêndice 1.4.2s - Importação de Entidades a Partir de Ficheiros de
Texto (Diagrama de Sequências)
Apêndice 1.4.3s - Historial (Diagrama de Sequência)
Apêndice 1.4.3.1s - Historial Pesquisa (Diagrama de Sequência)
Apêndice 1.4.4s - Consultar Estatísticas de Administração (Diagrama
de Sequências)
Apêndice 1.4.5s - Inserção/Edição/Validação de Documentos
A ferramenta de edição de documentos para administração é a mesma que para o
utilizador (apêndice 1.2) com a excepção de que não é feita qualquer autenticação
prévia, visto que o administrador já fez Login. Além de todos os passos normais que
englobam a edição o administrador dispõe ainda do controlo do estado de validade
do documento
Apêndice 1.4.6s - Criar Entidade (Diagrama de Sequências)
Apêndice 1.4.7s - Seleccionar Entidade (Diagrama de Sequências)
Apêndice 1.4.8s - Editar Entidade (Diagrama de Sequências)
Apêndice 1.4.9s - Eliminar Entidade (Diagrama de Sequências)
Apêndice 1.4.10s - Substituir Entidade (Diagrama de Sequências)
Apêndice 2 - Diagramas de
Classes e Tabelas DB
Apêndice 2.1 - Estrutura da Base de Dados (Classes Principais)
DocumentLangParameterss
ID
Title
SubTitle
Abstract
Notes
1
DPLangLocal
1
Long
String
String
Text
String
Organization
1
1
DPLangDefault DPLangDoc
1
1
Long
Integer
Integer
Integer
String
Date
String
String
String
String
Bimary
Boolean
Boolean
*
1
1
0..*
Genre
ID
GenreNameLocal
GenreNameDefult
Notes
Status
OtherIdentifier
Long
String
String
String
Bool
String
ID
Code
NameLocal
NameDefault
Notes
Status
OtherIdentifier
*
ID
Long
String
String
String
String
Bool
String
1
*
Editor
*
Document
ID
PublishingDateYear
PublishingDateMonth
PublishingDateDay
PublishementLocal
RecordDate
Language (ISO 639-2)
Link (página de apresentação)
Notes Public
Notes Admin
Password
IsInLocalFileSistem
Status
Diagrama de Classes
Primary Authority
Subject
*
ID
Name
Initials
Email
PhoneNumber
Address
URL
Notes
Status
OtherIdentifier
Long
String
String
String
String
String
String
String
Bool
String
1
*
*
Primary Authority
1
ID
Name
Email
Password
Long
String
String
Binary
*
Person
*
Author
*
1
Copies
OtherContributor
OtherContributor
Long
1
*
ID
Name
BirthYear
Month
Day
Email
Address
PhoneNumber
Web-Site
Notes
Status
OtherIdentifier
Long
String
String
Int
Int
String
String
String
String
String
Bool
String
*
*
1
DocumentsCopy
OtherContributorRole
Long
String
String
String
Bool
String
ID
AccessRestrictions
AccessRestrDuration
Notes
DescriptionLocal
DescriptionDefault
Status
Long
String
Date
String
String
String
Bool
Primary Authority
1
File
*
ID
RoleNameLocal
RoleNameDefault
Notes
Status
OtherIdentifier
Administrator
1
*
ID
Name
MD5
Size
Path
Notes
DescriptionLocal
DescriptionDefault
Status
Long
String
Byte[]
Long
String
String
String
String
Bool
• Autoridades:
–“Autoridades” significa toda a lista de nomes que é controlada, isto é, cujos valores são verificados e registados segundo
determinados princípios. Deverá haver três classes de autoridades no sistema: Assuntos, Organizações e Pessoas.
–Estruturas das autoridades: As três classes de autoridades devem ter a mesma estrutura em árvore, isto é, deverá haver um
nível de topo, com vários nomes, podendo a partir de cada elemento desse nível descender outros elementos, e assim
sucessivamente. Não existem restrições a estas estruturas.
–Criação e gestão de autoridades: Para cada classe de autoridades os processos de criação e gestão são os mesmos:
1.O administrador local de um sistema poderá criar listas de autoridades iniciais.
2.Cada utilizador, ao registar um novo documento, pode estabelecer ligações a autoridades existentes ou criar novas.
3.O administrador deverá SEMPRE verificar as NOVAS autoridades, podendo em cada caso (para isso, as autoridades
novas, isto é, ainda não validadas, deverão ser TODAS visíveis claramente – status):
1.Aceitar a autoridade tal como está
2.Corrigir um destes aspecto na autoridade (nome ou ligação “para cima”), e aceitar
3.Recusar a autoridade. Neste caso deverá ser possível apagá-la e substituir a ligação a outro caso.
–As três classes de autoridades são:
• Subject: Assuntos!!! Aos níveis de topo serão criadas, por exemplo, áreas de assuntos (Eng. Informática, Eng. Física,
Medicina, Sociologia, etc., podendo depois ser criados vários sub-níveis). Mas isto não implica nada para a construção do
sistema!!! Os nomes de cada elemento serão dados pelo utilizador/administrador, e podem ser mudados em qualquer
altura. Para assuntos que não existam na base de dados será derivado um assunto novo do assunto de topo “Outros”.
• Organization: Nomes de organizações editoras (editores comerciais ou universidades), podendo servir ainda para registar a
ligação conhecida mais recente de uma pessoa. No caso de teses, por exemplo, a universidade onde ela for defendida é
registada como a organização editora!!!
• Person: Qualquer pessoa, seja autor ou com outra relação!
• Tabelas/classes Genre e OtherContributorRole
–Estas tabelas serão definidas dinamicamente pela utilização do sistema, isto é, o administrador local pode configurar alguns
casos, que os utilizadores podem seleccionar, mas estes podem também criar novos valores, que o administrador pode depois
manter, corrigir ou anular –neste caso implica associar os documentos a outros casos já existentes. Exemplos de valores são:
• Genre: Relatório, Artigo, Tese ou dissertação de mestrado, Tese ou dissertação de doutoramento, ...
• OtherContributorRole: Orientador, Co-Orientador, Presidente de júri, Membro de júri, ...
•
•
•
•
Tabelas/classes DocumentCopy, DocumentFile
– No sistema cada documento tem uma serie de Copias, ou seja, a cada documento serão submetidos e
associados ficheiros cada um associado a uma dada cópia. Cada cópia poderá ter quaisquer ficheiros que o
utilizador deseje submeter, por exemplo uma cópia com o o resumo e imagens, uma copia com todos os
documentos, outra com aqueles que o autor não permite que sejam visualizados pelo publico. Assim a cada
copia será atribuída uma duração de restrições de acesso ao público e um tipo de acesso, público restrito ou
interno.
– Todos os utilizadores poderão ver os Metadados do documento mas só terão acesso a determinadas copias
para download.
Telefones, moradas, etc. : cuidado que poderemos ter de registar contactos não normais, como por exemplo
telefones estrangeiros. Por isso estes campos são strings!!!
Notas: devem-se artilhar as tabelas com campos de notas, para uso interno do administrador (e do próprio autor,
claro, que as pode preencher da primeira vez!).
Línguas: O sistema será configurado para o uso de três ou duas línguas. A local: Português, a default: o Inglês e
para cada documento existirá também a língua do documento. No caso da Língua do documento ser uma das
duas primeiras então não será apresentada para preenchimento de campos visto ser uma repetição. Isto aplica-se
à tabela DocumentLangParameters onde constam todos os parâmetros que um documento pode dispor em várias
línguas
Apêndice 2.2 - Classes para Tabelas com línguas ISO 639-2
Langs
Lang
ID
Lang (ISO 639)
unique
Long
String
1
*
ID
Code (ISO 639)
Word (Palavra na lingua respectiva)
Long
String
String
Apêndice 2.3 - Classes Core (Classes para controlo de historial)
Context
Eperson
History
ID
Action
Long
String
1
1
ID
SessionID
SessionStartDate
OriginIP
RequestPath
IgnoreAuth
String
String
Date
String
String
Boolean
1
1
ID
EntityID
Email
Group
String
Long
String
String
Apêndice 2.4 - Classes para controlo de Resultados de Pesquisas
(Classes de Estado BEANS)
FormSimplePreviousNext (abstract)
Na sessão anda sempre uma form destas,
com uma form especifica dentro de si e
com o nome “FormSimplePreviousNext”
FormPreviousNextSearch (abstract)
NextResults
int
callPreviousResults()
callNextResults()
Abstract
Abstract
calcFirstResultPrevious()
InitializeNext()
InitializePrevious()
GetParametersToRequest
Method
Method
Method
Method
AreMoreNext
AreMorePrevious
Objects
TotalResults1
TotalResults2
TotalResults3
classType
Bool
Bool
List
Integer
Integer
Integer
String
callPreviousResults()
callNextResults()
Initialize()
GetParameterToRequest()
Abstract
Abstract
Method
Method
Tudo o que se necessita para apresentar
resultados está nesta form
Basta colocar os links previous e next se as
respectivas variaveis estiverem a true
FormStringsSearch (abstract)
FormGeneralSearch
FormStringsIterate (abstract)
callPreviousResults()
callNextResults()
Initialize()
Abstract
Abstract
Method
Find()
NextResults()
PreviousResults()
GetParametersToRequest()
Method
Method
Method
Method
FormAuthorsIterate
FormIndexTermIterate
callPreviousResults()
callNextResults()
Initialize()
Method
Method
Method
callPreviousResults()
callNextResults()
Initialize()
Method
Method
Method
Find()
NextResults()
PreviousResults()
Method
Method
Method
Find()
NextResults()
PreviousResults()
Method
Method
Method
SearchKeys
String
SearchKeys
String
callPreviousResults()
callNextResults()
Abstract
Abstract
callPreviousResults()
callNextResults()
Abstract
Abstract
InitializeNext()
InitializePrevious()
Method
Method
InitializeNext()
InitializePrevious()
Method
Method
Find()
NextResults()
PreviousResults()
Method
Method
Method
Find()
NextResults()
PreviousResults()
Method
Method
Method
…
FormAuthorsSearch
callPreviousResults()
callNextResults()
Method
Method
Find()
NextResults()
PreviousResults()
Method
Method
Method
Apêndice 2.5 - Classes para controlo de Resultados de Pesquisas
(Controladores Servlets)
Tira da Sessão um FormSimplePreviousNext
Instância a classe em causa através do parâmetro
classType
ControllerGlobalPreviousNext
PreviousResults()
NextResults()
Method
Method
de seguida invoca sobre o objecto
FormSimplePreviousNext.callPreviousResults()
ou
FormSimplePreviousNext.callNextResults()
ControllerGeneralSearch
ControllerSearchPersons
find()
Index()
Method
Method
find()
Index()
Method
Method
Instâncía a FormSimplePreviousNext
Neste caso instancía uma FormAuthorsIterate
ou AuthorsSearch
De seguida é invocado o método find sobre a instância
respectiva. Ela saberá como se inicializar e executar a busca
na form acima de si na hierarquia
Controladores para a
submissão de documentos
ControllerStartContributor
ControllerStartAuthor
FormAuthorsIterate.find(familyName)
FormAuthorsSearch.find(familyName)
Apêndice 2.6s - Mecanismo para garantir segurança nas palavraschave na BD (Diagrama de Sequências)
Apêndice 3 - Arquitectura
Apêndice 3.1 (MVC)
Internet
Filters
Security line
Authentication
(IP, MAIL, Password)
Authorization
Permission List
Action Forms
(BEANS)
Controllers
(servlets)
DLProperties ModelClasses
Util
Admin Server
(Interfaces Server)
Services Factory
Log4j
Service Results
DBManager
DLExceptions
User Server
(Interfaces Server)
Services Factory
Core
(LogManager,
HistoryManager,
Email Alert)
FileManager
Session Monitor
(Sessions Factory)
Hibernate
O/R Model
XML Mapping
DB
FS
Apêndice 3.2 - Diagrama de Componentes (Utilizador)
Apêndice 3.3 - Diagrama de Componentes (Administrador)
Apêndice 3.4 - Arquitectura de Controladores (Servlets)
Disposição maneira como está agrupado o código no que respeita a controladores
e form beans
Administração
Utilizadores
Recursos Filtrados
Recursos Não Filtrados
Admin Interfaces
JSP’s
User Interfaces
JSP’s
Controladores
Administrativos
Controladores
Comuns
Controladores
Para Utilizadores
Form Beans
Administrativos
Form Beans
Comuns
Form Beans
Para
Utilizadores
Apêndice 3.5 - Diagrama de Instalação
Apêndice 3.5.1s - Download de um ficheiro - Funcionamento dos
Filtros - (Diagrama de Sequência)
Apêndice 3.5.2 - Login Geral segurança nas palavras chave
As palavras chave e a forma como estas são guardadas faz parte da arquitectura
de segurança do sistema. Este diagrama foi apresentado na secção das tabelas da
base de dados, de qualquer forma está bastante preso a este capitulo
Apêndice 3.5.3s - Login Administrador (Diagrama de Sequência)
Este diagrama já foi apresentado em 1.4.1s nos casos de uso, mas tal como a
segurança das palavras chave este é um caso bastante virado para a forma como a
arquitectura foi montada
Apêndice 4 - Hibernate
(O/R Model)
http://hibernate.sourceforge.net
Apêndice 4.1 - Arquitectura do Modelo Geral de funcionamento
Apêndice 4.2 - Arquitectura do Modelo mais detalhada
Apêndice 5 - Struts
http://jakarta.apache.org/struts
Apêndice 5.1 - Arquitectura do Modelo Geral de funcionamento
Apêndice 5.2 - Arquitectura do Modelo com o DiTeD
(Detalhado)
Download

Apendices