The "Clustered Remoting For Spring Framework" (or Cluster4Spring) is alternative implementation of remoting subsystem included into Spring framework.

Clustered remoting scheme

While implementation of remoting in Spring is great, it has several limitations that are quite important and must be taken into consideration when building large enterprise-level distributed system.

Briefly, these limitations relate to the point-to-point model of remoting supported by Spring - generally speaking, the client may use only one instance of remote service. It is obvious that having only such a scheme of remoting, it is hard to develop fault-tolerant systems and implement some kinds of load balancing.

Another feature, which is currently missing in remoting subsystem offered by Spring framework, is lack of the ability to dynamically discover remote services.

The main purpose of Cluster4Spring is to extend remoting system of Spring framework and overcome limitations mentioned above.

Currently (in version 0.85), the scope of Cluster4Spring includes only remoting related issues and does not include any functionality that can be used for data replication between various instances of server. However, it is possible that such functionality will be added later, if necessary.

Cluster4Spring is Open Source project. It is licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at Apache Software Foundation site.

Major features

(Cluster4Spring) represents a replacement of the remoting subsystem of Spring framework and provides possibilities to build more stable and fault tolerant systems with dynamic discovering of remote services.

Briefly, the major features of Cluster4Spring library are:

  • Support of one-to-one scheme of remoting (similar to one currently supported by Spring);
  • Support of one-to-many scheme of remoting, which assumes that one client selects remote service for invocation from one of predefined locations;
  • Support of one-to-many scheme of remoting with dynamic discovering of remote services;
  • Several built-in policies for selecting remote service for invocation are included (they are applied if service is available in several locations);
  • Built-in functionality for handling remoting exceptions of method invocations that provides ability to re-invoke remote service using different service location automatically;
  • Short learning curve since ideological implementation of Cluster4Spring bears a close resemblance to the implementation of remoting in Spring;
  • Non-intrusive for existing applications - it is simply enough to change appropriate remoting-related Spring configuration files to start using Cluster4Spring;
  • Provides a convenient way to add custom interceptors both on client and server side;
  • Flexible and modular architecture which is ready for further extensions and customizations;
  • Library is stable and ready to use;

Current version of Cluster4Spring includes core logic that is agnostic to actual remoting protocol and implementation of remoting via RMI. However, it is planned that later version of Cluster4Spring will include support of additional remoting protocols.

  SourceForge.net Logo   Support This Project