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