230 likes | 365 Views
CS551 Object Oriented Middleware (III) (Chap. 5 of EDO). Yugi Lee STB #555 (816) 235-5932 yugi@cstp.umkc.edu www.cstp.umkc.edu/~yugi. Outline. Heterogeneous Programming Languages Common Object Model Common Interface Definition Language Programming Language Bindings
E N D
CS551 Object Oriented Middleware (III)(Chap. 5 of EDO) Yugi Lee STB #555 (816) 235-5932 yugi@cstp.umkc.edu www.cstp.umkc.edu/~yugi CS551 - Lecture 14
Outline • Heterogeneous Programming Languages • Common Object Model • Common Interface Definition Language • Programming Language Bindings • Heterogeneous Middleware • Interoperability • Interworking • Heterogeneous Data Representation • Standardized Data Representation • Application-Level Transport Protocol • Virtual Machines CS551 - Lecture 14
Heterogeneous Programming Languages • Components of distributed systems are written in different programming languages • Programming languages may or may not have their own object model • Object models largely vary • Differences need to be overcome in order to facilitate integration CS551 - Lecture 14
Why do we use an IDL? PL PL PL PL 1 2 1 2 PL PL PL IDL PL 6 3 6 3 PL PL PL PL 5 4 5 4 CS551 - Lecture 14
Smalltalk C++ Ada-95 IDL Common Object Model Java C Cobol CORBA Programming Language Bindings CS551 - Lecture 14
Interface Definition Language • Language for expressing all concepts of the middleware’s object model, e.g., OMG object model and OMG/IDL; MIDL • Object Model: Meta-model for middleware’s type system • defines meaning of object type, operation, attribute, request, exception, subtyping, • defines general enough for mappings to most programming languages • Interface Definition Language (IDL) • Programming-language independent • Bindings to different programming languages are needed • not computationally complete CS551 - Lecture 14
Heterogeneous Middleware Component Component Component Component Component Component Component Middleware Vendor A Middleware Vendor B Middleware Vendor C CS551 - Lecture 14
Often Different Middleware Required • Middleware implementations differ: • Available programming language bindings • Available services & facilities • Supported hardware platforms • Supported operating system platforms • Separation of security domains. • Large scale distributed systems. CS551 - Lecture 14
Middleware Integration Component Component Component Component Component Component Component OLE ORB ORB ORB RPC Bridge Bridge CS551 - Lecture 14
Client Obj. Imp. Client Obj. Imp. DII DSI ORB Core ORB Core ORB Core ORB Core Bridging • request-level:built on top of middleware (client and server surrogate objects) • in-line: built into the middleware (interoperability protocol) CS551 - Lecture 14
Middleware Integration • Interoperability: the ability of different implementations of the same middleware standard to work together. • Definition of interaction protocols • General Inter-ORB Protocol(GIOP), Internet Inter-ORB Protocol (IIOP), etc. • Interworking: how different middleware standards are integrated. • Mapping of different object models • Definition of interaction protocols CS551 - Lecture 14
Interoperability vs. Interworking • Interoperability between different implementations of the same standard (CORBA, DCE) • Interworking between different standards • CORBA « COM/DCOM/OLE • The order to resolve: • First CORBA interoperability • Then COM/CORBA interworking CS551 - Lecture 14
Interoperable Object References • Object references are opaque for clients. • Vendors choose reference implementation. • Reference cannot be interchanged. • Interoperable object references are used to present references to ORBs in their native format. CS551 - Lecture 14
Interoperability Protocols • General Inter-ORB Protocol (GIOP) • Define seven messages: Request, Reply, Locate Request, Locate Reply, Cancel request, Close Connection, Message Error • Common Data Representation is defined as part of GIOP for Mapping of IDL data types to transport byte stream • Internet Inter-ORB Protocol (IIOP): • Maps GIOP to TCP/IP. • Provides operations to open and close TCP/IP connections. • Is required from ORBs for CORBA compliance. • Supported by Netscape Communicator. CS551 - Lecture 14
Motivation for Interworking • COM and OLE/Automation are widely used for desktop integration of PC applications • Compound documents • Visual Basic / Visual C++ User Interfaces. • OMG has no support for compound documents and user interfaces yet. • COM and OLE do not support distribution. • CORBA was designed to support distribution. CS551 - Lecture 14
COM-CORBA Interworking • Goal: provide transparent bi-directional mapping between COM/OLE and CORBA. • Adopted specification was submitted by consortium of 11 ORB vendors. • Most of them have COM/OLE Interworking implemented in their ORB products. • Adopted in March 1996. • Microsoft decided not to be involved in this effort but rather pursue its own distributed object environment (DCOM). CS551 - Lecture 14
Interworking Architecture Object System A Object System B Bridge objref in A objref in B target object implementation in B View in A of target in B CS551 - Lecture 14
Interworking Mapping Issues • Interface Mapping • Interface Composition Mapping • Identity Mapping • Mapping Invertibility CS551 - Lecture 14
Heterogeneous Data Representation • Hosts of client and server might use different data representation formats. • Different Character Encoding Schemes • Different programming languages use different data representations, e.g. Character string “abc” in Pascal or C++: CS551 - Lecture 14
Motivation • Data representations have to be converted between heterogeneous client and server objects • Conversion should be transparent to application developer • Conversion may be done in • Presentation layer implementation • Application layer implementation • Platform implementation CS551 - Lecture 14
Approaches • Presentation Layer: Standardized Data Representation • Sun’s External Data Representation (XDR) • OMG’s Common Data Representation (CDR) • OpenGroup’s Network Data Representation (NDR) • Application layer: use of abstract syntax notation e.g • ASN.1 • XML & SGML • STEP • Platform: Virtual Machine, e.g. Java CS551 - Lecture 14
Key Points • Heterogeneity can arise in • Programming Language • Middleware • Data Representation • CORBA and COM resolve programming language heterogeneity by using an IDL with programming language bindings • Middleware heterogeneity is resolved by interworking and interoperability specifications CS551 - Lecture 14
Key Points • Data Heterogeneity may be resolved by • Standardized Data Representations • CDR, NDR, XDR • Application-level Data Structuring • XML, SGML, Step, ASN.1 • Virtual Machines • JVM CS551 - Lecture 14