Model-driven Design of Service-enabled Web Applications

4 downloads 81336 Views 312KB Size Report
conceptual primitives for Web services interactions and the development experience of four industrial Web applications exploiting remotely available Web ...
Model-driven Design of Service-enabled Web Applications Marco Brambilla, Stefano Ceri, Piero Fraternali

Roberto Acerbis, Aldo Bongio

Politecnico di Milano, Dip. Elettronica e Informazione Via Ponzio, 34/5 20133 Milano, Italy +39 02 2399 3408

WebRatio Piazza Cadorna, 10 20123 Milano, Italy +39 02 8738 7457

{mbrambil, ceri, fraterna}@elet.polimi.it

{Roberto.Acerbis, Aldo.Bongio}@webratio.com

ABSTRACT Significant efforts are currently invested in application integration to enable the interaction and composition of business processes of different companies, yielding complex, multi-party processes. Web service standards, based on WSDL, have been adopted as a process-to-process communication paradigm. This paper presents an industrial experience in integrating data-intensive and processintensive Web applications through Web services. Design of sites and of Web services interaction exploits modern Web engineering methods, including conceptual modeling, model verification, visual data marshalling and automatic code generation. In particular, the applied method is based on a declarative model for specifying data-intensive Web applications that enact complex interactions, driven by the user, with remote processes implemented as services. We describe the internal architecture of the CASE tool that has been used, and give an overview of three industrial applications developed with the described approach.

1. INTRODUCTION In its recent evolution, the Web has become an implementation platform for B2B applications supporting business processes, content management, document approval flows, and value-added services. This leads to the integration of several technologies, far beyond the simple implementation of Web interfaces for content publishing. Web services are proving to be a good paradigm for communication and interoperability between applications; however, they are not meant as an interface for human users participating to such processes. Therefore, the need arises of engineering user-friendly, platform-independent, low-cost, performing, and – perhaps most important - correct interfaces for humans, who enact complex application workflows communicating with Web services. The navigational paradigm of Web interfaces, whereby users interact by activating links and/or providing input, is becoming extremely popular for information browsing also in the B2B scenario thanks to its absolute userfriendliness. For building Web applications, several research groups advocate the use of declarative design languages ([1], [4], …), to raise the focus of development from the source code to abstract and platform-independent models, enabling fast prototyping, automatic code and documentation generation, and model-level correctness checking. Also the industry is embracing this approach, as witnessed by the increasing interest in the use UML and other notations for Web applications [6].

The goal of this paper is to describe the implementation of new conceptual primitives for Web services interactions and the development experience of four industrial Web applications exploiting remotely available Web services. The paper builds upon an existing Web modeling language called WebML (www.webml.org, [4], [5]) and proposes a set of novel primitives that extend the expressive power of the language to support various form of interplay between Web applications and Web services. The resulting model can be used for designing Web applications mixing the use of traditional data sources (e.g., relational databases) and Web services, as well as for specifying new Web services, by composing existing services, local data sources, and also user interaction. A tool called WebRatio (www.webratio.com, [3]) offers a uniform and coherent environment for visually specifying Web interfaces for human users, Web service interfaces for remote peers, and simple orchestrations of third-party services. The design environment is equipped with a code generator that deploys the specified application and Web services in the J2EE platform, by automatically generating all the necessary pieces of code, including data extraction queries, Web service calls, data mapping logics, page templates, and WSDL service descriptors. The second part of the paper reports about three implementation experiences based on the proposed approach; each of them shows a different application integration problem. These implementation experiences share a common aspect, namely that application integration occurs by means of suitable web services, and that the application is presented to users using uniform Web interfaces. Applications have been implemented within research projects sponsored by the EU and by the Chamber of Commerce of Como; the technological transfer of most of the features reported in this paper to the product WebRatio has been achieved in Version 4.1, available since April 2005.

2. WEB APPLICATION MODELING The first generation of conceptual models for the Web ([1], [4], [5], [7], [8], [10]) focuses on capturing the structure of data to be published and on the navigation primitives, by means of such concepts as pages, content nodes, links, and operations. In the describe work, we adopt WebML ([4], [5]) as a starting point for the extensions of conceptual modeling to Web services interactions. The specification of a WebML application consists of a data schema (represented as a standard E-R model) describing application data, and of one or more hypertexts (e.g., for different

types of users or for different publishing devices), called site views, expressing the Web interface used to publish this data. A site view is a graph of pages, consisting of connected units, representing at a conceptual level atomic pieces of homogeneous information to be published: the content that a unit displays is extracted from an entity, possibly filtered. Units site are normally connected by links carrying data from a unit to another, to allow the computation of the hypertext. WebML also allows specifying update operations on the data underlying the site (e.g., the creation, modification and deletion of data instances) or operations performing arbitrary business actions (e.g. sending emails). WebML has been recently extended with primitives for process specification [2] and Web services [9].

