orthogonality_of_specification.html 10 KB
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css" media="all">
    @import "/QA/2006/01/blogstyle.css";
    </style>
    <meta name="keywords" content='' />
    <meta name="description" content="HTTP,HTML,URI The general principle of platform design is that platforms consist of a set of standard interfaces. Standard interfaces allow substitution of components across the interface boundary, while independence of interfaces allow evolution of the interfaces themselves. In a PC,..." />
    <meta name="revision" content="$Id: orthogonality_of_specification.html,v 1.33 2011/12/15 23:20:54 mirror Exp $" />    
   <link rel="alternate" type="application/atom+xml" title="Atom" href="http://www.w3.org/QA/atom.xml" />
   <link rel="alternate" type="application/rss+xml" title="RSS 1.0" href="http://www.w3.org/QA/news.rss" />   
   <title> Orthogonality of Specifications - W3C Blog</title>

   <link rel="start" href="http://www.w3.org/QA/" title="Home" />
   <link rel="prev" href="http://www.w3.org/QA/2009/06/for-erik-naggum.html" title="For Erik Naggum, in appreciation" />
   <link rel="next" href="http://www.w3.org/QA/2009/06/w3c_team_at_semtech.html" title="W3C team at SemTech" />

   
    <!-- <script type="text/javascript" src="http://www.w3.org/QA/mt.js"></script>-->

</head>
<body class="layout-one-column">
      <div id="banner">
      <h1 id="title">
	<a href="http://www.w3.org/"><img height="48" alt="W3C" id="logo" src="http://www.w3.org/Icons/WWW/w3c_home_nb" /></a>
W3C Blog
</h1>
    </div>
    
    <ul class="navbar" id="menu">
        <li><strong><a href="/QA/" title="W3C Blog Home">[ W3C Blog ]</a></strong></li>
        <li><a href="/QA/Library/" title="Documents and Publications on Web and Quality">Documents</a></li>
        <li><a href="/QA/Tools/" accesskey="3" title="Validators and other Tools">Tools</a></li>
        <li><a href="/2007/12/qa-blog-help/index#feedback">Feedback</a></li>
    </ul>
