<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>What is the Virgo Server for Apache Tomcat?</title><meta content="DocBook XSL Stylesheets V1.76.0" name="generator"><link rel="home" href="index.html" title="Virgo Programmer Guide"><link rel="up" href="ch02.html" title="Chapter 2. Introduction to the Virgo Server for Apache Tomcat"><link rel="prev" href="ch02.html" title="Chapter 2. Introduction to the Virgo Server for Apache Tomcat"><link rel="next" href="ch02s03.html" title="Why the Virgo Server for Apache Tomcat?"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table summary="Navigation header" width="100%"><tr><td align="left" width="20%"><a accesskey="p" href="ch02.html">Prev</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="section" title="What is the Virgo Server for Apache Tomcat?"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="introduction-what"></a>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" title="What Makes up the Virgo Server for Apache Tomcat?"><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 class="itemizedlist" type="disc"><li class="listitem"><a class="ulink" href="http://www.springframework.org/" target="_top">Spring Framework</a>, obviously!</li><li class="listitem"><a class="ulink" href="http://tomcat.apache.org/" target="_top">Tomcat</a> as the web container.</li><li class="listitem"><a class="ulink" href="http://www.osgi.org/Specifications/HomePage" target="_top">OSGi R4.3</a>.</li><li class="listitem"><a class="ulink" href="http://www.eclipse.org/equinox/" target="_top">Equinox</a> as the OSGi implementation.</li><li class="listitem"><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 class="listitem"><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.5.0 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="Chapter 3. Deployment Architecture">Chapter 3. <i>Deployment Architecture</i></a>. | |
</p><div class="important" title="Important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><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.5.0 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></div></div><div class="navfooter"><hr><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch02.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="ch02.html">Up</a></td><td align="right" width="40%"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td valign="top" align="left" width="40%"> </td><td align="center" width="20%"><a accesskey="h" href="index.html">Home</a></td><td valign="top" align="right" width="40%"> </td></tr></table></div></body></html> |