Morgan Kaufmann series in data management systems: Designing data-intensive Web applications

Front Cover


The most prominent Web applications in use today are data-intensive. Scores of database management systems across the Internet access and maintain large amounts of structured data for e-commerce, on-line trading, banking, digital libraries, and other high-volume sites.


Developing and maintaining these data-intensive applications is an especially complex, multi-disciplinary activity, requiring all the tools and techniques that software engineering can provide. This book represents a breakthrough for Web application developers. Using hundreds of illustrations and an elegant intuitive modeling language, the authors-all internationally-known database researchers-present a methodology that fully exploits the conceptual modeling approach of software engineering, from idea to application. Readers will learn not only how to harness the design technologies of relational databases for use on the Web, but also how to transform their conceptual designs of data-intensive Web applications into effective software components.


Features

  • A fully self-contained introduction and practitioner's guide suitable for both technical and non-technical members of staff, as well as students.
  • A methodology, development process, and notation (WebML) based on common practice but optimized for the unique challenges of high-volume Web applications.
  • Completely platform- and product-independent; even the use of WebML is optional.
  • Based on well-known industry standards such as UML and the Entity Relationship Model.
  • Enhanced by its own Web site (http://www.webml.org), containing additional examples, papers, teaching materials, developers' resources, and exercises with solutions.
 

Contents

Technologies for Web Applications
3
The Foundation of Web Technology
4
The Hypertext Transfer Protocol
5
The Hypertext Markup Language
8
123 ClientSide Scripting for Enhancing Page Interactivity
11
124 ClientSide Components for Enhancing Client Functionality
15
HTML 4 and Cascading Style Sheets
18
extensible Markup Language
21
82 Characterizing Entities in the Data Schema
252
83 The Process of Data Design
253
831 Designing the Core Subschema
255
832 Designing an Interconnection Subschema
256
834 Designing a Personalization Subschema
259
84 Running Example
264
843 Definition of the Access Subschema
266
844 Definition of Interconnection Subschemas
268

132 Presenting XML Documents Using XSL
27
The Structured Query Language for Relational Databases
32
Building Web Pages on the Fly
36
151 Common Gateway Interface
37
152 Web Server Extensions
40
153 Implementing Application State over HTTP
43
154 ServerSide Scripting
46
155 ServerSide Executable Tags
48
156 Increasing Scalability with Application Servers
50
157 Threetier Architectures
54
158 MultiDevice Content Publishing with XML
55
Summary
57
MODELS FOR DESIGNING WEB APPLICATIONS
59
Data Mode
61
22 Entities
62
222 Identification and Primary Key
63
223 Attribute Types
64
224 Generalization Hierarchies
66
23 Relationships
67
231 Nary Relationships and Relationships with Attributes
69
24 Derived Information
71
25 Running Example
73
26 Modeling Data Using UML
74
Summary
75
Bibliographic Notes
76
Hypertext Mode
77
32 Units
79
321 Data Units
80
322 Multidata Units
82
323 Index Units
83
324 Scroller Units
88
325 Entry Units
89
33 Pages
91
34 Links
92
342 Link Parameters and Parametric Selectors
94
343 Automatic and Transport Links
104
35 Global Parameters
106
36 Hypertext Organization
110
362 Areas Landmarks and Home Pages
111
363 Nested Pages
114
37 Patterns for Content Publishing
117
372 Filtered Index
118
373 Filtered Scrolled Index
119
374 Guided Tour
120
375 Indexed Guided Tour
121
376 Object Viewpoints
122
377 Nested Data
123
378 Hierarchical Index with Alternative SubPages
124
379 Reusable Units
125
38 Running Example
127
39 Representing WebML Hypertexts Using UML
129
Summary
134
Bibliographic Notes
135
Content Management Model
137
42 Operations
138
43 Predefined Operations
139
431 Object Creation
140
432 Object Deletion
143
433 Object Modification
146
434 Relationship Creation
149
435 Relationship Deletion
152
44 Transactions
156
45 Content Management Patterns
157
452 Cascaded Delete
158
46 Operations for Access Control and for Sending Email
160
462 Logout Operation
161
47 Generic Operations
163
48 Running Example
165
49 Representing WebML Operations Using UML
170
Summary
174
Advanced Hypertext Model
175
52 Computation of a Page
176
521 Examples of Page Computation
181
522 Preserving Input of Units Across Pages
183
523 NonComputable and Nondeterministic Hypertexts
186
Summary
189
DESIGN OF WEB APPLICATIONS
191
Overview of the Development Process
193
62 Inputs and Outputs
194
63 Development Roles
195
64 Development Lifecycle
196
641 Requirements Specification
197
642 Data Design
198
644 Deployment of the Web Application
199
Bibliographic Notes
201
Requirements Specifications
203
72 Requirements Collection
204
721 Identification of Users
205
723 Data Requirements
206
725 DeviceSpecific Customization Requirements
208
73 Requirements Analysis
210
731 Group Specification
211
732 Use Case Specification
212
733 Data Dictionary Specification
215
734 Site View Specification
217
736 Acceptance Tests Specification
221
741 Business Requirements
222
743 Functional Requirements
226
744 Data Dictionary
231
745 Site View Identification
237
746 Style Guidelines and Page Mockups
238
747 Acceptance Tests
241
Summary
247
Data Design
249
845 Design of Personalization Subschema
269
Summary
271
Hypertext Design
273
92 Coarse Design
275
93 Detailed Design
279
94 Page Specification Using Hypertext Subschemas
281
941 Access Hypertext Subschema
282
942 Core Hypertext Subschema
285
943 Interconnection Hypertext Subschema
286
944 Personalization Subschema
287
945 Content Management Hypertext Subschema
292
946 Factoring Out Replicated Units Using OR Subpages
293
95 Running Example
296
96 Designing Usable Hypertexts
310
961 Choice of Access and Core Patterns
311
962 Navigation Aids
314
963 Orientation Aids
316
964 Search
317
965 Consistency
319
97 Hypertext Modeling for MultiDevice Applications
321
Summary
323
Bibliographic Notes
324
IMPLEMENTATION OF WEB APPLICATIONS
327
Architecture Design
329
102 Dimensions of Architecture Design
331
1022 Constraints of Architecture Design
332
103 Designing the Hardware and Network Architecture
333
1032 Separation of the Database Server
336
1033 Exploiting Replication and Parallelism
337
1034 Separation of the Web Server and Scripting Engine
341
1035 Configuration with an Application Server
342
104 Techniques for Testing and Improving Performance
344
1042 Setting Up the Test Environment
345
1043 Verifying Performance
346
1044 Identifying and Removing Bottlenecks
347
105 Web Caching
351
1051 What to Cache
352
1052 Where to Cache
353
1053 When to Cache and to Refresh the Cache
354
1054 Caching Dynamic Content Using a Server Accelerator and Caching Directives
356
Summary
358
Bibliographic Notes
359
Data Implementation
361
112 Standard Mapping
364
1122 Mapping BLOB Attributes
365
1123 Mapping Relationships
367
1124 Mapping Generalization Hierarchies
371
1125 Mapping Derived Data Using Views
374
1126 Physical Design Tips
377
1127 Running Example
378
113 Data Management Issues and Architectures
380
1131 Schema Integration
381
1132 Data Integration
383
1134 Implementation of Online Database Architectures
388
Summary
392
Hypertext Implementation
395
122 Overview of the Page Computation Steps
396
123 Implementing Pages Content Units and Links
400
1232 Interpage Links
404
1233 Intrapage Links
411
1234 Entry Units
416
1235 MultiChoice Index Unit Linked to a Multidata Unit
419
1236 Areas Landmark Pages and Nested Subpages
424
124 Implementing Operations
427
1241 General Schema of Operation Implementation
428
1242 Deletion of an Object Chosen from an Index
431
1243 Entry Unit Linked to a Create Unit
432
1244 Create and Connect Pattern
439
1245 Login Logout and Global Parameters for the Current User and Group
444
125 Implementing Set and Get Units and Complex Pages
446
Summary
453
Bibliographic Notes
454
Advanced Hypertext Implementation
457
132 Improving the Software Architecture
458
133 ModelViewController Architecture
461
1331 ModelViewController Architecture Applied to Web Applications
463
134 Mapping WebML to the MVC Architecture
466
1342 Mapping Content Units to the MVC Architecture
471
1343 Mapping Entry Units to the MVC Architecture
473
1344 Mapping Operations to the MVC Architecture
475
135 Managing Very Large Applications
479
136 Using Enterprise JavaBeans to Implement the Business Logic
481
1361 Wrapping Persistent Data with Entity Beans
485
1362 Implementing Page Services and Content Unit Services as Enterprise Java Beans
489
1363 Implementing Operation Units as Enterprise Java Beans
490
137 Using CSS and XSL to Manage Presentation
491
Summary
496
Tools for ModelBased Development of Web Applications
499
142 Data and Hypertext Design
502
143 Data Mapping
504
144 Presentation Design
506
145 Code Generation
508
146 Other Features
509
1462 Cooperative Work
510
1463 Automatic Documentation
511
Summary
515
Summary of WebML Elements
519
WebML Syntax
525
OCL Syntax
533
Summary of WebML Elements Implementation
537
References
543
Index
551
Copyright

Other editions - View all

Common terms and phrases

About the author (2003)

Stefano Ceri is Professor of Database Systems at Politecnico di Milano. His research interests are focused on extending database technology to incorporate data distribution, deductive and active rules, and object orientation. Piero Fraternali is professor of Information Systems at Politecnico di Milano. Marco Brambilla is actively researching on methods and tools for model-driven software development, with special focus on web applications, search engines, social networks and crowdsourcing platforms. He is professor of software engineering and researcher at Politecnico di Milano and partner of the spinoff WebRatio, which produces MDD tools based on IFML, UML, and BPMN. He is the principal contributor of the Interaction Flow Modeling Language (IFML). He authored several books, including Developing Data-Intensive Web Applications (Morgan Kaufmann, 2002) and Model-driven Software Engineering in Practice (Morgan&Claypool, 2012).

Bibliographic information