Netbula LLC                                                                   sitemapcontact us
about usproductssupportdownloadpurchase

White Paper
Online Tutorial
Online Demo
RPC Forum

Netbula JRPC™ J2ME edition released. JRPC J2ME edition enables enterprises to create compact and powerful ONC RPC client/servers on J2ME platforms such as cellphones, PDAs and other mobile information devices. JRPC is small, efficient and is based on and interoperable with industry standard ONC RPC. Compared to XML or CORBA/IIOP based RPC solutions, JRPC has advantages in areas of performance, memory footprint and complexity of development and deployment.

Quality and performance

Netbula RPC has been chosen by many well known US and international companies to build mission critical systems. Companies such as AOL, Booze Allan & Hamilton, FedEx, HP, Intel, Merril Lynch, Nokia, Nortel, NTT, Samsung, Sony, Siemens, Tektronics and others chose Netbula RPC for the quality and performance it delivers.

Netbula JRPC connects Java(tm) technology based applications to the C/C++ universe using industry standard ONC RPC

Correctly designed with OO methodology, small memory foot-print (less than 100K), high performance. Using PC hardware, tests show that JRPC can perform over 3000 calls per second across a LAN.

JRPCTM , for thin-client/server/servlet. JRPC J2ME edition allows RPC clients/servers running on on mobile devices.
Industry standard based, HTTP and SSL/TLS extended, 40-50% faster than RMI
Download JRPC J2ME http-rstat demo to your J2ME MIDP 1.0 capable cellphone, such as Nokia 3650 and Sony-Ericsson P802 (see more devices). This application calls the rstatd RPC server on a given host to obtain performance stats.(download source code)

Want cross-platform interoperability between Java(tm) and C/C++ server/clients? RMI/EJB is for Java(tm) only, CORBA/IIOP is costly. XML based solutions are slow, memory inefficient and cumbersome to program. Sockets are flexible, but too low level for fast development. What else?

Enter Netbula JRPC (Free Download and evaluation )

Netbula JRPC connects Java(tm) technology based applications to the C/C++ universe. With it, you can develop high performance PURE JAVA RPC clients and servers talking to servers/clients written in C/C++/Java(tm) running on UNIX/Linux/Windows XP/ and Windows CE/J2ME enabled mobile devices, using TCP, UDP or SSL/TLS, HTTP/HTTPS protocols.

Netbula JRPC is a complete port of the C version of ONC RPC to the Java(tm) platform. No native calls. JRPC is designed to communicate with new or existing UNIX/Windows ONC RPC server/clients. ONC RPC is the de facto RPC standard and is available on all UNIX platforms. For more information on ONC RPC on Win32, please see Netbula ONC RPC Windows NT/2K/XP/CE.

Porting existing ONC(Sun) RPC applications to Java(tm) is very easy, just compile the *.x files with jrpcgen, and you have RPC clients in Java(tm) instantly. Full interoperability with UNIX ONC RPC is one of the Netbula JRPC's advantages. To create RPC servers in Java(tm) is also very simple: just override the server implementation functions generated by jrpcgen. The Online Tutorial shows you how to create RPC server/client in 5 minutes.


JRPC Advantages

  • Standard compliant (RFC 1831, RFC 1832), interoperable with new and existing ONC RPC severs and clients.
  • High performance and small memory footprint
  • Low cost. ONC RPC is the de facto standard on UNIX, it is universally available.
  • Object oriented. Only we do it the right way! A well designed and easy to understand class hierarchy. Much easier to program than the original C version.

What is in the JRPC toolkit (Download)

