套接字通信 - Windows服务的网站

时间:2012-08-16 02:46:16

标签: asp.net web-services sockets windows-services

我最近开始研究一个由三层组成的应用程序。前端是一个托管在godaddy服务器上的网站,我的公司客户用它来支付账单。第二层是在同一个godaddy服务器上运行的Windows服务,它接收来自网站的请求并将它们转发到运行第三层的另一个服务器,该第三层是存储数据的地方,并且基本上总是连接到服务器服务并且它只是闲置等待收到的请求。

现在,当用户登录我们的网站并尝试查看可用产品列表时,网站会创建与服务器的新连接,然后通过连接将数据发送到我们的服务器服务,该服务器将其中继到客户端。服务器和客户端之间的通信很好,往返不到2秒,问题是每次有请求时网站都必须创建一个到服务器服务的新套接字连接。这导致网站单个页面加载时间超过15秒。根据我的老板定义,这是不可接受的。

自推出该产品以来,我的老板一直在接受速度投诉,并指责我找出一种更快捷/更可靠的方式将信息从我的网站提供给服务器服务。

由于服务器服务和网站都可以看到一个公共数据库,我首先想到的是在数据库中创建一个新表并将其称为Requests,然后每次请求时都不创建与服务器服务的新连接如果是,网站会将记录写入数据库表,然后等待服务器服务在“队列”中查看请求,将请求转发给客户端进行响应然后写入响应数据库覆盖网站编写或填写输出栏或其他内容的数据。

我使用本地数据库组合了一个非常低规模的本系统版本,前端表单模仿网站,后台工作线程模仿服务器服务,结果非常有希望(即没有15秒等待只是为了建立联系)

我的问题是: 这种方法安全吗? (假设传递的对象在写入数据库之前被序列化和加密,服务器服务只是将序列化/加密的数据混洗到数据服务器)

理论上,这似乎是每次用户想要从客户机访问信息时建立新连接的可行替代方案吗?我从来没有见过这种类型的结构,因为我想出了它(我认为)我遇到了不利因素,所以我希望外界的观点可以发现我之前可能已经遗漏的任何缺点我试图消除已经有效且我知道是安全的系统。

0 个答案:

没有答案