eFlight User Manual

Version 1.0












Adam Cheyer

Luc Julia

Douglas Moran


SRI International

Artificial Intelligence Center



eFlight Overview                                                                                                       2

Installation                                                                                                                 3

Hardware Requirements                                                                                    3

Distribution Contents                                                                                         3

Agent Coordination Server                                                                              3

OAA Runtime and Debugging Tools                                                                3

eFlight Server Architecture                                                                            4

eFlight Client Applet                                                                                           4

Installation Instructions                                                                                4

I. Decompress the distribution                                                                        4

II. Define host/port for your Facilitator Agent                                     5

III. Download WebL                                                                                                5

IV. Update Start-It properties the for sample application                6

V. Run the server agents                                                                                    6

Running the Sample Application                                                                    7

eFlight User Interface                                                                                           9

Login                                                                                                                              9

Online Querying                                                                                                      9

Offline Tasking                                                                                                      11

Creating and managing offline panels and agents                            14

Monitor Agents                                                                                                     14

Business Agents                                                                                                     15

Vacation Agents                                                                                                   17

Removing offline panels and agents                                                          18

eFlight Overview

Online services available today on the Web, while useful, are very rigid, providing ticketing information only for specific dates and cities, with little variability.  The eFlight system applies agent technology to enhance this domain, answering questions not addressed by current online services:

1.      Question: Many sites claim to search through thousands of flights to find the best possibility for a trip.  Do they all perform equally well, and return exactly the same results?

2.      Question: Online sites only give the best price available at the time of the search. Travel agents always say “I have to ticket this by tomorrow to get this price.”  But once a ticket is ordered, will the price go up or down?

3.      Question: Will large airline brokers give as good a deal as directly interacting with the specific airline?

In addition, automated agents perform services that existing online services do not provide.  For instance, whereas all current online flight services require, as input, origin and destination cities and specific dates for travel, eFlight provides much “fuzzier” matching, taking your own requirements into account and then entering a range of inputs into the specific services on your behalf.  In addition, eFlight agents perform services integrated over time, whereas existing services only provide queries based on “now.”


This user’s manual includes installation and execution instructions for the eFlight system.  For further information on the technology behind eFlight, see the 1998 annual report for project 1686, “Mobile Intelligent Agents for the Internet.”


This section outlines procedures for installing the eFlight server architecture.

Hardware Requirements

To run this demonstration package, you must have a relatively powerful PC running Windows (95, NT, 98) or a Sun computer running SunOS or Solaris.  You must also install Java 1.1.*, available from http://www.javasoft.com/.  Note: because of incompatibilities in the class loading scheme, this software has not yet been upgraded to work with Java 2 (JDK 1.1.2).


Distribution Contents

The eFlight server architecture is based on the Open Agent Architecture (OAA), a distributed framework that simplifies the integration of diverse programmatic components, and WebL, a Java-based language for writing Web-based information extraction agents.

Agent Coordination Server

·        An OAA Facilitator (v 1.0), the heart of an OAA system

OAA Runtime and Debugging Tools

·        Start-It: an agent that simplifies launching of the many agents making up a community (application)

·        Monitor: An agent that helps graphically visualize an agent community and then log, monitor, and profile interagent communication

·        Debug: An agent that enables a developer to send tasks or messages to the agent community or to an individual agent, expressed either in English or in the Interagent Communication Language (ICL)

eFlight Server Architecture

