我今天早上正在为一个宠物项目设置一个新工具,并意识到每个SaaS工具都有一个特定的模式:发件人代理。
即。我有我的webapp,但它无法与数据库层交谈(当然也不应该),因此有一个代理在我的门控网络中运行,并发布到webapp。
但是有一种更好的方式我缺少
编辑:让我用一个例子更好地定义我的术语。 ServerDensity是我们使用的监控工具。对于我想要监控的每个专业设备,我编写了一个发送方代理(即一个通过HTTP发布SD更新的插件脚本),因为SD无法直接与我的数据库通信。
我意识到这个问题可以归结为RPC问题。
答案 0 :(得分:2)
让我先说明你所做的前提:“ ......每个SaaS工具都有一个特定的模式:发件人代理”。我很乐意邀请您参考本声明的来源。根据我使用SaaS的经验,我从未听说过这种模式。
嗯,老实说,“发件人代理”听起来像“业务组件”或“服务器内核”一样广泛而模糊。
我有我的webapp,但它无法与数据库层通信(也没有 当然不应该)
你不是在这里比较苹果和苹果。 Webapp是层,数据库是层。 Webapp层必须与数据库层对话。 Webapp可能具有不同的层,并且webapp中的持久层将与数据库层进行通信。
...所以有一个代理人在我发布的门控网络中运行 到webapp。
这使得听起来像webapp是一个没有生命的雕像,代理人是一个雕塑家,在它周围跑来跑去扔大块的粘土。 Webapp正在接收来自客户端的请求,查询持久层(它可能是缓存)并发回响应。无论您使用哪种代理,都会将数据发布到持久性或排队存储,而不是webapp本身。
阅读图层与层级,它将帮助您更好地了解Web应用程序和SaaS模型:What's the difference between "Layers" and "Tiers"?
<强>更新强>
感谢您的澄清,它显着改变了问题。你在做什么听起来很合理。您在特定系统的约束下工作,您必须满足插件合同。如果合同声明必须是HTTP POST,那么这就是你必须做的事情。
有很多方法可以做到这一点。这里只是几个: