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

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
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
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 

Recently uploaded (20)

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
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
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 

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