Marcin Skubiszewski
This course teaches technical foundations of electronic commerce. We begin with a brief overview of the architecture of computers, and with a description of the principles governing the Internet. We then introduce the World-Wide Web, and the technologies that are directly involved in building electronic commerce applications: the Java language, JSP (Java Servlet Pages), Jakarta Struts, and relational databases. As a practical exercice, we describe in detail a typical electronic commerce application: a web-based Internet store. During laboratory work associated with this course, students build significant fragments of the store.
Additionally, we discuss computer security and the market of Internet-related software (these subjects will only be discussed if time permits).
Compiled code is a representation of a program that can be directly executed by a computer. Compiled code is very hard to understand by a human.
Source code is a representation of a program in a programming language (e.g., Java). Source code is easy to write, understand and modify by a human. Source code cannot be directly executed by a computer; instead, it can be compiled, and the resulting compiled code can be executed.
Pseudocode is a representation of a program that can be executed with the help of another program, called virtual machine. Pseudocode is used in the execution of Java programs (including programs that are going to be written as part of laboratory work associated with this course).
In this item, we describe briefly two fundamental components of the Internet: the Internet Protocol (IP) and the Domain Name Service (DNS).
In this item, we describe briefly a fundamental component of the Internet, the Transmission Control Protocol (TCP).
Cookies allow a web server to identify requests as coming from a given user.
Accessibility is the collective name given
to the issues related to users whose access to the web is somehow
restricted (e.g., blind users, or users with slow connections based
on cell phones).
This part of the course is centered around the Internet store project.
This item is covered in the document describing the project, entitled The Internet Store Project.
We introduce the major elements that need to be developed as part of the project:
This item is covered in the document describing the project.
In this item, we explain the principles according to which a programming project should be partitioned into smaller parts (modules). Each module must do a limited number of conceptually simple things.
An object is a composite data structre representing a real-world object, fact or relationship. An object comes with a number of associated pieces of programming, called methods. Objects are Java's way to achieve modularity.
In this item, we describe various Java constructs necessary for completing the project.
The model represents our business logic. The view represents the way in which we create webpages. The controller organizes the application.
A relation is a set of records, called tuples, that represent real-world objects or facts of a given kind, and that conform to a common format.
For example, a table called customers may contain, for every customer of a store, a tuple containing the customer's name, her address, and other relevant information.
SQL (simple query language) is the language used to retrieve data from (or to insert data into) database tables.
An index is an auxiliary data structure that makes it possible to rapidly retrieve tuples from a table, based on certain values stored in said tuples (for example, to retrieve a tuple representing a customer, based on the customer's name).
Due to time constraints, the treatment of this item will be very brief.
The entity-relationship model teaches us how to organize information in a database: the database should contain a table for every category of real-world objects that we want to describe (these objects are called entities), and for every kind of relationship between such objects.
Due to time constraints, the treatment of this item will be very brief.
The mechanisms used to solve consistency problems in databases are collectively called transactions.
JDBC is a library that allows Java programs to access relational databases. Once you understand relational databases, JDBC is simple to use, and therefore our course about JDBC will be short.
Due to time constraints, it is likely that the subject matter described below will not be tought.
A majority of successful and truly harmful attacks comes from employees of the organization being attacked. It is often very hard to defend against such attacks
This is the easiest way to attack a computer, because adequate software is readily available and easy to use. Every server accessible from the Internet is targetted several times a day by attacks of this kind.
A denial of service attack is less severe than other kinds of attacks: the purpose is just to temporarily disrupt the operation of the targetted computer, and not destroy or steal data (as is the case with most other attacks).
Denial of services attacks are very hard to defend against, and for this reason they deserve being discussed.
Sandboxing consists in severly limiting what a given program can do (enclosing the program in a sandbox), so that the program cannot do harm. Sandboxing is used whenever a web browser executes a program downloaded from the Internet.
This is the traditional kind of encryption, it has been used for many years by the military.
In a modern cryptosystem we distinguish between the algorithm (the general encryption method, expressed as a computer program) and the key (a randomly chosen sequence of bits used in the encryption process). The algorithm and the key are both necessary for a cryptosystem to work.
While in older cryptosystems everything was secret, in modern systems the algorithm is publicly known, and only the key is secret.
We explain the surprising fact that it is better to use a publicly-known algorithm than a secret one.
Public key cryptography is a modern technique that allows you to communicate in a secure way with people whom you never met before, and with whom you have never communicated before.
For example, you can use public key cryptography to place an order with a bank with which you never did business before, and be certain (i) that you are indeed talking to the bank in question, not to an impersonator, and (ii) that the communication is kept secret.
The market of internet-related software is deeply influenced by two phenomena:
Open source software exists for almost all the tasks that are commonly performed using computers (including, of course, the operation of a web server). Its use is especially widespread in Internet servers.
Unlike commercial software developers, open source software developers receive no money and no direct benefit whatsoever in exchange for their software. Therefore, the abundance of open source (free) software is astonishing: at first sight, free software should not be any more abundant than free lunches. We describe the strengths of open source software, that lead to its abundance.
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.62)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html outline.tex
The translation was initiated by Marcin Skubiszewski on 2003-02-19