CN101174212A - 用于接口的协作衍生的方法和系统 - Google Patents
用于接口的协作衍生的方法和系统 Download PDFInfo
- Publication number
- CN101174212A CN101174212A CNA2007101524786A CN200710152478A CN101174212A CN 101174212 A CN101174212 A CN 101174212A CN A2007101524786 A CNA2007101524786 A CN A2007101524786A CN 200710152478 A CN200710152478 A CN 200710152478A CN 101174212 A CN101174212 A CN 101174212A
- Authority
- CN
- China
- Prior art keywords
- demand
- component
- software
- input
- output
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
提供了用于接口的协作衍生的方法和系统。基于规范模型来构建软件组件的控制流。在各种实施例中,规范模型包括至少一个输入、以及引用该至少一个输入的至少一个需求。基于控制流以及规范模型的至少一个输入和至少一个需求来生成软件组件的至少一部分实现。在某些实施例中,规范模型还包括至少一个输出,并且软件组件的至少一部分实现也基于该至少一个输出。
Description
技术领域
本发明涉及接口的协作衍生(collaborative derivation);并且,具体地,本发明涉及接口的协作衍生和编程代码的部分实现(implementation)。
背景技术
经常作为商业分析师(analyst)和开发人员之间的协作工作而创造商业应用。商业分析师一般精通于定义商业规则,以描述允许并支持商业决定的信息,而开发人员一般熟悉以编程语言实现计算的有效方法,这多少有些独立于使用这样的计算的商业环境。这种协作经常是困难的,并且容易发生错误,这是因为,协作者具有不同的技能集合,并且他们从不同的观点来解决问题、并使用不同的工具。商业分析师可能使用通过利用字处理器而产生的电子数据表(spreadsheet)或文档来定义商业规则。商业分析师通常以例如英语之类的自然语言来表达那些商业规则。开发人员可能使用例如Eclipse的集成开发环境(IDE)、或帮助程序编制的工具(如IBM(国际商业机器公司的注册商标)WebSphere(国际商业机器公司的注册商标)DataStage(国际商业机器公司的注册商标))来编写计算机程序,并且以诸如Java(SunMicrosystems有限公司的注册商标)之类的编程语言来定义他的逻辑。
目前,将商业分析师的商业规则变换为开发人员的编程语言的逻辑是协作性的,并且一般大多是人工过程。例如,假设商业分析师记录以下商业规则:“采用每个客户在全部时段和全部账户上的平均信用风险评级”。开发人员将商业规则的此高级描述变换为实现该商业规则和计算期望值的软件组件的接口,并以适当的格式返回该值。此接口包括一组输入(例如,客户id、客户账户、时段、每时段的风险评级)、以及一组输出(例如,平均风险评级)。开发人员一般通过使用编程语言编写代码来实现此接口,该代码基于该组输入的值来计算该组输出的值。典型地,为了创建此接口,开发人员阅读并与商业开发人员讨论商业规则的含义,搜索提供输入值的源,定义输出值,并定义组成实现的逻辑步骤。
由于协作者使用的技能、语言和工具的差异、以及使他们的理解同步可能所需的口头交流,而减慢了此过程。经常,当由商业分析师以一种语言和一种工具(例如,分别是英语和电子数据表(spreadsheet))表达的信息被人工转换为开发人员的语言和工具(例如,分别是Java和Eclipse)时,这些差异带来许多曲解的可能并且开始发生错误。
另一种挑战是商业分析师的商业经验和技能随着不同组织而改变,这取决于商业分析师的经验来自该组织的商业端还是技术端。商业分析师的知识和理解在特定应用中甚至也可能改变。商业分析师可能能够指定用来计算某些信息的确切的实现细节,并且,可能仅能够以语言描述如何计算其他实现信息。例如,特定需求的实现细节对于商业分析师而言可能是公知的,这是因为,执行计算的功能可能已经存在于之前的使用,如诸如round()(四舍五入)或abs()(取绝对值)的算术函数,或者计算距客户家庭地址最近的位置的现有的客户功能。然而,对于新的需求,商业分析师可能仅能够提供需求的高级文字描述,如“采用每个客户在全部时段和全部账户上的平均信用风险评级”。
各种传统的技术提供了对技术规范(specification)的一定水平的变换,但倾向于关注技术用户(例如开发人员)以及根据技术规范的工作。例如,某些计算机辅助软件工程(CASE)工具和某些软件建模工具允许开发人员在协作环境下对他们的应用建模、并生成接口。模型驱动体系(MDA)允许开发人员在特定平台上根据实现而单独地对规范进行建模。这样的CASE工具、软件建模工具和它们的体系针对于软件架构师和开发人员,并且针对于软件应用的详细技术规范。结果,典型地,使用这样的工具需要一定水平的技能,例如,一体化建模语言(UML)模式、数据结构设计和数据类型的知识。其他工具,如用于查询构造的某些图形编辑器和某些开发工具,或提取、变换和加载(ETL)软件开发,针对于技术熟练的用户,一般也针对于单个用户。
因而,存在对用于使得商业分析师和开发人员之间的协作自动化的改进技术的需要。
发明内容
为了克服上述的现有技术中的限制,并且为了克服在阅读和理解本说明书时变得清楚的其他限制,方法、数据处理系统和计算机程序产品的各种实施例提供了软件的实现。基于规范模型来构建软件组件的控制流。在各种实施例中,规范模型包括至少一个输入、以及引用该至少一个输入的至少一个需求。基于控制流以及规范模型的至少一个输入和至少一个需求来生成软件组件的至少一部分实现。在某些实施例中,规范模型还包括至少一个输出,并且软件组件的至少一部分实现也基于该至少一个输出。
在各种实施例中,基于规范模型来构建软件组件的控制流。在各种实施例中,规范模型包括至少一个输入和至少一个输出。基于控制流、以及规范模型的至少一个输入和至少一个输出,来生成软件组件的至少一部分实现。在某些实施例中,规范模型还包括至少一个需求,并且,软件组件的至少一部分实现也基于该至少一个需求。
以此方式,提供了用于使得商业分析师和开发人员之间的协作自动化的改进技术。
附图说明
通过考虑结合了附图的以下说明,可容易地理解本发明的教导,附图中:
图1图解了商业分析师和开发人员之间的自动协作的实施例;
图2图解了在用户界面上显示的、由商业分析师创建的示例规范;
图3绘出了被填有图2的示例规范的内容的说明性规范模型;
图4绘出了允许用户指定具体使用情况的用户界面的实施例;
图5绘出了生成模块的处理的实施例的流程图;
图6绘出了构建图5的初始控制流的步骤的实施例的流程图;
图7绘出了创建图6的控制流的实施例的更详细的流程图;
图8绘出了具有基于图3的规范模型而生成的接口的说明性控制流;
图9绘出了具有基于图2的示例规范的条件需求的说明性规范;
图10绘出了由基于规范模型的生成模块基于图9的说明性规范而生成的示例控制流;
图11绘出了为了与图2的规范的行2相关联的、图3的规范模型的需求而生成的编程例程的实施例;
图12绘出了为了与图2的规范的行3相关联的、图3的规范模型的需求而生成的编程例程的实施例;
图13绘出了由生成模块基于图3的规范模型而生成的示例软件组件的实施例;
图14绘出了用来描述与ETL一起使用的本发明的实施例的另一示例规范;
图15包括图15A和图15B,它们一起绘出了被填有图14的示例规范的内容的示例规范模型;
图16绘出了处理规范模型以衍生出模板结构的实施例的流程图;
图17绘出了构建图16的软件子组件的模板的步骤的实施例的流程图;
图18绘出了正在显示在基于图15的规范模型执行了图17的流程图之后构建的示例ETL任务的图形用户界面的画布(canvas);
图19绘出了生成图16的控制流的至少一部分实现的至少一部分步骤的实施例的流程图;
图20绘出了在按照图16的流程图的其他处理之后在图18的图形用户界面的画布上显示的示例ETL任务;
图21绘出了在按照图16的流程图处理了图14的规范的行5和9的规范模型的需求之后、在图20的图形用户界面的画布上显示的示例ETL任务;
图22绘出了在按照图16和图17的流程图处理了图14的规范的行6和10的规范模型的需求之后、在图21的图形用户界面的画布上显示的示例ETL任务;
图23图解了显示商业规则运营商的细节的图形用户界面;以及
图24绘出了使用本发明的各种实施例的说明性数据处理系统。
为利于理解,当有可能时,使用了相同的附图标记来指示某些附图中共有的相同元素。
具体实施方式
在考虑了以下描述之后,本领域技术人员将清楚地意识到,本发明的各种实施例的教导可被用于使得商业分析师和开发人员之间的协作自动化。计算机实现的方法、数据处理系统和计算机程序产品提供了软件的实现。基于规范模型来构建软件组件的控制流。在各种实施例中,规范模型包括至少一个输入、以及引用该至少一个输入的至少一个需求。基于控制流以及规范模型的至少一个输入和至少一个需求来生成软件组件的至少一部分实现。在某些实施例中,规范模型还包括至少一个输出,并且软件组件的至少一部分实现也基于该至少一个输出。
在各种实施例中,基于规范模型来构建软件组件的控制流。在各种实施例中,规范模型包括至少一个输入和至少一个输出。基于控制流以及规范模型的至少一个输入和至少一个输出来生成软件组件的至少一部分实现。在某些实施例中,规范模型还包括至少一个需求,并且软件组件的至少一部分实现也基于该至少一个需求。
在各种实施例中,一种机制程序性地解释以商业分析师熟悉的语言和工具表达的商业逻辑,以衍生出以开发人员熟悉的语言和工具的商业逻辑的接口和部分实现。
图1图解了商业分析师32和开发人员34之间的自动协作的实施例。用户界面36允许商业分析师32提供规范38,以选择一组输入(输入)40和一组输出(输出)42,并且定义根据该组输入产生该组输出的商业规则和商业逻辑。一组输入包括至少一个输入。一组输出包括至少一个输出。在各种实施例中,可以存在不同类型的规则。一些规则可引用一个和多个现有的编程例程或现有软件组件,并且,被称为商业规则的其他规则是文本描述。也可参照可被用来实现商业规则的现有编程例程或现有软件组件来注释商业规则。将此规范38的内容转换为规范模型44。基于规范模型44生成接口。在各种实施例中,由该组输入和该组输出来定义该接口。该接口包括至少一部分实现,该实现包括在包含相应商业规则的规则和接口软件子组件中引用的现有编程例程或现有软件组件。开发人员34可在由用户界面46指示的开发人员的优选开发工具中检查此接口和实现,并且,用新设计的、用来实现与接口软件子组件关联的各个商业规则的编程例程或(在某些实施例中的)软件子组件来替代所述接口软件子组件。
本发明的各种实施例使得能够协作工作,以在具有不同经验水平的不同用户之间建立商业应用。其允许具有较少或没有技术经验的商业分析师使用他们熟悉的工具和术语来描述信息。例如,这样的用户将会输入对商业应用的需求,作为一组松散定义的商业规则,其描述可用信息和要产生的信息之间的关系。
数据资源(data asset)包含数据。在各种实施例中,数据资源是数据容器(container)。在一些实施例中,数据资源是结构化的数据,如关系型数据库的表、或表的模式(schema)。在各种实施例中,结构化的数据可以是电子数据表或平面文件(flatfile),或者,在一些实施例中,是组织了数据的字处理文档,或WebService(网络服务)的模式。在一些实施例中,数据资源是程序变量。在一些实施例中,数据资源是非结构化的数据,如,在字处理文本文档中,例如,信件或报告。在一些实施例中,非结构化的数据可以是电子邮件、网页、图像数据、或者音频或视频数据。数据资源可被用作输入,并被转换以产生输出。例如,输入可包括作为关系型数据源(如数据库表)的数据资源,而输出可以是另一数据资源,如数据库表。
在一些实施例中,本发明追踪需求、数据资源以及它们相应的实现之间的关系。可由商业分析师使用本发明的各种实施例来向开发人员提供经更新的信息。结果,管理在协作工作中可以是自动的,这对于符合新管理规则来说越来越重要。
图2图解了由商业分析师创建的、并被显示在用户界面上的示例规范50。在各种实施例中,在数据处理系统的显示器上呈现的图形用户界面上显示该规范50。在各种实施例中,用户从在图形用户界面中呈现的列表中选择输入和输出。规范50具有至少一行52和至少一列54、56、58和60。列包括行数列54、源(Source)列56、目标(Target)列58、以及需求(Requirement)列60。在源列54中列出了用于需求的至少一个输入,在目标列58中列出了至少一个输出。在各种实施例中,用户从在图形用户界面上呈现的多个预定义的需求中选择作为预定义函数或编程逻辑的需求。用户可手动输入需求,作为商业规则。在需求列60中列出了如何根据源列中的输入值来计算目标列中的输出值的描述。
在各种实施例中,作为一个需求的一行需求列为空,并且生成模块解释该空需求。在一些实施例中,如果需求为空,并且如果指定了输入和输出,则将输入复制到输出。在各种实施例中,如果需求为空,并且如果指定了多个输入或多个输出,或者如果指定了多个输入和多个输出,则将创建接口。
在一些实施例中,一行目标列可以为空,即,未指定输出;并且,生成模块根据所指定的该行的需求,处理所指定的该行的源输入。
商业分析师在技能水平上有不同,从具有一些编程技能到没有编程技能。一些商业分析师可能有时能够经由实际编程逻辑来表达各种需求,而其他商业分析师可能仅仅能够提供期望行为的文本描述。
图2的示例需求图解了不同水平的细节。例如,第一行52的需求指定了被称为“F0”的预定义函数。第二行62的需求指定了要用于计算输出值的实际编程表达式,并且此类需求被称为编程逻辑。第三行64的需求指定了具有高级文本描述的商业规则。
图3绘出了被填有图2的示例规范50的内容的说明性规范模型70。在各种实施例中,在图形用户界面上显示规范模型70。在一些实施例中,软件模块捕捉由商业分析师在规范模型70中输入的信息。规范模型70是存储需求模型71中的各种实施例中的需求92、94和96、并且将需求92、94和96与输入72、74、76、78和80以及输出82、84、86和88相关联的数据结构。规范模型70的需求92、94和96分别基于规范的行1、2和3的需求。
在各种实施例中,规范提供规范模型的内容的视图。例如,图2的规范50提供图3的规范模型70的内容的视图。
在各种实施例中,当用户输入每一行时创建和更新规范模型。可替换地,在用户完成规范之后创建规范模型。在一些实施例中,商业分析师使用电子数据表来创建规范,并将其导入规范模型的数据结构。
在各种实施例中,生成模块解释规范模型,并逐渐创建软件组件的对应的软件子组件,其包括规范中每个需求的一部分(并且在一些实施例中是全部)实现。创建全部还是部分实现取决于在需求中提供的细节的水平。
在各种实施例中,生成模块具有多个用途,换言之,生成模块可针对具体的使用情况来生成一个或多个软件组件。例如,在一个使用情况下,使用生成模块来创建软件组件,其提供网络服务(WebService)之间的链接。在此例子中,将网络服务A的输出模式映射到网络服务B的输入模式。在规范中定义从网络服务A到网络服务B的映射。在规范中,作为源(也就是输入)来输入网络服务A的输出模式。在规范中,作为目标(也就是输出)来输入网络服务B的输入模式。使用该规范,可衍生出映射的一部分(在一些实施例中是全部)实现。
在使用情况的另一示例中,使用生成模块来以指定的编程语言创建一个或多个软件组件。例如,使用生成模块来创建Java类,其提供输入到输出的特定映射的实现。在此例子中,软件组件是Java类。在其他实施例中,可使用除了Java之外的编程语言。
在使用情况的再一示例中,使用生成模块来创建ETL任务(Job),以将源数据字段变换为目标数据字段。ETL任务的一个例子是IBM WebSphereDataStage任务。然而,在其他实施例中,可生成其他类型的ETL任务。在此使用情况(use case)下,软件组件是ETL任务。
此外,使用情况不意味着对编程语言、网络服务和ETL任务的限制,可为了其他使用情况来使用本发明的各种实施例。
图4绘出了允许用户指定具体使用情况的用户界面100的实施例。图4的用户界面100具有让用户输入规范模型102的区域,并还具有按钮104、106和108,其响应于被激活而使生成模块分别使用Java、WSDL或ETL任务来生成软件组件。激活具体按钮导致为了相关的使用情况来解释规范模型。
图5绘出了生成模块的处理的实施例的流程图。生成模块处理规范模型,以衍生出控制流和实现这两者。在步骤122中,生成模块接收规范模型。
在步骤124中,生成模块基于规范模型,构建软件组件的控制流。生成模块根据控制流、以及将构成软件组件的一个或多个软件子组件的集合,来确定软件组件的“形式(shape)”。在一些实施例中,软件组件是程序,并且软件子组件是构成该程序的编程例程。例如,该程序是具有主程序的Java程序,主程序包括对激活函数(invoke function)的调用,而编程例程是函数自身。
在步骤126中,生成模块基于规范模型生成控制流的至少一部分实现。具体需求的实现是全部的还是部分的取决于规范模型的具体需求。在一些实施例中,生成模块基于规范模型和特定使用情况而衍生出该需求的至少一部分实现。例如,如果需求指定编程逻辑,则添加实现该编程逻辑的例程。在另一例子中,如果需求指定商业规则,则添加作为该商业规则的接口的例程。
图6绘出了构建图5的控制流的步骤122的实施例的流程图。在步骤132中,生成模块确定软件组件的控制流的软件子组件的逻辑顺序。例如,生成模块创建“主(Main)”程序。在各种实施例中,由编程例程来实现软件子组件。在缺少依赖关系的情况下,生成模块根据用户在规范中引入的次序(如行数次序)来对激活编程例程的调用进行排序。此外,规范模型捕捉需求之间的明显的依赖关系,并且,生成模块将所生成的每个需求的实现链接为反映那些依赖关系的顺序。如果一个需求的输出匹配另一需求的输入,则生成模块对软件子组件排序,使得在第二需求的实现之前激活第一需求的实现。例如,用来激活与第一需求相关联的编程例程的调用被排序为在用来激活与第二需求相关联的编程例程的调用之前出现。
在各种实施例中,更一般地,术语“调用”是指软件子组件的激活。软件子组件可以是编程例程,如函数、方法、子例程、例程或过程。
在各种实施例中,在步骤134中,生成模块根据软件子组件的逻辑顺序来创建控制流。在各种实施例中,为创建控制流,生成模块根据该逻辑顺序,将对编程例程的调用插入到规范中的每个需求的软件组件中。在各种实施例中,按照步骤132所确定的次序,将对编程例程的调用插入到控制流中。
图7绘出了图6的步骤134的创建控制流的实施例的更详细的流程图。在步骤142中,生成模块确定需求是否为预定义的函数。响应于步骤142确定该需求是预定义的函数,在步骤144中,生成模块插入对特定函数的调用,作为编程例程。
响应于步骤142确定该需求不是预定义的函数,在步骤146中,生成模块确定该需求是否为编程逻辑。在各种实施例中,在步骤146中,如果空需求与恰好一个输入以及恰好一个输出相关联,则将空需求看作是编程逻辑。响应于步骤146确定该需求是编程逻辑,在步骤148中,生成模块插入对编程例程的调用,该编程例程将被生成以实现编程逻辑。在步骤150中,生成模块创建到编程例程的、从输入和输出(如果有的话)衍生出的接口,使得输入代表对编程例程的参数,而输出代表来自编程例程的返回值。
响应于步骤146确定该需求不是编程逻辑,在步骤152中,生成模块确定该需求是否为商业规则。在各种实施例中,在步骤152中,如果空需求与多个输入和/或多个输出相关联,则将空需求看作商业规则。响应于步骤152确定该需求是商业规则,在步骤154中,生成模块插入对充当商业规则的代码的接口的编程例程的调用。步骤154前进到步骤150,以创建接口。
响应于步骤152确定该需求不是商业规则,在步骤156中,退出流程图。
图8绘出了利用基于图3的规范模型而生成的接口的说明性控制流160。在各种实施例中,在显示器上的用户界面中向用户呈现控制流。指定需求的顺序参照行次序,即,需求的行编号。例如,对行1的需求的预定义函数的调用164是第一个,之后是对与行2的需求相关联的编程例程的调用166,之后是对与行3的需求相关联的编程例程的调用168。因为在图3的规范模型中不存在明显的依赖关系,所以,调用的序列次序与在规范中指定需求的次序(即,行编号次序)相符。
在图8中,第一排(line)162声明了“主”程序,并且列出了返回的输出。响应于规范模型的需求92(图3)以及因此的规范的行1而生成排164。排164调用以“输入1(input1)”作为自变量的预定义函数“F0”,并返回“输出a(inputa)”和“输出b(inputb)”。
响应于规范模型的需求94(图3)以及因此的规范的行2而生成排166。因为需求94是编程逻辑,所以,生成模块创建有所区别的函数名,在此例子中是“GeneratedCode”,并将对该函数的调用添加到“主”程序。生成模块还包括该调用的自变量和返回值。例如,排166调用以“输入2”和“输入3”作为自变量的函数“GeneratedCode”,并返回“输出c、...”。
响应于规范模型的需求96(图3)以及因此的规范的行3而生成排168。行3的需求是商业规则。生成模块创建有所区别的函数名,在此例子中是“Input4NToOutputM”,并将对该函数的调用添加到“主”程序。生成模块还包括该调用的自变量和返回值。在此例子中,排168调用以“输入4”到“输入n”作为自变量的函数“Input4NToOutputM”,并返回“输出m”。所生成的函数调用作用为编程例程的接口,以实现如需求的文本所描述的商业规则。
在一些实施例中,用户还具有用来人工地将多个需求关联到规范模型中的期望序列的选项。
在各种实施例中,用户可创建条件需求。例如,假设用户想要在图2的示例规范中插入条件,使得如果该条件为真,则执行行2,并且如果该条件为假,则执行行3。通过使用用户界面,用户可定义在规范模型中捕捉的条件需求,并且在一些实施例中,生成用于该条件需求的代码。
图9绘出了基于图2的示例规范的、具有上述条件需求的说明性规范180。在规范的新行1(182)中插入条件需求。在行1182中,除了指定行2和行3的条件需求之外,还指定行2和行3的输入和输出。行1182的条件需求是“如果条件成立,则行2,否则,行3(If condition Row 2 Else Row3)”。
图10绘出了由生成模块基于图9的说明性规范、基于规范模型而生成的示例控制流。生成模块生成被称为“PartialImplementationFromSpecification”的软件组件的控制流。响应于与图9的行1相关联的规范模型的条件需求,生成模块生成图10的代码202,并且如下所示:
“if(condition)
(input a,inputb)=call F0(input4,...,input n);
else
(input c,...)=call GeneratedCode(input 2,input 3);”
返回参照图5的步骤126,现在将描述基于规范模型生成控制流的至少一部分实现的更详细的实施例。例如,还是参照图2和图3,因为与行1相关联的规范模型的需求指定了预定义函数,所以,生成模块不执行与行1相关联的需求的进一步的实现。对于行1的需求,编程例程是预定义函数。
图11绘出了对于与图2的规范的行2相关联的图3的规范模型的需求而生成的编程例程210的实施例。生成模块已经生成了对与此需求相关联的编程例程的调用,在此例子中,是“GeneratedCode”。在与图2的规范的行2相关联的图3的规范模型的需求中,该需求包含代码段的完整实现。以编程语言来表达代码段。生成模块生成被称为“GeneratedCode”的编程例程,其使用与需求相关联的源列作为输入,使用与需求相关联的目标列作为输出,并且将代码段嵌入到该编程例程的主体中。在此例子中,编程例程是函数。
图12绘出了为了与图2的规范的行3相关联的规范模型的需求而生成的编程例程220的实施例。此需求是商业规则。生成模块预先生成了对与此需求相关联的编程例程220的调用,在此例子中,是“Input4NToOutputM”。在此例子中,生成模块可仅仅提供与图2的规范的第三行相关联的规范模型的需求的编程例程的部分实现。在图12中示出了编程例程的此部分实现。编程例程220包括接口和函数主体,其中嵌入了捕捉相关联的商业规则的文本的注释。通过为软件子组件定义输入和输出、并描述要被实现来满足需求的逻辑,此部分实现向开发人员提供了指导。因为定义了输入和输出,所以,编程例程220也被称为接口软件子组件。
在各种实施例中,如果空需求与恰好一个输入以及恰好一个输出相关联,则在图5的步骤126中,生成模块生成执行分配操作以在编程例程中将输出设置为等于输入的代码。例如,对于作为源数据资源的一列的输入以及作为目标数据资源的一列的输出,分配操作可将目标数据资源的目标列的值设置为等于源数据资源的列的值。
在一些实施例中,如果空需求与多个输入和/或多个输出相关联,则在图5的步骤126中,生成模块将空需求视为商业规则。
图13绘出了由生成模块基于图3的规范模型生成的示例软件组件230的实施例。在此例子中,软件组件230是包括代码的程序。分别示出了与为行2和行3生成的编程例程相关联的代码232和234,以及定义图3的完整规范模型的控制流序列的“主”例程的代码236。
图14绘出了将被用于描述与ETL一起使用的本发明的实施例的另一示例规范240。例如,IBM WebSphere DataStage是一种ETL工具,其是IBMWebSphereData Integration Suite(数据集成套件)的一部分。IBMWebSphere DataStage使得用户能够集成企业信息,而不考虑源、目标和时间帧。将参照IBM WebSphere DataStage任务来描述各种实施例。然而,本发明不意味着限于IBM WebSphere DataStage,并且可通过图形开发工具来使用本发明。
在各种实施例中,“程序”被称为任务,一般在图形用户界面的“画布”上图形化地构建任务。该画布可包含基于组且基于列的操作的组合,其将数据从一组源移动和转换到一组目标。基于组的操作被称为操作符(operator),并且代表诸如联接(join)、过滤以及合计(aggregation)的操作。经由指示从一个操作符到另一操作符的数据流的多个排来将操作符链接在一起。基于组的操作也可以被称为基于数据资源的操作。基于列的操作是函数,并且包括预定义的和用户定义的函数,如StringToDate()、或CurrentMonth()。在各种实施例中,基于列的操作也与操作符相关联。
此示例场景涉及代表交易和账户数据的两个源。Account_Xact数据资源包含一个账户的每日交易。Account数据资源包含账户信息,其包括账户Id和该账户被持有为个人账户还是联合账户。查找数据资源可用于返回附加的账户持有者信息,如姓名和地址。Account和Account_Xact数据资源将被合计为两个目标数据资源:GroupAccount_Xacts,其包含联合账户当前月份的每个账户的交易的合计;以及IndividualAccount_Xacts,其包含个人账户当前月份的每个账户的交易的合计。使用Account_Xact.Timestamp列来表示月份交易,并使用Account.Type列来表示账户是联合持有还是由个人持有。
在图14的规范中,行1242具有包括条件的需求244,通过该条件,将数据移动到GroupAccount_Xacts数据资源、或IndividualAccount_Xacts数据资源。行1242的需求244条件性地测试Account.Type。如果Account.Type的值是“联合(joint)”,则规范指示行3-6是有效的。如果Account.Type的值不是“联合”,则规范指示行7-10是有效的。
行2246定义了用来仅仅从源数据资源Account_Xact提取当前月份的数据的条件。被称为“CurrentMonth”的预定义函数采用“Account_Xact.Timestamp”作为自变量,并在该时间戳是当前月份的情况下返回“真”,否则返回“假”。
行3、4、5和6248、250、252和254分别描述了将源数据移动到GroupAccount_Xacts数据资源的需求。行3248描述将“Account”数据资源的列“Id”的值移动(在多个实施例中是存储)到列GroupAccount_Xacts.Account_Id中。需求字段是空白,其指示将Account数据资源的“Id”列的值从源移动(在多个实施例中是存储)到GroupAccount_Xacts数据资源的目标Account_Id列中、而无任何附加的转换。
行4250描述通过调用String2Date函数,将字符串值从Account_Xact.Timestamp转换到目标列GroupAccount_Xacts.Timestamp的数据值。这使用被嵌入到表达式中的预定义函数(StringToDate)来表达。
行5252描述查找操作。在各种实施例中,查找函数被看作编程逻辑需求。查找数据资源(Account_Info)代表查找操作的源,并且包含详细的账户信息。为从查找数据资源Account_Info中获得主要和次要账户持有者的姓名,将其与Account数据资源联接在一起。由查找函数中的关键字元素定义该联接(Account_Info.Account_Id=Account.Id)。将列Account_Info.Primary_Cust_Name和Account_Info.Secondary_Cust_Name分别映射到GroupAccount_Xacts数据资源列Primary_Cust_Name和Secondary_Cust_Name。
行6254定义了用来计算由Account.Id给出的每个账户Id的列Account_Xact.Value上的运行总和的需求。此需求是包括文本描述的商业规则,而不是编程逻辑或预定义函数。
行7、8、9和10256、258、260和262分别具有将源数据移动到IndividualAccount_Xacts数据资源的需求。IndividualAccount_Xacts数据资源与GroupAccount_Xacts数据资源的不同之处在于,其具有单列Cust_Name,而不是Primary_Cust_Name和Secondary_Cust_Name。结果,除了查找数据资源被调用来返回主要客户的姓名之外,行7、8、9和10的需求类似于上述描述的那些。
图15包括一起绘出被填有图14的示例规范240的内容的示例规范模型270的图15A和图15B。示例规范模型270包括:输入和输出(即,源和目标)的描述,在此例子中分别是源和目标数据库模式模型;以及需求模型,其使用引用源和目标数据库模式模型的规范的需求来将源和目标数据库模式模型相关联。
在规范模型270中,将图14的行2246的需求映射到元素272。图14的行2246不具有目标,因为其代表过滤器,并且被应用于源列中已定义的输入上。例如,当在规范的其他行中、Account_Xact被指定为输入时,图14的行2246的需求“CurrentMonth(Account_Xact.Timestamp)”产生来自要被提供为输入的当前月份的数据。因而,元素272包含条件需求。将不提供来自前一月份的数据。在一些实施例中,使用元素272的“CurrentMonth(Account_Xact.Timestamp)”来生成对包含Account_Xact数据资料的数据库的队列的预测。
行1242的条件需求244被映射到规范模型的元素274。如果如箭头276所示、元素274的条件估计为真,则元素274前进到元素278。元素278实现图14的规范的行3-6。如果如箭头280所示、元素274的条件估计为假,则元素274经由继续符(Continuator)A而前进到图15B的元素282。
元素278包括需求模型284。要被映射的每个输入和输出被其相关需求引用。例如,需求“String2Date”引用Account_Xact.Timestamp。被称为为Account_Xact.Timestamp 292的输入被需求294映射到名为GroupAccount_Xacts.Timestamp 296的输出。
在图14的示例规范中,多个需求304、306和308引用被称为Account.Id302的输入(即,列)。因而,示出了从Account.Id 302到需求304、306和308的多个引用,即箭头。
需求304将数据从Account.Id 302移动到GroupAccount_Xacts数据资源310。
需求306接收作为输入的Account.Id302、Account_Info.Primary_Cust_Name312、以及Account_Info.Secondary_Cust_Name314,基于查找关键字来执行查找,并将数据移动到输出GroupAccount_Xacts.Primary_Cust_Name 316、以及GroupAccount_Xacts.Secondary_Cust_Name 318。在此例子中,需求306指定查找关键字“Account_Info.Account_Id=Account.Id”,其使得基于指定的Account.Id 302来向Account_Info数据资源搜索数据。
需求308接收Account.Id302和Account_Xact.Value 320,根据具有此Id的账户的Account_Xact.Value的运行总和(running sum)来计算GroupAccount_Xacts.Sum_Acc_Xact 322。
在图15B中,元素282包括需求模型330,需求模型330包括需求332、334、336和338。需求332将“String2Date”应用于输入Account_Xact.Timestamp 340,并在IndividualAccount_Xacts.Timestamp342中存储结果。
需求334将Account.Id344中的值复制到IndividualAccount_Xacts.Account_Id 346。
输入Account.Id 342和Account_Info.Primary_Cust_Name 348被提供给需求336,其执行查找,并输出IndividualAccount_Xacts.Cust_Name 352。
输入Account.Id 342和Account_Xact.Value 354被提供给需求338。需求338根据每个账户id的Account_Xact.Value的运行总和来计算GroupAccount_Xacts.Sum_Acc_Xact 356。
图16绘出了处理规范模型以衍生出模板的结构的实施例的流程图。模板代表软件组件。在各种实施例中,生成模块处理规范模型以衍生出能够满足需求的模板的结构。
在步骤362中,生成模块接收规范模板。
在步骤364中,生成模块利用基于规范模型的模板来构建控制流。模板包括能在画布上显示的软件子组件。生成模块通过识别所有的数据源和目标、它们的相互关系(如联接和合并条件)、以及所设置的级别操作(如被应用于数据资源级别的条件元素)来确定模板的整体“形式”。生成模块向模板中插入代表数据源、目标、它们的关系、以及所设置的级别操作的软件子组件。例如,在各种实施例中,软件子组件是操作符。生成模块还通过链接软件子组件来指示软件子组件之间的流。在各种实施例中,如上面参照图6所述,生成模块还确定控制流的软件子组件的逻辑顺序。
在步骤366中,生成模块通过将一个或多个软件子组件插入与规范模型的需求相关联的模板中,来生成控制流的至少一部分实现。
图17绘出了图16的步骤364的构建软件子组件的模板的实施例的流程图。在各种实施例中,在画布上显示软件子组件的模板。在步骤372中,生成模块遍历(traverse)规范模型以识别出源数据资源,并将代表源数据资源的软件子组件添加到模板。
在步骤374中,生成模块确定源数据资源是否相关,并且如果是这样,则确定源数据资源如何相关,并且基于该关系而将软件子组件引入模板。
在步骤376中,生成模块识别出目标数据资源,并将代表目标数据资源的软件子组件添加到模板。
在步骤378中,生成模块从规范中识别出数据资源级别需求,并且分别将相关联的软件子组件添加到模板。
图18绘出了显示出在执行图17的流程图之后、基于图15的规范模型而构建的示例ETL任务392的图形用户界面的画布390。在此实施例中,模板是ETL任务,并且软件子组件包括ETL操作符。在其他实施例中,模板是除了ETL任务之外的软件组件。例如,在图17的步骤372中,遍历图15的规范模型,以识别出源数据资源Account和Account_Xact。生成模块遍历模式,以找到这两个数据资源,并发现它们驻留在不同的数据库中。结果,生成模块将分别代表Account和Account_Xact的模式的两个对象数据库连接性(ODBC)数据源ETL操作符394和396添加到ETL任务。
继续该示例,在图17的步骤374中,生成模块确定源数据资源Account和Account_Xact是否相关,并且如果是这样,则确定源数据资源如何相关,并且基于该关系而将ETL操作符引入ETL任务。因为在图15的规范模型中不存在合并条件(如联接),所以,生成模块遍历模式以找到两个数据资源,并发现它们共享公共列Id上的主关键字/外来关键字关系。在各种实施例中,生成模块调用发现模块来确定数据资源是否共享任何关系。基于此关系,生成模块利用条件Account.Id=Account_Xact.Id,将联接ETL操作符398引入ETL任务。
更一般地,联接ETL操作符代表多个源(即“n”个源)到一个目标的关系。
例如,在图17的步骤376中,生成模块识别图15的规范模型的目标数据资源GroupAccount_Xacts和IndividualAccount_Xacts,并将分别代表GroupAccount_Xacts和IndividualAccount_Xacts目标数据资源的ODBC数据源ETL操作符400和402添加到ETL任务。
在图17的步骤378中,生成模块从规范模型中识别出数据资源级别需求,并且分别将相关联的ETL操作符添加到ETL任务。在此例子中,图14的规范的行1和2是数据资源级别需求;图14的行3-10是列级别需求。行1借助于“切换(switch)”条件(即,“If”语句)来将两个目标数据资源GroupAccount_Xacts和IndividualAccount_Xacts相关。因而,规范模型包括需求中的切换条件。响应于该切换条件,生成模块将切换ETL操作符404添加到ETL任务,其中如图18所示,每个目标数据资源作为ETL操作符的输出。更一般地,切换ETL操作符表示单个源到多个目标(即,“n”个目标)的关系。在规范模型的需求中包含了规范的行2的明确的条件元素。响应于过滤条件,生成模块将过滤ETL操作符406添加到ETL任务。因为过滤条件涉及源目标数据资源Account_Xact,所以,生成模块将过滤ETL操作符406放在Account_Xact源396之后,以仅仅允许来自当前月份的记录流到ETL任务的剩余部分。
链接包括在ETL操作符之间移动的列。链接包括作为对需求的输入的、规范模型定义的列。需求定义了在ETL操作符上执行的操作。ETL操作符的输出是在传出链接上提供给下一ETL操作符的一个或多个列的新组。因而,链接显示出操作符之间的流。在图18中,显示出从Account源数据资源394到联接ETL操作符398的链接,其被称为DSLink3 408。当例如在步骤372中构建了ETL任务时,也在Account_Xact源数据资源和联接ETL操作符398之间设置链接,例如DSLink2。响应于在步骤378中添加了过滤ETL操作符406,将链接DSLink2 410更新为指示从Account_Xact 396源数据资源到过滤ETL操作符406的流,并且将DSLink19 412从过滤ETL操作符406添加到联接ETL操作符398。同样在步骤378中,将DSLink7414从联接ETL操作符398添加到切换ETL操作符404。将DSLink8 416和DSLink9 418从切换ETL操作符404分别放置到GroupAccount_Xacts400和IndividualAccountXacts 402。在各种实施例中,所述链接是DataStage链接;然而,本发明不意味着限于DataStage链接,也可以使用其他链接。
现在将更详细地描述图16的步骤366中生成控制流的至少一部分实现的处理。在各种实施例中,在步骤364中,生成模块配置在图16的步骤362中创建的ETL任务。在各种实施例中,需求的类型包括预定义函数、编程逻辑、以及商业规则。在图16的步骤364中,生成模块有区别地处理每类需求。
图19绘出了图16的步骤366的为ETL任务生成控制流的至少一部分实现的至少一部分的实施例的流程图。在步骤422中,生成模块确定需求是否为预定义函数。如果是这样,则在步骤424中,生成模块将变换器ETL操作符添加到表示需求的输入和输出的ETL操作符之间的ETL任务。变换器ETL操作符是ETL任务的软件子组件。
如果在步骤422中、生成模块确定需求不是预定义函数,则在步骤426中,生成模块确定需求是否为编程逻辑。在各种实施例中,在步骤426中,如果需求与恰好一个输入以及恰好一个输出相关联,则空需求被看作是编程逻辑。如果这样,则在步骤428中,生成模块将编程逻辑ETL操作符添加到表示需求的输入和输出的ETL操作符之间的ETL任务。编程逻辑ETL操作符是任务的子组件。
如果在步骤426中、生成模块确定需求不是编程逻辑,则在步骤430中,生成模块确定需求是否为商业规则。在各种实施例中,在步骤430中,如果需求与多个输入和/或多个输出相关联,则空需求被看作是商业规则。如果是这样,则在步骤432中,生成模块将商业规则ETL操作符添加到表示需求的输入和输出的ETL操作符之间的ETL任务。商业规则ETL操作符是接口软件子组件,这是因为,其输入和输出是已被定义的。商业规则ETL操作符充当商业规则的接口ETL操作符。如果在步骤430中,生成模块确定需求不是商业规则,则在步骤434中,退出流程图。
在一些实施例中,预定义函数可以是对列进行操作的标量函数(scalarfunction),或者是对行的集合进行操作的操作符。图14的规范的行4和8具有作为标量函数的需求。编程逻辑被表达为一组更复杂的表达式,该表达式可被直接变换为ETL操作符和函数。图14的规范的行5和9具有示例编程逻辑需求,如可被直接变换为查找操作符的查找函数。图14的规范的行6具有被表达为文本商业规则的需求。
图14的行3和7将数据从源复制到目标,并且由ETL操作符之间的数据的流利用所连接的链接来隐式地处理。
图20绘出了在图16的步骤366的进一步处理之后、图18的图形用户界面的画布390上显示的示例ETL任务392。图14的规范的行4和8指示相同的预定义标量函数(String2Date),并且,在它们的输出(即,目标列)上有所不同。响应于图15的规模模型的行4和8的需求,根据图19的步骤424,生成模块将变换器ETL操作符340添加到ETL任务392中,ETL任务392将StingToDate函数应用于来自过滤ETL操作符406的行。DSLink19 412从过滤ETL操作符406流到变换器ETL操作符440。DSLink1 412从变换器ETL操作符440流到联接ETL操作符398。
图21绘出了在图16的步骤366中处理了图14的规范的行5和9的规模模型的需求之后、在图20的图形用户界面的画布390上显示的示例ETL任务392。在图21中,省略了画布的背景网格线。这些需求指示查找函数。尽管行5和9的需求映射到目标上的不同的列,但这些需求共享相同的查找函数。因而,将需求分组为一个查找操作,其直接映射到所添加的、被插入ETL任务392的查找ETL操作符450,其中关键条件是Account_Info.Account_Id=Account.Id,其将Account_Info数据资源与Account数据资源相关。将ODBC数据源ETL操作符352添加到模板,以表示Account_Info源数据资源。DSLink3 408从用于Account 394的ODBC数据源ETL操作符流到查找ETL操作符450。DSLink15 454从用于Account_Info 452的ODBC数据源ETL流到查找操作符450。DSLink14 456从查找ETL操作符450流到联接ETL操作符398。
图22绘出了在图16的步骤366和图17的步骤432中处理了用于图14的规范的行6和10的、图15的规范模型的需求之后在图21的图形用户界面的画布390上显示的示例ETL任务392。行6和10的需求是具有文本描述的商业规则。因为需求仅仅包括文本描述,所以,所述两个需求均被解析为商业规则ETL操作符462和464,即定义输入和输出数据的接口ETL操作符,但是,给开发人员留下通过遵循在商业规则ETL操作符中嵌入的文本描述所提供的指导的实现。生成模块基于其输入和输出依赖关系而将每个商业规则ETL操作符插入到模板中。例如,尽管在需求中引用的源列来自相同的数据资源(Account_Xact),但它们被应用于两个不同的目标。尽管商业规则的文本相同,但不知道开发人员将编写的程序的逻辑是否会相同。因而,行6的规范模型的需求映射到在切换操作符404之后且在目标数据资源GroupAccount_Xacts 400之前插入的“BusinessRule1”ETL操作符462。行10的规范模型的需求被解析为在切换操作符404之后且在目标数据资源Individual_Accts 402之前插入的“BusinessRule2”ETL操作符464。DSLink8416从切换ETL操作符404流到BusinessRule1 ETL操作符462。DSLink9 418从切换ETL操作符404流到BusinessRule2 ETL操作符464。DSLink28 466从BusinessRule1 ETL操作符462流到代表GroupAccount_Xacts数据资源的ETL操作符400。DSLink29 468从BusinessRule2 ETL操作符464流到代表IndividualAccount_Xacts数据资源的ETL操作符402。
图23图解了显示商业规则ETL操作符的细节的图形用户界面470。被嵌套在商业规则ETL操作符内的普通ETL操作符472被链接到从规范模型衍生出的输入474和输出476,并且利用来自规范的商业规则来注释。开发人员可将普通ETL操作符472替换为合适的ETL操作符和函数,以实现商业规则。在此例子中,商业规则描述了总计,即,总和。DSLink1 478从输入474流到普通ETL操作符472。DSLink2 480从普通ETL操作符472流到输出476。图23还提供了源列482、目标列484和商业规则的文本486。由此,可使用指定的商业规则,作为用来将信息从商业分析师直接传递给开发人员的协作效果的一部分。
本发明的各种实施例可采用完全硬件实施例、完全软件实施例、或者包含硬件和软件元素这两者的实施例的形式。在优选实施例中,以软件来实现本发明,包括但不限于固件、驻留软件、微码等。
另外,本发明的各种实施例可采用可从计算机可用或者计算机可读介质获得的计算机程序产品的形式,该介质提供通过或结合计算机或任何指令执行系统使用的程序代码。为了此说明的目的,计算机可用或者计算机可读介质可以是能够包含、存储、容纳、传播或传输程序以通过或结合指令执行系统、设备或装置来使用的任何设备。
介质可以是电、磁、光、电磁、红外线、或半导体系统(或设备或装置)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可拆卸计算机盘、随即存取存储器(RAM)、只读存储器(ROM)、硬磁盘或光盘。光盘的目前的例子包括紧致盘-只读存储器(CD-ROM)、紧致盘-读/写(CD-R/W)和数字视频盘(DVD)。
图24绘出了使用本发明的各种实施例的说明性数据处理系统500。适合于存储和/或执行程序代码的数据处理系统500将包括直接或间接通过系统总线506耦连到存储器元件504的至少一个处理器502。存储器元件504可包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置、以及提供至少一些程序代码以降低在执行期间从大容量存储装置检索代码所必需的次数的临时存储的高速缓冲存储器。
输入/输出或I/O装置508(包括但不限于,例如,键盘510、例如鼠标的定点装置512、显示器514、打印机516等)可被直接或通过中间I/O控制器而耦连到系统总线506。
诸如网络接口(NI)520之类的网络适配器也可以耦连到系统总线506,以使得数据处理系统能够通过中间的私有或公共网络522而耦连到其他数据处理系统或远程打印机或存储装置。调制解调器、有线电视调制解调器和以太网卡正好是一些当前可用的网络适配器的类型。网络适配器可经由网络传输线(例如,双绞线、同轴线或光纤缆线)或使用无线传输介质的无线接口而耦连到网络。此外,可实现各种实施例的软件可以通过传输介质而获得,例如,从网络上的服务器。
存储元件504存储操作系统530、生成(Generation)组件532、规范(Specification)534、规范模型536、开发工具538、数据库540、软件组件542以及数据资源544。
在各种实施例中,开发工具538是由开发人员使用的图形化开发工具。在一些实施例中,开发工具538是IBM WebSphere DataStage。
在各种实施例中,数据库540可以是关系型、分级或网络数据库管理系统、以及数据库的关联数据。例如,数据库540是具有一个或多个表的关系型数据库管理系统。
可通过传统的操作系统来实现操作系统530,如z/OS(国际商业机器公司的注册商标)、MVS(国际商业机器公司的注册商标)、OS/390(国际商业机器公司的注册商标)、AIX(国际商业机器公司的注册商标)、UNIX(UNIX是美国和其他国家的开放集团的注册商标)、WINDOWS(微软公司的注册商标)、LINUX(Linus Torvalds的注册商标)、Solaris(Sun Microsystems,Inc.的注册商标)、以及HP-UX(Hewlett-Packard Development Company,L.P.的注册商标)。
在图24中所示的示例数据处理系统500不意图限制本发明。可使用其他替代的硬件环境,而不会脱离本发明的范围。
已为了例示和说明的目的而提供了本发明的各种实施例的前述详细描述。不意图是穷尽的或将本发明限于所公开的精确形式。根据上述教导,许多修改和变型是可能的。希望本发明不限于此详细描述,而是限于所附的权利要求。
Claims (23)
1.一种计算机实现的方法,包括:
基于规范模型来构建软件组件的控制流,所述规范模型包括至少一个输入和引用所述至少一个输入的至少一个需求;以及
基于所述控制流、以及所述规范模型的所述至少一个输入和所述至少一个需求,生成所述软件组件的至少部分实现。
2.如权利要求1所述的方法,其中所述规范模型还包括至少一个输出,并且,其中所述生成所述软件组件的所述至少部分实现还基于所述至少一个输出。
3.如权利要求1所述的方法,还包括:
基于规范来创建所述规范模型。
4.如权利要求1所述的方法,其中所述规范与商业分析师相关联,并且,所述至少部分实现与开发人员相关联,以在所述商业分析师和所述开发人员之间提供协作环境。
5.如权利要求1所述的方法,其中所述至少一个需求包括多个需求,并且所述构建所述控制流包括将所述多个需求排序成逻辑顺序。
6.如权利要求5所述的方法,还包括:
确定在所述需求中的至少两个之间是否存在隐式的依赖关系,其中基于所述隐式的依赖关系来对所述多个需求进行排序。
7.如权利要求1所述的方法,其中所述构建所述控制流包括:将对编程例程的调用插入到用于所述规范模型的每个所述需求的控制流中。
8.如权利要求6所述的方法,其中,响应于所述至少一个需求之一包括具有文本描述的商业规则,所述调用指向编程例程;其中所述生成所述至少部分实现包括:将所述文本描述包括在所述编程例程中。
9.如权利要求6所述的方法,其中,响应于所述至少一个需求之一包括编程逻辑,所述调用指向编程例程;其中所述生成所述至少部分实现包括:将所述编程逻辑包括在所述编程例程中。
10.如权利要求1所述的方法,其中所述构建所述控制流产生表示所述控制流的模板,其中所述模板包括分别表示所述至少一个输入的至少一个软件子组件,并且所述至少一个软件子组件分别表示所述至少一个输出。
11.如权利要求10所述的方法,其中所述至少一个需求包括多个需求,其中所述生成所述至少部分实现包括:对于所述多个需求中的至少一个,将表示所述需求的软件子组件插入到所述模板中。
12.如权利要求10所述的方法,还包括:
在图形界面上显示所述模板。
13.如权利要求10所述的方法,其中所述至少一个需求包括多个需求,其中所述生成所述至少部分实现包括:响应于所述多个需求中的一个需求是商业规则,将接口软件子组件插入到所述模板中。
14.如权利要求10所述的方法,其中所述至少一个需求包括多个需求,其中响应于所述多个需求之一具有多个输入和一个输出,所述构建将第一软件子组件插入到所述模板中。
15.如权利要求14所述的方法,其中响应于所述多个需求中的另一个具有单个输入和多个输出,所述构建将第二软件子组件插入到所述模板中。
16.如权利要求10所述的方法,其中所述至少一个需求包括多个需求,其中所述至少一个输入包括多个源数据资源,并且所述至少一个输出包括多个目标数据资源,所述构建包括:
遍历所述规范模型,以识别出所述源数据资源,并且将分别表示所述源数据资源的软件子组件添加到所述模板;
确定所述源数据资源是否相关;
响应于确定所述源数据资源具有关系,将表示所述关系的第一软件子组件插入到所述模板中;以及
识别出任何数据资源级别需求,并且分别将相关联的软件子组件添加到该模板。
17.如权利要求1所述的方法,其中所述软件组件是提取、转换和加载任务。
18.如权利要求1所述的方法,其中所述软件组件是Java类。
19.如权利要求2所述的方法,其中所述软件组件包括网络服务之间的链接。
20.一种数据处理系统,包括:
处理器;以及
存储器,存储要由所述处理器执行的指令,所述存储器存储用于以下的指令:
基于规范模型来构建软件组件的控制流,所述规范模型包括至少一个输入和至少一个输出;以及
基于所述控制流、所述规范模型的所述至少一个输入和所述至少一个输出,生成所述软件组件的至少部分实现。
21.如权利要求20所述的数据处理系统,其中所述规范模型包括引用所述至少一个输入中的至少一个、以及所述至少一个输出中的至少一个的至少一个需求,并且,其中所述生成所述软件组件的所述至少部分实现还基于所述至少一个需求。
22.如权利要求20所述的数据处理系统,其中构建所述控制流的所述指令产生表示所述控制流的模板,其中所述模板包括分别表示所述至少一个输入的至少一个软件子组件,并且所述至少一个软件子组件分别表示所述至少一个输出。
23.如权利要求21所述的数据处理系统,其中所述至少一个需求包括多个需求,并且,其中生成所述至少部分实现的所述指令响应于所述多个需求中的一个需求是商业规则,将接口软件子组件插入到所述模板中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/549,475 | 2006-10-13 | ||
US11/549,475 US8176470B2 (en) | 2006-10-13 | 2006-10-13 | Collaborative derivation of an interface and partial implementation of programming code |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101174212A true CN101174212A (zh) | 2008-05-07 |
CN101174212B CN101174212B (zh) | 2012-03-14 |
Family
ID=39326046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101524786A Expired - Fee Related CN101174212B (zh) | 2006-10-13 | 2007-10-15 | 用于接口的协作衍生的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8176470B2 (zh) |
CN (1) | CN101174212B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105210036A (zh) * | 2013-04-12 | 2015-12-30 | 微软技术许可有限责任公司 | 声明性程序的增量式编译 |
CN117421328A (zh) * | 2023-11-23 | 2024-01-19 | 上海信投数字科技有限公司 | 基于人工智能的数据治理方法、系统、设备及可读介质 |
Families Citing this family (153)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100125546A1 (en) * | 2008-11-19 | 2010-05-20 | Melyssa Barrett | System and method using superkeys and subkeys |
US8712990B2 (en) * | 2009-10-09 | 2014-04-29 | Sap Ag | Methods and systems for providing a business repository |
US8626705B2 (en) * | 2009-11-05 | 2014-01-07 | Visa International Service Association | Transaction aggregator for closed processing |
US8707250B2 (en) * | 2009-12-22 | 2014-04-22 | Board Of Regents, The University Of Texas System | Automation support for domain modeling |
WO2012051389A1 (en) * | 2010-10-15 | 2012-04-19 | Expressor Software | Method and system for developing data integration applications with reusable semantic types to represent and process application data |
US9262126B2 (en) * | 2010-12-17 | 2016-02-16 | Tata Consultancy Services Limited | Recommendation system for agile software development |
US9165035B2 (en) * | 2012-05-10 | 2015-10-20 | Microsoft Technology Licensing, Llc | Differential dataflow |
US9832068B2 (en) | 2012-12-17 | 2017-11-28 | Microsoft Technology Licensing, Llc | Reachability-based coordination for cyclic dataflow |
US9582556B2 (en) | 2013-10-03 | 2017-02-28 | International Business Machines Corporation | Automatic generation of an extract, transform, load (ETL) job |
GB2521198A (en) * | 2013-12-13 | 2015-06-17 | Ibm | Refactoring of databases to include soft type information |
US9575916B2 (en) | 2014-01-06 | 2017-02-21 | International Business Machines Corporation | Apparatus and method for identifying performance bottlenecks in pipeline parallel processing environment |
US9424290B2 (en) | 2014-03-11 | 2016-08-23 | Wipro Limited | System and method for data validation |
US9501377B2 (en) * | 2014-03-18 | 2016-11-22 | International Business Machines Corporation | Generating and implementing data integration job execution design recommendations |
US10360000B2 (en) * | 2014-06-02 | 2019-07-23 | Blackwatch International | Generic template node for developing and deploying model software packages made up of interconnected working nodes |
US9552401B2 (en) | 2014-06-23 | 2017-01-24 | International Business Machines Corporation | ETL tool interface for remote mainframes |
US9729583B1 (en) | 2016-06-10 | 2017-08-08 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
US20160117087A1 (en) * | 2014-10-23 | 2016-04-28 | Microsoft Corporation | Job creation and reuse |
US9684699B2 (en) * | 2014-12-03 | 2017-06-20 | Sas Institute Inc. | System to convert semantic layer metadata to support database conversion |
US20160253155A1 (en) * | 2015-02-27 | 2016-09-01 | The Treeline Company | Apparatus and method for metaprogramming platform |
US10346140B2 (en) | 2015-08-05 | 2019-07-09 | General Electric Company | System and method for model based technology and process for safety-critical software development |
US10706447B2 (en) | 2016-04-01 | 2020-07-07 | OneTrust, LLC | Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments |
US11244367B2 (en) | 2016-04-01 | 2022-02-08 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
US11004125B2 (en) | 2016-04-01 | 2021-05-11 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
US20220164840A1 (en) | 2016-04-01 | 2022-05-26 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
US10496846B1 (en) | 2016-06-10 | 2019-12-03 | OneTrust, LLC | Data processing and communications systems and methods for the efficient implementation of privacy by design |
US10885485B2 (en) | 2016-06-10 | 2021-01-05 | OneTrust, LLC | Privacy management systems and methods |
US10873606B2 (en) | 2016-06-10 | 2020-12-22 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10565397B1 (en) | 2016-06-10 | 2020-02-18 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US11138299B2 (en) | 2016-06-10 | 2021-10-05 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US10592648B2 (en) | 2016-06-10 | 2020-03-17 | OneTrust, LLC | Consent receipt management systems and related methods |
US11087260B2 (en) | 2016-06-10 | 2021-08-10 | OneTrust, LLC | Data processing systems and methods for customizing privacy training |
US11636171B2 (en) | 2016-06-10 | 2023-04-25 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
US11354435B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
US11151233B2 (en) | 2016-06-10 | 2021-10-19 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11366786B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing systems for processing data subject access requests |
US11625502B2 (en) | 2016-06-10 | 2023-04-11 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
US11416590B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11416109B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Automated data processing systems and methods for automatically processing data subject access requests using a chatbot |
US11200341B2 (en) | 2016-06-10 | 2021-12-14 | OneTrust, LLC | Consent receipt management systems and related methods |
US11586700B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for automatically blocking the use of tracking tools |
US11157600B2 (en) | 2016-06-10 | 2021-10-26 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US10706379B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Data processing systems for automatic preparation for remediation and related methods |
US10853501B2 (en) | 2016-06-10 | 2020-12-01 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US11727141B2 (en) | 2016-06-10 | 2023-08-15 | OneTrust, LLC | Data processing systems and methods for synching privacy-related user consent across multiple computing devices |
US10607028B2 (en) | 2016-06-10 | 2020-03-31 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
US11222142B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for validating authorization for personal data collection, storage, and processing |
US11562097B2 (en) | 2016-06-10 | 2023-01-24 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
US11675929B2 (en) | 2016-06-10 | 2023-06-13 | OneTrust, LLC | Data processing consent sharing systems and related methods |
US11418492B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for using a data model to select a target data asset in a data migration |
US11544667B2 (en) | 2016-06-10 | 2023-01-03 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US11295316B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
US10585968B2 (en) | 2016-06-10 | 2020-03-10 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US10997318B2 (en) | 2016-06-10 | 2021-05-04 | OneTrust, LLC | Data processing systems for generating and populating a data inventory for processing data access requests |
US10909488B2 (en) | 2016-06-10 | 2021-02-02 | OneTrust, LLC | Data processing systems for assessing readiness for responding to privacy-related incidents |
US11438386B2 (en) | 2016-06-10 | 2022-09-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10282700B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US10909265B2 (en) | 2016-06-10 | 2021-02-02 | OneTrust, LLC | Application privacy scanning systems and related methods |
US11038925B2 (en) | 2016-06-10 | 2021-06-15 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10848523B2 (en) | 2016-06-10 | 2020-11-24 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10997315B2 (en) | 2016-06-10 | 2021-05-04 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US10242228B2 (en) | 2016-06-10 | 2019-03-26 | OneTrust, LLC | Data processing systems for measuring privacy maturity within an organization |
US11210420B2 (en) | 2016-06-10 | 2021-12-28 | OneTrust, LLC | Data subject access request processing systems and related methods |
US11074367B2 (en) | 2016-06-10 | 2021-07-27 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
US11294939B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
US10803200B2 (en) | 2016-06-10 | 2020-10-13 | OneTrust, LLC | Data processing systems for processing and managing data subject access in a distributed environment |
US11238390B2 (en) | 2016-06-10 | 2022-02-01 | OneTrust, LLC | Privacy management systems and methods |
US11227247B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
US10565161B2 (en) | 2016-06-10 | 2020-02-18 | OneTrust, LLC | Data processing systems for processing data subject access requests |
US11481710B2 (en) | 2016-06-10 | 2022-10-25 | OneTrust, LLC | Privacy management systems and methods |
US10592692B2 (en) | 2016-06-10 | 2020-03-17 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
US10762236B2 (en) | 2016-06-10 | 2020-09-01 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
US10284604B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing and scanning systems for generating and populating a data inventory |
US11416589B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US10846433B2 (en) | 2016-06-10 | 2020-11-24 | OneTrust, LLC | Data processing consent management systems and related methods |
US11475136B2 (en) | 2016-06-10 | 2022-10-18 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
US11341447B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Privacy management systems and methods |
US10713387B2 (en) | 2016-06-10 | 2020-07-14 | OneTrust, LLC | Consent conversion optimization systems and related methods |
US10706176B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Data-processing consent refresh, re-prompt, and recapture systems and related methods |
US11228620B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10783256B2 (en) | 2016-06-10 | 2020-09-22 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
US11057356B2 (en) | 2016-06-10 | 2021-07-06 | OneTrust, LLC | Automated data processing systems and methods for automatically processing data subject access requests using a chatbot |
US10776518B2 (en) | 2016-06-10 | 2020-09-15 | OneTrust, LLC | Consent receipt management systems and related methods |
US11146566B2 (en) | 2016-06-10 | 2021-10-12 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US11343284B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
US11403377B2 (en) | 2016-06-10 | 2022-08-02 | OneTrust, LLC | Privacy management systems and methods |
US10565236B1 (en) | 2016-06-10 | 2020-02-18 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US11392720B2 (en) | 2016-06-10 | 2022-07-19 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
US11188862B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Privacy management systems and methods |
US11366909B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
US10726158B2 (en) | 2016-06-10 | 2020-07-28 | OneTrust, LLC | Consent receipt management and automated process blocking systems and related methods |
US10798133B2 (en) * | 2016-06-10 | 2020-10-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US11023842B2 (en) | 2016-06-10 | 2021-06-01 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
US10572686B2 (en) | 2016-06-10 | 2020-02-25 | OneTrust, LLC | Consent receipt management systems and related methods |
US10796260B2 (en) | 2016-06-10 | 2020-10-06 | OneTrust, LLC | Privacy management systems and methods |
US11134086B2 (en) | 2016-06-10 | 2021-09-28 | OneTrust, LLC | Consent conversion optimization systems and related methods |
US10776514B2 (en) | 2016-06-10 | 2020-09-15 | OneTrust, LLC | Data processing systems for the identification and deletion of personal data in computer systems |
US11328092B2 (en) | 2016-06-10 | 2022-05-10 | OneTrust, LLC | Data processing systems for processing and managing data subject access in a distributed environment |
US10949565B2 (en) | 2016-06-10 | 2021-03-16 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US10169609B1 (en) | 2016-06-10 | 2019-01-01 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US11520928B2 (en) | 2016-06-10 | 2022-12-06 | OneTrust, LLC | Data processing systems for generating personal data receipts and related methods |
US10467432B2 (en) | 2016-06-10 | 2019-11-05 | OneTrust, LLC | Data processing systems for use in automatically generating, populating, and submitting data subject access requests |
US10503926B2 (en) | 2016-06-10 | 2019-12-10 | OneTrust, LLC | Consent receipt management systems and related methods |
US10896394B2 (en) | 2016-06-10 | 2021-01-19 | OneTrust, LLC | Privacy management systems and methods |
US10708305B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Automated data processing systems and methods for automatically processing requests for privacy-related information |
US11100444B2 (en) | 2016-06-10 | 2021-08-24 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
US10878127B2 (en) | 2016-06-10 | 2020-12-29 | OneTrust, LLC | Data subject access request processing systems and related methods |
US11144622B2 (en) | 2016-06-10 | 2021-10-12 | OneTrust, LLC | Privacy management systems and methods |
US10318761B2 (en) | 2016-06-10 | 2019-06-11 | OneTrust, LLC | Data processing systems and methods for auditing data request compliance |
US10740487B2 (en) | 2016-06-10 | 2020-08-11 | OneTrust, LLC | Data processing systems and methods for populating and maintaining a centralized database of personal data |
US10685140B2 (en) | 2016-06-10 | 2020-06-16 | OneTrust, LLC | Consent receipt management systems and related methods |
US10678945B2 (en) | 2016-06-10 | 2020-06-09 | OneTrust, LLC | Consent receipt management systems and related methods |
US10776517B2 (en) | 2016-06-10 | 2020-09-15 | OneTrust, LLC | Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods |
US11138242B2 (en) | 2016-06-10 | 2021-10-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
US11222309B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
US10282559B2 (en) | 2016-06-10 | 2019-05-07 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
US10839102B2 (en) | 2016-06-10 | 2020-11-17 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
US11416798B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
US11651106B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
US10769301B2 (en) | 2016-06-10 | 2020-09-08 | OneTrust, LLC | Data processing systems for webform crawling to map processing activities and related methods |
US11336697B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10944725B2 (en) | 2016-06-10 | 2021-03-09 | OneTrust, LLC | Data processing systems and methods for using a data model to select a target data asset in a data migration |
US11651104B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Consent receipt management systems and related methods |
US11461500B2 (en) | 2016-06-10 | 2022-10-04 | OneTrust, LLC | Data processing systems for cookie compliance testing with website scanning and related methods |
US10416966B2 (en) | 2016-06-10 | 2019-09-17 | OneTrust, LLC | Data processing systems for identity validation of data subject access requests and related methods |
US11277448B2 (en) | 2016-06-10 | 2022-03-15 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
US10706131B2 (en) | 2016-06-10 | 2020-07-07 | OneTrust, LLC | Data processing systems and methods for efficiently assessing the risk of privacy campaigns |
US10510031B2 (en) | 2016-06-10 | 2019-12-17 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
US11354434B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
US11301796B2 (en) | 2016-06-10 | 2022-04-12 | OneTrust, LLC | Data processing systems and methods for customizing privacy training |
US11025675B2 (en) | 2016-06-10 | 2021-06-01 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
US11188615B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Data processing consent capture systems and related methods |
US11222139B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems and methods for automatic discovery and assessment of mobile software development kits |
US10949170B2 (en) | 2016-06-10 | 2021-03-16 | OneTrust, LLC | Data processing systems for integration of consumer feedback with data subject access requests and related methods |
US10606916B2 (en) | 2016-06-10 | 2020-03-31 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
US10013577B1 (en) | 2017-06-16 | 2018-07-03 | OneTrust, LLC | Data processing systems for identifying whether cookies contain personally identifying information |
US11144675B2 (en) | 2018-09-07 | 2021-10-12 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
US10803202B2 (en) | 2018-09-07 | 2020-10-13 | OneTrust, LLC | Data processing systems for orphaned data identification and deletion and related methods |
US11544409B2 (en) | 2018-09-07 | 2023-01-03 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
US11797528B2 (en) | 2020-07-08 | 2023-10-24 | OneTrust, LLC | Systems and methods for targeted data discovery |
US11444976B2 (en) | 2020-07-28 | 2022-09-13 | OneTrust, LLC | Systems and methods for automatically blocking the use of tracking tools |
US11475165B2 (en) | 2020-08-06 | 2022-10-18 | OneTrust, LLC | Data processing systems and methods for automatically redacting unstructured data from a data subject access request |
US11436373B2 (en) | 2020-09-15 | 2022-09-06 | OneTrust, LLC | Data processing systems and methods for detecting tools for the automatic blocking of consent requests |
US11526624B2 (en) | 2020-09-21 | 2022-12-13 | OneTrust, LLC | Data processing systems and methods for automatically detecting target data transfers and target data processing |
WO2022099023A1 (en) | 2020-11-06 | 2022-05-12 | OneTrust, LLC | Systems and methods for identifying data processing activities based on data discovery results |
US11687528B2 (en) | 2021-01-25 | 2023-06-27 | OneTrust, LLC | Systems and methods for discovery, classification, and indexing of data in a native computing system |
WO2022170047A1 (en) | 2021-02-04 | 2022-08-11 | OneTrust, LLC | Managing custom attributes for domain objects defined within microservices |
EP4288889A1 (en) | 2021-02-08 | 2023-12-13 | OneTrust, LLC | Data processing systems and methods for anonymizing data samples in classification analysis |
WO2022173912A1 (en) | 2021-02-10 | 2022-08-18 | OneTrust, LLC | Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system |
US11775348B2 (en) | 2021-02-17 | 2023-10-03 | OneTrust, LLC | Managing custom workflows for domain objects defined within microservices |
US11546661B2 (en) | 2021-02-18 | 2023-01-03 | OneTrust, LLC | Selective redaction of media content |
WO2022192269A1 (en) | 2021-03-08 | 2022-09-15 | OneTrust, LLC | Data transfer discovery and analysis systems and related methods |
US11562078B2 (en) | 2021-04-16 | 2023-01-24 | OneTrust, LLC | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system |
US11620142B1 (en) | 2022-06-03 | 2023-04-04 | OneTrust, LLC | Generating and customizing user interfaces for demonstrating functions of interactive user environments |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0525258A1 (en) * | 1991-07-29 | 1993-02-03 | International Business Machines Corporation | Generation of rules-based computer programs |
US6438742B1 (en) * | 1999-05-28 | 2002-08-20 | Visual Click Software, Inc. | Object-oriented system and method for visually generating software applications |
US6487713B1 (en) * | 1999-09-24 | 2002-11-26 | Phoenix Technologies Ltd. | Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation |
DE19957883A1 (de) * | 1999-12-01 | 2001-09-06 | Roland Jeschke | Verfahren zur Erzeugung grafischer Programmoberflächen |
US7334216B2 (en) | 2000-04-04 | 2008-02-19 | Sosy, Inc. | Method and apparatus for automatic generation of information system user interfaces |
US20030004746A1 (en) | 2001-04-24 | 2003-01-02 | Ali Kheirolomoom | Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components |
US20030041314A1 (en) * | 2001-08-14 | 2003-02-27 | Apac Customers Services, Inc. | Call flow method and system using visual programming |
CN102681878A (zh) * | 2001-08-17 | 2012-09-19 | 梁扶汉 | 无需修改现有代码即可增加新软件特征的方法 |
US7257620B2 (en) | 2001-09-24 | 2007-08-14 | Siemens Energy & Automation, Inc. | Method for providing engineering tool services |
WO2003038548A2 (en) | 2001-10-18 | 2003-05-08 | Vitria Technology, Inc. | Model driven collaborative business application development environment and collaborative applications developed therewith |
US7251787B2 (en) * | 2002-08-28 | 2007-07-31 | Siebel Systems, Inc. | Method and apparatus for an integrated process modeller |
US20040133445A1 (en) | 2002-10-29 | 2004-07-08 | Marathon Ashland Petroleum L.L.C. | Generic framework for applying object-oriented models to multi-tiered enterprise applications |
US7610575B2 (en) * | 2003-01-08 | 2009-10-27 | Consona Crm Inc. | System and method for the composition, generation, integration and execution of business processes over a network |
JP4042604B2 (ja) * | 2003-03-31 | 2008-02-06 | 日本電気株式会社 | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム |
EP1629358A4 (en) * | 2003-06-04 | 2009-11-04 | Fair Isaac Corp | RELATIONAL LOGIC MANAGEMENT SYSTEM |
US7797381B2 (en) | 2003-09-19 | 2010-09-14 | International Business Machines Corporation | Methods and apparatus for information hyperchain management for on-demand business collaboration |
WO2005114381A2 (en) | 2004-05-14 | 2005-12-01 | Gt Software, Inc. | Systems and methods for web service function, definition implementation and/or execution |
CN1713192A (zh) | 2004-06-25 | 2005-12-28 | 国际商业机器公司 | 处理逻辑建模与执行方法和设备 |
EP1617326A1 (en) | 2004-07-14 | 2006-01-18 | Sap Ag | Technique for handling hierarchical application data |
US7765522B2 (en) * | 2004-08-31 | 2010-07-27 | International Business Machines Corporation | System and method for providing an embedded complete controller specification through explicit controller overlays |
EP1872204A4 (en) * | 2005-04-18 | 2008-06-11 | Research In Motion Ltd | SYSTEM AND METHOD FOR FLEXIBLE VISUAL REPRESENTATION OF PRESENTATION COMPONENTS |
US7774745B2 (en) * | 2005-12-29 | 2010-08-10 | Sap Ag | Mapping of designtime to runtime in a visual modeling language environment |
US8381180B2 (en) * | 2006-09-08 | 2013-02-19 | Sap Ag | Visually exposing data services to analysts |
US20080120593A1 (en) * | 2006-11-21 | 2008-05-22 | Ido Keren | GUI modeling of deep hierarchical data |
US8196126B2 (en) * | 2007-10-29 | 2012-06-05 | Sap Ag | Methods and systems for dynamically generating and optimizing code for business rules |
-
2006
- 2006-10-13 US US11/549,475 patent/US8176470B2/en not_active Expired - Fee Related
-
2007
- 2007-10-15 CN CN2007101524786A patent/CN101174212B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105210036A (zh) * | 2013-04-12 | 2015-12-30 | 微软技术许可有限责任公司 | 声明性程序的增量式编译 |
CN117421328A (zh) * | 2023-11-23 | 2024-01-19 | 上海信投数字科技有限公司 | 基于人工智能的数据治理方法、系统、设备及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
US8176470B2 (en) | 2012-05-08 |
US20080091720A1 (en) | 2008-04-17 |
CN101174212B (zh) | 2012-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101174212B (zh) | 用于接口的协作衍生的方法和系统 | |
CN101617292B (zh) | 面向生成器图的编程和执行 | |
US10162612B2 (en) | Method and apparatus for inventory analysis | |
CN101601012B (zh) | 具有场景支持的面向生成器图的编程框架 | |
CN101589366B (zh) | 面向生成器图的编程框架中的并行化和植入 | |
US8626477B2 (en) | Spreadsheet-based graphical user interface for modeling of products using the systems engineering process | |
US20110282704A1 (en) | Analyzing business data for planning applications | |
EP3493050A1 (en) | System for metadata management | |
US7505991B2 (en) | Semantic model development and deployment | |
US20080255892A1 (en) | System and Method for Oil Production Forecasting and Optimization in a Model-Based Framework | |
CN112368675B (zh) | 更新可执行图的方法、系统和介质 | |
Altintas et al. | Modeling product line software assets using domain-specific kits | |
Harmsen et al. | Comparison of four method engineering languages | |
Krogstie | Capturing enterprise data integration challenges using a semiotic data quality framework | |
US20050138039A1 (en) | Method and system for tailoring metamodel requirements capture processing to varying users | |
Alfonsi et al. | Raven user guide | |
Pajić et al. | Metamodel of the artifact-centric approach to event log extraction from erp systems | |
Sajji et al. | A methodology for transforming BPMN to IFML into MDA | |
Kharmoum et al. | An automatic alignment of the business process and business value models: a novel MDA method | |
CN113190582B (zh) | 一种数据实时交互式挖掘流建模分析系统 | |
Acher et al. | Managing feature models with familiar: a demonstration of the language and its tool support | |
CN111277650B (zh) | 一种结合功能指标和非功能指标的自动化微服务识别方法 | |
Clements et al. | Discovering a system modernization decision framework: a case study in migrating to distributed object technology | |
US20150066883A1 (en) | Managing versions of cases | |
US11829340B1 (en) | Systems and methods for generating data transfers using programming language-agnostic data modeling platforms |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120314 Termination date: 20181015 |