You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Amit Gupta <am...@in.fiorano.com> on 2004/04/08 16:16:35 UTC

Merlin vocabulary?

Hi,

I am interested in understanding Merlin design (and implementation).
I understand server design fundamentals but am not familiar with Avalon 
container and component terminologies etc.  

I am interesting in understanding Merlin design and implementation 
before we (our company) decide on possible adoption of the framework.

But lack of structured design documents explaining various concepts
is severely hampering my progress (and hence adoption of Merlin).

I have read all that's available on Merlin/Apache's website and also
looked at Google results for Merlin etc... Have been following the
discussion thread "Avalon Framework Design" and have checked
out http://wiki.apache.org/avalon/AvalonDiagrams too..But all this
didn't help me understand the code to a level, from where I can
start feeling "at home" with Merlin/Avalon core sources.

Can someone point me to any document (or source of information)
which you find useful for explaining overall design of Merlin/Apache
Framework to relative "newbies".

And finally, recent comments from "Ole Bulbuk" are scaring me off
Merlin/Avalon.. Would love to hear any success stories (in commercial
deployments) from the community.

Thanks,
Amit Gupta


Fiorano MailServer
All incoming and outgoing mails are scanned for Virus and Spam
http://www.fiorano.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Merlin vocabulary?

Posted by Stephen McConnell <mc...@apache.org>.
Amit Gupta wrote:
> Hi,
> 
> I am interested in understanding Merlin design (and implementation).
> I understand server design fundamentals but am not familiar with Avalon 
> container and component terminologies etc.  

Amit:

Typically a developer of a component does not need to know anything 
about the Merlin design or implementation.  What developer does need to 
understand is the concepts related to the component specifications.  The 
component specifications deals with several notions:

deployment criteria
-------------------

This concerns the subject of how a component declares the things that it 
needs toward a container - under Avalon this is handled using javadoc 
tags that describe both deployment and runtime dependencies that a 
component needs to be fulfilled prior to deployment - information about 
this subject is available at the following urls

Overview:
http://avalon.apache.org/merlin/reference/component/descriptors/index.html

Detailed Tag Specification:
http://avalon.apache.org/meta/tools/tags/index.html

deployment artifacts
--------------------

Once a container has determined that everything a component requires can 
be fulfilled, the container can proceed with component deployment. 
Deployment leverages a number of "lifecycle artifacts" - object that are 
supplied to a component by a container. These include things like a 
logging channel, a context object, a service manager, configuration, 
etc.  The full set of deployment artifacts are described under the 
following urls:

http://avalon.apache.org/merlin/reference/component/artifacts/index.html

lifecycle management
--------------------

Deployment artifacts can be delivered to a component via constructor or 
alternatively via lifecycle stage delivery interfaces.  Information 
about the respect creation, runtime and end-of-life management 
strategies is available under the following links:

http://avalon.apache.org/merlin/reference/component/lifecycle/index.html

lifecycle management
--------------------

Finally - for the developer point of view there is one addition concern 
related to component lifestyles.  This subject deals with the 
distinction between thread-safe components - transient components, 
per-thread semantic - and how these are handled by the container that 
the component is executing within. A very brief listing is included in 
the following link:

http://avalon.apache.org/merlin/reference/component/lifestyle/index.html

container specification
-----------------------

Beyond pure component development is the subject of component deployment 
which is where container come into play.  An Avalon containers provides 
support for component composition - enabling for example the creation of 
composite components which in turn can be used is new application 
scenarios.  The full specification of the language used to write a 
container is available here:

Container Directive spec.
http://avalon.apache.org/merlin/reference/containment/directives/index.html

Configuration Override Spec.
http://avalon.apache.org/merlin/reference/containment/overrides/index.html

But the best source of getting going is the introductory tutorial:
http://avalon.apache.org/merlin/starting/tutorial/index.html


> I am interesting in understanding Merlin design and implementation 
> before we (our company) decide on possible adoption of the framework.

Beyond the above references - anything else into getting into 
high-powered component management.

   * embedding
   * facilities

Embedding is a subject you would be concerned about if your thinking 
about highly dynamic systems where you want to control the container at 
runtime based on external events.  To use Merlin in this context 
requires at least a basic understanding of the core sub-systems. 
Documentation on this subject is in progress and will be made available 
under the following link:

http://avalon.apache.org/merlin/merlin/systems/index.html

The second area "facilities" is a subject that deals with components 
that directly interact with Merlin meta-model.  Though model interaction 
facilities can change the entire personality of a container.  There is 
some initial documentation about facilities we are working on now - 
including JMX, JMS and HTTP handlers.  As things come together you 
should be able to find information about available facilities at the 
following link:

http://avalon.apache.org/merlin/extensions/facilities/index.html

> But lack of structured design documents explaining various concepts
> is severely hampering my progress (and hence adoption of Merlin).

The placeholder for this documentation is included below - and for the 
moment this is largely empty.  However, content is coming and a lot of 
the big picture stuff that I think your after will arrive in the coming 
weeks.

http://avalon.apache.org/merlin/reference/deployment/index.html


