SlideShare une entreprise Scribd logo
1  sur  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?

Contenu connexe

Tendances

Networking Project(FINAL)
Networking Project(FINAL)Networking Project(FINAL)
Networking Project(FINAL)
Priyojit Das
 
Transparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LABTransparent proxy - SIP - 2014 - NCC LAB
Transparent proxy - SIP - 2014 - NCC LAB
Benith T
 
Lecture application layer
Lecture application layerLecture application layer
Lecture application layer
Hasam Panezai
 
Private messenger
Private messengerPrivate messenger
Private messenger
Piyush Gaur
 

Tendances (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
 

Similaire à Communication Mechanisms, Past, Present & Future

Network and distributed systems
Network and distributed systemsNetwork and distributed systems
Network and distributed systems
Sri Prasanna
 
Intro to web services
Intro to web servicesIntro to web services
Intro to web services
Neil Ghosh
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
Sri Prasanna
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
hushu
 

Similaire à 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
 

Plus de Muhammad Ali

Plus de 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
 

Dernier

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
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
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
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
 
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...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
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
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

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