13: CORBA Flashcards
what is CORBA?
a distributed object middleware
- a variation on RPC in which the endpoints represent objects with state, methods etc.
- extends the OO paradigm to the distributed systems realm
cross-language
stable
robust
heavyweight
a widely adopted standard
a standard way for ORBs to work together - not a standard way to build ones.
language neutral, CORBA forces interoperability, not
implementation commonality
ORBS can use private, efficient
protocol between themselves as long as they can also interoperate with
other ORBs using the standard protocol
makes interactions location-transparant
what is an ORB?
an object request broker will match requests to target objects, handling the transfer of data and other data. provides the abstraction of remote objects being called locally.
how are CORBA objects identified
they predate the web, so they use an Interoperable Object Reference (IOR). basically a URI for a CORBA object.
IORs are persistent, once created, they’re
assumed to always refer to the same object
what is a stub and a skeleton?
a stub is created in the client’s address
space and language to represent the
remote object
a skeleton in the server’s
address space and language Convert parameters etc into
server-side programming
language and make local call
how do we describe the interface?
using IDL - ● Distinct from any particular language
An IDL compiler takes an IDL interface and
generates stubs and skeletons
bindings exist for all major languarges
how do objects and values differ?
objects have state and indentity, values dont have state and dont have to be shared
describe the issues that arise when binding IDL into host languages?
the language neutrality means that not all types may
be available in all languages
● …and may not be easy to encode in a way that
programmers will like
● What happens in languages like C that have neither
objects nor exceptions???
● …but for which it might be really desirable to have
access to functions over the network
what is object faulting? why?
analogous to page faulting in VM
Would we want to retain all bank accounts in the
memory of some server, all the time?
● Clearly not very robust, or very scalable
● Better to create objects in memory as they’re needed
This process is called an object fault
● Requests for objects the OA doesn’t know about
● Call user-supplied code to create the object
● Requires that server can create object
given its name
retrieve object from stable storage, given its name. use that data to create an object.
common to use IOR as primary key in database
what are DII and DSI?
Dynamic Skeleton Interface (DSI): service a request
server-side without creating an object
● Dynamic Invocation Interface (DII): create a request
to an object without a stub
Especially useful for dynamic languages like
Perl – but handy in other ways too
● Make calls to objects for which you don’t have an
IDL fle (e.g., the remote object’s method signature
is not known at compile time
Location transparency?
An object’s location is irrelevant to how we interact
with it
what is CDR?Q
● Representation of IDL types on the wire
what is an any type?
An IDL type that carries a value, whose type is
uncommitted and can be determined at run-time