Web Development Frameworks

Similar documents
Ruby on Rails. a high-productivity web application framework. blog.curthibbs.us/ Curt Hibbs <curt@hibbs.com>

Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

Ruby On Rails. CSCI 5449 Submitted by: Bhaskar Vaish

Outline. Lecture 18: Ruby on Rails MVC. Introduction to Rails

Web Cloud Architecture

Ruby on Rails. Object Oriented Analysis & Design CSCI-5448 University of Colorado, Boulder. -Dheeraj Potlapally

Web Application Development

A Tour of Ruby on Rails

What s really under the hood? How I learned to stop worrying and love Magento

Web Pages. Static Web Pages SHTML

Portals, Portlets & Liferay Platform

Efficiency of Web Based SAX XML Distributed Processing

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Trollhättan, Sweden

How To Build A Web App

EVALUATION OF SERVER-SIDE TECHNOLOGY FOR WEB DEPLOYMENT

A Comparative Study of Web Development Technologies Using Open Source and Proprietary Software

A Performance Comparison of Web Development Technologies to Distribute Multimedia across an Intranet

Pete Helgren Ruby On Rails on i

Web Application Frameworks. Robert M. Dondero, Ph.D. Princeton University

MUSICIAN WEB-SERVICE USING RUBY-ON-RAILS, SOAP, FLEX & AJAX

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

Building Web Applications, Servlets, JSP and JDBC

CSE 510 Web Data Engineering

CS169.1x Lecture 5: SaaS Architecture and Introduction to Rails " Fall 2012"

Evolution of the Major Programming Languages

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

AGILE PROGRAMMING AND DESIGN PATTERNS IN WEB DEVELOPMENT -A CASE STUDY

Web Hosting. Comprehensive, scalable solutions for hosting dynamic websites, secure web services, and enterprise applications.

VOIP and Ruby. The Convergence of Web and Voice Applications using Open Source Software. Justin Grammens Localtone Interactive

Internet Technologies_1. Doc. Ing. František Huňka, CSc.

ScienceDirect. Designing an MVC Model for Rapid Web Application Development

JAVA/J2EE DEVELOPER RESUME

Accessing Data with ADOBE FLEX 4.6

Web Application Development

To use MySQL effectively, you need to learn the syntax of a new language and grow

A review and analysis of technologies for developing web applications

Rapid Application Development. and Application Generation Tools. Walter Knesel

Layers of Caching: Key to scaling your website. Lance Albertson -- Narayan Newton

The Learn-Verified Full Stack Web Development Program

Web and e-business Technologies

In this chapter, we lay the foundation for all our further discussions. We start

LAMP Server A Brief Overview

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Web application development landscape: technologies and models

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

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

Introduction to Cloud Computing. Lecture 02 History of Enterprise Computing Kaya Oğuz

MAGENTO HOSTING Progressive Server Performance Improvements

CloudCERT (Testbed framework to exercise critical infrastructure protection)

ICS 434 Advanced Database Systems

CrownPeak Java Web Hosting. Version 0.20

An Introduction to the Development of Web Applications using Ruby on Rails with Ajax

by Pearson Education, Inc. All Rights Reserved.

Web Design Technology

Web Programming Languages Overview

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Credits: Some of the slides are based on material adapted from

Rails Cookbook. Rob Orsini. O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

THE ROAD TO CODE. ANDROID DEVELOPMENT IMMERSIVE May 31. WEB DEVELOPMENT IMMERSIVE May 31 GENERAL ASSEMBLY

MASTER THESIS. TITLE: Analysis and evaluation of high performance web servers

Requirements Design Implementation. Software Architectures. Components Software Component Architecture. DSSA: Domain-Specific Software Architectures

WebSphere Application Server - Introduction, Monitoring Tools, & Administration

Web Hosting Features. Small Office Premium. Small Office. Basic Premium. Enterprise. Basic. General

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

Web Development Frameworks. Matthias Korn

Ruby On Rails. James Reynolds

Exploring Oracle E-Business Suite Load Balancing Options. Venkat Perumal IT Convergence

Seamless Web Data Entry for SAS Applications D.J. Penix, Pinnacle Solutions, Indianapolis, IN

Whitepapers at Amikelive.com

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

A COMPONENT BASED METHODOLOGY FOR WEB APPLICATION DEVELOPMENT USING RUBY ON RAILS. Presentation 1 13 th July 2009 by Brett Nisbett

Framework as a master tool in modern web development

GWIF: A Generic Web Application Integration Framework

