A Framework for the Internationalization of Data-Intensive Web Applications

Similar documents
A Notation and Framework for Dialog Flow Control in Web Applications

RADX - Rapid development of web applications in XML

COMP9321 Web Application Engineering

GLOBALIZING INTERNET WEBSITES

Web Application Development: Java,.Net and Lamp at the Same Time *

Mobile Access to Distributed Data Sources

Web Applications: A Simple Pluggable Architecture for Business Rich Clients

Design concepts for data-intensive applications

Prototyping Navigation in Web-Based Information Systems Using WebML

A COMPONENT-BASED METHOD FOR DEVELOPING WEB APPLICATIONS

A System of Patterns for Web Navigation

Oracle Fusion Middleware 11g: Build Applications with ADF I

MEMOCenterNG A full-featured modeling environment for organization modeling and model-driven software development

Annotation for the Semantic Web During Website Development

Integration of distributed data sources for mobile services

.NET & Web Services. Mike Lockyer, Gary Griffiths, Briony Oates, Barry Hebbron School of Computing. University of Teesside

Oracle 10g: Build J2EE Applications

BEAWebLogic. Portal. Overview

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

MythoLogic: problems and their solutions in the evolution of a project

Testing the Usability of Visual Languages: A Web-Based Methodology

Course Design Document: IS202 Data Management. Version 4.5

Improving the Design of Existing Web Applications

Java Framework for Database-Centric Web Site Engineering

Course on Database Design Carlo Batini University of Milano Bicocca, Italy

Week. Lecture Topic day (including assignment/test) 1 st 1 st Introduction to Module 1 st. Practical

Oracle Fusion Middleware 11g: Build Applications with ADF I

Towards Better Support for Pattern-Oriented Software Development

A Scalable Location Aware Service Platform for Mobile Applications Based on Java RMI

Delivery of Consistent and Integrated User s Data within a Multi-Tenant Adaptive SaaS Application

Deriving Custom Post Types from Digital Mockups

(p t y) lt d. 1995/04149/07. Course List 2018

Configuring a Microstrategy Resource in Metadata Manager 9.5.0

Design and Implementation of XML DBMS Based on Generic Data Model * 1

Evaluation of Commercial Web Engineering Processes

UML-Based Conceptual Modeling of Pattern-Bases

Automatic updating of urban vector maps

IBM Cognos Framework Manager: Design Metadata Models (V10.2)

International Journal of Modern Trends in Engineering and Research e-issn: p-issn:

Extending WebML for Modeling Multi-Channel Context-Aware Web Applications

A Service-Centric Architecture for Web Applications

DBPowder-web: Web Application Development Framework with RDBMS

OBJECT MODELS FOR MODEL BASED APPLICATIONS *

Extending WebML for modeling multi-channel context-aware Web applications

Management Information Systems MANAGING THE DIGITAL FIRM, 12 TH EDITION FOUNDATIONS OF BUSINESS INTELLIGENCE: DATABASES AND INFORMATION MANAGEMENT

Is the UML appropriate for Interaction Design?

Publishing Model for Web Applications: A User-Centered Approach

Developing Applications with Java EE 6 on WebLogic Server 12c

Relationships Meet Their Roles in Object Oriented Programming

A Meta-Model for Composition Techniques in Object-Oriented Software Development

Automatic Interpretation of Natural Language for a Multimedia E-learning Tool

3.4 Data-Centric workflow

Design Verification of Web Applications Using Symbolic Model Checking

Characterizing Home Pages 1

Extending E-R for Modelling XML Keys

Introduction to Databases Fall-Winter 2010/11. Syllabus

A METAMODEL FOR WEB PAGE DESIGN

N OEM I PER E Z G I L A B ERT

Application Servers in E-Commerce Applications

Improving Adaptive Hypermedia by Adding Semantics

WQA: an XSL Framework for Analyzing the Quality of Web Applications

by Prentice Hall

A component-centric UML based approach for modeling the architecture of web applications.

A Model-Driven Approach for the Fast Prototyping of Web Applications

T-SQL Training: T-SQL for SQL Server for Developers

Biomedicine and bioinformatics databases (module Fundamentals of database systems)

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

Extending the AAT Tool with a User-Friendly and Powerful Mechanism to Retrieve Complex Information from Educational Log Data *

ISSUES IN SPATIAL DATABASES AND GEOGRAPHICAL INFORMATION SYSTEMS (GIS) HANAN SAMET

USING MUL TIVERSION WEB SERVERS FOR DATA-BASED SYNCHRONIZATION OF COOPERATIVE WORK

