尊敬的 微信汇率:1円 ≈ 0.046215 元 支付宝汇率:1円 ≈ 0.046306元 [退出登录]
SlideShare a Scribd company logo
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 1
Part 4
Other Topics
RPC & Middleware
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 2
Middleware
 Tools to help programmers
 Makes client-server programming
 Easier
 Faster
 Makes resulting software
 Less error-prone
 More reliable
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 3
Middleware Approach
 Allow programmer to work with familiar
language constructs
 Provide tools to help programmer
 Special translators
 Libraries
 Automatically generate code for
 Network communication
 Connection management
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 4
Remote Procedure Call
 Uses standard procedure call paradigm
 Divides program along procedure call
boundaries
 Main program and procedures for user interaction
in client side
 Other procedures in server side
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 5
Reason for Remote Procedure
Call
If a programmer follows the same procedure
call paradigm used to build conventional
programs when building client and server
software, the programmer will find the task
easier and will make fewer mistakes
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 6
Illustration of Conventional
Procedure Call Graph
 Arrow denotes procedure call
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 7
Procedure Call Graph Divided
Into Client and Server
 Division occurs on call boundary
 Main program in client piece
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 8
Communication Stubs
 Inserted to enable remote “call”
 Automatically generated
 Use original call interface
 Allow calling and called procedure to remain
unchanged
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 9
Illustration of Client and Server Stubs
 Original call in (a)
 Same interface with stubs in (b)
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 10
Creating Stubs
 Programmer writes
 Code for a program
 Specification of procedure interfaces using
Interface Definition Language (IDL)
 Middleware generates
 Client and server stub code
 Necessary socket calls
 Data translation
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 11
Data Representation
 Network can connect heterogeneous
computers
 Two computers may use different
 Integer representations
 Character codes
 Floating point representations
 Translation required
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 12
Possible Data
Translation Schemes
 Use receiver’s representation
 Sender translates all outgoing data
 Use sender’s representation
 Receiver translates all incoming data
 Use external representation (popular)
 Sender translates to external form before sending
 Receiver translates from external form after
reception
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 13
Middleware Technologies That
Use Remote Procedure Call
 ONC RPC
 Open Network Computing
 IETF standard
 Popular in Unix world
 DCE RPC
 Distributed Computing Environment
 Open Group Standard
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 14
Middleware Technologies That
Use Remote Procedure Call
(continued)
 MSRPC
 Microsoft
 Variant of DCE RPC
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 15
Object-Oriented Middleware
 Designed for use with object-oriented
programming languages
 Same general scheme as RPC
 Interface Definition Language
 Tool to build stubs
 Libraries to handle network communication
 Uses method invocation instead of procedure
call
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 16
Middleware Technologies That
Use Remote Object Invocation
 CORBA
 Common Object Request Broker Architecture
 Well known object-oriented middleware
 MSRPC2
 Microsoft
 Also called Object RPC (ORPC)
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 17
Middleware Technologies That
Use Remote Object Invocation
 COM / DCOM
 Also from Microsoft
 Component Object Model (COM)
 Used on single computer
 Provides mechanism for inter-object references
 Distributed Component Object Model
 Used across multiple computers
 Includes communication stubs
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 18
Middleware Technologies That
Use Remote Object Invocation
 RMI
 From Sun Microsystems
 Methods of remote Java objects can be invoked
from other Java virtual machines on different
hosts
 Jini
 Also from Sun; based on Java
 Provides an environment for creating
dynamically networked components,
applications, and services that scale
FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 19
Summary (continued)
 Middleware
 Tools to help build client and server
 Automates routine tasks
 Two popular paradigms
 Remote procedure call
 Object invocation
 Generates communication stubs

More Related Content

What's hot

Java Decompiler
Java DecompilerJava Decompiler
Java Decompiler
Manjunath Badiger
 
OpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source SoftwareOpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source Software
Alexandro Colorado
 
Pa 10 n1 louis decroo jr.
Pa 10 n1 louis decroo jr.Pa 10 n1 louis decroo jr.
Pa 10 n1 louis decroo jr.
ldecroo
 
Interpreter
InterpreterInterpreter
Interpreter
ShahDhruv21
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
Tanzeela_Hussain
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
Ivan Paulovich
 
New c sharp3_features_(linq)_part_iv
New c sharp3_features_(linq)_part_ivNew c sharp3_features_(linq)_part_iv
New c sharp3_features_(linq)_part_iv
Nico Ludwig
 
Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipClean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software Craftsmanship
Ivan Paulovich
 
Clean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichClean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovich
Ivan Paulovich
 
Linker and Loader Explained
Linker and Loader  ExplainedLinker and Loader  Explained
Linker and Loader Explained
Adarsh Kr Sinha
 
Language processor
Language processorLanguage processor
Language processor
Abha Damani
 
Resume
ResumeResume
Resume
Anil Kumar
 

What's hot (12)

Java Decompiler
Java DecompilerJava Decompiler
Java Decompiler
 
OpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source SoftwareOpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source Software
 
Pa 10 n1 louis decroo jr.
Pa 10 n1 louis decroo jr.Pa 10 n1 louis decroo jr.
Pa 10 n1 louis decroo jr.
 
Interpreter
InterpreterInterpreter
Interpreter
 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
 
DDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan PaulovichDDD Tactical Design with Clean Architecture - Ivan Paulovich
DDD Tactical Design with Clean Architecture - Ivan Paulovich
 
New c sharp3_features_(linq)_part_iv
New c sharp3_features_(linq)_part_ivNew c sharp3_features_(linq)_part_iv
New c sharp3_features_(linq)_part_iv
 
Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipClean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software Craftsmanship
 
Clean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovichClean Architecture Essentials @ivanpaulovich
Clean Architecture Essentials @ivanpaulovich
 
Linker and Loader Explained
Linker and Loader  ExplainedLinker and Loader  Explained
Linker and Loader Explained
 
Language processor
Language processorLanguage processor
Language processor
 
Resume
ResumeResume
Resume
 

Similar to Middleware fourth unit

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
Dr Sandeep Kumar Poonia
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
abhijit2511
 
Remote Web Desk
Remote Web DeskRemote Web Desk
Remote Web Desk
Satish Chandra
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
Sri Prasanna
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
Ali Taki
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
Ghodhbane Mohamed Amine
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdf
MandanaHazeri
 
05 rpc-case studies
05 rpc-case studies05 rpc-case studies
05 rpc-case studies
hushu
 
Net framework
Net frameworkNet framework
Net framework
sumit1503
 
Sreerag dot net - objectives & architecture
Sreerag   dot net - objectives & architectureSreerag   dot net - objectives & architecture
Sreerag dot net - objectives & architecture
Sreerag Gopinath
 
Overview of asp .net
Overview of asp .netOverview of asp .net
Overview of asp .net
Sajan Sahu
 
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overviewIntroduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Cisco DevNet
 
Net framework
Net frameworkNet framework
Net framework
jhsri
 
Cetpa infotech is the best advanced .net training institute in Delhi NCR
Cetpa infotech is the best advanced .net training institute in Delhi NCRCetpa infotech is the best advanced .net training institute in Delhi NCR
Cetpa infotech is the best advanced .net training institute in Delhi NCR
ACCHITABAJPAI
 
Dissector Final
Dissector Final Dissector Final
Dissector Final
Deepwork Inc.
 
ColdFusion to .NET
ColdFusion to .NETColdFusion to .NET
ColdFusion to .NET
Shawn Gorrell
 
Selenium Training in Mohali
Selenium Training in MohaliSelenium Training in Mohali
Selenium Training in Mohali
E2MATRIX
 
1-.NET Introduction.pptx
1-.NET Introduction.pptx1-.NET Introduction.pptx
1-.NET Introduction.pptx
RKAggarwal6
 
Selenium Training in Jalandhar
Selenium Training in JalandharSelenium Training in Jalandhar
Selenium Training in Jalandhar
E2MATRIX
 
Selenium Training in Chandigarh
Selenium Training in ChandigarhSelenium Training in Chandigarh
Selenium Training in Chandigarh
E2MATRIX
 

Similar to Middleware fourth unit (20)

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
 
Current & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylightCurrent & Future Use-Cases of OpenDaylight
Current & Future Use-Cases of OpenDaylight
 
Remote Web Desk
Remote Web DeskRemote Web Desk
Remote Web Desk
 
Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)Rpc Case Studies (Distributed computing)
Rpc Case Studies (Distributed computing)
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
Learn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFVLearn more about the tremendous value Open Data Plane brings to NFV
Learn more about the tremendous value Open Data Plane brings to NFV
 
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
 
Net framework
Net frameworkNet framework
Net framework
 
Sreerag dot net - objectives & architecture
Sreerag   dot net - objectives & architectureSreerag   dot net - objectives & architecture
Sreerag dot net - objectives & architecture
 
Overview of asp .net
Overview of asp .netOverview of asp .net
Overview of asp .net
 
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overviewIntroduction to Data Models & Cisco's NextGen Device Level APIs: an overview
Introduction to Data Models & Cisco's NextGen Device Level APIs: an overview
 
Net framework
Net frameworkNet framework
Net framework
 
Cetpa infotech is the best advanced .net training institute in Delhi NCR
Cetpa infotech is the best advanced .net training institute in Delhi NCRCetpa infotech is the best advanced .net training institute in Delhi NCR
Cetpa infotech is the best advanced .net training institute in Delhi NCR
 
Dissector Final
Dissector Final Dissector Final
Dissector Final
 
ColdFusion to .NET
ColdFusion to .NETColdFusion to .NET
ColdFusion to .NET
 
Selenium Training in Mohali
Selenium Training in MohaliSelenium Training in Mohali
Selenium Training in Mohali
 
1-.NET Introduction.pptx
1-.NET Introduction.pptx1-.NET Introduction.pptx
1-.NET Introduction.pptx
 
