CPE 4001 Distributed Programming using Java
Assignment Two
Semester 2, 2005
Introduction
This assignment is basically the same as assignment one, but with a change of middleware.
Instead of using sockets, you should use ONC, RMI, CORBA, SOAP, Jini or JXTA (or a combination).
Most of the work you have done for assignment one should be reusable for this
assignment - as long as your design and classes for assignment one follow O/O principles.
The Chapstick shopping centre is one of Australia's largest shopping
centres and hosts a large number of shops of different kinds.
Chapstick already has an extensive Web site, but is contemplating
moving towards an online system to support ecommerce activities.
The shopping centre has exactly the same requirements as for the first assignment,
but now wishes to experiment with other middleware technologies.
This assignment has graded levels. The simplest version will be given
a Pass if done satisfactorily, but to gain higher grades more features
will have to be added.
Details
You will need to implement a client and one or more servers,
using a protocol at a higher level than sockets.
This could be ONC, RMI, CORBA, SOAP, JXTA or some other protocol.
The client will need to be able to make the following requests
to the Chapstick central server:
-
What types of shops are currently in the shopping mall?
The response should be a list such as:
Men's apparel, Giftware, Toys/Games, etc.
-
For a given shop type, what shops of that type are in the
mall?
-
Where is a particular shop located? This should be in
"map coordinates" such as F15
-
For a particular shop, what is its catalogue?
The result should be a list of items sold by the shop
and the price of each item
-
Buy an item from a shop. The purchase request should
include some credit card information
-
Errors should be handled appropriately
Deliverables
You should hand in the following
-
A statement of which level of assessment you are aiming at,
and the parts you have completed
-
A specification of all messages between client and server(s).
This specification should include enough details about message
formats that someone else could implement a client or server
(in any language, not just Java) to handle the messages
-
Finite state transition diagrams where appropriate
-
UML diagrams showing the classes and their linkages
-
Hard-copy listings of all classes for each client and server
-
Electronic copies of all classes for each client and server
-
Instructions about how to install and run each client and server
You will be asked to demonstrate your system during a tutorial.
Assignment levels
General comments:
-
Whatever level you reached for the first assignment can be reused
for the second assignment
-
The quality of classes and of code for methods will be assessed.
Comments about poor design or poor implementation from
the first assignment will be expected to be fixed
-
The levels discussed below are based on different middleware
technologies. If you want to add one of the optional topics
from assignment one which was not present in your
version of assignment one, then you can add this to
assignment two and increase the level that way.
Note that some of these options will be hard: e.g. adding encryption
to CORBA is not easy, and even harder for RMI.
Pass level
The following will get a Pass level
-
Use of Sun's RPC/ONC for communication between one of the clients
and servers; or
-
Use of CORBA for communication between one of the clients
and servers; or
-
Use of RMI for communication between one of the clients
and servers; or
-
Use of SOAP for communication between one of the clients
and servers
Extra level
The specification given above will gain a Pass grade if done
satisfactorily. Higher grades will be given
on completion of additional functionality.
Each additional function will gain an extra grade
(to a maximum of HD). The
additional functions are
-
Multiple middleware
-
Each extra type of middleware used for communication between any client/server
pair will gain an extra level. For example, if you have used RMI between
a client and ChapStick, then use of CORBA between ChapStick and one
shop and SOAP between ChapStick and another shop will count
as two extra levels
-
Mixing middleware
-
Mixing two middleware technologies on one communication leg, such as:
-
RMI and CORBA, with a bridge between them; or
-
Using RMI over IIOP, with RMI on one side and CORBA on the
other
Each mix will gain an extra level
-
Jini
-
Using Jini for dynamic service discovery will gain an extra level
-
JXTA
-
Using JXTA for peer-to-peer will gain an extra level
Group size
This assignment (and the next one) may be done in a group
of two.
While you may do this assignment individually, the marking
scheme will be the same as for a group of two.
You are encouraged to work in a group, with each partner doing
one side each of the protocol, in order to discover the value
of clear protocol specification.
Due date
The assignment is due by 4pm, Friday 21 October, the end of week 13.
You can actually hand it in by 12 noon, Monday 24 October, but if you
do that then you accept that this intrusion into the exam period is by your
own choice.
Jan Newmarch (http://jan.newmarch.name)
jan@newmarch.name
Last modified: Sun Jul 24 18:22:59 EST 2005
Copyright ©Jan Newmarch
Copyright © Jan Newmarch, Monash University, 2007
This work is licensed under a
Creative Commons License
The moral right of Jan Newmarch to be identified as the author of this page has been asserted.