SlideShare a Scribd company logo
1 of 32
Download to read offline
DISTRIBUTED
SYSTEMS
A whirlwind tour


                   Dean Sheehan
                   CTO & SVP Product Strategy
                   dsheehan@iwavesoftware.com
Contents
•  Introduction
•  Programming Models
•  Remote Invocation
•  Messaging
•  Distributed Data
•  Peer 2 Peer
•  Distributed Hash Tables
•  Cloud Computing
•  Security
•  And…
Introduction
•  Who is Dean Sheehan? Ok, enough about me…


•  What are Distributed Systems?


•  “A collection of computing devices that communicate with
 each other by way of a network to achieve a common
 shared goal”
  •  Why do this?


•  Why is this different from “A collection of threads in a
 computer that communicate with each other, by way of
 shared memory, to achieve a common goal”?
Programming Models
•  Writing systems that coordinate the actions of multiple
 computers involves writing programs that communicate
 with each other

•  There are two general models:


•  Implicit – hiding the distributed nature of the system from
 the programmer

•  Explicit – requiring the programmer to work with the
 communicate as a first class programming problem
Implicit Model
Given that the ‘function’ ‘add’ exists with a signature like
      int add (int param1, int param2)

and a segment of program ‘myprog’
      {
           int result = add(50,50);
      }

then what if we could do some magic that caused the
execution of ‘add’ by ‘myprog’ on computer ‘A’ to suddenly
appear as an execution ‘add’ within another instance of
‘myprog’ on computer ‘B’
Remote Procedure Call
•  This magic is generally referred to as RPC


•  It forms the basis of
    •  Sun RPC
    •  DCE
    •  DCE++


  •  CORBA
  •  DCOM


  •  Web Services
  •  Enterprise Service Buses
  •  Service Oriented Architectures
Proxy
•  Take ‘myprog’


•  Run it through a tool for creating distributed
 communication which turns the ‘add’ in myprog into

•  int add (int parm1, int param2) {
       // package of data including param1 & param2
       // send to other computer
       // wait for other computer to reply
       // unpack response
       return result;
 }
Stub
•  We have our real ‘add’ function

•  We have ‘myprog’ which has our real call on ‘add’

•  The tool that created the Proxy that stands in for ‘add’ also
    creates a Stub that stands in for ‘myprog’

{
          // wait for message from another computer
          // unpack message
          int response = add(param1, param2);
          // package up response message
          // send response
}
Proxies, Stubs & Marshalling


                     marshal     unmarshal

              Add                            Add          Add
  MyProg
             Proxy                           Stub       Function
                     unmarshal    marshal



     Computer A            Network                  Computer B
Procedures or Objects
•  Remote Procedure Call (RPC,DCE) just translate a call to
 a Procedure (Function) into a network hop and then a call
 of that function elsewhere

•  Object Oriented languages like Java and C++ enable
 groups of functions to be associated with lumps of data
 (Objects).

•  DCE++, CORBA, J2EE & DCOM etc. take RPC to the
 next level and maintain a notion of object identity in the
 ‘function’ call so it isn’t just ‘add’ it is ‘add’ on object
 instance ‘22’
Statefull & Stateless
•  Thinking of distributed objects takes us into a discussion
 of state
  •  Data stored in memory or potentially on disks that aren’t universally
   accessible (not with the same access semantics anyway)


•  If a distributed system holds a dialog between two
 computers where ‘state’ is built up as part of that dialog
 then it is considered stateful.
  •  Consider a shopping cart on an e-commerce site


•  Implications are generally one of scalability and
 availability
Language Neutrality
•  Take the notion of RPC


•  Extract out the notion of ‘Interface Definition’ for ‘add’ in a
 programmatic language neutral fashion:
  •  IDL (CORBA)
  •  MIDL (DCOM)
  •  WSDL (Web Services)
  •  etc.


•  Run ‘add interface definition’ to C++ Proxy tool
•  Run ‘add interface definition’ to Java Stub tool
•  Implement a C++ client and a Java server
Explicit Model
•  Programmer now has to be aware that the ‘add’ function is
 on the end of a network somewhere

•  Programmer of ‘myprog’ is responsible for marshalling
 that request and sending it somewhere as well as waiting
 for the response

