Middleware in Context Prof. Dave Bakken Cpt. S 464/564 Lecture

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 9 Prof. Crista Lopes.
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
CORBA - Common Object Request Broker Architecture.
University of British Columbia Software Practices Lab Introduction to Middleware for Software Engineering Eric Wohlstadter 539D.
Distributed Systems Architectures
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Distributed Service Architectures Yitao Duan 03/19/2002.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Middleware Technologies compiled by: Thomas M. Cosley.
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
1 4/20/98ISORC ‘98 BBN Technologies Specifying and Measuring Quality of Service in Distributed Object Systems Joseph P. Loyall, Richard E. Schantz, John.
Common Object Request Broker Architecture (CORBA) CS-328.
BBN Technologies Craig Rodrigues Gary Duzan QoS Enabled Middleware: Adding QoS Management Capabilities to the CORBA Component Model Real-time CCM Meeting.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
MILCOM 2001 October page 1 Defense Enabling Using Advanced Middleware: An Example Franklin Webber, Partha Pal, Richard Schantz, Michael Atighetchi,
1 06/00 Questions 10/6/2015 QoS in DOS ECOOP 2000John Zinky BBN Technologies ECOOP 2000 Workshop on Quality of Service in Distributed Object Systems
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
WDMS 2002 June page 1 Middleware Policies for Intrusion Tolerance QuO Franklin Webber, Partha Pal, Chris Jones, Michael Atighetchi, and Paul Rubel.
1 APOD 10/19/2015 DOCSEC 2002Christopher Jones Defense Enabling Using QuO: Experience in Building Survivable CORBA Applications Chris Jones Partha Pal,
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
New features for CORBA 3.0 by Steve Vinoski Presented by Ajay Tandon.
1 06/ /21/2015 ECOOP 2000 Workshop QoS in DOSJohn Zinky BBN Technologies Quality Objects (QuO) Middleware Framework ECOOP 2000 Workshop QoS in DOS.
CORBA IS 8030 – Integrated Computing Environments Dr. Hoganson CORBA Common Object Request Broker Architecture Published by Object Management Group (OMG)
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
1 Applying Adaptive Middleware, Modeling, and Real-Time CORBA Capabilities to Ensure End-to- End QoS Capabilities of Video Streams BBN Technologies Cambridge,
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Distributed Object Frameworks DCE and CORBA. Distributed Computing Environment (DCE) Architecture proposed by OSF Goal: to standardize an open UNIX envt.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
CS551 - Lecture 11 1 CS551 Object Oriented Middleware (III) (Chap. 5 of EDO) Yugi Lee STB #555 (816)
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
CRG talk on Tuesday, August 19, 2003 SeyedMasoud Sadjadi Software Engineering and Networking Systems Laboratory Department of.
Distributed Computing & Middleware Background on the golang stuff that Jeromy presented Info on CptS 464.
1 BBN Technologies Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz.
Introduction to Distributed Systems and CORBA Slides for CSCI 3171 Lectures E. W. Grundke.
Middleware Department of Computer Science Southern Illinois University Edwardsville Spring, 2016 Dr. Hiroshi Fujinoki Middleware/001.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Distributed Computing
Middleware Policies for Intrusion Tolerance
The Client/Server Database Environment
Introduction to Middleware I
CORBA Alegria Baquero.
Distributed Computing & Middleware
Inventory of Distributed Computing Concepts and Web services
Interpreter Style Examples
CORBA Alegria Baquero.
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Inventory of Distributed Computing Concepts
Component--based development
Final Exam Review CptS 464/564 April 25, 2018.
Architectures of distributed systems Fundamental Models
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Architectures of distributed systems Fundamental Models
Middleware in Context Prof. Dave Bakken Cpt. S 464/564 Lecture
Architectures of distributed systems
1999년 10월 29일 김 정 선 한양대학교 공학대학 전자컴퓨터공학부
Architectures of distributed systems Fundamental Models
Middleware and ORB CS 314 Operating Systems
Middleware and ORB CS 314 Operating Systems
Copyright 1999 B.Ramamurthy
Inventory of Distributed Computing Concepts
Presentation transcript:

