# 16. Runtime Hosting

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
Runtime Hosting
Runtime Environments
CLR, .Net & ASPX Host
CLR & Mono
Embedded Java VM API
Virtuoso Server Extension Interface (VSEI) (C Interface)
VSEI Plugins
Internet Services
Free Text Search
TPC C Benchmark Kit
Using Virtuoso with Tuxedo
Appendix
Virtuoso Functions Guide

## Abstract

Virtuoso can be extended by in-process hosting of a number of different run time environments. This includes: Microsoft's .NET CLR (CLR), the Mono ECMA-CLI (Mono), and the Java Virtual Machine (JVM). Thus, you can create persistent stored modules, SQL functions, and user defined data types using any Microsoft .NET or Mono bound language, Java, and traditional languages such as 'C'/C++.

Objects provided by hosted run times, such as Java and CLR can be directly and transparently accessed from SQL. This also means that application logic in any hosted language can be exposed as a web service. By offering a choice of hosted run times in a cross platform setting, Virtuoso adds a new degree of freedom for the application designer. Applications can now be developed and deployed on either Windows, Linux or Unix, can be written in Java or any .net CLR bound language and can talk to any database via Virtuoso's virtual databasing capabilities.

The Virtuoso Server Extension Interface (VSEI) provides C interfaces and hooks that enable developers to write external functionality that can be bolted on the side of Virtuoso and called as SQL functions.

## Table of Contents

16.1. Runtime Environments
16.2. CLR, .Net & ASPX Host
16.2.1. Environment Setup
16.2.2. Testing the Virtuoso .NET Runtime Environment
16.3. CLR & Mono
16.3.1. Environment Setup
16.3.2. Testing the Virtuoso Mono Runtime Environment
16.4. Embedded Java VM API
16.4.1. Correspondence Between Virtuoso & Java VM Threads
16.4.2. Virtuoso/PL <-> Java VM Type Mapping Schema
16.4.3. References to Java VM Class Instances in Virtuoso/PL
16.4.4. Specifying the Correct Java Type When Passing Values from Virtuoso/PL
16.4.5. Virtuoso Java PL API VSEs
16.4.6. Java Security
16.5. Virtuoso Server Extension Interface (VSEI) (C Interface)
16.5.1. Virtuoso Server Extension Interface (VSEI)
16.5.2. SQL Run Time Objects
16.5.3. Memory Management Rules
16.5.4. Server Main Function
16.5.5. Compiling & Linking
16.5.6. Functions by Category
16.5.7. VSEI Definition
16.5.8. SQL Exceptions
16.5.9. Executing SQL
16.5.10. Adding New Languages And Encodings Into Virtuoso
16.6. VSEI Plugins

Previous XSQL | Chapter Contents | Next Runtime Environments