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.
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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|