A concurrent architecture for a travel planning application

In this thesis, we present a concurrent architecture for a travel planner application. The main idea behind this architecture is the division of the travel planning problem into task and subtask objects that solve distinct aspects of the problem in parallel. These objects collaborate with one anothe...

Full description

Bibliographic Details
Main Author: Smith, Eric
Format: Others
Published: 1999
Online Access:http://spectrum.library.concordia.ca/936/1/MQ47851.pdf
Smith, Eric <http://spectrum.library.concordia.ca/view/creators/Smith=3AEric=3A=3A.html> (1999) A concurrent architecture for a travel planning application. Masters thesis, Concordia University.
Description
Summary:In this thesis, we present a concurrent architecture for a travel planner application. The main idea behind this architecture is the division of the travel planning problem into task and subtask objects that solve distinct aspects of the problem in parallel. These objects collaborate with one another, eliminating non-optimal solutions and producing a coherent solution consisting of partial solutions from the subtasks. Groups of these objects solve different optimization problems within the travel planning problem. The architecture is similar to that of a production system, particularly a blackboard architecture, except that we insist on a distributed control system and use procedural tasks and subtasks rather than declarative knowledge sources. Unlike blackboard systems, the solutions that are created are distributed amongst the objects rather than centralized, so some communication between objects is necessary. We discuss our Java(TM) implementation of the travel planner and some sample results of the system. The travel plans output are sometimes not good approximations of the optimal solution, because a bounded, breadth-first search strategy is used. The system also loses on performance because of additional overhead incurred by object collaboration. On the other hand, our architecture offers potential performance enhancements achievable through concurrency as well as good design principles such as design for change, separation of concerns, and code reuse. We also demonstrate how our architecture could be used to solve other optimization problems. We conclude that our architecture could be used as a basis for a more efficient travel planner implementation.