Journey planners, also known as trip planners, comprise a front end user interface to gather travel requirements from the user and present the proposed travel itineraries back to them, and a back end journey planning engine which performs the actual computation of the possible trip plans, prioritizing these according to the user's optimization criteria (fastest, fewest changes, cheapest, etc.) and returning a subset that best satisfies them. The user interface may run on a terminal, PC, tablet, or mobile device or even be speech based and may integrate maps and location data to give a visualization of the trip or to simplify the interaction with the user. The journey planning engine may be either local or remote and may have either a monolithic (all the data in a single search space) or a distributed architecture (the data for different regions split among different engines, each with their own search space).
