DISTRIBUTED systems —formerly stand-alone systems —are themselves becoming

DISTRIBUTED SYSTEMS AND RECENT INNOVATIONS

 

BY

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

WACHIYA F. ANNE

 

KISII UNIVERSITY

BSC. SOFTWARE ENGINEERING

SPECIAL TOPICS IN SOFTWARE ENGINEERING

SOEN 414

Contents

CHAPTER 1: INTRODUCTION.. 4

1.1 Background information. 4

1.2 Objectives of this study. 4

1.3 Scope and Justification. 4

CHAPTER 2: METHODOLOGY. 5

2.1 Document Analysis. 5

CHAPTER 3: LITERATURE REVIEW… 5

CHAPTER 4: FINDINGS AND OBSERVATIONS. 6

4.1 BLOCKCHAIN.. 7

4.1.1 Advantages. 7

4.1.2 Types of blockchain. 8

4.2 MICROSOFT AZURE. 9

4.2.1 Platform as a Service – PaaS. 9

4.2.3 Infrastructure as a Service –
IaaS. 9

4.3 FIREBASE. 10

CONCLUSION.. 11

REFERENCES. 12

 

 

LIST OF ABBREVIATIONS AND ACRONYMS

IT                    Information Technology

DARPA

CSD

NIST

SAAS               Software as a service

PAAS              Platform as a service

IAAS               Infrastructure as a service

OS                   Operating System

ISV

API                  Application Programming Interface   

HTTP            Hypertext Transfer Protocol

SQL                 Structured Query Language

IoT                  Internet of Things

AI                    Artificial Intelligence

ML                   Machine Learning

 

CHAPTER 1: INTRODUCTION

1.1 Background information

 

A distributed
system is a system in which the components
located at networked computers communicate, interact and coordinate their actions only through
passing messages or it can be
defined as distributed system is one involving several computers, in contrast
with centralized systems where all of the system components execute on a single
computer. Tanenbaum and Van Steen (2007) define a distributed system to be: “.
. . a collection of independent computers that appears to the user as a single
coherent system.” Ian Somerville (2011)

According to
Carnegie Mellon University Computer Science department, while distributed
computing has been around since the early days of the DARPA net, the scale and
importance of today’s service infrastructure is unprecedented. At the same
time, embedded systems —formerly stand-alone systems —are themselves becoming
part of the global infrastructure. The rapid deployment of sensors, cell phones
and tablets, and networked microcontrollers throughout all of our technology
creates fantastic opportunities and tremendous challenges in this field.
Carnegie Mellon University – CSD. (2018).

 

Many types of
distributed systems and applications have been developed and implemented
extensively in the current world. This term paper presents the current
technology innovations and how system distribution is influencing them now and
most likely in the near future.

 

1.2 Objectives of this
study

·        
To bring out the importance of distributed systems in current
technology.

·        
To identify recent innovations using the advantages of system
distribution.

·        
To venture into the importance of fault tolerance in
distributed systems.

1.3 Scope and Justification

There are so
many types of distributed system. This research is meant to revolve around the
current innovations in technology specifically blockchain technology, Microsoft
Azure as a cloud computing platform, Firebase as a mobile and web application platform
and explore fault tolerance as an advantage of system distribution. This study
captures the current technological advancement using system distribution vastly
suggesting that as technology evolves daily, system distribution is applied and
advanced as well.

 

CHAPTER 2: METHODOLOGY

2.1 Document Analysis

This is
collection of data method that will be carried out in this project. It is a
form of qualitative research in which documents are interpreted by the
researcher to give voice and meaning around an assessment topic.

 

CHAPTER 3: LITERATURE
REVIEW

Krishna Nadiminti, Marcos Dias and Rajkumar Buyya in
their grid computing and distributed systems discuss grid as a type of
distributed system that enables coordinated sharing and aggregation of
distributed, anonymous, heterogeneous resource based on users’ Quality of
Service requirements. Grids are commonly used to support applications emerging
in the areas of e-Science and e-Business, which commonly involve geographically
distributed communities of people who engage in collaborative activities to
solve large scale problems and require sharing of various resources such as
computers, data, applications and scientific instruments. (Krishna Nadiminti,
Marcos Dias and Rajkumar, 2017)

 

