CN101223505A - 数据中心工作流 - Google Patents

数据中心工作流 Download PDF

Info

Publication number
CN101223505A
CN101223505A CNA2006800217835A CN200680021783A CN101223505A CN 101223505 A CN101223505 A CN 101223505A CN A2006800217835 A CNA2006800217835 A CN A2006800217835A CN 200680021783 A CN200680021783 A CN 200680021783A CN 101223505 A CN101223505 A CN 101223505A
Authority
CN
China
Prior art keywords
data
workflow
main frame
message
data object
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.)
Granted
Application number
CNA2006800217835A
Other languages
English (en)
Other versions
CN101223505B (zh
Inventor
D·K·舒克拉
M·梅塔
K·P·瓦勒格洛普拉
A·J·沙加
I·希勒里欧
D·皮拉里诺斯
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN101223505A publication Critical patent/CN101223505A/zh
Application granted granted Critical
Publication of CN101223505B publication Critical patent/CN101223505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

提供数据绑定的工作流活动来对工作流实例与工作流主机之间的消息传递进行建模。工作流作者将数据源与工作流中的每一数据绑定活动相关联而无需指定底层消息传递技术的细节。工作流实例中的数据绑定活动与工作流主机中的数据源服务通信以交换数据。

Description

数据中心工作流
背景
一种工作流对业务流程进行建模。使用典型的工作流技术开发的工作流应用程序期望开发者考虑将数据作为两个应用程序之间交换的消息。这种典型的方法迫使工作流开发者定义在执行的工作流实例与实例化该工作流的应用程序(例如工作流主机)之间传递数据所需遵循的通信交换和协议。然而,许多工作流开发者不了解消息传递或对消息交换进行建模的细微差别。
概要
本发明的实施例提供了一种用于对工作流消息传递进行建模的抽象化。具体地,本发明的实施例通过在工作流框架中提供本机数据构造来帮助数据中心(datacentric)工作流的开发。这些构造使得开发者能够将工作流建模为工作流实例与工作流主机之间的数据交换,同时隐藏消息传递通信和协议。本发明的各个方面允许工作流对底层消息传递技术不可知。
提供本概要来以简化形式介绍将在以下具体实施例中进一步描述的一组概念。本概要并非旨在标识所要求保护的主题的关键特征或本质特征,也并非旨在用来帮助确定所要求保护的主题的范围。
在其它特征中,一部分是显而易见的,而一部分将在下文中指出。
附图说明
图1是包含任务和控制流合成活动的一个示例性工作流。
图2是示出了本发明的设计时和运行时方面的操作的一个示例性流程图。
图3是示出了具有两个数据活动的顺序工作流的框图。
图4是示出了图3的顺序工作流以及与顺序工作流中的数据活动的每一个相关联的属性和属性值的框图。
图5是示出了执行的工作流实例与工作流主机之间的交互的框图。
图6是示出了其中可实现本发明的各个方面的合适的计算系统环境的一个示例的框图。
在所有附图中,相应的附图标记表示相应的部分。
详细描述
图1示出了一个示例性工作流。本发明的实施例可与表示诸如业务流程等流程的工作流一起操作。业务流程取决于导致可预测和可重复的结果的有序任务、活动等。包括组织的运作过程、制度上的应用知识和信息资源,业务流程被设计成以有效和及时的方式满足所定义的业务对象。在一有效环境中,可容易地标识、修改和部署一流程的功能组件以解决不断变化的企业需求。工作流是最终用户与业务流程中的一些任务交互的体验。任务被建模为活动、组件等,其每一个都表示由个人或机器执行的工作单元。
工作流主机实例化工作流以创建工作流实例。工作流主机与工作流实例在工作流实例的执行期间交换消息或以其它方式通信。在一个实施例中,这些交换的每一个的消息传递细节必须由用户在工作流创作期间建模。这种创作流程涉及为工作流实例与工作流主机之间的每次通信定义一本地服务接口(例如,指定通信协议)、在工作流主机中实现此接口、将该接口作为工作流环境中的通信服务来注册、以及生成与工作流主机中实现的接口通信的强类型工作流活动。一些工作流使用接口、方法(例如通道、端口)来通信。
如图5中所示,本发明的实施例对工作流主机与执行的工作流实例之间的通信进行抽象化并建模,以提供与工作流的无类型(untyped)方式的通信。与工作流实例的通信使用公知通道来执行,并且数据是与工作流的特定实例的通信的决定性因素。抽象化(例如,经由数据绑定活动)使得开发者或其他用户能够对工作流环境中的通信建模而非对消息传递细节建模。用户无需学习通信构造或消息传递概念。消息传递细节由工作流环境中的对象通信服务或其它通信层来自动处理。这样,抽象化可对底层消息传递技术不可知。本发明的各个方面中的数据中心方法实现与任意应用程序或用户的数据交换。
具体地,工作流主机从用户(例如,通过表单)或从外部系统(例如,使用数据访问协议)收集信息,并且将数据传递回执行的工作流实例以便进行处理。在一个实施例中,由工作流主机程序员所使用的用于从用户获得数据的一些表单技术向工作流主机程序员隐藏了消息传递概念。本发明的各个方面提供了与特定数据源定义(例如模式或类型定义)相关联的数据对象来表示在工作流主机与执行的工作流实例之间传递的数据。同一数据对象可由工作流实例和工作流主机来操纵以降低开发者的的混淆,并且在工作流数据对象与工作流主机之间提供数据绑定体验。通常,数据源(例如,可由工作流主机访问)提供消费数据的数据对象的数据,或者向数据消费者(例如,工作流活动)提供数据。在一个示例中,工作流实例与工作流主机之间的交互并非是专用表单的。
接着参看图2,它是示出了实现协议不可知消息传递的本发明的设计时和运行时方面的操作的示例性流程图。本发明的各个方面按照数据源来对外部数据建模,并且将数据源关联到数据绑定活动。通常,工作流开发者定义工作流应用程序内部的数据源、将此数据源关联到数据对象(例如,容器或表单)、以及经由同一数据对象接收回经更改的数据。一旦工作流实例接收到此经更改的数据,则决策和其它数据绑定是可能的。
图2中所示的方法在工作流主机与执行的工作流实体之间实现协议不可知消息传递。在一个实施例中,一个或多个计算机可读介质具有用于实现图2中所示的方法的计算机可执行指令或组件。示例性计算机可执行组件包括用于从用户接收对预定工作流数据活动的选择以对工作流与工作流主机之间的消息传递操作进行建模的用户接口组件202。在一个实施例中,接收对预定工作流数据活动的选择包括经由应用程序编程接口来接收该选择。对于用户,预定义数据活动对消息传递协议不可知。
组件还包括用于指定数据源定义、将所选择的数据活动绑定到所指定的数据源定义、以及引用所绑定的数据活动作为工作流中的多个活动之一以实现工作流与工作流主机之间的消息传递的属性组件204。数据源定义定义了用于存储要在执行的工作流实例与工作流主机之间传递的消息数据的数据对象。工作流主机实例化工作流实例。指定数据源定义可包括例如,从用户接收与该数据源相对应的或者定义用于消息数据的模式的标识符。在一个实施例中,用户定义与数据源定义和程序相关联的数据对象或者以其它方式访问工作流中的数据对象。
计算机可执行组件还包括实例组件206,该组件在工作流实例的执行期间对每个指定的数据源定义生成数据对象并且将所生成的数据对象发送到工作流主机。工作流主机中的主机组件(参见图5)使用消息数据填充数据对象并且将经填充的数据对象发送给工作流实例中的实例组件。实例组件206从工作流主机接收经填充的数据对象并处理接收到的经填充的数据对象中的消息数据。在一个实施例中,消息数据与对数据的请求相对应。在这样一个实施例中,实例组件206使用所请求的数据来填充数据对象并将经填充的数据对象发送到工作流主机(例如用于更新表单)。
数据绑定活动封装底层消息传递机构,从而工作流作者和工作流主机开发者无需为消息互换定义本地服务接口。通常,本地服务接口的任意实现可用于在工作流与使用这种抽象的主机之间交换数据。在一个示例中,定义一通用本地服务接口以允许使用这种抽象的数据交换。
在一个示例中,本发明的实施例提供以下四个数据绑定活动:UpdaeDaa(更新数据)、SelectData(选择数据)、WaitForData(等待数据)、和WaitForQuery(等待查询)。UpdateData活动使得工作流能够更新外部数据。SelectData活动使得工作流能够查询外部数据。WaitForData活动对工作流中用于外部数据的等待点进行建模。WaitForQuery活动对工作流中与数据查询请求相对应的等待点进行建模。在一个实施例中,外部数据可存在于可由工作流主机访问的数据库中,或者可以是从表单中获得的数据。例如,当连接到表单时,数据被存储在工作流中,并且UpdateData活动通知表单该数据已被更改。
以下表格描述了这些数据活动中的每一个的属性。上下文属性中的激活属性映射到数据绑定活动WaitForData和WaitForQuery上的激活属性。如果这些活动中的任一个将激活设置成真,则上下文属性包括值为真的激活属性。
活动\属性 数据源 数据对象 激活
UpdateData 数据源提供更新主机中的数据的功能。 此为被发送到主机的数据。 -不适用-
SelectData 数据源提供向主机查询数据的功能 此为从主机查询到的数据 -不适用-
WaitForData 用于相关对于此活动的传入消息。 此为来自主机的传入数据。 当设置为真时,传入数据将激活工作流。
WaitForQuery 用于相关对于此活动的传入消息。 此为传入查询结果。 当设置为真时,传入查询结果将激活工作流。
表1.示例性数据绑定活动的属性
数据源表示外部数据模式。例如,数据源可以是用于被发送到表单和工作流/从表单和工作流发送的数据的本地容器。数据源定义了存储在其中的数据的格式和/或结构。本发明的一个实施例提供了基于可扩展标记语言模式定义(XSD)和公共语言运行库(CLR)类型的数据源。然而,用于描述对象或数据的结构的任意格式可用于定义数据源。例如,接口定义语言(IDL)或web服务描述语言(WSDL)可用于定义数据源。以下表格描述了使用类型(例如,类)定义作为定义来自动生成数据对象的示例性类型/对象数据源的属性。
属性 描述
Name 指定数据源的名称。
DataHandlerTypeName 指定用于处理工作流的UpdateData和SelectData传出调用的数据处理机(handler)的类型。
DataObjectTypeName 指定数据对象的类型。
Properties 指定将用于相关工作流实例的DataObject上的属性。
表2.示例性对象数据源
以下表格描述了使用XSD定义作为模式定义来自动生成数据对象的示例性XSD/XML数据源的属性。
属性 描述
Name 指定数据源的名称。
DataHandlerTypeName 指定用于处理工作流的UpdateData和SelectData传出调用的数据处理机的类型。
ProxyType 指定从XSD文件生成的代理类型
Properties 指定XSD模式上的XPath属性
表3.示例性XSD数据源
接着参看图3,一框图示出了具有两个数据活动的顺序工作流302。在此示例中,工作流作者设计工作流302以便经由updateDatal(更新数据1)活动304来上传数据,并且经由waitForData1(等待数据1)活动306来等待来自工作流主机的数据已改变事件。工作流开发者的体验包括配置数据源和配置这些数据绑定活动304、306。
数据源可经由用户界面来配置或经由应用程序编程接口来从程序上配置。在一个示例中,创建ObjectDataSource(对象数据源)的实例并将其添加到DataContext(数据上下文)活动中的DataSource(数据源)集合。然后,可配置ObjectDataSource的属性(在以下表中示出)。
属性 描述
Name “orange” 指定数据源的名称
DataObjectTypeName “FormTest.Task”[SerializableAttribute()]public class Task{public string ID{get{return this.id;}set{this.id=value;}}public string Assignee{get{return this.assignee;}set{this.assignee=value;}}} 此类型可由用户定义并且可包含在单独的程序集中。
DataHandlerTypeName “FormTest.BusinessHelper”public class BusinessHelper:IDataHandler{public objectSelectData(object 此类型可由用户定义并且可包含在单独的程序集中。
message,DataSourceInfodataSource){//用户代码return message;}public voidUpdateData(obj ect message,DataSourceInfo dataSource){//用产代码}}
Properties “ID”   指定用于相关工作流实例的DataObject(数据对象)类上的属性。
表4.ObjectDataSource的属性
开发者将两个数据绑定活动(例如UpdateData和WaitForData)添加到工作流。开发者经由用户界面来配置这些数据绑定活动的属性或者经由应用程序编程接口来从程序上配置。例如,图4示出了诸如图3中的顺序工作流302等顺序工作流402,它包括与顺序工作流402中的数据活动的每一个相关联的属性和属性值。表5描述了图4中所示的UpdateData数据绑定活动的属性404。表6描述了图4中所示的WaitForData数据绑定活动的属性406。
属性 描述
DataSource “Source1” 指定数据源
DataObject “ObjectA” 绑定到DataContext(数据上下文)类中的数据对象变量
表5.UpdateData数据绑定活动的属性
属性 描述
DataSource “Source1”   指定数据源
DataObject “Object A” 绑定到DataContext类中的数据对象变量
表6.WaitForData数据绑定活动的属性
工作流主机开发者的体验包括编写与数据源服务一起工作以向执行的工作流实例提交事件(例如,数据变化事件)的代码。例如,数据源服务提供了用于向工作流引发DataChanged(数据已变化)和DataQuery(数据查询)事件的方法。工作流主机开发者无需实现任何对象通信服务(OCS)接口或其它本地服务接口。以下工作流主机代码摘录使用数据源服务向工作流激发DataChanged事件。
//从ObjectConnectionService(对象连接服务)获得DataSourceService(数据源服务)
Dictionary<string,object>properties=new Dictionary<string,object>();
properties.Add(″InstanceId″,instance.InstanceId);
properties.Add(″WorkflowT e″,typeof(FormTest.Workflow1));
properties.Add(″DataSource″,″Workflow1.orange″);
FormTest.Task t=new FormTest.Task(″5″);
service.RaiseDatacChanged(properties,t);
接着参看图5,一框图示出了执行的工作流实例502与工作流主机504之间的交互。一般而言,工作流主机504从表单或外部应用程序(未示出)接收事件,并且处理数据对象510并将其发布到工作流实例502以便进行处理。在文档情况中,工作流主机504从工作流实例502检索数据对象509的有效负载中的数据对象类型、标识与该类型相关联的表单、将数据对象509串行化成可扩展标记语言(XML)以及将XML存储在文档存储库(未示出)内。
在图5的示例中,一种计算机实现系统在工作流环境中提供协议不可知消息传递。该系统包括用于实例化工作流以创建用于执行的工作流实例的工作流502主机。该系统还包括诸如用在工作流中的表单数据活动506等一个或多个预定义的数据活动。表单数据活动506包括“将数据发送到主机”活动508和“从主机接收数据”活动511。预定义数据活动508、511中的每一个对工作流实例502与工作流主机504之间的消息传递操作进行建模。预定义数据活动508在工作流实例的执行期间生成数据对象509以存储消息数据。将数据对象509从工作流实例502传送到工作流主机504。用于定义数据结构的数据源定义与数据对象509相关联。该系统还包括与用于使用消息数据来填充数据对象509以及将经填充的数据对象作为数据对象510传送到工作流实例502以便进行处理的工作流主机504相关联。
图5的系统还包括存储表示数据对象509的数据结构的计算机可读介质(未示出)。该数据结构包括协议类型字段518、有效负载字段520和源字段522。协议类型字段518存储标识用于执行的工作流实例502与工作流主机504之间的通信的协议。有效负载字段520存储消息数据。源字段522存储标识数据对象509的数据源定义的值。数据源定义标识用于工作流实例502与工作流主机504之间的通信的协议。
工作流主机中的数据源服务512通过在514处实例化主机处理空间中的助手(helper)类来将数据对象中的消息的有效负载传递到应用程序。当定义数据源时,工作流主机开发者配置工作流定义中的这些助手类。一旦助手类实例被创建或调用,则主机504具有经由实例化的助手类(例如,数据处理机)对消息的有效负载的控制。由主机504管理的任何客户机能够接收这些数据并更新其内容。助手类包括用于处理数据对象的多个数据处理机。主机504中的通信服务516将经填充的数据对象510传送到工作流实例502。
由工作流主机504提供的一个示例性数据源服务512包括以下所示的方法。第一个方法向工作流引发DataChanged事件,而第二个方法向工作流引发DataQueried(数据已查询)事件并接收查询结果。
void RaiseDataChanged(IDictionary<string,object>contextProperties,objectmsg)
object RaiseDataQueried(IDictionary<string,object>contextProperties,objectmsg)
形参‘IDictionary<string,object>contextProperties’包含诸如工作流实例标识符、工作流类型、数据源的限定名和激活值(例如,如果消息是激活消息)的上下文属性。形参‘object message’表示要发送到工作流的数据对象510或消息。
在一个实施例中,经由执行的工作流实例502与工作流主机504之间的消息在运行时期间执行以下操作。激活事件由工作流定义来接收,并且创建工作流实例502。工作流实例502使用关于激活事件的信息来实例化。在执行的工作流实例502中遭遇诸如活动506等数据绑定活动(例如,表单数据活动或数据活动)。由数据绑定活动506容器所包含的活动508生成数据对象509并将其发送到工作流主机504。与工作流主机504相关联的数据源服务512从工作流实例502接收数据对象509。数据源服务512调用工作流主机504上的数据处理机来处理接收到的数据对象509。在工作流实例502中,另一个活动511(例如“从主机接收数据”)进行等待,直至从工作流主机504接收到查询请求或提交事件。如果查询请求由工作流实例502中的活动511接收到,则该请求被处理并且使用“将数据上传到主机”活动(未示出)将结果发送到工作流主机504。如果提交事件由工作流实例502中的活动5 11接收到,则该事件被处理并且活动506被标记为已完成。工作流实例502继续处理其所有数据活动直至工作流应用程序完成。
本发明的实施例支持本文所述的适于任意模式化或基于对象的表单技术以及任意第三方外部应用程序的工作流操作。
示例性操作环境
图6示出了计算机130形式的通用计算设备的一个示例。在本发明的一个实施例中,诸如计算机130等计算机适于在本文所示并描述的其它附图中使用。计算机130具有一个或多个处理器或处理单元132以及系统存储器134。在所示实施例中,系统总线136将包括系统存储器134在内的各种系统组件耦合到处理器132。总线136表示若干类型总线结构中的任意一种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线体系结构中的任一种的处理器或局部总线。作为示例而非限制,这些架构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、以及也称为Mezzanine总线的外围部件互连(PCI)总线。
计算机130通常包括至少某种形式的计算机可读介质。计算机可读介质可以是可由计算机130访问的任何可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任意方法和技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或者可被用来存储所需信息并可由计算机130访问的任意其它介质。通信介质通常以诸如载波或其它传送机制等已调制数据信号的方式体现计算机可读指令、数据结构、程序模块或者其它数据,并且包括任意信息传输介质。本领域技术人员应当熟悉以在信号中编码信息的方式设置或改变了其一个或多个特征的已调制数据信号。通信介质的示例有诸如有线网络或直接线连接等有线介质、以及诸如声波、RF、红外线和其它无线介质等无线介质。以上介质的任意组合也可包括在计算机可读介质的范围内。
系统存储器134包括可移动和/或不可移动、易失性和/或非易失性存储器形式的计算机存储介质。在所示实施例中,系统存储器134包括只读存储器(ROM)138和随机存取存储器(RAM)140。包含有助于诸如在启动期间在计算机130内的元件之间传递信息的基本例程的基本输入/输出系统(BIOS)142通常被存储在ROM 138中。RAM 140通常包含可由处理单元132立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图6示出了操作系统144、应用程序146、其它程序模块148和程序数据150。
计算机130也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。例如,图6示出了对不可移动的非易失性磁性介质读写的硬盘驱动器154。图6还示出了对可移动的非易失性磁盘158读写的磁盘驱动器156、以及对诸如CD-ROM或其它光学介质等可移动的非易失性光盘162读写的光盘驱动器160。可被用在示例性操作环境中的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于:磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器154以及磁盘驱动器156和光盘驱动器160通常经由诸如接口166等非易失性存储器接口连接到系统总线136。
以上所讨论以及图6中所示的驱动器或其它大容量存储设备及其相关联的计算机存储介质为计算机130提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图6中,硬盘驱动器154被示为存储操作系统170、应用程序172、其它程序模块174以及程序数据176。注意:这些组件可与操作系统144、应用程序146、其它程序模块148和程序数据150相同或不同。这里,操作系统170、应用程序172、其它程序模块174和程序数据176被赋予不同附图标记,以便说明至少它们是不同的副本。
用户可通过诸如键盘180和定点设备182(例如鼠标、跟踪球、笔或触摸垫)等输入设备或用户界面选择设备向计算机130输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些或其它输入设备常常经由耦合于系统总线136的用户输入接口184连接到处理单元132,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)等其它接口和总线结构连接。监视器188或其它类型的显示设备也经由诸如视频接口190等接口连接到系统总线136。除监视器188之外,计算机通常还可包括诸如打印机和扬声器等其它外围输出设备,它们可经由输出外围接口(未示出)连接。
计算机130可使用到诸如远程计算机194等一个或多个远程计算机的逻辑连接而在网络化环境中操作。远程计算机194可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且通常包括以上相对于计算机130所描述的许多或所有组件。图6中所示的逻辑连接包括局域网(LAN)196和广域网(WAN)198,但也可包括其它网络。LAN 136和/或WAN 138可以是有线网络、无线网络、其组合等。这些网络环境在办公室、企业范围计算机网络、内联网和全球计算机网络(例如因特网)中是普遍的。
当在局域网络环境中使用时,计算机130经由网络接口或适配器186连接到LAN 196。当在广域网络环境中使用时,计算机130通常包括调制解调器178或通过诸如因特网等WAN 198建立通信的其它装置。调制解调器178可以是内置式或外置式的,它可经由用户输入接口184或其它适当的机制连接到系统总线136。在网络化环境中,关于计算机130所述的程序模块或其一部分可被存储在远程存储器存储设备(未示出)中。作为示例而非限制,图6将远程应用程序192示为驻留在存储器设备上。所示网络连接是示例性的,并且也可使用在计算机之间建立通信链路的其它手段。
通常,计算机130的数据处理器借助在不同时间存储在计算机的各种计算机可读存储介质中的指令来编程。程序和操作系统通常在例如软盘或CD-ROM上分发。将它们从其上安装或加载到计算机的辅助存储器中。在执行时,它们被至少部分地加载到计算机的主要电子存储器中。当这些以及其它各种类型的计算机可读存储介质包含用于实现以下结合微处理器或其它数据处理器所描述的步骤的指令或程序时,这里所公开的本发明的各个方面包括这些介质。当根据这里所述的方法和技术编程时,本发明的实施例还包括计算机本身。
出于说明的目的,诸如操作系统等程序和其它可执行程序组件在这里被示为离散的块。然而,应当理解,这些程序和组件在不同的时间驻留在计算机的不同存储组件中,并且由计算机的(多个)数据处理器来执行。
尽管结合包括计算机130的示例性计算系统环境进行了描述,但是本发明的各方面可在许多其它通用或专用计算系统环境或配置中操作。该计算系统环境并非旨在对本发明的各方面的使用范围或功能提出任何限制。另外,该计算环境不应当被解释为对示例性操作环境中所示组件的任一个或组合具有依赖性或要求。可适合用于本发明的各方面的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括上述系统或设备的任一个的分布式计算环境等。
可在诸如程序模块等由一个或多个计算机或者其它设备执行的计算机可执行指令的一般上下文中描述本发明的实施例。通常,程序模块包括但不限于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构。也可在其中通过经由通信网络链接的远程处理设备来执行任务的分布式计算环境中实践本发明的实施例。在分布式计算环境中,程序模块可位于包括存储器存储设备的本地或远程计算机存储介质中。
软件体系结构的上下文中的接口包括软件模块、组件、代码部分或其它计算机可执行指令序列。接口包括例如访问第二模块以代表其执行计算任务的第一模块。在一个示例中,第一和第二模块包括诸如由操作系统提供的应用程序编程接口(API)、组件对象模型(COM)接口(例如,用于对等应用程序通信)以及可扩展标记语言元数据交换格式(XMI)接口(例如,用于web服务之间的通信)。
接口可以是紧耦合的同步实现,诸如Java 2平台企业版(J2EE)或分布式COM(DCOM)示例中那样。作为替代或除此之外,接口可以是松耦合的异步实现,诸如web服务(例如,使用简单对象访问协议)中那样。通常,接口包括以下特性的任意组合:紧耦合、松耦合、同步和异步。此外,接口可遵照标准协议、专有协议或标准和专有协议的任意组合。
本文所述的接口可全部为单个接口的一部分,或者可被实现为单独的接口或其任意组合。接口可本地或远程地执行以提供功能。此外,与这里所示或所述的相比,接口可包括更多或更少的功能。
在操作中,计算机130执行诸如附图中所示的用于实现本发明各方面的计算机可执行指令。硬件、软件、固件、计算机可执行组件和/或计算机可执行指令构成用于在工作流中实现协议不可知消息传递的装置。
以下示例还示出了本发明的实施例。在一种情况中,开发者致力于开发要求用户使用某种表单技术(例如web表单)来输入信息的工作流应用程序。表单己预先被定义并且具有其自己的模式定义。开发者希望对表单交互和数据元素进行建模作为工作流应用程序中的步骤。期望在无需重写表单的情况下进行在表单与工作流之间的这种交互。为了实现此目的,开发者使用称为表单数据活动的工作流步骤或构件块并将其添加到工作流定义中。开发者将与该对象相关联的数据源配置成指向表单模式定义(例如,模式定义可表示为XML模式)。在工作流的执行期间,此关联自动生成一种映射类型,在该类型中在工作流内部创建对象实例。此对象实例由开发者操纵来分别向表单发送数据和从其中检索数据。在运行时,此对象实例由工作流主机串行化和解串行化(de-serialize),并且信息被注入到表单中或从其中检索。这些可在无需更改表单的情况下进行。
在另一种情况中,开发者致力于开发取决于来自外部传统系统的数据来执行的工作流应用程序。在此示例中,外部系统仅提供访问其数据的数据库接口并且不具有web服务接口。开发者希望对工作流与外部传统系统之间的数据交换进行建模。每次执行要求来自传统系统的数据的工作流步骤时,该工作流步骤等待将要由该传统系统更新的信息。为了实现此目的,开发者使用工作流步骤或称为数据活动的构件块,并将其添加到工作流定义中。开发者将与该对象相关联的数据源配置为指向对象数据源。在此配置步骤期间,开发者定义用于在外部系统与工作流实例之间交换数据的类型库和类型(例如,类)。在工作流实例的执行期间,此关联创建工作流定义内部所选类型的对象实例。此对象实例将由开发者操纵来分别向传统系统发送数据和从其中检索数据。在运行时,此对象经由工作流主机所提供的转换代码传递到外部系统或由其来查询。在此示例中,工作流主机有助于外部传统系统与工作流实例之间的数据交换而无需引入任何新的类型。
在其中工作流对文档审阅进程进行建模的示例中,用于审阅文档的接口(例如IDocumentReviewInterface)示出如下。
public delegate void OnReviewStartedHandler(objecto);
public delegate void OnParticipantsAddedHandler(objecto);
public interface IDocumentReviewInterface
{
    event OnReviewStartedHandler OnReviewStarted;
    event OnParticipantsAddedHandler OnParticipantsAdded;
    void ReviewCompleted(objecto);
}
在此示例中,对象“o”对应于将捕捉诸如以下所示的形参的平面列表的类型的一个实例。
public class DocumentReviewInfo
{
  public DocumentInfo documentInfo;
  public Hashtable ReviewResults;
}
DocumentReviewInfo(文档审阅信息)类型描述了要进行通信的数据的形状/模式。此类型由工作流作者来创作,而且工作流主机开发者无需在此示例中实现任何事情。
本发明的各方面通过提供具有数据绑定活动的、了解如何与标准接口通信的标准本地服务接口来向工作流作者隐藏消息传递机制。工作流作者描述被交换的数据的模式(例如,将本地服务接口的方法的形参的平面列表转换成诸如本文所述的DocumentReviewInfo 类中的类定义)。在一个示例中,标准本地服务接口被称为IDataSourceService(数据源服务)并在以下示出。以下所示的IDataSourceService仅是示例性的,并且在某些实施例中,未展示出IDataSourceService。相反,展示出了DataSourceService的方法RaiseDataChanged(引发数据已改变)和RaiseDataQueried(引发数据已查询)。
public delegate void DataChangedEventHandler(IDictionary<string,object>properties,object proxy);
public delegate void DataQueriedEventHandler(IDictionary<string,object>properties,object proxy);
public delegate void DataFetchedEventHandler(IDictionary<string,object>properties,object proxy);
[DataExchangeService]
[CorrelationProvider(typeof(CorrelationTokenProvider))]
public interface IdataSourceService
{
     void UploadData(DataSource ds,object proxy);
     void FetchData(DataSource ds,object proxy);
     event DataFetchedEventHandler DataFetched;
     event DataChangedEventHandler DataChanged;
    event DataQueriedEventHandler DataQueried;
    void PostDataQueryReply(DataSource ds,object proxy);
}
以下示出了称为DataSourceService的示例性实现。
public class DataSourceService:IDataSourceService
{
    #region IDataSourceService Members
    void IDataSourceService.UploadData(DataSource ds,object proxy){}
    void IDataSourceService.FetchData(DataSource ds,object proxy){}
    event DataFetchedEventHandler IDataSourceService.DataFetched
    {add{}remove{}}
    event DataChangedEventHandler IDataSourceService.DataChanged
    {add{}remove{}}
    event DataQueriedEventHandler IDataSourceService.DataQueried
    {add{}remove{}}
    void IDataSourceService.PostDataQueryReply(DataSource ds,objectproxy){}
    #endregion
    public void RaiseDataChanged(IDictionary<string,object>properties,objectmsg){}
    public object RaiseDataQueried(IDictionary<string,obj ect>properties,objectmsg){}
}
本文所示和所述的这些方法的执行或实施的次序并非是必需的,除非另外声明。即,这些方法的要素可以按任意次序来执行,除非另外声明,并且方法可包括比本文所公开的那些更多或更少的要素。例如,可以构想在另一要素之前、与其同时或之后执行或实施特定要素是落在本发明的实施例的范围内的。
当介绍本发明的实施例的要素时,冠词“一个”、“一”、“该”、“所述”旨在表示存在一个或多个要素。术语“包括”、“包含”和“具有”旨在包括性的,并且表示可存在除所列要素之外的附加要素。
因为可在上述结构、产品和方法中作出各种改变而不背离本发明的实施例的范围,所以意味着以上说明书中所包含以及附图中所示的所有主题应当被解释为示例性的而非限制性的。

Claims (20)

1.一种在工作流主机与执行的工作流实例之间实现协议不可知消息传递的方法,所述方法包括:
从用户处接收对用来对工作流与工作流主机之间的消息传递操作进行建模的预定义工作流数据活动的选择;
指定数据源定义,所述指定的数据源定义定义了用于存储要在所述工作流的执行的实例与所述工作流主机之间通信的消息数据的数据对象,所述工作流主机实例化所述工作流实例;
将所选择的数据活动绑定到所指定的数据源定义;以及
引用所绑定的数据活动作为所述工作流中的多个活动之一,以实现所述工作流与所述工作流主机之间的消息传递。
2.如权利要求1所述的方法,其特征在于,指定所述数据源定义包括从用户处接收与所述数据源定义相对应的标识符。
3.如权利要求1所述的方法,其特征在于,接收对所述预定义工作流数据活动的选择包括经由应用程序编程接口来接收所述选择。
4.如权利要求1所述的方法,其特征在于,还包括在所述工作流实例的执行期间:
对每个所指定的数据源定义生成所述数据对象;
将所生成的数据对象发送到所述工作流主机,其中所述工作流主机用所述消息数据来填充所述数据对象;
从所述工作流主机接收经填充的数据对象;以及
处理所接收的、经填充的数据对象中的消息数据。
5.如权利要求4所述的方法,其特征在于,所述消息数据对应于对数据的请求,并且所述方法还包括用所请求的数据填充所述数据对象以及将经填充的数据对象发送到所述工作流主机。
6.如权利要求1所述的方法,其特征在于,所述预定义数据活动对消息传递协议不可知。
7.如权利要求1所述的方法,其特征在于,一个或多个计算机可读介质具有用于执行权利要求1所述的方法的计算机可执行指令。
8.一种用于工作流环境中的协议不可知消息传递的计算机实现的系统,所述计算机实现的系统包括:
工作流主机,用于实例化工作流以创建用于执行的工作流实例;
在所述工作流中使用的一个或多个预定义数据活动,所述预定义数据活动的每一个对所述工作流实例与所述工作流主机之间的消息传递操作进行建模,在所述工作流实例的执行期间,所述预定义数据活动的每一个生成用于存储消息数据的数据对象,所述数据对象从所述工作流实例传送到所述工作流主机;以及
与所述工作流主机相关联的数据源服务,用来使用所述消息数据填充所述数据对象以及将经填充的数据对象传送到所述工作流实例以进行处理。
9.如权利要求8所述的计算机实现的系统,其特征在于,还包括用于定义与所述数据对象相关联的数据结构的数据源定义。
10.如权利要求9所述的计算机实现的系统,其特征在于,还包括其上存储有表示所述数据对象的数据结构的计算机可读介质,所述数据结构包括:
协议类型字段,用于存储标识在所述执行的工作流实例与所述工作流主机之间的通信中使用的协议的值;
有效负载字段,用于存储所述消息数据;以及
源字段,用于存储标识用于所述数据对象的数据源定义的值。
11.如权利要求8所述的计算机实现的系统,其特征在于,所述预定义数据活动包括以下的一个或多个:更新数据活动,用于将所述数据从所述执行的工作流实例传送到所述工作流主机;选择数据活动,用于使所述执行的工作流实例能够从所述工作流主机查询数据;等待数据活动,它使得所述执行的工作流实例能够等待直至从所述工作流主机接收到数据;以及等待查询数据活动,它使得所述执行的工作流实例能够等待直至从所述工作流主机接收到与查询请求相对应的数据。
12.如权利要求8所述的计算机实现的系统,其特征在于,还包括用于在所述工作流中实现协议不可知消息传递的装置。
13.如权利要求8所述的计算机实现的系统,其特征在于,还包括可由所述数据源服务访问以处理所生成的数据对象的多个数据处理机,并且其中所述数据源服务执行以下动作:
从所述执行的工作流实例接收所生成的数据对象,所述生成的数据对象具有与其相关联的有效负载;
调用所述多个数据处理机之一来处理所接收到的数据对象;
从数据源接收数据;
将接收到的数据作为消息数据来填充所述有效负载以创建公布的数据对象;
将所述公布的数据对象发送到所述执行的工作流实例。
14.如权利要求8所述的计算机实现的系统,其特征在于,还包括使得用户能够创建所述工作流的应用程序编程接口。
15.一个或多个具有用于在工作流实例与工作流主机之间进行消息传递的计算机可执行组件的计算机可读介质,所述组件包括:
用户接口组件,用于从用户处接收对用来对工作流实例与工作流主机之间的消息传递操作进行建模的预定义工作流数据活动的选择;
用于指定数据源定义的属性组件,所述指定的数据源定义定义了用于存储要在所述工作流实例与所述工作流主机之间通信的消息数据的数据对象,所述工作流主机实例化所述工作流实例,所述属性组件将经由所述用户接口组件选择的数据活动绑定到所指定的数据源定义,所述用户接口组件还引用所述绑定的数据活动作为所述工作流中的多个活动之一,以实现所述工作流实例与所述工作流主机之间的消息传递;以及
实例组件,用于:
在所述工作流实例的执行期间,对每个所指定的数据源定义生成所述数
据对象;
将所生成的数据对象发送到所述工作流主机,其中所述工作流主机用消
息数据来填充所述数据对象;
从所述工作流主机接收经填充的数据对象;以及
处理所接收的、经填充的数据对象中的消息数据。
16.如权利要求15所述的计算机可读介质,其特征在于,所述实例组件还包括用数据填充所述数据对象,并且将经填充的数据对象发送到所述工作流主机以更新表单。
17.如权利要求15所述的计算机可读介质,其特征在于,所述数据源定义定义了所述消息数据的模式。
18.如权利要求15所述的计算机可读介质,其特征在于,所述实例组件还向用户显示所述消息数据。
19.如权利要求15所述的计算机可读介质,其特征在于,还包括主机组件,用于从所述实例组件接收所生成的数据对象、用所述消息数据填充所接收到的数据对象、以及将经填充的数据对象发送到所述工作流实例。
20.如权利要求15所述的计算机可读介质,其特征在于,所述数据源定义标识用于所述工作流实例与所述工作流主机之间的通信的协议。
CN2006800217835A 2005-06-27 2006-05-05 在工作流实例与工作流主机之间实现协议不可知消息传递的方法和系统 Active CN101223505B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/167,472 2005-06-27
US11/167,472 US7363628B2 (en) 2005-06-27 2005-06-27 Data centric and protocol agnostic workflows for exchanging data between a workflow instance and a workflow host
PCT/US2006/017766 WO2007001640A2 (en) 2005-06-27 2006-05-05 Data centric workflows

Publications (2)

Publication Number Publication Date
CN101223505A true CN101223505A (zh) 2008-07-16
CN101223505B CN101223505B (zh) 2011-09-07

Family

ID=37568786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800217835A Active CN101223505B (zh) 2005-06-27 2006-05-05 在工作流实例与工作流主机之间实现协议不可知消息传递的方法和系统

Country Status (9)

Country Link
US (1) US7363628B2 (zh)
EP (1) EP1896939A4 (zh)
JP (1) JP5026415B2 (zh)
KR (1) KR20080017351A (zh)
CN (1) CN101223505B (zh)
BR (1) BRPI0612281A2 (zh)
MX (1) MX2007015887A (zh)
RU (1) RU2419837C2 (zh)
WO (1) WO2007001640A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105765577A (zh) * 2014-09-29 2016-07-13 微软技术许可有限责任公司 可定制的数据服务
CN107102978A (zh) * 2017-05-24 2017-08-29 北京小度信息科技有限公司 数据回填方法、装置及移动终端
CN108292208A (zh) * 2015-11-24 2018-07-17 微软技术许可有限责任公司 并行前端应用和工作流开发
CN110297625A (zh) * 2018-03-22 2019-10-01 阿里巴巴集团控股有限公司 应用的处理方法及装置
CN111309315A (zh) * 2018-12-12 2020-06-19 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
CN111382729A (zh) * 2018-12-27 2020-07-07 北京图森智途科技有限公司 一种从数据源采集数据的方法、主机和汽车

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441249B2 (en) * 2003-11-13 2008-10-21 International Business Machines Corporation Activity monitoring without accessing a process object
US7509519B2 (en) * 2005-11-29 2009-03-24 International Business Machines Corporation Recovery and debugging of failed network-accessible service construction
US8849691B2 (en) * 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
KR101501174B1 (ko) * 2007-09-28 2015-03-19 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US8131663B1 (en) 2007-10-12 2012-03-06 Bonamy Taylor Apparatus for generating software logic rules by flowchart design
KR101390177B1 (ko) * 2008-04-01 2014-05-26 삼성전자주식회사 워크폼 관리 방법, 워크폼 관리를 위한 호스트 장치,화상형성장치의 워크폼 관리방법 및 워크폼 관리 시스템
US8478715B2 (en) * 2008-05-16 2013-07-02 Microsoft Corporation Extending OLAP navigation employing analytic workflows
JP5393059B2 (ja) * 2008-06-04 2014-01-22 キヤノン株式会社 ワークフロー処理装置及びワークフロー処理方法
KR101437453B1 (ko) * 2008-08-29 2014-11-03 삼성전자주식회사 워크폼 관리장치, 워크폼 관리방법, 화상형성장치 및 워크폼 관리 시스템
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US8413150B2 (en) * 2009-07-31 2013-04-02 Sap Ag Systems and methods for data aware workflow change management
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
US8862975B2 (en) 2011-09-19 2014-10-14 Microsoft Corporation Web-based workflow service visualization and navigation
US9536264B2 (en) * 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime
US9524323B2 (en) 2012-09-05 2016-12-20 Microsoft Technology Licensing, Llc Delegation of expression tree evaluation
US10223163B2 (en) * 2016-07-14 2019-03-05 Microsoft Technology Licensing, Llc Workflow-based object destruction
US10666718B2 (en) * 2018-06-07 2020-05-26 Spatika Technologies Inc. Dynamic data transport between enterprise and business computing systems
US11216424B2 (en) 2018-06-07 2022-01-04 Spatika Technologies Inc. Dynamically rendering an application programming interface for internet of things applications

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2263988B (en) * 1992-02-04 1996-05-22 Digital Equipment Corp Work flow management system and method
US5634127A (en) * 1994-11-30 1997-05-27 International Business Machines Corporation Methods and apparatus for implementing a message driven processor in a client-server environment
US5774661A (en) * 1995-04-18 1998-06-30 Network Imaging Corporation Rule engine interface for a visual workflow builder
EP0854431A3 (en) * 1997-01-20 2001-03-07 International Business Machines Corporation Events as activities in process models of workflow management systems
US6225998B1 (en) * 1997-12-02 2001-05-01 Aspect Communications Visual design of workflows for transaction processing
US6430538B1 (en) 1998-04-30 2002-08-06 Enterworks Workflow management system, method and medium with personal subflows
US6567783B1 (en) * 1998-06-05 2003-05-20 I2 Technologies Us, Inc. Communication across one or more enterprise boundaries regarding the occurrence of a workflow event
US6397192B1 (en) * 1998-06-05 2002-05-28 I2 Technologies Us, Inc. Synchronizing one or more workflows using one or more synchronization-join activities that include synchronization logic
WO2000054202A2 (en) 1999-03-11 2000-09-14 Paysys International, Inc. Methods and systems for developing applications and for interfacing with users
GB2350911B (en) * 1999-06-10 2004-06-09 Ibm Form data files generator
US6768986B2 (en) * 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
US6845507B2 (en) * 2000-05-18 2005-01-18 Ss & C Technologies, Inc. Method and system for straight through processing
JP2002041744A (ja) * 2000-07-27 2002-02-08 Ranseputo Kk ワークフロー処理方法及びワークフロー処理システム
US20020032692A1 (en) * 2000-09-08 2002-03-14 Atsuhito Suzuki Workflow management method and workflow management system of controlling workflow process
WO2002029517A2 (en) * 2000-10-02 2002-04-11 International Projects Consultancy Services, Inc. Automated loan processing system and method
US6604104B1 (en) * 2000-10-02 2003-08-05 Sbi Scient Inc. System and process for managing data within an operational data store
US7174534B2 (en) * 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US6757689B2 (en) * 2001-02-02 2004-06-29 Hewlett-Packard Development Company, L.P. Enabling a zero latency enterprise
US7240324B2 (en) * 2001-02-28 2007-07-03 Hewlett-Packard Development Company, L.P. Event-based scheduling method and system for workflow activities
US7069536B2 (en) * 2001-06-28 2006-06-27 International Business Machines Corporation Method, system, and program for executing a workflow
US20030097457A1 (en) * 2001-08-08 2003-05-22 Amitabh Saran Scalable multiprocessor architecture for business computer platforms
US6895573B2 (en) * 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
US20030177046A1 (en) * 2001-12-03 2003-09-18 John Socha-Leialoha Method and system for reusing components
US7441197B2 (en) * 2002-02-26 2008-10-21 Global Asset Protection Services, Llc Risk management information interface system and associated methods
DE10215653A1 (de) 2002-04-09 2003-11-06 Bernhard Voslamber Verfahren und Anordung zur automatischen Erzeugung von Programmcodeabschnitten sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
EP1502218A4 (en) * 2002-04-15 2005-08-17 Invensys Sys Inc METHOD AND DEVICES FOR A PROCESS-, FACTORY-, ENVIRONMENT-, ENVIRONMENT- AND COMPUTER AIDED MANUFACTURING-BASED OR OTHERWISE CONTROL SYSTEM WITH REAL-TIME DATA DISTRIBUTION
US7272816B2 (en) * 2002-07-31 2007-09-18 Sap Aktiengesellschaft Transformations between private and shared workflows
US7437703B2 (en) * 2002-10-25 2008-10-14 Sap Ag Enterprise multi-agent software system with services able to call multiple engines and scheduling capability
US20040148213A1 (en) * 2002-11-25 2004-07-29 Microsoft Corporation Automated workflow constraints
US20040162741A1 (en) * 2003-02-07 2004-08-19 David Flaxer Method and apparatus for product lifecycle management in a distributed environment enabled by dynamic business process composition and execution by rule inference
US20050066002A1 (en) * 2003-07-31 2005-03-24 Arnold Teres Workflow compatible healthcare information message communication system
CA2442796A1 (en) * 2003-09-26 2005-03-26 Ibm Canada Limited - Ibm Canada Limitee Binding a workflow engine to a data model
US7093207B1 (en) * 2003-11-17 2006-08-15 Kla-Tencor Technologies Corporation Data analysis flow engine
US7650344B2 (en) * 2004-02-09 2010-01-19 Coremetrics, Inc. System and method of managing software product-line customizations
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US7493594B2 (en) * 2005-03-14 2009-02-17 Research In Motion System and method for designing component based applications
US20060241954A1 (en) * 2005-04-22 2006-10-26 International Business Machines Corporation Method and system for adaptive action management for business solutions
US7983943B2 (en) * 2005-05-27 2011-07-19 Xerox Corporation Method and system for workflow process node synchronization

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105765577A (zh) * 2014-09-29 2016-07-13 微软技术许可有限责任公司 可定制的数据服务
CN108292208A (zh) * 2015-11-24 2018-07-17 微软技术许可有限责任公司 并行前端应用和工作流开发
CN107102978A (zh) * 2017-05-24 2017-08-29 北京小度信息科技有限公司 数据回填方法、装置及移动终端
CN107102978B (zh) * 2017-05-24 2020-11-24 北京星选科技有限公司 数据回填方法、装置及移动终端
CN110297625A (zh) * 2018-03-22 2019-10-01 阿里巴巴集团控股有限公司 应用的处理方法及装置
CN110297625B (zh) * 2018-03-22 2023-08-08 阿里巴巴集团控股有限公司 应用的处理方法及装置
CN111309315A (zh) * 2018-12-12 2020-06-19 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
CN111309315B (zh) * 2018-12-12 2024-03-29 中国科学院沈阳自动化研究所 一种基于工业物联网数据和业务建模的自动化配置方法
CN111382729A (zh) * 2018-12-27 2020-07-07 北京图森智途科技有限公司 一种从数据源采集数据的方法、主机和汽车

Also Published As

Publication number Publication date
BRPI0612281A2 (pt) 2010-11-03
EP1896939A2 (en) 2008-03-12
CN101223505B (zh) 2011-09-07
US7363628B2 (en) 2008-04-22
MX2007015887A (es) 2008-03-04
RU2419837C2 (ru) 2011-05-27
US20060294048A1 (en) 2006-12-28
RU2007149277A (ru) 2009-07-10
WO2007001640A2 (en) 2007-01-04
KR20080017351A (ko) 2008-02-26
WO2007001640A3 (en) 2007-11-22
EP1896939A4 (en) 2010-09-22
JP2008544400A (ja) 2008-12-04
JP5026415B2 (ja) 2012-09-12

Similar Documents

Publication Publication Date Title
CN101223505B (zh) 在工作流实例与工作流主机之间实现协议不可知消息传递的方法和系统
US7552443B2 (en) System and method for implementing an event adapter
US7890922B2 (en) System and article of manufacture for integration of data management operations into a workflow system
US7188158B1 (en) System and method for component-based software development
JP4800328B2 (ja) コンピュータアプリケーションを統合するコンピュータプログラムおよびコンピュータの作動方法
US8838536B2 (en) Method and apparatus for mobile data collection and management
CN101310271B (zh) 用于生产性套件应用程序和主宿的用户界面的接口
US20090006997A1 (en) Workflow ui generating method and generator
US20070244910A1 (en) Business process meta-model
US8924914B2 (en) Application creation tool toolkit
JP2005276195A (ja) プロジェクト時間および経費
JP2006190279A (ja) メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置
US20210103862A1 (en) Methods and apparatus for exposing workflow process definitions as business objects
US20060136489A1 (en) Mapping a semantic model of business collaboration to a web services meta model
US20100162143A1 (en) Systems and methods for business driven application development
Nair Practical Domain-Driven Design in Enterprise Java: Using Jakarta EE, Eclipse MicroProfile, Spring Boot, and the Axon Framework
Antonioletti et al. OGSA-DAI: Two years on
US20070112793A1 (en) Model publishing framework
US20120174195A1 (en) Function module dispatcher
CN104598216A (zh) 用于实现业务智能报告的虚拟数据写回的方法和系统
US20050060309A1 (en) Query objects
Pittle Automated Web Service Inventory Management Software
Young et al. Deploying Solutions with. NET Enterprise Servers
Borkar Liquid data for WebLogic: integrating enterprise data and services
Using Jakarta et al. Practical Domain-Driven Design in Enterprise Java

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150519

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

Effective date of registration: 20150519

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.