Netbula JRPC fully tested on Google Android. Netbula JRPC is the high-quality ONC RPC for Google Android solution.
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
JRPC connects Java(tm) technology based applications to the C/C++ universe using
industry standard ONC RPC
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.
, 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
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
and evaluation )
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,
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.
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.
Tutorial shows you how to create RPC server/client in 5 minutes.
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):
- The netbula.ORPC
Java(tm) class package in a jar file (lib/orpc.jar) .
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.
- 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.
- 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.
- HTTP RPC
Servlets and CGI script.
With Netbula JRPC, there are two ways to call RPC with HTTP protocol.
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).
Servlet is an efficient and elegant solution that can replace
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
demos the RPC API functions, such as rmtcall, broadcast call, etc.
the Msg server/client/servlet/applet example. It also demos SSL server/client.
Msg and types client/server C source and makefile for UNIX.
demos transfering multiple files in a single RPC call.
simple command line version of rpcinfo in Java(tm)
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.
the Java(tm) version quote server/client.
Java(tm) client to rstatd, obtaining remote system performance
Java(tm) client to rusersd, obtaining info on logged in users.
a comprehensive test to send a complex data structure (union, linked
list, array, variable length array, pointer, etc) back and forth.
call RPC thru ClientHTTP onto the RpcProxyServlet servlet.
test programs that compare RMI and JRPC performance
use the quote client in an applet
test server and client: J2ME ONC RPC client and server. Netbula JRPC
for J2ME is almost identical to the J2SE version with minor restrictions.
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
- Add the orpc.jar
file to the CLASSPATH
For example, on the windows command prompt, this can be done by set
similar command can be used for UNIX.
- Compile *.x
file using jrpcgen
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.
- 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
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.