将Web应用程序设置成有限状态机

时间:2010-01-19 08:57:03   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:件按特定顺序发生,或者强迫在特定情况下发生,所以当用户采取非预料之中的操作时,必须特别小心地确保应用程序不会被打断。但是,针对Web编程模型所带来的问题,作为一种解决方案,让我们来看一看将Web应用程序建模为有限状态机的概念。这样一来,我们能创建可靠的应用程序,并可在任何情况下做出确定的响应。什么是有限状态机传统应用程序的控制流程基础是顺序的:遵循事先设定的逻辑,...
  正文:

虽然Web应用程序是目前最热门的主题,但它们的编程模型有别于传统的、非Web的应用程序,这为开发者带来了新的挑战。传统应用程序具有相当确定的控制流,但Web应用程序要针对不由自己控制的外部事件(HTTP请求)来采取行动和生成输出。 我们无法强迫这些事件按特定顺序发生,或者强迫在特定情况下发生,所以当用户采取非预料之中的操作时,必须特别小心地确保应用程序不会被打断。但是,针对Web编程模型所带来的问题,作为一种解决方案,让我们来看一看将Web应用程序建模为有限状态机的概念。这样一来,我们能创建可靠的应用程序,并可在任何情况下做出确定的响应。什么是有限状态机传统应用程序的控制流程基础是顺序的:遵循事先设定的逻辑,从头到尾地执行。很少有事件能改变标准执行流程;而且这些事件主要涉及异常情况。“命令行实用程序”是这种传统应用程序的典型例子。另一类应用程序由外部发生的事件来驱动——换言之,事件在应用程序之外生成,无法由应用程序或程序员来控制。具体需要执行的代码取决于接收到的事件,或者它相对于其他事件的抵达时间。所以,控制流程既不能是顺序的,也不能是事先设定好的,因为它要依赖于外部事件。事件驱动的GUI应用程序是这种应用程序的典型例子,它们由命令和选择(也就是用户造成的事件)来驱动。Web应用程序由提交的表单和用户请求的网页来驱动,它们也可划归到上述类别。但是,GUI应用程序对于接收到的事件仍有一定程度的控制,因为这些事件要依赖于向用户显示的窗口和控件,而窗口和控件是由程序员控制的。Web应用程序则不然,因为一旦用户采取不在预料之中的操作(比如使用浏览器的历史记录、手工输入链接以及模拟一次表单提交等等),就很容易打乱设计好的应用程序逻辑。显然,必须采取不同的技术来处理这些情况。它能处理任何顺序的事件,并能提供有意义的响应——即使这些事件发生的顺序和预计的不同。有限状态机正是为了满足这方面的要求而设计的。有限状态机是一种概念性机器,它能采取某种操作来响应一个外部事件。具体采取的操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。之所以能做到这一点,是因为机器能跟踪一个内部状态,它会在收到事件后进行更新。为一个事件而响应的行动不仅取决于事件本身,还取决于机器的内部状态。另外,采取的行动还会决定并更新机器的状态。这样一来,任何逻辑都可建模成一系列事件/状态组合。


来源:http://www.002pc.com/master/College/Programming/JSP/12030.html

收藏到:

关于《将Web应用程序设置成有限状态机》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td