CIS 303a - Computer Architecture

Chapter 13, Internet and Distributed Application Services


This lesson is about IT system concerns that relate to running applications over the Internet or across other media that connect separate locations. Objectives important to this lesson:

  1. Distributed software architectures
  2. Using protocol stacks when connecting remotely
  3. Directory services and LDAP
  4. Interprocess communications
Chapter 13

Chapter 13 begins with a discussion about distributed software architecture. The main idea is that we will distribute the processing requirements of a system across many devices, and perhaps across many locations. Before proceeding with the discussion, the text reviews some standard networking models/methods.

If entities on a network act as peers, then this is Peer-to-Peer Networking. Devices on this kind of network can provide services to and request services of each other, and none has a restriction on which they do.

If entities act in strictly defined roles, as either servers or clients, but not as peers, then this is Server-Centric (Client-Server) Networking. Most PC networks are this type.

Most networks follow a client-server model. Clients typically perform some or most of the processing on the network, while servers provide services like data storage, instead of providing all the computing power. Client/server networks are typically easier to upgrade, both on the client side and on the server side.

The text expands on the client-server model with a description of a layered architecture. It is presented as having three layers, but can have as many as the system architect desires.

  • In a three-layer architecture, the data layer stores and uses data in databases, the business logic layer performs business processes, and view layer collects input and presents processing results.
  • In an n-layer model, more layers are added to simplify the construction of more complex systems.

On page 487, the text refers back to the network models mentioned in chapter 9. It tells us that different software will use different sets of protocols to communicate across a network. These different sets of protocols can be referred to as protocol stacks. This term is also used to refer to all related protocols in any protocol suite, such as the TCP/IP protocol suite being called the TCP/IP stack.

The text continues with the idea that connections to resources on other devices can be either static or dynamic connections. Some notes about static connections:

  • a static connection requires that we know a local object, resource, or service name for the remote resource as well as a name for the server it is on
  • a static connection requires that the local OS reestablish the connection to the remote resource each time we start our device; an example would be a persistent drive mapping to a network file share
  • static connections work best when the OS does not distinguish between local and remote resources; this is implemented by passing service requests through a resource locator that makes the request through local software or through network protocols
  • the resource locator maintains information about where resources are and how to get to them in a resource registry

Some notes about dynamic connections:

  • dynamic connections are subject to being found by a search engine each time they are requested.
  • resources found through Domain Name System searches are an example of dynamic connections
  • dynamic connections can be made by other kinds of directory services

Directory Services

  • LDAP - lightweight directory access protocol was developed from the X.500 standard developed by the ITU and from Directory Access Protocol, which does more than LDAP; the text makes my head hurt looking at the chart on page 493, which shows us a tree structure that starts at a root object, flows through country objects, organizational unit objects, then layers of organization objects, and finally to leaf objects
  • Active Directory - Microsoft networks use a directory service called Active Directory, which is based on LDAP and DNS, and uses a similar yet different tree structure for its layers of objects

On page 497, the text describes communication between processes on different computers taking place through network protocols, Three protocols are described:

  • sockets - a socket is an IP address, followed by a colon, followed by a number from 0 to 65,535 (a port number); sockets work on the Transport layer, which is the same on the OSI and TCP/IP models; the two numbers identify a server and a service running on it
  • named pipes - a port identifies a memory location where one process is running, but a pipe identifies a shared location where many processes on a computer can exchange data, like a shared file that all processes can read and write to
    - a named pipe is known to the file system of the computer it is on, and can be used by processes on multiple computers; communication may be established by a pair of pipes on two computers, each writing to the pipe on the other
  • remote procedure calls (RPCs) - a process on one computer directly calls a process on another computer, passing parameters to it and receiving parameters in return

Internet-based Services

The text spends a few lines defining the Internet (I hope people in this class know what that is), the World Wide Web (the graphic part that uses HTTP), and an intranet (a private network that works with the same protocols as the Internet).

On page 502, the text explains the layout of a typical URL (Uniform Resource Locator) that has four parts:

In the illustration above:

  • http:// is the protocol used for the request
  • is the host and domain name of the web server
  • :80 is the standard port for HTTP, which is not necessary in this case, but not wrong to use, preceded by a colon, which immediately precedes a port number
  • /CIS303a_2014_8.htm is the name of a specific resource, in this case the name of the file you are reading, preceded by a directory marking forward slash

Oddly, the author spends a couple of pages discussing several Internet protocols that we have discussed before. On page 506, he adds some new notation, showing a URL that calls a search engine, and uses a question mark to feed the engine a query string and a reference to format the reply for the browser being used.

On the same page, the text begins a discussion about using the Internet as the platform for an application.

  • a web browser is used by a client to contact a web server
  • the web server provides web pages, scripts, or Java applets
  • the web server may also contact a database server or call applications, using the methods discussed above

This is a version of the processes that are currently being marketed as being in "the cloud". The text mentions some of the shortcomings of this technology that should make us think about its limitations:

  • security is a concern for any application, especially one that flows across a publicly accessed medium
  • performance and reliability are limited not only by the equipment being used, but by the availability and throughput of the links being used throughout the session