ASP编程:事件处置的界说
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧事件处置在很多年夜型、关头的使用程序中,盘算机每秒钟都在实行大批的义务。更加常常的不是这些义务自己,而是将这些义务分离在一同完成一个营业请求,称为事件。假如能乐成地实行一个义务,而在第二个或第三个相干的义务中呈现毛病,将会产生甚么?这个毛病极可能使体系处于纷歧致形态。这时候事件变得十分主要,它能使体系挣脱这类纷歧致的形态。
Microsoft最后利用Microsoft事件服务器(MTS)来处置事件。跟着Windows2000的公布,Microsoft进一步改善了MTS,使其成为COM+的一部分或组件服务。
本章报告组件服务的事件性特征。懂得它们怎样用于撑持在IIS上开辟的使用程序的事件。
本章的次要内容包含:
?事件处置的界说。
?事件处置的目标。
?在COM+中的事件处置怎样事情。
?事件性ASP页面。
起首,让我们看一看甚么是事件处置。
19.1事件处置的界说
本书已先容了很多触及事件处置的观点,可是事件处置究竟是甚么。在年夜型机时期,就有事件处置。用户信息把持体系(CICS)、Tuxedo和TopEnd等产物都是事件处置体系的例子,它们为使用程序供应事件服务。
为了会商事件处置,必需起首界说事件。
事件是一个最小的事情单位,不管乐成与否都作为一个全体举行事情。
不会有部分完成的事件。因为事件是由几个义务构成的,因而假如一个事件作为一个全体是乐成的,则事件中的每一个义务都必需乐成。假如事件中有一部分失利,则整修事件失利。
当事件失利时,体系前往到事件入手下手前的形态。这个作废一切变更的历程称为“回滚”(rollback)。比方,假如一个事件乐成更新了两个表,在更新第三个表时失利,则体系将两次更新恢回复状,并前往到原始的形态。
19.1.1坚持使用程序的完全性
任何使用程序的关头是要确保它所实行的一切操纵都是准确的,假如使用程序仅仅是部分地完成操纵,那末使用程序中的数据,乃至全部体系将会处于纷歧致形态。比方,看一下银行转账的例子,假如从一个帐户中提出钱,而在钱抵达另外一个帐户前堕落,那末在此使用
程序中的数据是毛病的,并且得到了它的完全性,也就是说钱会稀里糊涂地消散。
克制这类毛病有两种办法:
?在传统的编程模子中,开辟者必需避免任何体例的操纵失利。对任何失利点,开辟者必需加上撑持使用程序前往到这一操纵入手下手前的形态的措施。换句话说,开辟者必需到场代码使体系可以在操纵呈现毛病时恢回复状(取消)。
?更加复杂的办法是在事件处置体系的情况以内举行操纵,事件处置体系的义务就是包管全部事件大概完整乐成,大概甚么也不做。假如事件的一切义务都乐成地完成,那末在使用程序中的变更就提交给体系,体系就处置下一个事件或义务。假如操纵中某一部分不克不及乐成地完成,这将使体系处于有效的形态,应回滚体系的变更,并使使用程序前往到本来的形态。
事件处置体系的才能就是将完成这些操纵的常识嵌进到体系自己。开辟者不用为将体系恢回复状编写代码,必要做的只是告知体系实行义务是不是乐成,剩下的事变由事件处置体系主动完成。
在匡助开辟职员办理庞大的成绩时,事件处置体系的另外一优点是其ACID属性。
19.1.2ACID属性
当事件处置体系创立事件时,将确保事件有某些特征。组件的开辟者们假定事件的特征应当是一些不必要他们亲身办理的特征。这些特征称为ACID特征。
ACID就是:原子性(Atomicity)、分歧性(Consistency)、断绝性(Isolation)和耐久性(Durabilily)。
1.原子性
原子性属性用于标识事件是不是完整地完成,一个事件的任何更新要在体系上完整完成,假如因为某种缘故原由堕落,事件不克不及完成它的全体义务,体系将前往到事件入手下手前的形态。
让我们再看一下银行转帐的例子。假如在转帐的过程当中呈现毛病,全部事件将会回滚。只要当事件中的一切部分都乐成实行了,才将事件写进磁盘并使变更永世化。
为了供应回滚大概取消未提交的变更的才能,很多数据源接纳日记机制。比方,SQLServer利用一个预写事件日记,在将数据使用于(或提交到)实践数据页眼前,先写在事件日记上。可是,其他一些数据源不是干系型数据库办理体系(RDBMS),它们办理未提交事件的体例完整分歧。只需事件回滚时,数据源能够取消一切未提交的改动,那末这类手艺应当可用于办理事件。
2.分歧性
事件在体系完全性中实行分歧性,这经由过程包管体系的任何事件最初都处于无效形态来完成。假如事件乐成地完成,那末体系中一切变更将准确地使用,体系处于无效形态。假如在事件中呈现毛病,那末体系中的一切变更将主动地回滚,体系前往到原始形态。由于事件开
始时体系处于分歧形态,以是如今体系仍旧处于分歧形态。
再让我们转头看一下银行转帐的例子,在帐户转换和资金转移前,帐户处于无效形态。假如事件乐成地完成,而且提交事件,则帐户处于新的无效的形态。假如事件堕落,停止后,帐户前往到本来的无效形态。
记着,事件不卖力实行数据完全性,而仅仅卖力在事件提交或停止今后确保数据前往到分歧形态。了解数据完全性划定规矩并写代码完成完全性的重担一般落在开辟者肩上,他们依据营业请求举行计划。
当很多用户同时利用和修正一样的数据时,事件必需坚持其数据的完全性和分歧性。因而我们进一步研讨ACID特征中的下一个特征:断绝性。
3.断绝性
在断绝形态实行事件,使它们仿佛是体系在给准时间内实行的独一操纵。假如有两个事件,运转在不异的工夫内,实行不异的功效,事件的断绝性将确保每事件在体系中以为只要该事件在利用体系。
这类属性偶然称为串行化,为了避免事件操纵间的搅浑,必需串行化或序列化哀求,使得在统一工夫唯一一个哀求用于统一数据。
主要的是,在断绝形态实行事件,体系的形态有多是纷歧致的,在停止事件前,应确保体系处于分歧形态。可是在每一个独自的事件中,体系的形态大概会产生变更。假如事件不是在断绝形态运转,它便可能从体系中会见数据,而体系大概处于纷歧致形态。经由过程供应事
务断绝,能够制止这类事务的产生。
在银行的示例中,这意味着在这个体系内,其他历程和事件在我们的事件完成前看不到我们的事件引发的任何变更,这关于停止的情形十分主要。假如有另外一个历程依据帐户余额举行响应处置,而它在我们的事件完成前就可以看到它酿成的变更,那末这个历程的决议大概
创建在毛病的数据之上,由于我们的事件大概停止。这就是申明了为何事件发生的变更,直到事件完成,才对体系的其他部分可见。
断绝性不单单包管多个事件不克不及同时修正不异数据,并且可以包管事件操纵发生的变更直到变更被提交或停止时才干对另外一个事件可见,并发的事件相互之间毫无影响。这就意味着一切请求修正或读取的数据已被锁定在事件中,直到事件完成才干开释。年夜多半数据库,比方SQLServer和其他的RDBMS,经由过程利用锁定来完成断绝,事件中触及的各个数据项或数据集利用锁定来避免并发会见。
4.耐久性
耐久性意味着一旦事件实行乐成,在体系中发生的一切变更将是永世的。应当存在一些反省点避免在体系失利时丧失信息。乃至硬件自己失利,体系的形态仍能经由过程在日记中纪录事件完成的义务举行重修。耐久性的观点同意开辟者以为不论体系今后产生了甚么变更,完
成的事件是体系永世的部分。
在银行的例子中,资金的转移是永世的,一向坚持在体系中。这听起来仿佛复杂,但这,依附于将数据写进磁盘,出格必要指出的是,在事件完整完成并提交后才写进磁盘的。
一切这些事件特征,不论其外部怎样联系关系,仅仅是包管处置务入手下手到事件完成,不论事件乐成与否,都能准确地办理事件触及的数据。
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 掌握asp的特性而且一定要知道为什么。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
页:
[1]