Expert Tips and Tricks to Optimize the Performance of Your XPages Applications Bruce Elgort Elguji Software

Size: px
Start display at page:

Download "Expert Tips and Tricks to Optimize the Performance of Your XPages Applications Bruce Elgort Elguji Software"

Transcription

1 Expert Tips and Tricks to Optimize the Performance of Your XPages Applications Bruce Elgort Elguji Software 2012 Wellesley Information Services. All rights reserved.

2 In This Session... Users expect that applications are fast and responsive Isn t it funny how you only hear from them when they are slow and poorly designed XPages does all this for me, right? Nope. XPages gives us a powerful set of development tools right out of the box, however They sometimes don t perform as well as we had hoped Or we used XPages when a classic Domino application could have done the trick This session is designed to help developers optimize the performance of their XPages applications 1

3 What We ll Cover Things to consider when moving applications to XPages Understanding the JSF lifecycle and how it relates to XPages application design Development best practices for performance and scalability How to identify application bottlenecks using the OpenNTF XPages Toolbox Third-party tools to help profile your applications performance Wrap-up 2

4 XPages Application Design Considerations When should you: Migrate a Notes/Domino application to XPages? Avoid developing/migrating applications to XPages? Consider a hybrid approach? 3

5 Migrating an Application to XPages Consider migrating an application to XPages if: It s an active application that brings value to the business Functionality can be moved to the browser without much disruption and/or retraining It is not required to be used offline Notes only applications that now require Web browser access The applications need a facelift and/or require new functionality 4

6 Avoid Using XPages You may want to avoid using XPages if: Notes encryption is required The app depends on COM for calling other applications such as Word or Excel Makes heavy use of rich text Integration with calendaring and scheduling is required You have stable complex applications that are mission-critical and running the business You have applications that are better suited for a Notes client user experience 5

7 When to Consider a Hybrid Approach A hybrid approach is one that utilizes classic Notes and Domino design elements, as well as ones developed using XPages Consider a hybrid approach when: You have Notes client apps that require Web browser and/or mobile support yet still require use of the Notes client You need to add REST services, report generation, or other services using XPages XAgents When you are first starting to learn XPages When only a subset of features are needed from the Web and/or mobile device 6

8 What We ll Cover Things to consider when moving applications to XPages Understanding the JSF lifecycle and how it relates to XPages application design Development best practices for performance and scalability How to identify application bottlenecks using the OpenNTF XPages Toolbox Third-party tools to help profile your applications performance Wrap-up 7

9 Understanding the JSF Lifecycle XPages is built on the JavaServer Faces framework It is important to understand the principles of this framework Stateful Web application architecture Component-based architecture Every tag has a server-side object representation Saving and restoring state Validation Rendering the tags/markup to the client Uses a six-phase life cycle that is extended by XPages 8

10 The 6 Phase JSF Request Processing Lifecycle 1. Restore View Retrieves the JSF view for the request 2. Apply Request Values Updates the JSF components to update their state based on values from the current request 3. Process Validations Validators invoked 4. Update model values Application data is updated with new values. Values are written to the Domino back-end document during this phase. 5. Invoke applications Application logic executed 6. Render response Generates the response and saves the state of the view 9

11 More on the JSF Lifecycle Phases and What They Do Phases 1 and 6 are system-level phases They are going to happen no matter what we do to our code Phases 2, 3, 4, and 5 are application-level phases These phases are something we as developers can use to our advantage By understanding how we can tweak our XPages objects to make more efficient use of the JSF lifecycle We will explore how your XPages can skip some of the six phases which in turn reduce CPU utilization processing and increase speed 10

12 The JSF Lifecycle 11

13 The Link Control and the JSF Lifecycle Let s start off by looking at the link control The link control is used to place a hypertext link on an XPage or in a custom control When you place the link control on your XPage and use a simple action to set the link you will see this in your XPage markup <a id="view:_id1:link1" href="#" class="xsplink">link</a> When you inspect what the browser is doing when the link is clicked you will see that the browser is issuing a POST request to the server This is using phases 2-5 of the JSF lifecycle and is a more expensive operation An extra trip is being made to the server to resolve the # in the link 12

14 The Link Control and the JSF Lifecycle (cont.) Changing the simple action to a defined page in the link properties will now generate this code <a id="view:_id1:link1" href="/xpagesplay.nsf/contact.xsp" class="xsplink">link</a> This will eliminate the need for: A round trip to the server (POST) is now bypassed as are phases 2-5 of the JSF lifecycle Use direct links whenever possible These will generate GET requests Save CPU time Generate a snappier user experience 13

15 What We ll Cover Things to consider when moving applications to XPages Understanding the JSF lifecycle and how it relates to XPages application design Development best practices for performance and scalability How to identify application bottlenecks using the OpenNTF XPages Toolbox Third-party tools to help profile your applications performance Wrap-up 14

16 The Read-Only Property Setting the read-only property of a Panel in Domino Designer 15

17 The Read-Only Property (cont.) Use Panel controls where no server-side JavaScript or simple actions are contained in the panel that don t require processing Panel controls generate HTML divs which are used to place other components within Set this to true in the Properties panel Other considerations: The other thing you should consider is not using the Panel core control but rather an HTML div instead This is also true for any other HTML element that doesn t require any processing Remember that only <xp:> tags are processed during the JSF lifecycle Setting read-only to true skips JSF phases

18 The Immediate Property This does not validate or update any data No server validation will occur No further processing of the XPages component tree will occur Just do what I say immediately and Cancel! Typically used on a Cancel button Set the value to true <xp:button value="cancel" id="button2"><xp:eventhandler event="onclick" submit="true" refreshmode="complete" save="false" immediate="true"></xp:eventhandler></ xp:button> Setting the immediate property to true skips JSF phases

19 The Immediate Property (cont.) Here is our Cancel button in Domino Designer showing the Do not validate or update data option is checked This sets the value to true in the XPage XML source 18

20 Partial Refresh A radio button under a controls Server Options that allows you to select the target component that will be refreshed Reduces the amount of HTML markup that must be processed and emitted Less HTML and other elements means that the application is more responsive The entire page does not have to be reloaded Makes Phase 6 (Render response) of the JSF lifecycle very fast and efficient Only the selected/component branch of the JSF tree is updated There may be some side effects which will require you to force the entire tree to update 19

21 Partial Refresh (cont.) If you want the server to always render the whole view tree you can: Add xsp.ajax.renderwholetree=true to the xsp.properties This file is in the WebContent/WEB-INF/ directory Use Partial Refresh where ever possible so only that portion of the JSF tree is processed and not the entire component tree 20

22 The DataCache Property Used for caching Domino view data Persisted view data consumes JVM memory Use if the view data isn t needed in a POST request Three values are supported for the DataCache property: Full [default] ID The entire view is persisted Minimal scalar data ID and position. Access to column values during a POST are not available. None Enough said the entire view needs to be reconstructed 21

23 Partial Execution Controls how much component tree processing happens during phases 2-5 of the JSF lifecycle Partial Execution is purely a server-side optimization Partial Refresh and Partial Execution are mutually exclusive and do not depend on each other in any way 22

24 Partial Execution (cont.) Set the execmode property on server events using: Set partial execution mode in the Server Settings section The default is complete and when checked is set to partial Very powerful when used inside of a View Panel, Data Table, or Repeat Control Child controls can have this property set which will not cause the parent control to not be re-executed during invocation of a child event handler Did I mention that this is very powerful and you should carefully review your code to ensure that you are taking advantage of Partial Execution wherever possible? 23

25 Exploring the XPages Request Processing Lifecycle So how do you know when and where your code is executing in the JSF Lifecycle? Couple this with Partial Refresh and Partial Execution of controls and things can become pretty complex exponentially. IBM s Tony McGuckin has posted code on the OpenNTF Xsnippets site that will help you learn more about the JSF lifecycle. It will also clearly show you which phase(s) of the lifecycle your code is being executed. A sample XPage is included. id=xpages-request-processing-lifecycle-explorercode... 24

26 The Sample XPage The sample XPage that we are going to examine has: The XPage view has the following event handlers defined: beforepageload afterpageload afterrestoreview beforerenderresponse afterrenderresponse Each of these events has a print statement that will print out to the Domino console Let s look at the page design and them walk through some of examples 25

27 Sample Lifecycle XPage Layout Domino Designer Design View 26

28 Sample Lifecycle XPage Layout (cont.) Web browser view 27

29 LifeCycle.nsf Page Initial Load Output All of the controls are rendered and then JSF Phase 6 28

30 P2 Button Clicked Output Button P2 s onclick event is set to Partial Refresh of the P2 panel Partial Execution Mode has also been selected with an execid of P2 29

