Infrastructure that supports (distributed) componentbased application development



Similar documents
Middleware Lou Somers

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

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

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

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

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

Web Services. Copyright 2011 Srdjan Komazec

Distributed Network Management Using SNMP, Java, WWW and CORBA

Introduction to Distributed Computing using CORBA

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

Architecture of the CORBA Component Model CORBA 3.0

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

Interface Definition Language

What is COM/DCOM. Distributed Object Systems 4 COM/DCOM. COM vs Corba 1. COM vs. Corba 2. Multiple inheritance vs multiple interfaces

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

Middleware: Past and Present a Comparison

Event-based middleware services

App Servers & J2EE Platform. Contents: Transaction Processing Monitors. TP Monitors (cont) TP-Monitors. TP Standards. TP Monitors (cont)

CORBAservices. Naming. Part of the CORBA Naming Service Interface in IDL. CORBA Naming Service

Chapter 2: Remote Procedure Call (RPC)

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

CORBA. BY VIRAJ N BHAT

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

Service-Oriented Architecture and Software Engineering

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

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

The Microsoft Way: COM, OLE/ActiveX, COM+ and.net CLR. Chapter 15

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

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


Chapter 5 Application Server Middleware

COM+ OVERVIEW OF MICROSOFTS COM, DCOM AND COM+ COMPONENT TECHNOLOGIES DCOM - COM+ Peter R. Egli INDIGOO.COM. indigoo.com. 1/20 Rev. 1.

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

Chapter 2: Enterprise Applications from a Middleware Perspective

System types. Distributed systems

Introduction to CORBA

Distributed Objects and Components

An Architectural View of Distributed Objects and Components in CORBA, Java RMI, and COM/DCOM

XII. Distributed Systems and Middleware. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Elements of Advanced Java Programming

From Middleware to Service-Oriented Architecture (SOA)

CORBA Component Model(CCM)

Distributed Applications with CORBA. Frank Kargl Chaos Computer Club, Ulm, Germany

Client-Server Applications

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

SOA Patterns and Best Practices

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

How To Write A Network Operating System For A Network (Networking) System (Netware)

OMG/CORBA: An Object-Oriented Middleware

Distributed Internet Applications - DIA. Principles of Object-Oriented Middleware

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

Java and Distributed Object Models: An Analysis

Implementing Java Distributed Objects with JDBC

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

JavaPolis 2004 Middleware and Web Services Security

Frameworks for Component-Based Client/Server Computing

CORBA Objects in Python

Object-Oriented Middleware for Distributed Systems

Corba. Corba services. The (very) global picture. Corba. Distributed Object Systems 3 CORBA/IDL. Corba. Features. Services

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

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

CORBA Programming with TAOX11. The C++11 CORBA Implementation

Distributed Systems. Outline. What is a Distributed System?

VisiBroker Configuration Reference

XXI. Object-Oriented Database Design

Writing Grid Service Using GT3 Core. Dec, Abstract

Sun Microsystems Inc. Java Transaction Service (JTS)

Seamless Integration of Distributed Real Time Monitoring and Control Applications Utilising Emerging Technologies

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

Distributed Systems Architectures

Data Management in an International Data Grid Project. Timur Chabuk 04/09/2007

A Web Services Created Online Training and Assessment Scheme

CORBA, DCOP and DBUS. A performance comparison.

Chapter 7, System Design Architecture Organization. Construction. Software

Service Oriented Architecture

Transcription:

Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication mechanisms to hide distribution information (large) set of predefined components Standard for constructing and interconnecting components interchange upgrade adaptation aggregation

Middleware Technologies 2 Middleware Requirements Network communication marshalling/unmarshalling Coordination Reliability Scalability activation/termination, threading, group requests, synchronicity delivery guarantees, total/partial ordering, atomicity, replication transparency of access/location/migration/replication, load balancing Heterogeneity platform, operating system, network OS, programming language

Middleware Technologies 3 Middleware Categories Transactional two-phase commit for distributed transactions e.g., IBM s CICS Message-oriented (MOM) Procedural communication via message exchange e.g., Sun s JMS remote procedure calls as the foundation e.g., DCE RPC Object-based communication among and via distributed objects e.g., CORBA, COM Component-based support for distributed components e.g., EJB

