Versioning, Extensibility & Postel’s Law Noah Mendelsohn Tufts University Web:

Slides:



Advertisements
Similar presentations
Mobile Application Architectures
Advertisements

Iframes & Images Using HTML.
W3C XML Schema: what you might not know (and might or might not like!) Noah Mendelsohn Distinguished Engineer IBM Corp. October 10, 2002.
Copyright 2012 & 2015 – Noah Mendelsohn A Brief Introduction to Requests for Comments – The Specifications for the Internet Noah Mendelsohn Tufts University.
Cox Personal Web Space (or AOL space) Free Storage for Image Galleries.
© 2010, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet 1.
HTTP: the hypertext transfer protocol
IS 373—Web Standards Todd Will
Apache Axis: A Set of Java Tools for SOAP Web Services.
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
MWD1001 – Website Production Web Browsers Week 11.
© 2004, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet.
Developing a Basic Web Page with HTML
Boris Tshibangu. What is a proxy server? A proxy server is a server (a computer system or an application) that acts as an intermediary for requests from.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
INTRODUCTION TO CLIENT-SIDE WEB PROGRAMMING ACM 511 ACM 262 Course Notes.
Structure Content Presentation Semantics.
HTML5. What is HTML5? HTML5 will be the new standard for HTML. HTML5 is the next generation of HTML. HTML5 is still a work in progress. However, the major.
J2EE Web Fundamentals Lesson 1 Introduction and Overview
Pemrograman Berbasis WEB XML part 2 -Aurelio Rahmadian- Sumber: w3cschools.com.
1 HTML/XHTML Objectives Explain what HTML is and how Web pages use HTML Explain what HTML is and how Web pages use HTML Demonstrate how to create Web pages.
Copyright © 2004 ProsoftTraining, All Rights Reserved. Lesson 2: Markup Language and Site Development Essentials.
CREATED BY ChanoknanChinnanon PanissaraUsanachote
Networks QUME 185 Introduction to Computer Applications.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
CIS 1310 – HTML & CSS 1 Introduction to the Internet.
G053 – Lecture 09 Domain Names Mr C Johnston ICT Teacher
Copyright 2012 & 2015 – Noah Mendelsohn Introduction to: The Architecture of the World Wide Web Noah Mendelsohn Tufts University
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
XHTML and CSS Session 1 Intro, (X)HTML, CSS, W3C, browsers, webpage, structure, tags, attributes, elements, web development process, basic XHTML elements.
به نام خدا تنظیم کننده : فرانه حدادی استاد : مهندس زمانیان تابستان 92.
XHTML By Trevor Adams. Topics Covered XHTML eXtensible HyperText Mark-up Language The beginning – HTML Web Standards Concept and syntax Elements (tags)
Session: 1. © Aptech Ltd. 2Introduction to the Web / Session 1  Explain the evolution of HTML  Explain the page structure used by HTML  List the drawbacks.
 Pretty much any kind of file can be sent on such as a photo or even a virus. .exe files are usually always viruses. (never open these even if.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
By Sanjay Chand.  What is a web server?  A web server is a program that, uses the client/server model and the World Wide Web’s HTTP.  My recommendation.
1 3 Computing System Fundamentals 3.4 Networked Computer Systems.
Copyright 2012 & 2015 – Noah Mendelsohn Metcalfe’s Law : Why is the Web so Big? Noah Mendelsohn Tufts University
Semantics vs. Style Importance of Standards Why we follow the rules.
Replication (1). Topics r Why Replication? r System Model r Consistency Models r One approach to consistency management and dealing with failures.
David Orchard W3C Lead BEA Systems Web service and XML Extensibility and Versioning.
Browser Wars By: Jesse Arredondo
Lecture 2- Internet, Basic Search, Advanced Search COE 201- Computer Proficiency.
May 6, 2009 Browser Compatibility Testing Definition It is a non functional type of testing where web based applications are tested on various browsers(IE.
CS Introduction to XML - What is XML? Extensible Markup Language, or XML for short, is a new technology for web applications. XML is a World Wide.
ISA 95 Working Group (Business) Process Centric Exchanges Dennis Brandl A Modest Proposal July 22, 2015.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Powered by Microsoft Azure, The Tyros Allows Sports Coaches, Athletes, and Officials to Share and Analyze Game Videos Anywhere There’s an Internet Connection.
HTML III (Forms) Robin Burke ECT 270. Outline Where we are in this class Web applications HTML Forms Break Forms lab.
1 Outlook web app مریم جعفری. Preface 2 Webmail (or web-based ) is any client implemented as a web application running on a web server. Examples.
The Web Standards Process COMP6218 Web Architecture Dr Nicholas Gibbins –
Decentralized Extensibility & HTML 5 (An introduction to the debate) Noah Mendelsohn Distinguished Engineer – IBM Corp. Co-chair: W3C Technical Architecture.
Introduction to the Web
Introduction to: The Architecture of the World Wide Web
COMP 150-IDS: Internet Scale Distributed Systems (Spring 2017)
Versioning, Extensibility & Postel’s Law
Decentralized Extensibility & HTML 5 (An introduction to the debate)
HTTP: the hypertext transfer protocol
Enterprise Application Architecture
How To Fix AOL Desktop Update Error AOL Helpline Number
Introduction to: The Architecture of the World Wide Web
Transport Protocols Relates to Lab 5. An overview of the transport protocols of the TCP/IP protocol suite. Also, a short discussion of UDP.
1 Introduction to the Internet.
Browser Support for HTML5
Versioning, Extensibility & Postel’s Law
Introduction to: The Architecture of the World Wide Web
COMP 150-IDS: Internet Scale Distributed Systems (Spring 2016)
Metcalfe’s Law : Why is the Web so Big?
Architecture Competency Group
COMP 150-IDS: Internet Scale Distributed Systems (Spring 2016)
Presentation transcript:

Versioning, Extensibility & Postel’s Law Noah Mendelsohn Tufts University Web: COMP 150-IDS: Internet Scale Distributed Systems (Spring 2015) Copyright 2012, 2103 & 2015

© 2010 Noah Mendelsohn 2 Goals  Explore the design of data formats for systems that evolve  Explore the consequences of connecting systems with nodes that disagree on the rules for communication

© 2010 Noah Mendelsohn (In-Class Exercise)

© 2010 Noah Mendelsohn Evolving Systems, Compatibility & Partial Understanding

© 2010 Noah Mendelsohn Terminology  Systems evolve resulting in different versions of –Software –Data formats & protocols used by that software  Some systems are designed from the start to be extensible –I.e. there is an architected approach to versioning  Backward compatible: new versions accept old stuff  Forward compatible: old versions accept new stuff!!! 5

© 2010 Noah Mendelsohn Compatibility is a matter of degree  Full compatibility: –Hard to define in detail –Spirit is: things work right when data shared across versions –Right? Details may still vary accoring to needs of app  Acceptable compatibility –The system does something reasonable with content that received from other versions of software –There may be compromises (formatting, reduced function, etc.) –Let’s explore the notion of “doing something reasonable” 6

© 2010 Noah Mendelsohn Data formats & partial understanding  When some or all of the data is encoded and interpreted the same way by multiple versions of the specification, inter-operation is easy…we have full compatiblity  The key to flexible inter-operation is partial understanding  Ideally, this is achieved by specifying in early versions of the specifications how illegal content will be interpreted!  Huh? Is it legal or not? –Well, it’s in between… –Should be rejected by conformance checkers –…but implementations of early versions will accept it and follow the rules –…this is in the spirit of Postel’s Law 7

© 2010 Noah Mendelsohn Data Format Syntax & Versioning

© 2010 Noah Mendelsohn Challenges  New syntax for new features  Old features removed  New rules for old features  Changing the meaning of old syntax 9 These changes do happen…but they’re dangerous!

© 2010 Noah Mendelsohn Challenges  New syntax for new features  Old features removed  New rules for old features  Changing the meaning of old syntax 10 You need something like a version id in the format to catch these!!

© 2010 Noah Mendelsohn Problems & groundrules  Nodes disagree about rules for interpreting messages  We want systems to keep running when it’s safe  Certain results will not be acceptable – we must guarantee they are never accepted  Not all problems are equally serious – we’ve already discussed partial understanding 11

© 2010 Noah Mendelsohn Unique syntax 12...lots of stuff here......lots of stuff here... Verions 2 doesn't understand this. If this is here, it always means the same thing…you either understand it or you don’t!

© 2010 Noah Mendelsohn Unique syntax 13...lots of stuff here... 0 Le’ts assume that in V1 0 means approved...lots of stuff here... 1 For some reason in V2, the spec is changed to work the opposite way This is dangerous! Applications can’t tell by looking whether they do or don’t understand!

© 2010 Noah Mendelsohn Version numbers can help with this 14...lots of stuff here lots of stuff here... 1 By looking at the version number, we can tell whether we know which rules to apply.

© 2010 Noah Mendelsohn Postel’s Law (the Robustness Principle)

© 2010 Noah Mendelsohn "Be liberal in what you accept, and conservative in what you send".

© 2010 Noah Mendelsohn Why Postel’s Law?  Avoid brittle systems: keep running in the face of small problems  Allow for innovation –We’ll discuss this later  Hard/impossible to keep large systems in sync –Internet-scale systems work across organizations  Allow for competition –TCP/IP re-implemented in each OS –Browsers: Firefox, Safari, Chrome, IE, Opera, etc. –Web servers: Apache, IIS 17

© 2010 Noah Mendelsohn Postel’s Law is controversial  Many in the Internet community deeply believe Postel’s law key to robustness of the Internet –The IETF has it as a motto  When applied carefully at both ends, results are typically good  You have to watch not to liberally accept something dangerous!  When not applied carefully, big trouble results… 18

© 2010 Noah Mendelsohn Problems with Postel’s Law  HTML browsers were very liberal in accepting almost anything  So servers stopped following the rules  There’s a ton of buggy content on the Internet…  …and since browsers accept it, people expect it to keep working!  The HTML5 spec is 5x bigger than it needs to be – to standardize handling of buggy content  The servers were not conservative in what they sent! 19

© 2010 Noah Mendelsohn Note that Postel’s law says little about evolving specifications…it’s mainly to avoid brittleness in reimplementing the same specification, but…

© 2010 Noah Mendelsohn …Postel’s law points a direction for building systems that evolve

© 2010 Noah Mendelsohn Naming & Decentralized Extensibility

© 2010 Noah Mendelsohn What if we want lots of people to add features?  Specifications will be modular  We need a way to recognize the syntax for each feature  Who gets to invent new syntax?  How can we keep two organizations from inventing the same syntax? Problem: as we saw when we studied naming… …globally unique names tend to be ugly and inconvenient

© 2010 Noah Mendelsohn The HTML Distributed Extensibility Debate  The W3C spent years moving HTML to XML (XHMTL)  A big reason was so anyone could invent new tag names without collision…XML has namespace  But… many users rebelled against the inconvenience  HTML5 can only be updated by a central committee…  …but the tag names are short and convenient  This controversy almost derailed HTML evolution 24 See: