Remoting 2


  • 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 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.