Concerns about the speed of Xpages in the client ( XPiNC) – please comment.

Please bear with me on this, it is a long post but I feel it is very important, probably the most important issue on my radar at the moment.

Introduction

As anyone who reads my Blog will know I am a huge fan of XPages. One of the most exciting things about it is the promise of designing only once for the Web and the Client.

XPages in the Browser is definitely fast enough to use today but I have been struggling with the speed of XPages in the client to the point where I have not been able to recommend its use. Digging deeper there are two issues.

1) Starting the local Xpages “server”

The first and simplest is that the first time you open the first  XPage of a session in the client the local XPage “server” needs to start. This is understandable and hopefully this can be moved to be part of the client startup or controlled via a notes.ini / policy  setting.

2) Bandwith Requirements on first load in a session

The second issue is much more serious. After experiencing significant hangs using XPages in the client over remote connections I did some testing with Wireshark. The result below show exactly where the problem lies.

Image:Concerns about the speed of Xpages in the client ( XPiNC) - please comment.

Update : these figures can be reduced by more than 50% by using network compression as suggested by @14 Mark Barton

The first column ( 112 kb ) shows the volume of data that needs to be transferred to load an empty discussion (852) application in classic Notes for the very first time.

The second column ( 13 kb ) shows the volume of data to load the same classic application for the first time in a given session

The third column ( 1,609 kb ) shows the volume of data needed to be transferred to load the same empty application as an XPage in the client.

When tested with our MOC XPage product the equivalent column 3 was 9,361 kb !

The conclusion is clearly that the first opening of an XPage application in the client requires substantially more bandwidth than the classic Notes equivalent, a factor of between 14 and 123 times.

Bandwidth Requirements once loaded

Once the XPage application has loaded the difference int he bandwidth requirements are not so bad. The classic Notes application requires 6kb on a subsequent open whereas the XPage application requires a very manageable 24 kb.

Discussion

So how big a problem is this and what can be done in 852 to mitigate for it ?

Personally I think it is a big problem. On the sites where I typically work Notes servers already have a reputation for being a bit slow. This is often the result of the server being off-site ( for example a 100k + seat organisation where IBM moved the servers to a different country ). Demonstrating XPiNC applications has not gone well.

As IBM has found with Notes 8.0 initial opening time attracts a particular sensitivity and impacts heavily on peoples confidence in a system.
Two more quantitative examples are people trying to demonstrate XPages to prospective clients or a user trying to access a CRM for a customers details having just received a call. I have had people believe that Notes has crashed as the initial screen hangs ( and CTRL + Break doesn’t work in this context)

I also think that this poses a threat to Notes in so far as the next obvious question people ask is can’t we just have the application as an Intranet app. For me this massively weakens the usefulness of the Rich Notes Client environment and plays into the hands of generic mail solutions.

I have spoken to the IBM XPages team and they are very interested. The crux of the issue is that even though the user is running the application “on the server” it is actually running on the client. To do this the application “framework” has to be downloaded from the server ( my terminology not IBMs ! ).

One mitigation that has been suggested is that workflow applications should be run locally. I do not think that this is wise as by their very nature workflow applications need to allow every user real time access to the document at the latest status e.g. If I request a holiday approval on a local replica then the manager will not be able to access the doclinked request as it will still be on my local replica – or worse still he will access an outdated copy.

For me this is a non starter. Please add your views to the comments

One interesting thought to the above would be “what if there were a push mechanism like the mail managed replica” ( my suggestion not anything I have heard from IBM before you get too excited ). On first inspection this would seem like an improvement but when I have gone on to think about the types of applications our users have they are often several GB in volume and the idea of local replicas is not very palatable.

Where to go from here ?

Well I think it is a big issue. IBM agree that it is an issue. I know that they are looking at it but I am not sure what I can say because of NDAs etc..

What would really help is your views on how much of an issue this is for you.

I am impressed you read this far so go comment ! email me at sean -at- seancull.co.uk if you have any problems.


For anyone interested here are the full results. The comparison with a web application was for interest only.

