Save the JMS for last
Don't spend time configuring JMS when you need to be coding business logic. A decoupled application architecture lets you switch from synchronous to asynchronous processing at runtime.
Di Wang, July 2008

Spring Integration boosts service-based apps
SpringSource announces a new framework aimed at easing enterprise integration.
Paul Krill, December 2007

From Java EE security to Acegi
Application security as an enterprise-level concern needs to be carefully addressed by developers. This article compares the security services defined in Java EE and Acegi to help developers select the appropriate security services and program security from an enterprise-wide view.
Dr. Xinyu Liu, March 2007

Keep JMS simple with Spring and MantaRay
Java Platform, Enterprise Edition is complex and cumbersome. Using lightweight frameworks is a new trend, as illustrated by the popularity of Spring, a lightweight application framework. This article describes how to integrate Spring with MantaRay, a lightweight messaging solution, to create a distributed, easy-to-use-and-deploy application framework.
Amir Sehvat and Yuval Lubowich, June 2006

Axis meets MOM
Web services is positioned as the technology for integration. For architects and developers on Java/Java Enterprise Edition platforms, Apache Axis is a key open source means by which SOAP-based Web services can be enabled for service-providing components. Most common Web services implementations, in spite of all their strengths, still suffer from the unreliability of the HTTP protocol and Web environment. While WS-Reliability is emerging to be a strong reliability standard, solutions requiring guaranteed mechanisms need to rely on message-oriented middleware (MOM) technologies. Asynchronous store-forward MOM technologies such as MQSeries, MSMQ (Microsoft Message Queuing), and SonicMQ are proven ways to achieve reliable and guaranteed information exchange. This article describes a solution that combines MOM and Apache Axis to achieve both guaranteed delivery and standards-based Web services for your integration undertakings. Note: This article is based on Apache Axis 1.2. Axis 2 currently has not reached release 1.0.
Gautam Shah, February 2006

Capture the benefits of asynchronous logging
Application logging is a significant component in software development and always vital for an application's health. The traditional logging services are synchronous and prove to be an overhead especially in mission-critical states. Traditional logging does not provide distributed logging services effectively. In a distributed computing environment such as J2EE, clients are expected to log to a central database concurrently. J2EE architectures do not advocate logging to files or consoles. By taking advantage of Java Message Service (JMS), you can replace traditional synchronous logging with asynchronous logging. Asynchronous logging decouples clients from the log service, allowing nonblocking operations. The critical data is delivered once and only once in a guaranteed mode to the destination. The log messages can then be persisted using Hibernate with ease and comfort. This article develops such a log service using JMS and Hibernate.
Madhusudhan Konda, May 2004

Add concurrent processing with message-driven beans
Adding concurrency to an application in the J2EE (Java 2 Platform, Enterprise Edition) framework is severely restricted because of two main reasons; first, the EJB (Enterprise JavaBeans) specification restricts spawning new user threads in an EJB container, and second, methods on a session bean can only be invoked synchronously. However, many applications require concurrent implementations to ensure an acceptable response time. There are multiple ways to overcome these limitations. Messaging becomes the obvious choice because of its inherent asynchronous nature and strong integration with J2EE application servers via JMS (Java Message Service) and message-driven beans (MDBs). This article describes in detail how MDBs can effectively provide concurrency to J2EE applications.
Amit Poddar, July 2003

Manage users with JMS
Many enterprises have a federated set of homegrown and purchased applications that store their own copies of user contact information. In this age of mergers and acquisitions, a company's multiple business units or departments often carry redundant user information. Although most applications only store information about a specific application's users, the same user information is frequently stored in multiple applications. To maintain consistency and avoid customer confusion, these copies should be regularly synchronized, and they can be a challenge to maintain. In this article, we describe a simple solution to this common problem of maintaining consistent user information across various business applications.
Amit Goel and David Marshall, March 2003

Should you go with JMS?
Java developers must often determine whether JMS (Java Message Service) meets their requirements as a message-processing layer for their distributed systems. Issues such as application server performance, data distribution, security, and error handling must be considered. Then critical decisions about design and implementation need to be made. In this article, Thomas Laramee presents a quick overview of JMS, followed by a description of two real-world distributed systems, and analyzes potential JMS pros and cons for each system. Although the systems are architecturally similar, Thomas shows one system for which JMS is an appropriate choice and one in which it is not. He also suggests an alternative solution and offers general recommendations for when to use JMS and when to apply another strategy.
Thomas Laramee, October 2002

Listen to heartbeats using JMS
With heartbeats, a critical system broadcasts a signal that lets other systems know it is still working. You can apply the same concept between distributed Java components using JMS (Java Message Service). This article shows you how and introduces an extensible framework for implementation.
Nicholas Whitehead, March 2002

Transaction and redelivery in JMS
During architecture, design, and implementation, you must carefully consider using Java Message Service's (JMS) various transaction options. For a simple approach, you wouldn't use transactions; instead you would use acknowledgement modes, such as automatic, duplicates okay, and client. Another option uses transacted session for sending and receiving messages. Message-driven beans (MDBs) with container-managed transaction demarcation (CMTD) or with bean-managed transaction demarcation (BMTD) provides yet another alternative. This article clearly presents the available transaction options and carefully considers these options' impact on message redelivery. You'll gain a better knowledge of using JMS efficiently and effectively.
Prakash Malani, February 2002

Implement a J2EE-aware application console in Swing
Learn the fundamentals of Swing while creating a command console to control complex enterprise applications. A console provides a window into a system's operation and allows operators to configure, monitor, and control the system in real time. This article shows how to construct a generic console from Swing components that uses the Java Messaging Service (JMS) to interact with one or more application subsystems. Java 2 Platform, Enterprise Edition (J2EE) 1.3-compliant application components implement a JMS interface automatically, which makes integration with this console especially easy.
John Chamberlain, November 2001

Add the power of asynchronous processing to your JSPs
Applications based on message-oriented middleware (MOM), such as Java Messaging Service (JMS), tend to be more scalable than those based on remote procedure call (RPC) middleware, such as RMI. But that added scalability does not come for free. Because it forces the developer to think in a discontinuous and unnatural mode, asynchronous programming is inherently more complex than synchronous programming. In this article, Tarak Modi shows how to bring the power of JMS to JavaServer Pages developers who are excellent at content development but not interested in the intricacies of asynchronous programming. (3,700 words)
Tarak Modi, February 2001

Develop n-tier applications using J2EE
In this article, Steven Gould introduces the 13 core technologies of the Java 2 Platform, Enterprise Edition (J2EE): JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA, JavaMail, and JAF. To ground things in the real world, Gould explains J2EE in context of one of the its major implementations, BEA Systems' WebLogic Server. (3,200 words)
Steven Gould, December 2000

Dive into connection pooling with J2EE
Connection pooling is a technique used for sharing server resources among requesting clients. This article focuses on support for connection pooling of both database resources and nondatabase resources in a J2EE environment. Siva examines the JDBC 2.0, JMS 1.02, JNDI 1.2 Standard Extension APIs with regard to connection pooling and looks at some existing vendor implementations of those APIs. He then looks at the upcoming J2EE Connector Architecture 1.0 that would support a vendor-independent/pluggable approach to managing resource connections. (2,000 words)
Siva Visveswaran, October 2000

All

Let's talk about exceptions ...
How do you handle exceptions? Do you think upfront about the type of exceptions that you want to catch or do you just let the outside world handle it?

-- Jeroen van Bergen in JW Blogs

Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address: