Good point regarding running Tomcat on a PHP server - not a realistic scenario for most sites.

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.

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.

I am more than happy to implement an application using ROP simply for example's sake, or to continue and hack around Confluence, but if we can come up with a 'proper' application of ROP that would be greatly preferable IMO.

Marcel

[1] eg: http://news.com.com/Report+Micron%2C+Hynix+e-mails+point+to+price-fix+scheme/2100-1006_3-6078970.html?tag=cd.top

Andrus Adamchik wrote:
[forwarding our conversation with Marcel about the best use cases for Remote Object Persistence to the list]


On Jun 1, 2006, at 8:28 PM, Marcel wrote:

I could probably write a Confluence plugin that makes a refreshPage method available via XML-RPC or SOAP which would do the job, but we are straying into 'when all you have is a hammer, every problem looks like a nail' territory...Confluence has a fairly full-featured RPC interface available which would be the logical choice for implementing an editor like this. We are proposing workarounds for what is really a very good system because our solution doesn't match the target. I understand why - the aim of the project is to get a good example app for Cayenne's ROP - but if we pursue this path we are going to end up with something rather awkward which won't make the feature look very attractive at all.

My preference would be to move to a target which is better suited to the tool at hand. Cayenne provides for direct DB interaction, making 'loosely wrapped' applications (in the sense that one can operate on the DB without having to crowbar in under the application) a much more suitable target. Anything which is written in an interpreted Web language - such as PHP or ASP - will be amenable to editing via Cayenne ROP because all the data is stored in the DB. Confluence seemed, prima facie, like a good target, but it has (IMHO) turned out to be too sophisticated. Cayenne deals with databases, not applications. I am not fussed what the target is, but given that we have a hammer, it should be a nail. I can think of a couple of targets off the top of my head - Joomla! open source CMS, phpBB bulletin board - but I think it would be a good idea to ask the dev list, or even the user list.


All real life systems are sophisticated, I don't see this particular problem by itself as too bad to turn us away from the Confluence implementation. However I agree with the bigger point - if we are building something intended to be used as an example, we'd rather choose a good one. I am not psyched about an interface to a PHP CMS either - I am still to find a PHP user who'd agree to run Tomcat on their server.

From my experience most systems that are using solutions similar to ROP (and early ROP adopters) are either client programs automating some business tasks, or applications that need to manipulate visual data in a way a web browser can't (think Java2D, picture management, maps, games and such).

The simplest thing would be to do a fake app from the first category. The cool thing would be to do something from the second or a mix as it would demonstrate why a Java client is preferred to the web UI.

Just recently I did a prototype for a client using Piccolo visualization framework [1]. It allows you to display object graphs, do zooming and panning and moving things around. So we can do a simple photo album application for instance.

Let's brainstorm other ideas as well, but we need to do it quickly as the project time is limited.


[1] http://www.cs.umd.edu/hcil/jazz/index.shtml
[2] http://www.cs.umd.edu/hcil/jazz/applications/index.shtml#java_piccolo

Andrus


Reply via email to