31 P2 Immediate Button Clicked Output Button P2 s click event is set to Partial Refresh of the P2 panel Partial Execution Mode has also been selected and set to execid P2 The immediate property of the button s onclick event has been set which will bypass any validation Typically used to save a document in draft form 30

32 P2 Button Disable Validators Clicked Button P2 s click event is set to Partial Refresh of the P2 panel Partial Execution Mode has also been selected and set to execid P2 The Process data without validation checkbox is enabled (disablevalidators= true ). All phases are executed. 31

33 P1 Button Clicked Button P1 s click event is set to Partial Refresh of the P1 panel Partial Execution Mode has also been selected and set to execid P1 Pretty much what we expected 32

34 P1 Button Immediate Clicked Button P1 s click event is set to Partial Refresh of the P1 panel Partial Execution Mode has also been selected and set to execid P1 The immediate property of the button s onclick event has been set which will bypass any validation 33

35 P1 Button Disable Validators Clicked Button P1 s click event is set to Partial Refresh of the P1 panel Partial Execution Mode has also been selected and set to execid P1 The Process data without validation checkbox is enabled (disablevalidators= true ). All phases are executed. 34

36 P2 No ID Partial Execute/Full Refresh 05/10/ :46:14 AM HTTP JVM: Request: Started... 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: Lifecycle: Before Phase: RESTORE_VIEW 1 05/10/ :46:14 AM HTTP JVM: Page: view1->afterrestoreview 05/10/ :46:14 AM HTTP JVM: Lifecycle: After Phase: RESTORE_VIEW 1 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: Lifecycle: Before Phase: APPLY_REQUEST_VALUES 2 05/10/ :46:14 AM HTTP JVM: Control: txt2->rendered 05/10/ :46:14 AM HTTP JVM: Lifecycle: After Phase: APPLY_REQUEST_VALUES 2 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: Lifecycle: Before Phase: PROCESS_VALIDATIONS 3 05/10/ :46:14 AM HTTP JVM: Control: txt2->rendered 05/10/ :46:14 AM HTTP JVM: Lifecycle: After Phase: PROCESS_VALIDATIONS 3 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: Lifecycle: Before Phase: UPDATE_MODEL_VALUES 4 05/10/ :46:14 AM HTTP JVM: Control: txt2->rendered 05/10/ :46:14 AM HTTP JVM: Lifecycle: After Phase: UPDATE_MODEL_VALUES 4 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: Lifecycle: Before Phase: INVOKE_APPLICATION 5 05/10/ :46:14 AM HTTP JVM: Lifecycle: After Phase: INVOKE_APPLICATION 5 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: Lifecycle: Before Phase: RENDER_RESPONSE 6 05/10/ :46:14 AM HTTP JVM: Page: view1->beforerenderresponse 05/10/ :46:14 AM HTTP JVM: Control: txt1->rendered 05/10/ :46:14 AM HTTP JVM: Control: txt2->rendered 05/10/ :46:14 AM HTTP JVM: Control: txt3->rendered 05/10/ :46:14 AM HTTP JVM: Page: view1->afterrenderresponse 05/10/ :46:14 AM HTTP JVM: Lifecycle: After Phase: RENDER_RESPONSE 6 05/10/ :46:14 AM HTTP JVM: 05/10/ :46:14 AM HTTP JVM: Request: Completed. 35

37 P2 Full Execute/Partial Refresh 05/10/ :49:31 AM HTTP JVM: Request: Started... 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: Lifecycle: Before Phase: RESTORE_VIEW 1 05/10/ :49:31 AM HTTP JVM: Page: view1->afterrestoreview 05/10/ :49:31 AM HTTP JVM: Lifecycle: After Phase: RESTORE_VIEW 1 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: Lifecycle: Before Phase: APPLY_REQUEST_VALUES 2 05/10/ :49:31 AM HTTP JVM: Control: txt1->rendered 05/10/ :49:31 AM HTTP JVM: Control: txt2->rendered 05/10/ :49:31 AM HTTP JVM: Control: txt3->rendered 05/10/ :49:31 AM HTTP JVM: Lifecycle: After Phase: APPLY_REQUEST_VALUES 2 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: Lifecycle: Before Phase: PROCESS_VALIDATIONS 3 05/10/ :49:31 AM HTTP JVM: Control: txt1->rendered 05/10/ :49:31 AM HTTP JVM: Control: txt2->rendered 05/10/ :49:31 AM HTTP JVM: Control: txt3->rendered 05/10/ :49:31 AM HTTP JVM: Lifecycle: After Phase: PROCESS_VALIDATIONS 3 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: Lifecycle: Before Phase: UPDATE_MODEL_VALUES 4 05/10/ :49:31 AM HTTP JVM: Control: txt1->rendered 05/10/ :49:31 AM HTTP JVM: Control: txt2->rendered 05/10/ :49:31 AM HTTP JVM: Control: txt3->rendered 05/10/ :49:31 AM HTTP JVM: Lifecycle: After Phase: UPDATE_MODEL_VALUES 4 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: Lifecycle: Before Phase: INVOKE_APPLICATION 5 05/10/ :49:31 AM HTTP JVM: Event: p2->partial refresh value: /10/ :49:31 AM HTTP JVM: Lifecycle: After Phase: INVOKE_APPLICATION 5 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: Lifecycle: Before Phase: RENDER_RESPONSE 6 05/10/ :49:31 AM HTTP JVM: Page: view1->beforerenderresponse 05/10/ :49:31 AM HTTP JVM: Control: txt2->rendered 05/10/ :49:31 AM HTTP JVM: Page: view1->afterrenderresponse 05/10/ :49:31 AM HTTP JVM: Lifecycle: After Phase: RENDER_RESPONSE 6 05/10/ :49:31 AM HTTP JVM: 05/10/ :49:31 AM HTTP JVM: Request: Completed. 36

38 P2 Partial Execute/Partial Refresh 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Request: Started... 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Lifecycle: Before Phase: RESTORE_VIEW 1 05/10/ :50:53 AM HTTP JVM: Page: view1->afterrestoreview 05/10/ :50:53 AM HTTP JVM: Lifecycle: After Phase: RESTORE_VIEW 1 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Lifecycle: Before Phase: APPLY_REQUEST_VALUES 2 05/10/ :50:53 AM HTTP JVM: Control: txt2->rendered 05/10/ :50:53 AM HTTP JVM: Lifecycle: After Phase: APPLY_REQUEST_VALUES 2 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Lifecycle: Before Phase: PROCESS_VALIDATIONS 3 05/10/ :50:53 AM HTTP JVM: Control: txt2->rendered 05/10/ :50:53 AM HTTP JVM: Lifecycle: After Phase: PROCESS_VALIDATIONS 3 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Lifecycle: Before Phase: UPDATE_MODEL_VALUES 4 05/10/ :50:53 AM HTTP JVM: Control: txt2->rendered 05/10/ :50:53 AM HTTP JVM: Lifecycle: After Phase: UPDATE_MODEL_VALUES 4 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Lifecycle: Before Phase: INVOKE_APPLICATION 5 05/10/ :50:53 AM HTTP JVM: Lifecycle: After Phase: INVOKE_APPLICATION 5 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Lifecycle: Before Phase: RENDER_RESPONSE 6 05/10/ :50:53 AM HTTP JVM: Page: view1->beforerenderresponse 05/10/ :50:53 AM HTTP JVM: Control: txt2->rendered 05/10/ :50:53 AM HTTP JVM: Page: view1->afterrenderresponse 05/10/ :50:53 AM HTTP JVM: Lifecycle: After Phase: RENDER_RESPONSE 6 05/10/ :50:53 AM HTTP JVM: 05/10/ :50:53 AM HTTP JVM: Request: Completed. 05/10/ :50:53 AM HTTP JVM: 37

39 P1 No ID Partial Execute/Full Refresh 05/10/ :55:07 AM HTTP JVM: Request: Started... 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: Lifecycle: Before Phase: RESTORE_VIEW 1 05/10/ :55:07 AM HTTP JVM: Page: view1->afterrestoreview 05/10/ :55:07 AM HTTP JVM: Lifecycle: After Phase: RESTORE_VIEW 1 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: Lifecycle: Before Phase: APPLY_REQUEST_VALUES 2 05/10/ :55:07 AM HTTP JVM: Lifecycle: After Phase: APPLY_REQUEST_VALUES 2 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: Lifecycle: Before Phase: PROCESS_VALIDATIONS 3 05/10/ :55:07 AM HTTP JVM: Lifecycle: After Phase: PROCESS_VALIDATIONS 3 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: Lifecycle: Before Phase: UPDATE_MODEL_VALUES 4 05/10/ :55:07 AM HTTP JVM: Lifecycle: After Phase: UPDATE_MODEL_VALUES 4 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: Lifecycle: Before Phase: INVOKE_APPLICATION 5 05/10/ :55:07 AM HTTP JVM: Event: no id->partial execute value: /10/ :55:07 AM HTTP JVM: Lifecycle: After Phase: INVOKE_APPLICATION 5 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: Lifecycle: Before Phase: RENDER_RESPONSE 6 05/10/ :55:07 AM HTTP JVM: Page: view1->beforerenderresponse 05/10/ :55:07 AM HTTP JVM: Control: txt1->rendered 05/10/ :55:07 AM HTTP JVM: Control: txt2->rendered 05/10/ :55:07 AM HTTP JVM: Control: txt3->rendered 05/10/ :55:07 AM HTTP JVM: Page: view1->afterrenderresponse 05/10/ :55:07 AM HTTP JVM: Lifecycle: After Phase: RENDER_RESPONSE 6 05/10/ :55:07 AM HTTP JVM: 05/10/ :55:07 AM HTTP JVM: Request: Completed. 38

