Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 308 Software Engineering World Wide Web Apps.

Similar presentations


Presentation on theme: "CSE 308 Software Engineering World Wide Web Apps."— Presentation transcript:

1 CSE 308 Software Engineering World Wide Web Apps

2 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

3 Did someone say teams? Round 2

4 LFM

5 LFG

6 How will we place software engineers? The 6 LFM Groups will: 1. Interview the candidates 2. Discuss hiring preferences 3. me their hiring preferences ranked 1-3 When? – at the end of class Then what? – I'll notify teams of assignments

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

8 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

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

10 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:

11 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

12 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

13 Web users have high expectations Want apps that are: fast elegant user friendly dynamic mobile secure social cross-platform solve customer pain

14 A brief history of the Internet 1960s AT&T Modem 1969 ARPANET Launched 1970s TCP/IP Proposed 1980s TCP/IP Fully Adopted 1970s Invented 1980s WWW Proposed 1990s WWW Online 1990s Mosaic Invented 1970s Compuserve ISP Launch 1990s Search Engine Invented 1990s JavaScript Invented 2000s Globalized Connections & Innovations 2000s Mobile Everything 2000s Social Everything 2000s The Computer Utility?

15 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

16 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.

17 WWW Tech Generations Early 1990s 1 St – Flat HTML files, images, etc. Mid 1990s 2 nd – CGI, Perl, etc. Late 1990s 3 rd – Application Servers, Java, C#, etc. Late 2000s 4 th – The Cloud, CDNs GAE, AWS, etc.

18 What is JavaEE? Java Enterprise Edition Tools & APIs for eCommerce Good News & Bad News

19 JavaEE Setup is much of the battle

20 A brief history of JavaEE 1 st Generation – Servlets 2 nd Generation – Java Server Pages 3 rd Generation – Java Server Faces

21 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

22 What's a Web Form? HTML component Specify submit actions – route to action URL/method (i.e. servlet) Ex:

23 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(...

24 Oversimplified Servlet Architecture HTML PAGE Web Form Browser JavaEE Server HttpServlet doGet(... request HTML PAGE response

25 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 = req.getParameter(" "); … NOW DO SOMETHING WITH THIS INFO resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html> resp has output stream use to build response

26 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

27 Poor form: JSPs with scriptlets

28 Better form: JSPs with JSTL

29 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

30 Better form: JSPs with JSTL

31 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)


Download ppt "CSE 308 Software Engineering World Wide Web Apps."

Similar presentations


Ads by Google