All you need to do RPC in Java(tm):

  1. The netbula.ORPC Java(tm) class package in a jar file (lib/orpc.jar) . This package contains Java(tm) RPC library classes such as ClientUDP, ClientTCP, ClientHTTP, Pmap and XDR, which are the basic elements for ONC RPC. This package uses 100% standard JDK 1.1/1.2 functions. Every Java(tm) RPC application needs to import classes in this package.

  2. Documentation (doc/ netbula.ORPC API documentation.

  3. The Netbula jrpcgen IDL compiler (bin/jrpcgen.exe) This is a straight port of the original rpcgen. This application compiles *.x files into Java(tm) classes, which utilize the netbula.ORPC package to perform RPC functions.

  4. RPCINFO in Java(tm) (Screen shot)
    RPCINFO is a utility for quering registered RPC services. RPCInfo closely resembles the RPCInfo for Win32, which supports LIST, PING and EXPLORE functions.
  5. HTTP RPC Servlets and CGI script.
    With Netbula JRPC, there are two ways to call RPC with HTTP protocol. You can
    1) use the RpcProxyServlet servlet or a CGI program (C source code provided) which serves as a generic RPC gateway to the real RPC server (external) running on a server machine. For MIDP 1.0 devices, this is a must.
    2) create a true RPC servlet by extending the RpcSvcServlet class, the server implementation resides in the servlet itself (inproc).

    Java(tm) Servlet is an efficient and elegant solution that can replace CGI.

  6. Extensive set of sample programs
    To build these sampels are very easy, just add the orpc.jar library file to the CLASSPATH, make sure jrpcgen is in the PATH, then type make. To run the examples, you must first make sure portmapper is running. See the README.txt file for more details on running the the examples.
    To build and test SSL/TLS server/client, you need to either install the JSSE extension (for JDK 1.3 and below) or use J2SE 1.4.
  • api: demos the RPC API functions, such as rmtcall, broadcast call, etc.
  • msg: the Msg server/client/servlet/applet example. It also demos SSL server/client.
  • cservs: Msg and types client/server C source and makefile for UNIX.
  • filexfer: demos transfering multiple files in a single RPC call.
  • rpcinfo: simple command line version of rpcinfo in Java(tm)
  • pmapsvc: portmapper in Java(tm). Portmapper is like the RMI registry, RPC servers register their port numbers with the portmapper, and the RPC clients query portmapper to obtain the servers' ports. Portmapper runs on the RPC servers' machine. If your system does not yet have portmapper running, you can use this to start one. RPC server/client can also use fixed ports and by-pass portmapper registration and querying.
  • quote: the Java(tm) version quote server/client.
  • rstat3: Java(tm) client to rstatd, obtaining remote system performance info.
  • rusers: Java(tm) client to rusersd, obtaining info on logged in users.
  • types: a comprehensive test to send a complex data structure (union, linked list, array, variable length array, pointer, etc) back and forth.
  • http: call RPC thru ClientHTTP onto the RpcProxyServlet servlet.
  • bench: test programs that compare RMI and JRPC performance
  • applet.quote: use the quote client in an applet
  • j2me test server and client: J2ME ONC RPC client and server. Netbula JRPC for J2ME is almost identical to the J2SE version with minor restrictions.

    You need to download the Netbula ONC RPC for Win32 if you wanted to develop ONC RPC server/client on Win32 in C/C++ language. The ONC RPC For Win32 package contains the msg and quote server/client sample programs.

How to use the toolkit

  1. Add the orpc.jar file to the CLASSPATH
    For example, on the windows command prompt, this can be done by set
    CLASSPATH= %CLASSPATH%;d:\\lib\orpc.jar
    similar command can be used for UNIX.
  2. Compile *.x file using jrpcgen
    %jrpcgen quote.x
    This will generate Java(tm) source code for the XDR and client/server stub classes for the quote server.

    jrpcgen is  written in C, the package contains the executable built for Win32, binaries for other platforms such as SunOS are available on request.
    Note although jrpcgen is written in C, all the RPC code is pure Java(tm). By reusing the existing C code for rpcgen, we can be sure that the jrpcgen is fully compatible with rpcgen in terms of interpreting the syntax and semantics of the *.x files, the difference is only in the code generation phase.

  3. Use the generated client/server classes in step 2) (see samples )
    For instance, for RPC program quote version 2, the generated class name is quote_2.

Conditions for using the demo toolkit

You can download and evaluate the toolkit for 30 days.

The toolkit contains trade secrets of and materials copyrighted by Netbula LLC. You must NOT deassemble or decompile any of the compiled components such as orpc.jar and jrpcgen.exe, or otherwise reverse engineer them . You may not redistribute the toolkit to anyone without Netbula's written permission. All software contained in the demo will expire after a fixed date.


  • Netbula JRPC Development License: allows you to use the toolkit to develop RPC applications for Java(tm). 
  • JRPC Client Runtime License: allows you to distribute the netbula.ORPC package (orpc.jar) to client machines.
  • JRPC Server Runtime License: allows you to deploy the netbula.ORPC package on server machines.

NOTE: Netbula JRPC is a direct port of Sun ONC RPC independently by Netbula. Reverse engineering of Netbula JRPC is not allowed.

Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.

| Home | Products | Support | Download | Purchase | Site Map | Contact Us |
Copyright © 2000, Netbula LLC, All Rights Reserved.


Anyemail Anyboard JRPC ONC RPC PowerRPC