Domain-driven design with Java EE 6
When a Java EE application needs to implement type-specific behavior for domain objects, a procedural, service-oriented approach
leads to unnecessary code and hard-to-maintain logic. Learn about Java EE's architectural flip-side: domain-driven design
that lets you make the most of Java's object-oriented roots.
Adam Bien,
May 2009
Clojure: Challenge your Java assumptions
Clojure's immutable datatypes, lockless concurrency, and simple abstractions make parallel programming for multicore hardware
simpler and more robust than in Java. Joshua Fox takes you on a tour of this exciting new language for the JVM, which was
just recently released in v1.0.
Joshua Fox,
May 2009
Building cloud-ready, multicore-friendly applications, Part 2: Mechanics of the cloud
What's all that airy stuff we're calling "the cloud"? Appistry's Guerry Semones explains the mechanics of how cloud platforms
take your cloud-ready application code to the next level.
Guerry Semones,
April 2009
Lean service architectures with Java EE 6
Thanks to Java EE 6's simplified development model, a few interfaces and annotated classes are all you need to implement the
facade, the service, and the domain structure that constitute a lean service-oriented architecture. Surprised? Read on.
Adam Bien,
April 2009
REST for Java developers, Part 4: The future is RESTful
Find out why REST interfaces are foundational for emerging architectures such as the Semantic Web. Brian Sletten takes a big-picture
view of REST, now and in the future, in this final article in his series.
Brian Sletten,
April 2009
Lamport's one-time password algorithm (or, don't talk to complete strangers!)
The Lamport algorithm provides an elegant scheme for generating and applying one-time passwords, or OTP. Find out how Lamport
works, then see it in action with an OTP reference implementation for an extensible, Java-based library.
Louis J. Iacona,
March 2009
Open source Java projects: Jakarta Cactus
Unit-testing server-side code is famously challenging, but Jakarta Cactus does make it easier. Learn how Cactus extends JUnit
with an in-container strategy that lets you execute test cases for servlets, EJBs, and other server-side code. You'll also
learn how to automate your Cactus-based tests.
Steven Haines,
March 2009
Java concurrency with thread gates
The thread gate pattern is an effective tool for managing thread concurrency, but not many developers know about it. Fire
up your IDE for a quick tutorial in implementing thread gates in multithreaded business applications.
Obi Ezechukwu,
March 2009
Building cloud-ready, multicore-friendly applications, Part 1: Design principles
Atomicity, statelessness, idempotence, and parallelism: that's your ticket to code that's ready for both modern multicore
chips and the future of distributed -- or cloud -- computing. Appistry engineer Guerry Semones introduces these four pillars
of distributed design.
Guerry Semones,
March 2009
Understanding actor concurrency, Part 1: Actors in Erlang
As multicore hardware continues to mature, the shared-state concurrency model that Java and other mainstream languages depend
on is headed toward obsolescence. Learn how Erlang, a functional language, implements an increasingly relevant alternative
for structuring concurrent applications.
Alex Miller,
February 2009
REST for Java developers, Part 3: NetKernel
Transitioning from an object-oriented to a resource-oriented perspective means letting go of your ideas about how things should
work. Give it a try with this introduction to NetKernel: a URI-based microkernel environment that relaxes object bindings
to enable more scalable and maintainable RESTful systems.
Brian Sletten,
February 2009
Open source Java projects: Terracotta
Get a primer on clustering, including its typical failure points in serialization and redundancy. Then find out how Terracotta
overcomes these challenges in JavaWorld's hands-on introduction to enterprise clustering with Terracotta.
Steven Haines,
January 2009
Distributed transactions in Spring, with and without XA
Before you settle on a transaction-processing pattern for your Spring application, make sure you understand the variety of
options and how each one will impact the performance, safety, reliability, and data integrity of distributed applications.
SpringSource engineer David Syer walks through seven patterns for distributed transaction processing in Spring.
Dr. David Syer,
January 2009
Continuous integration with Hudson
Looking for a continuous integration server solution? Hudson is free and open source, and configuration is a snap. This article
gets you started with Hudson in a Windows or Linux environment using JBoss AS or Tomcat 6.
Nicholas Whitehead,
December 2008
Automated code reviews with Checkstyle, Part 1
Smart teams use automated code reviews to find bugs and improve code quality. Get started with the source-code analyzer Checkstyle
and learn how to use its built-in rules along with your own custom checkers. See Part 2 for a tutorial on keeping faulty code
out of your code base.
ShriKant Vashishtha and Abhishek Gupta,
November 2008