TomcatExpert

Welcome to TomcatExpert

Home

You Can Help Improve Apache Tomcat Adoption in the Enterprise!

How? Share your insights, use cases, comments and questions on best practices for deploying, managing and operating Apache Tomcat in the Enterprise.

 

Blog : How Apache Tomcat Implemented WebSocket

posted by fhanik on May 1, 2012 07:13 AM

With the Apache Tomcat 7.0.27 release, the Apache Tomcat team introduced a WebSocket implementation. In a previous post, we took a look at what the WebSocket implementation means, including what benefits and limitations they present. Today, we will discuss specifically how WebSocket is implemented in Apache Tomcat 7.

Since WebSocket is a protocol sent over TCP after an initial HTTP handshake, you could effectively implement WebSocket using Tomcat’s Comet implementation. There is a back port to Tomcat 6 suggested that does exactly that with very minor changes.

The Apache Tomcat team however decided to go with a more substantial implementation with changes to the core of Tomcat’s network and protocol implementation. The reason for this was memory and scalability based. If Tomcat can recycle the HttpServletRequest/Response objects after the initial handshake, each WebSocket connection will take up less memory in the Java heap. It also opens up the Tomcat container for other future protocols that utilize the HTTP Upgrade feature.

The WebSocket implementation from an API standpoint is fairly straightforward. You really can only do two things:

  1. Send messages
  2. Receive messages

Read More

0 comments   |  

0
Rating
  |  

Developers, Operations | Apache Tomcat 7, WebSocket

Download tc Server

SpringSource tc Server provides enterprise users with the lightweight java app server they want along with the streamlined configuration, advanced performance monitoring, and professional support businesses need. Built as a drop-in replacement for Apache Tomcat, tc Server will instantly upgrade your custom-built and commercial software applications to Enterprise Tomcat.

Download your free trial, and try it today! Learn More »

Demo Download


Blog : WebSockets in Tomcat 7

posted by fhanik on April 23, 2012 10:22 PM

With the 7.0.27 release the Apache Tomcat team introduced a WebSocket implementation. WebSocket has received a lot of hype, and has been much anticipated by Tomcat users. Let’s take a quick look at what web sockets are, what benefits and limitations they have and how they are implemented in Apache Tomcat 7.

What is a WebSocket?

WebSocket is considered the next step in evolution of web communication. Over time, communication has evolved in steps to reduce the time and data throughput for the application to update a user’s browser. The evolution has looked a little like this:

  • Entire page reloads
  • Component reloads using AJAX Processing
  • Comet communication
    • Long poll– similar to AJAX, but not holding a thread on the server
    • Bi directional- two way communication over the same TCP

Each of these steps had their benefits and challenges. Apache Tomcat 6 implements bi-directional communication over HTTP using its Comet Processor. This implementation allowed for asynchronous event driven request processing as well as bi-directional communication. This implementation had a few limitations.

Read More

2 comments   |  

0
Rating
  |  

Developers | Apache Tomcat 7, WebSocket

Blog : Apache Tomcat 7.0.27 Released

posted by Stacey Schneider on April 5, 2012 01:59 PM

The Apache Tomcat team announces the immediate availability of Apache Tomcat 7.0.27

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This release is includes significant new features as well as a number of bug fixes compared to version 7.0.26. The notable changes include:

  • Support for the WebSocket protocol (RFC6455). Both streaming and message based APIs are provided and the implementation currently fully passes the Autobahn test suite. Also included are several examples.
  • A number of fixes to the HTTP NIO connector, particularly when using Comet.
  • Improve the memory leak prevention and detection code so that it works well with JVMs from IBM.

Please refer to the change log for the complete list of changes:
http://tomcat.apache.org/tomcat-7.0-doc/changelog.html

Note that this version has 4 zip binaries: a generic one and three bundled with Tomcat native binaries for Windows operating systems running on different CPU architectures.

Read More

0 comments   |  

0
Rating
  |  

Developers, Operations | nio, Tomcat 7, WebSocket

Blog : Integrating Jenkins and Apache Tomcat for Continuous Deployment

posted by jfullam on March 20, 2012 04:32 PM

Working software is the primary measure of progress for software development teams. This is one of the principles of the Agile Manifesto and has led agile software teams to focus on implementing the most important features of a system early and efficiently. These teams usually provide frequent deployments of the software in order to receive feature validation from the business and to show project progress. The benefits are quick and frequent feedback for the developers and congruous applications for the business.

The practice of automated continuous deployment ensures that the latest checked in code is deployed, running, and accessible to various roles within an organization. Project managers can have a place to check on project progress, testers have a view into the latest builds, developers can see the their modules working with the modules from other team members, and stakeholders can see how their requirements have been translated into working software. As some of the most popular application servers to deploy agile applications on, Apache Tomcat and tc Sserver easily integrate with continuous integration servers to allow agile teams to realize continuous deployment while utilizing a lean application server (another practice of agile teams).

You can start practicing continuous deployment very quickly using Apache Tomcat or VMware vFabric tc Server, Jenkins, and your source control system of choice. For this article, since another tenet of agile development is to instrument the application early for better manageability, in addition to outlining how to set up continuous deployment with Tomcat, we will include alternative instructions for tc Server which has built-in monitoring from VMware vFabric Hyperic.

Read More

0 comments   |  

0
Rating
  |  

Developers, Operations | Continuous Integration, Hyperic, tc Server

Blog : Apache Tomcat 7.0.26 Released

posted by Stacey Schneider on February 22, 2012 10:48 AM

The Apache Tomcat team announces the immediate availability of Apache Tomcat 7.0.26

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This release is primarily a bug fix release and includes numerous bug fixes compared to version 7.0.25. The notable bug fixes include:

  • Improved @HandlesTypes processing which no longer loads all classes on web application start.
  • Ensure that POST bodies are available for reply after FORM authentication when using the AJP connectors
  • Corrected a regression that broke annotation scanning for many use cases including web applications packaged as WARs and many embedded scenarios.

Please refer to the change log for the complete list of changes:
http://tomcat.apache.org/tomcat-7.0-doc/changelog.html

Note that this version has 4 zip binaries: a generic one and three bundled with Tomcat native binaries for Windows operating systems running on different CPU architectures.

Read More

0 comments   |  

0
Rating
  |  

Developers, Operations | Apache Tomcat 7