Cold start Test

Open application in Notes as a Notes APP

Open Application in XPages as an XPages App

Open the application on the Web

Vanilla Discussion database 852 and empty

13 kb ( 112 kb if the app has never ever been opened )

1,609 kb

166 kb

FoCul MOC application – front page with tag cloud
http://www.deliverytoolkit.com/moc-demo

NA

9,361 kb

191 kb

2nd Open Test of the session i.e. warm start

Open application in Notes as a Notes APP

Open Application in XPages as an XPages App

Open the application on the Web

Vanilla Discussion database 852 and empty

6kb

244 kb  24kb

3kb

FoCul MOC application – front page with tag clouf
http://www.deliverytoolkit.com/moc-demo

NA

16 kb

8 kb

Speaking at ILUG 2010

I am very pleased to be speaking at ILUG 2010 in Belfast next week,

I will be presenting a case study on a project that I have been working on with ABB for the last 8 years. I think that it is an excellent example of how Notes can be used to deliver real sustained business value.

Ed Brill was good enough to comment on the case study when it first came out last year.

Image:Speaking at ILUG 2010

The talk is rather dryly called

“How ABB used a Notes application to deliver a 30% efficiency saving allowing over

Chuffed to bits – our first XPage product goes live

I started FoCul way back in 2000. At the time I was an experienced Industrial Engineer with a passion for process improvement  and who thought he knew about IT and Lotus Notes in particular ( Donald Rumsfeld has a saying about that )

For many years we went from exciting project to exciting project doing some really good stuff but not really thinking about how we could turn these great bespoke projects into repeatable solutions.

We were also in a double niche, customers from the manufacturing sector who had an established Notes Infrastructure.

Fast forward 10 years and today is the start of a new era. We have just launched our XPage based “Management of Change for Process Safety” product and our lead customer is nearing the end of their evaluation and are really pleased.

Try It Now

Not only that but they are a non notes shop ( actually an ex Notes shop ) running the application on a black box linux based virtual appliance on VMware. We have an “Application Specific Licence ( ASL ) ”  in place so for Non Notes shops the cost of the Domino server is bundled into the cost of the application or the SAAS service, the customer doesn’t even need to worry about IBM licensing ( although PVUs are still an issue ).

I remember the feeling of excitement back in 2002 the first time I designed a database that was dual browser / Notes client. It seemed like a whole new set of possibilities had opened up. In reality it was somewhat of a false start. The web functionality wasn’t RAD and the cost of dual browser / client development seldom made sense for my customers. For the last 8 years I have been eagerly anticipating RAD web and I really do think that it is here ( or almost here ) and improving day by day. I never ever anticipated that it would be truly a case of coding once for the web and for the client at the same time !

XPages has been a steep learning curve. I first started trying to develop for XPages in 8.5.0 and it was a pig. As a traditional Notes Developer ( i.e. not really that good at browser stuff ) I was never sure if it was me or bugs in XPages. The DDE client was unstable, it was slow and to be honest in hindsight I am so pleased that we didn’t win any commercial XPages work because it would have been torrid trying to develop a robust application in an affordable time. Myself and a colleague did eventually develop an in house help-desk system but it was tough going.

Roll on to 2010 and we had Domino 852, DDE 852, a really vibrant community offering loads of examples and some inspired sites such as IdeaJam, YouatNotes, Xtalk, Xpages Wiki, Discussion Forum etc.. There are also training resources like XPages101 and Notesin9. And, thank God, there is a book on the way ( still patchy IBM documentation but that’s a whole other discussion about how there can be so much IBM content and  yet there are still big gaps ). I know that my colleague Andrew Champion ( who has done most of the coding ) has found it challenging but it has been manageable this time around.

So to sum it all up I am really chuffed to be here. We can still get to do our niche work, we still get to work with Domino ( which I believe gives us a great set of advantages ) but we can do it with a wider set of customers through a range of delivery mechanisms.

A big Thank You to IBM and in particular to the XPages team and a big Thank You to the Lotus Community. We couldn’t have done it without you !