It is common practice to deploy application tiers as separate processes that communicate with each other via network
protocols. For instance, a Web browser displaying an HTML front-end on a user workstation uses the Hypertext Transfer Protocol (HTTP) to communicate with the Web server. In turn, the Web server typically uses RMI or IIOP to communicate with the application server. The application server relies on JDBC to communicate with the database.
This chapter from the book Covert Java: Techniques for Decompiling, Patching, and Reverse Engineering, by Alex Kalinovsky, presents several techniques that can be employed to eavesdrop on the conversation between the distributed tiers. Eavesdropping is intercepting and logging the message exchange between a client and server. It can facilitate the troubleshooting or performance tuning of a complex distributed system, as well as provide insight into the application design and communication principles.