Overview of E-commerce technology

Electronic commerce

Any web site that offers products and/or services for sale is a commercial web site. There are thousands of commercial web sites on the Internet. Some of them have been successful, and some weren't so lucky. What elements make up a good commercial web site? Of course, web pages should look attractive to a customer. However, even the most attractive web pages will not make a person come back to a web site where it takes too long to find the right product or where order forms don't work. In this lecture we will discuss what functionality is needed for a successful commercial web site and what technology implements various web site elements.

Examples of commercial web sites

Let's browse the following two web sites, which are fairly typical web sites for online shopping.

Components of a well-functioning commercial web site

A well-organized web site should be easy for a customer to use and easy for the owner to maintain. It takes a lot to build a well-organized web site. Below is a list of the most important elements that a good web site should have:
  1. A well-organized collection of products and/or services. Smaller web sites can just list all their products on one or several web pages. Larger sites provide indices of products and search engines so that customers can find what they need. There should be a way for customers to get all necessary information about products, compare several products, get an advice on related products that they might want to get, etc.
    To maintain a web site, the owner should be able to change product information easily. A web site where a price change of a single product requires changing 3 web pages is just bound to have inconsistencies. The owner should be able to add or remove products based on every day's availability, change prices, add product cross-references, etc. without making the web site inconsistent even for a minute.
  2. A convenient way for a customer to select products. Usually implemented as a shopping cart or a shopping basket. The customer should be able to select and delete products while browsing the web site.
  3. Convenient order forms. The form should be flexible enough to allow to specify a different address for the product delivery, a gift message, etc. It should have as few required fields as possible. A returning customer should be provided default information so that not to type it every time. For both the customer and the owner it is essential that the form catches simple typos (s.a. 4 digits in a zip code).
  4. Convenient ways of payment. There should be options of paying by a credit card, by a check (not everyone has credit cards!), and by a credit card over the phone if the customer is not comfortable sending his/her credit card number. The options may include some electronic payment systems.
    For the owner, there should be a quick way to verify the credit card information or in some other way to check that the payment is valid.
  5. Secure communication system not only to protect transmission of a credit card number, but also to guarantee privacy of the customer (including details of the purchase). A web site might have a user registration system with a password, in which case all transactions by the user should be private. It is also important to prevent unauthorized access to the web site (by a hacker or accidental).
  6. Some way of storing information about customers. This is convenient for customers so that they don't need to reenter their information every time they access the site. It also allows to "customize" the web site for someone's interests. This can be done via customer registration or by means of "cookies", which we will discuss later.
    The owner can benefit a lot from storing information about a customer: he/she can customize ads based on the customer's profile or send an e-mail advertising a new product (but keep in mind that many people don't like this!) However, the greatest benefit is the owner's ability to monitor customer's behaviour: which pages have the customer visited and which purchases (if any) he/she have made afterwards.
  7. A way of keeping information about orders. This allows customers to track their orders, and for owners to get all kinds of financial and statistical information. It is also important to keep order information in case of later disputes.
  8. The last, but not the least, customer support and feedback. There should be online documentation for all products ever sold on the web site, various FAQs, and, ideally, a way of customers to post their opinion about the product. Easy access to this information may make a difference between a frequently visited web site and a lonely online looser.
    This aspect of a web site cannot be completely mechanized: a human being has to answer e-mail, judge the relevance of customer's comments (otherwise the web site may be flooded with nonsense), organize comments by topics, and so on. However, there is a lot that can be computer-aided in this process, for instance sorting incoming messages by their title and/or return address to forward them to an appropriate customer support person.
Note that we are only considering business-to-customer interactions here (so-called B2C), leaving out all the features related to business-to-business (B2B) interactions. While such interactions are basically similar to B2C, they can be optimized if a company has stable business partners which have more powerful computers than an average customer does. Even a customer oriented web site has a B2B part when dealing with vendors of products. We are not considering B2B connections in designing a web site.

