流,异步,语言独立技术,用于传输对象数据

时间:2010-01-06 16:35:24

标签: web-services soap streaming soa data-transfer

满足以下要求的最佳实践/行业标准技术

  1. 允许将业务对象从一个客户端/服务器传输到另一个客户端/服务器
  2. 语言和平台无关
  3. 支持Streaming以传递大量数据(例如,连接的状态对话)
  4. 本质上是异步的(不阻止,允许监控进度)

  5. SOAP解决方法

    在SOAP Web服务上有1,2点,但是3和4使它有点难以实现(不是吗?)

    我在考虑以下“黑客”,但我不喜欢它,我确信有更好的解决方案。

    为了支持3和4,SOAP Web服务可以具有以块的形式传递数据的方法,例如。

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

    其中ObjData包含数据的部分图表,并了解其在图表中的位置。

    为了更好地支持4这样的方法可以用来询问取得了多少进展

    void getObjTransferProgress(String objectId);
    

    您如何看待上述情况?是不是(希望有)更好的? (甚至是非SOAP)


    RMI / COM / .NET Remoting / DCOM

    不支持语言


    CORBA

    嗯,不。


    REST

    没有回答3和4,(SOAP + Buzz?)


    AJAX / COMETD

    与问题相关:Asynchronous web service streaming

    不确定这是如何工作的,请解释


    消息队列?

    这是否可以用于此目的?

1 个答案:

答案 0 :(得分:1)

我认为Coucho Hessian应该满足您的需求(包括流媒体,平台独立性......)。您也可以从Facebook人员那里看一下Thrift