View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

The Team: Case Study for Milestone 4

Porting the Location Based Service to the PDA


Get a quick overview of The Team's journey to create a Location Based Service (LBS) for CS2340 here.

Architecture/Infrastructure


For the first milestone, we created some of the basic classes used to store information about the 'beings' inside a place in the LBS. More than anything, this served as a medium to become familiar with the language and the environment. By the time milestone 2 came around, the idea of a 'Person' and 'Place' class was already starting to crumble. Thinking ahead, we realized that for milestone 4, we were going to need some sort of representation for an air grafitti message. What was this message to exist as? An 'Entity'. The idea of a 'Person' quickly became viewed as non-modular and non-versatile. So here's the first lesson learned: Think ahead about design!!

When the time came to network everything together, there were a few different options as far as network implementations. The first was sixx-string. We didn't even know about it at the time, but we would have taken the route we did, even if we had known from the beginning. What we did end up doing was creating our own network protocol which allowed for simple commands to be sent over the network to control the data/model on the clients and server as opposed to entire serialized objects. Now – this was not such a terrible idea. In fact, it worked extremely well. It was much easier to debug, much quicker than sending an entire 'Entity' over the network when all you wanted to change was one of its fields, and it gave us more power in what exactly was going on behind the scenes. However, there are always tradeoffs, and here, the tradeoff was a time investment. The amount of time that was spent writing the definition of the protocol and the 'NetworkMessage' class was substantial, considering the alternatives.

User Interface


From the start, our user interface was PDA sized. This saved massive amounts of time in the long run in that we didn't have to make two different clients. The interface didn't take full advantage of the screen space that exists on a desktop but not on a PDA, yet it was still very usable. This hugely simplified the porting process of the LBS to the PDA.

Porting



Porting was a fairly simple exercise for our team for 2 reasons: Squeak is platform independent, and our UI was written with a PDA screen in mind from the very begining. All we really had to do was get the Squeak 3.7 basic image (which is small enough for the pda, ie under 12 Megs), filein our sources, save the image, and copy the image and changes files to the pda. Of course the squeakVM.exe for pocket pc was also copied, just run the squeak vm and select our image and the project is ready to go.

Link to this Page