 This approach is commonly used in a distributed architecture that makes heavy use of such remote calls, notably client-server systems and application servers such as Enterprise JavaBeans.Code generation libraries are high-level APIs that can generate or transform byte code for Java.They are used by aspect-oriented programming, some data access frameworks, and for testing to generate dynamic proxy objects.