•  Programmer of ‘add’ is responsible for waiting for a
 message, unmarshalling it, processing it, marshaling
 response and send it to the desired recipient
Message Oriented Middleware
•  Provides a layer of abstraction over the network


•  Enables queue and topic based communication


•  Guarantees and reliability


•  Asynchronous and synchronous messaging


•  Content Based Routing
Topics & Queues
•  Topic is best thought of as a broadcast channel


  •  I publish a message to topic ‘cambridge.cycling’ and anyone
   listening gets to see the messages
    •  Partial (source) ordering
    •  Possible guaranteed delivery (persistent listeners)
  •  Publish (Pub) & Subscribe (Sub) is a general term used for this


•  Queues are pipes where the messages are ‘consumable’,
 I don’t just ‘peek’ at the message along with all the other
 listeners, I pull it off and consume it so others can’t see it
  •  Partial (source) ordering
  •  Possible guaranteed delivery (much more common in Qs)
Products
•  Unlike RPCs, standards are few and far between


•  Java Message Service is probably most successful


•  TIBCO Rendezvous


•  IBM MQ (Message Queue)


•  RabitMQ (AMQ)
Synchronous & asynchronous
•  RPC (Implicit) model tends to be ‘synchronous’
   •  Procedure calls are synchronous
   •  I place the call and I continue with the result
   •  Natural ‘linear’ programming model


•  Messaging (Explicit) models encourages ‘asynchronous’
   •  Send a message
   •  Send another message
   •  Have a body of code associated with receipt of a message
    •  May be response, may be an un-solicited message



•  Pros & Cons
Web Services
•  Nothing special


•  WSDL is the ‘Service Definition’


•  Language bindings and tools turn the WSDL into a form of
 Proxy and Stub

•  Tend to thing of WSDL over HTTP but can be over any
 piece of ‘wet string’ technically
REST
•  Very popular, probably the most popular ‘network’ API in
 use today

•  Stateless


•  URI based


•  GET, POST, DELETE HTTP Operations


•  XML and JSON are popular marshaling formats
Implicit v Explicit
•  What are the advantages of the implicit model


•  What are its disadvantages


•  Is the explicit model just the reverse
Data
•  What is special about data in distributed systems?


•  What things can we rely on in non-distributed systems
 where data is concerned?
Transactions
•  Consider a banking application that moves money from
 one account to another
  •  Simple debit here and a credit there


•  There are transactional concerns when it is a single
 system, a single computer program and a single database
  •  These can all be handled by any serious database system
    •  ACID


•  Now what if it is a transaction spanning two systems in
 two different banks with two separate databases!
2-Phase Commit
•  Single phase commit works just fine for a single database


•  It doesn’t work for 2+ databases


•  The commit negotiation is more complicated
Peer 2 Peer
•  Traditional systems tend to be master / slave, client /
 server, service oriented etc.

•  These are all structured and hierarchical, organized, in
 nature

•  There is a bread of distributed systems where the players
 are mostly equal - peers
Social Networking
•  Firewalls get in the way of our social networking
    •  I can open connections from my home machine to a central server
       but I don’t want anyone opening connects to my computer


•  Does Skype, Yahoo, IM, BitTorrent (you name it) have
 massive central servers for allowing all the clients to
 connect and have traffic routed through them

•  What are the issues with that model
Network Tunneling
•  Computer A is behind a firewall and wants to talk to Computer B
•  Computer B is behind a firewall and wants to talk to Computer A


•  Computer X is not behind a firewall and it will help A set up a connection to B




                                         X


                             1                         2
                                    3            3




                                    4            4


                       A                  5                 B
Distributed Hash Tables
•  Maintaining a massive table {key->value} spread across
 multiple nodes with high availability

•  From any one of the representative nodes, ask it to get K1 or
 put {K1,V1}
  •  DHT algorithm knows how to narrow in on the node that is actually
     currently responsible for K1 value storage
  •  Different algorithms have different costs/benefits
    •    New node entry
    •    Existing node exit (planned or otherwise)
    •    Read
    •    Write

•  Interesting algorithms
    •  CHORD
    •  CAN
    •  Many more
Cloud Computing
•  Means lots of things but lets just look at what is generally
 referred to as High Performance Computing (HPC)

