Lecture 01 -2024

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 60

DISTRIBUTED COMPUTING

SYSTEMS
Module Code ITU 07318

Lecture 1: Introduction

Facilitator: Mr. Yona Sangula


Objectives
• The History
• Distributed computing Sysctems concepts
• Motivation toward DCS
• Examples of Distributed Systems
• Trends in Distributed Systems
• C
About History

• “Study the past if you would define the future.” Confucius

• “If you don't know history, then you don't know anything.
You are a leaf that doesn't know it is part of a tree. ”
― Michael Crichton
Brief History of the Net
• 1948: First stored-program computer (Manchester Small-Scale
Experimental Machine, SSEM)
• 1970: ARPANet 56Kbps
• 1972: TCP/IP
• 1975: Microsoft (Paul Allen and Bill Gates)
• 1981: IBM Personal Computer (Beginning of the desktop
computing era)
• 1982: Local Area Networks (The first widespread distributed
systems)
• 1988: First Internet worm (Robert Tappan Morris) disrupting 10%
computers on the Internet)
• 1989: ARPAnet ends. WWW (Tim Berners-Lee) begins
Brief History of the Net cont..
• 1990: First IoT device (a toaster that could be turned on/off over
the Internet)
• 1995: Java (James Gosling)
• 1995: Internet goes commercial with Amazon and Echoba (eBay)
• 1997: Weblog (Jorn Barger), Blog (1999, by Peter Merholz)
• 1998: Google (Larry Page and Sergey Brin)
• 1998: IPv6 (128-bit addresses) protocol published
• 1999: The Internet of Things term coined by Kevin Ashton
• 2000: Gnutella, Freenet (P2P networks)
Brief History of the Net cont..
• 2001: Wikipedia (online encyclopedia, a landmark Web2.0
service)
• 2002: Blog becomes popular
• 2003: Skype (Niklas Zennström and Janus Friis), MySpace (social
networking website)
• 2004: Facebook (Mark Zuckerberg)
• 2005: YouTube (Chad Hurley, Steve Chen, and Jawed Karim)
• 2005: Google Maps & Google Earth (a virtual globe)
• 2005: Roger Mougalas coined the term Big Data
• 2005: Hadoop created by Yahoo! on top of Google MapReduce
Brief History of the Net cont..
• 2006: Amazon launched Amazon Web Service (AWS) for utility
computing (the cloud computing era)
• 2007: Google Street View
• 2007: Google surpasses Microsoft (most valuable and visited)
• 2008: Mobile devices surpass PCs to become the major Internet
access devices (mobile computing)
• 2008: Google App Engine (cloud computing platform)
• 2008: Dropbox (cloud storage)
• 2009: Bing search engine (Microsoft strikes back)
• 2009: Google Docs (cloud office suit)
Brief History of the Net cont..
• 2009: Facebook becomes the most used social network
service
• 2008~2009: Internet of Things was born (more “things or
objects” were connected to the Internet than people)
• 2010: OnLive (cloud gaming)
• 2010: More people visited Facebook than Google
• 2010: iPad released by Apple (multi-touch, gesture
interface, tablet era)
• 2010: China announce major investments in IoT
Brief History of the Net cont..
• 2010: Eric Schmidt (chairman of Google) speech: as much data is
created every two days as was created from the beginning of
human civilization to 2003
• 2010: Instagram launched (photo/video sharing)
• 2011: Google+ social networking
• 2012: IPv6 public launch
• 2012: Big Data paradigm takes off
• 2013: People watch 1 billion views a day on YouTube mobile
• 2014: Mobile Internet use overtakes desktop
Brief History of the Net cont..
• 2014: The year of the IoT (3.7 billion connected things)
• 2014: Google Android Wear platform announced
• 2014: Moto 360 (smartwatch) by Motorola
• 2015: Apple’s Apple Watch shipped
• 2015: Google developing IoT OS
• 2015: Huawei launches IoT platform
• 2016: AlphaGo beats Lee Sedol (a Go world champ)
• 2016: VR/AR take off
• 2017: AI & Deep learning everywhere
• 2018: Facebook–Cambridge Analytica data scandal
The Trend
• Desktop computing
• Distributed computing
• Internet/Web computing
• Mobile computing
• Social computing
• Computing Everywhere (P2P, Web, Grid,
• Cloud, Jungle, Fog, Edge computing)
Definition of Distributed Systems
• A distributed system is a collection of autonomous
computing elements (nodes) and related software that
appears to its users as a single coherent system.
• How to connect independent computers?
– Networks and protocols
• How to make them appear as a single system?
– Distributed software
Distributed computing system cont...
What is a Distributed System cont....?
• Is one in which components located at networked
computers communicate and coordinate their actions only
by passing messages

• A distributed system is a software system in which


components located on networked computers
communicate and coordinate their actions by passing
messages.
• The components interact with each other in order to
achieve a common goal.
What is a Distributed System cont....?
What is a Distributed System cont....?
Distributed systems definition cont...
• A distributed system consists of a collection of
autonomous computers, connected through a network
and distribution middleware, which enables computers to
coordinate their activities and to share the resources of
the system, so that users perceive the system as a single,
integrated computing facility.
Middleware
• The OS of distributed systems
• Contain commonly used components and functions
Relation between Software Components
Motivation
• Inherently distributed computation
• Sharing of resources, information and services
• Access to remote resources
• Increased performance/cost ratio
• Improving availability, reliability, fault tolerance, and
scalability
• Modularity and incremental expandability
• Mobility
• Pervasiveness
Portable/Handheld Devices in a Distributed System
Web Servers and Web Browsers
Cloud Services
Jungle Computing
• Use diverse, distributed and highly non-uniform high
performance systems to achieve peak performance.
Fog/Edge Computing

