views:

347

answers:

3

Update: This question was inspired by my larger quest for mapping ontologically the whole software systems architecture enchilada. I've written a blog post about it, and hopefully it will help clarify what I'm after.


Many, many, many frameworks and stacks that's event-driven have too much variation for my little head to get around. Is there somewhere some resources that defines the outline of a reasonable Application Event Model, what events there are, and what triggers are most common?

I've got my own framework with a plugin and event-driven architecture, but I want to open-source it, and as such would like to make it closer to some common ground as not to alienate people.

So to clarify; this is for an application, meaning setting up the environment, the dependencies, the data sources (like databases), and being a MVC framework setting up the model, the view, launching controllers / actions, and in the GUI various stages of the interface (header, content, columns, etc.).

Ideas? Thoughts? Pointers? (And I've made it language and platform neutral at this point)

A: 

I'd have a look at Spring for Java, and the XT Framework Spring module (http://springmodules.dev.java.net/docs/reference/0.9/html/xt.html), which apparently supports event-driven architecture, as starting points. Spring has an MVC framework (inc. convention-based routing to controllers), db configuration (for Hibernate, particularly), plus full dependency injection support. There's also a mechanism in Spring for modularising your web apps, called Spring Slices. And it can be integrated with Jersey for building RESTful apps.

(Unfortunately, I tried to provide links to everything, but this place only lets new users post a single link. So you'll have to do some googling :) )

Thanks for the answer, but I don't want to be tied to any one technology, company or line of thinking. I'm after the events (names, values, triggers, actions, etc.) but that's not tied down. I've edited my question to reflect this, with a pointer to my blog post.
AlexanderJohannesen
+1  A: 

Heh. Most developers pick the major framework they like the tools for and stick with it. That's usually the winning strategy. I sympathize with your desire not to marry a single vendor.

Keep in mind however, that in developing your own framework, you're going to end up tied to a single vendor anyway. :-)

Is there somewhere some resources that defines the outline of a reasonable Application Event Model, what events there are, and what triggers are most common?

I don't think so.

From what I see, there are two kinds of models out there: those with a real framework with which you can make a working data entry dialog, and abstract meta-meta-models that are optimized for modeling themselves.

Try surveying a few current frameworks that have good documentation online and cross-reference the major terminology in a spreadsheet. It's an interesting exercise.

Marsh Ray
I've updated my blog post (link at the top) with some more of what you suggest. What a pain this is turning out to be. :) I'm happy with something more meta and fill that out, though, but one would think there's been tons of work done in this area.As to my own framework, well, I'm creating a Topic Maps based framework where this event model definition will be part of an open ontology that's shareable for all, provided others are willing to take a few extra steps and do the ontology-thang with their own frameworks. Hmm. I doubt it. THanks for the answer.
AlexanderJohannesen
+2  A: 

Hi. I read your blog entry, which btw I found an extremely interesting read, but... this question does not seem to reflect the broadness of the issue you are presenting there.

What you are after is very abstract and theoretical. What I mean to say is that if you tie any of those ideas to actual technology you will find yourself 'stuck' with it. This is why many of us are reluctant to use any framework. Especially the 'relabeled' products suddenly claiming to conform to the trend. We choose mainly on the basis of what appears to be needed to reach a predetermined result.

Frameworks (or tools in general) that target the application architecture domain distinguish themselves primarily by the amount of responsibility they are designed to take on. Spring for example only deals with the concept of decoupling and is therefore easily adopted and useable in many situations. The quality of any framework is expressed in terms of how well the designers of such frameworks were able to keep their products within the boundaries of that responsibility. Some front-to-end products will do exactly the opposite, code generators being among the 'worst' of them.

To answer your question at the top of this page, I do not think there is a framework that does what you want at this time and I do not think there is a single model of how applications (should) work. Keep in mind though that the application architecture domain deals with technology more than it does with concepts. In other words: If it works and meets the requirements, then you're pretty much done.

That said, you might find something of value in agent-based systems.

moin