40 P1 No ID Full Execute/Partial Refresh 05/10/ :56:40 AM HTTP JVM: Request: Started... 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: Lifecycle: Before Phase: RESTORE_VIEW 1 05/10/ :56:40 AM HTTP JVM: Page: view1->afterrestoreview 05/10/ :56:40 AM HTTP JVM: Lifecycle: After Phase: RESTORE_VIEW 1 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: Lifecycle: Before Phase: APPLY_REQUEST_VALUES 2 05/10/ :56:40 AM HTTP JVM: Control: txt1->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt2->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt3->rendered 05/10/ :56:40 AM HTTP JVM: Lifecycle: After Phase: APPLY_REQUEST_VALUES 2 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: Lifecycle: Before Phase: PROCESS_VALIDATIONS 3 05/10/ :56:40 AM HTTP JVM: Control: txt1->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt2->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt3->rendered 05/10/ :56:40 AM HTTP JVM: Lifecycle: After Phase: PROCESS_VALIDATIONS 3 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: Lifecycle: Before Phase: UPDATE_MODEL_VALUES 4 05/10/ :56:40 AM HTTP JVM: Control: txt1->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt2->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt3->rendered 05/10/ :56:40 AM HTTP JVM: Lifecycle: After Phase: UPDATE_MODEL_VALUES 4 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: Lifecycle: Before Phase: INVOKE_APPLICATION 5 05/10/ :56:40 AM HTTP JVM: Event: no id->partial refresh value: /10/ :56:40 AM HTTP JVM: Lifecycle: After Phase: INVOKE_APPLICATION 5 39

41 P1 No ID Full Execute/Partial Refresh (cont.) 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: Lifecycle: Before Phase: RENDER_RESPONSE 6 05/10/ :56:40 AM HTTP JVM: Page: view1->beforerenderresponse 05/10/ :56:40 AM HTTP JVM: Control: txt1->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt2->rendered 05/10/ :56:40 AM HTTP JVM: Control: txt3->rendered 05/10/ :56:40 AM HTTP JVM: Page: view1->afterrenderresponse 05/10/ :56:40 AM HTTP JVM: Lifecycle: After Phase: RENDER_RESPONSE 6 05/10/ :56:40 AM HTTP JVM: 05/10/ :56:40 AM HTTP JVM: Request: Completed. 40

42 P1 No ID Partial Execute/Partial Refresh 05/10/ :00:19 AM Finished replication with server NA1/ideaExchange 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: Request: Started... 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: Lifecycle: Before Phase: RESTORE_VIEW 1 05/10/ :00:21 AM HTTP JVM: Page: view1->afterrestoreview 05/10/ :00:21 AM HTTP JVM: Lifecycle: After Phase: RESTORE_VIEW 1 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: Lifecycle: Before Phase: APPLY_REQUEST_VALUES 2 05/10/ :00:21 AM HTTP JVM: Lifecycle: After Phase: APPLY_REQUEST_VALUES 2 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: Lifecycle: Before Phase: PROCESS_VALIDATIONS 3 05/10/ :00:21 AM HTTP JVM: Lifecycle: After Phase: PROCESS_VALIDATIONS 3 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: Lifecycle: Before Phase: UPDATE_MODEL_VALUES 4 05/10/ :00:21 AM HTTP JVM: Lifecycle: After Phase: UPDATE_MODEL_VALUES 4 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:21 AM HTTP JVM: Lifecycle: Before Phase: INVOKE_APPLICATION 5 05/10/ :00:21 AM HTTP JVM: Event: no id->partial refresh/execute value: /10/ :00:21 AM HTTP JVM: Lifecycle: After Phase: INVOKE_APPLICATION 5 05/10/ :00:21 AM HTTP JVM: 05/10/ :00:22 AM HTTP JVM: 05/10/ :00:22 AM HTTP JVM: Lifecycle: Before Phase: RENDER_RESPONSE 6 05/10/ :00:22 AM HTTP JVM: Page: view1->beforerenderresponse 05/10/ :00:22 AM HTTP JVM: Control: txt1->rendered 05/10/ :00:22 AM HTTP JVM: Control: txt2->rendered 05/10/ :00:22 AM HTTP JVM: Control: txt3->rendered 05/10/ :00:22 AM HTTP JVM: Page: view1->afterrenderresponse 05/10/ :00:22 AM HTTP JVM: Lifecycle: After Phase: RENDER_RESPONSE 6 05/10/ :00:22 AM HTTP JVM: 05/10/ :00:22 AM HTTP JVM: Request: Completed. 41

43 New in Domino Use runtime optimized JavaScript and CSS resources 42

44 New in Domino (cont.) Before and after 43

45 New in Domino (cont.) Pre-load XPage engine to improve startup times XPagesPreload=1 in notes.ini You can now pre-load XPages Java code into memory This makes your apps more responsive on first use In your notes.ini file you can specify which databases to pre-load: XPagesPreloadDB=servername!!path/mydb.nsf/ myxpage.xsp,servername!!path/anotherdb.nsf 44

46 Single Copy XPage Design (SCXD) New with Domino www-10.lotus.com/ldd/ddwiki.nsf/dx/single_copy_xpage_design 45

47 Single Copy XPage Design (SCXD) (cont.) Allows lots of applications using the same template to share XPage code Saves loading more XPages into server memory Good example is the Discussion template Another example is from XPages developer Declan Lynch who has 96,000 databases which share the same design thus saving approximately 6mb per database (that s 562gb!) You will need to restart HTTP in order for new design changes to be picked up by databases relying on your SCXD database A note on SCXD (Single Copy XPage Design), IBM fixed a high severity bug (PHAN8N3HZ9) where the SCXD would timeout causing an exception under a certain scenario. This fix will be available in FP1. A Hot fix is also available. 46

48 Quick Performance Hits Give the server lots and lots and lots of RAM. And then some more. Rinse and repeat. Use a 64-bit OS whenever possible Devote fast disk or SSD to your servers program files volume This is where the XPages code is called from Isolate heavily used XPages apps, especially from other memory intensive apps such as Traveler Consider dedicated Domino instances for large applications 47

49 Setting the Data Scope for a View When you add data sources to your XPage, each one has a scope It s set under All Properties in the XPage Data, name, scope The default is viewscope Data is stored as part of the page If you want to cut down on as much memory usage as possible, and you are not relying on pass through parameters like a filter or a search Set the value of scope to request 48

50 Let s Get Synchronized Every bit of performance we can gain is a good thing for the person using our XPages applications Many applications have several commonly used pieces of code that get executed over and over again An example would be an application that has a control panel type of interface This interface allows you to configure and enable/disable features and functions in the application Having your application constantly calling the same code over and over again is not efficient There is a better way to handle these types of situations Synchronize to the rescue 49

51 Let s Get Synchronized (cont.) Java has a synchronized keyword This keyword is now available for you to use in your Server- Side JavaScript code What does it do? It prevents the same code block from running concurrently when being called by multiple areas of the system Subsequent calls get queued up and are executed one after another The results can then be cached The queued up calls can get the result from memory (applicationscope for example) No need to recalculate over and over again Let s look at some code 50

52 Let s Get Synchronized (cont.) function getcontrolpanelfieldstring(fieldname) { synchronized(applicationscope) { if (iscacheinvalid("controlpanel_" + fieldname, 600)) { var controlpanels = database.getview("lookupcontrolpanel"); } var controlpanel = controlpanels.getfirstdocument(); applicationscope.put("controlpanel_" + fieldname, controlpanel.getitemvaluestring(fieldname)); controlpanel = null; controlpanels = null; } } return applicationscope.get("controlpanel_" + fieldname); Code walkthrough Note that the code block is wrapped by synchronized{} A call to the iscachedinvalid function is made to see if the variable we need is still in the cache and is still valid based on the second parameter which is the time in seconds If the time period has expired we then perform the calculation and place in the applicationscope 51

