OpenLink Virtuoso™
Next Generation
Virtual Database Engine

Design Goals

Architecture


Virtuoso Components
Data Access Drivers
Security Manager
Query Manager
Metadata Manager
Transaction Manager
Concurrency Manager
Local I/O Manager
External Data I/O Manager
Data Replication Manager
Virtuoso Conductor

Implementation Issues Checklist


Feature & Benefits Analysis
(Virtual Database Functionality)


 

 

Product Packaging
OpenLink Virtuoso™ Lite Edition
OpenLink Virtuoso™ Workgroup Edition
OpenLink Virtuoso™ Enterprise Edition

Galvanizing Your Enterprise
with OpenLink Virtuoso™


Empowering Knowledge Workers

Infrastructure Challenges
Critical Success Factors
Technology Challenges
Technology Solution
Solution Implementation

Improving Customer & Prospect
Interaction via Your Corporate Web Site

Infrastructure Challenges
Critical Success Factors
Technology Challenges
Technology Solution
Solution Implementation

 

OpenLink Virtuoso™ - Next Generation Virtual Database Engine

Virtuoso is a revolutionary, next generation, high-performance virtual database engine for the Distributed Computing Age. It is an essential universal data access middleware technology set to accelerate our advancement towards the emerging Information Age.

Virtuoso provides transparent access to your existing data sources, which are logical references to databases from different database vendors, exposed by data access drivers also provided by different vendors.

Through a single connection, Virtuoso will simultaneously connect your ODBC, JDBC, UDBC, OLE-DB client applications and services to data within Oracle, Microsoft SQL Server, DB/2, Informix, Progress, CA-Ingres, Sybase, PostgresSQL, Solid, Velocis and other ODBC compliant database engines.

Virtuoso provides the end-user or applications developer with a one application or development environment to many database engines relationship abstracting either party from the complexities of heterogeneous data access.

Virtuoso allows end-users and application developers to retain a single data source or database focus, at the same time exposing either party to the benefits of heterogeneous data access, without introducing proportional increases in complexity.

Virtuoso is a type 10 VDB Engine, exposing its services via standards based data access interfaces such as ODBC, JDBC, UDBC, and OLE-DB and performing external Data I/O occurs via ODBC, UDBC, or Native data access interfaces.

Design Goals

Virtuoso has been developed with the following goals in mind:

  1. Operating System Independence – support for all main stream operating systems
  2. Small Memory Footprint – no more than 2MB of memory for basic operations
  3. Small Binary Distribution – maximum of 10MB of disk space for base product installation
  4. High-Performance – deliver performance levels required by enterprise-wide solutions
  5. Standards Based Data I/O – use standards such as ODBC from Microsoft and UDBC from OpenLink Software for low-level data access
  6. Standards Based Interfaces to Services – expose Virtual Database functionality via ODBC, UDBC, JDBC, and OLE-DB data access drivers
  7. Web Based Configuration & Management – a Web Browser as the standard administration and configuration interface.

 

Architecture

Virtuoso’s VDB type 10 architecture is depicted below.

Figure 13 - OpenLink Virtuoso™ VDB Architecture

Note: support for JDBC and OLE-DB based external data I/O is still being developed.

TOP

Virtuoso Components

Data Access Drivers

ODBC, JDBC, UDBC, and OLE-DB Drivers for Virtuoso are an integral part of the OpenLink Virtuoso™ product set. Client applications and services consume the virtual database services provided by Virtuoso using one or more of these drivers.

The features of these drivers are listed below:

  • Blistering Performance
  • ODBC Drivers are ODBC v2.5 compliant
  • ODBC Drivers implement driver based Scrollable Cursors
  • Drivers for JDBC are JDBC v1.02, v1.1, and v2.0 compliant
  • Drivers for JDBC implement driver based Scrollable Cursors
  • OLE-DB Data Providers are OLE-DB 2.0 compliant.

Security Manager

Virtuoso’s security features are listed below:

  • User Login and Password Verification
  • Role Definition and Privilege Control
  • Table and Column Level Privilege Control
  • Logical "Rules Based" Security - enabling security to be devised around custom rules that derive security conditions from a combination of user, client applications, client operating system, and network address parameters, if required
  • Data Encryption – data transmission between Virtuoso and its clients can be secured via encryption

Query Manager

