CN108141467A - 应用自动路由框架 - Google Patents

应用自动路由框架 Download PDF

Info

Publication number
CN108141467A
CN108141467A CN201680055088.4A CN201680055088A CN108141467A CN 108141467 A CN108141467 A CN 108141467A CN 201680055088 A CN201680055088 A CN 201680055088A CN 108141467 A CN108141467 A CN 108141467A
Authority
CN
China
Prior art keywords
data format
data
application
computational entity
item
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.)
Withdrawn
Application number
CN201680055088.4A
Other languages
English (en)
Inventor
张明絜
施勝耀
吴毓珊
黄玉礼
李金男
蔡宓真
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN108141467A publication Critical patent/CN108141467A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在本文中所描述的技术提供了用于将数据项转换成新的数据格式的应用自动路由。在本文中所描述的技术包括确定数据项的当前数据格式和数据项的期望的数据格式。额外地,在本文中所描述的技术还包括至少部分地基于与多个应用相关联的应用信息数据来确定所述多个应用中的一个或多个应用,所述一个或多个应用至少部分地基于连续执行所述一个或多个应用而将数据项从当前数据格式转换至期望的数据格式。此外,在本文中所描述的技术包括:向一个或多个应用中的应用发送数据项以及用于将所述数据项从当前数据格式转换成新的数据格式的请求,以及接收对请求的响应,该响应包括采用新的数据格式的数据项。

Description

