Ole Bulbuk wrote:
>The nice thing about containers is: There are so many to choose ... ;-))
>
>I am developing a single server application that should run (about) 24h a
>day. So far (for the more prototype stage) I have used Phoenix for the whole
>application and inside of it the Excalibur Component Manager (because of the
>document "Developing with Apache Avalon"). But now I would like to make the
>real production quality implementation but I still don't know which
>component/service container to use. The application should be shipped during
>January next year. So the container should have release quality then.
>
>The choice seems to be:
>1. Phoenix: The new official release has just come out and it
> seems to support the new service stuff and the
> new unified? configuration but seems to be
> oversized for a single application because it is
> build to host many applications.
> Or is this a feature that doesn't cost any
> performance during runtime (due to overhead)?
>2. Tweety: Only for educational purposes and pre-alpha.
>3. Myrmidon: Pre-alpha and specially made for Ant2.
>4. Fortress: Pre-alpha and needs a container itself.
>5. Merlin: Pre-alpha and needs a container itself.
> Where is the difference to Fortress when the
> unification of interfaces and configuration has
> been successful????
>
The main differences between Fortress and Merlin are related to the
handling of component dependencies. In both ECM and Fortress when you
lookup a compoent in a manager, you get back an instance of a type
implementing the interface classname supplied to the lookup operation.
Neither ECM or Fortress manage depedencies that the supplying component
may have. In the case of Merlin, a lookup request will return a service
reference backed by a fully assembled component. For example, in Merlin
- component A can depedend on component B, C and D - D can depend on
component E and B, etc. Merlin will take care of the assembly for you.
In the case of Fortress and ECM - the component supplying a service
cannot have depedencies.
Other differences relate to the meta-info and meta-data models. In ECM
and Fortress there is something called a Role Manager which is basically
managing configuration fragments as a means to better control and
reference configuration information. In the case of Merlin,
configuration infromation about a type and profiles of a type are
managed as a formal meta API. There is inital work in Fortress to
support the meta model whereas Merlin's implementation of the meta model
is complete. Fortress support for RoleManager means that it is much
easier to migrate from ECM to Fortress and they both share the same
conceptual foundations.
Both Fortress and Merlin support a common lifecycle extension mechanism
(refer excalibur/container for details). Respective implementations
differ in that a Merlin extension handler can be a full component with
their own dependencies. This reflects the high priority taken in Merlin
to isolate the mechanics of component assembly from the container system.
In terms of realse schedules - there is work currently going on to
provide web based container navigation and container distribution. The
navigation functionality allows an adminstrator to see the entire meta
model of component types and profiles, navigate across containers,
navigate to service descriptions, and even lauch web applications based
on meta information declared within service descriptors. The
distribution work is focussed on the ability to inport and export
service references between containers running on different machines and
enable late binding of these services - ie. the ability to create a
distributed service solution that crosses multiple organizations - with
full support for late activation irrespective of where a component is
within the network. Both the navigation and distribution functions will
come into the CVS progressively - in the meantime, immediate focus is on
validating Merlin 2 against some large scale distributed appications.
This validation process will impact interfaces and implememtations (not
dramatically, but sufficient to keep Merlin as pre-release for a few
more months). When release occurs, Merlin will be much more that a
container - it will be a servcie management solution on which existing
on-line remotely accessible services can be dynamically incorporated
into your applications.
Cheers, Steve.
>6. Plexus: Pre-alpha, specially made for Turbine and needs a
> container itself.
>7. ECM: The Excalibur Component Manager seems to be
> outdated now and needs a container itself.
>
>So is it true that writing new containers has become such a popular sport
>that there is none left that can be used without feeling guilty in one way
>or the other??? ;-)))
>
>So in January 2003 I would like to ship a *stable and modern* single server
>application but which container should I choose???
>
>Any help/opinion is welcome,
>
>Ole
>
>
--
Stephen J. McConnell
OSM SARL
digital products for a global economy
mailto:[EMAIL PROTECTED]
http://www.osm.net
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>