<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
 <channel>
  <title>Web Application Development</title>
  <link>http://docs.openlinksw.com/virtuoso/webappdevelopment.html</link>
  <description>OpenLink Virtuoso Universal Server: Documentation</description>
  <managingEditor>virtuoso.docs@openlinksw.com</managingEditor>
  <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
  <generator>OpenLink Software Documentation Team</generator>
  <webMaster>webmaster@openlinksw.com</webMaster>
  <image>
    <title>OpenLink Virtuoso Universal Server: Documentation</title>
    <url>http://docs.openlinksw.com/virtuoso/../images/misc/logo.jpg</url>
    <link>http://docs.openlinksw.com/virtuoso/webappdevelopment.html</link>
    <description>OpenLink Virtuoso Universal Server: Documentation</description>
  </image>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/webserver.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>The HTTP Server</category>
    <link>http://docs.openlinksw.com/virtuoso/webserver.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>The HTTP Server</title>
    <description>When a request comes in to one of the network interfaces where
  Virtuoso is listening for HTTP requests, it is matched against a set of virtual directory
  path mappings.  A path mapping has the following attributes:

Incoming requests are also checked against the HTTP access control lists.
 These lists rely on the following attributes of the connection to determine whether
 the request should be answered:

The Virtuoso HTTP server is HTTP/1.1 compliant.  It can accept persistent
  connections from HTTP/1.1 clients.  The HTTP/1.0 requests are processed as normal
  without the persistent connections feature.

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/wsacl.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Web Services ACL (Access Control List)</category>
    <link>http://docs.openlinksw.com/virtuoso/wsacl.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Web Services ACL (Access Control List)</title>
    <description>Virtuoso provides a generic access control list for HTTP and other
Internet protocol clients.  This mechanism uses wildcard expressions to
selectively block and allow ranges of IP addresses.  An ordered set of patterns
is matched against the origin of the request.  The first matching pattern&#39;s
allow/deny flag determines whether the client is approved or not. 

The patterns  for designating a range of IP addresses follow the syntax of
   the SQL &#39;LIKE&#39; predicate; i.e. &#39;%.foo.bar&#39; or &#39;*.foo.bar&#39; for example.

The following mechanisms for services access restriction are
defined by default:

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/vsp1.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Virtuoso Server Pages (VSP)</category>
    <link>http://docs.openlinksw.com/virtuoso/vsp1.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Virtuoso Server Pages (VSP)</title>
    <description>The Virtuoso Server Pages subsystem is an integral part of the Virtuoso server.
A VSP page is a file system or DAV resident resource that contains Virtuoso/PL code intermixed with HTML or other static content.

Virtuoso can serve Web pages to HTTP 1.0 and HTTP 1.1 clients.  The
HTTP document root is set by the ServerRoot parameter in the [HTTPServer]
section of the Virtuoso INI file.  By default this is set to vsp
sub-directory of the installation.  If this parameter is not set, then the default
document root will be the server&#39;s working directory.  

Directories under the ServerRoot directory, including the root itself are
not automatically allowed to execute dynamic pages such as VSP.  A virtual
directory must first be created with an appropriate VSP user assigned to
permit execution of dynamic pages. After this, Virtuoso will execute files
with a &quot;.vsp&quot; extension as a VSP page.]


Each VSP page constitutes a Virtuoso stored procedure named after the
URI of the page by taking the URI and pre-pending the WS.WS. qualifier and owner.
Hence the page /test.vsp becomes the procedure
&quot;WS&quot;.&quot;WS&quot;.&quot;/test.vsp&quot;.  This is automatically performed
when a page is first requested.  Subsequent requests to the page will not
reference the file.  The VSP engine will check for changes in the
.vsp source file before calling the
procedure and re-compile as required.
The ws_proc_def() SQL function
can be used to explicitly update the procedure if the .vsp file is changed.


Each URL is executed in its own transaction.  All SQL statements in a page
procedure, whether on local or remote data, make up one transaction, unless
transaction control statements are explicitly used to divide the page into
multiple transactions.  If the page procedure returns through completing execution
or through a return statement or as a result of a &#39;no data found&#39; condition, the
transaction is implicitly committed.  If this commit fails, the output is discarded
and the error message indicating the commit failure is sent to the HTTP client.
If a VSP procedure returns as a result of an error the transaction is rolled
back and the output discarded.  The client gets the SQL error message as the
HTML body of the reply.  A VSP procedure can commit or roll back explicitly with
the commit work or
rollback work PL statements.


