CN103336705B - 脚本处理和工作流系统间的自动转码和语义自适应 - Google Patents

脚本处理和工作流系统间的自动转码和语义自适应 Download PDF

Info

Publication number
CN103336705B
CN103336705B CN201210331161.XA CN201210331161A CN103336705B CN 103336705 B CN103336705 B CN 103336705B CN 201210331161 A CN201210331161 A CN 201210331161A CN 103336705 B CN103336705 B CN 103336705B
Authority
CN
China
Prior art keywords
workflow
script
order
relevant
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210331161.XA
Other languages
English (en)
Other versions
CN103336705A (zh
Inventor
M·罗森贝格
B·G·帕耶特
J·P·斯诺弗
R·马克诺加
C·莫勒
N·拉克什曼安
H·马哈瓦
C·奥佩拉
L·霍姆斯
K·M·汉森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN103336705A publication Critical patent/CN103336705A/zh
Application granted granted Critical
Publication of CN103336705B publication Critical patent/CN103336705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

本发明涉及脚本处理和工作流系统间的自动转码和语义自适应。此处描述了用于通过在两种模型间自动翻译来组合工作流和脚本的特性的工作流脚本处理系统。使用该系统,脚本作者可使用熟悉的脚本处理语言动态地创建工作流,而工作流作者能够使用脚本处理步骤来执行动作。以此方式运行的工作流可被设置成在其自身的过程中执行以增强稳健性或效率。企业环境中的操作经常需要长时间并且容易遭受打断。通过为窗口环境添加工作流的可靠性概念,系统的用户能够编写脚本以解决大规模计算环境的共同需求。因此,工作流脚本处理系统混合了由工作流提供的可用资源以及脚本处理环境,以为IT人员提供多种强大的、先进的能力。

Description

脚本处理和工作流系统间的自动转码和语义自适应
技术领域
本发明涉及用于通过在两种模型间自动转换来组合工作流和脚本的特性的工作流脚本处理系统。
背景技术
计算环境的用户常常碰到想要使各种任务自动化的需求。终端用户可能希望使频繁被执行的各个任务自动化,而信息技术(IT)人员可被派以将跨许多计算机系统的大型任务自动化的任务。任务可包括诸如应用安装和维护、计算机设置、安全校验、更新系统和应用的目录等等之类的动作。
工作流提供了一种用于使计算环境中的任务自动化的方法。随着时间流逝,软件编程已从以诸如汇编之类的低级语言来编写应用演变为用像C++、C#以及Visual Basic之类的高级语言来编写。较高级的语言通常去除了对存储器的低级管理以及其它基于机器的限制,这有利于允许编程者更多地站在代表将要解决的问题的对象的角度来思考。然而,在应用逻辑中还是存在许多复杂之处,尤其是当管理异步处理时。诸如由MICROSOFTTMWINDOWSTM Workflow Foundation(WF,工作流基础)所提供的那些工作流之类的工作流提供了用于以高级方式将应用和服务逻辑系统地表示为一个或多个工作流的声明性框架。工作流由对应用的处理中的特定阶段进行处理的各个活动所组成。一组活动形成一个工作流。当应用等待来自其它组件的响应时,工作流可被暂停和继续,并且工作流特别好地适合异步编程以提高开发者的生产力。WF提供了用于声明工作流、有助于限定逻辑和控制流的活动、以及用于执行所得到的应用定义的运行时的工具集。
脚本处理提供了另一种用于使计算环境中的任务自动化的方法。脚本处理一般包括脚本处理语言和主机,该主机读取以脚本处理语言提供用来实现各种动作的指令的文本文件或控制台输入。与工作流不同,脚本一般不太正式,并且不要求与对于传统软件编程而言所公知的编程知识相同的知识。脚本可通过并不比文本编辑器和脚本主机更多的工具被快速地构建和测试。
不幸的是,这些现有方法完全站在了使任务自动化的对立面,并且每个方法都包含了使其应用于特定任务变得困难的限制。例如,构建工作流一般牵涉到设置编程环境(诸如MICROSOFTTMVisual Studio)以及获取开发和调试工作流的编程技巧。这限制了工作流的可访问性并且增加了使任务自动化的花费。受限制的编程者资源会变成完成这些事情的瓶颈。尽管对于小的、单机的任务来说很好,但脚本处理对于用于具有跨潜在的许多计算机系统的潜在的许多从属步骤的较长的任务来说困难得多。具体来说,脚本处理缺乏较高级编程语言中提供的那种差错检测和差错处理,并且在差错或意料之外的事件发生之后的停止、恢复、以及重启方面并不擅长。难以用脚本处理来执行的一组步骤的一个示例是任何牵涉到重新引导计算机系统的任务。一旦系统被重新引导,脚本就不再运行并且当计算机系统重启时无法在某个正确的点继续。
发明内容
此处描述了用于通过在两种模型间自动转换来组合工作流和脚本的特性的工作流脚本处理系统。使用该系统,脚本作者可使用熟悉的脚本处理语言动态地创建工作流,而工作流作者能够使用脚本处理步骤来执行动作。以此方式创建的工作流可以像传统工作流一样被停止和重启,但这一能力可通过脚本处理环境或命令窗口(command shell)来访问。另外,以此方式运行的工作流可被设置成在其自身的过程中执行以增强稳健性或效率。企业环境中的操作经常需要长时间并且容易遭受打断。传统的窗口脚本处理语言不被设计成在这些环境下高效运行或者大规模地运行操作。通过为窗口环境添加工作流的可靠性概念,系统的用户能够编写脚本以解决大规模计算环境的共同需求。因此,工作流脚本处理系统混合了由工作流提供的可用资源以及脚本处理环境,以为IT人员提供多种强大的、先进的能力。
提供本发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图说明
图1是示出一个实施例中的工作流脚本处理系统的组件的框图。
图2是示出一个实施例中的用于处理在脚本处理环境中接收到的与工作流有关的命令的工作流脚本处理系统的过程的流程图。
图3是示出一个实施例中的用于展示脚本处理环境中的工作流对象的工作流脚本处理系统的过程的流程图。
图4是示出一个实施例中的用于将现有工作流导入到脚本处理环境中的工作流脚本处理系统的过程的流程图。
图5是示出一个实施例中的工作流脚本处理系统的操作环境的框图。
图6是在一个实施例中的用于可视地示出使用脚本处理命令和使用脚本处理环境中的这些以及其它的工作流来创建新的工作流的过程的数据流程图。
具体实施方式
此处描述了通过在两种模型之间自动转换来组合工作流和脚本的特性的工作流脚本处理系统,使得脚本能够使用工作流且工作流能够使用脚本。使用该系统,脚本作者可使用熟悉的脚本处理语言动态地创建工作流,而工作流作者能够使用脚本处理步骤来执行动作。以此方式创建的工作流可以像传统工作流一样被停止和重启,但这一能力可通过脚本处理环境或命令窗口来访问(此处所使用的脚本处理环境可包括窗口或其它环境而无需传统的要通过其来提供命令的脚本处理语言)。另外,以此方式运行的工作流可被设置成在其自身的进程中执行以增强稳健性或效率(例如,通过并行化)。企业环境中的操作经常需要长时间并且容易遭受打断。传统的窗口脚本处理语言不被设计成在这些环境下高效运行或者大规模地运行操作。通过为窗口环境添加工作流的可靠性概念,系统的用户能够编写脚本以解决大规模计算环境的共同需求。
在相关工作中,已描述了使用诸如MICROSOFTTM WINDOWSTMPOWERSHELLTM之类的窗口环境的命令作为工作流活动的能力(参见例如美国专利申请号12/372,746,题为“将命令单元转换成工作流活动(CONVERTING COMMAND UNITS INTO WORKFLOW ACTIVITIES)”的专利申请)。工作流脚本处理系统通过利用窗口脚本处理环境中的工作流概念和本地对象、第一类的操作在这一工作上来构建(例如,它们可以在任何脚本中直接、容易地使用)。该系统通过工作流概念的应用增强了脚本处理环境和语言以支持规模可扩展的、高度可靠的、多机器的操作。该系统是窗口脚本处理语言和工作流服务的现有组件的合成和扩展,其有助于实现高度可靠并且规模可扩展的多机器管理,改进了工作流创作流程及其功能,并且提供了在企业环境中的故障和中断下存活的能力。
在一些实施例中,工作流脚本处理系统将与工作流有关的操作添加到现有的脚本处理环境中。例如,系统可添加提供用于并行地运行其它操作的关键词的“并行”操作、能够截取快照并存储工作流运行时状态的“持久存储”操作、能够从之前的错误或暂停状态恢复的“恢复”操作、以及适合在脚本处理环境中提供工作流行为的任何其它操作。当在脚本处理环境中接收到与工作流有关的命令时,系统将命令映射成适当的工作流对象(例如经编译的工作流或工作流主机本身),并且调用工作流对象以执行该命令。执行该命令可包括自动生成可扩展标记语言(XML)或用于构建工作流的其它中间数据(例如,可扩展应用标记语言(XAML)文件)、向工作流主机查询状态信息、调用工作流主机命令以开始/暂停/恢复工作流、等等。
在该命令期间或之后,系统可接收稳健性差错或状态信息。经修改的脚本处理环境允许脚本作者对这些差错作出反应并且以传统工作流方式直接根据脚本来处理这些差错。例如,作者可选择重启失败的命令序列、延迟执行命令直到另一时间、记录关于故障的信息、等等。另一方面,由此创建或分开创作的工作流还可调用由脚本处理环境所提供的命令。在一些实施例中,系统还包括调用手动创建的工作流元素的自动化的能力,诸如通过自动创建脚本处理命令以及用于查看和选择工作流动作参数的帮助信息。因此,工作流脚本处理系统混合了由工作流提供的可用资源以及脚本处理环境,以为IT人员提供多种强大的、先进的能力。
工作流脚本处理系统为IT人员提供了几种用于更有效率地通过脚本来利用工作流的有用的能力。首先,系统提供了将现有的脚本处理语言转码成工作流的能力。例如,系统可将WINDOWSTMPOWERSHELLTM语义映射成工作流语义。这包括将脚本处理语法映射成工作流活动以及标记差错、将活动打包在帮助功能中以提供一致的行为(例如,记录进度报告、设置状态检查点、遥控)的能力、等等。系统还提供将工作流参数和语义添加到现有命令行抽象中的能力。这些附加语义包括使用AsJob参数来执行作为后台作业或者使用PSComputerName参数来定标多个计算机的能力。系统还提供了分析工作流并且将多个执行单元分隔到不同环境(例如,各进程)中以管理安全性、容错性、性能以及并发性等等(除了处理工作流活动的执行以外)的能力。对此,系统通过将命令行语法映射成工作流运行时能力来实现。另外,系统提供工作流与帮助功能的自动打包,以提供丰富的、一致的命令行语义,例如调试、冗长、作为后台作业运行等等。相反地,系统扩展了工作流运行时以支持丰富的、一致的诸如多输出流(输出、差错、调试等等)之类的命令行语义、一致的命令行选项处理、等等。
工作流脚本处理系统包括工作流引擎与窗口脚本语言的完整集成,其通过允许工作流语义并将完整的集成保留在交互式窗口体验(交互式命令发现、在线帮助、等等)中的诸如“工作流”、“序列”以及“并行”之类的新语义元素的引入提供了以窗口脚本(例如,WINDOWSTM POWERSHELLTM或其它的)的格式定义工作流活动以及在工作流环境中使用这些活动的能力、以窗口脚本的格式定义工作流自身的能力。所使用的工作流引擎可以是系统内本地的或者由诸如WINDOWSTMWorkflow Foundation之类的现有工作流引擎所提供。系统还提供内建的管理任务库、用于将脚本处理语言转换成内建的工作流活动的编程方法、工作流公共参数(当现有语言命令被转换成工作流活动时,一组新的用于现有窗口脚本语言命令的参数变得可用),非处理中的活动的主控与执行(扩充窗口脚本处理语言运行时以应用工作流概念,该工作流概念允许用户运行处理中或非处理中的脚本的一部分而用户不必额外做任何事)、使用标准通知和事件仓库来记录、追踪工作流和工作流活动并将它们与其它语言命令和管理栈中的其它任务相关的能力(包括组件内的变量级上的跨全部易管理性组件的挂钩追踪能力)、将流处理集成到工作流环境以启用活动级进展报告以及将数据集插入各个位置的能力、以及工作流活动的耦合。
命令行会话示例
以下是使用WINDOWSTM POWERSHELLTM内的工作流脚本处理系统的带注释的示例命令行会话。第一示例示出根据命令行定义工作流的能力。以下文本表示用于在脚本处理环境内创建工作流的脚本。
这一示例工作流有几个有意思的方面。首先,“parallel(并行)”关键词的引入允许定义在工作流由工作流主机运行时将被同时执行的工作流中的动作。每个并行块包括一系列命令。为了说明的方便,每个块包含描述该块将在真实的工作流中被用来干什么的文本(例如,“Step 1(步骤1)”将用为该工作流实现作者的目的的任意步骤来替代)。如这一示例中所示,系统还为所生成的工作流提供了调用脚本和cmdlets(提供附加命令的WINDOWSTMPOWERSHELLTM扩展模块)的能力。脚本处理和工作流之间的转换是双向的。脚本可使用工作流概念,而工作流可使用脚本处理概念。“script(脚本)”关键词的使用展示了工作流中的内联脚本。“persist(持久存储)”关键词的使用展示了工作流的检查点。
下一示例示出从脚本内使用工作流以及与工作流交互的能力。会话结合以下工作流定义来运行,与前一示例很像,该工作流定义可使用WINDOWSTM POWERSHELLTM来提供在命令行中。
这一定义创建了称为“Test-Workflow”的工作流,其具有三个动作:1)显示任何WINDOWSTM POWERSHELLTM进程的状态;2)休眠20秒钟;以及3)显示关于(处理网络上接收到的WSMan请求的)WinRM服务的信息。定义这一工作流使得系统自动创建能够由工作流运行时所执行的XML(XAML)定义。定义可被显示如下。
注意的是,尽管这是一个相当简单的工作流,但创建该工作流将通常需要打开一个工作流编辑应用、充分地理解工作流以创建和使用正确的命令、以及随后构建该工作流。而使用工作流脚本处理系统,只需命令行中的几个简单的行就能完成以上工作。以下命令行运行该工作流作为新的作业。
PS C:\Wi ndows\system32>$j=Test-Workflow-AsJob
PS C:\Windows\system32>$j
Id Name State HasMo reData Location Command
1 Job1 Running True localhost Test-Workflow
如以下的行中所示,该作业可被挂起并且随后在另一工作站被拾起及控制,这些对于此前仅仅采用脚本处理来说是不可能的。另外,该作业可在系统重新引导和重启或恢复之后被拾起。
PS C:\Wi ndows\system32>Suspend-Job$j
PS C:\Wi ndows\system32>get-job
Id Name State HasMo reData Location Command
1 Job1 Suspended True local host Test-Workflow
5 Job49 Suspended True localhost Join-Domain
PS C:\Windows\system32>Receive-Job 1-Keep
Handles NPM(K)PM(K)WS(K)VM(M)CPU(s)Id ProcessName
634 38 80996 94072 643 9.58 3428 powershell
286 20 54768 58696 590 0.61 5860 powershell
PS C:\Wi ndows\system32>$j
Id Name State HasMoreData Location Command
1 Job1 Suspended True localhost Test-Workflow
PS C:\Windows\system32>get-job
Id Name State HasMoreData Location Command
1 Job1 Suspended True l ocal host Test-Workflow
5 Job49 Suspended True l ocal host Join-Domain
PS C:\Windows\system32>ipmo PSWorkflow
PS C:\Windows\system32>get-job
Id Name State HasMoreData Location Command
3 Job49 Suspended True localhost Join-Domain
4 Job1 Suspended True localhost Test-Workflow
PS C:\Windows\system32>Receive-Job-Name job1-Keep
Handles NPM(K)PM(K)WS(K)VM(M)CPU(s)Id ProcessName
634 38 80996 94072 643 9.58 3428 powershell
286 20 54768 58696 590 0.61 5860 powershell
PS C:\Windows\system32>Receive-Job-Name job1
Handles NPM(K)PM(K)WS(K)VM(M)CPU(s)Id ProcessName
634 38 80996 94072 643 9.58 3428 powershell
286 20 54768 58696 590 0.61 5860 powershell
Status:Running
Name:winrm
DisplayName:Windows Remote Management(WS-Management)
PS C:\Windows\system32>get-job
Id Name State HasMoreData Location Command
3 Job49 Suspended True localhost Join-Domain
4 Job1 Completed False localhost Test-Workflow
PS C:\Windows\system32>get-job|remove-job-force
PS C:\Windows\system32>get-job
最后的示例显示了为未明确定义用于脚本处理环境的公共参数的工作流自动创建该公共参数。
PS C:\Windows\system32>import-Module Get-Inventory.xaml
PS C:\Windows\system32>Get-Inventory-PSComputerName Machine1,
Machine2,Machine3-PSCredential foo@contoso.com-AsJob-JobName
MyJob
这一示例显示了像WINDOWSTM POWERSHELLTM中公共的PSComputerName以及PSCredentials之类的参数,这些参数由用于XML定义的工作流的系统自动创建。该示例还示出了使用“Import-Module(导入模块)”命令来根据XAML定义直接将工作流导入到WINDOWSTMPOWERSHELLTM中以供后续执行。
系统组件
图1是示出一个实施例中的工作流脚本处理系统的组件的框图。系统100包括脚本处理主机组件110、命令接收组件120、工作流命令组件130、工作流转换组件140、工作流主机组件150、主机间通信组件160、工作流执行组件170以及脚本动作组件180。这些组件中的每一个都在此处进一步详细讨论。
脚本处理主机组件110包括能够接收用于执行任务的脚本命令的脚本处理环境。脚本处理主机组件110可包括经修改以实现此处所描述的系统100的现有脚本处理环境,诸如WINDOWSTM POWERSHELLTM。脚本处理环境可提供命令提示符、翻译用一种或多种脚本语言(例如,JavaScript、VBScript、Perl等等)编写的命令、以及执行命令所指定的任务。脚本处理主机组件110可包括可执行文件(例如,powershell.exe、cscript.exe等等),用户运行该可执行文件来调用为脚本处理环境提供接口的进程。脚本处理环境可包括用于接收文本文件或其它命令列表的接口、用于动态输入命令的接口(例如,命令提示符)、用于编程地接收来自其它源(例如数据库或远程控制台)的命令的接口、等等。为了执行所接收的命令,脚本处理主机组件110可调用提供计算机系统所展示的各种功能的一个或多个外部组件或应用编程接口(API)。
命令接收组件120接收并解释提供给脚本处理主机组件110的用户界面的命令。命令接收组件120可被设计成识别执行脚本处理环境的公知核心任务(诸如加载脚本文件、导入定义附加命令的模块(例如,cmdlets)、显示状态信息等等)的一个或多个关键词。命令接收组件120还识别由对此处所描述的系统100的一种实现添加到脚本处理环境中的一个或多个与工作流有关的命令。工作流命令可包括用于定义工作流、定义工作流动作、定义工作流动作如何执行(例如,并行或串行)、监视工作流的状态、检索工作流差错或其它信息等的关键词、参数以及其它定义。当检测到与工作流有关的命令时,命令接收组件120将命令传递给工作流命令组件130以供处理。
工作流命令组件130接收并处理与工作流有关的脚本命令。这些命令可属于各种类别,组件130可不同地处理这些类别中的每一个。例如,被设计用来创建工作流的命令可使组件130存储用于持久存储与使用命令来创建的任何工作流有关的信息的工作流定义。在一些实施例中,组件130可调用工作流转换组件140来在用于定义工作流的脚本处理关键词与工作流框架所使用的标准工作流格式之间进行转换。例如,XAML被用于通过WINDOWSTMWorkflowFoundation来定义工作流,而工作流转换组件140可基于定义工作流的任何工作流脚本命令来输出XAML。诸如那些询问工作流状态的其它工作流命令可使工作流命令组件130调用工作流主机组件150来确定关于工作流的更多信息。例如,诸如WINDOWSTMWorkflow Foundation之类的工作流框架提供用于访问工作流主机以及询问工作流状态的API。因此,工作流命令组件130可对基于脚本的与工作流相关的命令的语义进行转码或适配以调用工作流框架的适当的API来实现脚本的目的。
工作流转换组件140将定义工作流的与工作流有关的脚本命令转换成工作流主机组件150所识别的标准工作流定义格式。传统地,工作流通过使用诸如MICROSOFTTMVisualStudio或其它开发环境之类的工作流编辑用户界面来创建,并且随后以诸如WINDOWSTMWorkflow Foundation所使用的XAML之类的标准工作流格式来存储。工作流转换组件140可直接将脚本命令转换成与所存储的诸如XAML元素之类的对象的一个或多个交互,以直接根据脚本或命令提示符来定义工作流。以此方式创建的工作流对于即使没有开发或相关经验的IT人员来说更容易访问,并且可由即时可用的组件快速地创建而无需安装专用的工作流创作环境。例如,MICROSOFTTM WINDOWSTM 7及其后版本包括即用型的WINDOWSTM POWERSHELLTM,其可被修改以实现此处所描述的系统100。其它操作系统提供可以类似方式使用的其它脚本处理环境。
工作流主机组件150主控用于提供编程模型和引擎的工作流以将商业过程实现为工作流。WINDOWSTMWorkflow Foundation是提供工作流主机的框架的一个示例。工作流脚本处理系统100可利用这些现有主机或提供其自己的主机用于主控托管工作流。工作流主机组件150可提供工作流的处理中执行、工作流的非处理中执行、工作流的远程主控托管、或由系统100的用户所选取的以上的任何选择。非处理中执行对于增强稳健性和避免使脚本处理主机进程中断的差错来说会是有用的。远程执行对于执行影响远程计算机系统的工作流动作来说会是有用的。工作流主机组件150执行传递给它的特定工作流的动作,并且提供一组稳健的用于调用工作流、定义如何执行工作流、检查工作流状态、管理处理中的工作流作业、接收差错并记录关于之前尝试过或者已完成的工作流动作的信息等等的服务和API。
主机间通信组件160在脚本处理主机组件110和工作流主机组件150之间通信。在不同时间,工作流主机组件150可以在与脚本处理主机相同的进程中、与脚本处理主机相同的机器上的进程外、远程机器上、以及以上的任意组合中运行工作流动作。主机间通信组件160提供了脚本处理主机和工作流主机之间的链接,使得脚本能够获取状态信息、开始和停止工作流作业、以及执行与工作流有关的其它动作。主机间通信组件160可包括使用各种通信协议(诸如WS管理协议或其他)中的任意一种的传输服务以及传输服务客户机。组件160可利用各种公知的通信标准,以供进程间通信、网络通信等等。
工作流执行组件170执行来自脚本处理环境内的工作流动作。脚本处理环境可导入之前创建的、存储为XAML文件或另一种持久的数据格式的工作流,并且可通过执行工作流来执行工作流所指定的动作。组件170可调用分开提供的工作流主机或者可直接执行工作流。组件170可基于该工作流被设计为影响哪些计算机系统(例如,该工作流是运行在远程计算机系统还是本地计算机系统上)、将运行工作流多长时间、需要什么类型的稳健性等等来确定如何运行工作流。
脚本动作组件180提供了用于调用来自工作流动作内的脚本命令的打包器。工作流由称为活动的功能块组成,并且通常受限于由工作流设计环境提供的任何块。在此处所描述的系统100的例子中,这些环境被扩展以提供对于大量的可用脚本命令集的访问,包括那些随时间由第三方通过像WINDOWSTMPOWERSHELLTMcmdlets一样的可扩展框架添加的脚本命令。这允许此处所描述的这种双向益处,其中脚本处理环境可利用工作流,而工作流可利用脚本处理环境。
在其上实现该工作流脚本处理系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定点设备)、输出设备(例如,显示设备)和存储设备(例如,盘驱动器或其他非易失性存储介质)。存储器和存储设备是可以用实现或启用该系统的计算机可执行指令(如软件)来编码的计算机可读存储介质。此外,数据结构和消息结构可被存储在计算机可读存储介质上。本文所要求的任何计算机可读介质包括仅那些落在法定可受专利保护的类别中的介质。该系统还可包括一个或多个通信链路,通过通信链路可传送数据。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
该系统的实施例可以在各种操作环境中实现,这些操作环境包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、数码相机、网络PC、小型计算机、大型计算机、包括上述系统或设备等中任一种的分布式计算环境、机顶盒、片上系统(SOC)等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
该系统可以在由一个或多个计算机或其他设备执行的诸如程序模块等计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
功能操作
图2是示出一个实施例中的用于处理在脚本处理环境中接收到的与工作流有关的命令的工作流脚本处理系统的过程的流程图。在块210开始,系统在脚本处理环境内接收命令。可经由显示在命令控制台中的命令提示符、经由之前加载的包含脚本命令的文本文件、或者通过提供脚本命令的任何其它源来接收命令。命令可包括标识命令的关键词、与命令相关联的一个或多个参数、或与命令有关的任何其它的补充信息。
在块220中继续,系统确定所接收的命令是否与工作流有关,并且如果是的话在块230中继续,否则系统完成并以传统方式处理命令。该系统可识别一个预定义的工作流命令列表,并且可提供可扩展模型,该可扩展模型允许通过扩展脚本处理环境来添加和识别新的工作流命令。与工作流有关的命令可创建新的工作流、定义工作流动作、请求工作流状态、执行或恢复工作流等等。
在块230中继续,系统标识与所接收的命令相关联的工作流。该命令可根据名称或其它标识符来标识工作流。该命令可创建新的工作流或请求执行或接收关于之前创建的工作流的状态信息。之前创建的工作流可能已通过此处进一步描述的脚本处理环境创建,或者可能已使用工作流设计/编辑环境以更传统方式创建。在一些例子中,标识工作流可以是隐式的而非显式的。例如,一个可替换实施方式可仅仅假设所有都是工作流模式中的工作流。
在块240中继续,如果所接收的命令定义了新的工作流,则系统在块250中继续,否则系统跳转到块260。命令可与用来创建工作流的一系列命令相关联。例如,“工作流”命令关键词可在脚本中标记工作流创建块的开始,并且圆括号或其它分割符内的其它命令可指定关于脚本将创建的工作流的动作和其它信息。
在块250中继续,系统创建由接收到的一个或多个命令所描述的新的工作流。系统可在存储器中创建工作流以及将工作流持久存储在诸如XAML文件之类的公知的工作流存储格式中。持久存储的格式可以是能够使用工作流设计工具来读取和编辑的格式,并且是能够被可执行工作流的动作的工作流主控软件所识别的格式。系统允许用户使用脚本处理环境来执行非常强大的任务,但是用户不受限于脚本处理环境,并且可以在使用脚本命令以及使用其它工具来处理工作流之间自由地切换(例如,以便定义可从工作流设计者环境中受益的高级动作)。
在块260中继续,系统将所接收到的与工作流有关的脚本处理命令转换成工作流主机所识别的一个或多个工作流操作。转换可包括访问和调用与工作流相关联的对象模型、调用工作流主机的API、加载或持久保存所存储的工作流、等等。转换可将在脚本处理命令提示符处以一种格式接收的参数转换成被传递给API的对象调用参数。系统执行适合于脚本处理环境正使用的工作流引擎的转换。
在块270中继续,系统将经转换的工作流操作提供给工作流主机,以执行所接收的与工作流有关的命令。例如,如果命令请求处理中的工作流的状态,则系统可将该状态请求转换成对于工作流主机的API调用,调用该API,接收API结果,并将结果转换成脚本处理环境中的命令行状态显示。
在块280中继续,系统从工作流主机接收响应于所提供的操作的操作结果。结果可包括文本信息、编程对象(例如,日期、差错对象、或其它对象)、对于内存中的工作流对象的引用、等等。系统将结果转换成能够被用于脚本处理环境内的格式。例如,系统可提供用于在后续脚本处理命令中引用相同工作流的数字标识符、向命令控制台显示文本、检索附加的差错信息以及显示描述性文本、等等。在一些例子中,结果可简单地指示操作成功完成,并且系统可显示“OK”或其它指示。
在块290中继续,系统响应于所接收的操作结果在脚本处理环境中显示状态信息。在框290之后,这些步骤结束。
图3是示出一个实施例中的用于展示脚本处理环境中的工作流对象的工作流脚本处理系统的过程的流程图。在块310中开始,系统接收标识包括在脚本中的工作流命令的脚本创作请求。许多脚本处理环境提供具有诸如自动完成之类的特性的命令提示符,环境为该特性在命令提示符处提供了可能的参数列表或者与脚本命令有关的其它信息。在工作流的例子中,系统通过以下步骤生成待响应于该请求而显示的信息:加载工作流、导入其补充信息(例如,动作、参数等等)、将该信息转换成能够从脚本中使用的形式、以及将经转换的信息显示给用户。
在块320中继续,系统响应于该创作请求标识一个或多个工作流对象。例如,用户可能已经开始键入之前创建的或导入的工作流的名称、或者可能正在键入与预定义的与工作流有关的命令相关联的关键词。系统标识命令可能正引用以为其提供有帮助的信息的对象。例如,对象可包括一动作(该动作是工作流的子集)、工作流作业标识符、或任何其它与工作流有关的对象。
在块330中继续,系统标识与所标识的工作流对象相关联的一个或多个参数。参数可包括对象能够在其上执行的计算机名称、将在其下执行对象的用户帐户的凭证信息、文件名、或应用于特定标识的工作流对象的任何其它参数信息。
在块340中继续,系统将所标识的工作流对象参数转换成允许在脚本中提供参数的格式。这可包括创建一个或多个参数标志或关键词(例如,用于“名称”参数的“-名称”)、创建可用参数的列表、将具体类型的参数转换成意思等同的文本(例如,允许日期对象被指定为文本日期,诸如“1/1/2011”)、等等。
在块350中继续,系统在脚本处理环境中向用户显示关于经转换的工作流对象参数的信息。系统可在命令提示符处显示帮助信息、在悬浮的窗口或列表中弹出命令完成信息、或以有助于脚本作者使用来自脚本内的工作流对象的任何其它方式提供关于工作流对象的信息。在框350之后,这些步骤结束。
图4是示出一个实施例中的用于将现有工作流导入到脚本处理环境中的工作流脚本处理系统的过程的流程图。导入现有工作流的能力允许脚本处理环境与工作流一起使用而无论它们是如何或何时被创建的。工作流不需要为了在脚本处理环境中使用而已经在脚本处理环境中被创建。
在块410中开始,系统接收导入现有工作流以在脚本处理环境中使用的请求。请求可包括用于访问现有工作流的信息,诸如访问存储工作流的文件的文件路径、对存储工作流的数据库的数据库引用、或由于定位及访问之前定义的工作流的任何其它标识符。请求可包括被添加到脚本处理环境中的、用于支持使用来自脚本处理环境的工作流的预定义脚本命令。
在块420中继续,系统访问现有工作流并加载用于在脚本处理环境中使用工作流的信息。例如,系统可访问存储工作流的XAML文件,枚举XAML文件的XML元素以读取工作流说明,以及准备用于执行工作流上的进一步操作的存储器内的对象。
在块430中继续,系统分析指定了由现有工作流执行的任务的一个或多个工作流动作。使用之前的示例,系统可从XML文件加载工作流并且读取指定了工作流的动作的XML元素、与各个动作相关联的任何步骤、各个动作的参数、等等。
在块440中继续,系统创建用于与工作流动作一起工作并且指定与工作流有关的输入信息的一个或多个与脚本有关的参数。例如,用于设置计算机系统的工作流可接收指定了设置哪个计算机系统、安装哪些应用等等的输入。脚本参数允许脚本作者在调用工作流或调度工作流用于以后执行时,直接在脚本处理环境内指定工作流输入信息。
在块450中继续,系统等待与工作流有关的附加命令。例如,脚本作者可与来自脚本处理命令提示符的工作流一起工作以提供参数、调用工作流、检查工作流的状态、重启或暂停工作流、接收差错和/或进度信息等等。在框450之后,这些步骤结束。
图5是示出一个实施例中的工作流脚本处理系统的操作环境的框图。环境包括三个分开的、其上运行着系统的各部件的计算机系统。第一计算机系统是客户机510,用户可从客户机510访问脚本处理环境。脚本处理环境包括工作流命令组件515和传输服务客户机520。如此处将进一步描述的,工作流命令组件515在脚本处理环境中接收并处理与工作流有关的命令。传输服务客户机520与其它计算机系统通信以执行工作流命令。第二计算机系统提供工作流服务530。工作流服务530包括传输服务535、活动主机进程540、以及工作流引擎545。传输服务535接收从客户机410发送的命令并将其提供给工作流引擎545。工作流引擎545管理工作流的执行,无论是本地的还是在远程计算机系统上。活动主机进程540主控一个或多个工作流活动以在本地机器上执行其步骤。第三或附加计算机系统包括一个或多个受管理的节点550,节点550执行工作流活动或者是工作流活动的主体。例如,如果工作流活动包括格式化远程计算机系统的硬盘,则受管理的节点550会让将被格式化的硬盘所位于的节点存在。受管理的节点可还被用于将密集处理分离到分开的计算资源上。受管理的节点550可包括用于与活动主机进程540和/或工作流引擎545通信的一个或多个远程处理协议555。
图6是在一个实施例中的用于可视地示出使用脚本处理命令和使用脚本处理环境中的这些以及其它工作流来创建新的工作流的过程的数据流程图。脚本610包括用于创建工作流的一个或多个命令。分析将脚本610转换成抽象语法树(AST)620,其可被转码成工作流概念并使用工作流引擎或其它校验来验证。转码创建包括一个或多个活动的工作流630。系统还可创建一个或多个活动适配器640,其允许在脚本处理环境内与工作流的活动交互。活动适配器640可将活动的参数、输出、或与活动相关联的其它信息打包以将该信息转码为适合脚本处理的形式。工作流命令适配器650识别并响应与新创建的工作流630有关的命令。工作流命令适配器650还可与以诸如通过工作流编辑器或设计者等其它方式创建的工作流660交互。
在一些实施例中,工作流脚本处理系统提供自动扇出以在多个计算机系统上执行工作流而无需脚本作者介入。系统自动提供参数,诸如用于指定工作流或工作流活动将在哪里运行的WINDOWSTM POWERSHELLTMPSComputerName参数。另外,系统可基于可用资源、对资源的调度、对相关的其它资源(例如,数据库、网络等)的访问等等来提供对于在哪里运行各种工作流的自动选择。系统还可提供在其上执行工作流的可用计算机的自动生成的列表,以解放脚本作者,使其不必分开地枚举计算机并选择一个。
在一些实施例中,工作流脚本处理系统输出各个已创建工作流的持久的版本(例如,使用XAML)。这允许用脚本处理环境之外的其它基于工作流的工具来编辑或使用工作流。系统可创建持久存储的格式而无需脚本作者具有关于XAML、Workflow Foundation、或其它工作流框架的任何知识。
在一些实施例中,工作流脚本处理系统允许脚本用户管理来自多个脚本处理环境的工作流,并且从一个脚本处理环境移动到另一个并且管理相同的工作流。例如,使用WINDOWSTM POWERSHELLTM或类似脚本处理环境的管理员能够从一个计算机系统中启动工作流,并且之后从位于另一计算机系统上的WINDOWSTM POWERSHELTM实例中检查工作流的状态。
在一些实施例中,工作流脚本处理系统使用WINDOWSTMWorkflowFoundation来提供用于工作流的可扩展持久存储。例如,尽管系统可默认在文件系统中存储工作流,但特定的安装可将文件存储替换为SQL数据库以存储工作流。这允许工作流可在整个公司或其它组织中被共享并且可从组织内的任何计算机系统访问。
在一些实施例中,工作流脚本处理系统将工作流的执行期间的差错捕捉到脚本处理环境差错流中。通常,来自工作流的差错信息不会在脚本中可用,直到脚本完成(例如,完成之后的“作业失败”差错),因此正在运行的工作流不会提供任何信息直到完成。然而,通过工作流脚本处理系统,工作流进展被更新到WINDOWSTM POWERSHELLTM差错流中或其它脚本处理环境状态流。这允许在工作流仍然在运行时检查工作流的状态并且实时提供工作流状态。工作流可随后被暂停并且随后基于组织的要求按需恢复。工作流输出是工作流在其被生成时很少提供的重要的流,但是在工作流脚本处理系统内很容易提供。
在一些实施例中,工作流脚本处理系统允许工作流被作为特定用户运行。由于状态被持久保存在工作流中(即使经过多次重新引导),这意味着工作流可作为特定用户运行(即使经过计算机系统的多次重新引导),这在目前是困难的。
在一些实施例中,工作流脚本处理系统包括允许工作流请求管理性干预的“挂起工作流”操作。如果工作流检测到其在缺少管理员干预的情况下不能继续,则工作流可请求工作流的挂起。这将给管理员克服问题并且恢复工作流的机会。
从上文将会认识到,虽然在此已出于说明目的描述了工作流脚本处理系统的特定实施例,但是可以做出各种修改而不背离本发明的精神和范围。因此,本发明只受所附权利要求限制。

