Introduction to Java Serialization
In today's world, a typical enterprise application will have multiple components and will be distributed across various systems and networks.
In Java, everything is represented as objects; if two Java components want to communicate with each other, there needs be a mechanism to exchange
data. One way to achieve this is to define your own protocol and transfer an object. This means that the receiving end must know the protocol used
by the sender to re-create the object, which would make it very difficult to talk to
third-party components. Hence, there needs to be a generic and efficient protocol to transfer the object between components. Serialization is defined
for this purpose, and Java components use this protocol to transfer objects.
Why Java Serialization Load Testing?
Java Serialization on top of the HTTP protocol allows remote service calls to be executed between the client and server using specific frameworks such as
Spring Remoting (Spring's HTTP Invoker). The data exchange is carried out in binary and encapsulated in the HTTP
There are three primary reasons why objects are not serializable by default and must implement the Serializable interface to access Java's
- Not all objects capture useful semantics in a serialized state. For example, a Thread object is tied to the state of the
current JVM. There is no context in which a deserialized Thread object would maintain useful semantics.
- The serialized state of an object forms part of its class's compatibility contract. Maintaining compatibility between versions of serializable classes
requires additional effort and consideration. Therefore, making a class serializable needs to be a deliberate design decision and not a default condition.
- Serialization allows access to non-transient private members of a class that are not otherwise accessible. Classes containing sensitive information
(for example, a password) should not be serializable or externalizable.
Load Test helps you to estimate the behavior of the application under load.
How to Test the Performance?
The basic methodology for performing load testing on a Web application is to identify the performance-critical key scenarios; identify the workload
profile for distributing all the load among the key scenarios; identify metrics that you want to collect in order to verify them against your
performance objectives; create test cases that will be used to simulate the load test; use tools to simulate the load according to the test cases
and capture the metrics; and finally, analyze the metrics data captured during the tests.
NeoLoad is a performance testing tool which supports
Java Serialization application testing.
You've liked this content? Please recommend us on Google+1: