Apache CouchDB and Lotus
For my Lotus readers out there, I'd like some help. Part of my job is to help IBM understand and build with Apache CouchDB. Right now I'm exploring some ideas of integrating CouchDB with some Lotus technologies, and perhaps creating some new browser-based applications called CouchApps.
CouchApps are web applications that are served directly from CouchDB, no intermediate server is needed, it's all HTML, Javascript, JSON and of course CouchDB. The killer feature of CouchApps is the ability to replicate the Apps -- both the data and the design -- for distributed and offline usage. With a local instance of CouchDB (soon to be included as part of Ubuntu), you can replicate the apps locally and access them in your web browser just as if you were online.
What sorts of applications? The obvious ones are email, calendaring, a Sharepoint type App (I'll call it Chairpoint) and I'd really like to see web based IDE for users to build their own simple Apps. Most anything that can be built on Domino can also be built with CouchDB, as they share very similar data models. And because of this similarity, interop and replication between the 2 platforms is much easier than a RDBMS.
So I want to know what the Lotus community thinks about CouchDB, do you see a future for Lotus and Apache CouchDB? What do you see it looking like? What sorts of tools, support, applications ,etc would you need to make it something viable?
Posted July 14, 2009 1:02 PM
Comments
I think CouchDb is great (but this is obvious) ... now ... a few ideas...
- CouchDB as an eclipse plugin (replicating datastore for Symphony, Notes & Eclipse Rich Apps)
- CouchDB as an Apache Ivy Component that can be integrated into ProjectZero/WebSphere Smash applications providing a rest based/replicating datastore (great for CRM Apps
- As backend for a JCR/JSR170 implementation (could be simply great/killer)
I'm obviously Java focused ... but with project zero providing PHP support you would get Couch + Java/Groovy + PHP all in one box, with LTPA/SSO support and multi-platform availability.
What else ?
Daniele Vistalli, July 14, 2009 4:09 PM
I would really like to see a Wiki, one that looks and works like Wikipedia/MediaWiki.
A CMS / Wordpress style application would be nice too. The IBM Extranet license fees are high so that very few use a Domino server for their public website but it would be nice to easily share some data. In my latest projects a lot of them start with setting up a proper authentication mechanism. User registration, confirmation, password maintenance and recovery, group and role management, session management. It would be nice to have some kind of authentication framework so that people could just start coding.
Henning Heinz, July 14, 2009 4:10 PM
For me, the great power of lotus notes is/was that pretty much anyone can knock up an app. You just throw a few fields onto a form, create a couple of views, add a few @compose buttons and you are away.
Some of my favourite apps that I've came across as a Domino guy were by business managers and clever users rather than techies. It's like Excel for databases. Replication is just a fantastic bonus.
It doesn't even need to be that pure (look at the mess that is xPages and the support that is getting). A dev environment something like dabbledb would be ideal and then the apps would come.
Sharepoint, classic domino dev, Xpages and so on are just a joke in the browser compared to rails, django et al, if you can improve on them you a have a real a chance.
sam carberry, July 14, 2009 5:36 PM
I believe there already is a CouchApp wiki, as listed in http://wiki.github.com/couchapp/couchapp/apps. What I'm more interested in is the e-mail approach - how would one access POP3 or IMAP inside JS? I've never heard of a library for that.
Morbus Iff, July 14, 2009 5:52 PM
Sounds great, Damien. I have been waiting for a higher level interface such as a Notes Dev might be used to and it sounds like things are moving in that direction.
John Rowland, July 14, 2009 6:02 PM
Also a second to what sam carberry said!
John Rowland, July 14, 2009 6:03 PM
Daniel, yes. I am also thinking along those lines and we are already exploring XPages and CouchDB integration.
Henning, great suggestion, a wiki is on the top of my list too. Also, there are already several blog engines built on CouchDB, but I don't know about full CMS yet.
Morbus, we have some example wiki apps, but I don't yet know of any really full featured enough for heavy use.
Sam and John, I agree and I am most excited thinking about end-user tools, to allow business folks to build simple apps.
Damien Katz, July 14, 2009 8:56 PM
I would like a http enabled "hypercard". The RAD part is the important part.
Anonymous, July 14, 2009 10:55 PM
The more I read the CouchDB overview, the more I thought I was reading a specification for Notes.
So, how about NSF-Next (NSF refit, replacement, do over... you get the idea.)
Technical challenges to overcome? Of course.
I haven't looked at it deeply enough, but "semi-structured data," "replication with conflict resolution," "views," "documents," "agents"... it seems to be a much better fit for Notes than DB2.
Would the licensing kill it, though? Could CouchDB be used in a closed source, commercial product. I don't know. I'm not a license expert.
Very interesting.
Grant Lindsay, July 14, 2009 11:22 PM
@Grant,
yes the Apache license fits perfect here (not only for IBM) but what do you gain? It probably would make much more sense to add Couch to Websphere Portal than Lotus Notes.
Henning Heinz, July 15, 2009 6:04 AM
Morbus, we'd do mail sending and retrieving creating mail add-on modules in CouchDB. There is already an effort to do exactly that.
Grant, the Apache License is very liberal, and you can do just about anything you'd want to do with the CouchDB source, such as modifying it in a closed source project.
Damien Katz, July 15, 2009 8:42 AM
Damien - I know what I don't want, so I will start with that. I don't want replacements for what I have today. I already have a wiki app on OpenNTF.org. I have email. I don't want to talk about replacements or migration or anything like that.
What I do want is to see how I could use CouchDB with a Notes Client or Domino Server application. How to use CouchDB as the storage device to provide functionality I don't have today. Provide me with tools that allow me to install CouchDB thru an Eclipse plug-in and samples and libraries that let me integrate today.
XPages is where the Lotus dev team is focusing on right now - so anything you can do to showcase how to integrate CouchDB into an XPages app would be a big deal as well. We can all complain about the limitations of XPages - but they aren't going away. Find out how CouchDB can make them better - don't fight against them.
So that is my take. Looking forward to it.
John Head, July 15, 2009 9:54 AM
Damien,
What I'm unclear about is what will CouchDB provide to an existing Notes user/shop that he/she/it doesn't already posses, other than integration with an as of yet nonexistent catalog CouchDB apps. If CouchDB will be the repository for cloud services, than integration examples would be de rigueur, I suppose, along with the ability to take that service along with you in a local replica when disconnected.
P.S. Been following/admiring CouchDB from afar since the beginning.
jake, July 15, 2009 10:22 AM
Jake and John, I don't see Apache CouchDB as a replacement for Lotus Notes. Also, CouchDB is one part of a much larger technology stack, where Notes and Domino are essentially a complete technology stack. If you are happily using Notes and Domino, there is likely no advantage to switching to CouchDB. But if aren't a Notes/Domino user and you are already using web-based apps, CouchDB starts to make a lot of sense.
The main advantages of CouchDB over Lotus Notes are it is open source and standards based with a growing community:
http://www.google.com/trends?q=couchdb%2C+Lotus+Domino
Damien Katz, July 15, 2009 1:43 PM
Agree on all points, although I can't say I'm truly _happy_ using Notes. My question is what value proposition is there or do you intend to provide by integrating couchDB with Notes?
Jake, July 15, 2009 4:39 PM
Couchapp, that's the good way
For the moment, I'm trying a merge between tiddlywiki and couchdb. I (try to) stay the most compatible with the original tiddly principle, to use the giant base of plugins.
This is not a Notes apps, but this is a good approach for a pure web application,.... with the help of your beautiful product.
For the moment I've a pre-alpha release who's hanging every 10 Sec, but when it's stabilized I'll push it to the community.
Ph. Koenig, July 15, 2009 4:52 PM
Anyone wanting to check CouchDb in (good)use go here: http://tarpipe.com/about/
Disclaimer: I am not affiliated with the above site.
Vitor Pereira, July 15, 2009 6:46 PM
Make it work with Domino security. Give me an efficient way to export Domino documents to Couch. Retain the ability to cluster couches independently (so we can run clusters for M/R). I spy an awesome way for data mining Domino data.
Janez, July 28, 2009 4:43 PM
i think yes integrating couchDB with Note.
Emilio, July 31, 2009 4:50 PM
Damien, CouchApps has the potential to tear down what is becoming an unnatural divide between online and desktop applications. What we further need to reach that goal, in my opinion, is a common development framework. My vote here goes to Cappuccino. I think that it would really be nirvana if we could deploy and replicate a Cappuccino based application with its CouchDB data store through CouchApps.
Regards.
Bruno Ronchetti, August 4, 2009 12:06 PM
How about XForms/XFDL/Lotus Forms integration with CouchDB? XForms provides the open standards XML Forms interface while CouchDB provides the XForm storage and XML instance (data) storage and replication. Essentially it is all XML stored and replicated by CouchDB. Unlike Notes, where the Notes form is essentially trapped within the Notes NSF container and presentable to the Notes client or web browser, an XForm is able to 'leave' the CouchDB repository and remain a fully functional form outside of CouchDB.
J. Derry, August 9, 2009 11:46 PM
Hey,
One of the areas we use Lotus apps for is Sales/Service Support. Our Sales reps and Service techs must be able to use these apps when disconnected from our intranet. I did a Google Gears app, which works great but we have all sorts of problems to first time install Gears. What you are describing seems simpler than Gears and Lotus.
Lars Johansson, August 16, 2009 4:52 AM
I've been toying with the idea of a couchdb based ebook. Basically it's a ebook distribution that has a database attached to it so that readers can synchronize notes, reviews, annotations, remixes, and other data, like self drawn pictures/illustrations and audio files "of the book read aloud" across the internet where ever and whenever they choose to. It can be as simple as setting up a synchronized reading list, or even scale to a large Jame Joyce/Finnegans Wake type application where a whole community is annotating a particular novel or book.
If we scale this out to a piece of hardware, then I gather we can pretty much rebuild the "book" as a physical object.
Of course, this is just a dream, but hey ... I can dream...
Jonathan Lin, August 27, 2009 11:30 PM
Post a comment