360 likes | 557 Views
CIT3100 – Internet Programming III Web Applications Lesson 1 (28 Sep 05). Fernando J. Maymí fernando@maymi.net. Agenda for tonight. Introductions Who we are, and What do we want to be when we grow up? World-Wide Web Communications Web Application Development User Interface Design.
E N D
CIT3100 – Internet Programming IIIWeb ApplicationsLesson 1 (28 Sep 05) Fernando J. Maymí fernando@maymi.net
Agenda for tonight • Introductions • Who we are, and • What do we want to be when we grow up? • World-Wide Web Communications • Web Application Development • User Interface Design
Hyper-Text Transfer Protocol • Defined in RFC 2616 (for version 1.1) • Encapsulated in a TCP segment • Request/response message protocol • Command • Blank line • Header fields • Blank line • Message GET /file.html HTTP/1.1 <CR><LF> Host: www.google.com <CR><LF> HTTP/1.1 200 OK <CR><LF> Content-Type: text/html <CR><LF> <html><body>...</html>
Hello Internet GET HTTP/1.1 HTTP/1.1 200 OK Content-Type: text/html <html><body> <img src=“img/happyface.gif”> ...</body></html> GET img/happyface.gif HTTP/1.1 HTTP/1.1 200 OK Content-Type: img/gif /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQND... Simple HTTP Request Web Server Web Client
Client-Side Scripting • Client scripts are interpreted by the web browser • Client scripts can: • Alter the appearance of the document • Validate form fields • Perform general computational tasks • Client scripts can be embedded or attached
JS Internet GET /hello.html HTTP/1.1 HTTP/1.1 200 OK Content-Type: text/html <html><head> <script language=“JavaScript”> <!-- alert(“Welcome to my world”) --> </script> </head><body>...</body></html> HTTP With JavaScript Web Server Web Client The client browser parses the HTML, finds the script and executes it locally
Server-Side Scripting • Server scripts are interpreted by the web server • Common languages are • PHP • ASP • JSP • Perl • Server scripts produce HTTP data
Internet GET /hello.php HTTP/1.1 HTTP/1.1 200 OK Content-Type: text/html <html><body> <img src=“img/happyface.gif”> ...</body></html> HTTP on Demand 1. Web server loads the script from its file system Web Server 2. Web server passes the script to the interpreter Web Client 3. The interpreter runs the script and passes its output to the web server 4. The web server blindly passes the output to the client
3-Tier Architectures • 3 Tiers are: • Web Client • Web Server • Database Server • Essential for scalability • Enhances security
Internet GET items.php HTTP/1.1 SELECT name, price FROM items Widget,50.0 Nails,0.05 Bolts,0.10 HTTP/1.1 200 OK Content-Type: text/html <html><body><h1>Items</h1><table><tr><td>Widget</td><td>$50. Data-driven HTTP Request Items Database Server Web Server Web Client PHP Engine
Your Turn… • Download and install the Paros proxy • http://www.parosproxy.org/download.shtml • Setup your browser to use it as a proxy • Enable trapping of both requests and responses • Visit your favorite web site and see what happens
Project Phases • Planning • Why build the system? • Analysis • Who, what, when, where will the system be? • Design • How will the system work? • Implementation • System delivery
Planning • Identifying business value • Analyze feasibility • Develop work plan • Staff the project • Control and direct project
Analysis • Analysis • Information gathering • Process modeling • Data modeling
Design • Physical design • Architectural design • Interface design • Database and file design • Program design
Implementation • Construction • Installation
Process Product Project Plan System Proposal System Specification New System and Maintenance Plan Planning Analysis Design Implementation Processes and Deliverables
Principles of UI Design • Layout • Content awareness • Aesthetics • User experience • Consistency • Minimal user effort
Layout • The screen is often divided into three boxes • Navigation area (top) • Status area (bottom) • Work area (middle) • Information can be presented in multiple areas • Like areas should be grouped together
Layout (cont’d) • Areas and information should minimize user movement from one to another • Ideally, areas will remain consistent in • Size • Shape • Placement for entering data • Reports presenting retrieved data
Content Awareness • All interfaces should have titles • Menus should show • where you are • where you came from to get there • It should be clear what information is within each area • Fields and field labels should be selected carefully • Use dates and version numbers to aid system users
Aesthetics • Interfaces need to be functional and inviting to use • Avoid squeezing in too much, particularly for novice users • Design text carefully • Be aware of font and size • Avoid using all capital letters
Aesthetics (cont’d) • Colors and patterns should be used carefully • Test quality of colors by trying the interface on a black/white monitor • Use colors to separate or categorize items
User Experience • How easy is the program to learn? • How easy is the program to use for the expert? • Consider adding shortcuts for the expert • Where there is low employee turnover, some training can lessen the impact of less precise interfaces
Consistency • Enables users to predict what will happen • Reduces learning curve • Considers items within an application and across applications • Pertains to many different levels • Navigation controls • Terminology • Report and form design
Minimize Effort • Three clicks rule • Users should be able to go from the start or main menu of a system to the information or action they want in no more than three mouse clicks or three keystrokes
Use Scenario Development • An outline of steps to perform work • Presented in a simple narrative • Document the most common cases so interface designs will be easy to use for those situations
UI Structure Design • Window navigation diagram (WND) • Shows how all screens, forms, and reports are related • Shows how user moves from one to another • Like a state diagram for the user interface • Boxes represent components • Arrows represent transitions • Stereotypes show interface type • Remember the diagram represents what will be shown to the user, NOT what the system is doing to make it work!
Your Turn… • Develop the WND for the Online Banking system