Selenium Training in Jalandhar
Selenium Training in JalandharSelenium Training in Jalandhar
Selenium Training in Jalandhar
 
Selenium Training in Chandigarh
Selenium Training in ChandigarhSelenium Training in Chandigarh
Selenium Training in Chandigarh
 

Recently uploaded

Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
An All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS MarketAn All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS Market
ScyllaDB
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
Tobias Schneck
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
Mydbops
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Discover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched ContentDiscover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched Content
ScyllaDB
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
Larry Smarr
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
AlexanderRichford
 

Recently uploaded (20)

Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
An All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS MarketAn All-Around Benchmark of the DBaaS Market
An All-Around Benchmark of the DBaaS Market
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!Containers & AI - Beauty and the Beast!?!
Containers & AI - Beauty and the Beast!?!
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - MydbopsMySQL InnoDB Storage Engine: Deep Dive - Mydbops
MySQL InnoDB Storage Engine: Deep Dive - Mydbops
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Discover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched ContentDiscover the Unseen: Tailored Recommendation of Unwatched Content
Discover the Unseen: Tailored Recommendation of Unwatched Content
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
From NCSA to the National Research Platform
From NCSA to the National Research PlatformFrom NCSA to the National Research Platform
From NCSA to the National Research Platform
 
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
QR Secure: A Hybrid Approach Using Machine Learning and Security Validation F...
 

Middleware fourth unit

  • 1. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 1 Part 4 Other Topics RPC & Middleware
  • 2. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software  Less error-prone  More reliable
  • 3. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 3 Middleware Approach  Allow programmer to work with familiar language constructs  Provide tools to help programmer  Special translators  Libraries  Automatically generate code for  Network communication  Connection management
  • 4. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 4 Remote Procedure Call  Uses standard procedure call paradigm  Divides program along procedure call boundaries  Main program and procedures for user interaction in client side  Other procedures in server side
  • 5. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 5 Reason for Remote Procedure Call If a programmer follows the same procedure call paradigm used to build conventional programs when building client and server software, the programmer will find the task easier and will make fewer mistakes
  • 6. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 6 Illustration of Conventional Procedure Call Graph  Arrow denotes procedure call
  • 7. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 7 Procedure Call Graph Divided Into Client and Server  Division occurs on call boundary  Main program in client piece
  • 8. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 8 Communication Stubs  Inserted to enable remote “call”  Automatically generated  Use original call interface  Allow calling and called procedure to remain unchanged
  • 9. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 9 Illustration of Client and Server Stubs  Original call in (a)  Same interface with stubs in (b)
  • 10. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 10 Creating Stubs  Programmer writes  Code for a program  Specification of procedure interfaces using Interface Definition Language (IDL)  Middleware generates  Client and server stub code  Necessary socket calls  Data translation
  • 11. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 11 Data Representation  Network can connect heterogeneous computers  Two computers may use different  Integer representations  Character codes  Floating point representations  Translation required
  • 12. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 12 Possible Data Translation Schemes  Use receiver’s representation  Sender translates all outgoing data  Use sender’s representation  Receiver translates all incoming data  Use external representation (popular)  Sender translates to external form before sending  Receiver translates from external form after reception
  • 13. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 13 Middleware Technologies That Use Remote Procedure Call  ONC RPC  Open Network Computing  IETF standard  Popular in Unix world  DCE RPC  Distributed Computing Environment  Open Group Standard
  • 14. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 14 Middleware Technologies That Use Remote Procedure Call (continued)  MSRPC  Microsoft  Variant of DCE RPC
  • 15. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 15 Object-Oriented Middleware  Designed for use with object-oriented programming languages  Same general scheme as RPC  Interface Definition Language  Tool to build stubs  Libraries to handle network communication  Uses method invocation instead of procedure call
  • 16. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 16 Middleware Technologies That Use Remote Object Invocation  CORBA  Common Object Request Broker Architecture  Well known object-oriented middleware  MSRPC2  Microsoft  Also called Object RPC (ORPC)
  • 17. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 17 Middleware Technologies That Use Remote Object Invocation  COM / DCOM  Also from Microsoft  Component Object Model (COM)  Used on single computer  Provides mechanism for inter-object references  Distributed Component Object Model  Used across multiple computers  Includes communication stubs
  • 18. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 18 Middleware Technologies That Use Remote Object Invocation  RMI  From Sun Microsystems  Methods of remote Java objects can be invoked from other Java virtual machines on different hosts  Jini  Also from Sun; based on Java  Provides an environment for creating dynamically networked components, applications, and services that scale
  • 19. FALL 2005 CSI 4118 – UNIVERSITY OF OTTAWA 19 Summary (continued)  Middleware  Tools to help build client and server  Automates routine tasks  Two popular paradigms  Remote procedure call  Object invocation  Generates communication stubs

Editor's Notes

  1. Westmont College CS 140 Chapters 32-35
  翻译: