Virtuoso Universal Server

Virtuoso Universal Server is a middleware and database engine that combines the functionality of a traditional Relational Database Management System (RDBMS), object-relational database (ORDBMS), virtual database , RDF , XML , free-text , web application server and file server functionality in a single system. Virtuoso is a “universal server”; it allows a single multithreaded server processthat implements multiple protocols. The open source edition of Virtuoso Universal Server is also known as OpenLink Virtuoso . The software has-been developed by OpenLink Software with Kingsley Uyi Idehen and Orri Erling as the chief software architects .

Database structure

Core database engine

Provides an extended object-relational model, which combines the flexibility of relational access with inheritance, typing, late binding, and identity-based access . Virtuoso Universal Server database includes physical file and in storage and operating systems that interact with the storage. There is one hand process, which has listeners on a specified port for HTTP , SOAP , and other protocols.

Architecture

Virtuoso is designed to take advantage of operating system threading support and multiple CPUs. It consists of a single process with an adjustable pool of threads shared between clients. Multiple threads can work on a single index tree with minimal interference with each other. One cache of database is shared among all the threads and old dirty pages.

The database has a complete checkpoint state and a delta of committed or uncommitted changes to this checkpointed state. This makes it possible to do a clean backup of the checkpoint state while transactions proceed on the commit state.

Transaction log file records all transactions since the last checkpoint. Transaction log files may be stored and archived for an indefinite time, providing a full, recoverable history of the database.

A single set of files is used for storing all tables. A separate set of files is used for all temporary data. The maximum size of a file set is 32 terabytes, for 4G × 8K pages.

Locking

Virtuoso provides dynamic locking, starting with row level locks and escalating to page level locks when a cursor holds a large percentage of a page’s rows or when it has a history of locking entire pages. Lock escalation only happens when no other transactions hold locks on the same page, hence it never deadlocks. Virtuoso SQL provides means for exclusive read and for transaction isolation settings.

Transactions

All four levels of isolation are supported: Dirty Read, Read Committed, Repeatable Read and Serializable. The level of isolation can be determined by operation within a single transaction. Virtuoso can also act as a resource manager and / or transaction coordinator under the Microsoft Distributed Transaction Coordinator ( MS DTC ) or the standard XA .

Data integrity

Virtuoso ORDBMS database supports entity integrity and referential integrity . Virtuoso ensures that relationships between records are validated by enforcing referential integrity . Integrity constraints include:

  • NOT NULL – Within the definition of a table, Virtuoso allows data to contain a NULL value. This NULL value is not really a value at all and is considered an absence of value. The constraint of NOT NULL forces to be given to a column.
  • Unique key – Uniqueness for a column or set of columns in which column or set of columns. A unique key may contain NULL values ​​since they are by definition a unique non-valued value.
  • Primary key – they are uniquely identified by a row in a table. They can consist of a single column or multiple columns. The primary key can not contain a NULL value.
  • CHECK Constraint – Virtuoso provides an integrated constraint that requires certain conditions to be met. If the checks are not satisfied then the transaction can not be completed.

Data dictionary

Virtuoso stores all the information about the user in the database in the system catalog tables designated by db.dba *.

Components and files

Components

Virtuoso is made up of a client and server components. These components typically communicate with a local or remote Virtuoso server, which include:

  • Virtuoso Drivers for ODBC , JDBC , ADO.NET, and OLE DB
  • Conductor, a web-based database administration user interface
  • ISQL (Interactive SQL) and ISQO Utilities
  • Documentation and Tutorials
  • Samples

Installations with two databases: a default and a demo database.

History

The Virtuoso project was born in 1998 from the OpenLink data access middleware and Kubl RDBMS.

Kubl RDBMS

The Kubl ORDBMS was one of a list of relational database systems with roots in Finland . This list also includes MySQL , InnoDB , and Solid RDBMS / Solid Technologies .

As is the case with the most technology products, key behind Behavior, OpenLink Virtuoso, InnoDB , and Solid share of the history of data protection. Heikki Tuuri (creator of InnoDB ), Ora Lassila (W3C and Nokia Research, technology-led and visionary in the areas RDF and Semantic Web in general Alongside Tim Berners-Lee ), and Orri Erling (Virtuoso Program Manager at OpenLink Software) All Worked together in a startup company called Entity Systems in Finlandwhere they were developing Common Lisp and Prolog development environments for the early generation of PC ‘s circa. 1986-1988.

Later, Orri Erling worked with VIA International , the developer of VIA / DRE in designing a LISP -based object-oriented data access layer at the DBMS product. The core development team of VIA, following the company’s demise in 1992, went on to found Solid Technologies under the direction of Artturi Tarjanne .

Heikki Tuuri Worked at Solid for a while before starting His Own database development project qui est devenu InnoDB (Acquired by Oracle in 2005).

Orri Erling started his own DBMS development work in 1994, which was to become Kubl . Development of Kubl was first financed by Infosto Group , publisher of Finland’s largest free-market , as part of their in-house software development project for their on-line services . The on-line version of Kelvin Pörssi was one of the most popular web sites with 500,000 registered users. The Kubl database was prominently displayed in a “Powered by Kubl” logo on the search results.

