promise. It solves many of the antipatterns that were introduced with client /
Where client / server standards were proprietary, these standards are
open. The increased abstraction layers make it possible for disparate sys-
tems to communicate with ease.
The standards make it easy to deploy applications. Since the HTML user
interfaces are lightweight and delivered automatically, the client-side
administration burden is reduced significantly. Though visions of enter-
prisewide thin clients have still not materialized as expected, Internet
systems still significantly reduce the pain of administration.
The standards make it easier to develop common client user interfaces.
Supporting many different client types is inherently expensive. The
Internet's thin-client model can ease that burden significantly.
Few deny the impact of open Internet standards on modern application devel-
opment. We need to understand that there is a cost. Our user interfaces are
not going to be as sophisticated as the client / server counterparts. Distributed
networks are also not going to be as fast as local networks. If we are not pay-
ing attention, the top-level abstractions can easily hide the amount of work
that must be done to move data. We can easily be complacent and neglect to
take into account the cost of round-trip communications.
Mini-antipattern: Too Many Web Page Items
Throughout this topic, we will discuss explicit antipatterns, but also what we
call “mini-antipatterns”—small but common problems. The first antipattern is
an example dealing with the cost of Internet communications. Though each
Internet layer is incredibly efficient, we can easily underestimate communica-
tion costs. We have already seen that the path of an Internet request can be
deceptively long, including many Internet hops and layers. With the growing
sophistication of the artwork and dynamic content on many pages, the num-
ber of communications can exacerbate the problem. Let's take a look at a sim-
ple page and one with more complex graphics. Page Detailer is a tool that
shows the load times of all the individual HTTP items on a screen. Figure 2.3
www.yahoo.com. The page is deceptively simple and loads extremely quickly.
For this entire page, despite the dynamic nature of the content, only three
graphics and five distinct items loaded. The entire site loaded in half a second.