0% found this document useful (0 votes)
67 views

SENG 697: Agent-Based Software Engineering

The document describes a travel agency system (TAS) that uses multiple agents to find travel packages for users. The TAS interacts with existing web services from airlines, hotels, and car rentals to assemble flight, hotel, and car rental bookings into packages based on user preferences. The system architecture involves agents that fulfill roles like personal assistance, scheduling, and interfacing with each type of web service. The travel agent coordinates the other agents to display package options to the user, book selections, send confirmations, and search periodically for deals.

Uploaded by

PSH PML
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

SENG 697: Agent-Based Software Engineering

The document describes a travel agency system (TAS) that uses multiple agents to find travel packages for users. The TAS interacts with existing web services from airlines, hotels, and car rentals to assemble flight, hotel, and car rental bookings into packages based on user preferences. The system architecture involves agents that fulfill roles like personal assistance, scheduling, and interfacing with each type of web service. The travel agent coordinates the other agents to display package options to the user, book selections, send confirmations, and search periodically for deals.

Uploaded by

PSH PML
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 47

SENG 697

Agent-based
Software Engineering
Sample Project :
Travel Agency System (TAS)

Behrouz Far
Schulich School of Engineering, University of Calgary
[email protected]
http://www.enel.ucalgary.ca/People/far/

SENG697 (Fall 2007) [email protected] 1


Contents
 Sample Project
 System Specifications
 Design Document
 Detailed Design Document
 Data Dictionary
 Inter-Agents Messages

SENG697 (Fall 2007) [email protected] 2


Travel Agency System
(TAS)
System Specifications

SENG697 (Fall 2007) [email protected] 3


1. Business Case
 The travel industry is increasingly becoming
internationalized. Airlines, accommodators and tour
operators control the market, but these retailers face high
costs in communication and personnel.
 Communication is one of the main problems in the travel
industry.
 Many travel agents retain a great deal of information about
their clients on individual preferences and do not share it
with other agencies. Because this information translates into
business, it is usually accessible only to individual travel
companies, and not the industry as a whole. For example,
airlines have their own portal where they offer travel
packages to their customers on their fleet.

SENG697 (Fall 2007) [email protected] 4


1. Business Case (cont’d)
 The customers adopt the Internet travel sites model as a
medium to purchase a travel package. Customers, usually
looking for holiday packages, depend on their travel agent to
show them what is available according to their taste and
budget, or visit specific content providers, such as airlines,
accommodators and car rental agencies.
 The existing travel reservation systems only show the
customer the different travel packages. The customer has to
compare the different travel packages on his/her own and
make his/her decision.
 In this environment, intelligent agents have a great potential
in helping the customer get the best ‘deal’ on a travel
package and help him/her book the selected travel product.

SENG697 (Fall 2007) [email protected] 5


2. System Description
 The proposed Travel Agency System (TAS) is a
multi-agent system designed to obtain travel
packages for user depending on their preferences.
 The travel package is composed of a flight ticket, a
hotel accommodation, and a car rental.
 The TAS application deals with multiple airline
companies, hotels, and car rentals to find the
optimum package for its user.
 The application has to schedule the travel and
proceed with the transactions related to the purchase
of the travel package.

SENG697 (Fall 2007) [email protected] 6


2. System Description (Cont’d)
USER
GUI
User Travel
Travel Agency Agents
Agency
Database

INTERNET

Flight Web Hotel Web Car Rental


Services Services Web Services

SENG697 (Fall 2007) [email protected] 7


3. Assumptions
 The system maintains a user profile where each client has his or her own
individual preferences, such as:
 Hotel preferences (i.e., rating)
 Car rental preferences (i.e., car model)
 Period when the system shall search for a flight deal (e.g., every Sunday)
 Period when the system shall remind the user of a flight departure (e.g., two
hours before a flight departure).
 The user requests a travel package through a user interface. The user
interface captures the flight information. Hotel and car inputs are
retrieved from the user profile, accordingly.
 The user must book a complete package (flight, hotel and car rental).
 There are already predefined web services on the Internet which the
Travel Agency makes use of. These web services have the same WSDL
description meaning their input and output messages have a standard
syntax.

SENG697 (Fall 2007) [email protected] 8


4. Requirements
 The TAS shall provide flight, hotel accommodation and car rental
enquiries.
 The TAS shall deal with different airline, hotel and car rental companies.
 The TAS shall verify the user schedule to schedule a travel.
 The TAS shall book the flight, the hotel accommodation and the rental
