2011-08-07 80 views
0

这将是一个相当开放的问题;但在这一点上,这是我必须从头开始。我们目前有一个2层应用程序设计。这意味着我们有一个C++ API连接到我们的SQL Server,并执行典型的数据库操作,例如插入/更新/查询。我们正在寻找使这种三层设计与某种应用服务器坐在中间。目标是当我们获得更多的负担;我们不需要处理数据库瓶颈。设计的目的是让所有来自用户的通信都与“中间层”一起发生,然后进入数据库。这将消除我们将复杂的业务规则放在数据库触发器中并让中间层处理它们。
我还不清楚的是中间层的样子。它是否必须是某种WebService?所有客户端都使用HTTP连接到中间层,然后将其传递给数据库?正如你所看到的;从C++ API到web服务;这是一个相当大的转变。任何资源,你必须帮助我让我的主意继续这个话题将不胜感激。谢谢!需要帮助以3tier设计开始

+0

当你说这将是一个开放式问题时,你说得很对:-)让我们从几个问题开始。你在建什么样的应用程序?这是一个Web应用程序吗?你提供什么样的API?什么不工作? –

回答

0

由于您已经拥有连接到我们的SQL Server并直接对其执行操作的C++ API,因此这似乎已成为适合您的设计中间层的重构对象。此代码已根据一些规则操作数据库,这正是您的中间层应该执行的操作。

剩下要做的工作是将表示逻辑从这个API中分离出来,并允许它驻留在它自己的应用程序中,这些应用程序连接到中间层的C++ API以便让它们的数据得到处理,存储在数据库中,结果返回给用户显示。对于表示层和C++ API之间的连接,根据您的要求,您可以使用专有通信协议(例如通过TCP/IP或RPC实现,或通过HTTP实现),也可以使用HTTP有一个中介“中继”网络服务,从服务器调用您的C++ API并将结果返回给调用者。 HTTP选择尽管初始实现起来更快,但有一些方面需要考虑,例如默认情况下,它是无状态的(您需要自己实现用户会话),并且必须与代码保持同步,当公共方法在开发期间发生变化时