Middleware Technologies 4 Elements of Middleware Software components component interfaces Containers Metadata properties methods events shared context of interaction with other components provide access to system-level services self-descriptive information used by a component to flexibly communicate with others Integrated development environment e.g., VisualCafe for Java

Middleware Technologies 5 Distribution Support in Middleware Hidden from application programmers Five distributed services required remote communication protocols e.g., RPC, message passing directory services for accessing shared, globally-available services security services protection of shared resources via authentication transaction services for concurrent data access/update system management services service monitoring, management, and administration

Middleware Technologies 6 CORBA A middleware platform that supports a standardized OO architecture for software applications Common Object Request Broker Architecture Open standard - developed by the Object Management Group CORBA is a component of OMG s Object Management Architecture CORBA supports distributed object computing CORBA uses a broker an intermediary handling requests in a system facilitates communication between clients and server objects separates a component s interface from its implementation

Middleware Technologies 7 CORBA s Enhancements to Client/Server Extends distributed computing paradigms, such as DCE RPC, to distributed object computing Mutable client-server relationships clients and servers not hard-wired to one another dynamic discovery of component interfaces Interaction intermediary ORB object adapters gateways for other object systems Both synchronous and deferred synchronous communication deferred synchronous asynchronous ~

Middleware Technologies 8 Main CORBA Features Object request broker (ORB) OMG interface definition language (IDL) Language mappings Stubs and skeletons Interface repository Dynamic invocation and dispatch Object adapters Inter-ORB protocols

Middleware Technologies 9 CORBA Architecture Client Object Implementation Dynamic Invocation Client IDL Stubs ORB Interface Static Skeletons Dynamic Skeleton invocation (Basic) Object Adapter Interface Repository ORB Core Implementation Repository

Middleware Technologies 10 Object Request Broker Delivers client requests and server responses provides a layer of indirection between clients and servers The ORB hides object location implementation execution state communication mechanisms Requests on an object are made using its reference Clients can obtain references in three ways create an object to get its reference uses factory objects invoke a lookup service (naming, trading) use persistent references to objects

Middleware Technologies 11 OMG IDL Specifies (implementation-independent) object interface Basic types short, long, long long, float, double, long double, char, wchar, boolean, octet, enum, string, wstring Any Constructed types struct, union, array, sequence IDL is language-independent Standardized language mappings for C, C++, Ada95, COBOL, Smalltalk, Java,... Marshalling Unmarshalling

Middleware Technologies 12 Stubs and Skeletons Used in CORBA s static invocation Programming language-specific counterparts to IDL definitions Stubs and skeletons are generated using the IDL definitions Stubs create and issue requests on the client side a.k.a. surrogates or proxies perform marshalling of requests Skeletons receive and forward requests to objects on the server side perform unmarshalling of requests return results via the server and client ORBs to the stub

Middleware Technologies 13 Example of Stubs and Skeletons Interface Definition interface Employee { void promote(in char new_job_class); void dismiss(in DismissalCode reason, in String description); }; Client Application Object Reference Operation promote Operation dismiss Server Application Object Implementation Method Emp_promote Method Emp_dismiss

Middleware Technologies 14 Static Method Invocation Define object classes using IDL Run IDL file through language precompiler Add implementation code to skeletons Compile code Bind class definitions to Interface Repository Register the run-time objects with Implementation Repository Instantiate the objects on the server

Middleware Technologies 15 Interface Repository Used for performing operations on objects whose interface is not known at compile time Knowing interfaces of all objects a priori may be impractical independently developed components fast changing parts of the system dynamic manipulation IR allows access to the IDL type system at runtime IR is a CORBA object whose functionality is invoked like any other object allows CORBA s dynamic invocation Not to confuse with Implementation Repository that contains information for locating and activating objects

Middleware Technologies 16 Dynamic Method Invocation Obtain interface name from Interface Repository Obtain method description from Interface Repository Create argument list Create request Invoke request Dynamic vs. static invocation harder to program less robust type checking slower (factor of 40) harder to understand/document

Middleware Technologies 17 CORBA Services Naming Life Cycle Events create, copy, move, delete objects register for interest in specific events (e.g., push, pull) Object Trader yellow pages for objects based on services they provide Transactions flat, nested involving heterogeneous ORBs and non-orbs Concurrency Control coordinate access to shared resources using locks