X-S Framework Leveraging XML on Servlet Technology

fied by a regular expression [4,7,9,11,23,16]. However, this kind of navigational queries is not completely satisfactory since in many cases we would

Reusability Evaluation of a Domain-Specific Web Application Framework

MySQL for Beginners Ed 3

Model-Driven Design of Web Applications with Client-Side Adaptation

A Framework for the Efficient Production of Web Applications

Full Stack Developer (FSD) JAVA

Universita degli Studi di Roma Tre. Dipartimento di Informatica e Automazione. Design and Maintenance of. Data-Intensive Web Sites

Java 2 Platform, Enterprise Edition: Platform and Component Specifications

ThinProway A Java client to a SAS application. A successful story. Exactly what you need?

Preserving Rich User Interface State in Web Applications across Various Platforms

From Web Sites to Web Applications: New Issues for Conceptual Modeling

Outline. Project Goal. Overview of J2EE. J2EE Architecture. J2EE Container. San H. Aung 26 September, 2003

The HMatch 2.0 Suite for Ontology Matchmaking

Introduction to Databases Fall-Winter 2009/10. Syllabus

Novel Materialized View Selection in a Multidimensional Database

Design Patterns for Automation of Marketing Authorisations in Pharmaceutical Industry

Automatic Generation of Wrapper for Data Extraction from the Web

Introduction. This course Software Architecture with Java will discuss the following topics:

Specification of web applications design in CASE using UML and its mapping to an implementation environment

Edinburgh Research Explorer

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

Authoring Multi-device Web Applications with Database Access

Design and Implementation of Cost Effective MIS for Universities

Building Multi-device, Content-Centric Applications Using WebML and the W3I3 Tool Suite

XXII. Website Design. The Web

Objects Meet Relations: On the Transparent Management of Persistent Objects

PRIMIX SOLUTIONS. Core Labs. Tapestry : Java Web Components Whitepaper

Capturing Temporal Constraints in Temporal ER Models

COURSE DETAILS: CORE AND ADVANCE JAVA Core Java

Transcription:

A Framework for the Internationalization of Data-Intensive Web Applications Alberto Belussi and Roberto Posenato Dipartimento di Informatica - Università degli Studi di Verona Ca Vignal, Strada le Grazie, 15 37134 Verona, Italy {alberto.belussi, roberto.posenato}@univr.it Abstract. The globalization process makes it necessary to provide information in different languages in order to enlarge the audience of the information presented through the web. Therefore, it is often required to extend the web system for handling information in more than one language. This process is called internationalization of a system. An important requirement of this process is that it should be applied without a strong reorganization of the web application that implements the web site. We propose a general framework for the internationalization of data-intensive web applications based on the MVC-2 paradigm and a relational database system. This framework has been applied succesfully at the University of Verona (Italy) for the internationalization of the web sites of all departments and all faculties. 1 Introduction In the last few years the globalization process has influenced the activities of any kind of organization around the world. One effect of this process concerns the production of information in more than one language. In general we call the adaption of an application to support a multilingual environment internationalization of an application, while the process of adaption of an application for a specific region or language, by adding local-specific components and translating text, is called localization of an application. The internationalization of a web application can be a hard task, in particular if the application architecture does not conform to a standard schema, like the Model View Control (MVC) paradigm, or does not separate at least the logic and the presentation in different modules. In this paper we propose a general framework for the internationalization of data-intensive web applications [6,5] based on the MVC-2 paradigm [1] and one or more relational database systems. This framework can also be applied to existing web applications with a low impact on code restructuring as shown by the experience at the University of Verona. Previous works on data-intensive web applications regards mainly the definition of a design methodology and the implementation of case tools [7,5,4,6]. Many other papers in the human-computer interaction area face the general problem N. Koch, P.Fraternali, and M. Wirsing (Eds.): ICWE 2004, LNCS 3140, pp. 478 482, 2004. c Springer-Verlag Berlin Heidelberg 2004

