From mainframe applications... Mainframe Data and Applications Terminal Access.

Slides:



Advertisements
Similar presentations
AN INTRODUCTION TO CORBA Paul Jonusaitis
Advertisements

ESO - Tokyo July, 2005 ALMA Common Software Training- Course Session 1b Distributed Systems G.Chiozzi.
COM vs. CORBA.
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
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.
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Technical Architectures
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
Netprog CORBA Intro1 CORBA Common Object Request Broker Architecture Based partially on Notes by D. Hollinger and Java Network Programming and Distributed.
Distributed Systems Architectures
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 11: CORBA.
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.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
II. Middleware for Distributed Systems
Project Title: Cobra Implementation on Association Service.
The Architecture of Transaction Processing Systems
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
CORBA Chapter 17 Coulouris text. Today’s Topics CORBA History and goals CORBA RMI CORBA services The Distributed Whiteboard Revisited.
CORBA Programming Using ACE/TAO
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Common Object Request Broker Architecture (CORBA) CS-328.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Enterprise Java Beans CS-422. Application Servers In the late 1980s and though the mid 1990s a number of corporations (Broadvision, Netscape…) marketed.
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.
Client Server Technologies Middleware Technologies Ganesh Panchanathan Alex Verstak.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Location Based Information Service using CORBA CS597 Direct Reading Madhu Narayanan & Rahul Vaghela Advisor: Dr. Yugi Lee.
J2EE Structure & Definitions Catie Welsh CSE 432
CORBA Distributed Technology CASE STUDY Juan C. Navarro.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Lecture 15 Introduction to Web Services Web Service Applications.
Information Management NTU Interprocess Communication and Middleware.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
New features for CORBA 3.0 by Steve Vinoski Presented by Ajay Tandon.
Abhishek Bachchan Vishal Patangia
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
Dynamic Invocation Interface Alternative to using IDL stubs Object cannot distinguish between the two. How is DII different for the programmer?
Lecture 22: Client-Server Software Engineering
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
The World Leader in Making Software Work Together ™ Copyright IONA Technologies 1999 Building CORBA Applications (On OS/390 ?) Dusty Rivers Enterprise.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
18-349: Introduction to Embedded Systems Embedded Middleware Lecture 23.
CS551 - Lecture 11 1 CS551 Object Oriented Middleware (III) (Chap. 5 of EDO) Yugi Lee STB #555 (816)
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
CORBA (Common Object Request Broker Architechture) Aniket Prabhune Varun Saini Balaprasuna Chennupati Lally Singh.
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
CORBA: Object Adapter, Services, Inter-ORB Protocols - Balaprasuna Chennupati.
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.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
CORBA Barış COŞKUN Çağatay DİKİCİ. INTRODUCTION Computer networks are heterogenous In 1989 OMG(Object Management Group) was formed to address the problems.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Common Object Request Broker Architecture (CORBA)
CORBA Alegria Baquero.
Ch > 28.4.
Inventory of Distributed Computing Concepts and Web services
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Presentation transcript:

From mainframe applications... Mainframe Data and Applications Terminal Access

...to client/server applications... Fat Client UnixClient MacClient WindowsClient CorporateData Oracle, DB2, MS SQL, Informix, Sybase, etc. Back-end Data

…to multi-tier distributed applications CorporateData Back-end Data Middle Tier (NT/Unix/AS400) Thin Client Windows Client Java Client Browser Client Mobile Client Middle-Tier Services Business Processes Oracle, DB2, MS SQL, Informix, Sybase ApplicationServer:

Enterprise computing sEnterprises have a variety of computing platforms Unix, 95/98/NT, MVS, AS/400, VMS, Macintosh, NC’s, VxWorks, etc. sEnterprises write applications in a variety of programming languages C, C++, Java, COBOL, Basic, Perl, Smalltalk, etc. sEnterprises need an open architecture to support the heterogeneous environment

Object-oriented computing for the enterprise sEnterprise applications are being written in terms of objects - reusable components that can be accessed over the enterprise network sCORBA supplies the architecture for distributed applications based on open standards

Distributed application advantages sScalability Server replication Thin, heterogeneous clients sRe-usability sPartitioned functionality = easy updating of either clients or servers

Competing technologies for distributed objects sOpen standards based solutions Java, CORBA, EJB, RMI, IIOP, JTS/OTS, JNDI, JDBC,, Servlets, JSP, Java Security sThe All-Microsoft solution COM, COM+, ActiveX, Visual C++, MTS, ASP, IIS, etc. sOther proprietary solutions Message oriented middleware (MOMs - MQSeries, etc.) TP monitors