Virtuoso’s query manager features are as follows:

  • Supports ANSI SQL 92
  • Parallel Query processing – enabling parallel execution plan assembly, query execution, and query fulfillment.
  • Asynchronous Operation – all activities occur asynchronously except for transaction commits and rollbacks which occur synchronously.
  • Distributed Join Optimizer - enabling high-performance heterogeneous joins across disparate database engines.
  • Scrollable Cursor Engine - facilitates scrollable cursor support across heterogeneous database engines. This mechanism allows the manipulation of ResultSet subsets call RowSets that span multiple data sources and database engines. This sophisticated featured reduces record fetch overhead by migrating chunks of data in parallel from external data sources into Virtuoso and then out again to client applications and services. Virtuoso supports Static, Keyset, Mixed, and Dynamic Cursors.
  • Heterogeneous VIEWS support - enabling the development of logical data snapshots that transcend disparate database engines. These VIEWS aren’t updateable
  • Generic Stored Procedure Language – enables the development of stored procedures that allow application logic to be stored and implemented at the VDB level, these stored procedures can reference tables hosted in disparate database engines. Virtuoso Stored Procedures are sensitive to metadata changes that occur within externally linked tables.

TOP

Metadata Manager

The Virtuoso Metadata Manger acts as the repository of all Virtuoso’s database objects, this includes Metadata from external tables linked into Virtuoso, Native Tables, Stored Procedures, Views, Object Privileges, Indexes, Referential Integrity constraints, and Database Statistics.

The Metadata Manager does not affect any of the external tables linked into Virtuoso. Thus, an external object dropped by the Metadata Manager simply equates to a reference drop within Virtuoso as opposed to an actual object drop within an external database linked into Virtuoso.

Transaction Manager

The Virtuoso transaction manager possesses the following capabilities:

  • Commits & Rollbacks – Transactions are either fully completed or not at all, when dealing with externally linked tables this behavior is preserved, but not to the point of a full 2-phase commit, this functionality will be available in a subsequent product release
  • Supports read-only transactions, which provide no lock overhead and add flexibility to the VDB transaction model.
  • Before & After Image Transaction Logging – Virtuoso maintains database state logs before and after transactions. Thus, in time of failure, it is possible to Roll the database back to a prior state preceding VDB server initialization. Virtuoso also allows you to roll forward your database by committing all uncommitted transactions held in After Image transaction logs when recovering from system failure.
  • Supports Dirty Read, Read Committed, Repeatable Read, and Serializable transaction isolation levels

Concurrency Manager

The concurrency manager ensures that Virtuoso is capable of supporting multiple concurrent database sessions that execute data INSERTS, UPDATES and DELETIONS access without compromising data integrity or implicitly increasing application or service latency.

The Virtuoso Concurrency Manager supports Optimistic and Pessimistic (Locking) concurrency.

Database Rows, Pages, or Tables aren’t locked when Optimistic concurrency is in use, rather UPDATES or DELETIONS are simply rejected on the bases of other user process modifying the same record(s) that you are about to UPDATE or DELETE. Optimistic concurrency presumes low record UPDATE and DELETE frequency.

Pessimistic concurrency on the other hand presumes a high level frequency of record UPDATE and DELETION activity. The Virtuoso concurrency manager implements Page Level locking, and these locks have configurable timeout settings, which reduce the probability of record deadlock which inadvertently introduce application latency.

Row level locking is currently in development.

TOP

Local I/O Manager

Virtuoso posses full native database engine capabilities, the local I/O Manager is responsible for writing data to local storage when Virtuoso is being used as an Embedded Database Engine. This feature of Virtuoso enables it to serve Application Server solutions as an embedded database engine outside the corporate firewall, providing these solutions with local storage at the same time reducing workload on the corporate databases behind the company firewall.

External Data I/O Manager

Virtuoso reads and writes data to external database engines using ODBC or UDBC as its external data I/O interface (supported for JDBC and OLE-DB based I/O is also planned).

ODBC support enables Virtuoso to link and manipulate data held in ODBC compliant database engines, implying any database with an ODBC driver is accessible from Virtuoso.

UDBC support enables Virtuoso to be hosted on operating system where ODBC is not’t supported, it also enables Virtuoso to communicate with external databases using their native interfaces.

Data Replication Manager

The Virtuoso Replication Manager enables the automatic synchronization of data across Virtuoso Servers within your computing infrastructure. The replication process is bi-directional and is capable of replicating data across externally linked tables.

Synchronization of replicated databases is automatic should one of the database within a replica group encounter system failure.

Virtuoso Conductor

This is a HTML based Administrative console that provides a graphical user interface for attaching and detaching external tables associated with your Virtuoso database engine. It also includes configuration wizards and a query editor that enables intuitive configuration and testing of the ODBC and UDBC data sources names that you plan to use with Virtuoso.

TOP

Implementation Issues Checklist

Key

Implemented – I Partially Implemented - PI Planned - P

VDB Implementation Issue

