[Java] Grizzly based Sun RPC server/client

# このエントリはTigranのメールを引用しています。
ようやくSun RPC実装コードをお披露目できるようになりました。

nio-jrpc
Java NIO based OncRpc library
http://code.google.com/p/nio-jrpc/

利用方法は2通りあります。
まず、直接使う方法。
        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); 

もしくは、helperクラスを使う方法。

    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(); 

このコードではI/O NFS実装を使っています。2009年9月から実運用しており、秒間12000件のリクエストを捌いています。

原文はこちら。
http://blogs.oracle.com/oleksiys/entry/grizzly_based_sun_rpc_server

0 件のコメント:

コメントを投稿