Virtuoso Universal Server is a
middleware
Middleware is a type of computer software program that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to imple ...
and
database engine hybrid that combines the functionality of a traditional
relational database management system
A relational database (RDB) is a database based on the relational model of data, as proposed by E. F. Codd in 1970.
A Relational Database Management System (RDBMS) is a type of database management system that stores data in a structured for ...
(RDBMS),
object–relational database
An object–relational database (ORD), or object–relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inherit ...
(ORDBMS),
virtual database,
RDF,
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
,
free-text
In Document retrieval, text retrieval, full-text search refers to techniques for searching a single computer-stored document or a collection in a full-text database. Full-text search is distinguished from searches based on metadata or on parts of ...
,
web application server and
file server
In computing, a file server (or fileserver) is a computer attached to a network that provides a location for shared disk access, i.e. storage of computer files (such as text, image, sound, video) that can be accessed by workstations within a co ...
functionality in a single system. Rather than have dedicated servers for each of the aforementioned functionality realms, Virtuoso is a "universal server"; it enables a single
multithreaded server
process
A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic.
Things called a process include:
Business and management
* Business process, activities that produce a specific s ...
that implements multiple protocols. The
free and open source
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
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
Virtuoso provides an extended
object–relational model, which combines the flexibility of relational access with
inheritance
Inheritance is the practice of receiving private property, titles, debts, entitlements, privileges, rights, and obligations upon the death of an individual. The rules of inheritance differ among societies and have changed over time. Offi ...
, run time data typing, late binding, and
identity-based access. Virtuoso Universal Server database includes physical file and in memory storage and operating system processes that interact with the storage. There is one main process, which has listeners on a specified port for
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
,
SOAP
Soap is a salt (chemistry), salt of a fatty acid (sometimes other carboxylic acids) used for cleaning and lubricating products as well as other applications. In a domestic setting, soaps, specifically "toilet soaps", are surfactants usually u ...
, 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 may work on a single index tree with minimal interference with each other. One cache of database pages is shared among all threads and old dirty pages are written back to disk as a background process.
The database has at all times a clean 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.
A transaction log file records all transactions since the last checkpoint. Transaction log files may be preserved 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 setting transaction isolation.
Transactions
All four levels of isolation are supported: Dirty read, read committed, repeatable read and serializable. The level of isolation may be specified operation by operation within a single transaction. Virtuoso can also act as a
resource manager and/or transaction coordinator under Microsoft's Distributed Transaction Coordinator (
MS DTC) or the
XA standard.
Data integrity
Virtuoso
ORDBMS database supports
entity integrity and
referential integrity
Referential integrity is a property of data stating that all its references are valid. In the context of relational databases, it requires that if a value of one attribute (column) of a relation (table) references a value of another attribute (e ...
. Virtuoso ensures that relationships between records in related tables are valid by enforcing
referential integrity
Referential integrity is a property of data stating that all its references are valid. In the context of relational databases, it requires that if a value of one attribute (column) of a relation (table) references a value of another attribute (e ...
. 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 a value to be given to a column.
*
Unique key – Uniqueness for a column or set of columns means that the values in that column or set of columns must be different from all other columns or set of columns in that table. A unique key may contain NULL values since they are by definition a unique non-valued value.
*
Primary key
In the relational model of databases, a primary key is a designated attribute (column) that can reliably identify and distinguish between each individual record in a table. The database creator can choose an existing unique attribute or combinati ...
– Primary key are much like unique keys except that they are designed to uniquely identify a row in a table. They can consist of a single column or multiple columns. The primary key cannot contain a NULL value.
*
CHECK Constraint – Virtuoso provides on a column an integrity constraint that requires certain conditions to be met before the data is inserted or modified. If the checks are not satisfied then the transaction cannot be completed.
Data dictionary
Virtuoso stores all its information about all user objects in the database in the system catalog tables designated by db.dba*.
Components and files
Components
Virtuoso is made up of client and server components. These components typically communicate with a local or remote Virtuoso server, which include:
* Virtuoso Drivers for
ODBC
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
,
JDBC
Java Database Connectivity (JDBC) is an application programming interface (API) for the Java (programming language), Java programming language which defines how a client may access a database. It is a Java-based data access technology used for Java ...
, ADO.NET and
OLE DB
* Conductor, a web-based database administration user interface
* ISQL (Interactive SQL) and ISQO Utilities
* Documentation and Tutorials
* Samples
Installations come with two databases: a default and a demo database.
History
The Virtuoso project was born in 1998 from a merger of the OpenLink data access
middleware
Middleware is a type of computer software program that provides services to software applications beyond those available from the operating system. It can be described as "software glue".
Middleware makes it easier for software developers to imple ...
and Kubl RDBMS.
Kubl RDBMS
The Kubl
ORDBMS was one of a list of
relational database systems with roots in
Finland
Finland, officially the Republic of Finland, is a Nordic country in Northern Europe. It borders Sweden to the northwest, Norway to the north, and Russia to the east, with the Gulf of Bothnia to the west and the Gulf of Finland to the south, ...
. This list also includes
MySQL
MySQL () is an Open-source software, open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A rel ...
,
InnoDB
InnoDB is a storage engine for the database management system MySQL and MariaDB. Since the release of MySQL 5.5.5 in 2010, it replaced MyISAM as MySQL's default table type. It provides the standard ACID-compliant transaction features, along wit ...
, and
Solid RDBMS/
Solid Technologies.
As is the case with most technology products, key personnel behind OpenLink Virtuoso, InnoDB, and
Solid
Solid is a state of matter where molecules are closely packed and can not slide past each other. Solids resist compression, expansion, or external forces that would alter its shape, with the degree to which they are resisted dependent upon the ...
share periods of professional overlap that provide noteworthy insight into the history of database technology development in Finland.
Heikki Tuuri (creator of InnoDB),
Ora Lassila
Ora Lassila is a Finnish computer scientist who lives in the U.S. and works as a technologist at Amazon Web Services. He has been conducting research into the Semantic Web since 1996, and was co-author, with Tim Berners-Lee and James Hendler, o ...
(W3C and Nokia Research, a technology lead and visionary in the areas RDF and
Semantic Web
The Semantic Web, sometimes known as Web 3.0, is an extension of the World Wide Web through standards set by the World Wide Web Consortium (W3C). The goal of the Semantic Web is to make Internet data machine-readable.
To enable the encoding o ...
in general alongside
Tim Berners-Lee
Sir Timothy John Berners-Lee (born 8 June 1955), also known as TimBL, is an English computer scientist best known as the inventor of the World Wide Web, the HTML markup language, the URL system, and HTTP. He is a professorial research fellow a ...
), and Orri Erling (Virtuoso Program Manager at OpenLink Software) all worked together in a startup company called
Entity Systems in Finland – where they were developing
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in American National Standards Institute (ANSI) standard document ''ANSI INCITS 226-1994 (S2018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperli ...
and
Prolog
Prolog is a logic programming language that has its origins in artificial intelligence, automated theorem proving, and computational linguistics.
Prolog has its roots in first-order logic, a formal logic. Unlike many other programming language ...
development environments for the early generation of
PC's circa. 1986–88.
Later, Orri Erling worked with
VIA International, the developer of
VIA/DRE in designing a
LISP
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
-based
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
data access
Data access is a generic term referring to a process which has both an IT-specific meaning and other connotations involving access rights in a broader legal and/or political sense. In the former it typically refers to software and activities relat ...
layer atop the company's
DBMS
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and ana ...
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
Solid is a state of matter where molecules are closely packed and can not slide past each other. Solids resist compression, expansion, or external forces that would alter its shape, with the degree to which they are resisted dependent upon the ...
for a while before starting his own
database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
development project which became InnoDB (acquired by
Oracle
An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination.
Descript ...
in 2005).
Orri Erling started his own DBMS development work in 1994, which was to become
Kubl. Development of Kubl was initially financed by
Infosto Group, publisher of Finland's largest
free ads paper, as part of their in-house software development project for their
on-line services. The on-line version of ''
Keltainen Pörssi'' was at one time said to be Finland's most popular web site 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.
Kubl was marketed as a high performance lightweight database for
embedded use; the development aim was to achieve top scores in
Transactions Per Second tests. Pricing of the product was especially favorable to
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
users with a Linux license priced at $199.
Kubl became the cornerstone of OpenLink Virtuoso, after the technology paths of Kingsley Uyi Idehen and Orri Erling crossed in 1998, leading to the acquisition of Kubl by OpenLink Software.
Functionality realms
Virtuoso's functionality covers a broad range of traditionally distinct realms in a single product offering. These functional realms include:
*
Object–relational database
An object–relational database (ORD), or object–relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inherit ...
engine for (
SQL
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
,
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
,
RDF and
plain text
In computing, plain text is a loose term for data (e.g. file contents) that represent only characters of readable material but not its graphical representation nor other objects ( floating-point numbers, images, etc.). It may also include a lim ...
)
*
Web service
A web service (WS) is either:
* a service offered by an electronic device to another electronic device, communicating with each other via the Internet, or
* a server running on a computer device, listening for requests at a particular port over a n ...
s
computing platform
A computing platform, digital platform, or software platform is the infrastructure on which software is executed. While the individual components of a computing platform may be obfuscated under layers of abstraction, the ''summation of the requi ...
*
Web
Web most often refers to:
* Spider web, a silken structure created by the animal
* World Wide Web or the Web, an Internet-based hypertext system
Web, WEB, or the Web may also refer to:
Computing
* WEB, a literate programming system created by ...
application server
An application server is a server that hosts applications or software that delivers a business application through a communication protocol. For a typical web application, the application server sits behind the web servers.
An application ser ...
*
Web content management system
A web content management system (WCM or WCMS) is a software content management system (CMS) specifically for web content. It provides website authoring, collaboration, and administration tools that help users with little knowledge of web program ...
(WCMS)
*
NNTP-based discussion management
*
Replication of homogeneous and heterogeneous data
*
Mail Storage Sink and (
POP3
In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, i ...
) service proxy
* DataPortability
Protocols implemented
Virtuoso supports a broad range of industry standard Web & Internet protocols that includes:
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
,
WebDAV
WebDAV (Web Distributed Authoring and Versioning) is a set of extensions to the Hypertext Transfer Protocol (HTTP), which allows user agents to collaboratively author contents ''directly'' in an HTTP web server by providing facilities for conc ...
,
CalDAV
Calendaring Extensions to WebDAV, or CalDAV, is an Internet standard allowing a client to access and manage calendar data along with the ability to schedule meetings with users on the same or on remote servers. It lets multiple users in differe ...
,
CardDAV
vCard Extensions to WebDAV (CardDAV) is an address book client/server protocol designed to allow users to access and share contact data on a server.
The CardDAV protocol was developed by the IETF and was published as in August 2011. CardDAV is ...
, SOAP,
UDDI
Web Services Discovery provides access to software systems over the Internet using standard protocols. In the most basic scenario there is a ''Web Service Provider'' that publishes a service and a ''Web Service Consumer'' that uses this service. ...
,
WSDL
The Web Services Description Language (WSDL ) is an XML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (also ...
,
WS-Policy,
WS-Security,
WS-ReliableMessaging
WS-ReliableMessaging describes a protocol that allows SOAP messages to be reliable messaging, reliably delivered between distributed applications in the presence of software component, system, or network failures.
The original specification was w ...
,
WS-Routing,
WS-Referral,
WS-Attachment,
WS-BPEL,
SyncML
SyncML, or Synchronization Markup Language, was originally developed as a platform-independent standard for information synchronization. Established by the SyncML Initiative, this project has evolved to become a key component in data synchroniza ...
,
GData,
SPARQL
SPARQL (pronounced ":wikt:sparkle, sparkle", a recursive acronym for SPARQL Protocol and RDF Query Language) is an RDF query language—that is, a Semantic Query, semantic query language for databases—able to retrieve and manipulate data sto ...
,
SPARUL
SPARUL, or SPARQL/Update, was a declarative data manipulation language that extended the SPARQL 1.0 query language standard. SPARUL provided the ability to insert, delete and update RDF data held within a triple store or quad store. SPARUL was ...
, NNTP
API support
For the database application developer and systems integrator, Virtuoso implements a variety of industry standard data access APIs (client and server) that includes: ODBC, JDBC, OLE DB, ADO.NET,
ADO.NET Entity Framework,
XMLA.
Content syndication and interchange format support
For the Web application developer and content syndicate(s) publishers, and consumers, Virtuoso supports standards such as:
Atom
Atoms are the basic particles of the chemical elements. An atom consists of a atomic nucleus, nucleus of protons and generally neutrons, surrounded by an electromagnetically bound swarm of electrons. The chemical elements are distinguished fr ...
,
RSS 2.0,
RSS 1.0,
OPML,
XBEL,
FOAF,
SIOC.
Query language support
SQL,
SPARQL
SPARQL (pronounced ":wikt:sparkle, sparkle", a recursive acronym for SPARQL Protocol and RDF Query Language) is an RDF query language—that is, a Semantic Query, semantic query language for databases—able to retrieve and manipulate data sto ...
(with numerous extensions),
XQuery
XQuery (XML Query) is a query language and functional programming language designed to query and transform collections of structured and unstructured data, primarily in the form of XML. It also supports text data and, through implementation-sp ...
(implementation of Core functions library is seriously incomplete),
XPath
XPath (XML Path Language) is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) in 1999, and can be used to compute values (e.g., strings, numbers, or ...
(1.0 only),
XSLT
XSLT (Extensible Stylesheet Language Transformations) is a language originally designed for transforming XML documents into other XML documents, or other formats such as HTML for web pages, plain text, or XSL Formatting Objects. These formats c ...
(1.0 only)
Schema definition language support
SQL's
Data Definition Language
In the context of SQL, data definition or data description language (DDL) is a syntax for creating and modifying database objects such as tables, indices, and users. DDL statements are similar to a computer programming language for defining d ...
,
XML Schema
An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constrai ...
Usage scenarios
Virtuoso is a solution for the following
system integration
System integration is defined in engineering as the process of bringing together the component sub-systems into one system (an aggregation of subsystems cooperating so that the system is able to deliver the overarching functionality) and ensuring ...
challenges:
*
Enterprise Information Integration
Enterprise information integration (EII) is the ability to support a unified view of data and information for an entire organization. In a data virtualization application of EII, a process of information integration, using data abstraction to ...
(EII)
* Programming Language Independent
Web application
A web application (or web app) is application software that is created with web technologies and runs via a web browser. Web applications emerged during the late 1990s and allowed for the server to dynamically build a response to the request, ...
deployment
*
Monolithic application decomposition that leverages the principles of
service-oriented architecture
In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field ...
*
Web service
A web service (WS) is either:
* a service offered by an electronic device to another electronic device, communicating with each other via the Internet, or
* a server running on a computer device, listening for requests at a particular port over a n ...
based
enterprise application integration via a significant amount of
WS-* protocols support
*
Business process management
Business process management (BPM) is the discipline in which people use various methods to Business process discovery, discover, Business process modeling, model, Business analysis, analyze, measure, improve, optimize, and Business process auto ...
via
BPEL
* Semantic Web Data Spaces Generation
* Deployment platform for injecting RDF-based
Linked Data
In computing, linked data is structured data which is interlinked with other data so it becomes more useful through semantic queries. It builds upon standard Web technologies such as HTTP, RDF and URIs, but rather than using them to serve web ...
into the Semantic Data Web
Related technology areas
Data management
*
Relational database management system
A relational database (RDB) is a database based on the relational model of data, as proposed by E. F. Codd in 1970.
A Relational Database Management System (RDBMS) is a type of database management system that stores data in a structured for ...
*
List of relational database management systems
This is a list of relational database management systems.
List of software
Front-end User interfaces Only
* Apache OpenOffice Base
** HSQLDB
* LibreOffice Base
** Firebird
** HSQLDB
*Microsoft Access
** Access Database Engine
Discontinued
* Bri ...
*
Comparison of object–relational database management systems
*
Comparison of relational database management systems
The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are ba ...
Enterprise application, information, and data integration
*
Web 2.0
Web 2.0 (also known as participative (or participatory) web and social web) refers to websites that emphasize user-generated content, ease of use, participatory culture, and interoperability (i.e., compatibility with other products, systems, a ...
*
Enterprise service bus
An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special vari ...
*
Service-oriented architecture
In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. SOA is a good choice for system integration. By consequence, it is also applied in the field ...
*
Enterprise application integration
*
Data integration
Data integration refers to the process of combining, sharing, or synchronizing data from multiple sources to provide users with a unified view.
There are a wide range of possible applications for data integration, from commercial (such as when a ...
*
Open Semantic Framework
*
Web service
A web service (WS) is either:
* a service offered by an electronic device to another electronic device, communicating with each other via the Internet, or
* a server running on a computer device, listening for requests at a particular port over a n ...
* Semantic Web
*
Business Integration Severs Comparison Matrix
Related products and tools
In addition to Virtuoso, OpenLink Software produces several related tools and applications:
*
OpenLink Data Spaces – a Virtuoso-based platform for cost-effective creation and management of Semantic Web /
Linked Data
In computing, linked data is structured data which is interlinked with other data so it becomes more useful through semantic queries. It builds upon standard Web technologies such as HTTP, RDF and URIs, but rather than using them to serve web ...
Web presence. It provides a data junction box for integrating data across third party Social network service, Blog, File sharing, Shared & Social bookmarking, Wiki, E-mail, Photo Sharing,
RSS 2.0,
Atom
Atoms are the basic particles of the chemical elements. An atom consists of a atomic nucleus, nucleus of protons and generally neutrons, surrounded by an electromagnetically bound swarm of electrons. The chemical elements are distinguished fr ...
, and RSS, RSS 1.1 Content Aggregation services. In addition, to its third party integration functionality, it also includes its own rich collection of
Linked Data
In computing, linked data is structured data which is interlinked with other data so it becomes more useful through semantic queries. It builds upon standard Web technologies such as HTTP, RDF and URIs, but rather than using them to serve web ...
compliant distributed collaborative applications, across each of the aforementioned Web application realms.
* Universal Data Access Drivers – High-performance data access drivers for ODBC, JDBC, ADO.NET, and OLE DB that provide transparent access to enterprise databases across multiple platforms and databases.
Platforms
Virtuoso is supported on a number of 32- and 64-bit platforms including cross-platform Microsoft Windows, Windows, UNIX (HP-UX, HP, IBM AIX, AIX, Solaris (operating system), Sun, DEC, BSD, UnixWare, SCO), Linux (Red Hat Linux, Red Hat, SUSE Linux, SUSE) and macOS.
Licensing
In April 2006, a free software version of Virtuoso was made available under the GNU General Public License version 2.
The software is now available in Commercial and Open Source license variants.
References
External links
* {{official website, http://virtuoso.openlinksw.com/
Atom (web standard)
Big data products
Client-server database management systems
Column-oriented DBMS software for Linux
Cross-platform free software
Cross-platform software
Database engines
Distributed computing architecture
Document-oriented databases
Enterprise application integration
Free database management systems
Free file sharing software
Free software programmed in C
Free web server software
FTP server software
Message-oriented middleware
Metadata
Middleware
NewSQL
NoSQL
Online databases
ORDBMS software for Linux
MacOS database-related software
Products introduced in 1998
Relational database management systems
RSS
Semantic Web
SQL data access
Structured storage
Triplestores
Unix Internet software
Unix network-related software
Web services
Windows database-related software
XML software
XSLT processors