Status

ODBC, UDBC, JDBC, OLE-DB based interface to VDB

I

ODBC & UDBC based external data I/O

I

JDBC based external data I/O

P

OLE-DB based external data I/O

P

SQL Support

I

OQL Support

P

Query Processor

I

Heterogeneous Scrollable Cursor Support

I

Standard Data Types Support

I

VIEW Support

I

Stored Procedure Support

I

Concurrency Control

I

Transaction Isolation

I

Distributed Transaction Support

PI

User Definable Type Support

I

Federated Database Support

I

Distributed Database Support

I

Security

I

Replication Manager

PI

TOP

Feature & Benefits Analysis (Virtual Database Functionality)

Feature Benefit
Transparent concurrent access to heterogeneous data sources and backend database engines. Cost effective mechanism for harnessing information from your existing databases and data sources in real-time.
ODBC, JDBC, UDBC, and OLE-DB Driver availability. Provides exposure of virtual database services to the plethora of commercial ODBC, JDBC, UDBC, and OLE-DB based solutions currently in existence.
ODBC, UDBC, or Native external Data I/O. Freedom to Mix & Match the best combination of database engines and data access types for your organization
Cross platform support (95/98/NT, Linux, Solaris, HP-UX, AIX, Digital UNIX, IRIX, SCO Unix, SCO Unixware, DG_UX, Dynix/PTX, BSDI, with VMS, MacOS, OS2, OS400, OS390 planned). Freedom to Mix & Match the best combination of Application and Database server operating systems for your organization.
Multiple database and ODBC data source name support:

Virtuoso Native DBMS Server, Oracle(6/7/8), MS SQL Server(4/6.x/7.x), Informix(4/5/6/7), Progress (6/7/8/9), CA-Ingres (6.4), CA-OpenIngres (1.1/2.x), DB2 (2.12 & 5.x), Sybase SQL Server (4.x/10.x/11.x), PostgresSQL, Solid, Velocis, and third party ODBC Drivers.

Sustains or bolsters database independence within your organization.

This also ensures that new database driven technologies are usable with your existing database engines and data sources, thereby preserving database investments made in prior years.

Multi Threaded Virtual Database Server. Parallel execution of data access instructions with minimal system overhead resulting in high-performance data throughput even when concurrent user counts are high.
Asynchronous Data I/O. All data I/O except transaction commits and rollbacks are Asynchronous. Thus, reducing the probability of data I/O blocks that increase VDB server latency.
Scrollable Cursors Support. Enables the use of High-Level data access interfaces such as RDO, ADO, OLE-DB, JDBC 2.0 against your existing databases and data sources.
Sophisticated Concurrency Control. Provides scalability to your VDB based solutions.

TOP

Stored Procedure Support. You can develop database independent stored procedures that can traverse all the databases in your organization using common stored procedure language.
Sophisticated rules based security. You can control user privileges, define roles, and generally tighten security by adopting a "Rule Book" approach. This allows your security infrastructure be both logical and physical in nature, and driven by rules that you define.
Centralized or Decentralized infrastructure management via Web Browser You can manage one or more geographically dispersed Virtuoso Servers from a single location or multiple locations through your Web Browser.

Zero Admin solution.

Bi-Directional Heterogeneous Replication Allows numerous Virtuoso and non-Virtuoso database tables to be kept in sync throughout your distributed computing infrastructure without user intervention.

Reduces the cost typically associated with data transformation and migration. It also enables the development of sophisticated data caching for store-and-forward solutions.

Full Relational and Object-Relational Database functionality Flexibility to build database solutions using relational or object-relational models.

Future proofs your applications development at the data access level.

Small footprint Can operate within 2MB of RAM and consumes no more than 10MB of disk space for entire product installation.

This makes Virtuoso embeddable with solutions that are hosted on devices that have minimal memory and persistent storage capacity.

TOP

Product Packaging

Virtuoso is available in 3 distinct product formats:

  • OpenLink Virtuoso™ Lite Edition
  • OpenLink Virtuoso™ Workgroup Edition
  • OpenLink Virtuoso™ Enterprise Edition

 

OpenLink Virtuoso™ Lite Edition

This is an entry-level product comprising the following components:

  • HTML based Interactive ODBC compliant Query Console
  • Virtual Database Server
  • Virtuoso Conductor – HTML based remote database management console
  • OpenLink Virtuoso™ Single Tier ODBC & UDBC Drivers
  • OpenLink Virtuoso™ Type 4 Drivers for JDBC.
  • Lightweight Thread Manager.

