views:

67

answers:

1

What are the best-practice / industry standard technologies for the folowing requirements

  1. Allow transfer of business objects from one client / server to another
  2. Language and platform independent
  3. Supports Streaming to alow passing large data (e.g. a connected statefull conversation)
  4. Is Asynchronous in nature (doesn't block, allows monitoring progress)

SOAP workaround

1,2 point on SOAP web services, but 3 and 4 make it a little hard to implement (don't they?)

I was thinking of the following "hack", but I both don't like it, and I'm sure there is a better solution.

To support 3 and 4 the SOAP web service can have methods that pass the data in chunks, e.g.

void startObjTransfer(String objectId);
void addObjChunk(String objectId, ObjData currentChunk);
void endObjTransfer(String objectId);

Where ObjData contains a partial graph of the data, and knowledge of its location in the graph.

to better support 4 a method like this can be used to ask how much progress was made

void getObjTransferProgress(String objectId);

What do you think about the above? isn't there (hopefully there is) a better one? (even non SOAP)


RMI / COM / .NET Remoting / DCOM

Not language independed


CORBA

Well, no.


REST

Not answering 3 and 4, (SOAP + Buzz?)


AJAX / COMETD

Related to question: http://stackoverflow.com/questions/769764/asynchronous-web-service-streaming

Not sure how this will work, please explain


Message Queue?

Will that work for this purpose?

+1  A: 

I think Coucho Hessian should fulfill your needs (including streaming, platform independence...). You might also take a look Thirft from the Facebook guys.

Lars Tackmann