管理文件转换的技术的制作方法

文档序号:6366989阅读:223来源:国知局
专利名称:管理文件转换的技术的制作方法
技术领域
本发明涉及管理文件转换的技术。
背景技术
文件转换系统可将计算机文件在各文件格式之间转换。当将文件从一种文件格式转换为另一种文件格式时,存在用户感兴趣的两种主要情形(I)能够以异步方式一次转换许多文件的高吞吐量转换操作;以及(2)能够以同步方式立即转换一个文件的低等待时间转换操作。高吞吐量转换操作是为需要转换许多文件的情形设计的,其中用户不需要转换立即发生。低等待时间转换操作适合于其中需要转换一个文件的情形,其中用户需要到转换操作的某种立即性(immediacy)。具有能适应两种情形的系统需要跨两种类型的转换请求的资源分配的特殊考虑。除了处理不同转换情形之外,文件转换系统需要计入跨相同服务器资源内的多个承租人的资源分配。换言之,如果公司A和公司B均使用相同的服务 器资源,则文件转换系统需要以不导致一个公司垄断所有资源的方式适应来自两个公司的请求。本发明的改进正是针对这些和其他考虑事项而需要的。

发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。实施例一般涉及文件转换系统。一些实施例尤其涉及被安排为使用相同组服务器资源来执行从一种文件格式到另一种文件格式的高吞吐量和低等待时间的文件转换的文件转换系统。此外,该文件转换服务能够使用该相同组服务器资源来适应来自多个客户端的多个文件转换请求,包括高吞吐量和低等待时间请求。对其他实施例也予以描述并要求保护。通过阅读下面的详细描述并参考相关联的附图
,这些及其它特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。附图简述图I示出第一文件转换系统的一实施例。图2A示出第二文件转换系统的一实施例。图2B示出具有负载平衡器的第二文件转换系统的一实施例。图3不出适于实现第一和第二转换系统的分布式系统的一实施例。图4示出文件转换的逻辑流程的一实施例。图5示出了计算架构的一实施例。图6示出通信架构的一实施例。
具体实施例方式实施例涉及被安排为实现增强的文件转换技术的文件转换系统、服务或应用,该技术被安排为基于一组给定转换参数来处理不同类型的文件转换。文件转换系统通常是为不同使用情形而设计的,范围从大量文件的批量处理到单一文件。文件转换参数的示例可包括而不限于文件的数量、转换时间或等待时间、资源分配、文件优先级、安全性、文件类型、请求类型等等。在一个实施例中,文件转换系统可被安排为使用相同组服务器资源来执行从一种文件格式到另一种文件格式的高吞吐量和低等待时间的文件转换。此外,该文件转换服务能够使用该相同组服务器资源来适应来自多个客户端的多个文件转换请求,包括高吞吐量和低等待时间请求。在各实施例中,文件转换系统可被安排为基于文件转换请求类型来分配文件转换资源。此外,该文件转换系统可被安排为跨多个客户端(有时被称为“承租人”)分配文件转换资源。此外,该文件转换系统可被安排为用适应多个承租人的系统来确保对承租人资 源的保护和隐私。最终,该文件转换系统可被安排为基于被分配给文件转换请求的优先级水平来处理这些请求。各实施例具有超越常规文件转换技术的若干优点。例如,常规文件转换服务通常需要实现该文件转换技术的特定产品或平台所使用的对象模型的底层知识。这是因为大多数文件转换服务与底层产品或平台紧密集成。这种要求意味着开发者被限制为在利用给定服务时总是在该底层平台的上下文中工作。处理给定产品或平台之外的文件的唯一方式是首先使所述文件与该产品或平台集成,这增加了额外的复杂度和性能考虑。与物理文件一起使用的当前模型的另一个问题在于存在其中服务的输出不是解决方案的最终输出的若干服务情形。在这些特定情况下,开发者被迫人工清洁该服务所创建的中间文件。这意味着当前设计的性能损失,因为比必要的更多地访问内容数据库。使异步服务的情况更糟糕的是没有关于何时服务操作已被完成的事件或指示。这种限制使得创建事件或触发器非常困难。另一个问题是文件转换服务通常是为特定类型的服务而设计的,该服务要么是异步服务要么是同步服务。异步服务依赖计时器来启动文件转换,使得处理立即理解处理的同步文件服务请求很困难或不可能。相反,同步请求必须等待计时器指示服务操作何时被触发。在一些异步系统中,等待时间可以是从数分钟到数小时的任何值。尽管计时器基于作业的设计和行为对于批量操作情形工作得很好,然而这种设计对于涉及更小数量的文档的操作情形无法工作。各实施例详述了增强的文件转换技术,以解决这些以及其他问题,以使得文件转换服务在更多端到端情形中更加稳健并且可用。该增强的文件转换技术可适用于许多使用情形。例如,假定打印机公司期望添加将允许文档的“云打印”的新服务。此服务将允许打印机具有其自己的电子邮件地址。然后用户将能够经由附件将文档通过电子邮件发送给打印机,然后该文档可被打印。打印操作需要跟从应用的人工打印操作一样快。然而由于对无人值守自动化特征的不支持性,该打印机公司不想要为他们的服务器上的文档而使应用客户端自动化以执行打印操作。相反,该打印机公司可实现该增强的文件转换技术以在服务器上执行从源文件格式到目标文件格式的快速文件转换操作,然后可使用该目标文件格式来完成打印操作。在另一示例中,假定数字出版公司期望添加将允许用户在专有数字“电子书”阅读器设备上阅读某些文档的新服务。此服务将允许用户经由附件将文档通过电子邮件发送到电子书服务,然后该电子书服务能够将该文档转换为该数字电子书阅读器设备所支持的格式。该电子书服务需要尽量快以便用户不需等待阅读他们所请求的文档。该数字出版公司可实现该增强的文件转换技术以创建适当的电子书格式。在又一示例中,假定一公司期望在不同语言之间翻译文档。翻译服务将能够翻译整个库或一次性文档。对于一次性文档的情况,该翻译服务需要是按需式(on demand)的,S卩,立即完成。该增强的文件转换技术能够执行任何必要的文件格式转换以便于语言翻译。这些仅是几个示例性的使用情形,也存在其他使用情形。
图I示出文件转换系统100的框图。在一个实施例中,例如,文件转换系统100可包括具有多个组件的计算机实现的文件转换系统。如此处所使用的,术语“系统”和“组件”旨在指代与计算机相关的实体,包括硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可被实现为在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在服务器上运行的应用和该服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以视给定实现所需而位于一台计算机上和/或分布在两台或更多的计算机之间。各实施例不限于该上下文。在图I中示出的所示实施例中,文件转换系统100可被实现成集中式或分布式架构中的一个或多个电子设备的一部分。电子设备的示例可包括但不限于,移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设备、web设备、游戏设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。虽然图I中示出的文件转换系统100具有按照某种拓扑结构的有限数量的元素,但可以理解,文件转换系统100可以视给定实现的需要而包括按照替代拓扑结构的更多或更少元素。在各实施例中,文件转换系统100可在任何计算设备或平台(诸如服务器)上执行。贯穿本说明书,术语“平台”可以是用于结合客户端设备(诸如个人计算机或移动设备)管理映射操作的软件和硬件组件的组合。平台的示例包括但不限于,在多个服务器上执行的托管服务或“云计算服务”、在单个服务器上执行的应用以及类似系统。术语“服务器”一般指通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器还可以被实现为在被视作网络上的服务器的一个或多个计算设备上执行的虚拟服务器(软件程序)。附加地或替代地,文件转换系统100可以在移动设备上执行,移动设备诸如智能电话、手持计算机、无线个人数字助理(PDA)、支持映射应用的蜂窝电话、车载计算设备和提供适于如前所述的文件转换系统100的环境的其他电子设备。各实施例不限于该上下文。在图I中示出的所示实施例中,文件转换系统100可包括文件转换系统200,该文件转换系统200接受一个或多个文件110作为输入,并提供一个或多个相应的经转换的文件130作为输出。换言之,每个文件110通常具有相应的经转换的文件130。文件110可以是根据第一数据格式或数据模式(data schema)生成和/或存储的计算机文件。经转换的文件130可以是根据第二数据格式或数据模式生成和/或存储的计算机文件。在一个实施例中,例如,文件110、130共享相同或类似的内容,而第一和第二数据格式彼此不同。在一个实施例中,例如,文件110、130共享相同或类似的数据格式和不同的媒体内容(例如,语言翻译)。在一个实施例中,例如,文件110、130具有不同的内容和不同的数据格式。各实施例不限于该上下文。文件转换系统100响应于至少两种类型的文件转换请求而执行文件转换(I)异步请求;以及(2)同步请求。文件转换系统100能够使用一组共享的文件转换资源来处理这两种类型的请求。文件转换资源可包括一个或多个设备、设备组件(例如,处理器、存储器单元、接口等)、网络、网络组件等等。异步文件转换请求是在定义的时间间隔对文件转换的请求。换言之,异步请求的文件转换操作被延迟到某个未来时间段。异步请求非常适合于在定义的时间间隔启动的、较高吞吐量的文件转换操作。异步请求通常被设计为一次转换许多文件。同步文件转换请求是对立即文件转换的请求。换言之,同步请求的文件转换操作是一接收到请求就立即启动的。同步请求非常适合于通常一接收到请求就立即启动的、较低等待时间的文件转换操作。这些请求还可具有较高的优先级并优先于已有请求。此外,文件转换系统100将每次具有超过一个文件转换请求的可能性计入。例如,在存在相同类型的(例如,异步的或同步的)多个文件转换请求的情况下,文件转换系统100可按照请求被做出的次序来处理这些请求,诸如以先进先出(FIFO)为基础。对于存在不同类型的(例如,异步的或同步的)多个文件转换请求的情况,文件转换系统100可根据 所需的优先化(prioritization)算法来确保同步请求优先于异步请求。此外,文件转换系统100还将具有单一承租人的超过一个文件转换请求的可能性计入,并且按照确保该承租人不相对于其他承租人垄断系统资源的方式来处理单一承租人的多个文件转换请求。例如,这可以使用各种负载平衡技术来实现。图2A、2B示出文件转换系统200的框图。文件转换系统200可包括文件转换系统100的更详细版本,包括多个组件和各种数据库。这些组件和数据库可以经由各种类型的通信介质来通信地耦合。此外,各种组件可以协调彼此之间的操作。该协调可以涉及单向或双向信息交换。例如,组件可以传递通过通信介质传递的信号形式的信息。该信息可被实现成分配给各条信号线的信号。在这些分配中,每一个消息都是信号。然而,其他实施方式可替代地采用数据消息。这些数据消息可以跨各个连接发送。示例性连接包括并行接口、串行接口和总线接口。在图2A、2B中示出的所示实施例中,web组件210包括对象模型212。web组件210通信地耦合于应用服务器管理器组件220。应用服务器管理器组件220包括调度组件222和计时器作业组件224。应用服务器管理器组件220通信地耦合于文档队列数据库226。应用服务器管理器组件220还通信地耦合于应用服务器工作器组件230。应用服务器工作器组件230包括文件转换组件232以管理多个作业队列,包括同步作业队列234和异步作业队列236。应用服务器工作器组件230通信地耦合于内容数据库238。可以理解,文件转换系统200可具有替代在一个实施例中,应用服务器管理器组件220可被安排为接收将文件110在不同文件格式间转换的不同类型的文件转换请求,当接收到同步文件转换请求202时将该同步文件转换请求202发送到同步作业队列234,以及在定义的时间间隔将异步文件转换请求204发送到异步作业队列236。一个或多个应用服务器工作器组件230可管理队列234、236,并在应用服务器管理器组件220的控制下执行实际的文件转换操作。如图2中所示,web组件210可包括对象模型212。对象模型212允许开发者创建异步文件转换请求并监视进行中的文件转换。web组件220可被安排为经由对象模型212从客户端系统接收文件转换请求202、204。web组件210可以通信地耦合于应用服务器管理器组件220。应用服务器管理器组件220可为同步文件转换请求202和异步文件转换请求204执行后端服务器操作。这两种类型的请求202、204可按照与每种类型的请 求相一致的方式被调度以进行文件转换操作。应用服务器管理器组件220可接收不同类型的文件转换请求202、204以将文件110在不同文件格式间转换以从web组件210形成相应的经转换的文件130。输入文件110可具有源文件格式,而经转换的文件130可具有目标文件格式。源文件格式和目标文件格式可以是适合于给定应用、服务或机器的任何已知文件格式。此外,源文件格式和目标文件格式可以是用于由相同公司或不同公司制作的软件的。在一个实施例中,源文件格式和目标文件格式可在数据模式或逻辑数据存储结构上不同,同时保持相同或类似的文件内容。在一个实施例中,源文件格式和目标文件格式可在文件内容上不同,而保持相同或类似的数据模式。在一个实施例中,源文件格式和目标文件格式可在文件内容和数据模式上均不同。各实施例不限于该上下文。作为示例而非限制,文件系统110、130可具有为特定操作系统设计的互相关的客户端应用、服务器应用和web服务的生产力套件(诸如由华盛顿州雷蒙德市的微软公司制作的用于MICROSOFT WINDOWS 的MICROSOFT OFFICE生产力套件)的内容文件的源文件格式和目标文件格式。客户端应用的示例可包括但不限于MICROSOFTWORD、MICROSOFT EXCEL 、MICROSOFT POWERPOINT 、MICROSOFT OUTLOOK 、MICROSOFT ACCESS 、MICROSOFT INFOPATH 、MICROSOFT ONENOTE 、MICROSOFT PROJECT 、MICROSOFT PUBLISHER、MICROSOFT SHAREPOINT WORKSPACE、MICROSOFT VISI〇 、MICROSOFT 0FFICEINTERC0NNECT、MICROSOFT OFFICE PICTUREMANAGER.MICR0S0FTSHAREP0INT DESIGNER、MICR0S0FTLYNC 及其它。可以理解,源文件格式和目标文件格式也可以是用于不同的不相关的软件应用的。作为不同数据模式的示例,假定打印机公司期望添加将允许文档的“云打印”的新服务。此服务将允许打印机具有其自己的电子邮件地址。然后用户将能够经由附件将文档通过电子邮件发送以进行打印操作,然后该文档可被打印。打印操作需要跟从应用的人工打印操作一样快。然而由于对无人值守自动化特征的不支持性,该打印机公司不想要为他们的服务器上的文档而使应用客户端自动化以执行打印操作。相反,该打印机公司可实现该增强的文件转换技术以在服务器上执行从源文件格式到目标文件格式的快速文件转换操作,然后可使用该目标文件格式来完成打印操作。在此情况下,源文件格式的示例可以是由MICROSOFT EXCEL生成的xls”文件格式,而目标文件格式的示例可以是可移植文档格式(PDF)。在不同数据模式的另一示例中,假定数字出版公司期望添加将允许用户在专有数字“电子书”阅读器设备上阅读某些文档的新服务。此服务将允许用户经由附件将文档通过电子邮件发送到电子书服务,然后该电子书服务能够将该文档转换为该数字电子书阅读器设备所支持的格式。该电子书服务需要尽量快以便用户不需等待阅读他们所请求的文档。该数字出版公司可实现该增强的文件转换技术以创建适当的电子书格式。在此使用情形中,源文件格式的示例可以是由MICROSOFT WORD生成的doc”文件格式,而目标文件格式的示例可以是多用途因特网邮件扩展(MME)超文本标记语言(HTML)(共同称为“MMEHTMLHHT”)。作为不同文件内容的示例,假定公司期望在不同语言间翻译文档。翻译服务将能够翻译整个库或一次性文档。对于一次性文档的情况,该翻译服务需要是按需式的,即,立即完成。该增强的文件转换技术能够执行任何必要的文件格式转换以便于语言翻译。在此情况下,输入文件110可具有第一人类语言(例如,英语)的文件格式,而经转换的文件130可具有第二人类语言(例如,汉语)的文件格式。作为不同文件内容和文件格式的示例,假定文件110包括第一人类语言的被发送到云传真服务的MICROSOFT WORD文档。该云传真服务可将第一人类语言(例如,英语)转换为第二人类语言(例如,韩语),并将doc”应用文件格式转换为PDF文件格式,然后将 文件110的经转换的文件130作为第二人类语言的PDF传真。应用服务器管理器组件220可包括调度组件222。调度组件222负责将传入的请求移动到文档队列数据库226,并将某些类型的请求发送到文件转换组件232以进行处理。文档队列数据库226存储已请求的、当前的以及已完成的转换的持久队列。在中央数据库服务器上存储转换的队列赋予该队列改进的可缩放性、可靠性、以及跟踪大组转换较长时间段的能力。在一个实施例中,调度组件222可基于与文件转换请求相关联的一个或多个文件转换参数260-a来确定该文件转换请求是同步文件转换请求202还是异步文件转换请求204。值得指出的是,本文所使用的“a”、“b”、“c”以及类似的标志符是表示任何正整数的变量。因此,例如,如果一实现设置值为a = 5,则文件转换参数260-a的完整集合可包括文件转换参数260-1、260-2、260-3、260-4以及260-5。各实施例不限于该上下文。文件转换系统100、200通常是为不同使用情形而设计的,范围从大量文件的批量处理到单一文件。文件转换参数260-a可用于定义给定文件转换请求202、204的某些属性或特性。文件转换参数260-a的示例可包括而不限于文件的数量、转换时间或等待时间、资源分配、文件优先级、安全性、文件类型、请求类型等等。例如,文件转换参数260-1可包括表示要转换到经转换的文件130的文件110的数量的数字值。文件转换参数260-2可包括表示要将多个文件110转换为经转换的文件130的时间量的等待时间值。文件转换参数260-3可包括表示将多个文件110转换为经转换的文件130的所需的多个资源(例如,应用服务器工作器组件130、存储器单元、处理器、带宽等)的资源值。文件转换参数260-4可包括表示一个或多个文件110的优先级水平的优先级值。文件转换参数260-5可包括表示与一个或多个文件110相关联的密码技术或安全凭证的安全值。文件转换参数260-6可包括表示一个或多个文件110和/或经转换的文件130的文件格式或内容格式的文件类型值。文件转换参数260-7可包括表示同步文件转换请求202或异步文件转换请求204的显式设定的请求值。这些仅是几个示例,可以为给定实现定义其他文件转换参数260-a。各实施例不限于该上下文。
调度组件222可确定经由web组件210接收的文件转换请求的请求类型。例如,调度组件222可基于与所接收的文件转换请求相关联的一组文件转换参数260-a来确定所接收的文件转换请求是同步文件转换请求202还是异步文件转换请求204。在一个实施例中,例如,当第一文件转换参数260-1指示文件的数量为I而第二文件转换参数260-2指示等待时间值小于阈值值时,调度组件222可确定文件转换请求为同步文件转换请求202。例如,假定数量值被设定为1,等待时间值被设定为5分钟,而阈值值是被设定在10分钟的默认值。在这种情况下,调度组件222可确定传入的文件转换请求是对单个文件的同步文件转换请求202,其需要文件转换操作的较低的等待时间。
在一个实施例中,例如,当第一文件转换参数260-1指示文件的数量大于I而第二文件转换参数260-2指示等待时间值大于阈值值时,调度组件222可确定文件转换请求为异步文件转换请求204。例如,假定数量值被设定为5,等待时间值被设定为I天,而阈值值是被设定在10分钟的默认值。在这种情况下,调度组件222可确定传入的文件转换请求是容忍文件转换操作的较高的等待时间的对多个文档的异步文件转换请求204。附加地或替代地,调度组件222可通过检查显式文件转换参数260-a来确定文件转换请求的请求类型。例如,调度组件222可检索与所接收的文件转换请求相关联的文件转换参数260-7。文件转换参数260-7可包括表示对同步文件转换请求202、异步文件转换请求204、或某种其他请求类型的显式设定的请求值。文件转换参数260-7可与文件转换请求一起被接收,诸如被嵌入在用于传输该文件转换请求的数据分组的头部或有效载荷部分。替代地,文件转换参数260-7可被先验地存储在文档队列数据库226中。文件转换参数260-7可由用户设定,或由文件转换系统200分配(例如,基于过去的历史)。各实施例不限于该上下文。—旦确定了文件转换请求的请求类型,调度组件222就可在接收到同步文件转换请求202时将该同步文件转换请求202发送到同步作业队列234。例如,调度组件222可确定所接收的文件转换请求是同步文件转换请求202,并在做出该确定后立即将该同步文件转换请求202直接发送到同步作业队列234以由应用服务器工作器组件230立即处理。这有助于确保同步文件转换请求202以较低等待时间被处理。尽管同步文件转换请求202的副本可被存储在文档队列数据库226中,然而此副本是用于跟踪目的而不是用于调度作业请求来进行未来处理。作为对比,调度组件222可在定义的时间间隔将异步文件转换请求204发送到异步作业队列236。例如,调度组件222可确定所接收的文件转换请求是异步文件转换请求204,并将该异步文件转换请求204存储在文档队列数据库库226中以由应用服务器工作器组件230在未来处理。这通常是因为同步文件转换请求204是针对容许较高等待时间程度的较大数量的文件的,诸如用于在低资源利用时间段期间(例如,给定时区的夜晚时分)执行的“批处理”操作。应用服务器管理器组件220可包括计时器作业组件224。计时器作业组件224可包括计时器和相关联的逻辑以控制转换的频率和被活动地转换的文件的数量。计时器作业组件224可被安排为在定义的时间间隔周期性地从文档队列数据库226检索异步文件转换请求204,并将该异步文件转换请求204发送到异步作业队列236。应用服务器管理器组件220可以通信地耦合于应用服务器工作器组件230。尽管组件220、230可被示出为分开的组件,然而可以理解,组件220、230可以在视给定实现的需要而在相同服务器或不同服务器上实现。各实施例不限于该上下文。应用服务器工作器组件220可为文件转换系统200执行实际的文件转换操作,并且通信地耦合于内容数据库238以协助文件转换操作。在一个实施例中,例如,文件转换系统200可进一步包括应用服务器工作器组件230,该应用服务器工作器组件230被安排为接收同步文件转换请求202和异步文件转换请求204,并且将所接收的同步文件转换请求202和所接收的异步文件转换请求204分别存储在同步作业队列234和异步作业队列236中。应用服务器工作器组件220可包括文件转换组件232。文件转换组件232执行实际的文件转换服务操作。文件转换组件232维护含有需要被转换的项的一个或多个内部队列。如图所示,文件转换组件232含有同步作业队列234和异步作业队列236。在一个实施例中,例如,应用服务器工作器组件230可包括文件转换组件232,该文件转换器组件232被安排为在处理异步作业队列236中所存储的异步文件转换请求204之前处理同步作业队列234中所存储的任何同步文件转换请求202,直到该同步文件队列234为空。
在一般操作中,调度组件222可经由对象模型212通过web组件210接收同步文件转换请求202。因为同步文件转换请求202使更低的等待时间优先于更高的量,所以调度组件222立即将同步文件转换请求202存储在同步作业队列234中以进行立即处理。同步作业队列234被安排为仅存储同步文件转换请求202。在一个实施例中,只有调度组件222能够将同步文件转换队列202添加到同步作业队列234。文件转换组件232被安排为将来自同步作业队列234的请求优先于异步作业队列236中存储的请求来处理。应用服务器管理器组件220的调度组件222跟踪易失性或非易失性存储器中的同步文件转换请求202。调度组件222检查以查看当前同步文件转换请求202是否超过了这种请求的N+1限制集合,其中N是任何正整数。如果超过,则当前同步文件转换请求202的状态被设定为“已取消”而web组件210被告知在稍后重试。如果没有超过,则调度组件222继续处理请求。调度组件222将同步文件转换请求202直接发送到应用服务器工作器组件230的文件转换组件232的同步作业队列234。如果同步文件转换请求202是基于流的请求,则调度组件222可将输入流存储为应用服务器工作器组件230的文件系统内的临时文件。调度组件222还可经由对象模型212通过web组件210接收异步文件转换请求204。因为异步文件转换请求204使更高的量优先于更低的等待时间,所以调度组件222将异步文件转换请求204存储在文档队列数据库226中以进行延迟的处理。计时器作业组件224在与异步文件转换请求204相关联的定义的时间间隔检索异步文件转换请求204,并在该定义的时间间隔将该异步文件转换请求204发送到异步作业队列236。调度组件222用关于请求202、204的信息来更新文档队列数据库226。在某些定义的时间间隔,计时器作业组件224检查文档队列数据库226以寻找需要为异步文件转换请求204运行的作业。文件转换组件232被安排为将来自异步作业队列236的请求在同步作业队列234中存储的请求之后来处理。如图2B所示,计时器作业组件224推动作业以进入负载平衡器250中来执行。负载平衡器250(或计时器作业组件224)将作业发送到适当的应用服务器工作器组件230-b (例如,可存在超过一个应用服务器工作器组件)以进行处理(例如,文件转换操作)。计时器作业组件224为各个作业用新状态更新文档队列数据库226。计时器作业组件224还寻找在最大允许时间内还没有完成的作业并检查处理它们的应用服务器工作器组件230是否已失败。应用服务器工作器组件230从应用服务器管理器组件220接收请求202、204。同步文件转换请求202被放入同步作业队列234。异步文件转换请求被放入异步作业队列236。文件转换组件232处理来自同步作业队列234的请求直到其为空。然后文件转换组件232处理来自异步作业队列236的请求。来自异步作业队列236的请求不必在单一连续时间段内完全处理。例如,异步文件转换请求204的处理可被临时暂停或打断以处理同步作业队列234中存储的新同步文件转换请求202,而一旦同步作业队列又一次为空,则文件转换组件232可恢复处理被打断的异步文件转换请求204。错误情况(诸如无法检索文件110)被记录而适当的状态消息被发送到应用服务器管理器组件220。被取消的请求被丢弃。如果同步文件转换请求202是基于流的,则应用服务器工作器组件230可以从它的文件系统上的临时文件读取输入文件。然后应用服务器工作器组件230将得到的文件作为临时文件写出到其自己的文件系统中。应用服务器工作器组件230将能够访问该文件系·统以处理表示基于流的请求的输入和输出文件的临时文件。一旦文件转换组件232完成请求202、204的文件转换操作(不管成功/失败),启动请求完成应用编程接口(API)。如果成功,文件转换组件232尝试将经转换的文件130保存到指定输出位置或流,并基于成功或失败来设定文件转换状态。如果请求202、204是非基于流的,则应用服务器工作器组件230将结果放入内容数据库238。如果请求202、204是基于流的,则应用服务器管理器组件220可将存储在应用服务器工作器组件230的文件系统上的所得到的临时文件作为流来读取。web组件210能够从应用服务器管理器组件220检索所得到的流。一旦完成基于流的请求,在垃圾收集操作期间,所有相关联的临时文件被从该文件系统移除(例如,破坏文件转换会话,释放资源,删除临时文件等等)。应用服务器管理器组件220可跟踪存储器中正由文件转换系统200并行处理的多个同步文件转换请求202。调度组件222可以能够访问进行中的同步文件转换请求202的存储器内跟踪。调度组件222可选择适当的应用服务器工作器组件230来完成所批准的同步文件转换请求202。调度组件222可将同步文件转换请求202直接添加到所选择的应用服务器工作器组件230内的同步作业队列234。对于基于流的同步文件转换请求202,调度组件222会将输入流作为临时文件存储在适当的应用服务器工作器组件230的文件系统上。调度组件222可进一步将应用服务器工作器组件230文件系统上的所得到的临时文件作为存储在存储器中的流而读取。可为文件转换系统200设定各文件转换参数。文件转换参数的示例在表I中示出如下表I
权利要求
1.一种装置,包括 逻辑设备;以及 应用服务器管理器组件,所述应用服务器管理器组件在所述逻辑设备上操作以接收将文件在不同文件格式间转换的不同类型的文件转换请求,在接收到同步文件转换请求时将所述同步文件转换请求发送到同步作业队列,以及在定义的时间间隔将异步文件转换请求发送到异步作业队列。
2.如权利要求I所述的装置,其特征在于,包括操作以经由对象模型从客户端系统接收所述文件转换请求的web组件。
3.如权利要求I或2所述的装置,其特征在于,所述应用服务器管理器组件包括调度组件,所述调度组件在所述逻辑设备上操作以基于与文件转换请求相关联的一个或多个文件转换参数来确定所述文件转换请求是同步文件转换请求还是异步文件转换请求。
4.如权利要求I到3中任一项所述的装置,其特征在于,所述应用服务器管理器组件包括计时器作业组件,所述计时器作业组件在所述逻辑设备上操作以在所述定义的时间间隔从文档队列数据库检索异步文件转换请求,并将所述异步文件转换请求发送到所述异步作业队列。
5.一种计算机实现的方法,包括 接收将文件在不同文件格式间进行转换的文件转换请求; 确定所述文件转换请求是同步文件转换请求还是异步文件转换请求; 将同步文件转换请求存储在同步作业队列中; 将异步文件转换请求存储在异步作业队列中;以及 在所述异步作业队列中所存储的所述异步文件转换请求之前,处理所述同步作业队列中所存储的所述同步文件转换请求。
6.如权利要求5所述的计算机实现的方法,其特征在于,包括当文件转换请求是对低等待时间转换操作的请求时确定所述文件转换请求是同步文件转换请求,其中所述低等待时间转换操作能够一接收到文件请求就立即以同步方式转换所述文件。
7.如权利要求5或6所述的计算机实现的方法,其特征在于,包括当文件转换请求是对高吞吐量转换操作的请求时确定所述文件转换请求是异步文件转换请求,其中所述高吞吐量转换操作能够以异步方式每次转换多个文件。
8.如权利要求5到7中任一项所述的计算机实现的方法,其特征在于,包括 将文件在与所述同步作业队列中所存储的每个同步文件转换请求相关联的不同文件格式间进行转换,直到所述同步文件队列为空;以及 一旦所述同步文件队列为空,则将文件在与所述异步作业队列中所存储的异步文件转换请求相关联的不同文件格式间进行转换。
9.如权利要求5到8中任一项所述的计算机实现的方法,其特征在于,包括 确定一个或多个新的同步文件转换请求已被所述同步作业队列接收; 暂停对所述异步作业队列中所存储的异步文件转换请求的处理; 处理来自所述同步作业队列的所述一个或多个新的同步文件转换请求,直到所述同步作业队列为空;以及 当所述同步作业队列为空时,恢复对所述异步作业队列中所存储的异步文件转换请求的处理。
10.一种包括包含指令的存储介质的制品,所述指令在被执行时使得一种系统执行如权利要求5到9中任一项所述的方法。
全文摘要
描述了管理文件转换的技术。接收将文件在不同文件格式间进行转换的文件转换请求。确定所述文件转换请求是同步文件转换请求还是异步文件转换请求。将同步文件转换请求存储在同步作业队列中。将异步文件转换请求存储在异步作业队列中。在异步作业队列中所存储的异步文件转换请求之前,将文件在与同步作业队列中所存储的同步文件转换请求相关联的不同文件格式间进行转换。对其他实施例也予以描述并要求保护。
文档编号G06F17/22GK102750266SQ20121008352
公开日2012年10月24日 申请日期2012年3月27日 优先权日2011年3月28日
发明者A·塔勒甘尼, A·普拉耶-米勒, J·里昂, Z·拉杰彼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1