SlideShare a Scribd company logo
1 of 21
Communication Mechanisms,
Past, Present & Future
Background
 Initially application were standalone and were not communicating with each other
 During DOS era OS services were basically interrupts, language runtime provide wrapper over
them to make life of programmer easy.
 Later on OS services started were exposed as system calls or win32 API calls.
 With multitasking operating systems applications were required to communicate to each other
 Inter-process communication was there but that can only be used if both applications resides on
same machine
 In order to decouple logic and increase reusability and distribution some communication
mechanism was required
Client-Server Architecture
 Initially Implemented by means of Sockets
 Server socket read commands and execute them in a gigantic switch case
 A lot of boilerplate had to written in order to make this work.
 Was very difficult to manage on both server side and client side.
 Serialization of objects was an issue, usually delimited data was transferred(comma separated,
pipe separated).
 Serialization also had to be handled by the developer himself
 Bad handling usually mixing delimiter with actual data.
NUXI problem
 Machine A is using Big Endian
 It tries to send “UNIX” to Machine B
 Machine B is using Little Endian
 Machine B read data and saves it as NUXI
 Here endian means the way data is stored in a word
RPC(Remote Procedure Call)
 RPC was a protocol initially designed for DCE(Distributed Computing Environment)
 RPC is synchronous operation, requires caller to be suspended until execution is done and result
is returned
 An IDL(Interface Definition Language) is published as part of contract for RPC
 Stub were generated from IDL, it acts as the representative of remote procedure in client code.
 When this method is called it is received by stub
 Stub handles conversion of objects into wire format and vice versa(marshalling & unmarshalling)
and forwarded call the second party
RPC(Remote Procedure Call)
 Client must know the address of machine hosting remote procedure.
 Similarly server has a stub(server stub) that receives the call
 Server Stub convert data received from wire to objects and forward it to the actual method.
 You can’t send pointers to an RPC since both process resides in different address space.
 RPC was very much language and technology dependent.
 RPC become foundation for may other technologies including COM/OLE, DCOM, CORBA, RMI
Sample IDL
Problems with RPC
 Very much language dependent
 Binary formats with no backward compatibility, fixed formats
 Not very flexible
 Almost no security
 Generally not used for public communication
XML-RPC
 XML-RPC started in 1990’s and marked the birth of web services
 Lightweight version of RPC with a couple of new supported types
 Language neutral & uses the reliability of HTTP
 Payload is text(XML), easy to debug and inspect
 Simple and straight forward in terms of implementation and design
XML-RPC Payload
SOAP(Simple Access Object Protocol)
 Based on XML, where message is not method call, instead it is an envelop with headers, body,
faults
 Contract first approach, where contract is WSDL
 WSDL(Web Service Description Language) instead of IDL
 Provides a flexible way to generate client side & server side stubs
 WSDL also generates classes for messages, reducing boilerplate
 Extensible in terms of adding more features on top of SOAP
 WS-Addressing
 WS-Security
 WS-Profile
SOAP
 Transport neutrality allows SOAP to operate under any protocol including HTTP, JMS, SMTP, UDP
and TCP
 Webservice Registry
 UDDI(Universal Description, Discovery, and Integration)
ReST(Representational State Transfer)
 ReST was mainly used to leverage HTTP, where HTTP method describes the intention of call
 PUT -> Create
 GET -> Retrieve
 POST -> Update
 DELETE -> Delete
 URL’s specifies resource to access for example
 DELETE /employee/123
 POST /employee/123
 PUT /employee
 GET /employee/123
ReST(Representational State Transfer)
 ReST didn’t specified underlying payload format
 XML/JSON/YAML everything is fine
 Doesn’t talk much about security
 Code first approach
 WADL was there but is not adapted widely yet
GraphQL
 GraphQL is ReST done right
 It is a query language for API’s
 It is mainly using JSON
 Allows you to fetch only information you need, or read multiple entities at the same time in one
single call
 Allows notification on updates of resources called mutation
GraphQL request/response
gRPC
 gRPC is Google’s RPC
 This is another way to improve RPC
 Mainly uses protobuff as communication format
 Very lightweight
 Allows streaming output
 Allows stub generation and channel selection
gRPC IDL
XMPP
 Open standard for messaging and presense
 Open & living standard
 XMPP Core defines near real-time exchange of structured yet extensile data between two or
more network entities
 XEP’s defines extensions to the XMPP Core, like
 XEP-0001 XMPP Extension Protocols
 XEP-0009 Jabber-RPC
 XEP-0072 SOAP Over XMPP
 XEP-0080 User Location
 XEP-0174 Serverless Messaging
