0

我目前正在研究一个新项目,该项目涉及具有数据库独立接口(或尽可能独立 - 如 PDO),然后能够添加前端,可能使用类似 CodeIgniter 的东西,但应该可以使用其他前端,如 Windows GUI 或其他任何东西。

我正在考虑将 PHP SOAP 与 PDO 一起使用来放置数据库函数。这是一个好方法吗?有哪些陷阱?有没有人做过类似的事情,你有什么建议?

谢谢

4

1 回答 1

0

根据您的描述,我了解到您正在查看以下设置:

  • 一个基于 PHP SOAP 和 PDO 的应用程序,用于处理可作为服务或通过 API 访问的数据库操作,
  • Codeigniter / Windows GUI / 作为前端的任何其他东西,可以与数据库操作系统进行通信。

如果这就是您所追求的,那么这是系统中非常好的职责分离。它允许您在所有级别上保持应用程序/数据库独立于前端,这将使各种客户端的实现更加容易。它将基本上成为典型的服务器-客户端设置。

网络性能和可扩展性

您要考虑的最重要的事情是您将要处理的流量和可扩展性。如果您正在查看不在本地、快速延迟系统内的客户端-服务器通信,那么让客户端向服务器应用程序发送请求将在很大程度上占用大量资源。我的假设是,与本地系统调用相反,通信将主要通过某种互联网协议(可能是 HTTP)进行。它显然要慢得多且资源繁重。除非您的特定项目需要通过 Internet 进行通信(例如将移动应用程序作为客户端之一),否则我强烈建议在同一操作系统内或通过某种快速延迟网络来组织客户端-服务器通信。

代码性能

根据从客户端到服务器的调用量有多大,您可能需要一个非标准的 PHP 解决方案。使用 PHP 处理 Web 应用程序最常见的方法是让 Web 服务器(如 Apache)正确处理 HTTP 请求,然后将控制权传递给 PHP 以进一步处理请求(然后再次由 Web 服务器发送响应)。对于您的情况,最大的缺点是 Web 服务器(在大多数情况下)必须为每个客户端调用引导 PHP 解释器和数据库操作系统的所有源代码。从某个扩展点开始,这可能是一个大问题,并且会显着影响项目的成本。需要对服务器端应用程序进行适当的基准测试。如果您正在寻找一个足够大以关心此类问题的应用程序,您可能需要实现一个独立的 PHP 应用程序,该应用程序可以侦听特定端口,从而变成功能齐全的独立服务器应用程序。此解决方案不允许您利用常见的 Web 服务器,但允许您创建一个仅引导一次并随时准备处理客户端请求的应用程序。

设计

从设计的角度来看,要记住的最重要的事情是始终牢记哪个应用程序是服务器,哪个应用程序是客户端。对于系统的每个功能,您都需要确保正确的部分承担责任。不要在服务器端实现任何特定于客户端的格式或操作。您很可能希望以最原始的形式从服务器发送数据,并让客户端应用程序根据需要对其进行处理。唯一的例外是当处理部分的需求如此之大以至于客户端无法处理它时。移动设备的大量数据和客户端可能就是这种情况。在这种情况下,引入某种桥接子系统/应用程序会很聪明,

我希望这将帮助您对解决方案做出正确的决定。

于 2013-04-23T21:02:55.600 回答