Java WS Core WSRF and WSN Performance

This document gives a brief overview of the performance of some of the WSRF and WSN operations supported by the Java WS Core component.

The Tests

The tests were performed using a simple "counter" service, i.e. a service whose resource contains a single integer that can be inspected, set and whose change can drive property value change notifications.

The operations that were tested are:

  • GetRP: The average duration over 10000 invocations for a client to invoke GetResourceProperty (getting the value of the counter).
  • SetRP: The average duration over 10000 invocations for a client to invoke SetResourceProperty (setting the value of the counter).
  • CreateR: The average duration over 1000 invocations for a client to create a counter as a WS-Resource. We use 1000 invocations in this test and the next to achieve a manageable duration.
  • DestroyR: The average duration over 1000 invocations for a client to destroy a WS-Resource counter.
  • Notify: A client first subscribes to the "ResourcePropertyValueChanged" event for a particular counter. Then, we measure the average over 100 times of first setting the counter to a new value (via SetResourceProperty) and then waiting for the notification to arrive.

The Environment

The tests were performed on a Dual (2x) AMD Opteron 240 - 1.4GHz w/1MB L2 Cache, 2GB (4x512MB) PC2700 DDR333 Reg. ECC, 1x Seagate 120GB EIDE 7200 RPM, 8MB cache.

The Results

Operation No Security WS-Security X.509 profile HTTPS (w/o connection reuse) HTTPS (w/ connection reuse)1
GetRP 10.05 182.66 114.61 11.81
SetRP 10.06 182.47 114.44 11.80
CreateR 16.34 188.21 116.13 18.35
DeleteR 14.04 182.21 113.55 15.48
Notify 27.83 221.28 235.71 31.22

Notes: All the numbers are in milliseconds. Also, none authorization was used in the security tests.

1 Tested against a standalone container prototype which will be distributed in the future versions of the Globus Toolkit.