Your Own Web Page: Quick and Dirty

Evaluation. Chapter 1: An Overview Of Ruby Rails. Copy. 6) Static Pages Within a Rails Application

Modern Web Development From Angle Brackets to Web Sockets

DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:

Using Ruby on Rails for Web Development. Introduction Guide to Ruby on Rails: An extensive roundup of 100 Ultimate Resources

Design Approaches of Web Application with Efficient Performance in JAVA

Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms

Agile Web Development with Rails 4

MVC pattern in java web programming

A benchmark approach to analyse the security of web frameworks

Modern Software Development Tools on OpenVMS

Visual WebGui for ASP.NET Ajax (and other Ajax) Web Developers Learn what makes Visual WebGui not just another Ajax framework

E-commerce. business. technology. society. Kenneth C. Laudon Carol Guercio Traver. Third Edition. Copyright 2007 Pearson Education, Inc.

Java/J2EE or Web Developer. Formal Education. Technical knowledge. Spoken Languages

James J. Menard 1000 Old Post Road, Fairfield, CT e: h: (203) , c: (646)

Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions

Apache Jakarta Tomcat

JEE Web Applications Jeff Zhuk

B. WEB APPLICATION ARCHITECTURE MODELS

GRAD Analytics Advanced price and promotional analysis interface. Reactive UI providing dimensional visibility to marketing analysis.

Building native mobile apps for Digital Factory

Oracle9i Application Server: Options for Running Active Server Pages. An Oracle White Paper July 2001

How To Understand Programming Languages And Programming Languages

Transcription:

COMS E6125 Web-enHanced Information Management (WHIM) Web Development Frameworks Swapneel Sheth swapneel@cs.columbia.edu @swapneel Spring 2012 1

Topic 1 History and Background of Web Application Development l Static HTML Document l Web Servers would retrieve the text file and send it to the user l Needed some mechanism to output dynamic information from queries executed in real-time 2

Common Gateway Interface (CGI) l Standard for external gateway programs to interface with information servers such as HTTP servers l CGI programs can be written in any language and can either be compiled or interpreted Compiled Languages: C, C++, Fortran, etc. Scripting Languages: Perl, Shell scripts, etc. 3

Common Gateway Interface (CGI) 4

Common Gateway Interface (CGI) l Advantages Ability to provide dynamic real-time content l Disadvantages Too low level Various security issues Each invocation needs to fork a new process, thus sub-optimal 5

Server Side Includes (SSI) l Dynamically add small amounts of content in static pages l Special code gets executed on the server and dynamically replaced with real content l NOT a replacement for CGI an easier way to include small amounts of dynamic information when CGI is overkill l Similar to JSPs 6

Active Server Pages (ASP) l ASP was Microsoft's first server-side script engine for dynamically-generated web pages l Originally released as an addon to IIS Server l Most pages written in VBScript, but other languages are allowed (e.g., JScript, PerlScript) 7

Java Servlets l Java's solution for generating dynamic web content l Servlet 1.0 specification finalized in June 1997 l Servlet is an Object that receives a request and generates a response based on that request l Servlets can maintain state across requests l Can be automatically created from JavaServer Pages (JSPs) 8

Java Servlets 9

Topic 2 MVC Frameworks l What is MVC? Model View Controller Architectural and Design Pattern Described in 1979 by Trygve Reenskaug who was working on SmallTalk at Xerox PARC l MVC Then and Now Rediscovered for web app development 10

Quotes from Trygve Reenskaug l MVC was conceived as a general solution to the problem of users controlling a large and complex data set. l The hardest part was to hit upon good names for the different architectural components. Model- View-Editor was the first set. 11

MVC Architecture 12

MVC Architecture Model Layer l Corresponds to the database some form of data persistence l Can be a real database like MySQL, PostgreSQL, etc. l Can alternatively be an XML file, flat files, etc. 13

MVC Architecture Model Layer (2) l Decouple the data storage and retrieval from the other aspects such as the UI l UI does not change depending on whether the data comes from an XML file or from an Oracle DB l Central place to do all the validations such as integrity constraints and null checks 14

MVC Architecture View Layer l Corresponds to the User Interface l For web apps, this is typically a web page l The web page designer need not be concerned about things like business logic l Programmers typically use tools like Eclipse and emacs; Web page designers use different tools like Adobe Dreamweaver l Allow the web page designers to use whatever they are comfortable with 15

