0% found this document useful (0 votes)
46 views

CSC 421 Course Outline and Introduction

Uploaded by

ikedichimo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

CSC 421 Course Outline and Introduction

Uploaded by

ikedichimo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

CSC 421: NET-CENTRIC COMPUTING

MR. K. C. OKETA
Course Outline
Distributed Computing
Overview of the course as a whole
Definition of distributed computing, its concept and
terminologies.
How computers are arranged in a distributed environment and
works.
Advantages and disadvantages of distributed computing.
Model / Configurations in Distributed System
The five models in distributed system
Properties of Minicomputer and Workstation models in distributed
system with appropriate examples.
Properties of Workstation Server and Processor Pool models in
distributed system with appropriate examples.
Properties of Hybrid model in distributed system with appropriate
examples.
Mobile and Wireless Computing
Definition of Mobile computing, its concept and components of
mobile computing.
Definition of wireless computing, its concept and definition of terms
involved.
Mobile computing devices and their features.
Things that must be present on a devices.
Limitations and current issues related to the data transfer technology
in mobile computing.
Merits and demerits of mobile and wireless computing.
Network Security
Definition of network security, network administrator
Important of Network security
The enemies that affect network and what they can do
Why network should be secured
Client Server Computing
Definition of Client, Server and their relationship
Client – Server architecture
Advantages and disadvantages of client server computing.
Micro Project: Development of Web Application
Overview of the Course
Introduction
In the world of computing, a lot of advancement and technological
improvements have been achieved of the past few decades. These
technological advancements have made it not only possible but also easy for
computing systems which are composed of large numbers of computers to
be connected by a high-speed network.
They are referred to as computer networks or distributed systems which is in
contrast to the previous centralized systems of a single computer with its
peripherals and perhaps some remote terminals.
Net-centricity have a great impact on computing at all levels; desktop,
embedded, server, workstation and even mainframe. The changes which
are occurring affect almost every affect of how we design and use
computer hardware and software, the way we design and use tools, the
application we develop and use which in turn may cause further
changes.
Net-centric computing isn’t communication or networking per se, ,
though it surely includes both but it goes farther than that, as it
encompasses the embedded arena and it’s much larger in scope.
Definitions
Distributed Computing is a field of computer science which studies
distributed systems.
Distributed system is a collection of independent computers that
appear to its user as single coherent system.
A distributed system is a collection of independent entities that
cooperate to solve a problem that cannot be individually solved.
Distributed system can also be defined as one in which hardware or
software components located at networked computers communicate
and coordinate their actions only by passing messages.
The definitions present several salient points. The first one is that
a distributed system consists of components (i.e., computers) that
are autonomous. A second aspect is that users (be they people or
programs) think they are dealing with a single system. This means
that one way or the other the autonomous components need to
collaborate. How to establish this collaboration lies at the heart of
developing distributed systems.
Note: A distributed execution is the execution of processes across
the distributed system to collaboratively achieve a common goal.
Challenges Associated with developing
Distributed Systems
 Heterogeneity
The Internet which is the largest form of distributed system enables users to
access services and run applications over a heterogeneous collection of
computers and networks.
Heterogeneity can be seen in the following area:
I. networks;
II. computer hardware;
III. operating systems;
IV. programming languages;
V. implementations by different developers.
Challenges Associated with developing
Distributed Systems
 Middleware: The term middleware applies to a software layer that
provides a programming abstraction as well as masking the
heterogeneity of the underlying networks, hardware, operating
systems and programming languages. The Common Object Request
Broker (CORBA), is an example. Some middleware, such as Java
Remote Method Invocation (RMI)
 Most middleware is implemented over the Internet protocols, which
themselves mask the differences of the underlying networks, but all
middleware deals with the differences in operating systems and
hardware.
Challenges Associated with developing
Distributed Systems
Middleware also provides a uniform computational model for use by the
programmers of servers and distributed applications. Possible models include
remote object invocation, remote event notification, remote SQL access and
distributed transaction processing.
Heterogeneity and mobile code: The term mobile code is used to refer to
program code that can be transferred from one computer to another and run at
the destination – Java applets are an example.
Challenges Associated with developing
Distributed Systems
 Openness
The openness of a computer system is the characteristic that determines whether the system
can be extended and re-implemented in various ways. The openness of distributed systems
is determined primarily by the degree to which new resource-sharing services can be added
and be made available for use by a variety of client programs.
 Open systems are characterized by the fact that their key interfaces are published.
 Open distributed systems are based on the provision of a uniform communication mechanism
