The Why
My current employer, iVision does some fantastic work in the line of business application development field, and I am proud to be a part of it. We are currently preparing to do an internal project that will be used for technical demos, internal training and as a new technology proving platform. We have tentatively named it iGOR (iVision GPS Online Repository) and I will be writing about its design and development as we progress through the process.The What
The concept is pretty straight forward, we have a fictional new client that has technicians in the field and would like to have the GPS location of each employee in real-time so they can optimize routes and update schedules. They have installed GPS receivers and cellular modems into each technicians laptop. They want the devices to transmit its current location every few seconds, and if it loses connectivity, to locally store the location data until the connection is re-established and then bulk send the data. They would also like to be able view each laptops track history for a given date range as well as see it in real-time.The How
iGOR will be hosted on Microsoft’s Azure platform and be
composed of four distinct applications; a desktop application, a worker role and two web roles. The site web role will handle the user interaction with a web interface, in this
case a web site written in ASP.NET MVC 4. The API web role will handle the device interaction through an exposed API. The lone worker role will handle all long
running or asynchronous tasks; such as file import/export, email communications
and any regularly scheduled maintenance tasks. The desktop application will allow for users to interact with the underlying data stores. Users will be able to add/edit/delete devices, view GPS data, upload data files for import and other administrative tasks
Long term storage will be handled using Azure SQL for user
and device information, Blob storage for files to be imported/exported and
Table storage for the actual GPS data. Queues will be used for communication
between roles and applications.
![]() |
| High Level Concept |
The next post will be about setting up the development environment and some project architecture decisions.

No comments:
Post a Comment