blob: 931a7b9382f6f8b61fb4dd19fb988726075a79d5 [file] [log] [blame]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>2.2&nbsp;What is the Virgo Server for Apache Tomcat?</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Virgo Programmer Guide"><link rel="up" href="ch02.html" title="2.&nbsp;Introduction to the Virgo Server for Apache Tomcat"><link rel="prev" href="ch02.html" title="2.&nbsp;Introduction to the Virgo Server for Apache Tomcat"><link rel="next" href="ch02s03.html" title="2.3&nbsp;Why the Virgo Server for Apache Tomcat?"><!--Begin Google Analytics code--><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2728886-3");
pageTracker._setDomainName("none");
pageTracker._setAllowLinker(true);
pageTracker._trackPageview();
</script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.2&nbsp;What is the Virgo Server for Apache Tomcat?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a>&nbsp;</td><th width="60%" align="center">2.&nbsp;Introduction to the Virgo Server for Apache Tomcat</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction-what"></a>2.2&nbsp;What is the Virgo Server for Apache Tomcat?</h2></div></div></div><p>
The Virgo Server for Apache Tomcat, or VTS for short, is the runtime portion of the Virgo Server.
It is a lightweight, modular, OSGi-based runtime that provides a complete packaged solution for developing,
deploying, and managing enterprise applications.
By leveraging several best-of-breed technologies and improving upon
them, the VTS offers a compelling solution to develop and deploy
enterprise applications.
</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="introduction-constituents"></a>What Makes up the Virgo Server for Apache Tomcat?</h3></div></div></div><p>
The Virgo Server for Apache Tomcat is built on top of the following core technologies:
</p><div class="itemizedlist"><ul type="disc"><li><a class="ulink" href="http://www.springframework.org/" target="_top">Spring Framework</a>, obviously!</li><li><a class="ulink" href="http://tomcat.apache.org/" target="_top">Tomcat</a> as the web container.</li><li><a class="ulink" href="http://www.osgi.org/Specifications/HomePage" target="_top">OSGi R4.3</a>.</li><li><a class="ulink" href="http://www.eclipse.org/equinox/" target="_top">Equinox</a> as the OSGi implementation.</li><li><a class="ulink" href="http://www.springframework.org/osgi/" target="_top">Spring Dynamic Modules for OSGi</a> for working with OSGi in a Spring application.</li><li><a class="ulink" href="http://www.springsource.com/products/sts" target="_top">SpringSource Tool Suite</a> for developing applications.</li></ul></div><p>
Note, however, that the Virgo Server for Apache Tomcat isn&#8217;t just a combination
of these technologies. Rather, it integrates and extends these
technologies to provide many features essential for developing,
deploying, and managing today&#8217;s enterprise Java applications.
</p></div><p>
The following diagram presents a high-level overview of the VTS&#8217;s architecture.
</p><p>
<img src="images/introduction-architecture.png">
</p><p>
At the heart of the Virgo Server for Apache Tomcat is the Virgo Kernel or VK.
The VK is an OSGi-based kernel that takes full advantage of the modularity
and versioning of the OSGi platform. The VK builds on a base version of Virgo Nano or VN and extends its capabilities for
provisioning and library management, as well as providing core functionality for the VTS. The VN maintains a minimal
runtime footprint and startup time. It builds on top of a pure Equinox, extending it with more sophisticated diagnostics and supportability functionality.
The VN supports full p2 provisioning. This feature is not included in the Virgo Nano Base that the VK is built on.
</p><p>
To maintain a minimal runtime footprint, OSGi bundles are installed on demand by the
VN. On subsequent restarts these core bundles are warm-started thus reducing the startup time. This allows for an application to be installed
into a running VTS and for its dependencies to be satisfied from an external repository. Not only
does this remove the need to manually install all your application dependencies, which would be tedious, but it also keeps memory usage to a minimum.
</p><p>
As shown in the figure, VK runs on top of VN that extends Equinox within a standard Java
Virtual Machine. Above the VK further layers contribute functionality
to the VTS. Such as management and web application support.
</p><p>
Version 3.6.0.M05 of the Virgo Server for Apache Tomcat supports <span class="emphasis"><em>bundle</em></span>,
<span class="emphasis"><em>plan</em></span>, <span class="emphasis"><em>PAR</em></span>, <span class="emphasis"><em>configuration</em></span>,
<span class="emphasis"><em>Web Application Bundle (WAB)</em></span>, and <span class="emphasis"><em>WAR</em></span> artifacts, which enable
you to build sophisticated web applications. This includes support for
standard Java EE WARs, "shared library" WARs, and "shared services" WARs, each of
which will be covered in greater detail in <a class="xref" href="ch03.html" title="3.&nbsp;Deployment Architecture">Chapter&nbsp;3, <i>Deployment Architecture</i></a>.
</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Important"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="images/important.gif"></td><th align="left">Important</th></tr><tr><td align="left" valign="top"><p>
The Virgo Nano has a different provisioning system which isn't included in the Virgo Nano Base on which the
VK and the VTS are built.
</p><p>
Version 3.6.0.M05 of the Virgo Nano supports <span class="emphasis"><em>bundle</em></span>,
<span class="emphasis"><em>p2 feature</em></span>, <span class="emphasis"><em>Web Application Bundle (WAB)</em></span>, and <span class="emphasis"><em>WAR</em></span> artifacts, which enable
you to build sophisticated web applications too, taking full advantage of p2's dependency resolution, automated download and fail-early mechanics.
The Virgo Nano does NOT support <span class="emphasis"><em>plan</em></span>, <span class="emphasis"><em>PAR</em></span> or <span class="emphasis"><em>configuration</em></span> artifacts.
New <span class="emphasis"><em>features</em></span> are provisioned via <span class="emphasis"><em>update sites</em></span> or <span class="emphasis"><em>p2 repositories</em></span>.
Brief overview of p2 and it's mechanics is available on <a class="ulink" href="http://bkapukaranov.wordpress.com/2011/07/12/rt-meets-p2/" target="_top">this blog</a>.
The VN's default web container implementation is Gemini Web.
</p></td></tr></table></div></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript">
_lf_cid = "LF_48be82fa";
_lf_remora();
</script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2.&nbsp;Introduction to the Virgo Server for Apache Tomcat&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&nbsp;2.3&nbsp;Why the Virgo Server for Apache Tomcat?</td></tr></table></div></body></html>