If the client closes the connection to the server while server-side processing
    is taking place this will be detected by the server and the transaction will be
    eventually interrupted and rolled back in the same way as if an ODBC client
    had disconnected. To control the server reacting or not on the HTTP client
    disconnecting the SET HTTP_IGNORE_DISCONNECT = ON/OFF should be used.

Each VSP page-procedure is called with three arguments:

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/vspx.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Virtuoso Server Pages for XML (VSPX)</category>
    <link>http://docs.openlinksw.com/virtuoso/vspx.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Virtuoso Server Pages for XML (VSPX)</title>
    <description>VSPX is an XML vocabulary for server generated HTML and XHTML pages
that may or may not be bound to native or third-party data sources.
VSPX is a framework for building and deploying dynamic web content atop
Virtuoso.  VSPX offers a widget set and event model which is similar to that of
GUI tool kits, providing the developer with much automation for common web
development tasks.  Many controls are tightly integrated with the Virtuoso
database, providing seamless data binding to local or remote relational and XML
data.  Server side scripting in VSPX is performed in Virtuoso/PL.  The VSPX
source code consists of HTML or XML with interspersed VSPX specific XML elements
which describe the UI control hierarchy of the page. 

VSPX covers the following areas:

The VSPX development cycle consists of editing .vspx resources in the
file system or Virtuoso DAV.  The editing can take place using a
regular text editor or a supporting HTML editor.

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/rthwritaspxapps.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Deploying ASP.Net Web Applications</category>
    <link>http://docs.openlinksw.com/virtuoso/rthwritaspxapps.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Deploying ASP.Net Web Applications</title>
    <description>Virtuoso is a CLR host. It is responsible for initializing the runtime,
 defining the application domain (its runtime boundaries, security settings, etc),
 and executing user code within such domains. Windows can be used
 as the development platform, a very developer friendly environment with
 a rich set of tools, but you  will not be restricted to Windows, .NET
 and IIS to run the assemblies produced. Where .NET is not readily available
 or desired Virtuoso contains Mono, an open source re-implementation of
 Microsoft .NET, a vehicle taking .NET cross-platform. 

The CLR run-time is a part of the Virtuoso process. The Mono run time may be
run either as in-process or as out-of-process. Hosted applications can make use of
the regular Virtuoso .Net data provider to access Virtuoso SQL data and procedures.
 Microsoft ASPX files can also be run directly from Virtuoso either from
 the file system or WebDAV. Each of these capabilities releases you from
 the Microsoft platforms without compromising your development platform.

The Virtuoso CLR hosting is implemented using the VSEI.

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/asmxhosting.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>ASMX Web Service Hosting</category>
    <link>http://docs.openlinksw.com/virtuoso/asmxhosting.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>ASMX Web Service Hosting</title>
    <description>Microsoft ASMX Web Services can be hosted in exactly the same way as 
  ASPX Applications can be.  A ASMX Web Services Project created in Visual Studio
  can be copied to either the file system (under the VSPROOT directory) or the 
  Virtuoso WebDAV repository.  You must copy the project directory to the 
  required location and then make a Virtual Directory pointing to it.  If the 
  location is in WebDAV then ensure that execute permissions are set for 
  any .asmx files.

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/blogger.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Blogging &amp; Weblogs</category>
    <link>http://docs.openlinksw.com/virtuoso/blogger.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Blogging &amp; Weblogs</title>
    <description>Weblogs, or Blog, are web pages or sites organized by date.
The content of a typical blog page contains short messages listed in
chronological order. The blog messages are typically excerpts of HTML markup,
since they typically appear on web sites and expect web browsers as clients.

In the rest of this document we will use interchangeable the terms &quot;blog&quot;
and &quot;weblog&quot;, and refer to the users that have a blog as &quot;bloggers&quot;.