MVC Architecture Controller Layer l Corresponds to the business logic l Theoretically lets the programmers use any language they are comfortable with There are no dependencies with the View or the Model Layers l In practice, this is not true as picking an MVC framework forces you to use a fixed programming language 16

17

Topic 3 Ruby on Rails l Web Application Framework created by David Heinemeier Hansson (DHH) at 37signals l Extracted from real-world web application called Basecamp and made open source in 2004 l Some 37signals applications Basecamp (project management) Ta-Da List (personal todo list) Campfire (business oriented online chat service) 18

Ruby on Rails l Uses Ruby l Ruby is a dynamic, object-oriented programming language l Created by Yukihiro Matsumoto (Matz) in 1995 l Based on Perl, Smalltalk, Eiffel, Ada, and Lisp l Supports multiple programming paradigms functional, OO, imperative, etc. l Strong support for reflection and Metaprogramming 19

Design Philosophy of Ruby l I wanted a language more powerful than Perl and more object-oriented than Python. Then, I remembered my old dream and decided to design my own language. Matz l Principle of Least Surprise l Make programming fun! 20

Sample Ruby Code 21

Design Philosophy of Ruby on Rails l Don t Repeat Yourself (DRY) Very Little Duplication Every piece of knowledge in a system should be expressed in just one place l Convention over Configuration Sensible Defaults for Everything Follow the conventions and you can write a Rails application using less code than a typical Java web application uses in XML configuration 22

Design Philosophy of Ruby on Rails l Inspired other MVC frameworks l Most notable ones include Symfony CakePHP PHP on TRAX Merb 23

Ruby on Rails Model Layer l Active Record is the default Model Component in Rails and is the Base Class for all models l Provides Object-Relational Mapping (ORM) Mapping between tables in the database and the classes in the application Classes correspond to Tables Attributes correspond to columns of the table Objects correspond to rows of the table l Provides database independence, basic CRUD functionality, advanced finding capabilities, etc. 24

Ruby on Rails Model Layer (2) 25

Ruby on Rails View Layer l Action View manages the views in Rails applications l Can create both HTML and XML output by default l Manages rendering templates, including nested and partial templates, and includes built-in AJAX support l Can embed Ruby code in HTML for the View Layer (similar to JSPs, etc.) 26

Ruby on Rails View Layer (2) 27

Ruby on Rails Controller Layer l Action Controller manages the controllers in a Rails application l The Action Controller framework processes incoming requests to a Rails application, extracts parameters, and dispatches them to the intended action l Services provided by Action Controller include session management, template rendering, and redirect management. 28

Ruby on Rails Controller Layer (2) 29

Ruby on Rails Other Components l Action Mailer Framework for building e-mail services. l Active Resource Framework for managing the connection between business objects and RESTful web services l Action Web Service Server-side support for SOAP and XML-RPC protocols in Rails applications 30

Ruby on Rails Deployment l Many Web Servers and hosting options l WEBrick bundled with Rails l Other options include Apache (with mod_rails or FastCGI), Mongrel, nginx, lighttpd, etc. l Dedicated Rails hosting companies: Rails Machine, Engine Yard, etc. 31

Topic 4 MVC Framework Comparison l There are LOTS of web application frameworks l Picking which one to use is not trivial l Many factors come into consideration when picking a framework Familiarity with programming language Legacy Code Easy of Use Documentation Fun Factor! 32

Six Degrees of Separation l Project done for WHIM in Spring 2007 l Basic Idea Implement the exact same web application in 6 different frameworks Compare the frameworks on criteria such as l Lines of Code, Number of Methods l Performance Benchmarks like throughput, latency, cpu and memory usage 33

Six Degrees of Separation l Phase 1 Build a CRUD application for creating Music Catalogs Application should have only basic features l Phase 2 like Searching and Sorting Benchmark using Apache Benchmark, Siege, Funkload 34

People 35

Benchmarks 36

Benchmark Results Lines of Code 37

Benchmark Results Throughput, Latency 38

Benchmark Results CPU Usage 39

Benchmark Results CPU Usage 40

Benchmark Results CPU Usage 41

Benchmark Results Memory 42

Benchmark Results Memory 43

Benchmark Results Memory 44

Better Web App Development l Screencast by Sean Kelly l Sean Kelly is a technologist at NASA's Jet Propulsion Laboratory l Compares Java J2EE, Ruby on Rails, Zope/Plone, TurboGears, Django l Link to Video 45

COMS E6125 Web-enHanced Information Management (WHIM) Web Development Frameworks Swapneel Sheth swapneel@cs.columbia.edu @swapneel Spring 2012 46