I’ve recently returned from IBM Connect 2014 in Orlando, Florida where I presented a two hour masterclass session on XPages Scalability (JMP401: Masterclass: XPages Scalability) along with my colleague and XPages Architect, Martin Donnelly. This session was designed to be a natural follow-on from the previous XPages Performance Masterclass series already available for you to watch here on this blog.
The first half of JMP401 describes the distinct differences betweeen Performance and Scalability – highlighting the fact that they are two separate entities and should be dealt with in that manner. Essentially, efforts to improve one can conflict with the other and vice versa. A brief recap of the Performance area then closes out the first half so as to ensure you are primed and ready to deep dive into the second half – afterall maximum Scalability cannot be achieved without maximum Performance!
The second half of JMP401 then nose dives directly into the mechanics of the XPages Runtime that deal directly with, and have the biggest impact on Scalability. It then shows how to decipher the internal memory footprint of an XPages server – from the applications and user sessions within it, going right down to the individual component tree memory structures for each XPage. Finally, details about the range of settings you can leverage at both server and application level are explained so you know exactly how to fine tune and optimize your XPages box! The session closes out with a test case scenario based upon my XPages Insights Into Big Data application, where two different versions of this application are profiled. One is highly scalable, whilst the other is not! Neatly demonstrating a case and point in how XPages developers / customers fall into common Scalability pitfalls everyday and how to avoid them!
Continue reading XPages Masterclass: Scalability
In this final video of the first XPages Masterclass Video Series, you will learn about four of the main characteristics of the XPages Request Processing Lifecycle. That is Reliability, Integrity, Consistency, and Efficiency.
For each characteristic, you are guided through coded examples taken directly from the supporting lifecycle.nsf application, with the Efficiency characteristic being the one where you as an XPages developer have the most influence over in terms of making your XPages code perform better.
This final installment to the first XPages Masterclass Video Series climaxes with a case study of the Greenwell Helpdesk application where material from all four Series 1 videos are brought together in order to both profile and explain why two versions of the same Greenwell Helpdesk application perform so differently.
For example, one version takes almost 8 seconds to page in a view versus less than 0.5 seconds in the other, also, one version takes over 10 seconds to execute a simple event handler versus less than 200 milliseconds in the other. All by way of understanding the XPages Request Processing Lifecycle and carefully applying this knowledge accordingly!
Continue reading XPages Masterclass Video Series 1 – Video 4 Now Available!
With the dawning of “Big Data” and Analytics, we as Software Engineers and Developers need to, more than ever, efficiently utilize all computing resources, both hardware and software, in order for our applications to optimally harvest and process such data.
This XPages Insights into Big Data OpenNTF project contains a “Phase 1” sample application that demonstrates two things:
– A simple data partitioning pattern to enable “Big Data” scalability (potentially TeraBytes ++). Achieved via a Managed Bean routing layer within a data-less XPages “dashboard” application.
– Multi-database parallel searching across a large data-set. When a search is requested within the UI, a multi-threaded concurrent search is carried out across twenty-six different databases before providing a seamless search result back to the end-user.
Continue reading XPages Insights into Big Data
The XPages Rich Text Editor Evolution project contains a sample application that evolves the Rich Text Editor / CKEditor control to provide custom inline attachment handling directly within the editor complete with a new embedded image handling user experience with new toolbar actions and dialog experiences.
It demonstrates advanced scripting and component extension mechanisms of the XPages extensibility framework that can be leveraged by XPages developers to adapt or create controls to cater for their own specific custom application development requirements.
Follow the XPages Masterclass Video Series throughout 2013 where four series will be published covering various topic areas vital to building robust, performant XPages applications.
In this first XPages Masterclass video series, you will gain insight into the XPages Request Processing Lifecycle – this is the “center of gravity” for every XPages request and response and you will learn why it is important for you as an XPages Developer to understand it.
Series 1 uses a sample application (lifecycle.nsf) to introduce and explain key aspects of the XPages Request Processing Lifecycle. The XPages Toolbox is also used to further highlight the importance of becoming proficient in understanding the XPages Request Processing Lifecycle in order to be able to profile and tune your XPages applications. Series 1 – Video 4 completes the first series by explaining and demonstrating four main characteristics of the XPages Request Processing Lifecycle before undertaking a detailed examination of the Greenwell Helpdesk application where some day-to-day use cases turn up surprising results that are then optimized to produce a truly performant and robust application.
Series 1 includes four video’s – an introduction video, plus three extensive deep-dive videos:
Continue reading XPages Masterclass Video Series – Series 1