今天早上,我正在为一个自己喜欢的项目设置一个新工具,我意识到每个SaaS工具都遵循一个特定的模式:发送者代理。
例如,我有我的webapp,但它不能与数据库层通信(当然,也不应该),所以有一个代理在我的封闭网络中运行,它发布到webapp。
但是有没有更好的方式让我错过
编辑:让我用一个例子更好地定义我的术语。ServerDensity是我们使用的监控工具。对于我想要监控的每个专用设备,我都会编写一个发送器代理(即通过HTTP将更新发布到SD的插件脚本),因为SD不能直接与我的数据库通信。
我意识到这个问题可以简化为RPC问题。
发布于 2012-02-13 09:12:59
让我首先解决您提出的前提:“……每个SaaS工具都遵循一个特定的模式:发送方代理”。我希望您能向我推荐这份声明的来源。在我使用SaaS的经验中,我从未听说过这样的模式。
老实说,“发送者代理”听起来和“业务组件”或“服务器内核”一样宽泛和模糊。
我有我的nor应用程序,但它不能与数据库层对话(当然,它也不应该)
你在这里不是在比较苹果和苹果。Webapp是一个层,数据库是一个层。Webapp层必须与数据库层通信。Webapp可能有不同的层,webapp中的持久层将与数据库层通信。
...所以有一个在我的封闭网络中运行的代理,它发布到webapp。
这让它听起来就像webapp是一座没有生命的雕像,而代理人就是一个在它周围跑来跑去并向它扔泥块的雕塑家。Webapp正在接收来自客户端的请求,查询持久层(可能是缓存)并发回响应。无论您可能拥有什么代理,都会将数据发布到持久化或队列存储,而不是webapp本身。
阅读关于层与层的比较,它将帮助你更好地理解webapps和SaaS模型:What's the difference between "Layers" and "Tiers"?
更新
谢谢你的澄清,它极大地改变了问题。你所做的听起来很合理。您在特定系统的约束下工作,并且您必须满足插件合同。如果契约规定必须是HTTP POST,那么这就是您必须要做的。
关于如何做到这一点,有几十种方法。这只是几个例子:
https://stackoverflow.com/questions/9250248
复制相似问题