What is DistributeMe

DistributeMe is a framework for automatic distribution of java code. DistributeMe operates directly on your java code,
the annotated interface is processed by the DistributeMe apt preprocessor, which generates distribution related code.

Those are the core features of DistributeMe:

  • Automatic build time code distribution
  • Transparent remoting - you don't even need to know that the call is executed remotely. 
  • Built with scaleability and high reliability in mind.
  • Multiprotocol support
  • Various call interception points
  • Support for different user/call based failing strategies and behavior.
  • Support for different routing strategies, incl. loadbalancing, sharding, backup and failover instances.
  • Support for mobile agents (experimental).
  • Built-in fast decentralized publish/subscriber eventing. 

DistributeMe consists of code generator which generates distribution code, that becomes part of your distribution package, the Registry which is a name / address resolving utility, and runtime utils used by the generated code.

DistributeMe is free and distributed under the MIT license.
Please watch the underlying video for the explanation of the working principles.

Features

Automatic build time code distribution

Transparent remoting - you don't even need to know that the call is executed remotely. 

Multiprotocol support

DistributeMe is designed as multiprotocol framework. Currently JAVA and JSON/RPC are supported fully, JAX-WS as prove of concept. CORBA could be added without problems, but the demand is yet to be found.

Various call interception points

Each call runs through a set of predefined points which can be intercepted to alter application's behavior as well as for diagnostic and debugging usages. Read more.

Support for different user/call based failing strategies and behavior.

Support for different routing strategies, incl. loadbalancing, sharding, backup and failover instances.

Support for mobile agents (experimental).

Built-in fast decentralized publish/subscriber eventing.

Concurrency control

Allows to limit incoming and outgoing concurrent traffic to/from an interface. Limiting incoming concurrent traffic to a service provides simplest form of overload protection. Limiting outgoing traffic from a client, provides fair access to a shared ressource among multiple clients.

Getting started

How To Get

Current Version

Current version of DistributeMe is 2.0.0. Check the 03 Change Log for details.

License

DistributeMe is free and distributed under the MIT license.

Recently Updated