You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Vijay Kumar AB <vi...@hathway.com> on 2004/04/08 15:45:04 UTC

Framework using Merlin

Hi,

I have a small framework which I have developed, but it is using ECM, now
how easy is it to move on to Merlin? or Fortress?..

I was told that Merlin is a better way to go than Fortress., Any ideas?

The framework I have does not run as a service, but can be invoked using ECM
(role based). Is there any document which will help me in migrating to
Merlin

Thanks




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


Re: Framework using Merlin

Posted by Stephen McConnell <mc...@apache.org>.
Vijay Kumar AB wrote:

> Thanks for your reply,
> 
> But currently is there an equavalent for ECM in merlin? which I can use to
> the problem is I cannot expose the framework as it is confidential
> (company).

There is content dealing with migration (as opposed to emulation).  This 
is linked to the avalon-facility package which provides the bridge to 
pull based service acquisition.  This will need enhancement to handle 
property based resolution which in turn will require some updates to the 
underlying meta-model.

> Currently I am using a wrapper class which uses ECM to lookup for the
> component and returns the component to the clients who use the framework. I
> need to change that class to start using Merlin. Also I have used interfaces
> lie ThreadSafe which I don't find equvalents in Merlin. 

In merlin you declare this sort of thing via javadoc tags - for example 
the following class level tag declares the component as thread safe:

   @avalon.component name="anything-you-like" lifestyle="singleton"


> Looks to me like
> there is lot of work, but is it possible for you to give me a class which
> has main() method which uses some component manager to load a component by
> Role.

There is already the cli handler which is basically this.  There are 
also a bunch of embedded examples - from a simple main method, unit 
tests, sevlets, etc.

> I also find that the Selector, Role concepts are not found in Merlin.

Correct - Selector semantics mix component type information with 
component deployment information - which basically ties your component 
implement to a specific deployment scenario - which in turn breaks 
component portability.  The solution to this is to encapsulate the 
selection semantics within the scope of a composite component - which means:

   (a) selection semantics are moved to a specific configurable
       component
   (b) your component falls back to lock of a selector component

The avalon-facility will be updated to enable this scenario - which 
means that (a) your components will not be tied to a deployment scenario 
- but instead - they will be tied to a configurable selection service.

> How are the components identified? (Artifact??) I am not sure. Sorry but the
> documentation takes me no where.

Components are not normally identified by a component - instead you 
simply declare the dependencies that your component has and the 
container will assure that the dependency can be fulfilled before your 
component is deployed.

This is main semantic difference - merlin is pushed based, Fortress/ECM 
is pull based.  The work related to the finder facility is to enable 
reliable assurable pull-based service acquisition.

I'm hoping to cut a binary of merlin 3.3 sometime this weekend 
(providing I can resolve some issues concerning the recent version 
management updates).  Once that is out of the way I'll be able to really 
dig into the finder development and make sure we can provide not only a 
migration path - but also a gross-net-improvement in the end result.

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: Framework using Merlin

Posted by Vijay Kumar AB <vi...@hathway.com>.
Thanks for your reply,

But currently is there an equavalent for ECM in merlin? which I can use to
the problem is I cannot expose the framework as it is confidential
(company).

Currently I am using a wrapper class which uses ECM to lookup for the
component and returns the component to the clients who use the framework. I
need to change that class to start using Merlin. Also I have used interfaces
lie ThreadSafe which I don't find equvalents in Merlin. Looks to me like
there is lot of work, but is it possible for you to give me a class which
has main() method which uses some component manager to load a component by
Role.

I also find that the Selector, Role concepts are not found in Merlin.

How are the components identified? (Artifact??) I am not sure. Sorry but the
documentation takes me no where.

Thanks


----- Original Message ----- 
From: "Stephen McConnell" <mc...@apache.org>
Newsgroups: gmane.comp.jakarta.avalon.devel
Sent: Thursday, April 08, 2004 9:52 PM
Subject: Re: Framework using Merlin


> Vijay Kumar AB wrote:
>
> > Hi,
> >
> > I have a small framework which I have developed, but it is using ECM,
now
> > how easy is it to move on to Merlin? or Fortress?..
>
> About 60% of the Turbine Fulcrum components were migrated from ECM to
> Fortress in a single Sunday afternoon.  Another 10% was handled over a
> couple of afternoons - and the remaining 20% will be migrating with
> maybe a single days effort.
>
> A lot depends on the semantic assumptions that your components make.  Is
> the code base available on-line?  If so - I could provide a quick audit
> and let you know what the options are.
>
> > I was told that Merlin is a better way to go than Fortress., Any ideas?
>
> Fortress has been retired.  Avalon has taken a decision to consolidate
> all efforts on a single architecture, platform and container.  That
> consolidation is completely centered on Merlin.
>
> > The framework I have does not run as a service, but can be invoked using
ECM
> > (role based). Is there any document which will help me in migrating to
> > Merlin
>
> Not today - but the more information you can provide about your scenario
> the better/  There are several people here that have experience with
> both ECM and Merlin and can provide some rapid guidance.  Probability is
> high that a transition will be painless and rapid.
>
> Cheers, Stephen.
>
> > Thanks
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> > For additional commands, e-mail: dev-help@avalon.apache.org
> >
> >
>
>
> -- 
>
> |------------------------------------------------|
> | 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: Framework using Merlin

Posted by Stephen McConnell <mc...@apache.org>.
Vijay Kumar AB wrote:

> Hi,
> 
> I have a small framework which I have developed, but it is using ECM, now
> how easy is it to move on to Merlin? or Fortress?..

About 60% of the Turbine Fulcrum components were migrated from ECM to 
Fortress in a single Sunday afternoon.  Another 10% was handled over a 
couple of afternoons - and the remaining 20% will be migrating with 
maybe a single days effort.

A lot depends on the semantic assumptions that your components make.  Is 
the code base available on-line?  If so - I could provide a quick audit 
and let you know what the options are.

> I was told that Merlin is a better way to go than Fortress., Any ideas?

Fortress has been retired.  Avalon has taken a decision to consolidate 
all efforts on a single architecture, platform and container.  That 
consolidation is completely centered on Merlin.

> The framework I have does not run as a service, but can be invoked using ECM
> (role based). Is there any document which will help me in migrating to
> Merlin

Not today - but the more information you can provide about your scenario 
the better/  There are several people here that have experience with 
both ECM and Merlin and can provide some rapid guidance.  Probability is 
high that a transition will be painless and rapid.

Cheers, Stephen.

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


-- 

|------------------------------------------------|
| 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 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


Merlin vocabulary?

Posted by Amit Gupta <am...@in.fiorano.com>.
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