Research Issues in CORBA What keeps CORBA people awake at Night! Peter de Jong H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Software Bus A p p l i c a t i o n I n t e r f a c e s D o m a i n I n t e r f a c e s O b j e c t R e q u e s t B r o k e r O b j e c t S e r v i c e s H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 CORBA 2.0 Architecture Object Services Naming Trading Transactions Security Interface Repository Object Adapter Client DII H Stub Server O R B RPC IIOP-RPC DCE-RPC IDL Compiler O R B Skeleton DSI Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 OMG IDL C++ like Mappings to multiple languages C C++ Java Ada SmallTalk Cobol ILU (Xerox Parc) Common Lisp Python H 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, Research Issues in CORBA Peter de Jong Hewlett-Packard wstring Usenix 8/12/97 IDL Operations and Inheritance Operation Attribute Return value Operation Parameter direction User exception A C B m o d u l e T e s t s { i n t e r f a c e D e m o 1 { e x c e p t i o n E x i t i s a n e r r o r t o i n h e r i t f r o m t w o { s t r i n g r e a s o n ; } ; o r m o r e i n t e r f a c e s h a v i n g l o n g f u n c 1 ( i n s t r i n g i n b o u n d , p e r a t i o n s o r a t t r i b u t e s w i t h o u t s t r i n g o u t b o u n d , o i n o u t s t r i n g c o m m o n )t h e s a m e n a m e r a i s e s ( E x ) ; o n e w a y v o i d g r e e t i n g s ( ) ; Research Issues in CORBA } ; Peter de Jong Hewlett-Packard H Usenix 8/12/97 } ; D IIOP Transport Client ORB Locator ORB Server ORB Type (hint) Host:port Object_key Object Reference (IOR) Java ORB H IIOP Wire Format C++ ORB O b j e c t K e y P r i m i t i v e t y p e s c h a r , o c t e t , s h o r t , u n s i g n e d s h o r t , l o n g , u n s i g n e d l o n g , f l o a t , d o u b l e , b o o l e a n , e n u m , w s t r i n g , w c h a r , l o n g d o u b l e , l o n g l o n g , f i x e d C o n s t r u c t e d T y p e s S t r u c t , U n i o n , A r r a y , S e q u e n c e , S t r i n g Research Issues in CORBA P s e u d o O b j e c t T y p e s Peter de Jong Hewlett-Packard T y p e C o d e , A n y , P r i n c i p a l , C o n t e x t , E x c e p t i o n Usenix 8/12/97 Object References Client Server Object C o n t e n t s O p a q u e t o c l i e n t o r G i v e n a n O b j e c t R e f e r e n c e s e r v a n t O b j e c t a n O R B w i l l f i n d a n d a c t i v a t e a n o b j e c t i f p o s s i b l e = C a n n o t r e l i a b l y t e s t f o r e q u a l i t y C a n b e S t r i n g i f i e d a n d s t o r e d H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H I D L T y p e E x c e p t i o n s J a v a t y p e b o o l e a n c h a r w c h a r o c t e t s t r i n g b o o l e a n c h a r c h a r b y t e S t r i n g w s t r i n g s h o r t u n s i g n e d s h o r t l o n g u n s i g n e d l o n g l o n g l o n g u n s i g n e d l o n g l o n g f l o a t d o u b l e l o n g d o u b l e f i x e d e n u m s t r u c t u n i o n s e q u e n c e a r r a y i n t e r f a c e u s e r e x c e p t i o n a n y M a r s h a l S t r i n g s h o r t s h o r t i n t l o n g l o n g l o n g f l o a t d o u b l e ? ? ? a t a _ c o n v e r s i o n B i g D e c i m a l d c l a s s c l a s s c l a s s a r r a y a r r a y c l a s s c l a s s Research Issues in CORBA c l a s s d a t a _ c o n v e r s i o n M a r s h a l , d a t a _ c o n v e r s i o n Peter de Jong Hewlett-Packard Usenix 8/12/97 Binary Compatibility in Java Mapping m a p p i n g C l i e n t A p p l i c a t i o n m a p p i n g S e r v e r A p p l i c a t i o n H o r g . o m g . C O R B A J a v a O R B V e n d o r M a p p i n g I m p l e m e n t a t i o n C o m m o n C l a s s e s C l a s s e s Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Issue 3 - Transports Type RPC Async Message Streams Multi-cast Quality Load Balance Highly Available Transactional Secure Real-time Embedded H R P C O R B O R B A s y n c Q u e u e S t r e a m A A O R B O R B R P C A O R B O R B A A O R B O R B O R B A Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Issue 4 - Application Coordination C l i e n t / S e r v e r O R B O R B P u b l i s h / L i n k / R e t r e i v e ( W W W ) B r o w s e r W e b A P e e r t o P e e r T h r e e t i e r R e m o t e D a t a b a s e a c c e s s W o r k F l o w / A g e n t s A A A A D a t a B a s e O R B O R B O R B O R B O R B u b l i s h / S u b s c r i b e AP A O R B H O R B N e t w o r k A O R B Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Issue 5 - Reuse of Services R e a s o n s f o r n o t r e u s i n g s e r v i c e s d e s U y l e d i W D o m a i n I n t e r f a c e s I n e f f i c i e n t s t n e v E M a n u f a c t u r i n g W r o n g f u n c t i o n a l i t y o r s t r u c t u r e g n i m a N T e l e c o m D o e s n o t s c a l e g n i d a r T N o t i f i c a t i o n O b s o l e t e & s n o i t c a s n a r T y c n e r r u c n o C T o p o l o g y P o s s i b l e R e l a t i o n s h i p s b e t w e e n s e r v i c e s ( d o e s n ' t u s e , u s e ) N o t i f i c a t i o n E v e n t s T r a d i n g e m i T & y t i r u c e S e l c y c e f i L d e s U y l e d i W t o N s n o i t c e l l o C N a m i n g n o i t a z i l a n r e t x E P r o p e r t i e s g n i s n e c i L Q u e r y e c n e t s i s r e P T o p o l o g y R e l a t i o n s h i p s M e s s a g i n g S t r e a m s E l e c t r o n i c C o m m e r c e F i n a n c i a l H e a l t h C a r e O b j e c t A n a l y s i s a n d D e s i g n s e i t r e p o r P y r e u Q s p i h s n o i t a l e R E v e n t s H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 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 Profiles and Conformance Embedded ORBs H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97 Issue 7 - Interworking C o m / C O R B A M I D L v i e w o f C O R B A O b j e c t C O R B A I D L v i e w o f I I O P C O M C O R B AO b j e c t C O M O b j e c t D C O M T r a n s a c t i o n C O R B A C l i e n t I I O P T r a n s a c t i o n a l I n f o C O R B A O b j e c t X A T r a n s a c t i o n C O R B A T r a n s a c t i o n M a n a g e r I n t e r d o m a i n C o m m u n i c a t i o n ( e . g . K e r b e r o s / S S L ) S e c u r i t y I n t e r w o r k i n g ? M S S e c u r i t y / C O R B A S e c u r i t y H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H A d m i n i s t r a t o r D a t a A A B a s e O R B O R B O R B Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 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 H Research Issues in CORBA Peter de Jong Hewlett-Packard Usenix 8/12/97