Mohammad Hamdaqa And Ladan Tahvildari on their
research on cloud computing as a type of distributed system. The most recent
and accepted standardized definition of Cloud Computing is the one by the
National Institute of Standards and Technology (NIST) 6: “Cloud computing is
a model for enabling ubiquitous, convenient, on-demand network access to a
shared pool of configurable computing resources (e.g., networks, servers,
storage, applications, and services) THAT can be rapidly provisioned and
released with minimal management effort or service provider interaction. This
cloud model promotes availability and is composed of five essential
characteristics, three service MODELS, and four deployment models.”.
Accordingly, this survey article presents a unified view of the Cloud Computing
main concepts, characteristics, models, and architectures. Moreover, it
presents a landscape of research in Cloud Computing by highlighting relevant
disciplines and some diligent research projects. This helps identify the
underlying research gaps and elaborates on the corresponding challenges.
Mohammad Hamdaqa And Ladan Tahvildari (2012)

 

Imran Bashir (2018) in his book Mastering Blockchain he
tackles on the distributed ledger technology. Blockchain was introduced with
the invention of bitcoin in 2008 and then with its practical implementation in
2009. The concept of electronic cash or digital currency is not new. Since the
1980s, e-cash protocols have existed that are based on a model proposed by
David Chaum.

Electronic cash, just as understanding the concepts of
distributed systems is necessary in order to understand blockchain technology,
the idea of electronic cash is also essential to appreciate the first and
astonishingly successful application of blockchain: the bitcoin, or broadly
cryptocurrencies. Theoretical concepts in distributed systems such as consensus
algorithms provided the basis of the practical implementation of Proof of Work
algorithms in bitcoin; moreover, ideas from different electronic cash schemes
also paved the way for the invention of cryptocurrencies, specifically bitcoin.Blockchain
at its core is a peer-to-peer distributed ledger that is cryptographically
secure, append-only, immutable (extremely hard to change), and updateable only
via consensus or agreement among peers. Imran Bashir (2018)

All these
researches revolve around distributed systems and their unique features. It is
also proves that there is a promising future in system distributing and its
demand is growing.

 

CHAPTER 4: FINDINGS AND
OBSERVATIONS

Before narrowing down to fault tolerance as a
convenient significant property in distributed systems, according to George
Coulouris, Jean Dollimore, Tim Kindberg Gordon Blair (London, Bristol and
Lancaster, 2011), distributed systems possess the following properties:

Concurrency: In a network of computers,
concurrent program execution is the norm. The capacity of the system to handle
shared resources can be increased by adding more resources to the network. The
coordination of concurrently executing programs that share resources is also an
important and recurring topic.

No global
clock: When
programs need to cooperate they coordinate their actions by exchanging
messages. Close coordination often depends on a shared idea of the time at
which the programs’ actions occur. But it turns out that there are limits to
the accuracy with which the computers in a network can synchronize their clocks
– there is no single global notion of the correct time. This is a direct
consequence of the fact that the only communication is by sending messages through
a network.

Independent
failures:
All computer systems can fail, and it is the responsibility of system designers
to plan for the consequences of possible failures. Distributed systems can fail
in new ways. Faults in the network result in the isolation of the computers
that are connected to it, but that doesn’t mean that they stop running. In
fact, the programs on them may not be able to detect whether the network has
failed or has become unusually slow. Similarly, the failure of a computer, or
the unexpected termination of a program somewhere in the system (a crash), is
not immediately made known to the other components with which it communicates.
Each component of the system can fail independently, leaving the others still
running.

4.1 BLOCKCHAIN

Think about
a blockchain as a distributed database that maintains a shared list of records.
These records are called blocks, and each encrypted block of code contains the
history of every block that came before it with timestamped transaction data
down to the second. In effect, you know, chaining those blocks together. Hence
blockchain. A blockchain is made up of two primary components: a decentralized
network facilitating and verifying transactions, and the immutable ledger that
network maintains. Everyone in the network can see this shared transaction
ledger, but there is no single point of failure from which records or digital
assets can be hacked or corrupted. Because of that decentralized trust, there’s
also no one organization controlling that data, be it a big bank or a tech
giant like Facebook or Google. No third-parties serving as the gatekeepers of
the internet. The power of blockchain’s distributed ledger technology has
applications across every kind of digital record and transaction, and we’re
already beginning to see major industries leaning into the shift. Bob Marvin
(30 August 2017).

4.1.1 Advantages

They are
totally-ordered. – Everyone sees the same transactions, in the same order,
everywhere.
The order is “stable.”
Not 100% stable or durable, though — forks and chain reorgs can happen
(but are rare)— but outside of these two pathological cases, a client’s
view of the transaction order doesn’t change
They are append-only.
There’s no such thing as random-write. To change a prior write, you have
to re-do all the writes between then and now. But that is impossible.
They are
tamper-resistant. It’s expensive to retroactively change or reorder prior
writes (thanks to proof-of-work).