The Object Management Group (OMG) sIndustry Consortium with over 855 member companies formed to develop a distributed object standard sAccepted proposals for the various specifications put forth to define: Communications infrastructure Standard interface between objects Object services sDeveloped the spec for the Common Object Request Broker Architecture (CORBA)

CORBA design goals/characteristics: sNo need to pre-determine: The programming language The hardware platform The operating system The specific object request broker The degree of object distribution s Open Architecture: Language-neutral Interface Definition Language (IDL) Language, platform and location transparent sObjects could act as clients, servers or both sThe Object Request Broker (ORB) mediates the interaction between client and object

IIOP - Internet Inter-ORB Protocol sSpecified by the OMG as the standard communication protocol between ORBs sResides on top of TCP/IP sDevelopers don’t need to “learn” IIOP; the ORB handles this for them sSpecifies common format for: object references, known as the Interoperable Object Reference (IOR) Messages exchanged between a client and the object

Key definitions: ORB and BOA sObject Request Broker (ORB) Transports a client request to a remote object an returns the result. Implemented as: a set of client and server side libraries zero or more daemons in between, depending on ORB implementation, invocation method, etc. sObject Adapter (OA), an abstract specification Part of the server-side library - the interface between the ORB and the server process listens for client connections and requests maps the inbound requests to the desired target object instance sBasic Object Adapter (BOA), a concrete specification The first defined OA for use in CORBA-compliant ORBs leaves many features unsupported, requiring proprietary extensions superceded by the Portable Object Adapter (POA), facilitating server-side ORB-neutral code

What is an object reference? sAn object reference is the distributed computing equivalent of a pointer CORBA defines the Interoperable Object Reference (IOR) IORs can be converted from raw reference to string form, and back Stringified IORs can be stored and retrieved by clients and servers using other ORBs an IOR contains a fixed object key, containing: the object’s fully qualified interface name (repository ID) user-defined data for the instance identifier An IOR can also contain transient information, such as: The host and port of its server metadata about the server’s ORB, for potential optimizations optional user defined data

CORBA object characteristics sCORBA objects have identity A CORBA server can contain multiple instances of multiple interfaces An IOR uniquely identifies one object instance sCORBA object references can be persistent Some CORBA objects are transient, short-lived and used by only one client But CORBA objects can be shared and long-lived business rules and policies decide when to “destroy” an object IORs can outlive client and even server process life spans sCORBA objects can be relocated The fixed object key of an object reference does not include the object’s location CORBA objects may be relocated at admin time or runtime ORB implementations may support the relocation transparently sCORBA supports replicated objects IORs with the same object key but different locations are considered replicas

CORBA server characteristics sWhen we say “server” we usually mean server process, not server machine sOne or more CORBA server processes may be running on a machine sEach CORBA server process may contain one or more CORBA object instances, of one or more CORBA interfaces sA CORBA server process does not have to be “heavyweight” e.g., a Java applet can be a CORBA server

Interfaces vs. Implementations CORBA Objects are fully encapsulated Accessed through well-defined interface Internals not available - users of object have no knowledge of implementation Interfaces & Implementations totally separate For one interface, multiple implementations possible One implementation may be supporting multiple interfaces Object IDL Interface

Location Transparency A CORBA Object can be local to your process, in another process on the same machine, or in another process on another machine Process AProcess BProcess C Machine XMachine Y

Stubs & Skeletons client program call language mapping operation signatures Location Service ORB ORB Operations Basic Object Adapter Multithreading StubSkeleton language mapping entry points method object implementation Transport Layer Stubs and Skeletons are automatically generated from IDL interfaces

Dynamic Invocation Interface ORB ORB Operations client program dynamic interface query object implementation method * Dynamic Invocation Interface DII* calls Interface Repository Skeleton Basic Object Adapter DII*

Why IDL? sIDL reconciles diverse object models and programming languages sImposes the same object model on all supported languages sProgramming language independent means of describing data types and object interfaces purely descriptive - no procedural components provides abstraction from implementation allows multiple language bindings to be defined sA means for integrating and sharing objects from different object models and languages

IDL simple data types sBasic data types similar to C, C++ or Java long, long long, unsigned long, unsigned long long short, unsigned short float, double, long double char, wchar (ISO Unicode) boolean octet (raw data without conversion) any (self-describing variable)

IDL complex data types sstring - sequence of characters - bounded or unbounded string msg // bounded string msg // unbounded swstring - sequence of Unicode characters - bounded or unbounded ssequence - one dimensional array whose members are all of the same type - bounded or unbounded sequence mySeq // bounded sequence mySeq // unbounded

