The site's lack of support for important standards, sensible within a
homogeneous environment, makes it difficult to integrate with the rest
of the enterprise.
The original layer architect's assumptions in this case are working against us.
Many of the antipatterns in this topic have their roots in this conflict between
initial development simplicity and subsequent needs for scalability, extensibil-
ity, and performance. Initial assumptions can lead to shortcuts that burn you
badly as your project evolves. I spent the first four years of my consulting
career picking up broken glass from this type of scenario. In many instances, a
customer takes a simplistic, oversold technology; builds a system in a short
time without a concrete design; and pushes it broadly into production. I recall
chatting on a plane with executives of an airline reservation system. Just
before, one of our salespeople tried to sell a version of Basic as the best tool to
build the next generation of one of the largest reservation systems in the
world! These executives got a good chuckle, but many will take the bait. The
lure of simplicity makes them believe outrageous sales claims: the simplistic
environment is just as robust and scalable as any other environment. The trick
to success is to ask relevant questions like these:
What does each layer bring to the table? We should understand the
value of each additional layer, and ask the vendors to provide references
and prove their worth.
What is the cost? We need to be insistent about establishing cost . The
lure of something for nothing can often cloud the judgment of the most
sensible. Java technologies are no different. EJB s have often been over-
sold, and to customers who have little or no chance for success.
Under what circumstances are those layers likely to break? What is our
risk ? In essence, we want to find the traps. This topic explores some
likely traps surrounding server-side Java. In this overview, as we build
up the various layers of the Internet, we will also notice the types of
nooks and crannies that conceal other traps.
What can we do to protect ourselves from the trap, and how can we
extricate ourselves once we've fallen in?
Finally, we want to establish our risk mitigation . This is the realm of the