Telecommunications software and multimedia 
laboratory


TML / Studies / T-110.300 / Homeworks

2001: Homework assignment 6 model answer

Notice! The role of this model answer is instructional only. Everything that is asked in the assignment may not be covered in detail. The model answer gives you the content of the answer and an idea of what it should be. The things that are important in the grading of the homework have been emphasized. Please, inform the course staff if you think that there is a mistake in the model answer!

Assignment: Network application programming and Protocol design (total 19 points)

1. Please discuss the differences of OMG CORBA and Java RMI in an essay. Your essay should contain and explain the following terms (6 points)

In the essay your write, you should properly organize the following terms, and give the relationship between each other.

  1. RMI (Remote Method Invocation)
    Java RMI is Sun Microsystems' technology for enabling developers to generate distributed applications to invoke a method on an object existing either in the same or a remote machine.
  2. JRMP (Java Remote Method Protocol)
    JRMP is the transport mechanism for communication between objects in the java language in different address spaces. Used in Java RMI.
  3. JVM (Java Virtual Machine)
    JVM is an "abstract machine". JVM is an interpreter that converts Java bytecode into machine language and executes it. Platform independence for Java is carried out by providing a JVM for various platforms. When using Java RMI, code can be transferred between different JVMs.
  4. CORBA (Common Object Request Broker Architecture)
    CORBA has been developed by OMG (Object Management Group). It is an architecture for distributed systems, especially large ones. The goal is to provide communication between distributed objects independently of different programming languages and platforms. IDL (Interface Definition Language) is used for creating interfaces for different systems.
  5. ONC-RPC (Open Network Computing-Remote Procedure Call)
    ONC-RPC is a mechanism based on Open Network Computing Arthitecture that allows client to execute code that resides in a server, regardless of whether the code is executed locally or remotely.
  6. IIOP (Internet Inter-ORB Protocol)
    IIOP is the standard communication protocol between ORBs. It ensures true interoperability among products from numerous vendors, thus enabling CORBA application to be more vendor-independent. IIOP applies only to networks based on TCP/IP.
  7. ORB (Object Request Broker)
    ORBs act as the middleware to establish a Client-Server relationship between objects. A client send request to an ORB through an IDL stub and the ORB forwards the request to a server through an IDL skeleton. By using IIOP, ORBs can make remote object invocation transparent for the user.

RMI vs. CORBA:

RMI
CORBA
Based on Java language
(although RMI-IIOP brings compatibility with CORBA)
Multi-language support
One language -> simple implementation
Multi-language -> IDL required for interfaces
Lighter and easier
Good scalability

Each term is 0,5 point (up to 3,5 points). 1,5 points come from language etc and 1 point from the comparison of RMI and CORBA. In the essay you should explain each term and it's relationship to the others.

2. Please describe briefly each item. Tell the benefits and drawbacks of each (6 points):

  1. ONC RPC
  2. XML-RPC
  3. Java RMI
  4. Microsoft COM

Each term is 1,5 point.
You should describe characteristics, benefits and drawbacks of each term for full points.

Term Characteristics Benefits Drawbacks
ONC RPC
  1. Client-server implementation
  2. Used on TCP/IP or UDP/IP
  3. Handles bit conversion
  1. Stable in client-server applications
  2. Transport Protocol independent
  3. Makes it possible to pass data structures between programs regardless of the bits handling of different CPUs
  4. Widely used and well-proven  (NFS for example)
  1. No object support
XML-RPC
  1. Function-oriented
  2. Based on XML
  3. Uses HTTP
  1. Robust in client-server applications
  2. Platform independent
  1. Inefficiency
  2. Lack of features such as security, session management, etc
Java RMI
  1. Based on Java
  2. Uses JRMP as the transport protocol
  1. Layer architecture - easy to make changes
  2. Defines behavior and the implementation separately
  3. Object serialization
  1. Java-only solution
Microsoft COM
(and DCOM)
  1. Allows applications and services to interact directly
  2. Defines a network standard for interaction on multiple platforms
  3. Defines a binary standard to allow interoperability on any operating system or hardware platform
  4. Only the client of an object is allowed to access the object interfaces
  1. Language independence
  2. Location of the component is transparent
  1. High overhead with RPC

3. Protocol Design (6 points)

GSMP v1.1 is defined in RFC1987. The protocol has a part called "adjacency protocol". The adjacency protocol has a problem, since it fails in certain situation. Find out the problem and show how the protocol can be improved to get rid of the problem.

Problem: Consider a situation in which two entities at both ends of a link have already entered ESTAB state. In reality the link is a physical connection. If the connection is suddenly cut down, synchronization is lost. In GSMP v1.1 specification none of the entities at the ends of the broken link will notice the loss of synchronization. This is because of all the ACK messages are lost.

An example for a solution:

We can define two timers. One is for regenerating the ACK message when it is lost in the link. The other timer should be set longer than the first one. When all the ACK messages are lost in the link due to the failure in the connection, the second timer will expire. The entity will notice that something is wrong with the link and it will be forced to change its ESTAB state to other states. This is mentioned in the GSMP v2.0 (RFC 2297).

4. Feedback (1 point)


This page is maintained by the assistants of tlark , course newsgroup opinnot.tik.tlark
The page has last been updated 23.11.2001.
URL: http://www.tcm.hut.fi/Studies/T-110.300/2001/Homeworks/assignment_6.html