Middleware in Context Prof. Dave Bakken Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 29-31, 2017 CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Middleware in Context: © 2016 David E. Bakken Sources of Info D. Bakken, “Middleware”, unpublished article (from an Encyclopedia of Distributed Systems that was cancelled) from ca. 2000, http://eecs.wsu.edu/~bakken/middleware.pdf Some of the example systems are a bit dated, but the first page describes the benefits of middleware very concisely. David E. Bakken, Washington State University, Pullman WA, Richard E. Schantz, BBN Technologies, Cambridge MA, Richard D. Tucker, Tucker Engineering Associates, Locust NC Smart Grid Communications:QoS Stovepipes or QoS Interoperability?. . Technical Report TR-GS-013, School of Electrical Engineering and Computer Science, Washington State University, November, 2009. TR-GS-013.pdf Won a best paper award REQUIRED READING FOR BOTH 464,564 Explains what middleware is, ways in which it is standardized, etc. CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Context: (Most) Technology Marches On Hardware technology’s progress phenomenal in last few decades Moore’s Law Metcalf’s Law Graphics processing power Software technology’s progress is much more spotty “Software crisis” Yet SW is a large and increasing part of complex apps/systems! Apps and systems are rapidly becoming (more) networked Oops, distributed software is much harder yet to get right… Middleware a promising technology for programability of distributed systems Also fertile grounds for adaptivity and dependability…. CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Middleware in Context: © 2016 David E. Bakken Why Middleware? Middleware == “A layer of software above the operating system but below the application program that provides a common programming abstraction across a distributed system” Middleware exists to help manage the complexity and heterogeneity inherent in distributed systems Middleware provides higher-level building blocks (“abstractions”) for programmers than the OS provides Can make code much more portable Can make them much more productive Can make the resulting code have fewer errors Analogy — MW:sockets ≈ HOL:assembler Middleware sometimes is informally called “plumbing” Connects parts of a distributed application with “data pipes” and passes data between them CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Middleware in Context: © 2016 David E. Bakken Host 1 Host 2 Distributed Application Distributed Application Client Server Middleware Middleware API Middleware API Middleware Operating System API OS Operating System API OS Comm. Processing Storage Comm. Processing Storage Network CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Middleware Benefit: Masking Heterogeneity Middleware’s programming building blocks mask heterogeneity Makes programmer’s life much easier!! Kinds of heterogeneity masked by middleware (MW) frameworks All MW masks heterogeneity in network technology All MW masks heterogeneity in host CPU Almost all MW masks heterogeneity in operating system (or family thereof) Notable exception: Microsoft middleware (de facto; not de jure or de fiat) Almost all MW masks heterogeneity in programming language Noteable exception: Java RMI Some MW masks heterogeneity in vendor implementations CORBA best here CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Middleware Benefit: Transparency Middleware can provide useful transparencies: Access Transparency Location transparency Concurrency transparency Replication transparency Failure transparency Mobility transparency Masking heterogeneity and providing transparency makes programming distributed systems much easier to do! CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Programming with Middleware Do not have to learn a new programming language! (Usually) Use an existing one already familiar with: C++, Java, C#, Ada, (yuk) Visual Basic, (yuk) COBOL Ways to Program with Middleware Middleware system provides library of functions (Linda, others) Support directly in language from beginning (Java and JVM’s RMI) External Interface Definition Language (IDL) that “maps” to the language and generates local “proxy” CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Middleware in Context: © 2016 David E. Bakken Kinds of Middleware Distributed Tuples: (a, b, c, d, e) Relational databases, SQL, relational algebra Linda and tuple spaces JavaSpaces (used by Java Jini) Remote procedure call (RPC) make a function call look local even if non-local Message-Oriented Middleware (MOM) messages and message queues Data/topic-based publish-subscribe (quite popular) Distributed Object Middleware Make an object method look local even if non-local CORBA DCOM/SOAP/.NET Java RMI CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Kinds of Middlware (cont.) Different middleware systems encapsulate and integrate the different kinds of resources with varying degrees: Middleware Category Communication Processing Storage Distributed Tuples Yes Limited Remote Procedure Call No Message-Oriented MW Data/Topic Based Distributed Objects For many (non-database) applications, and supporting adaptation, distributed object middleware is better because it is more general But pub sub and tuples are more decoupled which can help CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Middleware and Legacy Systems Legacy systems are a huge problem (and asset) in industry and military domains! Middleware often called a “glue” technology: integrated “legacy” components Much distributed programming involves integrating components, not building them from scratch! Middleware’s abstractions are general enough to allow legacy systems to be “wrapped” Distributed objects are best here because more general End result: a very high-level “lowest common denominator” of interoperability CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

Multi-Layered Middleware CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

One Middleware Layering Taxonomy (BBN/Schantz) Domain-Specific Services Services and APIs tailored to (and reusable only within) certain domains (health care, telecommunications, etc) Examples: CORBA Domain Interfaces, Boeing Bold Stroke architecture Common MW Services Adds high-level, domain-independent reusable services for events, fault tolerance, security, Examples: CORBAServices, Eternal Distribution MW Provides rich distributed object model that supports much heterogeneity and transparency Examples: CORBA, .NET., Java RMI Infrastructure MW Encapsulates core OS Comm. and concurrency services (sometimes enhances them too) Examples: JVM (and other VMs), ACE, group comm. (Figure courtesy of D. Schmidt) CptS 464/564 Spring 2016 Middleware in Context: © 2016 David E. Bakken

CORBA and System Builders’ Hooks Interface Repository IDL Compiler Implementation Repository Servant Client Smart Stub Skeleton DSI Stub/proxy (SII) DII ORB Interface ORB Interface Object Adaptor ORB core ORB core Interceptor Interceptor Interceptor Interceptor Standard Interfaces ORB-Specific IDL-generated

QuO Adds Specification, Measurement, and Adaptation into the Distributed Object Model CLIENT Network operation() in args out args + return value IDL STUBS SKELETON OBJECT ADAPTER ORB IIOP (SERVANT) OBJ REF Application Developer CORBA DOC MODEL Mechanism Developer in args Application Developer CLIENT CLIENT OBJECT (SERVANT) operation() OBJ REF out args + return value Delegate Contract Contract Delegate QuO Developer SysCond SysCond SysCond QUO/CORBA DOC MODEL SysCond IDL SKELETON MECHANISM/PROPERTY MANAGER IDL STUBS OBJECT ADAPTER Network Mechanism Developer ORB IIOP ORB IIOP Quality Objects (QuO) Dave Bakken 7

QuO Adds Specification, Measurement, and Adaptation into the Distributed Object Model CLIENT Network operation() in args out args + return value IDL STUBS SKELETON OBJECT ADAPTER ORB IIOP (SERVANT) OBJ REF Application Developer CORBA DOC MODEL Mechanism Developer in args Application Developer CLIENT CLIENT OBJECT (SERVANT) operation() OBJ REF out args + return value Delegate Contract Contract Delegate QuO Developer SysCond SysCond SysCond QUO/CORBA DOC MODEL SysCond IDL SKELETON MECHANISM/PROPERTY MANAGER IDL STUBS OBJECT ADAPTER Network Mechanism Developer ORB IIOP ORB IIOP Quality Objects (QuO) Dave Bakken 7