How To Build A Web App



Similar documents
Web Cloud Architecture

Solution Showcase Session. Enterprise 2.0 Computing Services

Web Applications Come of Age

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

Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014

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

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

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME

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

A Comparison of Open Source Application Development Frameworks for the Enterprise

What s New in IBM Web Experience Factory IBM Corporation

White Paper On. Single Page Application. Presented by: Yatin Patel

A review and analysis of technologies for developing web applications

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

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

How To Write An Ria Application

Developing ASP.NET MVC 4 Web Applications

ORACLE APPLICATION EXPRESS 5.0

IBM Script Portlet for WebSphere Portal Release 1.1

Web Development Frameworks

Modern Web Development From Angle Brackets to Web Sockets

Portals, Portlets & Liferay Platform

RIA Technologies Comparison

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

Developing ASP.NET MVC 4 Web Applications MOC 20486

Web Programming Languages Overview

Framework as a master tool in modern web development

Integration the Web 2.0 way. Florian Daniel April 28, 2009

Mobile development with Apache OFBiz. Ean Schuessler, Brainfood

Emerging technologies - AJAX, VXML SOA in the travel industry

Preface. Motivation for this Book

Migration and Developer Productivity Solutions Cloud, Mobile and Web Development Workshop

Performance Testing Web 2.0. Stuart Moncrieff (Load Testing Guru) /

IBM Rational Web Developer for WebSphere Software Version 6.0

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

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

B. WEB APPLICATION ARCHITECTURE MODELS

AJAX. Gregorio López López Juan Francisco López Panea

The Learn-Verified Full Stack Web Development Program

Joseph Mertz, Ph.D Teaching Professor H. John III Heinz College Dietrich College IS Program

Why AJAX? Keywords - Web applications, Java Script, Web INTRODUCTION. Why Not AJAX? 111 P a g e

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Enhancing your Web Experiences with ASP.NET Ajax and IIS 7

2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led

Monitoring the Real End User Experience

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

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

CHOOSING THE RIGHT HTML5 FRAMEWORK To Build Your Mobile Web Application

<Insert Picture Here> Oracle Mobile Enterprise Application Platform Overview

The Oracle Fusion Development Platform

Whitepaper. Rich Internet Applications. Frameworks Evaluation. Document reference: TSL-SES-WP0001 Januar

Framework Adoption for Java Enterprise Application Development

FIVE SIGNS YOU NEED HTML5 WEBSOCKETS

Web Pages. Static Web Pages SHTML

WHITE PAPER on Flex to HTML5 The Migration Challenge. April 2014

Curl Building RIA Beyond AJAX

Mobilize Your ERP with ADF Mobile

<Insert Picture Here> GlassFish v3 - A Taste of a Next Generation Application Server

maximizing IT productivity

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

Whitepapers at Amikelive.com

SAV2013: The Great SharePoint 2013 App Venture

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

LSD APC Part I Workshop Geographic Information System. Danny Yeung 14 November 2015

Rich Internet Applications

PG DAC. Syllabus. Content. Eligibility Criteria

<Insert Picture Here> Building a Complex Web Application Using ADF and Siebel

Position Paper: Toward a Mobile Rich Web Application Mobile AJAX and Mobile Web 2.0

Rapid Application Development. and Application Generation Tools. Walter Knesel

Is Liferay Right for Your Organization? Seven Things to Consider When Choosing a Portal Platform

Load Testing RIA using WebLOAD. Amir Shoval, VP Product Management

Progressive Enhancement With GQuery and GWT. Ray Cromwell

ebay : How is it a hit

Pervasive Software + NetSuite = Seamless Cloud Business Processes

Web application development landscape: technologies and models

Customer Bank Account Management System Technical Specification Document

An Architecture for Web-based DSS

Server-Side JavaScript auf der JVM. Peter Doschkinow Senior Java Architect

WebLogic & Coherence. Best backend for Mobile Apps. July 2014 INSERT PRESENTER TITLE AND DATE

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

Technical Track Session Service-Oriented Architecture

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Mobile Application Development

For Course Details, visit:

CUMULUX WHICH CLOUD PLATFORM IS RIGHT FOR YOU? COMPARING CLOUD PLATFORMS. Review Business and Technology Series

Trollhättan, Sweden

Performance Analysis and Design of a Mobile Web Services on Cloud Servers

Chapter 12: Advanced topic Web 2.0

Transcription:

