用于使程序适应互操作性的方法和系统及其适配器与流程

文档序号:29467738发布日期:2022-04-02 03:53阅读:158来源:国知局
用于使程序适应互操作性的方法和系统及其适配器与流程

1.本发明总体上涉及一种用于使软件程序适应互操作性的方法和系统。本发明还涉及用于使不同程序实现互操作性的适配器。


背景技术:

2.不承认本章节中公开的背景技术在法律上构成现有技术。
3.目前,诸如数据库程序之类的程序采用了各种不同的数据模型、接口语言、命名惯例、数据语义、模式和数据表示。因此,基本问题是在各种资源之间共享异构信息。来自不同程序的数据之间的多样性可能会产生严重的障碍,在这些障碍中,这些不同程序之间的互操作性可能是令人高度期望的,但迄今为止是无法实现的。
4.尽管已经有许多针对异构数据库的尝试,但继续存在对设计应用、工程应用和制造应用的显著需求,以便能够以高效且有效的方式轻松访问和导入数据。开发全球查询语言的努力并不能令人满意地解决大量用户的问题,这些用户可能希望看到外部数据世界,就像该外部数据世界是他们的现有系统及其专用表示的扩展一样。这些用户可能不希望学习不同的全局表示,并且更重要的是,他们昂贵的设计工具可能仅对他们的一个专用表示起作用。
5.数据库网关、公共对象请求代理(cobra)和开放数据库连接(odbc)接口试图解决异构性,但只是在相对肤浅的层面上这样做。因此,即使刚开始实现通用程序互操作性,也存在严重的缺点。
6.在所有这些情况下,程序员仍然必须编写应用代码来调用在程序之间的接口中设计的若干函数,以某种方式使它们能够相互操作,从而产生不想要的和不期望的费用和时间延迟。应用程序接口(api)的源侧、api的目标侧上可能需要数据转换和重新格式化,或通常在这两侧上都需要。所有这些都留给了程序员,他们必须根据具体情况实现这种互操作性功能,并且因此为所期望的实施付出巨大的代价。不幸的是,很少有或没有预先存在的软件可以在其中构建这些翻译器,并且每一项努力通常都是从头开始。虽然一些供应商供应了几种常见格式的导入翻译器,但一般来说,这些并不能提供足够的互操作性。
7.此外,如果数据的目标使用期望非关系数据(例如,链接、嵌套或其它格式),则可能需要另外的数据转换。通常,这也可能涉及显著昂贵令人望而却步地的编程工作,该编程工作具有不必要的耗时要求。即使在关系数据模式内,通常也存在若干不同的方法来设计关系表,也就是说,通常有不止一种方法来规范化数据。如果应用需要不同于api所提供的数据的数据,那么通常需要数据转换。因此,对于组织来说,针对他们的特殊需求编写昂贵且耗时的专业翻译器常常是必要的。
8.其它互操作性缺陷频繁出现在大型现代企业中。不可避免的是,组织的不同部分可能使用不同的系统来生产、存储和搜索他们的关键数据。这种数据来源的多样性可能是由许多因素造成的,包括公司单位之间缺乏协调、采用新技术的速率不同、合并和收购以及合作团体的地理分离。然而,仅通过结合来自这些不同系统的信息,企业才可能能够实现它
们所包含的数据的完全价值。因此,在现代大型企业中,程序互操作性越来越令人费解。
9.例如,在金融行业或医疗行业,发生合并几乎是常见的事情。由合并产生的公司继承一个或多个原机构的数据存储。这些数据存储中的许多数据存储通常来自不同的制造商。获取者和目标均可能已经具有一个或多个用于存储文本文档的文档管理系统。每一个文档管理系统可能已经具有计算重要信息的应用,例如,向给定客户发放贷款的风险,或挖掘有关客户购买模式的信息。
10.在合并之后,新公司可能需要访问两组数据存储中的客户信息,使用现有的和新的应用分析其新的产品组合,并且通常通过公共接口使用两个机构的已组合资源。该公司可能还需要识别共同客户并整合其账户的能力,即使客户数据可能存储在不同的数据库中并采用不同的格式。这些都是程序互操作性的各个方面,并且所有这些都可能在实施过程中带来沉重且代价过高的挑战。而且,该实施方式通常需要不必要的长时间延迟来实现所期望的互操作性。
11.互操作性的另一个尝试是建立数据仓库,它通常是通过将一个或多个数据源中的数据加载至仓库数据库中新定义的模式(schema)中来构建的。数据常常在加载过程中被清理和转换。底层源的改变可能会导致加载过程的改变,并且应用中处理数据分析的部分必须受到保护。新数据源可能会引入对模式的更改,这需要定义针对新数据的新的加载过程。然而,不是仓库数据库管理系统标准部分的新数据源的任何功能通常必须在仓库数据库系统中或作为应用的一部分重新实施,这通常会产生不必要的费用并浪费安装时间。
12.仅仅基于仓储的解决方案可能不切实际,或由于各种其它原因不符合成本效益。例如,将数据从其原始位置移动至数据仓库并不总是可行的,并且如以上所描述的,仓储有其自身的维护成本和实施成本。
13.数据库联邦系统的使用是实现通用互操作性的又一个尝试。术语“数据库联邦”是指这样一种架构,其中数据库管理系统提供对多个异构数据源的统一访问。然而,设计和实施此类系统的时间和费用通常是不期望的和不必要的。即使这样,它通常也仅限于关系数据库,并且不局限于其它格式,诸如分层或其它形式。因此,此类有限的架构根本不适合用于通用互操作性。通过添加先前不知道的已填充数据源来扩大规模,即使对某些应用程序来说不完全不切实际,也最多是一个外部挑战。
14.一般而言,创建接口来实现某种程度的程序互操作性需要不必要的费用和时间,例如,在采用大量异构数据源的情况下。程序员的此类手动工作通常是完全不期望的和不必要的,如果不是令人生畏的话。
15.令人极度期望的是具有这样的系统和方法:能够以自动或基本自动、以及高效且有效的方式实现任何数量的不同程序的互操作性。这样的系统和方法应该安全地防范人为错误。另外,令人高度期望的是具有程序适配器来帮助促进不同程序之间的通用互操作性。适配器将以自动或基本自动的方式运行,以消除或大大减少程序员为先前未知的程序开发接口的需要。适配器应该能够实现甚至在具有先前未知的数据排列和含义的程序之间的互操作性,并且该实施可以基本上在没有人工干预的情况下完成。因此,先前未知的程序可以容易地被其它程序访问,以用于互操作性目的,以基本上无限制的方式和快速且有效的方法在全球范围内扩展系统。
16.适配器已经被用来帮助访问数据库实现与其它程序的访问。例如,可以参考以下
美国专利:us 9,201,874 b2;us 9,135,297 b2;us 6,880,151 b2;us 6,792,431 b2;us 5,970,490;以及已公开的美国专利申请2014/0032608 a1。
17.并且,以下是非专利公开文章:
[0018][0019]
例如,在所公开的美国专利申请2014/0032608a1中,公开了一种数据库适配器,该数据库适配器声称减少了“与使应用程序适应与不同于应用被设计为访问的第一数据库的第二数据库一起操作相关联的时间和费用”。然而,首先,必须为两个不同的数据库程序中的每一个手动定制这样的适配器。当然,这样的定制实施起来过于昂贵且不期望地耗时,尤其是在可能存在大量不同的可能的异构程序以高效且有效的方式进行交互操作时。其次,所公开的适配器被设计成实例化两个数据库,这对于大多数应用程序来说可能是不期望的。
[0020]
针对tamboli的美国专利6,792,431和针对szyperski的美国专利9,201,874公开了用于数据映射信息以辅助互操作性的适配器和技术。在tamboli专利中:公开了用于数据集成的适配器。标识属性由用户工作站显示。这些属性“实际上存储在目录中”。(第12栏,第43-49行)。然后,用户可以实现“执行传输,以将特定的已标识的数据从源本地库传输至目的本地库。在此类实施例中,当被命令这样做时,用户界面能够将来自针对用户所命令传输的所有本地记录的标识属性的目录密钥写入至转移车(transfer cart)。
……
然后,在典型实施例中,用户界面将目录密钥写入至转移车(242),每次转移记录一个密钥。”(第13栏,第1-26行)。为了实现此操作,程序员“为适配器功能或成员方法编写代码,这些代码或以用于本地库的数据库管理系统的语言编写,或调用本地库或其数据库管理系统所支持的应用程序接口(“api”)”。(第23栏,第8-12行)。当映射中出错时,“映射需要修改,不需要编程,仅需要文本编辑。就适配器需要修改的程度而言,仅涉及少量的编程,在当前示例中刚好足以添加一个被排除的数据元素
……
事实上
……
作为一个实际问题,人为错误或人为选择可能会以这样的方式将数据元素排除在外:不符合完全一致的定义,“需要修改。”(第25栏,第29-40行)。
[0021]
因此,由于在工作站上手动输入信息的人为错误,映射显然需要修改。这样的人为错误和手动纠正很可能代价高昂,并且是高度不期望的。在典型实施例中,要求“用户界面”的tamboli技术随后将目录密钥写入至转移车(242),每次转移登记一个密钥,对于系统中的每个记录来说,容易出现人为错误。因此,严重的准确性问题可能会很容易和可预测地发
生。
[0022]
在szyperski专利中,试图“基于常见形状或结构的最小集合将不同的标称类型关联在一起。在一个实施方式中,开发人员标识多个不同的感兴趣的标称类型(源类型),并且标识要由应用程序访问的公共类型形状的最小集合。公共类型形状的最小集合然后可以用于创建中间类型(目标类型),其它不同的源类型中的每一个都可以映射该中间类型。例如,可以创建一个或多个代理,这些一个或多个代理将一个或多个源类型的形状映射至所创建的目标类型的对应形状。由开发人员创建的应用程序进而可以通过单个目标类型访问、操作或以其它方式使用每个不同源类型的已映射数据。”(摘要,第2-15行)。
[0023]
然而,出于数据映射的目的,开发人员必须标识不同的感兴趣的标称类型(源类型),并且标识要由应用程序访问的公共类型形状的最小集合。这样的编程可能过于昂贵且耗时。而且,显而易见的是,开发人员必须在他或她能够标识许多不同的标称类型之前已经知道类型,并且可以进一步标识通用类型形状的最小集合。因此,在映射发生之前,szyperski需要某些程序的先验知识。
附图说明
[0024]
为了更好地理解某些实施例,并看到如何在实践中实施这些实施例,现在将参考附图描述本发明的非限制性优选实施例,在附图中:
[0025]
图1是示出根据各种实施例的创建用于与不同程序一起使用以实现它们之间的互操作性的适配器的符号框图;
[0026]
图2是根据各种实施例的连接至一对不同程序以使得它们能够交互操作的一对适配器的符号框图;
[0027]
图3是根据各种实施例的创建用于促进不同程序交互操作的适配器的方法的流程图;
[0028]
图4是根据当前优选实施例的适配器的更详细的符号框图;
[0029]
图5是根据实施例的来自给定交换标准数据的数据简档的图示;并且
[0030]
图6是根据优选实施例的图3的流程图的简档一致性确定步骤的软件实施方式。
具体实施方式
[0031]
现在将参考附图在下文中更全面地描述本发明的某些实施例,附图中示出了本发明的一些但非全部实施例。事实上,本发明的这些实施例可以呈许多不同的形式,并且因此本发明不应被解释为限于本文所阐述的实施例;相反,这些实施例仅作为说明性示例提供使得本公开将满足适用的法律要求。贯穿全文,相似的附图标记始终指代相似的元件。
[0032]
将容易理解的是,如总体上描述的并且在本文的附图中示出的本实施例的组件可以被布置和设计成各种各样的不同配置。因此,如附图所表示的,以下对本发明的装置系统、部件和方法的实施例中的某些实施例的更详细描述并不旨在限制如所要求保护的本发明的范围,而仅仅是本发明的一个或多个实施例的代表性示例。
[0033]
根据一个实施例,系统促进不同的第一程序与第二程序之间的互操作性。这些程序可能具有先前未知的数据含义和排列。该系统包括第一双向交换标准适配器和第二双向交换标准适配器,每个适配器包括第一数据功能变换和第二数据功能变换。变换可以是数
据结构和数据格式以及公共交换标准的在第一程序与第二程序之间的转换函数。第一适配器和第二适配器还各自包括用于相应的第一程序和第二程序的通信传输读取和写入数据。通信链路可以连接第一适配器和第二适配器,以用于双向传送交换标准信息。
[0034]
根据各种实施例,可以在没有人工干预的情况下创建数据功能变换,并使程序能够交互操作。数据结构和数据格式以及用于每个程序的读取/写入数据都是通过发现管理器学习的。因此,数据变换以及用于每个适配器的读取/写入数据使适配器创建器能够创建适配器,所有这些都可以在没有人工干预的情况下完成。
[0035]
应当理解,如本文所使用的术语“数据功能变换”在本文中还可以被不同地称为“es数据变换”、“变换”或“es程序数据变换”。
[0036]
另一实施例涉及创建双向交换标准适配器的方法。该方法包括从给定程序接收程序数据含义和对应的数据位置。然后确定所接收的程序含义是否等同于交换标准的期望含义。可以进一步确定来自给定程序的所接收的数据位置的数据是否与交换标准的对应数据一致。
[0037]
因此,如果数据含义可用,则可以通过分析相关数据来验证针对这些含义的数据。如果无可用的含义,可以分析数据本身来确定未知程序中包含的任何数据是否可能是感兴趣的,所有这些都可以在没有人工干预的情况下以快速且有效的方式完成。
[0038]
如果确定了等效性和/或一致性,则可以创建双向函数变换。功能变换可以是数据结构和数据格式的功能,用于给定程序与对应的交换标准之间的数据的转换。针对给定的双向交换标准适配器提供功能变换,以促进给定程序与具有另一个双向交换标准适配器的不同程序之间的互操作性。
[0039]
创建方法可以包括发现管理器,该发现管理器便于针对存储在给定程序中的数据的数据含义进行搜索。该搜索可以包括经由该发现管理器接收应用程序接口(api)。
[0040]
创建方法可以包括发现管理器,该发现管理器便于搜索以元数据形式存储在给定程序中的数据的数据含义。
[0041]
使用发现管理器进行创建的方法可以包括将该期望的交换标准含义与该所接收的程序数据含义进行比较,以确定该交换标准含义是否等同于对应的程序数据含义。
[0042]
使用发现管理器进行创建的方法可以包括确定程序数据简档是否存在以及交换数据简档是否存在。如果它们存在的话,则可以经由发现管理器确定程序数据简档与交换标准数据简档之间是否存在一致性。
[0043]
创建方法可以包括这样的确定:如果该发现管理器确定该数据含义的等效性和/或该数据简档的一致性存在,则由该适配器创建器创建该适配器,除非(1)该程序数据含义等同于该交换标准数据含义,或(2)该程序数据简档与该交换标准数据简档不一致。
[0044]
创建方法可以包括创建定义读取命令和写入命令和功能数据变换的规则。
[0045]
又另一个实施例涉及一种双向交换标准适配器,该双向交换标准适配器使给定程序能够与具有另一双向交换标准适配器的不同程序交互操作。该适配器可以包括一个或多个超对象,这些一个或多个超对象包括定义双向功能变换的一个或多个规则。该功能变换可以是数据结构和数据格式的针对给定程序并且针对给定交换标准的数据转换函数。这些一个或多个超对象还可以定义针对该给定程序的数据读取和数据写入的规则。因此,促进与另一双向交换标准适配器的相互通信,以提供该给定程序与该不同程序之间的互操作
性。
[0046]
该双向交换标准适配器还可以包括用于在该适配器与用于传送双向交换标准信息的另一双向交换标准适配器之间进行通信的通信链路。
[0047]
在一个实施例中,适配器超对象规则能够在公知且被接受的超对象框架中快速且有效地实施。规则还可以被动态地修改或以其它方式改变。
[0048]
现在参考附图,并且其更具体地参考图1,示出了双向交换标准适配器10,该双向交换标准适配器10用于使给定程序(诸如一组程序13中的程序12)能够与诸如程序14之类的不同的未知程序进行交互操作。程序组13可以是各种不同的程序,例如数据库、应用和其它类型和种类的程序。而且,在各种程序13中,数据含义可能是先前未知的。根据各种实施例,通过为程序13中的每一个程序配备类似于适配器10的交换标准适配器,即使程序13中的每一个程序的数据的结构和排列可能不同并且先前未知,程序13仍然可以彼此交互操作并且彼此共享数据。
[0049]
为了针对程序12创建适配器10,可以采用发现管理器15来发现程序12中使用或存储的某些期望数据的含义。为此,在16处指示的某些所接收的程序信息通知发现管理器15如何找到数据含义和对应的数据位置,这些信息可以被提供给发现管理器15的服务器17。
[0050]
根据各种实施例,如果这样的数据含义和数据位置可能不可用,则例如可以自动或半自动地分析程序数据(p-data),以从数据本身学习数据含义和位置。
[0051]
根据实施例,由发现管理器15接收给定的交换标准(es),如在18处一般指示的。交换标准数据es-data可以包括表示所期望的给定信息的数据,包括但不限于所期望的数据含义、数据结构和格式、数据简档等。
[0052]
如果发现管理器15得知对应于给定交换标准es的给定期望数据含义及其位置被发现和/或程序数据p-data与交换标准数据es-data一致,则具有服务器21的适配器创建器19可以针对数据结构和数据格式以及读取-写入程序命令创建数据功能变换。
[0053]
诸如es程序数据变换之类的变换一旦被创建,就可以被组装在适配器10中,如20处所指示的。另外,通信传输读取/写入数据还可以由发现管理器15确定,并且用于由适配器创建器19访问程序12以针对给定程序12提供读取命令和写入命令,并且通信传输读取/写入数据被组装在适配器10中,如22处所指示的。
[0054]
现在参考图2,在完成适配器10之后,给定程序12可以经由其适配器10通过es数据通信链路26连接至诸如适配器27之类的不同的双向交换标准适配器,该适配器进而经由链路25耦合至诸如程序14之类的不同的程序,以便于程序12与14之间的交互操作。假设适配器27可能已经由发现管理器15和适配器创建器19创建,或由其自身类似的专用发现管理器(未示出)和适配器创建器(未示出)创建。适配器27包括es程序数据变换29,该变换以与适配器10的变换20类似的方式在程序14中的程序信息与交换标准es之间双向转换,以供程序12使用。类似地,适配器27可以包括通信传输读取/写入数据28,该通信传输读取/写入数据28在功能上类似于适配器10的通信传输数据22,并且为程序14提供读取命令和写入命令。
[0055]
作为示例,假设给定的程序12包含意大利语版本的信息,并且不同的程序14包含汉语版本的信息。进一步假设交换标准es是英语版本的。程序12可以通过经由链路11、适配器10、es数据通信链路26、适配器27和到程序14的链路25发送诸如用意大利语查询的消息来从不同的程序14请求信息。这样,来自意大利语版本的程序12的程序请求使用读取/写入
命令22发送,并在20处经由es数据变换变换成英语版本,并由链路26和适配器27传送,以用英语提供请求。适配器27进而通过数据变换29将英语版本的请求转换成汉语版本,以呈现给程序14。通过针对程序14使用读取/写入数据28,将中文版本的请求经由链路25传送至程序14。
[0056]
然后,程序14可以使用依据数据28的读取/写入命令,经由链路25以中文响应适配器27。适配器27通过数据变换29将中文版本的信息转换成英语版本,以用于经由es数据通信链路26向适配器10提供英语响应。然后,适配器10经由数据变换20将英语数据响应转换成意大利语,以便经由链路11使用读取/写入数据22向程序12提供意大利语信息。因此,即使程序12和14可能不同并且以不同的语言或其它差异进行通信,这两种程序之间也可以进行双向通信以提供互操作性。
[0057]
现在参考图1和图3,根据各种实施例,现在将更详细地描述创建双向交换适配器10的方法或过程。假设程序12是数据库程序,并采用先前未知的数据含义。然而,诸如图1的程序组13之类的其它程序可以是诸如应用之类的不同的程序,并且可以具有不同的未知数据排列。程序组13可以具有其它不同的适配器,诸如以类似于适配器10的方式制造的适配器27。
[0058]
在框31处,由发现管理器15接收程序信息和交换标准es。所期望的医疗保健信息(例如某些患者信息)可能是期望的。假设程序信息可以通知发现管理器15如何找到包含在程序12中的数据含义及其位置。由发现管理器15接收的程序信息例如可以采用应用程序接口(api)、元数据或数据含义和位置的形式,或是手动接收用于程序12的信息的形式。
[0059]
在确定框32处,发现管理器15确定是否可以从程序12获得任何程序数据含义(p-dm)。如果在确定框34处可用,则确定用于程序12的可用程序数据含义(p-dm)是否等同于对应的交换标准数据含义(es-dm)。例如,用于程序12的程序数据含义(p-dm)可以包括针对给定患者记录的温度的“温度(temperature)”或“温度(temp)”。假设交换标准数据含义中的至少一个是“温度”,则由发现管理器15确定等同性。等同性确定意指程序12包含等同于交换标准数据含义es-dm的程序数据含义p-dm,例如在本示例中为“温度”。此操作可以通过处理比较或匹配功能来完成。
[0060]
因为在本示例中,假设交换标准数据含义es-dm等同于对应的程序数据含义p-dm,或没有程序数据含义可用,所以在确定框38处,发现管理器15确定程序数据p-data和交换标准数据es-data是否可用。
[0061]
如框41处所指示的,因为p-data和es-data是可用的,所以发现管理器15可以确定数据程序p-data是否与交换标准数据es-data一致。数据可能与对应的es-data类似,但不一定相同。一致性可以以各种方式定义,包括但不限于类似、兼容、可能或其它。如果p-data超出交换标准中描述的数据范围,则程序数据可能不一致。例如,通过将程序数据与一系列生理可能温度的交换标准数据进行比较,可以确定程序数据“1000”不是人类患者的“温度”。下文将描述其它一致性检查技术。
[0062]
假设p-data和es-data是可用的。然后在确定框41处,可以由发现管理器15确定程序数据p-data是否与对应的交换标准数据es-data一致。如果一致,则适配器创建器19可以针对适配器10创建变换。
[0063]
如框34和框36处所指示的,如果程序数据含义p-dm不等同于交换标准数据含义
es-dm,则在stop框36处,发现管理器15可以确定发现管理器15不会进一步发现此数据含义,并且可以处理其它数据含义,或该过程可以完全终止。
[0064]
如果发现管理器15在框41处确定在程序数据p-data与交换标准数据es-data之间不存在一致性,则如在stop框45处所指示的发现管理器15可以确定发现管理器15不会进一步发现此数据含义,并且可以处理其它数据含义,或该过程可以完全终止。
[0065]
发现管理器15可以确定(1)在框34处,程序数据含义p-dm是等同于交换标准数据含义es-dm的,以及(2)在框38处,程序数据p-data和交换标准数据es-data不可用。然后,通过and函数43(例如and门或诸如软件功能之类的其它技术),适配器创建器19然后可以针对适配器10提供功能变换,如框47处所指示的。并且,如果发现管理器15确定数据p-data和数据es-data是一致的,如框41处所指示的,则es数据变换可以由适配器创建器19创建,除非程序数据与stop框45处的交换标准数据简档不一致。
[0066]
根据各种实施例,通过分析程序数据,可以确定程序12中的程序数据是否可能是感兴趣的,即使没有任何数据含义可用也是如此。因此,根据实施例的未知程序(例如程序12),可以仅通过其数据来进行分析,以确定其是否是交换标准es所要求的感兴趣的数据。
[0067]
如框47处所指示的,适配器创建器19开发功能数据变换t,该功能数据变换t是交换标准数据结构/格式(es-dsf)和程序数据结构/格式(dsf)两者的函数。对于某些应用,数据结构可能是数据单元。例如,在交换标准数据含义es-dm是“温度”的情况下,es-dsf可以采用摄氏度作为交换标准数据的度量单位,并且p-dsf可以用华氏度表示。适配器创建器19然后可以采用常规的转换公式作为变换t的至少一部分,以用于在摄氏度与华氏度之间转换。数据变换通常可以是任何数学函数和/或逻辑运算。
[0068]
用于交换标准(es-dsf)的数据格式可以是二进制格式,而程序数据格式(p-dsf)可以用ascii的形式表示。适配器创建器19例如可以采用转换公式作为变换的一部分,以用于在二进制与ascii格式之间进行转换。
[0069]
如框49中所指示的,适配器创建器19还提供数据读取命令和数据写入命令,以用于与程序12进行通信。
[0070]
此后,如框52处所指示的,适配器10在20处接收来自适配器创建器19的es数据变换并且在22处接收来自适配器创建器19的读取和写入数据。
[0071]
现在参考图4,更详细地描述了适配器10。根据优选实施例,适配器10可以包括超对象的读取组53,例如超对象54和56。超对象的读取组53从耦合至程序12的双向链路11接收信息,并形成读取/写入数据22的一部分。读取组53将信息传送给超对象的程序数据组58,例如超对象61和超对象63。程序数据组58形成了es数据变换20的一部分,并且进而将变换后的数据传送到双向链路26和另一适配器,例如适配器27。因此,信息可以从程序12经由双向链路11和超对象组53和58传送至耦合至适配器27的双向链路26。
[0072]
在相反的方向上,诸如超对象68和超对象71之类的超对象的程序数据组66形成了es数据变换20的一部分,并且从适配器27传送来自双向链路26的信息。来自程序数据组66的信息可以被传送至超对象的写入组55,例如超对象57和超对象59,并且其形成读取/写入数据22的一部分。读取/写入数据22将信息传送至耦合至程序12的双向链路11。因此,信息可以从适配器27经由链路26和超对象组55和66传送至耦合至程序12的双向链路11。
[0073]
超对象组可以在服务器65的控制下执行,并且可以用根据例如api或程序的类似
信息生成的读取/写入命令规则来编程,该程序诸如是用于管理适配器10与程序12之间的通信的程序12。规则或算法可以以简单的表达方式包含复杂的函数公式或方程来实施规则,诸如结合变换t所描述的。该实施方式对于将诸如结构化查询语言(sql)等信息以及其它更复杂的信息作为规则来写入是相对直接的。超对象框架是众所周知的,并且因此,规则可以相对快速且容易地动态更改,以便在某些应用程序中根据需要进行动态更新。超对象不包含数据。例如,参见美国专利8,386,442,该美国专利通过引用以其全文结合于此。
[0074]
因此,程序的互操作性可以通过使用根据各种实施例的适配器来实现,即使程序可能不同并且其中的数据排列是先前未知的。此外,通过使用交换标准,可以通过简单地更新交换标准来实现动态更新。通过使用根据各种实施例的发现管理器和适配器创建器,适配器甚至可以被动态地创建和更新,而不需要昂贵且耗时的编程。各种实施例所采用的此类技术能够解决现代工业中的大数据标准和要求,并且有助于灵活性要求和缩放要求。
[0075]
现在考虑根据各种实施例的技术,该技术从程序数据p-data单独确定其是否可能包括交换标准数据es-data中指定的期望数据。根据某些实施例,发现管理器15可以识别某些数据简档。根据各种实施例的数据简档可以描述针对数据本身的程序数据p-data的固有特性,诸如例如数据值范围、数据分层结构、数据统计分布等。交换标准es的数据简档优选的是高质量的样本。
[0076]
来自交换标准es的高质量样本数据曲线可以与来自程序12的输入数据曲线进行比较。可以使用多种方法来确定两条数据曲线之间的一致性。例如,基于“双样本柯尔莫哥罗夫-斯米尔诺夫测试”算法的互相关方法可以用于计算两条数据曲线的一致性。
[0077]
在图5中,仅出于非限制性解释的目的,示出了可以从其底层数据导出的交换标准数据简档的示例。图5所示出的数据图40是形成数据简档的一维直方图。特别参考图3的框41,假设程序12是面向医疗保健的数据库程序,并且交换标准es被设计为访问关于已经经历血红蛋白测试的患者的所期望数据。图5的图表40的数据曲线示出了针对各种患者记录的经测试样本数量与血红蛋白值的关系,以确定数据简档的指纹。
[0078]
在图40的x轴上,示出了针对各种患者的血红蛋白测试结果的测试值。在y轴上,列出了对应于x轴上指定的每个值的血红蛋白样本的数量。测试样本的总数值为715,511。结果是独特的曲线40来示出数据的分布模式。然后,此模式是针对血红蛋白实验室测试结果的数据简档,并且可以用作交换标准数据简档。应当理解,根据各种实施例,可以使用许多不同类型和种类的数据简档。数据简档的示例可以包括但不限于心电图(ecg)、图像、直方图和许多其它示例。现在参考图6,根据图3的方法的步骤41的优选实施例,可以使用常规的卷积神经网络(cnn)42。cnn可以被训练来捕获数据曲线的不变表示(固有形状)。经过训练的cnn还可以用来计算两条数据曲线之间的一致性得分。在如图6所示出的直方图曲线40的当前示例中,首先训练cnn来捕获数据曲线40的固有形状,并且还基于作为交换标准的曲线40来计算两条曲线之间的期望一致性得分。然后,来自程序12的p-data以及交换标准es-data都被流式传输至cnn用于处理目的。然后,如所示出的,一致性确定的结果可以是“是”或“否”。
[0079]
鉴于前述附图和某些实施例的详细描述,对于本领域技术人员来说显而易见的是,所公开的实施例和其它实施例涉及用于实现不同程序中以及之间的程序互操作性的新颖技术,尽管其可能具有先前未知的数据。可以通过至少部分地了解程序是否包含所期望
的数据来创建适配器,以帮助实现所期望的互操作性。
[0080]
一种根据实施例的方法和系统实现通用程序到程序的互操作性。该方法和系统采用自动或基本自动的变换适配器,以使用给定的交换标准与程序进行双向通信。为了使该适配器采用该交换标准,发现管理器可以学习该程序的数据通信结构和/或格式,并且可以从该程序中学习数据含义信息。适配器创建器可以得出将该程序的数据通信结构和数据含义转换成该交换标准的变换。该适配器可以使用该变换来实现与类似地采用该给定交换标准的任何适配器和/或程序的双向通信,以实现互操作性。
[0081]
尽管已经参考上述示例描述了本发明,但是应当理解修改和变化涵盖在本文所公开的实施例的真实精神和范围内。受益于前面的描述和相关附图中呈现的教导,本发明所属领域的技术人员将想到许多修改和其它实施例。因此,应当理解,本发明不以任何方式限于本文所公开的具体实施例或其修改,并且修改和其它实施例旨在并且预期包括在所附权利要求的范围内。尽管本文采用了具体术语,但其仅用于一般性和描述性意义,而不是为了限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1