第一篇:异步工作流体系结构的选择[大全]
异步工作流体系结构的选择 简介
在行业应用程序中的许多进程并非都能够即时执行。例如,验证信用卡在某些时候就需要十秒钟的时间。在本地商店排队的时候,十秒钟过得很快;但在电子商务领域,十秒钟却非常漫长。如果Web站点或其他应用程序闲置这么长时间去等待对客户的信用卡进行验证,那么处理大量并发用户的能力将大大降低。
因此,对于运行时间相对较长的进程而言,无论它们需要十秒还是需要十天,都应当断开与应用程序的连接而以异步方式运行。以异步方式运行某个进程意味着,发出该调用的系统并不需要等待该请求执行完毕;请求发出之后,调用就立即返回。这种处理方式有许多优点,但最主要的结果是,它切断系统中不同进程之间的连接,让它们以不同的速度运行。一套断开连接的、或者去耦的系统有助于在分布及伸缩方面取得最大的灵活性。
定单处理系统从 Web 站点或其他公司等外部来源接收定单,它最适合于采用异步处理方式。如果对这样的系统进行了去耦处理,在传入的定单量很大时定单会堆积起来,但进程的其余部分不需要一定按同样的速度进行操作。前端系统可以尽快地接收定单,而此进程的其余部分可以在定单量较少时追赶上来。在系统组件之间采用异步连接方式能够产生均匀效果,将变换不定的输入流转换为一致的请求流程进行处理。
如果不在某种程度上使用异步处理,任何电子商务应用程序都不可能正常发挥作用,因此,对这种体系结构很少有异议,但是们仍有必要讨论其积极方面和消极方面。异步处理的优点
异步体系结构的主要优点包括:
前端进程(通常是Web页)响应更快,客户会认为这是一个运行速度较快的系统
提供了用来提出负载平衡请求的简单方式 提供了容错能力
2.1 支持断续连接的系统
其中的每个优点都是通过异步模式对应用程序中不同部分进行去耦处理的结果。要让某个进程具有异步特点,就必须建立某种形式的队列来保存挂起的请求,该进程中的每一个步骤都只能与这些中间队列进行通信,而不能直接与其上一步或下一步进行通信。
图 1.利用队列实现去耦操作
2.2 更快的响应时间
第一个优点,即更快的响应时间,是由于客户(可能是正在访问Web 站点的某个人,也可能是另一个公司的计算机系统)不需等待任何定单处理过程开始进行的结果。在同步系统中,用户在整个操作(例如提交定单)结束之后才得到响应。
图 2.同步操作的累积滞后时间
在异步系统中,提交定单之后,客户的延迟时间仅仅是将该定单传递给进程中的下一步所花费的时间。在某种程度上,这样的更快响应时间只是一种假象,因为客户收到响应时该进程并未真正完成,但客户不需要再等待了,这是重要的优点。
图 3.在异步模式中滞后时间缩短
2.3 负载平衡
在接收高流量通信的系统中,人们常常希望将负载分布到多台服务器上,并且还希望根据需要调整这种分布以适应计算机数量的变化。有多种不同的方法处理系统的负载平衡问题,但异步处理所要求的基础体系结构能够在不增加额外软件的情况下轻松地提供灵活的负载平衡能力。
如上所述,在异步系统中,需要某种形式的中间存储或队列来存储步骤之间的请求。当一份定单完成了某步骤中的进程工作时,它就被放到队列中等待进行下一步进程。当下一个步骤准备好处理另一份定单时,它就从这种挂起请求列表中抓取一份定单。要完成这样的系统中负载平衡的实施,只需要增加计算机的数量,由它们处理挂起列表中对步骤 B 的请求。
图 4.在处理步骤 B 的节点群集之间实现负载平衡
采用中间队列之后,在负载平衡和可伸缩性方面都获得了很大的灵活性。在该系统的前端或后端都可以放置任意数量的计算机,而且这种灵活性适应于任何一个进程步骤。可以在每一个步骤中使用适当数量的硬件对系统的性能进行微调,也可以在一台计算机上将多个步骤结合在一起进行处理。2.4 容错能力
异步体系结构可以让系统具有容错能力,这样,即使在进程中出现中断,整个系统也不会崩溃。对灵活的负载平衡提供支持的功能同时也就是对容错能力提供支持的功能。如果某个软件或硬件故障删除了某个进程步骤,请求执行该步骤的那些挂起请求就在队列中等候直至该服务被恢复。这对进程中先前的步骤并不产生什么实际的影响,尽管总体进程时间可能由于故障而延长。如果遵循了上一节关于负载平衡所讨论的技术,很可能仅仅减缓某一步骤的进程,但并不会停止。同样的功能也可以通过使用群集方式来提供;群集可以在不进行任何负载平衡工作的情况下提供故障转移能力。
图 5.异步系统能够容忍一个或多个节点出现故障
在负载平衡的系统中,处理同一步骤的其他服务器可以继续从队列中截获请求;如果各服务器都已经以接近峰值的状态运行,整个系统的性能将下降。
注意 尽管采用请求队列可以提供容错能力,但队列本身可能成为关键的故障点。用于确保这些队列可靠性的方法依赖于实施队列时所采用的特定技术,但一般都涉及故障转移群集以及将信息写入某个永久性的存储设备中,例如写入数据库中。
2.5 断续连接的系统
这种使异步系统具有容错能力的行为也同样能够让异步系统在无需始终连接所有工作流组成部分的情况下正常运行。在异步系统中,工作流中的某个阶段可能由业务合作伙伴来进行处理。而系统与合作伙伴的系统之间的连接有可能是间断的,或者仅在需要时才连接。因此,异步功能可以将不可靠通信链接的影响降至最低程度,而且还可以实现更经济的系统操作,因为它将通信资源的占用减至最少。
在断续连接的系统中,某个合作伙伴可以连接工作流过程并将一个或多个请求置入工作流过程中排队,也可以接收某一具体步骤的处理结果并随后在自己的系统中进行处理。异步处理方式让系统之间相互独立;如果系统 A 与系统 B 能够在同一时刻相互连接,那很好;但如果不能在同一时刻连接,它们以后也能够进行通信而不会有任何麻烦,因为信息会被存储起来,直至与接收者接通。
图 6.使用中间队列能够支持断续连接的系统而不需要任何专门编程
断续连接的系统引入它们自己的一套体系结构决策,包括连接的频率、在连接时期之间对请求进行批处理、处理失败的连接尝试,等等。需要这种系统的常见场合是,必须与某个外部合作伙伴打交道以处理付款或处理定单实现;对于需要采用拨号连接而并不采用网络链接的所有情况,也需要这种系统。由于支持了断续连接,在资源总可以获得但连接数量受到限制的情况下,系统可以将对资源的占用减少到最低程度;限制连接数量的原因可能是许可证、配置或系统容量方面的限制——例如数据库、FTP 服务器以及带有服务广告协议(SAP)等其他后端系统的会话。异步系统的问题
在使用异步处理时,有几项功能比同步方案实施起来更困难,这样的功能如下:
利用通知或轮询进行状态跟踪 处理超时
创建和执行补偿逻辑
3.1 对状态进行通知或轮询
在同步系统中,调用进程要等待调用返回之后才继续向下执行;虽然这对性能和系统响应有负面影响,但它也有一些优点。在调用确实完成之后,它可以一同返回某种形式的状态消息,例如进程成功或进程失败。一个简单的例子可以说明此问题:将新定单插入数据库中,同时获得数据库生成的新定单 ID。如果对数据库进行同步调用(或许通过某个组件进行,由该组件处理实际的数据库工作),可以立即发回该定单的 ID,也可以表明该定单是否已经成功地添加到数据库中。但在异步系统中,虽然发出了插入定单的请求,但是实际的插入动作却未同时发生,因此,此时无法返回数据库生成的 ID,系统也不知道是否成功插入。获得已提交请求的状态以及创建 ID 这两个概念是紧密联系的,因为任何异步形式的状态跟踪都需要一个唯一的 ID。
3.2 生成跟踪 ID 在异步系统中工作可以采用多种方法获得跟踪 ID,但在选择这些方法时,必须牢记对系统进行去耦处理这一目标。可以在对请求的提交进行处理时同步生成 ID,由此获得 ID 并在随后以异步方式将该请求传递给进程的其余部分。但这种解决方案有损于采用异步处理所带来的优点,因为它至少会将请求的提交与请求处理的第一步紧密耦合在一起。
另一种方法是,由提交定单的系统生成 ID,这样可以保持系统的异步特点,但却丧失了在一个位置生成唯一 ID 的简单性。为了保证提交方生成的 ID 具有唯一性,通常采用两种方法:
以随机方式或半随机方式生成 ID,通过随机数长度来保证唯一性,或者根据系统中唯一的硬件组件生成某个数码来保证唯一性(GUID 常被用于此目的)
- 或者 -
首先获得在单个提交系统中唯一的 ID,然后将此 ID 与提交方的标识符一同发送,从而生成一个组合的唯一 ID。
倾向于选择第二种方法,因为它与处理采购定单(PO)所采用的(现在仍在使用)一般处理很相似,此类公司采购定单常以批处理方式提交;这样的话,与现有系统协同工作时就很容易转换。提交方,即 PO 情形中的公司,拥有他们自己的系统,可以生成唯一的 PO 编号,然后他们将该编号与其公司的标识符(既可能是客户 ID,也可能是系统 ID)一同提交。在提交方需要确定特定定单的状态时,他们也将这些信息组合起来使用。在接收端,仍然可以在定单处理系统中生成一个唯一的 ID 并在内部使用,但客户的 PO 编号并不删除。
图 7.来自提交系统、含有引用 ID 的传入消息
3.3 状态跟踪
如上所述,必须拥有唯一的 ID 才能在异步系统进行状态跟踪。那么,如果有了该 ID,如何跟踪请求的状态呢?异步系统中的状态跟踪通常采用下面两种形式之一:或者向原始调用者发出通知(定期发送状态消息,或在特定事件发生时发送状态消息),或者使用某种形式的轮询机制让调用者自己负责查询状态。还有第三种可能性,不准备在这里详细讨论了,因为它实际上并不适合企业系统;这种可能性是,发出调用的系统不需要关注其请求发生了什么结果;它仅发出请求而已,并不需要知道最后是成功了还是失败了。两种状态跟踪形式可以简单地描绘为“喂,的定单准备好了吗?”以及“喂,定单已经准备好了”。它实际上就是谁先打招呼的问题。
图 8.利用通知进行状态跟踪
一般将通知视为最有效的进程状态跟踪的方式,因为在这种方式中,只有项目状态发生更改时才发送信息;而在轮询方式中,可能会出现许多不必要的状态请求。
图 9.使用轮询方式进行状态跟踪
但事情并非总是如此;如果检查请求状态并不是一项很频繁的操作,基于查询的状态系统可能更为有效。为了取得最大的灵活性,建议两种方式都实施,既实施能够对状态进行请求的机制,也实施状态通知机制。们以一个允许在线订购产品的 Web 站点为例;发出定单之后,通常会回到 Web 站点上查阅定单的当前状态(只要乐意,随时都可以查询),但该 Web 站点也可以在定单被接受、处理及发货时发出电子邮件消息。两种状态跟踪形式都很有用,两种方式也都对处理系统有相同的隐含要求;每一项请求的状态都需要跟踪。
3.4 超时处理
异步处理的主要好处之一是,不必等待每一步都完成;但仍要考虑整个进程需要多长时间才能结束的问题。为了保证定单或者正在处理的任何形式的请求最终不会等待过长时间才能处理完毕,需要一种方法来指定每个异步请求允许花费的最长时间。实施超时机制是防止定单在系统中耽搁好几天的唯一办法。
3.5 补偿逻辑
与上述状态跟踪问题相似,在出现错误的情况下,补偿逻辑非常重要。实际上,如果假设每项请求都会成功,每项定单都能够成功处理,那么,系统的建立就会很省时间,设计上也会更简单。真正占用大部分设计时间和实施时间的工作是处理出现的问题——也就是处理异常情况。
补偿逻辑与数据库中的事务回滚概念相关——它在进程彻底失败时撤销任何已经完成的操作。在定单处理场合,当客户的信用卡未通过验证并因此取消定单时,补偿逻辑或许就包括撤销预留库存。根据这些事务进程技术的任一种技术,程序员可以明确声明某进程的所有步骤都是某项事务的一部分;如果出现错误,数据库或 MS DTC 提供的服务将撤销错误出现前已完成的所有工作。在异步系统中,不可能采用这些事务进程技术来管理进程中的所有步骤,因为这些步骤被不确定的时间所分割。必须实现自己编写的代码才能撤销进程失败时已经完成的任何工作。采用多种方法可以实现这一任务,但通用方法是在运行时对进程进行跟踪/审计,然后使用跟踪信息回退并逆转每一操作。这听起来很简单,但做起来却很麻烦;开发补偿逻辑是主要的工作。
在本文其余部分,将探讨在系统中实施异步工作流的多种不同方法,并解释每种方法如何处理上述问题。实施策略
为了解释创建异步工作流的多种不同选择,最好使用一个具体例子。对于本文其余部分,就使用一个定单处理系统的例子,如图 10 所示,定单必须经过一个简单的四步工作流。
图 10.由四步构成的简单工作流
并不是每一阶段发生的事情都与实施选择的讨论相关,但是们假定可以获得一系列.NET 组件(以及公开的 COM 接口)来处理每一步。
注意 在任何实际的系统中,可伸缩性和可靠性都是要考虑的关键问题。如果一套系统时常“丢失”定单(或者将同一份定单执行一次以上),任何这样的系统就不适合实际使用,因此,还应当谨慎设计软件系统和硬件系统,以保证可靠性。可伸缩性也是一个需要考虑的问题,尤其是面向公众的系统,其潜在用户量是非常大的。在本文描述的所有三种实施方法中,将讨论在使系统能够根据需要进行扩展的同时保证可靠性的措施。
根据必须由自己动手创建的实施工作量,将实施工作流的选择划分为三个不同的途径:
利用 Microsoft SQL(TM)Server 利用 Microsoft.NET 和 Microsoft 消息队列(MSMQ)利用 Microsoft BizTalk(TM)Server 第一种选择说明在实施解决方案时不需要依赖任何专为工作流设计的预建机制。在本例中,就是使用 SQL Server 来创建自己的队列系统,并自己编写代码处理实际移动和处理通过定义的工作流的定单。第二种选择使用操作系统提供的 MSMQ 功能来实施定单在处理中移动时的队列编排工作,但仍然要自己提供代码来控制定单从一个队列到另一个队列的移动,以及调用每个组件。最后一种选择是购买一套系统,即 BizTalk Server,由它来处理整个工作流过程,自己仅使用该工具定义工作流即可。当然,在以上三种方案中,都需要实施表达工作流中每一步发生的实际处理工作的组件。然而,值得指出的是,如果某步骤主要是转换、存储和检索各个系统中的消息,BizTalk 可以完成大部分此类任务,根本不需要编写代码。将逐一介绍每个选择方案,并解释如何在每一实施方案中处理本定单处理的各种元素。
4.1 利用 SQL Server 构建自己的工作流
4.1.1 解决方案描述
要使用 SQL Server 构建自己的工作流系统实施方案时,有多种选择。可以为工作流中的每一个状态(等待验证、已经发运,等等)创建不同的表,然后通过在表之间进行插入、删除操作将消息(例如,定单)在不同状态之间进行“移动”。这非常类似于队列系统中的工作流进行工作的方式(例如 MSMQ,将在下一实施选择方案中讨论),但让 SQL Server 从事它不擅长的工作并没有什么好处。
另一种可选模式是仅使用一张表来存储消息,并采用一个附加字段来保留当前状态。将一条消息从一个状态转变为另一个状态只涉及对该状态字段的修改,而所有的消息始终保持在原位置不动。如果要将 SQL 用做工作流引擎,建议采用这种模式,它可以创建另一张表来跟踪定单进入处理每一步的日期和时间。4.1.2 实施细节
特别符合异步业务处理概念的操作示例是在数据库表中插入新定单。在通过 Web 站点或另一个系统提交并接收定单之后,SQL Server 实施将由下面几个关键元素组成:保留定单及相关信息的表,完成每一步处理工作的组件,跟踪表的工作流,以及协调定单在此处理中移动的程序(即控制器)。由于本系统可能具有的去耦特性,该控制器不可能仅是一个程序;实际上,它由在各种不同计算机上运行的多个不同的程序组成。无论分布方式如何,控制器的概念体现了与工作流有关的全部代码;消息要在各个步骤之间移动,就需要运行控制器。使用.NET 后,这些控制器可以按照 Microsoft Windows? 服务的方式来编写,它们不间断地运行并处理任何挂起的定单;也可以按照应用程序的方式来编写,将其设置为在特定的时间运行。在基于 SQL Server 的系统中,控制器代码可以遵照下面的基本行为模式:
For a particular step:
Query database for the oldest records at this stage
(SELECT TOP 1 * FROM Order
WHERE Order.CurrentStage = i
ORDER BY Order.Date ASC)
If order exists then Process record
Add entry to Tracking/Auditing table
Call Component(s)to process Order
If successful
Update Tracking table
Move Order to next stage
(UPDATE Order
SET Order.CurrentStage = Order.CurrentStage +
WHERE Order.ID = ID)
If failure
Compensating Logic for all previous steps(i-1
to 1)
Update Tracking table 为了获得最佳的性能和最大的灵活性,可以为每一个阶段创建单独的控制器实例,也可以在每一阶段自身的线程中处理该阶段的工作;在两种方式中,控制代码都可以根据需要在不同计算机之间保持隔离。
将 SQL Server 用于工作流的主要好处是所有的东西都存储在一个数据库中。将所有的定单和它们的状态都存储在 SQL Server 之后,就有可能通过一个简单的查询来检查定单的当前状态,同时也容易通过使用相关表来实现与其他系统(这些系统可能也在使用数据库,甚至或许是相同的 SQL Server)的集成。但使用 SQL Server 也有它的缺点:主要是,它并非一部工作流引擎,而是一套数据存储系统。因此,SQL Server 对工作流系统的许多功能都没有提供支持,必须构建将 SQL Server 用作数据存储系统的自己的工作流引擎。超时就是一个例子,它是工作流环境中必需的功能,但 SQL 不处理它。为了处理超时情形,需要一个程序(或许还要与工作流逻辑的其他部分结合在一起)来定期扫描表,以发现超过规定时间长度的记录并将它们处理为超时消息。4.1.3 多线程开发
当多个处理查找同一阶段的记录时,就会遇到使用 SQL Server 的另一个问题。关于这个问题详细讨论已经超出了本文的目的,但很有必要关注这个问题,因为它极好地说明了异步及多线程应用程序所面临的问题。如果两个或多个处理试图同时处理同一阶段的工作,在使用为控制器处理提供的伪代码时就会出现问题。第一个处理将检索在某特定阶段最旧的记录,并将该记录发送给不同组件进行处理。只有在这些组件返回了更新的记录,才表明它已准备好移动到下一阶段。从检索到最终更新之间,另一个处理或许也在处理相同阶段的工作,而且它也会经历同样的步骤。在第二个处理检索该特定阶段最旧的记录时,如果第一个处理还没有进行更新操作,也没有完成其数据库的事务处理,那么第二个处理就会检索到与第一个处理一模一样的记录。此相同记录随后将再次发送给各组件,从而造成潜在的重复处理问题。有两种方法可避免此问题。第一种方法是在事务处理期间对该 Order 表使用排他表锁,只有这种方法才能阻止第二个处理在第一个处理完成之前对该表执行 SELECT 查询。这种方法能够发挥作用,但其结果是封锁了所有其他处理(甚至包括其他计算机上的处理),使得它们在此处理完成通过当前阶段的第一个定单的操作之前一直都不能访问该表,这实际上是取消了并行处理的可能性。
第二种方法是对处理稍做修改以避开此问题——仍使用排他表锁,但只限制在较短时间内。这种方法不是在对定单进行处理的全部时间内锁定表,而是在启动事务处理、进行 SELECT 操作(包括排他表锁)后即对记录进行更新,将其标记为可以继续进行其他处理。可以使用多种方法对记录进行标记,包括设置布尔值标志或者将其更新为某个特殊的状态代码。在UPDATE 执行完毕后,可以立即提交该事务并解锁。随后即可对该定单进行其他处理,对其他处理的封锁时间也不会大于执行 SELECT 和 UPDATE 所占用的时间。作为一个存储过程,这类似于下面的代码:
CREATE PROCEDURE GetNextOrder
@Step int,@OrderID int output,@OrderDate datetime output,@CustomerID int output,@OrderStatus int output,@SubTotal money output,@Tax money output,@ShippingHandling money output,@ShipToName nvarchar(50)output,@ShipToAddressId int output AS
DECLARE @NextOrder int SET TRANSACTION ISOLATION LEVEL SERIALIZABLE BEGIN TRANSACTION
SELECT TOP 1
@NextOrder = Orders.OrderId,@CustomerID = Orders.CustomerId,@OrderDate = Orders.OrderDate,@OrderStatus = Orders.OrderStatus,@SubTotal = Orders.SubTotal,@Tax = Orders.Tax,@ShippingHandling = Orders.ShippingHandling,@ShipToName = Orders.ShipToName,@ShipToAddressID = Orders.ShipToAddressId FROM [Orders] WHERE [Orders].OrderStatus = @Step ORDER BY [Orders].OrderDate ASC
UPDATE Orders SET OrderStatus = OrderStatus + 50 WHERE OrderID = @NextOrder
SELECT @OrderID = @NextOrder
COMMIT TRANSACTION SQL Server 能够很快地执行此事务处理的各个步骤,因此表锁的封锁并不会对整个系统的性能造成明显损害。
注意 尽管此例使用了轮询方法来查找新定单,但也可以在 SQL Server 中使用通知模式,只是后者需要更多的“自制”代码。4.1.4 可伸缩性和可靠性
使将 SQL Server 用作工作流引擎的系统具有可靠性和可伸缩性的方式与使将 SQL Server 用于其他目的的系统具有上述特性的方式是一样的。在数据库场合,处理不断增加的负载的主要办法就是“升级”,即在运行数据库的计算机中增加内存和处理器。可以将一个数据库分布到多台计算机上,以利用联盟服务器(federated server)和分区等功能实现分配负载的目的,从而支持极其大量的负载;但如果有 8 路CPU 或更大型的计算机,那么,通常一台计算机就足够用了。为确保可靠性,可以采用由 2-4 台计算机组成的故障转移群集;这样做的目的并不是为了提高性能,而是为了保证正常运行时间,因为它提供了多达三台服务器,它们可以在主运行服务器(live server)发生重大故障时接管系统的运行。
4.2 使用.NET 和 MSMQ 处理工作流
解决方案描述
.NET 框架使能够利用消息队列(MSMQ)以编程方式轻松地发送和接收消息,该解决方案就以此基本功能为基础。实施这种形式的工作流解决方案需要使用许多队列——其中一个用于表达工作流的各个阶段,还需要一套用来存储最终定单的数据库表和一个审计/跟踪表。与上述 SQL Server 实施相似,本系统的关键组件也是一个控制器程序,它编写为 Windows 服务形式,设计为处理与工作流有关的处理。该程序负责从队列中接收消息,针对每条消息调用适当的组件来进行适当的处理,然后将定单发送到下一个队列。4.2.1 实施细节
与上述 SQL Server 示例不同的是,本方式不通过轮询方法检查每一阶段的新定单,而是利用 MSMQ 的功能在控制器等侦听程序中激发事件。此外,还可以为每个队列创建一个线程,而且在不指定超时时间的情况下接收在每个队列上启动的处理。这两种方法之间的性能差异很小,但各自的代码差异却很大。为了获得审计与跟踪的详细信息,还需要某种方法来存储信息,因此,很可能还需要一个数据库表。
采用 MSMQ 有很多好处,因为 MSMQ 本身提供了异步处理所需要的许多功能。在消息等待处理时,它们存储在队列中;最旧的消息自动被最先处理,因为消息队列的规则是“先进先出”(FIFO)。放进消息队列中的消息有很灵活的设置,既可以处理向队列提交消息时的超时问题,也可以处理从队列中接收消息时的超时问题。MSMQ 还内置了一些高级功能,例如将某些消息标记为高优先级或低优先级。每条消息除了其主要内容(本示例中为定单)之外还有多个属性,它们提供了对该消息的进行审计的重要信息(例如 ArrivedTime、SentTime、SourceMachine 等等)。最后,MSMQ 的编程模式在设计上考虑了异步工作流问题,它在新消息达到时能够发出通知(通过事件),从而不再需要任何轮询工作。在 SQL Server 章节中讨论的锁定与并发问题在 MSMQ 中已经不成为问题;无论有多少个处理试图同时从同一个队列中检索一条新消息,MSMQ 都可以保证不会有两个处理收到相同的消息。指定给每一阶段的进程/线程数量是完全灵活的,可以根据系统负载的变化情况进行微调。
虽然 MSMQ 提供了许多与工作流有关的功能,但它与 SQL Server 一样不是一部工作流引擎,仍需要对控制逻辑编写代码,才能将消息从处理中的一个阶段转移到另一个阶段。但 MSMQ 的确为发送和接收消息提供了许多出色的功能,它们是工作流解决方案和组件的关键组件,如果在 SQL Server 基础上进行构建,必须自己对这些组件编写代码。4.2.2 可伸缩性和可靠性
在本实施中使用 MSMQ 时,或者作为 BizTalk 实施中的一个组件使用 MSMQ 时,可以利用 Microsoft 群集服务对 MSMQ 进行群集设置,从而为该服务器上的队列提供故障转移支持。除了为群集提供支持外,MSMQ 还有一项引人注目的可靠性功能,即使 MSMQ 能够处理那些几乎会摧毁任何其他系统的故障。消息发送到队列时——例如从 Web 站点上发送到后端 MSMQ 服务器上 ——这是一项异步操作,即使消息尚未提交,它也会立即返回。如果网络出现故障或者服务器无法使用,就不可能抵达目的地队列,消息将自动存储在发送方计算机上(本示例中,就是 Web 服务器上),直至与目的地接通。这种机制被称为“存储及转发”(store and forward),经常用于允许移动用户脱机使用应用程序,并且还创建了一种容错能力更强的系统。在相似情形中,如果将 SQL Server 或其他数据库用作后端处理,那么必须自己将其构建到系统中才能实现“存储及转发”。5 小结
异步工作流是很强大的体系结构,它不仅能够提高系统的可伸缩性和可靠性,也是处理自动业务处理的好方法。本文介绍了三种不同的方案,通过这些方案可以为系统添加异步处理功能,但必须选择哪种实施方案最适合系统。下一步涉及的是要在自制和外购之间做出选择。就自制而言,还有两种选择。所有事情都自己解决,而不利用 MSMQ 的优势,似乎是效率最低的解决方案,但它将所有的东西都放到 SQL Server 上,这使得文档跟踪以及集成到系统的其余部分变得非常容易。采用 MSMQ 可以让先声夺人,并且还能够带来许多构建解决方案所必需的异步功能,这样,只要根据需求编写控制逻辑以在工作流中移动消息即可。最后,即使采用 BizTalk,仍然必须创建对各个阶段进行处理的组件,这在所有这些解决方案中都不可避免,但 BizTalk 提供了所有其他的工作流元素。
如果需要实施的是运行在一台服务器上一成不变的工作流,那么自己动手构建系统也是很实际的想法。如果希望支持多个工作流,工作流变化相对频繁,或者需要运行大型服务器组,那么需要重复完成大量的 BizTalk 功能,其成本可能会比 BizTalk 本身要高许多。一个主要的决定性因素是对支持的要求,因为自己的解决方案不大可能得到像 BizTalk 这样的外购产品所提供的支持水平。最后,所有这三种解决方案都是在应用程序中实施异步工作流的切实可行的方法,其差别取决于具体需求。
第二篇:体系结构
一、管道与过滤器
在管道与过滤器风格的软件体系结构中,每个构件,都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。这种风格特别重要的过滤器必须是独立的实体.它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道与过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。
管道与过滤器风格的软件体系结构具有许多很好的特点:
(1)具有良好的隐蔽性和高内聚、低耦合的特点;
(2)允许设计者将整个系统的输入,输出行为看成是多个过滤器的行为的简单合成:
(3)支持软件重用。主要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;
(4)系统维护和增强系统性能简单:
(5)允许对一些如吞吐量、死锁等属性的分析:
(6)支持并行执行
但是,这样的系统也存在着一些缺陷:
(1)通常导致进程成为批处理的结构:
(2)不适合处理交互的应用:
(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样又导致了系统性能下降,并增加了编写过滤器的复杂性。(pass理由上已经诉过)
二、数据抽象和面向对象的组织
这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作被封装在一个抽象数据类型或对象中。这种风格的构件是一种对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。
面向对象的系统在编程时有两大优点:
(1)因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象。
(2)设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。
但是,面向对象的系统也存在着一些问题
(1)为了使一个对象和另一个对象通过过程调用等方式进行交互,必须知道对象的标识。只要一个对象的标识改变了.就必须修改所有其他明确调用它的对象。
(2)必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如,如果A使用了对象B.c也使用了对象B,那么,c对B的使用所造成的对A的影响可能是料想不到的。(不适合,2个缺点)
三、基于事件的隐式调用
基于事件的隐式调用风格的思想:
构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
基于事件的隐式调用风格的主要特点:
(1)事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。
(2)支持重用。在不改变系统中其他接口的情况之下,构件可以非常容易的被其他构件取代。
基于事件的隐式调用风格的主要缺点:
(1)构件放弃了自身对系统计算的控制。(哪些构件响应? 响应的顺序是怎么样的?)
(2)共享区域的数据交换。(正确性的验证)(可行但不适合)
四、层次系统
层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。在这一应用领域中.每一层提供一个抽象的功能,作为上层通信的基础。较低的层次定义低层的交互,最低层通常只定义硬件物理连接。
层次系统有许多可取的属性:
(1)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解:
(2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层:
(3)支持重用。
当然,层次系统也有其不足之处:
(1)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来:
(2)很难找到一个通行的、合适的、正确的层次抽象方法。(可行但有难度)
五、仓库风格
1、黑板系统
黑板系统的传统应用是信号处理领域,如语音和模式识别。另一应用是松耦合代理数据共享存取。黑板系统主要由三部分组成:知识源、黑板数据结构、控制。
2、三层c,s软件体系结构
C/S软件体系结构,即client/server(客户机/服务器)结构,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,c,s结构将应用系统一分二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。c,s体系结构具有强大的数据操作和事务处理能力,模型思想简单,容易被人们理解和接受。
但随着企业规模和应用范围的日益扩大,软件的复杂程度不断提高,传统的c/s结构存在以下几个局限:
(1)c/s只分两层结构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet:
(2)软、硬件的组合及集成能力有限;
(3)客户机的负荷太重,难以管理大量的客户机,系统的性能容易变坏:
(4)数据安全性不好。
正是因为二层c/s有这么多缺点,因此,三层c/s结构应运而生。三层c层结构是将应用功能分成表示层、功能层和数据层三个部分。
三层C/S的解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为数据库管理系统已经独立出来,所以,关键是要将表示层和功能层分离成各自独立的程序,并且还要使这两层问的接口简洁明了。与传统的二层结构相比,三层c/s结构具有以下优点:
(I)允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。
(2)允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。
(3)三层c/s结构中.应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。
(4)允许充分利用功能层有效地隔离开表示层与数据层,来授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定坚实的基础;整个系统的管理层次也更加合理和可控制。
3、B/S软件体系结构
B/S体系结构.即Browser/Server(浏览器/服务)结构,是随着如Internet的兴起,对c/s体系结构的一种变化或者改进的结构。在B/S体系结构下。用户界面完全通过www浏览器实现,一部分事务逻辑在前端实现.但是主要事务逻辑在服务器端实现。
B/s体系结构主要是利用不断成熟的www浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节
约了开发成本.是一种全新的软件体系结构。基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时.仅仅需要1个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。B/s体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
但是,与c/s体系结构相比,B/s体系结构也有许多不足之处,例如:
(1)早期B,s体系结构缺乏对动态页面的支持能力,(2)B,s体系结构的系统扩展能力差,安全性也难以控制。
(3)采用B/s体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。
(4)B,s体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
想法:
考虑到
第三篇:异步教学法
“异步教学法”学习阶段调研报告
温州市教育教学研究院
郑
平
内容摘要:2007年12月12日,温州市教育局邀请黎世法教授,举办《异步教学法》理论与实践专题报告会。会后,黎教授分别给温州第十二中学等6所中学的全体教师作有关“异步教学法”的专题讲座。旨在学习、引进和推广“异步教学法”,优化教学方法和提高我市教育教学质量。为了科学、和谐地学习、尝试、推进、实施“异步教学法”。特进行“异步教学法”学习阶段调查研究。调查目的:①“异步教学法”学习情况了解;②引进“异步教学”可行性分析; ③确定实验“异步教学法”的试点学校。调查对象:黎教授讲座过的6所学校。调查设计:①校长、或其他领导个别访谈;②部分教师座谈会;③校领导调查问卷;④部分教师调查问卷。对调查得到的情况进行分类分析并作出初步结论,最后归纳出在个结论和一个建议。
关键词:异步教学法
学习阶段、调研报告
一、缘起
2002年秋季,温州市部分小学、初中开始实施新课程教学,2003年开始全面实施新课程教学;2006年秋季,高中开始全面进行新课程实验。新课程的五年实施或实验中的探索、推进,取得很大进步,获得了较为丰硕的成效。特别是通过形成课程、课堂、课外“三课”整合的教学系统,推进素质教育方面作出了很大的努力。其中为了进一步全面推进课程改革,在课堂教学上,要坚持面向全体学生,改革教学方法,改进教育技术,密切师生关系,优化教学过程,不断创造适合学生健康成长教育模式;总结并推广探究性教学、学科分层走班教学、个体差异作业设计等做法和经验;积极倡导坚持启发教学原则,学习推广“异步教学法”,在班级授课制下实现因材施教,让课堂成为学生个性化学习的场所,成为学生在原有基础上自主发展的乐园;要提高课堂教学效率,减轻学生过重课业负担,不断深化教法、学法、考法的研究。在这样的大背景下,于2007年12月12日,温州市教育局邀请我国异步教育学创始人,湖北大学教育心理学教授,湖北大学异步教学研究和推广中心主任黎世法先生,在温州中学学术报告厅举办黎世法“异步教学”理论实践专题报告会。上午,林卫平局长主持会议,黎世法教授深入浅出地阐释了异步教学的基本理论。下午,安晋副局长主持会议,异步教学法实验学校,广西壮族自治区桂林市永福实验中学的校长和教师分别介绍了该校实施“异步教学法”的经验、成果和课堂教学录像。市教育局、各县(市、区)教育局、市教育教学研究院、市教师教育院以及各市直属学校的领导、教师等800多人参加会议学习。会前,黎教授到温州实验中学、温州二十一中学深入调研和交流。会后,黎教授分别给温州第十二中学等6所中学的全体教师作有关“异步教学法”的专题讲座。每场讲座都深受教师的敬佩。此次学习活动是在从上世纪八十年代以来,“异步教学”理论在全国28个省(市、区自治区),数以万计的中小学教师开展了大量的实践,取得了丰硕的成果,它改变了陈旧的“满堂灌”的教学方式,改变了班级授课制下的“同步教学”基础上,旨在引进“异步教学法”,优化教学方法和提高我市教育教学质量,办让人民满意的教育,开拓视野,学习先进的教育教学理论,积极推进课程改革和教学改革。为了科学、和谐地学习、尝试、推进、实施“异步教学法”。特进行“异步教学法”学习阶段调查研究。
二、调查
1.指导思想:
推进“三课”,即课程、课堂、课外,“三法”,即教法、学法、考法的研究,实施、优化、改进教法,引进“新法”而进行调查研究。2.调查目的:
①“异步教学法”学习情况了解; ②引进“异步教学”可行性分析; ③确定实验“异步教学法”的试点学校。3.调查对象:
黎教授讲座过的6所学校:
①温州第二实验中学(原温州第十三中学)②温州第十二中学 ③瑞安市外国语学校 ④永嘉县瓯北镇第五中学 ⑤平阳县腾蛟二中 ⑥苍南县龙港镇第五中学 4.调研人员:
郑
平、朱跃跃、凌华君、关振国、陈
柳 5.调查设计:
①校长、或其他领导个别访谈; ②部分教师座谈会 ③校领导调查问卷 ④部分教师调查问卷 6.调查时间:
2007年12月~2008年1月 7.情况归纳:(1)学校基本情况:
6所学校中城市的3所,温州市第二实验中学、温州市第十二中、瑞安市外国语学校,农村的3所,苍南县龙港五中、平阳县腾蛟二中、永嘉县瓯北五中。初中5所,九年一贯制1所,瑞安外国语学校。示范初中1所,苍南县龙港五中,非示范初中5所。特色学校1所,瑞安市外国语学校,非特色5所。寄宿制2所,平阳县腾蛟二中、瑞安外国语学校,非寄宿制4所。学校规模中等,班级数30~35个班,温州第二实验中学只有24个班;教师数92~114人,其中市直2所学校高级教师比例高。初步结论:
①从中级、初级教师容易接受新教学方法的角度来看,中级、初级教师比例高,有利于新教学方法引进和实施。6所学校中有4所学校较合适,其中平阳县腾蛟二中,约占91%,永嘉县瓯北镇第五中学,约占70%,瑞安市外国语学校,约占91%,苍南县龙港五中,约占98%。
②若从中级、高级教师教学经验丰富,教学能力强,教学调节、控制、组织等能力强,新方法使用风险低的角度来看,温州第二实验中学,约占75%,温州第十二中学约占70%,这两所学校比较合适引进“异步教学”法。但是,有一个前提,要转变中级、高级教师的教学观念。(2)学校教改情况
学校做过哪些主要教学方式或学习方式的改进或研究方面,归纳起来主要有温州十二中的“自然分材教学”,华东师大熊川武教育指导,已有1年;温州第二实验中学没有做过较大的教改;其它4所学校分别做一些尝试,如目标教学法、尝试教学法、成功教学法、分层辅导法、新教育实验、有效教与学方式校本行动研究等。但是都没有做过“异步教学法”尝试。分层教学法也是在学生竞赛辅导中进行分层辅导,或学生作业中进行分层辅导。初步结论:
因为6所学校都没有做过“异步教学法”的尝试,又因为有5所学校尝试过不同教学方法的改进,有改进教学方法的一定成功或失败的经验与教训。引进“异步教学法”有一定的基础。
(3)学校或校长是否有意在学校逐步开展“异步教学”实施方面,有5所学校有不同程度的意向在学校逐步开展“异步教学法”的实验。情况如下:
①温州第二实验中学:在初一年级数学学科中一些课中逐步实施,有经验后再推广。
②平阳腾蛟二中:先试点1—4个班级,2—3个学科,后推广。
③永嘉县瓯北镇第五中学:在初一年级,英语、数学学科进行逐步开展,在总结经验的基础上再全面推广。④苍南龙港五中:想逐步尝试“异步教学法”中的个别做法。
⑤温州第十二中学:如果要做,可以两者(“自然分材教学法”、“异步教学法”)结合。已经有基础,广大教师对课堂教学教改也已达成共识。初步结论:
①因苍南龙港五中正在做新教育实验,温州第十二中学正在做“自然分材教学法”实验,不宜再引进“异步教学法”实验,但是“异步教学法”的理念和思路可以指导,引领这两所学校的教改实验。
②比较合适开展“异步教学法”实验的学校有:温州第二实验中学,平阳腾蛟二中,永嘉瓯北镇第五中学,3所学校。(4)对“异步教学法”认识、理解情况
①原来学习过“异步教学法”理论的只有1位教师,41位教师没学习过。
②原来尝试过“六步教学法”的有5位教师,但是,只是“六步”中的部分实施,如学生预习中实践、学生作业中实践,但效果不是很好(可能没有指导)。37位教师没有尝试过。
③听了黎世法教授“异步教学法”专题报告后,对“异步教学法”的新认识方面。有35位教师(约占83%)总体感觉较好,主要原因是“异步教学法”的理念符合新课程理念(10位教师),体现学生主体地位(10位教师),针对性、系统性强(6位教师),总体感觉较好(2位教师),有利学生自学、学生纠错(6位教师),体现教师主导性(1位教师)。有5位教师认为操作有困难,有2位教师认为实施条件有困难,如学生要自觉,自学能力强,要小班化教学,时间要充裕,学生要从小学开始培养学习习惯等。
④对“异步教学法”的理念和思路的认识方面。有30位教师(约占72%)认为理念先进,体现学生为主体,教师为主导;思路明确、清晰、步步深入。其中认为学习成为学生需要的有12位教师,理念先进的7位教师,注重学习过程的4位,教师指导方式可取的4位教师,步骤系统齐全的3位教师。但是,认为“六步法”在课堂教学中实施困难的有11位教师,要求教师素质高的1位教师。
⑤对“异步教学法”的基本模式(提出问题—指示方法—学生学习(六步)—明了学情—研讨学习—强化小结)的认识方面。认为有目标、有计划、有组织、有步骤、有总结的有6位教师,过程中体现学生学习主体性的有9位教师,加强教师对学生学习指导的有7位教师,共22位教师(约占52%)。认为太程序化、模式化、固定化、单一化的有10位教师,认为学生自学有困难的5位教师,认为课时不够、缺少细节、操作性不强的有5位教师。
⑥对“异步教学法”中教师指导三种形式(教师的个别指导、分类指导是为完成教师的全体指导提出的教学任务和要求服务的;教师的个别指导、分类指导和全体指导都是为了学生的个体学习(微观落实)服务的;教师的全体指导,分类指导愈及时,就愈有助于解决大多数学生的学习困难,教师有更多时间有针对性地对重点对象进行个别指导,教师在明了学情,针对学生的不同学情对学生进行个别指导、分类指导的基础上,可发现大多数学生在某一学习时间存在某一共性的学习问题;在教师的分类指导过程中,也会显现出一个小范围内的“宏观—微观—再宏观”的教学周期。)的理解方面。理解到位的几乎没有,知道三类指导是怎样操作的有9位教师。在课堂教学中教师这三类指导操作及这三类指导之间关系知之甚少的有33位教师(约占80%)。⑦对“异步教学法”中八个基本内容(基本事实教学、理论教学、技术教学、技能教学、作业教学、综合学习实践成果教学、思维方法教学、生活态度教学)的认识方面。理解基本到位的5位教师,有点理解的33位教师(约占80%),没有反映的4位教师。
⑧对“异步教学法”中三一三思维法(举三归
一、以一反三)的认识方面。基本理解的4位教师,不理解的32位教师(约占78%),没有反映的5位教师。
⑨对“异步教学法”中,“六步学习法”,“三一三思维法”与“八个基本内容”之间关系的认识方面。基本理解的4位教师,不理解的32位教师(约占78),没有反映的6位教师。⑩对“是否想进一步学习异步教学法理论,并在教学实践中应用?”这个问题的回答中,有35位(约占83%)教师想进一步学习,并在教学实践中尝试。其主要理由有认为理念先进(6位教师),认为方法可取(9位教师),认为效果较好(20位教师);不想学习并应用的7位教师,主要理由是条件没有。11对“若有领导和专家指导,是否愿意做异步教学法实践○和研究?”这个问题的回答中,有38位教师(约占90%)愿意做,其主要理由是教学需要改进,有专家指导,可以理论转化为实践,理论联系实践具有可行性和操作性。12对“你认为异步教学法比较适用于哪类学生?”这个问○题的回答中,适用于优秀生,并学习态度自觉、自学能力强的学生的有32位教师(约占78%),适用于中等生的4位教师,适用于后进生的4位教师,适用于全体学生的6位教师。13对“你认为异步教学法比较适用于哪些学科?”这个问○题的回答中,适用于理科的15位教师,适用于文科的1位教师,没有反映的26位教师;适用于数学学科的16位教师,适用于语文学科的14位教师,适用于科学学科的8位教师,适用于英语学科的5位教师,适用于社会学科的4位教师,适用于所有学科的5位教师。
14对“你认为异步教学法模式实施需要调整吗?”这个问○题的回答中,有30位教师(约占71%)认为需要调整,主要理由有:学习周期、测试周期要调整,不同学校、不同学科、不同内容要调整,不能用一种教学模式,教科书要调整;具体情况作调整等。没有反映的12位教师。
15对“异步教学法还有其他什么想法?问题?或建议?”○这个问题的回答中,有28位教师(约占67%)提出想法或建议。归纳起来主要建议有以下8点:要关注教师的情况,特别是教师的工作量,不能只顾学生;要专家指导、学校支持、教师分工合作;不同地方、不同学校、不同学生要灵活运用;要从小学开始培养学生的自学习惯和自学能力;要加强示范指导、在实践中学习;要增加可行性措施;要理论与实践联系、进行本校化;要以问题为中心实施教学;要与教师自身教学风格相结合。主要问题有以下5个:教师调控学生难;学生学业成绩下滑怎么办?操作不详细、缺少有效途径和方法;对学生如何评价(测试、考试等)问题;对教师评价(与现行优质课、骨干教师、“三坛”、“三名”、职称评审标准不一样)问题等。初步结论:
①教师原来基本上没有接触过“异步教学法”的理论和实践,所以教师对“异步教学法”的理论和实践的了解,理解还不是较到位。
②若在领导和专家的指导下,大部分教师是愿意进一步学习和实践“异步教学法”,但是,在实践过程中要作一些调整和本土化研究。
三、总结
1.引进和推进“异步教学法”有意义和可行。①教育教学改革趋势是实施素质教育,实施素质教育需要教学方式和学习方式的转变和优化。
②教育教学改革培养目标是培养学生做人的本领和做事的本领,为学生终身发展打好基础,学生要终身发展必须要学会学习,“异步教学法”有利学生学会学习。
③课程改革和新课程的主要理念是“以学生发展为本”,在教学中要体现“以学论教”和“用教材”,“ 异步教学法”的主要理念也是“以学论教”和“用教材”。
④温州教育要推进“三课”,即课程、课堂、课外,“三法”,即教法、学法、考法的研究、实施。“异步教学法”的引进有利“三课”、“三法”的研究和实施。
⑤通过市教育局进行“异步教学法”动员、学习、调研活动,校长、教师有所了解和理解,调研范围内的大部分学校领导和教师愿意在专家指导下尝试“异步教学法”。有思想基础。
2.调研中发现的问题和建议可以在引进和推进“异步教学法”的过程中通过研究、实施、分析、总结、优化而逐步解决和落实,可以探索出比较适合温州教育教学的“教情”和“学情”的“异步教学法”,总结出一些经验,逐步推广,提高教育教学质量。
3.综合调研情况中的初步结论、结合学校实际情况,根据学校申报情况。建议第一批进入“异步教学法”实验的学校7所。
①温州市第二实验中学;
②温州市第十九中学(宏德中学,自报)③华侨职业中专(自报)④瑞安市第三中学(自报)⑤平阳新纪元学校(自报)⑥平阳腾蛟二中 ⑦永嘉瓯北镇第五中学
参考文献:
1、黎世法 《异步教育学》 北京新华出版社出版
2003年10月。
2、黎世法 《新课程异步教学方法论》 北京学苑出版社出版
2003年10月。
2008年1月28日
(注:本调研报告是作者任温州市教育教学研究院副院长时撰写。作者现任温州市第十九中学书记、温州市特级教师协会副会长兼秘书长、教授、硕导)
第四篇:异步教学法
异步教学法
异步教学的理论和方法与新课程相结合,就产生了新课程异步教学模式。主要包括学生的学习系统、教师的指导系统、课堂教学系统、评价系统和实施系统等。
(一)学生的学习系统(学生的学习过程、学习规律和学习形式)
1、学生的学习过程
(1)宏观的十环节学习过程:制定计划——课前自学——专心上课——及时复习——独立作业——改正错误——系统小结——课外学习——记忆巩固——学习检查。它是学生学习一门课程或解决一个大的学习问题必须经过的学习过程。
微观的六步学习过程:提出问题:自学——启发——复习——作业——改错——小结。也可理解为自学——启发——小结——作业——改错——总结。它是学生解决每个不懂的学习问题的学习全过程,简称六步学习法,学生在课内外都可以使用。
学生大致是这样运用六步学习法的:学生根据教师、课文后面或自己提出的学习问题首先阅读课文,进行自学;若遇到了困难就进行自我启发,学生启发自己解决问题的途径很多,如问师长、问同学、看课文、查资料等;通过启发把问题解决后,学生就要对解决了的问题(学懂的知识)和应注意的事项进行复习归纳,使之系统化、概括化,成为基本理论和基本技术方法,并初步记住它;接着就运用归纳出的基本理论和技术方法指导自己边做作业,边检查改正作业中的错误,作业(尤其是必须完成的基本作业)做完后必须请一位同学批阅认可,这样才算真正完成了作业;然后再对经过作业实践检验的知识进行系统小结,检验基本理论和基本技术方法是否正确,并进一步记住它、将它运用到新的学习实践中去。
(2)学生的自主教育过程
八个基本:基本事实——基本理论——基本技术(方法)——基本技能——基本作业——基本综合学习实践成果——基本思维方法——基本生活态度。黎教授根据现代社会对人才的需求,将现代课程知识内容概括为八个基本。从“基本事实”到“基本生活态度”这八个基本中的每个基本都是现代学生所学知识的组成部分,是学生所学知识的基本内容链,它体现了知识产生和发展的基本过程。教师明确了它,就能将课文知识按照八个基本及其联系去提出问题、指导学生学习;学生理解了它,也可以按照八个基本及其联系自己提出问题自己解决。学生运用六步学习法去学习八个基本,就能掌握科学的学习过程和方法,培养能力;就能学会自主学习、自主探究创新、自主教育和科学思维;就能获得基础知识和基本技能,形成正确的情感态度和价值观。同步教学将所学的知识内容概括为“基础知识和基本技能”,反映了自由资本主义工业社会对所需人才素质要求不高、学生所学的知识内容少、简单的生产力发展状况。八个基本是对“基础知识和基本技能”的开拓和创新,为现代教学培养高素质人才提供了知识内容和自主教育过程。
(3)学生学习的思维过程
黎教授根据学生学习知识解决问题的过程,概括出了学生学习的思维过程是“举三归一,以一反类”: “通过对少量(举三)相关典型基本事实的分析,归纳出一个(归一)基本认识结论,然后运用这个基本认识结论(以一),去解决它所覆盖的一类(反类)问题。因为在一般情况下,“反类”不必穷类,也不可能穷类,所以这个思维过程也可简称为“三一三思维法”。
学生在学习过程中用“三一三思维法”进行思维,理解知识和培养自己的自学能力、创新能力、思维能力的效果就好。如教师要引导学生学习什么是三角形,给三角形下定义,就可用“三一三思维法”,他只要让学生选择几个(举三)有代表性的三角形进行分析研究,就可对三角形归纳出这样一个认识:由三条线段围起的几何图形,叫三角形。这个过程就是“举三归一”。然后,学生可以用这个认识,去识别摆在面前的许多几何图形。只要符合这个认识的图形,就是三角形,否则就不是。这个过程就是“以一反类”。
学生用六步学习法学习的过程就是一个“举三归一,以一反类”的过程:学生通过“自学”和“启发”,就会解决不同的学习问题(举三),然后通过“复习”,将“自学”“启发”解决的问题和学到的知识系统化、概括化(归一);然后用这一系统化概括化的知识作指导(以一),通过“作业”和“改错”去解决它所覆盖的一类问题(这就是反类或叫“反三”)。
“三一三思维法”是一个精学精练的过程,也是人们学习和进行科研的一般思维过程。
以上三个过程是一个统一的多功能的学习系统,学生的六步学习过程,实际就是学生运用“三一三思维法”,解决每个课文中大单元或小单元学习对象(间接经验或直接经验)中所包含的八个基本问题的过程。
2、学生学习的规律:
学生学习的主要规律有两条:(1)学生学习的基本规律是学习的个体性。学生学习的个体性指的是,学生是学习的主人,学习是学生自己的事,学生获得知识的过程是一个个体学习的过程。这个过程(特别是学生的思维过程),是其他任何人(包括教师)和物(包括现代信息技术)都不能代替的。学习的个体性规律为学生应该获得独立自主地学习权利和证明同步教学的不合理性找到了理论根源。遵循照这一学习规律进行教学才能正确处理学生内因与教师外因的正确关系,使教师的教学取得好的效果。古代教育家孔子深知学生个体学习的重要性,提出了“虽有佳肴弗食不知其旨也,虽有至道不学不知其善也”的著名论断;他还体验到只有按照每个学生的个体情况进行施教才能取得好的效果,因而提倡因材施教。同步教学的天然弊端之一就是违背学生的学习规律,不顾学生的个体差异,对基础能力不同的学生进行同步施教、统一要求;让教师以讲代学、让学生以听代学;不给学生提供独自看书学习的机会,扼杀了学生个性特长的发挥,不断地扩大着学生的个体差异,造成了学生两极分化和大面积不及格现象的出现。同步教学虽违背学生的学习规律,但在资本主义社会初期它还有比较好的市场:一是与个别教学相比,它能较快大批地为资本工业培养同一规格的初级人才;二是那时教师向学生讲的知识内容少、简单、不容易过时;三是学生的基础与教师所讲的知识接近,学生基本都能听懂。但在知识内容多、深、新、容易过时的知识经济时代,面对不同基础的学生,同步教学不但完成不好现代知识内容的讲授任务,更无法完成以培养自学能力和创新能力为主的现代教学任务。
(2)学生学习的成功规律是学习的基础性。学生学习的基础性指的是,学生要取得个体学习的成功,必须从学生个体的实际学习水平(学习基础)出发,不断地提出通过学生自己的努力能够实现的学习目标(当前应解决的学习问题),循序提高。主观冒进,欲速不达。在同步教学中常出现这样的问题:那些好学生总觉得教师讲得慢、烦,总想看新内容;那些中等生总是时而能听懂教师讲的内容时而跟不上,那些差后进生总觉得教师讲得内容离自己太远,甚至在听天书。什么原因呢?关键是同步讲课的方法和进度是根据统一的教学进度“一刀切”地安排的,脱离学生的基础(学情),因而不能满足不同学生的学习需要。异步教学根据学生的学习实际基础安排学习内容(根据大多数学生的学情提出问题,根据每个学生的具体学情进行异步指导、落实学习任务),实行学生学习的个体化、基础化,教师指导的异步化,既能激励优秀学生超前学更多的知识,又能使后进学生在自己的基础上快速提高、使每个学生都能学有所得。这就能大面积提高学生的学习成功率,进而为大面积提高教学质量、提高中华民族的整体素质奠定了基础。
江苏有个值得称赞的徐向洋,他看到那些厌学辍学、没学上的孩子在校外游逛非常痛心,就收下他们办学,首先通过整理内务、野营等活动对其进行自理和磨练意志的教育,然后组织他们学习文化课,这种高度的社会责任感和同情心真使人感动。学生厌学辍学、没学上的原因很多,但学生成绩差、听不懂课、失去学习的信心是主要原因,若不改变同步教学模式,继续对这些孩子实行脱离其基础的“一刀切”的同步教学,徐向洋的美好愿望仍会付之东流。因为“不怕学生成绩差,就怕脱离学生的实际基础进行教学”。
黎世法教授关于学生主要学习规律的发现是一个伟大的发现,这个发现对现代教学改革的价值就像马克思发现了商品对研究资本主义社会的价值一样重要金贵。这一发现揭示了人们学习的本质特征,为异步教学模式的创立提供了依据,为我们研究学生科学地学、教师科学地教、教为学科学服务开辟了道路,为指导人们认识和践行学生学习的规律、转变教学思想、进行教学改革奠定了理论基础。
3、学生的学习形式 黎世法教授将学生的学习形式归纳为两种:一是独学:学生独自1人运用科学的学习方法和思维方法,以及可利用的各种学习条件,遵循知识产生和发展的过程,进行自主学习。二是合作学习:主要指生生互动(学生与身边或远座位的同学研讨学习)和师生互动。“生生互动”包括两个学生一起研讨问题的“对学”和三、五个学生一起研讨问题的“群学”以及全组或全班一起研讨问题、交流学习心得的“全体学”。师生互动指学生请教老师,学生在独学和生生互动的学习过程中根据学习的需要可随时请教老师。学生的合作学习形式也可称为学生的互动方式。
异步教学科学地运用了独学和合作学习,正确地解决了二者间的关系。在两种学习形式中独学是基础,合作学习是为解决学生在独学中遇到的难题服务的。在教学过程中,学生运用独学还是运用合作学习(或者是运用合作学习中的“对学”、“群学”“请教老师”中的哪一种)形式,是由学生从效果出发,根据自己的学习实际需要决定(因为学生是学习的主人)的,不是教师强加给学生的,如果某学生觉得教师安排得合作学习不能提高自己的学习效果就可以不参与,而运用六步学习法按自己的学习计划去独学。异步教学认为:教师要让学生合作学习,必须在合作学习之前让学生通过独学对讨论的问题进行认真地思考和准备,否则合作学习就会成为低效或无效的,就会成为毫无意义的做秀合作。
以上学生的学习系统也可称作学生的学习方式。它是黎教授对数万名优秀中小学生学习经验的概括,是提高中小学生学习质量的基本学习方法。学生按这种方法进行学习,就能“实现由被动的接受知识向以探究的方式自主获取知识的转变”,就能成为学习的主人,就能取得较高的学习效率。在同步教学中,许多教师经常要求学生去自学,但总苦于向学生说不清科学系统的自主学习方法,而只能告诉给学生“注意听讲、预习、复习”等配合同步教学的方法。
第五篇:“异步”教学初探
浅谈“异步”教学
阿坝州九寨沟县永丰乡中心小学校 薛彦松
由于儿童神经系统的特点各不相同,心理和生理上存在先天差异,同时由于后天教育环境的影响,即使是同一个班的学生在智力、能力等方面也都各不相同。
多年来教学中采取的“一刀切”的教学模式往往忽视了学生的个体差异,以一部分中等生的能力及知识水平为标准,定同样的目的,做同样的练习,接受同样的考查,这种模式使优等生“吃不够”,后进生“吃不了”,难以提高质量,更不利于学生的发展。
为了克服传统教法的缺陷,全面培养学生能力,真正实施素质教育,就需要进行教法的改革和研究,而“异步教学”法就能够较好地实现教学目的。
所谓异步教学,就是把同一个班的学生,按基础与智能分成二至三个小组,制订不同的学习目的,分层次地进行教学,在教学中尊重学生的自然速度,遵循异步教学、分别脱钩的原则,使各组学生都能轻松自如地达到自己的学习目的。
实施异步教学,首先要从备课入手。要根据各组的情况制订教学目的,设计多层次的启发诱导方案,准备好多层次的教具和练习。
课堂教学是知识传播中的一个重要环节。是学生获得知识的重要途径,抓好课堂教学是提高教学质量的关键。异步教学的课堂教学形式可采用下面两种方式:
一、集体讲授,分别脱钩
首先面对全体学生讲授新教材,或提出需解决的问题,组织全体同学共同探求解答方法,寻找解题方案,在这个阶段能找到方法,并能加以应用的同学可首批脱钩(通常是高层次的同学)。完成作业。对未能脱钩的同学则由老师进行帮助,利用补例通过进一步的引导达到脱钩要求。在这部分同学完成作业的同时,检查前一部分同学的作业情况,布置较有深度的练习进行智力开发。
二、复式教学,分别脱钩
采取复式教学的形式,动静结合,自学与辅导结合,设计出不同层次的自学提纲进行教学,对高层次组的学生以自学为主,出示自学提纲后,让学生提纲自己看书,独自学习。教师则组织低层次组的同学集体复习,对所学内容进行初讲,领他们走第一步,然后布置自学提纲。这时教师再回头指导高层次组,通过答疑、讲解等手段解决自学中出现的问题,达到教学目的。这两个过程在课堂可反复出现,通过不断的动与静的交替使学生的学习达到一个新的高度。
实施异步教学有以下几点好处:
一、有效地克服教学上“一刀切”的弊端,能准确掌握学生的学习情况,切合实际的选择教法。
二、做到了“因材施教”,进一步调动了学生的学习积极性,每一层次的学生都有适合自己能力的学习内容及目的,使他们学得更轻松、更主动。
实施异步教学要求教师树立教好每一个学生信念,不能让一个学生掉队,要深入了解教材和学生实际,设计出多层次的启发诱导方案,要准备好多层次的教具和作业题,要有一定的复式教学技巧。