In this chapter, we start on the ground floor and ask what distinguishes a distributed application from any other program. Although defining distributed applications might seem like an easy task, programmers (and programming authors) often misrepresent distributed architecture, equating it with component-based development or stateless design. To complicate matters, components in a distributed application can communicate in a variety of ways, particularly in Microsoft .NET, meaning that distributed application architecture isn't nearly as uniform as the client/server model. This chapter introduces distributed architecture, and explains how a distributed application is partitioned into components and tiers and hosted on multiple computers. This chapter will also provide a practical look at some of the advantages and complications that this design introduces. |