The following terms are also commonly used in this section:

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/servphpext.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Deploying PHP Applications</category>
    <link>http://docs.openlinksw.com/virtuoso/servphpext.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Deploying PHP Applications</title>
    <description>The PHP server extension allows Virtuoso to execute PHP (v4) pages
stored in the file system or in Virtuoso’s WebDAV repository.   PHP pages run inside the Virtuoso process.


The VSE __http_handler_php() has been implemented so that the file
extension &#39;.php&#39; is recognized by Virtuoso to switch between &#39;normal&#39; mode and
extension processing for PHP mode in the HTTP/WebDAV services.

PHP (recursive acronym for &quot;PHP: Hypertext Preprocessor&quot;) is a widely-used
Open Source general-purpose scripting language that is suited for Web-based
development.  Here is an example of a simple PHP page:

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/rthjsp.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Deploying JSP Applications</category>
    <link>http://docs.openlinksw.com/virtuoso/rthjsp.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Deploying JSP Applications</title>
    <description>The Virtuoso server with Java hosting support can be used to execute
JSP pages, however, Virtuoso requires a JSP container engine first.  Jakarta
provide such an engine that can be hosted inside Virtuoso with Java support.
This section describes how JSP&#39;s can be executed using Jakarta Tomcat JSP
implementation.

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/perlhosting.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Perl Hosting</category>
    <link>http://docs.openlinksw.com/virtuoso/perlhosting.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Perl Hosting</title>
    <description>Virtuoso functionality can be enhanced through external libraries by
loading shared objects or DLLs.  The new functions are written in a language of the developer&#39;s
choice and compiled to produce a shared library appropriate to the operating
system.  The path to the shared library must be declared in the Virtuoso INI
file and the server restarted before it can be used.

The Perl language is hosted within Virtuoso in this way.  hosting_perl.so
is the library used.

The Virtuoso INI file uses a [Plugins] configuration section for listing
shared libraries for the server to load upon startup.  An example of this is:

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/pythonhosting.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Python Hosting</category>
    <link>http://docs.openlinksw.com/virtuoso/pythonhosting.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Python Hosting</title>
    <description>Virtuoso functionality can be enhanced through external libraries by
loading shared objects or DLLs.  The new functions are written in a language of
choice and compiled to produce a shared library appropriate to the operating
system.  The path to the shared library must be declared in the Virtuoso INI
file and the server restarted before it can be used.

The Python language is hosted within Virtuoso in this way.
hosting_python.so (or
hosting_python.dll) is the library used.

The Python hosting module requires the Python library, version 2.2.2 or above,
to build and use the module, which then must be installed in the Plugins-Load-path
defined in the Virtuoso ini file.  The source code and build script
(build.py) for building the
hosting_python.so module are included in the Unix
distribution in the  custom/hosting/python
directory.  The Unix installer will offer to build it near the end of the
installation process.  The build.py is a kind of Makefile.  On unix it requires
libtool and cc
in the path.  On windows it requires cl.exe
in the path.

</description>
  </item>
  <item>
    <guid>http://docs.openlinksw.com/virtuoso/rubyhosting.html</guid>
    <author>virtuoso.docs@openlinksw.com</author>
    <category>Ruby Hosting</category>
    <link>http://docs.openlinksw.com/virtuoso/rubyhosting.html</link>
    <pubDate>Thu, 28 Aug 2008 11:43:25 GMT</pubDate>
    <title>Ruby Hosting</title>
    <description>Virtuoso functionality can be enhanced through external libraries by
loading shared objects or DLLs.  The new functions are written in a language of
choice and compiled to produce a shared library appropriate to the operating
system.  The path to the shared library must be declared in the Virtuoso INI
file and the server restarted before it can be used.

The Ruby language is hosted within Virtuoso in this way.
hosting_ruby.so (or
hosting_ruby.dll) is the library used.

The Ruby hosting module requires the Ruby library, version 1.8.3 or above,
to build and use the module, which then must be installed in the Plugins-Load-path
defined in the Virtuoso ini file.  The source code for building the
hosting_ruby.so module are included in the Unix
distribution in the  custom/hosting/ruby
directory.  The Unix installer will offer to build it near the end of the
installation process.

</description>
  </item>
 </channel>
</rss>
