1 / 31

CSE 308 Software Engineering

World Wide Web Apps. CSE 308 Software Engineering. 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. Did someone say teams ? Round 2. LFM. LFG. How will we place software engineers?.

kalyca
Download Presentation

CSE 308 Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. World Wide Web Apps CSE 308Software Engineering

  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. Email 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: http://www.nsf.gov/publications/pub_summ.jsp?ods_key=gpg

  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 1969 ARPANET Launched 1960s AT&T Modem 1970s TCP/IP Proposed 1970s Compuserve ISP Launch 1970s Email Invented 1980s TCP/IP Fully Adopted 1980s WWW Proposed 1990s WWW Online 1990s Search Engine Invented 1990s JavaScript Invented 1990s Mosaic Invented 2000s Globalized Connections & Innovations 2000s The Computer Utility? 2000s Mobile Everything 2000s Social Everything

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

  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 1stGeneration – Servlets 2nd Generation – Java Server Pages 3rd 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 Browser JavaEE Server HTML PAGE HttpServlet request Web Form doGet(... HTML PAGE response

  25. doGet(HttpServletRequest req, HttpServletResponse resp) req has info about request use to get form data resp has output stream use to build response 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 INFO resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("<html>... ...

  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)

More Related