My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

This project is a spontaneous remote procedure call framework that let's you use it with exactly ZERO-modifications in the source code; i.e. you can make your pre-compiled class files available remotely with no need to have the source code rather than to edit it. It simply allows your application to be network-transparent. (current implementation note: classes need to meet some criteria to be -logically- remote-safe, and these constraints are enforced, although you can go without them). The current implementation is based on RMI. The current features include:

  • Pass/Return-by-remote reference.
  • Providing remoting for protected & default access methods.
  • Automatic indirection resolution. (passing a remote object by reference in a chain of machines, the call would pass each one of the, no, it is the case now that a call will always go directly to the original hosting machine)
  • Automatic regeneration of classes when a class file is updated (does not do dependencies yet)

That is a very powerful feature, you can -theoretically- put each class file on it's own machine and run them and they will inter-operate with no need to change any byte in the source code!

Coming soon features:

  • Provide pass/return-by-remote for polymorphic types (SRMI generated classes will use SRMI itself for that)
  • Pass/Return-by-remote for an array of remote references
  • Automatic serialization (even if not instance of Serializable)
  • Providing an assertion if a method is called on the local invalid copy

Known issues:

  • Leases and not knowing when an object is unbound or the remote machine crashed
  • Race conditions that causes corruption of generated class files in case multiple generators generate the same classes at the same time
  • When the server and client are of the same class, they can private functions, which can not be remoted using SRMI (yet; current implementation).
Powered by Google Project Hosting