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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
DHCP
DHCPDHCP
DHCP
 
Location-Based Services on Android
Location-Based Services on AndroidLocation-Based Services on Android
Location-Based Services on Android
 
Chapter 6 os
Chapter 6 osChapter 6 os
Chapter 6 os
 
Object Oriented Analysis (Coad-Yourdon)
Object Oriented Analysis (Coad-Yourdon)Object Oriented Analysis (Coad-Yourdon)
Object Oriented Analysis (Coad-Yourdon)
 
Dhcp ppt
Dhcp pptDhcp ppt
Dhcp ppt
 
AndroidManifest
AndroidManifestAndroidManifest
AndroidManifest
 
Web services SOAP
Web services SOAPWeb services SOAP
Web services SOAP
 
Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)Sun RPC (Remote Procedure Call)
Sun RPC (Remote Procedure Call)
 
Ado.Net Tutorial
Ado.Net TutorialAdo.Net Tutorial
Ado.Net Tutorial
 
Android activity lifecycle
Android activity lifecycleAndroid activity lifecycle
Android activity lifecycle
 
message passing
 message passing message passing
message passing
 
Mutual exclusion in distributed systems
Mutual exclusion in distributed systemsMutual exclusion in distributed systems
Mutual exclusion in distributed systems
 
tL20 event handling
tL20 event handlingtL20 event handling
tL20 event handling
 
Introduction to Google App Engine
Introduction to Google App EngineIntroduction to Google App Engine
Introduction to Google App Engine
 
Interprocess Communication
Interprocess CommunicationInterprocess Communication
Interprocess Communication
 
Binder: Android IPC
Binder: Android IPCBinder: Android IPC
Binder: Android IPC
 
CORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBACORBA Basic and Deployment of CORBA
CORBA Basic and Deployment of CORBA
 
Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.ioReal Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.io
 
Overview of computing paradigm
Overview of computing paradigmOverview of computing paradigm
Overview of computing paradigm
 

Andere mochten auch

remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure calls
Ashish Kumar
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure Call
Abdelrahman Al-Ogail
 
network filesystem briefs
network filesystem briefsnetwork filesystem briefs
network filesystem briefs
bergwolf
 

Andere mochten auch (20)

remote procedure calls
  remote procedure calls  remote procedure calls
remote procedure calls
 
Remote Procedure Call
Remote Procedure CallRemote Procedure Call
Remote Procedure Call
 
RPC: Remote procedure call
RPC: Remote procedure callRPC: Remote procedure call
RPC: 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 기술 현황과 전망- 윤석찬
 

Ähnlich wie Rpc Case Studies (Distributed computing)

05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
hushu
 
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-java
afreen58
 
remote method invocation
remote method invocationremote method invocation
remote method invocation
Ravi Theja
 
Middleware1
Middleware1Middleware1
Middleware1
bhumi109
 

Ähnlich wie Rpc Case Studies (Distributed computing) (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
 
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
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
 

Mehr von Sri Prasanna

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

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

Rpc Case Studies (Distributed computing)

  • 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.