(50 points) WorldCom, CompuServe, and America Online (AOL)
recently announced their intent to re-structure the online services
business of all parties so that AOL will acquire the online content
business of CompuServe and get out of the network access part of this
business, selling it to WorldCom, who will also pick up the network
access business of CompuServe.
With this change we will see significant consolidation of both the
network access business in WorldCom and the online content services in
AOL. The size of the customer base will make the scalability and
reliability of the new system even more critical than it is today.
You have been hired by AOL to help them design a new content and user
services architecture that will better meet the scalability and
reliability requirements of the restructured companies. For the
purpose of this exam question, assume that today (though not
necessarily in the system you will design) all AOL user services
including content retrieval, login, and e-mail are provided by servers
at AOL's headquarters in Virginia. Their network access service (which
will be sold to WorldCom) is distributed with network access points in
all major US cities, and CompuServe's network access services are
similarly distributed across the US and Europe.
- (20 points) User names in AOL are drawn from a flat global
name space. Why do you think the name space is structured in this
way, and what implications does this have for scalability? How would
you structure the name space for e-mail addresses and user names in
the combined online service? Why? How would users find the e-mail
address of other users with whom they wish to communicate, and how
does this relate to naming. How might they name those users once they
have found them? Above all, when answering this question, be
practical, and don't over design. For the approaches to naming other
than the approach you choose, explain why you didn't choose it.
- (15 points) Where would you place AOL servers, and why?
How does your placement of servers affect manageability, reliability,
and performance? What kinds of data will be managed by these servers,
and for each kind of data, will it be be distributed, replicated, or
both? Based on what characteristics will you allocate data to
particular servers? Where else might data be stored in the system
besides on these servers, and under what conditions? How does your
placement of data affect manageability, reliability, and performance?
- (15 points) How will you deal with security in the system?
When will authentication be required, and how will it be accomplished?
How will the structure of the system you designed in parts (a) and (b)
affect the security of the system and the points at which
authentication will be necessary. What user operations will require
authentication and authorization and what kinds of queries will
require confidentiality and/or integrity of the communications
channel? Why? Again, be practical here and balance the cost of such
protections against the actual benefit.