经由异步编程模型执行操作的制作方法

上传人:ting****789 文档编号:310050694 上传时间:2022-06-14 格式:DOCX 页数:4 大小:22.25KB
返回 下载 相关 举报
经由异步编程模型执行操作的制作方法_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《经由异步编程模型执行操作的制作方法》由会员分享,可在线阅读,更多相关《经由异步编程模型执行操作的制作方法(4页珍藏版)》请在金锄头文库上搜索。

1、经由异步编程模型执行操作的制作方法专利名称:经由异步编程模型执行操作的制作方法技术领域:本发明涉及分别根据权利要求1和7的前序部分的用于经由异步编程模型 (Asynchronous Programming Model)执行操作的方法禾口系统。背景技术:在当今的工业自动化的世界中,制造公司为了改进它们的生产能力和它们的竞争力,使用针对工业控制和自动化的IT基础设施。用于工业自动化的软件产品随着时间在范围和改进方面已增加,以便适应制造公司的多种需求。如制造企业解决方案协会(MESA国际组织)定义的那样,MES系统是通过管理“从订单释放点到制造到产品递送点到制成品的生产操作”并且通过“经过组织和供应

2、链经由双向通信向别人提供关于生产活动的任务关键信息”来“驱动制造操作的有效执行的动态信息系统”。为了改进制造厂的质量和工艺性能,MES系统通常包括的功能是资源分配和状况、 分派生产定单、数据收集/采集、质量管理、维护管理、性能分析、操作/细节调度、文档控制、劳力管理、工艺管理和产品跟踪。例如,Siemens公司提供其SIMATIC 产品系列下的多种多样的MES产品。在制造厂中,为了实现集成自动化的方法,各种配置实现灵活机器(flexible machine)概念的实施,所述灵活机器概念在中枢(backbone)中需要相当复杂且精细的软件解决方案。在开发复杂的软件架构(其中需要高性能)中,通常有

3、必要执行耗时的软件操作并且相应地定义用于达到和维持常常需求的所需性能的策略。将被执行的操作的示例可以包括一系列语句(statement),这包含可能是耗时的对数据库的访问请求。如本文所使用的那样,技术术语“作业(job)”指的是要被执行的此类操作。用于加速作业执行的一种已知使用的策略是以并行的模式、与托管应用的操作系统(OS)集成地进行执行。因此,现有技术使用多线程架构,其中在线程中执行作业。利用该方法,有可能在同一应用中并行执行多个作业。实施(implement)多线程应用的最公知的方式是具有等待作业被执行的线程池。例如,其主要任务是执行作业的普通线程(generic thread)被实施并

4、且执行状态被跟踪;其主要活动(activity)是协调线程池的线程调度器被实施并且按线程中的每一个来指派作业并且执行该作业。可以在使控制器得到要执行的作业以及等待作业的结果或其执行的通知的应用中使用线程池解决方案。根据所期望的应用的行为(behavior),可以使用动态列表或数组列表来实施线程池。该行为可以被定义为调度器为了指派并执行例如调度器中的作业而应用的逻辑,有可能限制并发线程的最大数目或者执行具有最大优先级的作业。如本领域所已知的以及在技术出版物例如“Win32 Multithreaded Programming,参考文献 1禾口Concurrent Programming On Wi

5、ndows,参考文献 2中所解释的那样,存在可以应用于多线程编程中的若干架构。然而,所有已知的架构共享两个主要问题,它们是复杂性和与托管该应用的OS的集成。就复杂性问题来说,当调度器和作业的需求增加时,所需的代码行的数目连同其复杂性一起相应增加。并且随着复杂性的增加,应用的维护变得更难。就与托管该应用的OS的集成的问题来说,非常重要的是清楚地知道调度器对其他程序的以及反过来的主要影响,以便优化集成过程,这归因于事实操作系统具有在同时运行若干程序时管理程序的行为的规则。此外,当软件工程师必须实施需要耗时的软件操作的应用时,它们不得不解决“竞态(race condition)”问题,即资源的冲突。

