SlideShare a Scribd company logo
1 of 109
RPC Case Studies Paul Krzyzanowski [email_address] [email_address] Distributed Systems Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
Overview of RPC Systems Sun RPC DCE RPC DCOM CORBA Java RMI XML RPC, SOAP/.NET, AJAX, REST
Sun RPC
Sun RPC ,[object Object],[object Object],[object Object],[object Object]
RPC IDL Interface definition program number Interface definition version 1 version 2
RPC IDL program GETNAME { version GET_VERS { long GET_ID(string<50>) = 1;   string GET_ADDR(long) = 2;   } = 1;  /* version */ } = 0x31223456; name.x
rpcgen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What goes on in the system: server ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What goes on in the system: client ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Advantages ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DCE RPC
DCE RPC ,[object Object],[object Object],[object Object]
DCE RPC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Unique IDs ,[object Object],[object Object],[object Object],[object Object],[object Object]
IDN compiler ,[object Object],[object Object]
Service lookup ,[object Object],[object Object],[object Object],[object Object],[object Object]
DCE service lookup client cell dir server Request service lookup from cell directory server Return server machine name service? server
DCE service lookup client cell dir server Connect to endpoint mapper service and get port binding from this local name server local dir server SERVER service? port dced
DCE service lookup client cell dir server Connect to service and request remote procedure execution local dir server SERVER RPC server dced
Marshaling ,[object Object],[object Object],[object Object],[object Object],[object Object]
Sun and  DCE RPC  deficiencies ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The next generation of RPCs Support for object oriented languages
Microsoft DCOM
Microsoft  DCOM ,[object Object],[object Object],[object Object]
Activation on server ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Beneath  DCOM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Marshaling ,[object Object],[object Object]
MIDL ,[object Object],[object Object],[object Object],[object Object],[object Object],both are COM objects that are loaded by the COM libraries as needed
Remote reference lifetime ,[object Object],[object Object],[object Object]
Cleanup ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Microsoft  DCOM  improvements ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA
CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA logical view object implementation client ORB Generated stub code Generated skeleton code
IDL ( Interface Definition Language ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IDL example Module StudentObject { struct StudentInfo {   string name; int id; float gpa; }; exception Unknown {}; interface Student { StudentInfo getinfo(in string name) raises(Unknown); void putinfo(in StudentInfo data); }; };
CORBA IDL ,[object Object],[object Object],[object Object]
Object Request Broker (ORB) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ORB functions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objects ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interoperability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IIOP ,[object Object],[object Object],[object Object],[object Object]
CORBA Services ( COS ) ,[object Object],[object Object],[object Object]
Popular services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Popular services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA vendors ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assessment ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java RMI
Java RMI ,[object Object],[object Object],[object Object],[object Object]
RMI components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Interoperability ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
RMI similarities ,[object Object],[object Object],[object Object],[object Object],[object Object]
RMI differences ,[object Object],[object Object],[object Object]
New classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
New classes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],needed for remote objects needed for parameters
Stubs ,[object Object],[object Object],[object Object]
Naming service ,[object Object],[object Object]
Server ,[object Object],Stuff obj = new Stuff(); Naming.bind(“MyStuff”, obj);
Client ,[object Object],[object Object],[object Object],[object Object],test.func(1, 2, “hi”); MyInterface test = (MyInterface)   Naming.lookup(“rmi://www.pk.org/MyStuff”);
Java RMI infrastructure client application registry stub skeleton remote interface remote object implementation bind lookup remote reference f(args) f(args) return/exc. return/exception marshal stream
RMI Distributed Garbage Collection ,[object Object],[object Object],[object Object],[object Object],[object Object]
The third generation of RPCs Web services and Riding the XML Bandwagon
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XML RPC
Origins ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XML-RPC example <methodCall> <methodName> sample.sumAndDifference </methodName> <params> <param><value><int>  5  </int></value></param> <param><value><int>  3  </int></value></param> </params> </methodCall>
XML-RPC data types ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assessment ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SOAP
SOAP origins ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Web Services and WSDL ,[object Object],[object Object],[object Object],[object Object]
WSDL Structure ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
WSDL structure: port types <definitions  name=&quot;MobilePhoneService“ target=…> <portType name=&quot;MobilePhoneService_port&quot;> <operation name=&quot;getListOfModels&quot;> <operation name=&quot;getPrice&quot;> <Input message=&quot;PhoneModel&quot;/> <output message=&quot;PhoneModelPrice&quot;/> <output message=&quot;ListOfPhoneModels&quot;/> 2. service definition 1. type definitions 3. messaging spec
WSDL part 3: messaging spec <binding name=&quot;MobilePhoneService_Binding“ type=&quot;MobilePhoneService_port&quot;> <soap:binding  style=&quot;rpc“ transport=&quot;http://schemas.xmlsoap.org/soap/http“  />  <operation name=&quot; getPrice &quot;> <soap:operation soapAction=&quot; urn:MobilePhoneService &quot;/> <input> <soap:body encodingStyle= &quot;http://schemas.xmlsoap.org/soap/encoding/“ namespace=&quot;urn:MobilePhoneService&quot; use=&quot;encoded&quot;/>  </input> <output> <soap:body encodingStyle=   &quot;http://schemas.xmlsoap.org/soap/encoding/“ namespace=&quot;urn:MobilePhoneService&quot; use=&quot;encoded&quot; /> </output> </operation> </binding>
Microsoft .NET Remoting
Problems with COM/DCOM ,[object Object],[object Object],[object Object],[object Object],[object Object]
Microsoft .NET ,[object Object],[object Object],[object Object],[object Object],[object Object]
Components ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
New object runtime environment ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Common Language Runtime ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
.NET Remoting ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
.NET Remoting ,[object Object],[object Object],[object Object],[object Object]
Object Lifetime ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Web functionality ,[object Object],[object Object],[object Object],[object Object],[object Object]
.NET Web Services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
.NET Web Services vs. SOAP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Web Service invocation ASP.NET HTTP request Method/parameters Encoded in XML Process ASP Unmarshal msg Invoke procedure .NET object Method 1 Method  n Web Server
Web Service invocation ASP.NET HTTP request Method/parameters Encoded in XML Process ASP Unmarshal msg Return data Marshal return data Encoded response .NET object Method 1 Method  n Web Server
Away from RPC… More Web Services
Until 2006… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The future of SOAP? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AJAX ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AJAX & XMLHTTP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AJAX on the Web ,[object Object],[object Object],[object Object],[object Object],[object Object]
REST ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Resource-oriented services ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Resource-oriented services ,[object Object],[object Object],[object Object],<?xml version=&quot;1.0&quot;?> <p:Parts xmlns:p=&quot;http://www.parts-depot.com&quot;  xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;> <Part id=&quot;00345&quot; xlink:href=&quot;http://www.parts-depot.com/parts/00345&quot;/> <Part id=&quot;00346&quot; xlink:href=&quot;http://www.parts-depot.com/parts/00346&quot;/> <Part id=&quot;00347&quot; xlink:href=&quot;http://www.parts-depot.com/parts/00347&quot;/> <Part id=&quot;00348&quot; xlink:href=&quot;http://www.parts-depot.com/parts/00348&quot;/> </p:Parts>
Resource-oriented services ,[object Object],[object Object],[object Object],?xml version=&quot;1.0&quot;?> <p:Part xmlns:p=&quot;http://www.parts-depot.com&quot;  xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;> <Part-ID>00345</Part-ID> <Name>Widget-A</Name> <Description>This part is used within the frap assembly</Description> <Specification xlink:href=&quot;http://www.parts-depot.com/parts/00345/specification&quot;/> <UnitCost currency=&quot;USD&quot;>0.10</UnitCost> <Quantity>10</Quantity> </p:Part>
REST vs. RPC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
REST-based Systems ,[object Object],[object Object],[object Object],[object Object],[object Object]
Summary
ONC RPC, DCE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Microsoft DCOM/ORPC ,[object Object],[object Object],[object Object],[object Object],[object Object]
Java RMI ,[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XML-RPC/SOAP/.NET ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
AJAX, REST ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The end.

More Related Content

What's hot

Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modelingramyaaswin
 
Multi Processors And Multi Computers
 Multi Processors And Multi Computers Multi Processors And Multi Computers
Multi Processors And Multi ComputersNemwos
 
17. Recovery System in DBMS
17. Recovery System in DBMS17. Recovery System in DBMS
17. Recovery System in DBMSkoolkampus
 
Naming in Distributed Systems
Naming in Distributed SystemsNaming in Distributed Systems
Naming in Distributed SystemsNandakumar P
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSKathirvel Ayyaswamy
 
Computer Networks - Error Detection & Error Correction
Computer Networks - Error Detection & Error CorrectionComputer Networks - Error Detection & Error Correction
Computer Networks - Error Detection & Error CorrectionSaikrishna Tanguturu
 
Synchronization in distributed systems
Synchronization in distributed systems Synchronization in distributed systems
Synchronization in distributed systems SHATHAN
 
Scheduling Definition, objectives and types
Scheduling Definition, objectives and types Scheduling Definition, objectives and types
Scheduling Definition, objectives and types Maitree Patel
 

What's hot (20)

IPv4 Addressing
 IPv4 Addressing   IPv4 Addressing
IPv4 Addressing
 
Mobile Transport layer
Mobile Transport layerMobile Transport layer
Mobile Transport layer
 
On demand provisioning
On demand provisioningOn demand provisioning
On demand provisioning
 
Flow oriented modeling
Flow oriented modelingFlow oriented modeling
Flow oriented modeling
 
Multi Processors And Multi Computers
 Multi Processors And Multi Computers Multi Processors And Multi Computers
Multi Processors And Multi Computers
 
Distributed Coordination-Based Systems
Distributed Coordination-Based SystemsDistributed Coordination-Based Systems
Distributed Coordination-Based Systems
 
17. Recovery System in DBMS
17. Recovery System in DBMS17. Recovery System in DBMS
17. Recovery System in DBMS
 
Distributed Deadlock Detection.ppt
Distributed Deadlock Detection.pptDistributed Deadlock Detection.ppt
Distributed Deadlock Detection.ppt
 
Naming in Distributed Systems
Naming in Distributed SystemsNaming in Distributed Systems
Naming in Distributed Systems
 
CS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMSCS9222 ADVANCED OPERATING SYSTEMS
CS9222 ADVANCED OPERATING SYSTEMS
 
static libraries and dynamic libraries
static libraries and dynamic librariesstatic libraries and dynamic libraries
static libraries and dynamic libraries
 
Computer Networks - Error Detection & Error Correction
Computer Networks - Error Detection & Error CorrectionComputer Networks - Error Detection & Error Correction
Computer Networks - Error Detection & Error Correction
 
Peephole Optimization
Peephole OptimizationPeephole Optimization
Peephole Optimization
 
Quality of Service
Quality of ServiceQuality of Service
Quality of Service
 
TCP/IP Basics
TCP/IP BasicsTCP/IP Basics
TCP/IP Basics
 
Trends in distributed systems
Trends in distributed systemsTrends in distributed systems
Trends in distributed systems
 
Synchronization in distributed systems
Synchronization in distributed systems Synchronization in distributed systems
Synchronization in distributed systems
 
Scheduling Definition, objectives and types
Scheduling Definition, objectives and types Scheduling Definition, objectives and types
Scheduling Definition, objectives and types
 
Unit 4
Unit 4Unit 4
Unit 4
 
Transport layer
Transport layer Transport layer
Transport layer
 

Viewers also liked

remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure callsAshish Kumar
 
Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Peter R. Egli
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure CallAbdelrahman Al-Ogail
 
An Overview of Distributed Debugging
An Overview of Distributed DebuggingAn Overview of Distributed Debugging
An Overview of Distributed DebuggingAnant Narayanan
 
Routing Technique Table Type by Umar danjuma maiwada.ppt
Routing Technique Table Type by Umar danjuma maiwada.pptRouting Technique Table Type by Umar danjuma maiwada.ppt
Routing Technique Table Type by Umar danjuma maiwada.pptumardanjumamaiwada
 
Zaharaddeen karami lawal distance vector routing
Zaharaddeen karami lawal distance vector routingZaharaddeen karami lawal distance vector routing
Zaharaddeen karami lawal distance vector routingKlawal13
 
network filesystem briefs
network filesystem briefsnetwork filesystem briefs
network filesystem briefsbergwolf
 
Remote procedure calls
Remote procedure callsRemote procedure calls
Remote procedure callsimnomus
 
Distributed computing environment
Distributed computing environmentDistributed computing environment
Distributed computing environmentRavi Bhushan
 
Digital transmission new unit 3
Digital transmission new unit 3Digital transmission new unit 3
Digital transmission new unit 3Srashti Vyas
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBAPeter R. Egli
 
Transmission of digital signals
Transmission of digital signalsTransmission of digital signals
Transmission of digital signalsSachin Artani
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬Channy Yun
 

Viewers also liked (20)

remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure calls
 
Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)
 
Remote Procedure Call
Remote Procedure CallRemote Procedure Call
Remote Procedure Call
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure Call
 
Security
SecuritySecurity
Security
 
Dce rpc
Dce rpcDce rpc
Dce rpc
 
An Overview of Distributed Debugging
An Overview of Distributed DebuggingAn Overview of Distributed Debugging
An Overview of Distributed Debugging
 
Routing Technique Table Type by Umar danjuma maiwada.ppt
Routing Technique Table Type by Umar danjuma maiwada.pptRouting Technique Table Type by Umar danjuma maiwada.ppt
Routing Technique Table Type by Umar danjuma maiwada.ppt
 
Zaharaddeen karami lawal distance vector routing
Zaharaddeen karami lawal distance vector routingZaharaddeen karami lawal distance vector routing
Zaharaddeen karami lawal distance vector routing
 
network filesystem briefs
network filesystem briefsnetwork filesystem briefs
network filesystem briefs
 
Remote procedure calls
Remote procedure callsRemote procedure calls
Remote procedure calls
 
Distributed computing environment
Distributed computing environmentDistributed computing environment
Distributed computing environment
 
Digital transmission new unit 3
Digital transmission new unit 3Digital transmission new unit 3
Digital transmission new unit 3
 
Java rmi
Java rmiJava rmi
Java rmi
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
 
Chap4
Chap4Chap4
Chap4
 
Ch 04
Ch 04Ch 04
Ch 04
 
RPC
RPCRPC
RPC
 
Transmission of digital signals
Transmission of digital signalsTransmission of digital signals
Transmission of digital signals
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
 

Similar to RPC Case Studies on Distributed Systems Architectures

05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studieshushu
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptxKaviya452563
 
Introduction to C++ Remote Procedure Call (RPC)
Introduction to C++ Remote Procedure Call (RPC)Introduction to C++ Remote Procedure Call (RPC)
Introduction to C++ Remote Procedure Call (RPC)Abdelrahman Al-Ogail
 
Rpc (Distributed computing)
Rpc (Distributed computing)Rpc (Distributed computing)
Rpc (Distributed computing)Sri Prasanna
 
Corba and-java
Corba and-javaCorba and-java
Corba and-javaafreen58
 
UNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.pptUNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.pptAsmitSilhare1
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondJon Galloway
 
remote method invocation
remote method invocationremote method invocation
remote method invocationRavi Theja
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdfMandanaHazeri
 
Middleware1
Middleware1Middleware1
Middleware1bhumi109
 
Communication in Distributed System.ppt
Communication in Distributed System.pptCommunication in Distributed System.ppt
Communication in Distributed System.pptSELVAVINAYAGAMG
 
CORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBACORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBAPriyanka Patil
 
Communication Mechanisms, Past, Present & Future
Communication Mechanisms, Past, Present & FutureCommunication Mechanisms, Past, Present & Future
Communication Mechanisms, Past, Present & FutureMuhammad Ali
 

Similar to RPC Case Studies on Distributed Systems Architectures (20)

05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
 
MIDELWARE TECH
MIDELWARE TECHMIDELWARE TECH
MIDELWARE TECH
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptx
 
Introduction to C++ Remote Procedure Call (RPC)
Introduction to C++ Remote Procedure Call (RPC)Introduction to C++ Remote Procedure Call (RPC)
Introduction to C++ Remote Procedure Call (RPC)
 
Corba model ppt
Corba model pptCorba model ppt
Corba model ppt
 
6. The grid-COMPUTING OGSA and WSRF
6. The grid-COMPUTING OGSA and WSRF6. The grid-COMPUTING OGSA and WSRF
6. The grid-COMPUTING OGSA and WSRF
 
Rpc (Distributed computing)
Rpc (Distributed computing)Rpc (Distributed computing)
Rpc (Distributed computing)
 
Corba and-java
Corba and-javaCorba and-java
Corba and-java
 
UNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.pptUNIT V - The OMG way-system object model Notes.ppt
UNIT V - The OMG way-system object model Notes.ppt
 
What you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyondWhat you need to know about .NET Core 3.0 and beyond
What you need to know about .NET Core 3.0 and beyond
 
Chapter 6-Remoting
Chapter 6-RemotingChapter 6-Remoting
Chapter 6-Remoting
 
remote method invocation
remote method invocationremote method invocation
remote method invocation
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdf
 
P2P .NET short seminar
P2P .NET short seminarP2P .NET short seminar
P2P .NET short seminar
 
Lecture9
Lecture9Lecture9
Lecture9
 
Middleware1
Middleware1Middleware1
Middleware1
 
Communication in Distributed System.ppt
Communication in Distributed System.pptCommunication in Distributed System.ppt
Communication in Distributed System.ppt
 
CORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBACORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBA
 
Presentation On Com Dcom
Presentation On Com DcomPresentation On Com Dcom
Presentation On Com Dcom
 
Communication Mechanisms, Past, Present & Future
Communication Mechanisms, Past, Present & FutureCommunication Mechanisms, Past, Present & Future
Communication Mechanisms, Past, Present & Future
 

More from Sri Prasanna

More from Sri Prasanna (20)

Qr codes para tech radar
Qr codes para tech radarQr codes para tech radar
Qr codes para tech radar
 
Qr codes para tech radar 2
Qr codes para tech radar 2Qr codes para tech radar 2
Qr codes para tech radar 2
 
Test
TestTest
Test
 
Test
TestTest
Test
 
assds
assdsassds
assds
 
assds
assdsassds
assds
 
asdsa
asdsaasdsa
asdsa
 
dsd
dsddsd
dsd
 
About stacks
About stacksAbout stacks
About stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About  StacksAbout  Stacks
About Stacks
 
About Stacks
About StacksAbout Stacks
About Stacks
 
About Stacks
About StacksAbout Stacks
About Stacks
 
Network and distributed systems
Network and distributed systemsNetwork and distributed systems
Network and distributed systems
 
Introduction & Parellelization on large scale clusters
Introduction & Parellelization on large scale clustersIntroduction & Parellelization on large scale clusters
Introduction & Parellelization on large scale clusters
 
Mapreduce: Theory and implementation
Mapreduce: Theory and implementationMapreduce: Theory and implementation
Mapreduce: Theory and implementation
 
Other distributed systems
Other distributed systemsOther distributed systems
Other distributed systems
 

Recently uploaded

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

RPC Case Studies on Distributed Systems Architectures

  • 1. RPC Case Studies Paul Krzyzanowski [email_address] [email_address] Distributed Systems Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
  • 2. Overview of RPC Systems Sun RPC DCE RPC DCOM CORBA Java RMI XML RPC, SOAP/.NET, AJAX, REST
  • 4.
  • 5. RPC IDL Interface definition program number Interface definition version 1 version 2
  • 6. RPC IDL program GETNAME { version GET_VERS { long GET_ID(string<50>) = 1; string GET_ADDR(long) = 2; } = 1; /* version */ } = 0x31223456; name.x
  • 7.
  • 8.
  • 9.
  • 10.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. DCE service lookup client cell dir server Request service lookup from cell directory server Return server machine name service? server
  • 18. DCE service lookup client cell dir server Connect to endpoint mapper service and get port binding from this local name server local dir server SERVER service? port dced
  • 19. DCE service lookup client cell dir server Connect to service and request remote procedure execution local dir server SERVER RPC server dced
  • 20.
  • 21.
  • 22. The next generation of RPCs Support for object oriented languages
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. CORBA
  • 33.
  • 34.
  • 35. CORBA logical view object implementation client ORB Generated stub code Generated skeleton code
  • 36.
  • 37. IDL example Module StudentObject { struct StudentInfo { string name; int id; float gpa; }; exception Unknown {}; interface Student { StudentInfo getinfo(in string name) raises(Unknown); void putinfo(in StudentInfo data); }; };
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61. Java RMI infrastructure client application registry stub skeleton remote interface remote object implementation bind lookup remote reference f(args) f(args) return/exc. return/exception marshal stream
  • 62.
  • 63. The third generation of RPCs Web services and Riding the XML Bandwagon
  • 64.
  • 66.
  • 67. XML-RPC example <methodCall> <methodName> sample.sumAndDifference </methodName> <params> <param><value><int> 5 </int></value></param> <param><value><int> 3 </int></value></param> </params> </methodCall>
  • 68.
  • 69.
  • 70. SOAP
  • 71.
  • 72.
  • 73.
  • 74. WSDL structure: port types <definitions name=&quot;MobilePhoneService“ target=…> <portType name=&quot;MobilePhoneService_port&quot;> <operation name=&quot;getListOfModels&quot;> <operation name=&quot;getPrice&quot;> <Input message=&quot;PhoneModel&quot;/> <output message=&quot;PhoneModelPrice&quot;/> <output message=&quot;ListOfPhoneModels&quot;/> 2. service definition 1. type definitions 3. messaging spec
  • 75. WSDL part 3: messaging spec <binding name=&quot;MobilePhoneService_Binding“ type=&quot;MobilePhoneService_port&quot;> <soap:binding style=&quot;rpc“ transport=&quot;http://schemas.xmlsoap.org/soap/http“ /> <operation name=&quot; getPrice &quot;> <soap:operation soapAction=&quot; urn:MobilePhoneService &quot;/> <input> <soap:body encodingStyle= &quot;http://schemas.xmlsoap.org/soap/encoding/“ namespace=&quot;urn:MobilePhoneService&quot; use=&quot;encoded&quot;/> </input> <output> <soap:body encodingStyle= &quot;http://schemas.xmlsoap.org/soap/encoding/“ namespace=&quot;urn:MobilePhoneService&quot; use=&quot;encoded&quot; /> </output> </operation> </binding>
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88. Web Service invocation ASP.NET HTTP request Method/parameters Encoded in XML Process ASP Unmarshal msg Invoke procedure .NET object Method 1 Method n Web Server
  • 89. Web Service invocation ASP.NET HTTP request Method/parameters Encoded in XML Process ASP Unmarshal msg Return data Marshal return data Encoded response .NET object Method 1 Method n Web Server
  • 90. Away from RPC… More Web Services
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.