具有学习机制的糅合基础结构的制作方法

文档序号:6356537阅读:168来源:国知局
专利名称:具有学习机制的糅合基础结构的制作方法
技术领域
本发明涉及用于在糅合基础结构(mashup infrastructure)中的有效学习机制 (learning mechanism)的软件、计算机系统以及计算机实施的方法。
背景技术
某些应用能够支持糅合能力,允许用户将不同应用的组件组合到一页(page)或者一个工作空间上。例如,用户可以选择一个应用的特定组件并将该组件插入到第二个应用。组合后的组件可称作糅合组件(mashup component),因为这些组件能够在页或工作空间上被“糅合(mashed up) ”,或者被收集到定制的配置中。典型地,页具有用于定义“可糅合(mashable) ”应用或组件的可视次序(visual order)的布局(layout)。而且,可以通过连接这些应用的输入端口或输出端口在可糅合应用之间定义数据流。通过这样的方式,糅合应用的用户可以仅以用户需要或希望的组件定制页或工作空间。糅合组件是这样的应用它们可以与其它应用或程序组合,创建出新的业务或者通过附加特征增强现有应用。在一个典型的糅合环境中,可以将糅合组件的不同应用元素链接,这需要在数据或事件能够在糅合组件之间被适当地交换之前定义元素之间的上下文 (contextual)连接。但是,糅合组件能够来自于不同的源或者是使用不同技术来实现的。 在一些实例中,从不同技术开发得来的糅合组件需要不同的接口用于数据的输入或输出。 因此,以不同的接口技术定义糅合组件的元素之间的连接可能需要开发各种技术之间的桥接。与每个糅合组件关联的不同技术可能需要专用领域语言(specific domain language) 的接口,这给定义糅合组件之间的上下文连接带来了困难,这种上下文连接给糅合环境提供了添加的价值。而且,糅合组件的用户可能不具备定义或管理不同接口的糅合组件之间的连接的技术知识。

发明内容
本公开提供用于实现具有学习机制的糅合基础结构的技术。计算机程序产品被编码在有形存储介质上,其中,该产品包括使得一个或多个处理器执行操作的计算机可读指令。这些操作可以包括接收用于将应用的第一端口与不同端口连接的请求,以及识别与第一端口关联的经标记的参数。动态地确定用于至少部分地基于经标记的参数与第一端口连接的潜在端口集合。提出用于与第一端口连接的潜在端口的建议,该建议包括从潜在端口集合选择的潜在端口的至少一个子集。用于与第一端口连接的潜在端口集合也可以基于与第一端口关联的连接的历史。尽管一般被描述为具体实现在有形介质上的计算机实施的软件处理和转换相应的数据,但是这些方面的一些或全部可以是计算机实施的方法,或者进一步包括在用于执行这里描述的功能的相应系统中或者其它设备中。在附图及下面的说明中阐述了本公开的这些及其它方面以及实施例的细节。本公开的其它特征、目的和优点将从说明书、附图以及从权利要求中变得清楚。


