Unit 11 Beyond Java Flashcards

1
Q

What are some examples of indirection (indirect interaction or interaction via an intermediary) ?

A

(Part 2) Some examples:

  • the Java Virtual Machine
  • accessing data using getters and setters instead of directly
  • RPC hiding of details of socket communication from programmers, reliveing them of dealing with some of the low-level details of distributed communications
  • proxies in RMI
  • message-oriented middleware
  • ORB
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a component?

A

(Part 2) 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

What is a component model?

A

(Part 2) 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

What are the chief advantages of using components and middleware?

A

(Part 2) Components are composable, and support ineroperability. Interoperability is also supported by middleware, which provides a layer of indirection and hence also looser coupling, which leads to greater scalability and mor robustness. This can be at the cost of some efficiency.

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

What is an IDL?

A

(Part 2) 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

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

A

(Part 2) 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 asynchrnous communication to recover from errors.

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

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

A

(Part 2) 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

What is the purpose of the OMG Object Model?

A

(Part 3) The OMG Object Model defines a standard platform- an implementation-independent 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

What does CORBA stand for and what is its purpose?

A

(Part 3) 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

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

A

(Part 3) 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

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

A

(Part 3) 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

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

A

(Part 3) 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-languag-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

What is language mapping and what is it used for?

A

(Part 3) For each programming language, it must be possible to create and 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

What is the purpose of a CORBA interface?

A

(Part 3) 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

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

A

(Part 3) An interface repository holds the specifications of object interfaces written in the IDL. An interface respository 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

What is meant by saying that an ORB is middleware?

A

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

17
Q

What os tje function of an ORB?

A

(Part 3) An ORB provides facilities, similar to those of the Java RMI, that makes it possible for application programs to send messages to and to receive messages from remote objects iin 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

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

A

(Part 3) 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

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

A

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

20
Q

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

A

(Part 3) Some similarities:

  • Both RMI and CORBA implement an object model
  • Both provide location and communication transparency
  • Both use the mechanism of stubs and skeletons to communicate a call and to marshal arguments
  • The ORB provides a service similar to the RMI registry, where references to objects can be obtained by clients who wish to use them
  • Both CORBA and RMI support passing objects by value as well as passing objects by reference. (This means both RMI and CORBA enable the sending of code to remote systems)
21
Q

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

A

(Part 3) Some differences:

  • RMI is a programming technology. CORBA is more of an integration technology, occupying the space between programs, as it is a specification for interaction between objects
  • RMI is portable to any platform that supports a JVM. CORBA runs on any platform with a CORBA-compliant implementation
  • CORBA is a much more extensive system thatn RMI, and offers additional services commonly required by distributed systems as well as domain-specific services.
  • RMI could be considered to be a homogeneous middleware, in that it is purely Java based. A major advantage of CORBA is that an implementation is potentially language-independent (heterogeneous) and this provides an ability to integrate legacy services
  • In RMI the interface is necessarily in Java, while in CORBA the interface is defined using the language-independent CORBA IDL
  • RMI is a synchronous form of communication, while CORBA provides for more varied forms of interaction
22
Q

Are web services object oriented?

A

(Part 5) 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.

23
Q

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

A

(Part 6) Similarities include:

  • Application to enterprise systems and support for enterprise requirement such as transaction processing, web services, security, SOAP/XML and CORBA
  • Both rely on an intermediate layer above the OS: The Java RUntime and the CLR for .NET. This has speed implications for both platforms. Both rely on a virtual machine
  • Both rely on an intermediate language: bytecode is executed by the JVM within the Java Runtime, and the CLI in the case of .NET
24
Q

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

A

(Part 6) Differences include:

  • Homogeneous application language in Java EE (unless external support is used such as CORBA) versus heterogeneous implementation language in .NET through the CIL. This may make .NET easier to use to integrate with legacy systems
  • Java EE is a specification with many implementations, whereas .NET is a Microsoft framework primarily for Windows platforms. There are various IDEs for Java, while .NET is limited mainly to Microsoft Visual Studio.
  • There is an open-source version of Java EE while .NET applies a stricter license. vendor independence is seen as an advantage of Java EE