A free trial version of Kubl was made available for download on November 7, 1996. [2]

Kubl was marketed as a high performance lightweight database for embedded use; Top Per Second Tests. [3] [4] Pricing of the product is especially favorable for Linux users with a Linux license priced at $ 199. [5]

Kubl became the cornerstone of OpenLink Virtuoso, after the technology pathways of Kingsley Uyi Idehen and Orri Erling in 1998, leading to the acquisition of Kubl by OpenLink Software .

Functionality realms

Virtuoso’s functionality covers a wide range of traditionally distinct realms in a single product offering. These functional realms include:

  • Object-relational database engine for ( SQL , XML , RDF and plain text )
  • Web services computing platform
  • Web application server
  • Web content management system (WCMS)
  • NNTP -based discussion management
  • Replication of momogeneous and heterogeneous data
  • Mail Storage Sink and ( POP3 ) proxy service
  • DataPortability

Protocols implemented

Virtuoso supports a broad range of standard industry Web & Internet protocols that includes:

HTTP , WebDAV , CalDAV , CardDAV , SOAP , UDDI , WSDL , WS-Policy , WS-Security , WS-ReliableMessaging , WS-Routing , WS-Referral , WS-Attachment , WS-BPEL , SyncML , GData , SPARQL , SPARUL , NNTP

Support API

For the database application developer and systems integrator, which includes: ODBC , JDBC , OLE DB , ADO.NET , ADO.NET Entity Framework , XMLA .

Content syndication and interchange support

For the Web application developer and content syndicate (s) publishers, and consumers, Virtuoso supports such as: Atom , RSS 2.0 , RSS 1.0 , OPML , XBEL , FOAF , SIOC .

Query language support

SQL , SPARQL (with many extensions), XQuery (implementation of Core functions library is seriously incomplete), XPath (1.0 only), XSLT (1.0 only)

Schema definition language support

SQL ‘s Data Definition Language , XML Schema

Usage scenarios

Virtuoso is a solution for the following system integration challenges:

  • Enterprise Information Integration (EII)
  • Independent Web Application Deployment Programming Language
  • Monolithic application decomposition that lifts the principles of service-oriented architecture
  • Web service based enterprise application integration via a significant amount of WS- * protocols support
  • Business process management via BPEL
  • Semantic Web Data Spaces Generation
  • Deployment platform for injecting RDF-based Linked Data into the Semantic Data Web

Related technology areas

Data management

  • Relational database management system
  • List of relational database management systems
  • Comparison of object-relational database management systems
  • Comparison of Relational Database Management Systems

Enterprise application, information, and data integration

  • Web 2.0
  • Enterprise service bus
  • Service-oriented architecture
  • Enterprise application integration
  • Data integration
  • Open Semantic Framework
  • Web service
  • Semantic Web
  • Business Integration Severs Comparison Matrix

Related products and tools

In addition to Virtuoso, OpenLink Software generates several related tools and applications:

  • OpenLink Data Spaces – a Virtuoso-based platform for cost-effective creation and management of the Semantic Web / Linked Data Web presence. It provides a data junction box for Integrating data across third party Social network services , Blog , File sharing , Shared & Social bookmarking , wiki , Email , Photo Sharing, RSS 2.0 , Atom , and RSS 1.1 Content Aggregation Service. In addition, to its third party integration functionality, it also includes its own rich collection of Linked Data compliant distributed collaborative applications, across each of the above mentioned Web application realms.
  • Universal Data Access Drivers – High-performance data access drivers for ODBC , JDBC , ADO.NET , and OLE DB .

Platforms

Virtuoso is supported on a number of 32- and 64-bit platforms including cross-platform Windows , UNIX ( HP , AIX , Sun , DEC, BSD, SCO ), Linux ( Red Hat , SUSE ) and macOS .

Licensing

In April 2006, an open source version of the GNU General Public License version 2. The software is now available in Commercial and Open Source license variants. [6]

References

  1. Jump up^ OpenLink Software. “Virtuoso Open-Source License Terms” . Retrieved 2011-03-30 .
  2. Jump up^ “Kubl RDBMS Free Trial Downloading Now” . November 7, 1996 . Retrieved 2010-02-03 . “Kubl RDBMS Free Trial Downloading Now”. Newsgroup :  comp.os.linux.misc . 7 November 1996. Usenet: pgpmoose.199611072316.10073@liw.clinet.fi .
  3. Jump up^ [1]
  4. Jump up^ “DBMS Benchmark code? Who’s fastest?” . April 11, 1996 . Retrieved 2010-02-03 .
  5. Jump up^ “Kubl RDBMS for Linux” . November 12, 1997 . Retrieved 2010-02-03 .
  6. Jump up^ OpenLink Software (11 April 2006). “Open Source Edition of OpenLink Virtuoso, Unleashed!” . Retrieved 2010-02-03 .