Title: Integrated Meta Database IMDB Architecture
1Integrated Meta Database (IMDB) Architecture
2Design Goals
- Web deployable (Project/Architectural)
- Acceptable Performance (Project/Architectural)
- Thin-client (Architectural)
- Alleviates burden on client machine
- Faster run and load time, ease of deployment
- n-tier (Architectural)
- Development of corporate components
- Services/products available from multiple vendors
(Architectural) - Bilingual (Architectural)
3Implementation
- Two different architectures
- 1999-2002 Phase 2 - Input of meta information
for statistical business processes - 2002- 2003 Phase 3 - Input of meta data for data
elements - Phase 2 implementation frozen because of
- Discontinued support for software by vendor
- Size of system has exceeded the capabilities the
selected web deployment technology.
4Phase 22-Tier (plump client) Model
Technologies
Presentation Application (Business Rules)
Tools
GUI Internet Explorer Sun Java Plug-In
V1.1.3 Swing 1.0.3
Web Browser Java Applet
JDBC
Oracle JDBC Driver
Middleware
- Business Logic Database
- Oracle 8i
- Oracle (PL/SQL)
Application (Business Rules Data Access
Logic) Data Layer
RDBMSwith Stored Procs
5Phase 2 Bilingualism
Menu items
Directive
Tabs
English and French text fields
Labels
Coded fields
Buttons
6Phase 2 Bilingualism
Text for elements of the interface
English
Resource Bundle Key Value menu_File File tab_
ID Identification tab_Des Description ...
7Phase 2 Input Screens
Text strings related to data components
Directives Resource Bundle Key
Value SurveySDDS Statistical Data Doc ...
IMDB database
Labels Resource Bundle Key Value SurveySDDS
SDDS ...
8Phase 2 Input ScreenAdministered Item
9Phase 2 - Identification Tab
10Phase 2 - Organization Tab
11Phase 2 DescriptionTab Statistical Activity
and Survey
12Factory Pattern applied to Description
Instrument Request
Survey Request
Description Factory
13Phase 2Model View Controller Pattern
- Model maintains the data
- View displays the data
- Controller event handlers for the Model and
View - Phase 2 combines the View and Controller
14Phase 2Mapping of Relational Model to OO
Visual Age DATA ACCESS BUILDER
IMDB Relational Database
JDBC Class
15Phase 2 2001 Achievement of design goals
- Web deployable? via Applet however plug-in
technology was not stable and removed from
deployment. - Acceptable Performance? Applet very slow for
load time. Performance is improved by deployment
as an application on the client. Support provided
for both Applet and Application versions. - Thin-client? Plump client
- n-tier? 2-tier
- Services/products available from multiple
vendors? No vendor support for Visual Age 3.0
DAB. Code is not compliant with JDK 1.3 - Bilingual ? English and French
16Phase 2 Data Migration
- Microsoft Access form to collect business meta
data from various sources. - Load from existing meta data systems.
- PL/SQL procedure for conversion and load into the
phase 2 database
17Phase 3 Considerations
- Design Goals
- Conformance with standards.
- Minimize use of auto generation tools/wizards,
therefore reducing risk of vendor lock-in.
18Phase 33-Tier (thin client) Model
Technologies
Standards
Tools
Presentation Tier
Web Browser
Internet Explorer 6.0
HTTP, HTML
JSP 2.0
Jakarta Struts 1.2.8
Servlet 2.4
Jakarta Tomcat 5.5.15
Application Tier
XML 1.0
XSLT 1.0
Web Server
Apache (?)
HTTP
JDBC 2.0
Oracle JDBC Driver
Data Tier
Oracle 9i
RDBMS
SQL
19Phase3MVC - Model
Model Layers
Business Layer
- The Model role is realized by two software
layers from the Application tier, plus the Data
tier. - Layering reflects division of responsibilities.
- Each layer knows nothing about the layers above,
and can delegate work only to the layer directly
below. - This reduces the scope of change for example,
if a database table definition is altered, the
Persistence layer can usually absorb the change,
leaving the Business classes totally unaffected.
Persistence Layer
Database
20Phase3MVC - Model
The Database
Business Layer
- Responsible for storage and retrieval of data
according to the relational model. - Enforces referential integrity.
- Provides vendor-specific tools for
administration and data access. - Provides driver implementations for remote
access through JDBC, ODBC, etc - Some non-standard aspects are unavoidable, such
as vendor-specific SQL dialects for data
definition.
Persistence Layer
Database
21Phase3MVC - Model
The Persistence Layer
Business Layer
- Contains low-level Java classes that model the
database tables closely. - Knows how to store and retrieve data directly
from the database using JDBC methods. - Also contains higher-level Java classes that
provide data access services to any kind of
Business layer, through a public API. - Protects the rest of the system from
evolutionary changes in the type, vendor or
release version of the database.
Persistence Layer
Database
22Phase3MVC - Model
The Business Layer
Business Layer
- Java classes in this layer model the objects and
processes in the users world. In our case,
these objects are instances of the metadata items
defined by the ISO 11179 specification. - Delegates the actual saving and retrieving of
these objects to the Persistence layer. - Defines and enforces business rules.
- Contains a public API that allows any
Controller-level class to create and manipulate
metadata objects.
Persistence Layer
Database
23Phase 3 MVC - Controller
1. User Action
Struts Controller Classes
MetaWeb
2. Process Request
4. System Response
Business Layer (Model)
JSP
3. Select View
24Phase 3 MVC - Controller
Struts Controller Classes
- A Struts servlet intercepts requests from the
users browser, and dispatches each request (by
URL) to an Action class for processing. - Depending on the outcome of processing, the most
suitable view is selected to display the result. - View selection can be controlled in an XML
configuration file as well as in code. - The Struts framework enables a clean and
flexible separation of MVC responsibilities in a
web application.
25Phase 3MVC - View
- The View role is realized by JavaServer Pages in
the Application tier, and by the browser in the
Presentation tier. - JavaServer Pages are similar to HTML pages, but
combine HTML markup with special JSP tags that
enable the insertion of dynamic content. - Struts provides a rich and powerful assortment
of tags that integrate well with the rest of the
framework. - Every JSP is transformed into a servlet when
first requested, and the generated servlet
returns the view as pure HTML to the browser.
MetaWeb
HTML
Servlet
JSP
26Phase 3 Bilingualism
- The user interface language can be changed by the
user at any time, to any language for which a
resource bundle has been created. (So far, the
only demand is for English and French) - Data in any two languages can be simultaneously
displayed and edited. - Data in multiple languages can be stored in the
database, and new languages can be supported
without changes to the data model. - Java and the Struts framework both provide rich
support for localized content, including
variations by country, and formatting of dates,
times, and currencies.
27Phase 3 2003 Achievement of design goals
- Web deployable? Application resides entirely on
the server and is available to any browser. - Acceptable Performance? Servlets are designed
for high efficiency and scalability. Database
I/O can be optimized in the Persistence layer. - Thin-client? Ultra-thin (no client-side code
required). - n-tier? 3-tier
- Services/products available from multiple
vendors? Open solution using open software. - Bilingual? Multi-lingual.