53 Let s Get Synchronized (cont.) /*A generic caching mechanism for each key will check to see if it is 'n' seconds since it was last updated. Use this for things that change relatively infrequently */ function iscacheinvalid(key, cacheinterval) { var currenttime = new Date().getTime(); if (!applicationscope.containskey(key + "_time")) { applicationscope.put(key + "_time", currenttime); return true; } var diffinsecs = Math.ceil((currentTime - applicationscope.get(key + "_time")) / 1000); } if (diffinsecs < cacheinterval) { return false; } else { } applicationscope.put(key + "_time", currenttime); return true; Code walkthrough (cont.) The iscacheinvalid function simply checks to see if the time has expired (cacheinterval) It returns false if it has not expired and true if it has 52

54 Controlling the Memory Size of the JVM on the Server There are two notes.ini settings on the server that are important HTTPJVMMaxHeapSize HTTPJVMMaxHeapSizeSet The HTTPJVMMaxHeapSize parameter Specifies the maximum memory allocated to the JVM Recommended that you set to 512M or 1024M on a production server. ¼ of total RAM is a good rule of thumb. The HTTPJVMMaxHeapSizeSet parameter Ensure that HTTPJVMMaxHeapSizeSet is set to 1 to ensure that the server does not reset to 64M during a restart or upgrade 53

55 Application Properties In Domino Designer each database has an Application Properties panel There are now several panels specifically for XPages settings New in 8.5.3! Package Explore > WebContent > WEB-INF > xsp.properties These values are stored in a properties file located in the xsp.persistence.* Properties basic: Keeps all pages in memory (performs well) limited to four pages file: Keep all files on disk fileex: Keeps only the current page in memory (scales and performs well) 54

56 XPage Application Properties 55

57 View Design Considerations Carefully review the structure and settings of your views The same rules apply for using views within XPages Well-performing and tuned views are critical well-performing XPage applications Some golden rules for views Limit the number of sorted columns Unnecessary columns Overly complex in formulas 56

58 What We ll Cover Things to consider when moving applications to XPages Understanding the JSF lifecycle and how it relates to XPages application design Development best practices for performance and scalability How to identify application bottlenecks using the OpenNTF XPages Toolbox Third-party tools to help profile your applications performance Wrap-up 57

59 The OpenNTF XPages Toolbox The XPages toolbox proposes a set of tools useful to the XPages developer, including a full fledged CPU profiler and memory profiler. Moreover, it is based on an extensible architecture aimed to host other services for developers. Available as an open source project on OpenNTF ProjectLookup/XPages%20Toolbox 58

60 What You Will Learn About the XPages Toolbox What exactly you can do with the toolbox How to install it on your Domino server Verify that it is installed correctly and running Take a quick tour of the XPages Toolbox application from a Web browser Learn how to identify problem areas in your code using the CPU and Wall timers Learn how to profile sections of your code using profile(){} code blocks 59

61 What You Can Do with the XPages Toolbox The XPages Toolbox has five key features: 1. The CPU profiler 2. The back-end classes profiler 3. The memory profiler 4. Runtime monitoring 5. Java logging groups management 60

62 The CPU Profiler The CPU profiler is a high-level profiler recording the XPages activity and gathering the time spent in the different parts of the XPages (JSF lifecycle, JavaScript code, and custom code) 61

63 CPU Time and Wall Time CPU time The time actually spent by the CPU executing code Wall time The real-world time elapsed between method entry and method exit If there are other threads/processes concurrently running on the system, they can affect the results 62

64 The Back-End Classes Profiler This module gathers, per request, how the back-end classes are being called and the time spent in each call Note that it only measures the Wall time When enabled, one document is created per XPages request Each document contains the information within a rich text field 63

65 The Memory Profiler Used to show the memory being used by the XPages runtime The data is presented categorized by application (NSFs) and opened sessions 64

66 Runtime Monitoring Used to grab a high-level view of the memory being used by the JVM Also records the number of active modules (NSFs) and sessions 65

67 Java Logging Groups Management XPages takes advantage of the Java Logging API to trace what is happening in the runtime The logging levels are initially defined in a file located within the jvm directory:<domino>/jvm/lib/logging.properties The toolbox allows you to dynamically see what are the enabled groups and change their level on the fly, without having to restart the JVM 66

68 Installing the XPages Toolbox on Your Server The XPages Toolbox requires Domino Server V8.5.2 or greater An Important Security Warning The memory profiler can display and store files on the server that contain information coming from some live XPages sessions Do not install on a production server Remove the toolbox NSF as soon as you re done with it Protecting its access using ACLs Requires a modification to the servers java.policy to explicitly enable the XPages Toolbox application 67

69 What s in the XPages Toolbox Download File? com.ibm.commons.profileragent.zip The Java source code of the profiler agent java.policy Contains the policy update that you will need to make LICENSE The Apache license file NOTICE Part of the Apache license Screenshots folder Some screenshots of the XPages Toolbox 68

70 What s in the XPages Toolbox Download File? (cont.) XPagesProfilerAgent.jar The Java jar file that contains the core XPages Toolbox monitoring code XPagesToolbox.nsf The Notes database that you will access from the Web to profile your XPages applications XPagesToolbox.odt The Lotus Symphony file containing the documentation XspProfilerOptionsFile.txt A file that contains information that is needed by the profiler agent This file will be referenced in a notes.ini setting 69

71 Installing the Java Profiler Agent The java agent is provided as a jar file (XPagesProfilerAgent.jar) that must be copied to the <domino>/xsp directory Copy the XspProfilerOptionsFile.txt file to your domino main directory Insert the following lines into notes.ini (assuming that domino is installed in c:\domino) ; XPages Profiler JavaOptionsFile=c:\Domino\XspProfilerOptionsFile.txt If the agent is correctly installed, the Domino console should display the following message when the http task is started 70

72 Updating the Java Policy File The java policy file is located in the <domino>/jvm/lib/security directory Assuming that the NSF is not installed in a sub-directory, the following lines should be added at the end of the java.policy file grant codebase "xspnsf://server:0/xpagestoolbox.nsf/ script/-" { permission com.ibm.designer.runtime.domino.adapter.security.adminper mission "AdminPermission.debug";}; Be sure and save the java.policy file! 71

73 Installing the XPagesToolbox.nsf Database Copy the XPagesToolbox.nsf database file to the Domino server Be sure and install it in the location specified in the Installing the Java Profiler Agent step Set the database ACL Don t forget about the security warnings we mentioned! Sign the database with the appropriate ID You may need to work with your Domino Administrator on this Access the XPagesToolbox.nsf from a browser Congratulations! You are ready to start profiling 72

74 Installing the XPagesToolbox.nsf Database (cont.) If the database was installed correctly you should see this screen 73

75 Profiling Your XPages Code with the CPU Profiler Let s profile a code block from an XPages application We will profile it using the Wall Timer First we will profile a Server-Side JavaScript function as is Then we will add some code into the function to cause it to be less efficient It s going to feel sleepy the code that is You will clearly be able to see how the CPU Profiler will become your new best friend 74

76 The JavaScript Function We Will Profile Looks like perfectly innocent code right? Well it actually is: 75

77 Let s Profile the Function Start the Wall timer by clicking the Start Wall Time Profiler from the XPages Toolbox CPU Profiler tab Access the Web page that uses the getimagehtml function Now stop the Wall timer by clicking the Stop Profiler button Take note of the getimagehtml function and the Specific Time Didn t take more than a fraction of a second to complete 76

78 Now Let s Make Our Sample JavaScript Function Sleepy We have added a simple sleep statement to our JavaScript function 77

79 Re-Running the CPU Profiler on the Sleepy Code Notice that the operation now took over 5 seconds 78

80 Profiling Specific Code Blocks The XPages runtime currently monitors some well known operations, the JSF phases and data access Developers can also monitor their own code blocks in either Java or JavaScript Each block is defined by a type (a string constant) and an optional content The content is used to categorize different instances of the same type. For example, the type can be JavaScript expression and the content is the JavaScript code itself. Let s look at how to monitor code blocks in JavaScript 79

81 Using the profile Keyword to Monitor Code Blocks The XPages server-side JavaScript interpreter has an extra keyword in the runtime that defines a block of code to monitor profile(<type>[,content]) {... } Here is an example monitoring a custom block of code in our getinnerhtml JavaScript function from the previous slides profile("developer 2011","myBlock1") { java.lang.thread.sleep(1000); } 80

82 Viewing the Profile Data for Profiled Blocks You can see in the screen below that Developer 2011 has been profiled and is shown under the myblock1 Content identifier that we gave it 81

