
Designing Data-Intensive Web Applications
By:Â Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai
Paperback | 1 December 2002
At a Glance
562 Pages
22.86 x 18.42 x 3.18
Paperback
$256.99
or 4 interest-free payments of $64.25 with
 orÂShips in 15 to 25 business days
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.
* 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.
Industry Reviews
| Foreword | p. vii |
| Preface | p. XXI |
| Technology Overview | p. 1 |
| Technologies for Web Applications | p. 3 |
| Introduction | p. 3 |
| HTTP and HTML: The Foundation of Web Technology | p. 4 |
| Accessing Remote Resources: The Hypertext Transfer Protocol | p. 5 |
| Writing Web Documents: The Hypertext Markup Language | p. 8 |
| Client-Side Scripting for Enhancing Page Interactivity | p. 11 |
| Client-Side Components for Enhancing Client Functionality | p. 15 |
| The Evolution of HTML: HTML 4 and Cascading Style Sheets | p. 18 |
| XML: eXtensible Markup Language | p. 21 |
| User-Defined Tags | p. 21 |
| Presenting XML Documents Using XSL | p. 27 |
| SQL: The Structured Query Language for Relational Databases | p. 32 |
| Beyond HTTP: Building Web Pages on the Fly | p. 36 |
| Common Gateway Interface | p. 37 |
| Web Server Extensions | p. 40 |
| Implementing Application State over HTTP | p. 43 |
| Server-Side Scripting | p. 46 |
| Server-Side Executable Tags | p. 48 |
| Increasing Scalability with Application Servers | p. 50 |
| Three-Tier Architectures | p. 54 |
| Multi-Device Content Publishing with XML | p. 55 |
| Summary | p. 57 |
| Bibliographic Notes | p. 57 |
| Models for Designing Web Applications | p. 59 |
| Data Model | p. 61 |
| Introduction | p. 61 |
| Entities | p. 62 |
| Attributes | p. 62 |
| Identification and Primary Key | p. 63 |
| Attribute Types | p. 64 |
| Generalization Hierarchies | p. 66 |
| Relationships | p. 67 |
| N-ary Relationships and Relationships with Attributes | p. 69 |
| Derived Information | p. 71 |
| Running Example | p. 73 |
| Modeling Data Using UML | p. 74 |
| Summary | p. 75 |
| Bibliographic Notes | p. 76 |
| Hypertext Model | p. 77 |
| Introduction | p. 77 |
| Units | p. 79 |
| Data Units | p. 80 |
| Multidata Units | p. 82 |
| Index Units | p. 83 |
| Scroller Units | p. 88 |
| Entry Units | p. 89 |
| Pages | p. 91 |
| Links | p. 92 |
| Specification of Links | p. 92 |
| Link Parameters and Parametric Selectors | p. 94 |
| Automatic and Transport Links | p. 104 |
| Global Parameters | p. 106 |
| Hypertext Organization | p. 110 |
| Site Views | p. 110 |
| Areas, Landmarks, and Home Pages | p. 111 |
| Nested Pages | p. 114 |
| Patterns for Content Publishing | p. 117 |
| Cascaded Index | p. 117 |
| Filtered Index | p. 118 |
| Filtered Scrolled Index | p. 119 |
| Guided Tour | p. 120 |
| Indexed Guided Tour | p. 121 |
| Object Viewpoints | p. 122 |
| Nested Data | p. 123 |
| Hierarchical Index with Alternative Sub-Pages | p. 124 |
| Reusable Units | p. 125 |
| Running Example | p. 127 |
| Representing WebML Hypertexts Using UML | p. 129 |
| Summary | p. 134 |
| Bibliographic Notes | p. 135 |
| Content Management Model | p. 137 |
| Introduction | p. 137 |
| Operations | p. 138 |
| Predefined Operations | p. 139 |
| Object Creation | p. 140 |
| Object Deletion | p. 143 |
| Object Modification | p. 146 |
| Relationship Creation | p. 149 |
| Relationship Deletion | p. 152 |
| Transactions | p. 156 |
| Content Management Patterns | p. 157 |
| Create-Connect Pattern | p. 157 |
| Cascaded Delete | p. 158 |
| Operations for Access Control and for Sending E-mail | p. 160 |
| Login Operation | p. 160 |
| Logout Operation | p. 161 |
| Sendmail Operation | p. 161 |
| Generic Operations | p. 163 |
| Credit Card Charge | p. 163 |
| Running Example | p. 165 |
| Representing WebML Operations Using UML | p. 170 |
| Summary | p. 174 |
| Bibliographic Notes | p. 174 |
| Advanced Hypertext Model | p. 175 |
| Introduction | p. 175 |
| Computation of a Page | p. 176 |
| Examples of Page Computation | p. 181 |
| Preserving Input of Units Across Pages | p. 183 |
| Non-Computable and Nondeterministic Hypertexts | p. 186 |
| Summary | p. 189 |
| Bibliographic Notes | p. 189 |
| Design of Web Applications | p. 191 |
| Overview of the Development Process | p. 193 |
| Introduction | p. 193 |
| Inputs and Outputs | p. 194 |
| Development Roles | p. 195 |
| Development Lifecycle | p. 196 |
| Requirements Specification | p. 197 |
| Data Design | p. 198 |
| Hypertext Design | p. 198 |
| Deployment of the Web Application | p. 199 |
| Bibliographic Notes | p. 201 |
| Requirements Specifications | p. 203 |
| Introduction | p. 203 |
| Requirements Collection | p. 204 |
| Identification of Users | p. 205 |
| Functional Requirements | p. 205 |
| Data Requirements | p. 206 |
| Personalization Requirements | p. 206 |
| Device-Specific Customization Requirements | p. 208 |
| Nonfunctional Requirements | p. 208 |
| Requirements Analysis | p. 210 |
| Group Specification | p. 211 |
| Use Case Specification | p. 212 |
| Data Dictionary Specification | p. 215 |
| Site View Specification | p. 217 |
| Style Guidelines Specification | p. 217 |
| Acceptance Tests Specification | p. 221 |
| The Acer-Euro Running Case | p. 221 |
| Business Requirements | p. 222 |
| User Groups | p. 222 |
| Functional Requirements | p. 226 |
| Data Dictionary | p. 231 |
| Site View Identification | p. 237 |
| Style Guidelines and Page Mock-ups | p. 238 |
| Acceptance Tests | p. 241 |
| Summary | p. 247 |
| Bibliographic Notes | p. 247 |
| Data Design | p. 249 |
| Introduction | p. 249 |
| Characterizing Entities in the Data Schema | p. 252 |
| The Process of Data Design | p. 253 |
| Designing the Core Sub-schema | p. 255 |
| Designing an Interconnection Sub-schema | p. 256 |
| Designing an Access Sub-schema | p. 256 |
| Designing a Personalization Sub-schema | p. 259 |
| Running Example | p. 264 |
| Identification of Core Entities | p. 264 |
| Design of Core Sub-schemas | p. 264 |
| Definition of the Access Sub-schema | p. 266 |
| Definition of Interconnection Sub-schemas | p. 268 |
| Design of Personalization Sub-schema | p. 269 |
| Summary | p. 271 |
| Bibliographic Notes | p. 271 |
| Hypertext Design | p. 273 |
| Introduction | p. 273 |
| Coarse Design | p. 275 |
| Detailed Design | p. 279 |
| Page Specification using Hypertext Sub-schemas | p. 281 |
| Access Hypertext Sub-schema | p. 282 |
| Core Hypertext Sub-schema | p. 285 |
| Interconnection Hypertext Sub-schema | p. 286 |
| Personalization Sub-schema | p. 287 |
| Content Management Hypertext Sub-schema | p. 292 |
| Factoring Out Replicated Units Using OR Sub-pages | p. 293 |
| Running Example | p. 296 |
| External Users Site View | p. 296 |
| Designing Usable Hypertexts | p. 310 |
| Choice of Access and Core Patterns | p. 311 |
| Navigation Aids | p. 314 |
| Orientation Aids | p. 316 |
| Search | p. 317 |
| Consistency | p. 319 |
| Hypertext Modeling for Multi-Device Appilications | p. 321 |
| Summary | p. 323 |
| Bibliographic Notes | p. 324 |
| Implementation of Web Applications | p. 327 |
| Architecture Design | p. 329 |
| Introduction | p. 329 |
| Dimensions of Architecture Design | p. 331 |
| Goals of Architecture Design | p. 331 |
| Constraints of Architecture Design | p. 332 |
| Scenarios of Architecture Deployment | p. 332 |
| Designing the Hardware and Network Architecture | p. 333 |
| Single Server Configuration | p. 333 |
| Separation of the Database Server | p. 336 |
| Exploiting Replication and Parallelism | p. 337 |
| Separation of the Web Server and Scripting Engine | p. 341 |
| Configuration with an Application Server | p. 342 |
| Techniques for Testing and Improving Performance | p. 344 |
| Estimating the Workload | p. 344 |
| Setting Up the Test Environment | p. 345 |
| Verifying Performance | p. 346 |
| Identifying and Removing Bottlenecks | p. 347 |
| Web Caching | p. 351 |
| What to Cache | p. 352 |
| Where to Cache | p. 353 |
| When to Cache and to Refresh the Cache | p. 354 |
| Caching Dynamic Content Using a Server Accelerator and Caching Directives | p. 356 |
| Summary | p. 358 |
| Bibliographic Notes | p. 359 |
| Data Implementation | p. 361 |
| Introduction | p. 361 |
| Standard Mapping | p. 364 |
| Mapping Entities | p. 364 |
| Mapping BLOB Attributes | p. 365 |
| Mapping Relationships | p. 367 |
| Mapping Generalization Hierarchies | p. 371 |
| Mapping Derived Data Using Views | p. 374 |
| Physical Design Tips | p. 377 |
| Running Example | p. 378 |
| Data Management Issues and Architecture | p. 380 |
| Schema Integration | p. 381 |
| Data Integration | p. 383 |
| Implementation of the Replicated Database Architecture | p. 383 |
| Implementation of Online Database Architectures | p. 388 |
| Summary | p. 392 |
| Bibliographic Notes | p. 392 |
| Hypertext Implementation | p. 395 |
| Introduction | p. 395 |
| Overview of the Page Computation Steps | p. 396 |
| Implementing Pages, Content Units, and Links | p. 400 |
| Standalone Pages | p. 400 |
| Inter-page Links | p. 404 |
| Intra-page Links | p. 411 |
| Entry Units | p. 416 |
| Multi-Choice Index Unit Linked to a Multidata Unit | p. 419 |
| Areas, Landmark Pages, and Nested Sub-pages | p. 424 |
| Implementing Operations | p. 427 |
| General Schema of Operation Implementation | p. 428 |
| Deletion of an Object Chosen from an Index | p. 431 |
| Entry Unit Linked to a Create Unit | p. 432 |
| Create and Connect Pattern | p. 439 |
| Login, Logout, and Global Parameters for the Current User and Group | p. 444 |
| Implementing Set and Get Units and Complex Pages | p. 446 |
| Summary | p. 453 |
| Bibliographic Notes | p. 454 |
| Advanced Hypertext Implementation | p. 457 |
| Introduction | p. 457 |
| Improving the Software Architecture | p. 458 |
| Model-View-Controller Architecture | p. 461 |
| Model-View-Controller Architecture Applied to Web Applications | p. 463 |
| Mapping WebML to the MVC Architecture | p. 466 |
| Mapping WebML Pages to the MVC Architecture | p. 466 |
| Mapping Content Units to the MVC Architecture | p. 471 |
| Mapping Entry Units to the MVC Architecture | p. 473 |
| Mapping Operations to the MVC Architecture | p. 475 |
| Managing Very Large Applications | p. 479 |
| Using Enterprise JavaBeans to Implement the Business Logic | p. 481 |
| Wrapping Persistent Data with Entity Beans | p. 485 |
| Implementing Page Services and Content Unit Services as Enterprise Java Beans | p. 489 |
| Implementing Operation Units as Enterprise Java Beans | p. 490 |
| Using CSS and XSL to Manage Presentation | p. 491 |
| Summary | p. 496 |
| Bibliographic Notes | p. 496 |
| Tools for Model-Based Development of Web Applications | p. 499 |
| Introduction | p. 499 |
| Data and Hypertext Design | p. 502 |
| Data Mapping | p. 504 |
| Presentation Design | p. 506 |
| Code Generation | p. 508 |
| Other Features | p. 509 |
| Correctness Checking | p. 509 |
| Cooperative Work | p. 510 |
| Automatic Documentation | p. 511 |
| WebML Extensibility with Custom Units | p. 511 |
| Summary | p. 515 |
| Bibliographic Notes | p. 515 |
| Summary of WebML Elements | p. 519 |
| WebML Syntax | p. 525 |
| OCL Syntax | p. 533 |
| Summary of WebML Elements Implementation | p. 537 |
| References | p. 543 |
| Index | p. 551 |
| Table of Contents provided by Rittenhouse. All Rights Reserved. |
ISBN: 9781558608436
ISBN-10: 1558608435
Series: The Morgan Kaufmann Series in Data Management Systems
Published: 1st December 2002
Format: Paperback
Language: English
Number of Pages: 562
Audience: Professional and Scholarly
Publisher: Elsevier Science & Technology
Country of Publication: US
Dimensions (cm): 22.86 x 18.42 x 3.18
Weight (kg): 0.97
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In
This product is categorised by
- Non-FictionComputing & I.T.Databases
- Non-FictionComputing & I.T.Graphical & Digital Media ApplicationsWeb Graphics & Design
- Non-FictionComputing & I.T.Digital Lifestyle & Online World: Consumer & User GuidesInternet Guides & Online Services
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages
























