A Distributed Architecture for Collaborative Shopping on the WWW

Stefano Puglia, Robert Carter and Ravi Jain
{stef@research.telcordia.com, carter@research.telcordia.com, rjain@research.telcordia.com}
Telcordia Technologies

Collaborative electronic commerce is the basic idea behind the work we describe. So far, most of the e-commerce activities performed on the Web can be characterized as solitary ones: users logged in on a shopping site can only browse around pages, view and buy items essentially by themselves, experiencing everything on their own.

Let’s consider, instead, two Web users, Stefano and Bob, who decide to go out shopping together. First, one of the users, say Stefano, connects to a Web server providing our collaborative framework WebCo and initiates a collaborative session. Next, Bob, having also connected to the server, sees that Stefano has created a session and decides to join Stefano in that session. Bob then chooses to "follow" Stefano: this means that the pages that Stefano visits will be displayed in a frame of Bob’s browser. Stefano, in turn, decides to "follow" Bob. Now, suppose Stefano decides to go to a Web merchant server "WebCD" to purchase some audio compact discs. Stefano registers on "WebCD" and buys two CDs (Pat Metheny’s "Letter from home" and Incognito’s "Tribes, vibes and scribes"). In the meantime Bob has gone to the Web merchant site "Joe’s Bookshop" and has selected two items there ("Les miserables" of V.Hugo and "Brave new world" of A.Huxley). Since Stefano is "following" Bob, Stefano can see where Bob is and, wanting to buy a book, joins Bob on "Joe’s Bookshop" site and buys a book (Bruce Chatwin’s "What am I doing here?"). Up to this point, Stefano cannot see what Bob chose so far, nor can Bob see what Stefano selected; they can only follow each other on their respective surfing around the Web. At this time, Stefano decides that he is interested in letting Bob know the two CDs that he chose on "WebCD". So, he marks both his CDs public, meaning that they immediately become visible to Bob. Seeing "Letter from home" on Stefano’s shopping cart, Bob, who is a great Metheny fan and remembers he does not have that CD in his collection, decides to go to "WebCD" and get one for himself too. Bob also decides to mark the item public. While Bob goes to "WebCD", Stefano decides he wants to finish his shopping: he navigates to site "Clothes-R-US" and buys a new pair of shoes.

So far this is the situation:

Both Stefano and Bob decide it is time to check out and pay. Each of them clicks a special button and the billing is performed in a "one stop" process, thereby avoiding their having to carry out separate transactions with every merchant they have visited (three transactions for Stefano on "WebCD", "Joe’s Bookshop", "Clothes-R-US" and two transactions for Bob on "WebCD", "Joe’s Bookshop").

We present a client-server architecture, with an intermediate server playing the role of a Shopping Mediator, designed and implemented to support our collaborative shopping idea. The main role of this intermediate server is mediating requests from the users, allowing their interaction with the heterogeneous environment represented by the shopping Web sites. The Shopping Mediator also maintains important information about the active collaborative shopping sessions and the state for each client.

This state consists of all the relevant information about a collaborative shopper:

The current locations (URLs) of a user are necessary for sharing the navigation with others (Figure 1).

Figure 1: An example of shared navigation. Stefano, on the left, is on "Joe’s Bookshop" site and Bob, on the right, is on "Clothes-R-US" (users navigate in the middle frame). Since they are "following" each other, both can see "over the shoulder" in the bottom frame where the other currently is.

As for the sharing of resources, the collection of all of those virtual carts the user has on every site visited during a shopping session represents the multicart containing all the items that have been chosen, no matter which site from.

In order to share some of these items with other users in the same collaborative session, this multicart is maintained up-to-date on our Shopping Mediator. Each user is able to access, through an applet sitting in the top frame of our collaborative framework (see Figure 1), every item he has and to change properties he might be interested in letting the others know about. In particular we have seen in the example the concept of public and private items. Through the applet a user can decide to mark his items public or private and can peep at the public part of the others' multicart. Note that currently WWW shopping sites do not support public and private resources: everything is automatically private since there is no concept of sharing.

The Shopping Mediator must be able to efficiently update the shared cart on behalf of every client. To support this feature, we must assume a uniform interface to handle the interaction with an inherently heterogeneous environment represented by the shopping servers. For the prototype, we have chosen to create the well-defined class ShoppingCart to represent a generalization of the object exchanged by the Shopping Mediator with the shopping servers through a Merchant Server API, made up of methods used to retrieve, reset and purchase a shopping cart on a shopping server that supports the API.

We believe that increased support for collaboration and cooperation is a logical next step in the evolution of the WWW. We have developed an architecture aimed at supporting, as a particular kind of collaboration on the Web, the idea of a novel form of electronic commerce involving multiple users simultaneously shopping together on multiple shopping sites.