You are on page 1of 15

Oracle Retail Predictive

Application Server
Fusion Client: Getting Started
April 2014

Note: The following is intended to outline our general product

direction. It is intended for information purposes only, and may


not be incorporated into any contract. It is not a commitment to
deliver any material, code, or functionality, and should not be
relied upon in making purchasing decisions. The development,
release, and timing of any features or functionality described for
Oracles products remains at the sole discretion of Oracle.

Contents
Overview ................................................................................................................................... 1
Architecture .............................................................................................................................. 2
Deployment ............................................................................................................................... 2
Option 1 .............................................................................................................................................. 2
Option 2 .............................................................................................................................................. 3
Browser ..................................................................................................................................... 4
Authentication .......................................................................................................................... 4
Factors Affecting Performance............................................................................................... 5
Browser............................................................................................................................................... 5
WebLogic ........................................................................................................................................... 5
Heap Size......................................................................................................................................... 5
Environment Settings ....................................................................................................................... 6
AIX ................................................................................................................................................... 6
Network Performance and Latency................................................................................................ 6
Application Configuration............................................................................................................... 6
RPAS Server .................................................................................................................................... 6
SSL.................................................................................................................................................... 6
Number of Worksheets in a Tab .................................................................................................. 7
Client Machine................................................................................................................................ 7
Number of Rows and Columns.................................................................................................... 7
Cell Editing ..................................................................................................................................... 7
Gzip Compression ............................................................................................................................ 8
Implementing Compression ......................................................................................................... 8
Testing Performance ......................................................................................................................... 9
A Comparison of the Fusion Client and Classic Client ...................................................... 10

Overview
The Oracle Retail Predictive Application Server (RPAS) is a configurable platform that
provides capabilities such as a multidimensional database structure, batch and online
processing, a configurable user interface, a configurable calculation engine, user security, and
utility functions such as importing and exporting, all on a highly scalable technical
environment that can be deployed on a variety of hardware.
The RPAS Fusion Client is the web-based Rich Client for the RPAS platform, developed
using the latest Oracle Application Development Framework (ADF).
This white paper addresses typical questions that arise during setting up and deploying the
Fusion Client, provides performance recommendations, and highlights the differences
between the Classic Client and Fusion Client.
Always refer to the most recent Installation Guide for information about upgrade procedures
and to review the Platform Matrix for details about platform support.
RPAS documentation is available on the Oracle Technology Network at the following URL:
http://docs.oracle.com/cd/E12478_01/rpas/index.html

Fusion Client: Getting Started 1

Architecture
The Fusion Client resides on a J2EE three-tier architecture that consists of a browser, a
WebLogic server or servers, and an RPAS server. Microsoft Internet Explorer, Mozilla
Firefox, and Google Chrome are supported browsers. For more information on browsers, see
the Browser section. External authentication, such as LDAP, SSO, or OID, is also supported.
This architecture is illustrated at a high level in the following diagram.

RPAS Fusion Client: Three-Tier Architecture

Deployment
Several deployment options can be adopted, based on individual requirements. This section
describes two options in order to provide you with a better understanding of the possibilities.

Option 1
The recommended deployment for the Fusion Client, shown in the first diagram, is one that
employs separate machines for the Fusion Client server and for the RPAS server. This is the
standard deployment for RPAS with the Fusion Client. This type of deployment makes
performance monitoring easier and avoids the situation where RPAS Server and Fusion
Client are competing for the same set of resources. Such a situation can happen during
workbook creation, committing, and saving.

2 Oracle Retail Predictive Application Server

Using multiple WebLogic servers or instances allows the system to be load balanced to
distribute the load. It also prevents a single point of failure. If one WebLogic server is down,
the requests are redirected to the other server.

A single machine with RPAS Server and Fusion Client can be used for non-production
environments. Such environments should not be used for performance measurements.

Option 2
An alternative deployment option, shown in the following diagram, can be used when a
customer wants to maintain different RPAS and Fusion Client environments (including the
WebLogic server) for each solution.