UNCLASSIFIED Next Gen Web Architecture for the Cloud Era Chief Scientist, Raytheon Saturn 2013 28 Apr - 3 May Copyright (2013) Raytheon

Agenda Existing Web Application Architecture SOFEA Lessons learned Copyright (2013) Raytheon Company

Audience Anyone interested in web technology who has a basic understanding of web applications and Service Oriented Architectures (SOA) Copyright (2013) Raytheon Company

Focus Data Sources Big Data /Enterprise Infrastructure Visualization, Dashboards, Reports Copyright (2013) Raytheon Company

Arc of Web App Architecture History * CGI Servlets MVC Frameworks AJAX today Early 90 s SOFEA Static HTML Pages Web Templating Engines Copyright (2012) Raytheon Company * NOT to scale!

Web Templating Engines Embedded code within static HTML elements Mix of static and dynamic HTML "Model 1" Architecture Examples Java Server Pages (JSP) PHP Active Server Pages (ASP) Copyright (2012) Raytheon Company

Web Template <html> Hello, <b>{$db.name.102}</b> <html> Web Templating Engines cont. Code Markup Web Template Engine Web Browser Hello, Bob 01 Ted 02 Susan... 101 Joe 102 Bob Data Store Copyright (2012) Raytheon Company

MVC Frameworks Model View Controller pattern Server side framework Model 2 Architecture Examples ASP.NET MVC Framework (.Net) Struts, Spring MVC (Java) Ruby on Rails (Ruby) Django (Python) Grails (Groovy) Web Browser view controller model Data Store Copyright (2010) Raytheon Company server

Asynchronous JavaScript And XML Dynamic content changes without reloading the entire page AJAX interactive and dynamic web apps approaching rich client capability HTML/CSS + DOM + XmlHttpRequest Object + JavaScript + JSON/XML Copyright (2010) Raytheon Company Img: http://courses.ischool.berkeley.edu/i153/s11/webapps-advanced

3 Processes of Web Applications 1. Application Download Mobile code (JavaScript, HTML, Applets, Flash) download to the client (web browser) 2. Presentation Flow Dynamic visual rendering of the UI (screen changes, new screens, etc) in response to user input and data state changes 3. Data Interchange The exchange of data between two software components or tiers (search, updates, retrieval, etc) Copyright (2010) Raytheon Company

Process Allocation for Web Templating Engines Frameworks Application Download, Presentation Flow Service Interface Application Browser Network Presentation Logic (web server) Business Logic Persistence Data Interchange Data Interchange Copyright (2010) Raytheon Company

Characteristics of Web Templating Engines and MVC Frameworks Tight coupling between presentation flow and data interchange (both in the web server) Triggering a Presentation Flow in a web application always initiates a Data Interchange operation Every Data Interchange operation results in a Presentation Flow operation Presentation flow and data interchange are orthogonal concerns that should be decoupled Separate concerns Copyright (2010) Raytheon Company

Today web templating engines + MVC frameworks + a sprinkling of Ajax Copyright (2010) Raytheon Company

External Cloud INTERFACE Endpoints SERVICE BATTERY GOVERNANCE SOA & Cloud Web Apps Cloud Stack SOA Stack SaaS PaaS IaaS Mobile Devices Data Schema Policies Machine-to-Machine 14

SOFEA An architectural style for web applications in SOA (& Cloud) environments Copyright (2010) Raytheon Company

SOFEA Service Oriented Front End Architecture Synonymous with Single Page Web Applications Life above the Service Tier How to Build Application Front ends in a Service Oriented World Ganesh Prasad, Rajat Taneja, Vikrant Todankar Architectural Style Not an implementation Prasad, et al propose that the SOA revolution has left behind application front ends/ui s Copyright (2010) Raytheon Company

SOFEA is now Feasible because 1) Maturity of the SOA paradigm in theory and practice 2) Advancements in browser-based client technologies, especially JavaScript browser engines and AJAX toolkits Necessary because 1) SOA is the defacto delivery mechanism for cloud-based services (Cloud and SOA are complementary technologies) 2) Diversity of client platforms Growing dominance of Mobile clients Copyright (2013) Raytheon Company

Legacy Enterprise Web Architecture CLIENT SERVER Web Browser Web Page Construction Logic Business Logic and Persistence Typical Enterprise Web Application Architecture Copyright (2013) Raytheon Company

SERVICES SOFEA CLIENT SERVER Web Browser Web Page Construction Logic Business Logic and Persistence Web Browser Business Logic and Persistence Copyright (2013) Raytheon Company

