%META:TOPICPARENT{name="ProductLicensingGuide"}%
---+ Virtuoso Licensing Terminology
OpenLink Virtuoso Universal Server requires a license based on a number of standard pricing units and deployment models. This page introduces those pricing units and models and clarifies terminology used to express them.
%TOC%
---++ Application Server (or simply, Server)
An *Application Server* (or *Server*) is a host which serves multiple concurrent users, and typically runs a [[#Operating%20System%20Types][Server-class Operating System]]. Services provided may be web-based (e.g., PHP, Python, Perl, ASP, JSP) or other applications (e.g., Crystal Reports Enterprise, SQL Server Report Services), or entire operating system environments (e.g., Windows Terminal Server and Remote Desktop clients). Database sessions are "condensed," meaning the Application Server opens all connections on behalf of individual Workstations, through data access drivers or providers found on the Application Server machine. [[#Workstation][Workstations]] in this environment do not typically require data access drivers or providers, as the Workstation tools open no direct database connections.
---++ Client Types or Data Access Mechanisms
*Client types* are the individual APIs, sometimes called *Data Access Mechanisms,* that client applications use to connect to Virtuoso. Some applications use the ODBC API; others use the JDBC, OLE DB, ADO.NET, or XMLA APIs or some combination of these.
Licensees must take account of all applications in the environment that use OpenLink products for data access purposes. Then, users need to tally the data access mechanisms used by these applications. Sales will adjust the license price upward by a set percentage, if two or more "client types" or data access mechanisms are required.
---++ Concurrent Connections
*Concurrent connections* are the maximum number of distinct HTTP and SQL threads opened by applications and other technologies that interface with Virtuoso. Concurrent connections may also be referred to as database sessions.
---++ Database Sessions
This term is synonymous with concurrent connections. See above.
---++ HTTP Threads
Virtuoso *HTTP threads* are initiated when connections are established to the Virtuoso HTTP ServerPort. The HTTP ServerPort is a Virtuoso configurable in the main .ini file. An associated parameter allows administrators to set aside a pool of threads that are reserved for HTTP connectivity. (These threads consume license points on Virtuoso server startup.) Threads associated with HTTP ServerPort are consumed by Web Services, RDF, SOA, BPEL, and other HTTP-based protocols and applications.
---++ OpenLink Client Hosts
OpenLink Client Hosts are the machines where the data consuming applications run, where the OpenLink Client Components are installed. These are typically (but not always) different from the machines where the databases or other data sources run.
* In a Workstation environment, the OpenLink client hosts are the individual Workstations.
* In an Application Server environment, the OpenLink client hosts are the Application Server hosts.
---++ Operating System Types
Our license models clearly distinguish between Workstation-class and Server-class operating systems. For instance, the "Home" and "Professional" Editions of Windows are classed as Workstation-class variants of Windows, while "Web", "Server", and "Advanced Server" Editions are classed as Server-class variants. The same applies to Mac OS X (Desktop) and Mac OS X Server, as well as Linux (Client) and Server editions. OpenLink license terms prohibit the use of Workstation Model licenses on Server-class operating systems.
Operating System Type also impacts licensing costs associated with logical processors in host computers. However, OpenLink does not employ a simplistic, per-logical-processor pricing model. Our license technology makes allowances for Workstation machines that have high logical processor counts. Multi-processor machines hosting Workstation operating systems like "Home", "Personal", or "Desktop" variants of Linux, OS X, and Windows are covered by licenses with a lower price entry point. A logical processor threshold is also applied to server class machines in recognition of the fact that different servers may possess larger or smaller number of logical processors by default.
The following operating systems (among others) are considered Server-class --
* AIX
* HP-UX
* Linux Server
* Mac OS X Server
* Solaris
* Windows NT Server (and variants)
* Windows 2000 Server (and variants)
* Windows Server 2003
* Windows Server 2008
The following operating systems (among others) are considered Workstation-class --
* Linux Workstation
* Mac OS 9 and earlier (i.e., "Classic")
* Mac OS X
* Vista
* Windows NT
* Windows 2000
* Windows XP
* Windows 7
If you have any question whether your deployment operating system is Workstation- or Server-class, please [[http://support.openlinksw.com/support/online-support.vsp][contact our Support Team]]. They will be happy to help you.
---++ Processor Cores and Logical Processors
Our licenses take into account the number of [[DetectCPU][logical processors]] found in the environment(s) on which they are deployed. Basic licenses permit use on machines with typical logical processor counts. Additional logical processors increase license pricing, by a decreasing non-linear factor. There is no maximum number of logical processors which may be licensed.
A dual-core processor has 2 physical processor cores; a quad-core physical processor has 4 physical cores. A machine with two dual-core processors has 4 physical cores.
Historically, the physical core count would match the logical processor count. More recently, Hyper-Threading ("HT"), virtual environments such as Solaris containers or AIX micropartitions (a/k/a "LPARs"), and various related technologies, may cause the OS to see a different logical processor count than the physical cores would suggest.
Our pricing takes such technologies into account, but bugs in various operating systems and processor hardware sometimes mean that special attention is needed.
* The logical processor count on a Hyper-Threading host is typically twice the physical core count.
* Logical processor counts on Solaris containers or AIX micropartitions may be greater or fewer than the physical core counts.
* Logical processor counts in Virtual Machines are generally determined by virtual processor allocations, and are not typically impacted by the host environment's counts; i.e., a 2 logical processor VM running on a 16 logical processor host typically requires a license for 2 CPUs, not 16.
---++ Product Formats
From a format perspective, Virtuoso licensing is partitioned as follows: Personal, Workgroup, and Enterprise.
* *Personal*: Desktop Edition Operating Systems only
* *Workgroup*: Desktop or Server Operating System without Cluster Edition Option
* *Enterprise*: Server Operating System only with Cluster Edition Option.
*Note*: Prior to release 6.x, only Virtuoso Personal and Workgroup Editions are available.
---++ SQL Threads
Virtuoso *SQL threads* initiated when connections are established to the SQL ServerPort. The SQL ServerPort is a Virtuoso configurable in the main .ini file. An associated parameter allows administrators to set aside a pool of threads that are reserved for SQL connectivity. (These threads consume license points on Virtuoso server startup.) Threads associated with this port are consumed by ODBC, JDBC, OLE DB, .NET, isql, and any other APIs and applications that seek direct access to data in Virtuoso's native SQL92 or virtual database schema.
---++ Workstation
*Workstations* are machines running a [[#Operating%20System%20Types][Workstation-class Operating System]], typically supporting a single user at a time, running applications such as Microsoft Excel, Quark XPress, InDesign, or Microsoft Access. Each application opens its own database sessions via data access drivers or providers found on the Workstation machine.