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



Similar documents
Oct 15, Internet : the vast collection of interconnected networks that all use the TCP/IP protocols

REST web services. Representational State Transfer Author: Nemanja Kojic

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

Distributed Systems Lecture 1 1

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

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

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

MOBILE APPLICATIONS AND CLOUD COMPUTING. Roberto Beraldi

GUI and Web Programming

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

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

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

GenericServ, a Generic Server for Web Application Development

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

Framework as a master tool in modern web development

SUBJECT CODE : 4074 PERIODS/WEEK : 4 PERIODS/ SEMESTER : 72 CREDIT : 4 TIME SCHEDULE UNIT TOPIC PERIODS 1. INTERNET FUNDAMENTALS & HTML Test 1

REST vs. SOAP: Making the Right Architectural Decision

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Release 1. ICAPRG604A Create cloud computing services

Implementing Mobile Thin client Architecture For Enterprise Application

Web Architecture I u

HTML5. Turn this page to see Quick Guide of CTTC

WWW. World Wide Web Aka The Internet. dr. C. P. J. Koymans. Informatics Institute Universiteit van Amsterdam. November 30, 2007

Detailed Table of Contents

Mobile Application Development

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

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

MOBILE APPLICATIONS AND CLOUD COMPUTING. Roberto Beraldi

Software Requirements Specification For Real Estate Web Site

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

Computer Science Course Descriptions Page 1

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

SOA and Virtualization Technologies (ENCS 691K Chapter 2)

Web application development landscape: technologies and models

Client/server is a network architecture that divides functions into client and server

IT3504: Web Development Techniques (Optional)

Whitepapers at Amikelive.com

COMPUTER SCIENCE (AS) Associate Degree, Certificate of Achievement & Department Certificate Programs

IT3503 Web Development Techniques (Optional)

IGW+ Certificate. I d e a l G r o u p i n W e b. International professional web design,

Class and Office Hours. Course Requirements. Concepts to Learn. CMPUT 499: Introduction

How To Write A Web Server In Javascript

Enable Your Automated Web App Testing by WebDriver. Yugang Fan Intel

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

An Architecture for Web-based DSS

Course Descriptions. preparation.

Building Web-based Infrastructures for Smart Meters

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

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

Web Design and Development ACS-1809

Lesson Overview. Getting Started. The Internet WWW

Introduction to Web Technology. Content of the course. What is the Internet? Diana Inkpen

By : Khalid Alfalqi Department of Computer Science, Umm Al-Qura University

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

COMPUTER SCIENCE (AS) Associate Degree, Certificate of Achievement & Department Certificate Programs

Application layer Web 2.0

Building native mobile apps for Digital Factory

DIPLOMA IN WEBDEVELOPMENT

WEB SERVICES FOR MOBILE COMPUTING

6 CURRENT JOB OPENINGS:

Students who successfully complete the Health Science Informatics major will be able to:

Client-Server Applications

To Study and Design a Cross-Platform Mobile Application for Student Information System using PhoneGap Framework

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

ICAPRG409A Develop mobile applications

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

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

Computer Networks. Lecture 7: Application layer: FTP and HTTP. Marcin Bieńkowski. Institute of Computer Science University of Wrocław

Chapter 12: Advanced topic Web 2.0

Modeling Web Applications Using Java And XML Related Technologies

Virtual Credit Card Processing System

Introduction to BlackBerry Smartphone Web Development Widgets

Web Development. How the Web Works 3/3/2015. Clients / Server

Enabling REST Services with SAP PI. Michael Le Peter Ha

4D Deployment Options for Wide Area Networks

Course Number: IAC-SOFT-WDAD Web Design and Application Development

Web Services. with Examples. Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics

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

Designing RESTful Web Applications

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

What is Web Security? Motivation

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Proposal for DSpace Web MVC

Design Approaches of Web Application with Efficient Performance in JAVA

Middleware- Driven Mobile Applications

Modern Web Development From Angle Brackets to Web Sockets

Platform Independent Mobile Application Development

ios SDK possibilities & limitations

The World Wide Web: History

SENIOR WEB DEVELOPER

An Intelligent Approach for Integrity of Heterogeneous and Distributed Databases Systems based on Mobile Agents

Transcription:

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

Overview Motivation - to consider the effect of client-server interaction on the development of interactive apps Style of client-server interaction is driven by the need for user interaction - we ll look at some web apps to exemplify this A look at the history of client-server systems - shared files! shared objects! shared data resources The current technology - Dynamic HTML, XML, Javascript, AJAX, REST or SOAP Evaluation and discussion 2

Style of client-server interaction We now see many highly interactive web applications - Direct manipulation of application entities - MVC for program structure Model: application logic and data Views: presentation logic Controllers: action logic (in response to user input events) - The interaction components (Controllers and Views) potentially operate over the entire application state Most interesting applications operate with: very large datasets shared data - In those the Model is shared between client and server and communication mediates to hide the split, with potential performance, security, consistency, concurrency control and other issues 4

Illustrative web applications Not representative, just some concrete examples Two of my apps, because I know how they are implemented: A) SVG example: (not available in the PDF slides) - ~2500 lines of JavaScript B) maps.camdencyclists.org.uk (available in the PDF slides) - ~5000 lines of JavaScript Google Maps C) Draw along roads - (Not available in the PDF slides because it requires a Google login) 5 Friday, 5 March 2010 5

From RPC to Distributed Objects... 1975 to 1986: RPC-based applications Ed1 1988 Only shared hardware and shared files (FTP, Telnet, email, print, Sun NFS) No objects or structured data Advanced distributed apps used ad hoc RPC between peers Interactive applications got useful structure with Smalltalk (1976 - single computer) 1987: Distributed shared objects Research-based distributed object systems (Emerald, Argus, Arjuna) CORBA (v1: 1991, v2: 1996, v3 1999) More system services: name servers, secure key distribution, database,... 6

