The Framework - 52North/IlwisCore GitHub Wiki
###OVERVIEW OF THE SYSTEM The objective of the ILWIS NG is to create a framework that allows a seamless integration between heterogeneous data sources and processing sources. The framework will allow us to create applications that are largely independent of the format/nature of the underlying data containers or processing sources. Particularly we are thinking about:
- Scripting environment for accessing and manipulating GIS data containers in a more “database” like way (probably anchored in Python).
- Desktop environment for integrating remote and local sources of data and processing
- Geo - Processing engine in a web server environment.
- Exploration of P2P, distributed processing. The secondary objective is to create a UI toolbox to facilitate an easy way to create a user interface for applications using ILWIS NG . Since the advent of mobile devices the concepts of UI design has seen a lot of movement after being fairly static for the last 10 years. This is an interesting area of exploration
###ROLES
- Processing server. A role for ILWIS will be as a processing server for computational intensive tasks. Ilwis has then the task for scheduling and executing the algorithm(s). If the algorithms allows it, the algorithm will be scheduled over multiple cores and potential multiple machines. The processing server is of course accessible from both desktop and browser environments. This is typically a case were data sources will be somewhat heterogeneous as standardization is progressing but certainly not omni present. In this context one could also look at GPU integration (CUDA, as prime platform there) though this platform dependent (NVDIA). The processing server is able to run in real time modus of offline modus.
- Desktop application. The traditional role of ILWIS is of course the desktop application. At the moment this is generating the most revenue (projects) and it is expected that this will continue for the next years. Apart from pure functionality (connectivity to local/remote data and algorithms) a client must also have a well-designed user interface. In this respect ILWIS NG desktop could play a useful role(due to its connectivity) in opening up FOSS projects that have limited user interface.
- Scripting & programming ILWIS must also be able to play the role of programmatic tool-box to expose its functionality to other programming environments like Python and Java(both client as server side). In this role one can see ILWIS offering its own functionality as well as (through) ILWIS access to other (external) processing that doesn’t offer an easy to use interface by itself.
- Mobile The impact of mobile devices will continue to grow in the coming years. With this comes the need to be able to get data and processing from sources based in the cloud. ILWIS NG must be prepared for this. In this case one could think of tailored apps for specific problem domains. It is possible to deploy Ilwis NG based apps on all major mobile platforms as they all accept C++ as native language.