• No results found

The FenixEdu Project: an Open-Source Academic Information Platform

N/A
N/A
Protected

Academic year: 2021

Share "The FenixEdu Project: an Open-Source Academic Information Platform"

Copied!
58
0
0

Loading.... (view fulltext now)

Full text

(1)

Instituto Superior Técnico

The FenixEdu

Project: an

Open-Source

Academic

Information

Platform

(2)
(3)

Copyright © Instituto Superior Técnico, March 2011

The FenixEdu Project:

an Open-Source Academic

Information Platform

(4)

Project Founder, Chief Architect and Project Director (2002–2008)

António Rito da Silva

Project Directors (2008–2011)

Fernando Mira da Silva, Carlos Ribeiro

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

4

Web Designers

Bruno Monteiro, Carla Penedo, Gustavo Pimenta, João Alfaiate

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

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

Contributions

Past and present project staff

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

Editorial Design

Tiago Machado

Infographics

(5)

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.

5 The FenixEdu Project: an Open-Source Academic Information Platform

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.

Abstract

(6)

6

Contents Introduction

Project Overview IST overview Organization

The Fenix Strategy

IS Development Models Integration of Business Goals

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

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

Identity Management Identifiers Global Perspective LDAP Kerberos Single Sign-on

Portuguese National e-ID Card European e-ID support SAML 2.0 Federation Support

Project metrics

Code size and evolution Development team size Performance

Third party implementations

Conclusion

Discussion

Ongoing and future developments

References 8 8 10 13 14 14 15 18 18 21 22 23 24 25 26 26 27 27 28 36 37 38 39 40 42 44 44 45 46 46 47 47 49 49 50 50 52 52 52 54 54 55 56 1 1.1 1.2 1.3 2 2.1 2.2 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 4 4.1 4.2 4.3 4.4 4.5 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 6 6.1 6.2 6.3 6.4 7 7.1 7.2

(7)
(8)

8

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

Introduction 1

Project Overview IST overview Organization

1

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)

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 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. 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 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).

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 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)

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.

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 1

Alameda Campus

Figure 2A (next page)

IST facts and figures (July 2010)

(11)

FACTS & FIGURES

A SNAPSHOT OF IST

Education

Graduate students per cycle

30%

10%

60%

10%

International Students

14%

International Students

10231

Students

PhD

1058

Students

28

PhD Programmes

110

PhD Thesis

Master

3319

Students

25

Master Programme

823

Master Dissertations

1rst

Cycle

1121

2nd

Cycle

824

3rd

Cycle

110

Employability

96

%

Get a job within

6 months of

graduating

63

%

Get a job

before

graduation

Bachelor

5854

Students

19

Courses

(12)

Research

Internationalization

M.Sc

Double

Degrees

25

Joint PhD

programs

• MIT

• CMU

• UT Austin

• EPFL

International

networks

• CLUSTER

• EIT-LIC InnoEnergy

• TIME

• CEASER

• MAGALHÃES

• ATHENS•

Mobility

programmes

• ERAS

MUS

• SMILE

• BRAS

IL

Traineeships

• IAESTE

• VULCAN

US

ERASMUS MUNDUS

(Msc, Phd) programmes

• euSYSBIO

• EMDC

• IDS-FunMat

• EU-Brazil Star

tUP

38

7

29

1186

1852

4538

PhD awards

Research centres and institutes

New patents applications

Associated laboratories

59

%

Own resources

Funding

135

M€

Total funding

(13)

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)

14

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 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: 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

The Fenix Strategy 2

IS Development Models Integration of Business Goals

2

• • • • • •

(15)

15 The FenixEdu Project: an Open-Source Academic Information Platform • • • • • 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 ever-increasing 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.

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: 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.

(16)

Knowledge

Application TransmissionKnowledge Pedagogical Content Knowledge Creation Research Artefact Open-Source Product Local Operation Market support Academic Testbed Human Resources Availability Keep product competitiveness Multi-site implementation Keep technology up to date

Fenix

Project

Sustainability

(17)

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.

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.

Figure 4 (previous page)

