Behind the Scenes of Serialization in Java

When building distributed applications one of the central performance-critical components is serialization. Most modern frameworks make it very easy to send data over the wire. In many cases you don’t see at all what is going on behind the scenes. Choosing the right serialization strategy however is central for achieving good performance and scalability. Serialization problems affect CPU, memory, network load and response times. Java provides us with a large… read more

Performance Considerations in Distributed Applications

Distribution and communication between applications and services is a central concept in modern application architectures. In order to profit from distribution you have to keep some basic principles in mind – otherwise you can easily run into performance and scalability problems. During development these problems often do not surface.  Then suddenly in load testing or production you might then realize that your chosen software architecture does not support the required… read more

Performance Antipattern : Logical Structure vs. Physical Deployment

A very common performance anti-pattern is wrong deployment of components. This often comes when applications are deployed as they are designed at a conceptual level. Most web-based applications today are build based on the Model-View-Controller concept. This means that components are seperated into : A view part responsible for presenting a user interface to the end user. A controller part containing the interaction logical as well as business logic. read more

Optimizing Remoting by Optimizing Serialization

RMI Remoting Optimization Remoting is a key element in modern enterprise applications . While it can help to increase scalabilty and performance it might also become a bottleneck. Especially in highly transactional applications the network easily becomes the bottleneck. I examined possible performance optimizations in Java RMI following the guidance given in the book Java RMI. The results are very interesting. I used a simple address service… read more