Web Application Server

In recent times, courtesy of Web ubiquity, the Hypertext Transfer Protocol (HTTP) has emerged as preferred message oriented middleware affecting the realms of data access and application logic componentization via service oriented architecture. It enables distributed client-server solutions to be driven by REST based orchestration of generic Create, Read, Update, Delete operations applied to network addressable composite records (aka. resources) or the more traditional Remote Procedure Calls (RPC) mechanism exemplified by SOAP driven Service Oriented Architecture (SOA).

Irrespective of your distributed application development method preferences, Virtuoso delivers a powerful and cost-effective workbench for developing and deploying HTTP based distributed client-server solutions.

Representational State Transfer (REST) Applications

Often misunderstood, this style of client-server pattern mandates that application state is driven by interactions between Resources at an HTTP address called Uniform Resource Locator (URL) and one or more generic HTTP verbs that cover Create, Read, Update, and Delete operations.

As an HTTP based application server Virtuoso enables you to develop and deploy REST oriented client-server solutions, using a variety of programming languages and frameworks that include:

  1. Virtuoso Stored Procedure Language (which completely hosts your solution in the DBMS core)
  2. Stored Procedure Languages of 3rd Party ODBC or JDBC accessible Database Platforms
  3. PHP, Python, Ruby, and Perl
  4. ASP.NET (which implies Visual Basic, C#, C++ etc.)
  5. Java
  6. Any language with a runtime that can he hosted in C/C++ .

SOAP based SOA Applications

If the RPC oriented nature of SOAP is the preference for your distributed client-server application needs, then Virtuoso also provides a powerful solution that enables you develop and deploy applications along the following lines:

  1. Virtuoso Stored Procedures Language where each stored procedure is executable from a SOAP endpoint with automatic generation of a Web Service Description Language (WSDL) file that describes the published services
  2. Providing SOAP Proxy endpoints based on attaching HTTP accessible 3rd party SOAP services via their WSDL resource URLs -- usable directly or indirectly via SQL that drives Virtuoso Stored Procedures
  3. User Defined Types derived natively or from bindings to modules in external languages via Virtuoso's in-built Runtime Hosting (PHP, Java, .NET, Python, Perl, Ruby) capability or via custom Server Extensions.

Powerful Hypermedia Resource Generation

Whether working with REST or SOAP approaches to Web Services, the quality of your solution ultimately depends on the existence and constituency of the Resources that drive either approach. Virtuoso offers an in-built ability to construct powerful Resources (real or virtual) that expose structured hypermedia oriented data from any of the following data sources:

  1. ODBC or JDBC accessible data sources (e.g. Relational Databases)
  2. Content Management systems that serve up (X)HTML, XML (Atom, RSS, OPML, XBEL etc.), RDF model data formats, CSV etc.
  3. Traditional Desktop Applications data formats (iCal, vCard, JPEG, MPEG etc.).