# 12. Web Application Development

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
The HTTP Server
Web Services ACL (Access Control List)
Virtuoso Server Pages (VSP)
Virtuoso Server Pages for XML (VSPX)
Writing ASP.Net Web Applications
ASMX Web Service Hosting
Blogging & Weblogs
Writing PHP Applications
Writing JSP Applications
Perl Hosting
Python Hosting
Ruby Hosting
XML Support
RDF Database and SPARQL
Web Services
Runtime Hosting
Internet Services
Free Text Search
TPC C Benchmark Kit
Using Virtuoso with Tuxedo
Appendix
Virtuoso Functions Guide

## Abstract

This chapter deals with the Virtuoso HTTP Server, its Dynamic Page generation and components used to configure it. The HTTP Servers features include:

- Web server configuration and access control.
- Multihosting, Virtual Hosting and Virtual Directories - A single Virtuoso server can map requests into multiple spaces of web pages based on the interface to which the requests come (multihosting) or on the Host HTTP/1.1 header (virtual hosting).
- HTTP/1.0 and HTTP/1.1 support, keep alive connections and pipelining.
- Proxying - Virtuoso can automatically redirect requests to certain resources or directories to another web server.
- Authentication and security - Specific directories can be made to require authentication (basic or digest) or may be restricted to SSL only. Authentication can also be totally user defined.
- SOAP - given directories can be defined as containing SOAP services, which can be accessed by SOAP clients, invoking Virtuoso stored procedures.
- Dynamic content - Given paths can be executable, allowing defining VSP, and VSPX pages that generate HTML or XML using embedded Virtuoso/PL.
- WebDAV - Paths can be mapped into DAV collections maintained inside the database. Virtuoso WebDav is a Unix file system-like mechanism allows specifying access rights and ownership of DAV resources.
- WebDAV resources may optionally be indexed in a free text index.
- A web robot allows copying external web resources into Virtuoso WebDAV.

## Table of Contents

12.1. The HTTP Server
12.1.2. HTTP Server Base Configuration
12.1.3. Virtual Directories
12.1.4. Authentication
12.1.5. Session Management
12.1.6. Writing Your Own Authentication and Session Handling
12.1.7. Cancellation of Web Requests
12.1.8. Virtuoso WebRobot API
12.1.9. HTTP Server Extensions
12.1.10. Chunked Transfer Encoding
12.1.11. Using Virtuoso Server capabilities via Apache Web Server
12.2. Web Services ACL (Access Control List)
12.2.1. General purpose ACLs
12.2.2. ACL Definition/Removal
12.2.3. Using ACL's Within Application Logic
12.2.4. Predefined ACLs
12.3. Virtuoso Server Pages (VSP)
12.3.2. VSP Markup & Basic Functions
12.3.3. Access Request Information
12.3.4. Errors in Page Procedures
12.3.5. /INLINEFILE HTTP Server Pseudo-Directory
12.3.6. Beyond Basics
12.3.7. Long HTTP Transactions
12.3.8. Using chunked encoding in HTTP 1.1
12.3.9. Making Simple Dynamic Web Pages
12.3.10. Generation of non-HTML output
12.3.11. Post VSP XSLT Transformation Mode
12.3.12. XML & XSLT Generated VSP Pages
12.4. Virtuoso Server Pages for XML (VSPX)
12.4.1. Processing Model
12.4.2. Object Model
12.4.3. Keeping Page and Session State
12.4.4. Application Code
12.4.5. A Simple Example
12.4.6. VSPX Event Handler Parameters
12.4.7. Registering a VSPX Event Callbacks
12.4.8. Commonly Used Types of Attributes of VSPX Controls
12.4.9. VSPX Controls
12.4.10. XForms rendering
12.4.11. XMLSchema for VSPX page
12.5. Writing ASP.Net Web Applications
12.5.2. Programming Concepts
12.5.3. ASP.Net Deployment & Configuration
12.5.4. The Mono Project
12.5.5. Migrating ASP.Net Applications to Virtuoso
12.6. ASMX Web Service Hosting
12.7. Blogging & Weblogs
12.7.1. The Virtuoso Blogging Application
12.7.2. Blogger Clients Compatibility
12.7.3. Blogs Management User Interface
12.7.4. Community Blog Site
12.7.5. Blogger API
12.7.6. MetaWeblog API
12.7.7. Movable Type API
12.7.8. Atom API
12.7.9. XML-RPC Endpoint Configuration
12.7.10. Blog Hooks - Customizing the Blog Server
12.7.11. Blogger Client API
12.7.12. xmlStorageSystem API
12.7.13. User's Blog quota
12.7.14. Posting a message in to the Blog
12.7.15. Multi-author blogging
12.7.16. Posting a comments
12.7.17. Blog Post Upstreaming (bridging)
12.7.18. Weblogs API
12.7.19. Subscriptions
12.7.20. Trackback API
12.7.21. Pingback API
12.7.22. E-mail Notifications
12.7.23. Comments tracking options
12.7.24. Subscription Harmonizer API
12.7.25. Mobile Blogging (Moblog)
12.7.26. Posting a dynamic content
12.7.27. Notification Services
12.7.28. Rendering the RSS feed in WML format
12.8. Writing PHP Applications
12.8.2. Building the Virtuoso Server With PHP Extension
12.8.3. PHP Extension Functions
12.8.4. PHP Examples
12.9. Writing JSP Applications
12.9.2. Environment Setup & Verification
12.10. Perl Hosting
12.11. Python Hosting
12.12. Ruby Hosting

Virtuoso provides a full function web server with dynamic web page generation capability using SQL procedures embedded in HTML or XML via VSP or VSPX. Runtime hosting allows Virtuoso to generate dynamic web pages from other sources also, such as ASP.Net, PHP or JSP.

Out-of-the-box Virtuoso listens for HTTP requests on the port defined in the HTTP Server section of the Virtuoso INI file. The Visual Server Administration Interface is available at this port and can be used to further configure the web server.

Web resources can be based on the file system, reside in the database or in WebDAV or any combination of all of them. WebDAV space can be specified at the path level, by default, paths beginning with /DAV are mapped to the WebDAV root collection (directory) and all other paths are assumed to be file system based. By default / is mapped to the directory specified as ServerRoot in the HTTP Server section of the virtuoso.ini file.

Virtual Directories provide a way to make mappings from paths to other resources such as specific file system or WebDAV locations, other HTTP Servers acting as a proxy or to alter specific processing or authentication rules for a directory.

Previous Replication Logger Sample | Chapter Contents | Next The HTTP Server