[TheServerSide Newsletter #39]
 This newsletter is sponsored in part by RemoteApps Xyrian
Want to achieve more with fewer resources? Want to standardize your approach to developing J2EE apps? Want to develop apps once and reuse with multiple front ends e.g. J2ME, Web, Voice, etc? Can you achieve TRUE J2EE Rapid Application Development using existing skills, toolsets and IDEs? Try Xyrian- Instant Architecture and Functionality to Simplify the Creation and Management of J2EE apps.
Download your FREE Developer Edition and experience Xyrian for yourself!

IN THIS ISSUE



Hard Core Tech Talks
 o Doug Purdy - Program Manager, Microsoft XML Web Services Team

Featured Technical Article
 o Intro to Java Message Service 1.1

New Public Review Book Chapters
 o Struts Chapter 14: Using Tiles
 o Struts Chapter 16: Addressing Performance
 o JMX In Action Chapter 5: MBeans for changing resources
 o JMX In Action Chapter 12: More agent services: monitors and timers

Tales From TheServerSide
 o Using Java Singletons is Ok - If Used Correctly

New Patterns
 o A Simple Data Integration Pattern: Lookup
 o Widget Pages
 o Bluddy Big Transactions: How to deal with deadlocks

New App Server Reviews
 o ATG Dynamo merits and de-merits

Key J2EE Industry News Headlines
 Some key headlines:
 o Orion 1.6 J2EE Server Now Available
 o BEA Launches Portal Server 7.0 and Portal Builder Site

This newsletter is transmitted twice a month. It is printer-friendly and available online



NEW HARD CORE TECH TALKS





Get leading edge information on current J2EE issues and trends from those who know it best, the gurus and grandmasters, in Hard Core Tech Talks! Videos Hosted on HostJ2EE.com. Featured this week is Doug Purdy, who compares .NET and J2EE


Doug Purdy - Program Manager, Microsoft XML Web Services Team


TSS presents a new Hard Core Tech Talk interview with Doug Purdy, a Program Manager with Microsoft's XML Web Services Team. The intention of the interview was to learn about .NET from the perspective of a J2EE architect;What followed was a fascinating comparison of both features and application design strategies of .NET and J2EE.

Click here to watch Doug Purdy's Video Interview


Back to Top


FEATURED COLUMN



Intro to JavaTM Message Service 1.1
By Imtiyaz Haque

JMS is now the de facto standard API for Message Oriented Middleware. The latest specification, JMS 1.1, is a maintenance release for prior JMS versions by Sun Microsystems. The enhancements include the unification of the Pub/Sub and PTP domains under a common programming and transactional model along with some minor API modifications. This article illustrates how to program using the new features of the JMS 1.1 API. The new features in JMS 1.1 are demonstrated through a sample application.

Read the article here


Back to Top


 This newsletter is sponsored in part by BEA
Enjoy greater Java development success and get exclusive content by joining dev2dev, free from BEA. Stay ahead of the curve with an expert developer community, technical articles and book excerpts, a monthly newsletter, exclusive discounts and events, code samples and evals, and our powerful partner network. Keep up with developing BEA technologies. Click here to join free: http://dev2dev.bea.com/membership/index.tss


NEW BOOK CHAPTERS FOR PUBLIC REVIEW



TheServerSide is pleased to announce that it will be hosting a book review process for Manning's "JMX In Action", by Ben Sullins and Mark Whipple and also an upcoming O'Reilly book on Struts, by Chuck Cavaness. Chapters from these books will be posted to TSS as they are written for public feedback. Note: All review chapters for the Struts Book have been posted. The review process for the Struts book ends July 31, 2002 . Thanks to all ServerSide members who have provided their feedback during the review period.


Struts Chapter 14: Using Tiles
First Public Review Posting

The Tiles framework is an advanced Templating framework that reduces the amount of redundant code a web application contains, also allowing developers to better separate content from the layout.

Read/Review the chapter here.


Struts Chapter 16: Addressing Performance
First Public Review Posting

This chapter explores the performance implications of using the Struts framework and its associated technologies to build web applications, and how certain design and programming decisions will affect overall performance.

Read/Review the chapter here.


JMX In Action Chapter 5: MBeans for changing resources
First Public Review Posting

In this chapter, you will manage a Jini service with a Dynamic MBean. The MBean will be responsible for changing how the Jini service advertises itself across a network.

Read/Review the chapter here.


JMX In Action Chapter 12: More agent services: monitors and timers
First Public Review Posting

Chapter 12 discusses all three JMX monitoring MBeans and the timer service. We'll examine their classes and purpose, and present some examples. Up first are the monitoring services.

Read/Review the chapter here.


Back to Top


TALES FROM THESERVERSIDE



Using Java Singletons is Ok - If Used Correctly

There is a lot of Fear, Uncertainty and Doubt (FUD) about the role of Singletons in EJB. The original Singleton pattern suggests creating a java class that contains a static instance of itself, so that only one instance of the class will run in an application. The EJB spec states that EJB's should not use static fields, nor should they use synchronization primitives (such as the synchronized keyword). Many developers have incorrectly assumed that this means that an EJB cannot call out to a Singleton, since the Singleton itself makes use of a static field and the synchronized keyword.

This assumption is false. There is nothing wrong with using a Singleton class, as long as developers DO NOT use it in read-write fashion, in which case EJB threads calling in may need to be blocked. It is this type of behaviour that the spec is trying to protect against. Using a singleton for read-only behaviour, or any type of service that can allow EJB's to access it independently of one another is fine.

One caveat with using Java Singletons is that it is impossible to create a singleton in the classic sense - one instance of an object per application. At the very least, any Singletons used will have one copy per server JVM, and usually will have one instance per class loader (each deployed ejb-jar will have its own separate class loader, and its own Singleton if it uses one).

Use a java Singleton class when you would like to create a non-blocking service in which you do not mind having a few copies around, but do not want the pooling and memory overhead of implementing the service as a stateless session bean. For example, a primary key generator (such as the UUID for EJB or Sequence Block patterns) would provide a lighter weight and more efficient implementation choice than a stateless session bean.

If you are interested in learning more about J2EE Design Patterns, you should check out The Middleware Company's new J2EE Patterns Course, an intensive, hands-on 5 day course on the most successful patterns and best practices in use in the J2EE community today. It is offered in North America, Europe, and Australia.

Take Care,

Floyd Marinescu
Director of TheServerSide.com
Author, EJB Design Patterns

Back to Top


NEW PATTERNS



A Simple Data Integration Pattern: Lookup
By Federico K

Many times, when you are in the process of developing data integration applications, you need to verify if an external entity is already on the target storage. If not, you need to insert the external entity into the target storage.

Read more on this review.


Widget Pages
By Guilherme Silva

Provide a presentation framework based on XMLC by integrating Barracuda´s component model. Make it easy to integrate with Barracuda´s event model. Provide compile time checking for XMLC generated getter methods. Avoid getting DOM elements without using XMLC generated getter methods. Hide any underlying component model. Hide XMLC itself.

Read more on this review.


Bluddy Big Transactions: How to deal with deadlocks
By Hugh Madden

After reading Bitter Java, I'll have to present this one as an anti-pattern: "Bluddy Big Transactions". With declarative transactions in EJB, it's too easy to make big transactions causing contention, and inreasing the chance of deadlock. I present a few (incomplete) patterns to resolve this, and ask for your input on what the best solution is.

Read more on this review.

Back to Top





NEW APP SERVER REVIEWS



ATG Dynamo merits and de-merits
By kare naveen

I worked mostly on DAS which has nothing to loose with its close competitors like BEA, IBM and has the added advantage of being economically feasible.The Dynamo component architecure is one of the best architecures where each component is a Nucleus componenet and adheres to MVC. One disadvantage is having to startDynamo everytime you make a change in class or properties. This could be better solved by maintainig xml files which pick at run time. The debug messages do not exactly pin point the exception.

Read more on this review.

Back to Top



 This newsletter is sponsored in part by Wakesoft
Get greater control, re-use and flexibility out of your J2EE applications. Learn how to speed development with well-structured application architecture while using your favorite development tools and application servers. Attend a free, technical webinar on "Implementing J2EE Application Architecture" with Wakesoft. http://www.wakesoft.com/serverside.html



KEY J2EE INDUSTRY HEADLINES


JPublish Open Source Web App Framework 1.0 Released

Version 1.0 of the JPublish web application framework is now available at http://www.jpublish.org/. JPublish is an open source web publishing framework which merges the Velocity template engine from the Jakarta Apache group with a content repository and application control framework. Like all good web frameworks, JPublish provides a clean separation of code, content, and layout.

Click here to read more.


Orion 1.6 J2EE Server Now Available

Those who are fans of Orion Application Server from Ironflare will be glad to know that 1.6.0 has been released. While not yet fully J2EE 1.3 compliant it does feature EJB 2.0 CMP and EJB QL support, among other items, including JMS fixes.

Click here to read more.


Tangosol Announces Coherence 1.2 Clustered Cache

Tangosol has announced the 1.2 release of Coherence, its clustered cache product. The new version provides distributed caching and automatic cluster restart, support, HTTP Session replication for Websphere, and more. Built in pure Java, Coherence adds clustering to any J2EE server.

Click here to read more.


Modeling Usage Low; Developers Confused About UML 2.0, MDA

Many major software tools vendors are promoting formal modeling and Object Management Group’s MDA initiative, as well as supporting mappings of it to J2EE architectures. However, MDA has not taken off. Only about one-third of developers recently surveyed said they use UML, and not a single respondent believes that code generated from models is generally production-ready.

Click here to read more.


HP Exits J2EE Application Server and Web Services Markets

After a two-year effort, HP is shutting down its line of NetAction products which included the Bluestone J2EE application server it had acquired in October 2000 for $470 million. According to Giga, HP had 4% of the appserver market. HP will instead focus its J2EE efforts on its OpenView network management tools.

Click here to read more.


BEA Launches Portal Server 7.0 and Portal Builder Site

BEA has unveiled BEA WebLogic Portal 7.0. WL Portal is a J2EE-based platform aimed at simplifying the development, deployment, and management of enterprise portals by providing frameworks, services and tools that deliver features such as personalization, skins, data integration, portlet-based UI development, workflow, etc.

Click here to read more.




Back to Top


UNSUBSCRIBE


If you are receiving this newsletter it is because you signed up as a member of TheServerSide.com and elected to receive our newsletters. To unsubscribe from TheServerSide.com's bi-weekly newsletter, log on to TheServerSide and edit your user profile. Email webmaster@theserverside.com if you are having problems editing your profile.

Visit The Middleware Company.



This newsletter and contents are Copyright (c) 2002 The Middleware Company