OpenLink Virtuoso™ Lite presumes the existence of ODBC or UDBC drivers within your existing IS infrastructure. It only includes ODBC and JDBC drivers for accessing the Virtual Database Server. It is important to note that prior to using Virtuoso, you must install and configure database specific network communications software and ODBC drivers provided by each of the database vendors whose products you will be exposing to Virtuoso.

Examples of such database vendor provided products include: Oracle SQL*Net, Oracle Net8, Informix I-Connect, Ingres NET, Microsoft NETLIB, Sybase Open Client, Progress Client Networking, DB2 client enablers etc. Each of these products typically includes a free ODBC Driver.

This product set supports the following operating systems:

Windows 95/98/NT, Linux, Solaris (Sparc & x86), AIX, HP-UX, IRIX, Dynix/PTX, DG-UX, Digital UNIX. MacOS, OS/2, and VMS ports are planned.

OpenLink Virtuoso™ Workgroup Edition

This is a departmental or small Internet/Intranet/Extranet server solution comprising the following components:

  • HTML based Interactive ODBC compliant Query Console
  • Virtual Database Server
  • Virtuoso Conductor – HTML based remote database management console
  • OpenLink Virtuoso™ Single Tier ODBC & UDBC Drivers
  • OpenLink Virtuoso™ Type 1, 2, and 4 Drivers for JDBC.
  • OpenLink Data Access Driver Suite (Lite Edition) supporting: Oracle, Microsoft SQL Server, Informix, Sybase, CA-Ingres, Progress, DB2, PostgresSQL, Velocis, and Solid
  • Lightweight Thread Manager.

OpenLink Virtuoso™ Workgroup Edition includes OpenLink Software’s high-performance Single Tier ODBC & JDBC Drivers (a.k.a. OpenLink Lite). These drivers enable you to expose your existing database engines to Virtuoso right out of the box. It is important to note that prior to using Virtuoso, you must install and configure database specific network communications software and ODBC drivers provided by each of the database vendors whose products you will be exposing to Virtuoso.

Examples of such database vendor provided products include: Oracle SQL*Net, Oracle Net8, Informix I-Connect, Ingres NET, Microsoft NETLIB, Sybase Open Client, Progress Client Networking, DB2 client enablers etc. Each of these products typically includes a free ODBC Driver.

This product set supports the following operating systems:

Windows NT, Linux, Solaris (Sparc & x86), AIX, HP-UX, IRIX, Dynix/PTX, DG-UX, Digital UNIX. MacOS, OS/2, and VMS ports are planned.

TOP

OpenLink Virtuoso™ Enterprise Edition


This is an enterprise wide or large Internet/Intranet/Extranet server solution comprising the following components:

  • HTML based Interactive ODBC compliant Query Console
  • Virtual Database Server – Implemented as an OpenLink Request Broker service
  • Virtuoso Conductor – HTML based remote database management console
  • OpenLink Virtuoso™ Multi-Tier ODBC & UDBC Drivers
  • OpenLink Virtuoso™ Type 1,2,3 & 4 Drivers for JDBC
  • OpenLink Data Access Drivers Suite (Multi-Tier Edition) supporting: Oracle, Microsoft SQL Server, Informix, Sybase, CA-Ingres, Progress, DB2, PostgresSQL, Velocis, Solid, and 3rd Party ODBC Drivers
  • Heavyweight POSIX or Native Thread Manager.

OpenLink Virtuoso™ Enterprise Edition includes OpenLink Software’s high-performance Multi-Tier ODBC & JDBC Drivers. These drivers enable you to expose your existing database engines to Virtuoso right out of the box, without inherent dependencies on database vendor provided network software for remote database connections.

Examples of such database vendor provided products include: Oracle SQL*Net, Oracle Net8, Informix I-Connect, Ingres NET, Microsoft NETLIB, Sybase Open Client, Progress Client Networking, DB2 client enablers etc.

This product set supports the following operating systems:

Windows NT, Linux, Solaris (Sparc & x86), AIX, HP-UX, IRIX, Dynix/PTX, DG-UX, Digital UNIX. MacOS, OS/2, and VMS ports are planned.

Galvanizing Your Enterprise with OpenLink Virtuoso™

Virtuoso enables you to maximize the benefits of new distributed computing technologies and paradigms with minimum disruption, if any, to your existing computing infrastructure. The situation examples in the sections that follow demonstrate how Virtuoso fulfills this value proposition.

TOP

Empowering Knowledge Workers

Your organization seeks to empower its knowledge workers by providing transparent access to corporate information so that they can make timely and accurate decisions.

Infrastructure Challenges:

  • Your organizations core business solutions are all driven by database engines provided by different database vendors
  • The disparate application databases are hosted on a range of different database server machines running different operating systems

