Virtuoso Universal Server

Virtuoso is a cross-platform Universal Server delivering a single server solutions for integration relational data, web services xml and web technologies. Virtuoso offers an extensive array of components for developing, integrating and deploying next generation services on top of existing IS infrastructure.

Virtuoso’s philosophy is to connect to existing database and applications infrastructure and to present this through a uniform SQL, web and web services interface. Virtuoso is a versatile, standards-based connector between heterogeneous clients and servers with powerful local SQL and XML processing and storage capabilities. These make it an ideal vector for the integration of relational, XML, web services and grid computing technologies.

Architectural Overview

Virtuoso is built around a relational database core with a flexible stored procedure language. This language has XML as a native data type and offers XSLT, XPATH, XQuery, XML Schema validation alongside other XML functions as built-in capabilities. The Virtuoso/PL language features the SQL 2K object extensions and allows implementations of classes to be in Java or any .Net bound language, as well as SQL itself. These runtimes are hosted in-process for best performance and smooth integration.

The Virtuoso SQL engine accesses locally stored data as well as data stored in tables linked from heterogeneous remote databases. The optimizer will push operations as close to the data as possible and will take network latencies into account when deciding join orders etc. For the SQL client or stored procedure, the location and type of database server is effectively transparent.

Virtuoso can listen for HTTP requests and route them to hosted logic, its own VSPX dynamic pages system, its database hosted WebDAV repository, or its suite of web services protocol implementations. After passing through WS Security/Trust/Routing/Referral, the request comes to a stored procedure. This can further invoke Java, .NET or stored procedures in remote databases or perform the task natively.

Virtuoso supports the SQLX XML extensions and a mapping schema system, which translates relational data into XML hierarchies and allows translating XPATH/XQuery queries into SQL. When XML data is stored inside Virtuoso, it is indexed in a full text index preserving the XML structure for best XPATH retrieval.

Additionally, Virtuoso PL has an extensive library of Internet protocol clients and servers, for example POP3, FTP, NNTP, LDAP client, SMTP client.

Virtuoso