Degrees of freedom
Virtuoso Universal Server 3.0 expands the horizons of data access, integration, and delivery
Follow @infoworldOpenLink’s newest iteration of the Virtuoso database engine is geared to take the wild innovation of its predecessor to new heights. Adding to Version 2.7’s support for XML, Web services, and Internet standards — a list longer than your arm (see our Test Center Analysis, "Across the universe") — the forthcoming Version 3.0 will also host ASP.Net pages and user-defined functions written in .Net languages on both Windows and Linux, more than proving it worth a look.
OpenLink CEO Kingsley Idehen, Virtuoso's mastermind, abides by two basic principles: No. 1, Data management is the foundation of IT; and No. 2, developers who build on that foundation need choices.
One dimension of choice is data flavor. To that end, Virtuoso's SQL core embraces XML, has a validating parser and XSLT (Extensible Stylesheet Language Transformation) processor embedded in it, can index and search within XML blobs, can express SQL queries as XML (optionally producing an XML Schema), and supports the still-evolving XQuery 1.0 standard.
Another dimension of choice is data access. In terms of data consumption, Virtuoso, which is rooted in OpenLink's suite of data-access drivers, can augment its own SQL tables and stored procedures by linking to foreign ones such as those from Oracle or Microsoft SQL Server. Its PL (procedure language) also includes primitives used to fetch data by way of HTTP Get, raw SOAP calls, or WSDL-described SOAP calls.
As a data provider, Virtuoso supports database-style clients with ODBC, JDBC, and OLE-DB drivers; SOAP clients by means of PL wrappers around local or remote procedures; and WebDAV (Web-based Distributed Authoring and Versioning) clients, including Windows Explorer and Office, by projecting file-system-like views of query results.
Yet another dimension of choice is platform — a vague term that encompasses OS, application server, and programming environment. Virtuoso has many of the OS bases covered: Microsoft Windows, Linux, Sun Solaris, AIX, Hewlett-Packard HP-UX, and Mac OS X. It runs as a self-contained application server, using PL code embedded in Virtuoso Server Pages to manipulate the SQL, XML, and DAV resources controlled by the engine.
Whereas Version 2.7 is equipped with the option to embed a PHP (Hypertext Preprocessor) run time and a Java run time — which can in turn host JSP (Java Server Pages) using, for example, Tomcat — Version 3.0 extends hosting support to .Net, using ASP.Net on Windows, and to Mono — the Ximian-led open-source .Net project — on Linux.
But there's more to this story than just JSP or ASP.Net support. User-defined functions written in Java or .Net languages are directly available to SQL statements and PL procedures. Java or .Net objects can be serialized, stored in the database, and invoked from the database. Creating this object/relational/XML hybrid in a single environment is an accomplishment; doing it for Java and multiple flavors of .Net is truly inspiring.
Working Web services







