15-347
Web Application Development

         Thierry Sans
Why are you here?
What are the web applications
       that you use?
Let’s look at some web applications
Anatomy of a web application
Architecture of a Web Application

Client Side                                 Server Side




Web Browser                    Web Server       Database
Web Technologies




          Content

        Presentation   Resources
                       management
         Client Side
         Processing


        Multimedia
The evolution of
web applications
The Virtuous Circle



              faster, better technology


                   new usage
How web technologies have changed?
How web technologies have changed?

• Ajax (interactivity)
• HTML 5 (multimedia)


               Better
             Standards
How web technologies have changed?

• Ajax (interactivity)          • Homogeneous implementation of
                                  the standards
• HTML 5 (multimedia)
                                • Increasing speed of rendering and
                                  Javascript engines

               Better     Better
             Standards   Browsers
How web technologies have changed?

• Ajax (interactivity)               • Homogeneous implementation of
                                       the standards
• HTML 5 (multimedia)
                                     • Increasing speed of rendering and
                                       Javascript engines

               Better      Better
             Standards    Browsers

                       Better
                    Development
                       Tools
                                  • Web-oriented languages
                                  • Web frameworks
Consequence 1 (of 2)




➡   The application is moving from the server to the client

✓   Rich Content
Traditional Web Platform

Client Side                             Server Side




Web Browsers               Web Server       Database
Modern Web Platform

Client Side                             Server Side




 Smartphones and Tablets   Web Server       Database
Consequence 2




➡   Data storage and data processing are moving from the
    desktop to the cloud

๏   Cloud Computing
•   Cloud computing
       and                           are BOOMING!
        Software as a Service (SaaS)


            “More than 95% of organizations expect to maintain or
                   grow their use of software as a service (SaaS)”
     source Gartner “User Survey Analysis: Software as a Service, Enterprise Application Markets, Worldwide, 2010”
Customer Resources Management
Accounting and Billing
                          Collaboration
        E-Learning                    Web Portals
                     Content Management
        Planning
                                          E-Health
Where Web Applications are going

                   Rich Content
                        +
                 Cloud Computing
                        =
         A new way to think about software


 Web Technologies are at the heart of this change
Emerging Web Platform

Client Side                                Server Side




 Web-based Operating System   Web Server       Database
About this course
What you will learn in this course?



✓   Web development

    •   The foundations of web programming

    •   The new trend in web application development

๏   Web design
History of this course



•   Course delivered in Pittsburgh
    by Jeff Eppinger and Anthony Tomasic

    •   Undergraduate and graduate course

    •   Extremely popular

    •   Based on Java
... but this course will be all new!



➡   You are going to be part of an experimentation

✓   More emphasize on client side web development
    (Javascript and HTML 5)

✓   New programming language: Python/Django (server side)

✓   More emphasize on web security
Course Syllabus




•   Let’s look at the course webpage

    http://www.qatar.cmu.edu/~tsans/15437/
How to succeed in this class?
How to succeed in this class?



•   Come to class (fully awaken)
How to succeed in this class?



•   Come to class (fully awaken)

•   Do not rely on the slides
How to succeed in this class?



•   Come to class (fully awaken)

•   Do not rely on the slides

•   Be curious, experiment, get your hands dirty
How to succeed in this class?



•   Come to class (fully awaken)

•   Do not rely on the slides

•   Be curious, experiment, get your hands dirty

•   Start homework early ... when it is about time
How to succeed in this class?



•   Come to class (fully awaken)

•   Do not rely on the slides

•   Be curious, experiment, get your hands dirty

•   Start homework early ... when it is about time

•   Start thinking about your project now
Ready to start?

Intro

  • 1.
  • 2.
  • 3.
    What are theweb applications that you use?
  • 4.
    Let’s look atsome web applications
  • 5.
    Anatomy of aweb application
  • 6.
    Architecture of aWeb Application Client Side Server Side Web Browser Web Server Database
  • 7.
    Web Technologies Content Presentation Resources management Client Side Processing Multimedia
  • 8.
  • 9.
    The Virtuous Circle faster, better technology new usage
  • 10.
    How web technologieshave changed?
  • 11.
    How web technologieshave changed? • Ajax (interactivity) • HTML 5 (multimedia) Better Standards
  • 12.
    How web technologieshave changed? • Ajax (interactivity) • Homogeneous implementation of the standards • HTML 5 (multimedia) • Increasing speed of rendering and Javascript engines Better Better Standards Browsers
  • 13.
    How web technologieshave changed? • Ajax (interactivity) • Homogeneous implementation of the standards • HTML 5 (multimedia) • Increasing speed of rendering and Javascript engines Better Better Standards Browsers Better Development Tools • Web-oriented languages • Web frameworks
  • 14.
    Consequence 1 (of2) ➡ The application is moving from the server to the client ✓ Rich Content
  • 15.
    Traditional Web Platform ClientSide Server Side Web Browsers Web Server Database
  • 16.
    Modern Web Platform ClientSide Server Side Smartphones and Tablets Web Server Database
  • 17.
    Consequence 2 ➡ Data storage and data processing are moving from the desktop to the cloud ๏ Cloud Computing
  • 18.
    Cloud computing and are BOOMING! Software as a Service (SaaS) “More than 95% of organizations expect to maintain or grow their use of software as a service (SaaS)” source Gartner “User Survey Analysis: Software as a Service, Enterprise Application Markets, Worldwide, 2010”
  • 19.
    Customer Resources Management Accountingand Billing Collaboration E-Learning Web Portals Content Management Planning E-Health
  • 20.
    Where Web Applicationsare going Rich Content + Cloud Computing = A new way to think about software Web Technologies are at the heart of this change
  • 21.
    Emerging Web Platform ClientSide Server Side Web-based Operating System Web Server Database
  • 22.
  • 23.
    What you willlearn in this course? ✓ Web development • The foundations of web programming • The new trend in web application development ๏ Web design
  • 26.
    History of thiscourse • Course delivered in Pittsburgh by Jeff Eppinger and Anthony Tomasic • Undergraduate and graduate course • Extremely popular • Based on Java
  • 27.
    ... but thiscourse will be all new! ➡ You are going to be part of an experimentation ✓ More emphasize on client side web development (Javascript and HTML 5) ✓ New programming language: Python/Django (server side) ✓ More emphasize on web security
  • 28.
    Course Syllabus • Let’s look at the course webpage http://www.qatar.cmu.edu/~tsans/15437/
  • 29.
    How to succeedin this class?
  • 30.
    How to succeedin this class? • Come to class (fully awaken)
  • 31.
    How to succeedin this class? • Come to class (fully awaken) • Do not rely on the slides
  • 32.
    How to succeedin this class? • Come to class (fully awaken) • Do not rely on the slides • Be curious, experiment, get your hands dirty
  • 33.
    How to succeedin this class? • Come to class (fully awaken) • Do not rely on the slides • Be curious, experiment, get your hands dirty • Start homework early ... when it is about time
  • 34.
    How to succeedin this class? • Come to class (fully awaken) • Do not rely on the slides • Be curious, experiment, get your hands dirty • Start homework early ... when it is about time • Start thinking about your project now
  • 35.