The FenixEdu
Project: an
Open-Source
Academic
Information
Platform
Instituto Superior Técnico
The FenixEdu Project:
an Open-Source Academic
Information Platform
Copyright © Instituto Superior Técnico, March 2011
4
Contributions
Text
António Rito Silva, Artur Ventura, Carlos
Ribeiro, Fernando Mira da Silva, João
Cachopo, Luís Cruz, Susana Fernandes
Editor
Fernando Mira da Silva
Past and present
project staff
Editorial Design
Tiago Machado
Infographics
Telma Baptista
Project Founder, Chief Architect
and Project Director (2002–2008)
António Rito da Silva
Web Designers
Bruno Monteiro, Carla Penedo,
Gustavo Pimenta, João Alfaiate
Project Directors (2008–2011)
Fernando Mira da Silva, Carlos Ribeiro
Grants
Artur Ventura, Bruno Santos,
Carlos Jacinto, Carlos Pereira,
Daniel Ribeiro, Diogo Figueiredo,
Francisco Paulo, Jaime Jorge,
João Marques, João Neves, João Pereira,
Luís Cruz, Luís Egídio, Nuno Diegues,
Pedro Amaral, Raquel Guimarães,
Sérgio Silva
Chief Architect
João Cachopo
Chief Developers
João Luz, João Mota, Luís Cruz
Software Developers
Ângela Almeida, Anil Kassamali,
Artur Ventura, Cláudio Gil, David Santos,
Diogo Simões, Fernanda Quitério,
Gonçalo Luiz, Hugo Querido, Ivo Brandão,
João Antunes, João Figueiredo,
João Mota, Luís Cruz, Luís Egídio,
Manuel Pinto, Nadir Tarmahomed,
Nuno Ochoa, Paulo Abrantes,
Pedro Santos, Ricardo Rodrigues,
Ruben Carvalho, Shezad Anavarali,
Susana Fernandes, Tânia Pousão
Identity Management Subsystem
and e-ID Interoperability
Carlos Ribeiro, Daniel Almeida,
Fernando Mira da Silva, Jorge Matias,
Miguel Cabeça
System Administrators
Bruno Fernandes, Cláudio Martins,
Daniel Almeida, Filipe Almeida,
Jorge Matias, José Pereira,
Miguel Cabeça, Paulo Andrade
User Support Team Lead
José Luís, Tânia Nunes
User Support
Alexandra Alves, Armando Almeida,
Carla Amado, Helder Leite, José Luís,
Rosa Barbosa
External Cooperation
Gonçalo Luiz, João Luz
Students
Amin Amirali, Ana Gouveia,
André Fernandes, Anil Kassamali,
Bruno Almeida, Carlos Pereira,
Catarina Simões, Cátia Martins,
Danilo Camargo, David Santos,
Fernanda Quitério, Francisco Passos,
Francisco Paulo, Joana Mota, João Brito,
João Fialho, João Figueiredo, João Neves,
João Sá, João Simas, João Sitefane,
Leonor Almeida, Luís Cruz, Luís Egídio,
Manuel Pinto, Nadir Tarmahomed,
Nuno Antão, Nuno Barbosa, Nuno Correia,
Nuno Nunes, Nuno Ochoa,
Patrick Da Fonte, Paulo Abrantes,
Pedro Santos, Ricardo Lopes,
Ricardo Nortadas, Ricardo Oliveira,
Ricardo Rodrigues, Rita Carvalho,
Rita Ferreira, Rui Figueiredo, Sara Oliveira,
Sara Ribeiro, Sérgio Montelobo,
Sérgio Nunes, Sérgio Patrício,
Shezad Anavarali, Sofia Rodrigues,
Tânia Pousão, Telmo Frias,
Tiago Rodrigues, Ximena Genêto
SOTIS Project Supervisor
José Luís Borbinha
SOTIS Developers
Miguel Coxo, Pedro Carloto, Pedro Santos
5 The FenixEdu Project: an Open-Source Academic Information Platform
Abstract
The Fenix project started at Instituto
Superior Técnico (IST), Lisbon, Portugal,
with the aim to develop an integrated
academic information system for higher
education. Today, that system is the
basis of all academic processes at IST,
from high-level scientific and academic
management to daily communication
between students, teaching and
administrative staff. It provides a powerful
Content Management System (CMS),
Student Management System (SMS) and
Learning Management System (LMS),
control and archive of all academic
records, overall academic management
from degree design and approval to
room scheduling and many other related
academic tasks.
The Fenix project was developed using
an Object Oriented approach based
on a Rich Domain Model that attempts
to model all academic entities and
processes. The infrastructural level is
based on an innovative approach to
Software Transactional Memory (STM), in
order to enable large-scale concurrency
with minimal interlocking transactions.
A
The platform is integrated with an
advanced identity management
subsystem, which provides single sign-on,
federation support, strong authentication
based on a national e-ID Card and
supports European e-ID interoperability.
The project was developed from scratch
adopting a Lesser General Public Licence
(LGPL). It is used today by several higher
education institutions, with maintenance
and support often being provided
by independent private companies.
This approach contributed to extend
technological support and increase the
long-term project sustainability.
6
Contents
1
1.1
1.2
1.3
Introduction
Project Overview
IST overview
Organization
8
8
10
13
2
2.1
2.2
The Fenix Strategy
IS Development Models
Integration of Business Goals
14
14
15
Fenix Features and Functionalities
Role based approach
Multi-language support
Course support
Academic management support
Administrative support
Scientific support
Building and infrastructure management
Admissions and on-line application support
Website management
Other functionalities
Roles and associated functions 18
18
21
22
23
24
25
26
26
27
27
28
4
4.1
4.2
4.3
4.4
4.5
An Innovative Technological Approach
The original software architecture of Fenix
A software architecture for applications with a rich domain model
The Fenix Framework
The Bennu Framework
A visual representation of the Fenix domain model
36
37
38
39
40
42
5
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
Identity Management
Identifiers
Global Perspective
LDAP
Kerberos
Single Sign-on
Portuguese National e-ID Card
European e-ID support
SAML 2.0 Federation Support
44
44
45
46
46
47
47
49
49
6
6.1
6.2
6.3
6.4
Project metrics
Code size and evolution
Development team size
Performance
Third party implementations
50
50
52
52
52
7
7.1
7.2
Conclusion
Discussion
Ongoing and future developments
54
54
55
References
56
3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
8
Introduction 1
Project Overview
IST overview
Organization
1
The Fenix project 1 started in 2002 at IST,
Lisbon Portugal, with the aim to develop an
advanced academic information system for
Higher Education Institutions (HEI).
The system was designed from the start
to be fully web based, in order to provide
wide availability and easy user interaction,
independent of client software and
operating systems, while assuring the high
security standards, tight access control
and log action control required by a critical
information system.
Project Overview 1.1
The Fenix system is an integrated platform
that works at all levels of the academic
process. It implements a powerful Content
Management System (CMS), which can
be used at course, degree, department
or institution level, an advanced Student
Management System (SMS), a complete
Learning Management System (LMS) and
it also integrates all components required
by a standard academic management
platform.
This includes management and support
of all academic tasks, including on-line
student applications and admission
processes, on-line enrolment and
registration, evaluation and grade records,
degree planning, design and aproval, full
management of academic records (at
graduation and post-graduation level),
publication registration and archive of
grades and student curricula, room,
course and teacher scheduling and
distribution, fee and payment control,
quality control through on-line surveys
and many other tasks. At the course
level, the system provides an information
board and an easy to use CMS, planning
and scheduling tools, publication of class
summaries, publication of bibliographic
references, documents and exercises,
e-learning support and evaluation,
student management and communication
channels, RSS feeds, registration of the
number of attendents and many other
functionalities.
As stated before, the system also provides
full support to all academic back office
and management, including the workflow
required by most processes. This
includes design, planning, and approval
of degrees and courses (including
contents, bibliography, structure and
planning), European Credit Transfer and
Accumulation System (ECTS) validation,
formal approval by the scientific board
of courses, degrees and teaching staff,
issue of diplomas and certificates, etc.
The platform also handles the publication
of thesis theme proposals, support for
applying for a thesis theme and supervisor
1 FenixEdu is the registered® trademark™ of the Fenix project. For sake of simplicity, we will however keep
the simplified designation Fenix Project through out the remainder of this document.
9 The FenixEdu Project: an Open-Source Academic Information Platform
and academic tasks related with thesis
management and supervision. Moreover,
it integrates a complete curriculum
management platform for teaching and
research staff, enabling the assessment
of scientific production at individual,
departmental and institutional level.
The identity management subsystem
also has full Security Assertion Markup
Language (SAML) 2.0 federation support
based on OpenSAML, which provides full
interoperability with standard SAML based
federations (namely Shibboleth based
federations).
The current version of the system
encompasses a wide range of
functionalities related to almost every
component of the academic process.
The complexity of the business model
and of the underlying information system
poses significant challenges from a
software engineering perspective. As
such, the system is often used both
as a source of research problems
and as a testbed for validating new
research approaches that address
the development of highly complex
applications with rich domain models.
One result of this tight integration
between research and development was
the introduction of an innovative software
architecture for developing applications
with persistent and transactional rich
domain models. This new architecture
combines a Domain Specific Language
(DSL) for implementing the structure
of the domain model with a Software
Transactional Memory (STM) to control
concurrent access to the application’s
data. Both the DSL and the STM used in
this new architecture were designed and
developed from scratch to suit the needs
of the Fenix project. However, since they
are independent from the application layer,
they were already adopted by several
other applications in different contexts. In
this sense, the Fenix project turned out
to be one of those rare cases of software
systems that change the technological
environment surrounding them.
This identity management subsystem also
supports strong authentication based
on the Portuguese National e-ID Card
(named Cartão de Cidadão or Citizen
Card) and, moreover, is fully integrated
with the European e-ID interoperability
subsystem, developed in the scope of the
European project STORK. Digital signature
of documents and actions is also possible
using the Portuguese National Identity
Card.
The Fenix academic platform is
integrated with an advanced identity
management subsystem, which provides
user authentication to all computer
and network services. The identity
management backend is powered by
Kerberos and Lightweight Directory
Access Protocol (LDAP), and provides
web single sign-on based on Yale Central
Authentication Service (CAS).
The overall system was developed
from scratch as an open source project
based on the LGPL, to offer a basis for
open contributions, free distribution,
free availability, and customization to
special requirements and needs at
different institutions. This distribution
model enabled several HEI to implement
the Fenix system with the support of
independent private companies and, at
the same time, to enlarge the technical
support of the platform, which does not
rely today only on internal IST resources,
given the wider implementation basis
and technical support. This strategy
also contributed to the long-term project
sustainability.
The Fenix logo is the iconic Portuguese
Galo de Barcelos (Barcelos rooster), an
old Portuguese symbol, representing
that truth always prevails. The Galo de
Barcelos legend describes how the
rooster interceded for a man to be hanged
for a crime he had not committed. The
Galo de Barcelos was chosen because
Fenix is a Portuguese project driven by the
belief that by doing good we will prevail.
The Fenix project code and
documentation is available at
https://fenix-ashes.ist.utl.pt/.
10
IST overview 1.2
As stated before, the Fenix project was
developed from scratch at IST. While
today the Fenix system is also deployed
at other institutions, IST remains both the
largest user base and the primary source
code contributor. As would be expected,
IST’s implementation is the only one that
makes full use of all platform features, as
most of them stem directly from internal
requirements.
Figure 1
Alameda Campus
IST is the largest school of engineering in
Portugal. It was founded in 1911 in the
city of Lisbon, with the aim of developing
top quality education and research in
the areas of engineering, science and
technology.
The mission of IST is to create and
disseminate knowledge and provide our
students the education and the knowledge
tools to improve, to change, and to shape
society through science, technology,
and entrepreneurship. We achieve
this by combining a top quality higher
education with Research, Development
and Innovation activities, according to the
highest international standards, immersing
our students, alumni, faculty and staff in
an exciting and global environment geared
towards solving the challenges of the XXIst
Century.
IST is a research-oriented school, home to
more than 6,000 undergraduate students
(BSc), 4,000 graduate students (MSc and
PhD) and around 1,100 faculty members
and researchers. IST is settled in two
campuses, one in central Lisbon and
another in Taguspark (a modern science
and technology complex, home to more
than 130 high-tech based companies,
located in the southwest coast of Lisbon).
Students can choose from a rich variety
of MSc and PhD programs offered at IST,
covering the classical engineering and
basic science fields as well as a number of
the emerging scientific areas. A significant
number of international students
participate in IST’s Master and Doctoral
programs.
IST cooperates worldwide with some of
the best universities and Research and
Development (R&D) institutions, and is a
member of various European networks
of prestigious schools in Engineering,
Science and Technology, such as
CLUSTER, TIME, and CESAER, all
committed to provide technical education
at the highest international standards.
Currently, IST offers several master and
doctoral programs in collaboration with
international partners (including Erasmus
Mundus).
Being research a central activity at
IST, it spans several R&D units and
disciplines. Teaching and research are
closely connected. Research and external
consulting contribute to more than half of
the IST finantial turnover.
Master and Doctoral students are regularly
involved in these research activities,
working together with IST faculty and
research staff, to face the challenges
posed by ambitious national and
international research projects. Figures 2A
and 2B summarizes main IST facts and
figures.
Figure 2A
(next page)
IST facts and figures
(July 2010)
FACTS & FIGURES A SNAPSHOT OF IST
Education
Bachelor
5854
Students
19
Courses
60%
10 231
Students
Master
30%
3319
Students
25
10%
Master Programme
International
Students
10%
823
Master Dissertations
14%
International
Students
PhD
1058
Students
Graduate students per cycle
28
1rst
2nd
PhD Programmes
3rd
Cycle
Cycle
Cycle
1121
824
110
110
PhD Thesis
Employability
63%
Get a job
before
graduation
96%
Get a job within
6 months of
graduating
Research
1852 38
4538
1186
29
7
New patents applications
PhD awards
Research centres and institutes
Associated laboratories
Internationalization
• CLUSTER
• EIT-LIC InnoEnergy
• TIME
MUS
• CEASER
• ERASE
S
ÃE
LH
L
GA
• MA
• SMI IL
• ATHENS•
• BRAS
International
networks
Mobility
programmes
• euSYSBIO
• EMDC
• IDS-FunMat rtUP
• EU-Brazil Sta
• MIT
• CMU
• UT Austin • IAESTE US
• EPFL
• VULCAN
ERASMUS MUNDUS
Joint PhD Traineeships
(Msc, Phd) programmes programs
Funding
59%
Own resources
135M€
Total funding
25
M.Sc
Double
Degrees
13
Organization 1.3
This document is structured as follows.
Chapter 2 presents the overall project
strategy and discusses the adopted
model and the in-house development
approach.
Chapter 3 describes the Fenix platform,
listing the overall system features and
model at a functional level.
Chapter 4 delves into the system’s
software architecture, and provides a brief
overview of the innovative approach that
enabled us to simplify the development of
applications with a rich domain model.
Chapter 5 describes The identity
management subsystem, including
federation support, strong authentication
support and European e-ID compatibility.
Chapter 6 presents several project facts
and figures.
Finally, chapter 7 concludes, discussing
the current state of the project, overall
features and on-going and foreseen
developments.
Figure 3
Taguspark Campus
Figure 2B
(previous page)
IST facts and figures
(July 2010)
14
The Fenix Strategy 2
The design of the Fenix business strategy
took into account our previous experience
with the development of information
systems (IS) in the context of HEI.
IS Development Models
Integration of Business Goals
IS Development Models 2.1
In terms of funding, we realised that HEI
funding is constantly changing and it is
heavily based on political decisions. In
terms of management, HEI management
boards change periodically.
In terms of technology, HEI information
systems are long living platforms which
very often become technologically
obsolete. In terms of human resources,
HEI have problems competing for the
best-qualified human resources in the
market of software. Moreover, there is
usually a communication gap between
the HEI and external entities that it tries to
work with.
The approaches already taken for the
development of HEI IS do not provide a
complete solution to these problems:
•
•
2
•
• Commercial ”off-the-shelf” products are
usually not flexible enough to support the
differences each HEI has in regards to
its core processes. So they are usually
limited to standard resource management
(salaries, accounting, etc), which usually
depend on the accounting laws of the
country, and so thus less variation from
institution to institution. When they are
used in other contexts (for example a
LMS), usually the HEI has to change or
adapt its processes to conform to the
software.
• Analysing the outsource approach reveals
two major problems. The first is cost.
A dedicated application that covers all
needs of an institute with the size and
complexity of a medium sized HEI can
cost well above 2 Million Euros. But
the main problem with this approach is
that the rules and processes at the HEI
change very often, and are a priori very
difficult to put on paper. In this case the
communication gap is evident and the
derived costs from constantly changing
the systems with new functionalities
increases the overall cost.
• In-house Development is usually done by
technical HEI staff, in close connection
with management and academic officers.
This technical staff usually has no research
or teaching functions besides some
introductory courses. When an inhouse
IS project starts, normally it begins as a
small project and it progressively grows
15 The FenixEdu Project: an Open-Source Academic Information Platform
Integration of Business Goals 2.2
In order to counter balance the above
weaknesses, we decided to fully
integrate the Fenix project with the HEI
business goals: knowledge transmission,
knowledge creation and knowledge
application. The Fenix project became an
added value for each one of these goals:
in size and complexity as more and
more functionalities are integrated. The
technology to be used is chosen at the
start of the project and it often becomes
out-dated with time. The project grows as
the years pass.
Technical staff spend more and more
time providing user support and
code maintenance and have an everincreasing difficulty getting new modules
implemented. On the other hand, time
and financial constrains work against any
change in technology.
•
•
By analysing the different approaches we
concluded that the difficulties exposed
above occur due to a fundamental flaw.
The problem is that these approaches
do not integrate the development with
the HEI core business. The development
and maintenance of HEI IS is usually
regarded as an extraneous process, albeit
necessary, to the HEI core business.
•
•
•
• Knowledge Transmission – Fenix is used
as a pedagogical content and tool in
software engineering courses. In this way,
students can have access to a large scale
real world application instead of working
with toy problems;
• Knowledge Creation – Fenix is used as
a research artefact. Researchers use
the HEI IS as a case study and as a
demonstration of new techniques;
• Knowledge Application – Fenix is also
seen as a software application. The
HEI computing services play the role of
industry and establish a contract with
research staff for knowledge transfer.
As an outcome of this strategy, the
following results are achieved:
• Flexibility – Research results can show
how new techniques may be applied
to Fenix and the associated cost may
be assessed and evaluated. With this
approach, technological changes are
possible with less risk.
• Sustainability – BSc or MSc students
can develop new components for Fenix,
in the context of a thesis or a grant from
the institution, increasing its functionality
at a low cost. Moreover, since software
engineering students learn about Fenix
in their regular courses, the problem
that often stems from staff mobility is
mitigated, since knowledge about the
system is spread among a large number
of professionals.
Market support
Local Operation
Human
Resources
Availability
Multi-site
implementation
Academic
Testbed
Sustainability
Open-Source
Product
Pedagogical
Content
Knowledge
Application
Knowledge
Transmission
Fenix
Project
Knowledge
Creation
Research
Artefact
Keep technology
up to date
Keep product
competitiveness
17 The FenixEdu Project: an Open-Source Academic Information Platform
To solve the remaining objectives, namely
adaptation, management change and
government change, we integrated the
project with the software development
market. This was achieved following an
open-source market approach.
The main goal of integrating with
the market was to motivate external
institutions to use the Fenix application.
These external organizations can be other
HEI or software companies providing
installation and configuration services.
Since Fenix is published as open-source,
the clear advantage to other HEI is to
obtain a system without licensing costs,
which is independent of a single software
company, and where business rules and
encoded knowledge is open to external
assessment. HEI may choose to internally
follow the same integration with HEI
strategy or to outsource installation and
configuration.
Software companies also benefit
according to an open-source business
model. For instance, they can reduce
the high costs associated with code
regeneration when the technology starts
to become obsolete. Moreover, these
software companies take advantage
of a large number of human resources
that have know-how on the system,
since a large number of former software
engineering students were trained in
the platform), therefore reducing internal
training and development costs.
The adaptation objective is accomplished
because when Fenix started to be used
by different HEI it evolved to become more
flexible and adaptable.
Figure 4
(previous page)
Fenix strategy model.
In terms of management change,
since Fenix is used by different HEI,
it will be more resilient to changes of
management decisions made by a single
HEI management board. Moreover, since
the open source model enables several
software companies providing Fenix
services to compete in the market, there
is an implicit cost control, reducing the
impact of fluctuations on government
funding.
18
Fenix Features
and Functionalities 3
Role based approach
Multi-language support
Course support
Academic management support
Administrative support
Scientific support
Building and infrastructure management
Admissions and on-line application
support
Website management
Other functionalities
Roles and associated functions As stated before, the implementation of
the Fenix system at IST integrates on
a single platform all academic activities
and related administrative support. In this
chapter we present a high level tour of the
system and an overview of the system at
the functional and operational levels.
As usual, in all HEI, the academic reality
is a continually ever-changing process,
due to changes in regulation, procedures
and new challenges of the academic
environment. The Fenix system reflects
this reality and is continuously adapting to
new requirements and feature requests.
Given the dimension of the system, the
description contained in this chapter does
not attempt to provide a detailed view of
all system functionalities, but tries to offer
a systemic and structured view of the
main features at the operational level and
of the related academic processes.
Role based approach 3.1
Being a critical IS that keeps track of all
institutional academic records, security
plays a critical role at the core of the Fenix
system. At the infrastructural level, security
is handled using conventional approaches,
including authenticated access for
all management and configuration
tasks, authenticated access requiring
mandatory encryption by Secure Sockets
Layer (SSL), action logging, encrypted
backups, and tight control on operating
system access and management. At the
application level, security is handled by
an advanced Access Control List (ACL)
process, which implements a tight control
on data access.
At the operational level, this ACL process
translates to a role based approach.
Each operational role has a different set
of privileges regarding data access and
manipulation. Each authenticated user of
the Fenix system has one or more roles, in
the institution (see Figure 5).
When assigned to a user, each role grants
access to a different application portal,
where the user has access to different
types of information and process control.
Such roles include, for example, Student,
Teacher, Researcher, Degree Coordinator
or Space Manager. Each portal appears
as a different menu in the web application
(see Figure 6).
3
Figure 5
(next page)
Role based access
control model.
User x
Role 1
Role 2
User y
Role 3
User z
Role 4
Role 5 (...)
Access Control
Layer
Functionality 2
Functionality 3
Functionality 1
Functionality 4
Domain
(...)
20
All Fenix users have access to two basics
portals: the communication portal and
the personal portal. The communication
portal is the first one and grants access to
the internal information board, as well as
to search queries over the user directory,
providing access to user identification,
location and contacts. The communication
portal also provides a basis for e-mail
communication at any institutional unit
level (subject, course, department, or
institutional level). However, the role of
the user within the system imposes strict
restrictions on the available recipients (for
example, only higher level management
has access to institution wide e-mail
distribution, while regular teaching staff
may have access to e-mail distribution
at the subject and course level). The
personal portal provides access to a
user’s personal information, as well as
password management and the user’s
institutional web page management.
A non-exhaustive list of roles and
associated functions is summarized in
section 3.11.
Figure 6
Login screen. Each menu on the top of the screen maps a specific user role in the scope of the institution and
provides access to a different set of data objects and management processes.
21 The FenixEdu Project: an Open-Source Academic Information Platform
Multi-language support 3.2
The flow of knowledge in a society
directly influences its progress in all areas,
from its social-economic status to its
technological capability. Nowadays, the
success of higher education institutions
largely depends on their capability for
communicating at an international level.
The Fenix application infrastructure offers
flexible multi-language support that
potentially enables the simultaneous use
of multiple languages, both for application
features and user generated content.
Of course, the consistent maintenance
of content in several languages is not
practical, but users are encouraged to
provide content at least in Portuguese and
English (see figure 8). Most Fenix features
and static content are available both in
Portuguese and English. However, as
stated before, the adopted model could
easily support more than two languages
simultaneously. The default language is
automatically selected by the locale (which
can be derived from the default language
set by the user’s web browser).
In spite of this multi-language support and
effort, some content and even some static
labels may lack English or Portuguese
translation. In these cases, the content or
feature is shown in the available language,
regardless of the locale, sometimes
providing a mixed and less consistent
result. This is a slight shortcoming of this
approach.
Fénix
PT
EN
...
Figure 7 (left)
Multilanguage support
Figure 8 (top)
CMS multilanguage support
22
Course support 3.3
Among the wide range of tools that
the Fenix application provides, there
are several tools for transmission of
knowledge from teachers to students.
Every single course is linked to a
dedicated site managed by the teaching
staff that includes:
•
• News, information and announcements
regarding the course;
• A powerful, easy to use, web based
content management system;
• A forum which may be shared and used
by teaching staff and students;
• A planning board and summary board;
• Class schedule and timetable;
• Evaluation schedules and grades;
• On-line tests;
• Curricular information.
•
•
•
•
•
•
•
One of the main benefits of this approach
is to enable users to have a standard
interface for accessing information on
all courses. While the teaching staff may
customize the course page creating
additional sections and content, most
of the basic structure remains invariant
between courses, enabling a consistent
Figure 9
Typical course page.
Figure 10
Creating an
on-line quiz.
user experience. This shortens the time
required to find information, since it is
organized very similarly for all courses.
Teachers can also import content from
sites of the same course in previous years,
providing a first draft of the page at the
start of a new academic year, reducing the
time required to setup the course page
each year.
On-line test features can be used for
surveys, for self-evaluation and for
evaluation of students. Questions to be
used on on-line tests can be imported,
from files formatted under the IMS
Question & Test Interoperability (QTI)
version 1.2 specifications (IMS Global
Learning Consortium, Inc., 2002). There
are many available tools such as the IMS
Asset Designer, which support creation
of content in this format. One such tool,
named LEIA, was developed in IST to
generate variations of questions from a
single model question. QTI is one of the
bases considered in the development of
the Sharable Content Object Reference
Model (Model (Jesukiewicz, 2009)
standard for web-based e-learning.
23 The FenixEdu Project: an Open-Source Academic Information Platform
Academic management support 3.4
Designing the course structure for each
degree is a complex process requiring the
participation of different members. While
such a structure is designed from scratch
only once in time, it is successively
redesigned every year for reasons that
include changes in scientific knowledge,
technological development or regulatory
changes. All areas of degree design are
evaluated and monitored by the Fenix
application, providing an automatic check
that most regulatory conditions are verified
(namely ECTS number, course preconditions, distribution by scientific groups
and areas, etc).
Once approved by the scientific board,
the plan and structure of each degree is
automatically mapped into the academic
administrative back-office. During
student enrolment, which happens at the
beginning of each term, each student
chooses on-line the courses that he/her
wants to attend. During this process, the
student’s choice is automatically validated
against his/hers degree curricular plan and
historical academic record.
Another driving force for changes in
the curricular structure of a course is
academic quality control provided by
feedback from students and faculty.
Figure 11
Degree plan interface
(partial view).
At the end of the term, students,
teachers, student representatives and
degree supervisors fill out on-line surveys
regarding several areas of the learning
process. The result of these surveys
is subject to a deep statistical analysis
and is correlated with other academic
information, such as student workload,
assessment results and attendance
levels. This analysis provides the school’s
management and department executive
boards with relevant information that is
taken into account when reviewing or
adjusting academic courses, degrees,
class schedules and it is the main tool for
quality control of academic performance.
24
Administrative support 3.5
In our information age, one expects
to be able to do almost any activity
provided that an internet connection is
available. The Fenix user interface is fully
web based and, as would be expected,
it allows students to enrol in courses,
pick their class schedules, request
documentation and certificates, access
course documentation and do many other
activities over the Internet. It is clear that
the availability of such services, twenty
four hours a day, seven days a week,
allow users to self organize their schedule,
reducing the time and energy required to
take care of administrative details.
Schedule preparation and classroom
allocation is a crucial activity that is
developed well before each enrolment
period begins.
This entire process is fully monitored
and checked with the help of the Fenix
platform, including the analysis of class
overlap, room allocation, schedule
consistency, etc.
During the enrolment period,
administrative staff monitor the overall
process and check for issues that rise
such as:
•
• classes that fill up, preventing more
students from enrolling in them;
• un-submitted grades from the previous
term, preventing students from enrolling
in subsequent courses (due to preconditions in enrolment rules or other
regulatory restrictions);
•
Activity at IST is mostly structured in
two terms: winter term and spring term.
The winter term typically spans from
September to February, while the spring
term spans from March to July. Most
curricular units are lectured on a single
term each year. As in most HEI, each
term at IST starts with an enrolment
period, followed by a class period and an
examination period (see figure 13).
Once the term is under way, administrative
staff work on the examination period
that occurs near term end, allocating
classrooms, as well as meeting rooms and
event halls for one time activities, and also
scheduling classes and classrooms for the
next upcoming term. All these activities
are performed using the Fenix application.
Figure 12
Class schedule - room
view
The Fenix application also supports the
assignment of a tutor to each student.
If assigned, the tutor takes care of the
student’s enrolment process on his/her
behalf and he/she has access to some
interfaces to supervise the student’s
progress during the class period.
Figure 13
Typical HEI life-cycle.
Class
period
IST
Life Cycle
Exam
period
Enrolment
period
25 The FenixEdu Project: an Open-Source Academic Information Platform
Scientific support 3.6
A common asset of any HEI is to have
a centralized database containing
the curriculum of both teachers and
researchers and an institutional repository.
The Fenix application provides each
teacher and researcher with a portal for
managing one’s curriculum in a structured
way. Having this module fully integrated
with Fenix means that part of the curricular
information is automatically filled out with
data retrieved from the academic modules
and from the human resource database,
namely title and career evolution, lectured
classes, supervised students, participation
in evaluation committees and so-on.
Moreover, it enables each researcher
to record more specialized data, as
publications, participation in projects
and other information that cannot be
automatically retrieved from the basic
academic database.
This curricular module enables the
automatic evaluation of scientific
production at global faculty level, and also
at all intermediate levels (Department,
Scientific area, research group unit, and
so-on). This is a powerful tool that helps
a complete management, analysis and
evaluation of scientific production.
Experience shows that keeping a
structured scientific curriculum is a
laborious and time-consuming task.
Moreover, researchers often have to keep
their curriculum records updated in several
different platforms. Most researchers
would like to see a better integration
between these different platforms,
simplifying curriculum maintenance.
IST is currently developing a new module
that will be combined with the Fenix
platform (the SOTIS project) that will
integrate the curriculum management
platform with a repository database and
that will significantly ease the task of
curriculum maintenance. Since most
publications are already described in some
meta-format somewhere in the web, the
SOTIS system will actively harvest public
databases and other bibliographic sources
and it will attempt to identify bibliographic
entries that may have been authored by
registered Fenix users. Each time the
platform finds a candidate bibliographic
entry, it is submitted to the corresponding
user, who just have to validate if he/she
authored or co-authored the publication.
In affirmative case, the bibliographic
information is automatically added to the
user curriculum and, when the content is
available, to the institutional repository.
This spin-off project is being developed
in cooperation with IST researchers who
are tackling several challenging issues,
such as:
•
•
Figure 14
SOTIS harvesting
model.
•
• how to extract meta-data from data
sources available in different formats;
• how to cross-reference publication
authors with registered users based
on the short names often used in the
publications;
• other complex issues related with metadata harvesting and processing.
Contents
Harvesting
Collection
and processing
External Sources
Validation
Metadata
IST
Repository
26
Building and infrastructure
management 3.7
Another feature provided by the Fenix
application is the space management
module. This module allows registration
of every space managed by the school,
including campuses, buildings and rooms.
Several attributes can be associated
with each space, such as area, capacity,
available multimedia equipment and
furniture and associated quality attributes.
Blueprints can be uploaded for each
campus and for each building level (see
Figure 15). Searching for spaces can be
achieved either by navigating through the
blueprints, or by submitting a search form.
Admissions and on-line
application support 3.8
To capture a greater number of students
and to boost student mobility, on-line
applications are another relevant feature
provided by the Fenix application. The
platform currently supports on-line
applications for most courses. In each
case, any potential student may apply
from anywhere in the world, by filling
out forms and uploading any required
documentation.
One of the challenges in on-line
applications is how to validate a user’s
identity. Since the Fenix application is fully
integrated with national authentication
services, Portuguese citizens can identify
themselves providing strong authentication
using their National e-ID Card. Recent
developments include the extension of
this strong authentication method to an
international level, through the European
e-ID interoperability platform developed
in the scope of the pan-European project
STORK. This topic is discussed in more
detail in Chapter 5.
When spaces are classrooms or meeting
rooms, scheduling and reservation is
provided by the system. Any user can
check room availability at anytime.
Figure 15
Example of the space
management interface.
27 The FenixEdu Project: an Open-Source Academic Information Platform
Website management 3.9
Since the Fenix application integrates a
powerful CMS system, the application
includes the required tools to easily create
websites that are fully integrated with
the core faculty database and provides a
high level of customization. This includes
support for creating menus, sections,
sub-sections, announcement pages,
and so forth. These websites are usually
Other functionalities 3.10
As a system that encodes all
organizational structure and user
information, Fenix includes several
auxiliary modules and add-ons that assist
administrative support and workflow
management for several processes
that are not provided by the existing
ERP platforms. This includes several
auxiliary tasks, as student residence
management, parking management, online access to financial data of scientific
and development projects, management
of institutional websites, research staff
evaluation, several supervision and
authorization activities related with the
management, scientific and pedagogical
boards.
associated to a generic faculty unit,
which can range from a full academic
department to a small research group.
Since users can be easily associated to
any of these units, such websites may
provide an automatic user directory
with contacts and personal information,
associated scientific production and
related information, at unit level.
Another add-on module to the Fenix
system is the Bennu framework and
associated applications, also developed
at IST, briefly described in section 4.4.
While not strictly part of the academic
platform, it integrates the organizational
and user information of the Fenix platform,
and is currently the basis for several IST
workflow processes. This include the
management of several administrative
tasks, namely acquisition processes,
travel authorizations, administrative
staff evaluation, internal staff transfers,
document management, etc.
Figure 16
Typical CMS
management interface
28
Roles and associated functions 3.11
A non-exhaustive list of roles and
associated functions is depicted int the
following list.
Academic Administrative Office
School staff who are in charge of student
registration, enrolment and academic
administrative processes.
On the left we have the role being
described and who it is attributted to.
•
•
•
•
•
•
•
•
Administrator
Technical staff that are in charge of the
Fenix application.
Alumni
Former students.
•
•
•
•
•
•
•
•
Candidate
Any potential student who applies to a
program or degree offered by the school.
•
•
•
On the right we have the functions
associated with each role.
Main functions available:
• student admission, enrolment and
management;
• degree transfer;
• management of tuition, insurance and
• fees;
• issue of documents and certificates;
registration and validation of grades and
mark sheets;
• production of academic reports on a year
and degree basis;
• processing and validation of applications;
• Configuration of access permission to
each office personel by the academic
office supervisor.
Main functions available:
• configuration and monitoring options of
the overall application.
Main functions available:
• curriculum access;
• self update of employment, professional
and academic information for
dissemination purposes;
• request of documents and certificates;
search for alumni;
• access to institutional news, events and
publications;
• subscription of institutionale-mailing lists;
• access to a personel homepage;
• access to an e-mail account.
Main functions avilable:
• monitoring of the application status;
• personal information update;
• upload of requested or optional
documentation.
29 The FenixEdu Project: an Open-Source Academic Information Platform
Communication
Any user of the system.
Coordinator
Teaching and administrative staff who
are in charge of the supervision and
management of a degree.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Curriculum Manager
Staff members that manage and configure
the curricular plan of each academic
degree.
•
•
•
•
•
•
Main functions available:
• assignment of additional team members;
• assignment of scientific commission
members;
• management of the degree website;
• access to the degree plan and curriculum;
• access to degree students curriculum;
• management of degree applications;
• access to quality control reports;
• mail distribution to degree students and
teachers;
• management of thesis themes, distribution
and control (if the degree includes a
thesis);
• management of PhD processes (if the
degree pertains to a doctoral program).
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Main functions available:
access to news;
access to forums;
e-mail delivery;
file sharing;
search for system users;
access to school directory and
organizational structure;
Creation and management of a course
requires the following information:
name, level (1st cycle, 2nd cycle, etc) and
type;
scientific area;
term and associated time span (dates, etc);
student workload;
ECTS credits;
objectives, program and evaluation
method;
bibliographic references.
The creation and management of a
full degree curriculum is based on the
definiton of curricular groups. Each
curricular group includes a set of
mandatory or optional courses.
For each course, the following information
must also be provided:
• prerequisites for the course;
• curricular year and term;
• rules that students must verify to enroll in
the course.
30
Delegate
Students nominated by their peers and
have a liaison role between students and
the instituion. Delegates are distributed by
degree and academic year.
Department Administrative Office
Administrative staff at academic
department level.
•
•
•
•
•
•
•
•
•
•
•
•
Department Member
Teaching staff who are in charge of the
academic department executive board.
•
•
•
•
•
•
Employee
This role is attributed to the instituion staff
who are neither teachers nor researchers.
Executive Board
The executive board is the institution’s top
management unit. It is usually composed
by teaching staff and administrative
executive officers.
•
•
•
•
•
•
Main functions available:
• e-mail communication to students;
• assessment of student schedules;
• access to quality control reports.
Main functions available
• access to curricular course data;
• manage teaching staff allocation and
workload;
• access to class abstracts;
• generation of reports related with degrees
and courses;
• configuration of privileges regarding
degree coordination and scheduling;
• management of department thesis;
• management of the department website;
• sending e-mails to department members,
coordinators, students and delegates;
• sharing of files and documents with
department members.
Main functions available:
• view the scientific curriculum of
department members (teaching and
research staff);
• access statistics of department courses;
manage teaching staff service and
schedule distribution;
• coordination, evaluation and scheduling of
department courses and degrees;
• view and manage the department forums;
• send e-mail to department members;
• share files and documents with
department members.
Main functions available:
• access to own time cards (self);
• access to time cards of supervised staff;
Main functions available:
• access to reports regarding payment of
tuition and fees;
• student statistics for each academic year
and degree;
• tools for supervision of class abstracts
and evaluation methods;
• assignment of external supervisors;
management of applications to career
workshops.
31 The FenixEdu Project: an Open-Source Academic Information Platform
Grant
Manager Administrative staff who
manage scholarships awarded to students
and researchers.
•
•
•
Help desk portal
Help desk staff.
•
•
•
ID Card Manager
Administrative staff who participate in the
issuing of institutional identification cards.
Main functions available:
• management of contract information;
• management of personal information of
grant recipients;
• generation of reports and statistics.
Main functions available:
• user and password management;
• photo ID management, supervision and
approval;
• other operational tasks.
•
Main functions available:
• managemt of ID cards for students,
teachers, researchers and employees.
•
Main functions available:
• Special assistance to foreign students
during the enrollment process.
Library
Administrtaive staff in charge of school
libraries.
•
Main functions available:
• Management and supervision of the
number of users.
Parking Manager
Administrative staff who supervise the car
park.
•
Main functions available:
• Management and configuration of access
to the car park.
International Relation Office
International liasion office.
Pedagogical Board
Teaching staff in charge of supervision
of pedagogical subjects and academic
quality control.
•
•
•
•
•
•
Person
Any valid user of the system.
•
•
•
•
Main functions available:
• Analysis of student weekly work load (by
degree, curricular year and/or course);
• Supervision of course information and
curriculum;
• e-mail distribution to all academic user
groups;
• file sharing with specific user groups;
manage the election process of student
delegates;
• supervision of course progression, reports
and evaluation methods;
• supervision of quality control surveys;
Main fucntions available:
• manage and update personal and contact
information;
• change their password;
• request access to the school’s parking lot;
• manage their institutional homepage;
32
Project Manager
Teaching and research staff who are
in charge of a scientific or institutional
projects.
Public Relations Office
Public relations staff.
•
•
•
•
•
Rectorate Administrative Support
Administrative staff of the rectorate.
•
Researcher
Teachers and researchers.
•
•
Main functions available:
• Access to project finantial data.
Main functions available:
• managing news and information in the
instituional site;
• e-mail distribution to students, alumni,
teachers and researchers;
• management of simple user surveys
related with public events;
• access to a restricted set of student and
alumni information.
Main function:
• acess to documents pending rectorate
processing.
Main functions available:
• registration of sicentific and other
activities that make part of the official
user professional curriculum (including
publications, conferences, patents and
prizes;
• e-mail distribution to reserachers of the
same research unit.
Residence Manager
Staff who manage student residences.
•
Main functions available:
• management and control of residence
registration and fees.
Resource Manager
This role is attributed to administrative staff
who support institutional schedules and
resources, including degree and course
schedules and room allocation.
•
•
•
•
•
•
•
•
Main functions available:
management of academic periods;
management of class schedules;
management of tests and exam dates;
room allocation for classes, evaluations
and other events.
33 The FenixEdu Project: an Open-Source Academic Information Platform
Scientific Board
Administrative staff of the school’s
scientific board.
•
•
•
•
•
•
•
•
•
•
Space Manager
Administrative staff in charge of
supervisition of buildings and related
infrastructure.
•
•
Statistic Office
Administrative staff who are in charge of
overall statistics, reports and academic
quality control.
•
•
•
Main functions available:
• supervision and management of course
information and degree curricula;
• management of equivalence plans;
• management of degree coordinators and
degree coordination teams;
• supervision of student applications and
student transfers.
• management of the 2nd and 3rd cycle
thesis processes;
• management of teaching staff workload;
• support of scientific activities;
• management of protocols established with
3rd party institutions;
• e-mail distribution to all user groups;
• files and document sharing with specific
user groups.
Main functions available:
• Registration of data related with buildings
and infrastrutcuture, including campus,
space geographic division and structure,
rooms, etc.
• Registration of attributes of each space,
including area, capacity, available
multimedia devices and general
equipment.
Main functions available
• generation of statistics and reports
regarding academic processes;
• computation and management of ECTS
classification;
• management of quality control surveys to
students and teaching staff;
alumni data statistical analysis.
34
Student
All students.
•
•
•
•
•
•
Main functions available:
• view his/her curriculum and status;
• view his/her class schedule and
evaluation calendar;
• view his/her tutor (should one have been
appointed);
• view his/her delegate;
• access administrative services, including
document and certificate requests;
• access course forums;
• filling out inquires regarding academic
quality control;
• vote for student representatives
(delegates);
• subscribe to ad-hoc events and
workshops;
• perform on-line tests;
• access course excercises and projects;
• manage his/her thesis (if it applies);
• course enrollment;
• select his/her class schedule;
• exame enrollent.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Teacher
All teaching staff.
•
Main functions available:
manage his/her course;
manage his/her course webpage;
Student supervision;
access student grades;
request room reservation for non regular
classes;
• manage thesis processes;
35 The FenixEdu Project: an Open-Source Academic Information Platform
Tutorship
Administrative staff who support tutorship.
•
•
•
•
Website Manager
Users who manage an institutional
website hosted on Fenix CMS (does not
include regular course websites).
•
Main functions available:
• assignment of tutors to students;
• evaluate performance of tutored students;
• reports on students regarding overall
performance;
• reports on tutors.
Main functions available:
• Website content structuring and
management.
36
An Innovative
Technological Approach 4
The original software architecture of Fenix
A software architecture for applications
with a rich domain model
The Fenix Framework
The Bennu Framework
A visual representation of the Fenix
domain model
The development of Fenix started in 2002
with a well-defined software architecture
that was based on the best practices
for web application development at that
time (Fowler, 2002; Singh, Stearns, &
Johnson, 2002; Alur, Malks, & Crupi,
2001). That software architecture was
the basis of the project infrastructure
during its first years of rapid growth,
but proved to be inadequate as the
complexity of the application increased.
Thus, as the problems of the original
software architecture started to surface,
the Fenix team began the development
of a new software architecture that went
into production for the first time in the
late summer of 2005. Since then, the
architecture was further developed and
evolved into a set of additional frameworks
that are independent of the Fenix web
application and that are, in fact, being
used in the development of several other
applications, proving the success of this
new approach.
This section presents a high-level
description of the newly developed
software architecture for Fenix,
emphasizing some of its innovative
aspects, which are still pioneering in the
area of web application development.
This presentation starts with a brief
overview of the original software
architecture of Fenix, which is still one
of the most common architectures for
web applications, and identify some of its
problems. Then, the key ideas underlying
the new software architecture of Fenix
are introduced. In sections 4.3 and 4.4,
we briefly describe two of the major
frameworks that emerged from the Fenix
project.
4
37 The FenixEdu Project: an Open-Source Academic Information Platform
The original software
architecture of Fenix 4.1
Originally, Fenix was developed using the
typical 3-tiered software architecture for
web applications, where the three tiers
are a web browser, an application server,
and a relational database server. In this
architecture, a user interacts with the web
browser, which makes HTTP requests to
the application server (as a result of the
user actions) and renders the HTML page
that is returned by the application server.
The application server, on the other hand,
receives HTTP requests from the web
browser and is responsible for processing
those requests, typically by requesting
data from the database server, processing
that data according to the application’s
business logic, and eventually writing
some data back into the database (if the
request involved changing some of the
application’s data). In Fenix, the database
tier is supported by the MySQL relational
database management system, and the
application server is implemented using
the Java platform.
The architecture of web applications
evolved into this standard structure, where
the application server is separate from the
database server (effectively moving from a
2-tier architecture to a 3-tier architecture),
because it allows programmers to use
different technologies for two crucial
aspects of a web application: (1) the
implementation of the application’s
business logic, and (2) the persistent
storage of the application’s data.
Whereas managing persistent data that
may be accessed concurrently has
been the realm of relational database
management systems (RDBMS) for
decades, these systems often lack the
expressiveness of modern object-oriented
programming languages to implement the
complexities of an application’s business
logic. Thus, the separation of these two
tiers seeks to combine the best of both
worlds: the database tier continues to do
what it does best — to manage persistent
data —, and the application tier is free to
implement all of the business logic using
whatever programming language fits best
its needs. This is of special relevance
when we are dealing with applications with
a rich domain model.
We say that an application has a rich
domain model when its domain is
composed of many different entity
types, often with subtle variations and
intricate relationships among them.
Moreover, besides having a complex
structure, such domains typically exhibit
complex behaviours that involve many
different entity types at the same time.
Given the scope and range of the Fenix
functionalities already summarized in
chapter 3, it should be clear by now that
Fenix fits well within this category: the
Fenix domain model currently consists of
more than 1200 different entity types with
more than 1700 bidirectional relationships
among them.
Developing such a complex domain model
poses serious development challenges,
and requires highly disciplined use of
the best software engineering practices
and design principles. This is where the
object-oriented design and programming
may make a difference, if properly used,
suggesting that the 3-tier architecture
described above is a good solution, so
that the application’s domain may be
implemented in the application server
using a language such as Java.
Yet, implementing the application’s domain
logic using an object-oriented model is
at odds with the relational nature of the
data stored in the database tier, because
it is not easy to map one model into the
other. To tackle this difficult problem, it is
common practice to rely on an Object/
Relational Mapping (ORM) framework
that implements most of the heavy-lifting
needed to bridge the gap between the
two worlds. So did Fenix, which used the
Apache ObJectRelationalBridge
(OJB) 2 as an ORM, hidden behind a
layer implementing the Data Access
Object (DAO) design pattern (Alur,
Malks, & Crupi, 2001). With today’s
technologies, the equivalent solution is
to use an implementation of the Java
Persistence API (JPA) specification to play
the role of ORM.
2 See http://db.apache.org/ojb/.
Still, regardless of which ORM
implementation is used, a key aspect
of this architecture, and one where the
new architecture of Fenix departs from
standard practice as we shall see, is that
all of the ACID (atomicity, consistency,
isolation, and durability) properties of the
application’s transactions are ensured
by the database tier, rather than by the
application server. And in here lies one of
the problems of this architecture for an
application such as Fenix - an application
with a rich domain model.
To ensure that the database tier detects
conflicting accesses to the application’s
data, all of the data accessed by a
business operation must be directed to
the database by the application server.
The problem, however, is that being the
database a separate component from
the application server, such accesses
are expensive, because they incur into
remote calls and data marshalling.
When the data needed to process a
user’s request may be fetched from the
database in few requests, that is not
a big problem, because the latency of
the connection between the user’s web
browser and the application server is
typically much larger than the latency of
the connection between the application
server and the database server, thereby
hiding the cost of the round-trips to the
database. Unfortunately, for applications
with a rich domain model, such as Fenix,
it is not uncommon to have business
operations that involve fetching hundreds
to thousands, or even millions, of different
pieces of data from the database in a
sequential fashion.
38
In such cases, the combined latency of
all the round-trips to the database may
add up to a long response time to a user’s
request, from many seconds to several
minutes.
In such cases, programmers have
to resort to one or more of several
approaches to get acceptable
performance for their applications, from
caching data on the application server
to carefully crafting complex queries
that fetch more data with each roundtrip to the database. These solutions,
however, either interfere with the semantic
properties of transactions, in the former
case, or make the development much
more complex, error-prone, and brittle,
in the latter case. Often, this leads to a
programming approach that precludes
the use of a natural object-oriented
programming model, thereby defeating
one of the purposes of the architecture in
the first place.
A software architecture for applications
with a rich domain model 4.2
In late 2003 Fenix was starting to face
some of the problems described in
the previous section. Having a domain
model with close to 200 different entity
types and implementing more than 1000
different services of varying complexity,
some of the services were taking too long
because of the excessive round-trips to
the database. The need to solve those
performance problems led developers
to add more responsibilities to the data
access layer, by creating Data Access
Objects that implemented complex
SQL-like queries to the database tier.
This, however, resulted in poor use of the
object-oriented programming paradigm,
with little opportunity for reuse and with
the proliferation of duplicate code.
Moreover, the transactional semantics
provided by the persistence mechanisms
(including the database tier) were
not strong enough, resulting often in
the violation of the application’s data
consistency. In fact, most RDBMS do not
provide strict serializability semantics to
their transactions, falling back to weaker
consistency guarantees such as snapshot
isolation or repeatable read isolation levels.
The new software architecture for Fenix
was designed to address both the
performance problems and the software
development problems that resulted
from its original, and still common today,
software architecture. The goals for
the new architecture were to facilitate
the development of a persistent, fullytransactional, object-oriented rich domain
model, while at the same time improving
the application’s performance.
The key, and pioneering, element of
the new architecture is the use of a
Software Transactional Memory (STM)
in the application server tier to ensure
the atomicity, consistency, and isolation
properties of transactions, without relying
on the database tier. Thus, in this new
architecture the database tier is used
to ensure only the durability property of
transactions.
STMs have been the subject of intense
research since 2003 (even though
they were proposed earlier), as an
alternative to lock-based mechanisms to
synchronize access to shared memory
in parallel programming. Using an STM,
programmers developing a concurrent
program for a shared-memory system
do not need to obtain locks to access a
shared object. Instead, they just have to
identify which operations are supposed
to run atomically, and the STM runtime
system ensures that the operations run
with the intended semantics, eventually by
aborting and restarting conflicting atomic
operations that run concurrently.
Unlike relational databases, STMs typically
provide strict serializability semantics for
their transactions, but have no support
for durability. Moreover, STMs are usually
embedded in a programming language,
providing atomic actions at the language
level over the language’s objects.
For the new architecture of Fenix,
we developed an STM for the Java
programming language — the Java
Versioned Software Transactional Memory
(JVSTM) library 3 . This STM was the
first multi-version STM, and was the first
STM to be used in a real-world production
environment.
The design of JVSTM and of the new
architecture for Fenix was based on the
assumption that many web applications,
including Fenix, have a very high read/
write ratio, meaning that they do many
more operations that only read data than
operations that read and write data.
3 Available at
http://web.ist.utl.pt/~joao.cachopo/jvstm/.
39 The FenixEdu Project: an Open-Source Academic Information Platform
Since the development of the new
architecture, this has been confirmed
for Fenix, where only 2% to 4% of its
transactions write (Carvalho, Cachopo,
Rodrigues, & Rito-Silva, 2008).
Thus, using the JVSTM to ensure the
proper transactional properties of the
operations removes the need to access
the data from the database in the vast
majority of cases, provided that the data
is already in memory. Given the generous
amount of memory that is possible to
find in modern hardware, this assumption
proves to be easily satisfied for an
application with moderate memory needs,
such as Fenix, which has a database of
approximately 20 Gb. Note, however, that
this architecture does not need to have
all of the application’s data in memory, as
in the more recent approaches based on
in-memory databases. It just performs
better if the data that it needs is already in
memory.
Whereas the use of an STM was a
key enabling technology in the new
architecture of Fenix, there are several
other aspects of the new architecture
that contribute to its success, such as
the use of a domain specific language
to implement the structural aspects of a
rich domain model, or the mechanisms
supporting the development of modules of
a system. In the next sections, we briefly
introduce the Fenix Framework and the
Bennu Framework that embody some of
these new aspects.
Both of these frameworks were originally,
and more recently, extracted from the
Fenix code base to make them reusable
for other applications. Both have already
been used in several other projects, both
at IST and by other software development
teams implementing products for their
own companies.
The Fenix Framework 4.3
One of the major design goals
underlying the development of the
4
Fenix Framework is that it should
provide a natural programming model for
programmers used to develop plain Java
programs without persistence.
Typically, a domain model is programmed
in Java by using Java classes to
implement the domain model’s entity
types. Relationships between entity types,
however, do not map that easily into Java
constructs. Instead, they are typically
implemented in each of the participating
entities’ classes, either as references to
other objects, or as collections of objects,
or both.
Moreover, classes corresponding to
a domain model’s entities have other
requirements that are not common to
classes implementing other types of
objects in the application. For instance,
their objects need to be persistent and are
typically shared among many concurrent
threads. So, these classes need to be
implemented specially, taking these
requirements in consideration.
Given the special nature and needs of the
domain model, in the Fenix Framework
the domain model is defined using a new
language that was specifically created
to allow the definition of the structural
aspects of a domain model. This language
is the Domain Modeling Language (DML),
which is a micro-language designed
specifically to implement the structure
of a domain model; it has constructs
for specifying both entity types and
associations between entity types. A
domain model defined in the DML is then
compiled into the corresponding Java
classes that correctly implement that
domain model structure in such a way
that allows the programmer to further
define the entities behaviours in plain Java
(Cachopo e Rito-Silva, 2006b).
4 The Fenix Framework is available at
https://fenix-ashes.ist.utl.pt/trac/fenix-framework.
The current version of the Fenix
Framework stores the application’s
entities in a MySQL database, but does
so automatically and transparently to
the programmer, relying on the JVSTM
to ensure the correct strict serializability
semantics. Therefore, the database is
completely hidden from the programmer.
This has two outcomes: (1) the
programmer cannot control the mapping
of objects to the database, and (2) there
is no way to take advantage of database
facilities such as joins or aggregate
functions. In return, programmers may
use all of the normal object-oriented
programming coding patterns, and are
encouraged to do so.
The Fenix Framework is also an excellent
example of the Fenix strategy described
in chapter 2. First, because it is a result
of research work that was done in the
context of the Fenix project. Second,
because it is used in the IST’s degree
on Information Systems and Computer
Engineering as a tool that students use to
develop new applications. Third, because
it serves as a basis for further research
done by MSc and PhD students, as
well as by senior researchers on several
research projects.
40
The Bennu Framework 4.4
The FenixEdu application is IST’s
solution to model its academic business
processes. The success of this
implementation made the application’s
source code to grow on average 138000
lines of code per year, since 2003. The
application has been developed as a
single module, having only a few borders
delimiting how objects interact in the
application. Albeit the application’s domain
model is well defined, and domain entities
encapsulate well their responsibilities,
there are no barriers between domain
objects. Consequently, developers are
unencumbered when programming
domain object interactions. While this
strategy allows for rapid development,
it greatly increases the applications
overall complexity and is more prone to
programming errors.
With a well-established presence in faculty
academic processes, in mid 2008 the
Fenix development team began to focus
more attention on the support provided
to other administrative processes. This
requirement to develop functionalities in
new business processes, coupled with
the teams desire to contain complexity led
to the creation of the Bennu Framework,
which is worth referencing in this scope
since it can be seen as a byproduct and
outcome of the Fenix project.
Simply put, the Bennu Framework
is an empty web-application, void of
business logic, containing all the technical
abstractions extracted from Fenix on
which business processes are developed.
Note that having this infrastructure
separate from the application also allows it
to be reused in other applications.
When developers model a business
problem using modules, they are
establishing well defined boundaries
for how objects may interact with that
module. Besides reducing complexity, this
strategy also promotes reuse. With the
compartmentalization modules introduce,
code is much easier to manage and
refactor.
Another significant improvement
introduced by the Bennu Framework is
the concept of a module. Functionalities
are added to the Bennu Framework
with modules. A module is a coherent
set of domain entities, domain logic and
interfaces for manipulating that domain.
Using the Bennu Framework, a webapplication is simply a set of modules
joined together. Developers can limit their
view to the modules they are working
on. Multiple applications can be created
deploying different sets of modules. At IST
we currently have five distinct Bennubased applications deployed, all of which
share some modules.
Figure 17
(next page)
Bennu architecture
model and example of
modules.
Out of the box, the Bennu framework is
a fully functioning web-application and it
provides modules with:
•
•
•
•
•
•
•
•
•
the concept of a user;
the concept of a group;
security features and access control filters;
a task scheduler and automation of task
execution;
• transparent and consistent persistence
of data.
Not all modules have to provide business
logic. They can simply be used to provide
other modules with more abstractions,
to hide infrastructure not provided by the
Bennu framework. Such modules already
developed include:
•
•
•
•
•
•
•
•
•
•
•
•
e-mail communication support;
file repository support module;
web-service communication module;
organizational structure module;
personal and contact information module;
geographic information module;
IST is currently working on the transfer
and decomposition of the Fenix
application into modules. However with
over 1200 domain classes and more than
1250000 lines of code, this is not an easy
task. Finding the appropriate boundaries
will take some time. But this effort will
be worth it as it will reduce maintenance
costs in the long run.
Mission Module
UI Component
Domain Module
Expenditure
Tracking Module
UI Component
Domain Module
Document
Manag. Module
Personal & Contact
Inform. Module
Geographic
Module
UI Component
Domain Module
UI Component
Domain Module
UI Component
Domain Module
Domain Module
Web- Service
Module
Email Module
File Module
REST Servlet
Domain Module
SMTP Adapter
UI Component
Domain Model
File System Adapter
Organizational
Module
UI Component
Domain Module
Bennu Framework
User
Interface
Data
Persistence
Security &
Acess Control
Task
Scheduler
42
A visual representation
of the Fenix domain model 4.5
The Fenix domain is a large complex
domain that includes several thousand
object classes. In order to develop a visual
representation of Fenix entities and their
relations, we used a design tool to data
mine gigantic graphs (see figure 18).
In this representation, each dot (graph
node) is a class and each line (graph edge)
is a relation. Colors encode the relation
type. Pink lines represent inheritance, in
which one entity is the specialization of
another, while the remaining are a relation
between two entities (e.g. Person has
a Card, Student has a grade). The final
representation results from an optimization
algorithm which attempts to distribute nodes
and edges in such a way that graph nodes
fill the overall graphic area and graph edges
are minimized. Note that optimization usually
stops at a local minimum and, therefore, the
final representation is not unique.
This graph visually encodes some
interesting components of the faculty
structure. The colours are separation
of important parts of the system. For
example:
Figure 18(next page)
The Fenix domain
model. The zoomed
area corresponds to the
area around the person
object class.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
cyan: Person;
red: Teacher;
ligher green: Student;
orange: Accounting;
blue: Personnel Section;
darker green: PhD;
yellow: organizational structure.
The most important entity is Person. This
entity represents the concept of a person
with which the college has a relation
with, either being a student, teacher or
employee. This is at the heart of the graph
because it is the most connected entity
(see zoomed area in figure 18).
Project Fénix Domain Model
Relational graph of Instituto Superior Técnico Academic Administration System Domain
Legend:
Entity
Relation
Inheritance
Person
student
teacher
accounting
personnelSection
44
Identity Management 5
Identifiers
Global Perspective
LDAP
Kerberos
Single Sign-on
Portuguese National e-ID Card
European e-ID support
SAML 2.0 Federation Support
As previously described, the Fenix
academic information system is
integrated with an advanced identity
management subsystem, which is
the basis of an Identity Provider (IdP)
service. This subsystem is the basis for
user authentication and management,
not only in the academic information
system, but also in all IST on-line services,
including all web based services, shell
login and desktop access, e-mail
services, WiFi wireless authentication,
Andrew Distributed File System (AFS)
access, Virtual Private Network (VPN)
and Voice over IP (VoIP) services. The
identity management subsystem is the
glue that links all these services together
and provides a coherent view of all IST
services.
Identifiers 5.1
The defining characteristic of The identity
management system is the unique
identifier that every user of IST services
possesse. In order to access any
electronic IST service each user has an
identifier comprised of the three letters
ist and a sequential unique number, for
example ist10010.
An IST identifier never expires and is
never reused. It is decoupled from both
roles and credentials. The decoupling of
roles means that there is only one type
of identifier regardeless of the user i.e.
students, teachers, researchers, guest
researchers. The actual roles performed
by each user are stored in application
specific storages.
The IST identifier is also decoupled from
authentication credentials. In fact, a user
may authenticate:
•
•
•
•
5
• Using a password stored in the IST
system;
• Using the Portuguese National e-ID Card;
• Using a credential from a federated
system;
• Using a federated European national
identity provider.
45 The FenixEdu Project: an Open-Source Academic Information Platform
Global Perspective 5.2
Whenever a user wants to access an
electronic service he must provide his
IST identifier, and authenticate using one
of the authentication protocols available
at that service. Although most services
support some Single Sign On (SSO)
system, the supported systems differ from
service to service. The solution was to
develop a forest of SSO systems with trust
relationships among them, so to the end
user it looks like a Single Source Sign On
(SSSO) system.
Each trust relationship (figure 19) maps
users credentials from one e-ID system to
another. However, not every e-ID system
has a trust relationship with every other
e-ID system. The LDAP and Kerberos
e-ID systems are at the core of most trust
relationships. Every other system either
has a direct trust relationship with one of
them or an indirect one (transitive trust).
Figure 19
Global perspective
of the identity
management system
WiFi
VoIP
VPN
Email
CIFS
RT
Proxy
Windows
Desktops
Radius
Active
Directory
LDAP
National
ID card/
European
eID
Kerberos
SAML 2.0
Federation
Web Applications
CAS
AFS,
Cluster
46
LDAP 5.3
The OpenLDAP service (OpenLdap
Foundation, 2011) implements the
Lightweight Directory Access Protocol
(LDAP) (Zeilenga, 2006) and it is the
primary storage of user personal
information. Each user has a LDAP record
containing a set of attributes according to
9 different attribute schemas:
• Core Schema
Cosine Schema
• Nis Schema
• InetPerson Schema
utlPerson Schema
• istPerson Schema
Samba Schema
EduPerson Schema
Kerberos Schema
Each schema defines a number of
attributes. Not all attributes are filled for
every user, but several attributes are
filled for most users. One of the core
attributes is the uid attribute. Each user
may have multiple uid attributes, in other
words, a user may be known by several
different identifiers. However, one of them
must be the IST identifier (for example
ist10010). Other uids may represent
legacy identifiers or identifiers for special
applications. Besides uids, every other
personal information like full name, photo,
e-mail address, phone number, password
and home directory in the Distributed
Files System, etc. is stored and accessed
through LDAP.
Upon registration every user gets an
entry in the LDAP storage with all the
mandatory attributes. There are several
methods to register a new user. All but
two (see sections 5.6 and 5.7) require the
execution of a privileged operation by a
system administrator on the Fenix system,
which fills in the user attributes, generates
a temporary password and creates a
LDAP user register. Some of the attributes
may only be changed by the system
administrator, others may be updated by
the user himself through a web interface
provided by the Fenix system.
In order to prevent that one single
system, generating too many LDAP
queries, hinders the performance of every
other system dependent on LDAP, the
LDAP service is replicated by 6 different
mirrors, each one handling on average
50 queries per second. This way, if one of
the services is overloaded with requests
almost only the service generating the
excess of queries gets affected.
The LDAP protocol is used both to
query for attributes and to perform user
authentication. Some applications use
LDAP directly for authentication through
a SASL module (Simple Authentication
and Security Layer), but most use it
as backend storage for other identity
systems, e.g. Kerberos and RADIUS,
thus creating a sort of trust relationship
between them.
Kerberos 5.4
Kerberos (Neuman, 2002) is one of
the most well known Single Sign On
distributed authentication protocols. At
IST, Kerberos is used directly by many
different applications, like the AFS and the
computer cluster, and indirectly through
the Active Directory (AD) identity system,
the CAS and LDAP.
Kerberos uses the LDAP service
as storage for user authentication
information, and LDAP uses Kerberos
for authentication, thus creating a trust
relationship between them.
47 The FenixEdu Project: an Open-Source Academic Information Platform
Single Sign-on 5.5
Although every user authenticates
within the global SSSO system with
the same credentials to access any
kind of application, they often need to
authenticate once for every application,
because The identity management
systems comprising the SSSO only share
authentication offline credentials, not online credentials.
However, web applications like Fenix,
Bennu and several others share one SSO
system, the CAS (JASIG, 2011). With
CAS, users only have to login once to
access every kind of web application.
Whenever a user accesses a web
application, with CAS support, without
being previously authenticated, his
browser is redirected to a login service
where the authentication takes place.
After being successfully authenticated
the user is redirected back to the original
service together with an authentication
token. While valid this token may be used
on every web application linked with the
CAS service.
The classical CAS authentication method
is the basic user/password method over
an https secure channel. However at
IST (figure 20) the user may also use a
Kerberos ticket, the Portuguese National
e-ID Card, or the European e-ID.
Portuguese National e-ID Card 5.6
Authentication with the National e-ID
Card or with another European e-ID is
fundamentally different from the other
authentication methods because the
credentials used are not stored in a central
storage; instead credentials are stored in
the card itself.
Authentication with the National e-ID
Card is especially suitable for enrolment
purposes and whenever it’s necessary to
recover a lost password.
Upon choosing the certificate in the card
the user is asked for a PIN and the https
protocol creates an authenticated https
connection between the users browser
and the identify service.
Usually the enrolment process in
academic management systems is a
manual assisted process because the
user does not exist in the system. In most
systems the initial enrolment process
must be performed in the presence
of an administrative officer, in order
to authenticate the user against their
personal ID documents. However, at
IST, the enrolment may be accomplished
automatically using the National e-ID
Card, provided that a list of authorized
national identification numbers is available.
The National e-ID Card provides a
strong authentication system that is
able to authenticate the citizen and link
it with a new user, through the national
identification number, without requiring the
physical presence of the user and third
party authentication.
The national identity number performs the
link between the citizen using the card for
authentication and a user enrolled in the
system, which is present in both the card’s
certificate and in the user LDAP attributes.
A user that has lost his/her password
may also initiate the recovery process by
identifying him/herself using the strong
authentication provided by the National
e-ID Card.
The National e-ID Card has a digital
certificate signed by a National Authority
that can be used on an https clientcertification authentication. The card
requires the insertion of a PIN to use
the correspondent private secret key
to establish the secure authenticated
channel. Thus, whenever a user wishes
to login with his national card the https
protocol requests a client certificate to
establish a secure session.
After authentication using the National
e-ID Card, the IST e-ID system generates
a CAS token that may be used on any IST
web-application until it expires.
48
Figure 20
The CAS login screen,
with 4 authentication
methods.
Figure 21
Authentication page National ID Card
Figure 22
Authentication page European e-ID
49 The FenixEdu Project: an Open-Source Academic Information Platform
European e-ID support 5.7
The CAS service at IST also allows
authentication with National e-ID European
systems from 17 member states (figure
23), through a specific CAS plug-in
developed as part of the European Project
Stork (http://www.e-ID-stork.eu/).
The developed plug-in allows every citizen
from any of the 17 member states to
authenticate to IST CAS service using his/
her National e-ID Card or system. This
feature is already available to perform the
enrolment of Erasmus students prior to
their arrival to IST, greatly simplifying and
speeding up the overall process.
The European Stork project is also
about attribute sharing. Having a source
of certified personal attributes greatly
simplifies any kind of user registration,
in particular in the scope of a student
enrolment process. In order to benefit
from that feature, IST has developed a
module to link the Fenix application with
the European e-ID infrastructure.
Given the critical nature of personal
attribute sharing, the developed
infrastructure takes special care with
privacy regulations of the participating
countries. In particular, no personal
attribute is recorded or transmitted crossborders without explicit consent from the
user and from his National e-ID system.
Figure 23
European e-ID
participating Member
States
SAML 2.0 Federation Support 5.8
SAML is an open standard for exchanging
authentication and authorization data
between security domains. From an
authentication perspective, SAML
provides the same service as CAS but
between different administrative domains,
i.e. the identity provider and the service
using the identity service does not need to
belong to the same administrative domain.
The Fenix ID subsystem supports
SAML 2.0 federations. Most local web
applications at IST use just CAS for local
authentication, because they are offered
just for local IST users. However, there
are several national services provided
and managed by Fundação para o
Cálculo Científico Nacional (FCCN), the
Portuguese National Research Network
(NREN), which are based on SAML
federated login. These web-applications
authenticate to a National Scientific
Research Federation of Authentication and
Authorization Infrastructure (RCTSaai) of
which IST is a full member. All these NREN
services are fully supported by IST IdP.
The IST federation support service acts as
a proxy between the SAML 2.0 federation
and the SSSO service of IST, thus allowing
any person enrolled with IST the use of
federated web applications.
14 Original Partners
12 in Reference Group
Enlargement: 3 Additional Members
50
Project metrics 6
This chapter presents a set of metrics
that contribute to the overall project
assessment.
Code size and evolution
Development team size
Performance
Third party implementations
Code size and evolution 6.1
Number of code lines: 1 194 573;
Number of classes: 8 382;
Number of functions: 1 360;
Number of different screen pages: 3 653.
The evolution of the number of code lines
since the start of the project is depicted in
figure 24.
The evolution of the number of classes
and relations since the start of the project
is depicted in figure 25.
Figure 24
(next page, top)
Evolution of the
number of code lines
between 2003 and
2011. Discontinuities
correspond to major
refactoring of the
source code.
6
Figure 25
(next page, bottom)
Evolution of the number
of domain classes,
relations and slots
between 2005 and
2011. Discontinuities
correspond to major
refactoring of the
source code.
1 400 000
1200 000
Total Line Count
jsp
1 000 000
java
Configuration Files
Other
Total Line Count
800 000
java
600 000
400 000
jsp
200 000
Other
Config. Files
0
2003
2004
2005
2006
2007
4000
3500
3000
2500
2000
Classes
1500
Slots
1000
Relations
500
0
2005
2006
2007
2008
2009
2010
2011
2008
2009
2010
2011
52
Development team size 6.2
As of 2011, the development team is
composed by:
Full time developers: 9;
Grants: 7;
Students: 1.
The evolution of the development team is
depicted in figure 26. It clearly shows that
when the project started the permanent
staff were few and there was a large
contribution on behalf of students, by
means of thesis and projects. As the
project matured, the permanent staff
had to be increased in order to provide
maintenance and regular project support.
At the same time, as the complexity of the
project increased, selected student with
grants gradually replaced regular thesis
students.
Performance 6.3
Average daily number of transactions:
731 296/day;
Peak number of transactions
(during enrolment period): 3 785 121/day;
The number of transactions in 2010 is
represented in figure 28. Note that there
is a ratio of 10 to 1 between the scales of
reads (left axis) and writes (right axis).
Third party implementations 6.4
Beyond IST, the Fenix platform was
deployed in seven higher education
institutions in Portugal. Deployment in
these institutions was developed by third
party independent software companies,
some of wich were created with the
participation of former IST development
staff.
Each Fenix implementation has different
maturity levels and, depending on the
institution, the number and type of
modules that were implemented. Besides
IST, major implementations of the project
are available at ISEG (Instituto Superior
de Economia e Gestão, http://www.iseg.
utl.pt/) and at ISCTE (Instituto Superior
de Ciências do Trabalho e da Empresa,
http://www.iscte.pt/).
At least three software companies
currently support installation and
development services of the Fenix
application.
Figure 26
(next page, top)
Development team
evolution.
Figure 27
(next page, center)
Evolution of the number
of methods and
functionalities.
Figure 28
(next page, bottom)
Number of transactions
in 2010.
53 The FenixEdu Project: an Open-Source Academic Information Platform
30
25
20
Developer
15
Grants
10
Student
5
Total
0
2001/02
2002/03
2003/04
2004/05
2005/06
2006/07
2007/08
2008/09
2009/10
2010/11
6000
5000
4000
3000
2000
1000
Methods
Functions
2004
2005
2006
2007
2008
2009
800 000
80000
700 000
70000
600 000
60 000
500 000
50 000
400 000
40000
300 000
30 000
200 000
20000
100 000
10 000
0
0
Jan.
Feb. Mar. April May June July Aug. Sep. Oct. Nov. Dec.
2010
Writes
Reads
0
2003
Reads
Writes
2011
54
Conclusion 7
Discussion
Ongoing and future developments
Being an integrated system that models
and encodes all areas of academic
activity, the Fenix platform had a huge
impact on IST activity. From the improved
communication between students and
teachers to the optimization of several
areas of administrative support, the Fenix
project was the basis for a revolution and
renewal of several traditional procedures.
Discussion 7.1
Today, all academic information is
available in a structured way to students,
teachers, staff and management board,
enabling many instantaneous decisions
and actions to be taken from any place in
the world where an Internet connection
is available. Several procedures that
often took several days or even weeks to
accomplish can today be performed from
any where, at any time. Student enrolment
at the beginning of each term, that was
before a one week long procedure, is
now accomplished in about one hour,
providing students on-line with accurate
data regarding available classes and
schedules, optional courses and all related
information. The instantaneous availability
to students of all teaching material, class
summaries and other documentation
enables an optimization of the learning
process and a closer connection between
all actors of the academic process.
On-line access to schedules, evaluation
data and all administrative information
turned the information system into an
integral part of the academic management
process. Moreover, given the consistent
and integrated model of all entities and
academic processes, the Fenix platform
enables to easily assess the effect of many
administrative and academic decisions.
As stated before, quality control was
another area that was deeply improved
with the Fenix platform through systematic
on-line surveys. This tight quality control
and its correlation with grades, student
and teacher performance and class online content, provide invaluable assistance
to the fast identification of troubled areas
and enable the continuous improvement
of the learning process.
7
55 The FenixEdu Project: an Open-Source Academic Information Platform
Ongoing and future developments 7.2
The continuous development of the Fenix
project poses several challenges. As
stated before, dealing with increased code
complexity and maintenance requirements
is one major issue in any software project.
The Fenix project is no exception. The
ever-increasing number of integrated
business cases, the complexity of the
underlying processes and the dynamic
of a modern research institution requires
daily new approaches and solutions.
In order to solve this trend between new
developments and existing complexity,
continuous technological innovation is
required. The Fenix project will attempt
to keep this trend, by combining new
requirements with the availability of
advanced research on information
systems at IST in order to generate
new technological solutions. The
combination of business requirements and
research offers the basis for innovation,
sustainability and the continuous
improvement of the project.
This project evolution raises not only
technological challenges on the software
engineering front, but it also requires
improving application usability and an
easier, more transparent user interface.
With the increased complexity of business
processes, user-friendly interfaces are a
key component of an efficient information
system. This goal requires both
technological innovation and advanced
user research techniques to achieve
improved user experience and system
efficiency.
The improvement of the Fenix platform
is a permanent process. The list of
on-going and planned developments
is vast. A non exhaustive list includes
the generalization of support for digital
signatures, the automatic bibliographic
harvesting and repository provided by the
SOTIS project, full dematerialization of all
academic processes, improved workflow
management, generalization of document
management to all faculty areas,
integration with the national repository of
certificates and diplomas, avoiding the
requirement to issue physical documents,
refactoring of older parts of the Fenix
code and the decomposition of the Fenix
application into modules.
Thanks to this ever-evolving process, the
Fenix application will be tomorrow a better
and renewed platform than it is today.
56
References
Alur, D., Malks, D., & Crupi, J. (2001).
Core J2EE Patterns: Best Practices and
Design Strategies. Prentice Hall PTR.
JASIG. (2011). Central Authentication
Service. Retrieved 3 2011, from www.
jasig.org: http://www.jasig.org/cas
Cachopo, J. (2007). Development of Rich
Domain Models with Atomic Actions.
PhD Thesis, Instituto Superior Técnico,
Technical University of Lisbon.
Jesukiewicz, P. (2009). SCORM 2004, 4th
Edition (Advanced Distributed Learning
Initiative ed.).
Cachopo, J., & Rito-Silva, A. (2006).
Versioned Boxes as the Basis for Memory
Transactions. Science of Computer
Programming , 63 (2), 172-185.
Cachopo, J., & Rito-Silva, A. (2006).
Combining software transactional memory
with a domain modeling language to
simplify web application development.
6th International Conference on Web
Engineering (pp. 297-304). ACM.
Carvalho, N., Cachopo, J., Rodrigues,
L., & Rito-Silva, A. (2008). Versioned
Transactional Shared Memory for
the FenixEDU Web Application. 2nd
Workshop on Dependable Distributed
Data Management. Glasgow: Springer.
Fowler, M. (2002). Patterns of Enterprise
Application Architecture. Addison Wesley.
IMS Global Learning Consortium,
Inc. . (2002). IMS Question & Test
Interoperability QTILite Specification. (I.
MS Global Learning Consortium, Ed.)
Neuman, B. a. (2002). Kerberos: An
authentication service for computer
networks. Communications Magazine , 32
(9), 33--38.
OpenLdap Foundation. (2011). OpenLdap.
Retrieved 3 2011, from www.openldap.
org: http://www.openldap.org
Singh, I., Stearns, B., & Johnson, M.
(2002). Designing enterprise applications
with the J2EE platform (2nd Edition ed.).
Addison-Wesley Longman Publishing Co.,
Inc.
Zeilenga, K. et al (2006). Lightweight
Directory Access Protocol (LDAP):
Technical Specification Road Map. IETF.
57 The FenixEdu Project: an Open-Source Academic Information Platform
Copyright © Instituto Superior Técnico, March 2011
Download

The FenixEdu Project: an Open-Source Academic Information Platform