Great list Matt!
Here are my thoughts based on the discussion/questions I see on the dist lists,
and talking to other users.
These bullets you mentioned I think can all be addressed via plugins
- Flexible framework for building server assemblies that include only the
components needed for an application
- Dynamically binding needed elements
- Dynamic Console for managing installed artifacts
What makes me think we need to simplify the plugin architecture and remove as
many infrastructure requirements as possible. For example, can we get away from
the need of having a maven repository for housing the plugins? ultimately, what
is a plugin? can it be served and installed in an alternative way? The
infrastructure for distributing plugins should be easy to use and easy to set
up. Consuming plugins should be as easy and simple as possible as well.
If we have the alternative to install components via plugins, then we should
also be able to uninstall those very components (and dependencies when
possible) the same way by removing the plugins. Maybe we could use a tool for
listing, enabling, disabling, removing and even exporting plugins and plugin
bundles (a plugin made of many other plugins already installed). These plugin
bundles may help clone servers for setting up clustering which is another big
beast to tame.
If we manage to distribute along with the plugin all the necessary administration bits
(portlets and command line option when possible) then Geronimo could be known as, quoting
Jeff, "...a pluggable lightweight container with management..."
In parallel, I also think we should pay some attention to the complexity of the
deployment plans. I would even include some configuration files in the same bag. I know
annotations play a big role in simplifying the plans however plans would still be around.
I think we should make Geronimo to assume/propose more "defaults", or to say it
in a different way, less strict. The other way might be to provide some sort of tool (a
deploy wizard!?) that will ask for additional input while installing the application. I
am not a good fan of this option, quite the opposite actually.
We've been trying to fill the deployment plans "know how" gap with the
documentation, we covered schemas, plans and provided sample applications. It is clear we
are not answering all the questions there.
Now that we passed the certification I think we should spend some time in
overall flexibility and usability.
Cheers!
Hernan
Matt Hogstrom wrote:
Seems like the dev list has been a bit quiet lately as I know many
folks have been working on getting 2.0 done and through some additional
testing for Axis, fit and finish stuff, etc. Although important, its
not exactly the next generation so I thought I'd start this thread to
get some ideas formed around the next step for AG. These are just my
thoughts and I'm soliciting input for ideas and discussion.
I thought I'd put my thoughts in the form of a user describing what they
need from Geronimo. This is based on input I've heard from several
folks as well as users and includes some of my own ideas as well. It
feels like we've been chasing the specs for so long that we haven't
fully realized some of the other awesome ideas people have had. Aaron's
plugin architecture is workable but not fully consumable, Dain's
repository work and a host of other ideas. I think now is the time to
have some fun. To that end here is the list of requirements.
Geronimo 2.1 Punch List
*Flexible framework for building server assemblies that include only the
components needed for an application*
This means that a user could either build a custom assembly with only
the needed parts or, alternatively, could run with all parts available
but only start what they need. The model is up to the user to decide
based on their unique requirements.
*Dynamically binding needed elements*
Using the plugin architecture and Maven repo concepts one could install
a needed element into the server by simply pointing to a remote
repository and installing the element. Other artifacts needed for
execution would be obtained automagically from either the network or a
shared filesystem as needed and based on the policies provided by the
user. The default mode of operation would provide the best user
experience.
*Dynamic Console for managing installed artifacts*
Improve the console framework to allow installed artifacts to register a
portlet for managing the configuration. For highest level of
flexibility a component would provide the required portlet elemtns and
we would bind them into the navigation framework and security
infracstructure. We'd need a good set of docs and samples to help
people in deploying this easy. Ideally we would start with a minimal
assembly and a mgmt console so that new functions could be loaded
through the console. I'm not sure that we'd need to have an assembly
smaller than minimal at this point since we'd need a web container for
the mgmt console anyway.
*Cluster Aware Mgmt Application*
For users that want to federate a number of servers together we need a
clustering solution that will allow for configuration of nodes as well
as autodiscovery. This requires a clustering element for Geronimo that
takes into account multiple clustering users (services). I think Jeff
has some of the foundation in GCache.
*SOA Assembly*
It would be great to have a SOA assembly (that works in a flexible way
:) with AMQ, ServiceMix and a Tx Manager. A LOT of people I talk to
want something simple like a Tomcat and a Mule...let's give it to them.
*Tooling*
A really huge part of what people have talked about as being important
is tooling integration (I've heard mostly about Eclipse and NetBeans).
*OSGi and Spring*
This has been kicked around for a long time. I was talking with someone
who said they needed a flexible runtime that would allow them to wire in
OSGi bundles (seems like the traction is increasing) and use Spring for
the configuration. People smarter than I can weigh in on this area but
this is seems to get Independent Software Vendors (ISV's) all hot under
the collar. If we could deliver this with the flexible server stuff I
think we'd have a huge swell of interest.
Other thoughts?