CSC407F Assignment #4
Flowers.com
Due: December 6 (in drop-off box by 5:00 p.m.)
You have been hired as the new chief architect for Flowers.com,
a Web-based flower delivery service operating in and around Toronto.
The service is currently operating out of a local flower shop.
It uses a simple Web site with a basic form that e-mails the
flower shop when submitted.
Upon receipt of the e-mail,
which also carries a credit card number,
the staff prepares the order, charges the credit card,
and hand delivers the flowers to the
requested place at the requested time.
The business has been so successful that the small shop can no
longer keep up with the volume.
The owners have therefore decided to expand their business.
They sought and received $70,000,000 in venture capital
to setup a flower warehouse and delivery operation.
Your first task as the newly appointed system architect
is to develop the system architecture that
this business will require in order to run efficiently.
Some of the main requirements are as follows.
- The company will operate multiple flower warehouses
throughout the Toronto area.
- Each warehouse will have some number of delivery trucks
associated with it.
- Customers will be able to see visuals and prices for
the various in-stock flowers and floral arrangements
on the Web site.
- Customers will be able to select multiple items
for delivery to a specific address during a specified
delivery time window selected from a list (next day minimum).
- Customers will give their credit card information on the
Web site. Security is important.
- Flowers.com is expecting approximately 500 simultaneous users on
the site at peak times, and a peak order flow of 2000 orders per day.
- All important Web clients will be supported including wireless handhelds.
- An Intranet Web-based customer service interface must be provided
for use by Flowers.com's customer service organization.
- An Intranet Web-based system administration interface must be provided
for use by Flowers.com's sysadmin department.
- The company has already decided to purchase certain key
off-the-shelf technologies:
- Floware: a floral warehouse system.
- Tracks inventory and predicts next-day inventory availability
- Interfaces with suppliers for just-in-time delivery
- Releases orders to "flower pickers" on the warehouse floor.
- Routes order to trucks
- Input is an XML-formatted file of order details, ship time,
and trucks the various orders are assigned to. This file specifies
the entire day's activities and must be received by the system
by 3:00 a.m.
- Inventory is maintained in a relational database table.
- Choice of Oracle/Sybase/SQLserver RDBMS
- Choice of Windows 2K or UNIX
- One system per warehouse: they don't talk to each other.
- Router: route planning software
- Takes input as an XML file.
- Input consists of delivery address, promised time window,
and amount of truck space the order takes up.
- Another XML input file specifies the number of trucks available,
their capacity, their starting locations, and their availability times.
- Output is an XML file giving optimal route details.
- The output sometimes has to be hand-tweaked.
- Runs on UNIX only.
- No RDBMS used -- all data is kept in files.
- Biff Financials: payment processing / accounting software
- Maintains all the company's accounting information
- Processes credit card transactions
- Runs only on Windows 2K.
- Uses Microsoft SQLserver relational database
- Has an API based on distributed COM objects.
- Supports Microsoft Transaction Server
You will write an architecture document (words and diagrams)
that will provide enough guidance so that a development team may be
hired and may begin working on low-level design and programming.
Identify all the user interfaces that need to be developed,
all databases that need to be designed and deployed,
all your technology choices,
the physical architecture (machines and networks),
the software architecture (clients, servers, layers),
and the allocation of software components to machines.
Be creative and think ahead.
It is your responsibility to ensure that what gets built is
useful and usable and doesn't need to be re-architected anytime soon.
You are expected to do your own research as part of this assignment.
Use the Web and any books you may find.
Provide references to your research sources in the document.