Hello Simon,
thanks for publishing your request on the dev list again.
As Greg noted, Magnolia is willing to build the new Magnolia 4.0 GUI
(code-named "GenUIne") on top of a complete webservice stack (using
JAX-WS 2.x [1] compliant webservices opposed to XML-RPC) to access the
backend. At least this is the current result of the technological
discussion about GenUIne. Before we also discussed a JSF based
approach, however, for the time being ruled it out since the WS
approach offers more possibilities and flexibility for the future, see
[2] for details.
The ultimate goal is to decouple the Admin Central from the core of
Magnolia: this way the Admin Central could have its own development
life-cycle and could be developed much more independently.
Furthermore, we would exactly met your requirements by letting other
applications access Magnolia in a standardized and interoperable
manner. One could even think about different GUI implementations, e.g.
as plain - again - JSP/JSF based frontends, rich web clients (à la
Adobe Flex) or statically delivered, full blown AJAX clients (whereas
the latter one is the approach we're investigating at the moment).
Back to your questions. So far, the only "rough architectural notes" I
can offer you are the following three scribbles outlining the request
life-cycle in the webservice scenario [3] and the JSF scenario [4].
Figure [5] outlines how we could even reach both targets leveraging
Java 5 annotations (especially JAX-WS annotations and JBoss Seam (?)
like annotations for JSF managed-beans).
As I said, those are only "rough" scribbles and quick ideas of mine on
how we could simplify the GUI development. Of course, these are early
stage drafts, however, I would be glad to see any discussion about the
architecture on the list and in the Wiki [6] as well.
Especially, I think we should discuss about the following topics:
* most important: webservice decomposition; which functionality is
exposed as a webservice, how coarse-grained or fine-grained should the
interfaces & methods be. E.g. we could expose the hierarchy manager as
a webservice and that's all we need, even though not convenient at all.
* can (or shall) we create an architecture in that every module can
collaborate in exposing its part of the Magnolia's model as
webservice? Or is this all handled by one single module?
* do we have to take additional steps to make the Magnolia
infrastructure (security, context, etc.) work with webservices?
Easiest would be (indeed without any modification) to have the
Magnolia filter chain as is handling the request before passing it to
a servlet that handles the webservice request. Thus having the full
context available in the webservice.
So far, my thoughts. I think much more questions will arise as soon as
we really start. Again, I would be very glad to see an ongoing
discussion on this topic.
FYI: I'm currently blogging about the new Magnolia GenUIne,
specifically the next post (to be published at latest next monday/
tuesday) will cover the technical status I roughly described here. I'd
like to invite you following those blog posts under http://vivian.steller.info/blog/
Best Regards,
vivian
[1] http://jcp.org/en/jsr/detail?id=224
[2]
http://wiki.magnolia.info/display/DEV/Genuine+-+Decision+Table+-+Server-Side+Technologies
[3]
http://wiki.magnolia.info/download/attachments/7241760/Webservices+Rendering+Scenario.png?version=1
[4]
http://wiki.magnolia.info/download/attachments/7241760/JSF+Rendering+Scenario.png?version=1
[5]
http://wiki.magnolia.info/download/attachments/7241760/Common+Architecture.png?version=1
[6] http://wiki.magnolia.info/display/DEV/Genuine+Technology+Discussion
Am 15.07.2008 um 17:36 schrieb Simon Goodchild:
Hi there. Greg suggested I repost this from the user list:
For a while now I've been wanting to access magnolia functions and
content via external applications, so I'm looking into what options
are currently available and any modules or core enhancements that
might already exist. The key requirement would be to communicate with
the magnolia backend from another application, possibly running on a
different server, in order to retrieve content, and to create pages
and users within the system. A mechanism like XML-RPC would seem to be
ideal for this purpose.
Greg mentioned that this is being looked at for inclusion in 4.0, but
sounds like that will be some time away. So my intention is to write a
module to add an XML-RPC integration layer to magnolia. Ideally I
would like to make this a useful base for whatever mechanism you have
planed, as this would avoid duplicated effort and also help with
long-term support and enhancement. So are there any rough architecture
notes or pointers that anyone could provide on how this should ideally
be implemented? And if anyone wants to collaborate on the work then
let me know also.
Thanks for any input,
Simon
----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/
----------------------------------------------------------------
----------------------------------------------------------------
for list details see
http://documentation.magnolia.info/
----------------------------------------------------------------