2.1 Web services primitives To describe Web services interactions, WebML has been extended with Web service units [9]. These units are synthetically represented in Figure 1. Web services operation symbols correspond to the WSDL classes of Web service operations. In the definition of the icons, we adopt two simple graphical conventions: (i) two-messages operations are represented as round-trip arrows; (ii) arrows from left to right correspond to input messages from the perspective of the service (i.e., messages sent by the Web application). Request-response and one-way operations are triggered when the user navigates one of their input links; from the context transferred by these links, a message is composed, and then sent to a remote service as a request. In the case of a synchronous request-response, the user waits until the response message is received, then continues navigation as indicated by the operation’s output link. Otherwise, navigation resumes immediately after the message is sent. Notification and solicit-response are instead triggered by the reception of a message. Indeed, these units represent the publishing of a Web service, which is exposed and can be invoked by third party applications. In the case of solicit-response, the WebML specification dictates the way in which the response is built and sent to the invoker. Moreover, Web services publishing units cannot have output links leading to pages, because there is no user interaction involved in the response to the caller. One-way service operation

Notification service operation

Synchronous request-response service operation

Synchronous solicit-response service operation

Op . name

Op. name

Op. name

Op. name

Conv. name

Conv. name

Conv. name

Conv. name

Figure 1. WebML Web service units Publishing of Web services is specified using three concepts: (i) Service view: it is an interface containing the definition of machine-callable Web services;; (ii) Service: it represents the concept of e-service, that is, a set of methods that can be remotely invoked; (iii) Port: it represents the individual service; it can only contain chains of operations starting with a solicit-response (or notification) operation.

2.2 Workflow tracking primitives In order to enact processes within a Web application, two kinds of enhancements are needed: (i) a metadata model describing all the information of the instances of the process; (ii) some workflowaware hypertext primitives for designing interfaces capable of controlling the process enactment. Metadata record the status of each process instance, and serve for bookkeeping purposes. For describing processes, we adopt the terms defined by the WfMC (www.wfmc.org), which provides a workflow model based on the concepts of Process (the description of the supported workflow), Case (a process instance), Activity (the elementary unit of work composing a process), Activity instance (an instantiation of an activity within a case), Actor (a user intervening in the process), Role (a group of users) and Constraint (logical precedences and rules). Such concepts have been modeled in an E-R diagram (here omitted for lack of space) [2], whose instances are updated during the execution of cases. At this purpose, dedicated units are introduced for updating process data as a result of activity execution, for accessing the data associated with a specific activity instance, and for expressing the assignment of data objects to an activity instance. The portion of hypertext devoted to the execution of an activity must be enclosed between the two workflow-related operations shown in Figure 2 (a): start activity and end activity. These operations are triggered respectively by incoming and outgoing links of the activity and have the side effect of updating the workflow metadata. Specifically, starting an activity implies creating an activity instance with all the information related to this event, while ending it implies setting its status to "completed". Start Activity

End Activity

Payments

PayID

Assign A

Amount

If

W

ActivityName

ActivityName

(a)

Payment [ActivityType="Billing"]

(b)

[true] [false]

Payment [Activity="Billing"] [Case=CurrentCase]

(c)

Amount>1000$

(d)

Figure 2. WebML workflow primitives Workflow-aware content units can be used for retrieving the data objects related to a particular activity. These units are like the regular WebML content unit but are tagged with a "W" symbol denoting a simplified syntax, which shortens the expression of predicates involving both application data and workflow data. For example, Figure 2 (b) shows a workflow-aware index that retrieves Payments assigned to an activity of type “Billing”. The assign operation is a WebML operation unit that connects application object(s) to an activity instance, for which an activity type, a case and possibly a user are specified. Figure 2 (c) shows the graphical representation of the assign operation, which assigns a Payment to the activity called "Billing" for the current process case. The navigation of a hypertext may need to be conditioned by the status of activities, to reflect the constraints imposed by the workflow. Two dedicated operations called if (see Figure 2 (d)) and switch operations allow performing status tests and deciding the destination of a navigable link.

