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
Recent top five:
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