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

Find more >

Newsletter sign-up
View all newsletters

Sign up for our Enterprise Java Newsletter

Enterprise Java