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



Similar documents
How To Build A Web App

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

Getting Started Guide for Developing tibbr Apps

Solution Showcase Session. Enterprise 2.0 Computing Services

Web Design Technology

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

Web Cloud Architecture

Welcome to the Force.com Developer Day

WEB SERVICES FOR MOBILE COMPUTING

Modern Web Development From Angle Brackets to Web Sockets

Offerte del 13 giugno 2014

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

Middleware- Driven Mobile Applications

RIA Technologies Comparison

PG DAC. Syllabus. Content. Eligibility Criteria

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

a + b =? Open APIs: State of the Market

Cloud Computing. Chapter 2 Software as a Service (SaaS)

Certified Cloud Computing Professional VS-1067

Web 2.0-based SaaS for Community Resource Sharing

TECHNOLOGIES PVT. LTD.

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

Web 2.0 Technology Overview. Lecture 8 GSL Peru 2014

Proposal for DSpace Web MVC

SENIOR WEB DEVELOPER

Developing Offline Web Application

Deploy. Friction-free self-service BI solutions for everyone Scalable analytics on a modern architecture

CloudCERT (Testbed framework to exercise critical infrastructure protection)

Framework as a master tool in modern web development

Join the Lean Wave. Asanka Abeysinghe Director, Solutions Architecture. WSO2, Inc. Friday, July 22, 11

NoSQL replacement for SQLite (for Beatstream) Antti-Jussi Kovalainen Seminar OHJ-1860: NoSQL databases

Mobile Solutions in ArcGIS. Justin Fan

Java (J2SE & J2EE) and Web Development Training Catalog

my website using software that I wrote.

Pro<DOC/> e-commerce Technology An Introduction

Standards, Tools and Web 2.0

Volkov Vyacheslav. Summary. Saransk, , Mordovia, Russian Federation Moscow, Russian Federation +7(925)

Building native mobile apps for Digital Factory

Enhanced Mobile Cloud Computing Platform

MOBILE APPLICATIONS AND CLOUD COMPUTING. Roberto Beraldi

Architecture Workshop

Framework Adoption for Java Enterprise Application Development

MOBILE APPLICATIONS AND CLOUD COMPUTING. Roberto Beraldi

AppDev OnDemand Microsoft Development Learning Library

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

StableFlow is a software development company, focused on software outsourcing services to companies ranging from startups to large enterprise.

Take Your Rocket U2 Apps Mobile with Rocket LegaSuite. Greg Mummah, Product Manager Rocket Software

Open Source Software

Vincent Gabriel. Summary. Experience. Senior Software Developer at Landmark Network

Art of Code Front-end Web Development Training Program

JD Edwards EnterpriseOne Mobile Solutions

Android In The Cloud: A New PaaS Computing Platform

Mashup Development Seminar

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

SaaS, PaaS & TaaS. By: Raza Usmani

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

SaaS-Based Employee Benefits Enrollment System

Project Proposal. Developing modern E-commerce web application via Responsive Design

TERMS OF REFERENCE. Revamping of GSS Website. GSS Information Technology Directorate Application and Database Section

100% NO CODING NO DEVELOPING IMMEDIATE BUSINESS -25% -70% UNLIMITED SCALABILITY DEVELOPMENT TIME SOFTWARE STABILITY

Leveraging Cloud Storage Through Mobile Applications Using Mezeo Cloud Storage Platform REST API. John Eastman Mezeo

Lucy Zhang UI Developer Contact:

629 Meier Lane, Onalaska, WI

Smartphone Application Development using HTML5-based Cross- Platform Framework

ITP 140 Mobile Technologies. Mobile Topics

Security to Connect Back-end APIs with HTML5 Cross Platform Apps

IT Infrastructure and Emerging Technologies

Software Requirements Specification

Cloud Computing and Big Data What Technical Writers Need to Know

<Insert Picture Here> Oracle Mobile Enterprise Application Platform Overview

Leveraging Partners and Open Source Technology in your Mobility Strategy. emids webinar Thursday, August 11, :00 pm 2:00 pm EDT

Learning Web App Development

Web Applications: Overview and Architecture

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

Building HTML5 and hybrid mobile apps using cloud services. Andrei Glazunov

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

Experimental Comparison of Hybrid and Native Applications for Mobile Systems

From RPC to Web Apps: Trends in Client-Server Systems

Web. Programming. Hans- Pe0er Halvorsen, M.Sc. h0p://home.hit.no/~hansha/?page=sojware_development

Portals, Portlets & Liferay Platform

Webucator Free Online Technology Training Courses

ASTROBOA - DRUPAL Integrated PLATFORM

A BASELINE FOR WEB PERFORMANCE WITH PHANTOMJS

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

Customizing and Integrating

Example. Represent this as XML

branddocs Technology edocument Solutions V V

