Vous êtes sur la page 1sur 30

Lecture #3: CORBA

CPSC608: Distributed Database Systems


January 25, 2000

Hoh In
Texas A&M University

1
CPSC608: CORBA Copyright © 2000 Hoh In
Goals of Today
• Understand
– CORBA technology: What, Why, How
• Discuss
– Issues of CORBA: promises and problems

2
CPSC608: CORBA Copyright © 2000 Hoh In
Contents
• Review
• What is CORBA?
• Why CORBA?
• How does CORBA work?
• What are considerations for using CORBA?
• Beyond CORBA

3
CPSC608: CORBA Copyright © 2000 Hoh In
What is CORBA?

• CORBA is a standard for object interoperability


– Support for different languages
– Support for different platforms
– Communications over the network
– Additional services (e.g., security)
• CORBA is defined by the OMG (Object Management
Group)
– Begin since 1989
– CORBA 1 was in 1991
– Now, toward to CORBA 3
– More information: http://www.omg.org
• CORBA is a component of OMA (Object
Management Architecture)
4 * Source: Adapted from www.expede.com
CPSC608: CORBA Copyright © 2000 Hoh In
What is the OMA?
• Object Model and Interfaces (e.g., Domain Interfaces,
Application Interfaces)
– Defines what a CORBA object is
• Common Object Request Broker Architecture (CORBA)
– Standard for an ORB (Object Request Broker)
– Defines the IIOP (Internet Inter-ORB Protocol) -- the standard for
communication
– Defines the Language interfaces and tools
• Object Services -- common services
– Core services required to develop distributed architectures
– Naming -- allowing clients to find objects based on names
– Trading -- allowing clients to find objects based on their properties
– Others: Security, Transactions, event notification, ...
• Common Facilities -- high-level services
– e.g., Distributed Document Component Facility (DDCF) -- OpenDoc
• Allowing for the presentation and interchange of objects based on a
document model facilitating the linking of a spreadsheet object into a
report document

5
CPSC608: CORBA Copyright © 2000 Hoh In
Some ORBs
• CORBA Software
(http://www.infosys.tuwien.ac.at/Research/Corba/software.html)
– Orbix (IONA)
– VisiBroker (Inprise)
– ObjectBroker (BEA)
– PowerBroker (Expersoft)
– ORB Plus (HP)
– ORBacus (Object-Oriented Concepts, Inc.)
– NEO/JavaIDL (SunSoft)

6
CPSC608: CORBA Copyright © 2000 Hoh In
Contents
• Review
• What is CORBA?
• Why CORBA?
• How does CORBA work?
• What are considerations for using CORBA?
• Beyond CORBA

7
CPSC608: CORBA Copyright © 2000 Hoh In
Why CORBA?
• Need to share information and resources
within and across diverse computing
enterprises
– CORBA is a Middleware Standard
– CORBA is a “Software Bus”
– CORBA is a Distributed Object Architecture

8 * Source: Adapted from www.expede.com


CPSC608: CORBA Copyright © 2000 Hoh In
CORBA is a Middleware Standard
• Before CORBA, middleware was dominated by proprietary tools
• CORBA provides a standard that allows you to:
– Develop applications using a common basis
– Change CORBA products with minimal rewriting of code
– Make objects running on different CORBA products interoperate
– Integrate third-party products that respect the standard
• CORBA is evolving to standardize other types of middleware

CORBA Object Message-Oriented


Middleware Middleware (MOM)

Object Transaction
Management
Transaction
Monitors

9 * Source: Java-CORBA E. Arch., expede.com


CPSC608: CORBA Copyright © 2000 Hoh In
CORBA and the “Software Bus”
• A standard architecture enabling you to plug components into
– Support different languages and platforms
– Connects everything up in a single architecture
• A basis for delivering reusable components
– A CORBA component can be accessed from any client technology
– A CORBA components has a clearly defined interface

10 * Source: Java-CORBA E. Arch., expede.com


CPSC608: CORBA Copyright © 2000 Hoh In
CORBA and Distributed Architectures

11 * Source: Java-CORBA E. Arch., expede.com


CPSC608: CORBA Copyright © 2000 Hoh In
Contents
• Review
• What is CORBA?
• Why CORBA?
• How does CORBA work?
• What are considerations for using CORBA?
• Beyond CORBA

12
CPSC608: CORBA Copyright © 2000 Hoh In
How Does CORBA Work?
• Step 1: Write a specification for each object using IDL (Interface
Definition Language)
• Step 2: Compile the IDL to generate client stub and server
skeleton code
• Step 3: Write the client application code.
• Step 4: Write the server object code.
• Step 5: Compile the client and server code
• Step 6. Start the server
• Step 7: Run the client application

13 * Source: Visibroker Progammer’s Guide


CPSC608: CORBA Copyright © 2000 Hoh In
1
2

3
4

14 * Source: Visibroker Progammer’s Guide


CPSC608: CORBA Copyright © 2000 Hoh In
15 * Source: Visibroker Progammer’s Guide
CPSC608: CORBA Copyright © 2000 Hoh In
16 * Source: Visibroker Progammer’s Guide
CPSC608: CORBA Copyright © 2000 Hoh In
IDL
• Interface
Definition
Language
• IDL is a purely
declarative
language
– Looks like a Java
Interface
– Independent from
any programming
language
• Basic Types
– No int type
– No pointer type

17 * Source: expede.com and Supplemental Reading #19-1


CPSC608: CORBA Copyright © 2000 Hoh In
VisiBroker Demo

18
CPSC608: CORBA Copyright © 2000 Hoh In
Contents
• Review
• What is CORBA?
• Why CORBA?
• How does CORBA work?
• What are considerations for using CORBA?
• Beyond CORBA

19
CPSC608: CORBA Copyright © 2000 Hoh In
What are considerations for using
CORBA?

• Security
• Performance
• Fault-Tolerance
• Scalability

20
CPSC608: CORBA Copyright © 2000 Hoh In
How to Analyze Security in CORBA?
• The CORBA Security Service specification
– Identification and authentication: verify who they claim to be
– Authorization and access control: decide whether an object
can be accessed or not
– Security auditing: make users accountable for security
– Security of communication between objects
– Non-repudiation
• The CORBA ORB-SSL integration specification
• The CORBA/Firewall specification
– TCP/IP firewalls
– SOCKS v5.0 firewalls
– GIP proxy firewalls

21
CPSC608: CORBA Copyright © 2000 Hoh In
How to Analyze Performance in CORBA?

• Factors having a strong influence on the performance


of a distributed system
– The number of remote method invocations that are made
within the system
– The amount of data that is transferred with each remote
method invocation
– The marshalling costs of the different IDL data types used by
the system

22
CPSC608: CORBA Copyright © 2000 Hoh In
Fault Tolerance in CORBA
• Failures caused by factors as diverse as:
– Loss of processing resources - hardware or software
– Loss of logical and physical communication paths -- network
and connectivity failures
– Both transient and permanent failures in the application itself
• Approaches
– Prevention is better than cure
– Accept the fact that processes don’t stay up for ever
– Complex heterogeneous applications are combined from
many tool components
• CORBA Support
– Cold replication model
– Warm standby model
– Hot standby model
23
CPSC608: CORBA Copyright © 2000 Hoh In
Cold Replication Model

24 * source: Reference [3}


CPSC608: CORBA Copyright © 2000 Hoh In
Warm Standby Model

25 * source: Reference [3}


CPSC608: CORBA Copyright © 2000 Hoh In
Hot Standby Model

26 * source: Reference [3}


CPSC608: CORBA Copyright © 2000 Hoh In
Scalability Issues in CORBA
• If a large number of client application is concurrently
executed using any CORBA system, consider:
– Will this single host have enough processing power to
support all these clients?
– Our manager server is a single point of failure. How will our
system handle a software or hardware fault?
– Our manager server process is limited to approximately
1000 connections. How will the remaining clients be able to
connect to this process?
• Approaches
– Replicating severs
– Closing connections
– Load balancing (e.g., using application partitioning or
replication mechanisms)
27
CPSC608: CORBA Copyright © 2000 Hoh In
Contents
• Review
• What is CORBA?
• Why CORBA?
• How does CORBA work?
• What are considerations for using CORBA?
• Beyond CORBA

28
CPSC608: CORBA Copyright © 2000 Hoh In
Beyond CORBA
• Unnecessary Heavy
Services
– Some application don’t
need all services that
CORBA provides. They
may degrade performance
without any gains.
– A solution approach:
Container = objects +
selected services
• Scalability of ORB
– global Naming protocol
– complex marshalling

29 * Source: Enterprise CORBA


CPSC608: CORBA Copyright © 2000 Hoh In
&25%$
‡ 3URYLGHVZHOOGHILQHGSDFNDJLQJIRUSURGXFLQJ
FRPSRQHQWVTXDOLW\RIVHUYLFHPHVVDJLQJ
DQGRWKHUWHFKQRORJLHV
‡ )XOO-DYDDQG,QWHUQHWVXSSRUW
– -DYDSRUWDELOLW\;0/LQWHJUDWLRQ
‡ 4XDOLW\RI6HUYLFHPDQDJHPHQW
– 0HVVDJLQJ5HDOWLPH6PDOOIRRWSULQW
‡ 'LVWULEXWHG&RPSRQHQW0RGHO
– &RPSRQHQWEDVHGGHYHORSPHQWVFULSWLQJ
30 * Source: Soley, OMG
CPSC608: CORBA Copyright © 2000 Hoh In