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!
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 PostingThe 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 PostingThis 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 PostingIn 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 PostingChapter 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,
Back to Top
Floyd Marinescu
Director of TheServerSide.com
Author, EJB Design Patterns
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