6、事实上,硬件具有其自己的有限资源,例如一个个人计算机被提供有给定数目的硬盘和CPU,并且可能发生的是必须从不同的作业访问相同的文件。多线程架构的另一缺点是,在多线程架构中同时执行多个作业不总是如此。事实上,不能以并行的模式来执行某种类的作业,例如当两个作业必须从同一文件读取或者必须写入到同一文件时。此外,期望发现一种解决方案,用于加速可在多个应用和多个不同种类中重复使用的操作的执行。用于解决上面提到的问题的某些明显的优点被基于在Microsoft. NET框架中提供的异步编程模型(APM)的编程方法提供。这样的方法改进了在并行模式中执行的作业的功能。事实上,APM模型定义用于编程异步操作的模式

7、,其允许异步操作的并发执行并且与Windows操作系统自然集成。然而,基于APM模型的作业执行的方法仍具有一些缺点。第一缺点是不能以串行化模式运行的作业没有利用APM模型的优点。第二缺点是是要以串行化模式还是以并行模式执行作业的“先验”判定提供不足的灵活性。第三缺点是利用APM模型方法不存在事件(例如作业的状态变化)的通知,除了完成执行的事件之外。发明内容因此,本发明的目标是通过提供一种用于经由APM来执行操作的方法和系统来克服上面提到的缺点。通过一种用于在MES系统中经由异步编程模型(下文中被称为APM)来执行操作 (下文中被称为作业)的方法和系统来实现前述目标,其中在应用中请求作业执行,包

8、括a)定义抽象Job类,用于利用其方法和属性来定义并实施普通作业的行为,包括下述三种方法i)用于作业执行的抽象方法(在下文被称为Execute);其中当实施从抽象Job类派生的类集合时,在Execute方法内在工程(engineering)时间实施要被执行的作业集合;ii)用于以异步模式执行作业的方法(在下文被称为ExecuteAsync);其中 ExecuteAsync方法通过遵循APM规则来运行Execute方法;iii)用于以同步模式来执行作业的方法(在下文被称为WaitForExecution);其中 WaitForExecution方法运行等待其完成的ExecuteAsync方法。b

9、)在运行时间,由应用通过直接调用ExecuteAsync方法来请求异步模式下的作业执行或者通过调用WaitForExecution方法来请求同步模式下的作业执行。在所提出的发明的实施例中,在条目b)中,当调用异步模式或同步模式下的作业执行时,指定执行超时的参数可以被有利地提供。在所提出的发明的实施例中,在条目b)中,当调用作业执行时,指定执行状态的参数可以被便利地提供。在所提出的发明的实施例中,指定执行状态的参数可以优选地获取选自包括下述各项的组的值-Undefined (未定义的) -WaitingExecution (等待执行) -Started (已开始)-CanContinueExec

10、ution (可以继续执行)-Cancelled (已取消)-Failed (失败的)-NotExecuted (不执行的)-Timeout (超时)-Completed (已完成)。在所提出的发明的实施例中,应用可以有利地是请求服务器的作业执行的客户端应用。此外,可以提供包括计算机程序代码的计算机程序元素(program element),当所述计算机程序代码被加载到计算设备的数字处理器中时其用于执行根据上文提到的方法的步骤。此外,可以提供存储在计算机可用介质上的计算机程序产品,其包括用于使得计算设备执行所提到的方法的计算机可读程序代码。所提出的发明的实施例允许在不实施复杂的软件架构的情况下

11、并行化耗时的作业的执行。所提出的发明的实施例与托管应用的OS集成,这归因于经由APM规则实施其的事实。所提出的发明的实施例执行优化OS的资源的作业。实际上,根据托管应用的OS 的有效负荷来优化耗费时间长的语句的执行。利用所提出的发明的实施例,通过抽象类Job、复杂作业的实施被简化,以使得编程更容易。事实上,软件工程师不需要写线程(它们是小的程序),而是仅仅使用类Job。软5件工程师必须仅仅实施一种方法,Exectue方法(具有作业的代码)。作业的较高等级的抽象被定义,从而允许软件工程师容易并快速实施新的作业。利用所提出的发明的实施例,用于作业执行的API可以被应用并且在不同应用中被重复使用,而

