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

Similar documents
Today: Distributed Middleware. Middleware

Today: Distributed Objects. Distributed Objects

Distributed Object-Based. Systems. Chapter 9

Distributed Object-based Systems CORBA

Distributed Middleware. Distributed Objects

Distributed Systems Principles and Paradigms

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech

Communication. Outline

Verteilte Systeme (Distributed Systems)

Electronic Payment Systems (1) E-cash

Communication. Overview

Last Class: RPCs. Today:

Chapter 10 DISTRIBUTED OBJECT-BASED SYSTEMS

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

Last Class: RPCs. Today:

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Distributed Object-based Systems CORBA

Distributed Objects. Object-Oriented Application Development

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

Communication. Distributed Systems Santa Clara University 2016

Advanced Topics in Operating Systems

CORBA (Common Object Request Broker Architecture)

Advanced Lectures on knowledge Engineering

Lecture 5: Object Interaction: RMI and RPC

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

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

1.264 Lecture 16. Legacy Middleware

Verteilte Systeme (Distributed Systems)

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

Object-based distributed systems. INF 5040/9040 autumn Lecturer: Frank Eliassen

CHAPTER - 4 REMOTE COMMUNICATION

Chapter 4 Communication

DS 2009: middleware. David Evans

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

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

Distributed Environments. CORBA, JavaRMI and DCOM

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component

Appendix A - Glossary(of OO software term s)

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

Chapter 5: Distributed objects and remote invocation

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR (ODD SEMESTER) QUESTION BANK

UNIT 4 CORBA 4/2/2013 Middleware 59

Advanced Distributed Systems

Lecture 06: Distributed Object

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

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

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

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

Integrating Fragmented Objects into a CORBA Environment

RMI: Design & Implementation

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

Chapter 10 Web-based Information Systems

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

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

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

Communication. Layered Protocols. Topics to be covered. Layered Protocols. Introduction

Distributed Technologies - overview & GIPSY Communication Procedure

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

Software Architecture Patterns

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

ANSAwise - CORBA Interoperability

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

SAI/ST course Distributed Systems

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

Distributed Computing

Remote Invocation Vladimir Vlassov and Johan Montelius

Distributed Systems Middleware

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING

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

System types. Distributed systems

Communication Basics, RPC & RMI. CS403/534 Distributed Systems Erkay Savas Sabanci University

Unit 7: RPC and Indirect Communication

Mohsin Qasim Syed Abbas Ali

Chapter 16. Layering a computing infrastructure

Distributed Systems. Chapter 02

Distributed Systems Principles and Paradigms

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

Client/Server-Architecture

presentation DAD Distributed Applications Development Cristian Toma

Module 3 - Distributed Objects & Remote Invocation

CAS 703 Software Design

Application Servers in E-Commerce Applications

Part 6: Distributed Objects and EJB. 2003, Karl Aberer, EPFL-SSC, Laboratoire de systèmes d'informations rèpartis Part 5-1

Module 1 - Distributed System Architectures & Models

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Chapter 1: Distributed Information Systems

Implementation of GDMO to IDL Translator and CORBA/CMIP Gateway for TMN/CORBA Integration

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

A Systematic Approach to Composing Heterogeneous Components

The Common Object Request Broker Architecture (CORBA)

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

CORBA vs. DCOM. Master s Thesis in Computer Science

Distributed Systems. Communication (2) Lecture Universität Karlsruhe, System Architecture Group

Broker Pattern. Teemu Koponen

Outline. Chapter 5 Application Server Middleware. Types of application server middleware. TP monitors CORBA Server-side components and EJB Summary

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

Lecture 15: Network File Systems

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

Implementing Remote Procedure Calls*

Chapter 2 System Models

Transcription:

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan Reading List Remote Object Invocation -- Tanenbaum Chapter 2.3 CORBA -- Tanenbaum Chapter 9.1 DCOM -- Tanenbaum 9.2 (optional) The Web architecture Tanenbaum 11.1 (pp. 647-662)