Middleware Technologies 18 CORBA Services (cont.) Object Security authentication, audits, encryption Persistence Query find objects of matching attributes Collections manipulate objects in a group Relationships Time Licensing Properties dynamically create and keep track of relationships license manager

Middleware Technologies 19 Inter-ORB Protocols CORBA standard does not cover all of CORBA e.g., different protocols and object references are possible General ORB interoperability architecture based on the General Inter-ORB Protocol (GIOP) one instance of GIOP is the IIOP (built on top of TCP/IP) Environment-Specific Inter-ORB Protocols (ESIOP) allow CORBA and non-corba components to interact one instance is the Distributed Computing Environment Common Inter-ORB Protocol (DCE-CIOP) Standard object reference format Interoperable Object Reference (IOR) Portable Object Adapters (POA)

Middleware Technologies 20 COM/DCOM Microsoft s middleware infrastructure in many ways similar to CORBA Defines a binary standard for component interoperability programming language independence Platform independent Windows (95, 98, NT) Mac Unix Distribution transparency does exploit operational characteristics Dynamic component loading and unloading

Middleware Technologies 21 Basic COM Features Binary standard for component interactions Support for interfaces defined in an IDL different from CORBA s Base interface with introspection support dynamic discovery of other components interfaces garbage collection via reference counting Unique component ID mechanism Communication is synchronous by default asynchronous communication supportable by callbacks and connection points

Middleware Technologies 22 Binary Standard Component operation invocation via virtual tables vtables works for languages that support function pointers e.g., C, C++, Smalltalk the client contains a pointer to the vtable the vtable contains a pointer to the server function one layer of indirection over standard function calls Client VTable Server-i Server-j

Middleware Technologies 23 COM Components Compiled code that provides some service to a system A component may support a number of interfaces an interface is a collection of semantically related functions COM interfaces begin with I by convention All access to component services is via interface pointers allows service reimplementation Each component supports base interface IUnknown Transparent remote access via proxy-stub pairs similar to CORBA Every component has a globally unique identifier (GUID) 128 bit integer used to refer to component s TypeLibrary (metadata repository)

Middleware Technologies 24 Notes on COM Interfaces Interface class they contain no implementation multiple implementations of an interface possible Interface component interfaces are the (binary) component interaction standard Heterogeneous COM clients and servers interact via interface pointers A single COM component can implement multiple interfaces Interfaces are strongly typed every interface has a GUID Interfaces are immutable e.g., no subtyping, subclassing, inheritance

Middleware Technologies 25 Interface IUnknown Must be implemented by all COM components Has three methods QueryInterface AddRef Release provides introspection capabilities allows runtime discovery of component interface delivers interface pointer to a client called when another component is using the interface increments reference count called when another component stops using the interface decrements reference count Supports garbage collection a component can be unloaded when its reference count is 0

Middleware Technologies 26 Distributed COM DCOM = COM binary standard + runtime infrastructure for communicating across distributed address spaces initially only on Windows recently adding Mac and Unix Uses OSF s DCE RPC as a basis for remote interaction proxy/stub mechanism Attempts to address challenges of distributed computing interacting components should be close to one another some components locations are fixed inverse relationship between component size and flexibility direct relationship between component size and network traffic

Middleware Technologies 27 Distribution in COM/DCOM In-Process Client Server Distribution in COM/DCOM Inter-Process Client Proxy Stub Server Security RPC Security RPC LPC LPC

Middleware Technologies 28 Distribution in COM/DCOM Cross-Network Client Proxy Stub Server Security RPC Security RPC Network Protocol Stack Network Protocol Stack DCOM Network Protocol

Middleware Technologies 29 Distribution in DCOM Full distribution transparency component location is hidden from clients (and client developers) method invocation is identical underlying communication mechanisms change Comp1 Comp2 Comp2 Comp3 Comp4

Middleware Technologies 30 Garbage Collection in COM/DCOM Networks are fragile connections may break for many reasons if a connection to a client is broken, a server component should not needlessly consume resources COM/DCOM uses a pinging protocol to detect (in)active clients a ping message is sent every two minutes from client to server distributed garbage collection transparent to the application (developer) reference count is decremented if multiple (>3) ping periods pass without receiving a message The protocol is efficient ping messages are piggybacked onto existing COM calls