Featured Blogs
Spring MVC 3.2 Preview: Adding Long Polling to an Existing Web Application
Spring MVC 3.2 Preview: Making a Controller Method Asynchronous
Using Cloud Foundry Workers with Spring
Spring MVC 3.2 Preview: Techniques for Real-time Updates
Spring MVC 3.2 Preview: Introducing Servlet 3, Async Support
How Apache Tomcat Implemented WebSocket
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:
- Send messages
- Receive messages
New Video: Installing Agents Automatically Using vFabric Application Director
Earlier this year, VMware announced a new product called vFabric Application Director. Application Director is a new product that runs atop VMware vCenter Director that helps application architects visually plan, build and deploy applications to cloud infrastructure. Today, Eitan Gayor, a VMware engineer, published a new video that shows a very simplified version of how he can build a plan and deploy a single server, including the VMware vFabric Application Performance Manager (APM) agent. APM is a new offering that combines Hyperic, Spring Insight and a new product called AppInsight together to provide a single pane of glass for application administrators that automatically keeps pace with application changes, makes it easy to interpret application-level performance and provides direct access to fix problems.
Gayor further describes Application Director and its key concepts as:
The key purpose for Application Director is to automate the provisioning of infrastructure and applications so it happens faster, with fewer errors, and with less headache. If you’ve ever used a standard catalog of parts, you’ll get the idea immediately because Application Director stores information in a visual representation called a blueprint. What’s in a blueprint? Basically, a blueprint includes everything you would use to build, configure, and deploy a server or group of servers to build out your application. Blueprints define all the components like the operating system, virtual machine templates, web server, application server, database server, monitoring software, packaged software, EAR, SQL, or WAR, etc. All these components are available to drag and drop onto your blueprint’s canvas from a standard catalog. Once the core building blocks are in place on your blueprint, you can further tailor your application build plan by including dependencies, policies, and configurations.
About the DemoThe SlideRocket demo illustrates three important parts of building an application using Application Director:
- Building the blueprint is intuitive and quick using drag and drop capabilities.
- Incorporating management capabilities, such as the vFabric Application Performance Manager (APM) agent takes just seconds using the pre-populated catalog service.
- Deploying the blueprint to be provisioned on your target server is as fast as just one click.
To deploy another server, just re-use the blueprint, add the new server, add any dependencies, and redeploy the improved application infrastructure.
About Application Performance MonitoringVMware vFabric Application Performance Manager provides vFabric Hyperic customers with real-time visibility on their applications performance from a users point-of-view to help better manage SLAs in the cloud. Driven by VMware vFabric AppInsight, and fused with the metric data and control of vFabric Hyperic, you now have a next-generation application operations dashboard that automatically models transactions across all application tiers, providing a critical real-time perspective on the true performance of dynamically scaling applications.
Upgrade before June 30, 2012 to vFabric Application Performance Manager for just $99. See offer for more details.
WebSockets in Tomcat 7
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.
Create Spring Integration Projects using STS
Migrating to Spring 3.1 and Hibernate 4.1
Apache Tomcat 7.0.27 Released
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.
Secure Data Binding With Grails
Integrating Jenkins and Apache Tomcat for Continuous Deployment
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.
Early Access: SpringSource Tool Suite for Eclipse Juno (4.2)
Introducing Spring Integration Scala DSL
Introducing Spring for Apache Hadoop
Apache Tomcat 7.0.26 Released
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.
Spring Roo 1.2.1.RELEASE available
Announcing the New Hyperic VMware Community
We are proud to announce that the former Hyperic Forums have been successfully migrated to a new Hyperic VMware Community. As stated in a blog late last year, this is an important milestone for Hyperic users worldwide. This marks the final step in the transition of the customer experience into the larger family of products and support offered by VMware that help to dramatically simplify IT and reduce operational expenses.
Benefits are substantial for Hyperic users. As mentioned in a post earlier this year, they include:
- Single place to get help and collaborate on issues involving systems management, software development and virtualization.
- With over 1.2 million community members, including VMware product, support and field teams, this is the largest technology community leading the market on bringing the enterprise to the cloud.
- The largest resource knowledge base for VMware products, users can find sample code, SDKs, and APIs to help with all their development needs.
The new Hyperic VMware Community retains all of the former forum category organization, as well as the complete history of all announcements, messages and threads. Each thread from the former Forums will now be redirected to the new VMware Communities to aid in search or if users have bookmarked popular topics.
User history has been attached based on email address. If a user’s email address did not exist in the VMware Community, a new account was created for them and the user was notified to register now. All reward points have been transferred and users now gain credit under the VMware Communities rewards program.
Got questions? For questions on the migration, please check out the Hyperic VMware Communities Migration FAQ or, for general questions on how the VMware Communities work, see the VMware Communities FAQ.
Haven’t used the VMware Communities yet? All Hyperic users, including open source and enterprise users, are welcome to join. To join, go to the VMware Communities login and click Register.

