Unit 11 Flashcards
Exercise 1
What other examples of indirection can you think of that we have encountered in this course already?
Some examples we thought of are:
- The Java Virtual Machine
- Accessing data using setters and getters instead of directly;
- RPC hiding of details of socket communication from programmers, relieving them of dealing with some of the low-level details of distributed communications;
- proxies in RMI;
- message-oriented middleware;
- The ORB. You may have come up with other examples.
SAQ 1 - A
What is a component?
A component is a composable software element conforming to a component model.
SAQ 1 - B
What is a component model?
A component model is a set of standards for the implementation, documentation and deployment of components. For example, a component model may describe the nature of the interface provided by a component and how a component reveals information about itself.
SAQ 1 - C
What are the chief advantages of using components and middleware?
Components are composable, and support interoperability. Interoperability is also supported by middleware, which provides a layer of indirection and hence also looser coupling, which leads to greater scalability and more robustness (sometimes at the cost of some efficiency).
SAQ 2 - A
What is an IDL?
An IDL is a language for describing the interface of a component, such as, for example, a Java interface description, but it also provides mappings to various supported languages, catering for differences in semantics and data types between languages.
SAQ 2 - B
Which is typically more robust: synchronous or asynchronous communication? Why?
Synchronous communication is typically more robust because it involves a ‘handshake’ between the two sides (one side must wait for the other before proceeding) and this provides an opportunity that might not be available in an asynchronous communication to recover from errors.
SAQ 2 - C
What is the relationship between middleware and the tightness of coupling between components?
Middleware promotes loose coupling in that components communicate via the middleware and need not use component-dependent means of message passing.
SAQ 3 - A
What is the purpose of the OMG Object Model?
The OMG Object Model defines a standard platform – an implementationindependent way of specifying the externally visible characteristics of objects, such as their types, operations and interfaces. This means that it supports object invocation by clients on target objects no matter where in a distributed system, or on what type of machine, they are located.
SAQ 3 - B
What does CORBA stand for and what is its purpose?
CORBA stands for Common Object Request Broker Architecture. It is a specification for a CORBA-compliant ORB, which routes communications between objects.
SAQ 3 - C
In what ways are the common services, CORBA services and domain services in the OMA Reference Model different from each other?
The context served by these components differs. Common services are of general use, such as printing and internationalisation. CORBA services support the requirements of distribution, such as a naming service and a transaction service.
Domain services are of direct interest to end-users in particular domains, such as
medical or financial applications.
SAQ 3 - D
In the OMG Object Model, what are operations used for?
Operations are equivalent to methods; they enable the querying or changing of a CORBA object’s state and the execution of business logic.
SAQ 4 - A
What is the OMG IDL and why does CORBA support it?
The OMG IDL is the interface definition language in the OMA for defining the interfaces of objects (i.e. the operations and the types of object) in a manner that is programming-language-independent. Interfaces are defined separately from object implementations. CORBA supports it because it enables the description of services provided by objects written in different programming languages.
SAQ 4 - B
What is a language mapping and what is it used for?
For each programming language, it must be possible to create an IDL interface. A language mapping maps the data types found in the language to the CDR in CORBA. The OMG has standardised mappings for a variety of languages. This provides type safety for operation invocation.
SAQ 4 - C
What is the purpose of a CORBA interface?
An interface describes a CORBA object type and the operations supported by that type of CORBA object. Interfaces also hide object language implementation details, so supporting implementation heterogeneity. Indirectly, interfaces also allow the specification of substitutability of one CORBA type for another and one operation for another.
SAQ 4 - D
What is an interface repository and what is it used for?
An interface repository holds the specifications of object interfaces written in the IDL. An interface repository allows the dynamic discovery of operations provided by objects, given a CORBA object type.