Distributed Systems
Assignment 4
Questions
1 Remote objects built with Java RMI are usually registered in a so
called "registry". Why?
This is so as to provide a centralised directory that can be used by:
◦ The server to register services.
◦ The client to look up services provided by Remote Objects.
This allows for the remote objects to be more easily found by the client.
2. List several ways to invoke a method on a remote object
CORBA
Java RMI
Sun RPC
3. Explain the concept of an object reference in a distributed system.
Why do remote objects need one and who creates it?
An object reference is an identifier that allows objects to be accessed through it.
In a distributed system, a remote object reference can be used throughout the whole
distributed system to allow access to a particular unique remote object.
Remote objects need an object reference in order to allow for faster identification and access
to the object.
It is created by the Remote Reference Module when the remote object is first identified.
4. What is the purpose of an Interface Definition Language? Why does
CORBA not just use the Java interface construct?
An Interface Definition Language (IDL) defines the capabilities available from a distributed
service; and a common set of data types used to interact with those services.
CORBA is unable to use the Java Interface Construct since it needs to be open to supporting
all other languages as well; and using the Java Interface might limit it to be accessible to
Java programs alone.
5. How does a server know that one of his remote objects provided by
him is no longer used by clients and can be collected? How does Java
RMI handle this problem and what alternatives are there?
Through the use of the remote object table; which contains entries for remote objects held
by processes.
Java RMI handles this problem through its own Java RMI Registry.
◦ It ideally holds a list of remote objects that the client can’t find through other means.
◦ This ensures that for objects that are not directly needed, they can still be accessed
indirectly through other objects.
6. Activation is a technology used to load remote objects into a server
on demand (i.e. when a client invokes a method on this object. Explain
why this is much better than pre-loading remote objects?
Pre-loading would use much more memory due to keeping all the available remote objects
preloaded
Pre-loading is inefficient, as it also preloads objects that may not be used by the client,
which uses more resources.
7. What is the role of middleware in a distributed system?
It allows for data transmission and access to remote services in a heterogeneous distributed
system.
By doing so, it also masks the distributed and heterogeneous nature of the system through
abstraction.
8. Scalability can be achieved by applying different techniques. What
are these techniques?
Scaling Up
◦ This is where better and more capable hardware is bought for and used by the system.
◦ This could include bigger server, better processing power, more memory etc.
◦ This is in order to make it available to a greater number of concurrent users
Scaling Out
◦ This is the addition of more computers into the distributed system in order to allow for
the load to be shared between more computers.
◦ It is much cheaper compared to scaling up
9. Describe precisely what is meant by a scalable system
This is a system that can be adapted to a wider audience of users than what the system was
initially intended for.
References
Aleksandar Seovic, Falco, M., & Peralta, P. (2010). Oracle Coherence 3.5 : create internet-
scale applications using Oracle’s high-performance data grid. Birmingham, U.K.: Packt
Pub.
Appelbaum, R., Claudio, L., Watson, J., Cline, M., & Girou, M. (1997, October 27).
Interface Definition Language (IDL) [UPDATED!]. Retrieved from www4.cs.fau.de
website: https://www4.cs.fau.de/~geier/corba-faq/idl.html
Campeau, A. (n.d.). Untitled. Retrieved July 23, 2020, from www.sce.carleton.ca website:
http://www.sce.carleton.ca/netmanage/simulator/rmi/RMIExplanation.htm
Lecture 17 Inter-process Communication and Distributed Objects (I) Sections 4.3-4.4,
Chapter 5. (2009). Retrieved from https://courses.engr.illinois.edu/cs425/fa2009/L17tmp-
indy.pdf
Morgan, B. (1997, October 1). CORBA meets Java. Retrieved July 23, 2020, from
InfoWorld website: https://www.infoworld.com/article/2077037/corba-meets-java.html
Performance and scalability techniques 101 - Web application performance and scalability.
(n.d.). Retrieved July 23, 2020, from www.webforefront.com website:
https://www.webforefront.com/performance/scaling101.html
Questions and answers on distributed systems. (n.d.). Retrieved July 23, 2020, from kriha.de
website: https://kriha.de/docs/exercises/distributedsystems/qanda/qanda.html