Friday 11 September 2009

uCampus version 0.5 is released


We have now released version 0.5 of uCampus. This is a major update for the platform which now supports the visualisation of the taxonomy of spaces. This has been an important requirement in the project plan from the outset and so it is wonderful to finally see it realised after so much developmental effort. We hope that this feature will prove to be of significant practical value to our exising user base.

From a development perspective, support for this feature required careful consideration during the analysis and design phases. As is typical of web-applications, integration required work both on the client side and server sides. For the client this meant designing and implementing a simple and consistent user interface component to fit into our client application in a seamless manner without over complicating or cluttering the existing interface. During development, care was taken to ensure that this component integrated well with the platform as a whole and there were no hidden side effects or regression artefacts caused by its addition. Our client is based upon a document-view architecture where there can be multiple views of the same data which all have to be synchronized so that they function in unison.

More development was required to support the taxonomy of spaces on the server side. Our entire platform has been developed under Java, with Enterprise Java being deployed on the server. We approach our web-development following the standard three-tier design pattern for web-applications with presentation, service and data tiers. Consequently, every new feature that we introduce necessitates additions and amendments to each of these tiers. The carefully considered choice of Java at the beginning of the project anticipated this and has allowed us to streamline the development process which does help to simplify the process somewhat. We can benefit from code and object reuse between tiers without the complication of having to concern ourselves with interoperability issues that may have arisen otherwise.

Supporting the new taxonomy meant additions to our xml schema and these also had to be supported in the respective components of the data tier. This required some modification and extension to our existing SAX and DOM parser engines and extension to the objects that they instanced. Once this had been achieved amendments to the service tier could be applied. To service the taxonomy models required upgrading the existing model server. This module manages and controls the serialisation of our models to the client. Care had to be taken to ensure any changes that were made in this area of the code didn't break our existing functionality and some regression testing was undertaken to ensure that this was indeed the case. This was slightly complicated by our server already being live with existing users. Mid-way through the process we also migrated our platform to a new server which meant rotating the server IPs in the client to check it still worked. Finally, support was added in the presentation tier for the client interface and testing of models could proceed.

We now have an important part of the project complete which we hope will open up new development paths for us in the future. We are now able to consider further extensions of our model server module to include a planned X3D manipulation engine which will allow us to perform boolean operations upon our existing model database. This will allow us to enhance the resolution and provide greater control of the models requested by our users. Having provided a sound basis for future expansion, we are looking forward to the next phase of the project.

No comments:

Post a Comment