IDL user defined data types sFacilities for creating your own types: typedef enum const struct union arrays exception spreprocessor directives - #include #define

Operations and parameters sReturn type of operations can be any IDL type seach parameter has a direction (in, out, inout) and a name ssimilar to C/C++ function declarations

CORBA Development Process Using IDL IDLDefinition IDLCompiler Stub Source Skeleton Source Client Implementation Client Program Source Object Implementation Object Implementation Source Java or C++ Compiler Client Program Java or C++ Compiler Object Implementation

A simple example: IDL // module Money { interface Accounting { float get_outstanding_balance(); };

A Java client import org.omg.CORBA.*; public class Client { public static void main(String args[]) { try { // Initialize the ORB. System.out.println("Initializing the ORB..."); ORB orb = ORB.init(args, null); // bind to an Accounting Object named "Account" System.out.println("Binding..."); Money.Accounting acc =Money.AccountingHelper.bind(orb,"Account"); // Get the balance of the account. System.out.println("Making Remote Invocation..."); float balance = acc.get_outstanding_balance(); // Print out the balance. System.out.println("The balance is $" + balance); } catch(SystemException e) { System.err.println("Oops! Caught: " + e); }

A Java server object import Money.*; import org.omg.CORBA.*; class AccountingImpl extends _AccountingImplBase { public float get_outstanding_balance() { float bal = (float) ; // Implement real outstanding balance function here return bal; } public static void main(String[] args) { try { ORB orb = ORB.init(args, null); // Initialize the ORB. BOA boa = orb.BOA_init(); // Initialize the BOA. System.out.println("Instantiating an AccountingImpl."); AccountingImpl impl = new AccountingImpl("Account"); boa.obj_is_ready(impl); System.out.println("Entering event loop."); // Wait for incoming requests boa.impl_is_ready(); } catch(SystemException e) { System.err.println("Oops! Caught: " + e); }

A C++ client #include int main (int argc, char* const* argv) { try { cout << "Initializing ORB..." << endl; CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); cout << "Binding..." << endl; Money::Accounting_var acc = Money::Accounting::_bind(); cout << "Making Remote Invocation..." << endl; cout << "The outstanding balance is " get_outstanding_balance() << endl; } catch (CORBA::Exception& e) { cerr << "Caught CORBA Exception: " << e << endl; } return 0; }

A C++ server object #include class AccountingImpl : public _sk_Money::_sk_Accounting { public: AccountingImpl(const char* name) : _sk_Accounting(name) {} CORBA::Float get_outstanding_balance() { // implement real outstanding balance function here return ; } }; int main (int argc, char* const* argv) { // Initialize ORB. CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); CORBA::BOA_var boa = orb->BOA_init(argc, argv); cout << "Instantiating an AccountingImpl" << endl; AccountingImpl impl("Accounting"); boa->obj_is_ready(&impl); cout << "Entering event loop" << endl; boa->impl_is_ready(); return 0; }

CORBA services sThe OMG has defined a set of Common Object Services sFrequently used components needed for building robust applications sTypically supplied by vendors sOMG defines interfaces to services to ensure interoperability

Popular CORBA services sNaming maps logical names to to server objects references may be hierarchical, chained returns object reference to requesting client sEvents asynchronous messaging decouples suppliers and consumers of information

Popular CORBA services sNotification More robust enhancement of event service Quality of Service properties Event filtering Structured events sTransaction Ensures correct state of transactional objects Manages distributed commit/rollback Implements the protocols required to guarantee the ACID (Atomicity, Consistency, Isolation, and Durability) properties of transactions

CORBA vendors sInprise/Borland VisiBroker: sIona Orbix: sRogue Wave Nouveau: sObjectSpace Voyager:

Real-world implementations sCommercial products Oracle8i SilverStream Application Server BEA WebLogic Server Vitria BusinessWare enterprise integration server Evergreen Ecential ecommerce engine enCommerce getAccess security server sEnd-user applications:

Resources: Web sWeb sites: OMG: Washington University: Free CORBA page Cetus links (links to CORBA vendors, benchmarks, etc.): sNewsgroups: comp.object.corba comp.lang.java.corba

Resources: books sClient/Server Programming With Java and CORBA (2nd edition) by Robert Orfali and Dan Harkey sProgramming with VisiBroker, A Developer's Guide to VisiBroker for Java by Doug Pedrick, Jonathan Weedon, Jon Goldberg, and Erik Bleifield sAdvanced CORBA Programming with C++ by Michi Henning and Steve Vinoski