这将是一个非常开放的问题;但在这一点上,这就是我必须要开始的。我们目前有2层应用程序设计。这意味着我们有一个连接到我们的SQL Server的C ++ API,并执行典型的数据库操作,如插入/更新/查询。我们希望将其设置为3层设计,并将某种应用服务器置于中间位置。目标是随着我们获得更多负载;我们不需要处理DB作为瓶颈。设计是让用户的所有通信都发生在“中间层”,然后转到数据库。这将消除我们将复杂的业务规则放入数据库触发器并让中间层处理它们。
我还不清楚的是那个中间层看起来像什么。它必须是某种WebService吗?所有客户端使用HTTP与中间层建立连接,然后我们将其传递给数据库?你可以告诉;从C ++ API到Web服务;这是一个很大的转变。我们将非常感谢您有任何资源帮助我了解这个主题。谢谢!
答案 0 :(得分:0)
由于您已经拥有连接到我们的SQL Server并直接对其执行操作的C ++ API,因此这似乎已经适合重构到您设计的中间层。此代码已根据某些规则操作数据库,这正是您的中间层应该执行的操作。
剩下要完成的工作是将表示逻辑与此API分离,并允许它驻留在自己的应用程序中,这些应用程序连接到中间层C ++ API以便由它处理数据,存储在数据库中并返回结果以显示给用户。
至于表示层和C ++ API之间的连接,根据您的要求,您可以使用专有通信协议(例如,通过TCP / IP或RPC实现)或HTTP,一个中间“中继”Web服务,它从服务器调用您的C ++ API并将结果返回给调用者。 HTTP选择虽然最初实现起来比较快,但有一些方面需要考虑,例如默认情况下它是无状态的(你需要自己实现用户会话)并且必须与代码保持同步,当公共方法在开发过程中发生变化时。