Artima.com has published a second interview with Sean Neville, previously the lead architect of Macromedia's JRun application server, in which Sean talks about the messaging approach used to implement remote method invocations in JRun, and situations in which enterprise developers may find Jini useful.
Read Interview with Sean Neville on Dynamic Enterprise Systems and Jini
Here's an excerpt:
The pattern has been implemented in many ORBs and servers, and in DCOM, and now .NET Remoting. It's probably best described in Pattern-Oriented Software Architecture, Volume 2. When the EJB container gets the invocation message, it passes it through all the filters, before it gets to the instance. So if you have a transaction interceptor, it gets the invocation first. It pulls off the transaction ID, and discovers the transaction attributes of this particular instance. It does whatever it needs to do for the transaction. It then passes it onto the next interceptor, which may put something on or take something off the invocation message. Some folks consider this a Pipes-and-Filters pattern, and in the default cases where the interceptors are hardwired that's a good match. The concept isn't too different from designs that application developers create with servlet filters or message sinks, though in this implementation the container filters are a bit more dynamic and can account for more dependencies than a servlet filter could.
What do you think of the comments that Sean made?