car upon the approval by the user.
 The TAS shall send a memo to the user about the travel information and
alert user before the flight. The period before which the system shall
remind the user is specified in the user profile.
 The TAS shall automatically enquire for flights depending on the user
destination preferences and his/her flight booking history. The period
when the system shall initiate an enquiry to get a flight ‘deal’ is specified
in the user profile.

SENG697 (Fall 2007) [email protected] 9


5. Wish List (Not Implemented)
 The Travel Agency System shall allow a user book a flight, hotel, and a
car rental separately.
 Facilitates the setting of Insurance, Administration Charges,
Confirmation and Cancellation policy, Vacation packages, international
taxes or other related supplements.
 During any booking any flight, car or accommodation unit is held off
from the main inventory the moment it is selected, removing the
possibility of overbooking from a multi-user system.
 The System shall check the flight Web Service for any delay in flight
departure and automatically alert user if any.
 The Agents should use lookup services to locate Web services, and their
selection of Web services should be based on trusted rating services.
 The Travel Agency System shall allow the user choose a specific carrier
and the connectivity cities.

SENG697 (Fall 2007) [email protected] 10


Travel Agency System
(TAS)
System Design
Documents

SENG697 (Fall 2007) [email protected] 11


How to Proceed?
 Follow the agent-based development
methodology and create the analysis and
design documents specified by the
methodology.
 Typical tasks include:
 Role identification
 Agent system architecture
 Agent description
 Agent internal architecture

SENG697 (Fall 2007) [email protected] 12


System Architecture
 The way this system is envisioned to work is that
there is a layer of multi-agent system in between the
client (browser) and already existing Web Services.
 The Web Services may come from one or more
providers and they return the respective quotations
of their service area to the agents based on client
input and user profile.
 The agents then try to sort the results in a way that
the client gets the best price for the travel package
and matches his/her time constraints.

SENG697 (Fall 2007) [email protected] 13


Role Identification
 What roles are required?
 Personal assistance role
 Scheduling role
 Web-services handling roles: hotel, flight, car

 Assign roles to agents

SENG697 (Fall 2007) [email protected] 14


System Architecture (cont’d)

SENG697 (Fall 2007) [email protected] 15


System Architecture (cont’d)
 In this system we have the client submitting his/her request
on an Internet browser interface. The main input screen is
focused on the flight and retrieves only flight information
from the user. Hotel and Car information are pre-stored in
the TAS database as user preferences.
 Any user that wants to use the Travel Agency System
services has to create his/her own profile before hand.
 The multi-agent system has to interact with Web Services to
get the user a best ‘deal’ travel package, and with the user’s
scheduler tool to schedule a travel and display the booked
travel package information.

SENG697 (Fall 2007) [email protected] 16


Agent Description
Travel Agent
 The Travel Agent intercepts the request sent by the user through the
Internet browser. In our architecture the Travel Agent handles the
correspondence with all other agents and in this way we have a central
point of delegation.
 The Travel Agent requests flight, hotel rooms, and car rentals listings
from the adequate agents and displays the different travel packages on
the user’s Internet browser. Moreover, the Travel Agent requests from
the Flight, Hotel, and Car Rental agents to book the respective travel
package selected by the user (i.e. flight, hotel room, and car rental).
 The Travel Agent generates a Memo that contains the information on the
travel package, and sends it to the Scheduler Agent.
 Finally, the Travel Agent has to trigger a search for a an automatic
enquiry for a flight ‘deal’ based on the user flight history and period
scheduled by the user stored in the TAS database.

SENG697 (Fall 2007) [email protected] 17


Agent Description (cont’d)
Scheduler Agent
 The Scheduler Agent communicates with the Travel Agent. Once the user has specified
his/her flight date and time preferences the Travel Agent talks to the Scheduler Agent in
order to check if the client schedule is free on that date and time. Instead of the customer
checking his/her own schedule before making flight decisions the Scheduler Agent does
that on behalf of the user.
 The Scheduler Agent also handles conflicts in user appointments. Flight booking takes
precedence over any low priority events. The user low priority events are rescheduled and
the user is notified. If the user selects a flight offered by the TAS and a conflict is caused
with a high priority event then the Scheduler Agent prompts the user to reschedule
himself/herself his/her appointments.
 The Scheduler Agent makes sure that the date and time is blocked in the user’s scheduler
