Research Issues in CORBA What keeps CORBA people awake at Night!

21
H Research Issues in CORBA Peter de Jong Hewlett-Packar Usenix 8/12/97 Research Issues in CORBA What keeps CORBA people awake at Night! Peter de Jong

description

Research Issues in CORBA What keeps CORBA people awake at Night!. Peter de Jong. Contents. CORBA Introduction Issues 1. Language Heterogeneity 2. Components 3. Transports 4. Application Coordination 5. Reuse of Services 6. Interoperability 7. Interworking - PowerPoint PPT Presentation

Transcript of Research Issues in CORBA What keeps CORBA people awake at Night!

Page 1: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Research Issues in CORBA

What keeps CORBA peopleawake at Night!

Peter de Jong

Page 2: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Contents CORBA Introduction Issues

1. Language Heterogeneity 2. Components 3. Transports 4. Application Coordination 5. Reuse of Services 6. Interoperability 7. Interworking 8. Tracking Computation 9. Tracking Resources 10. Scale

Page 3: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Software Bus

Object Request Broker

Application Interfaces

Object Services

Domain Interfaces

Page 4: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

CORBA 2.0 Architecture

Client Server

DII Stub Skeleton DSI

ORB

ORB

IIOP-RPCDCE-RPC

RPC

IDLCompiler

ObjectAdapter

InterfaceRepository

NamingTrading

TransactionsSecurity

Object Services

Page 5: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

OMG IDL

C++ like Mappings to

multiple languages C C++ Java Ada SmallTalk Cobol

ILU (Xerox Parc) Common Lisp Python

Basic types long, unsigned long short, unsigned short long long, unsigned long long fixed float, double, long double char, wchar boolean octet any

Constructed types union, enum, structure sequence, string, array,

wstring exception

Page 6: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

IDL Operations and Inheritance Operation Attribute Return value Operation Parameter direction User exception

module Tests { interface Demo1 { exception Ex {string reason;}; long func1(in string inbound, out string outbound,

inout string common) raises(Ex); oneway void greetings(); };};

it is an error to inherit from two or more interfaces having operations or attributes with the same name

A

B C

D

Page 7: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

IIOP Transport

IIOP Wire FormatIIOP Wire Format

Object Reference(IOR)

Object Reference(IOR)

JavaORB

C++ORB

ClientORB

ServerORB

LocatorORB

Type (hint)Host:portObject_key

Object KeyPrimitive types

char, octet, short, unsigned short, long, unsigned long, float, double, boolean, enum, wstring, wchar, long double, long long, fixed

Constructed TypesStruct, Union, Array, Sequence, String

Pseudo-Object TypesTypeCode, Any, Principal, Context, Exception

Page 8: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Object References

Client ServerObject

=

Contents Opaque to client or servant Object

Given an Object Referencean ORB will find and activatean object if possible

Can be Stringified and stored

Can not reliably testfor equality

Page 9: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 1 - Language Heterogeneity IDL to Java Mapping

Multiple Inheritance Class slot - corba object

class Rest are interfaces

Out parameters Holder classes

Any Helper classes

Exceptions java exceptions

Object Reference Java class reference

boolean booleanchar char data_conversion

wchar charoctet bytestring String Marshal,data_conversion

wstring String Marshal

short shortunsigned short shortlong intunsigned long long

long long longunsigned long long longfloat floatdouble double

long double ???fixed BigDecimal data_conversion

enum classstruct classunion classsequence arrayarray arrayinterface class

userexception classany class

IDL Type Java type Exceptions

Page 10: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Binary Compatibility in Java Mapping

ClientApplication

ServerApplication

org.omg.CORBA

mapping

mapping

JavaMappingCommonClasses

ORB VendorImplementationClasses

Page 11: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Other Language Issues

