Unit 11 Flashcards

1
Q

Exercise 1

What other examples of indirection can you think of that we have encountered in this course already?

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

SAQ 1 - A

What is a component?

A

A component is a composable software element conforming to a component model.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

SAQ 1 - B

What is a component model?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

SAQ 1 - C

What are the chief advantages of using components and middleware?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

SAQ 2 - A

What is an IDL?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

SAQ 2 - B

Which is typically more robust: synchronous or asynchronous communication? Why?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

SAQ 2 - C

What is the relationship between middleware and the tightness of coupling between components?

A

Middleware promotes loose coupling in that components communicate via the middleware and need not use component-dependent means of message passing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

SAQ 3 - A

What is the purpose of the OMG Object Model?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

SAQ 3 - B

What does CORBA stand for and what is its purpose?

A

CORBA stands for Common Object Request Broker Architecture. It is a specification for a CORBA-compliant ORB, which routes communications between objects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

SAQ 3 - C

In what ways are the common services, CORBA services and domain services in the OMA Reference Model different from each other?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SAQ 3 - D

In the OMG Object Model, what are operations used for?

A

Operations are equivalent to methods; they enable the querying or changing of a CORBA object’s state and the execution of business logic.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

SAQ 4 - A

What is the OMG IDL and why does CORBA support it?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

SAQ 4 - B

What is a language mapping and what is it used for?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

SAQ 4 - C

What is the purpose of a CORBA interface?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

SAQ 4 - D

What is an interface repository and what is it used for?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

SAQ 5 - A

What is meant by saying that an ORB is middleware?

A

An ORB is known as middleware because it is located between a client and the servant objects it wishes to invoke.

17
Q

SAQ 5 - B

What is the function of an ORB?

A

An ORB provides facilities, similar to those of the Java RMI, that make it possible for application programs to send messages to and to receive messages from remote objects in the same way as for local objects and regardless of implementation language. The ORB locates a server able to provide a service and communicates with the server, returning results to the client if necessary.

18
Q

SAQ 6 - A

What is the purpose of the CORBA services specification in the OMA model?

A

The CORBA services specification specifies various services that are of particular use in distributed systems, such as support for naming, transactions and security.

19
Q

SAQ 6 - B

What is a trading service and how does it differ from a naming service?

A

A trading service allows clients to find objects based on the services they provide, whereas a naming service allows the lookup of objects based on their names.

20
Q

Exercise 3

What are the main similarities and differences between the Java RMI and a system based on CORBA?

A

See Unit 11 - Page 27

21
Q

SAQ 7

Are web services object oriented?

A

As web services are SOAP-based, they are not object oriented, although object-oriented wrappers can be used to encapsulate the services. They are better described as service oriented or message oriented.

22
Q

Exercise 4

What are the key differences and similarities between .NET and Java EE?

A

See Unit 11 - Page 53