A Framework for Smart Proxies and Interceptors in RMI


News: A Framework for Smart Proxies and Interceptors in RMI

  1. A research paper entitled a 'Framework for Smart Proxies and Interceptors in RMI' has been published that describes a framework that can be used to transparently add (to application code) operations that are orthogonal to an application, such as logging, auditing, caching, QoS, fault tolerance, and security. Similar frameworks are used within .NET and JBoss.

    The paper illustrates the concepts and implementations behind such frameworks such as:

    1. Java Dynamic Proxy
    2. Interceptor chain design pattern
    3. Aspect Oriented Programming
    4. Use of all of above in designing flexible software
       system (one of which is object middleware like

    The paper is:

    A Framework for Smart Proxies and Interceptors in RMI

    Nuno Santos, Paulo Marques and Luis Silva

    CISUC, University of Coimbra, Portugal
    {nsantos, pmarques, luis}@dei.uc.pt

    Hope this helps theserverside.com community.

    Soumen Sarkar
  2. The link does not seem to work. Please post the correct one.
  3. The website seems to be down.
    You may download the paper from:

    Luis Neves
  4. A way to search research documents[ Go to top ]

    OK, the original PDF link is not working. It worked
    yesterday evening.

    This will almost allways work. Please go to NEC Scientific
    Literature Digital Library page for this particular paper:

    I would like to show a way for searching this kind of research documents.

    Step 1: Go to NEC Scientific Literature Digital Library


    Step 2: Search for this topic

    "Java Dynamic Proxy"

    Step 3: Examine search page and click on the link:

    A Framework for Smart Proxies and Interceptors in RMI - Santos, Marques, Silva (2002)

    Step 4: This takes you to the paper page:

  5. The idea is not new.
    I used this technique in the "smart client container". not only for aspects, but also for transport abstraction (http) and a loadtest tool. There is an interceptor, that "records" remote invocations into a compilable java source file. the invocations can then be replayed using a small tool, that starts a number of parallel task, all executing the invocations.

    It does not introduce any line of proprietary code to your client's source. just add the jar, modify the jndi properties and write a deployment descriptor (application-client.xml).

    Tested with jboss 2.4, 3.0 and websphere 4

    download at:


    Holger Engels
  6. Very interesting paper !

    There is an implementation of a similar system in the European open source project ObjectWeb: the CAROL library


    In CAROL there is a mechanism for RMI JRMP inteceptor features and implicit context propagation. This system is an "adaptation" of the omg portable interceptor concepts and interfaces.

    CAROL API is based on RMI IIOP architecture, this would be very interesting to follow this paper in order to build a new "well design" CAROL RMI JRMP library.

    I am going to investigate further this topic,
    thank you for this paper.

    Guillaume Riviere
    ObjectWeb Consortium
  7. I feel good that you found the paper interesting. I have
    realized that Java Dynamic Proxy and interceptors provide
    good tool for flexible software development. Another
    realization is that application software development
    projects can use XSLT for custom code generation. For
    example in my current project of J2EE based Network
    Management System, 66% of the *.java is generated.

    Anybody interested may checkout the paper I have authored
    on this topic:

    Model Driven Programming, published in XML journal of SYS-CON media, August 2002, Volume 3, Issue 8. The article proposed an extension of Model View Controller (MVC) architecture and showed how to implement in software development projects. The online version could be found at http://www.sys-con.com/xml/pdf/trees.pdf