The purpose of JBoss Remoting is to provide a single API for most network based invocations and related service that uses pluggable transports and data marshallers. The JBoss Remoting API provides the ability for making synchronous and asynchronous remote calls, push and pull callbacks, and automatic discovery of remoting servers. The intention is to allow for the addition of different transports to fit different needs, yet still maintain the same API for making the remote invocations and only requiring configuration changes, not code changes, to fit these different needs.

More information

Product Features

  • Server identification - a simple url based identifier which allows for remoting servers to be identified and called upon.

  • Pluggable transports - can use different protocol transports the same remoting API.

    Provided transports:

    • Socket (SSL Socket)

    • RMI (SSL RMI)

    • HTTP(S)

    • Bisocket (SSL Bisocket)

    • Servlet (SSL Servlet)

  • Pluggable data marshallers - can use different data marshallers and unmarshallers to convert the invocation payloads into desired data format for wire transfer.

  • Pluggable serialization - can use different serialization implementations for data streams.

    Provided serialization implementations:

    • Java serialization

    • JBoss serialization

  • Multihome servers: servers can bind to any subset of available IP addresses
  • Security manager safe: security sensitive calls are made through java.security.AccessController.doPrivileged() calls
  • Automatic discovery - can detect remoting servers as they come on and off line.

    Provided detection implementations:

    • Multicast

    • JNDI

  • Server grouping - ability to group servers by logical domains, so only communicate with servers within specified domains.

  • Callbacks - can receive server callbacks via push and pull models. Pull model allows for persistent stores and memory management.

  • Asynchronous calls - can make asynchronous, or one way, calls to server.

  • Local invocation - if making an invocation on a remoting server that is within the same process space, remoting will automatically make this call by reference, to improve performance.

  • Remote classloading - allows for classes, such as custom marshallers, that do not exist within client to be loaded from server.

  • Sending of streams - allows for clients to send input streams to server, which can be read on demand on the server.

  • Clustering - seamless client failover for remote invocations.

  • Connection failure notification - notification if client or server has failed.

  • Data Compression - can use compression marshaller and unmarshaller for compresssion of large payloads.

Authors

A Special thanks to the following tool vendors that support the Open Source JBoss Remoting project:

Advanced EJB design & refactoring
for quick & easy J2EE development