1 / 23

CS551 Object Oriented Middleware (III) (Chap. 5 of EDO)

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

Download Presentation

CS551 Object Oriented Middleware (III) (Chap. 5 of EDO)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. Smalltalk C++ Ada-95 IDL Common Object Model Java C Cobol CORBA Programming Language Bindings CS551 - Lecture 14

  6. 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

  7. Heterogeneous Middleware Component Component Component Component Component Component Component Middleware Vendor A Middleware Vendor B Middleware Vendor C CS551 - Lecture 14

  8. 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

  9. Middleware Integration Component Component Component Component Component Component Component OLE ORB ORB ORB RPC Bridge Bridge CS551 - Lecture 14

  10. 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

  11. 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

  12. 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

  13. 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

  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

  15. 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

  16. 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

  17. 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

  18. Interworking Mapping Issues • Interface Mapping • Interface Composition Mapping • Identity Mapping • Mapping Invertibility CS551 - Lecture 14

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

More Related