Bob Balaban May 3 2007 09:46:14 AMGreetings, Geeks!
Today I want to test some ideas with you concerning a problem I have been hearing about for years. Namely, many (many many!) Domino Web application developers are really (really really!) unhappy with the way the Domino Web Engine converts data documents to HTML.
There are (at least) two different dimensions to this problem:
1) Conversion of Notes rich text in documents and layout/rendering "hints" in the corresponding form to HTML has bugs/limitations/drawbacks (yes, I know many people state it much more graphically than that, but this is a family-friendly blog....). This means that a lot of developers have to spend way more time than they would like tweaking and nudging and in some cases outright arm-twisting the conversion engine to get the output to look the way they want. This makes people late for dinner (or beer), unhappy, grumpy, and less likely to want to use Domino for Web apps in the future. A Bad Thing.
2) Developers who want to bypass the Domino rendering issues and seize control of the rendering logic themselves (apply their own CSS/XSLT, massage the data and draw their own pictures, whatever), generally do not have good (reliable, robust, complete) ways of doing that (?ReadViewEntries only works on views, etc etc).
So: What if.... we were to create a whole new set of HTTP based URL commands to access data on Domino servers? Let's wave our magic wand and declare that this new interface will have the following properties:
1. HTTP based, adopting REST style protocols (i.e., use GET, PUT, POST etc. as the "verbs", with URI spec and URL command arguments providing object addressability
2. The URL "commands" should be addressable at least to the data item level, so that when you do an update you don't have to send the entire document
3. EVERYTHING would return XML (flavor TBD, but what if.... it were dxl?)
4. Naturally we would want it to be AJAX-friendly
The advantages of a data-only access model seem powerful to me (but I want to hear what YOU think): the developer takes complete responsibility for converting the data stream to a picture; you could use the exact same interfaces for browser access and for "RESTful Web Services".
I would expect (don't forget, this is all hypothetical!) that there would be a server-side style transform option, so that an XSL stylesheet could be automatically applied before serving. I also (personally) think there ought to be a way to have an application-specific plug-in (like and Agent) that "hooks" the server's data stream before it is sent to the client. That way you could write a simple LS/Java program to re-write URLs, fix things up, strip large attachments, whatever you want.
Naturally, since we NEVER take anything away, we would still have to provide some kind of "default" HTML rendering of our content. So the Domino Web Engine as we know and (sort of) love it today would still be in the picture, though we would probably want to make a whole bunch of incremental improvements to it.
Soooo..., waddya think? Would you use this? (Yes, I plan another whole "What if..." on rich text and HTML rendering, but I'm going to claim that that's a separate topic, for now)
- Comments