MQTT(MQ Telemetry Transport)
 Machine to Machine IoT connectivity protocol
 Lightweight publisher/subscriber messaging transport
 Designed for constrained devices and low-bandwidth, high-latency or unreliable networks
 Utilize JSON as payload
 Pushy is using MQTT for push notifications on android
 MQTT is used Facebook messenger
Questions?

More Related Content

What's hot

Lan chat system
Lan chat systemLan chat system
Lan chat systemWipro
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperMark West
 
web communication protocols in IoT
web communication protocols in IoTweb communication protocols in IoT
web communication protocols in IoTFabMinds
 
Client server chat
Client server chatClient server chat
Client server chatFreelancer
 
Socket programming in C#
Socket programming in C#Socket programming in C#
Socket programming in C#Nang Luc Vu
 
Networking Project(FINAL)
Networking Project(FINAL)Networking Project(FINAL)
Networking Project(FINAL)Priyojit Das
 
Software Defined Networking - 1
Software Defined Networking - 1Software Defined Networking - 1
Software Defined Networking - 1Pradeep Kumar TS
 
Transparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LABTransparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LABBenith T
 
ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)manojsonkar
 
video conference (peer to peer)
video conference (peer to peer)video conference (peer to peer)
video conference (peer to peer)mohamed amr
 
Lecture application layer
Lecture application layerLecture application layer
Lecture application layerHasam Panezai
 
Private messenger
Private messengerPrivate messenger
Private messengerPiyush Gaur
 
Socket programming or network programming
Socket programming or network programmingSocket programming or network programming
Socket programming or network programmingMmanan91
 
application layer protocols
application layer protocolsapplication layer protocols
application layer protocolsbhavanatmithun
 

What's hot (20)

Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Websocket
WebsocketWebsocket
Websocket
 
Lan chat system
Lan chat systemLan chat system
Lan chat system
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
 
web communication protocols in IoT
web communication protocols in IoTweb communication protocols in IoT
web communication protocols in IoT
 
Java
Java Java
Java
 
Client server chat
Client server chatClient server chat
Client server chat
 
Socket programming in C#
Socket programming in C#Socket programming in C#
Socket programming in C#
 
Web services
Web servicesWeb services
Web services
 
RIPP Notes
RIPP NotesRIPP Notes
RIPP Notes
 
Networking Project(FINAL)
Networking Project(FINAL)Networking Project(FINAL)
Networking Project(FINAL)
 
Software Defined Networking - 1
Software Defined Networking - 1Software Defined Networking - 1
Software Defined Networking - 1
 
Transparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LABTransparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LAB
 
ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)
 
video conference (peer to peer)
video conference (peer to peer)video conference (peer to peer)
video conference (peer to peer)
 
Lecture application layer
Lecture application layerLecture application layer
Lecture application layer
 
Private messenger
Private messengerPrivate messenger
Private messenger
 
Networking chapter II
Networking chapter IINetworking chapter II
Networking chapter II
 
Socket programming or network programming
Socket programming or network programmingSocket programming or network programming
Socket programming or network programming
 
application layer protocols
application layer protocolsapplication layer protocols
application layer protocols
 

Similar to Communication Mechanisms, Past, Present & Future

CocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIsCocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIsTim Burks
 
What I learned about APIs in my first year at Google
What I learned about APIs in my first year at GoogleWhat I learned about APIs in my first year at Google
What I learned about APIs in my first year at GoogleTim Burks
 
layering.pdf
layering.pdflayering.pdf
layering.pdfBoostHub
 
Network and distributed systems
Network and distributed systemsNetwork and distributed systems
Network and distributed systemsSri Prasanna
 
application layer protocol for iot.pptx
application layer protocol for iot.pptxapplication layer protocol for iot.pptx
application layer protocol for iot.pptxaravind Guru
 
Ch4 Protocols.pptx
Ch4 Protocols.pptxCh4 Protocols.pptx
Ch4 Protocols.pptxazmerawAnna1
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web servicesNeil Ghosh
 
Ch4 Protocols.pptx
Ch4 Protocols.pptxCh4 Protocols.pptx
Ch4 Protocols.pptxkebeAman
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Sri Prasanna
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2DBU
 
Design an Implementation of A Messaging and Resource Sharing Software
Design an Implementation of A Messaging and Resource Sharing SoftwareDesign an Implementation of A Messaging and Resource Sharing Software
Design an Implementation of A Messaging and Resource Sharing Softwarenilabarai
 