once the travel package is booked. Instead of the user blocking his/her calendar and
scribbling the details of his/her travel, the Scheduler Agent takes on that responsibility and
blocks the time and fills in all the details of travelling (flight, hotel and car).
 The Scheduler Agent also triggers a reminder to alert the user about his/her departure date
and airport arrival time based on the time the user wants to be notified (i.e. two hours
before flight departure).
 Finally, the Scheduler Agent displays the Memo sent by the Travel Agent on the user’s
scheduler tool browser.

SENG697 (Fall 2007) [email protected] 18


Agent Description (cont’d)
Flight Agent
 As the name suggests this agent take the responsibility of making flight
arrangements for the user based on the information he/she submitted
through the Internet browser interface. It takes the inquiry request from
the Travel Agent and then communicates with the predefined Flight Web
Services on the Internet. The Flight Web Services offered by various
providers return their quotations on the flight. The Flight Agent retrieves
these responses, parses them, sorts them, and passes them to the Travel
Agent, which then presents it to the user.
 The Flight Agent is also responsible of booking the flight selected by the
user. This is accomplished by getting all payment information from TAS
database and then passes it to the Flight Web Service, which in turn
returns the confirmation for the flight. The Flight Agent returns the flight
confirmation number to the Travel Agent.

SENG697 (Fall 2007) [email protected] 19


Agent Description (cont’d)
Hotel Agent
 The Hotel Agent makes hotel room arrangements for the user based on
his/her hotel preferences that are stored in the TAS database. It takes the
inquiry request from the Travel Agent and then communicates with the
predefined Hotel Web Services on the Internet. The Hotel Web Services
offered by various providers return their quotations on hotel rooms. The
Hotel Agent retrieves these responses, parses them, sorts them, and
passes them to the Travel Agent, which then presents it to the user.
 The Hotel Agent is also responsible of booking the hotel room selected
by the user. This is accomplished by getting all payment information
from TAS database and then passes it to the Hotel Web Service, which in
turn returns the confirmation for the booked hotel room. The Hotel Agent
returns the hotel room confirmation number to the Travel Agent.

SENG697 (Fall 2007) [email protected] 20


Agent Description (cont’d)
Car Rental Agent
 The Car Rental Agent makes car rental arrangements for the user based
on his/her car rental preferences that are stored in the TAS database. It
takes the inquiry request from the Travel Agent and then communicates
with the predefined Car Rental Web Services on the Internet. The Car
Rental Web Services offered by various providers return their quotations
on car rentals. The Car Rental Agent retrieves these responses, parses
them, sorts them, and passes them to the Travel Agent, which then
presents it to the user.
 The Car Rental Agent is also responsible of booking the car rental
selected by the user. This is accomplished by getting all payment
information from TAS database and then passes it to the Car Rental Web
Service, which in turn returns the confirmation for the booked car rental.
The Car Rental Agent returns the car rental confirmation number to the
Travel Agent.

SENG697 (Fall 2007) [email protected] 21


Agent Internal Architecture
Travel Agency
System user

Interpreter
Listener

Web Discovery
Web Processor
Web
Services
Services Agent
Services

Rendering
Agent
Agent boundary

SENG697 (Fall 2007) [email protected] 22


Agent Internal Architecture
Listener:
 The Listener component listens to a port for any incoming requests from the TAS
application.
Interpreter
 The Interpreter parses and interprets the XML messages. We assume that all
agents have agreed on a Document Type Definition (DTD).
Processor:
 The Processor receives an XML document as an input. It uses the Interpreter to
parse the document, and calls the appropriate function to run a process.
Discovery Agent:
 The Discovery Agent provides the service discovery base-service (a superset of
UDDI). May be implemented as an external service.
Rendering Agent:
 The Rendering Agent is optional; it can be used by the Processor to render data
before sending it back to the calling function. May be implemented as an
external service.

SENG697 (Fall 2007) [email protected] 23


Technology Overview
Approaches to Service Discovery
 Two categories of information must be discovered before a
service is used:
 Logical information
 Technical information
 The logical information provides a description of the nature
of the service, such as business information.
 The technical information describes the interface parameters
of the logic that drives the service. Technical information,
such as the exact protocol that the service uses, the inputs
and outputs, and the encoding of messages, form a crucial
part in machine-to-machine conversation.

SENG697 (Fall 2007) [email protected] 24


Technology Overview
Approaches to Service Discovery
 A service must be visible to be discovered. In much the same
way businesses list themselves in directories, such as the
yellow pages, and mount signs on their entrances describing
the nature of their business, Web services must provide short
descriptions (on the Web) of themselves.
 Roughly, there are three major ways by which Web services
