Skip to Content

Best Practices for Optimizing Web Dynpro Java Application  Performance

 

New in-depth technical article with sample application on Web Dynpro Java table paging available now!

Web Dynpro Java table paging sample UI

In this WebLog I want to announce my new article/sample combination on “Web Dynpro Java Table Paging Unleashed: Optimizing Heavy Table Performance”. Download this new material to boost heavy table performance with minimized memory consumption in your own Web Dynpro Java business applications:

The given solution was first presented at SAP TechEd ’08, lecture COMP204 on “Best Practices for Optimizing Web Dynpro Java Application Performance“:

Enjoy Web Dynpro Java,

Bertram Ganz, Senior Product Specialist, NW Core UI&AM F OPS, SAP AG

Article Summary

Web Dynpro Java business applications often have to display “heavy” tables with thousands of table records on the user interface. Such a scenario requires an advanced context-to-model binding technique on Web Dynpro frontend side and a “paging” business logic on backend side to optimize performance.

Based on a new Web Dynpro Java table paging sample application developed with SAP NetWeaver CE 7.11 EhP1 you learn how to minimize context memory consumption on server side and how to optimize table interaction performance (rapid initial table display, rapid table paging/scrolling on client side) by implementing the special ICMIObservableList-API of the common model interface (CMI) with an own extension of the existing CMIAbstractObservableList base class. 

Although this sample is based on a JavaBean “fake” model (creating some dummy data on server side without backend access) you can easily apply the proposed paging technique for an EJB, Adaptive RFC or Adaptive RFC model used to connect to the business logic. Your business logic must fulfill two requirements: first it must be possible to retrieve the total number of table records initially and second to retrieve table records pagewise (from record n to record n + pageSize) later on (“paging-enabled” services).

This sample application additionally demonstrates some new Web Dynpro Java functions in SAP NetWeaver CE 7.10 like permanent messages, showing custom scroll tip texts in the vertical table scrollbar and closing the application window programmatically with a new exit plug parameter. To better illustrate the streamlined Web Dynpro Java component model and to adhere to proven component-design principles the sample application is separated to a visual table component and a faceless business logic component stored in different Web Dynpro development component.

Acknowledgement

Many thanks to Frank Weigel, SAP development architect and Karsten Geiseler, SAP senior development consultant, for their valuable feedback and their helpful suggestions which are implied in the described table paging solution.

Note

The described table paging solution is also applicable in SAP NetWeaver 04 and 7.0 because the two underlying common model interfaces (CMIAbstractObservableListand ICMIObservableList) were already available there. Nevertheless the Web Dynpro sample application provided for this article requires SAP NetWeaver CE 7.11 EhP1 to run.

Architecture diagram of the Web Dynpro Java table paging sample

 Architecture diagram of the Web Dynpro Java table paging sample

Web Dynpro table paging sample application shown in component modeler

Web Dynpro development component separation

Showing stacked performance infos with keyboard shortcut CTRL+ALT+Shift+I

This article also unveils an undocumented keyboard shortcut to display “stacked” performance information for ALL roundtrips of the currently running client session. Just press keyboard shortcut CTRL+ALT+Shift+I to open a browser popup window with automatically measured performance information (backend, J2EE, browser, network).

Showing „stacked“ performance information for all roundtrips with keyboard shortcut

To report this post you need to login first.

6 Comments

You must be Logged on to comment or reply to a post.

  1. Kartikaye Gomber
    Hi,

    Is it possible to implement table sorting and filteration on a table implementing the solution mentioned by you and how?

    Thanks,
    Kartikaye J Gomber

    (0) 
  2. Ivan Mirisola
    Bertram,

    Is this shortcut available for any NW release?
    Is this just for Java?
    Are there any configurations needed to used it?

    Why is it still not documented?

    Best regards,
    Ivan

    (0) 

Leave a Reply