31
CSE 308 Software Engineering World Wide Web Apps

CSE 308 Software Engineering World Wide Web Apps

Embed Size (px)

Citation preview

Page 1: CSE 308 Software Engineering World Wide Web Apps

CSE 308Software Engineering

World Wide Web Apps

Page 2: CSE 308 Software Engineering World Wide Web Apps

Why do some apps succeed? A good idea

solves customer pain the easy part

Commitment time & energy the hard part

A great team the harder part

Page 3: CSE 308 Software Engineering World Wide Web Apps

Did someone say teams? Round 2

Page 4: CSE 308 Software Engineering World Wide Web Apps

LFM

Page 5: CSE 308 Software Engineering World Wide Web Apps

LFG

Page 6: CSE 308 Software Engineering World Wide Web Apps

How will we place software engineers?

The 6 LFM Groups will:

1. Interview the candidates

2. Discuss hiring preferences

3. Email me their hiring preferences ranked 1-3

When?

– at the end of class

Then what?

– I'll notify teams of assignments

Page 7: CSE 308 Software Engineering World Wide Web Apps

We (i.e. the CS Faculty) want: polished work visible projects positive team experiences inspired presentations

Page 8: CSE 308 Software Engineering World Wide Web Apps

Your Group Projects I'll provide a Request for Proposal

(RFP)

You'll write & submit your Proposal

Your Proposal should be for a Web App

Page 9: CSE 308 Software Engineering World Wide Web Apps

What's an RFP again? A document Describes a problem Offers grants/funding Solicits Proposals Best Proposal(s) get funded

Page 10: CSE 308 Software Engineering World Wide Web Apps

What's a Proposal? A document

describes team's accomplishments & assets

describes approach to solving problem describes how funds will be used selects PI

NSF Grant Proposal Guide:http://www.nsf.gov/publications/pub_summ.jsp?ods_key=gpg

Page 11: CSE 308 Software Engineering World Wide Web Apps

Industry vs. Academia Successful Project

In Industry

-earns company $

-earns investors $

-pays employees

-market visibility

-significant market share

-grows

-hasn't filed for bankruptcy

-exit strategy?

Successful Project

In Academia

-earns University $

-earns inventor $

-pays research assistants

-is published in journal

-is patented/sold

-launches new company

-launches new industry

-hasn't been canceled

Page 12: CSE 308 Software Engineering World Wide Web Apps

So why a Web app? Academia to Industry

i.e. good experience

Visibility i.e. more potential users:

to test to provide feedback to use

Page 13: CSE 308 Software Engineering World Wide Web Apps

Web users have high expectations

Want apps that are: fast elegant user friendly dynamic mobile secure social cross-platform solve customer pain

Page 14: CSE 308 Software Engineering World Wide Web Apps

A brief history of the Internet1960sAT&T

Modem

1969ARPANET Launched

1970sTCP/IP

Proposed

1980sTCP/IPFully

Adopted

1970sEmail

Invented

1980sWWW

Proposed

1990sWWWOnline

1990sMosaic

Invented

1970sCompuserv

eISP

Launch

1990sSearch Engine

Invented

1990sJavaScriptInvented

2000sGlobalizedConnectio

ns &Innovation

s

2000sMobile

Everything

2000sSocial

Everything

2000sThe

Computer Utility?

Page 15: CSE 308 Software Engineering World Wide Web Apps

The Web from 10,000 feet An amalgamation of tech

Held together by standards

WWW, URL, URI, HTML, XHTML, XML, HTTP, HTTPS, TCP, IP, UDP, FTP, MIME, IMAP, DNS, JavaScript, CDN, ICANN, IANA, RSA, ICMP, LAN, WAN, POP3, WEP, WPA, LARP, LAIRE

Page 16: CSE 308 Software Engineering World Wide Web Apps

Web tech overview Front end

Gets user input, renders, talks to server HTML, JavaScript, JavaScript libraries, plug-ins,

etc.

Back end Talks to client, performs business logic, talks to

DB Java, PHP, C#, etc.

Databases Store permanent data MySQL, Oracle, JavaDB, etc.

Page 17: CSE 308 Software Engineering World Wide Web Apps

WWW Tech Generations Early 1990s

1St – Flat HTML files, images, etc.

Mid 1990s

2nd – CGI, Perl, etc.

Late 1990s

3rd – Application Servers, Java, C#, etc.

Late 2000s

4th – The Cloud, CDNs GAE, AWS, etc.

Page 18: CSE 308 Software Engineering World Wide Web Apps

What is JavaEE?

• Java Enterprise Edition

• Tools & APIs for eCommerce

• Good News & Bad News

Page 19: CSE 308 Software Engineering World Wide Web Apps

JavaEE Setup is much of the battle

Page 20: CSE 308 Software Engineering World Wide Web Apps

A brief history of JavaEE

1stGeneration – Servlets

2nd Generation – Java Server Pages

3rd Generation – Java Server Faces

Page 21: CSE 308 Software Engineering World Wide Web Apps

What is a Java Web Application?

• Runs on an application server– i.e. Glassfish, Tomcat, WebSphere

• Generates interactive Web pages with:– markup code (i.e. XML, HTML)– dynamic code (i.e. JavaScript)

• Look at WebJotto example app

Page 22: CSE 308 Software Engineering World Wide Web Apps

What's a Web Form? HTML component Specify submit actions

– route to action URL/method (i.e. servlet)

Ex:

Page 23: CSE 308 Software Engineering World Wide Web Apps

What's a raw servlet? A Java Program Sits on a Java App Server Starts upon first request You may register listeners to respond to:

– initialization, requests, destruction, etc. Servlet responds via doGet or doPost

public class MyServlet extends HttpServlet{

public void doGet(...

Page 24: CSE 308 Software Engineering World Wide Web Apps

Oversimplified Servlet Architecture

HTML PAGE

Web Form

Browser JavaEE ServerHttpServlet

doGet(...

request

HTML PAGE

response

Page 25: CSE 308 Software Engineering World Wide Web Apps

doGet(HttpServletRequest req, HttpServletResponse resp)

req

has info about request

use to get form data

public void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

String firstName = req.getParameter("firstname");String lastName = req.getParameter("lastname");String email = req.getParameter("email");… NOW DO SOMETHING WITH THIS INFOresp.setContentType("text/html");PrintWriter out = resp.getWriter();out.println("<html>......

resp

has output stream

use to build response

Page 26: CSE 308 Software Engineering World Wide Web Apps

JSPs Features:

HTML templating (i.e. pre-built partial pages) custom tags scriptlets (i.e. code mixed inside JSP)

bad idea

JavaEE 5 Use discouraged in JavaEE 6/7 Replaced by JSF/Facelets Still lots of servers out there using

them

Page 27: CSE 308 Software Engineering World Wide Web Apps

Poor form: JSPs with scriptlets

Page 28: CSE 308 Software Engineering World Wide Web Apps

Better form: JSPs with JSTL

Page 29: CSE 308 Software Engineering World Wide Web Apps

JSFs Uses:

All templating More & better Tag Libraries EL Ajax Facelet-JavaBeans mappings

changes to mapped bean variables auto refresh on client

JSPs & JSFs: processed on server to build page at time of

request

Page 30: CSE 308 Software Engineering World Wide Web Apps

Better form: JSPs with JSTL

Page 31: CSE 308 Software Engineering World Wide Web Apps

Developing Backwards What's that?

Find the deployment platform first

May not use the greatest and latest

Find your app a home before starting

Our home?

– Appspot.com (more on this later)