Transcription:

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

Mobile Desktop Tablet Social Interac6ve Real Time Big data Share func6onality (e.g. maps) Interact with the physical world (e.g. body, house) Joe Mertz - Distributed ApplicaDon Development 2

ApplicaDons have evolved from single- computer to distributed E.g. History of what has become Customer RelaDonship Management (CRM) systems. Joe Mertz - Distributed ApplicaDon Development 3

Stand alone applicadons on a single computer. Single programming language Single compudng planorm Ad- hoc informadon storage No networking protocols Joe Mertz - Distributed ApplicaDon Development 4

Shared databases available via a LAN to all salespeople Single programming language Single compudng planorm Single DBMS LAN based networking Joe Mertz - Distributed ApplicaDon Development 5

CRM uses common web protocols for users to access customer informadon via a browser MulDple programming languages Middleware (souware on the server) Java and JEE, C# and.net, PHP, Ruby, or others HTML, Javascript, CSS MulDple compudng planorms Server User web browser PotenDally muldple web browsers with varying capabilides Server- side DBMS Web- based networking protocols: hzp Joe Mertz - Distributed ApplicaDon Development 6

Customer portal into your business MulDple languages Middleware (JEE,.NET, etc) Languages of legacy systems HTML, CSS, Javascript Frameworks: AJAX, JQuery, Struts, Springs, Hibernate, JPA, Flash, Silverlight MulDple compudng planorms Server, legacy systems, muldple web browsers Cloud- based planorms (IaaS, PaaS, SaaS) MulDple DBMS, some legacy Networking HTTP, web services protocols (e.g. SOAP, REST), enterprise- internal protocols to De to legacy systems. Joe Mertz - Distributed ApplicaDon Development 7

Customer can access all their account informadon for interacdng with the business via a mobile phone browser MulDple languages Middleware Languages of legacy systems HTML, CSS, Javascript Frameworks: AJAX, JQuery, Struts, Springs, Hibernate, JPA, Flash, Silverlight MulDple compudng planorms Server, legacy systems, muldple web browsers Cloud- based planorms (IaaS, PaaS, SaaS) Mobile phone planorms / browsers MulDple DBMS, some legacy Networking HTTP, web services protocols (e.g. SOAP, REST), enterprise- internal protocols to De to legacy systems, XML or JSON to pass objects to/from mobile. Joe Mertz - Distributed ApplicaDon Development 8

Customer can access all their account informadon for interacdng with the business via a mobile phone E.g. Checking Amazon account shipments on my iphone MulDple languages Middleware Languages of legacy systems HTML, CSS, Javascript ObjecDve- C for iphone, Java for Android and Blackberry, C# for Windows Phone 7. Frameworks: AJAX, JQuery, Struts, Springs, Hibernate, JPA, Flash, Silverlight MulDple compudng planorms Server, legacy systems, muldple web browsers Cloud- based planorms (IaaS, PaaS, SaaS) iphone, Android, etc mobile phone planorms. MulDple DBMS, some legacy Networking HTTP, web services protocols (e.g. SOAP, REST), enterprise- internal protocols to De to legacy systems, XML or JSON to pass objects to/from mobile. Joe Mertz - Distributed ApplicaDon Development 9

Early CRMs were: OUen built by one company Custom built or a commercial system Only included data from within that company The web has allowed developers to embed informadon and funcdonality from other sources in their applicadons aka mashup First mashup: HousingMaps.com Joe Mertz - Distributed ApplicaDon Development 10

HousingMaps.com was the first mashup. By Paul Rademacher The Google Maps team was thrilled to see how he and others were hacking (in the good sense) their system and describing it on blogs. Joe Mertz - Distributed ApplicaDon Development 11

Not really They now have a bulk- posdng API HousingMaps was built without the aid of a published API. What is an API? ApplicaDon Programming Interface A set of souware specificadons that enable a programmer to interact with a souware system Joe Mertz - Distributed ApplicaDon Development 12

Non- opdmized opdon: User does query for housing Housingmaps does query to craigslist Housingmaps processes all responses Housingmaps returns page to user. Apparently opdmized opdon: Craigslist provides RSS feeds (i.e. XML formazed response) Housingmaps subscribes to Craigslist RSS feed Periodically checks the RSS feed When updates, retrieves and screen- scrapes and stores the informadon This limits the number of queries HousingMaps needs to do to Craigslist. (Requests are limited by Craigslist). Joe Mertz - Distributed ApplicaDon Development 13

HousingMaps no longer works CraigsList now has mapping capability Uses OpenStreetMap hzp://www.openstreetmap.org Joe Mertz - Distributed ApplicaDon Development 14

ProgrammableWeb mashup tag frequency Unfortunately ProgrammableWeb no longer provides these stats Joe Mertz - Distributed ApplicaDon Development 15