This deployment provides the flexibility to install and manage different versions of RPAS
separately. It allows for shutting down one of the solutions for maintenance while the other is
still being used.
One of the disadvantages of this approach is that maintenance overhead is incurred when
each environment is upgraded. In addition, it is not possible to take advantage of the
functionality related to the Multi Solution Taskflow (since the RPAS 13.3.1 release) to build a
unified flow for the system. Note that a load balancer can be added to the mix by either
adding another server or by installing multiple WebLogic instances on each of the existing
machines.

Fusion Client: Getting Started 3

For example, one server could have Merchandise Financial Planning (MFP) and Assortment
Planning (AP) installed, a second server could have AP and Item Planning (IP) installed, and
a third one could have IP and MFP installed.
Note: Both of the preceding diagrams show the RPAS server

with MFP, AP, and IP for simplicity. Refer to the Oracle Retail
Predictive Application Server Installation Guide for details on the
RPAS Server installation.

Browser
The performance of the Javascript engine and the DOM parser has a significant impact on the
performance of the Fusion Client.
The RPAS Fusion Client is a web application built using the Oracle Fusion technology stack.
It is built using ADF Faces UI components that make extensive use of the browser's HTML,
CSS, and JavaScript execution capabilities during rendering and user interactions. Different
browsers vary not only in rendering capabilities but also in performance. In the Fusion Client
architecture, the performance of the browser is a key determinant of overall application
performance. As such, the choice of browser becomes an important one from a performance
standpoint.
Fusion Client supports Mozilla Firefox, Microsoft Internet Explorer, and Google Chrome.
Support for Google Chrome is re-added in release 14.0.1. These browsers are supported by
ADF Faces, beginning with version 11.1.1.2. Refer to the Platform Matrix in the Oracle Retail
Predictive Application Server Installation Guide for information about which versions are
supported.

Authentication
Beginning with 13.3.1, the Fusion Client requires the use of an authentication system.
(Previous releases of the Fusion Client used RPAS for authentication.) Two options are
possible. An LDAP identity store, such as Oracle Internet Directory, can be used. As an
alternative, a single sign-on system, such as Oracle Single Sign-On based on Oracle Access
Manager, can also be used.

4 Oracle Retail Predictive Application Server

Factors Affecting Performance


The following factors can affect the performance of the Fusion Client:

Browser

WebLogic

Environment Settings

Network Performance and Latency

Application Configuration

Browser
The choice of browser can have an impact on performance. In general, Mozilla Firefox has
faster performance than Microsoft Internet Explorer. The browser impacts many interactive
actions, including scrolling and cell edits.
The primary user interaction in the Fusion Client is with pivot tables that show workbook
data. Users can scroll the tables horizontally and vertically, edit cell values, pivot layers, and
drill into and roll up dimensions. Each operation requests the server to perform the operation
and then return data to update the pivot table view (without refreshing the entire page).
For an independent review of browsers, see the following link. (Note that this link is
provided for informational purposes only. No recommendation is intended or implied. You
can use any supported browser that you choose.)
http://www.tomshardware.com/reviews/chrome-17-firefox-10-ubuntu,3129.html

WebLogic
When you run the Fusion Client installer, the installer will require a WebLogic server domain
setup to deploy the Fusion Client as an application.

Heap Size
By default, the Java Virtual Machine requests on the order of 256-512 MB of RAM from the
operating system to allocate for its heap. By using the -Xmx option, you can instruct the Java
Virtual Machine to request more memory from the OS to prevent situations when all
allocated memory is exhausted. The syntax of the property is: -Xmx###m, where ### is the
amount, in megabytes, of memory the JVM is to request. It is recommended that you start
with 2GB allocation that is -Xms2048m -Xmx2048m.
When setting the heap size, consider the following recommendations:

The size should ultimately be determined through experimentation.

Set the minimum and maximum heap size to be equal to each other. CPU cycles will
not be spent growing and shrinking the heap at runtime.

