Web Applications: Overview and Architecture



Similar documents
Framework as a master tool in modern web development

This Record of activity confirms that Jonathan Scrase has completed the following courses within the Microsoft Virtual Academy:

Brief Description of project: This project will be an interactive Javascript. 1. What do you want to accomplish by doing this project?

Web-Based Database Applications ITP 300x (3 Units)

Technologies and Processes for Building Web Startups ITP 499 (4 Units)

The Learn-Verified Full Stack Web Development Program

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Developing ASP.NET MVC 4 Web Applications MOC 20486

Developing ASP.NET MVC 4 Web Applications

Web/Mobile Applications Principles

Personal Profile. Experience. Professional Experience

Business Application Development Platform

Developing ASP.NET MVC 4 Web Applications Course 20486A; 5 Days, Instructor-led

WEB DEVELOPMENT IMMERSIVE GA.CO/WDI

HTML5. Turn this page to see Quick Guide of CTTC

The Great Office 365 Adventure

Art of Code Front-end Web Development Training Program

SaaS-Based Employee Benefits Enrollment System

PG DAC. Syllabus. Content. Eligibility Criteria

CS396A UGP Presentation. Dr. Prabhakar T.V

RingBase. Software Requirements Specification. Feb 11, Chandra Krintz CS 189A. Wednesday 6PM. Date Feb 11, 2013 Mentor Colin Kelley

Design and Functional Specification

MEALS2SHARE Neighborhood Home Cooked Food Sharing Web Application

Skillsoft Course Directory

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Birmingham s First Developer Bootcamp

Case Study. Data Governance Portal Brainvire Infotech Pvt Ltd Page 1 of 1

HYBRID. Course Packet

Mobile Application Development

GOA365: The Great Office 365 Adventure

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

CONCORDIA UNIVERSITY DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING SOEN390 SOFTWARE ENGINEERING TEAM DEVELOPMENT PROJECT ITERATION 5

Client-server 3-tier N-tier

Web Testing. Main Concepts of Web Testing. Software Quality Assurance Telerik Software Academy

Client Requirement. Why SharePoint

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014

Web-Application Security

ICS 434 Advanced Database Systems

Trainer Preparation Guide for Course 20488B: Developing Microsoft SharePoint Server 2013 Core Solutions Design of the Course

Pentesting Web Frameworks (preview of next year's SEC642 update)

Automatic vs. Manual Code Analysis

Computer and Information Sciences

Web application Architecture

FROM BANNER 8 TO BANNER XE. What s the story?

Advanced Web Application Development using Microsoft ASP.NET

Web application specialist with a broad range of front-end technology expertise.

Server-Side Scripting and Web Development. By Susan L. Miertschin

Start up Jobs Germany FEB 2014

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

How To Build A Web App

Take full advantage of IBM s IDEs for end- to- end mobile development

Skillsoft Course Directory

QF01/ الخطة الدراسية كلية العلوم وتكنولوجيا المعلومات- برنامج الماجستير/ الوصف المختصر

A Model of the Operation of The Model-View- Controller Pattern in a Rails-Based Web Server

EWD: Simplifying Web Application Architecture

Electronic Ticket and Check-in System for Indico Conferences

Avaya Inventory Management System

LearningServer for.net Implementation Guide

SENIOR WEB DEVELOPER

White Paper Converting Lotus Notes Applications to the Cloud Using the CIMtrek converter Product

James Singletary IV :: Front End Web Developer located in Tampa, Florida

How To Write An Ria Application

Software Architecture Document

Muzikayise Flynn Buthelezi

Modern Web Development From Angle Brackets to Web Sockets

MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, Copyright 2015 MarkLogic Corporation. All rights reserved.

A Tool for Evaluation and Optimization of Web Application Performance

Advanced Web Application Development using Microsoft ASP.NET

Building native mobile apps for Digital Factory

ORACLE ADF MOBILE DATA SHEET

HTML5, The Future of App Development

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Novacura Flow 5. Technical Overview Version 5.6

<Insert Picture Here> Oracle Application Express 4.0

BeBanjo Infrastructure and Security Overview

Republic Polytechnic School of Infocomm C308 Web Framework. Module Curriculum

Middleware- Driven Mobile Applications

How To Retire A Legacy System From Healthcare With A Flatirons Eas Application Retirement Solution

Oracle Application Express MS Access on Steroids

Abdullah Radwan. Target Job. Work Experience (9 Years)

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Best Practices for Building Mobile Web

Architecture Workshop

Drupal Performance Tuning

SOA REFERENCE ARCHITECTURE: WEB TIER

DEVELOPMENT PORTFOLIO

Surviving the Big Rewrite: Moving YELLOWPAGES.COM to Rails. John Straw YELLOWPAGES.COM

tibbr Now, the Information Finds You.

Stock Trader System. Architecture Description

Techniques for Scaling Components of Web Application

Using XML to Test Web Software Services. Modern Web Sites

Development of a Learning Content Management Systems

SI 539, Winter 2014 Complex Web Design

Rational AppScan & Ounce Products

Web Developer Toolkit for IBM Digital Experience

Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework

Conference Paper. Distributed Performance Systems using HTML5 and Rails. Dr. Jesse Allison 1.

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

Transcription:

Web Applications: Overview and Architecture Computer Science and Engineering College of Engineering The Ohio State University Lecture 1

Road Map in Pictures: Web App

Road Map in Pictures Browser Request Response Web Server

Road Map in Pictures Rails Browser Request HTTP Response HTML CSS Web Server Ruby JavaScript

Road Map in Words A Language Ruby Foundations Version Control, Networking, Regular Expressions Static web pages HTML & CSS Dynamic web pages JavaScript Framework for web applications Rails Applied Topics Security, Encodings

Resources Class website Syllabus (note exam requirement) Handouts, lecture notes, lab assignments Pointers to more resources Piazza (www.piazza.com) Discussion forum, news, announcements Carmen Grades Instructor, TA Each other!

Technical Content Languages and Technologies HTTP XML, HTML, CSS, JavaScript Ruby, Ruby on Rails Tools and techniques Design patterns (MVC) git, linux Regular expressions, unicode, time Advanced topics Programming languages, networking, cryptography, databases, operating systems

Stability of Content: Concepts Conceptual underpinnings will be relevant forever In this course: Single-point of control over change Abstraction (vs realization) Design patterns Cryptography (the math part) Regular Expressions (the math part) Motivation for version control Time-space performance trade-offs

Stability of Content: Technology Some technologies have been around a long time, and will likely be relevant for many more years Examples in this course: Linux SQL HTTP HTML CSS JavaScript

Stability of Content: Tools Some tools come and go They are useful for getting things done now, but may not be as relevant or fashionable in 10 years Examples in this course Ruby JQuery git

Stability of Content: Framework There are many frameworks and libraries for web development They come and go so quickly, there is always something new Examples: Web frameworks like Rails, Express.js Ruby gems like Middleman, Nokogiri, Cucumber JavaScript libraries like Angular, MooTools HTML/CSS libraries like Bootstrap, Baseline, Foundation

Meta Content: Software Eng. Lasting relevance Project development in the "real world" 1. Vague open-ended requirements 2. Large, complex problems 3. Teams

Topic 1: Vague Requirements Two aspects to engineering: Satisfying the constraints (solving the problem) Optimizing the solution (better, faster, cheaper) Must first identify and understand the problem Requirements elicitation Recognize tradeoffs

Topic 2: Size and Complexity Programming in the large Doesn t all fit in one person s head or schedule Interfaces, modules, components, classes Design Measure twice, cut once Process Agile, waterfall, TDD, Documentation Testing

Topic 3: Group Work Naïve view of CS: Lone wolf hacker Reality: large multidisciplinary teams Developers, testers, marketing, HR, management, clients Communication skills are critical Many challenges Rely on others Compromises become necessary Personalities Many rewards Accomplish more Learn more

In This Course Group work: 4 people / team Multidisciplinary teams I will create cross-cutting technical areas Open-ended projects Communication skills Presentations to class

Architecture: Desktop App User Interface Graphical events (mouse moves, button pushed) Application Processing, Calculating Data Persistence, Transactions, Triggers

Client-Server App: 2-Tier Where should we cut? User Interface Ultra-thin client (aka dumb terminal ) [X11, RDP, character echo from mainframe] UI on client, processing just for display [browser rendering static HTML] Application Some processing on client [validate form fields before submission] Thick client: connect directly to DB mngr [native look & feel] Data Cache data on client [responsiveness, less network congestion]

Basic Web App Skeleton: 3-Tier User Interface http HTML, CSS, Javascript Application SQL Data

Advantages over Thick Clients Performance 1 (expensive) network call to app results in many calls to data Compute-intensive app on faster machine Flexibility Update app logic without changing client Robustness Transactions, logging at app level Security Login, authentication, encryption all better at app level than data level

Web App Skeleton: 4-Tier User Interface Presentation Layer Business Logic Data

Web App Skeleton: n-tier User Interface Caching Presentation Layer Workflow Business Logic Data

Summary Technical aspects of course content Many web technologies Meta content: Software engineering Vague requirements Large systems Teams 2-, 3-, 4-, n-tier Architectures