Chapter 16. Layering a computing infrastructure

Similar documents
Appendix A - Glossary(of OO software term s)

Introduction to Web Services & SOA

Distributed Computing

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

Distributed Environments. CORBA, JavaRMI and DCOM

Advanced Lectures on knowledge Engineering

Introduction to Web Services & SOA

1.264 Lecture 16. Legacy Middleware

Distributed Technologies - overview & GIPSY Communication Procedure

Distributed Objects. Object-Oriented Application Development

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol

Irbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems

Application Servers in E-Commerce Applications

CORBA (Common Object Request Broker Architecture)

Object-Oriented Middleware for Distributed Systems

Today: Distributed Middleware. Middleware

CHAPTER 2. Introduction to Middleware Technologies

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

Today: Distributed Objects. Distributed Objects

Cloud Computing Chapter 2

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

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

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

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

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

DS 2009: middleware. David Evans

Distributed Systems Middleware

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

ibaan OpenWorld Adapter Suite 2.3 Installation and Configuration Guide for Connector for CORBA

Events Will Transform Application Servers

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

The Jini Architecture Bruno Souza Java Technologist, Sun Microsystems

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Engineering CORBA-based Distributed Systems

CORBA Object Transaction Service

Distributed Xbean Applications DOA 2000

Protecting the Hosted Application Server

A Strategic Comparison of Component Standards

Concurrent, Real-Time and Distributed Programming in Java

The Umbilical Cord And Alphabet Soup

FlexiNet Matthew Faupel & Richard Hayton

- Intranet, extranet, internet

Borland AppServer. Borland

CPE731 Middleware for Distributed Systems

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

History of Enterprise Java

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

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

Connecting ESRI to Anything: EAI Solutions

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Communication. Distributed Systems Santa Clara University 2016

Migration to Service Oriented Architecture Using Web Services Whitepaper

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

The convergence of network computing and telecommunications

ANSAwise - CORBA Interoperability

Lecture 3: Synchronous Interaction Patterns Traditional Middleware

Distributed Systems Architectures. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 12 Slide 1

Network Computing (EE906) Part 4: Distributed Object Technology

RMI VERSUS CORBA: A MESSAGE TRANSFER SPEED COMPARISON

System types. Distributed systems

Distributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

ANSAwise - Introduction to CORBA and OMG

Chapter 2 Architectures. Software Architectures

Managing Complexity of Designing Routing Protocols Using a Middleware Approach

(9A05803) WEB SERVICES (ELECTIVE - III)

Oracle Tuxedo. CORBA Technical Articles 11g Release 1 ( ) March 2010

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

RIKA: Component Architectures

DCOM CORBA EJB DCOM CORBA CORBA EJB DCOM EJB

Overview p. 1 Server-side Component Architectures p. 3 The Need for a Server-Side Component Architecture p. 4 Server-Side Component Architecture

Chapter 4 Communication

Distributed Object Bridges and Java-based Object Mediator

Chapter 3 Introduction to Distributed Objects

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

Trading Services for Distributed Enterprise Communications. Dr. Jean-Claude Franchitti. Presentation Agenda

Distributed Middleware. Distributed Objects

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy

Tools for Distributed Software. Tommi Lukkarinen

Mohsin Qasim Syed Abbas Ali

Constructing distributed applications using Xbeans

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

Model Driven Architecture Targets Middleware Interoperability Challenges

Evolution of Virtual Machine Technologies for Portability and Application Capture. Bob Vandette Java Hotspot VM Engineering Sept 2004

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

Performance comparison of DCOM, CORBA and Web service

GUI framework communication via the WWW

Operating System Structure

Improvement to the Smart Data Server with SOAP *

Verteilte Systeme (Distributed Systems)

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

Page 1. Extreme Java G Session 8 - Sub-Topic 2 OMA Trading Services

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE

Distributed Systems Principles and Paradigms. Chapter 01: Introduction. Contents. Distributed System: Definition.

A Tutorial on The Jini Technology

Transcription:

: Chapter 16 by David G. Messerschmitt Layering a computing infrastructure Applications Application components Middleware Operating system Network 2 1

Spanning layer Application Distributed object management Windows NT TCP UDP Mac OS TCP UDP Internet protocol UNIX TCP UDP Network 1 Network 2 Spanning layers 3 The new infrastructure: middleware Layer of software between OS and application Hides heterogeneity Provides generic common services Increases level of abstraction By its nature, not single platform, nor bundled with equipment Microsoft attempts to be an exception 4 2

The new infrastructure Middleware is where new capabilities are added by layering where much of the experimentation and innovation happens in the infrastructure where the successful approaches have a chance to become a spanning layer and/or integrated into a distributed OS Boundary to a distributed OS is fuzzy 5 Middleware objectives Hide heterogeneity Location independence Common functionality needed by many applications Software portability and mobile code Help integrate legacy facilities Aid application interoperability Aid scalability 6 3

Some middleware categories Transaction processing Simplify the coordination of complementary resource managers Message-oriented middleware Support message and queuing capabilities where resource mangers are not available simultaneously (like workflow) 7 Some middleware categories Distributed object management Support applications that are distributed across heterogeneous platforms and organizations Mobile code Allow application code to be moved and executed on heterogeneous platforms Without prior software installation 8 4

Infrastructure software today With networks, new emphasis on: Portability: applications run across multiple platforms (avoid lock-in) Interoperability: pieces of application must work together (benefit from network effects) What are some examples of each? 9 : Transaction processing by David G. Messerschmitt 5

