COMP9321 Web Application Engineering Semester 1, 2014 Srikumar Venugopal Service Oriented Computing Group, CSE, UNSW Week 1 S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 1 / 19 E-Com Stream Overview COMP9321 is the first course in the three-part series of e-Commerce stream ( COMP9321 → COMP9322 → COMP9323) COMP9321 - the basic infrastructure for building *not so trivial* web applications main objective is to be comfortable with the idea of building a single, fully functional web application yourself, from scratch COMP9322 - more advanced infrastructure for supporting business applications integration main objective is to learn how to make separate applications to work together as one (without building the integrated system from scratch) COMP9323 - project main objective is to practice what you learned in COMP9321 and COMP9322 by implementing sizeable projects S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 2 / 19 What Are You Going to Learn in COMP9321? the course title: Web Application Engineering Let us start with: Web and Application http://www.w3.org/2004/Talks/w3c10-HowItAllStarted Sir. Tim Berners-Lee, Inventor of the Web (still very active in semantic-web@w3.org) 1989, B-L proposes a global hypertext project called “World-Wide-Web” Universal “Readership” - anywhere, any machine, same document 1991, started with around 50 Web sites 1993, GUI-browser (Mosaic) Today, www.internetworldstats.com http://www.computerhistory.org/internet_history/full_size_images/berners-lee.jpg S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 3 / 19 Basic Web Architecture: Universal Readership ... S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 4 / 19 ”It’s software Jim, but not as we know it” Why are web apps different ? S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 5 / 19 What are we aiming for.. the course title: Web Application Engineering Now Engineering1 ... Building a Web site is easy enough: HTML and a Web server ... Building a Web application requires a greater degree of modeling, more sophisticated tools, and a well defined, repeatable process. Web Application Architecture: 1http://www.ibm.com/developerworks/ibm/library/it-booch web/ S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 6 / 19 Web Application Architecture: Layers Data Access Layer Business Logic Layer Presentation Logic Layer Presentation/GUI Data Storage End-User's System HTML/Forms, etc. Physically on the client's system (browser) Server-side programming producing HTML/XML and other content Server-side programming Business objects and rules, data manipulation/transformation Server-side programming Interface with DB, handles data IO Database/Storage S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 7 / 19 Learning Outcomes At the end of this course, you should be able to: Design and implement a complete Web application from scratch Identify and apply design patterns wherever appropriate Identify performance bottlenecks in your application Apply techniques to increase the performance and scalability of your application S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 8 / 19 What we WILL teach you Constructing a web applications using Java Servlets, JDBC and Java Server Pages (JSPs) Using XML in Web Applications Managing users JDBC and accessing DB from your web applications Design Patterns (MVC for Web,etc..) How to measure and analyse the performance of your web application How to secure your web application Privacy issues S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 9 / 19 What we WILL NOT teach you PHP / Perl/ Python HTML (4 or 5) Javascript Java / Object-oriented programming (You need to know) SQL (You need to know) Web Application Frameworks S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 10 / 19 Rough Schedule Date Topic Week 1 Web Fundamentals Weeks 2-4 Server-Side Programming (Servlets, JSP) Week 4 XML and the Web Week 5 Data Access in Web Applications Week 6 Design Patterns Week 7 Design patterns (contd.) Weeks 8,9 Performance and Scalability Week 10 Web Application Security & Privacy, Wrapup, Exam Week 11 Cloud Computing (Pt. 1) Week 12 Cloud Computing (Pt. 2) S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 11 / 19 Teaching Philosophy “Explain and you’ll forget; Demonstrate and you may remember; Practice and you’ll internalize” - Ripped from an anonymous proverb :) S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 12 / 19 Course Outline This course consists of: 12 weeks of lectures 1 individual assignment - 10 marks - due Week 5 1 group assignment - 25 marks (group of 2 max) - due Week 8 1 group assignment - 15 marks (group of 2 max) - due Week 12 1 final exam (50%) - individual Assignments are graded on Specs, Quality of Demo and Innovation. S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 13 / 19 Assessment Formula assignments = 50 final_exam = 50 overall_mark = assign_tot + final_exam, if final_exam is >= 22.5 = min(46, (assign_total+final_exam)), otherwise S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 14 / 19 Support Staff Lecturer-in-Charge Srikumar Venugopal srikumarv@cse.unsw.edu.au Office: K17 412B, Ext: 56255 Consultation: in lecture or by appointment and MessageBoard - all questions re: labs and assignments. Do not email me personally about lab/assignment questions. All questions should be openly asked and answered via the Messageboard. S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 15 / 19 COMP9321 Supp Exam Policy Supplementary examination will only be granted when a student was not able to attend the final exam for reasons beyond the student’s control (eg., sickness), and submitted a special consideration at the Student Centre within three working days after the examination day. Note, however, if you attended the final exam, I will interpret that illness, misadventure or other circumstance beyond your control: has not affected your preparation for the final exam; has not affected you on the day of the exam and you will not be considered for supplementary assessment. In other words, if your preparational ability to sit the exam has been affected by your sickness, then do not attend the exam. S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 16 / 19 Other notes Programming - Java is the base language for this course. Assignments must be carried out in Java. We cannot help you with Java syntax. Laptop Usage - Laptop use is encouraged during lecture. But, please do not play games. It distracts your neighbours as well. Group assignments - You will get same mark for the group assignment irrespective of how the load was shared. If you have problems with the performance of your team mate, see me early. Lecture participation - Please try to attend all lectures and participate by asking questions and initiating discussions. Please check the messageboard regularly to keep up with the material explained in class and clarifications for assignment specs. S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 17 / 19 Course evaluation and feedback This course is evaluated through UNSW’s CATEI (Course And Teaching Evaluation and Improvement) system. CATEI is an electronic survey system and is carried out at the end of the session CATEI is anonymous. I will not know the authors of the comments. However, feel free to suggest improvements during the session informally (I really appreciate these) I’ll try to address these to the best of my ability S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 18 / 19 Feedback from CATEI 13s2 Automarking of Assignment 1 will be improved. Catch-up Labs will be provided in Week 3, 7 and 11 Assignment specs will be made more tighter. S. Venugopal (CSE, UNSW) COMP9321, 14s1 Week 1 19 / 19