网站和Web应用程序如何通信?

时间:2010-12-08 18:32:00

标签: asp.net

我想在ASP.Net中开发一个交互式网站,我的意思是交互式是它有一个后端应用程序来提供实时逻辑(它不遵循HTTP的请求/响应模型),最终它提供带有SQL Server数据库的动态* .aspx页面。

如何将组件组合在一起(作为设计和通信机制)以实现可扩展的应用程序?

编辑:好的,故事就像你所知,我们都倾向于获得比HTTP模型更重要的东西,我希望我的后端应用程序能够持续实时工作,例如,对数据库进行一些查询会有一些常量间隔。

设计我认为它是一个服务器(持有ASP.Net网站,后端应用程序和数据库),设计可能会随着时间的推移变得更加混合。该网站是用户的交互式界面,网站需要(有时)密集的计算和查询,最好由后端应用程序处理,然后应用程序向网站提供要包装的信息并格式化为HTML标记以便返回最终用户。

有关设计的任何建议吗?您可以与强大的应用程序一起分享哪些关键想法,这些应用程序可以迭代开发,以便将来的更改/增强更容易?它可能是关于整个项目的层级,还是更喜欢在网站和后端应用程序之间使用WCF而不是常规Web服务?

1 个答案:

答案 0 :(得分:1)

有趣。你能详细说明这个应用程序中的逻辑流程吗?什么是非Web应用程序(我假设它在同一台服务器上运行)?

根据到目前为止的描述,我正在想象一个由SQL数据库驱动的网站和在同一台机器上运行的Windows服务(用于实时逻辑应用程序),无论它需要对该数据库做什么。但听起来你正在寻找比这更直接的互动。

修改

  

我想要我的后端应用程序   坚持不懈地为...工作   例如,它会有一些   恒定间隔来做一些查询   在数据库上。

那可能(应该,可能)是一个Windows服务或一些永远在线的应用程序,它只是与数据库交互。它和网站不需要知道彼此的存在。该网站只提供通过此过程在数据库中放置/操作的数据。

  

网站需要(有时)   密集的计算和查询   哪个更好地处理   后端应用程序

像这样的异步处理对于网站来说通常非常有用,因为当浏览器耐心地等待时,并非一切都可以完成。设计在很大程度上取决于你正在做的事情的直观性,但首先我会建议这样的事情:

  1. 用户在网站上“启动”“计算”。它是否设置了一些值,上传某些东西进行处理等等,完全取决于你正在做的事情。重点是用户启动它。
  2. 进程发挥其魔力的必要信息将持久保存到数据库,并告知用户该进程已排队等待处理。用户现在可以做其他事情了。
  3. 后端应用程序(或多个应用程序)定期轮询数据库(每分钟,每5分钟等),或者,如果上传的“批处理”文件可以使用类似FileSystemWatcher的东西来查找新事物要做,做到了。使用多线程或任何你需要的东西来实现这一点,但重点是它是一个网站没有等待的“离线”过程。
  4. 当进程完成时,会在数据库中设置一些标志(在正在处理的记录中,或者可能是用户“收件箱”中的“消息”记录或其他内容),表明该过程已完成。
  5. 网站用户界面有一些指示符,无论何时加载,它都会检查上述标记,以便向用户表明排队过程已经完成并准备好被查看。
  6. 后端进程还可以在进程完成时向用户发送电子邮件等等。

    这是你在想什么的要点?或者由于某种原因,交互是否需要更直接?