From RPC to Distributed Objects... 1975 to 1986: RPC-based applications Only shared hardware and shared files (FTP, Telnet, email, print, Sun NFS) No objects or structured data Advanced distributed apps used ad hoc RPC between peers Interactive applications got useful structure with Smalltalk (1976 - single computer) Objects. 1987: The Distributed Computer Journal, shared 1991 objects Research-based distributed object systems (Emerald, Argus, Arjuna) CORBA (v1: 1991, v2: 1996, v3 1999) More system services: name servers, secure key distribution, database,... Ed1 1988 J Dollimore, E Miranda, W Xu (1991). The Design of a System for Distributing Shared 6

From RPC to Distributed Objects... 1975 to 1986: RPC-based applications Only shared hardware and shared files (FTP, Telnet, email, print, Sun NFS) No objects or structured data Advanced distributed apps used ad hoc RPC between peers Interactive applications got useful structure with Smalltalk (1976 - single computer) Ed1 1988 1987: Distributed shared objects Research-based distributed object systems (Emerald, Argus, Arjuna) CORBA (v1: 1991, v2: 1996, v3 1999) More system services: name servers, secure key distribution, database,... CORBA has moved from being a bleeding-edge technology for early adopters, to being a popular middleware, to being a niche technology that exists in relative obscurity.... CORBA s history is one that the computing industry has seen many times, and it seems likely that current middleware efforts, specifically Web services, will re-enact a similar history. The Rise Digital and Fall Technology of CORBA, GroupMichi Henning, ACM Queue, June 2006 6

... to Web Applications... 1992: WWW emerges - just one application model - hypertext - Introduces HTML, HTTP, URI s 1996: JavaScript introduced in Netscape Navigator - and JScript dialect ported to Internet Explorer in same year 1996-2004: DOM and Dynamic HTML - 1998: DOM Level 1: Full Dynamic HTML (and CSS) W3C standard 1999: AJAX - Then known as XMLHTTP (initially MS ActiveX) W3C Standard 2006 2004-: Major AJAX deployments - Google Mail (2004) and Google Maps (2005),... now thousands Arguably, MS let an AJAX genie out of thr bottle and it became a instrument for their own frustration. 7

... to Mobile Platforms 2008: iphone SDK - MVC based - Traditional data structures (without garbage collection) - Support for devices: GPS, camera, accelerometer, mic,.. - Disconnected operation! local storage of data models - HTTP or TCP/IP 2008: Android SDK To come - ubiquitous systems that: - adapt continually to context - run and evolve 24/7 - use peer-peer and ad hoc networks 8

Web Application Technologies Client side: Views and controllers implemented in JavaScript with Dynamic HTML + DOM + CSS + SVG +... Server side: data model managed by a service - implemented in Java, Python, PHP, Pearl with an SQL database Communication: AJAX, XML, JSON, Protocol Buffers,... Architectures: SOAP, REST,... 9

REST (Representational State Transfer) GET, POST, PUT and DELETE applied to representations of resources - How to define the scope of resources? A useful post-hoc statement of WWW principles Restatement of goals derived from DS research: - keep servers stateless - provide the client with a sizeable chunk of application state Is REST consistent with object sharing? - Transactions? - Semantics? 10

Conclusions The web and XML were inevitable reactions to the data explosion. Tim Berners-Lee gets a lot of the credit for being almost alone in foreseeing that an object-oriented model would be too complex in a world where everyone can contribute data - and every company/organisation can define new types. 12

Conclusions The web and XML were inevitable reactions to the data explosion. - but they are entirely data-oriented - So each interactive application must create semantics for the data - direct manipulation -> lots of JavaScript programming - can we escape from JS and develop a more productive environment? Is the object-oriented vision still viable? - In which data carries its own (operational) semantics, with interface specifications for public operations - achievable via components? Future challenges: mobility and ubiquity - Need to address: physical context, resource discovery, intermittent connection,... 12

Questions? Comments? Early 2011 DISTRIBUTED SYSTEMS Fifth Edition Coulouris Dollimore Kindberg Blair Including new chapters on: My WebApp Development Course (2009), http://www.cl.cam.ac.uk/~gfc22/webappcourse/ Distributed Objects and Components Case Study: Google Infrastructure More references on the next slide. 13

References Distributed Shared Objects and GUIs: J Dollimore, E Miranda, W Xu (1991). The Design of a System for Distributing Shared Objects. The Computer Journal, vol. 34, No. 6, pp. 514-521 (Dec. 1991) REST: Fielding, R. (2000). Architectural Styles and the Design of Network-based Software Architectures, PhD. Dissertation. http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm CORBA: Seetharamanan, K. (ed.) (1998). Special Issue: The CORBA Connection, Comms. ACM, October, Vol. 41, No. 10. Web Services: Birman, K.P. (2004). Like it or not, Web Services are Distributed Objects! Comm. of the ACM. Vol. 47, No. 12, pp. 60-62. December. Vinoski, S. (2002). Putting the `Web' into Web Services. IEEE Internet Computing. July-August 2002. Vogels, W. (2003). Web Services are not Distributed Objects. IEEE Internet Computing. Nov-Dec 2003. Google Infrastructure: Jeff Dean (2009), Challenges in Building Large-Scale Information Retrieval Systems, WSDM09. (slides) Our book: Coulouris, Dollimore, Kindberg, Blair. Distributed Systems: Concepts and Design, Pearson Education/Addison Wesley, fourth edition 2005, fifth edition to be published 2011. Introductory course on Web App development: George Coulouris (2009), WebApp Development Course, http://www.cl.cam.ac.uk/~gfc22/webappcourse/ 14