can be described and, consequently, discovered:
 Universal Description, Discovery, and Integration (UDDI) and Web
Service Description Language (WSDL), the yellow pages approach
 World Web Wide Consortium’s (W3C) Resource Description
Framework (RDF), the sign mounting approach
 JINI discovery, the Java code discovery approach

SENG697 (Fall 2007) [email protected] 25


Communication protocol: SOAP
 Simple Object Access Protocol (SOAP) is a lightweight
protocol for exchange of information in a decentralized,
distributed environment. It is an XML based protocol that
consists of three parts:
 An envelope that defines a framework for describing what is in a
message and how to process it
 A set of encoding rules for expressing instances of application-
defined data types
 A convention for representing remote procedure calls and responses.
 SOAP is proposed to encode an HTTP header and an XML
message so that the TAS agents can call and pass
information to each other and communicate with external
Web Services.

SENG697 (Fall 2007) [email protected] 29


Communication protocol: SOAP
Scheduler
Agent

Flight
Agent

Travel Web
SOAP
Agent SOAP Services
Hotel
Agent

Car
Rental
Agent

SENG697 (Fall 2007) [email protected] 30


Detailed Design
 Use cases and use case definition for all the
participating agents should be documented.
 This includes
 Use Case for Travel Agent
 Use Case for Scheduler Agent
 Use Case for Flight Agent
 Use Case for Hotel Agent
 Use Case for Booking Car Agent

SENG697 (Fall 2007) [email protected] 31


Use Case: Travel Agent

SENG697 (Fall 2007) [email protected] 32


Use Case Def. : Travel Agent
Brief Description: The Actor uses this use case to request and book a travel package.
Precondition(s): User Profile is created before providing any service.
Post condition(s): If all the business rules are successfully met, than actor will be able to avail the facilities provided by
the travel agency
Process Steps

Actor makes a request for travelling by providing date for departure, departure location, arrival location,
1
one way or two way, date of return, business class or economy class through a browser interface.

2 Travel Agent collects the user preferences for Hotel and Car Rental from user profile.

Travel Agent requests from Scheduler Agent to check schedule availability and manage conflicts if any
3
(described in U002)

4 Travel Agent requests from Flight Agent to get a list of proposed flights from Flight Web Services.

5 Travel Agent requests from Hotel Agent to get a list of proposed hotels Hotel Web Services.

Travel Agent request from Car Rental Agent to get a list of proposed car rentals from Car Rental Web
6
Services.

7 Travel Agent displays list of proposed flights, hotels, and car rentals on user’s browser.

8 Actor selects a flight, hotel, and a car rental from the proposed list on his/her browser.

Travel Agent requests from Flight, Hotel, and Car Rental Agents to respectively book flight, hotel and
9
car rental.
Travel Agent generates a Memo composed of travel package information and confirmation numbers
10
and sends it to Scheduler Agent.

SENG697 (Fall 2007) [email protected] 33


Use Case Def. : Travel Agent
Exceptions
1a System is not accessible at this point Error message is generated stating that
System is not accessible at this point. Use
Case Terminated
4a System can not find the flight other than waiting Message is generated, Use Case Terminated.
list ones In this phase of design we are only
considering the flights that are fully open.

Relationships:

Initiating Actor

Collaborating Scheduler Agent, Flight Agent, Hotel Agent, Car Rental Agent

Other Diagrams:
Data Requirements
Data Required: Data required for Travel Agent:
Flight information
Hotel and Car rental preferences
Memo that contains information and confirmation number of flight, hotel and car
rental booked

SENG697 (Fall 2007) [email protected] 34


Use Case: Scheduler Agent

SENG697 (Fall 2007) [email protected] 35


Use Case: Flight Agent

SENG697 (Fall 2007) [email protected] 36


Use Case: Hotel Agent

SENG697 (Fall 2007) [email protected] 37


Use Case: Car Booking Agent

SENG697 (Fall 2007) [email protected] 38


Detailed Design
 Detail design (class diagram and message
sequence chart) for each agent participant
should follow.
 Modularization of the internal architecture
will help and save a lot of time!

SENG697 (Fall 2007) [email protected] 39


Travel Agency System
(TAS)
Data Specification

SENG697 (Fall 2007) [email protected] 40


TAS: E-R Diagram
Flight
PK Flight_ID

