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

Similar documents
Middleware in Context: 2016 David E. Bakken. Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 30, 2019

Middleware What it is, and How it Enables Adapdivity and Dependability

A QoS-aware CORBA Component Model for Distributed Real-time and Embedded System Development

Quality Objects (QuO): Adaptive Management and Control Middleware for End-to-End QoS

Using Quality Objects (QuO) Middleware for QoS Control of Video Streams

Distributed Objects. Object-Oriented Application Development

Distributed Systems Middleware

Adaptive Middleware. Self-Healing Systems. Guest Lecture. Prof. Priya Narasimhan. Assistant Professor of ECE and ISRI Carnegie Mellon University

DS 2009: middleware. David Evans

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Implementing Real-time CORBA with Real-time Java

DISTRIBUTED SYSTEMS [COMP9243] Distributed Object based: Lecture 7: Middleware. Slide 1. Slide 3. Message-oriented: MIDDLEWARE

OBJECT ADAPTER ORB CORE I/O SUBSYSTEM. struct RT_Info { wc_exec_time_; period_; importance_; dependencies_; }; 1: CONSTRUCT CALL 6: SUPPLY RUN-TIME

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

Today: Distributed Objects. Distributed Objects

Middleware Support for. Voting and Data Fusion. Chris Jones David Karr. Zhiyuan Troy Zhan. Dave Bakken. Cambridge, Mass.

Slides for Chapter 5: Remote Invocation

Distributed Object-based Systems CORBA

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

Distributed Middleware. Distributed Objects

Integrating Fragmented Objects into a CORBA Environment

Qu O O & & A P P O O D

AQUILA. Project Defense. Sandeep Misra. (IST ) Development of C++ Client for a Java QoS API based on CORBA

Distributed Environments. CORBA, JavaRMI and DCOM

3C05 - Advanced Software Engineering Thursday, April 29, 2004

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

CAS 703 Software Design

Today: Distributed Middleware. Middleware

DISTRIBUTED SYSTEMS [COMP9243] Lecture 7: Middleware MIDDLEWARE. Distributed Object based: Slide 1. Slide 3. Message-oriented: Slide 4

Evaluating Meta-Programming Mechanisms for ORB Middleware

Weapon Systems Open Architecture Overview

A Survey of Adaptive Middleware

MicroQoSCORBA A QoS-Enabled, Reflective, and Configurable Middleware Framework for Embedded Systems

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Applications MW Technologies Fundamentals. Evolution. Applications MW Technologies Fundamentals. Evolution. Building Blocks. Summary.

On the Use of CORBA in High Level Software Applications at the SLS

Abstract. 1. Introduction

1.264 Lecture 16. Legacy Middleware

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

Appendix A - Glossary(of OO software term s)

ANSAwise - CORBA Interoperability

Advanced Topics in Operating Systems

Advanced Lectures on knowledge Engineering

Lecture 5: Object Interaction: RMI and RPC

ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE

Chapter 5: Distributed objects and remote invocation

CORBA (Common Object Request Broker Architecture)

Chapter 16. Layering a computing infrastructure

Analysis of Passive CORBA Fault Tolerance Options for Real-Time Applications Robert A. Kukura, Raytheon IDS Paul V. Werme, NSWCDD

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Interconnection of Distributed Components: An Overview of Current Middleware Solutions *

Distributed Systems Principles and Paradigms. Distributed Object-Based Systems. Remote distributed objects. Remote distributed objects

Real-Time CORBA Experiences in an Avionics Domain

The Umbilical Cord And Alphabet Soup

Distributed Systems. What is a Distributed System?

1 PROGRAMMING LANGUAGE INTEROPERABILITY IN DISTRIBUTED COMPUTING ENVIRONMENTS

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Recommendations for a CORBA Language Mapping for RTSJ

Computer and Automation Research Institute Hungarian Academy of Sciences. Jini and the Grid. P. Kacsuk

Mobile Computing (3C05) Outline. Introduction

Architectural Patterns

Module 1 - Distributed System Architectures & Models

Object Management Group. minimumcorba. Presented By Shahzad Aslam-Mir Vertel Corporation Copyright 2001 Object Management Group

Verteilte Systeme (Distributed Systems)

Software Architecture Patterns

Prof. Dave Bakken. School of Electrical Engineering and Computer Science Washington State University Pullman, Washington USA

QuickSpecs. Compaq NonStop Transaction Server for Java Solution. Models. Introduction. Creating a state-of-the-art transactional Java environment

Electronic Payment Systems (1) E-cash

Distributed Systems. The main method of distributed object communication is with remote method invocation

Lecture 06: Distributed Object

Introduction. Distributed Systems IT332

Phasor Data Networks and Middleware

Introduction to Distributed Systems (DS)

Broker Revisited. Markus Voelter Copyright 2004, Kircher, Voelter, Jank, Schwanninger, Stal D5-1

Distributed Technologies - overview & GIPSY Communication Procedure

CORBA COMMON OBJECT REQUEST BROKER ARCHITECTURE OVERVIEW OF CORBA, OMG'S OBJECT TECHNOLOGY FOR DISTRIBUTED APPLICATIONS CORBA

Distribution and web services

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

CASE Study: CORBA (if time, QuO)

Performance Evaluation of Java And C++ Distributed Applications In A CORBA Environment

An Object-level Gateway Supporting Integrated-Property Quality of Service

Verteilte Systeme (Distributed Systems)

Flexible Fault Tolerance In Configurable Middleware For Embedded Systems

RMI: Design & Implementation

GEM Security Adaption Karin Almstedt The Royal Institute of Technology Kungliga Tekniska Högskolan

Amber streams presentation

Distributed Systems Principles and Paradigms

Fine-grained Middleware Composition for the Boeing NEST OEP

Application Servers in E-Commerce Applications

FlexiNet Matthew Faupel & Richard Hayton

History of Enterprise Java

CHAPTER 2. Introduction to Middleware Technologies

The Design and Performance of a Pluggable Protocols Framework for Real-time Distributed Object Computing Middleware

Distributed Systems. 5. Remote Method Invocation

Verteilte Systeme (Distributed Systems)

(D)COM Microsoft s response to CORBA. Alessandro RISSO - PS/CO

Ubiquitous Computing Summer Supporting distributed applications. Distributed Application. Operating System. Computer Computer Computer.

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A

Unit 7: RPC and Indirect Communication

Transcription:

Middleware in Context Prof. Dave Bakken Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 29-31, 2017 1

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. 2

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. 3

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 4

Middleware in Context Host 1 Host 2 Distributed Application Client Distributed Application Server Middleware API Middleware Middleware API Middleware Operating System API OS Comm. Processing Storage Operating System API OS Comm. Processing Storage Network 5

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 6

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! 7

Programming with Middleware 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 1. Middleware system provides library of functions (Linda, others) 2. Support directly in language from beginning (Java and JVM s RMI) 3. External Interface Definition Language (IDL) that maps to the language and generates local proxy 8

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 9

Middleware Category Distributed Tuples Remote Procedure Call Message- Oriented MW Data/Topic Based Distributed Objects Kinds of Middlware (cont.) Different middleware systems encapsulate and integrate the different kinds of resources with varying degrees: Communication Processing Storage Yes Limited Yes Yes Yes No Yes No Limited Yes No Limited Yes Yes Yes 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 10

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 11

Multi-Layered Middleware 12

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) 13

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

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

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