I didn't get to this last night, always the problem, not enough time. First off the honest answer is that I don't know.
But here are some ideas.
Henry Storey is thinking about an alternative to EJB3 using RDF - somehoe. I assume this would be to do with the way that EJBs offer persistance services and make business objects available.
In other words he is thinking of rearchitecting the servies offered by EJBs so that it would become natural to look at, say, an object asking is this object a purchaser, if not we at least know it is a person, what else can we do with a person in this context?
But I am interested in the nature of services.
Persistance is just one. Attaching an RDF graph could be another.
Briefly reading the reference to A Practical Guide to Using an Aspect Library, I assume you have implemented something similar in HiveMind such that using the xml version of an AspectJ point cut certain classes can be identified as targets in a more succinct syntax than previously available in HimeMind.
So the first thing is that this in itself makes a difference as it cuts down on verbosity and increases clarity over the use of contribution points and their function.
It also seems that this is a neater path to configuring adaptors, but I am hazzy here.
The next thing would be the nature of contibutions. Is there any value in thinking about a contributed service as itself needing configuration that would depend on the interpretation of an RDF/OWL graph. In other words rules that define run time behaviour would be declared in RDF and be triggered by run time objects configured by HiveMind.
I'm trying to think of an example.
Let's say a person becomes a purchaser when they have something in their shopping cart.
Now we want to aim advertising (links etc to other goods and services we offer) differently to different users.
To the logged in user we offer advertising type A (aTA), to the purchaser we want to experiemnt, offering some aTb while others aTc. We create an advertising service AdvService, to deal with this. But we do a trick. This service reads in a bit of RDF, it is told to do so in HiveMind. The RDF is something we can easily change. It hold a little definition of what distinguishes different types of purchasers. In HiveMind we tell it that in needs to be injected with a person object.
In coding the service we inspect that object for whther it is a purchaser and if it is against the qualities we have defined in RDF that determines whether aTb or aTc.
aTa..c are collections of resources, so what better than to have them be RDF.
Typically they would be assembled from our RDF data store using a querry.
I expect we need another service in HiveMind to handle this! Let's call it RDFDataQuerry.
Since this is needed by AdvService it would alos be injected into it.
In code I guess we would do something like this, for aTb:-
RDFDataQuerry rdfDataQuerry = new RDFDataQuerry(aTb);
setAdvertisingView(rdfDataQuerry);
Anyway, I don't know if I am crazzy or if this would be really cool. I don't know how much this would use either RDF or AOP to best effect, either. But it is the sort of think I have in mind.
This example just cam to me now, but what I am actually interested in are issues of the relationship beteen different display (HTML view) elements in terms of rule like behaviour and validation.
So I would have to substitute a person object with some sort of (yet top be determined) document element, but I think the same things apply. I'm sure this can be pushed further.
Adam
On 16/05/06, adasal <[EMAIL PROTECTED]
> wrote:
Hi Stefan,
I will try to come back to you this evening (it seems rude to leave things too long).
Best,
AdamOn 16/05/06, Stefan Hübner < [EMAIL PROTECTED]> wrote:Hi Adam,
this is new stuff to me, but interesting. POJO-RDF-mapping makes great
sense. What are your ideas concerning a container like HiveMind in
such scenarios?
Stefan
2006/5/12, adasal < [EMAIL PROTECTED]>:
> Stefan,
> I am starting a new project at work and would be very interested on
> the principal that there is no time like the present.
> I am interested in what is being done, especially by Henry Story (see
> this thread Sommer: Semantic Web (Metadata) Mapper on
> [EMAIL PROTECTED] and his blog
> :- http://blogs.sun.com/roller/page/bblfish#sommer_semantic_object_metadata_mapper
>
> I would like to use HiveMind in this context, too. I expect dynamic
> service creation and binding depending on a semantic graph and would
> like to see where this goes. I would be very interested in your
> examples.
> Adam
>
>
> On 11/05/06, James Carman < [EMAIL PROTECTED] > wrote:
> > I would be very interested.
> >
> > -----Original Message-----
> > From: Stefan Hübner [mailto: [EMAIL PROTECTED] ]
> > Sent: Wednesday, May 10, 2006 6:42 PM
> > To: [email protected]
> > Subject: Re: AspectJ Support in HiveMind...
> >
> > Hi James,
> >
> > 2006/5/10, James Carman <[EMAIL PROTECTED] >:
> > > All,
> > >
> > > I would like to include AspectJ support into HiveMind. Basically, what
> > I'm
> > > looking to do is inject HiveMind-managed resources (services and maybe
> > even
> > > configurations) into singleton AspectJ aspects. I was wondering how you
> > > guys think I should go about it....
> >
> > supporting AspectJ is a promissing path to go! AspectJ5 in conjunction
> > with Java5's annotations feature is very powerfull and combining that
> > with a container opens very nice ways to design software. Just look on
> > Spring2 and their effort incorporating AspectJ support. To me,
> > HiveMind *needs* decent AOP support to remain a container framework of
> > choice for the next couple of years.
> >
> > Howard's thoughts on HiveMind 1.2 and Java5 are going in a direction
> > where direct incorparation of proper AOP features are going to become
> > possible.
> >
> > I made some promissing experiments with AspectJ and HiveMind to inject
> > HiveMind services into aspects. And further to use aspects to inject
> > HiveMind resources into normal POJOs where creation and configuration
> > via HiveMind is not possible - think about servlets and such. All of
> > that using AspectJ's great load time weaving feature. Are you
> > interested in those examples?
> >
> > > ... Here's my idea. Create a configuration
> > > point to let folks contribute to:
> > >
> > > <contribution configuration-id="aspectj.aspects">
> > > <aspect class="the aspect class is here">
> > > <!-- BuilderFactory-like stuff here -->
> > > </aspect>
> > > </contribution>
> > >
> > > Then, have an eager loaded service with an init method actually perform
> > the
> > > injection(s). What do you guys think?
> >
> > What I don't get is the example you gave, James. You'd like to
> > instantiate aspects and provide them via contribution - but for what?
> > how would you going to use those aspects then?
> >
> >
> > If you're going to look deeper into AspectJ support, that would be a
> > pleasing direction for HiveMind to evolve. It would be my pleasure to
> > provide some help to get it going.
> >
> >
> > Stefan Hübner
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
