When doing the research for DATAVERSITY’s™ series on the NoSQL movement, one of the many products that stood out, spanning most of the sometimes overlapping sub-categories underneath that nouveau database banner. Virtuoso Universal Server, developed by OpenLink Software, seems almost like a Swiss Army Knife of database platforms, encompassing a wide array of persistence formats from the worlds of relational and NoSQL databases.
The cross-platform application is available on 32 and 64-bit versions of Windows, Mac OS X, as well as a wide variety of Linux and UNIX distributions. OpenLink also offers both commercial and open source licenses for the product; the latter being especially useful for companies who want to test drive the platform. The open source version of the software is branded as “OpenLink Virtuoso.”
OpenLink feels Virtuoso is an appropriate choice for enterprises and companies in this Agile age of data. Its support for a robust variety of database formats and operating systems has the potential to provide the flexibility needed in today’s competitive marketplace.
A Look at Virtuoso Universal Server’s Hybrid Architecture
According to OpenLink, the “unique hybrid server architecture of Virtuoso enables it to offer traditionally distinct server functionality within a single product offering.” The architecture allows for data persistence in the following formats: Relational, RDF, XML, Text (with full text indexing), Documents, and Linked Data. It also can function as a web application server as well as a host for data-driven web services.
Through an ODBC or JDBC layer, Virtuoso connects to most of the popular commercial relational database platforms, including Oracle, SQL Server, Progress, DB2, Sybase, CA-Ingres, Informix, and more. It provides support for two-way connectivity using the SOAP and REST protocols, allowing access to web-based data sources, like those offered by Google and Amazon, or even straight HTML.
It also supports the management of blogs, wikis, and feed subscriptions like RSS. Virtuoso’s internal architecture allows for a virtual structure suitable for data integration middleware scenarios, especially when connecting to remote databases, in addition to the embedded unified storage engine that supports SQL, RDF, XML, and full text formats. This internal engine features a host of standard SQL capabilities, including SQL and SQLX query language support, user defined types, stored procedures, views, triggers, geospatial functions, and row level security.
Options for Data Management, Data Integration, and Query Support
Virtuoso comes with a web-based application called Virtuoso Conductor that provides an interface for the database management functionality typically performed by a DBA. This handles the administration of both internal databases and those accessed through the platform’s connection layer. Role security is also managed from this interface.
Data Integration scenarios are facilitated through the use of the Virtual Database Engine middleware for remote databases, which is combined with internal databases from the unified storage engine. A combination of SQL and SPARQL views using federated joins are then leveraged, providing data access to what appears to be a singular data source. A built-in query optimizer takes into account whether the data is local or remote before execution.
Virtuoso supports the SQL-92 language standard and offers compatibility with many of the SQL 200n constructs, like user defined data types with methods and inheritance, user defined aggregates with a host of statistical functions, SQLX queries that generate result sets as XML, and cube grouping suitable for OLAP analysis. Advanced usage includes the support of imported Java or .NET classes and functions (C++ and C functions as well) which can be persisted into the internal Virtuoso tables.
Virtuoso’s Support for a Variety of Client Platforms
In addition to the previously mentioned support for the ODBC and JDBC connection protocols, Virtuoso provides a host of options for connecting to the server through a variety of client APIs. Microsoft’s ADO.NET (including the Entity Framework object-relational mapping layer) and OLE DB frameworks are supported. Mono, the open source equivalent of .NET. Support for Microsoft SQL Server Integration Services (SSIS) provides another option suitable for data integration applications.
In addition, support for XMLA (XML for analysis) provides more OLAP functionality, especially when combined with the SQL query support for cube grouping. A wide array of functionality can be accessed through HTTP clients, including virtualized databases in XML (using XPath and XQuery) and RDF Data formats (using the SPARQL language).
Virtuoso as a Web Application Server
Virtuoso is able to function as a web application server, leveraging a messaging architecture using the HTTP protocol. It works equally well with REST applications, in addition to those following a SOA architecture using the SOAP messaging format. The product also includes a workbench app serving the development and deployment of HTTP-based applications.
For REST-based architectures, Virtuoso allows many options for client language choice, including their own stored procedure language, SQL, Java, the full suite of .NET languages (C#, Visual C++, Visual Basic), as well as a set of newer languages, like Python, Ruby, PHP, and Perl.
Virtuoso in a Service Oriented Architecture Scenario
Virtuoso also functions effectively in a service oriented architecture scenario. The internal stored procedure language allows each function to serve as an endpoint for a web service with automatically generated WSDL. Third party web services are also easily integrated into the overall application architecture.
User Defined Types are implemented using Virtuoso’s built-in run-time hosting feature, with support for the full array of client languages (.NET, PHP, Java, Python, Ruby, etc.) or by using custom server extensions.
No matter if using REST architecture or SOA, Virtuoso includes support for building hypermedia resources powered by data. These include any database accessible through an ODBC or JDBC connection, content management systems that output HTML, XML, RDF, as well as other formats, and a variety of desktop application formats, such as iCal, vCard, and multimedia.
Virtuoso as a Platform Agnostic Linked Data Server
Another option for leveraging the HTTP messaging protocol, Virtuoso is able to function as a Linked Data Server, allowing data access to be abstracted from a traditional REST scenario into an abstract collection of data resources identified by a URI. According to OpenLink Software, this new method of data access “delivers a new and significantly improved mechanism for conceptual model oriented data access middleware without the operating system and runtime specificity of alternatives such as ADO.NET’s entity frameworks.”
Virtuoso Universal Server’s feature set provides enough flexibility to allow enterprise data architects to design, develop, and deploy applications to take advantage of Linked Data Server architecture. The software supports the creation of Entity-Attribute-Value model views, in addition to HTTP-based Data Object Identifiers for data contained within content management systems, hypermedia sources, and finally, data accessed through SOAP-based web services.
Licensing and Pricing Options from OpenLink Software
As mentioned earlier, OpenLink Software provides commercial and open source licenses for Virtuoso. The functionality between the two versions is nearly identical except for the open source version’s lack of support for geospatial functions, third-party database virtualization, server clustering, and data replication.
For users curious in trying out the extra enterprise-level functionality of the commercial version before committing to a purchase, OpenLink offers a 15-day evaluation license called the Pilot Program. A Single Server license exists with two pricing levels differentiated by the number of sessions. A Cloud-based license is also available using Amazon’s EC2 service.
A Cluster License is available for larger enterprise deployments. OpenLink also offers a variety of service, support, and training options for companies looking to get the most out of their investment in Virtuoso.
Virtuoso Universal Server truly ranks as a “Swiss Army Knife” of enterprise databases. Its support for a wide range of database formats and architectural styles make it a unique option in the industry, worthy of further exploration for interested organizations.