Broad Network Access

Cloud computing separates computing capabilities from their consumers, so that they don’t have to maintain the capabilities themselves. A consequence of this is that the computing capabilities are located elsewhere, and must be accessed over a network.

Network

A computer network is a collection of two or more computers linked together for the purposes of sharing information. ISO and IEC defined the Open Systems Interconnection (OSI) model of networking that consists of the following 7 layers:
OSI Network Model

  1. Physical Layer
    The Physical Layer defines the means of transmitting raw bits over a physical link connecting computers, or network nodes. The bit stream may be grouped into code words or symbols and converted to a physical signal that is transmitted over a hardware transmission medium. Protocols at this layer include USB, Wi-Fi, (A)DSL, and Bluetooth.
  2. Data Link Layer
    The Data Link Layer is concerned with local delivery of frames between devices on the same local area network (LAN) segment. A frame is a sequence of bits that are recognizable as a coherent data packet. The best known protocol at this layer is Ethernet.
  3. Network Layer
    The Network Layer is responsible for routing data packets from a source to a destination host via one or more networks while maintaining the quality of service functions. It does this by addressing hosts using the IP protocol. The Network Layer is connectionless.
  4. Transport Layer
    The Transport Layer provides end-to-end communication services for applications, like connection-oriented data stream support, reliability, flow control, and multiplexing. Protocols at this layer include TCP and UDP.
  5. Session Layer
    The Session Layer provides the mechanism for opening, closing and managing a session. A session consists of requests and responses that occur between communicating applications. NetBIOS is a protocol that operates at this level.
  6. Presentation Layer
    The Presentation Layer, or syntax layer, is responsible for the delivery and formatting of information and serves as the data translator for the network. The ASCII character encoding scheme operates at this level.
  7. Application Layer
    The Application Layer identifies communication partners, determines resource availability, and synchronizes communication. Protocols at this layer include HTTP and FTP.

Each layer in the model provides services to the higher level layers, all the way up until the application layer, which is the layer that applications interact with.

Programming Over a Network

Most applications that communicate over a network use the HTTP protocol. Some have added protocols on top of HTTP to form web services. The W3C defines a web service as a software system designed to support interoperable machine-to-machine interaction over a network. There are two major classes of web services: those based on SOAP and those based on REST.

Simple Object Access Protocol (SOAP) relies on Extensible Markup Language (XML) as its message format, and usually uses HTTP for message transmission. SOAP forms the basis of an entire stack of specifications, usually referred to as the WS-* stack. Web Services Description Language (WSDL) and Universal Description Discovery and Integration (UDDI) make it possible to discover web services that offer a certain service (using a UDDI registry), and then communicate with it (using WSDL), without having prior knowledge of either the vendor, or its API.

The WS-* stack is complex, and SOAP adds a significant amount of overhead, so there has been a trend to move away to simpler APIs. Representational State Transfer (REST) is an architectural style of programming that explicitly takes scalability into account. Instead of defining arbitrary operations in WSDL, REST uses only the HTTP verbs, which keeps the interface simple. REST APIs usually use either (or both of) XML or JavaScript Object Notation (JSON) as their message format.

There is a growing trend away from SOAP and towards REST, especially for cloud services. This has a lot to do with scalability. However, many APIs that claim to be RESTful don’t follow all of the constraints of the REST style, and should rather be referred to as HTTP based APIs.


Previous: On-demand Self-service Next: Resource Pooling

Please Join the Discussion

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s