# 15. Web Services

Chapter Contents | Prev | Next
Keyword Search:
www.openlinksw.com
docs.openlinksw.com
Book Home
Contents
Preface
Overview
Installation Guide
Quick Start & Tours
Sample ODBC & JDBC Applications
Conceptual Overview
Server Administration
Data Access Interfaces
SQL Reference
SQL Procedure Language Guide
Database Event Hooks
Data Replication, Synchronization and Transformation Services
Web Application Development
XML Support
RDF Database and SPARQL
Web Services
SOAP
WSDL
WS-Security (WSS) Support in Virtuoso SOAP Server
Web Services Routing Protocol (WS-Routing)
Web Services Reliable Messaging Protocol (WS-ReliableMessaging)
Web Services Trust Protocol (WS-Trust)
XML for Analysis Provider
XML-RPC support
SyncML
UDDI
Exposing Persistent Stored Modules as Web Services
Testing Web Published Web Services
BPEL Reference
XSQL
Runtime Hosting
Internet Services
Free Text Search
TPC C Benchmark Kit
Using Virtuoso with Tuxedo
Appendix
Virtuoso Functions Guide

## 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

15.1. SOAP
15.1.1. Virtuoso SOAP Support Overview
15.1.2. Handling of SOAP HTTP Requests
15.1.3. Extending Datatypes for SOAP Objects
15.1.4. Inheritance of Datatypes for SOAP Objects
15.1.5. Complex Types in PL Procedure and UDT Method Definition
15.1.6. Complex Types in Procedure Definition using a pre-defined XML Schema datatypes
15.1.7. Default SOAP-SQL Datatype Mappings
15.1.8. Exposing Stored Procedures as SOAP Objects
15.1.9. Creation of SOAP proxy based on User Defined Types
15.1.10. Exposing User Defined Type Methods as SOAP Objects
15.1.11. Exposing Remote Third Party SQL Stored Procedures as SOAP Services
15.1.12. Virtuoso/PL SOAP Client
15.1.13. Execution Privileges
15.1.14. Custom Soap Server Support
15.1.15. PL Procedures and UDT Methods Syntax Affecting WSDL & SOAP Processing
15.1.16. Exposing & Processing SOAP Header Messages
15.1.17. Exposing & Processing SOAP Fault Messages
15.1.18. Document Literal Encoding
15.1.19. DIME encapsulation of SOAP messages
15.1.20. SOAP Endpoint Options
15.2. WSDL
15.2.1. Exposing Stored Procedures as WSDL Services
15.2.2. Exposing SQL Stored Procedures containing complex datatype definitions
15.2.3. Exposing Third Party SQL Stored Procedures as WSDL-Compliant Web Services
15.2.4. WSDL Descriptions of SOAP Header Messages
15.2.5. Importing A WSDL File & SOAP/WSDL Proxying
15.2.6. SOAP/WSDL Interoperability
15.3. WS-Security (WSS) Support in Virtuoso SOAP Server
15.3.1. Client and Server side Certificates & Keys
15.3.2. SOAP Server WS-Security Endpoint
15.3.3. Virtual Directory SOAP WSS Options
15.3.4. Accounting & Accounting Hook
15.3.5. Signature Templates
15.3.6. SOAP Client
15.4. Web Services Routing Protocol (WS-Routing)
15.4.1. Configuration
15.4.2. Traversing Message Paths
15.5. Web Services Reliable Messaging Protocol (WS-ReliableMessaging)
15.5.1. SOAP CLIENT API Extensions
15.5.2. WS-RM Sender API
15.5.3. WSRM Receiver API
15.5.4. WS-RM Protocol Endpoint Configuration
15.5.5. Message Examples
15.5.6. WS-RM Schema
15.6. Web Services Trust Protocol (WS-Trust)
15.7. XML for Analysis Provider
15.8. XML-RPC support
15.9. SyncML
15.10. UDDI
15.10.1. Concepts
15.10.2. Dealing with SOAP
15.10.3. Supported API Calls
15.10.4. Authorization Mechanism
15.10.5. UDDI API Calls
15.10.6. Examples
15.11. Exposing Persistent Stored Modules as Web Services
15.11.1. Publishing Stored Procedures as Web Services
15.11.2. XML Query Templates
15.11.3. Publishing VSEs as Web Services
15.12. Testing Web Published Web Services
15.13. BPEL Reference
15.13.1. Activities
15.13.2. Protocol Support
15.13.3. Process lifecycle
15.13.4. Using virtual directories
15.13.5. Process archiving
15.13.6. Configuration parameters
15.13.7. Process Statistics
15.13.8. Deployment file suitcase format
15.13.9. SQL API
15.13.10. BPEL XPath Functions
15.13.11. Tables
15.13.12. Errors
15.13.13. Samples
15.13.14. References
15.13.15. BPEL4WS VAD Package installation
15.14. XSQL
15.14.1. XSQL Syntax
15.14.2. XSQL Directives

Previous Virtuoso SPARQL Query Service | Chapter Contents | Next SOAP