Blockchain has so many significant distributed
features ranging from decentralization, a core concept and benefit of
blockchain. There is no need for a trusted third party or intermediary to
validate transactions; instead a consensus mechanism is used to agree on the
validity of transactions. Then Transparency and trust, as blockchains are
shared and everyone can see what is on the blockchain, this allows the system
to be transparent and as a result trust is established. This is more relevant
in scenarios such as the disbursement of funds or benefits where personal discretion
should be restricted. Also, Immutability, once the data has been written to the
blockchain, it is extremely difficult to change it back. It is not truly
immutable but, due to the fact that changing data is extremely difficult and
almost impossible, this is seen as a benefit to maintaining an immutable ledger
of transactions. Finally, high availability. Imran Bashir (2018)

4.1.2 Types of blockchain

Based on the way blockchain has evolved over the last
few years, it can be divided into multiple types with distinct but sometimes
partly overlapping attributes. First, there is public blockchains, these are
open to the public and anyone can participate as a node in the decision-making
process. Users may or may not be rewarded for their participation. These
ledgers are not owned by anyone and are publicly open for anyone to participate
in. All users of the permission-less ledger maintain a copy of the ledger on
their local nodes and use a distributed consensus mechanism in order to reach a
decision about the eventual state of the ledger. Second, private blockchains
which are private and are open only to a consortium or group of individuals or
organizations that has decided to share the ledger among themselves. Then there
are semi-private blockchains and sidechains. Imran Bashir (2018)

4.2 MICROSOFT AZURE

Microsoft Azure is a cloud computing service created
by Microsoft for building, testing, deploying, and managing applications and
services through a global network of Microsoft-managed data centers. It
provides software as a service (SaaS), platform as a service and infrastructure
as a service and supports many different programming languages, tools and
frameworks, including both Microsoft-specific and third-party software and
systems. CathleenV87 (2018)

4.2.1 Platform as a Service – PaaS

PaaS is the self-service enabled compute service that
provisions computing resources in terms of CPU, memory and volatile disk
storage through resource descriptors provided at the deployment time. Windows
Azure PaaS is available to application developers as Web Role and Worker Role
abstractions deployed into a resource container titled Cloud Service. The role
abstractions encapsulate a programming model and a deployment model aided by a
resource descriptor which when combined provides complete metadata for design
time deployment as well as run time operations. Advantages of PaaS include Low
Total Cost of Ownership, Accelerates Innovation and Better Development
Operations. Hanuk (2016)

4.2.3 Infrastructure as a Service – IaaS

IaaS is a managed compute service that gives complete
control of the OS and the application platform stack to the application
developers and IT Professional which is analogous to Hyper-V and other
virtualization platforms. The unit of deployment is at the granularity of a
virtual machine. Developers with the help of IT Professionals deploy virtual
machines, application bits and the associated data to the target compute
infrastructure. Even though developers get complete control of the stack at the
design time, the deployment still needs to consider the systemic qualities of
the application influenced by the storage, virtual networking and the managed
services ecosystem that surrounds it. While IaaS gives design time portability,
in due course the application may take advantage of the managed services (e.g.
Azure Storage, cache) that will impact its overall portability. Similar to the
analysis of PaaS, we will take look at the advantages and disadvantages of IaaS
from both business and technology angles. Advantages of IaaS include quick
transition to cloud, mature ISV ecosystem, complete control and solution
portability. Hanuk (2016)

 

4.3 FIREBASE

First,
Google’s backing allows us to dramatically scale Firebase. We’re proud of what
we’ve built over the last three years, but we’ve only scratched the surface of
the opportunity ahead of us. With Google’s engineering talent, resources, and
technical infrastructure, firebase is able to do much more, much faster. Both
the Firebase and Google Cloud Platform teams come to work each day for the same
reason: to help developers create extraordinary experiences. By joining forces,
Firebase developers will gain access to a powerful cloud infrastructure suite,
and Cloud Platform customers will gain access to our rapid development capabilities.
Together we’ll deliver a complete platform for mobile and web apps. Tamplin,
James.2014

According to Chris Esplin (2016), Firebase is a
Backend-as-a-Service?—?BaaS?—?that
started as a YC11 startup and grew up into a next-generation app-development
platform on Google Cloud Platform. Firebase frees developers to focus crafting
fantastic user experiences. You don’t need to manage servers. You don’t need to
write APIs. Firebase is your server, your API and your datastore, all written
so generically that you can modify it to suit most needs. Offering the
following distributed properties:-

