The Navigation Service Pipeline split into front-end and back-end
The back-end computations are typically very difficult. The normal way to compute a response to requests for information about travel from point A to point B is to perform a search through a state space of all possible travel to discover a feasible (though not necessarily precisely optimal) way to move through the navigable world model from a representation of point A to a representation of point B. The results are reported back as though they referred to travel in the real world.
For example, the request might be to continuously update the travel time from a car's current position to a rental car return location at an airport. On the NSP side, this would involve periodically noting the current position of the car in the real world, finding a corresponding data reference in the navigable world model, finding a representation of the car return location in the model, searching through all of the possible drivable road network for a short or simple or fast path between the current location and the return location (taking current traffic, weather, road condition, road construction, and time-dependent restrictions on travel and turns into account). Once the path is found (or it is determined that no path can be found), then the travel time on the path is computed and returned to the end-user. These calculations can easily involve millions of database accesses and storage of large search trees in memory. In most cases, the ability to perform the back-end calculations will determine the overall throughput capability of a NSP.
Computer architectures, such as the compatible family of Windows operating systems and .NET Enterprise Server products, makes adaptation of a system to actual usage loads a relatively predictable process. The further subdivision of functionality into components that manage the rapidly changing location of mobile objects in a "positioning store" and integration of new information about mobility in the real world (traffic, weather, etc) may be necessary in the largest systems.
Sometimes the main function of the NSP is simply to track the location of mobile devices and serve up information about their location on request. This functionality can be implemented on a special-purpose version of a NSP back-end called a "Position Proxy Server."
Core Functions of the NSP back-end
The core navigation service hosts the navigation engine and the position proxy service. Together these two components serve responses to MSP 2.0 requests. The host for these services will normally be in a cluster running Windows 2000 Advanced Server and use NLB to distribute incoming requests. SQL Server 2000 manages the navigable world model and the position information used by the position proxy service.
To upload information from external data suppliers requires provider-specific protocols and methods. Windows access to mainframe computers can be simplified by using Host Integration Server 2000.