Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
M450
Contents
Introduction to Sample project description 1 2
Acknowledgement 2
The sample project is organised and presented in a way which would make a
plausible submission for TMA 01. Different approaches to presentation have
their own strengths and weaknesses in the light of the chosen project topic. We
want you to think carefully about the best way in which to present your own
project. Making reference to the assessment criteria for TMA 01 will also help.
Acknowledgement
The course team would like to thank Jeff Allen for his contribution.
M450 Sample project description 1 page 3 of 12
2 Problem description
Portable/mobile devices play an increasing role in new Internet applications.
Many of these devices need to download service related information when they
connect to a network. One model for portable dynamic service provision that is
‘on-demand’ and ‘personalised’ is for a server to charge for service provision
based upon some criteria, such as current demand or other aspects of mobile
context such as place, time, etc. One way to implement this model is for the
user of the portable device to configure their client so that it automatically
negotiates with the server for provision based upon the users’ own criteria,
such as cost, but also possibly including urgency.
This project aims to develop a portable software package that can be used to
download information over the Internet to a remote device where the
downloading is preceded by negotiation over the cost of the connection and
other details of the service.
The package will be developed in such a way that it will contain sub-systems of
reusable components. The package will be implemented in Java and these
sub-systems will be Java classes that can be easily integrated into larger
systems.
3 Project scope
There are a number of different aspects of this problem that could form the
basis of a project. One possibility would be a user-centred study to determine
the criteria people would wish to use when configuring their negotiating client.
A related study could take an information design perspective to develop the
user interface to the negotiation system. The problem of enabling devices to
negotiate automatically is not very well understood and there appear to be a
large number of approaches proposed, so another aspect of the problem is
developing the software that undertakes the negotiation. And, of course, there
is the task of developing the infrastructural software that allows mobile devices
to communicate and exchange information. Undertaking a project that tackles
all of these different aspects of the problem is not feasible for a number of
reasons, mainly time.
I propose to scope the project so that it addresses just two of the elements
above. This project will focus upon:
developing the software that undertakes the negotiation, and
developing the infrastructural communications software.
I have chosen these for a couple of main reasons:
It seems to me that the two are linked; in order to implement the first, I need to
have the infrastructure in place.
I am familiar with the task of developing the communications software and so I
can build directly upon my earlier studies. In particular, some of the code I
developed as part of my assignment to implement a simple client–server
system can be reused if I remove the elements that were specific to the
application required for that course.
M450 Sample project description 1 page 4 of 12
Developing the negotiation software is a fairly open-ended task. I can start with
a simple approach to negotiation and, time permitting, can then look at more
sophisticated approaches. As long as I make good initial progress, I’ll always
be able to call a halt, having been through one prototyping cycle.
I decided against the options which would have required me to involve users
as this would have made the project very heavily dependent on the co-
operation of others (without the users, it would be difficult to make any
subsequent progress).
Having decided to scope the project in this way, the final output or deliverable
from the practical work will be software that allows a mobile client to
communicate and exchange information with a server so that they can
automatically negotiate the provision of a mobile service and then initiate that
service.
5 Project life-cycle
The two distinct parts of the project seem to deserve different approaches.
Having developed an application very similar to the client–server
communication system for one of my earlier courses, I know I can reuse much
of what I did there and I have a high degree of confidence that this will be
straightforward. Accordingly, an approach that was more elaborate than the
classic Waterfall model would overly complicate matters. (Of course, there may
be a need to make a few iterations back and forth between stages, but there
seems no need to plan for these.)
M450 Sample project description 1 page 6 of 12
The task of developing a negotiation system is much less clearly defined and it
is largely new territory. That said, on the basis of the small amount of reading
I’ve done at this stage, it feels as though it should be possible to develop a
basic approach to negotiation as a first step and then to look at more complex
negotiation protocols after this. This suggests developing an initial prototype
which is then iteratively developed.
Having scoped the project so that it didn’t focus on users, the user-centred life-
cycles don’t really fit well. The Star model gives prominence to evaluation,
which would fit, but once the basic negotiation protocol is developed, there is
no real need to revisit requirements, task analysis, etc. The ID model seems
better fitted to situations where one is trying to minimise the gap between a
design and what a user wants from a demonstration system, which at this
stage, is not the motivation for iterating over a number of alternative
negotiation protocols (although that might come later when users are involved).
An incremental project life-cycle involves developing and then extending a
basic system, adding features/functionality as one goes. This seems a good
way to consider how the two major sub-systems can be developed: first the
communication system, then the negotiation system. In this instance, the
groundwork for the negotiation system requires finding, reading and
comprehending some research articles or texts on computer-based
negotiation. This can be done at the same time as developing the
communication system. There is probably scope for running more parts of the
two sub-tasks in parallel, but getting the first out of the way at the earliest stage
will give me at least one project deliverable, just in case things go wrong later
on.
In light of the above, I propose to combine two project life-cycles, using a
Waterfall approach for the first task and switching to an iterative prototyping
approach for the second development phase.
A draft schedule has been developed (Appendix 1).
6 Resources
No additional software or hardware is needed beyond the standard course
hardware and software packages supplied by the OU for my previous courses.
7 Initial literature
The following provide support material for the communications software:
Comer, D.E. (2000) Internetworking with TCP/IP Vol.1: Principles, Protocols,
and Architecture, 4th edn, Prentice Hall, ISBN 0130183806.
Hughes, M., Shoffner, M. and Hamner, D. (1999) Java Network Programming,
2nd edn, Manning, ISBN 188477749X.
http://www.omg.org (Accessed 1 December 2007). Website of the Object
Management Group – contains links to UML pages.
http://www.faqs.org/rfcs (Accessed 1 December 2007). A source of RFCs and
other Internet-related documents.
I am using the text Internetworking with TCP/IP Vol.1: Principles, Protocols,
and Architecture as a primary source of information relating to the Internet and
the various standard protocols that are used. This text provides coverage not
only of the protocols themselves but also examples of how these protocols can
be implemented. The advantage of this text is that it covers not only the
standard Internet protocols but also the use of the Java networking and I/O
APIs.
M450 Sample project description 1 page 7 of 12
This text has given me a good understanding of the IP transport protocols TCP
and UDP. I will need this understanding of how the UDP protocol is used for
my project. I will get insights into the techniques that can be used by studying
the protocols such as Finger DNS and HTTP that are discussed in this book.
When I come to the implementation stage of the project I expect the practical
approach adopted here will be very useful in helping me develop a robust
application.
So far, my starting point for looking at negotiation is:
Faratin, P., Sierra, C. and Jennings, N.R. (1997) ‘Negotiation decision
functions for autonomous agents’, Int. J. of Robotics and Autonomous
Systems, 24(3–4): 159–182.
This gives a good introduction to basic agent negotiation. The more advanced
material in this paper is beyond what I expect to be able to incorporate into the
project.
9 Problems
I have encountered no specific problems at this stage. My main problem is
likely to be with interpreting some of the mathematics used to describe the
negotiation protocols in the Faratin paper.
10 Feedback
At this stage, I mainly need general feedback about whether the work I’ve
proposed is sufficient to pass the course.
I would appreciate any pointers to specific textbooks or papers that I should be
sure to look at in respect of negotiation.
My job might get in the way of completing TMA 02 on time and so I want to
signal that I may need to request an extension if I haven’t been able to
complete it a week ahead of schedule.
M450 Sample project description 1 page 8 of 12
3 TMA01 X X
5 TMA02 X X X
7 TMA 03 X X X
8 ECA X X X X X X X X
Draft ECA X X X X
Submit ECA X (Spar
9 Epilogue
9.1 Implement and evaluate addditional negotiation protocols X X X X
M450 Sample project description 1 page 9 of 12
import java.net.*;
import java.io.*;
import java.util.*;
thePortNumber = aPortNumber;
try {
catch (IOException e) {}
//This code section to be modified to handle the negotiation offers from the client
System.out.println("From client : " + clientString);
StringTokenizer st = new StringTokenizer(clientString,"*");
request = st.nextToken();
if (request.equals("MethodRequest")) this.someMethod(clientString.substring(4));
//etc.
catch (IOException e) {}
} while (!request.equals("LOG"));
this.postToClient("GoodBye…");
}
//The following method will formulate server responses
public void someMethod(String s) {
this.postToClient("This is the result of first method…");
}
pw.println(s);
is = theSocket.getInputStream();
br = new BufferedReader(isr);
os = theSocket.getOutputStream();
pw = new PrintWriter(os,true);
}
M450 Sample project description 1 page 12 of 12
catch (IOException e) {}
catch (IOException e) {}
[End of Appendix 2]