Professional Documents
Culture Documents
En-Annex TS1.2 Software+Architecture+Document
En-Annex TS1.2 Software+Architecture+Document
Filename 702881173.doc
Table Of Contents
1 Introduction...................................................................................................................................... 6
1.1 Purpose of the Document...................................................................................................... 6
1.2 Scope of the Document......................................................................................................... 6
1.3 Intended Audience................................................................................................................ 6
2 Reference and Applicable Documents............................................................................................. 7
3 Acronyms and Abbreviations........................................................................................................... 8
4 Architectural Representation............................................................................................................ 9
5 Logical View................................................................................................................................... 10
5.1 TED Website....................................................................................................................... 10
5.1.1 Overview..................................................................................................................... 10
5.1.2 Web Layer Design Package.......................................................................................12
5.1.3 Service Layer Design Package...................................................................................14
5.1.4 Domain layer............................................................................................................... 15
5.1.5 Data access layer....................................................................................................... 15
5.1.6 General Principles...................................................................................................... 15
5.2 Monitoring data-warehouse................................................................................................. 16
5.2.1 BIRT........................................................................................................................... 16
5.2.2 Cacti........................................................................................................................... 17
5.2.3 Webalizer.................................................................................................................... 17
5.3 License Holder environment................................................................................................ 18
5.3.1 Authentication and logging.......................................................................................... 19
5.4 Email analysis and notifications...........................................................................................19
5.5 Workflow engine.................................................................................................................. 19
5.5.1 Validation and files transformation..............................................................................20
5.5.2 PDF generation and time-stamping............................................................................20
5.5.3 Indexing...................................................................................................................... 21
5.5.4 DVD image creation.................................................................................................... 21
5.5.5 Contracting authority notification.................................................................................21
5.6 Notice viewer....................................................................................................................... 22
6 Implementation View...................................................................................................................... 23
6.1 TED Website....................................................................................................................... 23
6.1.1 Overview..................................................................................................................... 23
6.1.2 TED XSL transformation............................................................................................. 24
6.2 Email analysis and notifications...........................................................................................24
702881173.doc Page 2 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 3 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
LIST OF TABLES
LIST OF FIGURES
702881173.doc Page 4 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
1 INTRODUCTION
702881173.doc Page 5 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
APPLICABLE DOCUMENTS
Ref. Title Reference Version Date
General Invitation to
Tender
Production and
dissemination of the
Supplement to the Official
A01 N° 10186 N/A 06/01/2009
Journal of the European
Union: TED website, OJS
DVD-ROM and related
offline and on line media
Specifications
Hybrid service contract
Production and
dissemination of the
A02 supplement to the Official N°10186 NA 06/01/2009
Journal of the European
Union: TED Website, OJS
DVD—ROM and related
offline and on line media
702881173.doc Page 6 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 7 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
4 ARCHITECTURAL REPRESENTATION
This document is a part of the Technical Specification of the TED System, the result of the design
phase.
This document presents the necessary views to represent the software architecture:
The Logical View: presents the decomposition of the software architecture into subsystems
and packages;
The Implementation View describes the overall structure of the implementation model, the
decomposition of the software into layers and subsystems;
The Data View describes the persistent data storage perspective of the system;
The Deployment View describes the physical infrastructure on which the TED software is
deployed and run. It specifies the physical nodes and network configuration that executes the
software, and also maps the processes defined in the Process View on to physical nodes.
702881173.doc Page 8 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
5 LOGICAL VIEW
The Logical View presents an overview of the architecture and then provides the decomposition of the
software into design packages and sub-systems.
The TED system has been decomposed into six distinct modules represented in the next figure:
5.1.1 OVERVIEW
The TED system architecture is based on the J2EE application architecture. This architecture is
decomposed into ‘tiers’ and ‘layers’ as recommended by the J2EE specification.
The Layering design pattern when applied to a system breaks down the complexity of the system as a
whole by identifying the different parts of the system and reducing coupling between them. Layering
702881173.doc Page 9 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
reduces the impact of a change in one layer on the rest of the system. Multi-dimensional layering is
about the combination of two other strategies:
Responsibility-based layering that associates each layer with a specific responsibility
(presentation, business and integration);
Reuse-based layering that identifies components that have a high potential of reusability,
possibly across different projects.
The application is made of several responsibility based layers:
702881173.doc Page 10 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
The Data Access Layer acts as a medium between the entities of the Domain Layer and the
technical solutions insuring its durability. The Data Access Layer knows how and where the
persistent entities are stored. Typically, an entity of the Domain Layer has a corresponding
Data Access Object (DAO) in this layer that exposes methods to manage the object
persistence.
702881173.doc Page 11 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 12 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
<!--[if lt IE 7]>
<script type="text/javascript">
//Fonction destinée à remplacer le "LI:hover" pour IE 6
sfHover = function() {
var sfEls = document.getElementsByTagName("li");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover = function() {
this.className = this.className.replace(new RegExp("sfhover"), "");
this.className += " sfhover";
}
sfEls[i].onmouseout = function() {
this.className = this.className.replace(new RegExp("sfhover"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
</script>
<![endif]-->
Warning Message:
<!--[if lt IE 7]>
<noscript>
<span class="red">
Attention vous utilisez une ancienne version d'internet explorer sans
javascript ...
</span>
</noscript>
<![endif] -->
CSS class:
Every <tag>:hover must have an equivalent <tag>.sfhover
702881173.doc Page 13 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
All the search capabilities needed by the TED website are encapsulated within this search service.
The index file is progressively aggregated by the addition of the information retrieved from the parsing
and the indexation of the new documents. This process of indexation is handled by the content
management module which performs this operation for each new OJS release.
702881173.doc Page 14 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
5.2.1 BIRT
BIRT (Business Intelligence and Reporting Tools) is a reporting system for web applications. BIRT has
two main components: a report designer based on Eclipse, and a runtime component. BIRT also offers
a charting engine that lets you add charts to your own application.
BIRT stated goals within the TED project are to address a wide range of reporting needs including:
Lists - The simplest reports are lists of data. As the lists get longer, BIRT supports grouping to
organize related data together but also totals, averages and other summaries.
Charts - For some reports numeric data are presented as a chart. BIRT provides pie charts,
line charts, bar charts and many more. BIRT charts can be rendered in several formats.
Crosstabs - Crosstabs (also called a cross-tabulation or matrix) are used to displays reports
that need to represent data in two dimensions.
Compound Reports – This kind of report is used to display side-by-side previously described
elements into a single document.
BIRT reports consist of four main parts: data, data transformations, business logic and presentation.
Data – Several kinds of data sources may be used simultaneously with BIRT. For the TED
project the main data source is the data warehouse databases. JDBC is used as connector
between the database and BIRT.
702881173.doc Page 15 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
Data Transformations - Reports present data sorted, summarized, filtered and grouped to fit
the user's needs. While the database can do some of this work, BIRT is used to perform
sophisticated operations such as grouping on sums, percentages of overall totals and more.
Business Logic - Since data is seldom structured exactly as it is needed, some reports require
business-specific logic to convert raw data into information useful for the user.
Presentation - Once the data is ready, a wide range of display options may be used; tables,
charts, text and more.
5.2.2 CACTI
Cacti is a complete network graphing solution designed to harness the power of RRDTool's data
storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple
data acquisition methods, and user management features out of the box.
5.2.3 WEBALIZER
Website traffic analysis is produced by grouping and aggregating various data items captured by the
web server in the form of log files while the website visitor is browsing the website.
702881173.doc Page 16 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 17 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 18 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
1
Notice that PDF time stamping is currently not activated on the TED web site: a flag permit to put the
time-stamping service in a degraded mode.
702881173.doc Page 19 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
5.5.3 INDEXING
All the files are indexed after validation and transformation using Apache Lucene. Documents are
parsed to extract elements needed for the search on specific elements but also for the free text
search. The indexing process is split in three distinct steps; creation of the five days index, creation of
the active index and finally update of the archive index.
A Contracting Authorities are notified by the TED system about the publication of their notices. A
notification is sent to each contracting authority to notify them that their notices have been published in
the OJS. The email contains an UDL link to the notice of the corresponding contracting authority and
the time-stamped PDF/A 1a.
The TED system also sends a reminder to the Contracting Authority for each contract notice that does
not have a corresponding award notice.
Of course, in order to be able to send reminder and notification emails, the TED system needs to be
able to retrieve the email address of the Contracting Authorities for each specific notice. Unfortunately,
there is no way to extract this contracting authority email address in a “standard” way. This
information does not exists in the common notice XML header. Actually, a different extraction method
exists for each type of form. The table named DOCUMENT_XML_INFO contains the XPath to the
Contracting Authority email for the different type of forms. This implementation choice avoid to
hardcode the extraction rules in the code, and provide a much more flexible way to support new form
in the system.
702881173.doc Page 20 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 21 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
6 IMPLEMENTATION VIEW
The implementation view describes the overall structure of the implementation model and the
decomposition of the software into modules and specific components.
6.1.1 OVERVIEW
The TED application is packaged as two separate Web Archive files (WAR) that represent the TED
website and the data-warehouse. This separation allows the deployment of each of these applications
separately on different servers. The following figure shows the physical contents of these web
applications. Note that the two applications share the same file structure; the difference being the
specific JSP pages and Java classes (along with their dependent Java libraries).
702881173.doc Page 22 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
TED TRANSFORMATION
XSL Input Output
InternalOJS-To-
InternalTed.xsl
“2.0.5 DTD” xml or
TED_INTERNAL XML
“TED_EXPORT 2.0.7” xml
InternalOJS-To-
InternalTed_<<FORM>>.xsl
InternalTed-To-
TED_INTERNAL xml Notice data view HTML
HtmlDataViewTed.xsl
InternalTed-To-
TED_INTERNAL xml Notice PDF
XmlFOTed.xsl
InternalTed-To-
INTERNAL_OJS xml Notice Meta License holder
LicenseHolderMETA.xsl
InternalTed-To-
INTERNAL_OJS xml Notice UTF-8 License holder
LicenseHolderUTF-8.xsl
702881173.doc Page 23 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 24 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 25 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 26 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
The Table 3: TED XSL Transformation shows the list of XSL transformation (input/output) used by the
TED Workflow engine.
702881173.doc Page 27 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 28 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
NUTS code
Languages
Extended CPV code (Additional vocabulary)
Reference data stored on the TED system should change over the time, and the modifications should
be taken in account including the relationship between the codes of the new version and the previous
one.
Modifications of these reference data such as CPV Codes have an important impact on the whole TED
system and more especially on the search features.
To handle alteration on reference data, the TED system use a versioning algorithm that permits the
translation of old code version to new one to adapt as much as possible the search features. The
content of document won’t be modified.
The search index will generally be modified after a code change but the document itself won’t change.
Thus, it’s possible that a free text search will find document that do not have the searched text in its
content.
702881173.doc Page 29 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
6.7.1.2 tasks
If the document contains contracting authority email addresses, then the XPath to the tag
containing these addresses must be added to the table DOCUMENT_XML_INFO.
The new XSLT transformations must be implemented to generate the internal format, the
HTML view, the PDF and License Holder’s specific formats.
702881173.doc Page 30 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
6.7.2.1 Prerequisite
In case of the addition of a new code. All the labels in every language must be requested.
In case of the addition of a new code in a hierarchical reference data. The place of the code in
the hierarchy must be known.
If the creation of a new version is foreseen. Then all the mappings between the current and
the next version must be clearly identified.
When the new version of the reference data is valid (not before!):
All the documents must have been re-indexed using the new version of the code (with the help
of the new mapping).
In the DOCUMENT table; the column XXX_CURRENT_VERSION must have been updated
with the id of the reference data in the last version.
If the procedure type or document type reference data are impacted please also refer to the next
section.
702881173.doc Page 31 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
APPLICATION DEPENDENCIES
Application Layer External Systems / Dependency
Spring MVC
Web Layer
Spring Security
Spring Integration
Ted Application
File System
Integration Layer
MySQL Database
lucene
File System
XSL
XSL-FO
FOP
iText
James Mail
MySQL Database
Mkisofs
702881173.doc Page 32 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
lucene
XSL
XSL-FO
FOP
HSQL
2
inotify is a file change notification system, a kernel feature that allows applications to request the
monitoring of a set of files against a list of events. When the event occurs, the application is notified
702881173.doc Page 33 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 34 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
7 DATA VIEW
This chapter describes the persistent data view of the system. More specifically, it explains the
technical database columns and the functions required to implement version and session
management, optimistic locking and user contexts. The Object-Relational Mapping used to implement
the persistence layer is Spring JDBC.
Full information about the TED data model is available in [R02].
702881173.doc Page 35 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
Data node: This type of node stores cluster data. There are as many data nodes as there are
replicas, times the number of fragments. A fragment is a portion of a database table; a table is
broken up into and stored as a number of fragments. Under the NDB storage engine, each
table fragment has a number of replicas stored on other data nodes in order to provide
redundancy. The TED MySQL Cluster is configured using one fragment and four replicas
giving a total number of four data nodes.
SQL node: This is a node that accesses the cluster data. In the case of MySQL Cluster, an
SQL node is a traditional MySQL server that uses the NDBCLUSTER storage engine.
The TED system uses one NDB node and one SQL node per back-end server that makes a total of
four NDB nodes and four SQL nodes. Each production line has one NDB management server.
702881173.doc Page 36 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
8 DEPLOYMENT VIEW
The TED system runs on two distinct production lanes. One front end Load-balancer, in charge of
routing any requests to a production lane following the figure bellow:
702881173.doc Page 37 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
The following schema gives an overview of the deployment of the different modules of the TED system
on the different servers present in one production lane.
The production of the content runs in parallel on all production lanes. The objective is to have the
information available on all production lanes. This to ensure that if one fails, the other one can
702881173.doc Page 38 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
continue to serve the content. The full content library is duplicated on the NFS of each production lane.
The daily switch of the publication day is synchronized on each production lane to ensure that they
serve the same content. Initially the entire TED system is composed of two production lines.
Some processing steps are only processed on one production lane (e.g. sending of emails). If one
production line breaks, the operator executes these processes on the other line.
The load balancers dispatch the incoming requests based on the load of each server. Session
forwarding is used to keep all requests from one user to the same server.
Some document related information is replicated on the MySQL local instance of each back end
server. This task is performed by the production workflow; synchronization steps are used to update
databases of each back-end server to ensure data coherence.
Volatile database information (e.g. registered user information and document meta data) is inserted in
all database servers simultaneously with the replication mechanisms offered by MySQL cluster.
The Data warehouse information is duplicated. Each data warehouse database instance contains the
information of all production lanes and is filled with the logs of all the servers and processes.
TED REPOSITORY
Path Information
702881173.doc Page 39 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
TED BACKUP
Path Information
TED BACKUP
Path Information
702881173.doc Page 40 of 41
Production and dissemination of the
Supplement to the Official Journal of the
European Union: TED website, OJS DVD-ROM
and related offline and online media
702881173.doc Page 41 of 41