distributed systems in haskell, the p2pmedia application
DESCRIPTION
Supervisor - Peter Schachte Student - Han- Hui Chiao. Distributed systems in Haskell, the P2Pmedia application. Project contributions. Demonstrate Haskell is ready for real world application. Demonstrate Haskell excels at distributed systems. What is distributed system?. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/1.jpg)
DISTRIBUTED SYSTEMS IN HASKELL, THE
P2PMEDIA APPLICATION
Supervisor - Peter Schachte Student - Han-Hui Chiao
![Page 2: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/2.jpg)
Project contributions Demonstrate Haskell is ready for real
world application.
Demonstrate Haskell excels at distributed systems.
![Page 3: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/3.jpg)
What is distributed system? “A distributed system is one in which the
failure of a computer you didn’t even know existed can render your own computer unusable”
--(Leslie Lamport)
![Page 4: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/4.jpg)
Programming Is Hard Spent a day finding one bug.
Unable to read old code.
Don’t know why your code is working.
![Page 5: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/5.jpg)
Programming Is Hard "The hardest problems in modern
software lie in performance, modularity, reliability, and concurrency.“
-- Tim Sweeney, founder of Epic Games, and designer of the Unreal game engine
![Page 6: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/6.jpg)
Distributed Systems Is Harder Partial failure
Lack of a central resource manager
![Page 7: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/7.jpg)
Actor Model All components communicating via
message passing.
Asynchronies of communication between
The lack of shared state No locks needed
![Page 8: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/8.jpg)
In The Real World…… Erlang has been successfully used in production
systems for over 20 years [1]
Amazon uses Erlang to implement SimpleDB, providing database services as a part of the Amazon Elastic Compute Cloud (EC2) [2]
Facebook uses Erlang to power the backend of its chat service, handling more than 100 million active users.
WhatsApp uses Erlang to run messaging servers, achieving up to 2 millions of connected users per server
Other: Motorola, Nokia, T-Mobile, BT, Amazon, Yahoo!, Facebook, Github, Goldman Sachs[3][4]
![Page 9: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/9.jpg)
Why not programming in Erlang?
Purity
![Page 10: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/10.jpg)
Cloud Haskell Purity Type System Monads
Interface: Yesod (Haskell web framework)
![Page 11: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/11.jpg)
Why is it not popular?
Steep learning curve
Reputation as an academic language
Myth of not supported well
![Page 12: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/12.jpg)
Real World Problem
Advance of technology has made the world a smaller place.
However, communities are more disjointed.
![Page 13: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/13.jpg)
Solution
Make connections base on people close to you: etc. neighbor, classmates…..
Create a centralized place to socialize
Place responsibility and reliance on each individual and grow as a group
![Page 14: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/14.jpg)
Peer to peer social media Peer to peer based
Tweeter Wikipedia hybrid (other services can easily be plugged-in)
Information stored on each individuals device
![Page 15: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/15.jpg)
A Peer
![Page 16: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/16.jpg)
Peer Discovery [6]
![Page 17: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/17.jpg)
![Page 18: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/18.jpg)
![Page 19: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/19.jpg)
![Page 20: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/20.jpg)
![Page 21: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/21.jpg)
Global Message (Tweeting)
![Page 22: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/22.jpg)
Global Message (Tweeting)
![Page 23: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/23.jpg)
Global Message (Tweeting)
![Page 24: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/24.jpg)
Global Message (Tweeting)
![Page 25: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/25.jpg)
Global Message (Tweeting)
![Page 26: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/26.jpg)
Article Querying
![Page 27: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/27.jpg)
Article Querying
![Page 28: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/28.jpg)
Article Querying
![Page 29: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/29.jpg)
Article Querying
![Page 30: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/30.jpg)
Article Querying
![Page 31: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/31.jpg)
Article Querying
![Page 32: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/32.jpg)
Article Querying
![Page 33: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/33.jpg)
Bibliography1. Veldstra, Hassy. Welcome to erlang. http://
veldstra.org/whyerlang/2. JRL. Stackoverflow. http://
stackoverflow.com/questions/1636455/where-is-erlang-used-and-why
3. Lopacki, Leslaw. ERLANG Functional Programming in industry http://www.slideshare.net/Dominque23/industrial-use-of-erlang
4. Lomax, Keith. Quora http://www.quora.com/Where-and-how-is-Erlang-used-in-the-finance-industry
5. Romain Slootmaekers http://blog.incubaid.com/2012/03/28/the-game-of-distributed-systems-programming-which-level-are-you/
6. Alexander Bondarenko http://hackage.haskell.org/packages/archive/distributed-process-p2p/0.1.0.0/doc/html/Control-Distributed-Backend-P2P.html
![Page 34: Distributed systems in Haskell, the P2Pmedia application](https://reader035.vdocument.in/reader035/viewer/2022070422/56816506550346895dd7756e/html5/thumbnails/34.jpg)
Demo & Source code & Contact Details
Email: [email protected] Source: https://
bitbucket.org/coolhhc/p2pmedia-yesod1.2