Flight_No
FK2 Departure_Calendar_ID
FK1 Arrival_Calendar_ID
Departure_Location
Arrival_Location
Trip_Type
Class_Type
Memo Airline
Rate
PK Memo_ID
Billing
FK2 Car_Rental_ID
FK1 Hotel_ID Hotel PK Billing_ID
Calendar
FK3 Flight_ID
PK Hotel_ID Credit_Card_Type
PK Calendar_ID
Credit_Card_Number
Address Credit_Card_Holder
Name Date
Hours Address
FK1 Check_IN_Calendar_ID Credit_Card_Expiry_Month
FK2 Check_OUT_Calendar_ID Min
Credit_Card_Expiry_Year
Rating FK1 Billing_Calendar_ID
Rate Billing_Amount

Car_Rental

PK Car_Rental_ID
Confirmation

PK,FK1,FK2 Confirmation_ID Car_Rental_Cie


Car_Model User_Profile
Confirmation_Type Address
Confimation_No FK1 Return_Calendar_ID PK User_Profile_ID
FK4,FK5,FK6 Service_ID Rate
FK3 Pick_Up_Calendar_ID User_Info
Car_Rental_Pref
Hotel_Pref
Flight_Deal_Trigger
Flight_Reminder

ER Travel Agency System

SENG697 (Fall 2007) [email protected] 41


Typical Data Definition
Flight:
 The information of a flight booked by a user is stored in the
Flight table. This table is also accessed by the TAS to get the
user’s flight history.
Field Description Type

Flight_ID Unique ID Long


Flight_No Flight number Long
Departure_Calendar_ID Departure date and time from origin Calendar
Arrival_Calendar_ID Arrival date and time to destination Calendar
Departure_Location Departure location Varchar (50)
Arrival_Location Arrival location Varchar (50)
Trip_Type 1=One way / 2= Round trip Integer
1=First class / 2=Business/ Integer
Class_Type
3=Economy
Airline Airline company name Varchar (50)
Rate Flight fee Float

SENG697 (Fall 2007) [email protected] 42


Travel Agency System
(TAS)
Inter-Agents Messages

SENG697 (Fall 2007) [email protected] 43


Inter-Agents Messages
 As discussed in the Design document, SOAP will
be used as a protocol of communication between
agents and between agents and Web services.
 The input and output parameters of each function
introduced below has an XML format.
 These XML documents map the data structure
defined in the Data Dictionary document.

SENG697 (Fall 2007) [email protected] 44


Get Flight
 Input parameters
Parameter Description

<flight> User’s Flight Related


Information
<departureLocation> String </departureLocation>
<departureDate> String </departureDate>
<arrivalLocation>String</arrivalLocation>
<arrivalDate>String</arrivalDate>
<tripType>String</tripType>
<classType>String</classType>
</flight>

SENG697 (Fall 2007) [email protected] 45


Get Flight
 Output parameters
Parameter Description

<flights> List of all available flights

<flight>
<flightID>n</flightID>
<flightNo>String<FlightNo>
<departureLocation> String </departureLocation>
<departureDate> Calendar </departureDate>
<arrivalLocation>String</arrivalLocation>
<arrivalDate>Calendar</arrivalDate>
<tripType>String</tripType>
<classType>String</classType>
<airline>String</airline>
<rate>Float</rate>
</flight>
.
n
.
</flights>

SENG697 (Fall 2007) [email protected] 46


Inter-Agents Messages
 Similar descriptions for
 Book Flight ; Get Hotel Room ; Book Hotel
Room ; Get Car Rental ; Book Car Rental ; and
Send Memo
should be generated.

SENG697 (Fall 2007) [email protected] 47


Documents Required
1. System overall specification
2. Design documents for the agency (system
architecture, explain why it is necessary to use
each agent in your design)
3. Design documents for each participating agent,
their basic functions and/or services
4. Data and/or knowledge sharing specification
5. Communication specification (message format,
conforming to the communication protocol)
6. Journal of important design decisions

SENG697 (Fall 2007) [email protected] 48


Design Journal
 We need to keep track of the design decisions that
the developers make; e.g., why a role was
discarded? why several roles were assigned to a
single agent? why a use-case was split into two?
why a communication protocol was chosen? etc.
 Create a separate document and keep the record the
followings:
 What was the input before refinement?
 What was the decision made by the designer?
 What was the outcome of refinement (output)?
 Why such decision was made?

SENG697 (Fall 2007) [email protected] 49


SENG697 (Fall 2007) [email protected] 50

You might also like