Real-time
Database

Most databases require you to make HTTP calls to
get and sync your data. Most databases give you data only when you ask for it. When
you connect your app to Firebase, you’re not connecting through normal HTTP.
You’re connecting through a WebSocket. WebSockets are much, much faster than
HTTP. You don’t have to make individual WebSocket calls, because one socket
connection is plenty. All of your data syncs automagically through that single
WebSocket as fast as your client’s network can carry it. Firebase sends you new
data as soon as it’s updated. When your client saves a change to the data, all
connected clients receive the updated data almost instantly.

File
Storage

Firebase Storage provides a simple way to save
binary files?—?most often images, but it
could be anything?—?to Google Cloud Storage
directly from the client!!!

Authentication

Firebase auth has a built in email/password
authentication system. It also supports OAuth2 for Google, Facebook, Twitter
and GitHub. Firebase Auth integrates directly into Firebase Database, so you
can use it to control access to your data.

 

Hosting

Firebase includes an easy-to-use hosting service
for all of your static files. It serves them from a global CDN with HTTP/2.

Firebase is finally, a Fully-Featured App
Platform.

Pros

1)      Email & password, Google, Facebook, and
Github authentication

2)      Realtime data

3)      Ready-made api

4)      Built in security at the data node level

5)      File storage backed by Google Cloud Storage

6)      Static file hosting

7)      Treat data as streams to build highly scalable
applications

8)      Don’t worry about your infrastructure!

Cons

1)      Limited query abilities due to Firebase’s data
stream model

2)      Traditional relational data models are not applicable
to NoSQL; therefore, your SQL chops will not transfer

3)      No on premise installation

Chris
Esplin (2016).

CONCLUSION

With factors like pervasive networking technology, ubiquitous
computing which supports user mobility in the distributed systems though access
of system anywhere at any time sprouting, demand for multimedia service
skyrocketing and the need for distributed systems to become a utility means
that the technology is evolving so fact and systems and applications need to
adapt as well if growth is expected. Distributed system end up merging to boost
their operational power like Google Cloud and Firebase. The fault tolerance
characteristic is also an amazing feature that earns customers trust and
confidence due to less data distortion when a system operation crashes.
Distributed systems are going to impact the technology world vastly in the
future due to its quick evolution. Apart from the topics discussed, we’re
expecting it to dominate to stretch more through areas like Internet of Things
(IoT), Artificial Intelligence (AI), Machine Learning (ML) and also Big Data.

REFERENCES

Distributed Systems |
Carnegie Mellon University – Computer Science Department. (2018).
Csd.cs.cmu.edu. Retrieved 16 January 2018, from https://www.csd.cs.cmu.edu/research-areas/distributed-systems
Ian Somervile (2011). Software Engineering. Ninth
Edition

 

Tanenbaum, A. S. and
Van Steen, M. (2007). Distributed Systems: Principles and Paradigms, 2nd
edition. Upper Saddle River, NJ: Prentice Hall.
(Krishna Nadiminti, Marcos Dias and Rajkumar, 2017)
distributed systems and recent innovations: challenges and benefits. The
University of Melbourne, Australia http://www.gridbus .org
MOHAMMAD HAMDAQA AND LADAN TAHVILDARI, 2012 Cloud
Computing Uncovered: A Research Landscape Software Technologies Applied
Research (STAR) Group, University of Waterloo, Waterloo, Ontario, Canada
J Nelson (2017) From
“Blockchains for Distributed Systems”
https://medium.com/@judecnelson/blockchains-for-distributed-systems-ffd68e6341b5
CathleenV87 (2018)
https://azure.microsoft.com/en-us/
Hanuk 2016  https://social.msdn.microsoft.com/profile/hanuk_MSFT
From. DS AND RECENT
INNOVATIONS George Coulouris, Jean Dollimore, Tim Kindberg Gordon Blair
(London, Bristol and Lancaster, 2011) [email protected]
Bob Marvin (30 August 2017).
“Blockchain: The Invisible Technology That’s Changing the
World”. PC MAG Australia. ZiffDavis, LLC. Retrieved 25 September
2017.
Tamplin, James.2014 “Firebase is
Joining Google!” Firebase, Inc. Retrieved October 22, 2014.
Chris Esplin 2016; Front-End Web Developer;
Google Developer Expert: Firebase; Calligraphy.org

https://howtofirebase.com/what-is-firebase-fcb8614ba442