Distributed programming falls out of the use of computers to form networks. Distributed programming typically falls into one of several basic categories:

  • Client/Server -- Smart client code contacts the server for data, then formats and displays it to the user. Input at the client is committed back to the server when it represents a permanent change.
  • 3 Tier architecture -- Three tier systems move the client intelligence to a middle tier so that stateless clients can be used. This simplifies application deployment. Most web applications are 3-Tier.
  • N-Tier architecture -- N-Tier refers typically to web applications which further forward their requests to other enterprise services. This type of application is the one most responsible for the success of application servers.
  • Remote procedure call -- This distribution system maps function calls to the network.
  • Distributed objects -- Systems like CORBA, Microsoft D/COM, Java RMI and others, try to map object oriented design to the network
  • Loosely coupled -- Loosely coupled systems are ones that communicate through intermediate documents that are typically human readable. Examples include XML, HTML, SGML, X.500, and EDI.
  • Tightly coupled (clustered) -- refers typically to a set of hightly integrated machines that run in parallell the same process, subdividing the task in parts that are made individually by each one, and then put back together to make the final result.