Note: Nikos' thesis received the highest average mark for an MSc dissertation in 2008
Principal goal: building/extending a Java-based framework for decentralised Web services orchestration.
Service-oriented architectures are a popular architectural paradigm for building software applications from a number of loosely coupled distributed services. Although the concept of service-oriented architectures is not a new one, this paradigm has seen wide spread adoption through the Web services approach, which has a suite of simple standards (XML, WSDL, SOAP etc.) to facilitate service interoperability.
Web services in their vanilla form provide a simple solution to a simple problem, things become more complex when a group of services need to coordinate together to achieve a shared task or goal. This coordination is often achieved through the use of workflow technologies, which provide the glue (control and data-flow) between distributed services.
Currently most workflow research has focused on designing and implementing service orchestrations, where all message exchange takes place through a centralised server. This is a valid solution for scenarios found in e-Commerce where relatively small quantities of intermediate data are exchanged between services, but makes less sense when dealing with large quantities of intermediate data as are commonly found in the sciences.
This project will build upon a framework developed at the National e-Science Centre which allows proxies to exchange data in a peer-to-peer fashion, this means that data does not have to be passed through a centralised orchestration engine, as is the case with most current frameworks.
The project will involve building/extending the Java-based framework for decentralised Web services orchestration, deploying and testing it on a live platform (most likely PlanetLab www.planet-lab.org) with live data. Our approach will be evaluated through performance tests against existing architectures. There is scope for flexibility within this project and I am looking for an enthusiastic, motivated student with the following skills:
Required skills: - Excellent working knowledge of Java - Knowledge and interest in highly Distributed systems - Good written skills, there is scope for publication Desirable skills: - Knowledge of Web service toolkits, Apache Axis or Sun project Glassfish - Software engineering tools and methodology, Unit testing, CVS, Agile development.