Object-Oriented Middleware for Distributed Systems



Similar documents
Naming in Distributed Systems

Naming in Distributed Systems

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

Infrastructure that supports (distributed) componentbased application development

Web Services. Copyright 2011 Srdjan Komazec

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Event-based middleware services

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Chapter 2: Enterprise Applications from a Middleware Perspective

Middleware Lou Somers

System types. Distributed systems

Report of the case study in Sistemi Distribuiti A simple Java RMI application

Interface Definition Language

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Overview of CORBA 11.1 I NTRODUCTION TO CORBA Object services 11.5 New features in CORBA Summary

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Lesson 4 Web Service Interface Definition (Part I)

Distributed Objects and Components

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Architecture of the CORBA Component Model CORBA 3.0

Patterns in Software Engineering

Cloud Computing An Introduction

Project Proposal Distributed Project Management

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

GenericServ, a Generic Server for Web Application Development

Virtual machine interface. Operating system. Physical machine interface

Service-Oriented Architecture and Software Engineering

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

An MDA Approach for the Development of Web applications

Lesson 18 Web Services and. Service Oriented Architectures

Broker Revisited Michael Kircher, Markus Voelter, Klaus Jank, Christa Schwanninger, Michael Stal

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

25 May Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Client-Server Applications

Supporting Interactive Invocation of Remote Services within an Integrated Programming Environment

Service Oriented Architecture

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Distributed Systems. Distributed Systems

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

XXI. Object-Oriented Database Design

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

Introduction to Web Services

Principles and characteristics of distributed systems and environments

The Enterprise Service Bus

B. WEB APPLICATION ARCHITECTURE MODELS

A Web Services Created Online Training and Assessment Scheme


Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles

Introduction to Distributed Computing using CORBA

Distributed Systems Architectures

STANDARDS FOR AGENTS AND AGENT BASED SYSTEMS (FIPA)

What Is the Java TM 2 Platform, Enterprise Edition?

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

How To Understand The Concept Of A Distributed System

3F6 - Software Engineering and Design. Handout 10 Distributed Systems I With Markup. Steve Young

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Star System Deitel & Associates, Inc. All rights reserved.

OOP? What is OOP? Why? OOP in a nutshell. Stéphane Ducasse 2.1

Distributed Systems Lecture 1 1

Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Enterprise Application Integration

Simplifying Processes Interoperability with a Service Oriented Architecture

Middleware: Past and Present a Comparison

VPN. Date: 4/15/2004 By: Heena Patel

Distributed systems. Distributed Systems Architectures

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

JavaPolis 2004 Middleware and Web Services Security

Research on the Model of Enterprise Application Integration with Web Services

Introduction into Web Services (WS)

Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss

SOA : To Do or Not to Do

Middleware and the Internet. Example: Shopping Service. What could be possible? Service Oriented Architecture

Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI)

E-Business Technologies for the Future

Manager-Agent and Remote Operation: Two Key Patterns for Network Management Interfaces

Chap 1. Introduction to Software Architecture

Enterprise Application Integration (EAI) Techniques

Transcription:

Object-Oriented Middleware for Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini after Giovanni Rimassa andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2011/2012 Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 1 / 32

Outline Outline 1 Middleware Overview 2 Object-Oriented Middleware 3 CORBA & OSGi Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 2 / 32

Disclaimer These Slides...... are derived from a Presentation by Giovanni Rimassa, which we warmly thank Slides were made kindly available by the author Every problem or mistake contained in these slides, however, should be attributed to the sole responsibility of the teacher of this course Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 3 / 32

Outline Middleware Overview 1 Middleware Overview 2 Object-Oriented Middleware 3 CORBA & OSGi Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 4 / 32

What is Middleware? Middleware Overview Traditional definition What is middleware? The word suggests something belonging to the middle But middle between what? The traditional middleware definition The middleware lies in the middle between the Operating System and the applications The traditional definition stresses vertical layers Applications on top of middleware on top of the OS Middleware-to-application interfaces (top interfaces) Middleware-to-OS interfaces (bottom interfaces) Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 5 / 32

Why Middleware? Middleware Overview Behind middleware Problems of today Software development is hard Experienced designers are rare (and costly) Applications become more and more complex What can middleware help with? Middleware is developed once for many applications Higher quality designers can be afforded Middleware can provide services to applications Middleware abstracts away from the specific OS Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 6 / 32