Some technologies used to implement all this

  1. Convenient storage and retrieval of information about products and customers require a database.
    Some terminology: A database is a collection of data organized in such a way that it can be easily accessed, managed, and updated. A query is a request to a database written in a form that's supported by the database. Every brand of databases has its own language of queries (a query language).
    A well-organized database allows you to store each piece of information only once, so if you need to change it, you change it in one place. Databases allow you to store information about orders, needed both for you and for customers. For instance, customers can track their orders by requesting information from the database, which will automatically reply whether the order has been shipped. You can use customer information to fill in forms for returning customers with their recorded information. You can store statistics about customers (how many times they have visited the web sites, which pages, what did they buy, and so on). Customer's feedback about products can be organized and displayed later when someone else is interested in the same product. It's hard to imagine an interesting web site that does not have a database behind it.
    There are various kinds of databases, from a simple one, which is a collection of "flat" files storing data, to very sophisticated commercial products, s.a. ORACLE. The most common kind is a relational database.
    A relational database is a database organized as a collection of tables.
    In this course we will use a simple relational database called McKoi database.
  2. A convenient interface to the database from the web site. A customer does not need to know anything even about the existence of the database, not to mention details of its organization. He/she should be able to get all necessary information by typing in keywords and filling in electronic forms.
    Various programming languages (for instance, Java, JavaScript) provide libraries to implement a remote connection to a database server.
    A server is a computer that provides a remote access to some service, for instance a web page server "serves" web pages, i.e. sends HTML files, graphics files, etc. in response to http requests, a databse server provides responses to database queries, and so on. One machine can provide several different services at the same time.

    A client is a computer that makes a request for a service.

    We will use a Java JDBC (Java Database Connectivity) package to facilitate a connection to a relational database. It does not depend on a particular kind of the database, as long as the database supports SQL (Structured Query Language).
    SQL is a standard for a query language of a relational database.
    An interface has to provide way for customers to fill in forms, press buttons, etc. We will use javax.swing package to build an interactive graphical interface.
  3. We need to be able to process user's forms, for instance order forms, and produce various web pages, depending on the request. Ways of processing electronic forms include various server-side scripts, s.a. CGI, PERL, asp (Active Server Pages, an extension of JavaScript) and others. We will use Java Servlets for this purpose.
  4. A web site responds to requests for web pages. It doesn't "know" where the requests have come from, so it can't tell if two requests for web pages have been made by the same user. To keep track of a user during a session (and sometimes between sessions), a web server uses cookies.
    A cookie is a small text file placed by a web server on the client machine. The file gets sent back every time the client requests a web page from the server. A cookie has an expiration time, which may be just for the session or longer.
    Java Servlet package also implements cookies.
  5. Encryption and security. A common way secure communications are implemented is via SSL (Secure Sockets Layer), which allows various forms of encryption, depending on the maximum level of encryption provided by the server and the client and on geographic location of the machines (a different level of encryption is allowed in the US for connections to domestic and foreign computers). We will study and compare several encryption algorithms. On the practical side, we will use Java packages which implement encryption and secure communications.
  6. Electronic payment systems are based on customer's accounts with one of trusted vendors. A cutomer obtains certificates "signed" by the vendor which are analogous to checks ("personal money") and cash ("anonymous money"). The implementation should be such that mere copying of any piece of information transmitted in the transaction does not allow the thief to use the "money". We will study protocols for verifying validity of "checks" and "cash" in electronic transactions. We will also study ways of implementing "coins" on the Internet, i.e. certificates for small amounts of money (this allows some shortcuts in implementation, since the process of breaking even a simpler protocol may not be worth the money stolen).

Some material on this page has been adopted from a subset of online sources listed here
This page has been created and is maintained by Elena Machkasova
Comments and suggestions are welcome at emachkas@wellesley.edu

Spring Semester 2002