gpt4 book ai didi

php - Python PHP SOA 设计

转载 作者:行者123 更新时间:2023-11-30 23:51:35 25 4
gpt4 key购买 nike

我正处于一个中等规模的应用程序的规划阶段——经过一些讨论和 session ,我和我的学院得出了一个结论:我们将在这个应用程序中使用 SOA。这是简要计划...

4 层架构..

|-------- database (NoSQL + SQL polyglot store)                --------|
|-------- python for all the heavy business logic --------|
|-------- php would talk to python using SOA and render HTML --------|
|-------- front-end (html+css+js) --------|
  • 我们将有两个 Python 实例(2 台机器),一个将是用于实时协作的 Tornado 服务器,另一个将服务于非实时业务逻辑。
  • PHP 将通过明确定义的 RESTful 接口(interface)与非实时机器通信。
  • 实时协作机将直接与浏览器中的JS客户端对话

我的问题是...

  • 您发现设计中存在任何直接缺陷吗?
  • 您推荐的用于 RESTful 通信的最佳传输介质是什么 - XML、JSON 或 protobuf (google使用protobuf)
  • 您认为在 Python 和 PHP 层之间进行缓存是一个好主意吗? PHP 不会进行任何直接的数据库通信——只能通过 Python 进行。
  • 您还有什么需要指出的吗?

--- 更新 ---

虽然我不被允许透露该应用程序的具体细节,但我想说的是,该应用程序是一个高度本质上是协作的,并处理浏览器中的大量文本编辑。类似于 Google 文档 - 但不完全一样。

PHP 层之所以重要是因为......

我们需要保持 Python 层完全独立于 HTML 模板。那层不应该甚至知道我们正在构建一个 Web 应用程序。原因是我们有多个模板。高级浏览器的 html 相当复杂有很多控件、鼠标手势事件和 ajax。适用于旧版浏览器的模板(IE-6,7 FF-2,3等)简单且“只读”——没有 ajax 交互。

我们还需要将第三组模板用于应用程序的 Adob​​e AIR 组件。该公司还计划发布该应用程序的移动和桌面版本(如果该应用程序可用)成功。

因此,我们无法在 python 层引入 HTML。我们能做的就是用另一个 python 层(用 django 或其他东西)替换 PHP 层来处理模板。但我们认为我们可以在 PHP 中更好地处理模板——因为它非常适合模板。我们不会添加任何复杂的逻辑——只是演示机制。

最佳答案

对你的想法的一些想法:正如 Mikko 的评论所提到的,PHP 层似乎是多余的。目前尚不清楚它实际将实现什么功能,特别是在它在服务层之上提供的抽象方面。现代应用程序设计倾向于使用 javascript+html 来实现 UI。由于您已经致力于通过 http 公开业务逻辑,因此它还必须完成所有输入验证和身份验证/身份验证,因此 php 中间件不会有太多工作要做。

实际的 RESTful 服务并不规定它支持的输出,而是尽力满足请求中的 Accept-Content-Type。至少在 Python 中,支持 json 通常是最简单的。 Protobuf 还很年轻,所以除非你真的需要它提供的严格类型,否则我会远离它。不过,从 self 描述的角度来看,XML 很有用,如果前端和后端是独立开发的,那么 XML 可能是首选。

关于php - Python PHP SOA 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6724004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com