This week, we will have one blog post by each of this year’s Google Summer of Code students presenting their project and themselves. First off is Khalid – enjoy!
The current web application for the 52° North Web Processing Service (WPS) admin is very inflexible and highly coupled. Functions and modules are implemented directly into the presentation elements, making it difficult to add new modules and maintain the code. In addition, the interface is limited and somewhat outdated and new functions are desired. This Google Summer of Code project aims to change that.
The project aims to achieve three goals. The first is to simplify and improve code maintenance and modification for the application developers. To achieve this, a new, flexible, and modularized web application for WPS admin will be developed using the Spring framework. Figure 1 shows the initial architecture for the new web application.
The second goal is to help back end developers, who create their own modules to be used with WPS, to implement property management functionality and to add their own settings pages to the administrative back end. To achieve this, a configuration API will be developed that facilitates the lookup and retrieval of configuration parameters and values.
The third goal is to serve the end user (the WPS administrator) by providing a redesigned, modern, and intuitive interface, taking into consideration issues such as style, navigation, input validation, feedback and help.
The current use cases of the WPS administrator will be supported in the new application, and new ones that improve the existing functionalities shall be added. At this preliminary stage, I have divided the desired behavior into three different, although somewhat related, levels of concerns.
This level includes the main functionalities and use cases. These include, but are not limited to, accessing, configuring, and adding processes, generators, and parsers. Other functionalities include configuring server parameters, exporting and importing configuration, and uploading processes and scripts.
This level includes supporting functionality such as accessing and editing service provider information, viewing logs and editing log settings, and adjusting user and access settings.
- Test client
The last level is implementing and improving the existing test client, where administrators can perform various tests on their WPS installation.
The development effort will cover these three prioritized levels. Further division and prioritization will be conducted as the development progresses and the status is reassessed.
One of the challenges of this project is the dependency between WPS modules and the current web admin module. For example, many classes expect to find (or save) configuration files, schema files, and description files in certain locations in the current web admin module which would inevitably change in the new web application. Therefore, care must be taken to trace, refactor, and test the affected code and ensure correct behavior with the new web application.
The result of this project is a new web application that satisfies the three goals identified, serving the application authority, back end developer, and end user, and at the same time covering the three levels of concerns which are configuration, settings, and the test client.
My name is Khalid Alqinyah. I’m a third year computer science student. Follow me and the development progress on my GitHub: https://github.com/khalidq