Claims (14)

1.一种用于处理在脚本处理环境中接收到的与工作流有关的命令的计算机实现的方法,所述方法包括:
接收(210)脚本处理环境中的命令;
通过识别一个或多个与工作流有关的命令来确定所接收的命令是所述脚本处理环境的核心任务的命令还是与工作流有关的命令,其中所述与工作流有关的命令包括一个或多个关键字、参数或其他用于下述至少一项处理的元数据:定义工作流、定义工作流动作、定义工作流动作如何执行、监视工作流的状态、检索工作流差错或检索工作流数据;
当所接收的命令不是与工作流有关的,则以脚本处理环境的传统方式处理所接收的命令;
当所接收的命令被确定为是与工作流有关的,则标识(230)与所接收的命令相关联的工作流;
将所接收的与工作流有关的脚本处理命令转换(260)成工作流主机所识别的一个或多个工作流操作;
将经转换的工作流操作提供(270)给所述工作流主机以执行所接收的与工作流有关的命令;以及
从所述工作流主机接收(280)响应于所提供的操作的操作结果,其中上述所有步骤是由至少一个处理器执行的。
2.如权利要求1所述的方法,其特征在于,确定所接收的命令是与工作流有关的命令包括确定所述命令包括属于工作流命令的预定义列表的成员的关键词,或者所述命令提供了标识所述命令是与工作流有关的命令的其它信息。
3.如权利要求1所述的方法,其特征在于,确定所接收的命令是与工作流有关的命令包括确定所述命令标识之前创建的工作流。
4.如权利要求1所述的方法,其特征在于,标识工作流包括将命令数据和与所述脚本处理环境所识别的工作流相关联的标识符相匹配。
5.如权利要求1所述的方法,其特征在于,还包括确定所接收的命令要请求创建新的工作流,以及创建所接收的命令所描述的新的工作流。
6.如权利要求5所述的方法,其特征在于,创建新的工作流包括将所述工作流持久存储成可由一个或多个工作流工具读取的工作流存储格式。
7.如权利要求1所述的方法,其特征在于,转换所接收的命令包括访问和调用与工作流相关联的API。
8.如权利要求1所述的方法,其特征在于,转换所接收的命令包括将在脚本处理命令提示符以一种格式接收的一个或多个参数转换成可被传递给工作流主机的API的对象调用参数。
9.如权利要求1所述的方法,其特征在于,将经转换的工作流操作提供给工作流主机包括将状态请求转换成对所述工作流主机的API调用以及调用所述API。
10.如权利要求1所述的方法,其特征在于,接收操作结果包括将从所述工作流主机接收的信息转换成由所述脚本处理环境所可以显示的文本信息。
11.如权利要求1所述的方法,其特征在于,接收操作结果包括接收所标识的工作流的执行期间的差错信息。
12.一种用于在脚本处理和工作流系统之间自动转码及语义自适应的计算机系统,其特征在于,所述系统包括:
脚本处理主机组件(110),其包括能够接收用于执行任务的脚本命令的脚本处理环境;
命令接收组件(120),其接收并解释提供给脚本处理主机组件的用户界面的命令,所述命令接收组件还被配置为确定所接收的命令是所述脚本处理环境的核心任务的命令还是与工作流有关的命令,并且还进一步被配置为识别一个或多个与工作流有关的命令,其中所述与工作流有关的命令包括一个或多个关键字、参数或其他用于下述至少一项处理的元数据:定义工作流、定义工作流动作、定义工作流动作如何执行、监视工作流的状态、检索工作流差错或检索工作流数据;
工作流命令组件(130),其接收并处理与所述命令接收组件所标识的工作流有关的脚本命令;
工作流转换组件(140),其将定义工作流的与工作流有关的脚本命令转换成工作流主机所识别的标准工作流定义格式;
工作流主机组件(150),其主控用于提供编程模型和引擎的工作流以将商业过程实现为工作流;
主机间通信组件(160),其在所述脚本处理主机组件和所述工作流主机组件间通信以执行所转换的命令;以及
工作流执行组件(170),其执行来自所述脚本处理环境内的工作流动作。
13.如权利要求12所述的系统,其特征在于,所述工作流命令组件接收用于创建工作流的一个或多个命令,并且作为响应,存储要将信息持久存储在存储器中的工作流定义或使用描述所创建的工作流的其它存储。
14.如权利要求12所述的系统,其特征在于,所述工作流转换组件将在所述脚本处理环境中接收的信息转换成与所存储的表示工作流的对象的一个或多个交互。
CN201210331161.XA 2011-09-09 2012-09-07 脚本处理和工作流系统间的自动转码和语义自适应 Active CN103336705B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161533129P 2011-09-09 2011-09-09
US61/533,129 2011-09-09
US13/270,227 2011-10-11
US13/270,227 US8910166B2 (en) 2011-09-09 2011-10-11 Automatic transcoding and semantic adaptation between scripting and workflow systems