The transaction Durable starting state Collection of resource actions Abort Successful completion Durable, consistent, ending state Rollback 11 Transaction architecture Application logic Join Transaction manager Resource managers 12 Prepare, commit, abort 6

Commit or abort One or more no s Phase 1 Transaction manager prepare() yes_or_no Phase 2 Transaction manager abort() All yes Rollback Transaction manager commit() 13 Atomic series of resource actions Client_1 Client_2 Server Starting state Group of RMI s Inconsistent state Final state 14 7

Locking to prevent conflicts Client_1 Client_2 Server Lock Starting state Group of RMI s Refused Unlock Final state 15 Abort Client_1 Client_2 Server Starting state Group of RMI s Something goes awry Inconsistent state Final state 16 8

Rollback Client_1 Client_2 Server Starting state Group of RMI s Something goes awry Rollback 17 Transaction protocol Application server Resource manager Transaction manager request(tp_id,.) join(tp_id) More requests. Lock commit?(tp_id) Commit or rollback commit_or_abort(tp_id) 18 9

: Mobile code and Java by David G. Messerschmitt Reminder: two key requirements With networks, new emphasis on: Portability: applications run across multiple platforms (avoid lock-in) Interoperability: pieces of application must work together (benefit from network effects) 20 10

Dynamic portability: mobile code MC ❶ Send code (as a message) to a host Mobile code: Code representing a software program that can be moved to heterogeneous platforms and executed there ❷ Execute the program represented by that code 21 Portability can aid interoperability MC Mobile code originating from a common source can enhance interoperability 22 11

Java Portability Write once, run anywhere Programming productivity Garbage collection (no memory leaks) Multi-threaded Scalability Move execution cycles Interoperability Software components come from common repository 23 Mobile code: Code representing a software program MC Idea of mobile code ❶ Send as a message to a host MA Mobile agent: Code and data representing an object or component ❷ Execute the program 24 12

Some mobile code advantages Executing program closer to user can enhance interactivity MC MC Mobile code originating from a common source can enhance interoperability and bypass network effects Shifting location of computation can enhance scalability 25 Idea of mobile agents ❷ Agent executes in each host, modifying its state ❶ Agent launched MA ❸ Agent returns 26 13

Java virtual machine Java program Compilation Mobile code JIT compiler VM interpreter Bytecode: low level but machine independent Native machine instructions 27 VM as spanning layer Applications JavaBeans component framework Java virtual machine Java VM spanning layer Operating system 28 14

SUN/Java strategy License Java freely, even to rival Microsoft Why? License terms give Sun a modicum of control over the standard Why? How does Sun expect to make money? 29 : Distributed object management by David G. Messerschmitt 15

Distributed object management Emphasis is on interoperability Allows objects on one host to invoke methods of objects on another host Platform, language independent CORBA vs DCOM Portability is not the emphasis 31 Interoperability Client Server Client object can invoke methods of server object, even if they are running on different platforms, written in different languages What else is needed? 32 16

Interoperability Client Server Interoperability also requires: Common structure of data Common interpretation of data Agreement on protocols 33 Before and after Distributed application OS 1 OS 2 OS 3 IP Distributed application Distributed object management middleware OS 1 OS 2 OS 3 IP Potential spanning layer Spanning layer 34 17

What is the acronym? Common Object Request Broker Architecture or Concerned Off-Road Bicyclist Association? 35 CORBA architecture Client objects Server objects Object adapter Object request broker core Interface repository CORBA services 36 18

Protocol layer Location-independent application Object Management Group CORBA standard User datagram protocol (UDP) Application Object request broker Internet Inter-ORB Protocol (IIOP) Transmission control protocol (TCP) Internet protocol (IP) Subnetworks 37 Portability not promised Location-dependent application Application 1 ORB 1 Interoperability Application 2 ORB 2 Internet Inter-ORB Protocol (IIOP) CORBA standard does not insure ORB-to-ORB portability 38 19

OMG process Identify need Request for proposals Process to choose best or ask proposal advocates to work together 39 Which is most effective? Industry de facto standard effort (CORBA) or Single vendor integrated solution (DCOM)? 40 20

CORBA vs DCOM CORBA Integrate best ideas Multi-vendor support Cross-platform and language DCOM Fast, no consensus required No vendor interoperability issues 41 Two methods for application interaction CORBA and DCOM Exchange documents (XML) What are their relative merits? 42 21

CORBA vs XML CORBA Natural OOP extension No document interpretation Good for back-andforth protocols Both have need for standardization of data or document interpretation XML Flexible data-sharing Good for document-like objects Natural cross-platform capability No protocol standardization 43 What CORBA provides Java Language bindings Transportable objects Inter-galactic software bus Cross-platform and language Interoperability (but not portability) High levels of abstraction Remote method invocation on objects 44 22

What CORBA provides (con t) Run-time flexibility Everything self-describing Interface discovery Dynamic data structures and binding Useful services Naming Security Many others 45 Importance of CORBA Inter-enterprise computing Platform and language independence Electronic commerce, network management, etc Reduction of network effects Another spanning layer Significance of platform reduced 46 23

Are Java and CORBA competitive or complementary? Both offer interoperability across different platforms Java offers portability and transportability CORBA offers heterogeneous language bindings CORBA offers many services, metadata, etc. Bottom line: they are complementary! (but some Java proponents may not agree) 47 Who favors what? Would these vendors be in favor of: Interoperability? Portability? Microsoft Intel SUN Novell Iona 48 24