BRAP is a Java remoting protocol that uses native Java object serialization encapsulated in HTTP. It aims to be an alternative to Spring HttpInvoker and Spring Security, especially when you don't need or want the dependencies of Spring in your client, such as when building a rich client application where size might be an issue. The authentication mechanism lets you use your own domain objects as credentials. BRAP gives you "pass by reference" even though the object arguments are serialized and passed to the remote service: changes that happen on the remote side can be applied to the client side automatically. BRAP focuses on being easy to use, small in size, yet powerful and extensible.