Presentation is loading. Please wait.

Presentation is loading. Please wait.

Middleware and ORB CS 314 Operating Systems

Similar presentations


Presentation on theme: "Middleware and ORB CS 314 Operating Systems"— Presentation transcript:

1 Middleware and ORB CS 314 Operating Systems
Department of Computer Science Southern Illinois University Edwardsville Spring, 2019 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 Weakness of RPC: No object-oriented programming supported

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 Middleware/021

23 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/022

24 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/023

25 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(); As a Middleware CORBA Interface (IDL) ORB IIOP TCP/IP OS Internet Middleware/024

26 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/025

27 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/026

28 CS 314 Operating Systems OMG (Object Management Group) Middleware/027


Download ppt "Middleware and ORB CS 314 Operating Systems"

Similar presentations


Ads by Google