Allocate as much free memory as possible to running WebLogic server instances. The
Fusion Client is not CPU-intensive, but user sessions consume memory when
maintaining data caches.

Fusion Client: Getting Started 5

Heap sizes should not be larger than necessary. Steady-state heap usage should be
between 50-80 percent of the maximum. Low utilization wastes memory and slows
down garbage collection.

For more information on heap sizing and other details about setting up the WebLogic
application server, refer to the Oracle Java documentation on Java Performance Tuning and
the Oracle Fusion Middleware Performance and Tuning for Oracle WebLogic Server
http://docs.oracle.com/cd/E21764_01/web.1111/e13814/toc.htm

Environment Settings
AIX
On AIX there are two environment variables that have an impact on the performance of the
solution and that should be checked. This is related to the Nagles Algorithm, an efficiency
improvement algorithm built into most TCP/IP implementations. More details can be found
at the following web site:
http://en.wikipedia.org/wiki/Nagle's_algorithm
On RPAS Server and Fusion Client, set the following:
export RPAS_TCPNODELAY = on
export FC_TCPNODELAY=true

Network Performance and Latency


The RPAS Fusion Client is a Web-based client. It interacts with the WebLogic server to
process requests. Any latency between the user's machine where the browser is located and
the WebLogic server can have an impact on performance. For acceptable performance on the
Fusion Client, a latency of no more than 50ms is recommended.

Application Configuration
The following factors can impact performance:

RPAS Server
Factors that impact the performance of the RPAS server can in turn impact the performance
of the Fusion Client. Workbook builds and calculations are done entirely in the RPAS server.
For example, workbook actions such as Save, Commit, and Refresh all have an impact on
server performance.

SSL
SSL is used, beginning with 13.3.1, in order to secure communication between the Fusion
Client and the RPAS server. Two public key certificates are required, one for the Fusion
Client and one for the RPAS server. The Fusion Client and the RPAS server use the
certificates to authenticate themselves to each other when they establish a connection with
each other.

6 Oracle Retail Predictive Application Server

If one company is going to use the entire environment, then it is acceptable to use a selfsigned root certificate to sign the client and server certificates. Otherwise, a third-party
certificate authority should be used to sign the certificates.
Two different SSL options are available:

The SSL 2 option encrypts subsequent message exchanges with a password


generated during the SSL handshake phase. This option is more secure, but can slow
performance.

The SSL 4 option does not encrypt messages. This is less secure, but does not impact
performance. It is recommended for deployments behind a firewall.

Number of Worksheets in a Tab


The more worksheets a user needs to look at within a single tab, the higher the impact on
performance. The taskflow for the Fusion Client is designed so that a user can divide
worksheets into small, logical groups.

Client Machine
The CPU/RAM can affect performance. If the CPU/RAM on the machine is very slow/low,
the performance of the system will be affected. This is even more pronounced in the case of
older browsers such as IE 7/8. Intel core i5 (or equivalent), and 4 GB RAM are
recommended.

Number of Rows and Columns


It takes a longer time to render a large amount of data on the screen. This can occur in
situations where a single view displays many cells at the same time. The more data that is
visible, the more time that is needed to fetch the data and to display it in the UI. Wider screen
monitors, for example, will show more cells and might be perceived to be slower, despite the
fact that more data is being fetched.

Cell Editing
RPAS supports the concept of protection processing. The system tries to be smart and only
perform it when absolutely needed. The first edit almost always requires protection
processing to be run. This overhead is reflected in the time to tab from one cell to another.
The amount of overhead time for protection processing is dependent on how many rules you
have defined in your configuration and the number of interdependencies between the
measures.

Fusion Client: Getting Started 7

