| |
| |
Foreword | |
| |
| |
Introduction | |
| |
| |
Evolution and Emergence of Web Services | |
| |
| |
Evolution of Distributed Computing | |
| |
| |
What Is Distributed Computing? | |
| |
| |
The Importance of Distributed Computing | |
| |
| |
Client-Server Applications | |
| |
| |
CORBA | |
| |
| |
Java RMI | |
| |
| |
Microsoft DCOM | |
| |
| |
Message-Oriented Middleware | |
| |
| |
Common Challenges in Distributed Computing | |
| |
| |
The Role of J2EE and XML in Distributed Computing | |
| |
| |
The Emergence of Web Services | |
| |
| |
Summary | |
| |
| |
Introduction to Web Services | |
| |
| |
What Are Web Services? | |
| |
| |
Motivation and Characteristics | |
| |
| |
Why Use Web Services? | |
| |
| |
Basic Operational Model of Web Services | |
| |
| |
Core Web Services Standards | |
| |
| |
Extensible Markup Language (XML) | |
| |
| |
Simple Object Access Protocol (SOAP) | |
| |
| |
Web Services Definition Language (WSDL) | |
| |
| |
Universal Description, Discovery, and Integration (UDDI) | |
| |
| |
ebXML | |
| |
| |
Other Industry Standards Supporting Web Services | |
| |
| |
Web Services Choreography Interface (WSCI) | |
| |
| |
Web Services Flow Language (WSFL) | |
| |
| |
Directory Services Markup Language (DSML) | |
| |
| |
XLANG | |
| |
| |
Business Transaction Protocol (BTP) | |
| |
| |
XML Encryption (XML ENC) | |
| |
| |
XML Key Management System (XKMS) | |
| |
| |
XML Signature (XML DSIG) | |
| |
| |
Extensible Access Control Markup Language (XACML) | |
| |
| |
Security Assertions Markup Language (SAML) | |
| |
| |
Known Challenges in Web Services | |
| |
| |
Web Services Software and Tools | |
| |
| |
BEA Systems Products | |
| |
| |
Cape Clear Products | |
| |
| |
IBM Products | |
| |
| |
IOPSIS Products | |
| |
| |
Oracle Products | |
| |
| |
Sun Products | |
| |
| |
Systinet Products | |
| |
| |
Web Services Strategies from Industry Leaders: An Overview | |
| |
| |
Sun ONE (Sun Open Net Environment) | |
| |
| |
IBM e-Business | |
| |
| |
Microsoft .NET | |
| |
| |
Key Benefits of Web Services | |
| |
| |
Summary | |
| |
| |
Web Services Architecture and Technologies | |
| |
| |
Building the Web Services Architecture | |
| |
| |
Web Services Architecture and Its Core Building Blocks | |
| |
| |
Tools of the Trade | |
| |
| |
Simple Object Access Protocol (SOAP) | |
| |
| |
Web Services Description Language (WSDL) | |
| |
| |
Universal Description, Discovery, and Integration (UDDI) | |
| |
| |
ebXML | |
| |
| |
Web Services Communication Models | |
| |
| |
RPC-Based Communication Model | |
| |
| |
Messaging-Based Communication Model | |
| |
| |
Implementing Web Services | |
| |
| |
Developing Web Services-Enabled Applications | |
| |
| |
How to Develop Java-Based Web Services | |
| |
| |
Developing Web Services Using J2EE: An Example | |
| |
| |
Summary | |
| |
| |
Developing Web Services Using SOAP | |
| |
| |
XML-Based Protocols and SOAP | |
| |
| |
The Emergence of SOAP | |
| |
| |
Understanding SOAP Specifications | |
| |
| |
Anatomy of a SOAP Message | |
| |
| |
SOAP Envelope | |
| |
| |
SOAP Header | |
| |
| |
SOAP Body | |
| |
| |
SOAP Fault | |
| |
| |
SOAP mustUnderstand | |
| |
| |
SOAP Attachments | |
| |
| |
SOAP Encoding | |
| |
| |
Simple Type Values | |
| |
| |
Polymorphic Accessor | |
| |
| |
Compound Type Values | |
| |
| |
Serialization and Deserialization | |
| |
| |
SOAP Message Exchange Model | |
| |
| |
SOAP Intermediaries | |
| |
| |
SOAP Actor | |
| |
| |
SOAP Communication | |
| |
| |
SOAP RPC | |
| |
| |
SOAP Messaging | |
| |
| |
SOAP Bindings for Transport Protocols | |
| |
| |
SOAP over HTTP | |
| |
| |
SOAP over SMTP | |
| |
| |
Other SOAP Bindings | |
| |
| |
SOAP Message Exchange Patterns | |
| |
| |
SOAP Security | |
| |
| |
SOAP Encryption | |
| |
| |
SOAP Digital Signature | |
| |
| |
SOAP Authorization | |
| |
| |
Building SOAP Web Services | |
| |
| |
Developing SOAP Web Services Using Java | |
| |
| |
Developing Web Services Using Apache Axis | |
| |
| |
Installing Axis for Web Services | |
| |
| |
Running Axis without Tomcat/Servlet Engine | |
| |
| |
Axis Infrastructure and Components | |
| |
| |
Axis Web Services Programming Model | |
| |
| |
Creating Web Services Using Axis: An Example | |
| |
| |
Building Axis-Based Infrastructure | |
| |
| |
Setting Up the ACME Web Services Environment | |
| |
| |
Implementing the ACME Web Services | |
| |
| |
Known Limitations of SOAP | |
| |
| |
Summary | |
| |
| |
Description and Discovery of Web Services | |
| |
| |
Web Services Description Language (WSDL) | |
| |
| |
WSDL in the World of Web Services | |
| |
| |
Anatomy of a WSDL Definition Document | |
| |
| |
WSDL Bindings | |
| |
| |
WSDL Tools | |
| |
| |
Future of WSDL | |
| |
| |
Limitations of WSDL | |
| |
| |
Universal Description, Discovery, and Integration (UDDI) | |
| |
| |
UDDI Registries | |
| |
| |
Programming with UDDI | |
| |
| |
Inquiry API | |
| |
| |
Publishing API | |
| |
| |
Implementations of UDDI | |
| |
| |
Registering as a Systinet UDDI Registry User | |
| |
| |
Publishing Information to a UDDI Registry | |
| |
| |
Searching Information in a UDDI Registry | |
| |
| |
Deleting Information from a UDDI Registry | |
| |
| |
Limitations of UDDI | |
| |
| |
Summary | |
| |
| |
Creating .NET Interoperability | |
| |
| |
Means of Ensuring Interoperability | |
| |
| |
Declaring W3C XML Schemas | |
| |
| |
Exposing WSDL | |
| |
| |
Creating SOAP Proxies | |
| |
| |
Testing Interoperability | |
| |
| |
Microsoft .NET Framework: An Overview | |
| |
| |
Common Language Runtime (CLR) | |
| |
| |
.NET Framework Class Library | |
| |
| |
Developing Microsoft .NET Client for Web Services | |
| |
| |
Key Steps in Creating a Web Service Requestor Using the .NET Framework | |
| |
| |
Case Study: Building a .NET Client for Axis Web Services | |
| |
| |
Challenges in Creating Web Services Interoperability | |
| |
| |
Common SOAP/HTTP Transport Issues | |
| |
| |
XML Schema-and XML-Related Issues | |
| |
| |
SOAP/XML Message Discontinuities | |
| |
| |
Version and Compatibility | |
| |
| |
The WS-I Initiative and Its Goals | |
| |
| |
Public Interoperability testing efforts | |
| |
| |
Summary | |
| |
| |
Exploring Java Web Services Developer Pack | |
| |
| |
Introduction to the Java Web Services Developer Pack (JWSDP) | |
| |
| |
Java Web Services Developer Pack | |
| |
| |
Java XML Pack | |
| |
| |
Java APIs for XML | |
| |
| |
JavaServer Pages Standard Tag Library | |
| |
| |
Apache Tomcat Container | |
| |
| |
Java WSDP Registry Server | |
| |
| |
ANT Build Tool | |
| |
| |
Downloading the Web Services Pack | |
| |
| |
Summary | |
| |
| |
XML Processing and Data Binding with Java APIs | |
| |
| |
Extensible Markup Language (XML) Basics | |
| |
| |
XML Syntax | |
| |
| |
Namespaces | |
| |
| |
Validation of XML Documents | |
| |
| |
Java API for XML Processing (JAXP) | |
| |
| |
JAXP | |
| |
| |
Uses for JAXP | |
| |
| |
JAXP API Model | |
| |
| |
JAXP Implementations | |
| |
| |
Processing XML with SAX | |
| |
| |
Processing XML with DOM | |
| |
| |
XSL Stylesheets: An Overview | |
| |
| |
Transforming with XSLT | |
| |
| |
Threading | |
| |
| |
Java Architecture for XML Binding (JAXB) | |
| |
| |
Data Binding Generation | |
| |
| |
Marshalling XML | |
| |
| |
Unmarshalling Java | |
| |
| |
Other Callback Methods | |
| |
| |
Sample Code for XML Binding | |
| |
| |
Summary | |
| |
| |
XML Messaging Using JAXM and SAAJ | |
| |
| |
The Role of JAXM in Web Services | |
| |
| |
JAXM Application Architecture | |
| |
| |
JAXM Messaging: Interaction Patterns | |
| |
| |
JAXM API Programming Model | |
| |
| |
javax.xml.messaging | |
| |
| |
javax.xml.soap (SAAJ 1.1 APIs) | |
| |
| |
Basic Programming Steps for Using JAXM | |
| |
| |
Using a JAXM Provider | |
| |
| |
Using JAXM without a Provider (Using SOAPConnection) | |
| |
| |
JAXM Deployment Model | |
| |
| |
Deploying JAXM-Based Applications in JWSDP 1.0 | |
| |
| |
Configuring JAXM Applications Using a JAXM Provider | |
| |
| |
Configuring a Client | |
| |
| |
Configuring a Provider | |
| |
| |
Developing JAXM-Based Web Services | |
| |
| |
Point-to-Point Messaging Using JAXM (SOAPConnection) | |
| |
| |
Asynchronous Messaging Using the JAXM Provider | |
| |
| |
JAXM Interoperability | |
| |
| |
JAXM in J2EE 1.4 | |
| |
| |
Summary | |
| |
| |
Building RPC Web Services with JAX-RPC | |
| |
| |
The Role of JAX-RPC in Web Services | |
| |
| |
Comparing JAX-RPC with JAXM | |
| |
| |
JAX-RPC Application Architecture | |
| |
| |
JAX-RPC APIs and Implementation Model | |
| |
| |
JAX-RPC-Based Service Implementation | |
| |
| |
JAX-RPC-Based Client Implementation | |
| |
| |
JAX-RPC-Supported Java/XML Mappings | |
| |
| |
Java/WSDL Definition Mappings | |
| |
| |
Developing JAX-RPC-Based Web Services | |
| |
| |
Creating a JAX-RPC-Based Service (BookPriceService) | |
| |
| |
Developing JAX-RPC Clients (BookPriceServiceClient) | |
| |
| |
JAX-RPC in J2EE 1.4 | |
| |
| |
JAX-RPC Interoperability | |
| |
| |
Summary | |
| |
| |
Java API for XML Registries | |
| |
| |
Introduction to JAXR | |
| |
| |
JAXR Architecture | |
| |
| |
JAXR Architectural Components | |
| |
| |
JAXR Capabilities and Capability Profiles | |
| |
| |
The JAXR Programming Model | |
| |
| |
JAXR Information Model | |
| |
| |
Classes and Interfaces | |
| |
| |
Classification of Registry Objects | |
| |
| |
Association of Registry Objects | |
| |
| |
JAXR Registry Services API | |
| |
| |
Connection Management API | |
| |
| |
Life Cycle Management API | |
| |
| |
Query Management API | |
| |
| |
JAXR Support in JWSDP 1.0 | |
| |
| |
Registry Server | |
| |
| |
Registry Browser | |
| |
| |
Understanding JAXR by Examples | |
| |
| |
Publishing Using JAXR | |
| |
| |
Querying Using JAXR | |
| |
| |
Deleting Information Using JAXR | |
| |
| |
Summary | |
| |
| |
Using the Java Web Services Developer Pack: Case Study | |
| |
| |
Case Study Overview | |
| |
| |
The Roles of Service Provider, Requestor, and Registry | |
| |
| |
Important Components and Entities | |
| |
| |
Case Study Architecture | |
| |
| |
Design of Components | |
| |
| |
Provider Environment | |
| |
| |
Designing the Publishing and Discovery Classes | |
| |
| |
Designing the Service Requestor Environment (computerBuy.com) | |
| |
| |
Implementation | |
| |
| |
Developing the Service Environment | |
| |
| |
Developing the Service Requestor Environment | |
| |
| |
Setting Up the JWSDP Environment | |
| |
| |
Service Provider Runtime Infrastructure (acmeprovider.com) | |
| |
| |
Service Registry Infrastructure | |
| |
| |
Service Requestor Runtime Infrastructure (computerBuy.com) | |
| |
| |
Executing a Scenario | |
| |
| |
Summary | |
| |
| |
Security in Web Services | |
| |
| |
Web Services Security | |
| |
| |
Challenges of Securing Web Services | |
| |
| |
Technologies behind Securing Web Services | |
| |
| |
Rapid-Fire Cryptography | |
| |
| |
XML Encryption | |
| |
| |
What XML Encryption Is | |
| |
| |
Implementations of XML Encryption | |
| |
| |
XML Encryption | |
| |
| |
Encrypting [left angle bracket]Accounts[right angle bracket] XML Element | |
| |
| |
Decrypting the [left angle bracket]Accounts[right angle bracket] XML Element | |
| |
| |
Programming Steps for Encryption and Decryption | |
| |
| |
XML Signatures | |
| |
| |
Types of XML Signatures | |
| |
| |
XML Signature Syntax | |
| |
| |
Canonicalization | |
| |
| |
Implementations of XML Signature | |
| |
| |
XML Signature: An Example | |
| |
| |
XML Key Management Specification (XKMS) | |
| |
| |
XKMS Components | |
| |
| |
XKMS Implementations | |
| |
| |
XML Key Information Service Specification (X-KISS) | |
| |
| |
XML Key Registration Service Specification (X-KRSS) | |
| |
| |
Security Assertions Markup Language (SAML) | |
| |
| |
SAML Implementations | |
| |
| |
SAML Architecture | |
| |
| |
Authentication Assertion | |
| |
| |
Attribute Assertion | |
| |
| |
Authorization (Decision) Assertion | |
| |
| |
SAML Bindings and Protocols | |
| |
| |
Model of Producers and Consumers of SAML Assertions | |
| |
| |
Single Sign-On Using SAML | |
| |
| |
XML Access Control Markup Language (XACML) | |
| |
| |
Architecture of an XML Access Control System | |
| |
| |
Conclusion | |
| |
| |
Summary | |
| |
| |
Web Services Strategies and Solutions | |
| |
| |
Introduction to Sun ONE | |
| |
| |
The Vision behind Sun ONE | |
| |
| |
Delivering Services on Demand (SoD) | |
| |
| |
Web Applications | |
| |
| |
Web Services | |
| |
| |
Web Clients | |
| |
| |
Sun ONE Architecture | |
| |
| |
Sun ONE Service Layers | |
| |
| |
Sun ONE Standards and Technologies | |
| |
| |
Sun ONE Product Stack: Integrated versus Integrate-able | |
| |
| |
Summary | |
| |
| |
Further Reading | |
| |
| |
Index | |