Distributed objects and components

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

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

Component Middleware. Sophie Chabridon. INT - INF Department - Distributed Systems team 2006

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

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

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

Infrastructure that supports (distributed) componentbased application development

Middleware Lou Somers

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

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

Introduction to Distributed Computing using CORBA

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

Interface Definition Language

10. Ausblick Zusammenfassung. Datenbanksysteme und ihre Realisierung. Datenmodelle. Anwendungen. RDM (Kap. 3) Transaktionen (Kap.

COM 440 Distributed Systems Project List Summary

Oracle WebLogic Server 11g Administration

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

Service Oriented Architecture

What Is the Java TM 2 Platform, Enterprise Edition?

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

Distributed Network Management Using SNMP, Java, WWW and CORBA

Distributed Objects and Components

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

System types. Distributed systems

Managing Variability in Software Architectures 1 Felix Bachmann*

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

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

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

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

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

Service-Oriented Architecture and Software Engineering

Architectural Overview

The Advantages of CorBA For Network Based Training Systems

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Protecting the Hosted Application Server

The Service Revolution software engineering without programming languages

Chapter 2: Remote Procedure Call (RPC)

New Methods for Performance Monitoring of J2EE Application Servers

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Distributed Systems Lecture 1 1

How To Create A C++ Web Service

Elements of Advanced Java Programming

Web Services. Copyright 2011 Srdjan Komazec

Java EE 7: Back-End Server Application Development

Service Oriented Architecture 1 COMPILED BY BJ

Converting Java EE Applications into OSGi Applications

Event-based middleware services

Enterprise Application Designs In Relation to ERP and SOA

White paper. IBM WebSphere Application Server architecture

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

Glassfish Architecture.

IBM WebSphere Server Administration

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

A standards-based approach to application integration

ActiveVOS Server Architecture. March 2009

Chapter 2: Enterprise Applications from a Middleware Perspective

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Applying 4+1 View Architecture with UML 2. White Paper

A CORBA Component. Component runtime support. A CORBA Component Home Home interface. Component Home. Väliohjelmistot /04/2004

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Client-Server Applications

JSLEE and SIP-Servlets Interoperability with Mobicents Communication Platform

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Distributed Systems Architectures

Architecture of the CORBA Component Model CORBA 3.0

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

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

JBoss EntErprisE ApplicAtion platform migration guidelines

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

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

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Chapter 1 - Web Server Management and Cluster Topology

WebSphere Server Administration Course

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

Virtual Credit Card Processing System

Overview of the CORBA Component Model. Wang, Schmidt, O Ryan

Service Mediation. The Role of an Enterprise Service Bus in an SOA

Virtual machine interface. Operating system. Physical machine interface

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

Introduction into Web Services (WS)

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Glassfish, JAVA EE, Servlets, JSP, EJB

CORBA Component Model(CCM)

Java Technology in the Design and Implementation of Web Applications

B. WEB APPLICATION ARCHITECTURE MODELS

zen Platform technical white paper

Rapid application development for JEE using Adobe ColdFusion 9

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

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

The Enterprise Service Bus

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

Introduction to Sun ONE Application Server 7

Service Oriented Architecture (SOA) An Introduction

CORBA I An Introduction To CORBA CptS 464/564 Sept 2, 2004

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Migrating Applications From IBM WebSphere to Apache Tomcat

Transcription:

Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Distributed objects and components Netzprogrammierung (Algorithmen und Programmierung V) Our topics last week Descriptive models for distributed system design Physical model Architectural model Architectural elements Interaction model Communicating entities Communication paradigm Roles and responsibilities Placement Interaction model Processes Objects Components Web Services Inter-process communication UDP sockets TCP sockets Indirect communication Multicast Remote invocation Architectural styles Client-server Peer-to-peer Multiple server Proxy/Cache Mobile code Failure model Architectural patterns Vertical distribution Multi-tier Thin/Fat Client Horizontal distribution Security model 2

Our topics today Distributed objects - emergence, key features, examples Another example for distributed objects CORBA 2.0 (besides Java RMI) Idea behind CORBA and why it failed Problems with object-oriented middleware Development of distributed components Idea behind components Example for distributed components: Enterprise JavaBeans 3 Distributed objects and components Introduction 4

Benefits of distributed object middleware The encapsulation inherent in object-based solutions is well suited to distributed programming. The related property of data abstraction provides a clean separation between the specification of an object and its implementation, allowing programmers to deal solely in terms of interfaces and not be concerned with implementation details such as programming language and operating system used. This approach also lends itself to more dynamic and extensible solutions, for example by enabling the introduction of new objects or the replacement of one object with another (compatible) object. 5 Distributed objects and components Key features of distributed objects 6

The natural evolution of distributed objects In distributed systems, earlier middleware was based on the client-server model and there was a desire for more sophisticated programming abstractions. In programming languages, earlier work in object-oriented languages such as Smalltalk led to the emergence of more mainstream and heavily used programming languages such as Java and C++ (languages used extensively in distributed systems). In software engineering, significant progress was made in the development of object-oriented design methods, leading to the emergence of the Unified Modeling Language (UML) as an industrialstandard notation for specifying (potentially distributed) object-oriented software systems. 7 Distributed object middleware It provides a programming abstraction based on the object-oriented principles. Leading examples: Java RMI and CORBA Java RMI CORBA Restricted to the Java-based development Multi-language solution allowing objects written in a variety of languages to interoperate (bindings exist for example for C++, Java, Python) 8

Distributed objects and components CORBA 2.0 9 OMG and CORBA The Object Management Group (OMG) was formed in 1989 to develop, adopt, and promote standards for the development and deployment of applications in distributed heterogeneous environments. Todays it is focused on modeling (programs, systems and business processes) and model-based standards. The OMG defined a Object Management Architecture (OMA) with one of its key components - the Common Object Request Broker Architecture (CORBA) specification. Object Request Broker (ORB) helps a client to invoke a method on an object. 10

Main components of CORBA 2.0 An interface definition language known as IDL An architecture An external data representation, called CDR A standard form for remote object references 11 CORBA 2.0 CORBA s architecture 12

Main components of the CORBA architecture client implementation repository interface repository object adapter server skeleton client program proxy for A ORB core Request Reply ORB core Servant A 13 The object request broker (ORB) All requests are managed by the ORB. This means that every invocation (whether it is local or remote) of a CORBA object is passed to an ORB. In the case of a remote invocation the invocation passed from the ORB of the client to the ORB of the object implementation The ORB is responsible for all the mechanisms required to perform these tasks: Find the object implementation for the request. Prepare the object implementation to receive the request. Communicate the data making up the request. 14

Object adapter The role of the object adapter is to bridge the gap between CORBA objects with IDL interfaces and the programming language interfaces of the corresponding servant classes. An object adapter has the following tasks It creates remote object references for CORBA objects It dispatches each RMI via skeleton to the appropriate servant It activates and deactivates servants 15 Implementation and interface repository Implementation repository Is responsible for activating registered servers on demand and for locating servers that are currently running. It stores a mapping from the names of object adapters to the pathnames of files containing object implementations. Interface repository Provides information about registered IDL interfaces to clients and servers that require it. Interfaces can be added to the interface repository service. Using the IR, a client should be able to locate an object that is unknown at compile time, find information about its interface, then build a request to be forwarded through the ORB. 16

CORBA 2.0 CORBA IDL 17 CORBA s object model CORBA s object model is very similar to the already known remote method invocation. In CORBA clients must not necessarily be objects but can be any program that sends request messages to remote objects and receives replies. CORBA objects refer to remote objects and such a object implements an IDL interface, has a remote object reference and it is able to respond to invocations of methods in its IDL interface. 18

IDL interfaces Shape and ShapeList struct Rectangle{ long width; long height; long x; long y; } ; struct GraphicalObject { string type; Rectangle enclosing; boolean isfilled; }; interface Shape { long getversion() ; GraphicalObject getallstate() ; // returns state of the GraphicalObject }; typedef sequence <Shape, 100> All; interface ShapeList { exception FullException{ }; Shape newshape(in GraphicalObject g) raises (FullException); All allshapes(); // returns sequence of remote object references long getversion() ; }; 19 Interface Definition Language (IDL) Specification language Language independent interface Declare interfaces to object methods IDL maps to many high-level programming languages Design paradigm Code to interface specified in the IDL regardless of implementation Many OMG standard mappings, such as C, C++, Java, Python, Smalltalk, Ada 20

CORBA 2.0 CORBA today 21 Today, CORBA is used mostly! to wire together components that run inside companies networks, where communication is protected from the outside world by a firewall. It is also used for real-time and embedded systems development, a sector in which CORBA is actually growing. Overall, however, CORBA s use is in decline and it cannot be called anything but a niche technology now. (Henning, 22 2008)

?(Henning, 23 2008) Some but by far not all reasons Technical issues Many of CORBA s APIs are far larger than necessary. For example, CORBA s object adapter requires more than 200 lines of code interface definitions, even though the same functionality can be provided in 30 lines CORBA s unencrypted traffic conflicts with the reality of corporate security policies. Procedural issues There are no entry of qualifications to participate in the standardization process. RFPs often call for a technology that is unproven. Vendors respond to RFPs even when they have known technical flaws. Vendors have a conflict of interest when it comes to standardization. 24

Distributed objects and components Distributed components 25 Issues with object-oriented middleware Implicit dependencies Internal (encapsulated) behavior of the object is hidden, e.g. an object may communicate with other objects or may use other services! Not only a clear interface definition is needed but also the dependencies the object has on other objects in the distributed configuration. Interaction with the middleware Programmers is exposed to many relatively low-level details associated with the middleware architecture - need to further simplifications! Clean separation of concern is needed between code related to operation in a middleware framework and code associated with the application. 26

Issues with object-oriented middleware (cont.) Lack of separation of distribution concerns Programmers have to explicitly deal with non-functional concerns related to issues such as security, coordination, and replication! The complexities of dealing with the distributed system services should be hidden wherever possible from the programmer. No support for deployment Technologies such as Java RMI and CORBA does not support for the deployment of the developed arbitrary distributed configurations! Middleware platforms should provide intrinsic support for deployment so that distributed software can be installed and deployed in the same way as software for a single machine. 27 Essence of components A software component is a unit of composition with contractually specified interfaces and explicit content decencies only. A component is specified in terms of a contract, which includes A set of provided interfaces that is, interfaces that the component offers as services to other components A set of required interfaces that is, the dependencies that this component has in terms of other components that must be present and connected to this components for it to function correctly. 28

Example software architecture of a simple file system Directory service Flat file service File service Block module Device module Required interface Provided interface 29 What is component-based development? Programming in component-based systems is concerned with the development of components and their composition. Goal Support a style of software development that parallels hardware development in using off-the-shelf components and composing them together to develop more sophisticated services It supports third-party development of software components and also make it easier to adapt system configurations at runtime, by replacing one component with another. 30

Distributed objects and components Components and distributed systems 31 Containers Containers support a common pattern often encountered in distributed systems development It consists of: A front-end (web-based) client A container holding one or more components that implement the application or business logic System services that manage the associated data in persistence storage Tasks of a container Provides a managed server-side hosting environment for components Provides the necessary separation of concerns that means the components deal with the application concerns and the container deals with the distributed systems and middleware issues 32

The structure of a container 33 Application servers 34

Distributed objects and components Enterprise JavaBeans 35 Multi-tiered Java EE applications 36

EJB Architecture Umesh Bellur 37 Enterprise beans The Enterprise JavaBeans architecture is a component architecture for the development and deployment of component-based distributed business applications. Example: In an inventory control application, the enterprise beans might implement the business logic in methods called checkinventorylevel and orderproduct. Benefits of Enterprise Beans EJB container provides system-level services to enterprise beans, the bean developer can concentrate on solving business problems. Client developer can focus on the presentation of the client. Application assembler can build new applications from existing beans. 38

When shall I use enterprise beans? The application must be scalable. To accommodate a growing number of users, you may need to distribute an application s components across multiple machines. Not only can the enterprise beans of an application run on different machines, but also their location will remain transparent to the clients. Transactions must ensure data integrity. Enterprise beans support transactions, the mechanisms that manage the concurrent access of shared objects. The application will have a variety of clients. With only a few lines of code, remote clients can easily locate enterprise beans. These clients can be thin, various, and numerous. 39 Types of EJBs Session Bean: EJB used for implementing high-level business logic and processes Session beans handle complex tasks that require interaction with other components (entities, web services, messaging, etc.) Timer Service EJB used for scheduling tasks Message Driven Bean EJB used to integrate withe external services via asynchronous messages using JMS. Usually, delegate business logic to session beans 40

EJB containers EJB container Runtime environment that provides services, such as transaction management, concurrency control, pooling, and security authorization. Historically, application servers have added other features such as clustering, load balancing, and failover. Some JEE Application Servers GlassFish (Sun/Oracle, open source edition) WebSphere (IBM) WebLogic (Oracle) JBoss (Apache) WebObjects (Apple) 41 Distributed objects and components Summary 42

So, what have we learned today? Be happy, this lecture is not part of the examination. 43 References George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems: Concepts and Design. 5th edition, Addison Wesley, 2011. Michi Henning. 2008. The rise and fall of CORBA. Commun. ACM 51, 8 (August 2008), 52-57. DOI=10.1145/1378704.1378718 http://doi.acm.org/10.1145/1378704.1378718 44