Chapter17.Web Services

Abstract

The term Web Services describes an application of XML for exposing application functionality to disparate clients via the Web. This paradigm provides access to entire applications, modules, objects, functions, and methods via HTTP and other transport protocols. Web Services are inherently platform- and programming-language independent. Services can be developed in one language and consumed in another; this holds true irrespective of client or server host operating system combinations.

A collection of core XML-based specifications and standards work in concert to fulfill the Web services value proposition. These standards include:

SOAP - XML notation that describes how messages are assembled and transmitted over HTTP between services and service consumers.
WSDL - XML notation for describing SOAP services.
UDDI - Application of the SOAP protocol for registering and publishing information about organizations, contacts within organizations, and Web Services that these organizations have chosen to expose to the public.

Virtuoso enables stored procedures to be exposed as Web services that are consumable by any Web services-aware development tool, application, or environment. The stored procedures exposed by Virtuoso may be native stored procedures, or may be hosted in any third-party database that supports stored procedures, and is accessible via an ODBC or JDBC driver. In Virtuoso, exposing stored procedures as Web services does not require any programming effort. You simply identify the stored procedures to be exposed using the Virtuoso Administrative Interface.

This feature is immensely valuable in situations where organizations are seeking to transform time-tested stored procedures into Web Services without having to upgrade or change databases or host operating systems. In modern enterprises, such stored procedures drive mission-critical solutions; Virtuoso's approach to Web services enables you to maximize current investment while minimizing the need for rework.

Table of Contents

17.1. SOAP
17.1.1. Virtuoso SOAP Support Overview
17.1.2. Handling of SOAP HTTP Requests
17.1.3. Extending Datatypes for SOAP Objects
17.1.4. Inheritance of Datatypes for SOAP Objects
17.1.5. Complex Types in PL Procedure and UDT Method Definition
17.1.6. Complex Types in Procedure Definition using a pre-defined XML Schema datatypes
17.1.7. Default SOAP-SQL Datatype Mappings
17.1.8. Exposing Stored Procedures as SOAP Objects
17.1.9. Creation of SOAP proxy based on User Defined Types
17.1.10. Exposing User Defined Type Methods as SOAP Objects
17.1.11. Exposing Remote Third Party SQL Stored Procedures as SOAP Services
17.1.12. Virtuoso/PL SOAP Client
17.1.13. Execution Privileges
17.1.14. Custom Soap Server Support
17.1.15. PL Procedures and UDT Methods Syntax Affecting WSDL & SOAP Processing
17.1.16. Exposing & Processing SOAP Header Messages
17.1.17. Exposing & Processing SOAP Fault Messages
17.1.18. Document Literal Encoding
17.1.19. DIME encapsulation of SOAP messages
17.1.20. SOAP Endpoint Options
17.2. WSDL
17.2.1. Exposing Stored Procedures as WSDL Services
17.2.2. Exposing SQL Stored Procedures containing complex datatype definitions
17.2.3. Exposing Third Party SQL Stored Procedures as WSDL-Compliant Web Services
17.2.4. WSDL Descriptions of SOAP Header Messages
17.2.5. Importing A WSDL File & SOAP/WSDL Proxying
17.2.6. SOAP/WSDL Interoperability
17.3. WebID Protocol Support
17.3.1. x.509 certificate
17.3.2. Setting up Virtuoso HTTPS
17.3.3. Setting Up Firefox
17.3.4. Configuring ODS Account to use WebID Protocol
17.3.5. Testing the setup
17.3.6. WebID Protocol ACLs
17.3.7. SPARQL-WebID based Endpoint
17.3.8. CA Keys Import using Conductor
17.3.9. Set Up X.509 certificate issuer, HTTPS listener and generate ODS user's certificates
17.3.10. WebID Protocol ODBC Login
17.4. OAuth Support
17.4.1. OAuth Access Tokens
17.4.2. Virtuoso OAuth server
17.4.3. OAuth Implementation in OpenLink Data Spaces
17.4.4. OAuth Generate Keys for ODS Controllers (Web Services)
17.4.5. ODS Ubiquity Commands
17.4.6. OAuth Test Tool for ODS Controllers
17.4.7. OAuth QA
17.5. WS-Security (WSS) Support in Virtuoso SOAP Server
17.5.1. Client and Server side Certificates & Keys
17.5.2. SOAP Server WS-Security Endpoint
17.5.3. Virtual Directory SOAP WSS Options
17.5.4. Accounting & Accounting Hook
17.5.5. Signature Templates
17.5.6. SOAP Client
17.6. Web Services Routing Protocol (WS-Routing)
17.6.1. Configuration
17.6.2. Traversing Message Paths
17.7. Web Services Reliable Messaging Protocol (WS-ReliableMessaging)
17.7.1. SOAP CLIENT API Extensions
17.7.2. WS-RM Sender API
17.7.3. WSRM Receiver API
17.7.4. WS-RM Protocol Endpoint Configuration
17.7.5. Message Examples
17.7.6. WS-RM Schema
17.8. Web Services Trust Protocol (WS-Trust)
17.9. XML for Analysis Provider
17.10. XML-RPC support
17.11. SyncML
17.12. UDDI
17.12.1. Concepts
17.12.2. Dealing with SOAP
17.12.3. Supported API Calls
17.12.4. Authorization Mechanism
17.12.5. UDDI API Calls
17.12.6. Examples
17.13. Exposing Persistent Stored Modules as Web Services
17.13.1. Publishing Stored Procedures as Web Services
17.13.2. XML Query Templates
17.13.3. Publishing VSE's as Web Services
17.14. Testing Web Published Web Services
17.15. BPEL Reference
17.15.1. Activities
17.15.2. Protocol Support
17.15.3. Process lifecycle
17.15.4. Using virtual directories
17.15.5. Process archiving
17.15.6. Configuration parameters
17.15.7. Process Statistics
17.15.8. Deployment file suitcase format
17.15.9. SQL API
17.15.10. BPEL XPath Functions
17.15.11. Tables
17.15.12. Errors
17.15.13. Samples
17.15.14. References
17.15.15. BPEL4WS VAD Package installation
17.16. XSQL
17.16.1. XSQL Syntax
17.16.2. XSQL Directives