Designing Web Services with the J2EE(TM) 1.4 Platform: JAX-RPC, SOAP, and XML Technologies
CONTENTS
|
PREV
|
NEXT
|
INDEX
Designing Web Services
with the J2EE
TM
1.4 Platform
Foreword
About the Authors
Preface
1 Introduction
1.1 What Are Web Services?
1.2 Benefits of Web Services
1.3 Challenges of Web Service Development
1.3.1 Evolving Technologies and Products
1.3.2 Security
1.3.3 Reliability, Availability, and Scalability
1.4 Typical Web Service Scenarios
1.4.1 Interacting with Business Partners
1.4.2 Integrating with Existing Enterprise Information Systems
1.4.3 Reaching Diverse Clients
1.4.4 Aggregation of Partner Data
1.5 J2EE 1.4: The Platform for Web Services
1.5.1 J2EE Platform Overview
1.5.2 J2EE Platform Benefits
1.5.3 J2EE Platform Technologies
1.6 Conclusion
2 Standards and Technologies
2.1 Overview of Web Service Standards
2.1.1 Extensible Markup Language
2.1.2 Simple Object Access Protocol
2.1.3 Registry Standards
2.1.4 Web Services Description Language
2.1.5 Emerging Standards
2.2 J2EE: The Integrated Platform for Web Services
2.2.1 Java APIs for XML Processing
2.2.2 Java
TM
API for XML-Based RPC
2.2.3 Java
TM
API for XML Registries
2.2.4 SOAP with Attachments API for Java
TM
2.2.5 Web Service Technologies Integrated in J2EE Platform
2.2.6 Support for WS-I Basic Profile
2.3 Other Java-XML Technologies
2.4 Conclusion
3 Service Endpoint Design
3.1 Example Scenarios
3.2 Flow of a Web Service Call
3.3 Key Web Services Design Decisions
3.4 Designing a Service's Interaction Layer
3.4.1 Designing the Interface
3.4.2 Receiving Requests
3.4.3 Delegating Web Service Requests to Processing Layer
3.4.4 Formulating Responses
3.5 Processing Layer Design
3.6 Publishing a Web Service
3.6.1 Publishing a Service in a Registry
3.6.2 Understanding Registry Concepts
3.6.3 Registry Implementation Scenarios
3.7 Handling XML Documents in a Web Service
3.7.1 Exchanging XML Documents
3.7.2 Separating Document Manipulation from Processing Logic
3.7.3 Fragmenting XML Documents
3.7.4 Using XML
3.7.5 Using JAXM and SAAJ Technologies
3.8 Deploying and Packaging a Service Endpoint
3.8.1 Service Information in the Deployment Descriptors
3.8.2 Package Structure
3.9 Conclusion
4 XML Processing
4.1 XML Overview
4.1.1 Document Type and W3C XML Schema Definitions
4.1.2 XML Horizontal and Vertical Schemas
4.1.3 Other Specifications Related to XML
4.2 Outline for Handling XML Documents
4.3 Designing XML-Based Applications
4.3.1 Designing Domain-Specific XML Schemas
4.3.2 Receiving and Sending XML Documents
4.3.3 Validating XML Documents
4.3.4 Mapping Schemas to the Application Data Model
4.3.5 Choosing Processing Models
4.3.6 Fragmenting Incoming XML Documents
4.3.7 Abstracting XML Processing from Application Logic
4.3.8 Design Recommendation Summary
4.4 Implementing XML-Based Applications
4.4.1 Choosing an XML Processing Programming Model
4.4.2 Combining XML Processing Techniques
4.4.3 Entity Resolution
4.5 Performance Considerations
4.5.1 Limit Parsing of Incoming XML Documents
4.5.2 Use the Most Appropriate API
4.5.3 Choose Effective Parser and Style Sheet Implementations
4.5.4 Reduce Validation Cost
4.5.5 Reduce the Cost of Referencing External Entities
4.5.6 Cache Dynamically Generated Documents
4.5.7 Use XML Judiciously
4.6 Conclusion
5 Client Design
5.1 Choosing a Communication Technology
5.2 Scenarios for Web Services-Based Client Applications
5.2.1 Designing J2EE Clients
5.2.2 Designing J2SE Clients
5.2.3 J2ME Clients
5.3 Developing Client Applications to Use a Web Service
5.3.1 Communication Modes for Accessing a Service
5.3.2 Locating and Accessing a Service
5.3.3 Stubs and Call Configuration
5.3.4 WSDL-to-Java Type Mapping
5.3.5 Processing Return Values
5.3.6 Handling Exceptions
5.4 General Considerations
5.4.1 Managing Conversational State
5.4.2 Enhancing User Experience
5.4.3 Server-Side Design Considerations for Clients
5.4.4 Packaging
5.5 Conclusion
6 Enterprise Application Integration
6.1 Integration Requirements and Scenarios
6.1.1 Typical Integration Scenarios
6.1.2 Example Integration Scenarios
6.2 J2EE Integration Technologies
6.2.1 Relational Database Integration Technologies
6.2.2 Messaging Technologies
6.2.3 EIS Access Technologies
6.2.4 Web Service and XML Technologies
6.3 Integration Design Approaches
6.3.1 Web Services Approach
6.3.2 Enterprise Beans and JMS Approach
6.3.3 The Connector Approach
6.3.4 Combining Approaches into an Integration Architecture
6.4 Data Integration Guidelines
6.4.1 Data Mapping in EAI Applications
6.4.2 Data Transformation
6.4.3 Data Filtering
6.5 Guidelines for Integration
6.5.1 Integrating Custom Legacy Systems
6.5.2 Using Screen Scraping for Integration
6.5.3 Metadata
6.5.4 Using Registries for Integration
6.5.5 Versioning and Evolution
6.5.6 Writing Applications for Integration
6.6 Conclusion
7 Security
7.1 Security Scenarios
7.1.1 General Security Requirements
7.1.2 Security Implications of the Operational Environment
7.2 J2EE Platform Security Model
7.2.1 Authentication
7.2.2 Authorization
7.2.3 Confidentiality and Integrity
7.3 Security for Web Service Interactions
7.3.1 Endpoint Programming Model
7.3.2 Client Programming Model
7.3.3 Propagating Component Identity
7.3.4 Handling Authorization
7.3.5 JAX-RPC Security Guidelines
7.4 Message-Level Web Service Security
7.4.1 Understanding Message-Level Security
7.4.2 Comparing Security Mechanisms
7.4.3 Emerging Message-Level Security Standards
7.5 Conclusion
8 Application Architecture and Design
8.1 Overview of Adventure Builder
8.1.1 Order Processing Center Sub-Modules and Interactions
8.2 Order Processing Center Architecture and Design
8.2.1 Web Service Interaction and Message Exchange
8.2.2 Communication Architecture
8.3 Endpoint Design Issues
8.3.1 Web Service Interface Development Approach
8.3.2 Endpoint Type Considerations
8.3.3 Granularity of Service
8.3.4 Passing Parameters as Documents or Java Objects
8.3.5 Layering the Service
8.3.6 Delegating to Business Logic
8.3.7 Client Considerations
8.3.8 Publishing Web Service Details
8.4 Web Service Communication Patterns
8.4.1 Correlating Messages
8.4.2 Splitting and Joining Messages
8.4.3 Refactoring Synchronous to Asynchronous Interactions
8.5 Managing Complex Web Service Interactions
8.5.1 Passing Context Information on Web Service Calls
8.5.2 Handling Multiple Document Types
8.5.3 Consolidating Web Service Interactions
8.5.4 Canonical Data Model
8.6 Building More Robust Web Services
8.6.1 Use Idempotent Endpoints
8.6.2 Use Client Retries with Idempotent Endpoints
8.6.3 Handling Asynchronous Interaction Error Conditions
8.7 Conclusion
Glossary
Index
CONTENTS
|
PREV
|
NEXT
|
INDEX
Copyright
© 2004 Sun Microsystems, Inc. All Rights Reserved.