DISTRIBUTED SYSTEMS AND RECENT INNOVATIONS BY WACHIYA F. ANNE KISII UNIVERSITYBSC. SOFTWARE ENGINEERINGSPECIAL TOPICS IN SOFTWARE ENGINEERINGSOEN 414ContentsCHAPTER 1: INTRODUCTION.. 41.1 Background information.
41.2 Objectives of this study. 41.
3 Scope and Justification. 4CHAPTER 2: METHODOLOGY. 52.
1 Document Analysis. 5CHAPTER 3: LITERATURE REVIEW… 5CHAPTER 4: FINDINGS AND OBSERVATIONS. 64.
1 BLOCKCHAIN.. 74.1.1 Advantages.
74.1.2 Types of blockchain.
84.2 MICROSOFT AZURE. 94.2.1 Platform as a Service – PaaS.
94.2.3 Infrastructure as a Service -IaaS. 94.3 FIREBASE. 10CONCLUSION..
11REFERENCES. 12 LIST OF ABBREVIATIONS AND ACRONYMSIT Information TechnologyDARPACSDNISTSAAS Software as a servicePAAS Platform as a serviceIAAS Infrastructure as a serviceOS Operating SystemISVAPI Application Programming Interface HTTP Hypertext Transfer ProtocolSQL Structured Query LanguageIoT Internet of Things AI Artificial IntelligenceML Machine Learning CHAPTER 1: INTRODUCTION1.1 Background information A distributedsystem is a system in which the componentslocated at networked computers communicate, interact and coordinate their actions only throughpassing messages or it can bedefined as distributed system is one involving several computers, in contrastwith centralized systems where all of the system components execute on a singlecomputer. Tanenbaum and Van Steen (2007) define a distributed system to be: “..
. a collection of independent computers that appears to the user as a singlecoherent system.” Ian Somerville (2011)According toCarnegie Mellon University Computer Science department, while distributedcomputing has been around since the early days of the DARPA net, the scale andimportance of today’s service infrastructure is unprecedented. At the sametime, embedded systems —formerly stand-alone systems —are themselves becomingpart of the global infrastructure. The rapid deployment of sensors, cell phonesand tablets, and networked microcontrollers throughout all of our technologycreates fantastic opportunities and tremendous challenges in this field.
Carnegie Mellon University – CSD. (2018). Many types ofdistributed systems and applications have been developed and implementedextensively in the current world.
This term paper presents the currenttechnology innovations and how system distribution is influencing them now andmost likely in the near future. 1.2 Objectives of thisstudy· To bring out the importance of distributed systems in currenttechnology.· To identify recent innovations using the advantages of systemdistribution.· To venture into the importance of fault tolerance indistributed systems.
1.3 Scope and JustificationThere are somany types of distributed system. This research is meant to revolve around thecurrent innovations in technology specifically blockchain technology, MicrosoftAzure as a cloud computing platform, Firebase as a mobile and web application platformand explore fault tolerance as an advantage of system distribution. This studycaptures the current technological advancement using system distribution vastlysuggesting that as technology evolves daily, system distribution is applied andadvanced as well. CHAPTER 2: METHODOLOGY2.1 Document AnalysisThis iscollection of data method that will be carried out in this project. It is aform of qualitative research in which documents are interpreted by theresearcher to give voice and meaning around an assessment topic.
CHAPTER 3: LITERATUREREVIEWKrishna Nadiminti, Marcos Dias and Rajkumar Buyya intheir grid computing and distributed systems discuss grid as a type ofdistributed system that enables coordinated sharing and aggregation ofdistributed, anonymous, heterogeneous resource based on users’ Quality ofService requirements. Grids are commonly used to support applications emergingin the areas of e-Science and e-Business, which commonly involve geographicallydistributed communities of people who engage in collaborative activities tosolve large scale problems and require sharing of various resources such ascomputers, data, applications and scientific instruments. (Krishna Nadiminti,Marcos Dias and Rajkumar, 2017) Mohammad Hamdaqa And Ladan Tahvildari on theirresearch on cloud computing as a type of distributed system. The most recentand accepted standardized definition of Cloud Computing is the one by theNational Institute of Standards and Technology (NIST) 6: “Cloud computing isa model for enabling ubiquitous, convenient, on-demand network access to ashared pool of configurable computing resources (e.g., networks, servers,storage, applications, and services) THAT can be rapidly provisioned andreleased with minimal management effort or service provider interaction. Thiscloud model promotes availability and is composed of five essentialcharacteristics, three service MODELS, and four deployment models.”.
Accordingly, this survey article presents a unified view of the Cloud Computingmain concepts, characteristics, models, and architectures. Moreover, itpresents a landscape of research in Cloud Computing by highlighting relevantdisciplines and some diligent research projects. This helps identify theunderlying research gaps and elaborates on the corresponding challenges.Mohammad Hamdaqa And Ladan Tahvildari (2012) Imran Bashir (2018) in his book Mastering Blockchain hetackles on the distributed ledger technology.
Blockchain was introduced withthe invention of bitcoin in 2008 and then with its practical implementation in2009. The concept of electronic cash or digital currency is not new. Since the1980s, e-cash protocols have existed that are based on a model proposed byDavid Chaum.Electronic cash, just as understanding the concepts ofdistributed systems is necessary in order to understand blockchain technology,the idea of electronic cash is also essential to appreciate the first andastonishingly successful application of blockchain: the bitcoin, or broadlycryptocurrencies. Theoretical concepts in distributed systems such as consensusalgorithms provided the basis of the practical implementation of Proof of Workalgorithms in bitcoin; moreover, ideas from different electronic cash schemesalso paved the way for the invention of cryptocurrencies, specifically bitcoin.Blockchainat its core is a peer-to-peer distributed ledger that is cryptographicallysecure, append-only, immutable (extremely hard to change), and updateable onlyvia consensus or agreement among peers. Imran Bashir (2018)All theseresearches revolve around distributed systems and their unique features.
It isalso proves that there is a promising future in system distributing and itsdemand is growing. CHAPTER 4: FINDINGS ANDOBSERVATIONSBefore narrowing down to fault tolerance as aconvenient significant property in distributed systems, according to GeorgeCoulouris, Jean Dollimore, Tim Kindberg Gordon Blair (London, Bristol andLancaster, 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 handleshared resources can be increased by adding more resources to the network. Thecoordination of concurrently executing programs that share resources is also animportant and recurring topic.No globalclock: Whenprograms need to cooperate they coordinate their actions by exchangingmessages. Close coordination often depends on a shared idea of the time atwhich the programs’ actions occur. But it turns out that there are limits tothe 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 directconsequence of the fact that the only communication is by sending messages througha network.
Independentfailures:All computer systems can fail, and it is the responsibility of system designersto plan for the consequences of possible failures. Distributed systems can failin new ways. Faults in the network result in the isolation of the computersthat are connected to it, but that doesn’t mean that they stop running. Infact, the programs on them may not be able to detect whether the network hasfailed or has become unusually slow. Similarly, the failure of a computer, orthe unexpected termination of a program somewhere in the system (a crash), isnot immediately made known to the other components with which it communicates.Each component of the system can fail independently, leaving the others stillrunning.4.1 BLOCKCHAINThink abouta blockchain as a distributed database that maintains a shared list of records.
These records are called blocks, and each encrypted block of code contains thehistory of every block that came before it with timestamped transaction datadown to the second. In effect, you know, chaining those blocks together. Henceblockchain. A blockchain is made up of two primary components: a decentralizednetwork facilitating and verifying transactions, and the immutable ledger thatnetwork maintains. Everyone in the network can see this shared transactionledger, but there is no single point of failure from which records or digitalassets can be hacked or corrupted.
Because of that decentralized trust, there’salso no one organization controlling that data, be it a big bank or a techgiant like Facebook or Google. No third-parties serving as the gatekeepers ofthe internet. The power of blockchain’s distributed ledger technology hasapplications across every kind of digital record and transaction, and we’realready 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 distributedfeatures ranging from decentralization, a core concept and benefit ofblockchain.
There is no need for a trusted third party or intermediary tovalidate transactions; instead a consensus mechanism is used to agree on thevalidity of transactions. Then Transparency and trust, as blockchains areshared and everyone can see what is on the blockchain, this allows the systemto be transparent and as a result trust is established. This is more relevantin scenarios such as the disbursement of funds or benefits where personal discretionshould be restricted. Also, Immutability, once the data has been written to theblockchain, it is extremely difficult to change it back. It is not trulyimmutable but, due to the fact that changing data is extremely difficult andalmost impossible, this is seen as a benefit to maintaining an immutable ledgerof transactions. Finally, high availability.
Imran Bashir (2018)4.1.2 Types of blockchainBased on the way blockchain has evolved over the lastfew years, it can be divided into multiple types with distinct but sometimespartly overlapping attributes. First, there is public blockchains, these areopen to the public and anyone can participate as a node in the decision-makingprocess. Users may or may not be rewarded for their participation. Theseledgers are not owned by anyone and are publicly open for anyone to participatein. All users of the permission-less ledger maintain a copy of the ledger ontheir local nodes and use a distributed consensus mechanism in order to reach adecision about the eventual state of the ledger.
Second, private blockchainswhich are private and are open only to a consortium or group of individuals ororganizations that has decided to share the ledger among themselves. Then thereare semi-private blockchains and sidechains. Imran Bashir (2018)4.2 MICROSOFT AZUREMicrosoft Azure is a cloud computing service createdby Microsoft for building, testing, deploying, and managing applications andservices through a global network of Microsoft-managed data centers. Itprovides software as a service (SaaS), platform as a service and infrastructureas a service and supports many different programming languages, tools andframeworks, including both Microsoft-specific and third-party software andsystems. CathleenV87 (2018)4.2.
1 Platform as a Service – PaaSPaaS is the self-service enabled compute service thatprovisions computing resources in terms of CPU, memory and volatile diskstorage through resource descriptors provided at the deployment time. WindowsAzure PaaS is available to application developers as Web Role and Worker Roleabstractions deployed into a resource container titled Cloud Service. The roleabstractions encapsulate a programming model and a deployment model aided by aresource descriptor which when combined provides complete metadata for designtime deployment as well as run time operations. Advantages of PaaS include LowTotal Cost of Ownership, Accelerates Innovation and Better DevelopmentOperations. Hanuk (2016)4.2.3 Infrastructure as a Service – IaaSIaaS is a managed compute service that gives completecontrol of the OS and the application platform stack to the applicationdevelopers and IT Professional which is analogous to Hyper-V and othervirtualization platforms.
The unit of deployment is at the granularity of avirtual machine. Developers with the help of IT Professionals deploy virtualmachines, application bits and the associated data to the target computeinfrastructure. Even though developers get complete control of the stack at thedesign time, the deployment still needs to consider the systemic qualities ofthe application influenced by the storage, virtual networking and the managedservices 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 theanalysis of PaaS, we will take look at the advantages and disadvantages of IaaSfrom both business and technology angles. Advantages of IaaS include quicktransition to cloud, mature ISV ecosystem, complete control and solutionportability.
Hanuk (2016) 4.3 FIREBASEFirst,Google’s backing allows us to dramatically scale Firebase. We’re proud of whatwe’ve built over the last three years, but we’ve only scratched the surface ofthe opportunity ahead of us. With Google’s engineering talent, resources, andtechnical infrastructure, firebase is able to do much more, much faster. Boththe Firebase and Google Cloud Platform teams come to work each day for the samereason: 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.2014According to Chris Esplin (2016), Firebase is aBackend-as-a-Service?—?BaaS?—?thatstarted as a YC11 startup and grew up into a next-generation app-developmentplatform on Google Cloud Platform. Firebase frees developers to focus craftingfantastic user experiences. You don’t need to manage servers. You don’t need towrite APIs.
Firebase is your server, your API and your datastore, all writtenso generically that you can modify it to suit most needs. Offering thefollowing distributed properties:-Real-timeDatabaseMost databases require you to make HTTP calls toget and sync your data. Most databases give you data only when you ask for it. Whenyou connect your app to Firebase, you’re not connecting through normal HTTP.You’re connecting through a WebSocket. WebSockets are much, much faster thanHTTP.
You don’t have to make individual WebSocket calls, because one socketconnection is plenty. All of your data syncs automagically through that singleWebSocket as fast as your client’s network can carry it. Firebase sends you newdata as soon as it’s updated. When your client saves a change to the data, allconnected clients receive the updated data almost instantly.
FileStorageFirebase Storage provides a simple way to savebinary files?—?most often images, but itcould be anything?—?to Google Cloud Storagedirectly from the client!!!AuthenticationFirebase auth has a built in email/passwordauthentication system. It also supports OAuth2 for Google, Facebook, Twitterand GitHub. Firebase Auth integrates directly into Firebase Database, so youcan use it to control access to your data. HostingFirebase includes an easy-to-use hosting servicefor all of your static files. It serves them from a global CDN with HTTP/2.
Firebase is finally, a Fully-Featured AppPlatform.Pros1) Email & password, Google, Facebook, andGithub authentication2) Realtime data3) Ready-made api4) Built in security at the data node level5) File storage backed by Google Cloud Storage6) Static file hosting7) Treat data as streams to build highly scalableapplications8) Don’t worry about your infrastructure!Cons1) Limited query abilities due to Firebase’s datastream model2) Traditional relational data models are not applicableto NoSQL; therefore, your SQL chops will not transfer3) No on premise installationChrisEsplin (2016).CONCLUSIONWith factors like pervasive networking technology, ubiquitouscomputing which supports user mobility in the distributed systems though accessof system anywhere at any time sprouting, demand for multimedia serviceskyrocketing and the need for distributed systems to become a utility meansthat the technology is evolving so fact and systems and applications need toadapt as well if growth is expected.
Distributed system end up merging to boosttheir operational power like Google Cloud and Firebase. The fault tolerancecharacteristic is also an amazing feature that earns customers trust andconfidence due to less data distortion when a system operation crashes.Distributed systems are going to impact the technology world vastly in thefuture due to its quick evolution. Apart from the topics discussed, we’reexpecting 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.
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.orghttps://howtofirebase.com/what-is-firebase-fcb8614ba442