CIT 421 MODULE 1
MODULE 1: NET-CENTRIC COMPUTING
FUNDAMENTALS
UNIT 1: INTRODUCTION TO DISTRIBUTED
COMPUTING
CONTENTS
1.0 Introduction
2.0 Intended Learning Outcomes (ILOs)
3.0 Main Content
3.1 Distributed Computing
3.2 Web 2.0 Technologies
3.3 Service Orientation
3.4 Virtualization
4.0 Self-Assessment Exercises
5.0 Conclusion
6.0 Summary
7.0 References/Further Reading
INTRODUCTION TO MODULE
Module 1 presents the essentials of Net-centric computing. Here, we are
going to discuss the concepts of established networks in different location
and job running on each simultaneously (distributed computing) the
output of which are to be combined after completion, mobility issues and
the security of resources running on different autonomous systems as well
as when being transmitted from one point to the other. Others include
client/server concepts and web building.
1.0 INTRODUCTION
A Distributed System is a system whose components are located on
different networked computers, which communicate and coordinate their
actions by passing messages to one another from any system in order to
appear as a single system to the end-user. The computers that are in a
distributed system can be physically together and connected by a local
network, or they can be geographically distant and connected by a wide
area network. A distributed system can consist of any number of possible
components such as mainframes, personal computers, workstations,
minicomputers, and so on. Common use cases of a distributed systems are
electronic banking systems, massive multiplayer online games, and
sensor networks.
1
CIT 421 NET-CENTRIC COMPUTING
1.1 Functionality
There are two general ways that distributed systems function:
a. Each component of the system works to achieve a common goal
and the end-user views results as one combined unit.
b. Each component has its own end-user and the distributed system
facilitates sharing resources or communication services.
1.2 Architectural models
Distributed systems generally consist of four different basic architectural
models:
a. Client-server — Clients contact the server for data, then format it
and display it to the end-user.
b. Three-tier — Information about the client is stored in a middle tier
rather than on the client, to simplify application deployment.
c. n-tier — Generally used when the server needs to forward requests
to additional enterprise services on the network.
d. Peer-to-peer — There are no additional nodes used to provide
services or manage resources. Responsibilities are uniformly
distributed among components in the system, known as peers,
which can serve as either client or server.
2.0 INTENDED LEARNING OUTCOMES (ILOS)
By the end of this unit, you will be able to:
Explain the concept of distributed systems
Describe the Architectural Models of Distributing Computing
Explain the term, Service Orientation
Describe the concept, Virtualization
3.0 MAIN CONTENT
3.1 Distributed computing
Distributed Computing is a much broader technology that has been
around for more than three decades now. Distributed computing is
computing over distributed autonomous computers that communicate
only over a network. Distributed computing systems are usually treated
differently from parallel computing systems or shared-memory systems
where multiple computers share a common memory pool that is used for
communication between the processors. Distributed memory systems use
multiple computers to solve a common problem, with computation
2
CIT 421 MODULE 1
distributed among the connected computers (nodes) and using message-
passing to communicate between the nodes.
Example of distributed computing is the grid computing where the nodes
may belong to different administrative domains. Another example is the
network-based storage virtualization solution which uses distributed
computing between data and metadata servers.
Figure 1.1.1: Distributed Computing Systems
Distributed computing, however, can include heterogeneous
computations where some nodes may perform a lot more computation,
some perform very little computation and a few others may perform
specialized functionality (like processing visual graphics).
One of the main advantages of using distributed computing is that
efficient scalable programs can be designed so that independent processes
are scheduled on different nodes and they communicate only occasionally
to exchange results – as opposed to working out of a shared memory with
multiple simultaneous accesses to a common memory.
It is obvious that cloud computing is also a specialized form of distributed
computing, where distributed Software as a Service (SaaS)
applications utilize thin clients (such as browsers) which offload
computation to cloud-hosted servers (and services).
Distributed computing, virtualization, service orientation, and Web 2.0
form the core technologies enabling the provisioning of cloud services
from anywhere on the globe.
Distributed computing is a foundational model for cloud computing
because cloud systems are distributed systems. Besides administrative
tasks mostly connected to the accessibility of resources in the cloud, the
3
CIT 421 NET-CENTRIC COMPUTING
extreme dynamism of cloud systems—where new nodes and services are
provisioned on demand—constitutes the major challenge for engineers
and developers.
3.2 Web 2.0 technologies
Web 2.0 technologies constitute the interface through which cloud
computing services are delivered, managed, and provisioned. Besides the
interaction with rich interfaces through the Web browser, Web services
have become the primary access point to cloud computing systems from
a programmatic standpoint.
3.3 Service Orientations
Service orientation is the underlying paradigm that defines the
architecture of a cloud computing system. Cloud computing is often
summarized with the acronym XaaS meaning, Everything-as-a-
Service—that clearly underlines the central role of service orientation.
Infrastructure-as-a-Service solutions provide the capabilities to add and
remove resources, but it is up to those who deploy systems on this scalable
infrastructure to make use of such opportunities with wisdom and
effectiveness.
Platform-as-a-Service solutions embed into their core offering algorithms
and rules that control the provisioning process and the lease of resources.
These can be either completely transparent to developers or subject to fine
control. Integration between cloud resources and existing system
deployment is another element of concern.
3.4 Virtualization
Virtualization is another element that plays a fundamental role in cloud
computing. This technology is a core feature of the infrastructure used by
cloud providers. Virtualization concept is more than 40 years old but
cloud computing introduces new challenges, especially in the
management of virtual environments, whether they are abstractions of
virtual hardware or a runtime environment
Discussion
Which of the security infrastructure is most critical and why?
4.0 Self-Assessment Exercises
1. Describe two Service Orientations
2. What is Virtualization?
4
CIT 421 MODULE 1
3. Give an advantage of Distributed Computing.
Answer
1. Infrastructure-as-a-Service solutions provide the capabilities to
add and remove resources, but it is up to those who deploy systems
on this scalable infrastructure to make use of such opportunities
with wisdom and effectiveness.
Platform-as-a-Service solutions embed into their core offering
algorithms and rules that control the provisioning process and the
lease of resources. These can be either completely transparent to
developers or subject to fine control. Integration between cloud
resources and existing system deployment is another element of
concern.
2. Virtualization is the core feature of the infrastructure used by cloud
providers. but cloud computing introduces new challenges,
especially in the management of virtual environments. Virtual
environments could be abstractions of virtual hardware or a
runtime environment.
3. One of the main advantages of using distributed computing is that
efficient scalable programs can be designed so that independent
processes are scheduled on different nodes and they communicate
only occasionally to exchange results
5.0 CONCLUSION
Distributed computing is computing over distributed autonomous
computers that communicate only over a network. Distributed computing
systems are usually treated differently from parallel computing systems
or shared-memory systems, where multiple computers share a common
memory pool that is used for communication between the processors
6.0 SUMMARY
Virtualization is another element that plays a fundamental role in cloud
computing. Platform-as-a-Service solutions embed into their core
offering algorithms and rules that control the provisioning process and the
lease of resources. Infrastructure-as-a-Service solutions provide the
capabilities to add and remove resources, but it is up to those who deploy
systems on this scalable infrastructure to make use of such opportunities
with wisdom and effectiveness. One of the main advantages of using
distributed computing is that efficient scalable programs can be designed
so that independent processes are scheduled on different nodes and they
communicate only occasionally to exchange results.