Middleware Overview Middleware and Models I Middlewares A key feature of middleware is interoperability Applications using the same middleware can interoperate This is true of any common platform (e.g. OS file system) But, many incompatible middleware systems exist Applications on middleware A can work together Applications on middleware B can work together, too But, A-applications and B-applications cannot! The Enterprise Application Integration (EAI) task Emphasis on horizontal communication Application-to-application and middleware-to-middleware Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 7 / 32

Middleware Overview Middleware and Models II Conceptual integrity Software development does not happen in vacuum Almost any software project must cope with past systems There is never time nor resources to start from scratch Legacy systems were built with their own approaches System integration is the only way out Take what is already there and add features to it Try to add without modifying existing subsystem First casualty: Conceptual Integrity The property of a system of being understandable and explainable through a coherent, limited set of concepts Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 8 / 32

Middleware Overview Middleware and Models III Models from middleware to applications Real systems are heterogeneous Piecemeal growth is a very troublesome path for software evolution Still, it is very popular being asymptotically the most cost effective when development time goes to zero Middleware technology is an integration technology Adopting a given middleware should ease both new application development and legacy integration To achieve integration while limiting conceptual drift, middleware tries to cast a model on heterogeneous applications. Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 9 / 32

Middleware Overview Middleware and Models IV Integration middleware Before: you have a total mess A lot of systems, using different technologies Ad-hoc interactions, irregular structure Each piece must be described in its own reference frame Then: the Integration Middleware (IM) comes A new, shiny model is supported by the IM Existing systems are re-cast under the Model New model-compliant software is developed After: you have the same total mess But, no, now they are CORBA objects, or TuCSoN agents Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 10 / 32

Middleware Overview Middleware Technologies Abstract vs. concrete middleware Abstract middleware: a common model Concrete middleware: a common infrastructure Example: Distributed Objects Abstractly, any middleware modeling distributed systems as a collection of network reachable objects has the same model: OMG CORBA, Java RMI, MS DCOM, OSGI Architecture... Actually, even at the abstract level there are differences... Concrete implementations, instead, aim at actual interoperability, so they must handle much finer details Until CORBA 2.0, two CORBA implementations from different vendors were not interoperable OSGI easily provides you with specifications technology not so easy to find Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 11 / 32

Middleware Standards Middleware Overview The role of standards Dealing with infrastructure, a key-issue is the so-called network effect The value of a technology grows with the number of its adopters Standardisation efforts become critical to build momentum around an infrastructure technology Large standard consortia are built, which gather several industries together (OMG, W3C, FIPA, OSGi) Big industry players try to push their technology as de facto standards, or set up more open processes for them (Microsoft, IBM, Sun) Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 12 / 32

Middleware Overview Middleware Discussion Template How to (re)present a middleware Presentation and analysis of the model underlying the middleware What do they want your software to look like? Presentation and analysis of the infrastructure created by widespread use of the middleware If they conquer the world, what kind of world will it be? Discussion of implementation issues at the platform and application level What kind of code must I write to use this platform? What kind of code must I write to build my own platform? Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 13 / 32

Outline Object-Oriented Middleware 1 Middleware Overview 2 Object-Oriented Middleware 3 CORBA & OSGi Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 14 / 32

Object-Oriented Middleware Distributed Objects From OO to Distributed OO Distributed systems need quality software, and they are a difficult system domain OOP is a current software best practice Questions are Can we apply OOP to Distributed Systems programming? What changes and what stays the same? Distributed Objects apply the OO paradigm to Distributed Systems Examples: CORBA, DCOM, Java RMI, JINI, EJB, OSGi Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 15 / 32

Object-Oriented Middleware Core of OOP I What is the fundamental concept of OOP? From the very name of object-oriented programming, could it be The Object? Definitely not and you should know this! The fundamental concept of object-oriented programming is! The Class Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 16 / 32

Object-Oriented Middleware Core of OOP II Class: A definition A class is an abstract data type, with an associated module that implements it Writing this as a conceptual equation à la Wirth, Type + Module = Class Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 17 / 32

Object-Oriented Middleware Modules vs. Types Modules & Types Modules and types look very different Modules give structure to the implementation Types specifies how each part can be used But they share the interface concept In modules, the interface selects the public part In types, the interface describes the allowed operations as well as their properties As a result, the interface is at the very core of the notion of class Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 18 / 32

OOP Mechanism Object-Oriented Middleware Method Call The fundamental OOP computation mechanism Result res = obj.meth(par) Target Object Access Operator Method Name Parameter List Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 19 / 32