Critical Success Factors:

  • To maximize the uptake of this initiative, the knowledge workers must be abstracted from the intricacies of heterogeneous data access.
  • Information must be available in real-time
  • Information must be accurate
  • Knowledge workers must be able to manipulate information and make decisions using their existing "off the shelf" desktop productivity tools.

Technology Challenges:

  • The data residing in disparate data sources needs to be pulled together in real time to produce information
  • High throughput transmission of information culled from disparate application databases to desktop productivity tools being used by the knowledge workers.

Technology Solution:

Implement a 3-tier distributed computing architecture utilizing ODBC, JDBC, or OLE-DB for data access and OpenLink Virtuoso™ as your "Data Junction Box".

TOP

Solution Implementation:

The infrastructure required in order to fulfill the objectives set would be assembled as follows:

  • Creation of "Data Junction Box" using a OpenLink Virtuoso™, that holds references to tables hosted by your application database engines
  • Hosting one or more of your OpenLink Virtuoso™ servers on one or more designated server machines. These machines could be dedicated application servers or one of the many database servers currently in use
  • Creation of ODBC or UDBC data source names on the same machine as the OpenLink Virtuoso™ server. These data sources names will connect OpenLink Virtuoso™ to the different application databases within your computing infrastructure
  • Creation of ODBC, JDBC, or OLE-DB data source names that reside on the desktop machines used by your knowledge workers. The data source names created will be used to connect ODBC, JDBC, and OLE-DB based desktop productivity tools to your OpenLink Virtuoso™ servers.

Once the infrastructure has been assembled in the manner described in the previous section, the stage is set for your knowledge workers to commence exploiting the benefits of transparent access to information culled from heterogeneous data sources. The entire process occurs via the use of their chosen "off the shelf" desktop productivity tools.

The entire solution, its infrastructure, and constituent components are depicted below.

 

Figure 14 - Virtuoso Empowering Knowledge Workers

Note: Databases depicted could be replaced with any ODBC compatible database engine.

TOP

Improving Customer & Prospect Interaction via Your Corporate Web Site

Your organization seeks to increase customer and prospect intimacy by implementing a database driven web site. The site offers customers and prospects online support, quotations, order processing, and product information.

Infrastructure Challenges:

  • Your organizations core business solutions are all driven by database engines provided by different database vendors
  • The disparate application databases are hosted on a range of different database server machines running different operating systems
  • Security implications of corporate database exposure to the Internet
  • Availability of "Web to Database" middleware for your Web Server.

Critical Success Factors:

  • Data transmission throughput between internal databases and web pages
  • Scalability of Web Servers, underlying "Web to Database" middleware, and participating database engines
  • Information accuracy
  • Data updates by site visitors must be routed to the appropriate internal database(s).

Technology Challenges:

  • The data residing in disparate data sources needs to be pulled together in real time to produce information
  • Delivery of high-performance information access to numerous concurrent site visitors
  • Availability of operating system independent "Web to Database" middleware, providing you with the freedom to chose the most suitable operating system for the job at hand.

Technology Solution:

Implement a 3-tier distributed computing architecture utilizing ODBC, JDBC, or OLE-DB for data access and OpenLink Virtuoso™ as your "Data Junction Box".

TOP

Solution Implementation:

The infrastructure required in order to fulfill the objectives set would be assembled as follows:

  • Creation of "Data Junction Box" using a OpenLink Virtuoso™, that holds references to tables hosted by your application database engines
  • Hosting one or more of your OpenLink Virtuoso™ servers on one or more designated server machines. These machines could be dedicated application servers, the same machine hosting your Web Server, or one of the many database servers residing behind your corporate firewall
  • Creation of ODBC or UDBC data source names on the same machine as the OpenLink Virtuoso™ server. These data sources names should point to the different application databases within your computing infrastructure.
  • "Web to Database" middleware and Application Server Development kit selection.
  • Creation of ODBC, JDBC, or OLE-DB data source names on your Web Server for use by your "Web to Database" middleware for connectivity to OpenLink Virtuoso™
  • Use the OpenLink Virtuoso™ Stored Procedure language to implement the data access and manipulation aspects of your application logic.

Once the infrastructure has been assembled in the manner described above, the stage is set for you to develop and implement your database driven web. The application development process retains a single as opposed to multiple database focus due to the sophisticated VDB Engine functionality provided by OpenLink Virtuoso™ without compromises in performance, security, or scalability.

The entire solution, its infrastructure, and constituent components are depicted in the illustration that follows.

Figure 15 - Internet Application Server Solution

TOP

NEXT | PREVIOUS | PDF VERSION