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. |