I played around with:
http://hessianphp.sourceforge.net/index.php

I finally managed to send a "call" to cayenne, with auth. For this
test I used the cayenne-rop-server-tutorial.

After getting the proxy, i tried to call getEventManager() but it
fails with 500:
java.io.IOException: expected 'c' in hessian input at 72

But it should be the DataChannel I get, right?



On Sat, Aug 27, 2011 at 4:19 PM, Andrus Adamchik <[email protected]> wrote:
> And we can also work towards the same goal from another direction - 
> simplifying the protocol to make it easier to build "ad hoc" clients without 
> sacrificing the features. We've thought of that before, just never got around 
> doing it.
>
> Andrus
>
>
> On Aug 27, 2011, at 4:16 PM, Andrus Adamchik wrote:
>
>> First some background on ROP extensions. Tore did some experiments with 
>> Cocoa Cayenne [1], there was an old GSoC project exposing ROP server via 
>> SOAP [2], and then there was a recent Android success report (with the 
>> existing Java client).
>>
>> I suspect writing a meaningful client in another language is quite 
>> challenging. What ROP does at the high-level is providing a remote stub of 
>> the DataChannel [3], and a servlet session to allow connecting to the same 
>> server-side DataContext (or not... this can theoretically be made completely 
>> stateless on the server side). This appears deceptively simple. DataChannel 
>> has only 4 operations, (you can ignore 'getEventManager', so let's say - 3 
>> operations), but the number of object types passed through these 3 methods, 
>> and the complexity of the data structures made it prohibitive so far.
>>
>> So to create a wow factor, you'd need a PHP version of ObjectContext that 
>> can manage object relationships and build the diffs for the 'onSync' 
>> operation, provide lazy faulting of relationships, etc.
>>
>> I think whoever does the PHP implementation can start small though - just 
>> implement DataChannel.onQuery and a subset of queries, say NamedQuery (this 
>> is the simplest one and also the most benign from the server security 
>> standpoint). And bring back DataRows instead of full objects. Even that can 
>> be pretty powerful, and cause enough interest to get the rest of 
>> ObjectContext going.
>>
>> Cheers,
>> Andrus
>>
>>
>> [1] https://cwiki.apache.org/CAY/cocoa-cayenne.html
>> [2] http://svn.apache.org/repos/asf/cayenne/soc/trunk/cayenne-ropwsdl/
>> [3] http://cayenne.apache.org/doc/api/org/apache/cayenne/DataChannel.html
>>
>>
>> On Aug 27, 2011, at 3:41 PM, Christian Grobmeier wrote:
>>
>>> Hello,
>>>
>>> this early morning I dreamed of Cayenne (not kidding). I think it is
>>> possible to connect other languages speaking Hessian to Cayenne, for
>>> example PHP. This morning I imagined how it should be done. Lets
>>> assume we use PHP. Then we would "only" need a few classes, like
>>> CayenneRuntime for ROP Clients. We would need to use Dataobjects which
>>> can be translated to the Cayennebojects (they probably can be
>>> generated from the original classes). Then we need to serialize them
>>> and send em. This is for creating objects. I am a
>>>
>>> A bit more difficult is to send queries to Cayenne. How could that be
>>> done? The queries need to be serialized to a format Cayenne can use.
>>>
>>> There are some other difficulties to be managed. Can serialized Java
>>> objects be with the PHP Hessian lib and what happens with them? Are
>>> they plain PHP objects? If it is not possible, other ways can apply,
>>> for example using JSON as intermediate format. But is the
>>> serialization effort really worth the value?
>>>
>>> What are your thoughts on this? I think having Cayenne available for
>>> PHP - this would be *wow*. Best of both worlds, so to say!
>>>
>>> Cheers
>>> Christian
>>>
>>
>>
>
>



-- 
http://www.grobmeier.de

Reply via email to