Publications (2)

Publication Number Publication Date
CN103336705A CN103336705A (zh) 2013-10-02
CN103336705B true CN103336705B (zh) 2016-12-21

Family

ID=47831056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210331161.XA Active CN103336705B (zh) 2011-09-09 2012-09-07 脚本处理和工作流系统间的自动转码和语义自适应

Country Status (2)

Country Link
US (1) US8910166B2 (zh)
CN (1) CN103336705B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8849747B2 (en) * 2012-04-24 2014-09-30 Sap Ag Business process management
US9384466B2 (en) * 2012-09-26 2016-07-05 Oracle International Corporation Systems and methods for extending any service to existing systems by using an adaptive common interface
JP2014182411A (ja) * 2013-03-15 2014-09-29 Ricoh Co Ltd 情報処理装置、ネットワークシステム、処理実行方法及び処理実行プログラム
EP3049916B1 (en) * 2013-09-24 2021-12-22 Telefonaktiebolaget LM Ericsson (publ) Simplified creation of an application in a selected stream processing platform
CN104077223B (zh) * 2014-07-04 2017-01-04 宁波三星智能电气有限公司 一种智能计量产品检测系统
CN104461721B (zh) * 2014-12-11 2017-11-14 北京国双科技有限公司 工作流的调用方法和装置
CN105302581B (zh) * 2015-12-02 2019-01-11 南京莱斯信息技术股份有限公司 基于脚本引擎的工作流事件机制实现方法
US10642896B2 (en) 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US10650046B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Many task computing with distributed file system
US10650045B2 (en) 2016-02-05 2020-05-12 Sas Institute Inc. Staged training of neural networks for improved time series prediction performance
US10346476B2 (en) * 2016-02-05 2019-07-09 Sas Institute Inc. Sketch entry and interpretation of graphical user interface design
US10795935B2 (en) 2016-02-05 2020-10-06 Sas Institute Inc. Automated generation of job flow definitions
US9614781B1 (en) * 2016-03-01 2017-04-04 Accenture Global Solutions Limited Data defined infrastructure
US10089146B2 (en) * 2016-03-31 2018-10-02 International Business Machines Corporation Workload balancing for storlet infrastructure
CN107315576A (zh) * 2016-04-26 2017-11-03 中兴通讯股份有限公司 一种动态扩展软件流程的方法和系统
US10467045B1 (en) * 2016-07-07 2019-11-05 Binaris Inc On-demand isolated execution of specific tasks
US20180129484A1 (en) * 2016-11-04 2018-05-10 Microsoft Technology Licensing, Llc Conversational user interface agent development environment
US10567213B1 (en) 2017-07-06 2020-02-18 Binaris Inc Systems and methods for selecting specific code segments in conjunction with executing requested tasks
US10621001B1 (en) 2017-07-06 2020-04-14 Binaris Inc Systems and methods for efficiently expediting execution of tasks in isolated environments
CN108490969B (zh) * 2018-03-19 2022-01-04 成都飞机工业(集团)有限责任公司 一种基于配表的无人机地面站遥测遥控系统及遥测遥控方法
CN108874487B (zh) * 2018-06-13 2020-01-10 北京九章云极科技有限公司 基于工作流的数据分析处理方法、系统、装置及存储介质
US10904238B2 (en) 2018-07-13 2021-01-26 Sap Se Access token management for state preservation and reuse
CN109753349A (zh) * 2018-12-17 2019-05-14 江苏晓创教育科技有限公司 一种基于普通文本工作流调度和命令执行引擎的实训平台
US11238386B2 (en) 2018-12-20 2022-02-01 Sap Se Task derivation for workflows
US11467858B2 (en) * 2019-03-27 2022-10-11 Amazon Technologies, Inc. Techniques for performing continuation workflows
US11663038B2 (en) * 2020-05-01 2023-05-30 Salesforce.Com, Inc. Workflow data migration management
CN116917862A (zh) * 2021-03-31 2023-10-20 西门子(中国)有限公司 用于跨控制对象执行工作流任务的方法和装置
WO2023142074A1 (zh) * 2022-01-29 2023-08-03 西门子股份公司 信息处理方法、装置、计算设备和计算机可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1808375A (zh) * 2004-10-01 2006-07-26 微软公司 对工作流领域中横切行为问题建模的框架
US7971186B1 (en) * 2004-06-25 2011-06-28 Apple Inc. Automatic execution flow ordering

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003528358A (ja) * 1998-08-24 2003-09-24 富士通株式会社 ワークフローシステムおよび方法
US20020111841A1 (en) * 2001-02-09 2002-08-15 International Business Machines Corporation Controlling commands in workflow management systems
US6934932B2 (en) * 2001-10-16 2005-08-23 Sharp Laboratories Of America, Inc. System and method for managing workflow using a plurality of scripts
CA2451164C (en) * 2003-09-11 2016-08-30 Teamplate Inc. Customizable components
US20060074704A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Framework to model cross-cutting behavioral concerns in the workflow domain
US7509649B2 (en) * 2005-03-03 2009-03-24 Research In Motion Limited System and method for conversion of generic services' applications into component based applications for devices
US7941784B2 (en) * 2005-03-14 2011-05-10 Research In Motion Limited System and method for generating component based applications
US20060248466A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Integration of multiple programming/scripting languages into one program unit
US8136099B2 (en) * 2005-11-22 2012-03-13 Sap Ag Method and system for automatically generating executable processes from inter-organizational workflows
US7836439B2 (en) * 2006-02-03 2010-11-16 Research In Motion Limited System and method for extending a component-based application platform with custom services
US8418125B2 (en) * 2007-05-03 2013-04-09 International Business Machines Corporation Incremental model refinement and transformation in generating commerce applications using a model driven architecture
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8341598B2 (en) * 2008-01-18 2012-12-25 Microsoft Corporation Declartive commands using workflows
US8539444B2 (en) * 2008-06-30 2013-09-17 International Business Machines Corporation System and method for platform-independent, script-based application generation for spreadsheet software
US20100106547A1 (en) * 2008-10-29 2010-04-29 Asaf Adi Automated workflow generation
US20100153482A1 (en) * 2008-12-10 2010-06-17 Full Armor Corporation Cloud-Based Automation of Resources
US8656346B2 (en) * 2009-02-18 2014-02-18 Microsoft Corporation Converting command units into workflow activities
US10002335B2 (en) * 2011-01-06 2018-06-19 Cardinal Logistics Management Corporation Dynamic workflow for remote devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7971186B1 (en) * 2004-06-25 2011-06-28 Apple Inc. Automatic execution flow ordering
CN1808375A (zh) * 2004-10-01 2006-07-26 微软公司 对工作流领域中横切行为问题建模的框架