A Framework for the Internationalization 479 of internationalization and localization of data presentation in web sites, considering in particular aspects like symbols or color perception in different cultures, format conventions (i.e., date presentation), etc. [2]. To our knowledge, only in [8] a general approach for the internationalization of a web application including database schema extension is presented. In our approach, we extend the solution proposed in [8] by adding a general mechanism for queries specification and query results handling. The paper is organized as follows. First, the problem of internationalization of a web application is described. Next, the proposed framework is presented by describing in details its components. 2 Problem Definition and Proposed Solution In this paper with the term web application we refer to any software application that is accessible using a web browser. The internationalization of web applications regards the implementation of a mechanism that is able to produce, for each page the web application generates (master page), a set of pages with the same content but each one in a different language (translated pages). This problem can have different solutions with respect to the architecture of the web application and the level of update between the master pages and the translated ones that we intend to maintain. According to the architecture, different solutions of the internationalization problem can be applied. In particular, in Static Web Applications the replication of the static HTML files with the translation of their content in the languages of interest is the widely used solution; of course, the maintenance of the consistency between the different replications can become a time consuming work [3]. In Data-Intensive Web Applications the replication is still a chance but it requires to generate one or more copies of the whole system. An alternative solution is to make the application language independent. This can be achieved by a revision of the whole application consisting of the following three steps: (1) Database extension: the database has to be extended in order to store the translations of data that are subject to change with respect to the language; (2) Queries rewriting: the queries have to be rewritten to take into account the new tables containing data translations; (3) Static text translation: the static text inside script files (like JSP, ASP, etc.) has to be replaced by a call to a procedure that computes the right translation according to the required language. We propose a framework for making a data-intensive web application language independent. In particular, the framework can be applied to applications adopting the MVC-2 paradigm [1] in order to obtain the following results: (1) it should make the application language independent in the sense that the application should work with a certain set of foreign languages and this set can be extended without requiring any code modification; (2) it should allow one to extend the set of attributes subject to translations without requiring any code modification; (3) it should require the minimal database extension, but, at the same time, the minimal effort in query rewriting and the minimal performance worsening in query processing.

480 A. Belussi and R. Posenato Hereby we describe in details the proposed frameworks considering: database extension, queries rewriting and internationalization of state objects. 2.1 Database Extension and Queries Rewriting A data-intensive web application interacts with one or more database servers, which provide dynamically the data to be published. This approach always guarantees web pages with up to date content. The internationalization process requires an extension of the database schema in order to store the translations of the information stored in the database. We suggest the following general approach to extend the database schema, by supposing to adopt the Entity-Relationship model for the conceptual database design and a relational system for the database implementation: 1. For each entity type E with attributes {A 1,...,A n } having some attributes {A i1,...,a im } subject to translation, we specify a new entity type E trans, weak entity of E, with the following attributes {language,a i1,...,a im }. This implies the creation of a new table E trans (K E, language,a i1,...,a im ) where K E is the set of attributes representing the primary key of E. 2. For each relationship type R among entity types {E 1,...,E n } with attributes {A 1,...,A n } having some attributes {A i1,...,a im } subject to translation, we replace R with a new entity type E R, weak entity of {E 1,...,E n }, with the attributes {A 1,...,A n } and we add a second entity type E R trans, weak entity of E R, with the following attributes {language,a i1,...,a im }. This implies the creation of a new table R trans (K R, language,a i1,...,a im ) where K R is the set of attributes representing the primary key of table R). Regarding database schema extension other solutions could possibly be considered as discussed in [3]. After database extension, a query rewriting is necessary in order to include the translated attributes in the result of each query. The properties of this rewriting technique are the following ones: (1) it preserves the result cardinality that the query had before the internationalization; (2) it uses only two languages L 1 and L 2 as query parameters (these two languages are obtained by applying a custom rule to the preference languages list coming from the HTTP request, see [3] for details); (3) it extends each query result schema by applying the following rule: for each attribute A subject to translation, we replace A with three attributes L0-A, L1-A and L2-A, containing its values in L 0 (master language) and its translations in L 1 and L 2 respectively. Given a generic query, SELECT E 1.A 1,...,E k.a n FROM E 1,...,E m WHERE C, suppose that the table E 1 has a translation table E 1 trans (K, language,a 1 ), then the query must be rewritten as follows: SELECT E 1.A 1 AS L0-A 1, L1.A 1 AS L1-A 1, L2.A 1 AS L2-A 1,...,E k.a n FROM E 1 LEFT JOIN E 1 trans AS L1 ONE 1.K = L1.K LEFT JOIN E 1 trans AS L2 ONE 1.K = L2.K,...,E m WHERE C AND L1.language =? AND L2.language =? Notice that, after the rewriting process, the resulting query contains some

