In this Google Summer of Code 2020 project, we propose to build a new Web Processing Service (WPS) client named wps-js-ng written in the Angular 9 framework with module classes written in typescript. It will be an extension to the 52°North’s wps-js project, which provides encoding and parsing of the basic WPS Requests/Response (such as GetCapabilities, DescribeProcess, Execute, GetStatus and GetResult). This new client will conform to the latest OGC WPS 2.0 standards and is mainly targeted for clients using Angular programming language, who can simply import the library and have all the model classes and modules generated by running simple angular commands.
The main benefit of building the new client in Angular is to have Custom Class Types for the several WPS objects (such as Capabilities). The current implementation of wps-js is inherently missing type information since JavaScript is not a strongly typed programming language. Hence, a user of wps-js library will have no insight into the type of Objects.
This issue will be alleviated in the new wps-js-ng application we propose to build. The model classes of the new application will be able to hold the type information and handle complex datatypes since it is written in Typescript, therefore any user of the new Angular client would have the perfect knowledge of the object types returned. Another benefit is the ease of use of the new client by the users building WPS applications in Angular, as they will be able to reuse most components pre-built in this client.
The class diagram below demonstrates the 5 main classes and their tentative type information.
Furthermore, being an extension to the wps-js project, the new Angular client will be able to use the existing functionality developed for wps-js. There are two different ways to achieve the integration of wps-js: by either importing the js-min file or rewriting the whole logic in Typescript. Depending on the available time, we will decide which strategy is better.
Finally, we would also add the typings files (d.ts) for the wps-js project. The main intention behind adding the typings file is to achieve type inference for Javascript files as well. Current 52°North’s wps-js is written in Javascript with no type inference, and it is always a good practice to have typings files when integrating Javascript with Typescript.
About me: My name is Karan Singh and I am a Master’s student in Computer Science at York University, Toronto. I am more than excited to be a part of 52°North and I am going to be mentored by Benjamin Pross who is an expert in OGC and GeoInformatics. If you have any suggestions or feedback about my project, please feel free to contact me at .
Leave a Reply