12、不需要再次对其进行编码。所提出的发明的实施例与Microsoft. NET构架完全集成,因为它们是使用其特征来实施的。利用所提出的发明的实施例,提出当作业要被执行时让软件工程师来决定其执行模式,以使得可以有利地根据运行时间场景的需求以串行化和并行模式二者来执行相同作业。利用所提出的发明的实施例,在作业执行期间事件可以被通知给请求的应用。现在将参考附图以优选的且非排他性的实施例来描述本发明,其中 图1是包含Job类的一个类图的图示;图2是包含Job类的四个附加类图的图示;图3是示意性图示根据本发明的示例实施例的作业的示例性状态机的框图; 图4是示意性图示根据本发明的示例实施例的Web应用中的示例

13、性场景的框图;以及图5是示意性图示根据本发明的示例实施例的用于web应用中的作业执行的示例性时序图的时序图。具体实施例方式根据本发明,在MES系统中,在应用中请求执行一个或多个作业。定义抽象Job类以便利用其方法和属性来定义并且实施普通作业的行为。除了别的之外,Job类包括三种方法抽象 Execute 方法、ExecuteAsync 方法以及 WaitForExecution 方法。在工程时间以Job类的派生类(derived class)来实施Execute方法,并且其包括要被执行的操作集合。例如,它可以包括以下语句中的一个或多个连接到数据库和查询, 连接到远程web服务、访问文件及其它。E

14、xecuteAsync方法通过遵循APM规则来以异步模式运行Execute方法。以这种方法,异步作业执行因为系统硬件资源的优化而最佳地利用所有的APM规则的优点。WaitForExecution方法通过运行ExecuteAsync方法同时等待其完成来以同步模式执行作业。在运行时间,可以在应用内通过直接调用ExecuteAsync方法来在异步模式下调用作业执行或者通过调用WaitForExecution方法来在同步模式下调用作业执行。在本发明的实施例中,本领域技术人员容易理解,客户端/服务器架构可以被提供,其中请求的应用可以是调用服务器中的作业执行的客户端应用。有利地,在调用作业执行的同时,还可

15、以提供指定Job执行的超时的参数。以这种方式,可以以下面四种不同的模式来便利地执行每个作业1.以同步模式,其中应用被锁定(lock)直到完成作业的执行为止;2.以具有超时的同步模式,其中应用被锁定直到完成Job的执行或者允许Job运行的时间段已达到为止;3.以异步模式,其中应用开始Job的执行但是它不停止并且它可以继续执行新的Job ;4.以具有超时的异步模式,Job的执行具有最大时间段;当应用开始执行时,它不被锁定,并且在超时的情况下,它停止并且取消Job。在图1和图2的类图D1、D2、D3、D4、D5中示出了用于作业执行的API,其应用APM 规则,定义类、属性、方法和枚举(enumera

16、tion)值。在包含用于作业执行的API的Job类的图1的类图Dl中,给出了抽象类Job,其利用其方法和属性来定义和实施普通Job的行为。在类图D2和D3中定义的其它类由抽象类 Job类按其方法和属性来使用。在包含由Job类使用的ExecutionJobMode的枚举值的类图D3中,给出枚举值ExecutionJobMode,其定义可以是同步或异步的执行模式。在包含由 Job 类使用的 JobCompletedEventArgs 类的类图 D2 中,给出类 JobCompIetedEventArgs,通知Job执行结束的事件的参数。在包含由Job类使用的JobStatusEventArgs的类图D4中,给出类 JobStatusEventArgs,通知Job的状态变化的事件的参数。在包含由Job类使用的JobStatusEnum的Enumeration值的类图D5中,给出 JobStatusEnum的枚举值,其包含Job可以采取的状态的值。例如,它可以仅具有以下

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号