If you are developing a java application, it is important to know that the java class files can be easily reverse engineered and decompiled into the original source code using java decompilers such as JD GUI or JAD. The best solution to prevent reverse engineering is to obfuscate the class file. According to the dictionary "obfuscation" in general, describes a practice that is used to intentionally make something more difficult to understand. In a programming context, it means to make code harder to understand or read, generally for privacy or security purposes.
As described in the previous post, while there are several popular serialization/deserialization frameworks it is difficult to find frameworks that provide also support for RPC-based services. This is one of the major attractions of Thrift.
The definition of the Thrift services is comparable to the definition of Java interfaces, in fact it requires just a name and signatures for the methods that you would like to implement.
A common problem encountered in the development of any kind of distributed system is represented by the need of a portable and efficient mechanism for exchanging data. This is precisely what Apache Thrift provides: a language and a platform developed at Facebook to serialize structured data for use in communications protocols. Obviously, several people dealt with this problem over the years and, as a result, there are many good alternatives to choose from, including plain-JSON, Protocol Buffer or XML etc. However Thrift offers something more than a platform to serialize data.