Computer Science Department
New
Course
COSC
415 - Internet Architecture and Programming
I. Catalog Description
COSC 415 Internet Architecture and Programming 3
credits
3
lecture hours
0
lab hours
(3c-0l-3sh)
Prerequisites: COSC 304 and COSC 310 or instructor's
approval.
Co-requisite: COSC 341
This course covers the fundamental
architecture of Internet systems and the process of developing computer
applications running on the Internet in general and on the world-wide-Web in
particular. Students will first gain
basic understanding of the TCP/IP protocols and the client/server
technology. Methods, languages and tools
for developing distributed applications on the Internet will be evaluated. Programming projects developing distributed applications,
using a representative suite of development tools and languages, are integral
part of this course.
II. Course Objectives
Upon successful
completion of the course, the student will be able to
A.
Understand
the architecture and operation of client/server applications in a
multi-platform, multi-server networking environment.
B.
Design
and implement simple Web-based applications employing distributed software
components, including front-end clients, middleware, and back-end servers.
C.
Employ
alternative tools and techniques for Internet-based system development,
including
1.
Client
side scripting such as JavaScript, VB Script, variations of HTMLs, and XML;
2.
Server
side activation mechanisms such as Active Server Pages (ASP), Java Servlets,
Java Server Pages (JSP), Server-side JavaScript, Server-side VBScript, and CGI
(Common Gateway Interface).
D.
Design and implement database connectivity in a Web-based
application.
E.
Gain
an in-depth awareness of problems and solutions related to Internet-based development,
such as security, privacy, and internationalization.
F.
Discuss various Internet-based software
applications and their underlying framework, such as Web-based documentation
retrieval systems, online transactions (such as banking, auctions, e-commerce,
digital libraries, search engines, et al), group-based collaboration over the
Internet, Web-based utilities (such as calendars, planners), Web-based
entertainment, Web-based publishing, et al.
G.
Describe the evolution of existing tools
such as component-based distributed standards, as well as major future
directions of new tools, techniques, applications, and paradigms for developing
distributed applications, such as distributed expert systems, mobile agents,
and distributed databases.
III. Detailed Course Outline
1.
Fundamental Architecture of Internet-based Systems. (3
hrs)
Introduction to networking, the Internet, and the World Wide
Web. Brief introduction to the history
and evolution of the Internet. The
networking topologies and layers of networking software. The request and service relationship between
two processes over the network.
Introduction to the TCP/IP protocol suite and the HTTP protocol. Introduction to the concept of processes and
inter-process communication (IPC).
Discussion of TCP/IP Berkeley sockets and its underlying mechanism of
communication. Different types of
sockets, including the stream sockets, datagram sockets, and sequenced packet
sockets.
2.
Client/Server
Architecture, Sample Applications and Their Underlying Framework. (3 hrs)
Two-tier client/server model and examples. Client/Server as a special case of
distributed computing. Database
connectivity on the Web. Multi-tier
client/server model and examples. Web-based
documentation retrieval systems. Online
transactions such as banking, auctions, e-commerce, digital libraries, search
engines, et al. Group-based
collaboration, planning, and development over the Internet. Web-based utility programs such as calendars,
planners, et al. Web-based entertainment
such as Web TV, music, movies, games, et al.
Web-based publishing of books and multimedia information.
3.
Client-side
Programming Tools. (6 hrs)
Discussion of the existing client-side programming tools such as
HTML, Dynamic HTML, VRML, XML, JavaScript, VB Script, and Java Applets. Study of sample programs and hands-on
experience.
4.
Web
Servers. (3 hrs)
Discussion of major Web servers available in various platforms,
such as Microsoft Personal Web Server and Internet Information Server (IIS),
Netscape Enterprise Server, and the Apache server. Discussion of the role of a Web server in
integrating the client and the server processes. Responsibilities of the Web administrator.
5.
The
Client/Server Enabling Technology.
a.
Remote
Procedure Call (RPC) (3 hrs)
Discussion of how the client process invokes a remotely located
procedure (in the server process) and how the remote procedure executes and
sends the response back to the client process.
Discussion of sample programs.
Analysis of the strengths and weaknesses of RPC.
b.
Remote
Data Access (RDA) and Web Database Connectivity (3 hrs)
Discussion of how the client programs and/or end-user tools
issue database queries against remotely located databases. Discussion of database connectivity in
various development tools (such as JDBC in Java,
c.
Message-Oriented
Middleware (MOM) (3 hrs)
Discussion of the queued message processing (QMP) paradigm. Discussion of how MOM supports the QMP
paradigm in a client/server environment.
Analysis of the strengths and weaknesses of the QMP paradigm.
6.
Server-side
Programming Mechanisms and Tools. (6 hrs)
Discussion of server side programming mechanisms and tools, such
as CGI (Common Gateway Interface), ASP (Active Server Pages), Java servlets,
and JSP (Java Server Pages). Brief
introduction to the Perl programming language.
Study of sample programs and hands-on experience.
7.
Design
of Distributed Transaction Processing (DTP) (6 hrs)
Discussion of transaction processing concepts. The ACID properties of a transaction:
atomicity, consistency, isolation, and durability. Discussion of serializability (concurrency
control) and commit processing.
Introduction to distributed transaction processing. Two-phase commit algorithm. Sample DTP applications.
8.
Related Topics (3 hrs)
a.
Distributed
Objects and Component-Based Development
b.
Application
servers
c.
Security
issues: encryption, liability, audit, confidentiality, and integrity, et al.
d.
Distributed
database systems
e.
Artificial
intelligence: agents and distributed expert systems
f.
Data
aggregation using XML
g.
Internationalization/Localization
of information on the Internet
IV. Evaluation Methods
The final grade for
the course will be determined as follows:
50%
Examinations. Three in-class
exams, each counting 9%; one final exam counting 23%.
40%
Projects/Assignments. Four
programming assignments, each counting 10%.
These assignments are directly related to the objectives.
10%
Quizzes. Five announced quizzes
on the lecture material, each counting 2%.
Grading Scale: The standard grading scale will
be used.
90%+
= A; 80-89% = B; 70-79% = C; 60-69% = D; below 60% = F.
Suggested Projects:
Project #1: Dynamic Web Page. (duration: 3 weeks)
Create a dynamic Web page using
HTML and one of the client-side scripting languages such as JavaScript,
Vbscript, or Java applets. Students
would be required to create a dynamic Web page using one of the scripting
languages.
Project #2: Client/Server
Programming. (duration: 3 weeks)
Create a pair of client and
server programs. Students would be
required to write a basic client/server application. The client program is a dynamic Web page
enhanced by a client-side scripting languages.
The client program presents a form for online viewers to send their
names, email addresses, and comments to the Web server. The server program would be implemented using
one of the server-side programming methods, such as Java servlet, CGI, Java
Server Page (JSP), or Active Server Page (ASP).
The server program is in charge of receiving the data submitted by the
client and appending the data into a file on the Web server.
Project #3: Web-based Database
Connectivity. (duration: 3 weeks)
Create a pair of client and
server programs involving the use of database server(s) on the Web. Students would be required to enhance their
programs from project #2, or a sample solution to project #2 provided by the
instructor, by saving multiple user data into a database, which is linked to
the server program. In addition, the
client program needs to be revised to allow the user to issue data
retrieval/update queries. The server
program needs to be revised such that it is capable of connecting to a database
and submitting embedded SQL queries to the database server(s). The student would choose a connectivity
module appropriate to their choice of server implementation mechanisms.
Project #4: Multi-tier
Distributed Transaction Processing System (duration: 3 weeks)
Create a distributed
transaction processing project. Students
would be required to modify their programs from project #3, or a sample
solution to project #3 provided by the instructor, by employing distributed transaction
processing techniques. The server
program would be able to process simultaneous read/write requests issued by
multiple clients. Students would be
required to design various data access patterns and validate the serializability property
exhibited by the server program.