Fat Web Pages
Wednesday, March 26, 1997 by Dave Winer.
On 1/31/97 in Tricky Browser Guys I asked for a hook that would return the HTML source text of the page that's currently being displayed in the frontmost browser window.
Two weeks ago, one of the browser companies gave me what I was asking for. We produced a new version of Frontier, did a little refining, and late last week we finalized the new stuff.
Last night the new browser was released, and the last gasp of our creaky distribution system started up. One more upgrade, then nirvana! At least we hope...
Here's a slice of progress! An amazing thing to me, a loop we won't have to go around again. I realize that this is much more technical an area than many people will be comfortable with. But the software is real, it's not theory. I want to make sure our industry's technical leaders have a chance to understand and learn from what we're doing.
Software distribution via the Internet is a hot topic, for a good reason. The process totally needs an overhaul!
Here's how you download a new bit of software today. Click on the download link. Where did the file go? (Usually on my desktop!). OK. Launch WinZip or Stuffit Expander. More desktop files created. Delete the extranous ones.
Run the installer app or script. After the software is installed, go back to the desktop and double-click on the Read Me file. What to do with the folder it leaves around?
It's a klunky, poorly thought-out system that could be greatly improved.
Here's how nirvana would work...
I'm reading a web page describing a new utility. Sounds interesting! Let's check it out.
Choose the Get Page Data command from the menubar in the web browser. A dialog confirms that I want to install the new stuff. It tells me where it's going to be stored, offering me a chance to change the place, or punt.
An outline log window opens, recording the URL of the web page where the software came from, and the date and time.
A window opens showing me the newly installed stuff. No software runs. If I don't like what I see, I delete the object and move on. There are no extra files on the local system. No confusing trips to the desktop. The docs contain the objects they describe. User judgement is invoked at every step of the process, nothing is done behind your back.
How does it happen? The page invisibly contains the software to be installed. These pages are called Fat Web Pages. Another app asks the web browser for the page, decodes it, and the installation process starts. The process is started thru a menu command, building on menu sharing, a standard supported by Netscape and Microsoft's Mac web browsers.
The same idea can be used for pieces of FileMaker databases, or Eudora mailboxes, or pieces of Java applets. It's simplified software distribution via the net, with security, and it's for everyone, not just Frontier people.
People will want to know if this is secure. It's more secure than the current system we're using. The purpose is to simplify object distribution, and it does that too.
The Internet, at its point of connection to the local system, only knows about files, it doesn't understand objects. Think of objects that live in shared environments, sometimes called sandboxes, not apps that live in structures of files and directories. We're solving a routing problem and removing steps from an unnecessarily complex process.
There's the opportunity to make things easy if the sandbox software knows how to get stuff out of and into local storage systems at both ends of the pipe. But it shouldn't depend on server software being installed. We like static pages because they are platform-agnostic and can be served cheaply.
The objects being distributed should never appear in the user's file system -- they should go directly into the database.
We're porting our environment to Win32, so cross-platform formats is a big issue in our shop these days. To span two platforms, we need a new distribution format. We decided that HTML with embedded comments is the way to go. That's what a fat page looks like when you View Source on one.
As with all complex technology problems, we want to iterate to the solution. Today's release is our first step. And we want to be open so our format can be used to distribute new software parts for other environments such as Java and ActiveX.
Our website tools are already compatible, and it's possible for other tools to be compatible. It will also work on Windows, if and when a browser vendor implements the hook.
Microsoft Internet Explorer 3.0.1b1 for the Mac, released last night, implements the get-source hook we need to make fat web pages possible.
We're releasing Frontier 4.2.2 today to coincide with their release. It fully implements the scenario described earlier in this piece. More info is at:
We're going to use fat pages to distribute new software for the Frontier community. It will still be possible to get updates using Netscape Navigator, but it will be easier with browsers that support the get-source hook, for now, Internet Explorer. I hope Netscape implements the hook, and that Microsoft implements it in their Windows browser.
Finally, thanks to Microsoft, especially Chris Evans, Alex Hopmann and Don Bradford, for taking a chance on us. What an uncommon experience to work with a large company from my small company base. I hope it predicts a lot of cooperation and collaboration in the future.