Preliminary System Design
Document Author:
Edward Anderson

Project Advisor and CEO:
Gregory Abowd

Project Sponsor
Kirk Pennywitt

The Cyberguide Team

Jason Hong
Jeff Dempsey
Chris Reynolds
Marty Mathis
Shervin Dana
Ed Anderson
Erin Rosenthal

Table of Contents:


  1. Subsystem Organization

    The four major subsystems of the Cyberguide unit are positioning, communications, information, and historian. In most of the previous versions of Cyberguide, mapping would have been considered a subsystem, yet in this design of Cyberguide, mapping is simply the graphical display of information.

    Here is a Data Flow Diagram depicting the flow of functional data throughout the system.

  2. System Concurrency

  3. Allocating Subsystems to Processors and Task

    Evidence from previous quarters proved that present Newton technology did not contain the processing power to do the tasks that were inherent to Cyberguide. Therefore, the MessagePad2000's release has been long awaited. The MessagePad2000 uses the new StrongARM processor. As one source at Apple put it: "you now have a mid-range Pentium system that you can hold in your hand." This processor has be hypothesized and feasiblity tested to assure that it can do view rendering (the most CPU intensive process of the system). It can be assumed that this computer uses one processor. This trait is inherent for pen based units. Therefore the subsystem task have to be allocated to the processor via a priority of event task.

    The order of the event priorities are as follows:

    1. View Rendering - This is the most intensive of all functions. It must be completed quickly and effectively so that the map is constantly updating the position of the user.
    2. Position Updating - After a view is rendered, the next position of the user is requested. When a certain distance has been moved from the previous position, a new position is broadcasted. If Cyberguide To Cyberguide communication is on, this information will be broadcast to the View on a intermittent basis.
    3. Point of Interest Adding/Editing/Observing - When points of interest are being added or edited, the previous two tasks complete their cycle, and are then paused so that the information is allowed to be entered. When observing POIs, the information is loaded using a substantially lower amount of the processor usage than any of the other events listed above.
    4. E-mail and WWW - These functions present a very interesting problem. The network communication of these functions will interfere heavily with Cyberguide To Cyberguide and any other functionality over the comm line. Therefore when these items are on-line, the rest of Cyberguide simply shuts down, and wait until the work on these items is complete.
    5. Historian - The Historian performs very non-essential tasks. It will basically do its task when the CPU is not under stress from any of the items above.

    As of now the hardware requirements are a PDA with either the StrongARM or an equivalent processing power, a digital camera that is preferably CPU controlled, and a Global Positioning System.

    The connectivity topology includes the Newton MessagePad2000, a camera, and a GPS unit. The configuration of this topology could be as in this figure below:

    The digital camera uses either a serial port or a PCMCIA card slot.
    The GPS uses either a serial port or a PCMCIA card slot.
    The communication device (modem, wireless lan, etc.) uses a PCMCIA card slot.
    It is preferable to have more flash memory which will also uses a PCMCIA card slot.

  4. Management of Data Stores

    Database Systems
    In order to achieve platform independence in this system design we will not assume that any particular Database Management System will be used.

    Main Application Database:
    The main application database will consist of two types of objects, Polylines and Points Of Interest (defined below).

    Polyline Object

    Type

    Field Name

    Description

    Rectangle

    BoundingRectangle

    Bounding rectangle of the polyline in world coordinates.

    String

    Name

    Identifying string data (e.g. as the name of a street.)

    Number or String

    Classification

    Classification information (e.g. the classification of the polyline Water, Boundary, Secondary Road)

    Point List

    Vertices

    List of vertices ( in world coordinates) that make up the polyline

    Number

    NumberOfVertices

    The number of vertices that make up the polyline.

    Point Of Interest Object

    Type

    Field Name

    Description

    String

    Title

    The title of the point of interest. (e.g. The Student Center)

    String

    Info

    General information about the point of interest.

    Point

    Location

    Location of point of interest in world coordinates.

    String

    ImageFileName

    The name of an image associated with the point of interest.

    String

    ImageCaption

    A caption for the associated image.

    Number

    RadiusOfInfluence

    The radius for a sphere of influence for the point of interest.

  5. Access to global resources
    Global Resources:

    Main Application Database

    Camera module

    Position module

    Communication module

  6. Implementation of control
    External events among the objects in the system will be handled in an event-driven manner. The flow of control within the objects or processes that make up the system will be handled in a procedural manner.

  7. Boundary conditions

    Initialization of the system

    Termination of the system

    Failure of the system

  8. Trade-off priorities

    At the present time, this system is a real-time information application that has on-line capabilities. The top priority of this system is to provide information concerning the position and surroundings of the user. Therefore, the real-time aspect will always be more important than any other function.