refers to the processing of


data near the "edge" of the
network, where data is
generated. This typically
involves IoT devices or
local servers that handle
computation before
sending data to the cloud.
Centralised System Characteristics
• One component with non-autonomous parts
• Component shared by users all the time
• All resources accessible
• Software runs in a single process
• Single Point of control
• Single Point of failure
Distributed System Characteristics
• Multiple autonomous components
• Components are not shared by all users
• Resources may not be accessible
• Software runs in concurrent processes on different
processors
• Multiple Points of control
• Multiple Points of failure
Common characteristics
• concurrency of components
• lack of global clock
• independent failures of components
Examples of distributed systems and applications of
distributed computing
Trends in distributed systems
• Emergence of pervasive networking technology
• Emergence of ubiquitous computing coupled with the
desire to support user mobility
• Multimedia services
• Distributed systems as utility
Pervasive networking and the modern Internet
• Networking has become a pervasive resource and
devices can be conected at any time and any place
Mobile and ubiquitous computing
• laptop computers
• handheld devices (mobile phones, smart phones, tablets,
GPS-enabled devices,
• PDAs, video and digital cameras)
• wearable devices (smart watches, glasses, etc.)
• devices embedded in appliances (washing machines,
refrigerators, cars, etc.)
Portable and handheld devices in a distributed
system
Distributed multimedia systems
• live or pre-ordered television broadcasts
• video-on-demand
• music libraries
• audio and video conferencing
Distributed computing as a utility
Distributed computing as a utility cont...
• Cluster: “A type of parallel or distributed processing
system, which consists of a collection of interconnected
stand-alone computers cooperatively working together as
a single, integrated computing resource”
• Cloud: “A type of parallel and distributed system
consisting of a collection of interconnected and virtualised
computers that are dynamically provisioned and
presented as one or more unified computing resources
based on service_x0002_level agreements established
through negotiation between the service provider and
consumers”
Key Design Challenges
• Connecting users and resources
• Heterogeneity
• Transparency
• Openness
• Scalability
• Security and privacy
• Failure handling
• Concurrency
• Mobility and location dependency
• Quality of service (QoS)
• Quality of experience (QoE)
Heterogeneity
• Networks
– Ethernet, token ring, wired/wireless, etc
• Computer hardware
• Operating systems
– different API of Unix and Windows
• Programming languages
– different representations for data structures
• Implementations from different developers
– no application standards
Middleware to Hide Heterogeneity

To hide the heterogeneity, a distributed system is usually organized


as middleware. Note that the middleware layer extends over
multiple machines, and offers each application the same interface.
Transparency
Transparency (contd.)
Degree of Transparency
• It is not necessarily a good idea to hide all distribution
aspects Eg. Location-based services
• We often need to consider the degree of transparency
• Trade-off between transparency and performance
Degree of Transparency (contd)
Openness
• Openness of a computer system is the characteristic that
determines whether the system can be extended and re-
implemented in various way. Eg. UNIX, open source
software
• Openness of distributed systems determined by the
degree to witch new resource sharing services can be
added and be made available for use by a variety of other
programs.Eg. Web
Openness contd
Scalability
• 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
• A scalable example system: the Internet
• Design challenges
– Controlling the cost of physical resources
• e.g., servers support users at most O(n)
– Controlling the performance loss
• e.g., DNS no worse than O(logn)
– Preventing software resources from running out
• e.g., IP address
– Avoiding performance bottlenecks
• e.g., partitioning name table of DNS, cache and replication
Scalability cont
Scaling Techniques
• Basic techniques for scaling:
– Use only decentralized algorithms
– Hiding communication latencies
– Distribution
– Replication
Decentralized Algorithms
Security
• Confidentiality
– protection against disclosure to unauthorized individuals
– e.g. ACL in Unix File System
• Integrity
– protection against alteration or corruption
– e.g. checksum
• Availability
– protection against interference with the means to access the
resources
– e.g. Denial of service(DOS)
Privacy
• Limited access to personal information
• Secrecy (option to conceal information)
• Hide information usage
• Control over others’ use of personal information
• States of privacy
• Information privacy – Healthcare, financial, biological, criminal,
residence, locational, political, …
• Protecting privacy
– Privacy laws
– Policy, policy communication, policy enforcement
– Privacy preserving design
Failure Handling
Concurrency
• Correctness
– ensure the operations on shared resource correct in a
concurrent environment e.g. records bids for an auction
• Performance
– Ensure the high performance of concurrent operations
Mobility and Location Dependency
Quality of Service (QoS)
• Functionality is not enough.
• We want quality as well.
• Main nonfunctional properties of systems:
– Levels of services
– Levels of performance
– Availability
– Reliability
– Security
• Adaptability is the key to meet QoS requirements.
Quality of Experience (QoE)
• A measure of a customer’s experience on services.
• Measure satisfaction both objectively and subjectively.
• Major factors that affect QoE
– Cost
– Reliability
– Efficiency
– Privacy
– Security
– Interface user-friendliness
– User confidence
Types of Distributed Systems
• Distributed computing systems — for high performance
computing tasks
– Cluster computing — collection of workstations or PCs
connected by high-speed LAN
– Grid computing — federation of computers over WAN
• Distributed information systems — for organizational
information processing and enterprise application
integration
• Distributed pervasive systems — with many mobile and
embedded devices
Cluster computing
• An example of a cluster computing system consisting of
homogeneous computing nodes.
Grid Computing Systems
Summary
• Distributed systems are everywhere today.
• Many different types of distributed systems for different
environments and applications.
• Each type of system has its own characteristics and
design challenges.
• However, there are some fundamental issues common to
all distributed systems.

You might also like