> I have read all that's available on Merlin/Apache's website and also
> looked at Google results for Merlin etc... Have been following the
> discussion thread "Avalon Framework Design" and have checked
> out http://wiki.apache.org/avalon/AvalonDiagrams too..But all this
> didn't help me understand the code to a level, from where I can
> start feeling "at home" with Merlin/Avalon core sources.

The core of merlin is the Avalon Composition API.  This is thing that is 
often referred to as the meta-model.  Thorough this API you can 
programatically create containers, add and remove components, control 
the deployment of components, change configuration, redeploy components, 
etc.  It's basically the heart of Merlin and the center of the 
model-driven architecture.  Pending completion of the docs related to 
deployment - it is work taking a look at the Javadocs for the 
composition package.

http://avalon.apache.org/merlin/api/index.html

In particular:

  * org.apache.avalon.composition.data

    Immutable data types used to describe containers and
    component deployment scenarios.

  * org.apache.avalon.composition.model

    The API that defines the model-driven architecture and
    through which the entire runtime environment is controlled.


> Can someone point me to any document (or source of information)
> which you find useful for explaining overall design of Merlin/Apache
> Framework to relative "newbies".

I'm hope that the above references (many of which are relatively new) 
will be of help.  In the meantime please ask questions and we'll be 
happy to answer them here on the list.

> And finally, recent comments from "Ole Bulbuk" are scaring me off
> Merlin/Avalon. 

There is another point-of-view concerning the comments from Ole BulBok. 
First of all - yes - he's having to deal with transition - and we are 
painfully aware of this.  On the other hand - we (Avalon) are 
consolidating on a single implementation platform - single architecture 
- single container.  This decision has detrimental impact on users who 
have invested in earlier Avalon container solutions.  However - at the 
same time this consolidation means that the problems that Ole has 
encountered will not happen in the future.  Avalon for a long time 
suffered from a divided community - that has ended - there is no longer 
a division.  Everything is now focused and grounded on one platform (for 
the first time in the history of Avalon).

> Would love to hear any success stories (in commercial
> deployments) from the community.

There are a number of large scale projects in the financial services 
sector that are basing themselves on the Avalon platform.  While I'm not 
in a position to provide details - I can say that common themes across 
these projects are:

   * short time-to-market
   * component reuse prerequisites
   * deployment simplicity
   * apache avalon community

If you need additional information don't hesitate to contact me off-list.

Cheers, Stephen.

-- 

|------------------------------------------------|
| Magic by Merlin                                |
| Production by Avalon                           |
|                                                |
| http://avalon.apache.org/merlin                |
| http://dpml.net/merlin/distributions/latest    |
|------------------------------------------------|

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: Merlin vocabulary?

Posted by Nader Aeinehchi <na...@aeinehchi.com>.
Hi Amit

 I appreciate Merlin more and more as I gradually learn more and more, but I
recognize the situation you are just describing.

1. I suggest the vocabulary of Merlin be simplified.

 Some of the naming is pretty difficult to understand.

For example, I could not associate "commissioning and decommissioning" with
anything until I looked up dictionary and then digged into the
implementation of Merlin.
Another example is that it is not easy for an end user differentiate
block.xml and config.xml?

2. The current documentation builds up on a very formal and difficult
language.  Furthermore, the documentation is too short.
A more relaxed formulation and few extra lines in each document would
greatly simplify the documentation.



Best Regards

--
Nader Aeinehchi
Aasenhagen 66 E
2020 Skedsmokorset
NORWAY
Direct and Mobile +47 41 44 29 57
Tel (private): +47 64 83 09 08
Fax +47 64 83 08 07
www.aeinehchi.com

----- Original Message -----
From: "Amit Gupta" <am...@in.fiorano.com>
To: "Avalon Developers List" <de...@avalon.apache.org>
Sent: Thursday, April 08, 2004 4:16 PM
Subject: Merlin vocabulary?


> Hi,
>
> I am interested in understanding Merlin design (and implementation).
> I understand server design fundamentals but am not familiar with Avalon
> container and component terminologies etc.
>
> I am interesting in understanding Merlin design and implementation
> before we (our company) decide on possible adoption of the framework.
>
> But lack of structured design documents explaining various concepts
> is severely hampering my progress (and hence adoption of Merlin).
>
> I have read all that's available on Merlin/Apache's website and also
> looked at Google results for Merlin etc... Have been following the
> discussion thread "Avalon Framework Design" and have checked
> out http://wiki.apache.org/avalon/AvalonDiagrams too..But all this
> didn't help me understand the code to a level, from where I can
> start feeling "at home" with Merlin/Avalon core sources.
>
> Can someone point me to any document (or source of information)
> which you find useful for explaining overall design of Merlin/Apache
> Framework to relative "newbies".
>
> And finally, recent comments from "Ole Bulbuk" are scaring me off
> Merlin/Avalon.. Would love to hear any success stories (in commercial
> deployments) from the community.
>
> Thanks,
> Amit Gupta
>
>
> Fiorano MailServer
> All incoming and outgoing mails are scanned for Virus and Spam
> http://www.fiorano.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org