Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Location based competetive analysis system

0.00/5 (No votes)
1 Jun 2004 1  
A PocketPC app for location based competetive analysis.

Abstract

This is more of an article and concept rather than only a Pocket PC application. Its based on location based information. I am trying to implement a system that use the e-commerce based application in location based application. Its basically connecting the location based application and competitive analysis. I am surprised that till now no company is thinking about implementing a system like this.

What's new in this system

This system allows location based system to give you the right information based on competitive analysis and intelligence decision.

Example

Its gives you a gas price while you are driving in highway. Price will change as you driving form one area to another.

System Design

This system is developed using 3-tier architecture. Its contains three layers.

  1. Database Layer : This layer is simple XML files or Web Services.
  2. Data Processing layer ( Web Services ) : This layer interact with the database and based on location and user preferences it return the appropriate information to the user. It’s conations a bunch of web services for getting information form database server.
  3. User Interface : This layer interact with the web services located in web server and display the data based on user device. I implemented pocket pc based application.
    • Pocket PC based application.

How the system works

  1. User send a request for information about something.
  2. Using your GPS based device, we detect your location.
  3. That location send to the server, where server convert to the valid location.
  4. That valid location passed to the web services user requested.
  5. Web services find the appropriate information.
  6. That information send back to the user.
  7. User device display that information based on the device type.

Issue in implementing this system:

1. How to get the data for each location:

The biggest issue in this systems in to get the data from each location. If its not an issue, then there are millions of application already floating in the market. I have to make an assumption that there are many website , that follow the same standard for data and I created a web spider program, that’s regularly moving to those website , constantly updating the main database server.

2. How the user get the information based on current location:

Simplest way is the user enter the zip code and server will find the information for you. Weather.com does that. But most of time user will not know his location, so we can’t use this approach.

I make an assumption that user have the GPS based device, so we can get the location and our server have a web service that gets that location and interpret that location to the valid location, which the database server can understand. Once you gets the location , getting the information is piece of cake.

Requirement Analysis

The Aim of this project is to develop a system that allow mobile user ( Pocket PC or Laptop) to get the information based on the location and competitive analysis. Competitive analysis is important here because there are lot of services that allow location based information, but none of them are giving the information to the user about the competitive analysis.

For example if you are going to some unknown city you might be interested on gas station, wouldn’t it be nice that if it will be able to tell you the gas price. Another example is if you are looking for an hotel room. You may ask from your cell phone that what is the best rate of hotel is this area, or is there any kind of deal in the hotel room and your cell phone somehow search all the hotel nearby and find the best result for you.

Its seems very interesting and not impossible to implement, specially now we have so many new technologies. I used ASP.NET 2003 using C# and Compact .NET framework to implement this system. I create three different client One Windows application, One Web Application and One Pocket PC application, all of getting the data from same database through XML Web Service interface. I create a Update Server application also which allows super user to modify the data.

Intelligence decision

When you are implementing the Pocket PC / Cell Phone based application, we can’t ask too many inputs from the user. I am describing a optimized route application here.

Problem : Tom is driving Boston, MA to New York, NY. There are tons of GPS application, which gives him the direction, turn by turn. Its static information, now If there is an accident on exit 84 and traffic in very bad between exit 5 to exit 8. If there PDA is internet enabled and he have subscribed the Traffic notification web service, he will get notified based on location, so he can take back road and after exit 8 he will merge in highway again. It’s a nice design, but I want to point out couple issue here.

  • What if he is not familiar to that area, how he will take the back road.
  • Map software will display everything from highway ( static information only).
  • Even if the MAP software if flexible enough. Its still painful for him to enter those information in small PDA, while he is driving.

Our approach is this.

  • As soon as PDA get notification of the traffic jam, where driver is headed, it will check if that jam is on the user way.
  • If its in the user way, automatically it called a new web server to get the optimized route.
  • It will be the job of the web server to calculated the optimized route at run time for the user based on his/her preferences.
  • Most of the driver want to save the time, so web service can compute based on the time cost, which route is better for him highway or street.

There could be many other enhancement possible in this scheme. I am just proposing the idea here, because now we have all the right tools to implement this kind of solutions.

Architecture of the project

Block Diagram

Develop a prototype application – Personal Assistant

  • Provide information based on location context.
  • Useful for an local services like finding restaurant, cheap gas, traffic updates and can be expanded for more services
  • Browser Based UI (HTML/WML/XML)
  • Communicate via XML Message, which is used everywhere.
  • Simulate sensing of location Context.
  • Send location context to server on every location change via web server.
  • Server passes the request to a location aware mapping service which returns an abstracted location.
  • Server then retrieves context information from context database using the abstracted location.
  • Server than passes the results to web server which formats the results in appropriate presentation and passes to the client device.

These are three pictures of Pocket PC application. Figure 1, uses an XML data file. I am trying to show the concept here. These XML file can be replaced by real web services as shown in figure 3. Where you enter the zip code and it calls the web service (http://www.xmethods.net/sd/2001/TemperatureService.wsdl ) and get the temperature for that city.

Figure 2 (Map Tab) is just an Image.

Here is the code, how I call the web service.

protected PocketPC.net.xmethods.www.TemperatureService tempServer = 
  new PocketPC.net.xmethods.www.TemperatureService();

private void Submit_Click(object sender, System.EventArgs e)
{
   try
   {
      txtTempe.Text = tempServer.getTemp(txtZipcode.Text).ToString();
   }
   catch(Exception ex)
   {
   }
}

Conclusion

I shared my point of view for that kind of system, please mail me if you have any feedback or suggestions to shailsrivastav@hotmail.com .

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here