A Framework for the Internationalization 481 parameters, represented as?, which stand for the requested language L 1 and the alternative language L 2 respectively. This rewriting technique can be trivially extended to the general case in which table E 1 trans contains more than one attribute and there are other tables E i having a corresponding translation table E i trans. Moreover, given a query containing m tables with attributes subject to translation, the number of outer joins that have to be added to the query is equal to 2m. 2.2 Internationalization of State Objects In a MVC-2 data-intensive web application, state objects represent both the request from the browser and the data (often given by tuples of queries results) needed to build the response. Given the goal of applying language independent extensions, the more suitable way to do the task is to insert, for each object property A subject to translation, a new property A-lang that will contain the language code of the value stored in A. In this way a state object can store values in any language with a minimal impact on its type restructuring. Given a tuple t of a query result Q, having translated values stored in the same tuple, a state object O is created and is populated by applying the following approach: (1) for each attribute A of Q subject to translation choose one translated value in t according to a custom rule; (2) put the chosen value in the corresponding property A i of O and its language-code into property A i -lang; (3) finally, put the other values belonging to attributes not subject to translation in the corresponding properties of O. Therefore, each state objects constructor having a query result tuple as parameter, have to be modified according to the new proposed approach. Nevertheless, this process can be avoided if all constructors based on query result tuple are replaced with a single meta-method Populate. Method Populate works as follow: given a state object, a query result tuple, the requested language L 1 and one ore more alternative languages, it fills the state object with tuple values according to L 1 and the alternative languages. Populate can be implement under the following conditions: (1) the query result is written as described in Section 2.1; (2) the state object representing a tuple of a query result Q contains at least as many properties as the attributes of Q where each property has the same name of the corresponding attribute of Q and contains a property for the language-code A i - lang for each property A i subject to translation; (3) the programming language provides introspection mechanism for the state object and for the query result object as Java language provides with Reflection/Introspection mechanism. The pseudo-code of populate is shown in [3]. 3 The Experience at University of Verona The proposed approach has been applied for the internationalization of the web sites of the faculties and departments of the University of Verona (UNIVR). The UNIVR web system is organized as follows: (1) a portal site composed of static HTML files; (2) 8 faculties sites, each generated by a data-intensive web

482 A. Belussi and R. Posenato application (Faculty On Line - FOL); (3) 24 departments sites, each generated by a data-intensive web application (Department On Line - DOL). Both FOL and DOL are developed according to the MVC-2 paradigm using Servlets and JavaServer Pages technology; all the data come from one database containing the information about the teaching and research activities of the whole University. We have applied the proposed framework for the internationalization of FOL and DOL during 2003 and now the faculties and departments sites can show pages in four foreign languages (English, French, German and Spanish) and Italian. The impact of the internationalization process of the UNIVR web system can be summarized as follows: the database schema, that contained 275 tables, now contains 340 tables and the Java classes of FOL (DOL) contain 117 SQL queries as before the internationalization and they contain about 5% code lines more. 4 Conclusions In this paper we have illustrated a framework for the internationalization of a data-intensive web application. The proposed solution has been studied for an application based on the MVC-2 paradigm and interacting with a relational database system. The framework was successfully applied for the internationalization of the web sites of University of Verona. References 1. D. Alur, J. Cruspi, and D. Malks. Core J2EE Patterns: Best Practices and Design Strategies. Prentice Hall, 2001. 2. N. Aykin. Internationalization and Localization of the Web Sites. In Hans-Jörg Bullinger and Jürgen Ziegler, editors, Proceedings of HCI International 99, pages 1218 1222, Munich, Germany, August 22 26 1999. 3. Alberto Belussi and Roberto Posenato. Internationalizing Data-Intensive Web Applications. Technical Report DI 16/2004, Dip. di Informatica-Università di Verona, 2004. 4. S. Ceri, P. Fraternali, A. Bongio, S. Butti, R. Acerbis, M. Tagliasacchi, G. Toffetti, C. Conserva, R. Elli, F. Ciapessoni, and C. Greppi. Architectural Issues and Solutions in the Development of Data-Intensive Web Applications. In Proc. 1st Biennial Conf. on Innovative Data Systems Research, Asilomar, CA, USA, January 5 8 2003. 5. S. Ceri, P. Fraternali, and S. Paraboschi. Design Principles for Data-Intensive Web Sites. SIGMOD Record, 28(1):84 89, 1999. 6. P. Fraternali. Tools and Approaches for Developing Data-Intensive Web Applications: A Survey. ACM Computing Surveys, 31(3):227 263, 1999. 7. P. Merialdo, P. Atzeni, and G. Mecca. Design and Development of Data-Intensive Web Sites: The Anareus Approach. ACM Transactions on Internet Technology, 3(1):49 92, February 2003. 8. Inderjeet Singh, Beth Stearns, Mark Johnson, and the Enterprise Team. Design Enterprise Applications with the J2EE TM Platform. Addison-Wesley Publishing Company, second edition, 2002.