ProgrammableWeb mashup tag frequency Prior year Joe Mertz - Distributed ApplicaDon Development 16

ProgrammableWeb mashup tag frequency 4 years ago Joe Mertz - Distributed ApplicaDon Development 17

ProgrammableWeb mashup tag frequency For all Dme Joe Mertz - Distributed ApplicaDon Development 18

Source: hzp://www.programmableweb.com/api- research Joe Mertz - Distributed ApplicaDon Development 19

Source: hzp://www.programmableweb.com/api- research Joe Mertz - Distributed ApplicaDon Development 20

What does CraigsList look like on a phone? Joe Mertz - Distributed ApplicaDon Development 21

Customizing presentadon to fit the capabilides of any planorm. Design goal: Design to adapt content for your full customer base. Joe Mertz - Distributed ApplicaDon Development 22

Browse to: hzp://dnyurl.com/m2c- draw Uses HTML5 Canvas tag jquery Node.js Socket.io which uses WebSockets (if available) Only 36 lines of HTML 120 lines JavaScript client- side 36 lines JavaScript server- side Joe Mertz - Distributed ApplicaDon Development 23

The web has become a "planorm" Where once we programmed only individual computers, now our applicadons span many types of devices connected by the internet using open standards for easy interoperability Joe Mertz - Distributed ApplicaDon Development 24

Shrink your internal development team Lower your data center operadng costs Increase your funcdonality By Moving to a cloud- based, souware- as- a- service CRM soludon (e.g. Salesforce) Joe Mertz - Distributed ApplicaDon Development 25

Advances are coming rapidly: new frameworks new tools new products Anything you learn about a specific language, planorm, protocol, or framework will likely change in the next 5 years and perhaps before you graduate! The goal can t be only JavaScript, or Web Sockets, or accessing Amazon S3 storage using REST. Consequently what can you learn from a class like this? Joe Mertz - Distributed ApplicaDon Development 26

To pracdce using specific technologies to crau soludons To reflect on those technologies I.e. categorize, compare, contrast classes of technologies To reflect on those soludons I.e. base soludons on best- pracdce architectures, souware engineering pracdces, and soludon pazerns and extract new pazerns from viable soludons Joe Mertz - Distributed ApplicaDon Development 27

I'll give you an example of making dough, and we will walk through the process. Then I'll give you an example of using an oven and we will do an exercise in how to use it. I'll assume you can open a can. Then I'll give you a big assignment to make and bake something that involves dough. I might suggest as an idea making a creadve pizza. You might opt for making cinnamon buns instead. In any case, I won't walk you through making pizza or cinnamon buns. The learning happens in figuring it out. Joe Mertz - Distributed ApplicaDon Development 28

Joe Mertz - Distributed ApplicaDon Development 29

Developing interacdve web applicadons Improving client- side programming skills Developing server- side middleware Using public 3 rd party APIs AdapDng to mobile devices While we work to understand deeper: networking storing persistent data nosql MVC security Joe Mertz - Distributed ApplicaDon Development 30

JavaScript jquery jquery Mobile Node.js Express and other frameworks within Node.js MongoDB Web Sockets Socket.io MulDple cloud- based services Joe Mertz - Distributed ApplicaDon Development 31

My background Your background - before Thursday's class: Fill out the brief form at hzp://dnyurl.com/m2c- prior Joe Mertz - Distributed ApplicaDon Development 32

Web site hzp://www.andrew.cmu.edu/course/67-328/ Contact info Syllabus Schedule Resources Blackboard Grade book Submitng assignments Piazza Forum for discussion of classes, labs, and assignments Joe Mertz - Distributed ApplicaDon Development 33

Use video, blogs, tutorials, and readings to get the bulk of content. Allows you to read/watch at your own pace Use class Dme for discussion, answering quesdons reviewing demos / examples working on exemplar small projects getng and sharing lots of help Joe Mertz - Distributed ApplicaDon Development 34

Install Google Chrome on your laptop if you don't already have it Read about the Chrome developer tools (links are on the course schedule) Set Up Chrome DevTools NavigaDng the Console Diagnose and Log to Console Inspect and Tweak Your Pages: the Basics Keyboard & UI Shortcuts Reference How to Add or Remove Breakpoints How to Step Through the Code Watch the Douglas Crockford video (1:49:55 long) hzp://yuiblog.com/blog/2007/01/24/video- crockford- tjpl/ AlternaDve: scan his slides to refresh your knowledge, watch when you have quesdons AlternaDve: scan the JavaScript: DefiniDve Ch 1-9 Come ready to write short JavaScript programs in the Chrome developer console. Fill out the brief form at hzp://dnyurl.com/m2c- prior Joe Mertz - Distributed ApplicaDon Development 35