应用自动路由框架
背景技术
偶尔地,用户想要将数据项转换成新的数据格式。例如,用户可以想要将音频文件转换成mp3文件或将视频文件转换成mp4文件。额外地或可替代地,用户可能想要将PDF文件或HTML文件转换成 文档。
当前的技术经由单个应用使得用户能够通过使用应用从当前数据格式转换成期望的数据格式来将数据项转换成新的数据格式。即,当前的技术常常利用单个应用在数据格式之间执行直接转换。
针对这些和其他考虑呈现了在本文中进行的公开。
发明内容
在本文中所描述的技术提供了将数据项转换成新的数据格式的应用自动路由。在本文中所描述的技术包括确定数据项的当前数据格式和数据项的期望的数据格式。额外地,在本文中所描述的技术还包括至少部分地基于所述应用信息数据来确定所述多个应用中的一个或多个应用,所述一个或多个应用至少部分地基于连续执行所述一个或多个应用,将所述数据项从所述当前数据格式转换至所述期望的数据格式。此外,在本文中所描述的技术包括向一个或多个应用中的应用发送数据项以及将数据项从当前数据格式转换成新的数据格式的请求,并且接收对所述请求的响应,所述响应包括采用新的数据格式的数据项。新的数据格式可以是提示使用一个或多个额外的应用的额外的转换的中间数据格式,或者是期望的数据格式。
应当理解的是,在上文中所描述的主题可以被实现为计算机控制的装置、计算机过程、计算系统、或诸如计算机可读存储介质之类的制品。这些和各种其他的特征将通过阅读以下的具体实施方式和浏览相关联的附图而是显而易见的。
提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中所述的任何或全部缺点的实现。
附图说明
图1是框图,其示出用于利用多个应用将数据项转换成新的数据格式的系统的几个示例组件。
图2是流程图,其示出了用于利用多个应用将数据项转换成新的数据格式的方法的方面。
图3是流程图,其示出了用于生成确定将数据项从当前数据格式转换至期望的数据格式的图形的方法的方面。
图4是流程图,其示出了用于在第一模式(即,请求方模式)下执行将数据项转换成新的数据格式的路由路径的方法的方面。
图5是流程图,其示出了用于在第二模式(即,服务器模式)下执行将数据项转换成新的数据格式的路由路径的方法的方面。
图6是计算机架构图,其示出了针对能够实现在本文中所呈现的技术和科技的方面的计算系统的说明性计算机硬件和软件架构。
图7是示出了能够实现在本文中所呈现的技术和科技的方面的分布式计算环境的图。
图8是计算机架构图,其示出了针对能够实现在本文中所呈现的技术和科技的方面的计算设备的计算设备架构。
具体实施方式
以下具体实施方式针对用于利用应用自动路由框架来促进将数据项转换成新的数据格式的概念和技术。出于该讨论的目的,应用是由程序员创建的用于满足具体任务的程序。应用的非限制性示例包括批处理文件、脚本(例如,在用户设备或网络服务中)、软件组件等。例如,应用可以向设备的用户提供实用、娱乐、教育、和/或生产力功能。
在至少一个示例中,在本文中所描述的应用可以被配置为将数据项转换成新的数据格式。出于该讨论的目的,数据项可以包括数据文件、流式数据等。在本文中所描述的概念和技术确定与应用相关联的路由路径,并且利用所述路由路径将数据项从当前数据格式转换成期望的数据格式。所述概念和技术可以确定路由路径并且转换数据项,而无须用户知道如何找到用于将当前数据格式转换成期望的数据格式的路径。即,用户可以提供采用当前数据格式的数据项并且在本文中所描述的概念和技术可以在没有来自用户任何额外的输入的情况下输出采用期望的数据格式的数据项。
在一些示例中,将数据项在多个数据格式之间进行转的应用可以由单个计算实体来执行。在其他示例中,所述应用可以由不同的计算实体来执行。出于该讨论的目的,计算实体可以对应于用户设备、用户设备的集群、云、服务器、服务器集群等。
在本文中所描述的技术包括一种系统,该系统包括拓扑信息服务器和一个或多个计算实体。一个或多个计算实体中的个体计算实体可以执行一个或多个应用。一个或多个应用中的每个应用可以被配置为将数据项从第一数据格式转换至第二数据格式。如在下文中所描述的,可以执行一个或多个应用的计算实体可以在一个或多个应用被下载到计算实体上时,向拓扑信息服务器发送应用信息数据。针对每个应用,应用信息数据可以包括指示以下信息的数据:应用可以读取的输入数据格式、应用可以写的输出数据格式、以及与将数据项从输入数据格式转换至输出数据格式相关联的时间。
拓扑信息服务器可以被配置为接收与应用中的每个应用相关联的应用信息数据、聚合所述应用信息数据、以及向一个或多个计算实体中的个体计算实体发送经聚合的应用信息数据。经聚合的应用信息数据可以向单个计算实体提供可用于将数据项从当前数据格式转换至期望的数据格式的应用的概述。如在下文中所描述的,经聚合的应用信息数据可以包括与各种应用相关联的应用信息数据。在一些示例中,将数据项从当前数据格式转换至期望的数据格式可以涉及两个或更多个应用和两种或更多种中间数据格式。在至少一个示例中,两个或更多个应用中的至少一些可以与不同的计算实体相关联。在其他示例中,两个或更多个应用可以与单个计算实体关联。
在至少一个示例中,在本文中所描述的技术包括第一计算实体,其被配置为至少部分地基于应用信息数据来确定用于将数据项从当前数据格式转换至期望的数据格式的路由路径。出于该讨论的目的,路由路径是所确定的与一个或多个应用相关联的路径,其遍历使得采用当前数据格式的数据项被转换成期望的数据格式。
第二计算实体可以被配置为从第一计算实体接收包括用于将数据项从当前数据格式转换至中间数据格式的第一请求的第一通信,并且可以执行第一应用以将数据项从当前数据格式转换至中间数据格式。在一些示例中,第二计算实体可以将采用中间数据格式的数据项发送回第一计算实体,并且第一计算实体可以向不同的计算实体发送用于将数据项转换至期望的数据格式的第二请求,或者第一计算实体可以具有能够将数据项转换至期望的数据格式的应用。在其他示例中,第二计算实体可以向不同的计算实体发送第二通信,以请求不同的计算实体将数据项转换至期望的数据格式。
如在下文中所描述的,在一些示例中,路由路径可以包括能够将数据项从当前数据格式转换至期望的数据格式的单个应用。作为非限制性示例,用户可以想要将采用数据格式的数据项转换至PDF数据格式。在这样的示例中,用户能够访问(例如,经由用户的计算实体或者通信地耦合至用户的计算实体的多个计算实体)的应用可以访问采用数据格式的数据,并且可以将该数据项转换至PDF数据格式。
在其他示例中,路由路径可以包括两个或更多个应用,其中每个应用将数据项转换成新的数据格式,以使得当连续执行两个或更多个应用时,可以将数据项从当前数据格式转换至期望的数据格式。在至少一个示例中,可以由单个计算实体来执行两个或更多个应用。
在其他示例中,可以由计算环境中的不同的计算实体来执行两个或更多个应用。作为非限制性示例,用户可以想要将采用英语语音数据格式的数据项翻译至韩语语音数据格式。用户的计算设备(例如,本地设备)和通信地耦合至用户的计算设备的计算实体(例如,网络服务)都不具有能够读英语语音和写韩语语音(即,将英语语音转换至韩语语音)的应用。然而,用户的计算设备可以执行能够将英语语音数据格式转换至英语文本数据格式的应用以及能够将日语文本数据格式转换至中文文本数据格式的应用。通信地耦合至用户的计算设备的第一计算实体可以执行将英语文本数据格式转换至日语文本数据格式的应用。通信地耦合至用户的计算设备和第一计算实体的第二计算实体可以执行将中文文本数据格式转换至韩语文本数据格式的应用和将韩语文本数据格式转换至韩语语音数据格式的应用。
由此,在本文中所描述的概念和技术可以确定用于利用由用户的计算设备、第一计算实体、和第二计算实体所执行的应用来将数据项从应用语音数据格式转换至韩语语音数据格式的路由路径。在上文的非限制性示例中,由用户的计算设备执行的、能够将英语语音数据格式转换至英语文本数据格式的应用可以访问采用英语语音数据格式的数据项,并且可以将数据项转换至英语文本数据格式。用户的计算设备可以向第一计算实体发送用于将数据项从英语文本数据格式转换至日语文本数据格式的请求。第一计算实体可以执行能够将英语文本数据格式转换至日语文本数据格式的应用,并且可以将采用日语文本数据格式的数据项发送至用户的计算设备,以执行能够将日语文本数据格式转换至中文文本数据格式的应用。用户的计算设备可以向第二计算实体发送采用中文文本数据格式的数据项,并且第二计算实体可以执行将中文文本数据格式转换至韩语文本数据格式的应用以及将韩语文本数据格式转换至韩语语音数据格式的应用。第二计算实体可以将采用韩语语音数据格式的数据项发送至用户的计算设备。
尽管在结合在计算系统上执行操作系统和应用程序在程序模块的一般上下文中呈现了在本文中所描述的主题,但是本领域技术人员将认识到可以结合其他类型的程序模块来执行其他实现。一般而言,程序模块包括例程、程序、组件、数据结构、以及执行特定任务或实现特定抽象数据类型的其他类型的结构。此外,本领域的熟练技术人员将认识到,在本文中所描述的主题可以利用其他计算机系统配置来实践,所述其他计算系统配置包括手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机等。
在以下的详细描述中,对形成了其一部分并且其中作为说明而示出了具体的实施例或示例的附图进行了参考。现在对附图进行参考,其中用于将数据项转换至新的数据格式的计算系统、计算机可读存储介质以及计算机实现的方法的若干附图、方面相同的附图标记表示相同的元件。如下文将参考图6-8更详细描述的,存在可以实现在本文中所描述的功能和技术的多个应用和服务。
图1是框图,其示出用于利用多个应用将数据项转换成新的数据格式的系统的几个示例组件。如在上文中所描述的,在一些示例中,可以由单个计算实体来执行应用。在其他示例中,并且如在图1中所示出的,系统100可以包括网络102、第一计算实体104、第二计算实体106、以及拓扑信息服务器108。额外的计算实体(未示出)可以通信地耦合至网络102、第一计算实体104、第二计算实体106、和/或拓扑信息服务器108。在一些示例中,拓扑信息服务器108可以集成到第一计算实体104、第二计算实体106、或者所述额外的计算实体(未示出)中的一个。在其他示例中,拓扑信息服务器108可以经由诸如网络102之类的一个或多个局域网和/或广域网而通信地耦合至第一计算实体104、第二计算实体106、和/或额外的计算实体(未示出)。如在下文中所描述的,在一些示例中,系统100可以包括超过一个拓扑信息服务器108,并且每个拓扑信息服务器108可以对应于与特定范围关联的计算实体的分组。
第一计算实体104和/或第二计算实体106可以表示能够执行应用(例如,分别地应用120或应用128)的计算实体。在一些示例中,第一计算实体104和/或第二计算实体106可以是用户设备(例如,膝上型计算机、台式计算机、智能电话、平板计算设备或任何其他计算设备),其通过诸如网络102之类的一个或多个局域和/或广域网络分别通信地连接至第二计算实体106或第一计算实体104以及拓扑信息服务器108。在其他示例中,第一计算实体104和/或第二计算实体可以是服务器、服务器集群、提供各种类型的网络服务(例如,云)的网络可访问的服务器计算机的集合等,它们通过诸如网络102之类的一个或多个局域和/或广域网络分别通信地连接至第二计算实体106或第一计算实体104以及拓扑信息服务器108。应当理解的是,可以利用比图1中所示出的多得多的网络连接。
第一计算实体104可以包括本地存储器110,本地存储器110可以包括一个或多个模块和数据结构,例如数据交换模块112、图形生成模块114、路径确定模块116、转换模块118等。一个或多个模块和数据结构可以被配置为管理第一计算实体104、第二计算实体106、拓扑信息服务器108等之间的交互。一个或多个模块和数据结构可以具有以下形式:独立的应用,生成力应用,操作系统组件,或具有促进第一计算实体104、第二计算实体106、拓扑信息服务器108等之间的交互的特征的任何其他应用或软件模块。
额外地,第一计算实体104可以包括应用120,如在上文中所描述的。在至少一个示例中,应用120可以促进将数据项从第一数据格式转换至第二数据格式,如在上文和下文中所描述的。在这样的示例中,应用120中的每个应用可以与指示以下信息的应用信息数据相关联:应用可读的输入数据格式、应用可写的输出数据格式、以及与将数据项从输入数据格式转换至输出数据格式相关联的时间。在下文中解释并且在图8中示出了第一计算实体104的额外的模块和组件。
如将在下文中解释的,数据交换模块112可以向其他计算实体(例如,第二计算实体106等)和/或拓扑信息服务器108发送通信和从其他计算实体(例如,第二计算实体106等)和/或拓扑信息服务器108接收通信。数据交换模块112的能力的非限制性示例可以包括向拓扑信息服务器108发送应用信息数据、访问来自拓扑信息服务器108的信息数据等。在至少一个示例中,数据交换模块112可以向拓扑信息服务器108发送对应于与第一计算实体104相关联的应用中的每个应用(例如,应用120)的应用信息数据。如在下文中所描述的,拓扑信息服务器108可以向数据交换模块112发送关联于与第一计算实体104和/或其他计算实体(例如,第二计算实体106等)相关联的一个或多个应用的聚合应用信息数据。
图形生成模块114可以生成包括用于将数据项转换成新的数据格式的一个或多个路由路径的图形。如上文中所描述的,路由路径可以包括各自被连续执行以将数据项从当前数据格式转换至期望的数据格式的一个或多个应用(例如,应用120、应用128等)。在一些示例中,所述应用中的一些应用(例如,应用120、应用128等)可以由不同的计算实体(例如,第一计算实体104、第二计算实体106等)来执行。在其他示例中,所述应用(例如,应用120、应用128等)可以由相同的、单个计算实体(例如,第一计算实体104、第二计算实体106等)来执行。以下在图3中描述了与生成图形相关的额外的细节。
路径确定模块116可以利用由图形生成模块114所生成的图形来确定要执行哪一个路由路径以将数据项从当前数据格式转换至期望的数据格式。在一些示例中,用户可以选择路由路径。在其他示例中,路径确定模块116可以选择与最短的总执行时间(例如,执行路由路径所需的时间)或低于阈值时间(例如,基于原始执行时间和乒乓时间)的总执行时间相关联的路由路径,消耗最少量的计算资源的路由路径,与具有最多可用吞吐量的路径相对应的路由路径。在至少一个示例中,路径确定模块116可以利用各种特征来对个体路由路径进行排名。所述特征可以包括乒乓时间、服务器加载时间、应用执行时间等,如下文所描述的。路径确定模块116可以向用户推荐排名最高的路由路径和/或选择排名最高的路由路径以供转换模块118执行。
转换模块118可以促进路由路径的执行。即,转换模块118可以至少部分地基于路由路径向计算实体路由用于将数据项转换成不同的数据格式的请求。在第一模式(即,请求方模式)下,转换模块118可以向其他计算实体(例如,第二计算实体106等)发送请求,并且可以从其他计算实体(例如,第二计算实体106等)接收响应。所述请求可以包括数据项以及用于将数据项从第一数据格式转换至第二数据格式的请求。响应可以包括采用经转换的数据格式(例如,中间数据格式或期望的数据格式)的数据项。转换模块118可以确定每个响应是否包括采用期望的数据格式的数据项,并且如果不包括,则转换模块118可以向与第一计算实体104相关联的应用发送随后的请求和/或向其他计算实体(例如,第二计算实体106等)发送随后的请求。转换模块118可以从其他计算实体(例如,第二计算实体106等)接收随后的响应。即,转换模块118可以促进路由路径一次一个应用地执行,以将数据项从当前数据格式转换至期望的数据格式。以下在图4中描述了与在请求方模式下执行路由路径相关的额外的细节。
在第二模式下(即,服务器模式),转换模块118可以向其他计算实体(例如,第二计算实体106等)发送请求,并且可以从其他计算实体(例如,第二计算实体106等)中的一个计算实体接收包括采用期望格式的数据项的响应。即,转换模块118可以发起对路由路径的执行,并且其他计算实体(例如,第二计算实体106等)可以促进一次对一个应用的连续路由请求,以将数据项从当前数据格式转换至期望的数据格式。以下在图5中描述了与在服务器模式下执行路由路径相关的额外的细节。
第二计算实体106可以包括本地存储器122,本地存储器122可以包括一个或多个模块和数据结构,例如请求模块124、响应模块126等。一个或多个模块和数据结构可以被配置为管理第一计算实体104、第二计算实体106、拓扑信息服务器108等之间的交互。所述一个或多个模块和数据结构可以采取以下形式:独立的应用、生成力应用、操作系统组件、或具有促进第一计算实体104、第二计算实体106、拓扑信息服务器108等之间的交互的特征的任何其他应用或软件模块。额外地,第二计算实体106可以执行应用128。在至少一个示例中,应用128可以便于实现将数据项转换至新的数据格式,如上文和下文所描述的。在这样的示例中,应用128中的每个应用可以关联于应用可以读取的输入数据格式、应用可以写的输出数据格式、以及与将数据项从输入数据格式转换至输出数据格式相关联的时间。
请求模块124可以发送和/或接收请求。请求可以与数据项相关联并且可以指定数据项的数据格式从第一数据格式到第二数据格式的转换。在一些示例中,第一数据格式可以是当前数据格式。在其他示例中,第一数据格式可以是不是当前数据格式或期望的数据格式的中间数据格式。类似地,在一些示例中,第二数据格式可以是中间数据格式,而在其他示例中,第二数据格式可以是期望的数据格式。响应模块126可以发送和/或接收响应。所述响应可以包括采用经转换的数据格式的数据项。
拓扑信息服务器108可以采用被配置为从第一计算实体104和/或第二计算实体106发送和接收通信的服务器计算机或多个服务器计算机的形式。在一些示例中,拓扑信息服务器108可以至少部分地基于与计算实体或计算实体的分组相关联的范围而与关联于特定等级的应用访问许可的计算实体或计算实体的分组相关联。出于该讨论的目的,范围可以包括全局范围、专有范围、集群范围、或个人范围。如在上文中所描述的,个体拓扑信息服务器108可以各自与不同的范围相关联。在至少一个示例中,为了将应用导出至特定的范围,试图导出该应用的计算实体(例如,第一计算实体104和/或第二计算实体106)可以向与特定的范围相对应的拓扑信息服务器108上传和/或从其下载应用信息数据,如下文所描述的。例如,如果试图导出应用的计算实体(例如,第一计算实体104和/或第二计算实体106)期望访问与全局范围(例如,世界范围)相关联的应用,则试图导出应用的计算实体(例如,第一计算实体104和/或第二计算实体106)可以向与全局范围相关联的拓扑信息服务器108上传和/或从其下载应用信息。
拓扑信息服务器108可以包括本地存储器130,本地存储器130可以包括一个或多个模块和数据结构,例如数据管理器132、应用信息数据134等。一个或多个模块和数据结构可以被配置为管理第一计算实体104、第二计算实体106、拓扑信息服务器108等之间的交互。所述一个或多个模块和数据结构可以采用以下形式:独立的应用,生产力应用,操作系统组件,或具有促进第一计算实体104、第二计算实体106、拓扑信息服务器108等之间的交互的特征的任何其他应用或软件模块。
数据管理器132可以至少部分地基于与个体计算实体或计算实体的配置相关联的范围而从与特定的应用访问许可等级相关联的个体计算实体(例如,第一计算实体104、第二计算实体106等)和/或多组计算实体接收/访问应用信息数据。在至少一个示例中,个体计算实体和/或计算实体的分组可以至少部分地基于在个体计算设备上识别到新应用来发送与应用相关联的应用信息数据。数据管理器132可以聚合与个体应用相关联的应用信息数据,并且可以将经聚合的应用信息数据134发送至单个计算实体(例如,第一计算实体104、第二计算实体106等)。在额外的和/或可替代的示例中,个体计算实体(例如,第一计算实体104、第二计算实体106等)可以从数据管理器132访问经聚合的应用信息数据134。
在至少一个示例中,每个应用可以与唯一的标识符相关联,并且与每个应用相关联的应用信息数据可以与唯一的标识符相对应。如在上文中所描述的,应用信息数据可以至少包括:每个个体应用被配置为读取的输入数据格式、每个个体应用被配置为写入的输出数据格式、以及与将单个数据项从输入数据格式转换至输出数据格式相关联的时间(例如,总运行时间)。所述时间可以与用于将数据项从输入数据格式转换至输出数据格式的原始执行时间和/或是与将数据项从输入数据格式转换至输出数据格式相关联的乒乓时间。出于该讨论的目的,乒乓时间指的是从发起计算实体向目的地计算实体发送请求以及所述目的地计算实体向发起计算实体确认回该请求时所经过的时间量。
应用信息数据134可以被存储在拓扑信息服务器中的表格中。表格可以与经聚合的应用信息数据相对应。表格可以通过与应用相关联的唯一标识符以及所述应用所关联的计算实体(例如,第一计算实体104、第二计算实体106等)来标识每个应用。在一些示例中,如果计算实体包括超过一个计算设备,则每个应用可以基于计算实体的特定计算设备而额外地和/或可替代地被标识。额外的信息可以与唯一的标识符一起被存储,包括但不限于,对应的应用能够读取的输入数据格式、对应的应用能够写的输出数据格式、与将数据项从输入数据格式转换至输出数据格式相关联的度量(例如,原始执行时间、乒乓时间、总运行时间等)。以下在表1中包括非限制性示例表格。
表1
在一些示例中,数据管理器132可以在经过预先确定的时间段之后等,以预先确定的频率将该表格发送至个体计算实体(例如,第一计算实体104、第二计算实体106等)。在其他示例中,数据管理器132可以响应于触发事件而将该表格发送至个体计算实体(例如,第一计算实体104、第二计算实体106等),所述触发事件例如添加新计算设备、识别新的应用、接收将数据项转换成新的数据格式的新请求等。在一些示例中,数据管理器132可以响应于来自数据交换模块112的下载该表格的请求而将该表格发送至数据交换模块112。在其他示例中,图形生成模块114可以访问数据管理器132并下载该表格。如在上文中所描述的,数据交换模块112可以将应用信息数据上传至数据管理器132。在一些示例中,可以在与表格被下载的大体相同的时间将应用信息数据上传至数据管理器132。
图2是流程图,其示出了用于利用多个应用将数据项转换成新的数据格式的方法200的方面。应当理解的是,在本文中关于图2和其他附图所描述的逻辑操作可以被实现为(1)在计算系统上运行的一系列计算机实现的动作或程序模块和/或(2)计算系统内相互连接的机器逻辑电路或电路模块。
在本文中所描述的各种组件的实现是取决于计算系统的性能和其他需求的选择问题。由此,在本文中所描述的逻辑操作被多样地称为操作、结构设备、动作、或模块。这些操作、结构设备、动作、和模块可以以软件、固件、专用数字逻辑、以及其任何组合实现。还应当理解的是,可以执行与在附图中和在本文中所示出的相比更多或更少的操作。这些操作还可以并行地执行、或者以与在本文中所描述的不同的顺序执行。这些操作中的一些或全部操作还可以由不同于具体标识出的那些组件的组件来执行。
框202示出确定本地应用信息数据是否过期。本地应用信息数据是第一计算实体104最近下载的经聚合的应用信息数据。在上文所描述的表1是可以由数据交换模块112从拓扑信息服务器108接收/访问的经聚合的应用信息数据的非限制性示例。在一些示例中,在经过预先确定的时间段、事件(例如,触发事件,例如添加新的计算设备)的发生等之后,本地应用信息数据可能过期。如果本地应用信息数据过期,则数据交换模块112可以请求并随后接收经更新的应用信息数据和/或可以访问经更新的应用信息数据。在一些示例中,数据交换模块112可以至少部分地基于接收用于转换数据项的数据格式的新的请求以及确定本地应用信息数据过期来接收和/或访问经更新的应用信息数据。
框204描绘了从拓扑信息服务器108接收/访问应用信息数据134。在本地应用信息数据过期的示例中,数据交换模块112可以从拓扑信息服务器108接收/访问经聚合的应用信息数据134。在一些示例中,拓扑信息服务器108可以将与关联于其他计算实体(例如,第二计算实体106等)的一个或多个应用(例如应用120、应用128等)相关联的经聚合的应用信息数据134发送至数据交换模块112。如在上文中所描述的,数据管理器132可以在经过预先确定的时间段之后等以预先确定的频率向第一计算实体104发送经聚合的应用信息数据(例如,表1等)。在其他示例中,数据管理器132可以响应于触发事件,例如,添加新的计算设备、识别新的应用、请求经更更新的应用信息数据134、接收用于将数据项转换至新的数据格式的新的请求等,而向第一计算实体104发送经聚合的应用信息数据(例如,表1等)。
在额外的和/或可替代的示例中,数据交换模块112可以访问经聚合的应用信息数据(例如,表1等),并且可以下载经聚合的应用信息数据以生成路由路径。在至少一个示例中,数据交换模块112可以响应于接收用于将数据项从当前数据格式转换至期望的数据格式的请求以及确定本地应用信息数据过期,而访问经聚合的应用信息数据,如在上文中所描述的。
框206示出了生成图形,该图形标识用于将数据项从当前数据格式转换至期望的数据格式的路由路径。图形生成模块114可以生成包括用于将数据项转换成新的数据格式的一个或多个路由路径的图形。路径确定模块116可以至少部分地基于本地应用信息数据来生成图形。在本地应用信息数据没有过期的示例中,路径确定模块116可以不需要从拓扑信息服务器108访问/接收经更新的应用信息数据以生成图形。然而,至少部分地基于确定本地应用信息数据过期,数据交换模块112可以从拓扑信息服务器108访问/接收经聚合的应用信息数据134。
图3是流程图,其示出了用于生成确定将数据项从当前数据格式转换至期望的数据格式的图形的方法300的方面。出于讨论的目的,在图3中所示出的应用节点(例如,301A、301B、301C)与上文表1中所标识的应用相对应。
图形生成模块114可以访问本地应用信息数据(例如,表1等)以生成基图。只要本地应用信息数据没有过期,就可以利用基图来确定路由路径。
框302示出了基于本地应用信息数据来确定应用节点。图形生成模块114可以生成与在本地应用信息数据中所标识的应用相对应的应用节点。应用节点在图3中被表示为节点301A、301B、和301C。
框304描绘了确定应用节点之间的边。如在上文中所描述的,每个应用可以与指示应用被配置为读取(即输入)的数据输入和应用被配置为写(即输出)的数据输入的应用信息数据相关联。图形生成模块114可以确定在表示这样的应用的应用节点之间的边,所述应用被配置为读取与从另一应用输出的数据相同数据格式的数据。在至少一个示例中,边的权重可以基于多种特征,包括但不限于,乒乓时间、服务器加载时间、应用执行时间等,如在下文中所描述的。图形生成模块114可以在不考虑应用与哪个计算实体相关联的情况下来对边进行确定。可以使用基图直到图形生成模块114确定本地应用信息数据过期。
如在上文中所描述的,只要本地应用信息数据没有过期,则图形生成模块114就可以经由通过框306-310表示的动作来确定路由路径。至少部分地基于确定本地应用信息数据过期,数据交换模块112可以访问和/或接收经更新的经聚合的应用信息数据134。至少部分地基于接收经更新的经聚合的应用信息数据134,图形生成模块114可以生成新的基图并且可以利用新的基图来执行通过下文的框306-310表示的动作,直到经更新的经聚合的应用信息数据134过期为止。
框306示出了基于数据项的当前数据格式来确定输入节点。图形生成模块114可以访问数据项并且确定数据项的当前数据格式。图形生成模块114可以确定与当前数据格式相对应的输入节点。在图3中,当前数据格式是(0),如在与框302相对应的输入节点中所示出的。作为非限制性示例,(0)可以对应于与数据项相关联的数据格式(例如,.doc,.docx)。
框308示出了基于数据项的期望的数据格式来确定输出格式。图形生成模块114可以确定数据项的期望的数据格式。在一些示例中,期望的数据格式可以基于与第一计算实体104的用户交互而被输入。图形生成模块114可以确定与期望的数据格式相对应的输出节点。在图3中,期望的数据格式是(3),如在与框304相对应的输出节点中所示出的。作为非限制性示例,(3)可以对应于PDF数据格式(例如,.pdf)。
框310示出了确定用于将数据项从当前数据格式转换至期望的数据格式的路由路径。
在至少一个示例中,图形生成模块114可以利用路径算法(例如,深度优先搜索(DFS)、Dijkstras算法、Ford-Fulkerson算法、用于在两个给定节点之间找到路径的其他递归或迭代算法等)以确定输入节点与输出节点之间的各种路由路径。各种应用可以与单个计算实体或多个计算实体相关联。
至少部分地基于确定输入节点和/或输出节点,图形生成模块114可以利用与本地应用信息数据相对应的基图来确定用于将数据项从当前数据格式转换至期望的数据格式的路由路径。图形生成模块114可以访问与本地应用信息数据相关联的基图来确定输入节点与能够读取与输入相对应的数据格式的任何应用节点(例如,301A、301B、301C)之间的每个边。图形生成模块114可以在不考虑应用与哪个计算实体相关联的情况下来对边进行确定。
在图3中,图形生成模块114确定从输入节点到与应用1(APP 1)相对应的应用节点301A和与应用2(APP 2)相对应的应用节点301B的边。根据从拓扑信息服务器108接收的应用信息数据,应用1和应用2被配置为读取具有数据格式(0)的数据。应用3(未示出)和应用4(APP 4)被配置为分别读取具有不同的数据格式(2)和(1)的数据,并且由此,图形生成模块114不确定输入节点与同应用3(未示出)和应用4 301C相对应的应用节点之间的边。
额外地,图形生成模块114可以至少部分地基于与每个应用节点(例如,301A、301B)相关联的输出来确定从每个应用节点(例如,301A、301B)到另一应用节点(例如,301C)或输出节点中的至少一个的边。图形生成模块114可以访问与本地应用信息数据相关联的基图以确定每个边。在一些示例中,可以经由执行单个应用将数据项从当前数据格式转换至期望的数据格式。即,单个应用可以被配置为读取当前的数据格式以及写期望的数据格式。在这样的示例中,无需中间数据格式来实现该转换。此外,在这样的示例中,图形生成模块114可以确定与被配置为将数据项从当前数据格式转换至期望的数据格式的应用相对应的应用节点(例如,301B)到输出节点之间的边。在至少一个示例中,边的权重可以基于多种的因素,如在上文中所描述的。在图3中,应用2被配置为将数据项从当前数据格式(0)转换至期望的数据格式(3)。由此,图形生成模块114可以确定与应用2相对应的应用节点301B和输出节点之间的边,如在与框310相对应的图形中所示出的。
在其他示例中,可能需要超过一个应用来将数据项从当前数据格式转换至期望的数据格式。在这样的示例中,第一应用可以将数据项从当前数据格式转换至不是当前数据格式或期望的数据格式的中间数据格式。接着,可以执行第二应用以将采用中间数据格式的数据项转换至期望的数据格式。在额外的和/或可替代的示例中,第二应用可以替代地将数据项从第一中间数据格式转换至第二中间数据格式。在这样的示例中,可以执行第三应用以将数据项从第二中间数据格式转换至期望的数据格式。可以执行额外的中间数据格式和应用以实现该转换。每个应用可以与应用节点(例如,301A、301B、301C)相对应。如在上文中所描述的,在一些示例中,可以输出一个或多个中间数据格式,并且由此,可以利用一个或多个应用以将一个或多个中间数据格式转换至期望的数据格式。
在图3中,应用1被配置为将采用当前数据格式(0)的数据项转换至中间数据格式(1)。应用4被配置为将数据项从中间数据格式(1)转换至期望的数据格式(3)。由此,图形生成模块114可以确定在与应用1相对应的应用节点301A和与应用4相对应的应用节点301C之间的边。额外地,图形生成模块114可以确定与应用4相对应的应用节点301C和输出节点之间的边,如在与框310相对应的图形中所示出的。
从将输入节点连接至一个或多个应用节点(例如,301A、301B、301C)以及连接至输出节点的边所创建的每一路径与路由路径相对应。图形生成模块114可以生成各种路由路径,如在上文中所描述的。路径确定模块116可以确定执行哪个路由路径以将数据项从当前数据格式转换至期望的数据格式。在一些示例中,用户可以选择路由路径,并且在其他示例中,路径确定模块116可以选择以下路由路径:与最短的总执行时间或低于阈值的总执行时间(例如,基于原始执行时间和乒乓时间)相关联的路由路径、消耗了最少量的计算资源的路由路径、与可获得最多吞吐量的路由路径相对应的路由路径等。如在上文中所描述的,在一些示例中,路径确定模块116可以将路由路径排名并且基于最高排名的路由路径确定所述路由路径。
在图3中,在与框312相对应的图形中示出了根据表1的总执行时间(例如,总运行时间)。例如,应用1将数据项从当前数据格式(0)转换至中间数据格式(1)的总运行时间是3个时间单位(例如,毫秒、秒等)而应用4将数据项从中间数据格式(1)转换至期望的数据格式(3)的总运行时间是8个时间单位。由此,与经由应用1和应用4将数据项从当前数据格式(0)转换至期望的数据格式(3)相关联的总时间是11个时间单位。
应用2将数据项从当前数据格式(0)转换至期望的数据格式(3)的总运行时间是12个时间单位。在这样的示例中,路径确定模块116可以至少部分地基于确定用于将数据项从当前数据格式转换至期望的数据格式的总运行时间少于应用2执行该转换的情况,而选择利用应用1和应用4的路由路径。在图3中将所选择的路由路径示出为粗的黑线。返回图2,框208示出了确定路由路径以将数据项从当前数据格式转换至期望的数据格式,如在上文中所描述的。
框210示出了至少部分地基于将数据项从当前数据格式转换至期望的数据格式的路由路径而将请求路由至计算实体(例如,第一计算实体104、第二计算实体106等)。转换模块118可以促进路由路径的执行。在一些示例中,与路由路径相关联的应用可以由单个计算实体(例如,第一计算实体104)来执行。在这样的示例中,转换模块118可以促进单个计算实体(例如,第一计算实体104)中的路由路径的执行。
在其他示例中,与路由路径相关联的应用可以由多于一个计算实体(例如,第一计算实体104和第二计算实体106)来执行,如在图1中所示出的。在这样的示例中,在第一模式下(例如,请求方模式),转换模块118可以向其他计算实体(例如,第二计算实体106等)发送请求,并且可以从其他计算实体(例如,第二计算实体106等)接收响应。
转换模块118可以确定每个响应是否包括采用期望的数据格式的数据项,并且如果不包括,则转换模块118可以向与第一计算实体104或其他计算实体(例如,第二计算实体106等)相关联的应用发送随后的响应以执行用于执行额外的转换的额外的应用。转换模块118可以从第一计算实体104或其他计算实体(例如,第二计算实体106等)接收随后的响应,包括采用中间数据格式或期望的数据格式的数据项。即,转换模块118可以促进一次一个应用地路由路径的执行以将数据项从当前数据格式转换至期望的数据格式。
可替代地,在这样的示例中,在第二模式(即,服务器模式)下,转换模块118可以向其他计算实体(例如,第二计算实体106等)发送请求,并且其他计算实体(例如,第二计算实体106等)中的每个计算实体可以向其他计算实体发送随后的请求以用于执行该转换。与执行该最后的转换(例如,从中间数据格式到期望的数据格式)的应用相关联的计算实体可以向第一计算实体104发送最终响应,该最终响应包括采用期望的数据格式的数据项。在一些示例中,第一计算实体104可以与执行该最后的转换(例如,从中间数据格式到期望的数据格式)的应用相关联。在这样的示例中,第一计算实体104可以在转换完成之后仅访问采用期望的数据格式的数据项。如在下文中所描述的,图4和图5示出了用于执行路由路径以将数据项从当前数据格式转换至期望的数据格式的各种方法的方面。
图4是流程图,其示出了用于在第一模式(即,请求方模式)下执行将数据项转换成新的数据格式的路由路径的方法400的方面。出于讨论图4和图5的目的,客户端对应于第一计算实体104,而服务器对应于其他计算实体,例如第二计算实体106。然而,在额外的和/或可替代的示例中,客户端可以对应于第一计算实体104、第二计算实体106、或未画出的计算实体对应,和/或服务器可以对应于第一计算实体104、第二计算计算实体106、或未画出的计算实体。
框402示出了向服务器(例如,第二计算实体106)发送请求。如在上文中所描述的,与客户端(例如,第一计算实体104)相关联的转换模块118可以向服务器(例如,第二计算实体106等)发送请求。所述请求可以包括数据项以及将数据项从当前数据格式转换至中间数据格式或从当前数据格式转换至期望的数据格式(即从当前数据格式到新的数据格式)的请求。
框404示出了从服务器(例如,第二计算实体106)接收响应。转换模块118可以从服务器(例如,第二计算实体106等)接收响应。所述响应可以包括采用中间数据格式或期望的数据格式的数据项。
框406示出了确定转换是否完成。转换模块118可以确定每个响应是否包括采用期望的数据格式的数据项。至少部分地基于确定转换是否完成,客户端(例如,第一计算实体104)可以如在框408中所示出的访问采用期望的数据格式的数据项。至少部分地基于确定转换没有完成,转换模块118可以确定客户端(例如,第一计算实体104)是否可以完成该转换。即,转换模块118可以确定与客户端(例如,第一计算实体104)相关联的应用是否可以完成该转换。
至少部分地基于确定与客户端(例如,第一计算实体104)相关联的应用可以完成该转换,客户端(例如,第一计算实体104)可以向应用发送数据项,并执行应用以如框在412中所示出的完成该转换。客户端(例如,第一计算实体104)可以如框在408中所示出的访问采用期望的数据格式的数据项。
至少部分地基于确定客户端(例如,第一计算实体104)无法完成该转换,转换模块118可以向其他服务器(例如,第二计算实体106等)发送随后的请求。即,至少部分地基于确定客户端(例如,第一计算实体104)无法完成该转换,转换模块118可以重复方法400直到该转换完成。转换模块118可以利用从图形确定的路由路径以确定哪个服务器要发送每个随后的请求。
图5是流程图,其示出了用于在第二模式(即,服务器模式)下执行将数据项转换成新的数据格式的路由路径的方法500的方面。框502示出了在服务器(例如,第二计算实体106)处接收请求。如在上文中所描述的,与服务器(例如,第二计算实体106)相关联的请求模块124可以从客户端(例如,第一计算实体104)接收请求。该请求可以包括针对服务器(例如,第二计算实体106)将数据项从当前数据格式转换至中间数据格式或者从当前数据格式转换至期望的数据格式(即,至新的数据格式)的请求。
框504示出了将数据文件从第一数据格式转换至第二数据格式。第一数据格式可以对应于当前数据格式或者对应于中间数据格式,而第二数据格式可以对应于中间数据格式或期望的数据格式。与服务器(例如,第二计算实体106)相关联的应用(例如,应用128)可以执行从第一数据格式到第二数据格式的转换。
框506示出了确定转换是否完成。即,响应模块126可以确定第二数据格式是否对应于期望的数据格式。至少部分地基于确定第二数据格式不对应于期望的数据格式,响应模块126可以确定转换没有完成,且可以接着确定服务器(例如,第二计算实体106)是否能够执行任何其他应用(例如,应用128)以推进和/或完成该转换,如在框508中所示出的。至少部分地基于确定服务器(例如,第二计算实体106)不能够执行任何其他应用(例如,应用128)以推进和/或完成该转换,请求模块124可以向另一服务器发送新的请求,并且方法500可以重复直到转换完成为止。
框510示出了向另一服务器发送请求。至少部分地基于确定服务器(例如,第二计算实体106)能够执行另一应用(例如,应用128)以推进和/或完成该转换,服务器可以执行其他应用(例如,应用128)以将数据文件从第一数据格式转换至第二数据格式。
至少部分地基于确定第二数据格式对应于期望的数据格式,响应模块126可以确定该转换完成并且可以向客户端发送响应(例如,第一计算实体104),如在框512中所示出的。响应可以包括采用期望的数据格式的数据项。
图6示出了能够执行在上文中所描述的用于将数据项转换成新的数据格式的程序组件的计算机的示例计算机架构600的额外的细节,所述计算机例如第一计算实体104、第二计算实体106、和/或拓扑信息服务器108(图1)。因此,在图6中所示出的计算机架构600示出了针对服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机、和/或膝上型计算机的架构。计算机架构600可以用于执行在本文中所呈现的软件组件的任何方面。
在图6中所示出的计算机架构600包括中央处理单元602(“CPU”)、包括随机存取存储器606(“RAM”)和只读存储器(“ROM”)608的系统存储器604、以及将存储器604耦合至CPU602的系统总线610。包含帮助在计算机架构600内的元件间转移信息(例如,在启动期间)的基本例程的基本输入/输出被存储在ROM 606中。计算机架构600还包括用于存储操作系统607以及一个或多个应用程序等的大容量存储设备612,包括但不限于数据交换模块112、图形生成模块114、路径确定模块116、转换模块118等。
大容量存储设备612通过连接至总线610的大容量存储控制器(未示出)而连接至CPU 602。大容量存储设备612及其相关联的计算机可读介质为计算机架构600提供非易失性存储。尽管对在本文中所包含的计算机可读介质的描述指的是大容量存储设备,例如,固态驱动器、硬盘、或CD-ROM驱动,但是本领域技术人员应当认识到的是,计算机可读介质可以是能够由计算机架构600访问的任何可用的计算机存储介质或者通信介质。
通信介质包括计算机可读指令、数据结构、程序模块、或者诸如载波或其他传输机制之类的经调制的数据信号中的其他数据,并且包括任何传递介质。术语“经调制的数据信号”表示具有以关于对信号中的信息进行编码的方式改变或设置的信号的特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外线和其他无线介质之类的无线介质。还应当将以上中的任意一个的组合包括在计算机可读介质的范围内。
作为示例而非限制,计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质,所述信息例如是计算机可读指令、数据结构、程序模块、或其他数据。例如,计算机介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪速存储器或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY、或者其他光存储设备、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或者可以用于存储期望的信息并且可以由计算机架构600访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变型不包括波、信号、和/或其他瞬时和/或无形的通信介质本身。
根据各种配置,计算机架构600可以使用通过网络102和/或另一网络(未示出)至远程计算机的逻辑连接来在联网环境中操作。计算机架构600可以通过连接至总线610的网络接口单元614而连接至网络102。应当认识到的是,网络接口单元614还可以用于连接至其他类型的网络和远程计算机系统。计算机架构600还可以包括用于接收和处理来自许多其他设备的输入的输入/输出控制器616,其包括键盘、鼠标、电子触笔(未在图6中示出)。相似地,输入/输出控制器616可以向显示屏、打印机、或者其他类型的输出设备(也未在图6中示出)提供输出。
应当认识到的是,在本文中所描述的软件组件可以在被加载到CPU 602中并且被执行时,将CPU 602以及整体计算机架构600从通用计算系统转换成定制以促进在本文中所呈现的功能的专用计算系统。可以从任何数量的晶体管或者其他分立电路元件构建CPU602,所述晶体管或其他分立电路元件可以单独地或者共同地假定任何数量的状态。更加具体地,CPU 602可以响应于包含在在本文中所公开的软件模块内的可执行指令而充当有限状态机。这些计算机可执行指令可以通过指定CPU 602如何在状态之间进行转变来转换CPU602,由此转换构成CPU 602的晶体管或其他分立硬件元件。
对在本文中所呈现的软件模块进行编码还可以转换在本文中所呈现的计算机可读介质的物理结构。在该描述的不同实现中,物理结构的具体转换可以取决于各种因素。这样的因素的示例可以包括但不限于,用于实现计算机可读介质的技术,计算机可读介质的特征在于主要存储还是次要存储等。例如,如果计算机可读介质被实现为基于半导体的存储器,则还可以通过转换半导体存储器的物理状态来在计算机可读介质上对在本文中所公开的软件进行编码。例如,所述软件可以转换晶体管、电容器、或构成半导体存储器的其他分立电路元件的状态。所述软件还可以转换这样的组件的物理状态以便将数据存储在其上。
作为另一示例,在本文中所公开的计算机可读介质可以使用磁或光技术来实现。在这样的实现中,当软件在磁或光学介质中被编码时,在本文中所呈现的软件可以转换磁或光学介质的物理状态。这些转换可以包括改变给定磁性介质内的特定位置的磁特性。这些转换还可以包括改变给定光学介质内的特定位置的物理特征或者特性以改变那些位置的光学特性。在不脱离本描述的范围和精神的情况下,物理介质的其他转换是可能的,其中仅仅用于促进该讨论而提供了前述示例。
鉴于以上,应当认识到的是,许多类型的物理转换在计算机架构600中进行以便存储并且执行在本文中所呈现的软件组件。还应当认识到的是,计算机架构600可以包括其他类型的计算实体,其包括手持计算机、嵌入式计算机系统、个人数字助理、以及对于本领域技术人员而言已知的其他类型的计算设备。还可以预期的是,计算机架构600可以不包括在图6中所示出的组件中的所有组件,可以包括没有在图6中明确地示出的其他组件,或者可以利用与在图6中所示出的架构完全不同的架构。
图7描绘了说明性分布式计算环境700,其能够执行本文中描述的、用于提供将数据项转换成新的数据格式的应用自动路由的软件组件。因此,图7中所示出的分布式计算环境700可以用于执行在本文中所呈现的软件组件的方面。例如,分布式计算环境700可以用于执行在本文中所描述的、与第一计算实体104和/或在本文中所描述的其他软件组件(例如与第二计算实体106和/或拓扑信息服务器108相关联的模块和/或应用)相关联的数据交换模块112、图形生成模块114、图形确定模块116、转换模块118的方面。
根据各种实现,分布式计算环境700包括在网络102上操作、与网络102进行通信、或者作为网络102的部分的计算环境702。网络102可以是或者可以包括在上文中参考图6所描述的网络102。网络102还可以包括各种接入网络。一个和多个客户端设备706A-706N(此后共同和/或一般地被称为“客户端706”)可以经由网络102和/或其他连接(未在图7中示出)来与分布式计算环境702进行通信。在一个示出的配置中,客户端706包括:计算设备706A,例如,膝上型计算机、台式计算机、或其他计算设备;“板式”或平板计算设备(“平板计算设备”)706B;移动计算设备706C,例如,移动电话、智能电话、或其他移动计算设备;服务器计算机706D;和/或其他设备706N。应当理解的是,任何数量的客户端706可以与计算环境702进行通信。参考图6和图8在本文中示出并描述了针对客户端706的两个示例计算架构。应当理解的是,所示出的客户端706和在本文中所示出和描述的计算架构是说明性的,并且不应当被解释为以任何方式受到限制。
在所示出的配置中,计算环境702包括应用服务器708、数据存储710、以及一个或多个网络接口712。根据各种实现,应用服务器708的功能可以由一个或多个服务器计算机来提供,所述一个或多个服务器计算机作为网络102的部分来执行或者与网络102进行通信。应用服务器708可以托管各种服务、虚拟机、端口、和/或其他资源。在示出的配置中,应用服务器708可以托管用于执行应用或其他功能的一个或多个虚拟机。根据各种实现,虚拟机可以执行一个或多个应用和/或软件模块,以用于提供将数据项转换成新的数据格式的应用自动路由。应当理解的是,该配置是说明性的,并且不应当被解释为以任何方式进行限制。应用服务器708还可以托管或者提供对一个或多个端口、链接页、网站和/或其他信息(“网络端口”)716的访问。网络端口716可以用于与一个或多个客户端计算机进行通信。
还如在图7中所示出的,应用服务器708还可以托管其他服务、应用、端口、和/或其他资源(“其他资源”)724。其他资源724可以采用面向服务的架构或者任何其他客户端-服务器管理软件。因此应当理解的是,计算环境702可以提供对在本文中所公开的概念和技术与各种邮箱、消息传送、社交网络、生产和/或其他类型的多租户云服务或资源的集成。
如在上文中提及的,计算环境702可以包括数据存储710。根据各种实现,数据存储710的功能是由在网络102上操作的或者与网络102进行通信的一个或多个数据库提供的。数据存储710的功能还可以由一个或多个服务器计算机来提供,所述服务器计算机被配置为托管针对计算环境702的数据。数据存储710可以包括、托管、或者提供一个或多个实际或虚拟的容器726A-726N(在下文中共同和/或一般地被称为“容器726”)。可以用于形成密钥容器131或秘密容器115的容器726被配置为托管由应用服务器708所使用或创建的数据和/或其他数据。尽管没有在图7中示出,容器726还可以托管或存储由模块(例如,数据交换模块112、图形生成模块114、路径确定模块116、对话模块118等)执行的数据结构和/或算法。容器726的方面可以与数据库程序、文件系统、和/或存储具有安全访问特征的任何程序相关联。容器726的方面可以使用诸如ACTIVE DIRECTORY、DKM、DROPBOX、或GOOGLEDRIVE之类的产品或服务来实现。
计算环境702可以与网络接口712进行通信或者由网络接口712来访问。网络接口712可以包括用于支持两个或多个计算实体之间的通信的各种类型的网络硬件和软件,所述计算设备包括但不限于客户端706和应用服务器708。应当认识到的是,网络接口712还可以用于连接至其他类型的网络和/或计算机系统。
应当理解的是,在本文中所描述的分布式计算环境700可以提供在本文中所描述的具有任何数量的虚拟计算资源和/或其他分布式计算功能的软件元件的任何方面,所述虚拟计算资源和/或其他分布式计算功能可以被配置为执行在本文中所公开的软件组件的任何方面。根据在本文中所公开的概念和技术的各种实现,分布式计算环境700提供在本文中所描述的软件功能作为对客户端706的服务。应当理解的是,客户端706可以包括真实或虚拟的机器,所述真实或虚拟的机器包括但不限于,服务器计算机、网络服务器、个人计算机、移动计算实体、智能电话、和/或其他设备。由此,在本文中所公开的概念和技术的各种配置使得被配置为访问分布式计算环境700的任何设备能够利用在本文中所描述的用于提供将数据相转换成新的数据格式的应用自动路由的功能等。在一个具体的示例中,如在上文中所总结的,在本文中所描述的技术可以至少部分地由结合图7的应用服务器708工作的网络浏览器应用来实现。
现在转到图8,将描述计算实体的说明性计算设备架构800,所述计算设备能够执行在本文中所描述的用于提供将数据相转换成新的数据格式的应用自动路由的各种软件组件。计算设备架构800适用于部分由于形状因子、无线连通性、和/或电池供电操作而促进实现移动计算的计算实体。在一些配置中,计算设备包括但不限于移动电话、平板设备、板式设备、便携视频游戏设备等。计算设备架构800适用于在图7中所示出的客户端706中的任何一个。在至少一个示例中,客户端中的个体可以对应于第一计算实体104、第二计算谁提106等。此外,计算设备架构800的方面适用于传统台式计算机、便携计算机(例如,膝上型计算机、笔记本、超便携本、以及上网本)、服务器计算机、和其他计算机系统,例如在本文中参考图6所描述的那些计算系统。在至少一个示例中,计算设备架构800可以对应于拓扑信息服务器108。例如,在下文中所公开的单点触控和多点触控方面可以应用于台式计算机,所述台式计算机利用触摸屏或某一其他支持触摸的设备,例如具有触摸功能的跟踪板或支持触摸的鼠标。
在图8中所示出的计算设备架构800包括处理器802、存储器组件804、网络连通性组件806、传感器组件808、输入/输出组件810、以及电源组件812。在所示出的配置中,处理器802与存储器组件804、网络连通性组件806、传感器组件808、输入/输出(“I/O”)组件810、以及电源组件812进行通信。尽管没有示出在图8中所示出的个体组件之间的连接,但是所述组件可以交互以实行设备功能。在一些配置中,组件被设置以便经由一个或多个总线(未示出)来进行通信。
处理器802包括中央处理单元(“CPU”),其被配置为处理数据、执行一个或多个应用程序的计算机可执行指令、以及与计算设备架构800的其他组件进行通信以便执行在本文中所描述的各种功能。处理器802可以用于执行在本文中所呈现的软件组件的方面,并且特别地,执行至少部分地利用支持触摸的输入的软件组件的方面。
在一些配置中,处理器802包括图形处理单元(“GPU”),其被配置为加速由CPU所执行的操作,包括但不限于通过执行通用科学和/或工程计算应用以及诸如高分辨率视频(例如,720P、1080P、4K、以及更高的分辨率)、视频游戏、三维(3D)建模应用等之类的图形密集型计算应用而执行的操作。在一些配置中,处理器802被配置为与分立GPU(未示出)进行通信。在任何情况下,CPU和GPU可以根据协同处理CPU/GPU计算模型来配置,其中应用的串行部分在CPU上执行,并且计算密集型部分是由GPU加速的。
在一些配置中,处理器802是与在下文中所描述的其他组件中的一个或多个其他组件一同的片上系统(“SoC”)或者包括在所述片上系统中。例如,SoC可以包括处理器802、GPU、网络连通性组件806中的一个或多个、以及传感器组件808中的一个或多个。在一些配置中,部分地利用堆叠式封装(“PoP”)集成电路封装技术来制造处理器802。处理器802可以是单核处理器或多核处理器。
可以根据ARM架构来创建处理器802,所述ARM架构可用于从英联邦的剑桥市的ARM控股公司获得许可证。可替代地,可以根据x86架构来创建处理器802,例如从加利福尼亚州的Mountain View市的Intel公司或其他公司可获得。在一些配置中,处理器802是从加利福尼亚州San Diego市的高通公司可获得的SNAPDRAGON SoC、从加利福尼亚州Santa Clara市的NVIDIA公司可获得的TEGRA SoC、从韩国首尔市的SAMSUNG公司可获得的HUMMINGBIRDSoC、从Texas州的Dallas市的德州仪器公司可获得的开放多媒体应用平台(“OMAP”)SoC、上述SoC中任何一个的定制版本、或者专有SoC。
存储器组件804包括随机存取存储器(“RAM”)814、只读存储器(“ROM”)816、集成存储存储器(“集成存储”)818、以及可移动存储存储器(“可移动存储”)820。在一些配置中,RAM 814或其部分、ROM 816或其部分、和/或RAM 814与ROM 816的某一组合被集成在处理器802中。在一些配置中,ROM 816被配置为存储固件、操作系统或其部分(例如,操作系统内核)、和/或用于从集成存储818和/或可移动存储820加载操作系统内核的引导加载程序。
集成存储818可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。集成存储818可以被焊接或以其他方式连接至逻辑板,处理器802和在本文中所描述的其他组件也可以在该逻辑板上连接。由此,集成存储818被集成在计算设备中。集成存储818被配置为存储操作系统或其部分、应用程序、数据、和在本文中描述的其他软件组件。
可移动存储820可以包括固态存储器、硬盘、或固态存储器和硬盘的组合。在一些配置中,代替集成存储818而提供可移动存储820。在其他配置中,可移动存储820被提供为额外的可选存储器。在一些配置中,可移动存储820在逻辑上与集成存储818组合,以使得全部的可用存储器可使用为集成存储818和可移动存储820的总组合存储容量。在一些配置中,将集成存储818和可移动存储820的组合容量而不是将集成存储818和可移动存储820的分别的存储容量示出给用户。
可移动存储820被配置为插入到可移动存储存储器插槽(未示出)或其他机制中,可移动存储820利用该机制被插入并且被固定以促进通过其可移动存储820可以与诸如处理器802之类的计算设备的其他组件通信的连接。可移动存储820可以以各种存储器卡格式实施,包括但不限于,PC卡、压缩闪存卡、记忆棒、安全数字(“SD”)、迷你SD、微SD、通用集成电路卡(“UICC”)(例如,订阅者身份模块(“SIM”)或者通用SIM(“USIM”))、专有格式等。
可以理解的是,存储器组件804中的一个或多个可以存储操作系统。根据各种配置,操作系统包括但不限于来自SYMBIAN LIMITED的SYMBIAN OS、来自Washington州Redmond市的微软公司的WINDOWS MOBILE OS、来自微软公司的WINDOWS PHONE OS、来自微软公司的WINDOWS OS、来自California州Palo Alto市的惠普公司的PALM WEBOS、来自加拿大安大略省Waterloo市的RESEARCH IN MOTION有限公司的BLACKBERRY OS、来自加利福尼亚州Cupertino市的苹果公司的IOS、来自加利福尼亚州Mountain View市的GOOGLE有限公司的ANDROID OS。可以预期其他操作系统。
网络连通性组件806包括无线广域网组件(“WWAN组件”)822、无线局域网组件(“WLAN组件”)824、以及无线个域网组件(“WPAN组件”)826。网络连通性组件806促进往来于网络102或另一网络的通信,所述网络可以是WWAN、WLAN、或WPAN。尽管示出了网络102,但是网络连通性组件806可以促进与包括图7中的网络102的多个网络的同时通信。例如,网络连通性组件806可以促进经由WWAN、WLAN或WPAN中的一个或多个与多个网络的同时通信。
网络102可以是或可以包括WWAN,例如经由WWAN组件822利用一个或多个移动电信技术来向利用计算设备架构800的计算设备提供声音和/或数据服务的移动电信网络。移动电信网络技术可以包括但不限于移动通信全球系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA2000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)、以及全球微波接入互操作性(WiMAX)。此外,网络102可以利用各种信道来访问方法(其可以由或不能由前述标准使用),所述方法包括但不限于,时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。数据通信可以使用以下方法来提供:通用分组无线电服务(“GPRS”),用于全球演进的增强型数据速率(“EDGE”),包括高速下行链路分组访问(“HSDPA”)、增强型上行链路(“EUL”)、或者另外被称为高速上行链路分组访问(“HSUPA”)、演进型HSPA(“HSPA+”)的高速分组访问(“HSPA”)协议家族,LTE,以及各种其他当前的和未来的无线数据访问标准。网络102可以被配置为利用上文技术的任何组合来提供声音和/或数据通信。网络102可以被配置为或者被适配成根据后代的技术来提供声音和/或数据通信。
在一些配置中,WWAN组件822被配置为向网络102提供双-多模连通性。例如,WWAN组件822可以被配置为向网络102提供连通性,其中网络102经由GSM和UMTS技术或者经由技术的一些其他组合来提供服务。可替代地,多个WWAN组件822可以用于执行这样的功能,和/或提供额外的功能以支持其他非兼容(即,不能由单个WWAN组件支持)的技术。WWAN组件822可以促进类似的到多个网络(例如,UMTS网络和LTE网络)的连通性。
网络102可以是根据电气和电子工程师协会(“IEEE”)802.11标准中的一个或多个标准来操作的WLAN,所述标准例如IEEE 802.11a、802.11b、802.11g、802.11n、和/或未来的802.11标准(在本文中统称为WI-FI)。可以预期802.11标准草案。在一些配置中,利用一个或多个无线WI-FI接入点来实现WLAN。在一些配置中,无线WI-FI接入点中的一个或多个是具有到充当WI-FI热点的WWAN的连通性的另一计算设备。WLAN组件824被配置为经由WI-FI接入点而连接至网络102。可以经由各种加密技术来使这样的连接安全,所述技术包括但不限于:WI-FI保护接入(“WPA”)、WPA2、有线等效保密(“WEP”)等。
网络102可以是根据红外线数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-波、ZIGBEE、或某一其他短距无线技术来操作的WPAN。在一些配置中,WPAN组件826被配置为促进经由WPAN与诸如外围设备、计算机、或其他计算实体之类的其他设备进行通信。
传感器组件808包括磁力计828、环境光传感器830、接近度传感器832、加速度计834、陀螺仪836、以及全球定位系统传感器(“GPS传感器”)838。可以预期的是,例如但不限于温度传感器或震动检测传感器的其他的传感器也可以被包含在计算设备架构800中。
磁力计828被配置为测量磁场的强度和方向。在一些配置中,磁力计828提供了针对在存储组件804中的一个中存储的指南针应用程序的测量,以便在参考框架中给用户提供准确的方向,包括基本方向、北、南、东和西。可以向包括指南针组件的导航应用程序提供类似的测量。可以构想通过磁力计828获得的测量的其他使用。
环境光传感器830被配置为测量环境光。在一些配置中,环境光传感器830提供对存储在存储组件804内的应用程序的测量,以便自动地调整显示器的亮度(在下文描述)来针对低亮度和高亮度环境进行补偿。可以构想由环境光传感器830所获得的测量的其他使用。
接近度传感器832被配置为检测邻近于计算设备而不直接接触的对象或东西的存在。在一些配置中,接近度传感器832检测用户的身体(例如,用户的脸)的存在,并且将该信息提供给存储在存储组件804中的一个内的应用程序,该应用程序利用该接近度信息来启用或禁用计算设备的一些功能。例如,电话应用程序可以响应于接收邻近信息而自动地禁用触摸屏(下文描述的),以使得用户的脸不会无意地造成结束通话或者在通话期间启用/禁用电话应用程序之内的其他功能。可以构想如由接近度传感器832所检测到的接近度的其他使用。
加速度计834被配置为测量准确的加速度。在一些配置中,来自加速度计834的输出由应用程序用作输入机制以控制应用程序的一些功能。例如,应用程序可以是其中角色或其部分或者对象响应于经由加速度计834所接收的输入而被移动或者以其他方式被操纵的视频游戏。在一些配置中,向应用程序提供来自加速度计834的输出以用于在风景和肖像模式之间切换、计算协调加速度、或检测降落时使用。可以构想对加速度计834的其他使用。
陀螺仪836被配置为测量并保存朝向。在一些配置中,来自陀螺仪836的输出由应用程序用作输入机制以控制应用程序的一些功能。例如,陀螺仪836可以用于对视频游戏应用或某一其他应用的3D环境内的运动进行准确识别。在一些配置中,应用程序利用来自陀螺仪836和加速度计834的输出来增强对应用程序的一些功能的控制。可以构想对陀螺仪836的其他使用。
GPS传感器838被配置为从GPS卫星接收信号以用于在计算位置时使用。由GPS传感器838所计算的位置可以由需要位置信息或者从位置信息受益的任何应用程序使用。例如,由GPS传感器838计算的位置可以与导航应用程序一起使用,以提供从该位置到目的地的方向或者从目的地到该位置的方向。此外,GPS传感器838可以用于向诸如E911服务之类的基于外部位置的服务提供位置信息。GPS传感器838可以利用网络连通性组件806中的一个或多个来获得经由WI-FI、WIMAX、和/或的蜂窝三角测量技术所生成的位置信息,从而在获得位置定位时协助GPS传感器838。GPS传感器838还可以在辅助GPS(“A-GPS”)系统中使用。
I/O组件810包括显示器840、触摸屏842、数据I/O接口组件(“数据I/O”)844、音频I/O接口组件(“音频I/O”)846、视频I/O接口组件(“视频I/O”)848、以及相机850。在一些配置中,将显示器840和触摸屏842进行组合。在一些配置中,将数据I/O组件844、音频I/O组件846、和视频I/O组件848中的两个或更多个进行组合。I/O组件810可以包括被配置为支持在下文中所描述的各种接口的分立处理器,或者可以包括内置在处理器802中的处理功能。
显示器840是被配置为以可视的形式呈现信息的输出设备。特别地,显示器840可以呈现图形用户界面(“GUI”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、互联网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息、以及能够以可视的形式被呈现的任何其他信息。在一些配置中,显示器840是利用任何有源或无源矩阵技术和任何背光技术(如果使用的话)的液晶显示器(“LCD”)。在一些配置中,显示器840是有机发光二极管(“OLED”)显示器。可以构想其他显示器类型。
触摸屏842(也被称为“支持触摸的屏幕”)是被配置为检测触摸的存在和位置的输入设备。触摸屏842可以是电阻性触摸屏、电容性触摸屏、表面声波触摸屏、红外线触摸屏、光学成像触摸屏、分散信号触摸屏、声学脉冲识别触摸屏、或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏842作为透明层而被包含在显示器840顶部,以使得用户能够使用一次或多次触摸来与在显示器840上呈现的对象或其他信息进行交互。在其他配置中,触摸屏842是包含在不包括显示器840的计算设备的表面上的触摸板。例如,计算设备可以具有被包含在显示器840的顶部的触摸屏以及在显示器840对面的表面上的触摸板。
在一些配置中,触摸屏842是单点触摸触摸屏。在其他配置中,触摸屏842是多点触摸触摸屏。在一些配置中,触摸屏842被配置为检测不连续的触摸、单点触摸手势、和/或多点触摸手势。为了方便起见,在本文中将这些被统称为“手势”。现在将描述几个手势。应当理解的是,这些手势是说明性的并且不旨在限制所附权利要求的范围。此外,所描述的手势、额外的手势、和/或可替代的手势可以以软件来实现以与触摸屏842一同使用。由此,开发者可以创建专用于特定应用程序的手势。
在一些配置中,触摸屏842支持轻击手势,其中,用户在呈现在显示器840上的项目上轻击触摸屏842一次。轻击手势可以用于各种原因,包括但不限于,打开或启动任何用户所点击的内容。在一些配置中,触摸屏842支持双击手势,其中用户在呈现在显示器840上的项目上点击触摸屏842两次。双击手势可以用于各种原因,包括但不限于,分阶段地缩小或放大。在一些配置中,触摸屏842支持点击并保持的手势,其中用户点击触摸屏842并保持接触达至少预先定义的时间。点击和保持手势可以用于各种原因,包括但不限于,打开特定于上下文的菜单。
在一些配置中,触摸屏842支持平移手势,其中用户将手指放在触摸屏842上并且在将手指在触摸屏842上移动的同时保持与触摸屏842的接触。平移手势可以用于各种原因,包括但不限于,以受控制的速率移动通过屏幕、图像、或菜单。还可以构想多个手指平移手势。在一些配置中,触摸屏842支持轻弹手势,其中用户在用户想要屏幕移动的方向上滑动手指。轻弹手势可以用于各种原因,包括但不限于,水平地或垂直地滚动通过菜单或页面。在一些配置中,触摸屏842支持捏合和伸展手势,其中用户使用两个手指(例如,拇指和食指)在触摸屏842上进行捏合运动或将两个手指移动分开。捏合和伸展手势可以用于各种原因,包括但不限于逐渐缩小或放大网站、地图、或图片。
尽管已经参考用于执行手势的一个或多个手指的使用而呈现了在上文中所描述的手势,但是诸如脚趾之类的其他附属物或者诸如触摸笔之类的对象可以用于与触摸屏842交互。由此,上文的手势应该被理解为是说明性的而不应该被解释为以任何方式进行限制。
数据I/O接口组件844被配置为促进向计算设备输入数据以及从计算设备输出数据。在一些配置中,数据I/O接口组件844包括被配置为例如出于同步操作的目的而在计算设备与计算机系统之间提供有线连通性的连接器。连接器可以是专有连接器或者标准化连接器,例如USB、微USB、迷你USB等。在一些配置中,连接器是用于将计算设备与诸如扩展坞、音频设备(例如,数字音乐播放机)、或视频设备之类的另一设备计算设备对接的底座连接器。
视频I/O接口组件846被配置为向计算设备提供音频输入和/或输出功能。在一些配置中,音频I/O接口组件846包括被配置为收集音频信号的麦克风。在一些配置中,音频I/O接口组件846包括被配置为提供针对耳机或其他外部扬声器的连通性的耳机插孔。在一些配置中,音频I/O接口组件846包括针对音频信号输出的扬声器。在一些配置中,音频I/O接口组件846包括光学音频电缆固定。
视频I/O接口组件848被配置为向计算设备提供视频输入和/或输出功能。在一些配置中,视频I/O接口组件848包括视频连接器,其被配置为将来自另一设备(例如,诸如DVD或蓝光播放机之类的视频媒体播放机)的视频作为输入来接收或者向另一设备(例如,监视器、电视、或某一其他外部显示器)发送视频作为输出。在一些配置中,视频I/O接口组件848包括用于输入/输出视频内容的高分辨率多媒体接口(“HDMI”)、迷你HDMI、微HDMI、显示端口、或者专有连接器。在一些配置中,视频I/O接口组件846或其部分与音频I/O接口组件848或其部分相结合。
相机850可以被配置为捕获静态图像和/或视频。相机850可以利用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些配置中,相机850包括用于在低亮度环境中协助拍照的闪光灯。针对相机850的设置可以被实现为硬件或软件按钮。
尽管未示出,但一个或多个硬件按钮也可以被包括在计算设备架构800中。硬件按钮可以用于控制计算设备的一些操作性方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
所示出的电源组件812包括一个或多个电池852,其可以连接至电池电量计854。电池852可以是可充电的或可丢弃的。可充电电池类型包括但不限于锂聚合物、锂离子、镍镉、镍氢。电池852中的每个可以由一个或多个单元组成。
电池电量计854可以被配置为测量诸如电流、电压、和温度之类的电池参数。在一些配置中,电池电量计854被配置为测量电池的放电速率效应、温度、使用年限、和其他因素,以在某一误差百分比之内预测剩余寿命。在一些配置中,电池电量计854提供了对被配置为使用上述测量来向用户呈现有用的电源管理的应用程序的测量。电源管理数据可以包括以下中的一个或多个:使用的电池百分比、剩余的电池百分比、电池状况、剩余时间、剩余容量(例如,以瓦时为单位)、电流消耗、以及电压。
电源组件812还可以包括电源连接器,其可以与前述I/O组件810中的一个或多个相结合。电源组件812可以经由电源I/O组件与外部电源系统或充电设备接合。
在本文中所呈现的公开可以根据以下条款来考虑。
A、第一计算实体,包括:处理器;与所述处理器进行通信的计算机可读存储介质,所述计算机可读存储介质具有存储在其上的计算机可执行指令,所述计算机可执行指令当由所述处理器执行时,使得所述第一计算实体执行以下操作:从可通信地耦合至所述第一计算实体的拓扑信息服务器访问应用信息数据,所述应用信息数据对应于与可通信地耦合至所述拓扑信息服务器的所述第一计算实体或个体第二计算实体相关联的应用;至少部分地基于访问所述应用信息数据来生成图形,所述图形包括与用于将数据项从当前数据格式转换至期望的数据格式的应用中的个体应用相关联的一个或多个路由路径;确定用于将所述数据项从所述当前数据格式转换至所述期望的数据格式的所述一个或多个路由路径中的路由路径;以及至少部分地基于以下内容将请求路由至所述第一计算实体和所述个体第二计算实体中的至少一个:向所述个体第二计算实体中的一个个体第二计算实体发送请求,所述请求包括所述数据项以及指定将所述数据项从所述当前数据格式转换至新的数据格式的指令;以及从所述个体第二计算实体中的所述一个个体第二计算实体接收对所述请求的响应,所述响应包括采用所述新的数据格式的数据项。
B、根据段落A所述的第一计算实体,其中,所述应用信息数据包括至少指示以下内容的数据:每个个体应用被配置为读取的输入数据格式、每个个体应用被配置为写入的输出数据格式、以及与将个体数据项从所述输入数据格式转换至所述输出数据格式相关联的时间。
C、根据段落A或B中的一项所述的第一计算实体,其中,生成所述图形包括:确定与所述数据项的所述当前数据格式相对应的输入节点;确定与所述数据项的所述期望的数据格式相对应的输出节点;确定从所述输入节点到与被配置为读取采用所述当前数据格式的数据项的个体应用相对应的第一应用节点的第一边;以及至少部分地基于与所述第一应用节点相关联的输出来确定从所述第一应用节点到第二应用节点或所述输出节点的第二边。
D、根据段落C所述的第一计算实体,其中:所述一个或多个路由路径中的每个路由路径至少包括所述输入节点、所述输出节点、所述第一边、和所述第二边;并且每个路由路径与用于将所述数据项从所述当前数据格式转换成所述期望的数据格式的时间相关联。
E、根据段落D所述的第一计算实体,其中,确定所述路由路径是至少部分地基于确定用于将所述数据项从所述当前数据格式转换至所述期望的数据格式的与所述路由路径相关联的所述时间低于阈值时间的。
F、根据段落C所述的第一计算实体,其中,所述第一应用节点和所述第二应用节点与不同的计算实体相关联。
G、根据段落A-F中任何一项所述的第一计算实体,其中,所述第一计算实体还被配置为至少部分地基于接收对所述请求的所述响应,确定所述新的数据格式是所述期望的数据格式。
H、根据段落A-G中任何一项所述的第一计算实体,其中,所述第一计算实体还被配置为:至少部分地基于接收对所述请求的所述响应,确定所述新的数据格式为不是所述当前数据格式或所述期望的数据格式的中间数据格式;确定与所述第一计算实体相关联的所述应用中的一个或多个个体应用没有被配置为将所述数据项从所述中间数据格式转换至所述期望的数据格式;向所述个体第二计算实体中的其他个体第二计算实体迭代地发送随后的请求;并且迭代地从所述其他个体第二计算实体接收对所述随后的请求的随后的响应。
I、根据段落H所述的第一计算实体,其中,所述第一计算实体还被配置为:确定所述随后的响应中的随后的响应包括采用所述期望的数据格式的所述数据项;以及终止向所述其他个体第二计算实体迭代地发送所述随后的请求。
J、根据段落A-I中的任何一项所述的第一计算实体,其中,所述第一计算实体还被配置为:至少部分地基于接收对所述请求的所述响应,确定所述新的数据格式为不是所述当前数据格式或所述期望的数据格式的中间数据格式;确定与所述第一计算实体相关联的所述应用中的一个或多个个体应用被配置为将所述数据项从所述中间数据格式转换至所述期望的数据格式;以及执行所述一个或多个个体应用中的应用以将所述数据项从所述中间数据格式转换至所述期望的数据格式。
K、一种系统包括:拓扑信息服务器,其被配置为存储与个体计算实体相关联的经聚合的应用信息数据;所述个体计算实体中的第一个体计算实体,其被配置为:访问经聚合的应用信息数据;以及至少部分地基于经聚合的应用信息数据来确定用于将数据项从当前数据格式转换至期望的数据格式的路由路径;以及所述个体计算实体中的第二个体计算实体,其被配置为:从第一个体计算实体接收第一通信,所述第一通信包括数据项以及用于将数据项从当前数据格式转换至新的数据格式的第一请求;以及执行第一应用,以将数据项从当前数据格式转换至新的数据格式。
L、根据段落K所述的系统,其中,所述拓扑信息服务器还被配置为:从所述个体计算实体接收应用信息数据,所述应用信息数据至少包括:与所述个体计算实体中的个体计算实体相关联的个体应用被配置为读取的输入数据格式,所述个体应用被配置为写入的输出数据格式,以及与将个体数据项从输入数据格式转换至输出数据格式相关联的时间;将从所述个体计算实体接收的应用信息数据聚合以生成经聚合的应用信息数据;以及以预定的频率或至少部分地基于触发事件的发生向个体计算资源发送经聚合的应用信息数据。
M、根据段落K或L中的任何一项所述的系统,其中,所述第一个体计算实体至少部分地基于对图形进行构建来确定路由路径,所述图形包括用于经由各自与个体计算实体中的不同的个体计算实体相关联的两个或更多个应用将数据项从当前数据格式转换至期望的数据格式的多个路由路径。
N、根据段落K-M中的任何一项所述的系统,其中,所述第二个体计算实体还被配置为:确定新的数据格式不是期望的数据格式;至少部分地基于确定新的数据格式不是期望的数据格式,确定第二个体计算实体没有被配置为将数据项从新的数据格式转换至期望的数据格式;以及向第一个体计算实体或所述个体计算实体中的第三个体计算实体发送第二通信,所述第二通信包括该数据项以及用于将数据项从新的数据格式转换至期望的数据格式的第二请求。
O、如段落K-N中的任何一项所述的系统,还包括所述个体计算实体中的第三个体计算实体,所述第三个体计算实体被配置为:从所述第二个体计算实体接收第二通信,所述第二通信包括用于将数据项从新的数据格式转换至期望的数据格式的第二请求;执行所述第二应用以将数据项从新的数据格式转换至期望的数据格式;以及向所述第一计算实体发送第三通信,所述第三通信包括期望的数据格式的数据项。
P、一种用于将数据项从当前格式转换至期望的格式的计算机实现的方法,所述计算机实现的方法包括计算机实现的操作,所述计算机实现的操作用于:访问与多个应用相关联的应用信息数据;至少部分地基于所述应用信息数据来确定所述多个应用中的一个或多个应用,所述一个或多个应用至少部分地基于连续执行所述一个或多个应用,将所述数据项从所述当前数据格式转换至所述期望的数据格式;向所述一个或多个应用中的第一应用发送所述数据项以及用于将所述数据项从所述当前数据格式转换至所述新的数据格式第一请求;以及接收对所述第一请求的第一响应,所述第一响应包括采用所述新的数据格式的数据项。
Q、根据段落P所述的计算机实现的方法,其中,所述新的数据格式包括所述期望的数据格式。
R、根据段落P或Q中的任何一项所述的计算机实现的方法,其中:所述新的数据格式包括在所述当前数据格式与所述期望的数据格式之间的中间数据格式;以及所述计算机实现的方法还包括计算机实现的操作,所述计算机实现的操作用于:向所述一个或多个应用中的第二应用发送用于将所述数据项从所述中间数据格式转换至所述期望的数据格式的第二请求;接收对所述第二请求的第二响应,所述第二响应包括采用所述期望的数据格式的数据项。
S、根据段落R所述的计算机实现的方法,其中,所述第一应用与第一计算实体相关联,而所述第二应用与第二计算实体相关联。
T、根据段落P-S中的任何一项所述的计算机实现的方法,其中:所述新的数据格式包括在所述当前数据格式与所述期望的数据格式之间的第一中间数据格式;并且所述计算机实现的方法还包括计算机实现的操作,所述计算机实现的操作用于:向所述一个或多个应用中的第二应用发送用于将所述数据项从所述第一中间数据格式转换至第二中间数据格式的第二请求;接收对所述第二请求的第二响应,所述第二响应包括采用所述第二中间数据格式的数据项;向所述一个或多个应用中的其他应用发送用于将所述数据项转换成所述期望的数据格式的随后的请求;以及接收对所述随后的请求中的随后的请求的随后的响应,所述随后的响应包括采用所述期望的数据格式的数据项。
U、编码有指令的一个或多个计算机可读介质,所述指令当由处理器执行时,将计算机配置为执行根据段落P-T中的任何一项所述的方法。
V、一种设备,其包括一个或多个处理器以及编码有指令的一个或多个计算机可读介质,所述指令当由一个或多个处理器执行时,将计算机配置为执行根据段落P-T中的任何一项所述的计算机实现的方法。
W、一种用于将数据项从当前格式转换至期望的格式的计算机实现的方法,所述计算机实现的方法包括计算机实现的操作,包括:用于访问与多个应用相关联的应用信息数据的模块;用于至少部分地基于应用信息数据确定至少部分地基于连续执行一个或多个应用将数据项从当前数据格式转换至期望的数据格式的多个应用中的一个或多个应用的模块;用于向一个或多个应用中的第一应用发送数据项以及用于将数据项从当前数据格式转换至新的数据格式的第一请求的模块;以及用于接收对第一请求的第一响应的模块,所述第一响应包括采用新的数据格式的数据项。
X、根据段落W所述的计算机实现的方法,其中,所述新的数据格式包括期望的数据格式。
Y、根据段落W或X中的任何一项所述的计算机实现的方法,其中:所述新的数据格式包括在当前数据格式与期望的数据格式之间的中间数据格式;并且计算机实现的方法还包括计算机实现的操作,包括:用于向一个或多个应用中的第二应用发送用于将数据项从中间数据格式转换至期望的数据格式的第二请求的模块;以及用于接收对第二请求的第二响应的模块,所述第二响应包括采用期望的数据格式的数据项。
Z、根据段落Y所述的计算机实现的方法,其中,第一应用与第一计算实体相关联,而第二应用与第二计算实体相关联。
AA、根据段落W-Z中的任何一项所述的计算机实现的方法,其中:新的数据格式包括在当前数据格式与期望的数据格式之间的第一中间数据格式;并且计算机实现的方法还包括计算机实现的操作,包括:用于向一个或多个应用中的第二应用发送用于将数据项从第一中间数据格式转换至第二中间数据格式的第二请求的模块;用于接收对第二请求的第二响应的模块,所述第二响应包括采用第二中间数据格式的数据项;向一个或多个应用中的其他应用发送用于将数据项转换至期望的数据格式的随后的请求;以及用于接收对随后请求中的随后请求的随后响应的模块,所述随后响应包括采用期望的数据格式的数据项。
基于前述内容,应当理解的是,在本文中已经公开了提供用于将数据项转换至新的数据格式的应用自动路由的概念和技术。尽管已经用特定于计算机结构特征、方法和转换动作、具体的计算机器、以及计算机可读介质的语言描述了在本文中所呈现的主题,但应当理解的是,在所附权利要求中所定义的本发明不一定限于在本文中所描述的具体特征、动作、或介质。相反,具体的特征、动作和介质是作为实现权利要求书的示例性形式而公开的。
在上文中所描述的主题仅通过说明的方式提供并且不应被理解为进行限制。可以在不遵守所示出和描述的示例配置和应用的情况下对在本文中所描述的主题进行各种修改和改变,而不脱离在以下的权利要求中阐述的本发明的真正精神和范围。

Claims (15)

1.第一计算实体,包括:
处理器;
与所述处理器进行通信的计算机可读存储介质,所述计算机可读存储介质具有存储在其上的计算机可执行指令,所述计算机可执行指令当由所述处理器执行时,使得所述第一计算实体执行以下操作:
从可通信地耦合至所述第一计算实体的拓扑信息服务器访问应用信息数据,所述应用信息数据对应于与可通信地耦合至所述拓扑信息服务器的所述第一计算实体或个体第二计算实体相关联的应用;
至少部分地基于访问所述应用信息数据来生成图形,所述图形包括与用于将数据项从当前数据格式转换至期望的数据格式的应用中的个体应用相关联的一个或多个路由路径;
确定用于将所述数据项从所述当前数据格式转换至所述期望的数据格式的所述一个或多个路由路径中的路由路径;以及
至少部分地基于以下内容将请求路由至所述第一计算实体和所述个体第二计算实体中的至少一个:
向所述个体第二计算实体中的一个个体第二计算实体发送请求,所述请求包括所述数据项以及指定将所述数据项从所述当前数据格式转换至新的数据格式的指令;以及
从所述个体第二计算实体中的所述一个个体第二计算实体接收对所述请求的响应,所述响应包括采用所述新的数据格式的数据项。
2.根据权利要求1所述的第一计算实体,其中,所述应用信息数据包括至少指示以下内容的数据:每个个体应用被配置为读取的输入数据格式、每个个体应用被配置为写入的输出数据格式、以及与将个体数据项从所述输入数据格式转换至所述输出数据格式相关联的时间。
3.根据权利要求1或2中的任一项所述的第一计算实体,其中,生成所述图形包括:
确定与所述数据项的所述当前数据格式相对应的输入节点;
确定与所述数据项的所述期望的数据格式相对应的输出节点;
确定从所述输入节点到与被配置为读取采用所述当前数据格式的数据项的个体应用相对应的第一应用节点的第一边;以及
至少部分地基于与所述第一应用节点相关联的输出来确定从所述第一应用节点到第二应用节点或所述输出节点的第二边。
4.根据权利要求3所述的第一计算实体,其中:
所述一个或多个路由路径中的每个路由路径至少包括所述输入节点、所述输出节点、所述第一边、和所述第二边;并且
每个路由路径与用于将所述数据项从所述当前数据格式转换成所述期望的数据格式的时间相关联。
5.根据权利要求4所述的第一计算实体,其中,确定所述路由路径是至少部分地基于确定用于将所述数据项从所述当前数据格式转换至所述期望的数据格式的与所述路由路径相关联的所述时间低于阈值时间的。
6.根据权利要求3所述的第一计算实体,其中,所述第一应用节点和所述第二应用节点与不同的计算实体相关联。
7.根据权利要求1-6中任何一项所述的第一计算实体,其中,所述第一计算实体还被配置为至少部分地基于接收对所述请求的所述响应,确定所述新的数据格式是所述期望的数据格式。
8.根据权利要求1-6中任何一项所述的第一计算实体,其中,所述第一计算实体还被配置为:
至少部分地基于接收对所述请求的所述响应,确定所述新的数据格式为不是所述当前数据格式或所述期望的数据格式的中间数据格式;
确定与所述第一计算实体相关联的所述应用中的一个或多个个体应用没有被配置为将所述数据项从所述中间数据格式转换至所述期望的数据格式;
向所述个体第二计算实体中的其他个体第二计算实体迭代地发送随后的请求;以及
迭代地从所述其他个体第二计算实体接收对所述随后的请求的随后的响应。
9.根据权利要求8所述的第一计算实体,其中,所述第一计算实体还被配置为:
确定所述随后的响应中的随后的响应包括采用所述期望的数据格式的所述数据项;以及
终止向所述其他个体第二计算实体迭代地发送所述随后的请求。
10.根据权利要求1-9中的任何一项所述的第一计算实体,其中,所述第一计算实体还被配置为:
至少部分地基于接收对所述请求的所述响应,确定所述新的数据格式为不是所述当前数据格式或所述期望的数据格式的中间数据格式;
确定与所述第一计算实体相关联的所述应用中的一个或多个个体应用被配置为将所述数据项从所述中间数据格式转换至所述期望的数据格式;以及
执行所述一个或多个个体应用中的应用以将所述数据项从所述中间数据格式转换至所述期望的数据格式。
11.一种用于将数据项从当前格式转换至期望的格式的计算机实现的方法,所述计算机实现的方法包括用于执行以下各项的计算机实现的操作:
访问与多个应用相关联的应用信息数据;
至少部分地基于所述应用信息数据来确定所述多个应用中的一个或多个应用,所述一个或多个应用至少部分地基于连续执行所述一个或多个应用,将所述数据项从所述当前数据格式转换至所述期望的数据格式;
向所述一个或多个应用中的第一应用发送所述数据项以及用于将所述数据项从所述当前数据格式转换至所述新的数据格式第一请求;以及
接收对所述第一请求的第一响应,所述第一响应包括采用所述新的数据格式的数据项。
12.根据权利要求11所述的计算机实现的方法,其中,所述新的数据格式包括所述期望的数据格式。
13.根据权利要求11或12中的任一项所述的计算机实现的方法,其中:
所述新的数据格式包括在所述当前数据格式与所述期望的数据格式之间的中间数据格式;以及
所述计算机实现的方法还包括用于执行以下各项的计算机实现的操作:
向所述一个或多个应用中的第二应用发送用于将所述数据项从所述中间数据格式转换至所述期望的数据格式的第二请求;
接收对所述第二请求的第二响应,所述第二响应包括采用所述期望的数据格式的数据项。
14.根据权利要求13所述的计算机实现的方法,其中,所述第一应用与第一计算实体相关联,而所述第二应用与第二计算实体相关联。
15.根据权利要求11-14中的任何一项所述的计算机实现的方法,其中:
所述新的数据格式包括在所述当前数据格式与所述期望的数据格式之间的第一中间数据格式;并且
所述计算机实现的方法还包括用于执行以下各项的计算机实现的操作:
向所述一个或多个应用中的第二应用发送用于将所述数据项从所述第一中间数据格式转换至第二中间数据格式的第二请求;
接收对所述第二请求的第二响应,所述第二响应包括采用所述第二中间数据格式的数据项;
向所述一个或多个应用中的其他应用发送用于将所述数据项转换成所述期望的数据格式的随后的请求;以及
接收对所述随后的请求中的随后的请求的随后的响应,所述随后的响应包括采用所述期望的数据格式的数据项。
CN201680055088.4A 2015-09-22 2016-09-15 应用自动路由框架 Withdrawn CN108141467A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/861,457 US20170083594A1 (en) 2015-09-22 2015-09-22 Application autorouting framework
US14/861,457 2015-09-22
PCT/US2016/051797 WO2017053153A1 (en) 2015-09-22 2016-09-15 Data autorouting framework for data formats conversion

Publications (1)

Publication Number Publication Date
CN108141467A true CN108141467A (zh) 2018-06-08

Family

ID=57124096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680055088.4A Withdrawn CN108141467A (zh) 2015-09-22 2016-09-15 应用自动路由框架

Country Status (4)

Country Link
US (1) US20170083594A1 (zh)
EP (1) EP3353992A1 (zh)
CN (1) CN108141467A (zh)
WO (1) WO2017053153A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198219B2 (en) * 2017-05-30 2019-02-05 Ati Technologies Ulc Method and apparatus for en route translation in solid state graphics systems
CN111953640B (zh) * 2019-05-17 2024-08-02 阿里巴巴集团控股有限公司 通信方法、通信系统、云节点和可读存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5251314A (en) * 1990-06-07 1993-10-05 International Business Machines Corporation System for converting from one document type to a plurality of document types allowing accurate reversal therefrom using tables containing indications regarding non-transformable elements
US5283887A (en) * 1990-12-19 1994-02-01 Bull Hn Information Systems Inc. Automatic document format conversion in an electronic mail system based upon user preference
US5513323A (en) * 1991-06-14 1996-04-30 International Business Machines Corporation Method and apparatus for multistage document format transformation in a data processing system
US6339775B1 (en) * 1997-11-07 2002-01-15 Informatica Corporation Apparatus and method for performing data transformations in data warehousing
US6092114A (en) * 1998-04-17 2000-07-18 Siemens Information And Communication Networks, Inc. Method and system for determining the location for performing file-format conversions of electronics message attachments
US7046691B1 (en) * 1999-10-04 2006-05-16 Microsoft Corporation Methods and systems for dynamic conversion of objects from one format type to another format type by selectively using an intermediary format type
US7065588B2 (en) * 2001-08-10 2006-06-20 Chaavi, Inc. Method and system for data transformation in a heterogeneous computer system
US20110191358A1 (en) * 2010-01-29 2011-08-04 Kuan-Lin Kuo File format conversion system and method thereof
US9705986B2 (en) * 2014-06-18 2017-07-11 Alfresco Software, Inc. Elastic scalability of a content transformation cluster
US10133798B2 (en) * 2014-06-18 2018-11-20 Alfresco Software, Inc. Content transformations using a transformation node cluster

Also Published As

Publication number Publication date
WO2017053153A1 (en) 2017-03-30
EP3353992A1 (en) 2018-08-01
US20170083594A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
CN109997136B (zh) 使用定位数据的多因素认证方法
CN104541271B (zh) 从电子表格数据生成场景和游览
US10146402B2 (en) User terminal device for displaying different content for an application based on selected screen and display method thereof
CN106575360B (zh) 图表数据的增强识别
US10521251B2 (en) Hosting application experiences within storage service viewers
CN105593803B (zh) 自动滚动区域
US20180060601A1 (en) Location-based access control of secured resources
CN108369595B (zh) 可收集数据结构的可扩展性
CN107113292A (zh) 以增强的安全性存储加密的数据
CN104067215B (zh) 呈现数据驱动表单
CN108028857A (zh) 智能通知
CN104737185A (zh) 用于具有伴随的备注的交互式幻灯片演示的阅读模式
US11526322B2 (en) Enhanced techniques for merging content from separate computing devices
US10719498B2 (en) Enhanced management capabilities for collectable data structures
CN108141702A (zh) 上下文知晓的位置共享服务
CN105934756A (zh) 索引电子表格结构属性以供搜索
CN106537382B (zh) 查询建议
CN108292332A (zh) 利用第三方数据和元数据来扩展联合图
US20180143024A1 (en) Automated generation of indoor map data
CN108885640A (zh) 生成服务应用
EP4272416A1 (en) Interim connections for providing secure communication of content between devices
CN108141467A (zh) 应用自动路由框架
CN107810489A (zh) 应用与设备之间的无缝转换
US11539828B2 (en) User interface process flow for posting content on a display device
CN105745648A (zh) 桌面页和移动页之间的不平衡映射

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20180608

WW01 Invention patent application withdrawn after publication