Foreward | p. xvii |
Acknowledgments | p. xix |
Introduction | p. xxi |
Requirements and Architecture Definition | |
Requirements Analysis with Use Cases | p. 3 |
Use Case Driven Modeling | p. 4 |
Defining the Problem Domain | p. 6 |
GreaterCause System Definition | p. 6 |
Identifying System Context | p. 8 |
GreatCause Context Diagrams and Actors | p. 10 |
Identifying Risk Factors and Dependencies | p. 11 |
GreaterCause Risk Factors | p. 11 |
GreaterCause Dependencies | p. 11 |
Identifying Use Case Packages | p. 12 |
GreaterCause Use Case Packages | p. 12 |
Documenting Use Cases | p. 13 |
Documenting Scenarios with Activity Diagrams | p. 14 |
Factoring Common Behavior and Variant Behavior | p. 14 |
Creating a Use Case Summary | p. 15 |
GreaterCause Use Case Summary | p. 16 |
Manage Donor and Donations | p. 16 |
Search NPO | p. 19 |
Perform GreaterCause.com Site Administration | p. 20 |
Manage Campaigns | p. 22 |
NPO Caching | p. 23 |
Portal Pass-through | p. 25 |
Summary | p. 27 |
References | p. 27 |
Information Architecture for Use Case Elaboration | p. 29 |
Beginning of Information Architecture | p. 30 |
Organizing Content | p. 31 |
Navigating Content | p. 34 |
Creating Wire Frames | p. 35 |
Detailing Use Cases | p. 36 |
GreaterCause Detailed Use Case Description | p. 37 |
Summary | p. 48 |
Application Architecture, Security, and Caching | p. 49 |
Application Architecture | p. 50 |
The 4+1 View Model of Architecture | p. 51 |
Creating a J2EE Architecture Blueprint | p. 52 |
J2EE Components in an Architecture | p. 54 |
Planning Application Security | p. 54 |
Identifying Security Requirements | p. 55 |
Functional Classification of Application Security | p. 57 |
Digital Signatures | p. 61 |
Public Key Cryptography in Digital Signatures | p. 62 |
XML Signatures | p. 63 |
Single Sign-On | p. 65 |
Credential Mapping in SSO | p. 67 |
Elements of Single Sign-On | p. 67 |
Preventing Replay Attacks | p. 68 |
Java Authentication and Authorization Service | p. 69 |
Federated Network Identity | p. 73 |
Liberty Architecture | p. 74 |
Caching Overview | p. 79 |
Application Data Caching | p. 80 |
Cache Architecture | p. 81 |
Cached Data Invalidation in a Distributed Cache | p. 81 |
Summary | p. 84 |
References | p. 85 |
Design and Construction | |
Struts-Based Application Architecture | p. 89 |
Struts as a Presentation Framework | p. 91 |
MVC Implementation | p. 91 |
Internationalization and Localization Support | p. 98 |
Error Handling | p. 101 |
Exception Handling | p. 105 |
Once-Only Form Submission | p. 107 |
Capturing Form Data | p. 108 |
Custom Extensions with Plug-Ins | p. 117 |
Struts Configuration Semantics | p. 118 |
Parsing the Configuration File | p. 118 |
Creating Configuration Objects | p. 120 |
Struts MVC Semantics | p. 126 |
The Controller Object | p. 127 |
The Dispatcher Object | p. 128 |
The Request Handler | p. 130 |
Message Resources Semantics | p. 131 |
Summary | p. 133 |
References | p. 133 |
Presentation Tier Design and Implementation | p. 135 |
Implementing Presentation Tier Classes | p. 137 |
Implementing ActionForm Subclasses | p. 138 |
Implementing Request Handlers | p. 140 |
Implementing the Business Delegate Pattern | p. 143 |
Implementing the Service Locator Pattern | p. 145 |
Factoring Tags into Design Process | p. 147 |
Factoring Validator into the Design Process | p. 149 |
Identifying Package Dependencies | p. 152 |
Implementing Application Security | p. 153 |
Realization of Site Administration Use Cases | p. 161 |
Manage NPO Profile Use Case | p. 161 |
Pattern Discovery and Documentation | p. 161 |
Register Portal-Alliance Use Case | p. 169 |
Manage Portal-Alliance Profile Use Case | p. 176 |
Register NPO Use Case | p. 181 |
Realization of Search NPO Use Cases | p. 186 |
Search NPO Use Case | p. 186 |
Realization of Manage Campaigns Use Cases | p. 188 |
Create the Campaign Use Case | p. 188 |
Update Campaigns Use Case | p. 201 |
Summary | p. 205 |
References | p. 205 |
Domain Model Design and Implementation | p. 207 |
Discovering Domain Objects | p. 208 |
Relationships in the Domain Model | p. 209 |
Creating the Data Model | p. 211 |
Implementing the Domain Model | p. 213 |
Defining the Admin Interface | p. 214 |
Defining the PortalAlliance Interface | p. 223 |
Using EJB QL with Find and Select Methods | p. 225 |
Defining the Campaign Interface | p. 228 |
Summary | p. 229 |
References | p. 229 |
Business Tier Design and Implementation | p. 231 |
Applying Design Patterns | p. 232 |
Implementing the Session Facade Pattern | p. 233 |
Implementing the Business Interface Pattern | p. 236 |
Implementing the Data Transfer Object Pattern | p. 238 |
Implementing EJB Home Factory Pattern | p. 242 |
Identifying Package Dependencies | p. 244 |
Realization of the Site Administration Use Case Package | p. 245 |
Register NPO Use Case | p. 246 |
Realization of the Manage Campaigns Use Case Package | p. 259 |
Create Campaigns Use Case | p. 259 |
Update Campaigns Use Case | p. 262 |
Realization of the Search NPO Use Case Package | p. 267 |
Search NPO Use Case | p. 267 |
Summary | p. 271 |
References | p. 271 |
Web Services for Application Integration | p. 273 |
Introduction to Web Services | p. 274 |
What Is SOAP? | p. 276 |
What Is WSDL? | p. 278 |
What Is UDDI? | p. 278 |
Web Services Architecture | p. 279 |
Development Methodologies and Supporting Tools | p. 282 |
Introduction to Web Services Description Language | p. 284 |
Summary of the WSDL Formal Specification | p. 284 |
A Closer Look at a Sample WSDL File | p. 285 |
Introduction to Simple Object Access Protocol | p. 295 |
SOAP Envelope | p. 296 |
SOAP Header | p. 297 |
SOAP Body | p. 298 |
SOAPFault | p. 299 |
GreaterCause B2B Integration | p. 299 |
Web Service Implementation | p. 302 |
Workshop SOAP:style Semantics | p. 314 |
Summary | p. 316 |
Application Assembly and Deployment | p. 317 |
Installing and Configuring Struts | p. 320 |
Configuring the Struts Validator | p. 321 |
Configuring the WebLogic Domain | p. 322 |
Configuring the JDBC Connection Pool | p. 324 |
Configuring GreaterCause Users | p. 325 |
Deploying the GreaterCause Application | p. 326 |
Priming the Database | p. 328 |
Deploying GreaterCause.ear | p. 328 |
Building the GreaterCause Application | p. 329 |
Appendixes | |
Detailed Use Case Description Template | p. 333 |
GreaterCause Wire Frames | p. 335 |
GreaterCause Site Flow | p. 351 |
FeaturedNPOQueryService WSDL | p. 355 |
Index | p. 359 |
Table of Contents provided by Ingram. All Rights Reserved. |