CSE119 Component Based Technology. UNIT – IV Java and CORBA Interface Definition Language Object Request Broker System Object Model Portable Object Adapter.

Slides:



Advertisements
Similar presentations
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
Advertisements

COM vs. CORBA.
RPC Robert Grimm New York University Remote Procedure Calls.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
What iS RMI? Remote Method Invocation. It is an approach where a method on a remote machine invokes another method on another machine to perform some computation.
CORBA Architecture Nitin Prabhu. Outline CORBA Object Model CORBA Architecture Static Invocation Dynamic Invocation CORBA Communication Model.
CORBA - Common Object Request Broker Architecture.
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Netprog CORBA Intro1 CORBA Common Object Request Broker Architecture Based partially on Notes by D. Hollinger and Java Network Programming and Distributed.
CORBA Framework Eelements 1 CORBA Framework Elements  Object Request Broker (ORB)  This is the object manager in CORBA  Mechanisms for specifying interfaces.
Object Oriented System Development with VB .NET
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Distributed Service Architectures Yitao Duan 03/19/2002.
II. Middleware for Distributed Systems
Communication in Distributed Systems –Part 2
Common Object Request Broker Architecture CORBA. RMI is a simplified version of CORBA that does fairly well CORBA is all-singing and all-dancing Multiple.
Common Object Request Broker Architecture (CORBA) CS-328.
Middleware-Based OS Distributed OS Networked OS 1MEIT Application Distributed Operating System Services Application Network OS.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
CORBA Celsina Bignoli Enterprise Computing Corporation have similar computing environments: –mixed set of HW platforms –a mixed set.
H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Research Issues in CORBA What keeps CORBA people awake at Night! Peter de Jong.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
COM/DCOM Implementation Basics of: Object creation and access Object Reuse Interface referencing.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
Information Management NTU Interprocess Communication and Middleware.
 OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability.
