The last days I have been trying to figure out a possible architecture for a GIS web application that we want to create for the PLAN project.
Since I’m just getting into the GIS programming mood, I try to start from scratch, so then I said, ok the first thing we will need is a map, that is basically an image, therefore we will need a source from that image, but wait a second, that image is actually a image of a place around the world, so what if we create a huge picture of the world, an then I just ask to an specific program to give me just the section I need to show to the user.
Then I realized that actually that is the general idea behind Google Maps, Google Earth, yahoo maps, Microsoft virtual earth, etc. But even when that is the main idea behind those systems there are more issues to implement in order to get those systems to work.
Supposing that I have to show to the user an image of a specific place, I will think that my architecture has to implement a image/map handler.
Then I was thinking that the user would like to do some queries on information related to places, that makes me think that some how I will need a source of information for places and a entity (program) that has to take care of the queries process. Even more the user could get the results of the queries as graphics on top of the images that represent places in the world (the big picture of the world).
But then wait a second, that means that a can have a base image of the world, and then I should be able to draw thing on top of that image.
Since the software must run on Internet, I will need programming languages that allow me to create web applications.
From all the mapping technologies that I researched and tested, I really liked Google maps and Google earth. Google maps because the different API’s that they provide for different programming languages, and because the growing developers community around these technologies. Google provide a plug-in for the browser that allows people to run Google earth on a browser. This is fantastic because you have all the power of 3D maps, run KML files and other cool features all in your browser.
However in our project, I have to ensure a fluid communication between geographers, planners and programmer, therefore I should find framework that allows us to interact as efficiently as possible.
The geographers have been working with ESRI technologies as ArcMap. So my next step was to figure out what they (ESRI) could provide to me to implement in my framework. I found out that the have a technology very interesting called ArcGIS Server, actually people in the project tried the software before. Jimmy is one of my colleagues. He got, after many bureaucratic issues, to install an instance of ArcGIS Server for the project.
I personally found a great potential in the FLEX API that the people of ESRI offer for free to use in combination with ArcGIS Servers.
I started to check the possibilities of using FLEX for GIS applications, and without any doubts FLEX is a perfect tool to create RIA.
Even more, ESRI is using FLEX for their projects and they recommend using FLEX to increase the productivity when creating web-based GIS applications.
At this point what I did was to start going around asking for the possibility of installing a development server instance of ArcGIS Server. Once I got it I started the installing process.
When you install ArcGIS Server, you have two options: you can install the .NET or the Java platform.
At the beginning, I decided to install the Java platform, however I regretted this decision and I changed the installation to the .NET platform. The reason was that the Java platform was a bit trickier to install and because our ArcGIS Server is installed in the .NET platform, so I wanted to be consistent with the software engineering process (development and production environments should be the same).
Installing ArcGIS Server
Ok, so I got to install the server and I have started publishing maps, but now I tried to step forward and now I have created some prototypes using FLEX combined with ArcGIS Server.
This post was created from my office in Bergen, Norway