<div id="searchbox">
<form method="get" action="http://www.google.com/custom" enctype="application/x-www-form-urlencoded">
<p id="formbox"><input type="text" size="15" class="textfield" name="q" accesskey="E" maxlength="255" /> <input type="submit" class="submitfield" value="Search" id="goButton" name="sa" accesskey="G" /> <input type="hidden" name="cof" value="T:black;LW:72;ALC:#ff3300;L:http://www.w3.org/Icons/w3c_home;LC:#000099;LH:48;BGC:white;AH:left;VLC:#660066;GL:0;AWFID:0b9847e42caf283e;" /><input type="hidden" id="searchW3C" name="sitesearch" checked="checked" value="www.w3.org/QA" /><input type="hidden" name="domains" value="www.w3.org/QA" /></p>
</form>
</div>


    <div id="main"><!-- This DIV encapsulates everything in this page - necessary for the positioning -->

                     <p class="content-nav">
                        <a href="http://www.w3.org/QA/2009/06/for-erik-naggum.html">&laquo; For Erik Naggum, in appreciation</a> |
                        <a href="http://www.w3.org/QA/">Main</a>
                        | <a href="http://www.w3.org/QA/2009/06/w3c_team_at_semtech.html">W3C team at SemTech &raquo;</a>
                     </p>

                        <h2 class="entry-header"> Orthogonality of Specifications</h2>
                           <div class="entry-body">
                              <!-- #BeginTags --><p class="tags"><a href="http://www.technorati.com/tag/HTTP" rel="tag">HTTP</a>,<a href="http://www.technorati.com/tag/HTML" rel="tag">HTML</a>,<a href="http://www.technorati.com/tag/URI" rel="tag">URI</a></p><!-- #EndTags -->
	<p>The general principle of platform design is that platforms consist of a set of standard interfaces. Standard interfaces allow substitution of components across the interface boundary, while independence of interfaces allow evolution of the interfaces themselves. In a PC, for example, the disk bus interface allows many different disk vendors to offer disk products independent of the model of display or keyboard, but the orthogonality of  interfaces allow evolution of the interfaces themselves. If the display interface were linked to the disk interface too tightly, it wouldn't be possible to evolve ISA to SATA without updating VGA.</p>
	<p>In the web platform, the three important interfaces are transport, format and reference, and the current definitions of those interfaces are HTTP, HTML and URI. The interfaces are standard, allowing many different implementations: HTTP standard lets you use HTTP servers from many vendors, the HTML standard lets you use many different HTML authoring tools or template systems, and the URI specification allows identification of many different components.</p>
	<p>While HTTP is the current "common denominator"  protocol that all web agents are expected to  speak, the web should continue to work if web content is delivered by other  protocols -- FTP, shared file systems, email, instant messaging, and so forth.  HTTP as it has evolved has severe  difficulties, and designing a Web that <strong>only works</strong> with HTTP as it is  currently implemented and deployed would unfortunate. We should work harder to  reduce the dependencies and isolate them.</p>
	<p>HTML is the 'lingua franca', the common language that all  agents are currently expected to be able to produce, process, read and interpret (or at  least a well-defined subset of it). Having a common language is important for  interoperability, but  the web should  also work for other formats -- extensions to HTML  including scripting, DOM APIs, but also other  formats and application environments such as XHTML, Java, PDF, Flash,  Silverlight, XForms, 3D objects, SVG, other XML languages and so forth. Certainly  HTML has it has evolved is overly complex for the purposes to which it is  designed.</p>
	<p>The URI is the fundamental element of reference, but the URI  itself is evolving to deal with internationalization, reference to session  state, IRIs, LEIRIs, HREFs and so forth. Many applications use URIs and IRIs,  not just the formats described above but other protocols and locations,  including databases, directories, messaging, archiving, peer-to-peer sharing  and so forth.</p>
	<p>The is just one of many communication applications  on the global Internet; for web browsing to integrate will with the rest of the  distributed networking, web components should be independent of the  application, and work well with messaging, instant messaging,  news feeds, etc etc.</p>
	<p>A sign of a breakdown of this architectural  principle would be for a specification of a format (say HTML) to attempt to  redefine, for its purposes, the protocol (say HTTP) or the method of reference  (URI).  The specifications should be independent, or at least, dependencies isolated, minimized, reduced. If those other elements of the  web architecture are incorrect, need to evolve to meet current practice or have  flaws in their definitions, they need to evolve independently, so that orthogonality of the specifications and reusability of the components are the  promoted.</p>
	<p>There may well be reasons to link some features of HTML to  the fact that it is delivered over an interactive protocol, but linking HTML  directly to HTTP in a way that features would work only for HTTP and not for  any other protocol with similar features – that would be unfortunate. It might  not matter in the short-term (that&rsquo;s all we have right now) but it is harmful  to the long-term evolution of the web.</p>
	<p>(Should go without saying, but just in case: this is a personal post, not reviewed by the TAG)</p>
	
                           </div>
                           <div id="more" class="entry-more">
                              
                           </div>
                       <p class="postinfo">Filed by <a href="http://larry.masinter.net">Larry Masinter</a> on June 24, 2009  1:03 PM in <a href="http://www.w3.org/QA/archive/technology/html/">HTML</a>, <a href="http://www.w3.org/QA/archive/web_architecture/">Web Architecture</a><br />
<span class="separator">|</span> <a class="permalink" href="http://www.w3.org/QA/2009/06/orthogonality_of_specification.html">Permalink</a>
                                 
                                 
</p>






<p id="gentime">This page was last generated on $Date: 2011/12/15 23:20:54 $</p> 

      </div><!-- End of "main" DIV. -->

<address>

This blog is written by W3C staff and working group participants,<br />
&nbsp;and maintained by <a href="/People/CMercier/">Coralie Mercier</a>.<br />
Authorized parties may <a href="/QA/new">log in</a> to create a new entry.<br/>
<span id="poweredby">Powered by Movable Type, magpierss and a lot of Web Technology</span>
    </address>


    
    <p class="copyright">
      <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 1994-2011
      <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a>&reg;
      (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>,
      <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
      <a href="http://www.keio.ac.jp/">Keio</a>),
      All Rights Reserved.
      W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
      <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
      <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
      and <a rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</a>
      rules apply. Your interactions with this site are in accordance
      with our <a href="http://www.w3.org/Consortium/Legal/privacy-statement#Public">public</a> and
      <a href="http://www.w3.org/Consortium/Legal/privacy-statement#Members">Member</a> privacy
      statements.
    </p>

  </body>
</html>