Also Published As

Publication number Publication date
CN103336705A (zh) 2013-10-02
US20130067476A1 (en) 2013-03-14
US8910166B2 (en) 2014-12-09

Similar Documents

Publication Publication Date Title
CN103336705B (zh) 脚本处理和工作流系统间的自动转码和语义自适应
US11789715B2 (en) Systems and methods for transformation of reporting schema
US11868231B2 (en) System and method for evaluating code by a hybrid of local and cloud-based computers
US9792203B2 (en) Isolated testing of distributed development projects
CN111831269A (zh) 一种应用开发系统、运行方法、设备及存储介质
US11429365B2 (en) Systems and methods for automated retrofitting of customized code objects
US8898627B2 (en) Systems and methods for applying rules to transform objects of an application
US10656971B2 (en) Agile framework for vertical application development and delivery
TWI713846B (zh) 領域模組運算單元,含有一企業之一模型之系統,單板運算單元,運算單元之網格,提供傳播可追溯性之方法,及非暫時性電腦程式產品
US20150212812A1 (en) Declarative and pluggable business logic for systems management
US10114861B2 (en) Expandable ad hoc domain specific query for system management
EP3030969A1 (en) Automated application test system
US9459859B2 (en) Template derivation for configuration object management
US20120089931A1 (en) Lightweight operation automation based on gui
US10621531B2 (en) Executing a business process by a standard business process engine
US9507839B2 (en) Method for determining a supported connectivity between applications
US20210117313A1 (en) Language agnostic automation scripting tool
US9626251B2 (en) Undo configuration transactional compensation
JP2023070148A (ja) ロボティックプロセスオートメーション(rpa)ロボットをリソースへ動的にバインドさせるためのシステムおよび方法
CN116893807A (zh) 使用浏览器设计机器人流程自动化机器人的系统和方法
US20210271458A1 (en) Managing an app method and system
CN102841842A (zh) 用于下一代测试系统的自动化控制器
JP5683209B2 (ja) ドキュメント類自動生成機能付クライアントコンピュータ
Lopes Data Science for Non-Programmers: Orchestration of Microservices and Graphical User Interface
Wasala et al. LocConnect: Orchestrating Interoperability in a Service-oriented Localisation Architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150723

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150723

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant