Table of Contents

preface xi
acknowledgments xii
about this book xiii
about the authors xvii
about the cover illustration xix
author online xxi

1 Getting started 1

1.1 Distributed systems overview 2

Distributed systems concepts 3, N-tier application architecture 12, Overcoming common challenges 14

1.2 The J2EE development process 22

J2EE and development methodologies 22, J2EE development tools 24

1.3 Testing and deployment in J2EE 29

Testing J2EE applications 29, Deploying J2EE applications 33

1.4 Summary 35

 

2 XML and Java 37
 

2.1 XML and its uses 38

XML validation technologies 41, XML parsing technologies 44, XML translation technologies 46, Messaging technologies 48, Data manipulation and retrieval technologies 51, Data storage technologies 54

2.2 The Java APIs for XML 55

JAXP 57, JDOM 66, JAXB 69, Long Term JavaBeans Persistence 74, JAXM 76, JAX-RPC 77, JAXR 78

2.3 Summary 78

 

3 Application development 81
 

3.1 XML component interfaces 82

Using value objects 84, Implementing XML value objects 87, When not to use XML interfaces 95

3.2 XML and persistent data 96

Querying XML data 97, Storing XML data 103, When not to use XML persistence 110

3.3 Summary 110

 

4 Application integration 113
 

4.1 Integrating J2EE applications 114

Traditional approaches to systems integration 114, XML-based systems integration 122

4.2 A web services scenario 125

4.3 J2EE and SOAP 125

Creating a simple SOAP message 126, Using SOAP with Attachments 129, Using JAXM for SOAP Messaging 131

4.4 Building web services in J2EE 138

What is a web service? 139, Providing web services in J2EE 140, Implementing our example web services 142, Consuming web services in J2EE 153, J2EE web services and Microsoft .NET 153

4.5 Summary 154

 

5 User interface development 157
 

5.1 Creating a thin-client user interface 158

Serving different types of devices 159, Serving multiple locales 159, An example to work through 160

5.2 The pure J2EE approach 162

The J2EE presentation tool kit 163, Issues in J2EE MVC architecture 164, Building our example in J2EE 166, Analyzing the results 177

5.3 The J2EE/XML approach 177

Adding XSLT to the web process flow 177, Analyzing the results 185, Extending to binary formats 186

5.4 XML web publishing frameworks 195

Introduction to Cocoon architecture 196, Using Cocoon to render the watch list page 197, Analyzing the results 200

5.5 A word about client-side XSLT 201

5.6 Summary 201

 

6 Case study 203
 

6.1 Case study requirements 204

6.2 The application environment 206

6.3 The analysis phase 207

Services and data layer analysis 207, Data storage analysis 208, Other necessary components 208

6.4 The design phase 210

Designing the application logic layer 210, Designing the user interface 212

6.5 Validating our design 213

6.6 The implementation phase 215

Building the controller servlet 215, Building the ApplicationMenu component 217, Building the ComponentLocator 218, Building the BugAccessorBean 221, Building the XSLTFilter 223

6.7 Structuring application data 224

6.8 The Amaya web service 225

6.9 Running the application 229

Installation 229, Viewing the main menu 230, Viewing common system problems 231, Viewing and updating the Amaya problem list 231, Inspecting the web services SOAP messages 232

6.10 Summary 233


 
Appendix A: Design patterns for J2EE and XML 235
Appendix B: Distributed application security 243
Appendix C: The Ant build tool 249
resources 265
index 269