The History of Universe Part I TREND #1: Shift from process-oriented programming to object-oriented programming in the mid to late 80 s TREND #2: client-server computing introduction of RPC DCE (early middleware and run-time environment) proposed to standardize distributed computing on client-server model DCE failed but C/S model and object-orientation lived on TREND #3: TREND 1 and 2 came together. UNIX community (and the rest of the world except MSFT) community proposed CORBA Microsoft proposed DCOM and ActiveX Both approaches continue to have followers TREND #4: WWW --- the mother of all client-server applications WWW became the most popular document service known to mankind in the 90 s Client-server model lives on client-side and server-side scripts CGI scripts enable execution of programs on servers (taking user data as input HTML form) program may fetch a document, or manipulate data from a DB to generate results, and send the document to the client on-the-fly to generate a document. The History of Universe Part I TREND #5: Advances in OO programming languages and run-time environments SUN introduced JAVA (MSFT later promoted C# after Java took off) TREND #6: toward network computing server doesn t have to do everything first client-side scripts, then applets it is possible to pass a pre-compiled program to the client to be executed in the browser address space (applets) Servlet: is a pre-compiled program executing in the address space of the (web) server. (note: CGI scripts are executed as a separate process.) TREND #7: The WEB grows up web services XML introduced to define new documents and structure documents A Web Service is just an object accessible over a network Two competing models: J2EE: Java Enterprise Edition, Version 2.0.NET

The World Wide Web Overall organization of the Web. WWW Architectural Overview (1) The principle of using server-side CGI programs.

WWW Architectural Overview (2) Architectural details of a client and server in the Web. IDEA: Distributed Objects Treat everything as objects Services and resources are made available as (remote) objects to clients An powerful paradigm for distributed computing Attractive because easy to hide distribution behind object s interface Two widely-deployed middleware for distributed object-based systems: CORBA (industry-standard) DCOM (Microsoft)

Logical View of Distributed Objects Object Space Shared Object Clients & Servers Objects are physically distributed across the network Services and resources are accessed by invoking methods on remote objects Remote Object Invocation Objects: State is the data encapsulated by the object Methods are the operations allowed on the data through an interface Separation between interface and object implementation is very desirable for distributed systems put the interface on one machine (client) and the object itself on another machine (server) When a client binds to an object, a proxy stub (implementation of object s interface) is loaded into the client s address space. Incoming requests are handled by a server stub (called a skeleton) which invokes the proper method. Proxy and skeleton are responsible for marshaling and unmarshaling, and client-server communication.

Remote Object Invocation 2-16 Common organization of a remote object with client-side proxy. Binding to an Object Distributed objects provide system-wide object references (contrast to RPC) Binding results in a proxy being placed the process address space Implicit binding: directly invoke methods using a ref to an object Explicit binding: client first calls a special function to bind before invoking a method

Binding a Client to an Object Distr_object* obj_ref; obj_ref = ; obj_ref-> do_something(); Distr_object objpref; Local_object* obj_ptr; obj_ref = ; obj_ptr = bind(obj_ref); obj_ptr -> do_something(); (a) (b) //Declare a systemwide object reference // Initialize the reference to a distributed object // Implicitly bind and invoke a method //Declare a systemwide object reference //Declare a pointer to local objects //Initialize the reference to a distributed object //Explicitly bind and obtain a pointer to the local proxy //Invoke a method on the local proxy a) (a) Example with implicit binding using only global references b) (b) Example with explicit binding using global and local references Parameter Passing 2-18 The situation when passing an object by reference or by value.

CORBA Common Object Request Broker Architecture from OMG (a consortium of 800 companies!) An open standard for application interoperabiloty based on the concept of distributed objects. Supports access to resources and services across heterogeneous languages, platforms and networks. Overview of CORBA Four architectural elements of CORBA: ORB: forms the core of CORBA, responsible for handling communication between clients and objects while hiding distribution and heterogeneity Horizontal facilities: general-purpose high-level services at the application level, e.g., user interface, task management, system management, information management Vertical facilities: high-level services targeted to specific application domains such as e- commerce, banking, manufacturing, Common object services: basic application-independent services similar to common services provided by OS (later)

