WebTaxi
Architecture
Service Based Architecture
A Web Server running will control
WebTaxi service. The web server will interact with the external off-the-shelf
services to get the job done. The main idea here is to minimize the development
effort and use existing web services. Message communication with web services
will be using Extended Markup Language (XML) definition of these services.
The following services will be used to
implement the complete system:
-
Mapping Service: This service
expects the source and destination addresses in a standard XML format. It
responds back with an XML document containing the exact route and the estimated
time of the journey.
-
Mobile Messaging Service: This
service allows message communication with PDAs with cell phone capabilities.
The service expects a message in the XML format. The XML message should contain
the phone number of the destination device. The service provides device
transparency by sending the XML document over the air interface used by the
device. In a similar fashion XML messages from these devices can be delivered to
the service originator. This service also supports multicasting to a select
group of mobile devices. This feature is used by the WebTaxi server to locate
the taxi that can service the request.
-
Credit Card Billing Service: This
service is used to charge the customers credit card for the taxi service.
-
Bank Account Service: This service
is used to deposit the money into the taxi driver’s account.
The interactions between the WebTaxi
server and the web services is shown in the figure below:

WebTaxi Server Overview
The Web Taxi server forms the front end
of the WebTaxi system. The customer interacts with the WebTaxi website housed on
the WebTaxi server. The server goes through the following steps to service a
Taxi Request:
-
Customer
places a Taxi Request on the WebTaxi server
-
Server
uses the Mapping Service to locate the start point and end point of the
journey.
-
The
server then uses the Mobile Messaging service to broadcast the request for a
Taxi.
-
Response
to the request is received from the Mobile Messaging Service.
-
WebTaxi
server further interacts with the Taxi PDA devices to pinpoint the taxi that
will serve the customer. All these interactions will use the mobile
messaging service.
-
When
the taxi service is completed, the server will bill the customer’s credit
card using the Credit Card Service.
-
Money
will be credited into the Taxi Drivers account using the Bank Account
Service.
Taxi PDA Overview
Every taxi driver has a PDA with a built
in cellular phone. This PDA acts as the front end for the taxi driver. The Taxi
PDA goes through the following steps to handle a Taxi service:
-
Taxi
PDA receives a service request from the WebTaxi Server (WTS). This request
is a broadcast from the server. The request specifies the maximum time a
taxi can take to qualify for this service.
-
The
handling of the request depends on the current state of the Taxi:
-
Free
Taxi: If the taxi is currently free, the PDA gets the estimate
of the time to serve from the mapping service by specifying the source as
current taxi location and the destination as the service start time.
-
Busy
Taxi: If the taxi is serving a customer, the time to serve
estimate is obtained by asking the mapping service for the time taken in
going from the current location to the start of service point via the end
point of the current service.
-
Busy
and Booked Taxi: If a taxi is currently busy and it has a
future service assigned to it, the taxi will ignore the request.
-
If
the time is below the maximum time specified by the WTS, Taxi PDA then
reports the start of service time to the WebTaxi Server. (It may be noted
here that a Taxi PDA would typically go through several such transaction
before it gets "chosen" for the service. The taxi driver will have no
knowledge of these transactions)
-
If
WTS likes the reply, it will query the driver for service acceptance.
-
If
the driver accepts the service, Taxi PDA will inform WTS.
-
In
a similar fashion, Taxi PDA will inform the WTS about "ready for
service", "start of service" and "end of service".
|