Architecture . . . the adaptation of form to resist force.
What Is Architecture?
The architecture of a system defines its basic components and important concepts and describes the relationships among them. There are many different ways to approach systems for Internet commerce, ranging from the simple to the complex. In part, the architecture depends on the nature of the business, and the system architecture developed for a consumer retail system might be very different from that for a publishing system. We believe that many design ideas span a wide range of commercial requirements, and that the similarities among systems for Internet commerce are much greater than the differences. This chapter describes a core architecture for Internet commerce systems, which can be adapted for many applications.
Why should we have a general architecture? Why not simply build the systems focused on a single application? For us, a practical answer is that, in our experience building systems for Internet commerce for several years, reusing the architecture and design work where possible is best for the customers. More important, however, is that as businesses refine and evolve their goals for Internet commerce, their systems need to evolve as well. That evolution may go well beyond the original requirements for the system, so the flexibility of the architecture is critically important in making that growth possible. For example, a software store may begin by taking _orders over the Internet and sending out boxes with manuals and CD-ROMs. Later, it may want to deliver software over the network as well. If the original system does not handle o_nline delivery, the store may find itself facing significant development or upgrade costs to add this capability. Note that the original system might not have implemented the o_nline delivery subsystem, but it should be straightforward to add it if the original _architecture and design were done with that idea in mind.
In this chapter, we describe the kinds of thinking that go into creating an architecture, explore some of those areas in more depth, and present some examples of practical architectures for Internet commerce.