protobuf-rpc-pro is a Java developer library that provides an RPC layer for Google's Protocol Buffer services. It builds upon Netty for low-level NIO. Features include bidirectional RPC calls from client to server and from server to client. The client and server are equal communicating peers. TCP connection re-use / keep-alive, SSL encryption support, RPC call cancellation, timeout and a pluggable logging facility logging RPC call data in Protocol Buffer format are included.
Agnos is a cross-language, cross-platform, lightweight RPC framework with support for passing objects by value or by reference. Agnos is meant to allow programs written in different languages to easily interoperate, by providing the needed bindings (glue-code) and hiding all the details from the programmer. The project essentially serves the same purpose as existing technologies like SOAP, WSDL, CORBA, and others, but takes a minimalistic approach to the issue at hand. Unlike the aforementioned technologies, which tend to require integration with Web servers, using verbose XML-based protocols on top of textual transports (HTTP), often also requiring complex topologies (such as name servers for registering objects, etc.). Agnos is designed to be simple, efficient, and straightforward, allowing for direct communication between two ends using a compact binary protocol.
jRapidRPC is a Java RPC library that allows you to create client-server applications that talk in objects. It is small, fast, and extensible. Its smallness helps you learn how to use the library quickly. jRapidRPC is fast due to its compact size and lack of complexity. Also, it uses the ProtoStuff serializer by default. jRapidRPC's extensibility allows you to can write a new client-server or a new serializer.
RMI WebSocket provides a library for remote method invocations between a browser and a Jetty Web Server using the HTML5 WebSocket. The idea is to enable tight method-level integration between the user interface and the server so that patterns such as MVP (Model-View-Presenter) can be applied in a Web environment. The method-level communications between the browser code and the server code allows the developer to think about the Web page and server-side components as objects in a UML world. Details such as the over-the-wire protocols in WebSockets are abstracted away in the process.