Download presentation
Presentation is loading. Please wait.
1
Middleware and ORB CS 314 Operating Systems
Department of Computer Science Southern Illinois University Edwardsville Fall, 2018 Dr. Hiroshi Fujinoki Middleware/001
2
motivation for middleware
CS 314 Operating Systems What is “middleware”? “Middleware is a general term for any programming that serves to "glue together" or mediate between two separate programs.” The two separate programs are “user applications” and “operating systems” for most middleware The primary motivations for middleware To provide more complex and high-level services to a computer system without increasing OS kernel size This was the primary motivation for middleware in the mid 80’s. To provide more complex and high-level services to user application programs without dependent on particular OS Glue different existing software systems together without applying any modification to them Middleware/002
3
(application-mode process)
CS 314 Operating Systems What is “middleware”? Application Program (application-mode process) API Call System Call Operating System Middleware/003
4
(application-mode process)
CS 314 Operating Systems What is “middleware”? Without Middleware Operating System Application Processes With Middleware Operating System Application Program (application-mode process) API Call System Call API Call System Call API Call System Call Complex & Large Middleware/004
5
CS 314 Operating Systems What is “middleware”? User Applications
Used (directly) by Whom? Execution Mode (USER or KERNEL) Purposes OS-Dependent? User Applications (and Middleware) Human Users User applications USER Mode USER Mode KERNEL Mode Provide complex services to user apps Facilitator & Government To get human-users’ jobs done Interface to HW User apps will be OS independent Resource Manager (Resource Allocater) YES NO YES Middleware/005
6
CS 314 Operating Systems What is “middleware”? With Middleware
Application Processes Distributed System Web Database RPC (Remote Procedure Call) ORB (Object Request Broker) API Call MOM (Message-Oriented M.W.) XML System Call Web servers API Call DBMS (Oracle Database, DB2, SQL Server, MySQL, PostgreSQL) Operating System Middleware/006
7
CS 314 Operating Systems Middleware/003
8
CS 314 Operating Systems Local Procedure Call (Ordinary Function Call)
main ABC void main (void) { } The callee blocks here call ABC S = ABC(X, Y, Z); int ABC(int X, int Y, char Z) { } (1) Callee and caller have same data format Large/little endian 7/8-bit ASCII codes Text-line termination (CR+LF or CR) 32-bit or 64-bit integer return(P); (2) Two parameter-passing methods available “pass-by reference/value” (3) Low-latency turnaround Middleware/007
9
CS 314 Operating Systems Remote Procedure Call (RPC) as a middleware
CLIENT SERVER void main (void) { } int ABC(int X, int Y, char Z) { } return(P); S = ABC(X, Y, Z); int ABC(int X, int Y, char Z) { } return(P); Network Middleware/008
10
CS 314 Operating Systems Remote Procedure Call (RPC) as a middleware
LPC RPC Data Format Parameter Passing Low-Latency Turnaround Always same Can be different (between a calling and a called function) Pass-by Reference Pass-by Value Pass-by Value ONLY (between a calling and a called function) YES NO Middleware/009
11
CS 314 Operating Systems Remote Procedure Call (RPC) as a middleware
Data Marshaling Construct a message for transmission MW MW CLIENT Call OS (for Tx) SERVER RPC (C) CLIENT OS (C) OS (S) RPC (S) SERVER Wait (block) main RABC The callee blocks here RPC(C) blocks here RPC(S) blocks here call RABC Middleware/010
12
CS 314 Operating Systems Object Request Broker (ORB) as a middleware
CORBA = Common Object Request Broker Architecture CORBA is a foundation where distributed objects (objects = functions) are identified, called and expected to perform specific tasks. This client has no idea where this request will be executed Concept Client Server Function A (Object A) Program Request Request Reply Reply Server Function B (Object B) Broker The broker finds the best server who can handle this request Middleware/011
13
CS 314 Operating Systems Object Request Broker (ORB) as a middleware
area(circle, int) { } area(square, float) area(circle, float) area(square, int) Polymorphism Server C Server D Client Program Server A call “area(circle, 9.54)” Request Request Reply Reply Broker The broker finds the best server who can handle this request Server B Middleware/012
14
CS 314 Operating Systems Object Request Broker (ORB) as a middleware
area(circle, int) { } volume(circle, float) { } Inheritance area(circle, 9.54) Server C Server D Client Program Server A call “volume(circle, 9.54)” Request Request Reply Reply Broker area(circle, float) { } The broker finds the best server who can handle this request Server B area(square, int) { } Middleware/013
15
CS 314 Operating Systems Object Request Broker (ORB) as a middleware
area(circle, int) { } volume(circle, float) { } Inheritance area(circle, 9.54) Server C Server D Request Reply Client Program Server A call “volume(circle, 9.54)” Request Reply Broker area(circle, float) { } The broker finds the best server who can handle this request Server B area(square, int) { } Middleware/014
16
CS 314 Operating Systems Before CORBA was introduced
Web Server Web Contents Company’s Web Site To the Internet Database Server Database Server Customer Profile Service Seat Reservation Service Middleware/015
17
CS 314 Operating Systems Without CORBA ….
1. Since each system is independent, different systems must be used for each different task 2. Applications in different systems can not easily communicate each other 3. Hardware resources are not efficiently utilized (results of the above two) Middleware/016
18
CS 314 Operating Systems Before CORBA was introduced
Company’s Web Site Web Server Web Contents To the Internet Server Database Customer Profile Service Server Database Seat Reservation Service Customer (or user) Middleware/017
19
CS 314 Operating Systems After CORBA was introduced CORBA Broker
Company’s Web Site Web Server Web Contents To the Internet ORB CORBA Broker Server Database Customer Profile Service Server Database Seat Reservation Service Middleware/018
20
CS 314 Operating Systems After CORBA was introduced CORBA Broker
Company’s Web Site Web Server Web Contents Customer To the Internet ORB CORBA Broker Server Database Customer Profile Service Server Database Seat Reservation Service Middleware/019
21
CS 314 Operating Systems CORBA Connectivity through HTTP
Example: Integrated Information System by American Airlines ( Middleware/020
22
CS 314 Operating Systems Client Stub A client stub is a proxy object
Host A CORBA Client Process Local object call Remote object call through CORBA local object ORB Network as a middle-wear remote object ORB Host B Middleware/021
23
CS 314 Operating Systems Host A CORBA Client Process Skeleton ORB ORB
local object Host A Local object call ORB Remote object call through CORBA client stub CORBA Client Process remote object ORB Skeleton Host B remote object ORB Network Middleware/022
24
CS 314 Operating Systems CORBA Time Server and Client Overview (continued) Time Client Time Server Time Client CORBA program Time Server CORBA program Current_Time(); 11:01:58 Current_Time(); CORBA CORBA Interface (IDL) ORB IIOP TCP/IP OS Internet Middleware/021
25
CS 314 Operating Systems
Comparisons with other distributed technologies Issues Socket RPC CORBA Distributed computing Hardware Independence OS Independence Language Independence Locational Transparency Abstraction Level Overhead Middleware/023
26
CS 314 Operating Systems What is “CORBA” (continued) ?
CORBA is not a product, but a specification for ORB (Object Request Broker) Major products for CORBA*1: Orbix OmniCORBA (one of free CORBA distributions) Sun’s Java IDL ILU (The Inter-language Unification project from XEROX) CorbaPlus for C++ CORBA specification is established and managed by OMG (OMG = Object Management Group*2) *1: A list of CORBA products available at *2: OMG Web Site: Middleware/024
27
CS 314 Operating Systems OMG (Object Management Group) Middleware/025
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.