Light Weight Protocols (original) (raw)

Dave Winer Shares Light Weight Protocols

This website was first created in the late 1990’s by Dave Winer. It was directed at web developers and coders. The domain has obviously been purchased a number of time. It's seen a variety of other uses from a Chinese site to a florist site to a fashion blog. When its domain recently became available I thought it would be great to recreate the essence of the original site using archived content.

I have always had a facination with the behind-the-scenes technical structure of the internet, so it's not surprising that I am part of a team that does bespoke software development for a number of companies in industries with higher-than-usual security and privacy concerns. The progressive software company I work for supports every aspect of the software and product development life cycle starting from from feasibility analysis, user experience design, and prototyping, to development of scalable solutions. My data team goes beyond everyday reporting to mine, segment, and deliver potentially game-changing insights for clients. It's challenging work that is particularly rewarding. We techies might not have name recognition like Dave Winer, but we are all connected via the WWW.

A lot has happened to the WWW in the past 15+ years. But we still have web masters, developers, coders working on the web every day. For those geeks and techies, you may find this site a fun look at what was happening way back then.

Dave Winer is known for his contributions to outliner applications, scripting, web services, and content management, as well as blogging tools / blogging and podcasting. An avid Batman fan, he can very often be found searching for another movie themed Batman t shirt at MoonAtMidnight. Other Batman memorabilia can be found in his office and his peers have many stories of Batman themed parties and Christmas gifts involving Batman merchandise. Who says geeks lack style? More information about Dave Winer can be found on his Wikipedia page: https://en.wikipedia.org/wiki/Dave\_Winer.

(This section linked to all the back pages on the site, which we are not creating- but it shows the scope and detail that Dave shared with the web developers community. Impressive to say the least.)

Lightweight Protocols -- LWProtocols.org

This site is intended as a clearinghouse for information about distributed computing architectures that are more structured than telnet command protocols or CGIs but less complex or heavy than CORBA or DCOM. The term ``lightweight'' in this context refers to both how easy it is for a user to begin using the architecture as well as how easy it is for web developers to get started in development and quickly produce working code.

Telnet-friendly protocols (HTTP, FTP, SMTP, NNTP, POP) are the original and most widely deployed lightweight protocols. Generally, the protocols described on this site provide additional structure in the protocols that ASCII line-based protocols never standardized.

News and Events

Overviews

Protocol Matrix - Facet-based comparison of XML protocols. (Mar. 29, 2000, Eric Prud'hommeaux)

Community

Scripting News - Weblog featuring many links on web protocols.

SOAP - WebServices Resource Center - News, articles, and links about SOAP.

xml-dist-app - XML Distributed Applications mailing list. To subscribe, send a message to xml-dist-app-request@w3.org with the subject "subscribe".

Data Transfer Architectures

General

``Architectures'' are complete systems for distributed computing and usually include services, protocols, or formats for transport, serialization, making requests, and discovery.

Lightweight, cross-platform, language-neutral architectures

Lightweight, language or platform dependent architectures

Other Architectures

Serialization Formats

Applications and APIs

These applications either implement or use lightweight protocols or are specially designed to work well with lightweight protocols.

Security

****

Aside from all this techie stuff, Dave Winer was and still is a blogger. I happened to click on a link from the archived Lightweight Protocols page and ended up on archived pages from his Scriptin News that goes way back. The posts are entertaining so I thought I would add a bit of information about them here, supplementing the tech stuff.

This was on the very first Classified Ads page from Scriptin News in 1996

The first page I checked out has archived captures starting in 1994-2015 with 2785 captures. All the posts were great. Sorry I won’t be sharingl the fascinating reads that occurred between the first and the last posts, but they can be found on https://web.archive.org

Classified Ads

Welcome to the new classified ads server on scripting.com. This new service is designed for people in the web development community, people who want to advertise their services, organizations looking for new contractors and employees, developers offering software for sale, and investors looking to tap into the growth of web content development.

The service is free while it's in a trial period. If it catches on, we may charge a reasonable fee. The source code for this suite will be available when it stabilizes, so other people can set up classified ads services. The suite is entirely configurable. It's not hard coded for any specific set of interests.

Last captured updates of this section included pithy statements from Dave Winer:

Don't slam the door on the way out. When in doubt, blog. Greetings, citizen of Planet Earth. We are your overlords. :-)

You can find new blog posts by Dave Winer at: http://scripting.com/

******

DWhite -- Distributed Whiteboard API

(These are examples of two of Dave’s instructive archived back pages.)

Initial Draft -- March 9, 2000

DWhite (pronounced like the name Dwight) is an API for synchronizing trees or graphs of nodes. Although the name is inspired by distributed whiteboards (a GUI application), DWhite actually supports any type of tree or graph of data.

DWhite adopts a very simple "Model, View, Controller (MVC)" API. The core of DWhite allows a client to synchronize it's local copy of a "Model" (tree or graph) with the server's version of the same tree. "Views" and "Controllers" are applications, logically seperate from the DWhite core, that can query and manipulate the Model. Client copies of the Model can be partially or fully populated. The logical view of DWhite and an application on top of it, showing the major flows of data, looks like this:

[wish somebody'd whip me up a PNG and/or SVG of this ]

The Model of all applications are trees or graphs of nodes. Nodes may be major nodes or minor nodes. Major nodes are the primary nodes of information in DWhite and may contain many properties, minor subnodes, and major subnodes. Major nodes may be copied fully or partially. Minor nodes may contain many properties, minor subnodes, and major subnodes, but are always copied in full as part of their containing major node. Every major node in DWhite has at least the following properties:

DW:Id The DWhite ID of this node.
DW:Signature The DWhite signature of this node.
DW:Partial If present, indicates that this is a partial copy

A DW:Id uniquely identifies a node within one tree of an application and never changes and is never reused as long as the tree exists. A DW:Id will always refer to the same node regardless of where it is moved in the tree. A DW:Signature (based on XSignature) records the state of a node at one point in time and is used to check whether or not a node has been updated. DW:Partial indicates whether the node is fully populated (DW:Partial is false or undefined) or partially populated (DW:Partial is true). A partially populated major node always contains a DW:Id, a DW:Signature, and DW:Partial indicator, and MAY contain additional properties as defined by an application.

Minor nodes do not have DW:Id's, DW:Signatures's or DW:Partial indicators, and are always fully populated.

The core DWhite API has only two methods, getNode() and checkNode(). An empty string ("") as a DW:Id always represents the root node of a tree, it is used as a starting point for building the client copy of the tree. The returned root node may have a DW:Id that contains a real (not "") identifier. Application View APIs will also have methods that will return specific (usually partial) nodes within the tree.

getNode(node)

Returns a fully populated copy of the node represented by the (usually partial) node. All properties and minor subnodes will be returned. Major subnodes will be returned partially populated.

checkNode(node)

Takes a partial node and compares its DW:Signature to the server's version of DW:Signature. If they match, then a partial copy of the node is returned (DW:Partial is true). If they do not match, then a full copy of the node is returned, as if getNode() had been called (DW:Partial is false or undefined).

Notes:

Firewall Issues

An experiment in focused discussion

This page summarizes points and counterpoints from a firewall discussion being held on the Scripting News Discussion Group.

To best address specific issues on this page, please respond to the indicated message and include the issue number. Issue numbers will not change as they are moved around. Edits and paraphrases not actually written by the indicated author are in [italics]. To suggest a change in wording, followup the indicated posting in the DG.

This page is but a crude prototype for a possible web application for focused discussions.

Issues

LWprotocols.org