Lect4 Corba
Lect4 Corba
2
Heterogeneity in Distributed Systems
Distributed applications are typically heterogeneous:
different hardware: mainframes, workstations, PCs, servers, etc.;
different software: UNIX, MS Windows, IBM OS/2, Real-time OSs,
etc.;
unconventional devices: teller machines, telephone switches,
robots, manufacturing systems, etc.;
diverse networks and protocols: Ethernet, FDDI, ATM, TCP/IP,
Novell Netware, etc.
Why?
Different hardware/software solutions are considered to be optimal
for different parts of the system.
Different users who have to interact are deciding for different
hardware/software solutions/vendors.
Legacy systems.
3
Middleware
A key component of a heterogeneous distributed client-server
environment is middleware.
Middleware is a set of services that enable applications and end
users to interact with each other across a heterogeneous
distributed system.
Middleware software resides above the network and below the
application software.
4
Middleware
Middleware should make aspects of a heterogeneous system, here
the network, transparent to the applications and end users
Users and applications should be able to perform the same
operations across the network that they can perform locally.
Middleware should hide the details of computer hardware, OS,
software components across networks.
Different kind of software qualifies, to certain extent, as middleware,
for example:
File-transfer packages (FTP) and email;
Web browsers;
CORBA
Remark: Middleware software also exists for other purposes than network abstraction,
e.g. for system-independent message passing (MPI), portable CPU performance counter
access (PAPI), etc., see TDDC78. Also the Java Virtual Machine (JVM) is a middleware.
CORBA also abstracts from the client/server programming language, not only the network.
Indeed, an important use case of CORBA is accessing legacy software/hardware systems.
5
Objects in Distributed Systems
A distributed application can be viewed as a collection of objects
(user interfaces, databases, application modules, customers).
Object:
• data surrounded by code;
• has its own attributes and methods
which define the behavior of the object;
• objects can be clients, servers, or both.
Object broker:
• allows objects to find each other and
interact over a network;
• they are the backbone of the
distributed system.
Object services:
• allow to create, name, move, copy,
store, delete, restore, and manage
objects.
6
RMI: Objects in Distributed Systems
7
RMI: Objects in Distributed Systems
Distributed Application
8
RMI: Objects in Distributed Systems
Middleware
10
RMI: Objects in Distributed Systems
13
CORBA
Object Management Group (OMG):
a non-profit industry consortium formed in 1989 with the goal to
develop, adopt, and promote standards for the development of
distributed heterogeneous applications.
https://www.omg.org/
One of the main achievements of OMG is the specification of a
Common Object Request Broker Architecture (CORBA).
16
CORBA
Components of a CORBA environment:
Interface Repository
• Provides a representation of interfaces for all server objects in the system. It
corresponds to the server objects’ IDL specification.
• Clients can access the repository to learn about server objects, the types of
operations which can be invoked and the corresponding parameters.
• This is used for dynamic invocation of objects.
17
CORBA
Components of a CORBA environment:
Implementation Repository
• Stores implementation details for the objects implementing each interface
• the main information is a mapping from the server object’s name to the binary
file name which implements the respective service;
• the implementation repository is used by the object adapter (generic server-side
entry point) to solve an incoming call and activate the right method (via a skeleton).
18
The Object Request Broker (ORB)
The following services, and others, have been specified in the OMG CORBA standard
(however, some products only implement part of them):
CORBA Naming and Trader Services:
The basic way an object reference is generated is at creation of the (server) object when the
reference is returned (to the client calling the constructor).
An interoperable object reference contains, in particular, the referenced object’s server IP
address and port number
Can be passed around to other nodes and called from there
Object references can be stored together with associated information (e.g. names and
properties).
The naming service allows clients to find objects based on names.
The trader service allows clients to find objects based on properties.
CORBA Transaction Management Service: provides two-phase commit coordination among
recoverable components using transactions.
CORBA Concurrency Control Service: provides a lock manager that can acquire and free
locks for transactions or threads.
CORBA Security Service: protects components from unauthorized users;
it provides authentication, access control lists, confidentiality, etc.
CORBA Time Service: provides interfaces for synchronizing time;
provides operations for defining and managing time-triggered events.
22
Inter-ORB Architecture
Implementations of ORBs differ from vendor to vendor
how do we solve interaction between objects
running on different CORBA implementations?
Node 1 Node 2