Remote Object Model Objects are services are specified in CORBA Interface Definition Language syntax for expressing methods and parameters Statically-defined interface (compiled) vs. Dynamic invocation interface (run-time) Service Collection Query Concurrency Transaction Event tification Externalization Life cycle Licensing Naming Property Trading Persistence Relationship Security Time Corba Services Description Facilities for grouping objects into lists, queue, sets, etc. Facilities for querying collections of objects in a declarative manner Facilities to allow concurrent access to shared objects Flat and nested transactions on method calls over multiple objects Facilities for asynchronous communication through events Advanced facilities for event-based asynchronous communication Facilities for marshaling and unmarshaling of objects Facilities for creation, deletion, copying, and moving of objects Facilities for attaching a license to an object Facilities for systemwide name of objects Facilities for associating (attribute, value) pairs with objects Facilities to publish and find the services on object has to offer Facilities for persistently storing objects Facilities for expressing relationships between objects Mechanisms for secure channels, authorization, and auditing Provides the current time within specified error margins Overview of CORBA services. All services specified in CORBA IDL.

Object Invocation Models Request type Synchronous One-way Deferred synchronous Failure semantics At-most-once Best effort delivery At-most-once Description Caller blocks until a response is returned or an exception is raised Caller continues immediately without waiting for any response from the server Caller continues immediately and can later block until response is delivered Invocation models supported in CORBA. Event and tification Services (1) A service that signals the occurrence of an event The logical organization of suppliers and consumers of events, following the push-style model.

Event and tification Services (2) The pull-style model for event delivery in CORBA. Messaging (1) CORBA's callback model for asynchronous method invocation.

Messaging (2) CORBA'S polling model for asynchronous method invocation. ORB Interoperability Message type Request Reply LocateRequest LocateReply CancelRequest CloseConnection MessageError Fragment Originator Client Server Client Server Client Both Both Both Description Contains an invocation request Contains the response to an invocation Contains a request on the exact location of an object Contains location information on an object Indicates client no longer expects a reply Indication that connection will be closed Contains information on an error Part (fragment) of a larger message GIOP (General Inter-ORB Protocol): a standard for inter ORB communication Realization on TCP is called Internet Inter-ORB Protocol (IIOP)

Portable Object Adaptor Mapping of CORBA object identifiers to servants. a) The POA supports multiple servants. b) The POA supports a single servant. Object References (1) The organization of an IOR with specific information for IIOP.

Object References (2) Indirect binding in CORBA. Object Groups A possible organization of an IOGR for an object group having a primary and backups.

An Example Architecture An example architecture of a fault-tolerant CORBA system. Random tes Two types of processes: clients & servers Persistent msg. queue implemented as a messaging service Object adapter (wrappers) is a mechanism a specific invocation methods for a group of objects Portable object adaptors & servants Agent system Two types of naming service generic caching or replication service pass to application CORBA v.3 explicitly support object groups (replicated copies)

Summary (section 9.4) Issue CORBA DCOM Globe Design goals Interoperability Functionality Scalability Object model Remote objects Remote objects Distributed objects Services Many of its own From environment Few Interfaces IDL based Binary Binary Sync. communication Async. communication Callbacks Events Messaging Object server Flexible (POA) Hard-coded Object dependent Directory service Trading service yes Continued Comparison of CORBA, DCOM, and Globe. Summary Issue CORBA DCOM Globe Naming service Location service Object reference Object's location Interface pointer True identifier Synchronization Transactions Transactions Only intra-object Replication support Separate server ne Separate subobject Transactions Fault tolerance By replication By transactions By replication Recovery support By transactions Security Various mechanisms Various mechanisms More work needed Comparison of CORBA, DCOM, and Globe.