Thinking framework is not something I'm accustomed to doing - but its been a topic earlier in the week that has been a source of some heated debate. I think I may be getting to the point where I understand why.

The purpose of this post is to present a theory - see if it has any merit.

The Avalon Framework
--------------------

For as long as I can remember the Avalon Framework has existed and it
has held a special place within the Avalon community. A great deal of attention has been paid to ensuring framework compatibility, its packages are known buy all developers - logging, configuration, parameters, service, activity and the deprecated component package. We are all familiar with Context, ServiceManager, Configuration, Logger, etc. Most of us can cut lifecycle code with our eyes closed. It is the definitive Avalon.


Abstract Semantics
------------------

Within the Avalon family of technology developments there are a number
of containers each using the Avalon Framework - the same classnames for
lifecycle artifacts, the same artifact delivery mechanisms, but in
specific areas quite different semantics.  These areas mainly concern
context and service lookup.  There are others areas such as
configuration management and lifestyle where subtle differences exist.
I think can be summarized by saying that the framework presents a number
of abstract semantic concepts presented though concrete interfaces and
classes.

When we look at the way different containers deal with these abstract semantics, we see varying levels of meta info usage. It seems to me that as you move more information into meta, you are directly reducing dependence on these abstract semantics while also changing where the valuable information is - instead of being encoded in an application, its in xinfo, xconfig, xprofile files (or whatever you use to hold meta-info in). At the same time the framework becomes less and less central and the thing that is "definitive Avalon" starts looking like nothing more than a delivery vehicle and a few utility classes.

I think it is safe to assert shift in value this creates a completely different "appreciation" of the role of framework as "product" between
different user communities.


Same pattern - different interfaces?
------------------------------------

I'm asking myself if interfaces defining an abstract semantics should
not be properly considered as conceptually abstract classes.  Imagine
for a moment that Context was declared as abstract interface (i.e.
requires a concrete specialization before being used in a public
interface). I'm going to call this a type-safe semantics.

Following this line of reasoning it seems to me that we will inevitably
end up with different frameworks sharing similar patterns, some common
utilities, and potential common non-abstract interfaces. What that means is that there should be room for and anticipation of a movement away from framework by heavily meta-driven products.


Conclusion
----------

As concerns right now - I think its safe to say that the meaning of
framework to one community is very different to the meaning in another -
and is probably the root technical issue underling the recent tension on
framework positioning and the associated web content.

Secondly, if the notion of type-safe semantics has merit it would
suggest that the framework as a common shared library maybe convenient,
it may also be an unwitting source of deception that we should at least be aware of.


On my first conclusion - I hope that this is a step toward understanding
or at lest explaining potential differences in perception.  As to the
second conclusion - I'm not sure where this line of reasoning is taking
me but I do like the notion of type-safe-semantics.

WDYT?

--

|---------------------------------------|
| Magic by Merlin                       |
| Production by Avalon                  |
|                                       |
| http://avalon.apache.org              |
|---------------------------------------|






--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to