2.3 Hypertext example Figure 3 shows a WebML fragment denoting a hypertext including Web service calls and workflow primitives. The

example refers to a scenario from the Acer Business Portal: each month sales partners are asked to submit a report, according to a different template depending on their Country. The first activity of the process is the Report template retrieval. Within the Partner’s site view, a start activity starts the Report Template Retrieval activity, setting its state to “active”. Then, the Country Selection Page is shown to the user. When the user selects a country from the index, the Selected Country page displays the chosen country (Country Data unit). If the user clicks on the outgoing link, a Web service request is submitted through the GetReportTemplate request-response unit, and the result is shown into the Report page. If the user is happy with the downloaded template, he can click on the link and thus assign the template to the manager and to the Report Filling activity, which is therefore enabled. An End activity operation concludes the activity.

provides a GUI for designing Web applications based on a set of predefined “page types”, corresponding to database tables; (iii) Borland Enterprise Studio for Java (http://www.borland.com/ estudiojava) is basically an advanced IDE tool, integrating some modeling features from TogetherJ and and basic WYSIWYG interfaces; (iv) Rational Rapid Developer (http://www.ibm.com/ software/awdtools/rapiddeveloper) consists in a UML design tool, adapted to the Web environment, where automatic code generation is provided just for the business logic layers (model), while JSP (or analogous) pages must be coded by hand. All these tools work at a lower level with respect to WebRatio, providing a good development solution for the implementer, the Web designer or the programmer. Moreover, none of them address with sufficient clarity the problems of application integration and business processes enactment.

Partner Site View

Country Selection Page

3.2 WebRatio architecture

Selected Country Page

Start Activity

Country Index

Country

Get ReportTemplate

ReportTemplate Retrieval

Country

Country

SalesReport

OK

Report Page End Activity

Assign OK

ReportTemplate Retrieval

ReportTemplate

A

Report [Activity ="Report filling"] [User=”Manager”] [Case=CurrentCase]

Report

Acer Service View

Report Service RetrieveReport Get Rep ReportTemplate C, M

BuildSOAPmsg

The architecture of WebRatio (Figure 4) consists of two layers: a design layer, providing functions for the visual editing of specifications, and a runtime layer, implementing a Model View Controller Web application framework [3]. These layers are connected by the WebRatio code generator, which exploits XML transformations to map the visual specifications edited in the design layer into application code executable at the runtime layer. The design layer, code generator, and runtime layer have a plug-in architecture: new components can be described using XML descriptors and made available to the design layer as custom WebML units, the code generator can be extended with additional XSL rules to produce code wrapping the plug-in components, and the components themselves can be deployed in the runtime application framework.

… other ports ...

Style sheet library

WebRatio Design Layer

Unit library Report [Country=C] [Month=M]

Figure 3. WebML activity and Web service examples On Acer side, a Web service called Report Service includes a port for the GetReportTemplate method. The GetReportTemplate solicit-response operation publishes the service and accepts SOAP requests, from which it extracts two parameters (C, M) used for retrieving the requested Report. Then, an XML transformation unit builds the SOAP message and passes it to the Solicit response, which in turn sends it back to the requestor.

3. ARCHITECTURE IMPLEMENTATION The concepts previously illustrated have been implemented inside a CASE tool called WebRatio (www.webratio.com), an integrated environment for the visual specification of Web applications and the automatic code generation.

3.1 Products comparison Other vendors are proposing tools that claim to be oriented to Web development, however most of them have only adapted to Web environment from other fields. Among them, we can cite the following products: (i) Oracle JDeveloper 10g is heavily oriented to database design (http://www.oracle.com/tools), and provides UML-like data modeling and a very basic navigation model; (ii) Code Charge Studio (http://www.codecharge.com/studio), that

Custom unit library

Data Design

Site Design

XML

XSL

Third party authoring tools

Data Mapping

Data Sources

Custom components

HTML

Presentation

Code Generator

Built-in tag libraries

WebRatio Runtime Layer Application Server

Figure 4. Webratio Architecture. WebRatio generates applications compliant to MVC-based organization, in which the components produced by the code generators fit into a well-established framework. The key aspect of the WebRatio architecture is the mapping of the various hypertext primitives of WebML (pages, content units, and operations) into the layers of the MVC2 architecture. This mapping is schematically illustrated in Figure 5. Each WebML unit maps into two components of the MVC2 architecture: a unit service in the business layer, and a custom tag in the View. Each WebML operation maps into two components

of the MVC2 architecture: an operation service in the business layer, and an action mapping in the Controller's configuration file, which dictates the flow of control after the operation is executed. Note that operations do not contribute templates to the View, because they do not directly display content.

R sub-schema as an XML fragment conforming to the canonical XML. The Adapter unit takes in input n links carrying XML fragments, and emits in output another XML fragment with the desired schema and content; transformations are presently expressed using XSLT.

Deployment and publishing of Web services required an extension of the WebRatio runtime framework. To cope with the need of accepting SOAP requests, the Web front end is extended with a SOAP listener. We extended also the site generation algorithm to produce descriptors for each of the new Web service publishing primitives.

To facilitate the XML-ER data mapping task, a visual XSL generator tool has been developed and integrated in the Webratio GUI. The XSLT file used to transform XML fragments into a desired E-R structure (in particular, in the XML canonical form) is generated by the tool, without requiring any manual XSL programming. A sample XML message or a WSDL file can represent the source XML structure, while the destination structure is a representation of the E-R schema. By connecting nodes in the two trees, the developer defines the transformations to be supported by the generated XSLT file.

Browser Client Layer Web Server

SOAP sender / listener

JSP pages

Message composer

JSP engine Unit descriptor 1

...

WebML runtime

Unit descriptor n

Message decomposer

Presentation Layer Business Layer

Conversation Manager

...

4. IMPLEMENTED APPLICATIONS Three industrial applications have been developed using the methodology and tools presented in this paper.

4.1 Acer-Euro Business Portal RDBMS

LDAP

XML

...

Data Layer

Legenda Processing of messages received by the site Construction of messages sent by the site Standard components interactions

Figure 5. Runtime architecture of WebML Web applications.

3.3 Implementation of XML management To represent the application content, typically stored in relational databases, WebRatio adopts the ER model (or, equivalently, UML class diagrams). Integrating Web service operations into the WebML framework requires coupling the XML data model underlying Web service communication with the application ER model, and extending the parameter-passing capabilities to accept the XML documents as input/output parameters. For dealing with the ER-XML integration, we introduced a “canonical XML format”, which is an intermediate format between the E-R data representation and the data representation assumed by the XML schema of the messages exchanged with Web services. The benefits of such an intermediate encoding are twofold: (i) it standardizes the conversion of XML data into E-R; (ii) it facilitates the construction and decoding of the input and output messages necessary to interact with Web services. XML In

XML Out

Adapter Unit

Figure 6. XML-in, XML-out and Adapter units The transformation of E-R content into XML and vice versa is specified with the help of three additional WebML units, illustrated in Figure 6. The XML-in unit takes in input a canonical XML fragment and stores it into the underlying E-R repository. The XML-out unit allows providing instances of an E-

The Acer-Euro Business Portal is a multi-country, multi-lingual, multi-user hosted Web application connecting European subsidiaries and partners to the services embedded in the company's enterprise applications (e.g., order tracking, technical information management, marketing information management). The ultimate goal of the Business Portal is to standardize the communication processes of the various channel operators, especially in the area of inventory and sales management. The portal extracts information from heterogeneous sources, interacts with Web services wrapping legacy applications, and offers centrally managed services to distributed partners. Therefore, the Business Portal serves various user groups, including Acer Europe top and middle managers, Acer’s national subsidiaries, distributors, and resellers. The features of the portal include: (i) submission interface for periodic sales report and refunding requests for stock protection by distributors and resellers; (ii) management of refunds, both from the distributor’s side and from the internal Acer personnel’s side; (iii) provision of customized promotional brochures, price lists and other marketing materials; (iv) finally, publishing of product availability information and reseller location for customers.

(1) (2)

(4)

(3)

(5)

Figure 7. Hypertext diagram for Report Submission activity

Figure 7 shows a hypertext fragment of the application. We represent here the submission of a sales report; by navigating a link, the user starts the submission activity by means of a Start activity operation (1) and he is brought to a page containing a form for the submission (2); when he submit his input, the new report is created and connected to the current user (3), then the report is assigned by the Assign unit to the next activity (4); at this point the activity is closed by the End activity unit (5). One of the main requirements of the Acer portal is the retrieval of information from third party remote services. To grant remote services interaction capabilities, developers exploited the described WebML primitives for supporting Web services publishing and invocation and the data conversion operations. Acer needs also to provide Web access to the repository of marketing materials, stored into a native XML repository. In the application, queries are modeled and implemented through calls to the Web service interface exposed by an XML database, called Xyleme Zone Server [www.xyleme.com]. The XML data retrieved through Web service calls from the XML repository can be locally stored in the application database for subsequent reuse or, if the data needs to be stored just for the duration of a user's navigation, session storage is used instead. Given that the involved XML trees have a limited depth, the XML structure is represented relationally by using one table representing the root element of the document connected to further tables representing nested sub-elements. The typical pattern for the retrieval of data from the XML repository is the following: (i) A Web service is called to retrieve the XML data (by means of the request-response unit); (ii) The XML document is transformed through XSL (by means of the adapter unit) into a canonical XML format representing the data of the XML document in ER form); (iii) The data in the canonical XML format can the be either immediately consumed or locally stored into the relational database. Similar mechanisms can be adopted for XML data creation and update.

4.2 Huelva Province Selling Point Application The Huelva Province Selling Point Application, developed by a Spanish County Council, fulfills the needs of small shops and selling points distributed in the Province territory, by providing them the possibility to create a two-way service-oriented communication with the central back office, for providing services of job discovery and SME support. This application assists the Huelva Province in managing a Business Advising Unit, providing enterprises with advice on different fields, such as subsidies, business viability, legal advices, and so on; and a Documentation Unit, which is in charge of the generating social and economic reports. The application meets the demand of entrepreneurs and incorporated enterprises concerning their basic needs in opening up and in growing their business operation. The application interacts with several database sources and performs an assessment of business initiative of the final client. From the collection of data, the application generates: (i) business plans, (ii) social and economic reports, concerning the social, economic, demographical, environmental, patrimony and cultural situation of one or more points of the province; and (iii) statistical

reports, consisting in queries on specific data of final clients and of projects which are advised. For computing the dynamic documents, the application exploits Active Documents, a proprietary technology provided by a Spanish enterprise called Ibermatica. Active Documents are executable XML documents endowed with their own business logic. From a conceptual standpoint they resemble the traditional concept of “business objects”: they can be seen as a piece XML data encapsulating the specific business logic required for its production. Active documents can be encapsulated in a general purpose Web application as stateful data providers, endowed with a dynamic behaviour. The real data presented by an active document to the user depends on its current status (calculated / not calculated) and the state of its internal computation flow.

5

1 2.a.iv

4

2.a.iii

2 2.b 3 2.a

2.a.ii 2.a.i

Figure 8. Web application interaction with Active Documents Figure 8 shows the main elements of the interaction between a WebML application and active documents: (1.) The Request method of the Document Manager is invoked on a specific active document. (2.) A Test Unit checks if all the requested data of the document is provided: (a) If the response is “no”, it means that the active document computation needs some input. Then, the document manager provides to the application an XSD specification as a response, describing the required inputs. The WebML application saves the response data (by means of the Store Entry Description XML-in unit) so that it is available to a Dynamic Entry unit: (i) The Dynamic Entry reads the specification of the required input and unit builds a HTML form that requests the needed parameters; (ii) When the form is submitted, a unit (Request XMLizer) decodes the HTTP Request and retrieves parameter values input by the user and the XSD sent by the Active Document Manager; (iii) The sendData of the Document Manager operation is called by a WS invocation, to provide the manager with the input given by the user and trigger the next step of computation; (iv) The WS Response is checked as seen at step 2, to see if the active document computation is complete or not. (b) If the response is “yes” computation goes on to step 3. (3.) The data from the Active Document is reformatted into a canonical XML format to allow the XML In unit to manage it. (4.) The restructured XML content is locally stored in relational format for subsequent results visualization by the XML In unit. (5.) The document details are published in a webpage by means of a Data unit (Active Document Completed!).

4.3 Tiscover Tourism Services The Tiscover Tourism Services Application, developed by a leading international tourism broker, extends an existing Destination Management System with feature-rich web-services. The deployed Web services are made available to travel agents and hotel managers on the Web, who can give their customers a personalized, accurate and controlled access to a vast amount of tourism information, including data from heterogeneous sources (like weather conditions, events, museums, concerts, etc.). The main goal of Tiscover in this project is the integration of different data sources and the presentation of contents within online documents, i.e., reports with up-to-date information from heterogeneous sources, to be added to specialized brochures built up on the basis of individual preferences, or for a peculiar client (such as an hotel manager or a tourist office). Generated reports are transmitted to clients (via both push and pull strategies) and can be transformed in a printer-friendly version to be used as offline media. The biggest challenge in the realization of the Tiscover application involved the presentation aspects, since the company needed a powerful tool for retrieving local data, invoking remote tourism and news services, but the most important requirement is related to the rendering in various formats of the resulting output. For example, tourism newsletters for a sky resort area must be rendered in different formats, depending on the situation: published Web services for affiliated sites; Web pages, for users of tourism portals; email messages, for customers subscribing a newsletter; PDF brochures and wallpapers, for tourism offices and hotels. This variety of result formats could be managed by defining several presentation styles (defined by XSLT, XSL-FO, and other languages) for the same content.

5. CONCLUSIONS The experience presented in this work has been a precious occasion for evaluating the power of high level modelling of application integration. The four developed applications demonstrated that high-level design, graphical notations and conceptual modelling are a good tool for designing complex applications and for integrating them. Enormous advantages have been recognized in various directions: resources savings, time-tomarket improvement, focalization on key tasks of the development, and overall quality of the resulting applications. In particular, visual web services design and composition dramatically increase the productivity of the designers and the clearness of the solution. Indeed, in complex application development, this avoids expensive manual coding and wasted time needed to incorporate internal or external services. For what is concerned about the data integration features, the main positive impressions are coming from the possibility to finally easy manage well-known and structured relational data together with native XML data, allowing also to integrate other heterogeneous formats, such as HTML, PDF, and others. While the decision of using Web services has never been in doubt, the actual deployment of Web services has posed many problems regarding the meaning of parameters and the compliance with DTDs or XSchemas describing such services, which was often

approximate (in particular when accessing external services). Conversion of XML to flat structures used by WebRatio has been achieved by means of a "neutral" format (syntactically XML, semantically ER) but this solution is suboptimal. The ease of addition of plug-in units has created some difficulties in the WebSI project, as in many cases some partners were tempted to hide, under new units, large components of the business logic (and Web interface) which instead could better be modularised into conventional WebML units and smaller components, yielding to reusable plug-ins.

6. ACKNOWLEDGMENTS Our thanks to all the WebSI project partners for the stimulating discussions and the joint work. In particular, we wish to thank: Sara Comai, Marco Dario, Ioana Manolescu, and Christina Tziviskou from Politecnico di Milano; José Muñoz Platon, Aureo Diaz-Carrasco Fenollar, Angel Garcia del Vello, Julián Gómez Cuadrado, and Angel Guede Ruiz from Ibermatica; Emanuele Tosetti and the whole Acer team; Erwin Schaumlechner, Franz Pühretmair, and Sebastian Kornexl from Tiscover; Pilar Vélez, Concha Salas, and Ricardo López from Diputacion de Huelva; Georges Gardarin, Guy Ferran, and Olivier Parriche from Xyleme.

7. REFERENCES [1] Baresi, L., Garzotto, F., Paolini, P.: From Web Sites to Web Applications: New Issues for Conceptual Modeling. ER Workshops 2000: 89-100. [2] Brambilla, M., Ceri, S., Comai, S., Fraternali, P., Manolescu, I., Specification and design of workflow-driven hypertexts, Journal of Web Engineering, 1(2) April, 2003. [3] Ceri, S., Fraternali, P., Acerbis, R., Bongio, A., et al.: Architectural Issues and Solutions in the Development of Data-Intensive Web Applications, CIDR2003, Asilomar. [4] Ceri, S., Fraternali, P., Bongio, A.: Web Modeling Language (WebML): a modeling language for designing Web sites. WWW9/Computer Networks 33(1-6): 137-157 (2000). [5] Ceri, S., Fraternali, P., Bongio, A., Brambilla, M., Comai, S., Matera, M.: Designing Data-Intensive Web Applications, Morgan-Kaufmann, December 2002. [6] Conallen, J., Building Web Applications with UML. Addison Wesley (Object Technology Series), 2000. [7] Fernandez, M. F., Florescu, D., Kang, J., Levy, A.Y., Suciu, D.: Catching the Boat with Strudel: Experiences with a WebSite Management System. SIGMOD 1998: 414-425. [8] Gómez, J., Cachero, C., Pastor, O.: Conceptual Modeling of Device-Independent Web Applications. IEEE MultiMedia 8(2): 26-39 (2001) [9] Manolescu, I., Brambilla, M., Ceri, S., Comai, S., Fraternali, P.: Model-Driven Design and Deployment of ServiceEnabled Web Applications, TOIT, Volume 5, number 2 (May 2005), in print. [10] Schwabe, D., Rossi, G.: An Object Oriented Approach to Web Applications Design. TAPOS 4(4): (1998).

Suggest Documents