83 Let s Look at the Back-End Class Profiler Remember that when the Back-End Class Profiler is run it s going to create a single document for the entire page load To start the profiling process click on the Start Profiler button To stop the profiling process click on the Stop Profiler button Now opening up a contact record in my XPages app generated this document 82

84 Let s Look at the Back-End Class Profiler (cont.) Here is the document that was generated Note the class names and methods that were called Note the type of operation (GET/POST) The number of calls and the time they took 83

85 Let s Look at the Runtime Monitoring Screen Remember that Runtime Monitoring? Shows the number of running modules (NSFs) The number of active sessions It will also show you: The total memory used by the modules The amount of free memory available in the JVM The total memory allocated for the JVM 84

86 Let s Look at the Runtime Monitoring Screen (cont.) You can take an initial snapshot of the runtime by clicking the Take Snapshot button To start monitoring click the Start Monitoring button To stop monitoring click the Stop Monitoring button You can also specify how often a snapshot will be taken 85

87 Looking at the Memory Inspector Tab Using the Memory Inspector is something reserved for those who really want to dig into the inner workings of Java The Memory Inspector generates XML files that are stored on the Domino server when the Dump Sessions button is clicked 86

88 Java Logging Groups Management This screen simply allows you to refine the level of logging for any of the runtime and back-end classes Change the logging level for each item as you deem necessary to help you in your XPages performance tuning 87

89 What We ll Cover Things to consider when moving applications to XPages Understanding the JSF lifecycle and how it relates to XPages application design Development best practices for performance and scalability How to identify application bottlenecks using the OpenNTF XPages Toolbox Third-party tools to help profile your applications performance Wrap-up 88

90 Third-Party Client-Side Tools There are many third-party tools that you can use to help profile and analyze your application Most of these tools are browser plug-ins Some are online services These tools will analyze the Web pages generated by your XPages applications and Make recommendations on what elements of the page you can improve upon Allow you to see exactly what the browser is seeing and how your code is being loaded, executed, and rendered You should test your applications on different browsers The recommendations made by these tools are pretty much Web browser agnostic 89

91 The Tools We Will Be Looking At Firefox Plugins YSlow Page Speed Safari and Chrome Extensions Web Inspector (WebKit) Internet Explorer 6, 7, and 8 dynatrace AJAX Edition 90

92 The Tools We Will Be Looking At (cont.) Online testing site WebPageTest.org Other considerations There are still many organizations using IE6 believe it or not If you are a commercial developer you may find that you have to support it 91

93 YSlow Firefox Plugin YSlow Developed by Yahoo! Assigns and overall grade to a Web page Shows grades for things such as: Putting CSS in the page head Avoid URL redirects Compress components with GZIP Use GET for AJAX requests Do not scale images in HTML And many others 92

94 YSlow Firefox Plugin (cont.) Running YSlow on the Elguji.com site Note the various grades assigned Overall grade of A Note other grades 93

95 Page Speed Firefox Plugin Running Page Speed on the IQJam.net site Overall grade of 89/100 You can expand each section for more detailed information Note similar results to YSlow 94

96 WebPageTest.org A site where you enter the URL for your site and have it tested Won t work for internal sites 95

97 Web Inspector Firefox and Chrome Monitor elements when they are: Loading Scripting Rendering The Web Inspector in Chrome also has a nice audit feature Not as feature complete as YSlow and Page Speed 96

98 dynatrace AJAX Edition Internet Explorer Provides an overall performance report for a site in the form of a grade Identifies potential hotspots that should be looked into 97

99 What We ll Cover Things to consider when moving applications to XPages Understanding the JSF lifecycle and how it relates to XPages application design Development best practices for performance and scalability How to identify application bottlenecks using the OpenNTF XPages Toolbox Third-party tools to help profile your applications performance Wrap-up 98

100 Additional Resources OpenNFT Open source community for Lotus Notes and Domino XPages.info A great starting point for learning XPages XPages.info Blog A blog covering all things on on Twitter 99

101 7 Key Points to Take Home Know when and where to employ XPages when developing your applications The hybrid development approach (XPages and classic Notes/ Domino development) is extremely popular and low risk Unlike developing classic Domino applications, developing XPages applications requires that you understand the 6 phase JSF Lifecycle Learn as much you can about the various options that are available for each of the core controls as they can impact the performance of your XPage Know how to use the XPages Toolbox profiler Become familiar with and start to use the third-party tools to profile your shiny new XPages application from the Web browser Compress (when you can) CSS, JavaScript, and images 100

102 Your Turn! How to contact me: Bruce Elgort 101

Paul Withers Intec Systems Ltd By Kind Permission of Matt White and Tim Clark

Paul Withers Intec Systems Ltd By Kind Permission of Matt White and Tim Clark XPages Blast Paul Withers Intec Systems Ltd By Kind Permission of Matt White and Tim Clark Lead Developer at Matt White Creators of IdeaJam and IQJam Creator of XPages101.net Founder member of the LDC

More information

Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc

Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc Using XML and RDBMS Data Sources in XPages Paul T. Calhoun NetNotes Solutions Unlimited, Inc 2010 by the individual speaker Sponsors 2010 by the individual speaker Speaker Information Independent Consultant,

More information

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group 2008 IBM Corporation Agenda XPage overview From palette to properties: Controls, Ajax

More information

BP115 Deploying and Managing Your IBM Lotus Domino XPages Applications

BP115 Deploying and Managing Your IBM Lotus Domino XPages Applications BP115 Deploying and Managing Your IBM Lotus Domino XPages Applications Warren Elsmore Consultant Bluewave Matt White Consultant London Developer Co-op Warren Elsmore Senior Architect with Organiser of

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Successfully Delivering XPages Projects All Things Considered. Martin Donnelly Pete Janzen

Successfully Delivering XPages Projects All Things Considered. Martin Donnelly Pete Janzen Successfully Delivering XPages Projects All Things Considered Martin Donnelly Pete Janzen Agenda Speaker Introduction Session Goals Team Based Application Development Application Testing Tuning, Profiling

More information

All About Cranking Out High Quality XPages Applications. Martin Donnelly IBM Ireland

All About Cranking Out High Quality XPages Applications. Martin Donnelly IBM Ireland All About Cranking Out High Quality XPages Applications Martin Donnelly IBM Ireland Please Note IBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without

More information

Unifer Documentation. Release V1.0. Matthew S

Unifer Documentation. Release V1.0. Matthew S Unifer Documentation Release V1.0 Matthew S July 28, 2014 Contents 1 Unifer Tutorial - Notes Web App 3 1.1 Setting up................................................. 3 1.2 Getting the Template...........................................

More information

BIG-IP Access Policy Manager : Portal Access. Version 12.1

BIG-IP Access Policy Manager : Portal Access. Version 12.1 BIG-IP Access Policy Manager : Portal Access Version 12.1 Table of Contents Table of Contents Overview of Portal Access...7 Overview: What is portal access?...7 About portal access configuration elements...7

More information

CS 268 Lab 6 Eclipse Test Server and JSPs

CS 268 Lab 6 Eclipse Test Server and JSPs CS 268 Lab 6 Eclipse Test Server and JSPs Setting up Eclipse The first thing you will do is to setup the Eclipse Web Server environment for testing. This will create a local web server running on your

More information

