Activatable Jini services: Implement RMI activation
A fundamental shift is taking place in the systems architectures of major software vendors. Presently, the industry aims to deliver services via software in such a way that users can interact with these services virtually anywhere, at any time, from any device. This new paradigm has been compared to a dial tone; practically anywhere in the world, one can pick up a phone and immediately hear a dial tone. Software services like banking, insurance, news, inventories, sales leads, and travel schedules may soon be as accessible as that familiar hum. IBM's WebSphere, HP's e-speak, and Microsoft's Microsoft.Net are all different manifestations of this ambitious desire, as is Sun's Jini.
CentiJ: An RMI Code Generator
The CentiJ system synthesizes Java source code that funnels invocations through an RMI (Remote Method Invocation) based transport layer for distributed computation. The technique generates bridge pattern code (i.e., interfaces and proxies) that automate the creation of virtual proxies for message forwarding. We examine the tradeoffs between bridge implementations based on manual static delegation, automatic static delegation, and dynamic proxy classes. Advantages of the CentiJ technique include improved performance, type safety, transparency, predictability, flexibility and reliability. We then look at various methods for solving the disambiguation problem that arises when delegates have conflicting method signatures. Disambiguation can be automatic, semi-automatic or manual. CentiJ can automatically create a class that alters the interface to the bridge (using the adapter pattern).
Construct Java applications through distributed object technology
This article, which was originally published in the December
issue of the Japanese hardcopy version of JavaWorld, provides
an introduction to distributed object technology in general and
focuses on two specific types of this technology: Remote Method
Invocation (RMI) and Hirano Object Request Broker (HORB).
Through code samples and figures, you can decide for yourself
which distributed object technology works best for you.
Get smart with proxies and RMI
Find out how to use dynamic class loading to implement smart proxies in RMI. This article describes a method to accomplish that in a way that is transparent to the client code
Java Remote Method Invocation - Distributed Computing for Java
RMI connects to existing and legacy systems using the standard Java native method interface JNI. RMI can also connect to existing relational database using the standard JDBCÂ package. The RMI/JNI and RMI/JDBC combinations let you use RMI to communicate today with existing servers in non-Java languages, and to expand your use of Java to those servers when it makes sense for you to do so. RMI lets you take full advantage of Java when you do expand your use.
Learning Command Objects and RMI
In this article, I introduce the basic ideas behind command objects. In order to do so, I drag in an example application that provides a translation service from a remote server. After introducing this application, I will show how to use command objects to structure the remote method invocations (RMI) made from a client program. As part of this article, I will introduce a fairly general framework for encapsulating remote method calls in command objects.
Make room for JavaSpaces
The design of any space-based application typically revolves around one or more distributed data structures. These are data structures that exist in a space where multiple processes can access and work on them at the same time -- something that is often difficult to achieve in distributed computing models.
Seamlessly Caching Stubs for Improved Performance
This is the second of a three-part series on the Remote Method Invocation framework, or RMI -- a powerful framework for building distributed applications. RMI, which comes with Java 2, Standard Edition, lets two different applications communicate using method calls that look and feel remarkably like ordinary in-process method calls. Two problems with RMI, however, are that it's easy to repeat the same code in lots of different places, and to write an inefficient application that makes far too many remote calls. In this series, we discuss one way to organize the RMI-specific code of a client application to solve these two problems, by introducing command objects to encapsulate remote method calls.
The smart approach to distributed performance monitoring with Java
Smart stubs provide a lightweight, noninvasive mechanism for distributed performance monitoring and performance improvement through local caching. Although present in many commercial CORBA object request brokers, smart stubs are not standard in RMI or Java IDL. Read on to find out what you've been missing.
Write high-performance RMI servers and Swing clients
Learn how to supercharge your RMI servers by reducing the use of thread synchronization and implementing asynchronous callbacks via a configurable thread pool. Andy also demonstrates how to implement an efficient asynchronous logging facility and how to handle RMI callbacks to a Swing-based client application.