On Jun 2, 2006, at 2:15 AM, Marcel wrote:
Another possibility is to provide a powerful viewing perspective on
a web app such as Confluence - for example, a navigator that can
provide a view(s) of the wiki unachievable via the Web. What those
views might be is an open question, but one idea is Craig's node
navigator, similar to the CNET news map ('The Big Picture') [1].
Editing could be introduced using Confluence's RPC interface (the
nice way to edit pages ;) ), but that could take a little bit of
time (ie I'm not sure how that will go with the Aug 21 deadline -
not saying it can't be done, just that there is doubt).
Alternatively it could load editing pages in a browser (internal or
external). That would emphasise the other advantage of ROP, as a
way to supplement a Web interface.
Doing updates via Confluence kind of goes against the goal of
demonstrating Cayenne graph management capabilities.
How about a program which displays a graph of the objects that
Cayenne has mapped, and browsing and editing of values? I guess
that could be done with regular Cayenne, but given that Cayenne's
ROP is easy to deploy (just add an ant task to build the classes
into a WAR and then deploy it to Tomcat) it might be a useful tool
for developers using Cayenne in web applications. After mapping the
database, a Cayenne developer would then be able to browse the
objects and their contents, and edit the database at an object
level. It seems achievable, unless I'm missing a major complexity
issue, and it is Cayenne focused. It would seem to be a useful tool
on its own, and at some point it could be incorporated into CM if
it moved to RCP. ROP functionality could be switched on and off
without difficulty, it is simply a matter of getting the context
from a different source. To me, that is the greatest advantage of
Cayenne ROP - a third tier can be introduced almost completely
transparently from the client's perspective. This kind of
application would emphasise that.
Correct about ROP transparency to the client app (as long as the code
is using ObjectContext interface without casting to DataContext or
CayenneContext). Still I don't see why would a developer ever bother
deploying a web service in these circumstances. In fact as a
developer I would rather use the ROP transparency advantage to do the
opposite - go to the DB directly when developing an ROP app, just to
avoid the hassle.
Still I like the generic graph viewer/editor idea. With frameworks
like Piccolo you can really visualize your objects and their
relationships, providing usability that regular table/form UI can't.
So maybe we do the same app that you suggested, but "position" it
differently (I can't believe I am using marketing speak :-)). Not as
a development tool, but as a framework for building a multi-user
visual graph manager based on Cayenne model. It can have
functionality similar to this
Visual Graph Manager:
* A generic GUI application that connects to Cayenne web service
* A panel to select a mapped named query from the list and run it
against the server
* A panel to display a graph of objects that expands when
relationships are clicked.
* An ability to select a node on the graph, and edit its properties
(we can omit relationship editing in version 1.0)
* An ability to save the whole thing to the server
* Change notifications - propagate the changes made to objects in one
client to other clients viewing the same graph (this is the cool
thing about ROP - it does that for you automatically with XMPP)
* A sample Cayenne model that demonstrates the above capabilities
However note that Piccolo doesn't work well with SWT (it "kind of
works"), so the client has to be Swing. IIRC Eclipse has its own
graph toolkits, although I know nothing about them and won't be able
to help if there are problems. Are you comfortable doing this with
Swing (in fact there won't be too much Swing as Piccolo does the
rendering)?
General comments?
Andrus