401 likes | 557 Views
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.
E N D
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
CORBA Connectivity through HTTP CS 547/CS490-003 Advanced Network Programming Example: Integrated Information System by American Airlines (www.aa.com) CORBA_1/019
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
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
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
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
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
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
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
CORBA Application CS 547/CS490-003 Advanced Network Programming CORBA Applications ORB (= CORBA Broker) GIOP SOAP ??? IIOP HTTP ??? ??? ??? TCP/IP CORBA_1/026
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
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
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
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
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
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
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
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
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
IIOP (Internet Inter-ORB Protocol) IIOP CS 547/CS490-003 Advanced Network Programming GIOP IIOP is a special GIOP CORBA_1/037
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