Professional Joomla Templates Free

DERMI: Decentralized Event Remote Method Invocation


Dermi (Decentralized Event Remote Method Invocation) is a peer-to-peer (P2P), decentralized event-based object middleware framework built on top of a structured Distributed Hash Table (FreePastry) based overlay network. Based on an event-notification service that is the principal building block (Scribe), Dermi makes three innovative contributions: P2P call abstractions, a distributed interception mechanism, and a decentralized object-location service.


  • Peer-to-peer call abstractions include one-to-one calls, and one-to-many calls, which can be either synchronous or asynchronous in nature.
    • One-to-one calls do not use the event service, which fits more effectively in one-to-many calls. This kind of calls involve only two entities: an object client (stub) that sends a message directly to an object server (skeleton).
    • One-to-many calls, use the application-level multicast layer to send notifications. There exist several kinds of one-to-many calls.
      • Multicall is a remote invocation from one client to many servers (or viceversa). As client/server numbers increase, this approach scales better than having point-to-point connections to any interested client.
      • Anycall is a new form of remote procedure call that benefits from network locality. We take advantage of Scribe's efficient anycast primitive to create a call to the objects that belong to the same multicast group (object replicas that can provide us with a service, for example). The anycall client is insensitive to which group object provides data; it only wants its request to be served.
      • Manycall is a variation of the anycall abstraction. It sends a manycast message to several group members, continuing to route until it finds enough members to satisfy a global condition.
  • Distributed interception lets us apply connection-oriented programming concepts in a distributed setting. With this service we can reconnect and locate type-compatible interceptors at runtime in a distributed application. We extended Scribe's classes to natively support this feature.
  • Decentralized object location. We use the P2P overlay network substrate DHT facilities to build our object location service. It stores object-location information that can be used to find objects via human-readable names.


Dermi is the decentralized version of ERMI, and it benefits from the advantages of the structured P2P network it is built on top of to provide many additional services, like the already commented anycall and manycall abstractions, efficient direct P2P calls, and a native distributed interception facility.

Check out the code and learn more at:



Joomla Templates
Joomla Templates
Joomla Templates
Joomla Templates
Joomla Templates