| |
| |
Introduction | |
| |
| |
| |
Web Services Overview | |
| |
| |
What Is a Web Service? | |
| |
| |
Business Perspective | |
| |
| |
Technical Perspective | |
| |
| |
The Web Service Opportunity | |
| |
| |
Enterprise Application Integration | |
| |
| |
B2B | |
| |
| |
Trends in e-business | |
| |
| |
Why Do We Need a Web Services Approach? | |
| |
| |
Scoping the Problem | |
| |
| |
Core Technologies | |
| |
| |
Industry Dynamics | |
| |
| |
Service-Oriented Architectures | |
| |
| |
Web Services Interoperability Stacks | |
| |
| |
The Wire Stack | |
| |
| |
The Description Stack | |
| |
| |
The Discovery Stack | |
| |
| |
Putting Together the Interoperability Stacks | |
| |
| |
Summary | |
| |
| |
| |
XML Primer | |
| |
| |
Origins of XML | |
| |
| |
Document- Versus Data-Centric XML | |
| |
| |
Document-Centic XML | |
| |
| |
Data-Centric XML | |
| |
| |
Document Lifetime | |
| |
| |
XML Instances | |
| |
| |
Document Prolog | |
| |
| |
Elements | |
| |
| |
Attributes | |
| |
| |
Character Data | |
| |
| |
A Simpler Purchase Order | |
| |
| |
XML Namespaces | |
| |
| |
Namespace Mechanism | |
| |
| |
Namespace Syntax | |
| |
| |
Namespace-Prefixed Attributes | |
| |
| |
Document Type Definitions | |
| |
| |
Well-Formedness and Validity | |
| |
| |
Document Structure | |
| |
| |
Are DTDs Enough? | |
| |
| |
XML Schemas | |
| |
| |
XML Schema Basics | |
| |
| |
Associating Schemas with Documents | |
| |
| |
Simple Types | |
| |
| |
Complex types | |
| |
| |
The Purchase Order Schema | |
| |
| |
Basic Schema Reusability | |
| |
| |
Advanced Schema Reusability | |
| |
| |
There's More | |
| |
| |
Processing XML | |
| |
| |
Basic Operations | |
| |
| |
Data-Oriented XML Processing | |
| |
| |
SAX-based checkInvoice | |
| |
| |
DOM-based checkInvoice | |
| |
| |
Testing the Code | |
| |
| |
Summary | |
| |
| |
Resources | |
| |
| |
| |
Simple Object Access Protocol (SOAP) | |
| |
| |
Evolution of XML Protocols | |
| |
| |
First-Generation XML Protocols | |
| |
| |
Simple Object Access Protocol (SOAP) | |
| |
| |
The Making of SOAP | |
| |
| |
What Should SOAP Do? | |
| |
| |
What Is SOAP, Really? | |
| |
| |
Doing Business with Skates Town | |
| |
| |
Interacting with the Inventory System | |
| |
| |
Inventory Check Web Service | |
| |
| |
Choosing a Web Service Engine | |
| |
| |
Service Provider View | |
| |
| |
Service Requestor View | |
| |
| |
Putting the Service to the Test | |
| |
| |
SOAP on the Wire | |
| |
| |
SOAP Envelope Framework | |
| |
| |
SOAP Envelope | |
| |
| |
SOAP Versioning | |
| |
| |
SOAP Headers | |
| |
| |
SOAP Body | |
| |
| |
Taking Advantage of SOAP Extensibility | |
| |
| |
Service Requestor View | |
| |
| |
Service Provider View | |
| |
| |
Putting the Service to the Test | |
| |
| |
SOAP on the Wire | |
| |
| |
SOAP Intermediaries | |
| |
| |
The Need for Intermediaries | |
| |
| |
Intermediaries in SOAP | |
| |
| |
Putting It All Together | |
| |
| |
Error Handling in SOAP | |
| |
| |
SOAP Message Processing | |
| |
| |
SOAP Data Encoding | |
| |
| |
Specifying Different Encodings | |
| |
| |
SOAP Data Encoding Rules | |
| |
| |
Choosing a Data Encoding | |
| |
| |
Architecting Distributed Systems with Web Services | |
| |
| |
Messaging | |
| |
| |
Messaging Versus RPC | |
| |
| |
SOAP-based RPCs | |
| |
| |
Purchase Order Submission Web Service | |
| |
| |
Purchase Order and Invoice Schemas | |
| |
| |
Service Requestor View | |
| |
| |
Service Provider View | |
| |
| |
Putting the Service to the Test | |
| |
| |
SOAP on the Wire | |
| |
| |
SOAP Protocol Bindings | |
| |
| |
General Considerations | |
| |
| |
HTTP/S | |
| |
| |
SOAP Messages with Attachments | |
| |
| |
SOAP over SMTP | |
| |
| |
Other Protocols | |
| |
| |
Summary | |
| |
| |
The Road Ahead | |
| |
| |
Resources | |
| |
| |
| |
Creating Web Services | |
| |
| |
Why and What Is Axis? | |
| |
| |
The Axis Architecture | |
| |
| |
Axis Components | |
| |
| |
Locating the Service Chain | |
| |
| |
XML Parsing | |
| |
| |
Installing Axis | |
| |
| |
Configuring Axis | |
| |
| |
Configuration Methods | |
| |
| |
Security | |
| |
| |
Simple Web Services | |
| |
| |
Client-Side Programming | |
| |
| |
Advanced Web Service Deployment | |
| |
| |
Document-Centric Services | |
| |
| |
Data Encoding/Decoding | |
| |
| |
Building Handlers | |
| |
| |
Specialized Pivot Point Handlers, a.k.a. Providers | |
| |
| |
Faults | |
| |
| |
Message Patterns | |
| |
| |
Building and Deploying an Intermediary | |
| |
| |
SOAP V 1.2 | |
| |
| |
Monitoring | |
| |
| |
Summary | |
| |
| |
| |
Using SOAP for e-Business | |
| |
| |
Web Services Security | |
| |
| |
Example Scenario | |
| |
| |
SSL and HTTP Basic Authentication | |
| |
| |
Digital Signature | |
| |
| |
XML Encryption | |
| |
| |
Notary Service | |
| |
| |
Authorization | |
| |
| |
Security Assertions | |
| |
| |
Public Key Infrastructure and Key Management | |
| |
| |
How to Get Started with Security | |
| |
| |
Enterprise Application Integration | |
| |
| |
SOAP Server Based on J2EE | |
| |
| |
Transaction Processing | |
| |
| |
ACID and Two-Phase Commit | |
| |
| |
Reliable Messaging | |
| |
| |
J2EE Security Model | |
| |
| |
Quality of Service | |
| |
| |
Enterprise SOAP Server | |
| |
| |
High Availability | |
| |
| |
System Management | |
| |
| |
Enterprise Security | |
| |
| |
Summary | |
| |
| |
Resources | |
| |
| |
| |
Describing Web Services | |
| |
| |
Why Service Descriptions? | |
| |
| |
Role of Service Description in a Service-Oriented Architecture | |
| |
| |
Well Defined Service | |
| |
| |
Functional Description | |
| |
| |
Non-Functional Description | |
| |
| |
Aggregation/Orchestration Description | |
| |
| |
Stack Summary | |
| |
| |
History of IDLs | |
| |
| |
Web Services Definition Language (WSDL) | |
| |
| |
WSDL Information Model | |
| |
| |
Elements of the WSDL Language | |
| |
| |
PortType | |
| |
| |
Operation | |
| |
| |
Message | |
| |
| |
Binding | |
| |
| |
Port | |
| |
| |
Service | |
| |
| |
Definitions | |
| |
| |
Documentation | |
| |
| |
Conventional Use of the Import Element | |
| |
| |
WSDL Extension Mechanism | |
| |
| |
WSDL and Java | |
| |
| |
Deriving Code from WSDL | |
| |
| |
Deriving WSDL from Code | |
| |
| |
Future Service Description Efforts | |
| |
| |
Web Services Endpoint Language (WSEL) | |
| |
| |
Web Services Flow Language (WSFL) | |
| |
| |
Summary | |
| |
| |
| |
Discovering Web Services | |
| |
| |
The Role of Service Discovery | |
| |
| |
The Role of Registries | |
| |
| |
Service Discovery at Design Time and Runtime | |
| |
| |
Multiple Mechanisms of Service Discovery | |
| |
| |
Scenario Updates | |
| |
| |
UDDI | |
| |
| |
The UDDI Usage Model | |
| |
| |
The UDDI tModel Concept | |
| |
| |
Publishing Business Information to a UDDI Registry | |
| |
| |
Publishing Service Information to a UDDI Registry | |
| |
| |
Finding Information in a UDDI Registry | |
| |
| |
Getting Business and Service Details from a UDDI Registry | |
| |
| |
Summarizing UDDI Version 1.0 | |
| |
| |
Private UDDI Registries | |
| |
| |
Why Would a Company Host a Private UDDI Registry? | |
| |
| |
Five Types of Private UDDI | |
| |
| |
What's New in UDDI Version 2.0? | |
| |
| |
Overview of Changes in UDDI V2.0 | |
| |
| |
Third-Party Taxonomies | |
| |
| |
Modeling Relationships between businessEntity Entries | |
| |
| |
Changes to the Inquiry API | |
| |
| |
Changes to the Publication API | |
| |
| |
Miscellaneous Changes | |
| |
| |
Using WSDL with UDDI | |
| |
| |
Saving a UDDI businessService Based on WSDL | |
| |
| |
More Complex WSDL and Corresponding UDDI Entries | |
| |
| |
Putting It All Together: WSDL-Based UDDI and Dynamic Find | |
| |
| |
Summary | |
| |
| |
| |
Interoperability, Tools, and Middleware Products | |
| |
| |
Interoperability: The "Holy Grail" of Web Services | |
| |
| |
The Soapbuilders Community | |
| |
| |
The Interoperability Lab | |
| |
| |
The W3C: The Emergence of a Standardized SOAP | |
| |
| |
The Larger Web Services Landscape | |
| |
| |
Who's Building SOAP Systems? | |
| |
| |
Other Languages and Environments | |
| |
| |
SOAP::Lite--Web Services in Perl | |
| |
| |
The .NET Web Service World: A Brief Primer | |
| |
| |
GLUE: Another Take on Java Web Services | |
| |
| |
Summary | |
| |
| |
Resources | |
| |
| |
| |
Future Concepts | |
| |
| |
Computing as a Utility | |
| |
| |
Web Services Everywhere: The Vision | |
| |
| |
Ontologies and the Semantic Web | |
| |
| |
Resource Description Framework | |
| |
| |
Ontologies | |
| |
| |
Relating RDF to Web Services | |
| |
| |
Software Agents | |
| |
| |
Relating Software Agents to Web Services | |
| |
| |
Peer-to-Peer Computing | |
| |
| |
Relating Peer Computing to Web Services | |
| |
| |
Grid Computing | |
| |
| |
Relating Grid Computing to Web Services | |
| |
| |
Embedded Web Services | |
| |
| |
Pulling It All Together | |
| |
| |
Resources | |
| |
| |
Glossary | |
| |
| |
Index | |