·        WebLOAA: an OAA wrapper around the WebL language           (http://www.compaq.com/WebL) for creating web extractors

·        WebL scripts for extracting flight information from various online full-service and discount travel sites

·        Database: a Prolog database that loads database definition (state) files

·        Database state files: state files to manage data access and  storage for the eFlight application, and for certain data applications, e.g.,  worldwide city database, test flight database

eFlight Client Applet

The eFlight client can be run locally using appletviewer or downloaded in any Web browser supporting the Java plugin for JDK 1.1.


Installation Instructions

I. Decompress the distribution

·        On PCs, run the self extracting executable, setup.exe.

Decompress the executable by using the proposed directory name (\eFlight).  Several paths in the distribution refer to this path.

Note: Under Windows, shortcuts will be added to your desktop pointing to the OAA Facilitator, the startup script for the eFlight application, and to the main README file.  When you  run the Java tools and the Start-It program, you may get an “Environment Out Of Space” error.  If this happens, edit the properties of each shortcut (right mouse click), and set Memory|Initial Environment to be 2048.  You will probably also want to set Program|Close on Exit    and Program|Run Minimized.

·        On UNIX, decompress and untar the distribution file.


II. Define host/port for your Facilitator Agent

1.      Copy \oaa\setup.pl to the root directory of the drive on which you have installed OAA, or if on UNIX, to your home directory.


2.      Run the Facilitator by clicking on its icon added by the setup program, or by running \OAA\PROLOG\b.exe. The Facilitator should connect, and print out your local hostname in a message:

Loading setup file: 'F:/setup.pl'
* Singleton variables, clause 1 of rootdata/2: X
* Approximate line: 1, file: 'F:/setup.pl'
Listening on tree.ai port 3344

3.      Carefully note the exact wording of your hostname, and change the variable “ChangeMe” in setup.pl to your hostname, enclosed in single quotes:

%% OLD: rootdata(3344,ChangeMeToHost_SeeAbove).
rootdata(3344, 'tree.ai').

4.      Now all agents should be able to connect correctly:

Loading setup file: 'F:/setup.pl'
Listening on tree.ai port 3344


III. Download WebL

1.      SRI does not have the right to distribute WebL.  You will find a download page at the WebL homepage, http://www.compaq.com/WebL.

2.      Copy the WebL jar file to \EFLIGHT\JAVA\JARS\WebL.jar


IV. Update Start-It properties the for sample application

·        PC: If you installed the distribution in a directory other than \eFlight (on some drive), you must edit the Start-It properties in  JAVA\CLASSES\STARTIT\DEMO\CONFIGS\eFlight.prop

·        UNIX: Edit the startit properties in             java/config/startit/demo/configs/eFlight_unix.prop

replace:   TOP=\\eFlight

            to be:     TOP=\\YOUR_DIRECTORY  (PC)

                         TOP=/YOURFULLPATH/eFlight (UNIX)

Additionally, for UNIX:

            replace:   STARTIT_DISPLAY=tree



V. Run the server agents

You should now be able to run all the server components.  Click on the Start-It icon to run the agent community manager, and then click on the big blue button to start all the processes.  Each agent, as it connects the OAA Facilitator, should turn green a corresponding status light in Start-It’s interface.  When all lights are green, you are ready to connect a client interface to the server to query and task eFlight agents.



Running the Sample Application

1. Start the Facilitator (by clicking on the icon or running \eFlight\PROLOG\b)

2. Run “Start-It -- eFlight” (or \eFlight\startit.bat)

       UNIX: > setenv OAA_TOP /YOURFULLPATH/eFlight

            > startit.run

3.  Start each agent individually by clicking on its button and selecting “Start” from its menu.

Initially, you may choose to load only a few of the Web extractors:

-         The test database simulates a Web extractor, without actually going to the web.  This is useful as a first test.

-         Travelocity is a very good SABRE-database site.  Relatively quick (but it still must go to the Web and parse many pages).

-         WorldFares is very slow, but often has good prices.

-         In each WebLOAA agent, click on the “Load Module” button to load the proposed script.  You will see the loaded modules in the module window.  Do this before connecting to the facilitator (see next bullet).

-         Some Java agents (expecially the WebL agents) may not autoconnect. Use the File|Connect menu to connect each agent to the Facilitator so its status light becomes green in Start-It.

6. If you like, start and connect the OAA Monitor agent to graphically visualize the connected agents.  Click on the “record” button to watch interagent messages.  The Monitor Agent may be started separately by running the .bat file, or with Start-It by choosing it from Start-It’s application menu.

7. Run the client agent from Start-It.  This will start an applet viewer with the application.  When asked to log in, choose

           login:    guest

           password: eFlight

8. Type in from: SFO, to: BOS and choose target dates in the interface.  Click on the “search” button, and after a few minutes (if you are going to the Web), you should see results in the interface.   Click on a result and ask to see the “DETAILS” and “WEB SITE” for it.

9. Select one result and click on the arrow (TRANSFER) button to move it to the offline tasking window.   Create a new panel with this agent.

10. Click on the agent itself.  Examine its properties. Click on the “Check agent” button and then wait until the agent pops back up automatically, updated by remote Web agents. This may take several minutes if you are accessing the Web.

-         Examine the agent’s HISTORY.

11. Change the agent to type BUSINESS or type VACATION. Relax the agent's constraints for location or dates by using the “...” buttons next to the constraints. Close the property window with an “OK” button to save the new values. Open it again and click on “Check now”.  When the agent is updated, view its history.

12. Make sure you read the full User’s Manual to understand everything you can do with the eFlight system!


eFlight User Interface

A user interface, implemented in Java and JFC, provides monitoring and control of eFlight services from any Web browser.  The interface has an “online” phase where you can access immediate ticketing opportunities, and an “offline” phase where you can set up standing requests that will be handled over time by Internet agents.


The first screen presented as part of the interface is a login window.  When you enter your username and password, eFlight loads your preferences and portfolio state.  The username and password that comes with the distribution system are “login: guest” and “password: eFlight”.  To add your own username and password, edit the eFlight.db database state file.

Online Querying

Figure 1 displays the main query screen of the eFlight interface, used primarily for controling “online” interactions.  The online interaction phase is structured much like most flight-related Web services available today, which you specify cities and times for the trip.  However, the eFlight version of a flight search engine provides meta search capabilities, with numerous agents extracting and combining information from both the best full-service-travel Web sites and specific airline offerings.  Note, however, that response time may be considerably slower than that of most online services, because as opposed to wrapping a stand-alone database product, our agents are subject to Internet traffic constraints as they obtain their data.

By using the online interactions screen, you can

·        Search multiple Web-based databases for the best itineraries, given specific dates and destinations.  The prices returned can serve as a “baseline.” showing the best price available from today’s commercial airfare services.  This is the price that agents will try to beat during the offline mode.

·        View the source Web page from which the information was extracted (when possible).

·        Set up specific flights to be monitored over time with offline agents.



Figure 1. Online retrieval of specific flight information


To issue a query for flight information, specify the origin and destination cities, by using either city codes (e.g. SFO = “San Francisco International Airport”) or the city finder.  You also specific leave and return dates, by inputting each date (in format MM/DD/YYYY) or by selecting the date with the built-in calendar browser.

Results to the query returned from multiple full-service Web sites (e.g. Travelocity, WorldFares) and airline-managed sites (e.g., Delta) will be merged, sorted, and displayed in a table.  You can sort the data by any of the fields in the table, examine the specific flight numbers and transfers for each leg in the journey, and examine the web page from which this information was extracted.

The online screen also displays seating preference and frequent flyer information.

In the lower, right-hand corner of the online panel is a link between the online and offline parts of the eFlight system (Figure 1).  You can use the combo-box positioned here to create and update offline panels, adding specific flights found in online browsing to an eFlight agent’s tasking responsibilities.  This procedure will be explained in more detail in the next section.

Offline Tasking

During offline tasking, you create a new tab or panel representing a target destination containing agents managing one or more trips.  Currently, a flight has three task request types, and hence three agent personalities.  Each type is illustrated by a graphical character, as shown in Figure 2, that represents broad travel characteristics involving differing strategies and search parameters.

A business trip agent

A vacation agent

A monitor agent

Figure 2. Different task types in eFlight


A tab with a target destination and agents representing all three task request types is shown in Figure 3.  The monitor agent’s definition panel and history window are shown open.

Figure 3. Offline agents manage an airtravel portfolio

The basic parameters associated with the different task types are as follows:

·        Business trips: Business trips are typically less flexible with dates and cities than vacation trips, but some flexibility exists.  Price may be less of a consideration than convenience and timing. Business travel is often arranged shortly before the actual trip, so last-minute deals are a credible option.  Ticketing must be arranged in a short period of time (e.g., by the next day).  The main service provided by the business agents is an extensive search within the constraints that you set, examining possible combinations of times and cities to find the best combination of convenience and price.  Business agents continually update their results, which you can query at any time, and generally complete their search within 24 hours.

·        Vacations: Actual destination and precise travel dates may be less important than weather, pricing, and availability. Vacations often are arranged far in advance, so periodic scanning of package deals and discount “specials” is an option.  Since there is more flexibility regarding ticketing, choosing the right time to purchase the ticket is important.  You can specify general goals such as  “I want to go somewhere in Mexico in the fall.” You can ask the vacation agent to notify you about specialized “impulse vacation” deals.

·        Monitoring: A ticket agent can say “we must ticket today to get this price.”  Will the price go up or down afterwards?  When will it sell out?  A monitoring agent can be used to track changes in price and availability for a specific flight.  This may be of interest once a purchase has been made to see if the decision by the agents (and by you) about when to buy turned out to be a good one.

All search agents take into account issues such as user profile preferences (e.g., frequent flyer information, seating) and alternate city routing.  City planning can have a huge impact on the overall price of a trip, and is one area where eFlight queries can provide a substantial improvement over current air travel services.  Consider the following examples illustrating real cases of trying alternate airports (source: SF Chronicle):

·        Travelers heading to Long Beach from the Bay Area have two choices: a $1200 America West flight out of San Francisco or a $78 round-trip out of Oakland on WinAir, a new airline.

·        Recently, Boston-bound flights were nearly $200 cheaper for departures from San Jose or San Francisco ($298) than they were for Oakland ($486).

Nine possibilities can be considered for a flight between San Francisco and New York, as each city has three airports within 25 miles of downtown:



John F. Kennedy

Newark, NJ









San Jose





Creating and managing offline panels and agents

Panels and agents are created starting from a search query performed on the online screen.  To begin planning a trip, issue an online query that approximates the intended dates and destinations. Then choose among several of the returned (specific) flight results, and use these to create offline agents.

As we have seen, eFlight agents currently come in three types.  The monitor agents keep track of changes over time for a specific flight (or legs of a flight).  Use the online query interface to discover flights of interest, and then add them to the combo-box by

1.      Selecting the flights to be added in the results window of the online query interface

2.      Specifying the destination panel to which these flights should be added

3.      Clicking on the big, red “arrow” button to add the flights

For each flight, a corresponding monitor agent will be added to the panel

To add business agents and vacation agents, first create a monitor agent by using the above procedure, and then edit the agent properties by clicking on the agent character displayed in the offline screen.  You may change the TYPE button to “business” or “vacation”, converting the agent to this type.

Monitor Agents

Monitor agents are used to watch a specific flight over time.  You will not be able to modify any of the flight properties of the monitor agent, because these properties stay constant.  However, the monitor agent will keep track, every day, of changes to the price and availability of the flight you have selected.  To view a graph describing the changes over time, click on the history window.  An example is shown in Figure 4.

Figure 4.  The History window of a monitor agent

Business Agents

Business agents improve on the results obtained by commercial search engines by allowing you to relax some of the constraints (e.g., the origin and destination airports, the endpoint dates) and by performing a much more exhaustive search within these looser requirements.  Offline agents can test for many possibilities that you do not have time to try by yourself.

To relax constraints for the target cities or traveling dates, open the property panel (Figure 5) and click on the buttons labeled “…” that are positioned next to each constraint.  For cities, the city finder will pop up.  Here, you can enter city names (e.g., “San Francisco”) or city codes (e.g., “SFO).  The city finder will search for all nearby airports, and you can choose from the list, indicating which airports you are willing (or not) to consider.

Figure 5.  Business agent properties with airport and date range editing window

To relax dates and times, use the date range window.  For instance, even though your ideal travel date may be December 10th, perhaps you are willing to travel on any date from December 9th in the evening, until December 12th in the morning.  Dates must be entered in the format  MM/DD/YYYY, and times written as  19h 50.

As the business agent finds better possibilities, the values for the agent are updated, the agent moves higher up the screen (closer to $0), and the current flight is updated in the agent’s main display panel.  The agent also notes how much money it has saved you so far, compared with the price of your original flight.

To view all flight possibilities found by the business agent, use its history window (Figure 6)  to view the top contenders for your ticketing preferences.

As opposed to monitor agents or vacation agents, business agents are scheduled to run only once.  This means that once a business agent has completed its search, with its results viewable in the history window, eFlight does not automatically reschedule the agent.  However, if you want an agent to recalculate its results, the “Check now” button is available.  The “Check now” button, for all agents, places an update task for the agent on the scheduler’s activity queue. An audio and visual cue will notify you that the task has completed.  Note that clicking on “Check now” closes the window (using a cancel), so to make sure that you have saved any changes first, close the window by using the OK button.


Figure 6.  The History window of a business agent

Vacation Agents

A vacation agent is very much like a business agent, and it lets you relax the constraints even more than for a business trip.  For instance, you might want to go to Mexico, but you don’t care which city.  Or perhaps you would like to take a two-week trip, sometime in the fall.  In addition, the time for planning a vacation is usually much more extended than for a business trip, where you must generally arrange the tickets within two days at most.

The city finder has been extended even farther, accepting city names as specified in the previous section, but also accepting states (e.g., “CA,” “MA”) and country names (e.g., “Mexico,” “Italy,” “Republic of Korea”).  The city information is extracted by a Web crawler from the Online Airline Guide’s website, http://www.oag.com.

The date range window accepts “Add Date” commands instead of an end date range.  You can specify a fairly large range for the start date (e.g., such as a three-month range representing “summer”), and then an add date to determine the length of the trip relative to the leaving time (e.g., “two weeks,” “one month”).  Add dates are specified in the form NumberOfMonths/NumberOfDays/NumberOfYears, so “two weeks” would be written as 14 days:  0/14/0.

In addition to looking for flights at the main, commercial airlines, vacation agents will also consult discount brokers and consider special deals when preparing itineraries for your perusal.

As vacation agents look for good deals over an extended period of time, the selection of flight possibilities will change accordingly.  Hence, the history window for a vacation agent displays the best flights found at each point in its history (Figure 7).

Figure 7. The history window of a vacation agent

Removing offline panels and agents

Individual agents may be removed from a panel portfolio by clicking on the agent to view its properties window, and then clicking on the “remove” button.

To remove an entire panel with all its agents, click on the “delete panel” button from within the offline panel itself.