Why is Virtuoso described as a Universal Server?
Virtuoso is a cross platform server that implements multiple server side protocols as part of a single product offering. You get one server product that offers WebDAV/HTTP, Application, and Database server functionality alongside Native XML Storage, Universal Data Access Middleware, and a Web Services Platform.
Why is Virtuoso described as a Web Services Platform?
It is described as such because it implements the complete stack of Web Services foundation protocols; SOAP, WSDL, and UDDI. It enables SQL Stored Procedures, Microsoft .NET, Mono, and Java based application logic to be invoked using SOAP. These SOAP compliant services are automatically described using WSDL. This entire process takes place without writing a single line of new code.
What is Virtuoso's relevance is the world of XML?
It addresses the fundamental question; where is all the XML data going to come from? You can't exploit the benefits of XML without XML data, likewise you can't manually recreate XML data in an attempt to address this reality.
Virtuoso enables you to create XML data from existing data sources such as your SQL databases. It also enables the creation of XML data from external URL accessible data.
An in-built XML validating XML parser and an XSL-T engine lie at the root of Virtuoso's XML Services offerings.
Does Virtuoso store XML Data Natively?
Yes, XML documents are stored in an XML repository. These documents may be parsed or unparsed at time of storage; in either case indexes are built which provide rapid access to these documents.
Why is XML Data Storage Important?
A major benefit of XML is its ability to provide an open format for data representation, exchange, protocol and application modeling. By using XML as a uniform data interface to disparate data sources, it becomes much easier to cost-effectively develop and deploy next generation web applications; increasingly these applications will depend on data hosted in a variety of databases and data sources.
Can I create Dynamic XML documents from SQL Data?
Yes, Virtuoso implements SQL extensions that enable the results of standard SQL queries to be transformed into XML documents. These documents are openly accessible to user agents such as Web Browsers via HTTP and/or WebDAV. It is important to note that these SQL-XML documents are URL accessible, and sensitive to the changes that occur in the underlying database tables from which they are derived.
Can Dynamic XML documents be built using SQL data from different databases?
Yes, the SQL to XML functionality sits above Virtuoso's virtual database functionality, which offers a unified logical and physical representation of database tables and views that reside in disparate database engines from different database vendors. The only requirement is that these database have to be ODBC or JDBC accessible.
Which databases are supported by Virtuoso's SQL to XML functionality?
Virtuoso supports any database that supports ODBC and/or JDBC, this implies pretty much every database.
Why is creation of XML documents from SQL important?
A lot of data that you would typically like to use as the foundation of your web application initiatives more than likely resides in application databases that are predominantly SQL based.
Can I join data across different database engines?
A single SQL statement, whether executed by a SQL client, storedprocedure or dynamic web page can transparently mix data across localand remote tables spread across any number of data sources. It isimportant to note that Virtuoso's data access interfaces areall industry standards compliant (XML, Web Services, ODBC, JDBC,ADO.NET, and OLE DB) thereby broadening the number ofapplications, tools, and application development environments capable of exploiting this Virtual Database functionality.
A simple heterogeneous join scenario could involve joining the "Customers" table in an Oracle database with the "Orders" tables in a Microsoft SQL Server database, and then making this available for ODBC and/or XML application consumption.
A more complex scenario could involve joining data across Oracle, SQL Server, and an XML URI (such as an RDF or RSS data feed from a web log, content syndicate, or web service), and then making this available to ODBC, XML, Web Services, JDBC, OLE DB and ADO.NET client applications.
What is Virtuoso's 3rd Party Runtime Hosting?
Runtime Hosting describes Virtuoso's transparent integration with 3rd party runtime environments such as Microsoft .NET, Mono, and Java. This feature is an enhancement of existing Object-Relational database functionality that enables the creation of User Defined Types, Functions, Stored Procedures, Triggers, and SOAP compliant XML Web Services using Java, and any Microsoft .NET or Mono ECMA-CLI bound programming language#, Java, VB.NET, C++, Cobol, and others).
What Is Frameworks Hosting?
Framework hosting describes how Virtuoso delivers Virtual Web Application Server functionality by supporting a variety of Web Application scripting and programming environments -which may or may not accompany one of the hosted runtimes. The supported environments include: ASP.NET for Microsoft .NET/Mono, Java Server Pages for Java, and PHP. The implications are that you can deploy any Web Application to Virtuoso that has been developed using any of these environments. You do not have to re-write your web applications in order to take advantage of the benefits offered by Virtuoso. It is also important to note that Apache isn't a requirement in order for any of this to happen.
What Does ASP.NET Frameworks Hosting Give Me?
Separation of the web application development environment and the deployment application server. ASP.NET and IIS are no longer inextricably linked -as many assume- on the Windows platform. Secondly, because ASP.NET is a Microsoft .NET Framework, and the fact that Mono is an Open Source and CROSS Platform .NET CLR implementation, you also get a decoupling of ASP.NET from Windows as a deployment platform.
What Does Java Server Pages (JSP) Container Integration Give Me?
Virtuoso currently integrates transparently with the Tomcat servlet container, and thus acts as an alternative deployment platform for JSP based web applications.
What Does PHP Integration Give Me?
Virtuoso is a Zend engine host, which makes it a deployment server for PHP4 based web applications. Again, no external software is required in order for you to deploy your PHP applications to Virtuoso.
Does Virtuoso support stored procedures across different database engines?
Yes,Virtuoso enables you to write stored procedures that referencetables hosted in different database engines as well as to call storedprocedures in these databases. This has two major benefits:
- You can store more of your database centric application logic within virtuoso and then leverage the performance advantages that stored procedures have over dynamic SQL.
- Your stored procedures no longer have to be database specific, a major reason why stored procedures are not used in when writing database independent applications.
Does Virtuoso support VIEWS that reference tables in different databases?
Yes, you can create SQL VIEWS that include joins across tables within different database engines and data sources (XML and Web Services).
What tools does Virtuoso support for analyzing data?
Virtuoso offers the SQL 99 cube and basic OLAP extensions as well as abroad range of built-in aggregate functions. Additionally, developersmay define custom aggregates. Virtuoso implements the Microsoft XMLfor Analysis SOAP service for tabular data.
Is Virtuoso a database in its own right?
Yes, it is a full blown SQL-92 relational database with XML, free text and SQL 2K object oriented extensions.
Can I host an Entire Web Site inside a Virtuoso Database?
Yes,as a HTTP/WebDAV compliant server all of the resources withinits WebDAV repository are accessible for HTTP/WebDAV compliant user agents such as web browsers and WebDAV file systemdrivers. A Unix file system-like security scheme controls access..
Examples of WebDAV clients include the Windows (via Web Folders feature), Mac OS X, Nautilus Desktop (Linux and Solaris). An ever increasing pool of web development tools and content management systems include in-built support for WebDAV.
Migrating your existing Web Site to one hosted by Virtuoso is as simple as using the Virtuoso HTML based UI to import the site.
Does Virtuoso offer a Web application development language?
Virtuoso offers an object oriented dynamic web page language similar toASP.net. This automates functions such as session management,scrolling through database cursors, binding forms to database records,input validation etc. In addition to this, there is a simpler webpage language similar to PHP where a regular HTML page may includestored procedure code for generating dynamic data.
Can Virtuoso be used as a Search Engine?
Yes,Virtuoso can create a free text index on any XML or text column of atable. Additionally, DAV repository contents are by default indexed.Virtuoso free text search includes word proximity searches, and theability to combine XPATH, Free Text, and Regular Expressions, ifrequired, in the same query. The long and short of this is thatyou can harvest and then index any form of text based web data(HTML, XHTML, XML etc.) stored in Virtuoso.
What Replication Services does Virtuoso provide?
Virtuoso offers heterogeneous bidirectional replication between itself and the most common DBMS's, including MS SQL Server, Oracle and DB2. Virtuoso provides a very efficient near real time transactional replication between Virtuoso servers. DAV content can be replicated between Virtuoso servers using transactional replication and shared with mobile clients with SyncML.
What Mail Services does Virtuoso provide?
Virtuoso includes an SMTP sink/drive that enables any SMTP compliant Mail Agent to write its mail into a Virtuoso database. Mail data stored in Virtuoso is retrievable via the POP3 protocol
SMTP and POP3 are also available as Virtuoso PL functions enabling the creation of sophisticated mail oriented applications.
What about SPAM Filtering and Mail Services?
Virtuoso enables you to combine the functionality of a mail system and database so that you can custom develop spam filters or customize Virtuoso (via its server extensions kit) to work with 3rd party Spam filter tools. Virtuoso can enable Spam filtering to occur immediately after mails are deposited in your mailbox, and prior to POP3 mail retrieval.
Can I use Virtuoso to host newsgroups?
Yes, Virtuoso implements the NNTP (Network News Transport Protocol) providing a very simple interface for creating your own newsgroups.
Can I use Virtuoso to communicate with other news servers?
Yes, you can use Virtuoso to attach to newsgroups hosted on any NNTP Server