and published interfaces for access to shared resources.
 Open distributed systems can be constructed from heterogeneous hardware and software,
possibly from different vendors. But the conformance of each component to the published
standard must be carefully tested and verified if the system is to work correctly.
Challenges Associated with developing
Distributed Systems
 Security
Many of the information resources that are made available and maintained in
distributed systems have a high intrinsic value to their users. Their security
is therefore of considerable importance. Security for information resources
has three components: confidentiality (protection against disclosure to
unauthorized individuals), integrity (protection against alteration or
corruption), and availability (protection against interference with the means
to access the resources).
Proper identification of the correct sender/server and the user or sender can be
solved using encryption techniques.
However, gray areas still remain unsolved:
 Denial of service attacks and security of mobile codes.
Challenges Associated with developing
Distributed Systems
 Scalability
Distributed systems operate effectively and efficiently at many different scales,
ranging from a small intranet to the Internet. A system is described as
scalable if it will remain effective when there is a significant increase in the
number of resources and the number of users.
Designing a scalable distributed systems presents the following challenges:
 Controlling the cost of physical resources
 Controlling the performance loss
 Preventing software resources running out
 Avoiding performance bottlenecks
Challenges Associated with developing
Distributed Systems
 Failure handling
Computer systems sometimes fail. When faults occur in hardware or software,
programs may produce incorrect results or may stop before they have
completed the intended computation. Failures in a distributed system are
partial – that is, some components fail while others continue to function.
Therefore the handling of failures is particularly difficult.
 Techniques for dealing with failures
 Detecting failures
 Masking failures
I. Retransmission of messages when they fail to arrive.
II. File data can be written to a pair of disks so that if one is corrupted, the other may
still be correct.
 Tolerating Failures
 Recovery from failures
Challenges Associated with developing
Distributed Systems
 Failure handling
Computer systems sometimes fail. When faults occur in hardware or software, programs
may produce incorrect results or may stop before they have completed the intended
computation. Failures in a distributed system are partial – that is, some components
fail while others continue to function. Therefore the handling of failures is
particularly difficult.
 Techniques for dealing with failures
 Detecting failures
 Masking failures
I. Retransmission of messages when they fail to arrive.
II. File data can be written to a pair of disks so that if one is corrupted, the other may
still be correct.
 Tolerating Failures
 Recovery from failures
 Redundancy
Challenges Associated with developing
Distributed Systems
 Concurrency
Both services and applications provide resources that can be shared by clients in
a distributed system. There is therefore a possibility that several clients will
attempt to access a shared resource at the same time. For an object to be safe
in a concurrent environment, its operations must be synchronized in such a
way that its data remains consistent. This can be achieved by standard
techniques such as semaphores, which are used in most operating systems.
Challenges Associated with developing
Distributed Systems
 Transparency
Transparency is defined as the concealment from the user and the
application programmer of the separation of components in a
distributed system, so that the system is perceived as a whole rather
than as a collection of independent components. The implications
of transparency are a major influence on the design of the system
software.
 Forms of Transparency
 Access transparency enables local and remote resources to be accessed
using identical operations.
Challenges Associated with developing
Distributed Systems
 Forms of Transparency
 Location transparency enables resources to be accessed without knowledge of
their physical or network location (for example, which building or IP address).
 Concurrency transparency enables several processes to operate concurrently
using shared resources without interference between them.
 Replication transparency enables multiple instances of resources to be used to
increase reliability and performance without knowledge of the replicas by
users or application programmers.
 Failure transparency enables the concealment of faults, allowing users and
application programs to complete their tasks despite the failure of hardware or
software components.
Challenges Associated with developing
Distributed Systems
 Forms of Transparency
 Mobility transparency allows the movement of resources and clients within a
system without affecting the operation of users or programs.
 Performance transparency allows the system to be reconfigured to improve
performance as loads vary.
 Scaling transparency allows the system and applications to expand in scale
without change to the system structure or the application algorithms .
Challenges Associated with developing
Distributed Systems
 Quality of service
Once users are provided with the functionality that they require of a service, such
as the file service in a distributed system, we can go on to ask about the
quality of the service provided. The main nonfunctional properties of systems
that affect the quality of the service experienced by clients and users are
reliability, security and performance.
Adaptability to meet changing system configurations and resource availability
has been recognized as a further important aspect of service quality.

You might also like