Full Text Search: The Key to Better Natural Language Queries for NoSQL in Node.js
What Is MapPoint Location Server?
MapPoint Location Server (MLS) is software that will make your cell phone locatable! But before you start screaming foul and making references to George Orwell's 1984, read the rest of this article. Microsoft is currently working with cellular operators such as Sprint, Bell Mobility Canada, and other as-yet-unnamed cellular companies to integrate Microsoft Location Server. The other cellular companies were unnamed to me but my secret sources indicate that ATT (AT&T?) may well be on its way to having its MLS plugin online soon. You didn't hear it here. Well, yes you did but you can't quote me on it!
Anyhow, for these cellular operators to work, an MLS plugin must be implemented. The plugin allows these cellular operators to offer a new (optional) service to their subscribers: locatable cell phones, which can act as honing beacons. So when Steve, Microsoft's MapPoint Location Server guru, runs the service on his phone, authorized users can ask "where's Steve?" Where the hell is Steve anyway? Let's see where he's peddling his "wares".
The uses for MLS are practically innumerable, although I hope we don't see parents surgically implanting cell phones into their children's bodies to serve as tracking devices. Let's keep those surgically implanted foreign objects as small as possible, or avoid them altogether!
How It Works
MLS is a component of Microsoft's MapPoint Web Service (MWS). MWS licensing enables businesses to locate their "assets." Although primarily used for tracking cell phones, MLS could easily track pagers (does anyone still use pagers?) and other devices as well.
Once installed, a developer can issue queries against the MLS using a set of Web services (Step 1). The query includes an "asset" identifier associated with a user's Windows account. When a user is provisioned in MLS, his or her cell phone number, for example, is associated with the user's Windows account and stored in the MLS SQL DB. The query from the developer contains the account name (Windows) of the user to be located, and MMLS looks up the phoned number and sends that to the operator.
MapPoint Location Server would in turn query the cellular operator (Step 2) configured for the specific asset identifier (for example, Sprint). Remember that a business might have hundreds of locatable assets, and each can exist on a different cellular operator. The operator then locates the asset and returns its geographic latitude and longitude (Step 3). At that point, MLS could notify the asset (Step 4) that its location is being queried (an option configurable by the asset owner) and then return the latitude and longitude to the requestor. The requestor probably would want to display the location on a map, which it could render by using MapPoint Web Service (Steps 5 & 6).
Out of the box, users can use MLS to locate themselves, their buddies, and any nearby MWS point-of-interest (POI) locations. (A POI could be a gas station, restaurant, and so forth) On the development side, with a little customization work to the software, Microsoft's MapPoint Web Service can also provide useful information such as which phone out of a group of phones is nearest a certain location, how far apart two addresses are, directions for getting from point A to B, and so on.
Who Will Use MapPoint Location Server?
We already know that law enforcement vehicles, ambulances, fire trucks, and some taxicabs have installed GPS locators so the vehicles can be tracked. The business drivers and corresponding return on investment for location-based application development need no further expatiation in those established industries. The real question is whether they will make the switch to MLS? I would venture to say that many of them will, for the simple reason that it is so much easier to develop location-based applications on the MLS platform. The ease of development obviously means increased productivity, faster time to market, faster time to value, blah, blah, blah. (Time-to-value is the time delta between the moment a business need is identified and when it's filled.) Now, consider all the small taxicab companies that have not "automated" due to the high cost of traditional location-based services technologies. MLS changes that.
Does MLS provide a better mousetrap for these applications? Probably not. MLS is not necessarily better because it may not provide pinpoint accuracy. Remember, the preciseness of the geographic location depends on the cellular operator. This lack of absolute precision may be inadequate for critical uses (military, medical, and so forth), but it's very acceptable for commercial uses. Thus, the question of whether MLS is better is a moot point. Besides, I expect that most will use APGS to get excellent location precision anyway. Where MLS hits a home run is in providing affordable location-based services to companies that could not previously afford them.
I have spent a good deal of time building law enforcement applications, and I can attest to the difficulty in building applications that integrate maps. With law enforcement applications, the need for geographic information systems (GIS) is crucial. Analysing crime statistics against a map allows law enforcement management (police chiefs) to allocate resources (police officers) with greater efficacy. The APIs for building GIS were relatively cumbersome and difficult to integrate—especially with a mobile device. MLS abstracts the developer from many of these complexities and thereby provides a far cheaper mousetrap because it doesn't require expensive mapping software nor GPS tracking devices to be installed. A cell phone will do, and many of us already have those.