Web Architecture and Application Development
Prerequisites: COSC 310 and COSC 341 or instructor’s approval
Covers the fundamental architecture of Internet based systems and development of computer applications running on the World-Wide-Web. Course presents the TCP/IP, UDP and HTTP protocols, HTML, and then progresses through different technologies to support dynamic Web applications. Main focus will be on one of i) J2EE architecture, ii) .NET architecture, or iii) other prevailing Internet architecture. Each of the technologies involved with the selected architecture will be critiqued with regard to ease of development, maintainability, and scalability. Issues such as state management, distributed processing, security, and internationalization will be discussed.
Course Outcomes
Upon successful completion of this course, the student will be able to:
A. Explain and use basic building blocks for the Internet and Web, including: sockets, datagrams, HTML/XHTML, HTTP, and Scripting (e.g. JavaScript, VBScript)
B. List the major technologies of the selected Internet architecture and describe the purpose of each.
C. Design and implement Web-based applications employing the technologies of the selected Internet architecture. Applications may include access and update of data in a database.
D. Discuss problems and solutions related to Internet-based development such as security, privacy, state management, maintenance, scalability, and internationalization.
E. Discuss the underlying framework for Internet-based software applications 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.
F. Describe the evolution of existing Web technologies, as well as major future directions of new tools, techniques, applications, and paradigms for developing Web applications.
Detailed Course Outline
A. Fundamental Architecture of Internet-based Systems. (3 hours)
1. Introduction to networking
2. History of the Internet
3. TCP/IP and sockets
4. UDP and datagrams
5. Distributed processing
6. Remote Procedure Calls (RPC) and Remote Method Invocation
B. Building Web Based Applications. (10 hours)
1. HTTP protocol
2. HTML/XHTML basics
3. HTML/XHTML forms and controls
4. HTML/XHTML tables
5. Core technology of selected architecture to support dynamic we pages (e.g. Servlets)
6. Server side scripting technology of selected architecture (e.g. JSP or ASP)
7. Access and update of persistent data (e.g. a database)
8. Three tier architecture
9. State management strategies
C. Client-side Programming (3 hours)
1. JavaScript, VB Script, and/or other prevailing client side scripting language.
2. The DOM representation of a web page
3. Java Applets, Active X, and/or other prevailing client side plug in technology.
4. Use of scripting for validations, enhanced interactivity, and/ or animations
D. Developing Scaleable Enterprise Level Applications. (9 hours)
1. Technologies to extend HTML tags (e.g. custom tags)
2. Model 1 vs. Model 2 (i.e. Model View Controller MVC)
3. Separation of business logic from presentation
4. Security
5. Internationalization
6. Scalability
7. Maintenance
8. Review of sample applications (e.g. On-Line store application, E-Books, and Web-based Document Management)
9. Introduction to a framework
E. Team Project (or equivalent) (12 hours)
1. Selection of an sample application
2. Story board design of the pages composing the application
3. Design and implementation of the application in a chosen framework
F. Future directions on the Web and related topics. (3 hours)
In-class examinations (2 hours)
Total (42 hours)
Final (2 hours)
Evaluation Method
The final grade for the course will be determined as follows:
Exam 1 – course content to date 15 %
Exam 2 – rest of course content 15 %
Final – comprehensive 20 %
Various reinforcement projects 10 %
Contribution to the team developed Web application 30 %
Class participation 10 %
Grading Scale:
The following scale for the sum of the above scores will be used.
90 - 100% A
80 - 89% B
70 - 79% C
60 - 69% D
0 - 59% F
Undergraduate Attendance Policy
Class attendance is regarded as being very important. Individual faculty may establish penalties for excessive number of unexcused absences. Excused absences will be allowed for illness, family emergencies, and involvement in university activities, such as sports. The penalties specified will meet university guidelines and be distributed to students with the course syllabus on the first day of class.
Textbook
Java Enterprise in a Nutshell, Farley, Jim and Crawford, William, O’Reilly, Copyright 2005, ISBN 0-596-10142-2
Teach Yourself HTML and XHTML, Hayes, SAMS, 2002