Web logs (blogs. blogs) Feed support BLOGS) WEB LOGS (BLOGS

Web logs (blogs. blogs) Feed support BLOGS) WEB LOGS (BLOGS Web logs (blogs blogs) You can create your own personal Web logs (blogs) using IBM Lotus Notes. Using the blog template (dominoblog.ntf), you create a blog application, such as myblog.nsf, which you can

More information

Webinar: XPages Goes Relational! November 18th, 2011

Webinar: XPages Goes Relational! November 18th, 2011 = Webinar: XPages Goes Relational! November 18th, 2011 Andrejus Chaliapinas Senior Software Developer XPages, IBM Ireland 2011 IBM Corporation Agenda XPages Extension Library OpenNTF 8.5.3 and IBM position

More information

BIG-IP Access Policy Manager : Portal Access. Version 13.0

BIG-IP Access Policy Manager : Portal Access. Version 13.0 BIG-IP Access Policy Manager : Portal Access Version 13.0 Table of Contents Table of Contents Overview of Portal Access...7 Overview: What is portal access?...7 About portal access configuration elements...

More information

Online Demo Guide. Barracuda PST Enterprise. Introduction (Start of Demo) Logging into the PST Enterprise

Online Demo Guide. Barracuda PST Enterprise. Introduction (Start of Demo) Logging into the PST Enterprise Online Demo Guide Barracuda PST Enterprise This script provides an overview of the main features of PST Enterprise, covering: 1. Logging in to PST Enterprise 2. Client Configuration 3. Global Configuration

More information

Debugging Java in Agents, Script Libraries, and XPages

Debugging Java in Agents, Script Libraries, and XPages Debugging Java in Agents, Script Libraries, and XPages Julian Robichaux, panagenda IBM Notes den EierlegendenWollMilchSau für alle und Immer Who Am I? Julian Robichaux Senior Application Developer, panagenda

More information

WebsitePanel User Guide

WebsitePanel User Guide WebsitePanel User Guide User role in WebsitePanel is the last security level in roles hierarchy. Users are created by reseller and they are consumers of hosting services. Users are able to create and manage

More information

Lotus Sametime 3.x for iseries. Performance and Scaling

Lotus Sametime 3.x for iseries. Performance and Scaling Lotus Sametime 3.x for iseries Performance and Scaling Contents Introduction... 1 Sametime Workloads... 2 Instant messaging and awareness.. 3 emeeting (Data only)... 4 emeeting (Data plus A/V)... 8 Sametime

More information

Seam Tools Tutorial. Version: Final-SNAPSHOT

Seam Tools Tutorial. Version: Final-SNAPSHOT Seam Tools Tutorial Version: 4.2.0.Final-SNAPSHOT 1. Create a Seam Application... 1 1.1. Start Development Database... 1 2. 3. 4. 5. 1.2. Create and deploy Seam Web Project... 3 1.3. Start JBoss Application

More information

IT Essentials v6.0 Windows 10 Software Labs

IT Essentials v6.0 Windows 10 Software Labs IT Essentials v6.0 Windows 10 Software Labs 5.2.1.7 Install Windows 10... 1 5.2.1.10 Check for Updates in Windows 10... 10 5.2.4.7 Create a Partition in Windows 10... 16 6.1.1.5 Task Manager in Windows

More information

PDF Exporter Xpages Custom Control Documentation

PDF Exporter Xpages Custom Control Documentation PDF Exporter Xpages Custom Control Documentation 2(8) 1 What is this custom control and what it does...3 1.1 PDF template...3 1.2 How to use Open Office Impress...4 2 Technical overview...4 3 Installation

More information

MAVEN INTERVIEW QUESTIONS

MAVEN INTERVIEW QUESTIONS MAVEN INTERVIEW QUESTIONS http://www.tutorialspoint.com/maven/maven_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Maven Interview Questions have been designed specially to get

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Improved Web Development using HTML-Kit

Improved Web Development using HTML-Kit Improved Web Development using HTML-Kit by Peter Lavin April 21, 2004 Overview HTML-Kit is a free text editor that will allow you to have complete control over the code you create and will also help speed

More information

Web browsers - Firefox

Web browsers - Firefox N E W S L E T T E R IT Computer Technical Support Newsletter Web browsers - Firefox February 09, 2015 Vol.1, No.16 A Web Browser is a program that enables the user to view web pages. TABLE OF CONTENTS

More information

Contents. 1 Introduction... 2 Introduction to Installing and Configuring LEI... 4 Upgrading NotesPump to LEI...

Contents. 1 Introduction... 2 Introduction to Installing and Configuring LEI... 4 Upgrading NotesPump to LEI... Contents 1 Introduction... Organization of this Manual... Related Documentation... LEI and DECS Documentation... Other Documentation... Getting Started with Lotus Enterprise Integrator... 2 Introduction

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 04 Tutorial 1, Part 1 Ubuntu Hi everyone, welcome to the first

More information

XPages Beyond the Basics

XPages Beyond the Basics BLUG 2012 XPages Beyond the Basics 22. 23..03.2012 Crowne Plaza, Antwerp Ulrich Krause, is@web, industrial services AG About: Ulrich Krause Lotus Notes / Domino Administrator & Entwickler since 1993 Business

More information

GroupWise Architecture and Best Practices. WebAccess. Kiran Palagiri Team Lead GroupWise WebAccess

GroupWise Architecture and Best Practices. WebAccess. Kiran Palagiri Team Lead GroupWise WebAccess GroupWise Architecture and Best Practices WebAccess Kiran Palagiri Team Lead GroupWise WebAccess kpalagiri@novell.com Ed Hanley Senior Architect ed.hanley@novell.com Agenda Kiran Palagiri Architectural

More information

Background. $VENDOR wasn t sure either, but they were pretty sure it wasn t their code.

Background. $VENDOR wasn t sure either, but they were pretty sure it wasn t their code. Background Patient A got in touch because they were having performance pain with $VENDOR s applications. Patient A wasn t sure if the problem was hardware, their configuration, or something in $VENDOR

More information

SecureAware Technical Whitepaper

SecureAware Technical Whitepaper SecureAware Technical Whitepaper - requirements and specifications Applies to SecureAware version 4.x Document date: January 2015 About this document This whitepaper provides a detailed overview of the

More information

What s new in IBM Operational Decision Manager 8.9 Standard Edition

What s new in IBM Operational Decision Manager 8.9 Standard Edition What s new in IBM Operational Decision Manager 8.9 Standard Edition Release themes User empowerment in the Business Console Improved development and operations (DevOps) features Easier integration with

More information

Servoy Stuff Browser Suite FAQ

Servoy Stuff Browser Suite FAQ Servoy Stuff Browser Suite FAQ Please read carefully: the following contains important information about the use of the Browser Suite in its current version. What is it? It is a suite of native bean components

More information

Dell Data Protection Protected Workspace

Dell Data Protection Protected Workspace Dell Data Protection Protected Workspace End User Guide Dell Data Protection Protected Workspace v5 Created and Maintained by Invincea, Inc. Proprietary For Customer Use Only 2 Contents Purpose and Intended

More information

McAfee epolicy Orchestrator Release Notes

McAfee epolicy Orchestrator Release Notes Revision B McAfee epolicy Orchestrator 5.3.3 Release Notes Contents About this release Enhancements Resolved issues Known issues Installation instructions Getting product information by email Find product

More information

Real-time video chat XPage application using websocket and WebRTC technologies AD-1077

Real-time video chat XPage application using websocket and WebRTC technologies AD-1077 Real-time video chat XPage application using websocket and WebRTC technologies AD-1077 Dr Csaba Kiss 02/03/2016 LA-UR-16-20047 Credentials Over 25 years experience in molecular biology Began Xpage application

More information

Instructions For Configuring Your Browser Settings and Online Banking FAQ's

Instructions For Configuring Your Browser Settings and Online Banking FAQ's Instructions For Configuring Your Browser Settings and Online Banking FAQ's Instructions By Browser Type Google Chrome Firefox Internet Explorer 8 Internet Explorer 9 Safari Online Banking FAQ's Google

More information

Snapt Accelerator Manual

Snapt Accelerator Manual Snapt Accelerator Manual Version 2.0 pg. 1 Contents Chapter 1: Introduction... 3 Chapter 2: General Usage... 3 Accelerator Dashboard... 4 Standard Configuration Default Settings... 5 Standard Configuration

More information

FUNCTIONAL BEST PRACTICES ORACLE USER PRODUCTIVITY KIT

FUNCTIONAL BEST PRACTICES ORACLE USER PRODUCTIVITY KIT FUNCTIONAL BEST PRACTICES ORACLE USER PRODUCTIVITY KIT Purpose Oracle s User Productivity Kit (UPK) provides functionality that enables content authors, subject matter experts, and other project members

More information

Instructions for Configuring Your Browser Settings and Online Security FAQ s

Instructions for Configuring Your Browser Settings and Online Security FAQ s Instructions for Configuring Your Browser Settings and Online Security FAQ s General Settings The following browser settings and plug-ins are required to properly access Digital Insight s webbased solutions.

More information

3 Continuous Integration 3. Automated system finding bugs is better than people

3 Continuous Integration 3. Automated system finding bugs is better than people This presentation is based upon a 3 day course I took from Jared Richardson. The examples and most of the tools presented are Java-centric, but there are equivalent tools for other languages or you can

More information

Keys to Web Front End Performance Optimization

Keys to Web Front End Performance Optimization Keys to Web Front End Performance Optimization Contents Preface... 3 Web Front End Performance Paradigm... 4 Best practices/optimizations enhancing the Web Front End Performance... 5 WWW of Performance

More information

FITECH FITNESS TECHNOLOGY

FITECH FITNESS TECHNOLOGY Browser Software & Fitech FITECH FITNESS TECHNOLOGY What is a Browser? Well, What is a browser? A browser is the software that you use to work with Fitech. It s called a browser because you use it to browse

More information

Last modification of document: by Tomasz Dobrzyński

Last modification of document: by Tomasz Dobrzyński Thank you for purchasing Gonzales. If you have any questions that are beyond the scope of this help file, please feel free to contact me using following form. If you need my help with installation or plugin

More information

Ajax Performance Analysis. Ryan Breen

Ajax Performance Analysis. Ryan Breen Ajax Performance Analysis Ryan Breen Ajax Performance Analysis Who Goals Ryan Breen: VP Technology at Gomez and blogger at ajaxperformance.com Survey tools available to developers Understand how to approach

More information

XPages development practices: developing a common Tree View Cust...

XPages development practices: developing a common Tree View Cust... 1 of 11 2009-12-11 08:06 XPages development practices: developing a common Tree View Custom Controls Use XPages develop a common style of user control Dojo Level: Intermediate Zhan Yonghua, Software Engineer,

More information

Salesforce Classic Guide for iphone

Salesforce Classic Guide for iphone Salesforce Classic Guide for iphone Version 35.0, Winter 16 @salesforcedocs Last updated: October 27, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Panopto 5.4 Release Notes

Panopto 5.4 Release Notes Panopto 5.4 Release Notes Headline features Extended HTML5 support to include webcasts. Webcasts will now play using HTML5 video by default, in both the interactive viewer and the embed viewer. Added the

More information

Cross-Browser Functional Testing Best Practices

Cross-Browser Functional Testing Best Practices White Paper Application Delivery Management Cross-Browser Functional Testing Best Practices Unified Functional Testing Best Practices Series Table of Contents page Introduction to Cross-Browser Functional

More information

Introducing Lotus Domino 8, Designer 8 and Composite Applications

Introducing Lotus Domino 8, Designer 8 and Composite Applications Introducing Lotus Domino 8, Designer 8 and Composite Applications IBM Lotus collaboration product strategy Rich client W indows/office Browser eforms Portal RSS/Atom Mobile Interaction and client services

More information

Newspilot: A print focused, digital enabled, CMS for the news industry

Newspilot: A print focused, digital enabled, CMS for the news industry Newspilot: A print focused, digital enabled, CMS for the news industry Newspilot supports your editorial processes for planning, gathering of material, writing, proofing, editing cross-media, cross-platform.

More information

Inside the PostgreSQL Shared Buffer Cache

Inside the PostgreSQL Shared Buffer Cache Truviso 07/07/2008 About this presentation The master source for these slides is http://www.westnet.com/ gsmith/content/postgresql You can also find a machine-usable version of the source code to the later

More information

Aventail README ASAP Platform version 8.0

Aventail README ASAP Platform version 8.0 Aventail README 1 Aventail README ASAP Platform version 8.0 Part No. 0850-000010-01 October 19, 2004 This README highlights new features and provides late-breaking information about the Aventail EX-1500

More information

Detects Potential Problems. Customizable Data Columns. Support for International Characters

Detects Potential Problems. Customizable Data Columns. Support for International Characters Home Buy Download Support Company Blog Features Home Features HttpWatch Home Overview Features Compare Editions New in Version 9.x Awards and Reviews Download Pricing Our Customers Who is using it? What

More information

IBM LOT-408. IBM Notes and Domino 9.0 Social Edition Application Development Updat.

IBM LOT-408. IBM Notes and Domino 9.0 Social Edition Application Development Updat. IBM LOT-408 IBM Notes and Domino 9.0 Social Edition Application Development Updat http://killexams.com/exam-detail/lot-408 QUESTION: 90 Mary's users run XPages applications on their IBM Notes clients and

More information

Part 2 (Disk Pane, Network Pane, Process Details & Troubleshooting)

Part 2 (Disk Pane, Network Pane, Process Details & Troubleshooting) Note: This discussion is based on MacOS, 10.12.5 (Sierra). Some illustrations may differ when using other versions of macos or OS X. Credits: See the list at the end of this presentation Part 2 (Disk Pane,

More information

Data Management CS 4720 Mobile Application Development

Data Management CS 4720 Mobile Application Development Data Management Mobile Application Development Desktop Applications What are some common applications you use day-to-day? Browser (Chrome, Firefox, Safari, etc.) Music Player (Spotify, itunes, etc.) Office

More information

Copyright 2018 MakeUseOf. All Rights Reserved.

Copyright 2018 MakeUseOf. All Rights Reserved. 15 Power User Tips for Tabs in Firefox 57 Quantum Written by Lori Kaufman Published March 2018. Read the original article here: https://www.makeuseof.com/tag/firefox-tabs-tips/ This ebook is the intellectual

More information

Using Development Tools to Examine Webpages

Using Development Tools to Examine Webpages Chapter 9 Using Development Tools to Examine Webpages Skills you will learn: For this tutorial, we will use the developer tools in Firefox. However, these are quite similar to the developer tools found

More information

Tzunami Deployer Lotus Notes Exporter Guide

Tzunami Deployer Lotus Notes Exporter Guide Tzunami Deployer Lotus Notes Exporter Guide Version 2.5 Copyright 2010. Tzunami Inc. All rights reserved. All intellectual property rights in this publication are owned by Tzunami, Inc. and protected by

More information

CONVERSION TRACKING PIXEL GUIDE

CONVERSION TRACKING PIXEL GUIDE Conversion Tracking Pixel Guide A Step By Step Guide to Installing a conversion tracking pixel for your next Facebook ad. Go beyond clicks, and know who s converting. PRESENTED BY JULIE LOWE OF SOCIALLY

More information

Dynatrace FastPack for Liferay DXP

Dynatrace FastPack for Liferay DXP Dynatrace FastPack for Liferay DXP The Dynatrace FastPack for Liferay Digital Experience Platform provides a preconfigured Dynatrace profile custom tailored to Liferay DXP environments. This FastPack contains

More information

Table of Contents. Troubleshooting Guide for Home Users

Table of Contents. Troubleshooting Guide for Home Users Table of Contents Introduction... 1 Chapter 1: System Requirements... 2 Recommended and Minimum Supported Requirements... 2 Additional Information... 3 Internet Connectivity... 3 Tablet Compatibility...

More information

Creating your first JavaServer Faces Web application

Creating your first JavaServer Faces Web application Chapter 1 Creating your first JavaServer Faces Web application Chapter Contents Introducing Web applications and JavaServer Faces Installing Rational Application Developer Setting up a Web project Creating

More information

DIRECTORY INTEGRATION: USING ACTIVE DIRECTORY FOR AUTHENTICATION. Gabriella Davis The Turtle Partnership

DIRECTORY INTEGRATION: USING ACTIVE DIRECTORY FOR AUTHENTICATION. Gabriella Davis The Turtle Partnership DIRECTORY INTEGRATION: USING ACTIVE DIRECTORY FOR AUTHENTICATION Gabriella Davis The Turtle Partnership In This Session Review possible use cases for multiple directories Understand security implications

More information

Maven POM project modelversion groupid artifactid packaging version name

Maven POM project modelversion groupid artifactid packaging version name Maven The goal of this document is to introduce the Maven tool. This document just shows some of the functionalities of Maven. A complete guide about Maven can be found in http://maven.apache.org/. Maven

More information

Hands-on Lab Session 9909 Introduction to Application Performance Management: Monitoring. Timothy Burris, Cloud Adoption & Technical Enablement

Hands-on Lab Session 9909 Introduction to Application Performance Management: Monitoring. Timothy Burris, Cloud Adoption & Technical Enablement Hands-on Lab Session 9909 Introduction to Application Performance Management: Monitoring Timothy Burris, Cloud Adoption & Technical Enablement Copyright IBM Corporation 2017 IBM, the IBM logo and ibm.com

More information

Using Code Templates in DDE by Julian Robichaux, panagenda originally published on socialbizug.org, July 2013

Using Code Templates in DDE by Julian Robichaux, panagenda originally published on socialbizug.org, July 2013 Using Code Templates in DDE by Julian Robichaux, panagenda originally published on socialbizug.org, July 2013 One of the freebies that came with integrating Domino Designer with the Eclipse platform (DDE)

More information

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows,

2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, 2012 Microsoft Corporation. All rights reserved. Microsoft, Active Directory, Excel, Lync, Outlook, SharePoint, Silverlight, SQL Server, Windows, Windows Server, and other product names are or may be registered

More information

Salesforce Classic Mobile User Guide for Android

Salesforce Classic Mobile User Guide for Android Salesforce Classic Mobile User Guide for Android Version 41.0, Winter 18 @salesforcedocs Last updated: November 21, 2017 Copyright 2000 2017 salesforce.com, inc. All rights reserved. Salesforce is a registered

More information

Topics Augmenting Application.cfm with Filters. What a filter can do. What s a filter? What s it got to do with. Isn t it a java thing?

Topics Augmenting Application.cfm with Filters. What a filter can do. What s a filter? What s it got to do with. Isn t it a java thing? Topics Augmenting Application.cfm with Filters Charles Arehart Founder/CTO, Systemanage carehart@systemanage.com http://www.systemanage.com What s a filter? What s it got to do with Application.cfm? Template

More information

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel.

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel. Hi. I'm Prateek Baheti. I'm a developer at ThoughtWorks. I'm currently the tech lead on Mingle, which is a project management tool that ThoughtWorks builds. I work in Balor, which is where India's best

More information

Oh yes, wpcache comes with a dashboard wpcache is not Plugin!

Oh yes, wpcache comes with a dashboard wpcache is not Plugin! 1 What is Happening? Oh yes, wpcache comes with a dashboard wpcache is not Plugin! Performance. Speed. Scalability. wpcache delivers world-class content delivery solutions. You are empowered to increase

More information

IBM BigFix Version 9.5. WebUI Administrators Guide IBM

IBM BigFix Version 9.5. WebUI Administrators Guide IBM IBM BigFix Version 9.5 WebUI Administrators Guide IBM IBM BigFix Version 9.5 WebUI Administrators Guide IBM Note Before using this information and the product it supports, read the information in Notices

More information

Web API Lab. The next two deliverables you shall write yourself.

Web API Lab. The next two deliverables you shall write yourself. Web API Lab In this lab, you shall produce four deliverables in folder 07_webAPIs. The first two deliverables should be pretty much done for you in the sample code. 1. A server side Web API (named listusersapi.jsp)

More information

Salesforce Classic User Guide for Android

Salesforce Classic User Guide for Android Salesforce Classic User Guide for Android Version 36.0, Spring 16 @salesforcedocs Last updated: April 27, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

ELET4133: Embedded Systems. Topic 3 Eclipse Tour & Building a First App

ELET4133: Embedded Systems. Topic 3 Eclipse Tour & Building a First App ELET4133: Embedded Systems Topic 3 Eclipse Tour & Building a First App Agenda In this class we will look at the Eclipse IDE We will examine it s various parts when working on an application We will load

More information

Snapshot Best Practices: Continuous Integration

Snapshot Best Practices: Continuous Integration Snapshot Best Practices: Continuous Integration Snapshot provides sophisticated and flexible tools for continuously keeping Salesforce accounts, developer projects, and content repositories synchronized.

More information

How to export data from Reckon Quicken Personal Plus to Moneydance By Michael Young

How to export data from Reckon Quicken Personal Plus to Moneydance By Michael Young How to export data from Reckon Quicken Personal Plus to Moneydance 2011 By Michael Young The information provided in this guide is provided to help users of Reckon Quicken Personal Plus transfer data to

More information

Version Installation Guide. 1 Bocada Installation Guide

Version Installation Guide. 1 Bocada Installation Guide Version 19.4 Installation Guide 1 Bocada Installation Guide Copyright 2019 Bocada LLC. All Rights Reserved. Bocada and BackupReport are registered trademarks of Bocada LLC. Vision, Prism, vpconnect, and

More information

Getting started 7. Setting properties 23

Getting started 7. Setting properties 23 Contents 1 2 3 Getting started 7 Introduction 8 Installing Visual Basic 10 Exploring the IDE 12 Starting a new project 14 Adding a visual control 16 Adding functional code 18 Saving projects 20 Reopening

More information

IBM BigFix Version 9.5. WebUI Administrators Guide IBM

IBM BigFix Version 9.5. WebUI Administrators Guide IBM IBM BigFix Version 9.5 WebUI Administrators Guide IBM IBM BigFix Version 9.5 WebUI Administrators Guide IBM Note Before using this information and the product it supports, read the information in Notices

More information

How to Install (then Test) the NetBeans Bundle

How to Install (then Test) the NetBeans Bundle How to Install (then Test) the NetBeans Bundle Contents 1. OVERVIEW... 1 2. CHECK WHAT VERSION OF JAVA YOU HAVE... 2 3. INSTALL/UPDATE YOUR JAVA COMPILER... 2 4. INSTALL NETBEANS BUNDLE... 3 5. CREATE

More information

Build great products. Contour Enterprise Architect Connector Jama Software, Inc.

Build great products. Contour Enterprise Architect Connector Jama Software, Inc. Build great products. 2 Table of Contents Part I Welcome to Contour 3 Part II Enterprise Architect Connector 2.0 3 1 EA Connector... Install 3 2 Getting... Started 4 3 Define... Mapping Scheme 6 4 Import...

More information

Salesforce Classic Mobile Guide for iphone

Salesforce Classic Mobile Guide for iphone Salesforce Classic Mobile Guide for iphone Version 41.0, Winter 18 @salesforcedocs Last updated: November 30, 2017 Copyright 2000 2017 salesforce.com, inc. All rights reserved. Salesforce is a registered

More information

Lifehack #1 - Automating Twitter Growth without Being Blocked by Twitter

Lifehack #1 - Automating Twitter Growth without Being Blocked by Twitter Lifehack #1 - Automating Twitter Growth without Being Blocked by Twitter Intro 2 Disclaimer 2 Important Caveats for Twitter Automation 2 Enter Azuqua 3 Getting Ready 3 Setup and Test your Connection! 4

More information

Halcyon Message Sender GUI. v6.0 User Guide

Halcyon Message Sender GUI. v6.0 User Guide GUI v6.0 User Guide Copyright Copyright HelpSystems, LLC. All rights reserved. www.helpsystems.com US: +1 952-933-0609 Outside the U.S.: +44 (0) 870 120 3148 IBM, AS/400, OS/400, System i, System i5, i5/os,

More information

Create quick link URLs for a candidate merge Turn off external ID links in candidate profiles... 4

Create quick link URLs for a candidate merge Turn off external ID links in candidate profiles... 4 Credential Manager 1603 March 2016 In this issue Pearson Credential Management is proud to announce Generate quick link URLs for a candidate merge in the upcoming release of Credential Manager 1603, scheduled

More information

Understanding Virtual System Data Protection

Understanding Virtual System Data Protection Understanding Virtual System Data Protection Server virtualization is the most important new technology introduced in the data center in the past decade. It has changed the way we think about computing

More information

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information

Jquery Manually Set Checkbox Checked Or Not

Jquery Manually Set Checkbox Checked Or Not Jquery Manually Set Checkbox Checked Or Not Working Second Time jquery code to set checkbox element to checked not working. Apr 09 I forced a loop to show checked state after the second menu item in the

More information

Clearspan Hosted Thin Call Center R Release Notes JANUARY 2019 RELEASE NOTES

Clearspan Hosted Thin Call Center R Release Notes JANUARY 2019 RELEASE NOTES Clearspan Hosted Thin Call Center R22.0.39 Release Notes JANUARY 2019 RELEASE NOTES NOTICE The information contained in this document is believed to be accurate in all respects but is not warranted by

More information

AngularJS Intro Homework

AngularJS Intro Homework AngularJS Intro Homework Contents 1. Overview... 2 2. Database Requirements... 2 3. Navigation Requirements... 3 4. Styling Requirements... 4 5. Project Organization Specs (for the Routing Part of this

More information

Setting Up the Development Environment

Setting Up the Development Environment CHAPTER 5 Setting Up the Development Environment This chapter tells you how to prepare your development environment for building a ZK Ajax web application. You should follow these steps to set up an environment

More information

HTML version of slides:

HTML version of slides: HTML version of slides: http://people.mozilla.org/~bbirtles/pres/graphical-web-2014/ Animations can be used for more than just cat gifs. They can be used to tell stories too. Animation is essentially

More information

One of the fundamental kinds of websites that SharePoint 2010 allows

One of the fundamental kinds of websites that SharePoint 2010 allows Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental

More information

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces CaptainCasa & Java Server Faces 1 Table of Contents Overview...3 Why some own XML definition and not HTML?...3 A Browser for Enterprise Applications...4...Java Server Faces joins the Scenario!...4 Java

More information

Dojo Meets XPages in IBM Lotus Domino 8.5. Steve Leland PouchaPond Software

Dojo Meets XPages in IBM Lotus Domino 8.5. Steve Leland PouchaPond Software Dojo Meets XPages in IBM Lotus Domino 8.5 Steve Leland PouchaPond Software Agenda What is Dojo? We (XPages) use it. Setup for Dojomino development. You can use Dojo too! Demo Q&A What is Dojo? Open source

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

Republicbank.com Supported Browsers and Settings (Updated 03/12/13)

Republicbank.com Supported Browsers and Settings (Updated 03/12/13) Republicbank.com Supported Browsers and Settings (Updated 03/12/13) We support the Internet Explorer 8.0 & 9.0. If you are using Internet Explorer 7.0 or earlier you will need to update your browser. Click

More information

Introduction to the Internet. Part 1. What is the Internet?

Introduction to the Internet. Part 1. What is the Internet? Introduction to the Internet Part 1 What is the Internet? A means of connecting a computer to any other computer anywhere in the world via dedicated routers and servers. When two computers are connected

More information