Object-Oriented Middleware OOP Extensibility Subclassing Subclassing is the main OOP extension mechanism, and it is affected by the dual nature of classes Type + Module = Class Subtyping + Inheritance = Subclassing Subtyping a partial order on types A valid operation on a type is also valid on a subtype Liskov Substitutability Principle: If S is a subtype of T, then replacing objects of type T with objects of type S does not alter the properties of a program Inheritance a partial order on modules A module grants special access to its sub-modules Open/Closed Principle: An OO language must allow the creation of modules closed for use but open for extension Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 20 / 32

Object-Oriented Middleware Distributing the Objects How to? Q How can we extend OOP to a distributed system, preserving all its desirable properties? A Just pretend the system is not distributed, and then do business as usual! This is called transparency As crazy as it may seem, it works! Well, up to a point at least, but generally enough for a lot of applications Problems arise from failure management In reliable and fast networks, things run smooth... Whenever a failure comes from what we abstracted away e.g., a network failure, we are just plain dead Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 21 / 32

Object-Oriented Middleware Core of Distributed OOP What is the fundamental concept of Distributed OOP? Could it be The Object or, again, The Class? Clearly not The fundamental concept of distributed OOP is! The Remote Interface Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 22 / 32

Object-Oriented Middleware Distributed OOP Mechanism Remote Method Call The fundamental Distributed OOP computation mechanism Result Sent back res = obj.meth(par) Target Object Encapsulates address and protocol Parameter List Sent on the network Access Operator Grants location transparency Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 23 / 32

Object-Oriented Middleware Distributed OOP: Communication Model The Distributed Objects communication model...... is implicit Transmission is implicit, everything happens through stubs The stub turns an ordinary call into an Inter-Process Communication (IPC) mechanism As a result, both local and remote calls are handled homogeneously location transparency... is object-oriented Only objects exist, invoking operations on each other Interaction is client/server with respect to the individual call micro C/S, not necessarily macro C/S Each call is attached to a specific target object: the result can depend on the target object state Callers refer to objects through an object reference Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 24 / 32

Broker Architecture Object-Oriented Middleware Broker Architecture Broker architectural pattern [Buschmann et al., 1996] Client 1 Server 1 Client 1 Server 1 Client 2 Server 2 Client 2 Broker Server 2 Client 3 Server 3 Client 3 Server 3 Broker is an architectural pattern in Stock [BMRSS96]. market metaphor Publish/subscribe Stock market metaphor. scheme Extensibility, Publish/subscribe portability, scheme. interoperability Extensibility, portability, interoperability. A broker reduces communication channels from N c xn s to N c + N s A broker reduces logic links from N c N s to N c + N s. Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 25 / 32

Object-Oriented Middleware Proxy and Impl, Stub and Skeleto Proxy and Impl, Stub and Skeleton Client invokes RemoteInterface operation(par : ParType) : ResType RemoteProxy skel : Address connects to Network RemoteSkel RemoteImpl ResType operation(partype par) { // 1. Marshal parameter // 2. Send marshalled data to impl transport address // 3. Receive result from impl transport address // 4. Return Result } ResType operation(partype par) { // Execute the operation normally } void dispatch() { while(active) { // 1. receive from the RemoteProxy // 2. Unmarshal received data // 3. Call operation on RemoteImpl // 4. Send back result } } Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 26 / 32

Outline CORBA & OSGi 1 Middleware Overview 2 Object-Oriented Middleware 3 CORBA & OSGi Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 27 / 32

CORBA & OSGi CORBA Many thanks...... to Giovanni Rimassa for his slides Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 28 / 32

CORBA & OSGi OSGi Many thanks...... to Marcel Offermans for his slides Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 29 / 32

Conclusions Summing Up Object-oriented Middleware...... provides a coherent framework for Distributed OOP, both conceptually and technologically... extends OOP to Distributed Systems... hides the complexity of programming DS... is supported by open standards such as OMG CORBA and OSGi... promotes integration across OSs, networks and languages... counts on a lot of free implementations available Does it solve everything? Of course not. That is why why have a course on Multi-agent Systems, then! Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 30 / 32

References I References Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. (1996). Pattern-Oriented Software Architecture: A System of Patterns, volume 1. John Wiley & Sons, New York, NY. Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 31 / 32

Object-Oriented Middleware for Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini after Giovanni Rimassa andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di Bologna a Cesena Academic Year 2011/2012 Andrea Omicini (Università di Bologna) 11 OO Middleware A.Y. 2011/2012 32 / 32