(18)

18

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.

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

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.

(19)

User

x

User

y

User

z

Role

1

Role

2

Role

3

Role

4

Role

5

Functionality

2

Functionality

3

Functionality

4

Functionality

1

(...)

Access Control

Layer

(...)

Domain

(20)

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

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.

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.

(21)

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)

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

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. • • • • • • • • • • • • • • • • Figure 9

Typical course page.

Figure 10

Creating an on-line quiz.

(23)

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 pre-conditions, 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.

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.

Figure 11

Degree plan interface (partial view).

(24)

• •

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 pre-conditions in enrolment rules or other regulatory restrictions);

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. 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.

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. 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).

Figure 12

Class schedule - room view • •

IST

Life Cycle Class period Exam period Enrolment period Figure 13

Typical HEI life-cycle. Schedule preparation and classroom allocation is a crucial activity that is developed well before each enrolment period begins.

(25)

• •

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:

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 meta-data harvesting and processing.

Figure 14 SOTIS harvesting model. • • • Collection and processing Contents Metadata Harvesting External Sources Validation IST Repository

(26)

26

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.

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. 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.

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.

(27)

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, on-line 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.

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

 

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.

(28)

28

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.

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. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • 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 left we have the role being described and who it is attributted to.

On the right we have the functions associated with each role.

(29)

29 The FenixEdu Project: an Open-Source Academic Information Platform

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;

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).

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.

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. • • • • • • • • • • • • • • • • • • • • • • • • • •

(30)

30

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.

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. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

(31)

31 The FenixEdu Project: an Open-Source Academic Information Platform

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.

Main functions available:

Management and supervision of the number of users.

Main functions available:

Management and configuration of access to the car park.

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;

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.

International Relation Office

International liasion office.

Library

Administrtaive staff in charge of school libraries.

Parking Manager

Administrative staff who supervise the car park.

Pedagogical Board

Teaching staff in charge of supervision of pedagogical subjects and academic quality control.

Person

Any valid user of the system.

• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

(32)

32

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.

Main functions available:

management and control of residence registration and fees.

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.

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.

Residence Manager

Staff who manage student residences.

Resource Manager

This role is attributed to administrative staff who support institutional schedules and resources, including degree and course schedules and room allocation.

• • • • • • • • • • • • • • • • • • • • • • • • • •

(33)

33 The FenixEdu Project: an Open-Source Academic Information Platform

Scientific Board

Administrative staff of the school’s scientific board.

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.

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. • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •

(34)

• • • • • • • • • • • • • • • • • • • • • 34

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.

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;

Student

All students.

Teacher

All teaching staff.

• • • • • • • • • • • • • • • • • • • • •

(35)

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)

36

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.

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

(37)

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.

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)

38

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, fully-transactional, 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. 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 round-trip 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.

3 Available at

References

Related documents

It was used in the case of 1 mol/L citric, acetic, glycolic and maleic acid leachates to determine the possible use for the recovery of REEs and other elements from organic

The Cisco Catalyst 4500 Series Supervisor Engine II-Plus supports Internet Group Management Protocol (IGMP) snooping in hardware, enhancing the performance of multimedia

*If you order your own copy of the Tumbleweed DIY Book of Backyard Sheds and Tiny Houses youʼll receive the Zinn Box Bungalow plans ($49 value) for free.. Just use the link below

Traf fi cking de fi cient LQT2 mutations disrupt Kv11.1 protein folding and misfolded Kv11.1 proteins are retained in the endoplasmic reticulum (ER) until they are degraded in the

But if not all occurring classes are defined in the training data a vital condition is not fulfilled and significant classification errors can occur since all pixels of the not

Less attention has been paid to the representation of spectators in British theatre history and the ways in which such representations indicate modes of looking and the performance

The top 15 recipients of foreign aid in 2002, who each got a more than a billion dollars each, have a median ranking in the worst fourth of all go vernments everywhere (ranked

This refit sequence illustrates the recurrent unintentional detachment of invasive flakes often associated with capuchin SoS percussive behaviour, and exemplifies the similarities