Process Allocation for SOFEA Presentation Flow Application Download Service Interface Presentation Logic Application Browser Network Service Business Logic Persistence Data Interchange Copyright (2013) Raytheon Company

SERVICES 3 Web Processes and SOFEA Application Download Download Server Presentation Flow Web Browser Business Logic and Persistence Data Interchange Copyright (2013) Raytheon Company Service Interface

SOFEA Principles 1. Application Download, Data Interchange, and Presentation Flow must be decoupled No part of the client should be evoked, generated or templated from the server-side. 2. Presentation Flow is a client-side concern only 3. All communication with the application server should be using services (REST, SOAP, etc) 4. The MVC design pattern belongs in the client, not the server Copyright (2013) Raytheon Company

SERVICES SOFEA Lifecycle 1. Web Browser One Time Download Presentation Code (HTML, JavaScript) Download Server Data Only 2. Web Browser Business Logic and Persistence Copyright (2013) Raytheon Company

MVC in the Web Browser MODEL CONTROLLER MVC Pattern VIEW Web Server Web Browser Copyright (2013) Raytheon Company

Benefits of SOFEA Scalability Server has less work to do; no more presentation generation, just provide a services Higher ROI for each LOC Expanded opportunity space due to the inherent reusable nature of SOA Better user response Low latency == happy end users After the app download, no presentation is transported over the wire, only business data Natural fit into SOA and Cloud environments Copyright (2013) Raytheon Company Organized programming model Client developers concentrate on the UI Server-side developers concentrate on Services Offline applications When the network crashes, decoupled client can dynamically switch out their model objects Interoperability Easier integration with lower overhead from multiple platforms Clients don t care if services are Java, C#, Python, Cobol or a heterogeneous mix

SOFEA Client Implementation Archetype JSON JavaScript Web Server HTML-5 Single HTML Page Web Workers MVC REST Framework (JAX-RS) DOM HTTP SPDY Websockets Copyright (2013) Raytheon Company

Lessons Learned The web client is a Priority 1 architecture tier, not an after thought Object-Oriented Analysis and Design principles Design Patterns Continuous integration, performance testing, etc Critical to expend significant engineering time and energy on the client architecture Use a mature client-side frameworks Dojo, JQuery, AngularJS, etc The RESTful model is natural fit for SOFEA systems Architects & developers should bake-in asynchronicity between the server and client layers Leverage newer technologies where appropriate HTML-5 Web Workers & Websockets Google s SPDY Start cross-browser compatibility testing early in the development cycle Fight the add IE support later temptation SOFEA excellent choice for our customer s bandwidth starved environments Very low latency for those customer s with average-good network pipes Copyright (2010) Raytheon Company

Resources Life Above the Service Tier by Ganesh Prasad, Rajat Taneja and Vikrant Todankar http://wisdomofganesh.blogspot.com/2011/10/life-above-service-tier-change-of-links.html JavaScript Frameworks Dojo: http://dojotoolkit.org/ JQuery: http://jquery.com/ AngularJS: http://angularjs.org/ KnockoutJS: http://knockoutjs.com/ JavaScript Design Patterns Book http://addyosmani.com/resources/essentialjsdesignpatterns/book/ SOA & Cloud http://www.infoq.com/articles/ieee-software-engineeering-services-cloudcomputing Web Sockets http://www.websocket.org/ Google SPDY http://www.chromium.org/spdy Copyright (2010) Raytheon Company

Chief Scientist Raytheon Intelligence and Information Services Darryl.Nelson@Raytheon.com Darryl.Nelson.Tech@Gmail.com Copyright (2013) Raytheon Company

backup Copyright (2013) Raytheon Company

SOFEA Implementation Examples Client JavaScript: Dojo, JQuery, ExtJS, angularjs.org, knockoutjs.com, Twitter Bootstrap Flex* Silverlight* Java Applets* Services WS-* (SOAP/WSDL) Axis, Weblogic, Websphere REST Jersey, RESTEasy, RESTlets, Drop Wizard Copyright (2010) Raytheon Company

Processing Request with Push Response Design Pattern Web Services in the Cloud 3 Handle Request Web App 1 Send Request Push Notification & Result Download 4 Task A 2 Web App runs asynchronously from the request Task B Adapted from J. Christensen, Using REST Web-Services and Cloud Computing to Create Next Generation Mobile Applications, ACM 978-60558-768-4/09/10 32