Tuesday, 22 December 2009

Universal SOAP Gateway for Domino

I have been working almost all nights lately on finishing a first working demo of our universal SOAP gateway for Domino project (see my previous posting). Tonight I posted the demo and some explanation on FlexDomino.net. Parts of the project's source will be posted soon too.

As this project is going to be commercial (with an open source/free version), we will not post the Flex classes nor the code for the web services initially, until the business model is clear. We will however provide a free beta with hidden code to participants of the beta program we will launch in February 2010 (shortly after Lotusphere).

Send me an email or contact me online via Skype if you're interested in participating.

Saturday, 12 December 2009

Should IBM expose Lotus Notes/Domino functionality as native web service?

Should IBM expose Lotus Notes/Domino functionality as native web services?

Since I started to look outside the box - I have been for 13 years a hardcore Domino developer -, making myself familiar with Adobe Flex for RIA development, there is one thing that became very apparent:

Domino doesn't provide any other native interface to its internal functions other than the Notes C-API, and the latter is obviously not really the tool to support RIA development outside the Domino framework using Domino as a database back-end (only). At least not if you are a Flex developer. Of course one can access Domino data in several ways, from XML formatted views, http socket connections, servlets, web services or rpc. However, for all the options one requires to develop the required functionality custom made. A simple @dblookup() implemented as a web service for instance is not in reach. It would be extremely cool if a Flex developer could run a simple Domino web service operation - without coding anything in Domino - like this...

// simplified code...
wsrv = new WebService;

wsrvOpDBLOOKUP = wsrv.getOperation("DBLOOKUP");

wsrvOpDBLOOKUP.send(
cache,
srvname,
dbname,
view,
key,
column,
fdnam,
mvalsep,
silent,
partial,
retUNID
);


That leads back to the above question: should IBM provide such a generic, web service or rpc (using a binary data transfer) based interface? Well, it would certainly open a whole new world for web developers that or not only concerned with Lotus Notes/Domino.

As it is unlikely that this is going to happen any time soon (if at all), we decided to develop such an interface ourselves. At the current stage we implemented already a number of Notes Formula functions and other much needed features to read view data and read / write documents:

DBCOLUMN // exact implementation of @dbcolumn
DBCOLUMNX // extended @dbcolumn() functionality allowing for the return
// of multiple columns/fields
DBROWX // returning a single view entry to update a data grid from
// changes to a Notes document
DBLOOKUP // exact implementation of @dblookup
DBLOOKUPX // extended @dblookup() functionality allowing for the return
//of multiple columns/fields
DBGETFORMFIELDS // list of fields contained in a specified form
DBGETFIELDTYPES // list of field data types for a specified form
DBREADDOCFIELDS // reading specified field data for a specified document
DBSAVEDOCFIELDS // saving field data back into a specified document or new document
DBSENDDOCUMENT // sending a document (memo) using the Domino mail infrastructure
DBGETUSERINFO // returns the information about the current authenticated user
DBCALLAGENT // calls a server based agent with a specified document
DBFTSEARCH // implementation of NotesView.FTSearch()
DBSEARCH // implementation of NotesDatabase.Search()
DBVIEWS // implementation of NotesDabase.GetViews()

This is of course just a start. Many other Notes Formula functions and LotusScript / Java classes are quite useful from a Flex perspective. Having said this, it certainly does not make sense to attempt developing an interface that covers 100% of Domino. What will definitely be covered is a file upload control and Notes Richtext.

We estimate this development to be beta by the end of the 1st quarter 2010. Not clear is yet under what license model we will publish this development. Stay tuned...

Thursday, 10 December 2009

Not only our experience shows that IBM doesn't know yet what ILOG is...

Just received a posting on Flexdomino.net asking me where to find/purchase ILOG as IBM/Lotus doesn't know anything about it. If you don't want to follow the link above to find the answer, here it is @ Adobe's online shop.

Sunday, 6 December 2009

Lotusphere 2010, Orlando

Lotusphere 2010 is coming soon and we where hoping do get a session slot to talk about our our work and to show some advanced Flex programming using (now) IMB's ILOG components for Flex accessing  Domino data, but unfortunately our abstract was not accepted. Our last attempt to succeed this year are the idol sessions...let's see...

In any case we still proceed with the material we wanted to present and will post the samples once we are ready on flexdomino.net. The samples will include the ILOG charting and calendar components. In addition to the ILOG development, we will soon also demo our latest development, which includes e.g. web services to read and write Notes documents from a Flex/Flash application (accessing views and displaying Domino data in Flex data grids is already well covered).

We also plan to promote our ideas at Lotusphere, despite not having a session. So if you attend Lotusphere and are interested in Flex/Domino, then look out for some guys with shirts saying something like www.flexdomino.net written on the back and or front. Details on our outfit will be posted later.