<html><head> | |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> | |
<title>2.2 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. Introduction to the Virgo Server for Apache Tomcat"><link rel="prev" href="ch02.html" title="2. Introduction to the Virgo Server for Apache Tomcat"><link rel="next" href="ch02s03.html" title="2.3 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 What is the Virgo Server for Apache Tomcat?</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">2. Introduction to the Virgo Server for Apache Tomcat</th><td width="20%" align="right"> <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 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’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’s enterprise Java applications. | |
</p></div><p> | |
The following diagram presents a high-level overview of the VTS’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.2.RELEASE 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. Deployment Architecture">Chapter 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.2.RELEASE 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> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">2. Introduction to the Virgo Server for Apache Tomcat </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 2.3 Why the Virgo Server for Apache Tomcat?</td></tr></table></div></body></html> |