Towards Enterprise Frameworks for Networked ... - Semantic Scholar

8 downloads 12043 Views 754KB Size Report
Sep 6, 2005 - enterprise framework for content intensive networked hypermedia in the domain of cultural ... highlights the cross-influences of the different civilizations born ..... distinguishes PHP from something like client-side JavaScript is that the code is ... cross-platform compatibility, large binary objects such as images,.
Towards Enterprise Frameworks for Networked Hypermedia: a Case-Study in Cultural Tourism Franca Garzotto and Luca Megale HOC-Hypermedia Open Center - Department of Electronics and Information Politecnico di Milano Via Ponzio 34/5 - 20133 Milano - Italy

[garzotto,megale]@elet.polimi with the pioneer work of Meyrowitz’s Intermedia [18], and it has been later explored by other authors [21][22] [25]. Still, these approaches do not exploit the potential of hypermedia application frameworks for specific business sectors.

ABSTRACT An enterprise framework denotes a “reusable, “`semi-complete” application skeleton that can be easily adapted to produce custom applications in a specific business domain. This paper presents the requirements, design, and implementation of MEDINA, an enterprise framework for content intensive networked hypermedia in the domain of cultural tourism. MEDINA provides a userfriendly customization tool that can be used without any implementation effort, and is integrated within a modular, highly portable software architecture for dynamic application generation.

Documented exemplars of (hypermedia and non) frameworks for specific business domains, or Enterprise Frameworks, are relatively few [4]. The examples reported in literature are in broad application areas such as telecommunication, avionics, manufacturing, and financial engineering, where they have proven to provide a substantial return on investment because they support the development of end-user applications and products directly. [2] [6]

Categories and Subject Descriptors D.2.13 [Software Engineering]: Reusable Software – domain engineering

This paper presents the first version of a novel enterprise framework for data intensive, web-based hypermedia in the domain of cultural tourism - a key business sector for many countries. The proposed enterprise framework is called MEDINA - the Arabic term for “ancient town center” and the name of the EC Eumedis project #314 ( “MEDIiterraneaN by INternet Access) that funds the framework development. The project involves 17 partners that represent National Tourism Agencies, Ministries of Tourism and Culture, Cultural Tourism Associations of 12 countries in the Mediterranean basin (Italy, Greece, France, Morocco, Tunisia, Algeria, Cyprus, Malta, Lebanon, Palestinian Authority, Syria, Jordan). The project purpose is to exploit ICT technology to promote cultural tourism in the Mediterranean area, especially in less developed countries. It aims at encouraging innovative ways of doing tourism, through the deep understanding of local civilizations and the promotion of destinations that are usually not mentioned in standard “all inclusive” packages proposed by tour operators. To achieve these goals, the MEDINA project is building of a federation of national web sites (one for each project country) under the umbrella of a Mediterranean portal. The overall “system” provides cultural and practical multimedia information about the material and immaterial heritage of the whole Mediterranean basin (including monuments, natural places, gastronomy, folk traditions, performing arts). Each national web site focuses on the culture of a specific country, but also pinpoints the relationship with other cultures. The portal focuses on the common cultural roots of the different nations, highlights the cross-influences of the different civilizations born in the Mediterranean basin, and acts as a “gateway” towards the national web sites.

General Terms Design

Keywords Enterprise framework, e-tourism, data intensive dynamic web application

1. INTRODUCTION AND BACKGROUND An application framework “…provides a reusable solution for a class of software applications that share a common set of requirements in a given domain”[16]. A framework can be regarded as an application “skeleton”, which captures the essential features of a family of applications and can be customized to produce a specific application in the family [6][7][8]. Frameworks leverage the domain knowledge and prior effort of experienced developers in order to avoid re-creating and re-validating common solutions to recurring application requirements and software design challenges. Most existing application frameworks focus largely on system infrastructure and middleware integration domains (such as user interfaces [10][20] and OS/communication architectures [23][15]). The idea of exploiting the concept of application framework for hypermedia dates back to the 80ies, Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. HT’05, September 6–9, 2005, Salzburg, Austria. Copyright 2005 ACM 1-59593-168-6/05/0009...$5.00.

The MEDINA project provides a ground where the need for enterprise frameworks is very strong, for several reasons:

257

cooperation with implementers and interaction designers to conceive and validate the conceptual design.

Development costs. It would be prohibitively costly and time consuming to develop each MEDINA national web site entirely from the ground up. The reusability characteristics of framework can yield substantial improvements in the productivity of the many development teams, as well as enhance the quality, performance, and reliability of the final national web sites and MEDINA portal.

From this premise, we derive that the main requirement for the MEDINA framework is to provide a user-friendly, easy-to-use environment that:

Interoperability. The portal and the federation of national sites must provide a coherent scenario for the cultural tourist, so that the transition from one site to another one is smooth and natural for the user. By supporting the development of applications that share design solutions at multiple levels - from information design to interaction design to implementation architecture, a framework based approach ensures their technical interoperability and enforces the armonization of the user experiences in the different web sites. Sustainability. The MEDINA project involves a number of partners who do not ensure a strong technological background. These teams need technical solutions that hide the complexity of some implementation components and can be easily customized according to local needs. The framework is not only a productivity tool but also a channel for know-how transfer and sustainability. By understanding the MEDINA framework and learning how to use it, the local teams can maintain their national web site after the project ends, make it evolve, and apply the framework to build other cultural tourism applications.



can be used by the whole team involved in the development of a networked hypermedia for cultural tourism



maximizes the reuse of both hypermedia design and implementation solutions



minimizes the implementation effort required to customize and instantiate the framework

-

enables the experts in cultural tourism to actively participate in the customization and instantiation of the framework without the need of learning any specific technology.

Issues related to reuse of hypermedia design are perhaps less explored in framework engineering, thus the rest of this section will focus on them. A generally acknowledged paradigm to enforce hypermedia design reuse is the separation between the information design model, the navigation design model, and the presentation design model1 [1][3][10] [19] [24]. The information design model describes the types of information structures that the end user perceives in the application. The navigation design model describes the navigation structures that allow users to navigate across the instances of the information model. The presentation design model describes the lay-out properties of the pages that render information objects and navigation elements.

Traditionally, enterprise frameworks are developed by generalizing from existing systems and applications. The MEDINA framework consolidates the domain knowledge acquired by the Hypermedia Open Center team from earlier projects in cultural tourism hypermedia [13], from the reverse design of a large number of existing web sites, and from the experience gained from developing the first two prototypes of national web sites during the first year of the MEDINA project.

The MEDINA framework adopts this paradigm, and must fulfill some more specific requirements: Quality and ease of reuse of the hypermedia information design model. The information design model of the MEDINA framework must be: i) easy to understand by the whole development team; ii) specific for cultural tourism; iii) general and flexible enough to accommodate the information modeling requirements of a large spectrum of applications in this domain. In the majority of cases, information designers and content experts should reuse the MEDINA information model tout-court, without any customization. The customization task, if needed, must not require any implementation effort. In addition, the framework must support the instantiation of the information model in a systematic and consistent way. Quality and ease of reuse of the hypermedia navigation design model Design patterns, i.e., successful design solutions to recurrent design problems, are a key ingredient of high-quality frameworks [16]. Thus the adoption of navigation patterns [12] is a must for the MEDINA navigation design model. The designer of a specific application must be able to either reuse the built-in navigation patterns offered by the framework, or adopt different navigation patterns without any implementation effort.

In the rest of this paper, we provide an overview of the MEDINA framework, describing its requirements (section 2) and its design (section 3). In section 4 we shortly discuss how the proposed framework has being validated and used in by the development teams of the MEDINA project, and outline the main directions for our future work.

2. THE FRAMEWORK REQUIREMENTS In order to define the requirements of the MEDINA framework, we must understand some specific characteristics of its domain, i.e., cultural tourism networked hypermedia, and of the development process for this class of applications. As for most content intensive web products, the success of a networked hypermedia for cultural tourism largely depends on the quality of the contents provided to end users, the usability of the interaction, and the visual appeal of the interface. Consequently, the development process typically requires the investment of more resources for hypermedia conceptual design (of effective information and navigation structures and of nice lay-out solutions) and multimedia content production, rather than code production. In this arena, domain experts have a strong role: They are responsible for content production and must work in close

1

258

Following the UML [5] terminology, here we use the term “model” for what is usually called “schema” in database design terminology

Caption, Video Caption, Audio Caption); one or more images (in two versions – high and low resolution); zero or more videos and audios; a list of commented URLs to relevant web sites. To address the need for multi-linguism (a frequent requirement of tourism applications), we have defined structured attribute types that comprise multiple language based “versions” of the same attribute value (with English as default).

Quality and ease of reuse of the presentation model. Since any web application typically has, at different degrees, its own lay-out requirements (concerning colors, logos, backgrounds, etc.), it is difficult to provide general pre-packed presentation design solutions that can be adopted tout-court. Still, a common practice of graphic designers is to “work by modification” of existing lay-out templates solutions. To support to this practice, MEDINA framework must associate high-quality page lay-out specifications (based on well-know lay-out design patterns) to the different types of information and navigation structures. These lay-out specifications can be used as default lay-out templates (e.g., for a demo version of the application under development), or as a basis for new templates, specific for the application under development.

According to W2000, an Entity can be related to other Entities via semantic associations. For example, the entity denoting “Carthage Archeological Site” in Tunisia has a relationship with the “Bardo Museum in Tunis” where the mosaics found in the site are exhibited. A class of relationships of sharing the same semantics is called Semantic Association Type, specified by a name, a source entity type, a destination entity type, and a textual attribute called Descriptor. In MEDINA, all Semantic Associations Types are called “SEE-ALSO-X”, where X is the Entity Type name of the association destination (being the source any entity type). The descriptor is useful to explain why an Entity is associated to another one. This textual attribute, and the captions required for images and videos (see above) ensure that the final applications fulfil some W3C Web Content Accessibility Guidelines (WCAG) and are appropriate, in principle, for visually impaired users.

3. THE DESIGN OF THE MEDINA FRAMEWORK The MEDINA framework fulfils the above requirements by providing: 1.

a hypermedia conceptual design model that is specific for cultural tourism applications, validated by a representative body of domain experts, simple to understand, and easy to customize;

2.

a visual tool (called DIT – Design Instantiation Tool) that supports both design customization and instantiation of the (possibly customized) information and navigation design models;

3.

a software architecture that serves both the execution of the DIT tool and the execution of the final application.

Collection types describe groups of “topics of interests” concerning a given theme. A collection is defined by a group of entities (of the same or different types) called Collection Members and a set of contents (called Collection Centre) that has the purpose of introducing the group itself. The collection schema of the MEDINA framework includes a collection type “All entities of Axis X” where X stands for an Axis/Entity Type name. Collections of this type group all entities of type X. The collection schema also includes the collection type “Pathways”. A Pathway represents a virtual itinerary [14] about a subject of interest for a cultural tourist, and typically groups entities of different axes. An example, developed for the Cyprus national web site, is “The Aphrodite’s Pathway”. The Collection Center provides a multimedia description of the myth of Aphrodite in Cyprus (where, according to the mythology, Aphrodite was born). Collection members are entities of different axes, concerning paintings, places, buildings, folk traditions, rituals, etc., related to the myth of Aphrodite in Cyprus. Finally, there are two collections created at a run-time: History, which collects all the entities visited by the user, and Personal Itinerary, created by the end user by “marking” the pages of interest during a navigation session.

3.1 The conceptual hypermedia model The MEDINA conceptual design model captures the key design solutions to address the needs of cultural tourists, abstracting from any implementation concern. It comprises an information design schema and a navigation design schema, which are specified using the modeling primitives of the W2000 hypermedia design language (the latest version of the Hypermedia Design Model HDM [10] [11]). According to W2000, the information schema is defined by a set of Entity Types, a set of Semantic Association Types, and a Set of Collection Types. Entity Types define the classes of “topics” of interest for the user. MEDINA provides a set of built-in Entity Types: material heritage, performing art, folk tradition, food&gastronomy, handicraft, ritual, practical info. These types have been defined by a multi-national team of cultural tourism experts (who have also asked to replace the term Entity Type with the terms Cultural Tourism Axis, finding the latter less technical and closer to their jargon).

The specification of MEDINA navigation design schema is very concise, since it simply associates navigation design patterns [12] to the different types defined in the information model. For example, the Index Pattern is associated to the collection type “All entities of Axis X, to indicate the existence of bidirectional links from the collection center to the members. The Index+Guided Tour pattern is associated to Pathways, to represent the bidirectional links from the Pathway center to the members, and from each member to the next and previous one.

Example of MEDINA entities are “The cous-cous in Tunisia” (of Axis “Gastronomy”), “Bardo Museum” in Tunis (of Axis “Material Heritage”)or “The hammam in Alger (of Axis “Folk Tradition)”.

The navigation schema is enriched with the specification of simple operations that tourist may want to perform on the web sites: the creation and management of Personal Itineraries. Other operational capability that are useful for tourism applications, such as reservation services and similar, are outside the current

All Axes/Entity Types share the same data structure, made of: a set of textual attributes (Title, Subtitle, Description, Image

259

the schema (entities and pathways), cross-link them and fill them with the proper multimedia items (text, video, sound, images) possibly in different languages (figures 1 and 2). The default language for textual contents here is English, but the author can fill the same information structures with contents in Arabic and French, according to his customized information design schema.

scope of the MEDINA framework (although the framework architecture, as we discuss later, is modular and flexible enough to support a relatively easy integration of off-the-shelf tourism “services”).

3.2 DIT – Design Instantiation Tool This component of the MEDINA framework provides a simple user friendly tool to customize and instantiate the hypermedia design schemas, and enables developers to perform these tasks efficiently, consistently, and without any implementation effort. Integrated with the overall MEDINA architecture (see next section), DIT offers the following functionality: -

Information design customization: Information designers and domain experts can define (and update) the Axis (Entity Types) that are relevant for the specific cultural tourism application under development. They can also specialize the information design schema by setting the languages that will be used by the language sensitive attributes of the final application.

-

Navigation design customization: Interaction Designers can modify the default design patterns associated to the various information structures in the MEDINA information schema, selecting a different pattern from a Pattern Library and linking them to the corresponding structure.

-

Instances creation and update: Domain experts can instantiate and update the various information structures of

-

Application Preview. This is one of the most original features of the tool. As a new instance is created or updated, DIT allows developers to inspect the effects of their work by previewing the pages affected by their operations with the same lay-out and navigation capability that appears in the end-user application. Assume for example that in the national web site of Tunisia the entity “Carthage” is created, joined to Pathway, and associated via SEE-ALSO-X, to another entity. The preview displays the page corresponding to this instance (see figure 3, where we manually highlighted the different entity attributes and the available navigation links). The developer can navigate from here to the pages displaying the associated instances, return to Carthage, and navigate to the Pathway “Foreign Dominations” where this entity has been inserted. Since DIT is integrated in the general software architecture of the MEDINA framework, the preview function simply triggers a request for page generation, and any further navigation action is executed by the tool in the same way as the final application.

Figure 1. Cross linking information structures (creation of SEE-ALSO semantic associations)

260

Figure 2. Pathway update

Figure 3. Preview of “Carthage” Entity - Tunisia National Site (http://como.servehttp.com/medina/tunisia) The architecture exploits a well known approach in web engineering, separating the application business logic from its presentation and control logic. The presentation logic, delegated to the client side, manages user interaction and data (dis)play. The control logic, delegated to the server side, interprets the requests from the presentation level, manages the functionality defined by the business logic (e.g., data retrieval or update, composition of the required HTML page), and returns an HTML

3.3 Software Architecture The software environment is the same for the end users of the final application and for the development team, who can constantly inspect and test their work by previewing, as discussed in the previous section, the application in its final look&feel: the same architecture serves both the execution of the customization and instantiation operations and the dynamic generation of the final application.

261

page to the presentation level via the network infrastructure using the HTTP protocol.

execute them, to build the proper View, and to return to the client.

The framework architecture is modeled according the ModelView-Controller (MVC) design pattern [9][26]. This pattern divides an application into three logical categories of objects: Model, View, and Controller.

In web applications, user “commands” appear as HTTP page requests. View objects typically correspond to HTML pages. Based on the page request, the results of the operations on, and the state of, the Model, the Controller generates the next HTML page to display and transmits it to the client for presentation.

Model objects (collectively referred as “Model”) represent application domain data and the business rules that govern access to and updates of this data.

Figure 4 depicts the application of the MVC pattern in the MEDINA architecture, and shows the flow of control and data. It highlights that MEDINA framework serves the requests from both application developers (for design schema customization and instantiations, via the DIT tool) and end user requests.

View objects are responsible of rendering the contents of the Model and forwarding user commands to the Controller. Controller objects (collectively referred as Controller) are responsible to map user requests to operations on the Model, to (1) HTTP Page Request

CLIENT LEVEL Content Author/

Cultural Tourist

Application Designer

(9) HTML page Delivery SERVER LEVEL

Front Controller

(2) Action Set Retrieval

(8) HTML page

(3) Action Set Execution

(8) HTML page Action Library

Presentation Engine

Data/View Controller (7) Page construction request

(4) Object Retrieval/ Update

(8) Presentation Template retrieval

Object Data Layer (5)Data Query/ Update

Presentation Template Library Data Access Layer

(6) Multimedia Data Retrival/Update

Hypermedia DB

Figure 4. MEDINA architecture

262

instantiate the Templates. CSS allow developers to achieve a high browser independency - the generated pages looks out exactly the same on more than 90% of the browsers. The page layout fits perfectly an 800x600 pixel screen and is well rendered at higher resolution.

3.3.1 The View components In the MEDINA framework, Views correspond to: −

HTML pages that are generated by Controller objects using the data in the Model, and are viewed through the client browser



the Library of Presentation Templates that provides the specifications of lay-out properties for the different types of pages used by the application.

To give an idea of the quality of the built-in lay-out specifications available in the MEDINA framework, figure 5 show the fragments of some pages generated for the Cyprus national web site. Figure 5a presents the History of a Session of Use (highlighting in grey the Visited Entities for the various Axes). As the user rolls-over a square with the mouse, a small preview of the corresponding page is displayed on the right side. Figure 5b shows the topics of a Personal Itinerary created by the end user during a navigation session. Figure 5c highlights the comment associated to a SEEALSO link (and activated as the user rolls-over the link with the mouse).

Presentation Templates are implemented using a standard, largely platform independent language. A graphic designer can retrieve and easily customize them simply by modifying some lay-out attributes. The Presentation Templates Library is implemented as a repository of XTPL files [28] and associated CSS specifications. The former can be regarded as structural skeletons of plain HTML pages, without any content or lay-out attribute. CSS files (Cascade Style Sheet [17]) describe the visual properties of web pages that

(a)

(c)

(b) Figure 5. Fragments of MEDINA pages (Cyprus National Web Site) - http://como.servehttp.com/medina/cyprus

3.3.2 The Model components The Model in the MEDINA framework comprises three components: The Object Layer, the Hypermedia Data Base, and the Data Access Layer.

The Object Layer is updated when application developers (content authors and designers) customize the design schemas for the specific applications, or instantiate them. Objects representing the Session History and the Personal Itinerary are updated when the end user moves from one page to another, or when he manages his own itineraries (e.g., deleting an item - see figure 6 b)

The Object Layer stores the classes and objects that represent the definitions of information and schemas, and their instances. The Object Layer classes provide the methods for the operations that define the business logic of the application. Conceptually, the main operations are: i) retrieval (from the underlying Hypermedia Data Base – see below) of the multimedia information pieces that must be presented in the next page to display; ii) validation and persistent storage of the data entered by the user.

The Object Layer abstracts from the implementation characteristics of the Model, defined in the Hypermedia Data Base component, which stores the data structures that implement Object Layer.

263

The Data Access Layer is the interface between the two previous components. The purpose of this component is to translate the operations of the Objects Layer into commands that the DBMS understands - regardless which database management system (DBMS) is handling the data. The design of the Model fulfils the need for encapsulation and information hiding, allows different data bases to share the same domain Model, and makes the development of different MEDINA applications easier to implement, test, and maintain.The Object Layer data structures are described in figures 6 and 7, using UML [5] class diagrams. Figure 6 represents the classes for the objects information design schema and instances (POC denotes the classes for information design entities and for collection centers). Figure 7 describe the main classes representing Navigation Patterns and their associations to information design structures.

Figure 6. UML class diagram for MEDINA Object Layer (Information Design Structures)

Figure 7. UML class diagram for MEDINA Object Layer (Navigation Design Structures)

Object Oriented scripting language that is especially suited for Web development and can be embedded into HTML. What distinguishes PHP from something like client-side JavaScript is that the code is executed on the server side.

The MEDINA Object Layer is implemented using PHP (the same implementation language used for the Controller components – see next section.). PHP - recursive acronym for "PHP: Hypertext Preprocessor" [29] - is a widely-used open source general-purpose

264

The Data Access Layer is implemented in ODBC. ODBC (Open DataBase Connectivity [27]) is a standard commercial component that make it possible to access relational data from any application, regardless of which DBMS is handling the data. ODBC can be regarded as a “database driver” between an application and the DBMS. The choice of ODBC enforces modularity and scalability of the MEDINA architecture, since it does not bind it to a specific database: Each DBMS that does support an ODBC link (e.g. MS Access, or open source DBMSs such as MySQL and PostgreSQL) may be adopted by the developers using the MEDINA framework

4. CONCLUSIONS AND FUTURE WORK The first version of the MEDINA framework has been tested by the partners of the MEDINA project in Tunisia, Morocco, and Cyprus. Together with the teams in Malta and Lebanon, they are currently using the updated release to produce their five national web sites. The use of the framework so far have mostly involved cultural tourism professionals with limited know-how in web development technology. The current experiences reveal that MEDINA largely fulfils the requirements of usability and productivity that we want to achieve. Here are some empirical data in our possess:

The Hypermedia Data Base is currently implemented in the MS Access DBMS. To keep the database footprint low and ensure cross-platform compatibility, large binary objects such as images, audio files and videos) are not stored into the DBMS but on the file system, while the database only contains references (URIs) to multimedia files.

3.3.2 The Controller components The MEDINA Controller comprises the following components: −

The Front Controller: it is responsible of forwarding user commands to the Action Library, and triggering the execution of the proper Action.

-

The Action Library: this component stores the Action objects. An Action defines a set of operations needed to fulfill the user request. Based on the user request, these operations invoke the proper methods in the Object Layer, update the Model, and retrieve the data to be displayed.

-

The Data/View Controller: this is a run-time component, that represents the Action in execution

-

The Presentation Engine: it is responsible of the composition of the HTML page to be displayed to the user. Based the results of the operations on and the state of the Model, the Presentation Engine selects the appropriate presentation template, assembles the data returned from the operations, and composes the HTML page to return to the user.



Understanding the hypermedia design has required less than one day of training



Learning the use of the DIT tool has required less than one hour



Overall, in the whole set of test bed countries, the five national web sites – perfectly running – include 15 Pathways, 140 instances of (various) entity types, 584 images, 3 videos, 8 sound tracks, 1204 navigation links. Excluding the cost of content production for long texts, images, and videos – built outside the MEDINA framework, the resources needed to instantiate the built-in design schemas (without any customization) amount to 2 person/weeks.

Although we are not yet able to quantify precisely the framework economics, i.e., the cost of using the framework v.s. building the same applications from scratch, we believe that the above results are quite encouraging. After the final version of the framework is completed and delivered to all 17 MEDINA partners (Summer ’05), we are planning a systematic validation study to collect more complete empirical data on the framework use and effectiveness. This validation study will also offer new suggestions on how to improve the framework. A framework always constitutes an ever evolving “representation” of the knowledge of developers and domain experts captured at a given point of time. New insights are constantly emerging as the framework is being used, and some specific notions and functionality may become more general concepts and incorporated into the future version of MEDINA.

The Front Controller is a standard web server, while Actions are implemented as PHP “pages”, i.e., parametric programs coded in PHP. Based on the user command, the web server retrieves the proper PHP page from the Action Library and launches its execution. The PHP page contains the instructions to invoke the proper methods in the Model Object Layer, which return the proper data for the page to be displayed. The PHP page also contains the identifier of the needed Presentation Template. It forwards it, together with the data, to the Presentation Engine for HTML page construction..

We consider the MEDINA framework as a strategic weapon in attacking the vertical market of web applications for cultural tourism. Still, our objective is to address the broader business sector of web applications for cultural heritage. We have started using the MEDINA tools in four different national and international projects (including the EC funded EPOCH Network of Excellence in Cultural Heritage), to gain the experience needed to build an upgraded, more powerful framework.

The Presentation Engine uses XTemplate, a PHP compliant Open Source template engine [28] that creates HTML pages on the basis of: the data sent by a PHP program, a page template (a XTML file) and a CSS. It merges the data into the HTML template and “applies” the CSS lay-out specifications. The HTML page so created is ready for publishing, and is returned to the running PHP page (program). This PHP page “terminates” by sending the HTML page to the web server, responsible for the final delivery to the client browser.

5. ACKNOWLEDGMENTS The authors are grateful to the partners of the MEDINA project who participate in the requirements analysis and usability testing of the framework. A special thank goes to the MEDINA development team at HOC: Chiara Bramani, Maddalena Fiordelli, Daniele Gobetti, Nicola Piccinotti, Marco Speroni, and Lorenzo Vismara.

265

[14] Guidazzoli A. et al., (July, 2000). Tailored Virtual Tours in Cultural Heritage Worlds Proceedings Siggraph 2000 , New Orleans.

6. REFERENCES [1] Atzeni P., Mecca G., Merialdo P.: "Design and Implementation of Data-Intensive Web Sites". Proceedings of the Conference On Extended Database Technology (EDBT’98),Valencia, Spain, March 1998.

[15] Johnson, R.E. and Foote, B. Designing reusable classes. Journal of Object-Oriented Programming 1, 5 , June/July 1988.

[2] Birrer E. T. 1993. Frameworks in the financial engineering domain: An experience report. In Proceedings of the European Conference onObject-Oriented Programming (ECOOP ’93), Springer-Verlag, New York.

[16] Johnson R.E., "Frameworks= Components + Patterns", in Communications of the ACM , vol. 40, n. 10, Oct. 1997. [17] E.A.Meyer “Cascading Stylesheets - The Definitive guide”, 2° ed, O’Relly Ed., 2004

[3] Ceri S, Fraternali P., Bongio A.: “Web Modeling Language (WebML): a modeling language for designing Web sites”. Proc. of the 9th World Wide Web Conference (WWW9), Amsterdam, 2000.

[18] Meyrowitz N. Intermedia: The architecture and construction of an object-oriented hypemedia system and applications framework. Proc. OOPSALA’86 Conf. on Object-oriented programming systems, languages and applications, Portland,OR, Sept. 29-Oct. 2, 1986), N. Meyrowitz Ed. ACM Press, New York, NY,

[4] Codenie W, De Hondt K, Steyaert P, Vercammen A. From Custom Applications to Domain-Specific Frameworks Communications of the ACM , vol. 40, n. 10., Oct. 1997

[19] Paolini, P., Fraternali, A.: A Conceptual Model and a Tool Environment for Developing more Scalable, Dynamic, and Customizable Web Applications. In Proceedings of the Conference on Extending Database Technology (EDBT), 2003.

[5] J. Conallen: “Modeling Web Application Architectures with UML. In Communications of the ACM, 42:10. [6] Fayad M.E. and D.C. Schmidt, “Object Oriented Application Frameworks” in Communications of the ACM , vol. 40, n. 10., Oct. 1997

[20] Pree, W. Design Patterns for Object-Oriented Software Development. Addison-Wesley, 1994.

[7] Fayad M.E “Introduction to the computing surveys' electronic symposium on object-oriented application frameworks”, in ACM Computing Surveys, Vol. 32, N. 1, March 2000

[21] G. Rossi et al “Navigating Between Objects: Lessons from an Object-Oriented Framework Perspective” in in ACM Computing Surveys, Vol. 32, N. 1, March 2000

[8] Fayad, M.E. and Hamu, D.S. Object-Oriented Enterprise Frameworks. Wiley, NY, 1997

[22] Turau V. “Web and e-business application: A framework for automatic generation of web-based data entry applications based on XML”, in Proceedings of SAC’02- ACM Symposium on Applied computing , Madrid (Spain) March 2002

[9] Gamma, E, Helm, R., Johnson, R. and Vlissides, J. Design Patterns: Elements of Reusable Software Architecture. Addison-Wesley, 1995 [10] Garzotto F., P. Paolini, and D. Schwabe,. HDM - A ModelBased Approach to Hypertext Application Design. In ACM Transactions on Information Systems , Vol. 11, No. 1., Jan. 1993

[23] Schmid, H.A., "Systematic Framework Design", Communications of the ACM , vol. 40, n. 10, Oct. 1997

in

[24] D. Schwabe, G. Rossi: “An Object Oriented Approach to Web-Based Application Design”. In Theory and Practice of Object Systems, 4 (4), J. Wiley, 1998.

[11] Garzotto F., P. Paolini, L.Mainetti,. Hypermedia Design, Analysis, and Evaluation Issues. In Communications of the ACM , Vol. 38, N. 8. Aug. 1995

[25] Schwabe, D., G. Rossi, L. Emeraldo, F. Lyardet, Web Design Frameworks: An approach to inprove reuse in Web Applications. Proceedings WWW99 Web Engineering Workshop , Springer Verlag, 1999

[12] Garzotto F., P. Paolini, D. Bolchini, and S. Valenti, "Modeling by patterns" of Web Applications, in Proc. Of the International workshop on the World-Wide Web and Conceptual Modelling , WWWCM'99, Paris, 293-306 Nov 1999.

[26] http://java.sun.com/blueprints/patterns/MVC-detailed.html [27] http://msdn.microsoft.com/library/default.asp?url=/library/en -us/odbc/htm/odbc_part_1.asp

[13] Garzotto, F., Cinotti, S., Pigozzi, M.: Designing MultiChannel Web Frameworks for Cultural Tourism Applications: the MUSE Case Study, In Proc. of Museums and the Web Conference 2003, Archives and Museum Informatics, Charlotte (VG), 2003.

[28] http://sourceforge.net/projects/xtpl/ [29] http://www.php.net/.

266