210 likes | 356 Views
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
E N D
Research Issues in CORBA What keeps CORBA peopleawake 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 • 8. Tracking Computation • 9. Tracking Resources • 10. Scale
CORBA 2.0 Architecture Object Services Naming Trading Transactions Security Interface Repository Object Adapter Client Server RPC O R B O R B IIOP-RPC DCE-RPC Stub Skeleton DII DSI IDL Compiler
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 OMG IDL
IDL Operations and Inheritance • Operation Attribute • Return value • Operation • Parameter direction • User exception
IIOP Transport Locator ORB Client ORB Server ORB Type (hint) Host:port Object_key Java ORB Object Reference (IOR) C++ ORB IIOP Wire Format
Object References Client Server Object =
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
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
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
Issue 3 - Transports • Type • RPC • Async Message • Streams • Multi-cast • Quality • Load Balance • Highly Available • Transactional • Secure • Real-time • Embedded
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
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 Issue 6 - Interoperability/Portability
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
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
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