Student Projects


  1. Portlet based interface to the Reading campus Condor pool
  2. The University of Reading has a campus-wide Condor pool [1] of ca. 190 desktop machines, providing computational resources to researchers. In order to help new users to take advantage of this facility, it is necessary to create an easy-to-use grahpical client interface.

    The task of this project will be to design, develop, test and deploy a graphical front end in the form of a portlets running on a Web Portal, which users will access to submit and monitor jobs on the pool. The portal will be created using Java servlets and Java Server Pages and will employ JSR-168 [2] compliant portlets that allow components to be easily reused. This work will build upon existing work in the School of Systems Engineering and the Reading e-Science Centre [3].

    Requirements: Java, experience with servlet and JSP programming, on knowledge of portal programming an advantage

    [1] Condor monitoring page: http://www.condor.rdg.ac.uk/, only accessible on-campus
    [2] JSR-168, http://www.jcp.org/en/jsr/detail?id=168
    [3] Reading e-Science Centre, http://www.resc.rdg.ac.uk

  3. Tycho HTTP pipelining
  4. Tycho [1] is a Java-based framework for implementation of an extensible wide-area messaging framework, which also contains a distributed registry for discovering remote service end-points. Tycho helps developers bind together their applications over the wide-area without having to install a myriad of complicated middleware and its services.

    Tycho can use several protocols for wide-area communications including HTTP(S). Currently every message sent by Tycho is sent as a separate HTTP message. In order to increase throughout we wish to optimise the HTTP code to reuse HTTP connections (pipes), open multiple pipes and stream messages down these pipes in parallel. This is similar to a technique used by BitTorrent. This project has a clearly defined deliverable and provides plenty of scope to demonstrate programming skills. The work will contribute back to an ongoing research project and has the potential to lead to a conference research paper.

    Requirements: Java, experience with servlets, and HTTP.

    [1] http://acet.rdg.ac.uk/projects/tycho/

  5. A Tycho hybrid transport handler
  6. Tycho [1] is a Java-based framework for implementation of an extensible wide-area messaging framework, which also contains a distributed registry for discovering remote service endpoints. Tycho helps developers bind together their applications over the wide-area without having to install a myriad of complicated middleware and services.

    Tycho has Transport Handlers, which allow different transport protocols to be used between Tycho components. Currently the Transport Handler supports TCP sockets, HTTP(S) and Internet Relay Chat (IRC). We have benchmarked these implementations and have shown that HTTP offers higher throughput than IRC, but IRC can provide lower latency communications. What we require is a hybrid Transport Handler, which will, chose the optimum protocol to use for messages. The completed project, coupled with our existing work [2] has the potential to be developed into a research paper.

    Requirements: Java, experience with servlets, and HTTP.

    [1] http://acet.rdg.ac.uk/projects/tycho/
    [2] http://acet.rdg.ac.uk/~mjeg/docs/tycho_cluster2006.pdf

  7. Tycho Demonstration Portal
  8. Tycho [1] is a Java-based framework for implementation of an extensible wide-area messaging framework, which also contains a distributed registry for discovering remote service endpoints. Tycho helps developers bind together their applications over the wide-area without having to install a myriad of complicated middleware and services.

    We currently have a live demonstration of Tycho using webcams [2]. The application can be accessed by normal web browser and is written using a combination of PHP and Java. We want to re-make the webcam demo with portlets (JSR 168 compliant) so that we have a pure Java implementation that can be installed in any compliant portal container. This is a good opportunity to learn about portlet technologies, which are becoming the new standard for web-based applications.

    Requirements: Java, experience with servlets, Web portals, portlets, JSPs, AJAX and Taglibs.

    [1] http://acet.rdg.ac.uk/projects/tycho/
    [2] http://acet.rdg.ac.uk/projects/tycho/demos/web/

  9. Generic Realtime Web- based Graphics
  10. Realtime graphics via a Web browser is still a problematic area and often it is easier to use old and trusted technologies, such as Java Applets for this purpose. However, a number of problems can arise with the use of applets, and alternative methods to handle realtime data streams may be more appropriate. This project will investigate the best contemporary means to handle real-time graphics via portlets and portal technologies. Current options include embedding a plugin to enable Quicktime, Realplayer or using Adobe's SVG viewer. The graphics will be available via a standardised portlet that is either JSR-168 or WSRP complaint.

    Requirements: Java, experience with servlets, JSPs, JSTL, graphics, and Web portals will be helpful.

    Useful Links:

  11. Create an XPATH query parser
  12. Tycho [1] is a reference implementation of an extensible wide-area messaging framework, which also contains a distributed registry for discovering endpoints. In Tycho, Producers or Consumers can publish their existence in a directory service known as the Virtual Registry (VR) [2]. Clients query the VR using any Tycho supported query language; currently this based on ANSI-SQL. The aim of this project is add support Xpath [3] in Tycho. This will involve parsing an XPATH query into the generic query format, which Tycho uses internally.

    [1]Tycho, http://dsg.port.ac.uk/projects/tycho/
    [2]Tycho VR, http://dsg.port.ac.uk/projects/tycho/impl/
    [3]Xpath, http://www.w3.org/TR/xpath

    Requirements: Java, experience with servlets, XML and Xpath will be helpful.

  13. MPJ Express: Runtime Evaluation and Enhancement
  14. Modern messaging systems, including the ones based on the MPI standard, provide a runtime system to bootstrap the execution of parallel processes. For example MPICH2 [1] and OpenMPI [2] provide runtime systems called SMPD (Super Multi-Purpose Daemon) and OpenRTE (Open Run-Time Environment), respectively. MPJ Express [3] currently just provides an experiemental runtime.

    This project will evaluate the performance and scalability of these runtime systems. The information and experience gained from this evaluation will be use to improve the MPJ Express runtime.

    [1] MPICH2, http://www-unix.mcs.anl.gov/mpi/mpich
    [2] OpenMPI, http://www.open-mpi.org
    [3] MPJ Express, http://dsg.port.ac.uk/projects/mpj

    Requirements: Java, C, Knowledge of Windows services and UNIX Daemons.

  15. MPJ Express: Collective Communications
  16. Improve the performance of collective communication algorithms in MPJ Express [1]. An important aspect of this project will be a current survey of high performance collective communication algorithms (see [2])

    [1] MPJ Express, http://dsg.port.ac.uk/projects/mpj
    [2] http://navet.ics.hawaii.edu/~casanova/courses/ics691_fall05/papers/mpiperf3.pdf

    Requirements: Java, knowledge of parallel progressing.

  17. MPI-2: New Bindings
  18. This projext will define and implement MPI bindings for C#. We are also interested in evaluating non-Windows CLRs (Common Language Runtime)s like DotGNU [1] and MONO [2].

    [1] The DotGNU Project, http://www.dotgnu.org
    [2] The MONO Project, http://www.mono-project.com

    Requirements: Java, knowledge of MPI would be useful.

    Undergraduate Projects

    A Comparison of Different Peer-to-Peer Systems

    Peer-to-Peer networks, such as BitTorrent provide a way to efficiently distribute content to many users, concurrently. The idea is to compare a number of different P2P protocols, such as Bit Torrent, Gnutella, and eDonkey, when distributing files. The P2P networks should be researched, then installed/deployed, benchmarked and analysed on a cluster. This will provide a deeper understanding of the limitations, performance and workings of peer-to-peer systems.

    A Portlet Radio

    Portals hold a collection of portlet-based Web applications for use by a user community. Audio broadcasts can provide the community with information and entertainment. The portal community should be allowed to upload music to the portal, allow users to listen to each others music, create play-lists from music available on a portal. The portlet should allow the user to play their music through a browser plugin. This portlet will provide a much needed community tool for users and could be used in the Sakai Virtual Research Environment (VRE) project.

  19. Others -- less well defined!