Networking Fundamentals
Networking Fundamentals Networking Fundamentals
Networking Fundamentals Vikas Gupta
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdfMandanaHazeri
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studieshushu
 

Similar to Communication Mechanisms, Past, Present & Future (20)

CocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIsCocoaConf: The Language of Mobile Software is APIs
CocoaConf: The Language of Mobile Software is APIs
 
What I learned about APIs in my first year at Google
What I learned about APIs in my first year at GoogleWhat I learned about APIs in my first year at Google
What I learned about APIs in my first year at Google
 
layering.pdf
layering.pdflayering.pdf
layering.pdf
 
Application Layer
Application Layer Application Layer
Application Layer
 
Network and distributed systems
Network and distributed systemsNetwork and distributed systems
Network and distributed systems
 
application layer protocol for iot.pptx
application layer protocol for iot.pptxapplication layer protocol for iot.pptx
application layer protocol for iot.pptx
 
Ch4 Protocols.pptx
Ch4 Protocols.pptxCh4 Protocols.pptx
Ch4 Protocols.pptx
 
Ead pertemuan-7
Ead pertemuan-7Ead pertemuan-7
Ead pertemuan-7
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web services
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
 
Ch4 Protocols.pptx
Ch4 Protocols.pptxCh4 Protocols.pptx
Ch4 Protocols.pptx
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2
 
Design an Implementation of A Messaging and Resource Sharing Software
Design an Implementation of A Messaging and Resource Sharing SoftwareDesign an Implementation of A Messaging and Resource Sharing Software
Design an Implementation of A Messaging and Resource Sharing Software
 
Unit_2_Midddleware_2.ppt
Unit_2_Midddleware_2.pptUnit_2_Midddleware_2.ppt
Unit_2_Midddleware_2.ppt
 
Networking Fundamentals
Networking Fundamentals Networking Fundamentals
Networking Fundamentals
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdf
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
 
Chapter2 Application
Chapter2 ApplicationChapter2 Application
Chapter2 Application
 
SOAP WEB TECHNOLOGIES
SOAP WEB TECHNOLOGIESSOAP WEB TECHNOLOGIES
SOAP WEB TECHNOLOGIES
 

More from Muhammad Ali

Introduction to Architectural Katas
Introduction to Architectural KatasIntroduction to Architectural Katas
Introduction to Architectural KatasMuhammad Ali
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignMuhammad Ali
 
DBMS Modeling & Optimization
DBMS Modeling & OptimizationDBMS Modeling & Optimization
DBMS Modeling & OptimizationMuhammad Ali
 
Android architectural components
Android architectural componentsAndroid architectural components
Android architectural componentsMuhammad Ali
 
Architectural katas
Architectural katasArchitectural katas
Architectural katasMuhammad Ali
 
Software Architecture Meetup introduction
Software Architecture Meetup introductionSoftware Architecture Meetup introduction
Software Architecture Meetup introductionMuhammad Ali
 
Practicing DDD & CQRS
Practicing DDD & CQRSPracticing DDD & CQRS
Practicing DDD & CQRSMuhammad Ali
 
Introduction to Domain driven design
Introduction to Domain driven designIntroduction to Domain driven design
Introduction to Domain driven designMuhammad Ali
 

More from Muhammad Ali (8)

Introduction to Architectural Katas
Introduction to Architectural KatasIntroduction to Architectural Katas
Introduction to Architectural Katas
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
DBMS Modeling & Optimization
DBMS Modeling & OptimizationDBMS Modeling & Optimization
DBMS Modeling & Optimization
 
Android architectural components
Android architectural componentsAndroid architectural components
Android architectural components
 
Architectural katas
Architectural katasArchitectural katas
Architectural katas
 
Software Architecture Meetup introduction
Software Architecture Meetup introductionSoftware Architecture Meetup introduction
Software Architecture Meetup introduction
 
Practicing DDD & CQRS
Practicing DDD & CQRSPracticing DDD & CQRS
Practicing DDD & CQRS
 
Introduction to Domain driven design
Introduction to Domain driven designIntroduction to Domain driven design
Introduction to Domain driven design
 

Recently uploaded

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 

Recently uploaded (20)

What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 

