Chapter14.Web Application Development
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
- 14.1. The HTTP Server
-
- 14.1.1. HTTP Server Base Configuration
- 14.1.2. Virtual Directories
- 14.1.3. Authentication
- 14.1.4. Session Management
- 14.1.5. Writing Your Own Authentication and Session Handling
- 14.1.6. Cancellation of Web Requests
- 14.1.7. Virtuoso WebRobot API
- 14.1.8. HTTP Server Extensions
- 14.1.9. Chunked Transfer Encoding
- 14.1.10. Using Virtuoso Server capabilities via Apache Web Server
- 14.1.11. Setting Up the Virtuoso HTTPS Listener
- 14.2. Web Services ACL (Access Control List)
-
- 14.2.1. General purpose ACLs
- 14.2.2. ACL Definition/Removal
- 14.2.3. Using ACL's Within Application Logic
- 14.2.4. Predefined ACLs
- 14.3. Virtuoso Server Pages (VSP)
-
- 14.3.1. VSP Markup & Basic Functions
- 14.3.2. Access Request Information
- 14.3.3. Errors in Page Procedures
- 14.3.4. /INLINEFILE HTTP Server Pseudo-Directory
- 14.3.5. Beyond Basics
- 14.3.6. Long HTTP Transactions
- 14.3.7. Using chunked encoding in HTTP 1.1
- 14.3.8. Making Simple Dynamic Web Pages
- 14.3.9. Generation of non-HTML output
- 14.3.10. Post VSP XSLT Transformation Mode
- 14.3.11. XML & XSLT Generated VSP Pages
- 14.4. Virtuoso Server Pages for XML (VSPX)
-
- 14.4.1. Processing Model
- 14.4.2. Object Model
- 14.4.3. Keeping Page and Session State
- 14.4.4. Application Code
- 14.4.5. A Simple Example
- 14.4.6. VSPX Event Handler Parameters
- 14.4.7. Registering a VSPX Event Callbacks
- 14.4.8. Commonly Used Types of Attributes of VSPX Controls
- 14.4.9. VSPX Controls
- 14.4.10. XForms rendering
- 14.4.11. XMLSchema for VSPX page
- 14.5. Deploying ASP.Net Web Applications
-
- 14.5.1. Programming Concepts
- 14.5.2. ASP.Net Deployment & Configuration
- 14.5.3. The Mono Project
- 14.5.4. Migrating ASP.Net Applications to Virtuoso
- 14.6. ASMX Web Service Hosting
- 14.7. Blogging & Weblogs
-
- 14.7.1. The Virtuoso Blogging Application
- 14.7.2. Blogger Clients Compatibility
- 14.7.3. Blogs Management User Interface
- 14.7.4. Community Blog Site
- 14.7.5. Blogger API
- 14.7.6. MetaWeblog API
- 14.7.7. Movable Type API
- 14.7.8. Atom API
- 14.7.9. XML-RPC Endpoint Configuration
- 14.7.10. Blog Hooks - Customizing the Blog Server
- 14.7.11. Blogger Client API
- 14.7.12. xmlStorageSystem API
- 14.7.13. User's Blog quota
- 14.7.14. Posting a message in to the Blog
- 14.7.15. Multi-author blogging
- 14.7.16. Posting a comments
- 14.7.17. Blog Post Upstreaming (bridging)
- 14.7.18. Weblogs API
- 14.7.19. Subscriptions
- 14.7.20. Trackback API
- 14.7.21. Pingback API
- 14.7.22. E-mail Notifications
- 14.7.23. Comments tracking options
- 14.7.24. Subscription Harmonizer API
- 14.7.25. Mobile Blogging (Moblog)
- 14.7.26. Posting a dynamic content
- 14.7.27. Notification Services
- 14.7.28. Rendering the RSS feed in WML format
- 14.8. Deploying PHP Applications
-
- 14.8.1. Building the Virtuoso Server With PHP Extension
- 14.8.2. PHP Extension Functions
- 14.8.3. PHP Examples
- 14.9. Deploying JSP Applications
-
- 14.9.1. Environment Setup & Verification
- 14.10. Perl Hosting
- 14.11. Python Hosting
- 14.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.