1 / 39

CORBA_1/001

CORBA: Concept and Programming (1). CS 547/CS490-003 Advanced Network Programming. Department of Computer Science Southern Illinois University Edwardsville Spring, 2010 Dr. Hiroshi Fujinoki E-mail: hfujino@siue.edu. CORBA_1/001. CS 547/CS490-003 Advanced Network Programming.

ronald
Download Presentation

CORBA_1/001

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. CORBA: Concept and Programming (1) CS 547/CS490-003 Advanced Network Programming Department of Computer Science Southern Illinois University Edwardsville Spring, 2010 Dr. Hiroshi Fujinoki E-mail: hfujino@siue.edu CORBA_1/001

  2. CS 547/CS490-003 Advanced Network Programming Presentation Agenda • 1. What is CORBA? • 2. Advantages in CORBA • 3. Comparisons with other distributed application techniques (Socket and RPC) • 4. Key Concepts in CORBA: Portability and Inter-Operability • 5. Example of CORBA: Distributed Object System developed by American Air CORBA_1/002

  3. What is “CORBA”? CORBA is a foundation where distributed objects (objects = functions) are identified, called and expected to perform specific tasks. Concept Program Request Request Reply Function B Function A CORBA Broker CS 547/CS490-003 Advanced Network Programming • CORBA = Common Object Request Broker Architecture CORBA_1/003

  4. CORBA Concept CS 547/CS490-003 Advanced Network Programming - Essentially a client/server model architecture - “Server” is not a “host”, but object Operation (function) + interface - Object = - Objects distributed all over the Internet - A client can freely call distributed objects to perform some tasks - CORBA defines the specification of such infrastructure CORBA_1/004

  5. Difference from RPC Concept of “objects” in CORBA CS 547/CS490-003 Advanced Network Programming • Objects provide services ( functions) • A client makes requests to an object for a specific service • A client does not need to know where an object is • A client does not need to know how it is implemented • All what a client knows are: operation (service) and interface (signature) • Objects could be persistent or non-persistent • A client can be an object CORBA_1/005

  6. Static Object Invocations Two ways to call distributed objects in CORBA We assume DOI Dynamic Object Invocations CS 547/CS490-003 Advanced Network Programming In CORBA, a client can use distributed objects in the following two ways: • Distributed objects are discovered during compile time • Interface to distributed objects are established during compile time • Objects are discovered during runtime • Interface to distributed objects are established during run time CORBA_1/006

  7. What is “CORBA” (continued) ? CS 547/CS490-003 Advanced Network Programming • CORBA is not a product, but a specification for ORB (Object Request Broker) • Major products for CORBA*1: • Orbix • OmniCORBA (one of free CORBA distributions) • Sun’s Java IDL • ILU (The Inter-language Unification project from XEROX) • CorbaPlus for C++ • CORBA specification is established and managed by OMG • (OMG = Object Management Group*2) *1: A list of CORBA products available at *2: OMG Web Site: CORBA_1/007

  8. What is “CORBA” (continued) ? CS 547/CS490-003 Advanced Network Programming • Non-CORBA ORBs • RMI (Remote Method Invocation) that comes with JDK 1.1 • HORB (Hirano ORB) an ORB developed for JAVA • Can connect to CORBA, but not CORBA ORB These are ORBs (Object Request Brokers) that are not CORBA-compliant CORBA_1/008

  9. Advantages in CORBA CS 547/CS490-003 Advanced Network Programming • Realize “distributed computing” • Functions (or programs) written for different hardware • architecture can cooperate (by CORBA Marshaling) • Functions (or programs) written for different OS can cooperate • Functions written in different programming languages • can cooperate (by CORBA IDL) • A calling program does not have to know where called • objects are located (Locational Transparency) CORBA_1/009

  10. Advantages in CORBA (continued) Because it’s high-level Each object can be located in different remote host computer! CS 547/CS490-003 Advanced Network Programming • Distribute program is easy to develop • Flexibility (modularized components can be replaced by another module) • Distributed system without worrying about networks • “Object Oriented” concept extended to even “network” • Objects are distributed in a network. Client just combines them. CORBA_1/010

  11. Function A in JAVA Programming Language Independence Program Request Request Reply Program in C++ Function B Function A CORBA Broker Function B in SmallTalk CS 547/CS490-003 Advanced Network Programming CORBA_1/011

  12. Function A in JAVA Programming Language Independence Program Request Request Reply Program in C++ Function B Function A CORBA Broker Function B in SmallTalk CS 547/CS490-003 Advanced Network Programming CORBA_1/011

  13. Locational Transparency Program Request Request Reply Function B Function A CORBA Broker CS 547/CS490-003 Advanced Network Programming • A calling program sends a request only to CORBA Broker • A CORBA Broker forwards the request to appropriate CORBA client • Called functions reply to the CORBA Broker CORBA_1/012

  14. Comparisons with other distributed technologies Issues Socket RPC CORBA CS 547/CS490-003 Advanced Network Programming            Distributed computing Hardware Independence       OS Independence   Language Independence   Locational Transparency     Abstraction Level   Overhead  CORBA_1/013

  15. Two Design Concept in CORBA Portability and Inter-Operability Portability Inter-Operability CS 547/CS490-003 Advanced Network Programming The two design concepts in CORBA = Program and functions written for a CORBA product can be used in an environment with another CORBA product without any modification = Program and functions written for a CORBA product will work with another CORBA product without any modification CORBA_1/014

  16. Portability CORBA Broker A CORBA Broker B Program Program Function B Function A Function B Function A CS 547/CS490-003 Advanced Network Programming CORBA_1/015

  17. Inter-Operability Router CORBA Broker A CORBA Broker B Program Program Function B Function A Function D Function C CS 547/CS490-003 Advanced Network Programming CORBA_1/016

  18. More advantages in CORBA CORBA Broker does this for your client CORBA IDL (Interface Definition Language) does that for you CORBA is implemented even above application-level protocol CS 547/CS490-003 Advanced Network Programming CORBA is the highest-level network programming • You don’t have to know how you can locate an object • Your CORBA client does not have to worry about data format • Your CORBA client does not perform network data transmission CORBA_1/017

  19. Another Advantage in CORBA CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP ??? ??? ??? TCP/IP CS 547/CS490-003 Advanced Network Programming = CORBA Connectivity through HTTP CORBA_1/018

  20. CORBA Connectivity through HTTP CS 547/CS490-003 Advanced Network Programming Example: Integrated Information System by American Airlines (www.aa.com) CORBA_1/019

  21. Before CORBA was introduced Company’s Web Site Web Server Web Contents To the Internet Server Server Database Database Seat Reservation Service Customer Profile Service CS 547/CS490-003 Advanced Network Programming CORBA_1/020

  22. CS 547/CS490-003 Advanced Network Programming Without CORBA …. 1. Since each system is independent, different systems must be used for each different task 2. Applications in different systems can not easily communicate each other 3. Hardware resources are not efficiently utilized (results of the above two) CORBA_1/021

  23. Before CORBA was introduced Web Server Web Contents Server Server Database Database Customer (or user) Customer Profile Service Seat Reservation Service CS 547/CS490-003 Advanced Network Programming Company’s Web Site To the Internet CORBA_1/020

  24. After CORBA was introduced Web Server Web Contents Server Server Database Database CORBA Broker Customer Profile Service Seat Reservation Service CS 547/CS490-003 Advanced Network Programming Company’s Web Site To the Internet CORBA_1/022

  25. Most Important ! CS 547/CS490-003 Advanced Network Programming With CORBA …. 1. User logged in from the company’s web site can access to reservation system. 2. Although each system is independent, different systems can communicate each other 3. Since the company does not have to set up Internet connection for each system, resources can be shared by many systems 4. The company does not have to rebuild all the existing systems to integrate them (low cost system) CORBA_1/023

  26. After CORBA was introduced Web Server Web Contents Customer To the Internet Server Server Database Database CORBA Broker Customer Profile Service Seat Reservation Service CS 547/CS490-003 Advanced Network Programming Company’s Web Site CORBA_1/024

  27. Application Program Key Components in CORBA CORBA Components (4) SOAP (2) GIOP (3) IIOP (1) ORB Other NW Protocols CS 547/CS490-003 Advanced Network Programming CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP IIOP ??? ??? ??? TCP/IP CORBA_1/025

  28. CORBA Application CS 547/CS490-003 Advanced Network Programming CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP ??? ??? ??? TCP/IP CORBA_1/026

  29. CORBA Application CS 547/CS490-003 Advanced Network Programming • A CORBA application is a CORBA client • A CORBA application performs some complex task by • combining (i.e., using) multiple CORBA objects • A CORBA application just specifies: • What operation needs to be performed • Name of an object • A CORBA application is a network application program that does not • perform any network-related functions in itself CORBA_1/027

  30. ORB (Object Request Broker) CS 547/CS490-003 Advanced Network Programming CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP ??? ??? ??? TCP/IP CORBA_1/028

  31. ORB (Object Request Broker) Three essential functions in an ORB CS 547/CS490-003 Advanced Network Programming • An ORB is the core component in CORBA • An ORB facilitates communicationbetween broker and objects • Locate remote objects • Perform data marshaling • Return values to/from remote objects • An ORB is a distributed software component CORBA_1/029

  32. GIOP (General Inter-ORB Protocol) CS 547/CS490-003 Advanced Network Programming CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP ??? ??? ??? TCP/IP CORBA_1/031

  33. GIOP (General Inter-ORB Protocol) CS 547/CS490-003 Advanced Network Programming • GIOP is a common language for CORBA ORB • When two different CORBA-compliant ORBs talk to each other, • they have to use GIOP • All CORBA ORB have different internal design, but they all speak • a common CORBA ORB language (that is GIOP) CORBA_1/032

  34. SOAP (Simple Object Access Protocol CS 547/CS490-003 Advanced Network Programming CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP ??? ??? ??? TCP/IP CORBA_1/034

  35. SOAP (Simple Object Access Protocol) CS 547/CS490-003 Advanced Network Programming • A CORBA protocol that bridges ORB and HTTP • Request HTML documents on behalf of ORB • A web server can be used as an object in CORBA CORBA_1/034

  36. IIOP (Internet Inter-ORB Protocol) CS 547/CS490-003 Advanced Network Programming CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP ??? ??? ??? TCP/IP CORBA_1/035

  37. IIOP (Internet Inter-ORB Protocol) CS 547/CS490-003 Advanced Network Programming • IIOP is pronounced “eye-op” • Establish a communication channel between two ORBs • through the Internet (TCP/IP) • Hide all TCP/IP details (IP address, port#, IP error handling, etc) • from CORBA application • First implemented in CORBA 2.0 in December 1994 • (IIOP was not supported by CORBA 1.X) • IIOP is a specialization of GIOP CORBA_1/036

  38. IIOP (Internet Inter-ORB Protocol) IIOP CS 547/CS490-003 Advanced Network Programming GIOP IIOP is a special GIOP CORBA_1/037

  39. Host B CORBA Networking Model Host A TCP/IP Network IIOP ORB IIOP IIOP Host E ORB Host C ORB CIOP Database Database Host D CIOP Object Object Object DCE Network ORB ORB Client Client Client Client ORB CIOP CS 547/CS490-003 Advanced Network Programming CORBA_1/038

More Related