New features for CORBA 3.0 by Steve Vinoski Presented by Ajay Tandon.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Abhishek Bachchan Vishal Patangia
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
CORBA/IDL Common Object Resource Broker Architecture (CORBA) Interface Definition Language (IDL) Object Management Group (OMG) ( Specification.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Object Oriented Software Development
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
Inheritance. Inheritance - Introduction Idea behind is to create new classes that are built on existing classes – you reuse the methods and fields and.
Creating Classes from Other Classes Appendix D © 2015 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
Recap Introduction to Inheritance Inheritance in C++ IS-A Relationship Polymorphism in Inheritance Classes in Inheritance Visibility Rules Constructor.
1 Pass-By-Value Services in Object Component Software Group 1 Yannick Loitiere Andrea Rowan Michele Co Jinze Liu.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Topic 5: CORBA RMI Dr. Ayman Srour
ISBN Chapter 12 Support for Object-Oriented Programming.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Bonobo and Free Software GNOME Components
CORBA: An Overview Mojtaba Hosseini.
Common Object Request Broker Architecture (CORBA)
Distributed Computing
CORBA Alegria Baquero.
What is RMI? Remote Method Invocation
Types of Programming Languages
CORBA Within the OS & Its Implementation
Knowledge Byte In this section, you will learn about:
Programming Models for Distributed Application
CORBA Alegria Baquero.
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Component--based development
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
1999년 10월 29일 김 정 선 한양대학교 공학대학 전자컴퓨터공학부
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

CSE119 Component Based Technology

UNIT – IV Java and CORBA Interface Definition Language Object Request Broker System Object Model Portable Object Adapter CORBA services CORBA Component Model

Java and CORBA An important reason to incorporate CORBA into Java projects is to enable the use of IIOP for communication with non-Java subsystems. For access to CORBA services it is usually more convenient to go through Java-specific access interfaces that can map to CORBA-compliant and other service implementations. Several of these Java service interface standards. CORBA and Java usually coexist in almost all application server products today. It is therefore often reasonable to assume the presence of CORBA mechanisms (for interoperation) when implementing for the application server tier. RMI is normally implemented using a proprietary protocol (Java Remote Method Protocol – JRMP), which limits the use of RMI to Java-to-Java com- munication.

Java and CORBA The RMI-over-IIOP specification was introduced in 1999 and is part of the JDK since J2SE 1.3. It supports a restricted RMI variant to be used over the CORBA IIOP protocol, reaching any CORBA 2.4-compliant ORB. This specification requires a recent addition to CORBA that enables the sending of objects by value – that is, the sending of a copy of the object rather than the sending of a reference to the object staying behind. RMI-over-IIOP does not support the RMI distributed garbage collection model and thus falls back on CORBA’s lifecycle management approach to deal with the lifetime of remote objects explicitly.

Java and CORBA In addition, RMI-over-IIOP creates proxies that do not allow normal Java instanceof/cast mechanisms to be used to discover interfaces or subclasses. Instead, a service method must be called to determine whether or not some type is supported – and, if so, that method returns a new proxy. The fact that a new proxy instance may be returned does, as such, not add new complications as RMI is already removing the object identity property and several proxy instances may refer to the same remote object.

Java and CORBA With J2SE 1.4, introduced in 2002, support was added for –POA (portable object adapter) –portable interceptors –INS (interoperable naming service) –GIOP 1.2 (general interoperability protocol), –and dynamic any’s. J2SE 1.4 also includes a tool to remotely manage a persistent server and an ORB daemon (ORBD) that enables clients to transparently locate and invoke persistent objects on CORBA-supporting servers.

Interface Definition Language IDL (interface definition language) Used to define an interface according to a certain model (usually an object model) in a programming language-neutral form. Two prominent examples are OMG IDL and COM IDL. OMG IDL is based on a traditional object model, where an object has a single interface that can be composed out of other interfaces using multiple interface inheritance. The methods of an OMG IDL-described interface are called operations. OMG IDL also supports a set of primitive (non-object) types, such as basic types and a selection of constructed types, including structures, arrays, and sequences.

Interface Definition Language COM IDL is based on the COM object model and is a derivative of the older DCE IDL (Distributed Computing Environment ). It does not at all refer to objects or classes, but merely specifies interfaces. A COM object can implement any number of such interfaces. COM IDL supports single interface inheritance as a convenience feature. In both IDLs, polymorphism is achieved by separating implementations from interfaces. In OMG IDL, additional polymorphism is achieved via multiple interface inheritance. In COM IDL, additional polymorphism is achieved via subsets of interface sets implemented by objects.

Interface Definition Language COM and OMG IDL are pure interface definition languages outside the realm of any implementation. Thus, they support only interface inheritance (subtyping). To summarize, there are three cardinal facets of inheritance: –1 subclassing – that is, inheritance of implementation fragments/code, usually called implementation inheritance; –2 subtyping – that is, inheritance of contract fragments/interfaces, usually called interface inheritance; and –3 promise of substitutability.

Interface Definition Language It is surprising that the three facets are usually omitted, or at least not clearly distinguished, when starting heated discussions on the pros and cons. Part of an explanation might be the irrational discussion between “objectionists”and “hybridists.” Alternatively, is it fundamentalists/purists against technocrats/ pragmatists? The former usually refer to the prime directive that object models shall support inheritance (although which of the inheritance facets they insist on is often left open). The latter argue that nothing is impossible and everything may have its place.

Interface Definition Language

System Object Model (SOM) SOM was originally developed independently from CORBA as part of the OS/2 workplace shell. Later, it was made first CORBA 1.2- and then CORBA 2-compliant. In fact, distributed computing is supported by the distributed SOM (DSOM) libraries, which build on SOM. DSOM is considered to be an integral part of SOM. SOM implemented a superset of the CORBA 2 standard and supported metaservices that are still not on the CORBA map. In addition, SOM defined a binary standard.

System Object Model (SOM) Two features of SOM stand out – its support for metaprogramming and support or binary compatibility across binary releases. The SOM metaprogramming model largely follows the Smalltalk example (Goldberg and Robson, 1983), so every class is itself an object and as such an instance of a metaclass. All metaclasses are instances of a single class, Metaclass, which is its own metaclass. SOM goes beyond the reflective capabilities of CORBA as SOM allows classes to be constructed or modified dynamically.

System Object Model (SOM) For example, it is possible to add a new method to an existing class without disturbing any of the existing instances of that class – these existing instances will immediately support the new method. There is at present no other mainstream component platform that supports a similar level of metaprogramming. Runtime code synthesis is supported elsewhere (CLR, Java), but these do not support modifications that affect already existing instances.

System Object Model (SOM) Versioning and binary compatibility are supported by the notion of a release order. For example, adding new methods to a later release does not alter the dispatch indices used by code compiled against an older release. SOM comes with precise rules as to which changes in a release maintain, and which other changes break, binary compatibility with previous releases. Binary compatibility is a very important issue in a component world. It is unthinkable to ask all vendors of dependent components – and the vendors of components dependent on these components, and so on – to recompile and redistribute within any reasonable time.

System Object Model (SOM) SOM guarantees binary compatibility across a large number of base class changes, including refactoring of class hierarchies, as long as the required methods remain available and of compatible signature. As a special case, SOM guarantees that,, then building the next release of a component is guaranteed to preserve binary compatibility with clients compiled against the previous release. This effectively solves the syntactic fragile base class (FBC) problem, but obviously cannot address the semantic FBC problem.