节俭听起来很棒,但我在RPC框架(如HttpServlet)中找不到一些基本的东西。我找不到的例子:会话管理,过滤,上传/下载进度。
据我所知,缺失的东西可能是一个管理层的顶部。如果是这样的话,是否有这样一个层的例子?也许是AOP (面向方面的)?
我无法想象这样一个图层能编译成所有的语言,这就是我所缺少的。以会话管理为例,可能有几个客户机都需要进行一些身份验证,并将session_id传递给每个RPC。我希望所有语言都能得到类似的API。
任何人都知道有一个针对的管理层
发布于 2015-02-17 23:35:26
所以节俭本身不会对你有很大帮助。我也有过类似的愿望,并有一些建议:
1.将管理对象放入IDL中。
只需向所有服务方法添加一个api令牌或公共传输数据结构作为参数。将其设置为参数id 15,这样即使在中间添加其他参数,它也将始终是最后一个参数。
作为处理程序的第一步,您可以验证/存储/做任何处理额外数据的操作。
它的优点是它在任何节俭支持的平台上都是有效的。
2.在http上使用节俭
如果您使用http作为您的传输,您可以包括任何您想要的数据作为http标题,节约内容作为主体。
这通常需要为每个用于注入数据的平台创建一个自定义http客户端,而在服务器上则需要一个自定义处理程序来使用数据,但这两种处理程序都难以做到。
3.破解协议
可以创建自己的自定义协议来包装另一个协议并注入自定义数据。看看多路复用协议在大多数语言的节俭库中是如何工作的:c#在这里。,它将方法名通过电线发送为service:method。多路复用处理器解压缩这种编码,并将其传递给适当的处理器。
我使用了类似的方法在方法名内编码任意的键/值对(如http标头)。
这样做的缺点是,您需要为将要使用的每个平台编写一个更复杂的扩展。一次。语言的工作原理各不相同,但只要你想出一次,它就足够简单了。
这些只是我的几个想法,我相信还有其他的想法。节约的好处是各个组件如何相互解耦。如果您有特殊需求,您可以将它们中的任何一个替换出来,因为您需要添加特定的功能。
https://stackoverflow.com/questions/27291016
复制相似问题