Aspect-Oriented Programming Features in JNode JVM

Hi,
anyone has tried a new OpenSource Framework called AspectWerkz, promoted by BEA ? It's very interesting, and is an AOP Framework that extends (via ByteCode enhancements) any Java Class running with it ... another framework similar (but different in approach) is AspectJ, from Eclipse.

I think this could be a big improvement to the general architecture of the OS itself (but I think at a Performance lowering), layering the coupling between Components of the System.
Otherwise the problem will be that (also with the JNode Installer) after many libraries, packages, etc the System could be difficult to mantain.

Think of this for ex. to imposing a System Logger , Security Control, etc to any application that Runs in the System, in dynamic, and WITHOUT directly interfacing with the classes of that framework ... great !!

BEA is promoting that project to integrate AOP funcions in their JVM JRockit ... this could be a great idea, but in JNode the OS itself is a JVM so why don't try to make this too ?

Comments ?

Bye,
Sandro

Security Risk

I think AOP is not only great to add security, but also to remove it. In order to prevent this, one of the following three restrictions must be taken:

A) Aspects can't be weaved into security-sensitive parts of the system. This would reduce the applicability of AOP and add complexity.

B) Verify the aspects to ensure security isn't lowered (similar to java bytecode verification, but much more complex). Automatic program analysis and the like is still a much research area, I think.

C) Restrict the classes / objects that are able to weave AOP stuff using a custom WeavePermission that unstrusted code isn't assigned (-> can't weave malicious code into system).

But maybe some other protection mechanism is already implemented in AspectWerkz?

Sebastian

Service-Oriented Architecture (SOA)

Hi,
but if instead of AOP we'd like to use something simpler ? probably AOP in for the future.

In these weeks I'm looking at Jakarta HiveMind: for example they use a System of Proxies (to Interfaces), and XML Config files with Interceptors to loose coupling the various Components of the System (I see this mainly for Logging, Security and Performance Monitoring, without our Components to know all of this).
Or we could write something similar if not using this directly.

But to protect the use of some High-Risk Classes I think we would implement this in the ClassLoader (for es. the Classes that manage the Hardware Resources, to prevent instantiation from Non-JNode Packages).

What do you think ?

Bye,
Sandro

Re: SOA

Hi Sandro,

yes I'm a friend of SOA too. I prefer to use Jini technology from Sun Microsystems. It also uses proxies but is mainly used to create network services.

I'm currently working on a proposal on how to use Jini even for local services in Jnode. This would remove the overhead of handling the remote stuff for services like a video driver but transparently integrate services from the network.

In order to prevent use of unsafe classes (e.g. for memory access) Jnode already uses the Java visibility (private, protected etc.) and permissions, I think. This should not be in the classloader.

Regards.

Sebastian

I'd like to contribute to your idea of applying Jini in JNode

Hi Monochromata

I'm very interested in your idea of incorporating Jini's mechanism in JNode.

I'm a Jini guy Smiling I have some experiences on Jini-based projects, and ever translate a book about Jini into Chinese.

Please tell me more! You may reach me at with [email protected]

Birkey Ma
----------------------------------------------
Beijing, China
----------------------------------------------
Things should be made as simple as possible -
but no simpler. (Einstein)

Jini and Jnode

I started writing an article about this topic some time ago but didn't publish it yet.

The main idea is to replace the plugins by Jini services. This would allow services from the network to be integrated transparently.

I haven't been working on the article much because Jini was licensed under the Sun Community Source License that would only have allowed to incorporate a binary of Jini into Jnode. Recently Sun decided to open source Jini and it will likely be released under an Apache Software License in March.

I think I will resume work on the article within the next week. Implementation will probably start with checking the networking classes of Jnode. E.g. I think Jnode doesn't yet support Multicast ...

Nice to hear there are other Jinians around Smiling

Sebastian

Your Jini Article

How exciting I am when I heard about your idea of incorporating Jini's service into JNode. Talking about your article, is it for a academic conference? or something else? If you're mean to publish it in an international conference, I'd like to contribute some effort, is it possible we cooperate on it? I'd like to code and discuss with you.

Birkey Ma
----------------------------------------------
Beijing, China
----------------------------------------------
Things should be made as simple as possible -
but no simpler. (Einstein)

Article

First and foremost the article is for my own website Smiling Nonetheless I think it is possible to place a link on java.net when the article is finished.

There are also conferences called Jini Community Meetings (JCM) where it would be possible to present on the topic. The last JCM (http://www.jini.org/meetings/eighth/) was in December in London, the next one will not be before summer and I suspect it will be in the US again.

I really welcome your contribution. I will get the article out as soons as possible. Then we can start discussing and coding.

Regards
Sebastian

How're you getting along with your article on Jini

Hi,

Is that finished? When could I read it and start our discussion?

Birkey Ma
----------------------------------------------
Beijing, China
----------------------------------------------
Things should be made as simple as possible -
but no simpler. (Einstein)

End of the week

Sorry, for the delay. I'm currently working on too many projects. I'll finish the article until end of the week.

Regards.

Sebastian

I'm looking forward to your article

Great! I'm looking forward to your article. Please infor me once you finish it.

Birkey Ma
----------------------------------------------
Beijing, China
----------------------------------------------
Things should be made as simple as possible -
but no simpler. (Einstein)