•  Tens, hundreds, thousands, maybe more, of machines being
 used to solve problems

•  An explicit model of distribution and very master/slave oriented
  •  Break the work up into pieces
  •  Have those pieces executed all over the place
  •  Collect the results


•  Requires large degree of independence in the data and
 processing to be performed
Task Engines
•  Java (Tuple) Spaces (Gigaspaces)
•  Sun Grid Engine
•  Platform
•  Data Synapse (TIBCO now)


•  All take the workload, as expressed in a number of tasks
 to perform or chunks of data to process, and farm the
 work out to many machines (a compute farm)

•  Can get as far as Desktop Scavenging
Map Reduce
•  Essentially a Grid Engine


•  However, the work isn’t explicitly packaged up into parcels
 by the program

•  The program describes the packaging algorithm (map)
 and how to combine the results (reduce)

•  The Map Reduce (Hadoop for example) takes the full
 dataset, carves it into pieces using the provided Map
 function, distributes the pieces out for processes (possible
 further map and reduce) and then combines the pieces
 using the supplied Reduce
Security
•  Authentication
•  Privacy
•  Integrity
•  Non-repudiation


•  Authorisation – this one causes most of the problems


•  Who is the security ‘principle’ to be authorized when an
 activity spans multiple systems?
And… what about?
•  Grid, or Big, Data


•  Distributed Caching


•  Distributed Deadlocks


•  Enterprise Java Beans, Session Beans, Message Beans


•  Pi-Calculus


•  Virtualization

More Related Content

What's hot

Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityNational Cheng Kung University
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
Vb net xp_10
Vb net xp_10Vb net xp_10
Vb net xp_10Niit Care
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...lseinturier
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
Chapter 2 slides
Chapter 2 slidesChapter 2 slides
Chapter 2 slideslara_ays
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with GitIvano Malavolta
 
Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data ModelingEelco Visser
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)David Rosenblum
 

What's hot (20)

Ajs 4 b
Ajs 4 bAjs 4 b
Ajs 4 b
 
Ajs 4 a
Ajs 4 aAjs 4 a
Ajs 4 a
 
Ajs 2 b
Ajs 2 bAjs 2 b
Ajs 2 b
 
Ajs 3 b
Ajs 3 bAjs 3 b
Ajs 3 b
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
 
1
11
1
 
Ajs 3 a
Ajs 3 aAjs 3 a
Ajs 3 a
 
Dacj 1-2 b
Dacj 1-2 bDacj 1-2 b
Dacj 1-2 b
 
Ajs 2 a
Ajs 2 aAjs 2 a
Ajs 2 a
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Vb net xp_10
Vb net xp_10Vb net xp_10
Vb net xp_10
 
Ajs 3 c
Ajs 3 cAjs 3 c
Ajs 3 c
 
Unit 04: From Requirements to the UX Model
Unit 04: From Requirements to the UX ModelUnit 04: From Requirements to the UX Model
Unit 04: From Requirements to the UX Model
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
Chapter 2 slides
Chapter 2 slidesChapter 2 slides
Chapter 2 slides
 
