home > notes > doccentric
v1.0 5nov2000: First version
By Matt Webb.
What are web applications currently? ^
Webapps are currently monolithic performing several functions. They generally have certain characteristics:
Of course there are exceptions. Blogger stores its output on any server. Manila (Frontier) has an open data IO API.
Frontier deserves a special mention for doing as much as possible to be interoperable with other applications and keep the data open. However the data format is tied very closely with the application and the Frontier platform.
Example: Hotmail is a web app that has all the qualities above. It has input in the form of email. It databases the email. You can view the email in the form of messages, but view it or access it in no other way. There are many other webmail systems; you cannot switch between them and retain your data.
These webapps are application centric.
What is a document centric application? ^
Most standard PC applications are document centric. (nb: This is not the same as a document centric OS, like OpenDoc.)
The user has data. The application operates on some way on the data; the user is given more data as output.
Characteristics of document centric applications:
There are two types of application here: Monolithic (Outlook); do one thing and do it well (grep). The second is more typical of the Unix world.
Example: Microsoft Word lets you load a previously started document. This same document (as long as it is in some open text format) can easily be operated on in many applications. You can email the document. You can print it out in some other application.
This paradigm can also be applied to web apps.
What is a document? ^
A document is a piece of data that can be viewed from many different angles. An html document can be viewed:
A document is discrete from other data. It stands alone. It may need a certain application to view it in a sensible way, but otherwise it is independent.
An application in this context is a tool that temporarily transforms the document to enable you to view and operate on it.
Web applications do not do this. They could, they should, and their power would increase massively with it.
The most powerful form would be the do one thing and do it well type.
An example of a document centric web application ^
What it does: The app lets a person make an event based signup list. Customisable options are event repeat rate, choices per event, allowed users. nb, I've written such an app in an app centric form. I have many notes for a document centric version, should anyone be interested.
An app centric version has a web based administration system to store information in a database. The front end lets people sign in, view their choices, and sign up for events. All information is stored in the database. Possible outputs must be programmed by the application author, and might include a per-event attendance list and billing information.
A document centric app would have two documents at its centre. The first would be the events list and information associated with them. The second would be the signup list.
The events list would be in some open format, probably in ascii. The user can't needn't write this by hand so there is some application (similar to the app centric one's administration package) that has an easy UI and produces a downloadable - and machine readable -document.
This preferences document is placed online, in the user's space.
A second Reader application is now used. It can point at many different documents so the events organiser points it at their events list document and makes it available to users. The events list document is transformed into an easy to use UI by the Reader application. As users sign up it outputs the signup list in some other open format which is saved to the user's space.
This second document can be read by eye, or a third application used to see it.
Any of these applications can be swapped in or out. Different venders compete on UI, speed, features and so on. Documents are always safe.
What has happened? ^
Old process: human readable data to application centric web app to human readable data.
New process: human readable data to document centric web app to machine readable data to document centric web app to human readable data.
It's a type of modularity we're used to in the PC world so it won't be hard to write. The machine readable documents work towards the Semantic Web. The user controls the data. The vendors compete on real and useful application attributes. We can have the Load and Save buttons back.
home > notes > doccentric