图1示出了本公开的上下文中实现具有学习机制的糅合基础结构的各种特征的示例环境;图2是使用诸如图1中描述的系统那样的适当系统来收集用于识别糅合应用端口之间的潜在连接的数据的示例过程的流程图;图3是使用诸如图1中描述的系统那样的适当系统来识别能够针对特定端口建立的潜在目标端口或连接的示例过程的流程图;图4是诸如图1中描述的系统那样的适当系统中两个端口之间的连接的示例糅合模型;图5是诸如图1中描述的系统那样的适当系统中具有转换器元素的端口的实例的示例糅合模型;以及图6是诸如图1中描述的系统那样的适当系统中使用的糅合框架的示例实施方式的示意图。
具体实施例方式本公开一般描述了提供用于定义糅合组件之间的连接的自动学习机制的计算机系统、软件和计算机实施的方法。一般说来,糅合环境可以包括这样的环境其中,可以基于用户的定制和应用的配置,以灵活的方式结合其它应用来使用被称为糅合组件的应用、 模块或功能。糅合组件可以是网页、应用或者诸如模块、组件、业务或子例程之类的应用的部分,包含能够基于用户的偏好与其它应用或组件组合的数据或功能,诸如另一个糅合组件。而且,术语“糅合组件”、“糅合应用”、“可糅合应用”、或者“糅合实体”可以在合适时互换地使用而不脱离本公开的范围。因此,设计具有糅合功能的应用可以将应用内的特定数据或功能与应用的其它组件或者与一个或多个外部应用的特定组件组合以创建新的业务。 在一些糅合场景中,页或工作空间可以具有用于定义工作空间中的可糅合应用的可视配置的布局。而且,可糅合应用可以彼此交互,诸如通过在可糅合应用之间传递内容。具体来说,可糅合应用可以根据用户的定义通过连接应用的输入和输出端口的数据流与其它可糅合应用组合。在糅合环境中,以特定格式配置的可糅合应用可以以不同的组合来重新配置 (rearrange),导致糅合应用的元素之间的不同的数据流和连接。可糅合应用可以通过端口与其它应用链接,诸如允许数据在各种应用之间被共享的输入/输出端口。用户可以根据用户的偏好定制糅合组件的配置。在一些实例中,可糅合应用可以具有用于创建和配置与可糅合应用关联的端口之间的连接的不同的接口。可糅合应用可以与不同技术或者源相关联,并且可糅合应用的一些接口可能相互不兼容。尽管可糅合应用的不同组件可能潜在地共享连接,但是各种组件中的不匹配的数据格式使得可能难以创建数据连接。此外,用户可能不知道哪些端口可以连接以形成可糅合应用之间的上下文连接,或者如何创建与不同可糅合应用关联的端口之间的连接。因此,可以实施糅合模型和系统,从而自动地定义糅合应用端口之间的连接或者提供用于连接端口的自动建议。糅合应用可以包括输入和输出端口以及端口之间的数据连接。糅合应用的端口是用于将糅合应用与其它应用或组件的接口链接的输入和输出接口,并且每个端口可以与一种类型的数据关联。在某些实施方式中,学习系统或模型可以生成针对连接特定端口的建议并向用户提出该建议。具体来说,糅合应用的某些端口可以通过参数和标记来定义,并且基于这些参数和标记,可以生成或者提供一个或多个建议,提出两个端口之间的可能连接。 此外,学习系统可以针对特定可糅合应用,基于端口之间的现有连接或者已建立的连接的历史生成用于连接特定端口的建议。而且,糅合模型可用于定义糅合实体以及支持糅合场景设计的连接。诸如端口和连接的糅合元素可以表示为用于便利(facilitate)糅合应用相互连接的对象。糅合应用的某些端口可以包括定义端口属性的参数。在一些实施方式中,用户可以将标记应用于针对特定端口的参数,以进一步定义端口并提供附加的上下文供以后使用。本公开的学习系统可以建议在源组件或端口与目标组件或端口之间的可能连接。建议可以基于匹配端口参数、标记或者与端口关联的现有连接。也可以应用利用端口定义和连接的学习逻辑和算法以提高系统的建议能力,并找到更加有效的连接。而且,随着用于糅合应用端口的标记和参数随着时间流逝而得以利用更多信息来增强,学习系统的建议能力能够不断改善。例如,当特定端口与更多连接关联时,端口的连接历史扩展,从而产生建议能够基于其的较大的数据存储器(store of data)。可以使用各种算法来丰富端口的标记或者生成针对连接的建议。例如,当在两个端口之间创建连接时,每个端口的参数的标记可以被复制到其它端口的参数,从而在两个相连接的端口的每一个的参数中创建衍生标记 (derived tag)。在一些实施方式中,衍生标记可以在包含端口参数的现有库(r印ository) 之间传播以便进一步扩展可能的匹配。而且,对于两个连接的端口,来自一个端口的参数的名称可以作为标记添加到另一个端口中映射的参数,从而创建内部标记。利用基于两个端口之间的连接的新添加的标记,这两个端口具有更高的概率被包含在由学习系统针对附加连接所生成的建议中。这样的技术的一个潜在好处是,可以以有效方式便利糅合应用之间的连接。可能已经由不同实体使用不同技术和接口开发了糅合应用,从而防止许多用户能够由于与不同组件关联的异类(disparate)接口而创建或者定义糅合应用之间的连接。本公开的学习机制能够自动地创建糅合应用的端口之间的连接或者向用户提供形成那些连接的建议。而且,学习机制能够使用糅合模型,该模型能够抽象地定义糅合实体和连接,并且使用来自各种库以及其它上下文连接的糅合信息。由于用户定义的端口属性和参数的标记和排名 (ranking)能够被反馈给学习系统以供将来对糅合应用之间的连接提供建议,所以学习机制还能够随时间进行演进。换句话说,学习机制能够适于持续更新端口参数,以提供对可能连接的更广泛的选择。因此,通过学习机制生成的建议能够被不断地改进。转到所示出的例子,图1示出了具有糅合框架104和学习机制128的糅合基础结构的示例环境100。示出的环境100包括或者可通信地耦接服务器102以及一个或多个客户端135,它们中的至少一些通过网络112通信。环境100还支持这样的系统其能够自动连接不同糅合应用的端口或者生成针对连接不同端口的建议。通常,服务器102是存储一个或多个主机(hosted)应用122的任意服务器, 其中主机应用122的至少一部分经由发送到图1示出的环境100内部、并且可通信地耦接到环境100的用户或者客户端的请求和响应来运行。例如,服务器102可以是Java 2平台的、包括Java技术的遵从企业版本(J2EE)的应用服务器,Java技术诸如企业 JavaBeans (Enterprise JavaBeans,EJB)、J2EE 连接器架构(J2EE Connector Architecture, JCA)、Java 消息业务(JavaMessaging Service, JMS)、Java 命名禾口目录接 Π (Java Naming and Directory Interface, JNDI) I^lM Java ^( ^ (Java Database Connectivity, JDBC)之类。在一些实例中,服务器102可以存储多个不同的主机应用122, 而在其它实例中,服务器102可以是用来仅存储和运行单一主机应用122的专用服务器。在一些实例中,服务器102可以包括web服务器或者可通信地耦接web服务器,其中主机应用 122代表由系统的客户端135经由网络112访问和运行、以便执行经编程的任务或主机应用 122的操作的一个或多个基于web的应用。在较高级别,服务器102包括可操作用于接收、发送、处理、存储或者管理与环境 100关联的数据和信息的电子计算装置。图1中示出的服务器102能够负责从与环境100的客户端135关联的一个或多个客户端应用144接收应用请求,并通过处理相关联的主机应用122中的所述请求来响应所接收的请求,以及将来自主机应用122的合适响应发送回到发出请求的客户端应用144。可替换地,服务器102处的主机应用122能够本地(locally) 处理和响应来自访问服务器102的用户的本地请求。因此,除了来自图1中示出的外部客户端135的请求之外,与主机应用122关联的请求还可以是从内部用户、外部或者第三方客户、其它自动应用以及任何其它合适的实体、个体、系统或者计算机发送的。如本公开中使用的那样,术语“计算机”意图涵盖任何适合的处理设备。例如,尽管图1示出单一服务器102,但是环境100可以使用两个或更多服务器102以及除了服务器 (包括服务器池)之外的计算机来实施。实际上,服务器102可以是任何计算机或者处理设备,诸如,例如刀片服务器、通用个人计算机(PC)、Macintosh、工作站、基于UNIX的工作站或者任何其它适合的设备。换句话说,本公开预期除了通用计算机之外的计算机以及无传统操作系统的计算机。而且,示出的服务器102可以适于运行任何操作系统,包括Linux、 UNIX, Windows, Mac OS或者任何其它适合的操作系统。根据一个实施例,服务器102还可以包括邮件服务器或者可通信地耦接邮件服务器。在本实施方式中,并且如图1中所示,服务器102包括处理器118、接口 117、存储器120、一个或多个主机应用122以及糅合框架104。接口 117由服务器102使用,用于在连接到网络112(例如,客户端135以及可通信地耦接到网络112的其它系统)的客户端-服务器或者其它分布式环境中(包括环境100内部)与其它系统通信。通常,接口 117包括在适当组合的软件和/或硬件中编码的逻辑,并且可操作用于与网络112通信。更具体地说,接口 117可以包括支持与通信关联的一个或多个通信协议的软件,以便网络112或者接口的硬件在所示环境100内部或者之外可操作来通信物理信号。服务器102还可以包括用户界面,诸如图形用户界面(⑶I) 160a。⑶1160a包括可操作用于例如允许服务器102的用户出于任何适当目的与平台的至少一部分进行接口的图形用户界面,诸如创建、准备、请求或者分析数据,以及查看和访问与业务交易关联的源文件。通常,GUI 160a为特定用户提供对由系统提供或者在系统内部通信的业务数据的有效且用户友好的呈现。⑶I 160a可以包括多个可定制图框(frame)或者具有由用户操作的交互字段、下拉列表和按钮的视图。例如,GUI 160a可以提供允许用户标记可糅合应用的组件或者端口的参数的交互元素。⑶I 160a还可以显示可糅合应用的端口之间的可能连接的建议。更普遍地,⑶I 160a还可以提供允许用户访问和利用应用122的各种业务和功能的通用交互元素。GUI 160a是经常可配置的,支持表格和图形(条、线、饼形图、状态盘等等)的组合,并且能够建立实时入口(portal),其中由关键特征(例如地点或微地点(site or micro-site))描绘制表符(tab)。因此,⑶I 160a预期任何图形用户界面,诸如处理平台中的信息并且有效地将结果可视地呈现给用户的通用web浏览器、智能引擎和命令行接 Π (command line interface, CLI)白勺组合0通常,示例服务器102可以可通信地耦接便利环境100的各组件之间(即,服务器 102与客户端135之间)的无线或者有线通信的网络112,以及耦接任何其它本地或者远程设备,诸如可通信地耦接到网络112,但未在图1中示出的额外客户端、服务器或者其它设备。网络112在图1中被示出为单个网络,但是其可以是连续或者不连续的网络而不脱离本公开的范围,只要网络112的至少一部分可以便利发送设备与接收设备之间的通信。网络112可以是企业网络或者安全(secured)网络的全部或者一部分,而在其它实例中,网络 112的至少一部分可以表示到因特网的连接。在一些实例中,网络112的一部分可以是虚拟专用网络(VPN),诸如像客户端135与服务器102之间的连接。而且,网络112的全部或者一部分可以包括有线链路或者无线链路。示例无线链路可以包括802. lla/b/g/n、802.20、 WiMAXjn /或任何其它合适的无线链路。换句话说,网络112涵盖可操作用于便利所示出的环境100内部和外部的各种计算组件之间的通信的、任何内部或者外部网络、多个网络、 子网络或者它们的组合。例如,网络112可以通信网络协议(IP)分组、帧中继帧、异步传输模式(ATM)单元、声音、视频、数据和网络地址之间的其它适合信息。网络112还可以包括一个或多个局域网(LAN)、无线接入网络(RAN)、大城市区域网络(MAN)、广域网(WAN)、因特网的全部或者一部分、和/或位于一个或多个位置的任何其它通信系统或者多个系统。然而,网络112不是本公开的必需(required)组件。如图1中所示,服务器102包括处理器118。尽管图1中示出为单个处理器118, 但是可以根据特定需要、期望或者环境100的特定实施例使用两个或更多处理器。每个处理器118都可以是中央处理单元(CPU)、刀片(blade)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它适合组件。通常,处理器118执行指令和操作数据以执行服务器102 的操作,具体地说,多个主机应用122的一个或多个。具体地说,服务器的处理器118运行接收和响应来自客户端135以及它们的各个客户端应用144的请求所需的功能,以及执行主机应用122的其它操作所需的功能。不管具体的实施方式如何,“软件”可以包括有形介质上的、当运行时可操作用于至少执行这里描述的过程和操作的计算机可读指令、固件、布线的或经编程的硬件或者它们的任意组合。实际上,各个软件组件可以是完全或部分以任何合适的计算机语言写或描述,包括C、C++、JaVa、ViSual Basic、汇编语言、Perl、任何适合版本的4GL及其它。应当理解,尽管图1中示出的软件的部分被显示为通过各种对象、方法或者其它过程实现各种特征和功能的独立模块,但是软件视情况可以包括许多子模块、第三方业务、组件、库等等。反之,各种组件的特征和功能视情况可以合并成单个组件。在示出的环境100中,处理器118 在服务器102上运行一个或多个主机应用122。在较高级别,一个或多个主机应用122中的每一个都是可以根据本公开运行、改变、删除、生成或者以其它方式管理信息的任何应用、程序、模块、过程或者其它软件,特别是响应于并且有关于从所示出的客户端135以及它们的关联客户端应用144接收到的一个或多个请求。在某些情况下,仅一个主机应用122可以位于特定服务器102处。在其它情况下,多个相关的和/或不相关的主机应用122可以存储在单一服务器102中,或者位于多个其它服务器102上。在某些情况下,环境100可以实现合成主机应用(composite hosted application) 122。例如,部分合成应用可以实现为企业Java Beans (Enterprise Java Beans, EJB)或者设计时组件可以具有将运行时实现方式生成为不同平台的能力,诸如J2EE (Java 2平台,企业版本)、ABAP (高级商业应用计划)对象或者微软的.NET等等。 另外,主机应用122可以代表经由网络112(例如,通过因特网)由客户端135或者客户端应用144访问和运行的基于web的应用。而且,尽管示出为在服务器102内部,但是与特定主机应用122关联的一个或多个过程可以被远程存储、引用或者运行。例如,特定主机应用 122的一部分可以是与远程调用的应用关联的web业务,而主机应用122的另一部分可以是用于在远端客户端135上处理而捆绑的(bundled)接口对象或者代理。而且,任一或者全部主机应用122可以是另一软件模块或者企业应用(未示出)的子类或子模块,而不脱离本公开的范围。更进一步,主机应用122的部分可以由直接在服务器102上工作的用户以及在客户端135远程工作的用户运行。如图所示,处理器118还可以运行用于管理糅合应用的配置的糅合框架104。糅合框架104是允许用户定义糅合场景的接口、模块、业务和元数据定义的集合,该糅合场景可以在标准的入口页中运行。糅合框架104提供将应用定义为糅合实体、或者能够发送或者接收糅合事件的应用的能力。具体来说,糅合应用可以实现在糅合页上,该糅合页是糅合应用在其中彼此上下文连接的入口页。用户可以与一个糅合应用交互,该糅合应用可以触发在该糅合页上连接的全部糅合应用之间的上下文数据的传播。糅合框架104可以在糅合页的范围内定义糅合实体之间的连接的参数。具体地说,糅合框架104可以将一个糅合应用定义为源应用而将另一糅合应用定义为目标应用,以及定义源和目标糅合应用之间的连接,包括将源应用的输出与目标应用的输入进行映射的参数。在运行时,糅合框架104可以被配置为运行源和目标糅合应用之间的连接,从而响应于用户交互来分派(dispatch)源和目标应用之间的糅合事件和通信。换句话说,糅合框架104可以提供用于创建、管理、运行糅合应用和糅合应用之间的接口的环境。糅合框架104可以与主机应用122分离,而在其它实例中,糅合框架104可以嵌入特定的一个或多个主机应用内部或其一部分。在一些实例中,主机应用122可以可通信地耦接到糅合框架104,这允许主机应用122能够访问和利用由糅合框架104提供的功能。下面结合图6详细描述用于糅合框架104的环境的一个例子。处理器118还能够运行由糅合框架104提供或与糅合框架104关联的糅合接口学习机制软件128。通常,糅合接口学习机制软件1 可以是根据本公开运行、改变、删除、 生成或者以其它方式管理信息的任何应用、程序、功能、模块、过程、运行时引擎或者其它软件,特别是为了实现用于便利糅合应用的端口之间的数据连接的学习机制128,而不管在糅合应用当中接口的差别。通过分析糅合应用端口之间的先前创建的连接,学习机制1 可以识别可能具有在不同糅合应用之间的较大成功接口概率的潜在连接。例如,由糅合接口学习机制1 提供的功能可以包括提供用于开发商业应用的web表现的UI支持。通常,服务器102还包括用于存储数据和程序指令的存储器120。存储器120可以包括任何存储器或者数据库模块,并且可以采取易失性或者非易失性存储器的形式,包括但不局限于磁介质、光介质、随机存取存储器(RAM)、只读存储器(ROM)、可移动介质或者任何其它适合的本地或者远程存储组件。存储器120可以存储包括类、框架、应用、备份资料、 业务对象、任务、网页、网页模板、数据库表、存储业务和/或动态信息的库在内的各种对象或者数据,以及包括与服务器102及其一个或多个主机应用122的目的关联的任何参数、变量、算法、指令、规则、约束或者对其的引用在内的任何其它合适的信息。而且,存储器120可以将与糅合应用的输入和输出端口关联的数据存储在端口库 126中。与端口关联的数据可以是用户定义或者自动生成的元数据、参数、标记或者描述用于本公开的糅合接口的各种糅合应用的接口的其它数据。存储器120还可以将与糅合应用接口之间的各种连接关联的数据存储在连接库124中,无论是潜在连接或者先前已建立的连接。连接库124中的数据可以包括与糅合应用端口之间建立的连接的历史关联的数据、 先前已建立的连接的优先级(或者,在某些情况下,普遍性)的排名、以及与可以由学习机制1 使用或者用于识别潜在连接的糅合应用的组件之间的连接关联的其它相关数据。存储在端口库1 以及连接库IM中的数据可以用于自动创建糅合应用组件之间的连接或者向用户推荐可能的连接。更进一步,存储器120可以包括任何其它合适的数据,诸如VPN应用、固件日志和策略、HTML文件、数据类或者对象接口、未图示的软件应用或者子系统、防火墙策略、安全性或者访问日志、打印或者其它报告文件及其它。图1示出的环境还包括一个或多个客户端135。每个客户端135都可以是可操作用于使用有线线路或者无线连接至少连接到服务器102或者至少与服务器102通信和/或经由网络112连接或通信的任何计算装置。而且,如客户端13 所示,每个客户端135包括处理器146、接口 142、图形用户界面(⑶I) 160b、客户端应用144和存储器150。通常,每个客户端135都包括可操作用于接收、发送、处理和存储与图1的环境100关联的任何合适数据的电子计算机装置。应当理解,可以存在任意数量的与环境100关联的或者在环境100 外部的客户端135。例如,尽管示出的环境100包括三个客户端135 (135a、135b和135c),但是环境100的可替换实施方式可以包括可通信地耦接到服务器102的单个客户端设备,或者任何其它适合于环境100的目的的数量。另外,还可以存在所示出的环境100部分的外部的一个或多个附加客户端135,它们能够经由网络112与环境100交互。再有,术语“客户端”和“用户”可以在合适时可互换地使用,而不脱离本公开的范围。而且,尽管每个客户端 135以被单一用户使用来描述,但是本公开预期许多用户可以使用一台计算机,或者一个用户可以使用多台计算机。如本公开所使用,客户端135意图涵盖个人计算机、触屏式终端、工作站、网络计算机、kiosk、无线数据端口、智能电话、个人数据助理(PDA)、这些或者其它设备内的一个或多个处理器、或者任何其它适合的处理设备。例如,每个客户端135都可以包括计算机,该计算机包括输入设备,诸如小键盘、鼠标或者能够接受用户信息的其它模块;输出模块, 其传达与服务器102(和主机应用12 或者客户端135自己的操作关联的信息,包括数字数据、可视信息、客户端应用144或者GUI 160b。输入装置和输出装置两者都可以包括固定的或者可移动的存储介质,诸如磁存储介质、CD-ROM或者其它适合的介质,用于通过显示器即⑶I 160b,从客户端135的用户接收输入以及提供输出给客户端135的用户。尽管图1被描述为包含多个元素或者与多个元素关联,但是并非图1的环境100内示出的全部元素都会在本公开的每个替换实施方式中用到。例如,尽管图1描绘了在能够由客户计算机135访问的、在服务器102上实现主机应用的服务器-客户端环境,但是在一些实施方式中,服务器102运行这样的本地应用其特征在于应用UI可以被直接利用 GUI 160a来标记糅合应用部分的参数或者查看对糅合应用之间可能连接的建议的用户访问。另外,这里描述的一个或多个元素可以位于环境100之外,而在其它实例中,某些元素可以包括在一个或多个另外描述的元素中以及所示实施方式中未描述的其它元素内,或者作为这些元素的一部分。而且,图1中示出的某些因素可以与其它组件相组合,以及用于除了这里所描述的那些目的之外的可替换目的或者附加目的。图2是示出收集用于识别糅合应用端口之间的潜在连接的数据的过程200的流程图。在一些实施方式中,可以基于针对不同糅合应用端口或者连接收集的数据的历史自动地创建潜在连接或者向用户建议潜在连接。换句话说,潜在连接可以是通过调控 (leveraging)用户的工作来识别的,所述用户具有先前在糅合组件之间建立的连接或者具有针对特定糅合应用端口识别的有用的元数据。也可以利用特定用户自己的历史识别潜在连接。首先,在202接收到用于生成两个端口之间的连接的请求。通常,端口可以是糅合应用的接口,其包括定义能够与其它应用的组件通信的糅合应用的特定组件的参数和元数据。因此,糅合应用使用的数据对象或者内容能够被传递给其它应用。在一些实例中,糅合应用的特定端口可以包括源或输出端口,从所述端口能够将数据发送到不同糅合应用的目标或输入端口的接口。在特定的实例中,可以在定义两个端口之间的接口(或者交互)的源端口和目标端口之间建立链接或者连接。连接被定义为在一个或多个实例中数据可以有效地从一个糅合应用传递到另一糅合应用。具体来说,连接定义了上下文数据将被如何从源组件传递到目标组件。与在两个端口之间创建的连接关联的数据可以存储在连接库中, 诸如图1的库124。在202根据用户请求将被连接的两个端口可以与具有类似或者异类接口的糅合应用相关联。如果两个端口具有异类接口并且具有不同的结构,但是具有合适的技术性能的用户可以在204建立两个端口之间的连接,例如,通过识别异类接口支持的格式中的差别并且手动地对连接所需要的逻辑进行编程。在一些实施方式中,可以自动地建立端口之间的连接,诸如通过图1中示出的糅合框架104及其关联的糅合接口学习机制128。然后, 在206,与已建立的连接关联的元数据(不论是手动创建还是自动创建的)可以存储在连接库124中。元数据可以包括,例如,端口或者通过该连接链接的关联糅合应用的名称、该连接的特定实例的识别编号(identification number)、将在连接之间传送的内容的类型的描述、或者与端口之间的连接关联的其它数据。元数据可以自动地或者响应于来自用户的输入被存储在连接库124中。在208,用户还可以识别两个端口中的一个或二者的附加特征,并且将特征作为标记或者参数输入到端口参数数据对象或者库中(诸如端口库126)。用于每个端口的元数据可以包括端口或者糅合应用支持的数据的类型、用于在端口建立的特定连接的参数、端口的接口的结构、或者任何其它可以用于识别端口的功能的适合数据。端口和连接标记提供描述由用户创建的连接的信息,并且可以随后在210用作附加数据,以基于连接和端口库中的数据识别针对特定端口的不同的潜在连接。下面将结合图3详细描述用于识别针对端口的潜在连接的过程的一个例子。而且,可以针对系统中与糅合应用端口有关的每个交易重复过程200,其扩展了数据连接的历史以及与端口关联的数据的收集。因此,可以调控从先前自动地或者手动地建立的连接收集的数据,以生成针对糅合应用端口之间新的连接的建议。在一些实例中,在与连接关联的数据被存储在端口库中供将来访问之后,过程200可以在208结束。图3是描绘识别能够针对特定端口建立的潜在目标端口或者连接的过程300的流程图。首先,在302接收用于识别针对源端口的潜在目标端口的请求。在一些实施方式中,可替换地,可以接收用于识别针对特定目标端口的潜在源端口的请求。可以由用户的选择手动地接收请求,或者响应于各种事件自动地接收请求,这些事件诸如像将糅合应用的新的端口添加到当前糅合环境中、贯穿糅合框架104传播糅合事件、或者将标记的参数添加到特定端口。接下来,过程300确定是否能够识别与源端口关联的元数据。例如,可以在 304发现与源端口关联的相关标记。与源端口关联的标记可以是在配置与源端口或者与相关端口关联的先前已建立的连接时由用户识别的参数,诸如同一糅合应用的不同端口。标记也可以是从其它相关端口自动复制的参数或者响应于先前在该端口创建的连接而存储在库中的属性。在一些实例中,图1的糅合框架104可以控制或者指导(direct)当在组件之间进行一个或多个连接时端口元数据的自动复制。糅合应用端口可以包括带有标记的参数,该标记基于各种算法随时间被丰富、更新或者扩展。例如,衍生标记可以通过当在两个端口之间创建连接时将一个端口的参数的标记自动复制到另一端口的参数来创建。而且, 当在两个端口之间创建连接时,可以根据创建的连接的上下文,将来自一个端口的特定参数的名称作为标记添加到其它端口的相应的映射的参数。如果没有找到与该源端口关联的相关标记,那么过程在308确定是否存在与潜在目标端口关联的相关标记。如果存在与该源端口关联的相关标记,则在306基于与该源端口关联的相关标记识别将与该源端口连接的可能目标端口的集合。可以基于各种准则识别可能目标端口。例如,与该源端口共享特定参数或标记或者、共享先前连接的历史的目标端口可以被识别为潜在目标端口。也可以在308识别与潜在目标端口关联的相关标记。例如, 可以执行对具有与源端口的一定匹配标记的潜在目标端口的搜索。如果找到与潜在目标端口关联的相关标记,则也可以在310基于与潜在目标端口关联的标记扩展潜在目标端口的集合。如果不存在与潜在目标端口关联的相关标记,则过程300在312确定是否存在与源端口或者目标端口关联的先前连接。可以基于可能提高源端口与目标端口之间的成功连接的机会的因素对经识别的目标端口进行优先级排序(prioritizing)。对潜在目标端口进行优先级排序的一个可能的因素可以是源端口与目标端口之间建立的先前连接的数量。而且,可以利用与源端口或者潜在目标端口关联的先前连接相关的元数据来确定潜在目标端口的选择,以便向用户提供建议。首先,过程300在312确定是否存在与源端口或者目标端口关联的先前连接。如果存在先前已建立的连接,则确定一些连接是否可能比其他连接与用于当前源端口的目标端口的识别更加相关。换句话说,源端口和目标端口之间先前创建的连接与该源端口与其它目标端口之间先前创建的连接相比,可能与潜在目标端口的当前确定更加相关或者更少相关。例如,可能先前已经建立了两个端口之间的连接, 但是那些端口之间的连接的添加的值在特定糅合环境中可能已经是最小的(minimal)。因此,当从先前连接中确定用于两个端口中任一个的潜在连接端口时,该特定连接可能不那么有用。更进一步,根据正在考虑的端口的数据类型和内容,在一个场景中被认为有用的特定连接在不同的场景中可能不能提供用于识别潜在目标端口的相关信息。可以使用各种算法确定特定连接的效用(utility)。例如,糅合框架104可以包括将权重公式应用于与每个连接关联的各种因素的建议引擎。用于确定潜在连接的效用的一些因素可以包括某一连接的先前实例的频率、特定组合的先前连接是否相对刚刚出现、在特定上下文中用户对某一类型的连接的需要、特定数据类型的可用性、一种数据格式相对另一种的一般偏好、或者共享或相关标记和参数的数量。这些因素可以被分配以不同的权重,以反映在不同场景中连接的特定属性的效用。而且,先前连接的列表可以存储在连接库(例如,图1的连接库126)中,该连接库提供依据连接对源端口的相关度的排名(或者能够用来导出排名的元数据)。可替换地,过程300可以基于准则集合在314确定先前连接的排名。具体来说,本公开的学习机制1 可以基于各种可能的准则来识别用于源端口的潜在连接集合。例如,可以基于先前连接使用的频率或者先前连接的次数来对先前连接进行排名。排名可以反映特定端口之间的连接的普遍性,其可以提供进行特定连接的有用度或者容易度的指示。在特定实施方式中,识别相关连接可以是替代对连接进行排名(ranking connections)或者除了对连接进行排名之外的、对与端口关联的参数标记进行排名的产物(product)。例如,自动创建的标记可以给予比手动创建的标记更低的排名。该排名方法可以反映理解特定连接的动态和/或语法以及手动输入与端口或者连接关联的元数据的用户的重要性和影响力。连接或者标记的排名也可以基于通过下行数据流用户(诸如那些先前接收到过类似建议的用户)提供的用户反馈,以及在他们的相关上下文中他们对建议的相关度或者合适度的排名。更进一步,随着越来越多的用户创建糅合应用端口之间的连接,可以动态地更新连接或者标记对于优先级的排名。基于连接或者标记的排名,可以在316识别先前连接的优先级。在318,可以从经识别的潜在目标端口和连接的集合中选择潜在目标端口或者潜在连接的子集,以便呈现给用户。在一些实施方式中,潜在目标端口或者潜在连接的子集包括针对特定源端口的、最可能产生针对连接的兼容且有用的目标端口的匹配端口或连接。匹配端口和连接的选择可以基于诸如以下因素的组合与潜在端口和连接关联的元数据(标记)、潜在端口之间的先前连接的历史、先前连接的排名、或者定义被断定为对特定糅合应用的用户有益的品质特性(qualities)的其它度量。由于随着时间越来越多的连接被创建,因此可以通过学习机制1 不断地更新元数据。除了上面描述的经标记的参数,与特定端口关联的元数据可以包括其它元素。例如,来源于不同源的糅合应用可以由具有不匹配格式的接口参数的端口组成。如果糅合应用输出接收(receiving)应用不认识或者与接收应用不兼容的格式的数据,则不能创建应用之间的直接连接。在特定实施方式中,桥或函数可以用来在多种格式之间变换数据,诸如从与输出端口关联的格式变换为与输入端口关联的格式,以便创建在具有不同格式的两个端口之间的有效(valid)连接。用于将数据从一种格式变换到另一格式的桥的功能可以包括在两个特定端口之间的连接的参数或定义中。换句话说,端口之间的连接的定义可以包括用于对从源端口流向目标端口的数据进行变换的基础技术。图4描绘了需要配置端口的参数以使得它们能够相互通信的两个端口之间的连接的模型。如图4中所见,输出端口 410可以是与糅合应用关联的源端口,并且被配置为形成具有目标糅合应用的输入端口 420的连接。输出端口 410可以包括一个或多个接口参数,诸如参数412和414。接口参数412和414可以映射到输入端口 420的相应的接口参数 422和424。也就是说,数据流可以被定义为通过图4中描绘的接口参数,将由与输出端口 410关联的糅合应用使用的内容传送到与输入端口 420关联的糅合应用。然而,在一些实例中,相互映射的接口参数,诸如参数412和422,可以包含不匹配或不兼容的格式,这可能使得将数据从源传送到目标变得复杂。例如,通过糅合应用的两个端口之间的连接,可以将数据报告从一个糅合应用发送到另一糅合应用。尽管源糅合应用和目标糅合应用两者都可以被配置为操控数据报告,但是源糅合应用可以生成具有使用六位数字的识别编号的数据报告,而目标糅合应用可以被配置为处理具有使用八位数字的识别编号的数据报告。目标应用也许能通过目标应用的接口参数接收具有六位数字的识别编号,但是目标应用可能需要接收到的识别编号中的附加的两位数字,以便根据目标应用业务逻辑所需要的八位数字的配置来处理该编号。因此,可能需要变换从源应用发送到目标应用的识别编号以使得附加数字被添加到该编号,以符合目标应用参数的要求。如图4中的模型中所示,转换器元素(transformer element) 430可以定义为用于在输出接口参数412与输入接口参数422之间的数据流的插入(intervening)组件。转换器元素430是可以应用于端口参数、以使流出或流入(outgoing or incoming)数据符合所连接的端口要求的特定格式的数据操作实体。在示出的例子中,在输入转换器接口参数 430a处接收来自输出端口 410的数据,并且在数据从输出转换器接口参数430b发送到接口参数422之后,数据被变换为将由输入端口 420接收的合适格式。转换器元素430可以由用户添加到连接,诸如使用诸如经由拖放(drag-and-drop)或上下文菜单机制之类的任何合适方法在糅合模型环境中在设计时添加。也可以由糅合框架的业务逻辑自动包括转换器元素430。在一些实施方式中,糅合框架可以提供可能连接的建议给用户,并且建议可以包括用于转换器元素430的逻辑,以适当地完成连接。转换器元素430可以不包括在一些不需要变换数据格式的连接中,诸如接口参数414和4M之间的连接。转换器元素430还可以被定义为糅合应用端口的参数。从外部示图中,如图5 中描绘的那样,将转换器元素430包括在端口的参数中可以看作端口的新实例,并且用户可以直接访问具有包括转换器的端口的糅合组件,而不需要对将数据变换为合适格式的附加逻辑进行编程。在所示例子中,转换结构510a可以表示包括与特定端口 510关联的元素的模块。转换结构510a中包括的是端口 512和514以及转换器元素530的基本参数(base parameter) 0转换器元素530可以被配置为在53 中接收特定格式的数据,并且将该数据变换为与基本参数512兼容的格式。转换器元素530可以包括转换器外参数 (out-parameter) 532a,其指导用于将数据变换为基本参数512的数据流。可以通过与端口关联的所映射的参数,将与不同应用和接口关联的外部端口 520连接到基本端口 510。在一些实施方式中,端口 520的接口参数522可以直接连接到转换结构510a中表示的端口实例,因为与转换器元素530关联的软件逻辑被表示为基本端口 510的部分而非单独的组件。 端口实例被展示为传统端口或复制的(duplicate)端口,并且接口参数522可以映射到转换器内参数53 作为端口 510和520之间的连接。糅合框架104可以向用户提供用于管理糅合应用端口的展示的设计时环境,并且向用糅合应用工作的用户提出合适的接口。可以使用各种实施方式实现糅合框架104的功能,并且在图6中描绘了由糅合框架104提供的糅合环境的例子。通常,如图6中示出的糅合框架104是一组可扩展的业务,其提供定义和保持应用的组件之间的连接和端口的能力,并且发现端口之间以及超出(over)现有连接的可能匹配连接。糅合框架104还可以包括用于处理所定义的连接以及将输出糅合事件传送到合适的糅合输入事件的运行时处理器。这里,运行时处理器可以是运行时业务,其管理传播由诸如糅合应用的组件这样的源发送的事件。运行时处理器可以定位(locate)将连接到源应用组件的目标应用组件,并且在糅合连接的运行期间建立合适的目标事件。转到所示的例子,图6示出用于糅合框架104的示例环境600。所示的环境600包括一个或多个客户端635或可通信地耦接一个或多个客户端635。客户端635可以通过像主机业务那样的服务器远程地访问图6中描绘的糅合框架104的组件,或者在服务器本地访问。具体地说,糅合框架104可以表示为到客户端63 的特定用户接口元素。呈现给用户的用户接口的设计时元素可以包括提供端口存储器640a和连接存储器640b的糅合存储器640。具体地说,糅合存储器640可以是当作中央接入点的接口,该中央接入点用于展示糅合框架104的设计时业务。糅合存储器640、端口存储器640a以及连接存储器640b是提供给客户端或客户端可访问的模块,并且可以被实现为用于展示糅合框架104下层的系统的逻辑的应用编程接口(API)。具体来说,糅合存储器640组件经由用户接口向用户提供可访问的业务,以使用户能够得到关于可用糅合应用端口和连接的信息,并且一般地访问由糅合框架104提供的逻辑和功能。例如,糅合存储器API可以允许用户检索针对特定端口的可能连接的列表,识别或搜索展示的端口,修改端口,将数据写入到端口的参数,得到与特定端口或连接关联的信息,或利用由用于管理糅合环境的糅合框架104提供的其它工具或业务。客户端635还可以通过糅合框架104访问或一般地使用应用622,诸如糅合应用。 应用可以是运行在后端服务器上或存储糅合框架104的同一个服务器上的主机应用。应用 622可以由不同应用类型62 和622b组成,并且客户端635可以使用由糅合框架104提供的逻辑,使用糅合框架104创建或修改不同类型的应用之间的连接,例如,诸如经由如上结合图4所述的转换器元素430。糅合框架104还能够将用于呈现各种应用622以及它们的组件的机制提供给客户端635,作为用于识别和创建糅合应用之间的连接的可访问端口。具体来说,端口提供器 610识别与应用622关联的组件并将其展示给客户端635或系统的其它组件。而且,当将库中的新内容(诸如附加的更新参数或与特定端口关联的连接)引入糅合框架104中时, 端口提供器610能够将该新内容展示为一组可用于客户端635的端口。类似地,连接提供器612展示与在糅合框架104内创建的连接关联的任何信息并使其可访问。端口提供器 610和连接提供器612能够被实现为可以由糅合框架104中的内容库实现的服务供应商接口(SPI),以便将端口或连接展示给糅合框架104的其它元素,包括客户端635。由于通过糅合框架104修改了应用622的端口和连接,因此这些改变可以被保存在端口库660或连接库662中,它们是被配置为展示和保持在糅合框架104内的端口和连接的持续性的业务。而且,端口提供器610和连接提供器612模块可以分别耦接端口提供器管理器650 和连接提供器管理器652。端口和连接被展示给糅合存储器640以便由客户端635时,端口提供器管理器650和连接提供器管理器652可以是独立于特定系统或应用并且管理端口提供器610和连接提供器612的糅合框架104的组件。更进一步,糅合框架104可以包括端
15口提供器654的内部实施方式,其可以是负责管理端口的本地表现的、可读且可写的端口提供器。因此,内部端口提供器肪4可以管理由糅合组件通过端口提供器650声明的所有参数以外的、与特定端口关联的附加配置数据。例如,内部端口提供器肪4可以跟踪与端口关联的附加元数据,诸如端口的新实例、端口的实例中使用的转换器元素、在端口的参数中附加标记的创建、或者通过端口提供器650从端口的初始声明单独定义的其它数据。糅合框架104还可以提供发现或建议引擎670,其包含本公开中描述的学习机制的逻辑。通常,发现引擎670应用用于确定合适端口和连接的各种算法,以便向客户端635 提建议。算法可以是基于由用户创建的或者通过糅合框架104的学习机制自动创建的特定端口之间的连接的历史。也可以基于与端口或连接关联的经标记的参数,或者基于与该糅合组件关联的其它元数据,来确定所建议的端口和连接。最终,可以根据需要将各种组件, 诸如糅合运行时控制器680、糅合运行时编辑环境控制器682或运行时连接库684,结合到糅合环境中,用于在运行时运行使用糅合框架104创建的端口之间的糅合应用和连接的配置。通常,运行时组件是专门的应用,并且可以由组成处理糅合连接、触发与连接关联的数据流、以及提供对运行时用户接口的渲染的Java脚本或客户端逻辑组成。前面的图以及相应描述示出了示例过程和计算机可实施的技术。但是环境 100(或其软件或其它组件)预期使用、实施或运行用于执行这些和其它任务的任何适合技术。应当理解,这些过程仅用于说明的目的,并且可以在任何合适时间执行所描述的或类似技术,包括同时地、分离地或者组合地执行。此外,这些过程中的许多步骤可以同时和/或以不同于所示的次序发生。而且,环境100可以使用具有附加步骤、更少步骤和/或不同步骤的过程,只要这些方法仍然是合适的。换句话说,尽管已经依据特定实施例和通常关联的方法描述了本公开,但是这些实施例和方法的替换和置换对本领域技术人员来说应当是清楚的。因此,示范性实施例的上述描述并非定义或限制本公开。在不脱离本公开的精神和范围的条件下,也可以进行其它改变、代换和替换。
权利要求
1.一种用于导致一个或多个处理器生成对连接应用接口的建议的计算机实施的方法, 该方法包括由一个或多个处理器执行的以下步骤接收用于将第一端口与不同端口连接的请求;识别与第一端口关联的经标记的参数;至少部分地基于经标记的参数,动态地确定用于与第一端口连接的潜在端口集合;以及提出用于与第一端口连接的潜在端口的建议,该建议包括从潜在端口集合选择的至少一个潜在端口子集。
2.如权利要求1所述的方法,其中,至少部分地基于与第一端口关联的相关连接的历史或潜在端口子集中的潜在端口,来选择所述潜在端口子集。
3.如权利要求1所述的方法,其中,至少部分地基于至少包括第一端口与所述潜在端口集合中的每一个端口之间的兼容度的准则,来选择所述潜在端口子集。
4.如权利要求3所述的方法,其中,所述兼容度至少基于经第一端口和潜在端口处理的数据的数据类型或者经第一端口和潜在端口处理的数据的格式中的一个。
5.如权利要求1所述的方法,其中,第一端口被配置为处理特定格式的数据。
6.如权利要求5所述的方法,其中,第一端口包括转换器元素,其被配置为将与所述特定格式异类的格式的数据变换为所述特定格式。
7.如权利要求5所述的方法,其中,第一端口包括转换器元素,其被配置为将所述特定格式的数据变换为异类格式的数据。
8.如权利要求1所述的方法,其中,所述潜在端口的建议包括对将结合潜在端口使用的转换器元素的建议。
9.如权利要求1所述的方法,还包括自动形成在第一端口与潜在端口子集中的一个端口之间的连接。
10.一种在有形的存储介质上编码的计算机程序产品,该产品包括用于导致一个或多个处理器执行包括以下步骤的操作的计算机可读指令接收用于将第一端口与不同端口连接的请求;识别与第一端口关联的连接的历史;至少部分地基于连接的历史,动态地确定用于与第一端口连接的潜在端口集合;以及提出用于与第一端口连接的潜在端口的建议,该建议包括从潜在端口集合选择的至少一个潜在端口子集。
11.如权利要求10所述的计算机程序产品,其中,至少部分地基于与第一端口关联的经标记的参数或潜在端口子集中的潜在端口,来选择所述潜在端口子集。
12.如权利要求10所述的计算机程序产品,其中,至少部分地基于至少包括第一端口与潜在端口集合中的每一个端口之间的兼容度的准则,来选择所述潜在端口子集。
13.如权利要求12所述的计算机程序产品,其中,所述兼容度至少基于经第一端口与潜在端口处理的数据的数据类型或者经第一端口与潜在端口处理的数据的格式中的一个。
14.如权利要求10所述的计算机程序产品,其中,第一端口被配置为处理特定格式的数据。
15.如权利要求14所述的计算机程序产品,其中,第一端口包括转换器元素,其被配置为将与所述特定格式异类的格式的数据变换为所述特定格式。
16.如权利要求14所述的计算机程序产品,其中,第一端口包括转换器元素,其被配置为将所述特定格式的数据变换为异类格式的数据。
17.如权利要求10所述的计算机程序产品,其中,所述潜在端口的建议包括对将结合潜在端口使用的转换器元素的建议。
18.如权利要求10所述的计算机程序产品,还包括自动形成在第一端口与潜在端口子集中的一个端口之间的连接。
19.一种系统,包括存储器,可操作用于存储与糅合接口和学习机制关联的信息;以及一个或多个处理器,可操作用于接收用于将第一端口与不同端口连接的请求;识别与第一端口关联的经标记的参数;至少部分地基于经标记的参数,动态地确定用于与第一端口连接的潜在端口集合;以及提出用于与第一端口连接的潜在端口的建议,该建议包括从潜在端口集合选择的至少一个潜在端口子集。
20.一种计算机系统,包括用于接收用于将第一端口与不同端口连接的请求的装置用于识别与第一端口关联的经标记的参数的装置;用于至少部分地基于经标记的参数动态地确定用于与第一端口连接的潜在端口集合的装置;以及用于提出用于与第一端口连接的潜在端口的建议的装置,该建议包括从潜在端口集合选择的至少一个潜在端口子集。
21.如权利要求20所述的计算机系统,其中,至少部分地基于与第一端口关联的相关连接的历史或潜在端口子集中的潜在端口,来选择所述潜在端口子集。
22.如权利要求20所述的计算机系统,其中,至少部分地基于至少包括第一端口与所述潜在端口集合中的每一个端口之间的兼容度的准则,来选择所述潜在端口子集。
23.如权利要求22所述的计算机系统,其中,所述兼容度至少基于经第一端口和潜在端口处理的数据的数据类型或者经第一端口和潜在端口处理的数据的格式中的一个。
24.如权利要求1所述的计算机系统,其中,第一端口被配置为处理特定格式的数据。
25.如权利要求M所述的计算机系统,其中,第一端口包括转换器元素,其被配置为将与所述特定格式异类的格式的数据变换为所述特定格式。
26.如权利要求M所述的计算机系统,其中,第一端口包括转换器元素,其被配置为将所述特定格式的数据变换为异类格式的数据。
27.如权利要求1所述的计算机系统,其中,所述潜在端口的建议包括对将结合潜在端口使用的转换器元素的建议。
28.如权利要求1所述的计算机系统,还包括用于自动形成在第一端口与潜在端口子集中的一个端口之间的连接的装置。
全文摘要
本公开涉及用于提供具有学习机制的糅合基础结构的系统、软件和计算机实施的方法。一个处理过程包括操作接收用于将应用的第一端口与不同端口连接的请求,并且识别与第一端口关联的经标记的参数。至少部分地基于经标记的参数,动态地确定用于与第一端口连接的潜在端口集合。提出用于与第一端口连接的潜在端口的建议,该建议包括从潜在端口集合选择的至少一个潜在端口子集。
文档编号G06F9/44GK102253827SQ20111006915
公开日2011年11月23日 申请日期2011年3月22日 优先权日2010年3月22日
发明者兰·格罗斯, 奥利·布莱尔, 拉姆·阿朗, 维塔利·韦纳, 阿里尔·塔玛姆 申请人:Sap门户以色列有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1