[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git[2015/2016] Collaborative software development with Git
[2015/2016] Collaborative software development with Git
 
Domain Analysis & Data Modeling
Domain Analysis & Data ModelingDomain Analysis & Data Modeling
Domain Analysis & Data Modeling
 
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
Software System Scalability: Concepts and Techniques (keynote talk at ISEC 2009)
 
Unit4
Unit4Unit4
Unit4
 

Viewers also liked

Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design op205
 
3 f6 security
3 f6 security3 f6 security
3 f6 securityop205
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processingop205
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysisop205
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summaryop205
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filtersop205
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filtersop205
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filtersop205
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filtersop205
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design op205
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filtersop205
 
Sound and hearing by mairasadiq
Sound and hearing by mairasadiqSound and hearing by mairasadiq
Sound and hearing by mairasadiqmairasadiq
 
Digital signal processing computer based approach - sanjit k. mitra (2nd ed)
Digital signal processing   computer based approach - sanjit k. mitra (2nd ed)Digital signal processing   computer based approach - sanjit k. mitra (2nd ed)
Digital signal processing computer based approach - sanjit k. mitra (2nd ed)Surbhi Maheshwari
 
Signal Prosessing Lab Mannual
Signal Prosessing Lab Mannual Signal Prosessing Lab Mannual
Signal Prosessing Lab Mannual Jitendra Jangid
 
Lecture9 Signal and Systems
Lecture9 Signal and SystemsLecture9 Signal and Systems
Lecture9 Signal and Systemsbabak danyal
 
digital signal-processing-lab-manual
digital signal-processing-lab-manualdigital signal-processing-lab-manual
digital signal-processing-lab-manualAhmed Alshomi
 
Lecture5 Signal and Systems
Lecture5 Signal and SystemsLecture5 Signal and Systems
Lecture5 Signal and Systemsbabak danyal
 
Lecture2 Signal and Systems
Lecture2 Signal and SystemsLecture2 Signal and Systems
Lecture2 Signal and Systemsbabak danyal
 
PHOENIX: The Hospital Case Mgmt Co
PHOENIX: The Hospital Case Mgmt CoPHOENIX: The Hospital Case Mgmt Co
PHOENIX: The Hospital Case Mgmt Costefanid
 
Pmm who we are
Pmm who we arePmm who we are
Pmm who we arestefanid
 

Viewers also liked (20)

Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design
 
3 f6 security
3 f6 security3 f6 security
3 f6 security
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processing
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysis
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summary
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filters
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filters
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filters
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filters
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filters
 
Sound and hearing by mairasadiq
Sound and hearing by mairasadiqSound and hearing by mairasadiq
Sound and hearing by mairasadiq
 
Digital signal processing computer based approach - sanjit k. mitra (2nd ed)
Digital signal processing   computer based approach - sanjit k. mitra (2nd ed)Digital signal processing   computer based approach - sanjit k. mitra (2nd ed)
Digital signal processing computer based approach - sanjit k. mitra (2nd ed)
 
Signal Prosessing Lab Mannual
Signal Prosessing Lab Mannual Signal Prosessing Lab Mannual
Signal Prosessing Lab Mannual
 
Lecture9 Signal and Systems
Lecture9 Signal and SystemsLecture9 Signal and Systems
Lecture9 Signal and Systems
 
digital signal-processing-lab-manual
digital signal-processing-lab-manualdigital signal-processing-lab-manual
digital signal-processing-lab-manual
 
Lecture5 Signal and Systems
Lecture5 Signal and SystemsLecture5 Signal and Systems
Lecture5 Signal and Systems
 
Lecture2 Signal and Systems
Lecture2 Signal and SystemsLecture2 Signal and Systems
Lecture2 Signal and Systems
 
PHOENIX: The Hospital Case Mgmt Co
PHOENIX: The Hospital Case Mgmt CoPHOENIX: The Hospital Case Mgmt Co
PHOENIX: The Hospital Case Mgmt Co
 
Pmm who we are
Pmm who we arePmm who we are
Pmm who we are
 

Similar to 3 f6 9_distributed_systems

Basic of computers
Basic of computers Basic of computers
Basic of computers Harsh Porwal
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsAya Mahmoud
 
Exploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservicesExploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservices💡 Tomasz Kogut
 
Ruby Microservices with RabbitMQ
Ruby Microservices with RabbitMQRuby Microservices with RabbitMQ
Ruby Microservices with RabbitMQZoran Majstorovic
 
Basic computers for DIU laptop project students
Basic computers for DIU laptop project studentsBasic computers for DIU laptop project students
Basic computers for DIU laptop project studentsAlauddin Azad
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInLinkedIn
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudyJohn Adams
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Linux Inter Process Communication
Linux Inter Process CommunicationLinux Inter Process Communication
Linux Inter Process CommunicationAbhishek Sagar
 
Dc lec-06 & 07 (osi model)
Dc lec-06 & 07 (osi model)Dc lec-06 & 07 (osi model)
Dc lec-06 & 07 (osi model)diaryinc
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application deliveryDoug Vanderweide
 
Why we got to Docker
Why we got to DockerWhy we got to Docker
Why we got to Dockerallingeek
 
gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1Anne Starr
 
Cryptography Challenges for Computational Privacy in Public Clouds
Cryptography Challenges for Computational Privacy in Public CloudsCryptography Challenges for Computational Privacy in Public Clouds
Cryptography Challenges for Computational Privacy in Public CloudsSashank Dara
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...Javier García Magna
 
Everything you always wanted to know about Distributed databases, at devoxx l...
Everything you always wanted to know about Distributed databases, at devoxx l...Everything you always wanted to know about Distributed databases, at devoxx l...
Everything you always wanted to know about Distributed databases, at devoxx l...javier ramirez
 

Similar to 3 f6 9_distributed_systems (20)

David buksbaum a-briefintroductiontocsharp
David buksbaum a-briefintroductiontocsharpDavid buksbaum a-briefintroductiontocsharp
David buksbaum a-briefintroductiontocsharp
 
Basic of computers
Basic of computers Basic of computers
Basic of computers
 
Inter-Process Communication in distributed systems
Inter-Process Communication in distributed systemsInter-Process Communication in distributed systems
Inter-Process Communication in distributed systems
 
Exploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservicesExploring Twitter's Finagle technology stack for microservices
Exploring Twitter's Finagle technology stack for microservices
 
Ruby Microservices with RabbitMQ
Ruby Microservices with RabbitMQRuby Microservices with RabbitMQ
Ruby Microservices with RabbitMQ
 
Basic computers for DIU laptop project students
Basic computers for DIU laptop project studentsBasic computers for DIU laptop project students
Basic computers for DIU laptop project students
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
 
John adams talk cloudy
John adams   talk cloudyJohn adams   talk cloudy
John adams talk cloudy
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Linux Inter Process Communication
Linux Inter Process CommunicationLinux Inter Process Communication
Linux Inter Process Communication
 
Introduction
IntroductionIntroduction
Introduction
 
Dc lec-06 & 07 (osi model)
Dc lec-06 & 07 (osi model)Dc lec-06 & 07 (osi model)
Dc lec-06 & 07 (osi model)
 
Serverless: The future of application delivery
Serverless: The future of application deliveryServerless: The future of application delivery
Serverless: The future of application delivery
 
Why we got to Docker
Why we got to DockerWhy we got to Docker
Why we got to Docker
 
Thread
ThreadThread
Thread
 
gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1gkkCloudtechnologyassociate(cta)day 1
gkkCloudtechnologyassociate(cta)day 1
 
Scheduling Thread
Scheduling  ThreadScheduling  Thread
Scheduling Thread
 
Cryptography Challenges for Computational Privacy in Public Clouds
Cryptography Challenges for Computational Privacy in Public CloudsCryptography Challenges for Computational Privacy in Public Clouds
Cryptography Challenges for Computational Privacy in Public Clouds
 
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20....Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
.Net Microservices with Event Sourcing, CQRS, Docker and... Windows Server 20...
 
Everything you always wanted to know about Distributed databases, at devoxx l...
Everything you always wanted to know about Distributed databases, at devoxx l...Everything you always wanted to know about Distributed databases, at devoxx l...
Everything you always wanted to know about Distributed databases, at devoxx l...
 

More from op205

3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patternsop205
 
Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programmingop205
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...op205
 
More on DFT
More on DFTMore on DFT
More on DFTop205
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transformop205
 
3F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part13F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part1op205
 

More from op205 (8)

3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patterns
 
Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programming
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
 
More on DFT
More on DFTMore on DFT
More on DFT
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transform
 
3F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part13F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part1
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

3 f6 9_distributed_systems

  • 1. DISTRIBUTED SYSTEMS A whirlwind tour Dean Sheehan CTO & SVP Product Strategy dsheehan@iwavesoftware.com
  • 2. Contents •  Introduction •  Programming Models •  Remote Invocation •  Messaging •  Distributed Data •  Peer 2 Peer •  Distributed Hash Tables •  Cloud Computing •  Security •  And…
  • 3. Introduction •  Who is Dean Sheehan? Ok, enough about me… •  What are Distributed Systems? •  “A collection of computing devices that communicate with each other by way of a network to achieve a common shared goal” •  Why do this? •  Why is this different from “A collection of threads in a computer that communicate with each other, by way of shared memory, to achieve a common goal”?
  • 4. Programming Models •  Writing systems that coordinate the actions of multiple computers involves writing programs that communicate with each other •  There are two general models: •  Implicit – hiding the distributed nature of the system from the programmer •  Explicit – requiring the programmer to work with the communicate as a first class programming problem
  • 5. Implicit Model Given that the ‘function’ ‘add’ exists with a signature like int add (int param1, int param2) and a segment of program ‘myprog’ { int result = add(50,50); } then what if we could do some magic that caused the execution of ‘add’ by ‘myprog’ on computer ‘A’ to suddenly appear as an execution ‘add’ within another instance of ‘myprog’ on computer ‘B’
  • 6. Remote Procedure Call •  This magic is generally referred to as RPC •  It forms the basis of •  Sun RPC •  DCE •  DCE++ •  CORBA •  DCOM •  Web Services •  Enterprise Service Buses •  Service Oriented Architectures
  • 7. Proxy •  Take ‘myprog’ •  Run it through a tool for creating distributed communication which turns the ‘add’ in myprog into •  int add (int parm1, int param2) { // package of data including param1 & param2 // send to other computer // wait for other computer to reply // unpack response return result; }
  • 8. Stub •  We have our real ‘add’ function •  We have ‘myprog’ which has our real call on ‘add’ •  The tool that created the Proxy that stands in for ‘add’ also creates a Stub that stands in for ‘myprog’ { // wait for message from another computer // unpack message int response = add(param1, param2); // package up response message // send response }
  • 9. Proxies, Stubs & Marshalling marshal unmarshal Add Add Add MyProg Proxy Stub Function unmarshal marshal Computer A Network Computer B
  • 10. Procedures or Objects •  Remote Procedure Call (RPC,DCE) just translate a call to a Procedure (Function) into a network hop and then a call of that function elsewhere •  Object Oriented languages like Java and C++ enable groups of functions to be associated with lumps of data (Objects). •  DCE++, CORBA, J2EE & DCOM etc. take RPC to the next level and maintain a notion of object identity in the ‘function’ call so it isn’t just ‘add’ it is ‘add’ on object instance ‘22’
  • 11. Statefull & Stateless •  Thinking of distributed objects takes us into a discussion of state •  Data stored in memory or potentially on disks that aren’t universally accessible (not with the same access semantics anyway) •  If a distributed system holds a dialog between two computers where ‘state’ is built up as part of that dialog then it is considered stateful. •  Consider a shopping cart on an e-commerce site •  Implications are generally one of scalability and availability
  • 12. Language Neutrality •  Take the notion of RPC •  Extract out the notion of ‘Interface Definition’ for ‘add’ in a programmatic language neutral fashion: •  IDL (CORBA) •  MIDL (DCOM) •  WSDL (Web Services) •  etc. •  Run ‘add interface definition’ to C++ Proxy tool •  Run ‘add interface definition’ to Java Stub tool •  Implement a C++ client and a Java server
  • 13. Explicit Model •  Programmer now has to be aware that the ‘add’ function is on the end of a network somewhere •  Programmer of ‘myprog’ is responsible for marshalling that request and sending it somewhere as well as waiting for the response •  Programmer of ‘add’ is responsible for waiting for a message, unmarshalling it, processing it, marshaling response and send it to the desired recipient
  • 14. Message Oriented Middleware •  Provides a layer of abstraction over the network •  Enables queue and topic based communication •  Guarantees and reliability •  Asynchronous and synchronous messaging •  Content Based Routing
  • 15. Topics & Queues •  Topic is best thought of as a broadcast channel •  I publish a message to topic ‘cambridge.cycling’ and anyone listening gets to see the messages •  Partial (source) ordering •  Possible guaranteed delivery (persistent listeners) •  Publish (Pub) & Subscribe (Sub) is a general term used for this •  Queues are pipes where the messages are ‘consumable’, I don’t just ‘peek’ at the message along with all the other listeners, I pull it off and consume it so others can’t see it •  Partial (source) ordering •  Possible guaranteed delivery (much more common in Qs)
  • 16. Products •  Unlike RPCs, standards are few and far between •  Java Message Service is probably most successful •  TIBCO Rendezvous •  IBM MQ (Message Queue) •  RabitMQ (AMQ)
  • 17. Synchronous & asynchronous •  RPC (Implicit) model tends to be ‘synchronous’ •  Procedure calls are synchronous •  I place the call and I continue with the result •  Natural ‘linear’ programming model •  Messaging (Explicit) models encourages ‘asynchronous’ •  Send a message •  Send another message •  Have a body of code associated with receipt of a message •  May be response, may be an un-solicited message •  Pros & Cons
  • 18. Web Services •  Nothing special •  WSDL is the ‘Service Definition’ •  Language bindings and tools turn the WSDL into a form of Proxy and Stub •  Tend to thing of WSDL over HTTP but can be over any piece of ‘wet string’ technically
  • 19. REST •  Very popular, probably the most popular ‘network’ API in use today •  Stateless •  URI based •  GET, POST, DELETE HTTP Operations •  XML and JSON are popular marshaling formats
  • 20. Implicit v Explicit •  What are the advantages of the implicit model •  What are its disadvantages •  Is the explicit model just the reverse
  • 21. Data •  What is special about data in distributed systems? •  What things can we rely on in non-distributed systems where data is concerned?
  • 22. Transactions •  Consider a banking application that moves money from one account to another •  Simple debit here and a credit there •  There are transactional concerns when it is a single system, a single computer program and a single database •  These can all be handled by any serious database system •  ACID •  Now what if it is a transaction spanning two systems in two different banks with two separate databases!
  • 23. 2-Phase Commit •  Single phase commit works just fine for a single database •  It doesn’t work for 2+ databases •  The commit negotiation is more complicated
  • 24. Peer 2 Peer •  Traditional systems tend to be master / slave, client / server, service oriented etc. •  These are all structured and hierarchical, organized, in nature •  There is a bread of distributed systems where the players are mostly equal - peers
  • 25. Social Networking •  Firewalls get in the way of our social networking •  I can open connections from my home machine to a central server but I don’t want anyone opening connects to my computer •  Does Skype, Yahoo, IM, BitTorrent (you name it) have massive central servers for allowing all the clients to connect and have traffic routed through them •  What are the issues with that model
  • 26. Network Tunneling •  Computer A is behind a firewall and wants to talk to Computer B •  Computer B is behind a firewall and wants to talk to Computer A •  Computer X is not behind a firewall and it will help A set up a connection to B X 1 2 3 3 4 4 A 5 B
  • 27. Distributed Hash Tables •  Maintaining a massive table {key->value} spread across multiple nodes with high availability •  From any one of the representative nodes, ask it to get K1 or put {K1,V1} •  DHT algorithm knows how to narrow in on the node that is actually currently responsible for K1 value storage •  Different algorithms have different costs/benefits •  New node entry •  Existing node exit (planned or otherwise) •  Read •  Write •  Interesting algorithms •  CHORD •  CAN •  Many more
  • 28. Cloud Computing •  Means lots of things but lets just look at what is generally referred to as High Performance Computing (HPC) •  Tens, hundreds, thousands, maybe more, of machines being used to solve problems •  An explicit model of distribution and very master/slave oriented •  Break the work up into pieces •  Have those pieces executed all over the place •  Collect the results •  Requires large degree of independence in the data and processing to be performed
  • 29. Task Engines •  Java (Tuple) Spaces (Gigaspaces) •  Sun Grid Engine •  Platform •  Data Synapse (TIBCO now) •  All take the workload, as expressed in a number of tasks to perform or chunks of data to process, and farm the work out to many machines (a compute farm) •  Can get as far as Desktop Scavenging
  • 30. Map Reduce •  Essentially a Grid Engine •  However, the work isn’t explicitly packaged up into parcels by the program •  The program describes the packaging algorithm (map) and how to combine the results (reduce) •  The Map Reduce (Hadoop for example) takes the full dataset, carves it into pieces using the provided Map function, distributes the pieces out for processes (possible further map and reduce) and then combines the pieces using the supplied Reduce
  • 31. Security •  Authentication •  Privacy •  Integrity •  Non-repudiation •  Authorisation – this one causes most of the problems •  Who is the security ‘principle’ to be authorized when an activity spans multiple systems?
  • 32. And… what about? •  Grid, or Big, Data •  Distributed Caching •  Distributed Deadlocks •  Enterprise Java Beans, Session Beans, Message Beans •  Pi-Calculus •  Virtualization