Gzip Compression
Compressing the HTTP responses provides significant benefit to the Fusion Client. It has
been observed that using gzip compression compresses the HTTP response by a factor of 10
to 20 in most cases. This greatly reduces the available bandwidth consumed by each Fusion
Client user, which leads to greater scalability in that a much larger number of concurrent
users can be accommodated than would otherwise be possible.
The main reason for the large degree of compression is that the HTML content is inherently
verbose, and in the case of the Workbook page, there is a great deal of repetitive content in
the HTML markup corresponding to the various worksheet cells.
Another benefit is faster user response time, although this is rather unpredictable; sometimes
the improvement can be very small. This is because the size of the HTTP response has its
greatest effect on the latency, the time it takes for all the response bytes to completely arrive
at the client browser; and latency is just one component of the overall response time. (Other
things such as server processing time, time to render the response on the browser, and time
for the request to reach the server also come into play.) Accounting for the time taken to
uncompress the response is also needed.
The decompression time can vary from browser to browser. Oracle Retail has not
investigated the relative decompression times among various browsers.

Implementing Compression
While there are many ways to achieve response compression, Oracle Retail tested it using
Oracles web tier technologies. A basic web tier consists of an Oracle HTTP server instance
furnished with a mod_wl_ohs module plug-in that tunnels user requests to WebLogic
managed servers hosting Fusion Client application instances. Oracle Retail implements gzip
compression using the mod_deflate module in the Oracle HTTP Server. The following
diagram illustrates this.

8 Oracle Retail Predictive Application Server

The configuration of the mod_deflate module is to be done in the httpd.conf file


corresponding to the Oracle HTTP Server instance, by adding the following lines:
LoadModule deflate_module "${ORACLE_HOME}/ohs/modules/mod_deflate.so"
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/html
SetOutputFilter DEFLATE

