Presentation is loading. Please wait.

Presentation is loading. Please wait.

Middleware Department of Computer Science Southern Illinois University Edwardsville Spring, 2016 Dr. Hiroshi Fujinoki Middleware/001.

Similar presentations


Presentation on theme: "Middleware Department of Computer Science Southern Illinois University Edwardsville Spring, 2016 Dr. Hiroshi Fujinoki Middleware/001."— Presentation transcript:

1 Middleware Department of Computer Science Southern Illinois University Edwardsville Spring, 2016 Dr. Hiroshi Fujinoki E-mail: hfujino@siue.edu Middleware/001 CS 314 Operating Systems

2 Middleware/002 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 user application programs without increasing OS kernel size  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 This was the primary motivation for middleware in the mid 80’s. CS 314 Operating Systems

3 Middleware/003 What is “middleware”? Operating System Application Program (application-mode process) API Call System Call CS 314 Operating Systems

4 Operating System Application Processes With Middleware Middleware/004 What is “middleware”? Operating System Application Program (application-mode process) API Call System Call Without Middleware API Call System Call Complex & Large CS 314 Operating Systems

5 Middleware/005 What is “middleware”? User Applications MiddlewareOperating Systems Used (directly) by Whom? Execution Mode (USER or KERNEL) Purposes OS-Dependent? Human Users User Applications (or Middleware) User applications USER Mode KERNEL Mode Facilitator & Government Provide complex services to user apps USER Mode To get human-users’ jobs done Interface to HW Resource Manager (Resource Allocater) User apps will be OS independent YES NO YES CS 314 Operating Systems

6 Middleware/006 What is “middleware”? Operating System Application Processes API Call System Call With Middleware  Distributed System  Web  Database ORB XML RPC MOM (Message-Oriented M.W.) Oracle Database, DB2, SQL Server, MySQL, PostgreSQL (Remote Procedure Call) (Object Request Broker) CS 314 Operating Systems

7 Middleware/007 void main (void) { } S = ABC(X, Y, Z); int ABC(int X, int Y, char Z) { } return(P); main ABC call ABC       (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 (2) Two parameter-passing methods available “pass-by reference/value” (3) Low-latency turnaround Local Procedure Call (Ordinary Function Call) The callee blocks here CS 314 Operating Systems

8 Middleware/008 Remote Procedure Call (RPC) as a middleware void main (void) { } S = ABC(X, Y, Z); int ABC(int X, int Y, char Z) { } return(P); int ABC(int X, int Y, char Z) { } return(P); SERVER Network CLIENT CS 314 Operating Systems

9 Remote Procedure Call (RPC) as a middleware LPCRPC Data Format Parameter Passing Low-Latency Turnaround Middleware/009 Always sameCan be different (between a calling and a called function) (between a calling and a called function) Pass-by Reference Pass-by Value Pass-by Value ONLY YES NO CS 314 Operating Systems

10 Middleware/010 Remote Procedure Call (RPC) as a middleware main call RABC RABC RPC (C) OS (C) OS (S) RPC (S) CLIENT SERVER CLIENT SERVER MW Data Marshaling Construct a message for transmission Call OS (for Tx) Wait (block) The callee blocks here RPC(C) blocks here RPC(S) blocks here CS 314 Operating Systems

11 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. Program Function A (Object A) Concept Request Reply Broker Client Server Function B (Object B) Reply Request The broker finds the best server who can handle this request This client has no idea where this request will be executed Middleware/011 CS 314 Operating Systems

12 Object Request Broker (ORB) as a middleware Program Polymorphism Request Reply Broker Client Server A The broker finds the best server who can handle this request Server B Server C Server D area(circle, int) { } area(square, float) { } area(circle, float) { } area(square, int) { } call “area(circle, 9.54)” Request Reply Middleware/012 CS 314 Operating Systems

13 Object Request Broker (ORB) as a middleware Program Inheritance Request Broker Client Server A The broker finds the best server who can handle this request Server B Server C Server D area(circle, int) { } volume(circle, float) { } area(circle, float) { } area(square, int) { } call “volume(circle, 9.54)” Request Reply area(circle, 9.54) Middleware/013 Reply CS 314 Operating Systems

14 Object Request Broker (ORB) as a middleware Program Inheritance Request Broker Client Server A The broker finds the best server who can handle this request Server B Server C Server D area(circle, int) { } volume(circle, float) { } area(circle, float) { } area(square, int) { } call “volume(circle, 9.54)” Request Reply area(circle, 9.54) Middleware/014 Reply CS 314 Operating Systems

15 Customer Profile Service Seat Reservation Service Web Server Web Contents Company’s Web Site Before CORBA was introduced To the Internet Database Server Database Server Middleware/001 CS 314 Operating Systems

16 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/001 CS 314 Operating Systems

17 Web Server Web Contents To the Internet Server Database Customer Profile Service Server Database Seat Reservation Service Company’s Web Site Before CORBA was introduced Customer (or user) Middleware/001 CS 314 Operating Systems

18 Web Server Web Contents To the Internet Server Database Customer Profile Service Server Database Seat Reservation Service Company’s Web Site After CORBA was introduced CORBA Broker Middleware/001 ORB CS 314 Operating Systems

19 Web Server Web Contents To the Internet Server Database Customer Profile Service Server Database Seat Reservation Service Company’s Web Site After CORBA was introduced CORBA Broker Customer Middleware/001 ORB CS 314 Operating Systems

20 CORBA Connectivity through HTTP Example: Integrated Information System by American Airlines (www.aa.com) Middleware/001 CS 314 Operating Systems

21 CORBA Time Server and Client Overview (continued) Time Client 11:01:58 Time Server ORB IIOP TCP/IP ORB IIOP TCP/IP Internet Time Client CORBA program Time Server CORBA program CORBA CORBA Interface (IDL) Current_Time(); Middleware/001 OS CS 314 Operating Systems

22 Client Stub A client stub is a proxy object local object local object local object Host A Local object call CORBA Client Process Remote object call through CORBA ORB Network remote object ORB Host B Middleware/001 CS 314 Operating Systems

23 remote object ORB Network local object local object local object Host A Local object call ORB Remote object call through CORBA client stub CORBA Client Process Local object call Host B remote object ORB Skeleton Middleware/001 CS 314 Operating Systems

24 Comparisons with other distributed technologies IssuesSocketRPC CORBA Distributed computing Hardware Independence OS Independence Language Independence Locational Transparency Abstraction Level   Overhead              Middleware/001 CS 314 Operating Systems

25 CORBA is not a product, but a specification for ORB (Object Request Broker) CORBA specification is established and managed by OMG (OMG = Object Management Group *2 ) 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++ *1: A list of CORBA products available at *2: OMG Web Site: What is “CORBA” (continued) ? Middleware/001 CS 314 Operating Systems


Download ppt "Middleware Department of Computer Science Southern Illinois University Edwardsville Spring, 2016 Dr. Hiroshi Fujinoki Middleware/001."

Similar presentations


Ads by Google