InfoQ

News

SpringSource's Adrian Colyer Details Spring in Production

Posted by Srini Penchikala on Nov 26, 2007 07:21 AM

Community
Java
Topics
Enterprise Application Blocks
Tags
Spring

Adrian Colyer from SpringSource (formerly called Interface21) hosted a webinar on "Spring In Production" topic three weeks ago. The presentation covered the topics on Spring Runtime Kernel architecture, how Spring supports enterprise services like transactions, data access, security, and messaging, and how to tune a Spring-powered application. A white paper on this presentation is now available for download from their website.

Adrian starts the presentation with an overview of Spring Runtime saying that it is responsible for creating and managing the application components, and for managing the execution of the requests serviced by those components.

The presentation covers the following three sections:

  • Kernel. It consists of AOP (Aspect Oriented Programming), Resource Loading Components, and Event server. The kernel instantiates and configures the application components and manages the invocations for all requests serviced by those components. Adrian explains the inner workings of the kernel with steps of bootstrapping, configuration and assembly as well as the post processing and life cycle management of the application components. He also explains the details behind the request dispatching, resource loading, and event management.
  • Enterprise Services Layer. The runtime components in the enterprise service layer are plugged into the kernel using Spring extension mechanisms such as namespace handlers and post-processors. These components provide support for transaction management, data access, exception management, messaging, and security. This section also describes how Spring runtime supports JMX Integration and Web Requests Handling requirements.
  • Performance Tuning. Adrian recommends a "measure first" approach to tune a Java EE application using the Spring framework, so the developers can avoid any premature optimization related issues. Measuring the application performance involves using tools such as Apache JMeter, Selenium, JAMon, and a code profiler (JProfiler or Yourkit Profiler) to find out the hotspots and establish the baseline of response times in each layer in the application. He suggests that developers utilize in-container resources for database connection pooling, JMS messaging, and JMX management purposes. He also offers design tips on when to use Hibernate versus JDBC queries and to make use of Hibernate Statistics object to understand what's happening at runtime in the ORM layer.

Adrian concludes the presentation by urging the developers to take the advantage of runtime optimizations such as moving an operation that contains only persistence logic (no business logic) into the database as a stored procedure and to consider using Spring's asynchronous task executors for tasks that can be run in the background.

"Spring In Production" white paper can be downloaded from SpringSource website after completing the registration details.

Speaking to InfoQ, Adrian said the focus of the series will be "on applied topics - rather than simply explaining product features, the webinars and white papers will address best practices in developing and deploying Spring-powered applications". The next event in the webinar series will be hosted early next year.

Some of the topics for the future presentations include:

  • Best practices for configuring and testing Spring applications.
  • Spring and Extreme Transaction Processing.
  • Spring applications deployed on specific server environments such as WebLogic, WebSphere, and Oracle application servers.

Any suggestions for topics of interest to the readers should be sent to Adrian and the SpringSource team.

1 comment

Reply

Production Monitoring of the Spring Container itself by William Louth Posted Nov 26, 2007 7:49 AM
  1. Monitoring Spring Containers http://blog.jinspired.com/?p=167 It is unfortunate Adian did not touch on issues that I mentioned to him during our discussions including the performance penalty for AspectJ load time weaving (http://blog.jinspired.com/?p=133), lack of integration with a mature problem diagnostics framework, and resource transaction analysis which is especially important considering the fact that Spring is offering it own transaction management configuration outside of the Java EE specifications. regards, William

Exclusive Content

Rob Windsor on WCF with REST, JSON and RSS

WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.

Christophe Coenraets Discusses Flex 3, AIR, and BlazeDS

Christophe Coenraets discusses Flex 3, Flex Builder, AIR, BlazeDS, Adobe and open source, integrating Flex with existing applications, and integrating RIAs with search engines and browsers.

Debunking Common Refactoring Misconceptions

Danijel Arsenovski attempts to dispel some of the myths around refactoring and how it applies to .NET developers.

REST Eye for the SOA Guy

In this presentation, recorded at QCon San Francisco, CORBA guru Steve Vinoski explains REST from the view of someone who comes to SOA from a traditional, RPC-oriented background.

Choose Feature Teams over Component Teams for Agility

Feature teams are key to scaling agility for large teams. In an excerpt from "Scaling Lean and Agile Development," Larman & Vodde show how feature teams resolve traditional problems & raise new issues

Billy Newport explains Virtualization

Billy Newport talks about virtualization, eXtreme Transaction Processing (XTP) and WebSphere Virtual Enterprise. He discusses hardware, hypervisor, JVM, application and data virtualization.

Virtualization and Security

While virtualization provides many benefits, security can not be a forgotten concept in its application.

Introduction to Agile for Traditional Project Managers

This session is specifically aimed at traditionally trained project managers who are new to Agile, and who would like to be able to relate the PMI's best practices to their Agile equivalents.