You can verify that gzip compression is being applied by looking at the response headers
using a tool such as Firebug (on Firefox); you should see the line Content-Encoding
gzip in the headers.
For further details, refer to Doc ID 1219013.1, How to Add Compression on the Oracle
HTTP Server to Reduce the Download Size of Webcenter Spaces Deployment (), that also
describes this technique. The document is available on My Oracle Support
(http://www.oracle.com/support/contact.html).

Testing Performance
For information about some tools and techniques for testing the scalability of ADF Faces
applications, based on Oracle internal experience, see:
http://www.oracle.com/technetwork/developertools/adf/learnmore/adfloadstresstesting-354067.pdf
Note: For details on supported platforms, including Java and

Browser versions, see the Oracle Retail Predictive Application


Server Installation Guide.

If you run into a performance issue, file a Service Request (SR) and provide the information
requested in the Oracle Retail Predictive Application Server Fusion Client Customer
Performance Issue Report Doc ID 1493747.1. The document is available on My Oracle
Support:
http://www.oracle.com/support/contact.html

Fusion Client: Getting Started 9

A Comparison of the Fusion Client and


Classic Client
This section provides a brief summary of some of the differences between the Fusion Client
and Classic Client. This is not a complete list, but a synopsis of some of the key differences.
Functionality

Classic Client

Fusion Client

Taskflow Navigation

All worksheets are displayed as tabs and


windows whenever a workbook is opened
with no indication of the flow through
them.

A navigation taskflow steps the user


through the process of updating a
workbook in a logical work flow.

Commit

Classic Client provides three commit


options: Commit Now, Commit ASAP, and
Commit Later. To see the Commit ASAP
status, a user must go to the Commit ASAP
status dialog.

Fusion Client offers one commit option:


Commit ASAP. The status of the commit is
updated automatically for the user in the UI
while in the workbook.

Formatting

In order to make measure, cell, exception, or


other formatting changes to a single
measure, a user must go to each worksheet
to apply the same changes.

The Fusion Client formatting dialog allows


a user to select which views (all or a subset)
to apply the formatting changes to.

Split View

The only way to view a chart is to toggle the


view and only see either the chart or the
pivot table in a single worksheet.

The Fusion Client has an option called split


view that allows a user to see the pivot table
and chart in the same view.

Block Mode

Unlike outline mode, there is no way to


expand and collapse in block mode. With
multiple levels displayed, a user can only
show data at a higher level in block mode
by removing the lower level from the view.

Within Block Mode, a user can expand and


collapse the levels. If multiple levels are
displayed, a user can collapse the lower
level and see the higher level data.

Selection

Selection automatically selects all instances


of the position.

Selection allows finer grained control. A


user can select a subset of the data. There
are some additional differences in selection
model.

Show/Hide Levels

Right click to perform level selection.


Hiding all levels for a dimension is
supported.

Level selection is now in a separate popup


that is triggered by clicking on tiles or
showing/hiding individual levels via a
context menu. A single popup is used to do
all the setup.
Does not support hiding all levels for a
dimension.

Cut/Copy/Paste

Two options are available for


Cut/Copy/Paste. One is to use the
clipboard and the other is to do a server
copy.

10 Oracle Retail Predictive Application Server

Cut/Copy/Paste has an option,


Cut/Copy/Paste external, that is used to
copy from and to external applications.

Functionality

Classic Client

Fusion Client

Undo

The user can select cells to undo or can


undo all cells.

An undo list shows the user a list of edits


that can be undone. This list shows the user
the intersection where the edit took place
and the value that was entered. Undoes all
changes after the selected entry.

Show Images

A user can see the images at the assigned


level.

Images are displayed in a carousel. A user


can also choose to view all images for a
parent level.

Find

The Find operation is used to find along a


particular axis.

More sophisticated Find functionality. In


addition to selecting which axis to find
along, a user can also find within levels.

Measures Profile

A user can create a measure profile that is a


duplicate of another profile.

Duplicate measure profiles cannot be


created. A user is shown the profile she is
using when in the measure Show/Hide
dialog.

Percent of Parent
Measures

Relative percent of parent measures is


always relative to the configured next level,
not the next level shown. Also, a user must
manually show the % attribute to
distinguish the percent of parent measure
from the source measure.

Relative percent of parent measures is


relative to the next level shown. The value
will then change, based on the level that is
shown. Also, the % attribute is
automatically displayed when a percent of
parent measure is created.

Page (z-axis)
Navigation

When multiple hierarchies are on the page


edge, the First/Last position navigation
buttons apply to the selected hierarchy, but
Next and Previous navigate across the
hierarchies.

Navigation buttons consistently navigate


within the selected hierarchy.

Pivoting

A user pivots by dragging and dropping


tiles only.

A user pivots by dragging and dropping


column/row headers or tiles.

Dynamic Position
Maintenance

When a new position is added, all parent


level information must be entered or
selected.

When a new position is added, all parent


level information is defaulted from the
selected position. Delete position operates
on dynamic positions selected in the pivot
table; multiple positions can be deleted at
the same time.

Only one dynamic position can be deleted at


a time, and it must be selected from the
delete popup.
Insert Measure

One measure can be added at a time, and it


is inserted at the last position.

Multiple measures can be inserted at a time,


and they are inserted after the selected
measure, if there is one.

Calculation

Automatic calculation option is available.

Only manual calculation is available.

Printing

Printing is supported directly from the


application.

Printing is supported via export to Excel.

Export

Only supports exporting raw text to csv or


delimited formats.

Excel export supports maintaining


formatting information.

Cell Locking

Can lock/unlock one cell at a time or unlock


all.

Can lock/unlock all cells in the current


selection.

Fusion Client: Getting Started 11

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com
Copyright 2014, Oracle and/or its affiliates. All rights reserved.
This document is provided for information purposes only and the
contents hereof are subject to change without notice.
This document is not warranted to be error-free, nor subject to any
other warranties or conditions, whether expressed orally or implied
in law, including implied warranties and conditions of merchantability
or fitness for a particular purpose. We specifically disclaim any
liability with respect to this document and no contractual obligations
are formed either directly or indirectly by this document. This document
may not be reproduced or transmitted in any form or by any means,
electronic or mechanical, for any purpose, without our prior written permission.
Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle
Corporation and/or its affiliates. Other names may be trademarks
of their respective owners.

You might also like