Rebuilding the Notes replicator....

Now here's an interesting scenario. Us Domino guys are well used to the idea of a complex, rich application shared between people in a single organisation. Lets consider a simple "helpdesk" application (okay, no helpdesk application is simple, but bear with me in terms of the example....)




Lets imagine within a company, we have a helpdesk style application, where folks can raise help requests in a local replica, and then see responses, status updates and fixes replicated back to their applications. But only see the helpdesk requests that the end-user raises


In a native Domino application, this would take a heartbeat. A simple application, some reader/author fields, a response hierarchy. And Domino does the rest, by allowing rich text to be exchanged. Essential in a helpdesk application where you might expect a customer to include screenshots, and/or other rich data



Lets change the goalposts somewhat. Lets imagine that your a small ISV, and wish a helpdesk application, using the Notes client (and all the Richness that that implies), that can be used by each customer. In the customers Notes environment - we have no access to (nor wish to access) this environment. Remember, we're a Notes ISV, and this is a strong assumption we can make. However, we cannot assume that any corporate will allow cross-certification and replication anymore. There seems to be no appetite for this. So how do we proceed?


In fact, the only constant that we have is that most clients and servers in a corporate environment can initiate a web-based session with something on the internet. Now, this smells like a web service, hosted on our Domino service


Okay. So we could write a web service on our Notes server, and therefore trigger web service requests from the client's notes machines. These could easily export whole Notes documents as streams of DXL (Domino XML exported data) ,and then all we have to do is decide which documents to pass back and forth. Simple, eh ?


What would drive this "replication" engine ? Well, since we're not going to host any logic in scheduled agents, it would be simply on document-updates and/or refresh buttons in the view - so that each user of the remote application may have their own replica, if required.


In fact the more I think about this, the more attraction this has as a general purpose "replication" tool between enterprises, on an ad-hock basis. The upside of course is that the users still keep using the notes client (and all the speed and rich text advantages that brings), its a fast application to develop (just a handful of fields, a couple of documents, a view or two). Notes gives us the document unique number - ensuring (pretty much) that we know which documents exist in each replica. And the downside is that you have to come up with "replication-style" logic for each application.


Now dont for a second think that it has to be a Domino client and a domino server - remember, we're just chucking around XML documents. In this instance, as one of our requirements is to use Notes Rich Text, then using a Notes client would give us a huge saving in coding - but this could be *any* application. I suspect as time goes on and Web Services become even more commonplace in our environments, this will be seen as an everyday task in the near future.


I think this is a great example of taking our Domino application infrastructure, adding some well-known, open standards tooling, and letting us extend the visibility and reach of our domino applications way beyond a single enterprise. This even starts to smell like a lotusphere presentation, right ?