Communication Mechanisms, Past, Present & Future

  • 2. Background  Initially application were standalone and were not communicating with each other  During DOS era OS services were basically interrupts, language runtime provide wrapper over them to make life of programmer easy.  Later on OS services started were exposed as system calls or win32 API calls.  With multitasking operating systems applications were required to communicate to each other  Inter-process communication was there but that can only be used if both applications resides on same machine  In order to decouple logic and increase reusability and distribution some communication mechanism was required
  • 3. Client-Server Architecture  Initially Implemented by means of Sockets  Server socket read commands and execute them in a gigantic switch case  A lot of boilerplate had to written in order to make this work.  Was very difficult to manage on both server side and client side.  Serialization of objects was an issue, usually delimited data was transferred(comma separated, pipe separated).  Serialization also had to be handled by the developer himself  Bad handling usually mixing delimiter with actual data.
  • 4. NUXI problem  Machine A is using Big Endian  It tries to send “UNIX” to Machine B  Machine B is using Little Endian  Machine B read data and saves it as NUXI  Here endian means the way data is stored in a word
  • 5. RPC(Remote Procedure Call)  RPC was a protocol initially designed for DCE(Distributed Computing Environment)  RPC is synchronous operation, requires caller to be suspended until execution is done and result is returned  An IDL(Interface Definition Language) is published as part of contract for RPC  Stub were generated from IDL, it acts as the representative of remote procedure in client code.  When this method is called it is received by stub  Stub handles conversion of objects into wire format and vice versa(marshalling & unmarshalling) and forwarded call the second party
  • 6. RPC(Remote Procedure Call)  Client must know the address of machine hosting remote procedure.  Similarly server has a stub(server stub) that receives the call  Server Stub convert data received from wire to objects and forward it to the actual method.  You can’t send pointers to an RPC since both process resides in different address space.  RPC was very much language and technology dependent.  RPC become foundation for may other technologies including COM/OLE, DCOM, CORBA, RMI
  • 8. Problems with RPC  Very much language dependent  Binary formats with no backward compatibility, fixed formats  Not very flexible  Almost no security  Generally not used for public communication
  • 9. XML-RPC  XML-RPC started in 1990’s and marked the birth of web services  Lightweight version of RPC with a couple of new supported types  Language neutral & uses the reliability of HTTP  Payload is text(XML), easy to debug and inspect  Simple and straight forward in terms of implementation and design
  • 11. SOAP(Simple Access Object Protocol)  Based on XML, where message is not method call, instead it is an envelop with headers, body, faults  Contract first approach, where contract is WSDL  WSDL(Web Service Description Language) instead of IDL  Provides a flexible way to generate client side & server side stubs  WSDL also generates classes for messages, reducing boilerplate  Extensible in terms of adding more features on top of SOAP  WS-Addressing  WS-Security  WS-Profile
  • 12. SOAP  Transport neutrality allows SOAP to operate under any protocol including HTTP, JMS, SMTP, UDP and TCP  Webservice Registry  UDDI(Universal Description, Discovery, and Integration)
  • 13. ReST(Representational State Transfer)  ReST was mainly used to leverage HTTP, where HTTP method describes the intention of call  PUT -> Create  GET -> Retrieve  POST -> Update  DELETE -> Delete  URL’s specifies resource to access for example  DELETE /employee/123  POST /employee/123  PUT /employee  GET /employee/123
  • 14. ReST(Representational State Transfer)  ReST didn’t specified underlying payload format  XML/JSON/YAML everything is fine  Doesn’t talk much about security  Code first approach  WADL was there but is not adapted widely yet
  • 15. GraphQL  GraphQL is ReST done right  It is a query language for API’s  It is mainly using JSON  Allows you to fetch only information you need, or read multiple entities at the same time in one single call  Allows notification on updates of resources called mutation
  • 17. gRPC  gRPC is Google’s RPC  This is another way to improve RPC  Mainly uses protobuff as communication format  Very lightweight  Allows streaming output  Allows stub generation and channel selection
  • 19. XMPP  Open standard for messaging and presense  Open & living standard  XMPP Core defines near real-time exchange of structured yet extensile data between two or more network entities  XEP’s defines extensions to the XMPP Core, like  XEP-0001 XMPP Extension Protocols  XEP-0009 Jabber-RPC  XEP-0072 SOAP Over XMPP  XEP-0080 User Location  XEP-0174 Serverless Messaging
  • 20. MQTT(MQ Telemetry Transport)  Machine to Machine IoT connectivity protocol  Lightweight publisher/subscriber messaging transport  Designed for constrained devices and low-bandwidth, high-latency or unreliable networks  Utilize JSON as payload  Pushy is using MQTT for push notifications on android  MQTT is used Facebook messenger