SlideShare ist ein Scribd-Unternehmen logo
1 von 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?

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
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.pdfkalichargn70th171
 
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.
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
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 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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
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
 
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
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
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.
 
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
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 

Kürzlich hochgeladen (20)

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
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
 
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...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
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 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...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.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
 
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...
 
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
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
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 ...
 
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
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 

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