Peter Firmstone wrote:
I'm thinking about is how to create the next distribution release artifacts, namely, creating a platform release artifact that excludes Activation. The Java CDC release artifact (zip archive) will be identical apart from lacking any depreciated classes or methods.

I think that trimming things for the sake of CDC should be focused into a CDC specific spec/artifact-set. If we splinter the release artifacts that we have today into separate groups, we risk having to do a lot of work to manage the impact this has on existing applications.

I had figured a Mahalo implementation should be included in the Apache Release (without Activation), I want to remove the dependency on Activation being present in the Classpath. I'll have to do this for a Java CDC release anyway.

Activation, being used, within the existing pieces of river, as references to the activation framework, does represent an issue. However, are you trying to manage how a CDC client references and uses river artifacts, or are you trying to manage how all of river can compile under CDC limitations?

Your use of Norm is interesting, I didn't want to include Norm in the base release. It sounds like your using Norm to control the liveliness of your exports, it also sound like these proxy's aren't registered with the lookup service, tell me more?

If you look at http://pastion.dev.java.net you will see a "PAM" based login mechanism which allows a client to send their login credentials for a particular machine in order to authenticate. There are now several different products that provide PAM plugins for linux that then utilize some external authentication system such as Active Directory.

My customers wanted to manage access to services using that mechanism. Pastion has a per call mechanism shown, but I almost always use a "factory" mechanism where the user authenticates and gets back a LeasedSmartProxy subclass. On the server side, I use java.lang.reflect.InvocationHandler implementations to hook the exported java.lang.reflect.Proxy object into the server. The LeasedSmartProxy wraps the java.lang.reflect.Proxy and the Lease object and just provides a delegation based implementation of the service interfaces for the client.

Many of my service APIs have streaming sockets needed for I/O based activities. For example, remote event monitoring happens through an ObjectInputStream that is proxied through the smart proxy on the client to a socket end point that the proxy construction provided the details of on the server.

My thoughts were:

   * A separate release artifact for the Activation Framework.
   * Platform release artifacts for Java SE and Java CDC.

Your comments are making me think:

   * A separate release artifact for the Activation Framework (phoenix,
     specific to Java SE).
   * Basic platform release artifact (With a very wide platform support
     base, one for Java SE 5+, one for Java CDC 1.11).
   * One or more Service release artifacts, I want Reggie to take
     advantage of the latest java language and concurrency features,
     however I want to be able to install other services without
     requiring the Activation Framework release to also be installed,
     I'm still figuring this bit out.

There are references to the activation framework in the services because they interact with it, rather than being contained by it. Rio, for example shows a way that the lifecycle and deployment constraints can be separated from the service itself. I don't know if we want to completely separate Activation or if we should just remove the activation framework and make the effort to point at Rio as a lifecycle management system that provides features that manage this issue in a way that allows a simpler POJO kind of service development.

Gregg Wonderly


Cheers,

Peter.

Gregg Wonderly wrote:
I use norm and mahalo all the time without activation. I use a leased smart proxy instead of DGC so that all of the details of proxy management are under my control and I use transactions without activation for mahalos lifecycle.

Gregg wonderly

Sent from my iPad

On May 2, 2010, at 8:37 PM, Peter Firmstone <[email protected]> wrote:

My reasoning for removal from the platform spec or making it optional: Activation is a Service implementation detail.

If there are no objections, I'd like to move it in the near future.

Regards,

Peter.

Peter Firmstone wrote:
Can we move the Activation Framework to a subproject of Apache River? So it isn't part of the platform?

The Activation Framework could be optional and include the following:

  * Phoenix - Activation Service
* Norm - Lease Service (This doesn't make much sense outside Activation)
  * Activatable Fiddler - Lookup Discovery Service
  * Activatable Reggie - Service Registrar
  * Activatable Javaspaces - Outrigger FrontEndSpace.
  * Mahalo - Transaction Service (We can create a Non-Activatable
    implementation for the platform)
  * Mecury - Event mailbox (We can create a Non-Activatable
    implementation for the platform)

These could be bundled together as an Activation Framework Release

Existing interfaces that are specific to Activation in the net.jini namespace (exclusive of net.jini.activation) could be depreciated and copied to another package namespace, giving existing applications time to transition.

Then the activation framework becomes something that runs on top of Jini / Apache River, rather than part of it, making Jini / River conceptually simpler to new application developers.

What are your thoughts?

Regards,

Peter.








Reply via email to