Pseudo Code (Almost IDL) Local Objects (ORB API's) Native Language Constructs

Local By-Pass (inproc) Direct to IDL

Java to IDL rather than IDL to Java

Objects by Value Object state (Not described in IDL) Migrating implementations

Scripting Languages Language specification rather than IDL specification

Page 12: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 2 - Components

Component CORBA Absorb Java Soft RMI into CORBA

Java to IDL mapping (OMG RFP) Objects-by-Value (OMG Submissions being merged) Distributed Garbage Collection Migration of object implementation (Information in java serialization, not in IIOP)

Component RFP Component identity Properties Interfaces for component-events Introspection Mapping to Java Beans

Related Object Services IIOP Firewall (OMG RFP) Scripting Language (OMG RFP)

Java Script

Object locality constrains (getting rid of PIDL)

Multiple interfaces

Page 13: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 3 - Transports

Type RPC Async Message Streams Multi-cast

Quality Load Balance Highly

Available Transactional Secure Real-time Embedded

RPC

Async

Queue

ORB ORB

ORB

Stream

RPC

A

ORB

A

ORB ORBA

A

ORB ORB

ORB

A

A

Page 14: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

The Next IIOP?

IIOP 2.0? (Proposals by Bill Janssen, Xerox Parc) Minimize information transfer via Caching Efficient type negotiation Port Mapper Transfer Syntax changes (alignment, any)

MUX (http://www.w3.org.pub/Protocols/MUX)

Multiple protocols multiplexed over the same connection IIOP, HTTP run over the socket built over protocol

128 sessions per TCP/IP connection MUX handles fragmentation for all protocols

HTTP-NG (http://www.w3.org.pub//Protocols/HTTP-NG)

Possible future replacement for IIOP

Page 15: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 4 - Application Coordination

ORB ORB WebBrowser A

AADataBase

ORB ORB ORB

AA

ORB ORB

A

ORBNetwork

Client/Server

Peer to Peer

Publish/Link/Retreive (WWW)

A

ORBA

ORB

Work Flow/AgentsThree tier Remote Database access

Publish/Subscribe

Page 16: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 5 - Reuse of Services

Widely Used

Events

Naming

Trading

Transactions & Concurrency

Security & Time

Lifecycle

Not Widely Used

Collections

Externalization

Licensing

Persistence

Properties

Query

Relationships

Domain Interfaces

Manufacturing

Telecom

Notification

Topology

Streams

Electronic Commerce

Financial

Health Care

Object Analysis and Design

Reasons for not reusing services

Inefficient

Wrong functionality or structure

Does not scale

Obsolete

Possible Relationships between services (doesn't use, use)

Notification

Events

Trading

Naming

Properties

Query

Topology

Relationships

Messaging

Events

Page 17: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 6 - Interoperability/Portability Interoperability (CORBA

2.0) IIOP (Compliance point) Transactions Security

General Architecture Kerberos (compliance point ) SSL

Portability Pseudo Objects

Portable Object Adaptor Language Mappings

Profiles and Conformance Embedded ORBs

Research Problems Implementations more

detailed then specs Revision Task Forces Compliance tests

written by XOPEN Proposals for Semantic

specifications Balance between

implementation freedom and conformance

Special purpose ORBs

Page 18: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 7 - Interworking

CORBAObject

COM

MIDL view of CORBA Object

DCOM

IIOP

CORBA IDLview of COM Object

Com/CORBA

Transaction

CORBAObject

CORBAClient

IIOPTransactional Info

XA Transaction

CORBA Transaction Manager

Security Interworking ? Interdomain Communication (e.g. Kerberos/SSL) MS Security / CORBA Security

Page 19: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 8 - Tracking Computation

Distributed debugging Distributed profiling Distributed

Administration Bootstrap Install and Configure

Object Locator, Persistent servers

CORBA object services servers - Naming, Event, Trading, Security, Transactions

Discover distributed executing objects

Monitor execution Start, Stop, Modify object

operation

Administrator

AADataBase

ORB ORB ORB

Page 20: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 9 - Tracking Resources

Distributed Garbage Collection Distributed Scheduling

Real-Time constraints Parallel searching

Agents Copy and transmission constraints Killing

Error handling At most once semantics Network partitioning

Computation continuing in one partition Error recovery in the other

Versioning

Page 21: Research Issues in CORBA What keeps CORBA people awake at Night!

HResearch Issues in CORBAPeter de Jong Hewlett-PackardUsenix 8/12/97

Issue 10 - Scale

Integration of all Services Security, Transactions, Fault tolerant, Real-Time,

Persistent storage, Messaging, ... One Object distributed system which does everything

well

Massively Distributed Systems Integrate with the organizational Applications Track organizational change

Goal of Object Bus - Integration vs execution Integration

Legacy applications, multiple - object models, standards, OS, languages

Execution High performance, secure distributed computation