CN101048732A - 面向对象的数据集成服务体系结构 - Google Patents
面向对象的数据集成服务体系结构 Download PDFInfo
- Publication number
- CN101048732A CN101048732A CNA2005800288573A CN200580028857A CN101048732A CN 101048732 A CN101048732 A CN 101048732A CN A2005800288573 A CNA2005800288573 A CN A2005800288573A CN 200580028857 A CN200580028857 A CN 200580028857A CN 101048732 A CN101048732 A CN 101048732A
- Authority
- CN
- China
- Prior art keywords
- service
- module
- data
- function
- data integration
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Game Theory and Decision Science (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
提供在面向服务的体系结构内部署服务,比如产品服务、实时服务和公共服务的方法和系统,包括用于部署企业数据集成功能的方法和系统。
Description
相关申请
本申请要求于2004年8月31日提交的题为“Methods andSystems for Semantic Identification in Data Systems”的美国临时申请NO.60/606,407的优先权。
技术领域
本发明涉及信息技术的领域,更具体地说,涉及数据集成系统的领域。
背景技术
计算机应用程序的出现使许多商业过程更快、更高效;但是,使用不同数据结构、通信协议、语言和平台的不同计算机应用程序的激增已导致典型商业企业的信息技术基础结构极其复杂。典型企业内的不同商业过程可能使用完全不同的计算机应用程序,每种计算机应用程序是为特定的商业过程开发和优化的,而不是为整个企业开发和优化的。例如,企业可能具有一种用于跟随应付账款的特殊计算机应用程序,和一种完全不同的用于记录客户联系人的计算机应用程序。事实上,即使相同的商业过程也可能使用一个以上的计算机应用程序,例如当企业维持集中式客户联系数据库,但是雇员把他们自己的联系人信息保持在例如个人信息管理器中时。
虽然专用计算机应用程序带来定制的解决方案的优点,不过专用计算机应用程序的激增会导致效率低,例如在整个企业内多次重复输入和处理相同的数据,或者当企业执行可受益于与一个过程相关的数据的另一过程时,企业不能利用该数据。例如,如果应付账款过程与供应链和定货过程分离,那么企业可能接受和供应来自其信用会导致企业拒绝其定货的客户的定货。企业可受益于跨越各种计算机应用程序对其所有数据的一致访问的其它例子有很多。
许多公司已认识到并致力于满足跨越商业企业中的不同应用程序,共享数据的需要。从而,作为一种处理来自不同来源的数据的基于消息的策略,出现了企业应用程序集成或者说EAI。随着计算机应用程序在复杂性和数量方面的增加,EAI遇到许多挑战,从需要处理不同的协议,到需要应付不断增大的数据量和事务数量,和不断增长的对更快速的数据集成的强烈愿望。已采取了对EAI的各种方法,包括最小公分母方法,原子方法和桥式方法。但是,EAI以单个应用程序之间的通信为基础。一个明显的缺陷在于,随着平台和应用程序的线性增加,EAI解决方案的复杂性几何增大。
虽然数据集成系统提供解决企业的需要的有用工具,不过这样的系统通常被部署为客户解决方案。它们具有很长的部署周期,并且要求高级的技术训练,以适应企业结构和信息要求方面的变化。存在对数据集成方法和系统的需要,所述数据集成方法和系统允许在不断变化的企业环境中使用、重新使用和修改功能。为了使这样的方法和系统更容易,还需要用于部署数据集成功能的改进方法和系统。
发明内容
提供数据集成方法和系统。所述方法和系统可包括提供实现数据集成功能的一个或多个模块、工具、设施、函数、服务、过程等。所述方法和系统还包括提供可被用户,比如识别、设计、开发、部署和使用数据集成作业或平台的用户访问的服务注册器(registry)。一个或多个模块、工具、设施、函数、服务、过程等可具备输入级,输出级,或者这两者,比如允许通过注册器访问数据集成模块、工具、函数、服务或过程的绑定,以便实时或批处理执行所述模块、工具、设施、函数、服务或过程支持的数据集成功能。从而,模块、工具、设施、函数、服务或过程可被识别和用作面向服务的体系结构中的服务。其中,通过在面向服务的体系结构中部署数据集成平台模块、工具、设施、函数、服务和过程,它们中的任意之一可被修改而不会影响其它相关项目的性能。
各种数据集成模块、工具、设施、函数、服务和过程可被部署成用于数据集成作业、方法、平台或系统的面向服务的体系结构中的服务。例如,前述可包括提取功能、数据变换、装入功能、元数据管理功能、数据剖析(profiling)功能、映射功能、数据审计功能、数据质量功能、数据清洗功能、匹配功能、概率匹配功能、元代理功能、数据迁移功能、原子数据储存库功能、语义识别功能、过滤功能、精炼和选择功能、设计接口功能、或者其它许多功能。
从而,这里描述的方法和系统包括提供数据提取功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据变换功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据装入功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供元数据管理功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据剖析功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据审计功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据清洗功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据质量功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据匹配功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,数据匹配功能可以是概率匹配功能。
这里描述的方法和系统还包括提供元代理功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,元代理功能跨多个数据集成平台保持数据集成功能的语义。
这里描述的方法和系统还包括提供数据迁移功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供原子数据储存库模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供语义识别功能模决,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供过滤功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,过滤基于抽象层次。在实施例中,抽象层次可以是物理抽象层次和逻辑抽象层次中的至少一个。
这里描述的方法和系统还包括提供精炼和选择设施模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,精炼和选择设施允许系统区分逻辑抽象层次和物理抽象层次。
这里描述的方法和系统还包括提供分析数据库的内容的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供分析数据库的表的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供分析数据库的行的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供分析数据结构的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供推荐目标数据设施的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供为数据集成功能提供主键的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供为数据集成功能提供外键的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供为数据集成功能提供表标准化的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供为数据集成功能提供源-目标映射的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供根据数据集成作业的简表自动生成数据集成作业的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供探测缺陷的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供测量数据集成功能的性能的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据去重模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,去重模块根据概率匹配数据项。在实施例中,去重模块丢弃重复的项目。
这里描述的方法和系统还包括提供多个数据项的统计分析模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供调和来自多个数据设施的数据的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供访问变换函数库的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供管理数据集成作业的版本的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供管理数据集成作业的版本的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,该模块允许用户与另一用户共享某一版本。在实施例中,该模块允许用户签入和签出某一版本的数据集成作业,以便使用该数据集成作业。
这里描述的方法和系统还包括提供数据集成功能的并行执行模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供划分数据的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供划分和重新划分数据的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据库接口模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,该接口模块便于实现对于多个数据库厂家的数据库的接口。
这里描述的方法和系统还包括提供数据集成功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供使数据同步的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,该模块便于实现跨多个分级数据格式的数据同步。在实施例中,该模块便于实现跨多种事务格式的数据同步。在实施例中,该模块便于实现跨多种工作环境的数据同步。在实施例中,该模块便于实现电子数据互换格式数据的同步。在实施例中,该模块便于实现HIPAA数据的同步。在实施例中,该模块便于实现SWIFT格式数据的同步。
这里描述的方法和系统还包括提供供给元数据目录的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供图形描述数据集成功能的变化的影响的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供创建元代理的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供元数据的中心储存库模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,该中心保存多个数据集成平台的语义模型。
这里描述的方法和系统还包括提供打包应用连接性工具箱(PACK),提供服务注册器,提供用于PACK的接口,并在注册器中识别PACK,其中可以面向服务的体系结构中的服务的形式访问PACK。
这里描述的方法和系统还包括提供保存行业专用数据模型的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。所述模型可以是制造业模型、零售业模型、电信业模型、保健业模型、金融服务业模型或者任何其它行业的模型。
这里描述的方法和系统还包括提供建立数据集成功能的模板,提供服务注册器,提供该模板的接口,并在注册器中识别该模板,其中可以面向服务的体系结构中的服务的形式访问该模板。
这里描述的方法和系统还包括提供创建商业规则的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供创建确认表的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供数据集成功能模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供创建商业度量(businessmetric)的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供定义目标数据库的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供剖析主机数据的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供批处理一批数据的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供交叉表分析模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供关系分析模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供产生数据定义语言(DDL)代码的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。在实施例中,所述方法和系统还包括利用该模块来创建源数据设施和目标数据设施之间的映射。
这里描述的方法和系统还包括提供设计数据集成作业的设计接口模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供开发数据集成作业的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
这里描述的方法和系统还包括提供部署数据集成作业的模块,提供服务注册器,提供该模块的接口,并在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该模块。
在实施例中,数据集成平台或过程的面向服务的体系结构中的服务可以是可用于各种集成和计算任务的服务,包括执行许多公共任务所需的或者对其有益的功能的模块。
监视服务可被部署成面向服务的体系结构中的具有输入级和/或输出级的服务。例如,监视服务可被用户调用,以监视数据集成作业或任务的性能的某一方面,或者监视事件或过程。例如,数据集成系统可具有称为作业执行服务的服务,其用途是执行作业,例如批处理作业。利用监视服务,用户能够监视作业执行服务已被运行多少次,运行需要多少时间,最小执行时间,最大执行时间,平均执行时间和其它统计信息。用户能够在不了解底层作业执行服务的代码的情况下完成所有这些功能。所有监视服务被部署成服务的事实意味着在作业的执行之内,用户能够询问已接触了多少个数据库,或者特定于作业执行服务的语义的其它监视项目。从而,通过监视服务,系统能够告诉在另一服务的实现中正在发生什么。在实施例中,每个公共服务,比如监视服务和其它服务,可为每个服务确定不同的区域,比如要监视什么,服务的运行时间,以及管理部分。为了调用监视服务,可询问用户要监视什么。从而,监视服务可被面向服务的体系结构中的服务用于监视所述服务做什么,或者可被用于关于其它事件和条件进行特定于领域的监视。
安全模块或服务可被部署成面向服务的体系结构中的服务,以便提供安全能力,比如在数据集成作业或任务方面的安全能力。当用户需要安全设施,比如口令保护、加密、跟踪访问、限制访问等时,用户可以面向服务的体系结构中的服务的形式,调用安全模块,从而用户不必为每个数据集成作业或任务创建独立的安全设施。
许可模块可被部署在面向服务的体系结构中,以便当被用户调用时能够实现许可功能。例如,作业设计人员可使数据集成作业调用许可服务来确定将在运行时执行的特定任务是否遵守许可证约束,比如和机器数目,用户数目等相关的许可证约束。用户不需要为该用户创建的每个数据集成作业或任务准备独立的许可代码。
事件管理模块可被部署在面向服务的体系结构中,当通过服务注册器被用户调用时用于跟踪和管理事件。用户可为数据集成作业或任务所需的任何事件管理访问事件管理模块,比如跟踪事件以便确定何时执行过程或功能。用户不需要为每个不同的数据集成任务或作业创建独立的事件管理代码。
在实施例中,可以面向服务的体系结构中的公共服务的形式提供供应能力。
事务模块可被部署在具有输入级和/或输出级的面向服务的体系结构中,该面向服务的体系结构允许用户通过服务注册器访问事务模块,不需要为用户创建的每个应用程序,例如为数据集成作业或任务创建独立的事务管理代码。
审计模块可被部署在具有输入级和/或输出级的面向服务的体系结构中,该面向服务的体系结构允许用户通过服务注册器访问审计模块,不需要为用户创建的每个应用程序,例如为数据集成作业或任务创建独立的审计代码。从而,通过调用该服务访问审计模块,用户能够审计事件,比如审计什么用户访问了特定数据库或过程,已发生了什么事件等。审计模块可允许用户方便地审计过去的事件,而不必产生独立的代码。
从而,数据集成作业或平台所必需的或者对其有益的各种公共任务可以模块的形式创建,并部署成面向服务的体系结构中的服务。
在这里描述的模块和服务的各个实施例中,面向特征编程(AOP)技术可被用于实现面向服务的体系结构中的服务。例如,可利用AOP以服务的形式实现各种元数据功能和模块。在实施例中,服务的绑定,比如EJB(例如EJB 3.0)可使用AOP。利用面向特征的编程,策略可与任意前述服务和/或模块关联起来。
在面向服务的体系结构中,加上允许比如通过端口访问服务的绑定。如这里所述,各种绑定,比如EJB、JMS、web服务和JCA绑定可被用于调用这里描述的面向服务的体系结构的各个实施例中的服务。在实施例中,可提供应用编程接口(API)以帮助访问服务。API可提供各种功能,比如为服务选择特定的绑定,其中所述选择建立在条件或事件的基础上,比如选择适合于特定应用程序的绑定。例如,绑定可在灵活性方面有所不同,API可根据访问服务的应用程序或装置的情况应用或紧或松的绑定。在实施例中,API可以是Java API或者类似设施。在实施例中,相同的Java API可被用于多种不同绑定。在实施例中,可为服务提供智能客户端程序。智能客户端程序可以是API之上的另一层。可通过与服务相关的注册器保存和访问智能客户端程序。例如,应用程序可根据使用应用程序的装置,应用程序的语境等,下载适当的智能客户端程序。例如,智能客户端程序可被用于缓存由服务使用的某些信息,并打包地把信息发送给服务,而不是使应用程序不断访问该服务。例如,当访问记录服务时,用户可能希望只记录错误,而不是记录所有事件。通过保持在预定时间之前的事件,用户能够减少对服务器的调用次数,同时仍然能够捕捉所有必需的事件。从而,智能客户端程序能够执行优化装置或应用程序对服务的使用的各种规则。在实施例中,智能客户端程序能够根据访问的状况、装置的能力、访问的语境等,单独地或者与API互动地选择绑定,所述绑定优化客户端装置或应用程序与服务的绑定。智能客户端程序或API可被用于保存各种访问规则。例如,所述规则可指出如果装置或应用程序在防火墙之内,那么它能够利用EJB绑定来访问服务,而如果装置或应用程序在防火墙之外,那么它将利用web服务绑定来访问服务。任何这样的规则可被具体体现在API中,或者可被包括在智能客户端程序中,它可和服务一起被随意列举在注册器中,并且可由访问该服务的客户端装置或应用程序下载。
面向服务的体系结构的好处之一在于它便于访问服务的客户端装置或应用程序与服务本身的代码之间的松散耦接;即,客户端装置或应用程序能够调用和使用服务,而不必非常了解该服务的代码,只需要满足某些预定输入,比如向服务输入什么(例如,文件、查询的回答等)。但是,不存在紧密耦接会导致性能问题,因为为了使之更通用,从服务描述中省略了语境相关优化例程。通过确保最佳地访问服务,比如通过选择正确的绑定,高速缓存数据以便批处理,从而避免为较小的作业不断调用服务等等,API和/或智能客户端程序能够弥补降低的性能。从而,智能客户端程序在松散耦合环境中提供有效的性能。从而,智能客户端程序桥接紧密耦接环境和松散耦接环境之间的间隙,并且允许访问服务的用户、应用程序或装置按照性能预期或要求,沿着松散耦接和紧密耦接(比如EJB)之间的范围(spectrum)选择一种绑定。例如,EJB耦接比web服务表现更好,因为EJB耦接生性被更紧密地耦接在客户端应用程序和服务器端之间。通过高速缓存或者缓冲信息,并且恰当地分批发送所述信息,智能客户端程序改进EJB和web服务的性能。在不可能或者不值得高速缓存或缓冲项目的情况下,系统可使用紧密的EJB绑定来获得良好的性能。在实施例中,API可隐藏客户端装置或应用程序正在使用的绑定。借助智能客户端程序,通过调整客户端程序和服务器之间的耦接度,用户能够调整系统的性能。
在实施例中,面向服务的体系结构中的服务的运行时可以是另一服务,比如上面说明的一个或多个公共服务的客户端程序本身。在实施例中,前述可利用AOP来实现。在AOP中,称为拦截器的实体能够把策略和服务关联起来。在服务的策略之内,拦截器可被插入策略中,拦截器可以是公共服务的客户端程序。例如,服务中的策略可包括调用监视服务的拦截器。从而,AOP技术可被用于把拦截器的代码插入这里描述的各种服务的代码中。在AOP中,用户能够创建一段代码,并且在执行所述代码的时候,把“方面(aspect)”-将在运行时插入的一长串东西和所述代码关联起来。此时在该代码中,运行时程序调用另一段代码,比如调用一个服务,而不是执行该代码通常进行的操作。此时,该代码调用独立编译的另一函数。从而,当程序员查看源代码寻找运行时程序时,程序员看不到拦截器调用的那一段的源代码。例如,就Java来说,程序可编译源代码,从而创建字节码(它是Java的运行时),Java虚拟机读取该字节码。程序具有Java码和所述方面(aspect)。AOP编译器进行字节码处理,并调用其它类型的代码,比如面向服务的体系结构中的服务。
这里描述的方法和系统还包括提供数据集成用框架,包括为实现数据集成任务而开发的代码的模块,和作为在面向服务体系结构中组织的服务的代码的部署。代码模块可以是J2EE工件。
这里描述的方法和系统还包括提供数据集成用框架,包括建立面向服务的体系结构,在面向服务的体系结构内,部署可被任何其它服务,包括面向服务的体系结构本身访问的公共部署。公共服务可以是监视服务、事务处理服务、供应服务、事件管理服务、安全服务、审计服务和/或记录服务。服务可被插入应用程序和另一服务至少之一的代码中的拦截器调用。服务还可包括把扩展与公共服务关联起来,其中所述扩展识别体系结构内供模块、应用程序和体系结构内的另一服务中的至少之一监视的公共服务。
这里描述的方法和系统还包括提供一种提供数据集成服务的方法,包括建立用于部署服务的面向服务的体系结构,其中该服务具有一个以上的绑定,和根据访问特性自动产生该服务的一种绑定。访问特性可基于调用该服务的装置、应用程序和/或服务中的至少之一。
从而,这里描述的方法和系统包括按照各种方式,比如明确地从应用程序或者从另一装置,或者从插入服务策略中的拦截器使用公共服务。这允许相同的公共服务被任意服务实现者使用,以及透明地被面向服务的体系结构框架使用,比如通过AOP子系统。
在各个实施例中,通过各种输入和输出设施,包括绑定和类似设施,比如EJB、JMS、web服务、SOAP和其它绑定,能够访问这里描述的模块、设施、工具、作业、服务、过程和函数。
在实施例中,这里描述的方法和系统可包括优化客户端装置对模块、设施、作业、服务、过程、函数等的访问的客户端设施。在实施例中,这里描述的方法和系统可包括优化客户端装置对模块、设施、作业、服务、过程、函数等的访问的服务器端设施。
在另一方面,这里公开的方法可包括提供用于部署服务的面向服务的体系结构;部署面向服务的体系结构内的服务,所述服务具有在面向服务的体系结构中可用的许多绑定;和为所述服务自动选择所述许多绑定之一。包含在计算机可读介质中的计算机程序产品可包括:提供用于部署服务的面向服务的体系结构的计算机可执行代码;部署面向服务的体系结构内的服务的计算机可执行代码,所述服务具有在面向服务的体系结构中可用的许多绑定;和为所述服务自动选择所述许多绑定之一的计算机可执行代码。系统可包括用于部署服务的面向服务的体系结构;面向服务的体系结构内的服务,所述服务具有在面向服务的体系结构中可用的许多绑定;和为所述服务自动选择所述许多绑定之一的软件模块。
在上面的方法、系统和计算机程序产品中,自动选择可包括根据规则,为所述服务选择所述许多绑定之一,和/或可包括根据调用所述服务的实体的访问特性进行选择。所述实体可包括装置、应用程序和服务中的一个或多个。
上面的方法、系统和计算机程序产品可包括提供用于调用服务的客户调用框架。客户调用框架可包括动态调用所述服务的许多绑定中的任意之一的接口。所述方法、系统和计算机程序产品可包括产生所述接口的多个代理,所述多个代理可包括至少一个C++代理和至少一个C#代理。客户调用框架可以与语言无关。客户调用框架可以是基于代理的。所述服务包括至少一种数据集成功能。
在另一方面,这里描述的方法、系统和计算机程序产品可包括面向方向的编程系统,用于实现面向服务的体系结构中的服务的策略管理,其中策略管理器管理服务和绑定策略。面向方面的编程拦截器可把策略和服务关联起来,每个拦截器可以是在运行时提供策略管理的公共服务的客户端程序。
在其它方面,计算机程序产品可包括计算机可用介质,所述计算机可用介质包括计算机可读程序代码,其中当在一个或多个计算机上执行时,所述计算机可读程序代码使一个或多个计算机执行上述任意一种或多种方法。
这里使用的“数据源”或“数据目标”意图具有与这些术语相符的最宽的可能含义,包括数据库、多个数据库、储存库信息管理器、队列、消息服务、储存库、数据设施、数据存储装置、数据提供者、网站、服务器、计算机、计算机存储装置、CD、DVD、移动存储装置、中央存储装置、硬盘、多调谐数据存储装置、RAM、ROM、闪速存储器、存储卡、临时存储装置、永久存储装置、磁带、本地连接的计算装置、远程连接的计算装置、无线装置、有线装置、移动装置、中央装置、web浏览器、客户端、膝上型计算机、个人数字助手(“PDA”)、电话机、蜂窝电话机、移动电话机、信息平台、分析装置、处理装置、商业企业系统或者处理数据的其它装置或者提供的保存数据或其它信息的其它装置,以及保持在任意上述系统中使用的结构化或非结构化数据,或者任何流化、消息化、事件驱动的或者其它来源的数据的文件或文件类型,和上面所述的任意组合,除非另外指出特定的含义或者短语的上下方要求另外的含义。存储机构是任意逻辑或物理装置、资源、或者能够充当数据源或数据目标的装置。
“企业型Java Bean(EJB)”包括J2EE平台的服务器方组件体系结构。EJB支持快速、简化地开发分布式、事务性、安全并且可移植的Java应用程序。EJB支持允许消息的同时消费的容器体系结构,并且提供对分布式事务的支持,从而利用J2EE体系结构的数据库更新、消息处理和与企业系统的连接能够参与相同的事务语境。
这里使用的“国际商用机器”或者“IBM”指的是Armonk,NewYork的国际商用机器公司。
“JMS”意味着Java消息服务,Java消息服务是基于Java的J2EE企业体系结构的一种企业消息服务。“JCA”意味着下面更详细说明的J2EE平台的J2EE连接器体系结构。应认识到虽然EJB、JMS和JCA是当代的分布式事务环境中的常用软件工具,不过提供类似功能的任何平台、系统或体系结构可和这里描述的数据集成系统一起采用。
这里使用的“实时”包括接近商业事务或业务的持续时间的时间周期,并且包括与离线,例如在每夜的批处理操作中发生的过程或服务相对的在业务操作或业务中发生的过程或服务。根据商业过程的持续时间,实时可包括几秒,几分之一秒,几分钟,几小时或者甚至几天。
这里使用的“商业过程”、“商业逻辑”和“商业事务”包括可由企业执行的任何方法、服务、操作、过程或事务,包括(但不限于)销售、行销、合同履行、库存管理、定价、产品设计、职业服务、金融服务、行政管理、财政、保险业、分析、订合同、信息技术服务、数据存储、数据挖掘、信息的传递、物品的发送、调度、通信、投资、交易、供货、推销、广告、出价、工程、制造、供应链管理、人力资源管理、数据处理、数据集成、工作流程管理、软件生产、硬件生产、新产品的开发、研究、开发、策略功能、质量控制和保险、包装、后勤、客户关系管理、处理折扣和返还、客户支持、产品维护、电话销售、企业传播、投资人关系和其它许多。
这里使用的“面向服务的体系结构”(SOA)包括构成商业企业的基础结构的一部分的服务。在SOA中,服务可变成应用程序开发和部署的构件决,便于快速应用程序开发和避免冗余代码。每种服务可具体体现被约束在周围环境,比如服务的数据输入的源或者服务的数据输出的目标上的一组商业逻辑或商业规则。在下面的说明中提供SOA的各种实例。
这里使用的“元数据”包括产生正被处理的数据的语境的数据,和正被处理的数据有关的数据,与相关信息的语境有关的信息,与数据的起源有关的信息,与数据的位置有关的信息,与数据的含意有关的信息,与数据的寿命有关的信息,与数据的标题有关的信息,与数据的单位有关的信息,与数据的字段有关的信息和/或与涉及数据的语境的任何其它信息有关的信息。
这里使用的“WSDL”或者“Web服务描述语言”包括把网络服务(通常web服务)描述成作用于包含面向文档或者面向过程信息的消息的一组端点。操作和消息被抽象描述,随后被绑定到具体的网络协议和消息格式上,从而定义一个端点。相关的具体端点被组合成抽象端点(服务)。WSDL是可扩展的,从而允许端点和它们的消息的描述,而不管什么消息格式或网络协议被用于通信。
这里使用的“元代理”包括调用转换(translation)引擎或者其它装置对数据或元数据进行转换操作或者其它操作的系统或方法。转换操作或其它操作可涉及数据或元数据从一种或多种格式、语言和/或数据模型到一种或多种格式、语言和/或数据模型的转换。
附图说明
图1是具有多个商业过程的商业企业的示意图,每个商业过程可包括多个不同的计算机应用程序和数据源。
图2是表示跨越商业企业的多个商业过程的数据集成的示意图。
图3是表示为商业企业的多个数据源提供数据集成的体系结构的示意图。
图4表示与其它项目有关的一个项目。
图5表示与其它项目有关的一个项目。
图6A表示在某一语境中的一个项目。
图6B表示在某一语境中的一个项目。
图7表示某些串。
图8表示一个项目和对应的串。
图9表示一个串及其某些变异。
图10表示作用于某些串的转换引擎。
图11表示可以多种形式或实例存在的一个项目。
图12表示可以多种形式或实例存在于中心或数据库中的一个项目。
图13表示在不同抽象层次下的中心中的项目。
图14表示在数据库或中心夺取所有项目的转换过程。
图15A表示在数据库或中心过滤项目的转换过程。
图15B表示转换查询的转换过程。
图16A表示包括面向服务的体系结构设施的数据集成系统的概观。
图16B表示包括面向服务的体系结构的数据集成系统的另一类似体系结构的高级示意图。
图16C表示能够实现面向服务体系结构中的服务的模块。
图16D表示能够实现面向服务体系结构中的服务的其它模块。
图16E表示具有智能客户端的面向服务的体系结构。
图16F表示面向服务体系结构的一个特定实施例。
图16G表示作为面向服务体系结构中的服务的模块、服务和/或装置的开发和部署。
图17表示作为面向服务体系结构中的服务的模块的部署。
图18表示作为面向服务体系结构中的服务的数据变换模块的开发和部署。
图19表示作为面向服务体系结构中的服务的数据装入模块的开发和部署。
图20表示作为面向服务体系结构中的服务的元数据管理模块的开发和部署。
图21表示作为面向服务体系结构中的服务的数据剖析模块的开发和部署。
图22表示作为面向服务体系结构中的服务的数据审计模块的开发和部署。
图23表示作为面向服务体系结构中的服务的数据清洗模块的开发和部署。
图24表示作为面向服务体系结构中的服务的数据质量模块的开发和部署。
图25表示作为面向服务体系结构中的服务的数据匹配模块的开发和部署。
图26表示作为面向服务体系结构中的服务的元代理模块的开发和部署。
图27表示作为面向服务体系结构中的服务的数据迁移模块的开发和部署。
图28表示作为面向服务体系结构中的服务的数据储存库模块的开发和部署。
图29表示作为面向服务体系结构中的服务的语义识别模块的开发和部署。
图30表示作为面向服务体系结构中的服务的过滤模块的开发和部署。
图31表示作为面向服务体系结构中的服务的精炼和选择模块的开发和部署。
图32表示作为面向服务体系结构中的服务的数据库内容分析模块的开发和部署。
图33表示作为面向服务体系结构中的服务的数据库表分析模块的开发和部署。
图34表示作为面向服务体系结构中的服务的数据库行分析模块的开发和部署。
图35表示作为面向服务体系结构中的服务的数据库结构分析模块的开发和部署。
图36表示作为面向服务体系结构中的服务的推荐模块的开发和部署。
图37表示作为面向服务体系结构中的服务的主键模块的开发和部署。
图38表示作为面向服务体系结构中的服务的外键模块的开发和部署。
图39表示作为面向服务体系结构中的服务的表标准化模块的开发和部署。
图40表示作为面向服务体系结构中的服务的源-目标映射模块的开发和部署。
图41表示作为面向服务体系结构中的服务的自动数据集成作业生成模块的开发和部署。
图42表示作为面向服务体系结构中的服务的缺陷探测模块的开发和部署。
图43表示作为面向服务体系结构中的服务的性能测量模块的开发和部署。
图44表示作为面向服务体系结构中的服务的数据去重模块的开发和部署。
图45表示作为面向服务体系结构中的服务的统计分析模块的开发和部署。
图46表示作为面向服务体系结构中的服务的数据调谐模块的开发和部署。
图47表示作为面向服务体系结构中的服务的变换函数库模块的开发和部署。
图48表示作为面向服务体系结构中的服务的版本管理模块的开发和部署。
图49表示作为面向服务体系结构中的服务的版本管理模块的开发和部署。
图50表示作为面向服务体系结构中的服务的并行执行模块的开发和部署。
图51表示作为面向服务体系结构中的服务的数据划分模块的开发和部署。
图52表示作为面向服务体系结构中的服务的划分和重新划分模块的开发和部署。
图53表示作为面向服务体系结构中的服务的数据库接口模块的开发和部署。
图54表示作为面向服务体系结构中的服务的数据集成模块的开发和部署。
图55表示作为面向服务体系结构中的服务的同步模块的开发和部署。
图56表示作为面向服务体系结构中的服务的元数据目录供给模块的开发和部署。
图57表示作为面向服务体系结构中的服务的图形描述模块的开发和部署。
图58表示作为面向服务体系结构中的服务的元代理模块的开发和部署。
图59表示作为面向服务体系结构中的服务的元数据中心储存库模块的开发和部署。
图60表示作为面向服务体系结构中的服务的打包应用连接性工具箱模块的开发和部署。
图61表示作为面向服务体系结构中的服务的行业专用数据模型存储模块的开发和部署。
图62表示作为面向服务体系结构中的服务的模板模块的开发和部署。
图63表示作为面向服务体系结构中的服务的商业规则创建模块的开发和部署。
图64表示作为面向服务体系结构中的服务的确认表创建模块的开发和部署。
图65表示作为面向服务体系结构中的服务的数据集成模块的开发和部署。
图66表示作为面向服务体系结构中的服务的商业度量创建模块的开发和部署。
图67表示作为面向服务体系结构中的服务的目标数据库定义模块的开发和部署。
图68表示作为面向服务体系结构中的服务的主机数据剖析模块的开发和部署。
图69表示作为面向服务体系结构中的服务的批处理模块的开发和部署。
图70表示作为面向服务体系结构中的服务的交叉表分析模块的开发和部署。
图71表示作为面向服务体系结构中的服务的关系分析模块的开发和部署。
图72表示作为面向服务体系结构中的服务的数据定义语言代码生成模块的开发和部署。
图73表示作为面向服务体系结构中的服务的设计接口模块的开发和部署。
图74表示作为面向服务体系结构中的服务的数据集成作业开发模块的开发和部署。
图75表示作为面向服务体系结构中的服务的数据集成作业部署模块的开发和部署。
图76表示作为面向服务体系结构中的服务的记录服务模块的开发和部署。
图77表示作为面向服务体系结构中的服务的监视服务模块的开发和部署。
图78表示作为面向服务体系结构中的服务的安全模块的开发和部署。
图79表示作为面向服务体系结构中的服务的许可模块的开发和部署。
图80表示作为面向服务体系结构中的服务的事件管理模块的开发和部署。
图81表示作为面向服务体系结构中的服务的供应模块的开发和部署。
图82表示作为面向服务体系结构中的服务的事务模块的开发和部署。
图83表示作为面向服务体系结构中的服务的审计模块的开发和部署。
图84表示服务、API和智能客户端。
具体实施方式
在下面的说明中,相同的附图标记指的是相同的部件,除非另外明确说明。
这里公开的发明可以采取纯硬件实施例,纯软件实施例或包含硬件部件和软件部件的实施例的形式。在一个优选实施例中,用软件实现本发明,所述软件包括(但不限于)固件、驻留软件、微代码等。
此外,本发明可以采取可从计算机可用或计算机可读介质存取的计算机程序产品的形式,所述计算机可用或计算机可读介质提供供计算机或者任何指令执行系统之用或者与之结合使用的程序代码。对于本说明来说,计算机可用或计算机可读介质可以是能够包含、保存、传递、传播或传送供指令执行系统、设备或装置之用或者与之结合使用的程序的任意设备。
所述介质可以是电子、磁、光、电磁、红外或半导体系统(或设备或装置)或者传播介质。计算机可读介质的例子包括半导体或固体存储器、磁带、可拆卸的计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。目前的光盘例子包括光盘-只读存储器(CD-ROM)、光盘-读/写存储器(CD-R/W)和DVD。
适合于保存和/或执行程序代码的数据处理系统将包括至少一个通过总线直接或间接地与存储元件耦合的处理器。存储元件可包括在程序代码的实际执行期间采用的本地存储器,大容量存储器和提供至少一些程序代码的临时存储,以减少执行期间,必须从大容量存储器取回代码的次数。
输入/输出或者说I/O装置(包括但不限于键盘、显示器、指示装置等)可直接地或者通过居中的I/O控制器与数据处理系统耦接。
网络适配器也可与系统耦接,从而使数据处理系统能够通过居中的专用或公共网络,与其它数据处理系统或远程打印机或存储装置耦接。调制解调器、线缆调制解调器和以太网卡只是目前可用的各类网络适配器中的一些。
图1表示便于商业企业的各种数据的集成的平台100。该平台包括多个商业过程,每个商业过程可包括多个不同的计算机应用程序和数据源。该平台可包括几个数据源102,数据源102可以是如上所述的那些数据源。这些数据源可包括来自各种物理位置的各种数据类型。例如,数据源可包括来自诸如Sybase、Microsoft、Informix、Oracle、Inlomover、EMC、Trillium、First Logic、Siebel、PeopleSoft、IBM、Apache或Netscape之类提供商的系统。数据源102可包括使用数据产品或者标准,比如IMS、DB2、ADABAS、VSAM、MD系列、UDB、XML、复合平面文件、或者FTP文件的系统。数据源102可包括由诸如Microsoft Outlook、Microsoft Word、Microsoft Excel、MicrosoftAccess之类应用程序创建或使用的文件,以及诸如ASCII、CSV、GIF、TIF、PNG、PDP之类标准格式的文件。数据源102可来自于不同的位置,或者它们可位于中心。从数据源102供给的数据可以不同的格式到来,并且具有可能相互兼容也可能相互不兼容的不同格式。
数据目标在后面说明。一般来说,这些数据目标可以是上述任意数据耦接102。命名方面的这种差别一般表示在数据集成过程中,数据系统是提供数据还是接收数据。但是,应认识到这种区别并不意图转达数据源和数据目标之间能力的差别(除非另外明确指出),因为在常规的数据集成系统中,数据源可接收数据,数据目标可提供数据。
图1中图解说明的平台还包括数据集成系统104。数据集成系统可简化作为数据集成系统接收查询或检索命令的结果,从数据源102的数据收集。数据集成系统104可向一个或多个数据源102发送命令,以致数据源向数据集成系统104提供数据。由于接收的数据可以是包括变化的元数据在内的各种格式,因此数据集成系统可重新配置接收的数据,以致接收的数据随后可被组合以便集中处理。下面更详细地说明可由数据集成系统104执行的功能。
平台100还包括几个检索系统108。检索系统108可包括用于进一步处理来自数据集成系统104的数据的数据库或处理平台。例如,数据集成系统104可净化、组合、变换或以其它方式处理它从数据源102接收的数据,以致检索系统108能够使用处理的数据来产生对企业有用的报告110。报告110可用于报告数据关联、回答复杂查询、回答简单查询、或者形成对企业或用户有用的其它报告,并且可包括原始数据、表格、图表、图形或者来自检索系统108的数据的任何其它表现。
平台100还可包括数据库或数据库管理系统112。数据库112可用于临时地、永久地或者长期地保存数据。例如,数据集成系统104可从一个或多个数据源102收集数据,并把数据变换成相互兼容的形式,或者适合于相互组合的形式。一旦数据被变换,那么数据集成系统104可按照分解形式、组合形式或者其它形式保存在数据库112中以便稍后检索。
图2是表示跨越商业企业的多个实体和商业过程的数据集成的示意图。在图解说明的实施例中,数据集成系统104简化用户接口系统202和数据源10之间的信息流动。数据集成系统104可接收来自接口系统202的查询,其中所述查询使驻留在一个或多个数据源102中的数据的提取和可能的变换成为必需。接口系统202可包括与数据集成系统104通信的任意装置或程序,比如在膝上型计算机或桌面计算机上工作的web浏览器、蜂窝电话机、个人数字助手(“PDA”)、连网平台及与之连接的装置、或者可能与数据集成系统104面接的任何其它装置或系统。
例如,用户可能正在操作一个PDA,并且通过WiFi或无线接入协议/无线置标语言(“WAP/WML”)接口向数据集成系统发出信息请求。数据集成系统104可接收该请求,并产生任何请求的查询,以便从网站或者其它数据源102,比如FTP文件站点访问信息。来自数据源102的数据可被提取并被变换成与发出请求的接口系统(在本例中,PDA)兼容的格式,随后被传送给接口系统202供用户查看和处理。在另一实施例中,数据可能先前已从数据源被提取,并被保存在独立的数据库112中,数据库112可以是数据仓库或者数据集成系统104使用的其它数据设施。数据可能已按照变换后的情形或者以其初始状态被保存在数据库112中。例如,数据可按照变换后的情形被保存,以致来自许多数据源102的数据可在另一变换过程中被组合。例如,来自PDA的查询可被传送给数据集成系统104,数据集成系统104可从数据库112提取信息。在所述提取之后,数据集成系统104可把数据变换成与PDA兼容的组合格式,之后传送给PDA。
图3是表示向商业企业提供多个数据源102的数据集成的体系结构的示意图。数据集成系统104的一个实施例可包括从数据源提取数据并分析源数据的列值和表格结构,以及执行其它过程的发现数据阶段302。发现数据阶段302还可产生关于数据目标的表格结构、关系和关键字的推荐。更高级的剖析和审计功能可包括数据范围确认、计算的准确性、if-then评估的准确性等。发现数据阶段302可使数据归一化,例如通过消除源数据中的冗余相关性和其它异常。发现数据阶段302可提供另外的功能,比如深挖(drill down)数据源102中的例外以便进一步分析,或者能够实现主机数据的直接剖析。在IBM的WebSphere ProfileStage产品中可找到发现数据阶段302的商业实施例的一个非限制性例子。
数据集成系统104还可包括数据准备阶段304,在数据准备阶段304,数据被准备、标准化、匹配或者以其它方式处理,从而产生稍后将被变换的质量数据。数据准备阶段304可执行类属数据质量功能,比如调和不一致性或者检查数据内的正确匹配(包括一对一匹配,一对多匹配,和去除重复数据)。数据准备阶段304还可提供专用数据增强功能。例如,数据准备阶段304可确保地址符合改进的国际通信用跨国邮政索引。数据准备阶段304可使位置数据符合空间信息管理用跨国地理编码标准。数据准备阶段可修改或增加地址,以确保地址信息根据政府核准的美国地址更正,取得美国邮政服务邮费率折扣的资格。类似的分析和数据修改可被提供给加拿大和澳大利亚邮政系统,加拿大和澳大利亚邮政系统为收信地址正确的邮件提供折扣率。在IBM的WebSphere QualityStage产品中可找到数据准备阶段304的商业实施例的一个非限制性例子。
数据集成系统还可包括一个变换、富集(enrich)和递送变换后数据的数据变换阶段308。数据变换阶段308可进行过渡服务,比如数据的重新组织和重新形成,并根据系统用户的商业规则和算法进行计算。数据变换阶段308还可把目标数据组织成称为数据集市(datamart)或者立方体的子集,以便在某些分析语境中更调谐地处理数据。数据变换阶段308可采用桥、转换器或者其它接口(如下概述)来跨越数据集成系统104使用的各种数据源和数据目标的各种软件和硬件体系结构。数据变换阶段308可包括图形用户接口,命令行接口,或者这些接口的一些组合来设计跨平台100的数据集成作业。在IBM的WebSphere DataStage产品中可找到数据变换阶段308的商业实施例的一个非限制性例子。
可利用并行执行系统310,或者按照串行或者组合的方式执行数据集成系统104的阶段302、304、308,以优化系统104的性能。
数据集成系统104还可包括管理与数据源102相关的元数据的元数据管理系统312。一般来说,元数据管理系统312可跨越数据集成环境中的所有工具,提供元数据的互换、集成、管理和分析。例如,元数据管理系统312可提供不同的来源,例如IBM的WebSphereODBC MetaBroker、CA ERwin,IBM的WebSphere ProfileStage,IBM的WebSphere DataStage,IBM的WebSphere QualityStage,IBM DB2Cube Views和Cognos Profilestage中的数据的常见、普遍的可访问视图。元数据管理系统312还可为数据结构的变化提供用于分析数据沿袭和影响的分析工具。元数据管理系统312还可被用于为数据集成系统内的数据准备数据定义、算法和商业环境的商业数据术语表,所述术语表可被公布以便在整个企业内使用。在IBM的WebSphereMetaStage产品中可找到数据管理系统312的商业实施例的一个非限制性例子。
参见图4,可关于各种语境和分层结构说明与企业相关的项目,以便捕捉项目的语义语境。从而,图4描述项目的一个语义标识符。项目可以是对象、类、属性、数据项、数据模型、元数据模型、模型、定义、身份、结构、语言、映射、关系、实例或其它项目或概念,包括另一语义标识符。语义标识符可根据项目的属性,项目的物理位置,项目与一个或多个其它项目的关系,例如在分层结构中的关系等来识别项目。在一些情况下,关系可被定义为某一特定关系的不存在。关系可涉及项目在关系分层结构中的位置。例如,在图4中,可根据项目1 5202和与之关联的其它项目的关系,识别项目1 5202。项目1 5202可被识别成与项目2 5204、项目3 5204和项目4 5210直接相关,与项目5 5212间接相关,并通过项目5 5212和项目5 5210与项目6 5214间接相关。项目1还可被识别成与项目2 5204、项目3 5204和项目45210直接相关。在实施例中,项目1 5202和项目5 5212及项目6 5214之间的间接关系可被记录在项目1 5202到项目4 5210的关系中。除了静态标识符之外,这种串联或递归的识别还允许动态标识符。例如,如果项目4 5210和项目6 5214之间的关系改变,那么通过项目4 5210的并入,项目1 5202的包含项目2 5204、项目3 5204和项目4 5210的语义标识符会体现这种变化,不需要为了说明项目6 5214方面的变化而被更新,好像项目6 5214被直接包括在语义标识符中那样。
图5表示了语义标识符的一个更具体例子。Jim可被识别成居住在111 Anyroad,Anytown,Anystate USA,电话号码为555-555-5555并且社会保险号为013-65-8067的Jim。另一方面,可按照Jim与其它人的关系识别他。如图5中所示,Jim可被识别成Betty的儿子,Larryt和Jeff的兄弟,Jessica的父亲,以及Frank的侄子。
语义标识符可以是一个项目的唯一标识符。在图5的例子中,如果在世界上只存在一个为Betty的儿子,Larryt和Jeff的兄弟,Jessica的父亲,以及Frank的侄子的Jim,那么该语义标识符是Jim的唯一标识符。某一项目的唯一语义标识符可能考虑比该项目与其它项目的所有关系少的关系。在图5的例子中,如果世界上只有一个Jim是Betty的儿子,Larry的兄弟和Jessica的父亲,那么这些关系的单独存在就足以产生个唯一的语义标识符。不需要考虑Jim与Jeff和Frank的关系。创建一个以确保唯一性的最少数量的关系为基础的语义标识符是有利的。例如,如果语义标识符将被保存在数据库112中或者将由数据集成系统104处理,那么不太复杂的语义标识符需要较少的空间,并且便于更快速地处理。
创建某一项目的唯一语义标识符所需的关系的数目可能根据语境发生变化。图6A描述关心的两个项目:项目1 5402和项目7 5404。在语境A 5408中,可依据项目1 5402与项目5 5410和项目6 5412的关系,把项目1 5402和项目7 5404区分开。即,在语境A中,项目15402的唯一语义标识符可以是直接与项目2、3和4相关的语义标识符,通过项目4间接与项目5 5410相关的语义标识符,通过项目5 5410和项目4间接与项目6 5412相关的语义标识符。在语境A中,项目75494的唯一标识符可以是只与项目2和3直接相关的语义标识符。图6B表示在不同语境B,语境B 5414中的项目1 5402。为了在语境B5414中唯一地识别项目1 5402,可以考虑项目1 5402与项目4的直接关系,与项目6的直接关系的不存在,或者与项目5的间接关系中的任意一个或多个。在语境B 5414中,项目1 5402在语义上可被唯一地识别成与项目2和3直接相关,但是不与项目6直接相关。从而,在语境A 5408和语境B 5414之间,项目1的唯一标识符不同。从而,在这里描述的数据集成方法和系统的实施例中,项目的语义标识符,比如与数据集成作业或者数据集成平台相关的项目可具备该项目的语境相关标识符。在实施例中,可以原子格式把这样的语境相关标识符保存在数据储存库中。
在其它实施例中,语境A 5408和B 5414可以是两个不同的进口、映射、运行版本run version、模型、元代理(metabroker)模型、实例、工具、视图、对象、类、项目、关系、属性或者上述任意的任意组合。匹配或比较装置可比较在不同进口、运行版本、模型、元代理模型、实例、工具和/或项目中,一个项目的身份的语法,并根据所述比较确定或帮助确定要采取或者要避免采取什么行动。例如,匹配引擎可比较进口实例A使用的模型和元代理B使用的模型。根据该比较,可确定元代理B可在没有变换或修改的情况下访问进口实例A的数据和元数据,比较装置可指令元代理B继续前进。在另一例子中,可比较工具A 5408和工具B 5414,可确定进行交叉工具对象合并,其中每个工具能够访问和使用另一工具的对象。在实施例中,比较装置可触发转换装置帮助交叉工具对象合并,例如建立桥,元代理,中心(hub)等,以便转换任何需要转换的对象,所述转换比如是以在每个相应工具中特定项目的身份的处理的不同语法为基础的转换,或者以所述比较确定的工具之间的其它差别为基础的转换。
在实施例中,可用以串结构或格式保存、维持、记录、处理和/或解释的语法保存、维持、记录、处理和/或解释语义标识符。图7描述语法和用该语法构成的对应串的一个例子。语法5502可以是列名称::表名称::数据库名称。该语法可与识别数据库中的一个表的某一列的语法标识符相关。以该语法构成的串5504可以是年龄::雇员::雇员数据库。该串可与识别特定雇员数据库中某一雇员的年龄的语义标识符相关。在图6B的例子中,对应于语境B 5414中项目15402的语义标识符的串可以是:与项目2的直接关系::与项目3的直接关系::与项目4的间接关系。语义标识符和对应的串还可体现项目1 5402和项目6之间直接关系的不存在。
在图8中,项目9 5602的串格式的语义标识符可以是:直接到项目2::直接到项目3::直接到项目4::间接到项目5 5604。串能够被解析。语法和/或串可被截短、修改和/或语法和/或串的元素可被重新排序。在图9中,串5702是串5604的截断,串5704是串504的截断和修改和/或重新排序,串5708是串5606的个性和/或重新排序。所述截断、修改和/或重新排序可由转换引擎进行。当就语义标识符的唯一性来说,不需要包括在语法和/或串中的所有关系时,截短语法和/或串是有益的。假定在串5604的指定语境中,所有项目都与项目3直接相关;例如,项目3是其中保存所有项目的数据库。串5604可被截短,从而产生串5702,省略涉及项目3的关系,同时仍然是一个唯一的标识符。截短语法和/或串可降低存储要求,并提高处理效率。改变语法和/或串中的关系的顺序也有益于减少数据集成过程的处理时间。如果首先处理不太常见的关系,那么系统很可能只需要访问和处理与某一项目相关的较少关系就能够识别该项目。例如,如果很少的项目与项目3相关,更少的项目与项目4相关,并且许多项目与项目2相关,那么取决于语境,与串5604相比,串5708可能便于在较短的时间中识别项目9。在该语境中唯一地识别项目9可能只需要串5708的前两个元素,而需要串5604的前三个元素。
转换引擎可对一个或多个语义标识符,数据库112,包括语义标识符的数据库112,信息系统,包括语义标识符的信息系统或者其它项目进行转换操作。图10描述作用于体现为串5804的语义标识符,以及作用于体现为位于数据库5808中的串的的语义标识符的转换引擎5802。转换操作可转换或者以其它方式修改语义标识符的格式、语言和/或数据模型。转换操作可涉及从一个或多数据工具、语言、格式和/或数据模型到至少一种其它的数据工具、语言、格式和/或数据模型的转换或映射,或者从至少一种其它的数据工具、语言、格式和/或数据模型到一个或多数据工具、语言、格式和/或数据模型的转换或映射。例如,转换操作可涉及往来于已知的数据集成工具,或者已知的数据集成工具之间的转换或映射,所述已知的数据集成工具例如是IBM的WebSphere DataStage 7,IBM的WebSphere QualityStage,Business Object工具,IBM-DB2 Cube Views,UML 1.1,UML 1.3,ERStudio,IBM的WebSphere ProfileStage,PowerDesigner(另外支持Packages and Extended Attributes)和/或MicroStrategy工具。转换引擎和/或转换操作可随意地包含在元代理中。可分批地,实时地和/或连续地进行、执行和/或实施转换操作。可以服务的形式,例如作为面向服务的体系结构的一部分的形式提供服务或者使之可用。SOA可以是商业企业的企业计算系统的基础结构的一部分。在SOA中,服务变成应用程序开发和部署的构件块,允许快速应用程序开发和避免冗余代码。每个服务具体体现周围的环境,例如服务的数据输入的来源或者服务的数据输出的目标看不见的一组商业逻辑或者商业规则。从而,服务可随同各种应用程序被重新使用,只要在服务和应用程序之间建立了正确的输入和输出。面向服务的体系结构允许保护服务免受环境变化的影响,以致即使周围的计算机环境被改变,该体系结构也能够正常工作。从而,服务不需要被记录成基础结构变化的结果,这可节省时间和工作。SOA可用于一个web服务,可涉及三个实例,一个服务提供者,一个服务请求者和一个服务注册器。注册器可以是公共注册器或者专用注册器。服务请求者可搜索注册器寻找适当的服务。一旦发现适当的服务,服务请求者可接收调用该服务所必需的代码,例如Web服务描述语言(“WDSL”)代码。WSDL是通常用于描述web服务的编程语言。服务请求者随后例如通过恰当格式(例如关于web服务消息的简单对象访问协议(“SOAP”)格式)的消息,与服务提供者连接,以便调用该服务。SOAP协议是在web服务中传送数据的优选协议。SOAP协议定义web服务客户端和web服务服务器之间消息的交换格式。SOAP协议使用可扩展置标语言(“XML”)方案,XML是在web服务中常见的用于标记数据的类似语言规范,不过也可使用其它置标语言。
一旦对于语义标识符,数据库112,包括一个或多个语义标识符的数据库112,信息系统,包括一个或多个语义标识符的信息系统或者其它项目来说,存在转换操作,那么它可被转换成或者转换自,映射到,链接到任意其它的语义标识符,数据库112,包括一个或多个语义标识符的数据库112,信息系统,包括一个或多个语义标识符的信息系统或者共享至少一个转换操作的其它项目,和任意其它的语义标识符,数据库112,包括一个或多个语义标识符的数据库112,信息系统,包括一个或多个语义标识符的信息系统或者共享至少一个转换操作的其它项目一起使用或者与之相联系。在实施例中,例如通过把原子数据储存库用作转换操作的中心,除了其它之外,转换操作的映射跟踪在初始语义语境和转换后的语义语境之间来回执行的转换操作中转换的数据。根据语境,数据的适当标识符可变化,例如在语义语境变化的情况下,通过改变或者截短语法和/或串,从而能够实现更有效的存储或更快的处理,或者通过改变用于形成唯一标识符的关系。从而,在使用数据项的各种语境中,动态标识符能够结合可回溯转换的优点与快速处理、有效的数据处理和有效操作的优点。
指定的项目,比如在模型中具有身份的项目可以多种形式或实例存在,例如物理实例和逻辑建模实例。图11描述一个项目,即雇员信息表5902。但是,概念或实体“雇员”可以多种不同的形式存在于企业内。例如,雇员表5902可以保存和雇员相关的值的物理表的形式存在于物理数据存储装置中。另一方面,实体雇员也可被表现为逻辑实例,例如逻辑建模活动5908中代表雇员的图标或文本,或者各种其它的形式或实例。即,相同的项目(包括任何相关的数据或元数据)可跨视图、模型、结构或数据集成环境,以多种形式或实例存在于数据库、数据储存库、模型、中心等中。图12描述在数据库6002中呈一种形式或者单一实例,和/或在数据库6004或中心6008中呈一个以上的形式或实例的雇员表5902。
为了区分项目的各种形式或实例,可以使用任何区别特性,例如抽象层次,项目的物理性质,项目在分层结构中的位置,项目在数据库中的位置,其中发现项目的语境,项目的语法,项目与其它项目的关系,项目的属性,项目的类别或者其它特性。例如,参见图5,根据年龄、性别、发色、IQ、政治面貌和/或过去三个月中看医生的次数区分项目,或者说这种情况下区别个人。例如,如果年龄被选为产品区别特性,那么Jessica是唯一一个小于10岁的,Betty是唯一一个介于57岁和67岁之间的,Jim是唯一一个37岁的。在另一例子中,项目的不同形式或实例可存在于不同的抽象层次或者不同的语境中。例如,雇员表可以多种形式或实例存在于中心6102中,例如物理雇员表5904(比如用于把和关于雇员的数据有关的值保存在数据库中),和逻辑雇员模型5908(比如将用在和雇员相关的过程的视图中)。
区分识别的特定项目的不同实例能够实现各种其它方法和过程。例如,在一个实施例中,项目,比如名为“雇员”的表可被带到中心。中心收集者在中心中具有“雇员”的两种形式中实例;一种对应于物理数据库实例,另一种对应于逻辑建模活动。区别特性,比如中心中起因于该项目的项目特性可以供区分物理实例和逻辑模型实例或形式之用。在实施例中,区别特性可被称为抽象层次,以便区别逻辑抽象层次和物理抽象层次。在其它情况下,中心可把其它特征与项目关联起来,比如不同形式的标识符、关系、类、属性、物理位置、逻辑位置、模型等。
如图14中所述,当进行操作时,例如选择将被装入数据库中的数据,转换数据,产生查询等时,系统,比如转换引擎6204能够从中心208或数据库6210夺取、装入或者获得所有项目。它可根据任意区别特性选择或过滤6204项目。例如,它可选择或滤出具有物理抽象层次,和其它项目具有特殊关系,具有逻辑抽象层次,在规定的日期和时间之前创建的,或者具有任何其它区别特性的那些实例或形式。从而,这里描述的方法和系统根据任何区别特性,有选择地处理相同项目或实体的实例。
如图15A中所示,当进行响应查询6202的数据集成操作,比如转换操作时,转换引擎6204可在中心6208或数据库6210过滤或选择项目,包括任何数据和/或元数据,只夺取、装入或获得相关抽象层次的那些项目。例如,它可滤出或选出具有逻辑抽象层次的那些实例或形式,只保留具有物理抽象层次的那些实例或形式。可在运行时或者设计时进行所述过滤或选择,可以分批地、实时地或者连续地进行所述过滤或选择。在实施例中,可以面向服务的体系结构中的RTI服务的形式提供这样的过滤或选择方法。
过滤或选择可以在开发时、设计时或者运行时由转换引擎和/或系统获得的信息为基础,例如数据模型的映射,元数据模型的映射,区别特性,项目与其它项目的关系,项目的属性,或者标识符的语法。在实施例中,所述信息可被实时地动态更新。
在整个过程中,过滤或选择越接近中心或数据库,操作就越高效和越快。如图15B中所示,转换引擎6204可对查询6202本身进行转换操作,产生修改的查询6402,修改的查询6402可被直接发送给中心6208或数据库6210以便进一步处理。例如,可用直接与中心6208或者数据库6210的本地格式兼容的格式呈递修改的查询6402。例如,通过用数据库6210的本地格式呈递查询,系统能够提高对该查询的处理效率。类似地,查询6402可被过滤,或者可产生诸如选择命令之类的命令,以保持逻辑建模实体而不是物理实体,在这种情况下,可按照适合于逻辑建模活动,而不是适合于数据库的格式(例如图形用户接口)呈递查询6402。当然,不仅查询,而且其它消息和操作都可按照抽象层次被过滤,使得能够跨数据集成平台跟踪相同的实体,并按照特定的数据集成活动的适当操作环境处理相同的实体。
这里描述的方法和系统可被用于捕捉语义语境,以及关于和企业相关的各种项目处理数据集成任务,所述各种项目比如是对象、数据项、数据、列、行、表、数据库、实例、属性、元数据、概念、题目、主题、语义标识符、其它标识符、RFID标签、厂家、供应者、消费者、个人、团体、机构、用户、网络、系统、设备、家庭、商店、产品、生产线、产品特征、产品规格、产品属性、价格、成本、材料单、装运数据、税款数据、课程、教育规划、位置、地图、部门、组织、有机体、过程、规则、法律、收费制、物品、服务和/或服务提供。
这里描述的方法和系统可用在各种语义语境中,例如企业方法中的步骤,数据库中的数据,行或列中的数据,表中的行或列,数据库中的行或列,表中的数据,数据库中的表,数据库中的元数据,中心或储存库的项目,数据库中的项目,表中的项目,列中的项目,行中的项目,机构中的人,通信的发送者或接收者,网络上的用户,网络上的系统,网络上的设备,家庭中的成员,商店中的物品,菜单上的菜,生产线上的产品,产品提供中的产品,教育或训练计划中的课程或步骤,地图上的位置,物品的位置,机构的部门,团体中的个人,规则体系中的规则,一套服务中的服务,企业的组织层次中的实体,供应链中的实体,市场中的消费者,购买决策的购买者,商品或服务的价格,商品或服务的成本,产品或系统的组件,方法的步骤,小组的成员或者其它许多。
参见图16A,体系结构的高级示意图描述多个服务如何可被组合成起集成应用程序的作用,所述集成应用程序统一数据集成解决方案的开发、部署、操作和生存周期管理。把数据集成任务统一到单一平台可消除对设施和开发的不同阶段的独立软件产品的需要。虽然在统一的视图中示出,不过应明白单个的模块、过程、服务和功能都可独立提供,例如通过以面向服务体系结构中的服务的形式,独立地调用它们中的每一个。
体系结构6430可包括GUI/工具框架6432,智能自动化层6403,一个或多个客户端程序6434,API 6438,核心服务6440,产品功能服务6442,元数据服务6452,元数据储存库6454,具有组件运行时6450和连接器6448的一个或多个运行时引擎6444。体系结构6430可被部署在面向服务的体系结构,例如上面所述的任意面向服务的体系结构上。
保存在元数据储存库6454中的元数据模型在过程的从设计到部署的每个步骤,在整个系统内提供数据的公共内部表现。公共服务可为批处理、并行处理、直通处理、流水线操作、建模、模拟、概念化、详细设计、测试、调试、确认、部署、执行、监视、测量、改进、升级、报告、系统管理和经营创造条件。模型可被记录在其它系统组件能够访问的目录中。公共模型可提供众多的全套项目的公共表现(所有产品功能服务共有),所述全套项目包括元数据(包括数据简表信息的数据描述性数据),数据集成过程规范,用户,机器和软件配置等。这些公共模型能够实现企业资源和集成过程的公共用户视图,不论用户正在使用什么产品功能,并且不需要集成的产品功能之间的模型转换。
面向服务的体系结构(SOA)被表示成包含所有的服务,并且为从GUI 6432经运行时引擎6444和连接6448到计算环境的所有服务的协调创造了条件。可保存在元数据储存库6454中的公共模型允许SOA无缝提供多种服务或多个模型之间的互动。通过使用公共核心服务6440、产品功能服务6442和元数据服务6452,SOA可向数据集成设计和部署的所有方面显露GUI 6432,并且可通过智能自动化层6403工作。公共模型和服务为关于设计和部署过程中的各种动作,GUI6432中对象的公共表现创造条件。GUI 6432可具有与SOA协调的服务对接的多个客户端程序6434。客户端程序5204允许用户与具有多种技术水平的数据集成设计面接,所述多种技术水平使用户能够起跨适当组织层次的小组的作用。SOA 5201可提供对公共核心服务5210和产品功能服务5212的访问,以及为数据集成设计中的功能和服务,提供对API 5208的后端支持。服务可被多个客户端程序5204和其它服务共享和重新使用。例如,GUI 6432可以是专门用来与特定的RTI服务(比如以服务的形式显露特定的数据集成作业)一起工作的客户端应用程序的GUI。另一方面,GUI 6432可以是用于产品服务6442,比如数据集成服务,例如提取、变换、装入、清洗、剖析、审计、匹配等的GUI。在其它情况下,GUI 6432可以是公共服务6440,比如记录或事件管理服务的GUI或客户端程序。客户端程序6434允许用户与具有多种技术水平的数据集成设计面接,所述多种技术水平使用户能够起跨适当组织层次的小组的作用。
SOA可提供对公共核心服务6440、产品功能服务644和与元数据相关的服务的访问。SOA还可包括一个或多个API 6438,所述一个或多个API 6438向外部应用程序和服务显露数据集成平台中的功能和服务。服务可被多个客户端程序6434、API、装置、应用程序和其它服务共享和重新使用。智能自动化层6403可采用该体系结构内的元数据和服务来简化GUI 6432内的用户选择,例如通过只显示相关的用户选择,或者使常见的、频繁的和/或明显的操作自动化。智能自动化层6403可自动产生某些作业,诊断设计和设计选择,以及调整性能。智能自动化层6403还能够支持高级设计范例,比如商业环境的工作流管理或者建模,并且更一般地可应用计划了解或其它前后关系了解来帮助用户更快更有效地实现数据集成解决方案。
公共核心服务6440能够提供通常可跨越数据集成解决方案的设计和部署的各个方面使用的公共功能服务,例如一个或多个公共注册器的目录服务,记录和审计服务,监视,事件管理,事务处理服务,安全,许可(比如许可策略的创建和强制实施,以及与外部许可服务的通信),以及SOA服务的供应和管理。公共核心服务6440可允许相对于公共GUI 6432的函数和对象的共同表征。任何其它服务,比如产品功能服务6442、RTI服务或者其它服务,装置、应用程序或模块能够访问任何特定公共服务6440的客户端程序,或者充当任何特定公共服务6440的客户端程序。
其它特定于产品的功能服务6442可包含在产品功能服务6442中,并且能够向特定的适当客户端程序6434和服务提供服务。例如,这些可包括引入和浏览外部元数据,以及剖析、分析和产生报告。其它功能可以是更面向设计的,比如通过该体系结构设计、编译、部署和运行数据集成服务的服务。当适当的任务被使用并且能够提供面向任务的GUI 6432时,GUI 6432能够访问产品功能服务6442。面向任务的GUI可以只向用户呈现适合于数据集成设计中的动作的函数。
应用程序接口(API)6438可提供用于访问整个体系结构,包括其中的任意或者全部的服务、储存库、引擎和连接器的编程接口。API6438可包含供各种服务使用和/或由各种服务创建的常用函数库,并且可被递归调用。
图16A另外表示了可控制对元数据储存库6454的访问的元数据和储存库服务6454。所有函数把由其自己的特定函数模型表示的元数据保存在元数据储存库6454中的公共储存库中。函数可共享公共模型,或者使用元数据映射在它们自己的模型之间动态转换语义。在数据集成设计中使用的所有内部元数据和数据被保存在元数据储存库6454中,对外部元数据和数据的访问可由保存在元数据储存库6454中并且受元数据和储存库服务6452控制的中心(一种元数据模型)提供。元数据和元数据模型可保存在元数据储存库6454中,元数据和储存库服务6452可保持元数据版本,持续时间,元数据和元数据模型的签入和签出,以及在与其它元数据调和之前,用户所创建的中间元数据的储存库空间。元数据和储存库服务6452可向多个服务、GUI 6432、内部客户端程序6434和利用储存库中心的外部客户端程序提供对元数据储存库6454的访问。其它服务和客户端程序6434对元数据储存库6454的访问允许元数据在SOA协调的无缝事务中被所述其它服务访问、变换、组合、清洗和查询。
运行时引擎6444(可存在几个运行时引擎)可使用适配器和连接器6448与外部来源通信。引擎6444可被暴露给用户创建的设计,从而根据计算环境创建编译和部署的解决方案。运行时引擎6444可向计算机环境提供最新的绑定,并且可向用户提供独立地计算机环境考虑因素,设计数据集成解决方案的能力。与SOA服务配合的运行引擎6444允许用户进行设计,而不受运行时编译问题的限制。运行时引擎6444可编译数据集成解决方案,并且自动为高吞吐量或高并行性的环境提供适当部署的运行时。从为各种服务提供对接口和应用规范的访问的注册器,服务可被部署成J2EE结构。服务可支持多种协议,比如HTTP、Corba/RMI、JMS、JCA等,供不同种类的硬件和软件环境之用。与这些协议的绑定可由运行时引擎6444自动选择,或者作为部署过程的一部分由用户手动从GUI 6432选择。
外部连接器6448可提供对网络或其它外部资源的访问,并且把多个执行引擎和其它变换执行环境,比如Java或保存的进程的公共接入点提供给外部资源。
要认识到可提供另外的功能层来帮助选择和使用各种运行时引擎6444。当提供所述另外的功能层以支持高吞吐量或高并行性部署时,这是特别有益的。例如,运行时引擎6444可包括适合于解析长度可能无限的大事务,以及实时事务的连续流的事务引擎。运行时引擎6444还可包括适合于处理小的独立事务的平行(或并行)引擎。并行引擎试图把过程分解成流水线功能或者一些其它的分块流程,并且能够很好地处理大量的相似工作单位。并行引擎适合于接收已被分解成流水线化或者以其它方式分块的流程的预处理输入(和输出)。编译和优化层可确认如何把过程提供给这些各个引擎,例如通过把并行引擎的输出预处理成小块。通过把连接器集中在体系结构内,能够更紧密地控制各个引擎之间过程的分布,以及在用户接口层提供对这种控制的可访问性。另外,变换过程中连接性的常见中间表现能够实现自动化策略的部署,执行引擎的不同组合的选择,以及基于元数据或剖析的优化。
这里描述的体系结构6430向用户的工作环境提供高度的灵活性和可定制性。这可适用于环绕现有的或者规划的工作流和设计过程配置用户环境。通过构成组件并把组件组合成组成物,用户能够创建特定的功能服务,所述组成物又可充当组件,从而允许新组件的设计中模块性的递归嵌套。组件和组成物可被保存在由元数据和储存库服务6452提供访问的元数据储存库6454中。元数据和储存库服务6452可向具有公共接口的公共数据定义提供多种服务,并且可提供对本地数据格式和行业标准格式的支持。这里描述的体系结构的模块性使得能够把任何企业函数或集成过程打包成具有从公共核心服务6440选择的组件和产品功能服务6442的其它一些组件,以及整个体系结构的其它组件的程序包。可以公共核心服务6442的形式提供由系统组件产生程序包的能力。通过这种打包能力,能够构成任何的任意函数,只要它能够表述成已存在于体系结构6430内的原子服务、组件和组成物的组合。体系结构6430的打包能力可与用户接口的任务导向相结合,从而实现特别适合于用户希望的任意工作流或者设计方法的用户接口。
图16B是描述包括SOA的数据集成系统的另一体系结构的高级示意图,在实施例中,SOA可以是IBM的IBM WebSphere ServicesBackbone。该体系结构可包括和结合图16A说明的那些组件类似的组件,比如一个或多个GUI 6434,所述GUI 6434可包括用来与各种RTI服务(比如在本公开内容内描述的各种RTI服务)交互作用的特定客户端程序6480。GUI 6430可包括各种其它GUI,比如用于各种数据集成工具(比如IBM的WebSphere DataStage,Metastage,RTI,Datastage TX和其它工具,以及其它厂家的工具)的GUI。从而,专门设计的GUI,比如RTI客户端程序6480,或者常规的GUI 6434可简化与数据集成平台的函数、过程、模块和服务的互动。在实施例中,GUI 6434可以是部署在面向服务的体系结构中的服务的客户端程序。在这种体系结构中能够实现各种服务。除了如上所述的实时数据集成服务或者说RTI服务之外,该平台还包括其它产品服务6442,比如执行特定的数据集成功能的服务。各种产品服务6442可被显露成SOA中的服务,从而能够实现对函数的访问,而需要函数被独立编码。下面详细说明了这种产品服务6442的许多实施例。另外,该体系结构可包括公共服务6440,公共服务6440包括可用于各种应用程序、模块、过程或函数的各种服务。如下所述,GUI 6434、产品服务6442、其它公共服务6440和其它应用程序能够充当任意公共服务6440的客户端程序,根据需要调用公共服务6440,从而实现公共功能,比如记录、事件管理、监视、供应、安全等。下面说明这种公共服务6440的许多实施例。SOA还可以与公共模型和储存库数据和元数据6454互动,包括显著SOA中与元数据有关的服务。该体系结构还可以包括API,以允许外部装置或应用程序访问平台的数据集成功能。SOA还可以与元代理6452、引擎6450和连接应用程序6448互动和/或与调用它们,以便完成数据集成任务,比如数据和元数据的提取、变换和装入。
参见图16C,SOA环境的示意图表示SOA如何与其它体系结构6400客户端程序和服务连接。SOA的核心可以是服务绑定6468,SOA基础结构6470和服务实现6474。服务绑定6468可允许客户端程序,比如GUI 6464、应用程序6460、脚本编排6458、管理框架6456和其它客户端程序与可在SOA内部或外部的服务的绑定。绑定的服务可以是公共核心服务5520的一部分,服务绑定6464可访问服务描述注册器6466,从而例示该服务。服务绑定6464使客户端程序能够利用相同或不同的技术使用本地或外部的服务。与外部服务的绑定可显露外部服务,并且可按照和内部服务相同的方式调用它们。与服务的通信可以是同步的或者异步的,可以使用不同的通信路径,可以是有状态的或者无状态的。服务绑定6464可提供对多种协议,比如HTTP、EJB、web服务协议、CORBA/RMI、JMS或JCA的支持。如这里所述,服务绑定6464可按照计算机环境自动确定服务绑定的恰当协议,或者作为设计解决方案5304的一部分,用户可从GUI 6464选择所述协议。
管理框架6456可提供安装、暴露、编目、配置、监视和以其它方式管理SOA服务的设施。管理框架6456可提供对客户端程序、对内部服务、通过连接对外部服务、或者对内部或外部元数据中的元数据的访问。
通过把多个SOA服务合成为一个设计解决方案5304,编排客户端程序6458使得能够设计多种复杂的产品功能和工作流。服务可由公共核心服务6476,在内部服务6480之外的服务,内部过程6484或者用户定义的服务6478组成。SOA的编排是在企业环境中提供统一的数据集成设计的核心能力。客户端程序、核心服务、元数据储存库服务、部署引擎和外部服务及元数据之间的编排能够实现满足各种企业需求的设计。统一的方法提供把全套的企业设计绑定在一起的体系结构,并且便于单一的GUI 6464能够无缝地表现整个设计过程一直到部署设计解决方案。这种体系结构还使得在设计和运行时能够使用公共模型,公共部署模型利用和设计GUI 6464相同的服务。
通过允许服务根据需要调用公共功能,客户端应用程序6460可以有计划地向SOA协调的服务提供另外的功能。通过允许服务调用功能,并如同它们是服务的一部分那样应用所述功能,客户端应用程序6460的功能可增强SOA的服务的能力。通过允许SOA服务和资源被图形显示和处理,GUI客户端程序6464可向SOA服务和资源提供用户接口。
SOA基础结构6470可基于J2EE,并且可以提供允许独立于部署环境地部署服务的设施。SOA基础结构6470可提供另外的功能以支持部署环境,比如建立资源池,拦截,串行化,负载平衡,事件监听和监视。SOA基础结构6470可以访问计算环境,并且影响GUI 6464可用的服务,以及支持指向语境的GUI 6464。
利用例如企业型Java Bean(EJB)和实时集成(RTI),SOA基础结构6464能够提供资源池。资源池允许多个同时的服务实例共享内部和外部的少量资源。
SOA基础结构可提供许多有用的工具和特征。可提供拦截以便插入加密、压缩、跟踪、监视以及对服务来说透明的其它管理工具,并且向客户端程序和其它服务提供这些服务的报告。串行化和去串行化能够跨多种调用协议,以及跨越不同的技术提供复杂的服务请求和数据传送支持。负载平衡允许多个服务实例分布在多个服务器间。负载平衡可支持访问多个服务器上的一个或多个处理器的高并行性处理或高吞吐量处理。事件监听和产生能够根据观察到的外部事件实现服务的调用。这允许根据第一服务的功能以及如果出现了规定的条件,调用第二服务。事件监听还支持回叫能力,所述回叫能力规定可利用先前调用服务的相同标识符调用该服务。
服务描述注册器466是保持所有其它服务的全部接口和使用规范的服务。服务描述注册器6466可提供创建将供设计解决方案使用的服务、绑定和协议的实例的查询和选择服务。例如,客户端程序或其它服务可向SOA请求服务的实例,这里,SOA将请求被调用服务的查询或选择。服务描述注册器6466随后返回服务的实例供服务绑定6464绑定,随后可被用在设计解决方案中。
公共核心服务6476可包含为了创建设计解决方案和运行时部署的解决方案,可能被调用的多个服务。公共核心服务6476可包含设计解决方案的所有公共服务,从而使其它服务不必自己保持这些服务。服务本身可根据需要调用公共核心服务6476内的其它服务,以完成设计解决方案。多个客户端程序可通过服务绑定6464,基础结构6470和服务描述注册器6466,访问公共核心服务6476。通过元数据储存库服务6452和SOA基础结构6470,公共核心服务还可被外部服务访问。
通过服务实现6474,另外的外部服务可访问SOA基础结构6464支持的任意环境。通过使用适配器或连接器6448,服务实现可提供对外部服务的访问。通过服务实现6474,服务6480可显露由其它软件产品提供的特定产品功能以便部署设计解决方案。这些服务6480可提供调查、设计、开发、测试、部署、操作、监视、调整或者其它功能。例如,服务6480可执行数据集成作业,并且可关于元数据、元模型或服务访问SOA。
服务实现6474可向过程6484提供对利用其它工具创建的,并且以服务的形式向SOA基础结构6470暴露的集成过程的访问。其它工具的用户可能已创建这些集成过程,这些过程可以服务的形式暴露给SOA和客户端程序。
服务实现6474还可以提供对用户定义的服务7478的访问,用户定义的服务6478允许用户定义或创建他们自己的定制过程,并将其显露成SOA服务。把用户定义的服务6478显露成SOA服务便于向SOA的所有客户端程序和服务显露用户定义的服务6478。
图16D描述SOA,比如IBM WebSphere Services Backbone的内部体系结构。SOA可包含几个不同的管理器,或者由几个不同的管理器构成,例如管理客户端接口6434的调用的客户端程序调用管理器6451,管理服务和绑定策略的策略管理器6453,J2EE管理器6455,注册器管理器6461,持久性管理器6463,管理服务的部署,比如增加、修改或删除服务的服务管理器6457,绑定管理器6465,管理服务的部署的服务部署管理器6459,和管理服务的绑定的部署的绑定部署管理器6467。应用程序服务器6486、UDDI注册器6488和公共储存库6490可与SOA相关联或者是SOA的一部分。SOA可提供公共服务6440和产品服务6442。每种服务具有与之相关的描述6477。描述6477或者服务本身可具有与之相关的某些扩展。扩展可被用于把一个服务与其它服务链接起来。扩展的一个例子是把“监视服务扩展”附到服务上。就监视服务来说,该扩展可由服务用于跟踪与该服务行为相关的某些值的m-bean组成。当发现该扩展时,m-bean被自动向监视服务登记。在本发明的实施例中,管理员可定义“尺度”,所述“尺度”是在m-bean的原始属性值之上创建的计算值,并且还可以定义监视m-bean的“监视器”,从而对m-bean属性值的变化,或者对尺度的计算值的变化作出反应。与监视服务相关的行为的一个例子可以是产生一个事件(由事件管理服务管理)。该事件又可调用另一服务,或者向某些特定用户或管理员发送电子邮件或警报。与服务描述相关的m-bean可捕捉服务的属性值,比如服务被调用的次数等。在实施例中,公共服务6440,比如监视服务能够监视m-bean,根据在m-bean中捕捉到的值和属性,计算各种尺度,比如平均值、加权平均值等。该体系结构还可包括服务包装器6473和绑定包装器6469。绑定工厂6479可被用于建立绑定6468,例如适合于各种服务的绑定。一个服务可具有多个绑定,如下所述,所述多个绑定可简化服务和服务的各种客户端程序之间的各种耦接。
参见图16E,在面向服务的体系结构中,加上允许比如通过端口6402访问服务的绑定6404。如这里所述,各种绑定,比如EJB、JMS、web服务和JCA绑定可被用于调用这里描述的面向服务的体系结构的各个实施例中的服务。在实施例中,可提供API 13210以帮助访问服务6400。API可提供各种功能,比如为服务选择特定的绑定,其中所述选择建立在条件或事件的基础上,比如选择适合于特定应用程序的绑定。例如,绑定可在灵活性方面有所不同,API 13210可根据访问服务的应用程序或装置的情况应用或紧或松的绑定。在实施例中,API13210可以是Java API或者类似设施。在实施例中,相同的Java API13210可被用于多种不同绑定。在实施例中,可为服务6400供给智能客户端程序13208。智能客户端程序13208可以是API 13210之上的另一层或者可替代API 13210。可通过与服务相关的注册器保存和访问智能客户端程序13208。例如,应用程序可根据使用应用程序的装置,应用程序的语境等,下载适当的智能客户端程序13208。例如,智能客户端程序13208可被用于缓存由服务使用的某些信息,并打包地把信息发送给服务,而不是使应用程序不断访问该服务。例如,当访问记录服务时,用户可能希望只记录错误,而不是记录所有事件。通过保持在预定时间之前的事件,用户能够减少对服务器的调用次数,同时仍然能够捕捉所有必需的事件。从而,智能客户端程序13208能够执行优化装置或应用程序对服务的使用的各种规则。在实施例中,智能客户端程序13208能够根据访问的状况、装置的能力、访问的语境等,单独地或者与API 13210互动地选择绑定,所述绑定优化客户端装置或应用程序与服务6400的绑定。智能客户端程序13208或API13210可被用于保存各种访问规则。例如,所述规则可指出如果装置或应用程序在防火墙之内,那么它能够利用EJB绑定来访问服务,而如果装置或应用程序在防火墙之外,那么它将利用web服务绑定来访问服务。任何这样的规则可被具体体现在API 13210中,或者可被包括在智能客户端程序13208中,它可和服务一起被任意列举在注册器中,并且可由访问该服务的客户端装置或应用程序下载。
面向服务的体系结构的好处之一在于它便于访问服务的客户端装置或应用程序与服务本身的代码之间的松散耦接;即,客户端装置或应用程序能够调用和使用服务,而不必非常了解该服务的代码,只需要满足某些预定输入,比如向服务输入什么(例如,文件、查询的回答等)。但是,不存在紧密耦接会导致性能问题,因为为了使之更通用,从服务描述中省略了语境相关优化例程。通过确保最佳地访问服务,比如通过选择正确的绑定,高速缓存数据以便批处理,从而避免为较小的作业不断调用服务等等,API 13210和/或智能客户端程序13208能够弥补降低的性能。从而,智能客户端程序13208在松散耦合环境中提供有效的性能。从而,智能客户端程序13208桥接紧密耦接环境和松散耦接环境之间的间隙,并且允许访问服务的用户、应用程序或装置按照性能预期或要求,沿着松散耦接和紧密耦接(比如EJB)之间的范围(spectrum),选择一种绑定。例如,EJB耦接比web服务表现更好,因为EJB耦接生性被更紧密地耦接在客户端应用程序和服务器端之间。通过高速缓存或者缓冲信息,并且恰当地分批发送所述信息,智能客户端程序13208改进EJB和web服务的性能。在不可能或者不值得高速缓存或缓冲项目的情况下,系统可使用紧密的EJB绑定来获得良好的性能。在实施例中,API 13210可隐藏客户端装置或应用程序正在使用的绑定。借助智能客户端程序13208,通过调整客户端程序和服务器之间的耦接度,用户能够调整系统的性能。
在实施例中,面向服务的体系结构中的服务的运行时13200可以是另一服务,比如结合图76-83说明的一个或多个公共服务的客户端程序本身。在实施例中,前述可利用AOP来实现。在AOP中,称为拦截器的实体能够把策略和服务关联起来。在服务的策略之内,拦截器可被插入策略中,拦截器可以是公共服务的客户端程序。例如,服务中的策略可包括调用图77的监视服务12500的插件。从而,AOP技术可被用于把拦截器的代码插入这里描述的各种服务的代码中。在AOP中,用户能够创建一段代码,并且在执行所述代码的时候,把“方面(aspect)”-将在运行时插入的一长串东西和所述代码关联起来。此时在该代码中,运行时程序调用另一段代码,比如调用一个服务,而不是执行该代码通常进行的操作。此时,该代码调用独立编译的另一函数。从而,当程序员查看源代码寻找运行时程序时,程序员看不到拦截器调用的那一段的源代码。例如,就Java来说,程序可编译源代码,从而创建字节码(它是Java的运行时),Java虚拟机读取该字节码。程序具有Java码和所述方面(aspect)。AOP编译器进行字节码处理,并调用其它类型的代码,比如面向服务的体系结构中的服务。从而,这里描述的方法和系统包括利用明确来自一个应用程序或另一服务,或者来自插入服务策略中的拦截器的公共服务。这允许相同的公共服务被任何服务实现者使用,以及通过AOP子系统透明地被面向服务的体系结构框架使用。
图16F描述在SOA中部署服务的体系结构的一个详细实施例。如图16F中所示,可提供各种客户端和系统端组件,从而能够实现SOA。在客户端,可开发和配置各种客户端应用程序6480或GUI 6434,比如用于RTI服务、公共服务6440或产品服务6442的客户应用程序,以便访问具体的服务。通过用来与各种绑定,比如SOAP、EJB、JMS和web服务绑定交互作用的代码,客户应用程序6480或GUI 6434能够直接访问服务。从而,取决于客户应用程序6480、6434或装置的能力、语境和需要,在客户应用程序6480、6434中可选择和启用恰当的绑定,比如紧密的EJB绑定或者松散耦接的web服务绑定。该体系结构还可包括API 13210,API 13210可用来提供适合于特定类型的客户端应用程序、装置、通信协议等的特定服务的接口。在实施例中,客户调用框架能够或者为产生的客户API 13210或者为登记的智能/富客户应用程序自动产生代理,比如C#或C++代理。这种代理的优点是:(i)通过客户API 13210的服务能够按照商业规则透明地使用任何定义的绑定,而不需要特殊的编码来与绑定互动;(ii)在产生的API 13210之上能够创建另外的智能/富客户应用程序,从而优化特定服务的使用;(iii)能够产生诸如C#或者C++之类的代理,从而在和API 13210的环境不同的环境,比如在Java API的情况下的非Java环境中,提供对这些产生的客户程序或富/智能客户程序的访问。系统可包括特定的客户端程序,比如SOAP客户端程序6407、EJB客户端程序6409、JCA客户端程序6411和JMS客户端程序413。该体系结构还可包括WSDL层6415。从而,能够存在多个客户端程序以通过各种绑定访问指定的服务,同时特定的应用程序或装置能够选择适当的客户端程序、API 13210或者绑定来访问所述服务。系统还包括执行上述功能的各种端口6402以及适当的绑定6404。仍然参见图16F,SOA运行时13200能够启动许多服务,比如各种公共服务6440(例如,记录、监视、供应、安全、事件管理、管理、审计等),产品服务6442(包括元数据服务6452、RTI服务、用户定义的服务等)。服务还可包括连接器访问服务、作业执行服务、元数据服务、作业浏览服务、作业部署服务、与工作流相关的服务、作业编制服务、记录服务、安全服务、审计服务、监视服务、许可服务、事件管理服务和会话管理服务。
参见图16G,这里描述的方法和系统可包括开发各种数据集成模块、工具、设施、函数、服务、作业和过程,或者它们的组合,并将其部署成用于数据集成的面向服务的体系结构中的服务的方法和系统。面向服务的体系结构可采取各种形式,例如结合图16A-16F公开的那些形式。仍然参见图16G,数据集成模块6400,它可以是任意模块、工具、设施、函数、服务、过程、客户端应用程序或者可被一个或多个预定端口6402(比如可通过计算机网络、编程接口或者任何其它硬件或软件连接或接口访问的端口)访问的其它项目。每个端口可具有相关的绑定6404,所述绑定6404允许用户通过端口6402访问模块6400,如上结合SOA的各个实施例所述那样。模块6400可包括各种操作6408,当通过绑定6404和端口6402访问所述各种操作6408时,所述各种操作6408中由模块6400执行。客户端接口6410可调用服务或者与服务交互作用。一个或多个客户端接口6410可被数据集成服务、模块或设施6400调用,或者可与数据集成服务、模块或设施6400交互作用。客户端接口6410可以是C++、C#、Java或者任何其它应用程序。每个模块6400可包括接口6414,比如用于输入消息和输出消息以及与服务的其它交互作用的接口。通过一个或多个绑定6404,模块6400可调用或者与服务策略和/或拦取器6412交互作用。服务策略6412可以是记录服务、事件管理服务、安装服务、供应服务、许可服务、监视服务或审计服务。拦截器6412可把策略和服务关联起来。客户端接口6410、端口6402、绑定6404、服务策略或拦截器6412中的任意一个或多个可形成面向服务的体系结构,比如IBM WebSphereServices Backone,公共服务6440或产品服务6442的一部分,或者是所述面向服务的体系结构的一部分。消息可具有与模块6400的定义的要求对应的各个部分,例如上面结合面向服务的体系结构的各个实施例说明的那些。例如,输入消息可以采取适合于指定绑定的格式,并且可包括用于触发特定模块6400的操作的输入触发器。模块6400可包括与抽象接口6414连接或者创建抽象接口6414的各种操作6408,当通过绑定6404和端口6402访问所述各种操作6408时,它们可由模块6400执行。
一旦模块640被定义(包括适当端口类型、绑定和接口6414的定义),模块6400就能够在注册器,比如web服务注册器中被公布,以便由一个或多个用户识别和访问,从而完成在模块6400的定义中规定的功能或操作。这些操作的代码可以是数据集成平台功能的任何常规代码,或者可用在各个厂家,比如IBM和其它厂家的数据集成平台中的任何其它代码。
本公开考虑了模块6400的许多例子。例如,模块6400可包括提供各种功能,比如提取功能、数据变换功能、装入功能、元数据管理功能、数据剖析功能、映射功能、数据审计功能、数据质量功能、数据清洗功能、匹配功能、概率匹配功能、元代理功能、数据迁移功能、原子数据储存库功能、语义识别功能、过滤功能、精炼和选择功能、设计接口功能或者许多其它功能的产品服务6442。
参见图17,模块6400可以是数据提取模块6500。数据提取模块6500可从数据库112或者其它数据设施112提取数据或元数据供在中心里使用,在数据设施里使用,或者供工具或应用程序之用。例如,数据提取模块6400可把数据从数据库提取到中心供元代理之用。从而,这里描述的方法和系统包括提供数据提取功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图18,模块6400可以是数据变换模块6600。数据变换模块6600可把数据从数据设施112提供的形式变换成便于保存在数据目标,比如任何数据库、数据设施或者过程,或者它们的组合中的形式。数据变换模块6600可以采取这里说明的那些形式中的任意一种,例如可包括一个或多个中心或原子数据储存库、桥、并行执行引擎、元代理、流水线设施或者在分批或实时变换中移动数据的其它设施。例如,变换模块6600可把数据从XML或类似的数据格式变换成数据库或过程,例如利用SAP或Oracle的供应链数据库的本地格式。另外要认识到,尽管认为数据变换包括某些特定的数据集成操作,不过数据变换模块6600可执行附随数据变换的其它操作,比如提取、装入或清洗。从而,这里描述的方法和系统包括提供数据变换功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图19,模块6400可以是数据装入模块6700。数据装入模块6700可把数据装入一个或多个数据库、过程或其它目标中。装入模块6700中以是批装入设施或者实时装入设施,例如使用流水线操作或者类似功能的装入设施。装入模块6700可被用于把数据并行装入一个以上的数据集成过程、模块、系统、数据设施或其它元件中。例如,装入设施可把保存在产品跟踪系统上或者与产品跟踪系统相关的数据同时装入跟踪物品的物理位置的数据库,和跟踪与物品相关的元数据的数据库,所述元数据比如是在收集物理位置数据时由用户输入的元数据,比如指示定单在可接受的条件下在指定时间被接受的数据。从而,这里描述的方法和系统还包括提供数据装入功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图20,模块6000可以是元数据管理模块6800。元数据管理模块6800便于关联元数据的存储和处理。元数据管理模块6800可以采取这里描述的任意元数据设施的形式。例如,元数据管理模块6800可以包括元代理、原子数据储存库、迁移引擎和/或其它元数据设施。元数据管理模块6800可被构建成提供当以服务的形式调用模块6800时,能够指定的各种元数据功能,或者元数据管理模块6800可执行单一的专用元数据管理功能。元数据管理模块6800可允许用户保存、增加和以其它方式处理元数据。例如,销售经理可修改与特定产品相关的元数据,以说明该产品目前是特定地区中的销售活动的主题的事实。作为另一例子,工程师可修改与某一零件相关的元数据,以反映从公制单位到英制单位的变化,或者反之亦然,或者对现有的库存增加新的特征,比如RFID或UPC标识码。从而,这里描述的方法和系统还包括提供元数据管理功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图21,模块6400可以是数据剖析模块6900。数据剖析模块6900可被用于剖析保存在数据设施中或者与系统关联的数据。例如,数据剖析模块6900可确定数据或元数据的列或表的内容,或者评估数据或元数据的质量。数据剖析模块6900可产生一个或多个数据源的元数据模型,以方便后续数据集成任务的自动化。数据剖析模块6900还可提供从正被剖析的源构建目标数据库的推荐,比如关键字和表标准化。从而,这里描述的方法和系统还包括提供数据剖析功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图22,模块6400可以是数据审计模块7000。数据审计模块7000可被用于审计保存在数据设施中或者与系统相关的数据。例如,数据审计模块7000可确定表的列的起点,并跟踪修改数据的用户的作业功能。数据审计模块7000还执行诸如数据范围的确认,计算,值组合之类的任务。从而,这里描述的方法和系统还包括提供数据审计功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图23,模块6400可以是数据清洗模块7100。数据清除模块7100可清洗从数据库或系统接收的数据或元数据。数据清洗模块7100可采取任意数据清洗设施的形式,并且可提供任意数据清洗操作,例如IBM的WebSphere QualityStage产品提供的那些数据清洗操作中的任意一种。数据清洗模块7100可快速执行清洗操作,比如去除重复的记录,以致依赖于数据的任何过程、系统、函数、模块等具有良好的数据,而不是例如重复或者错误的数据。从而,这里描述的方法和系统还包括提供数据清洗功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图24,模块6400可以是数据质量模块7200。数据质量模块7200可评估数据或元数据的质量。数据质量模块7200可提供任何数据质量功能,比如由IBM的WebSphere QualityStage产品提供的功能。数据质量模块7200可确定重复和错误数据的程度,并校正这样的错误。从而,这里描述的方法和系统还包括提供数据质量功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图25,模块6400可以是数据匹配模块7300。数据匹配模块7300可匹配与某一项目相关的数据或元数据和另一项目,比如过程、标识符、元素、商业过程、商业对象、主题、数据设施、规则、系统等。例如,匹配模块7300可匹配产品数据与特定过程,从而产品数据或元数据被保存在正确的过程中。从而,这里描述的方法和系统还包括提供数据匹配功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。在实施例中,数据匹配功能可以是概率匹配功能。
参见图26,模块6400可以是元代理模块7400。元代理模块740可把元数据从一种格式或语言转换或变换成另一种格式或语言,或者在元数据模型之间转换或变化元数据,即使它们使用相同的数据库技术。例如,元代理模块7400可把与特定行的产品相关的元数据从SAP格式转换成可与Oracle数据库一起使用的格式。作为另一例子,对库存使用它自己的元数据模型的公司可获得对库存使用一种不同的元数据模型的另一公司。元代理模块7400可被用作组合或者在这两个公司的库存数据库之间共享数据的转换器。从而,这里描述的方法和系统还包括提供元代理功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该设施。在实施例中,元代理功能跨越多个数据集成平台保持数据集成功能的语义。
参见图27,模块640可以是数据迁移模块7500。数据迁移模块7500可把数据从一个数据设施112移动到另一数据设施112或中心。例如,数据迁移模块7500可把数据从客户数据库移动到中心,在所述中心,它可由元代理模块7400作用,随后被迁移或者以其它方式转移到金融数据库。从而,这里描述的方法和系统还包括提供数据迁移功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该设施。
参见图28,模块6400可以是原子数据储存库模块7600。原子数据储存库模块6400可利用储存库的原子数据结构,提供用于与储存库通信的一个或多个基本数据操作,比如读或写。原子数据储存库模块7600可被用于关于保存在储存库中的元数据模型或其它项目的简单数据事务,或者可和其它模块7600组合,从而提供核心储存库服务,比如查询元数据模型等。这里描述的方法和系统还包括提供原子数据储存库模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该设施。
参见图29,模块6400可以是语义识别模块7700。语义识别模块7700可根据对象、表、列或其它项目与其它对象、表、列和其它项目的关系,识别所述对象、表、列或者其它项目。例如,语义识别模块7700可创建数据变换模块6600可作用于的串。从而,这里描述的方法和系统还包括提供语义识别功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该设施。
参见图30,模块6400要以是过滤模块7800。过滤模块7800可根据相关的抽象层次或其它性质,过滤项目的数据、元数据、对象、项目或实例。例如,过滤模块7800可根据与每个实例相关的抽象层次,把中心中的表的各列的物理实例从逻辑实例中过滤出来。从而,这里描述的方法和系统还包括提供过滤功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该设施。在实施例中,所述过滤以抽象层次为基础。在实施例中,抽象层次可以是物理抽象层次和逻辑抽象层次至少之一。
参见图31,模块6400可以是精炼和选择模块7900。精炼和选择模块7900可实数据库、中心、查询或者过程的其它层次或阶段过滤数据、元数据、实例或者其它项目。例如,精炼和选择模块7900可允许在查询被发送给相关数据库之前,对该查询进行变换操作。从而,这里描述的方法和系统还包括提供精炼和选择设施模块,提供服务注册器,和在注册器中识别该模块,其中可以面向服务的体系结构中的服务的形式访问该设施。在实施例中,精炼和选择设施允许系统区分逻辑抽象层次和物理抽象层次。
参见图32,模块6400可以是数据库内容分析模块8000。数据库内容分析模块8000分析和总结数据库的内容,并建议可能的关联数据库。例如,数据库内容分析模块可分析客户数据库,并总结关于前25位客户的主要信息。作为另一例子,数据库内容分析模块800可提供数据库各列中的数值数据的统计分析,或者关于空记录的频率的报告,或者报告表的数目和大小等。数据库内容分析模块8000还可表征数据库结构,提供与关键字,列名称,表名称,和上述内容之间的分级关系或其它关系有关的元数据。更一般地,数据库内容分析模块8000可提供可用程序代码表示的数据库的任何定量或定性分析,并可提供可被其它模块6400或设计人员用于表征和应用数据库内容的对应报告或尺度。数据库内容分析模块还可或者改为组合下面所述的模块的功能以便分析数据库的表、列和行,或者在分析数据库时采用这些模块。从而,这里描述的方法和系统还包括提供分析数据库的内容的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图33,模块6400可以是数据库表分析模块8100。数据库表分析模块8100可分析和总结表的内容。例如,数据库表分析模块8100可提供数据库的一个表相对于该数据库的其它表的分级位置。从而,这里描述的方法和系统还包括提供分析数据库的表的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图34,模块6400可以是数据库行分析模块8200。数据库行分析模块8200可分析和总结表中某一行的内容。例如,数据库行分析模块可提出与所关心的一行相关的其它行和/或表。数据库行分析模块8200还可或者改为按照数据库结构信息,评估某一行内的记录的有效性。从而,这里描述的方法和系统还包括提供分析数据库中某一行的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图35,模块6400可以是数据结构分析模块8300。数据结构分析模块8300可分析与和行、列、表或数据设施112,或者这些的任意组合相关的数据联系的数据或元数据的整体结构。例如,数据结构分析模块8300可产生总结构成特定数据库112的行、列和表的数目和分级关系的报告。从而,这里描述的方法和系统还包括提供分析数据结构的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图36,模块6400可以是推荐模块8400。推荐模块8400可推荐操作或过程的目标数据设施。例如,推荐模块8400可为涉及元代理模块600的过程定位和推荐未用的中心。作为另一例子,推荐模块8400可根据潜在目标数据库的已知特性,比如访问时间、容错性、容量等,为ETL操作推荐目标数据库。推荐模块8400还可以或者改为利用与IBM的WebSphere ProfileStage和AuditStage产品采用的技术类似的技术,为目标数据库的结构提供许多不同的建议。从而,这里描述的方法和系统还包括提供推荐目标数据设施的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图37,模块6400可以是主键模块8500。主键模块8500可使用表分析得到的相关性信息来识别分析下的表的候选主键。例如,主键模块8500可确定客户姓名列应是客户信息表的主键。该信息可被用于帮助设计需要数据目标的ETL操作或其它数据集成过程的目标数据库。从而,这里描述的方法和系统还包括提供为数据集成功能提供主键的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图38,模块6400可以是外键模块8600。外键模块8600可分析数据结构,从而识别外键。该信息可用于保持表之间的关系的完整性,和用于查找带有数据结构的主键表。从而,这里描述的方法和系统还包括提供为数据集成功能提供外键的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图39,模块640可以是表标准化模块8700。用于数据集成功能的表标准化模块8700可变换或拆分表,从而消除相关性和/或消除冗余数据和异常。标准化可显著提高数据库的性能,包括查询更快速和提高数据完整性。从而,这里描述的方法和系统还包括提供为数据集成功能提供表标准化的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图40,模块6400可以是源-目标映射模块8800。用于数据集成功能的源-目标映射模块8800可创建数据变换映射,用于把数据或元数据从源系统映射到一个或多个目标数据设施。例如,映射设施可把传感器收集的产品位置数据映射到组合产品的所有有关信息的新数据库。或者映射可以是供应链数据库和库存数据库之间的映射,或者更一般地是任何源到任何目标的映射。虽然映射一般意味着两个位置之间的文字转移,不过源-目标映射模块还可指定含有映射的变换,比如组合、过滤、或者其它转换或变换。例如,映射可指定从分钟到小时或天的相合变换。从而,这里描述的方法和系统还包括为数据集成功能提供源-目标映射,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图41,模块6400可以是自动数据集成作业生成模块8900。通过利用提供给模块8900的简表或规范产生数据集成作业,自动数据集成作业模块8900可自动创建数据集成作业。可以另一模块6400的形式提供数据集成作业,所述另一模块6400可被登记,供随后在整个企业内使用,自动数据集成作业生成模块8900可返回在哪里和如何访问新创建的作业模块的规范。例如,自动数据集成模块8900可关于保存的常用数据集成作业的简表产生所述常用数据集成作业。所述常用数据集成作业可以是客户信用信息与关于客户的商业的信息的集成。对于每个新客户需要进行该作业。从而,这里描述的方法和系统还包括提供根据数据集成作业的简表自动产生数据集成作业的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图42,模块6400可以是缺陷探测模块9000。缺陷探测模块9000可探测数据设施、过程或者其它操作中的缺陷。例如,缺陷探测模块9000可确定被错误进行,从而产生具有失配条目的表的数据集成过程。从而,这里描述的方法和系统还包括提供缺陷探测模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图43,模块6400可以是性能测量模块9100。性能测量模块9100可测量数据集成过程的性能。例如,性能测量模块9100可记录指定数据集成操作的时间和处理器负载。性能测量模块9100还可帮助数据集成过程的优化和修改。从而,这里描述的方法和系统还包括提供测量数据集成功能的性能的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图44,模块6400可以是数据去重模块9200。数据去重模块9200可从数据设施112或数据设施112的子集中除去重复的条目、行、列、表和数据库。例如,数据去重模块9200可从Bob Smith中除去两个相同的地址条目。虽然相同记录的去重是直截了当的,不过通过使用关于名称(例如,“Bill”=“William”或“GE”=“通用电气”)和缩写的信息,以及概率匹配或者可发觉由拼写错误或数据输入错误引起的微小变化的其它技术,也可采用更敏锐的去重形式。从而,数据去重模块9200还可确定关于55 Any Road的Robert A.Smith的条目与关于55Any Rd.的Bob Smith的条目相同,并除去重复的信息。去重是ETL操作,或者涉及从数据库提取数据的任何其它数据集成过程中的重要的初步质量提高步骤。从而,这里描述的方法和系统还包括提供数据去重模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。在实施例中,去重模块根据概率匹配数据项。在实施例中,去重模块丢弃重复的项目。
参见图45,模块6400可以是统计分析模块9300。统计分析模块9300可进行关于数据、元数据或者过程以及正对数据和元数据进行的操作的测试和收集统计。例如,统计分析模块9300可产生描述销售的产品的单位数和客户的年龄之间的关系的关系函数。统计分析模块9300还可提供过程尺度,比如确定利用某一处理器配置进行某一数据集成操作所用的平均时间。更一般地,统计分析模块9300可对数据源内的数据,一个或多个数据源的元数据,或者作用于数据或元数据的过程进行任何统计分析。从而,这里描述的方法和系统还包括提供多个数据项的统计分析模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图46,模块6400可以是数据调谐模块9400。数据调谐模块可协调来自不同的数据设施112的数据和元数据。例如,数据调谐模块9400可结合来自公司的与两个不同地理区域对应的产品数据库的相似产品条目,便于创建主记录。在另一方面,数据调谐模块9400可协调相同或近乎相同的记录的多个实例。例如,客户可能具有包含不同地址的两个不同记录。通过利用创建日期或者最近处理日期,这些记录可被协调成一条记录。其它调谐可用在数据集成系统中,比如数据库备份的调谐或者各种版本的元数据模型的调谐,并且可利用数据调谐模块9400进行所述其它调谐。从而,这里描述的方法和系统还包括提供协调来自多个数据设施的数据的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图47,模块6400可以是变换函数库模块9500。模块6400可以是变换函数库模块9500。变换函数库模块9500可提供对变换函数库的访问。例如,常见的变换函数,比如客户信用与购买信息的集成,或者单位之间数据的变换(例如,摄氏到华氏或者夸脱到升),或者电话号码的电话局的修改可被保存在库中,以致每次用户想要执行该操作时,用户不必从零开始创建该操作。也可使用其它更多的基本变换,比如字符串到数字值的变换或者反之亦然,或者数字值类型的改变(例如,字节、字、长字)。从而,这里描述的方法和系统还包括提供访问变换函数库的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图48,模块6400可以是版本管理模块9600。版本管理模块9600可帮助管理保存在库中的不同数据集成作业,或者可帮助创建和执行数据集成作业。例如,版本管理模块可允许用户保持多个版本的如上所述的客户信用和购买数据集成作业。客户可能通常具有需要集成的两个或者三个账户,从而可为处理两个或三个交易的作业保持一个独立版本的数据集成作业。类似地,版本管理模块9600可被用于选择元数据模型、元代理或者其它储存库对象的版本,或者用于查询注册器或储存库,询问存在这些对象的哪些版本。模块9600还可支持与版本有关的功能,例如多个版本的分支和调和。从而,这里描述的方法和系统还包括提供管理数据集成作业的版本的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图49,模块6400可以是一种不同类型的版本管理模块9700。图50的版本管理模块9700可控制在数据集成过程中使用的数据或元数据的版本。从而虽然图48的模块9600可控制工具和过程的版本,图49的模块9700可控制这些工具适用于的数据或元数据的版本。从而,这里描述的方法和系统还包括提供管理数据集成作业的版本的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。在实施例中,该模块允许用户与另一用户共享某一版本。在实施例中,该模块允许用户签入和签出某一版本的数据集成作业,以便使用该数据集成作业。
参见图50,模块6400可以是并行执行模块9800。并行执行模块9800可便于并行地动态执行数据集成作业。并行执行模块9800可分析执行任务的各个部分的处理和数据相关性,从而产生适当的并行执行顺序,或者可接收明确的并行性指令以及供执行的任务的标识。从而,这里描述的方法和系统还包括提供并行执行数据集成功能的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图51,模块6400可以是数据划分模块9900。数据划分模块9900可把源记录集分成几个子集。例如,对于涉及一个表格的数据集成作业,该表格可被分成几个子表,每个子表具有它自己的数据、索引等,并且同时对每个子表进行数据集成作业。该过程可缩短处理时间。从而,这里描述的方法和系统还包括提供划分数据的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图52,模块6400可以是划分和重新划分模块10000。划分和重新划分模块10000可起增加了能够重新组合初始子集或变换子集的功能的划分模块9900的作用。例如,在执行了在图51的例子中描述的数据集成作业之后,划分和重新划分模块10000可结合子表,从而产生类似源表的变换表。从而,这里描述的方法和系统还包括提供划分和重新划分数据的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图53,模块6400可以是数据库接口模块10100。数据库接口模块10100可允许用户与数据库交互作用和/或执行数据集成作业。例如,数据库接口模块10100可允许用户查看数据库中的某些条目,比如某一雇员的销售成绩历史。数据库接口模块10100可提供原子用户交互作用,比如单独的查询、读、写或其它事务。数据库接口模块10100还可以或者改为提供更一般的数据库连接性,通过所述数据库连接性,数据集成作业或其它过程可同时处理数据库。从而,这里描述的方法和系统还包括提供数据库接口模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。在实施例中,该接口模块便于实现相对于多个数据库厂商的数据库的接口。
参见图54,模块6400可以是数据集成模块10200。数据集成模块10200便于创建或执行数据集成作业。例如,用户可利用数据集成模块10200创建和调度某些变换作业,或者利用数据集成模块10200调查什么数据集成过程在模块6400中可用。从而,这里描述的方法和系统还包括提供数据集成功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图55,模块6400可以是同步模块10300。数据同步模块10300可使来自不同来源的数据同步。例如,数据同步模块10300可对准不同数据库中的类似条目,执行交叉链接分析和除去任何重复的或者错误的记录。从而,这里描述的方法和系统还包括提供使数据同步的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。在实施例中,该模块便于实现跨多个分级数据格式的数据同步。在实施例中,该模块便于实现跨多种事务格式的数据同步。在实施例中,该模块便于实现跨多种工作环境的数据同步。在实施例中,该模块便于实现电子数据互换格式数据的同步。在实施例中,该模块便于实现HIPAA数据的同步。在实施例中,该模块便于实现SWIFT格式数据的同步。
参见图56,模块6400可以是元数据目录供给模块10400。元数据目录供给模块10400可充当术语或定义数据库,所述术语或定义数据库便于深入了解企业记录的信息的类型。例如,销售部的用户可利用元数据目录供给模块10400访问元数据目录,从而了解生产部门记录的数据的类型。用户可获悉生产部门以批定义单位,而销售部门以一百批定义单位。从而,用户能够据此调整她的供应预测。从而,这里描述的方法和系统还包括提供供应元数据目录的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图57,模块6400可以是图形描述模块10500。图形描述模块10500可用图形格式描述对数据集成作业的修改的效果。例如,图形描述模块10500可向用户显示如果在数据集成过程中跳过数据归一化步骤而产生的较大的表。图形描述模块10500特别可用于例如支持用于与数据集成系统交互作用的极度分离的用户接口。从而,这里描述的方法和系统还包括提供图形描述对数据集成功能的改变的影响的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图58,模块6400可以是元代理模块10600。元代理模块10600可提供关于在系统中登记的元代理的元数据。例如,元代理模块10600可许可关于可用元代理的查询,以帮助手工或者自动选择用于设计数据集成过程的元代理。从而,这里描述的方法和系统还包括提供创建元代理的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图59,模块6400可以是元数据中心储存库模块10700。元数据中心储存库模块10700便于元数据的短暂存储,以致可对元数据进行操作。例如,元数据中心储存库模块10700可允许元数据以这样的方式占用中心,从而允许元代理把元数据转换成SAP兼容格式。从而,这里描述的方法和系统还包括提供元数据的中收储存库模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。在实施例中,所述中心保存多个数据集成平台的语义模型。
参见图60,模块600可以是打包应用连接性工具箱(PACK)模块10800。通过利用待SAP BW访问和使用的Information PowerCenter,PACK模块10800允许产生和/或保存数据和元数据。更一般地,PACK能够实现与涉及任何操作系统和/或硬件的任意数据库、应用程序或企业的连接性,或者实现所述任意数据库、应用程序或企业之间的连接性。当把遗留数据系统集成到企业中,或者当跨越商业企业的先前分离的,并且使用不同数据库管理技术的多个部门集成数据时,PACK模块10800特别有用。从而,这里描述的方法和系统还包括提供PACK,提供服务注册器,为PACK提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别PACK,其中可以面向服务的体系结构中的服务的形式访问PACK。
参见图61,模块6400可以是行业专用数据模型存储模块10900。行业专用数据模型存储模块10900可便于存储行业专用数据模型。例如,货运行业的公司可记录和装运的货物有关的一些特性。行业专用数据模型存储模块10900便于保存可由货运公司使用的模板。某些行业对数据存储和通信使用广泛采用或者法律要求的标准。例如,HIPAA批准保健提供者必须使用的某些事务类型和保密标准。SWIFT通常用于金融行业中的事务。利用行业专用数据模型存储模块10900,这些和其它类似标准可被管理和部署在数据集成系统内。从而,这里描述的方法和系统还包括提供保存行业专用数据模型的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。所述模型可以是制造业模型、零售业模型、电信业模型、保健行业模型、金融服务业模型或者任何其它行业的模型。
参见图62,模块6400可以是模板模块11000。模板模块11000允许用户建立和保存某些类型的数据集成作业的模板。模板可组合这里说明的其它模块6400的任务和功能,或者适合于数据集成系统的任何其它任务和功能,从而捕捉供使用、重新使用和改进的特殊设计解决方案。例如,用户可建立和保存集成客户信用和定单信息的模板。通过变换函数库模块9500,用户可使该模板供其它用户之用。从而,这里描述的方法和系统还包括提供建立数据集成功能的模板,提供服务注册器,为模板提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图63,模块6400可以是商业规则创建模块11100。商业规则创建模块11100可提供能够正式表述的任何商业规划或商业逻辑,可包括比较、条件评估、数学评估、统计分析、布尔运算和可在提供商业规则的语境中执行的任何其它操作。例如,在向客户发给信用之前,公司可能要求最低的信用评分,这可被正式化成一条商业规则。对于可应用于人力资源部中的工资单计算的工资和退休金,公司可能具有预定的程序,或者对于不同的部门,公司可保持不同的雇用标准,或者公司被要求向地方政府机构报告销售额。可能的商业规则的范围和复杂性没有限制。利用商业规则创建模块11100能够创建任意这样的可有计划地表述的规则,并且随后将其应用在数据集成过程中。从而,这里描述的方法和系统还包括提供创建商业规则的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图64,模块6400可以是确认表创建模块11200。确认表创建模块11200便于创建其它数据集成功能的确认表。从而,这里描述的方法和系统还包括提供创建确认表的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图65,模块6400可以是数据集成模块11300。注意参考图66说明了数据集成模块10200。数据集成模块10200与预先打包的数据集成作业的创建和/或执行相关。这里描述的模块11300改为涉及执行特定的数据集成作业、任务或功能的模块。从而,在这里说明的数据集成模块11300中,可以预先打包的作业的形式执行利用数据集成模块10200创建的数据集成作业。数据集成模块11300可执行任何数据集成作业、任务或者过程。数据集成模块10200还与标记为指示数据集成功能的本质的图形用户接口中的控制件相关联。这样,通过被便利地标记以供用户识别的按键、下拉菜单项或者其它控制件,强分离的用户接口可以使用任何用户定义的数据集成功能。从而,这里描述的方法和系统还包括提供数据集成功能模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图66,模块6400可以是商业度量创建模块11400。商业度量创建模块11400可便于创建将与某一业务或者业务子集相关的某些商业度量。例如,所述业务可以是客户产品业务,商业度量创建模块11400可帮助创建测量每一美元的广告费的增长销售额的尺度。商业度量创建模块11400还可收集计算所述尺度所必需的数据,或者与为此目的的其它模块和系统一起工作。模块11400能够利用任何数学函数、逻辑函数、条件函数或者其它函数,或者它们的组合实现所述尺度的创建。从而,这里描述的方法和系统还包括提供创建商业度量的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图67,模块6400可以是目标数据库定义模块11500。目标数据库定义模块11500可参与目标数据库的定义,包括数据库的类型和结构的定义。例如,目标数据库定义模块11500可接收来自剖析和审计模块的推荐,准备适合于特定数据源和变换的目标数据库的数据库定义。模块11500便于在各个判定点的交互式控制,或者可在无用户干预的情况下确定性地发挥作用。从而,这里描述的方法和系统还包括提供定义目标数据库的模块,提供服务注册器,提供一个或多个客户端接口6410,服务策略和/或拦截器6412,和在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图68,模块6400可以是主机数据剖析模块11600。主机数据剖析模块11600可以供主机数据的剖析之用。计算机主机可具有特殊的数据格式,连通要求,安全层等。主机数据剖析模块11600可被设计成致力于特定主机或者特定类型的主机的所有这些问题,从而加速利用这种主机的数据集成系统的设计。从而,这里描述的方法和系统还包括提供剖析主机数据的模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图69,模块6400可以是批处理模块11700。批处理模块11700可便于分批处理数据集成作业。例如,就某些处理器配置来说,最好分批处理事务。作为另一例子,最好把处理集中到远离计算机使用高峰期的时候,例如从早上1点到早上3点。批处理可在用户可计划的时间,或者在用户可选择的机器上便于大型数据集成作业和过程的执行。批处理模块11700可按照这种方式或者任何其它可控方式帮助简化处理。从而,这里描述的方法和系统还包括提供批处理一批数据的模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图70,模块6400可以是交叉表分析模块11800。交叉表分析模块11800便于分析表之间的关系和连接,在目标数据库的构建方面,这可带来显著的好处。例如,交叉表分析模块11800可允许用户确定两个客户数据表之间的关联度。根据该信息,用户可决定集成表格中的信息。从而,这里描述的方法和系统还包括提供交叉表分析模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图71,模块6400可以是关系分析模块11900。关系分析模块11900可分析任何两个或更多行、列、表、数据库或者它们的组合以及其它数据源项目之间的关系。例如,关系分析模块11900可确定列和表之间的关系。该信息可被用于验证数据库中的其它数据,或者识别还未被充分表征的数据库的关键字或者其它结构信息。根据关系分析,用户可决定在设计数据集成过程或目标数据库中采取响应步骤,例如合并表格,拆分表格,删除列等。从而,这里描述的方法和系统还包括提供关系分析模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图72,模块6400可以是数据定义语言代码生成模块12000。数据定义语言(DDL)代码生成模块12000可产生数据库用DDL代码,从而或者创建新的目标数据库,或者修改源或目标数据库。数据定义语言代码生成模块12000可响应提供给该模块的其它结构数据库描述产生DDL代码,或者产生DDL代码作为伴随某一其它数据集成过程的参数。DDL代码可被直接提供给数据库,比如SQL数据库,从而在其中实现结构变化。从而,这里描述的方法和系统还包括提供DDL代码模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。在实施例中,所述方法和系统还可包括使用该模块来创建源数据设施和目标数据设施之间的映射。
参见图73,模块640可以是设计接口模块12100。设计接口模块12100可提供用于创建和设计数据集成作业的用户接口。设计接口模块12100可包括图形用户接口。设计接口模块12100可以是极度分离的,只提供接口的低级控制和布局,同时与完成数据集成系统内的功能的其它模块6400或代码相关联。作为可通过设计接口模块12100执行的操作的一个例子,设计接口模块12100可允许用户在屏幕上链接各种操作,从而创建一个数据集成作业。在另一实施例中,通过提供对设计的存储、检索和修改的适当程序控制,设计接口模块12100可以只提供对设计,比如元数据模型或数据集成作业的功能访问。设计接口模块12100又可连接程序控制与诸如程序或图形用户接口之类的客户端。从而,这里描述的方法和系统还包括提供设计数据集成作业的设计接口模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图74,模块6400可以是数据集成作业开发模块12200。数据集成作业开发模块12200便于数据集成作业的开发。例如,用户可使用数据集成作业开发模块12200建立预先存在的数据集成作业。数据集成作业开发模块12200可为强分离的图形用户接口的开发特征提供功能支持。从而,这里描述的方法和系统还包括提供开发数据集成作业的模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
参见图75,模块6400可以是数据集成作业部署模块12300。数据集成作业部署模块12300可简化数据集成作业的部署,并解决在进行时出现的任何实现问题。数据集成作业部署模块12300可在预定计划的基础上,或者在模块12300的客户的控制下部署数据集成作业。模块12300还可建议另外的数据集成作业的调度。数据集成作业部署模块12300可跨越不同的数据设施112同时部署多个数据集成作业。从而,这里描述的方法和系统还包括提供部署数据集成作业的模块,提供服务注册器,提供一种或多个客户端接口6410,服务策略和/或拦截器6412,以及在注册器中识别该模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
在各个实施例中,通过各种输入和输出设施,包括绑定和类似的设施,比如EJB、JMS、web服务、SOAP和其它绑定,可访问这里描述的模块、设施、工具、作业、服务、过程和功能。
在实施例中,这里描述的方法和系统可包括优化客户装置对模块、设施、作业、服务、过程、功能等的访问的客户端设施。在实施例中,这里描述的方法和系统包括优化客户装置对模块、设施、作业、服务、过程、功能等的访问的服务器端设施。
参见图76,在实施例中,数据集成平台或过程的面向服务的体系结构中的服务可以是可用于各种集成和计算任务的服务,包括执行许多公共任务所要求的或者有益于许多公共任务的功能的模块。从而,例如,可部署记录服务12400,比如用于记录事件。希望记录事件的用户(出于与任何任务相关的任何原因,比如与数据集成作业或任务有关的任务原因)通过经由面向服务的体系结构中的服务注册器访问记录服务12400,可调用记录服务12400。从而,程序员不必创建新的记录服务来记录事件,而是通过服务注册器调用预先编码的记录服务。
参见图77,监视服务12500可被部署成面向服务的体系结构中的一个服务。例如,用户可调用监视服务12500来监视数据集成作业或任务的性能的某一方面,或者监视事件或过程。监视服务12500便于产生具体的事件和尺度,比如计数器、平均值和总和,以便监视。例如,数据集成系统具有称为作业执行服务的服务,其目的是运行某一作业,比如批作业。利用监视服务12500,用户能够监视作业执行服务已被运行多少次,作业执行服务的运行需要多长时间,最小执行时间,最大执行时间,平均执行时间和其它统计信息。用户能够在不了解底层的作业执行服务的代码的情况下完成所有这些功能。所有监视服务被部署成服务的事实意味着在作业的执行之内,用户能够询问已接触了多少个数据库,或者特定于作业执行服务的语义的其它监视项目。从而,作业执行服务本身可以是监视服务的客户。从而,通过监视服务12500,系统能够告诉在另一服务的实现中正在发生什么。在实施例中,每个公共服务,比如监视服务12500和结合图76-83说明的其它服务,可为每个服务确定不同的区域,比如要监视什么,服务的运行时间和管理部分。为了调用监视服务12500,可询问用户要监视什么。从而,监视服务12500可被面向服务的体系结构中的服务用于监视所述服务做什么,或者可被用于关于其它事件和条件进行特定于领域的监视。
参见图78,安全模块12600或服务可被部署成面向服务的体系结构中的服务,以便提供安全能力,比如在数据集成作业或任务方面的安全能力。当用户需要安全设施,比如口令保护、加密、跟踪访问、限制访问等时,用户可以面向服务的体系结构中的服务的形式,调用安全模块12600,从而用户不必为每个数据集成作业或任务创建独立的安全设施。
参见图79,许可模块12700可被部署在面向服务的体系结构中,以便当被用户调用时能够实现许可功能。例如,作业设计人员可使数据集成作业调用许可服务来确定将在运行时执行的特定任务是否遵守许可证约束,比如和机器的数目,用户的数目等相关的许可证约束。用户不需要为该用户创建的每个数据集成作业或任务准备独立的许可代码。许可模块可连同安装和/或供应服务一起使用。
参见图80,事件管理模块12800可被部署在面向服务的体系结构中,当用户通过服务注册器调用时用于跟踪和管理事件。用户可为数据集成作业或任务所需的任何事件管理访问事件管理模块12800,比如跟踪事件以便确定何时执行过程或功能。用户不需要为每个不同的数据集成任务或作业创建独立的事件管理代码。事件管理模块12800可便于应用程序的事件预约,并且可包含调回机构。
参见图81,供应模块12900可被部署在面向服务的体系结构中,允许用户通过经由服务注册器访问供应模块12900实现供应功能。供应模块12900便于对多个机器的组件供应,可保持安装在不同机器上的组件和版本的历史,推送或分发软件或补丁,可触发安全服务的安装,可帮助或方便授权和/中验证,可保持内部和外部用户目录,以及可帮助或方便一次性登录功能。
参见图82,事务模块13000可被部署在允许用户通过服务注册器访问事务模块13000的面向服务的体系结构中,不需要为用户创建的每个应用程序,例如为数据集成作业或任务创建独立的事务管理代码。
参见图83,审计模块13100可被部署在允许用户通过服务注册器访问审计模块13100的面向服务的体系结构中,不需要为用户创建的每个应用程序,例如为数据集成作业或任务创建独立的审计代码。从而,通过调用该服务访问模块13100,用户能够审计事件,比如审计什么用户访问了特定数据库或过程,已发生了什么事件等。审计模块13100可允许用户方便地审计过去的事件,而不必产生独立的代码。
从而,数据集成作业或平台所必需的或者对数据集成作业或平台有益的各种公共任务可以模块的形式创建,并部署成面向服务的体系结构中的服务。
在这里描述的模块和服务的各个实施例中,AOP技术可被用于实现面向服务的体系结构中的服务。例如,可利用AOP以服务的形式实现各种元数据功能和模块。在实施例中,服务的绑定,比如EJB(例如EJB 3.0)可使用AOP。
虽然关于一些优选实施例说明了本发明,不过应明白本领域的技术人员会认识到其它实施例,并且所述其它实施例在本公开的范围内。
Claims (45)
1、一种方法,包括:
提供数据集成功能的模块;
提供服务的注册器;
提供该模块的接口;和
在注册器中识别所述模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
2、按照权利要求1所述的方法,其中数据集成功能包括数据提取、数据变换、数据装入、元数据管理、数据剖析、数据审计、数据清洗、数据质量、数据匹配、数据迁移和过滤中的一个或多个。
3、按照权利要求1所述的方法,其中数据集成功能包括原子数据储存库功能、语义识别功能、过滤功能、精炼和选择功能、设计接口功能、分析功能、定向功能、主键供应功能、外键供应功能、表标准化功能、源-目标映射功能、数据集成作业自动产生功能、缺陷探测功能、性能测量功能、数据去重功能、统计分析功能、数据调和功能、库功能、版本管理功能、并行执行功能、划分功能、划分和重新划分功能、接口功能、同步功能、元数据目录功能、图形影响描述功能、中心储存库功能、打包应用连接性工具箱功能、行业专用数据模型存储功能、模板功能、商业规则功能、确认表功能、商业度量功能、目标数据库定义功能、主机数据剖析功能、批处理功能、交叉表分析功能、关系分析功能、数据定义语言代码产生功能、数据集成作业设计功能、数据集成作业部署功能和数据集成作业开发功能中的一个或多个。
4、按照权利要求1所述的方法,其中数据集成功能包括元代理功能,所述元代理功能跨多个数据集成平台保持数据集成功能的语义。
5、按照权利要求1所述的方法,其中数据集成功能包括精炼和选择功能,其中精炼和选择功能允许所述方法根据区别特性区分项目。
6、按照权利要求1所述的方法,其中所述模块分析数据库的内容。
7、按照权利要求1所述的方法,其中所述模块分析数据库的列、数据库的表和数据库的行中的一个或多个。
8、按照权利要求7所述的方法,其中所述模块为数据项推荐目标数据库。
9、按照权利要求1-8任一项所述的方法,其中所述模块可被企业型Java Bean、Java消息接发服务和web服务中的一个或多个访问。
10、按照权利要求1所述的方法,其中利用面向方面的编程,使策略与服务关联起来。
11、按照权利要求1-10任一项所述的方法,其中所述模块包括实时服务。
12、一种系统,包括:
数据集成功能的模块;
服务的注册器;
所述模块的接口;和
注册器中所述模块的标识,其中所述模块可作为面向服务的体系结构中的服务而被访问。
13、按照权利要求12所述的系统,其中数据集成功能包括数据提取、数据变换、数据装入、元数据管理、数据剖析、数据审计、数据清洗、数据质量、数据匹配、数据迁移和过滤中的一个或多个。
14、按照权利要求12所述的系统,其中数据集成功能包括原子数据储存库功能、语义识别功能、过滤功能、精炼和选择功能、设计接口功能、分析功能、定向功能、主键供应功能、外键供应功能、表标准化功能、源-目标映射功能、数据集成作业自动产生功能、缺陷探测功能、性能测量功能、数据去重功能、统计分析功能、数据调和功能、库功能、版本管理功能、并行执行功能、划分功能、划分和重新划分功能、接口功能、同步功能、元数据目录功能、图形影响描述功能、中心储存库功能、打包应用连接性工具箱功能、行业专用数据模型存储功能、模板功能、商业规则功能、确认表功能、商业度量功能、目标数据库定义功能、主机数据剖析功能、批处理功能、交叉表分析功能、关系分析功能、数据定义语言代码产生功能、数据集成作业设计功能、数据集成作业部署功能和数据集成作业开发功能中的一个或多个。
15、按照权利要求12所述的系统,其中数据集成功能包括元代理功能,所述元代理功能跨多个数据集成平台保持数据集成功能的语义。
16、按照权利要求12所述的系统,其中数据集成功能包括精炼和选择功能,其中精炼和选择功能允许所述方法根据区别特性区分项目。
17、按照权利要求12所述的系统,其中所述模块分析数据库的内容。
18、按照权利要求12所述的系统,其中所述模块分析数据库的列、数据库的表和数据库的行中的一个或多个。
19、按照权利要求12所述的系统,其中所述模块为数据项推荐目标数据库。
20、按照权利要求12-19任一项所述的系统,其中所述模块可被企业型Java Bean、Java消息接发服务和web服务中的一个或多个访问。
21、按照权利要求12-20任一项所述的系统,其中所述模块包括实时服务。
22、一种包含计算机可用介质的计算机程序产品,所述计算机可用介质包括计算机可读程序代码,其中当在一个或多个计算机上执行时,所述计算机可读程序代码使所述一个或多个计算机:
提供数据集成功能的模块;
提供服务的注册器;
提供该模块的接口;和
在注册器中识别所述模块,其中所述模块可作为面向服务的体系结构中的服务而被访问。
23、一种方法,包括:
取得执行数据集成任务的计算机可执行代码的模块;和
把所述模块部署为面向服务的体系结构中的服务。
24、按照权利要求23所述的方法,其中数据集成任务包括可被面向服务的体系结构内的其它服务访问的公共服务。
25、按照权利要求23所述的方法,其中公共服务选自监视服务、事务处理服务、供应服务、事件管理服务、安全服务、审计服务和记录服务。
26、按照权利要求23所述的方法,其中所述服务是实时服务。
27、一种系统,包括:
面向服务的体系结构平台;和
部署在面向服务的体系结构平台上的数据集成服务,所述数据集成服务具有一个以上的绑定;
其中面向服务的体系结构平台根据访问特性,自动从所述一个以上绑定中产生绑定。
28、按照权利要求27所述的系统,其中所述访问特性基于调用所述服务的装置、应用和服务中的至少一个。
29、按照权利要求27所述的系统,其中所述访问特性基于调用实体和所述服务之间的绑定的紧密度。
30、按照权利要求27所述的系统,还包括调用所述服务,其中调用所述服务的实体是客户机、应用、装置和服务中的至少一个。
31、按照权利要求27所述的系统,其中数据集成服务包括数据提取、数据变换、数据装入、元数据管理、数据剖析、数据审计、数据清洗、数据质量、数据匹配、数据迁移和过滤中的一个或多个。
32、按照权利要求27所述的系统,其中数据集成服务是实时服务。
33、一种方法,包括:
提供用于部署服务的面向服务的体系结构;
在面向服务的体系结构内部署服务,所述服务具有在面向服务的体系结构内可用的多个绑定;和
自动为所述服务选择所述多个绑定之一。
34、按照权利要求33所述的方法,其中自动选择包括根据规则为所述服务选择所述多个绑定之一。
35、按照权利要求33所述的方法,其中自动选择包括根据调用所述服务的实体的访问特性进行选择。
36、按照权利要求35所述的方法,其中所述实体包括装置、应用和服务中的一个或多个。
37、按照权利要求33所述的方法,还包括提供用于调用所述服务的客户调用框架。
38、按照权利要求37所述的方法,其中客户调用框架包括为所述服务动态调用所述多个绑定中的任意之一的接口。
39、按照权利要求38所述的方法,还包括为所述接口产生多个代理。
40、按照权利要求39所述的方法,其中所述多个代理包括至少一个C++代理和至少一个C#代理。
41、按照权利要求37所述的方法,其中客户调用框架与语言无关。
42、按照权利要求37所述的方法,其中客户调用框架是基于代理的。
43、按照权利要求33所述的方法,其中所述服务包括至少一个数据集成功能。
44、一种包含在计算机可读介质中的计算机程序产品,包括:
提供用于部署服务的面向服务的体系结构的计算机可执行代码;
在面向服务的体系结构内部署服务的计算机可执行代码,所述服务具有在面向服务的体系结构内可用的多个绑定;和
自动为所述服务选择所述多个绑定之一的计算机可执行代码。
45、一种系统,包括:
用于部署服务的面向服务的体系结构;
面向服务的体系结构内的服务,所述服务具有在面向服务的体系结构内可用的多个绑定;和
自动为所述服务选择所述多个绑定之一的软件模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60637004P | 2004-08-31 | 2004-08-31 | |
US60/606,370 | 2004-08-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101048732A true CN101048732A (zh) | 2007-10-03 |
Family
ID=36000707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800288573A Pending CN101048732A (zh) | 2004-08-31 | 2005-08-31 | 面向对象的数据集成服务体系结构 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1810131A4 (zh) |
CN (1) | CN101048732A (zh) |
WO (1) | WO2006026659A2 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572802A (zh) * | 2013-10-10 | 2015-04-29 | 国际商业机器公司 | 用于加载具有复杂关系的数据的方法和系统 |
CN105354238A (zh) * | 2015-10-10 | 2016-02-24 | 成都博元时代软件有限公司 | 基于分布式的大数据挖掘方法 |
CN106027534A (zh) * | 2016-05-26 | 2016-10-12 | 浪潮(苏州)金融技术服务有限公司 | 一种基于Netty实现金融报文处理系统 |
CN107122476A (zh) * | 2017-05-02 | 2017-09-01 | 山东浪潮通软信息科技有限公司 | 一种网络隔离模式下公有数据的处理方法和装置 |
CN108052574A (zh) * | 2017-12-08 | 2018-05-18 | 南京中新赛克科技有限责任公司 | 基于Kafka技术的从FTP服务器导入海量数据的ETL系统及实现方法 |
CN108363609A (zh) * | 2018-02-07 | 2018-08-03 | 腾讯科技(深圳)有限公司 | 模拟传感器的方法、装置和存储介质 |
CN109656979A (zh) * | 2018-12-24 | 2019-04-19 | 北京小米移动软件有限公司 | 数据统计分析方法、装置及存储介质 |
CN109891439A (zh) * | 2016-05-31 | 2019-06-14 | B8Ta有限公司 | 快闪零售 |
CN110249312A (zh) * | 2016-09-15 | 2019-09-17 | 塔兰德公司 | 数据集成作业转换 |
CN110795422A (zh) * | 2019-09-12 | 2020-02-14 | 三盟科技股份有限公司 | 一种数据服务管理方法及系统 |
CN112905167A (zh) * | 2021-03-11 | 2021-06-04 | 北京字节跳动网络技术有限公司 | 应用操作方法、装置和电子设备 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8069439B2 (en) * | 2006-03-30 | 2011-11-29 | Microsoft Corporation | Framework for modeling continuations in workflows |
EP2393051A1 (en) * | 2010-06-01 | 2011-12-07 | Alcatel Lucent | A system for helping a user to decide to accept, or not, a proposed service or application that implies to communicate some personal data |
EP2645244B1 (en) * | 2012-03-27 | 2019-09-11 | Software AG | Method and registry for enabling the enforcement of design-time policies during runtime in a service-oriented architecture |
US9224135B2 (en) | 2013-03-15 | 2015-12-29 | Elemica, Inc. | Method and apparatus for adaptive configuration for translation of business messages |
US9443229B2 (en) | 2013-03-15 | 2016-09-13 | Elemica, Inc. | Supply chain message management and shipment constraint optimization |
US8904528B2 (en) | 2013-03-15 | 2014-12-02 | Elemica, Inc. | Method and apparatus for translation of business messages |
GB2514136A (en) * | 2013-05-14 | 2014-11-19 | Aims Innovation As | Integration platform monitoring |
US9576039B2 (en) | 2014-02-19 | 2017-02-21 | Snowflake Computing Inc. | Resource provisioning systems and methods |
US10545917B2 (en) | 2014-02-19 | 2020-01-28 | Snowflake Inc. | Multi-range and runtime pruning |
CN105094984A (zh) * | 2014-11-25 | 2015-11-25 | 航天恒星科技有限公司 | 资源调度的方法及系统 |
US10437780B2 (en) | 2016-07-14 | 2019-10-08 | Snowflake Inc. | Data pruning based on metadata |
CN112882691B (zh) * | 2021-03-30 | 2024-07-02 | 中信银行股份有限公司 | 一种基于宏服务的业务服务方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763353B2 (en) * | 1998-12-07 | 2004-07-13 | Vitria Technology, Inc. | Real time business process analysis method and apparatus |
US7343428B2 (en) * | 2001-09-19 | 2008-03-11 | International Business Machines Corporation | Dynamic, real-time integration of software resources through services of a content framework |
US20040203891A1 (en) * | 2002-12-10 | 2004-10-14 | International Business Machines Corporation | Dynamic service binding providing transparent switching of information services having defined coverage regions |
-
2005
- 2005-08-31 WO PCT/US2005/030953 patent/WO2006026659A2/en active Application Filing
- 2005-08-31 CN CNA2005800288573A patent/CN101048732A/zh active Pending
- 2005-08-31 EP EP05792780A patent/EP1810131A4/en not_active Withdrawn
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572802A (zh) * | 2013-10-10 | 2015-04-29 | 国际商业机器公司 | 用于加载具有复杂关系的数据的方法和系统 |
CN104572802B (zh) * | 2013-10-10 | 2018-01-12 | 国际商业机器公司 | 用于加载具有复杂关系的数据的方法和系统 |
CN105354238A (zh) * | 2015-10-10 | 2016-02-24 | 成都博元时代软件有限公司 | 基于分布式的大数据挖掘方法 |
CN106027534A (zh) * | 2016-05-26 | 2016-10-12 | 浪潮(苏州)金融技术服务有限公司 | 一种基于Netty实现金融报文处理系统 |
CN109891439A (zh) * | 2016-05-31 | 2019-06-14 | B8Ta有限公司 | 快闪零售 |
CN110249312B (zh) * | 2016-09-15 | 2024-01-16 | 塔兰德公司 | 用于将数据集成作业从源框架转换到目标框架的方法和系统 |
CN110249312A (zh) * | 2016-09-15 | 2019-09-17 | 塔兰德公司 | 数据集成作业转换 |
CN107122476A (zh) * | 2017-05-02 | 2017-09-01 | 山东浪潮通软信息科技有限公司 | 一种网络隔离模式下公有数据的处理方法和装置 |
CN108052574A (zh) * | 2017-12-08 | 2018-05-18 | 南京中新赛克科技有限责任公司 | 基于Kafka技术的从FTP服务器导入海量数据的ETL系统及实现方法 |
CN108363609A (zh) * | 2018-02-07 | 2018-08-03 | 腾讯科技(深圳)有限公司 | 模拟传感器的方法、装置和存储介质 |
CN109656979A (zh) * | 2018-12-24 | 2019-04-19 | 北京小米移动软件有限公司 | 数据统计分析方法、装置及存储介质 |
CN110795422A (zh) * | 2019-09-12 | 2020-02-14 | 三盟科技股份有限公司 | 一种数据服务管理方法及系统 |
CN110795422B (zh) * | 2019-09-12 | 2020-10-27 | 三盟科技股份有限公司 | 一种数据服务管理方法及系统 |
CN112905167A (zh) * | 2021-03-11 | 2021-06-04 | 北京字节跳动网络技术有限公司 | 应用操作方法、装置和电子设备 |
CN112905167B (zh) * | 2021-03-11 | 2023-10-27 | 北京字节跳动网络技术有限公司 | 应用操作方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2006026659A3 (en) | 2006-07-06 |
EP1810131A4 (en) | 2011-05-11 |
WO2006026659A2 (en) | 2006-03-09 |
EP1810131A2 (en) | 2007-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101048732A (zh) | 面向对象的数据集成服务体系结构 | |
CN1182467C (zh) | 可扩充的分布企业应用集成系统 | |
CN101076793A (zh) | 企业数据集成系统的体系结构 | |
CN1173270C (zh) | 确定底层数据改变如何影响高速缓存对象 | |
CN1659548A (zh) | 为移动应用缓存数据的系统和方法 | |
CN1828527A (zh) | 用于跨不同应用程序框架的数据服务的平台 | |
CN1248139C (zh) | 用于表达频道化数据的系统和方法 | |
CN1262958C (zh) | 使用元数据在关系数据库中创建多维数据集的方法和系统 | |
CN1820245A (zh) | 用于基于项目的存储平台中的数据建模的系统和方法 | |
CN1820266A (zh) | 用于将应用程序与基于项的存储平台接口的系统和方法 | |
CN1604082A (zh) | 用于任意数据模型的映射体系结构 | |
CN1650279A (zh) | 企业业务过程管理的方法和系统 | |
Roth et al. | Information integration: A new generation of information technology | |
CN1578949A (zh) | 数据对象导向的储存系统 | |
CN1839403A (zh) | 经改进的慈善管理系统和商务方法 | |
CN1609795A (zh) | 用于计算机平台的编程接口 | |
CN1650274A (zh) | 操作管理方法和操作管理服务器 | |
CN1739107A (zh) | 为可由硬件/软件接口系统管理的信息单元提供同步服务的系统和方法 | |
CN1838165A (zh) | 工作项跟踪系统的工作项规则 | |
CN1679026A (zh) | Web服务设备和方法 | |
CN1419675A (zh) | 用于自上而下的企业过程定义和执行的方法和系统 | |
CN101040280A (zh) | 元数据管理 | |
CN1478237A (zh) | 通过互联计算机网络的多语种电子数据源的在线智能信息比较代理器 | |
CN1310173C (zh) | 表格式数据显示方法、插入方法、删除方法和更新方法 | |
CN101044472A (zh) | 数据系统中的语义识别方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20071003 |