dev@grizzly.java.net

Re: Grizzly based Sun RPC server/client filters.

From: Oleksiy Stashok <oleksiy.stashok_at_oracle.com>
Date: Tue, 28 Jun 2011 16:53:36 +0200

Hi Tigran,

sounds great, can we blog about this?
I wonder if we can also have Grizzly 2.0 based implementation.

Thank you very much for sharing this!

WBR,
Alexey.

On 06/28/2011 12:12 PM, Tigran Mkrtchyan wrote:
>
>
> Finally I am brave enough to publish our Sun RPC implementation code.
>
> http://code.google.com/p/nio-jrpc/
>
> There are two ways to use it.
>
> Direct usage from your code:
>
> final ProtocolFilter protocolKeeper = new ProtocolKeeperFilter();
> final ProtocolFilter rpcFilter = new RpcParserProtocolFilter();
> final ProtocolFilter rpcProcessor = new RpcProtocolFilter();
> final ProtocolFilter rpcDispatcher = new
> RpcDispatcher(_programs);
>
> final ProtocolChain protocolChain = new DefaultProtocolChain();
> protocolChain.addFilter(protocolKeeper);
> protocolChain.addFilter(rpcFilter);
> protocolChain.addFilter(rpcProcessor);
>
> // use GSS if configures
> if (_gssSessionManager != null ) {
> final ProtocolFilter gssManager = new
> GssProtocolFilter(_gssSessionManager);
> protocolChain.addFilter(gssManager);
> }
> protocolChain.addFilter(rpcDispatcher);
>
>
> or provided helper class:
>
>
> final int PORT = 1717;
> final int PROG_NUMBER = 100017;
> final int PROG_VERS = 1;
>
> RpcDispatchable dummy = new RpcDispatchable() {
>
> @Override
> public void dispatchOncRpcCall(RpcCall call) throws
> OncRpcException, IOException {
> call.reply(XdrVoid.XDR_VOID);
> }
>
> };
>
> OncRpcSvc service = new OncRpcSvc(PORT);
> service.register(new OncRpcProgram(PROG_NUMBER, PROG_VERS),
> dummy);
> service.start();
>
>
> The code used in out NFS implementation and since September 2009 in
> production serving 12K requests per second.
>
>
> Regards,
> Tigran.