Welcome to MSDN Blogs Sign in | Join | Help

Architecture choices

When I started working with .net, the first thing I did was to pick a pet-project that I could use as a learning experience. Being quite involved in Search and Rescue (SAR) for number of years, it had always been my desire to write a software package that could assist in information sharing and tracking during a search mission.

While working at Microsoft in Redmond, I had been involved with a SAR group that specializes in running base camp operations (i.e. handling all the tasks that are done at base camp). When I moved back to Iceland I joined a similar team that is responsible for the command and coordination of search and rescue missions around the capital of Iceland - Reykjavík. When I joined we basically were using whiteboards and yellow stickers to run the search. The only way in which a computer was used, was that Word was opened up on a single machine and a log of some sorts was entered.

I quickly started getting input from my fellow team mates on what could be done using a dedicated software program and in my spare time I started developing this software. Over the last 2 years or so the software program has gradually evolved and is currently being installed for use within the country's EOC (emergency operation center).

One of the design decisions I was faced with early on was the fact that SAR missions are all different in nature and location. Some searches might be confined to sending couple of 4x4 cars up a mountain and get some stranded people down. Others could involve multiple search teams from all over the country searching in an area the size of Kansas (apparently Iceland and Kansas are similar in size). In some cases the mission is being run from the back of an Command Post van - using 1-2 laptops possibily connected to the Internet using GPRS (network connectivity is not a given fact - since some command posts might be located at the base of a glacier in the Icelandic Highlands - far away from any communication network). Other missions might be ran out of any of the 18 command post facilities that the Icelandic SAR organization has set up. In large missions, more than one command post facility may be activated and the country's EOC activated to coordinate efforts between the various facilities.

So now my task was to come up with an architecture that would easily work in all of these situations. What was right away obvious was the fact that I had to split the system up in some way, so that it could work on a single computer, on a local LAN and accross a WAN (in my case the Internet).

The choice I made was the following:

  • The front-end used by people running the search missions would be a WinForms program. I choose WinForms because I required the system to be more responsive than a web based solution would have been.
  • A back-end that contained all the business logic and database access. This back-end had to be able to run on a single computer or across the LAN/WAN using standard protocols that would not be stopped by firewalls.

Of these two choice, I want to focus on the latter one.

First of all I had to pick a way for the front-end and back-end to communicate with each other. Since web services were a new thing and I wanted to learn about them I decided to try them out and see how they would work. So my choice was to write a web service, that could run on any computer (as long as it had IIS installed). The web service would handle ALL database interaction (something that took some time getting used to) and data would be transferred back and forth using strongly typed datasets (more on that choice in a later post).

Very quickly I discovered that this choice to use a web service and datasets was an ideal choice. It simplified the development of the application greatly. I no longer had to worry about where I was getting the data from. Whether I was using the centralized web service published by the EOC or if I was using a web service running on the same computer as the front-end was as trivial thing as to change the URL of the web services proxy class.

Currently I am working on a web-based interface to the system intended for those in charge of the individual SAR teams to send information into the system and get information about the assignments their teams are working on. Since all the business logic resides in the web service, this also became a much easier task than it would have been if I had made a different architectural choice.

The program is now in use throughout Iceland and is being run both on single computers and through the central web service. To the best of my knowledge it was the first WinForms.net based application to be launched in Iceland.

Published Thursday, August 07, 2003 12:38 AM by Gisli Olafsson
Filed under:

Comments

No Comments

Anonymous comments are disabled
 
Page view tracker