CN110313148B - 用于分布式网络计算环境的web应用开放平台接口(WOPI)服务器架构和应用 - Google Patents
用于分布式网络计算环境的web应用开放平台接口(WOPI)服务器架构和应用 Download PDFInfo
- Publication number
- CN110313148B CN110313148B CN201880009369.5A CN201880009369A CN110313148B CN 110313148 B CN110313148 B CN 110313148B CN 201880009369 A CN201880009369 A CN 201880009369A CN 110313148 B CN110313148 B CN 110313148B
- Authority
- CN
- China
- Prior art keywords
- server
- wopi
- document
- application
- user device
- 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.)
- Active
Links
- 230000001360 synchronised effect Effects 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 41
- 230000007246 mechanism Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 21
- 230000015654 memory Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 14
- 238000013500 data storage Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000000153 supplemental effect Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 description 2
- 102100036366 ProSAAS Human genes 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007858 starting material Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/101—Collaborative creation, e.g. joint development of products or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Tourism & Hospitality (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种Web应用开放平台接口(WOPI)服务器通信地连接到信息管理(IM)服务器和在线应用服务器,所述在线应用服务器充当WOPI服务器的WOPI客户端。当用户希望在在线应用服务器托管的在线应用中打开、创建或编辑文档时,WOPI服务器被调用,而不是在企业计算网络的后端管理文档的IM服务器。WOPI服务器被配置为从IM服务器获得文档的工作副本并且将工作副本提供给WOPI客户端。WOPI客户端将工作副本提供给在线应用以用于显示在用户装置上。当工作完成时,工作副本通过WOPI服务器被作为新的草稿同步回IM服务器,并且被WOPI服务器删除。
Description
相关申请的交叉引用
本申请要求以下申请的优先权:2017年2月1日提交的、标题为“WEB APPLICATIONOPEN PLATFORM INTERFACE(WOPI)SERVER ARCHITECTURE AND APPLICATIONS FORDISTRIBUTED NETWORK COMPUTING ENVIRONMENTS”的美国临时申请No.62/453,342;以及2018年1月30日提交的、标题为“WEB APPLICATION OPEN PLATFORM INTERFACE(WOPI)SERVER ARCHITECTURE AND APPLICATIONS FOR DISTRIBUTED NETWORK COMPUTINGENVIRONMENTS”的美国专利申请No.15/884,078,这两篇申请整个地通过引用全部并入本文。
技术领域
本公开总体上涉及在分布式网络计算环境中操作的信息管理系统和服务。更具体地说,本公开涉及用于万维网的信息管理系统和服务的协同文件共享系统和方法。更具体地说,本文中所公开的实施例涉及对于在分布式网络计算环境中操作的协同文件共享系统有用的新的web(网络)应用开放平台接口(WOPI)服务器架构。
背景技术
web应用开放平台接口(WOPI)是由创建和发布的使得可以在WOPI应用(在本文中被称为WOPI App)和WOPI主机(在本文中被称为WOPI主机)之间进行直接文件通信的协议。WOPI定义了使得客户端能够访问、查看和编辑服务器存储的文件的一组操作。SharePoint 2013是WOPI主机的例子。
然而,将遵循WOPI的接口放在基于云的应用的顶部要求基于云的应用改变行为和数据如何被存储,包括例如遵循由WOPI定义的(并且由WOPI的发布者控制的)规则。这样的要求是非常不可取的,并且基本上限制了由WOPI和/或WOPI的发布者决定的基于云的应用的性能。
发明内容
本文中所公开的实施例提供了一种新的WOPI服务器架构,该架构可以消除WOPI要求置于基于云的应用上的限制,并且显著地改进计算机性能,特别是数据如何通过企业级信息管理解决方案或在分布式网络计算环境中操作的协同文件共享系统来处理和存储方面的计算机性能。
在一些实施例中,所述新的WOPI服务器架构包括新的WOPI主机,所述新的WOPI主机可以从后端服务器(例如,提供基于云的文件共享的信息管理服务器或Web上的任何信息管理服务)获得(例如,同步)被管理对象(例如,文档)的工作副本,除非被管理对象被锁定;对工作副本采取动作(例如,删除工作副本、将工作副本移到服务器((至少)当没有有效的访问令牌存在时));引入访问令牌锁以在将工作副本移到后端服务器的同时保卫访问令牌的创建;并且维护与WOPI客户端(在本文中被称为WOPI客户端)进行交互所需的信息。当工作副本被作为新的草稿提交到后端服务器时,关于工作副本的信息被保证与后端服务器同步。新的WOPI主机完全遵循WOPI规范,并且可以与WOPI客户端进行交互。然而,因为后端服务器与WOPI客户端是解耦的,所以不需要改变服务器代码、其行为、和/或数据如何被存储在后端。这具有使后端服务器免于由WOPI要求施加的限制的技术效果。
在一个实施例中,一种系统可以包括至少一个处理器、至少一个非暂时性计算机可读存储介质、以及所存储的可被所述至少一个处理器转化来执行基本上如本文中所描述的方法的指令。另一个实施例包括一种具有至少一个非暂时性计算机可读存储介质的计算机程序产品,所述至少一个非暂时性计算机可读存储介质存储可被至少一个处理器转化来执行基本上如本文中所描述的方法的指令。
本公开的这些及其他方面在结合以下描述和附图考虑时将被更好地领会和理解。然而,应理解,以下描述虽然指示了本公开的各种实施例及其许多特定的细节,但是是作为例示说明、而非限制给出的。在不脱离本公开的精神的情况下,可以在本公开的范围内做出许多替换、修改、添加和/或重排,并且本公开包括所有的这样的替换、修改、添加和/或重排。
附图说明
附随本说明书并且形成本说明书的一部分的附图包括在内是为了描绘本发明的某些方面。本发明以及通过本发明提供的系统的组件和操作的更清楚的印象通过参照附图中例示说明的示例性的、因此非限制性的实施例将变得更清晰,其中,相同的标号指定相同的组件。注意,附图中例示说明的特征不一定是按比例绘制的。
图1描绘根据WOPI规范的使用WOPI来提供用于特定类型的文件的基于浏览器的查看器的例子的图示。
图2描绘其中可以实现本文中所公开的实施例的分布式网络计算环境的例子的图示。
图3描绘根据一些实施例的基于云的文件共享和协同应用的例子的抓屏的图示。
图4描绘例示说明根据一些实施例的新的WOPI服务器的操作的例子的流程图。
图5A和5B共同描绘例示说明根据一些实施例的新的在线编辑处理的例子的WOPI服务器操作序列。
图6描绘进一步举例说明根据一些实施例的由新的WOPI服务器实现的锁定机制的同步状态图。
图7描绘根据一些实施例的包括新的WOPI服务器的系统架构的例子的图示。
图8描绘其中可以实现所公开的实施例的分布式网络计算环境的例子的图示。
具体实施方式
参照在附图中例示说明并且在以下描述中详述的非限制性实施例来更充分地说明本发明和各种特征及其有利的细节。众所周知的原始材料、处理技术、组件和设备的描述被省略,以便不会不必要地使本发明在细节上变模糊。然而,应理解,详述的描述和特定的例子虽然指示了本发明的一些实施例,但是仅仅是作为例示说明、而非作为限制给出的。基本的发明构思的精神和/或范围内的各种替换、修改、添加和/或重排对于本领域技术人员来说从本公开将变得清楚。
客户端可以如何使用WOPI的一个例子是通过提供用于特定类型的文件的基于浏览器的查看器。该客户端使用WOPI来得到文件的内容,并且在浏览器中将该内容作为网页呈现给客户端的用户。图1中示出了该处理的例子。
在图1中,用户可以通过浏览器(例如,浏览器101)发起查看文件(例如,文档)的请求。浏览器将该请求发送到WOPI主机(例如,WOPI主机103)。WOPI主机可以向WOPI App(例如,WOPI App 105)查询其能力,并且在被称为WOPI发现的交互式处理中学习调用WOPI App需要什么信息。WOPI主机可以从浏览器/用户得到必要的信息,并且用所需的信息来调用WOPI App以请求文件的查看。WOPI App可以与WOPI主机(其托管实际的文档)进行通信,并且得到关于文件的信息。WOPI App最后得到文件的实际内容,并且最终渲染它以使得客户端(浏览器)可以查看文件。该处理使得客户端可以在用户装置上向终端用户呈现文件,并且为终端用户提供编辑如此检索的文件的文件编辑功能。
在技术上,WOPI是构建在超文本传送协议(HTTP)和HTTP安全(HTPP Secure,HTTPS)的顶部的协议。因此,图1所示的处理可以涉及许多HTTP调用和响应。此外,请求可以被签名并且被验证以使所述处理安全。该处理和WOPI协议对于本领域技术人员来说一般是已知的,因此在本文中不再做进一步描述。
为了将基于云的应用与(“MS”)在线应用集成,WOPI要求遵循WOPI的接口被放置在集成的基于云的应用的顶部。可向Open Text(开放文本)购买的内核(“内核”)是可以利用MS在线应用并且可以从本文中所公开的新的WOPI服务器架构受益的协同文件共享系统的例子。尽管内核在本公开中被用作实现本文中所公开的新的WOPI服务器架构的信息管理系统的例子,但是熟练的技术人员意识到,本文中所公开的新的WOPI服务器架构的许多其他实现也可以是可能的,以便使得基于云的文件共享和/或协同应用可以在不必将遵循WOPI的接口放在这样的应用的顶部和/或改变其代码和/或行为的情况下与在线应用集成。
内核驻留在云计算环境(例如,OpenText云)中,并且包括基于云的文件共享和协同应用,该应用提供信息管理服务,并且向终端用户提供安全的社交和协同特征。通过内核,企业用户和消费者用户两者都可以容易地且安全地访问、执行管理控制、存储、共享他们的文件、图像、视频和文档、以及与他们的文件、图像、视频和文档一起工作、等等,而无需来自信息技术(IT)部门的任何介入。用户可以安全地且直观地共享、编辑和协同操作来自各种类型的联网装置(诸如台式计算机、移动装置、智能电话、平板、膝上型计算机等)的文件。
然而,将遵循WOPI的接口放在内核的顶部要求内核改变其行为并且改变它如何存储数据以便例如遵循由WOPI定义的(并且由WOPI的发布者控制的)规则。这样的要求是非常不可取的,并且基本上限制了由WOPI(和WOPI的发布者)决定的内核的性能。
为了消除对于性能的这样的限制,本公开的目的是,以仍使得内核可以利用MS在线应用的方式使内核与WOPI解耦。在一些实施例中,在新的“内核友好的”WOPI服务器中实现该目的。所述新的WOPI服务器满足WOPI规范,所以它可以与遵循WOPI要求的WOPI客户端进行通信。这使得可以在WOPI客户端和MS在线应用之间进行交互以保持与WOPI客户端没有改变时相同。然而,内核现在与WOPI客户端解耦,因为所述新的WOPI服务器用于使WOPI协议与内核分离。所述新的WOPI服务器定义数据如何被传送到内核以及如何从内核传送,并且可以充当与单独的后端系统进行通信的代理。
在详细地描述新的WOPI服务器系统和方法之前,底层信息管理架构的概览可能是有帮助的。图2描绘其中可以实现本文中所公开的实施例的分布式网络计算环境的例子的图示。
在图2的例子中,信息管理(“IM”)服务器210(诸如内核服务器)驻留在云计算环境(“云”)250(例如,OpenText云)中。IM服务器210被配置为管理对象(“被管理对象”)220。被管理对象可以包括特定企业的数字资产(未示出)。被管理对象的例子可以包括各种类型的文件格式,诸如文本、文档、日志、消息、电子邮件、图像、视频等。被管理对象220可以驻留在至少一个合适的非暂时性计算机数据存储装置上,并且可以被具有由企业和/或其代表授予的足够且适当的特权的用户访问。
如图2所示,各种类型的联网计算装置(“用户装置”)201可以通过网络(例如,私有网络(诸如局域网)、公共网络(诸如互联网)或它们的组合)通信地连接到在云250中操作的IM服务器210。用户可以通过IM app 205或IM服务器210的IM用户接口(“UI”)207来安全地共享文件和/或协同操作。IM app 205可以是可以从在线电子应用商店或与在浏览器209提供的浏览器环境(例如,浏览器209的实例)中运行的IM UI 207类似的基于Web的UI下载的移动应用。
作为例子,IM UI 207或IM app 205可以允许用户装置201的用户安全地共享信息和/或协同操作IM服务器210管理的被管理对象220。图3描绘IM UI或IM app 305的例子的抓屏的图示。
在图3的例子中,IM app 305包括允许用户301查看文件——用户301的那些文件和(一个或多个)其他人与用户301共享的那些文件、并且查看其他用户对这些文件的一个/多个活动(例如,用户X与您分享文件Y)的多个功能330。用户301可以经由IM UI 305将(一个或多个)文件(例如,文件320)从他们的(一个或多个)用户装置上传到IM服务器(例如,IM服务器210)并且与另一个用户(例如,用户302)共享(一个或多个)文件。在一些情况下,当用户选择从IM UI 305内打开文件(例如,通过点击图3所示的文件320)时,(打开文件的)指令通过浏览器(其为IM UI 305提供计算环境)被传送到操作系统,并且操作系统进行本地调用来在用户的机器上打开适当的软件。
一般来说,当用户访问内核管理的文档(更具体地说,经由在用户的装置上的浏览器环境中运行的内核的基于web的应用)时,浏览器进行操作以得到(例如,下载)文档(例如,被管理对象,诸如来自后端服务器或云250的被管理对象220),并且与本地操作系统一起工作以在驻留在本地机器上的本机应用(例如,桌面应用,诸如已经安装在用户的装置上的Microsoft Word)中打开它。桌面托盘应用可以充当内核的本地代理,并且维护用于浏览器和本机应用这二者的与内核的会话。下载的文档在web服务器(其可以被实现为云服务、在用户的装置上实现、或者在服务器机器上实现)的控制下被存储在本地文件系统中,并且当会话结束时被同步(例如,被上传回后端服务器或云250)。在一些实施例中,该web服务器包括新的“内核友好的”WOPI服务器,该服务器在本文中也被称为新的WOPI主机。
图4描绘例示说明根据一些实施例的具有WOPI主机400的系统架构480的示例操作的流程图。在示例实施例中,IM服务器410可以管理存储在后端的储存库中的对象420,并且通过IM app 405提供新的“在线编辑”特征,IM app 405允许用户使用在用户装置401上的内嵌框架407内部运行的MS在线应用(诸如Office Online、Word Online、Excel Online、PowerPoint Online、OneNote Online等)来编辑被管理对象420。例如,在一些实施例中,当用户点击IM app 405的UI中的“编辑”或“新的”按钮时,按钮可以变为包含一组选项(诸如桌面)的菜单,和/或在线应用可以被显示,并且用户可以选择适合于从菜单使用的应用。
内嵌框架或“内联框架”一般是指独立的超文本标记语言(HTML)文档,该文档嵌入在另一个HTML文档的内部,所述另一个HTML文档可以例如是网站上的周围的页面或根据HTML5 Web标准创建的应用。HTML5或Web应用可以与移动装置(例如,在iOS或Android操作系统上运行的智能电话)兼容,但是也可以与在台式计算机、膝上型计算机、笔记本计算机等上运行的浏览器兼容。内嵌框架可以独立于另一个页面或Web app的功能被配置它自己的功能,诸如滚动条。
图4在两个分开的功能块中示出IM app 405和内嵌框架407以反映它们在功能上的独立性。在一些实施例中,当IM app 405被实现为浏览器的实例时,内嵌框架407被嵌入在IM app 405中。在这些情况下,IM app 405表示在用户装置401上运行时可以围绕内嵌框架407的页面的例子。IM app 405可以包含配置内嵌框架信息(例如,定位到WOPI客户端(诸如应用服务器430)的统一资源定位符、生存时间等)。然而,内嵌框架407被在内嵌框架407内部运行的在线应用(其是应用服务器430的客户端)填充。作为例子,在线应用可以是Office Online的Web UI。在一些实施例中,当IM app 405被实现为Web应用(例如,不需要浏览器运行的Web应用)时,内嵌框架407不需要嵌入在IM app 405中。在这些情况下,IMapp 405可以将配置信息移交给内嵌框架407(例如,通过调用其元素),而不是嵌入内嵌框架407代码并且通过嵌入的代码传递参数。
如图4所示,IM app 405是IM服务器410的客户端,并且通过WOPI主机400与IM服务器410进行通信。在一些实施例中,WOPI主机400可以作为云服务或用于IM服务器410的web服务器进行操作。然而,在内嵌框架407中运行的在线应用由应用服务器430托管,并且通过内嵌框架407作为服务递送到用户装置401。熟练的技术人员意识到,该服务递送处理实现软件即服务(SaaS)软件许可和递送模型。应用服务器430驻留在IM服务器410和用户装置401外部的MS计算环境中,并且独立于IM服务器410进行操作。应用服务器430作为WOPI主机400的客户端进行操作,因此在本文中也被称为WOPI客户端430。
当用户想要通过用户装置401上的在线应用(其由应用服务器430托管)来编辑内嵌框架407中显示的文档时,请求经由内嵌框架407被传送到WOPI主机400。WOPI主机400进行操作以从IM服务器410获得文档(在图4的例子中,其是IM服务器410管理的被管理对象420)并且通过在用户装置401上的内嵌框架407中运行的在线应用来打开该文档的工作副本。以下进一步描述该处理。
图5A和5B共同描绘WOPI服务器操作序列,该序列例示说明根据一些实施例的新的WOPI服务器(例如,WOPI主机500)启用的新的在线编辑处理的例子。作为例子,当用户选择IM应用(例如,IM app 505,其可以是IM UI 305或IM app 405的实施例)的在线编辑功能来创建新的文档或修改现有的文档时,适当的在线应用(例如,WOPI客户端507)可以被启动并且被填充(例如,在内嵌框架(诸如所述的内嵌框架407)中)。另外,发现处理可以被触发以使WOPI服务器从IM服务器(例如,IM服务器510)获悉创建或打开用户请求的文档可能需要什么信息,所述文档由IM服务器管理或将由IM服务器管理(例如,通过分布式数据库管理系统540(诸如Casandra)以查询存储在被管理对象数据储存器520中的被管理对象)。该处理可以涉及使用与文档相关联的文档标识符(例如,“GET/wopi/v1/workingcopy/docid”)和访问令牌(例如,“内核载体令牌”)。为此,WOPI服务器可以检查补充数据储存器(例如,补充数据储存器560),并且确定WOPI访问令牌是否被存储在那里。在一些实施例中,补充IM服务器的主数据储存器(Casandra)的这个补充数据储存器可以以许多方式实现,例如,使用Redis被实现为存储器内的数据结构。Redis和Casandra对于本领域技术人员是已知的,因此在本文中不对其进行进一步描述。
在一些实施例中,每个WOPI访问令牌(WOPIAT)具有锁(例如,WOPIATA写入锁)。如果在补充数据储存器中没有WOPI访问令牌,则随机地产生新的一个WOPI访问令牌,并且将该令牌存储在存储器中。WOPI主机将获悉的信息(例如,文档标识符、认证令牌或任何其他的参数)传递或移交给在线应用(WOPI客户端)。WOPI客户端用所需的参数调用IM服务器。在一些实施例中,WOPI主机可以从WOPI客户端接收调用,并且将调用通过管道输送到IM服务器。IM服务器提取请求的文档(例如,从被管理对象数据储存器提取)或者创建一个文档(如果新的文档被请求),从而生成工作副本,并且将它传送(例如,推送)到WOPI主机。WOPI主机托管用于WOPI客户端的工作副本,WOPI客户端进行操作以经由其客户端、在线应用在用户装置上显示工作副本。
不同于常规的WOPI主机,所述新的WOPI主机作为后端IM服务器的代理服务器进行操作。这使得IM服务器可以独立于WOPI要求进行操作并且不必与在线应用通过接口连接。这里的技术效果是,该分离可以改进IM服务器的性能,因为在前端不再必须如此频繁地与用户装置同步。例如,即使当通信地连接到IM服务器的用户装置空闲时,草稿也可以连续地自动地与后端同步并且被后端的IM服务器保存(例如,每几秒)。将每个用户装置在任何给定时间可以与IM服务器同步的草稿的数量乘以通信地连接到IM服务器的用户装置的数量,这个持续的同步可以影响IM服务器的性能。本文中所公开的新的WOPI主机系统可以通过将工作副本(对于单个文档,可以存在多个工作副本)本地保存在WOPI主机层来减轻置于IM服务器上的这个负担,并且当对于底层文档的工作完成时,单个工作副本被与后端同步,并且被存储为该文档的草稿(例如,存储在服务器侧的联网文件系统中)。
在一些实施例中,被WOPI主机存储在WOPI主机层的草稿因为它们在在线应用上被做工作而被称为工作副本,以与被IM服务器存储在后端的草稿区分开来。如图5A-5B所示,所述新的WOPI主机可操作为从用于在线应用的后端获得文档的工作副本(例如,经由同步操作),除非文档被锁定。如以下参照图6所说明的,当文档被锁定时,这意味着工作副本已经存在。所以,为了防止现有的工作副本在文本被锁定时被修改,WOPI主机不能再次从文档创建新的工作副本。
如果请求的文档尚未被WOPI主机锁定(即,没有工作副本当前被使用),则WOPI主机可以与IM服务器进行交互以获得文档的工作副本并且将该工作副本提供给在线应用(通过托管在线应用的WOPI客户端)。WOPI主机可以根据需要调用IM服务器以对WOPI Rest API(应用编程接口)功能进行处理。在一些实施例中,当用作用于IM服务器的代理时,WOPI主机可以对工作副本采取动作,例如,当所有的WOPI访问都已完成时,或者当没有有效的访问令牌存在时,将工作副本移到被管理对象数据储存器。
WOPI主机实现WOPI访问令牌锁以在将工作副本移到后端的同时保卫访问令牌的创建。当工作副本被作为新的草稿提交到后端IM服务器时,关于工作副本的信息(例如,草稿元数据)被保证与后端IM服务器同步。WOPI主机可以维护与WOPI客户端进行交互所需的信息(例如,在其本地数据储存器中),并且完全遵循WOPI规范。
图6描绘进一步举例说明根据一些实施例的由新的WOPI主机实现的锁定机制的同步状态图。所述新的WOPI主机的目标是屏蔽后端的IM服务器以使得IM服务器代码内部的锁定语义不需要被修改以满足WOPI要求。为了实现该目标,WOPI主机实现WOPI规范的与WOPI客户端通过接口连接所需的锁定机制。为了这样做,WOPI主机必须具有它自己的工作副本,以使得WOPI主机不改变IM服务器代码内部的锁定语义。这造成了几个问题,例如,工作副本应被如何存储、以及IM服务器API可以如何被用来存储工作副本。图6例示说明具有解决这些问题的特定的锁定机制的“WOPI Doc”的概念。
在图6的例子中,“WOPI Doc”是存储在本地、WOPI主机对其具有控制的地方的工作副本。在示例实现中,根据行动者,文档的电子文件可以被称为草稿(当它受IM服务器的控制时)、工作副本(当它在在线应用上被做工作和/或由WOPI主机托管时)、或WOPI Doc(当WOPI主机在它上实现WOPI锁定机制并且利用IM服务器作为存储它的存储机制时)。
在状态601,还不存在工作副本,所以没有WOPI Doc。当调用WOPI服务器得到工作副本的请求来到时,锁定机制可以转变到状态605。在状态605,该工作副本被认为与IM服务器在后端管理的实际的文档是同步的(当它被创建时)。然而,锁定机制可以立即转变到状态610以反映某个其他的用户已经更新文档的可能性。在状态610,WOPI Doc与文档不同步,并且不被锁定。如果对于该文档存在任何WOPI访问并且它还未被锁定,则它被同步,并且锁定机制转变回状态605。该循环继续进行,直到锁被应用并且WOPI Doc被锁定,此时,锁定机制转变到状态615。WOPI Doc一被锁定,WOPI主机就仅用(锁定的、但是不同步的)工作副本来进行工作。WOPI Doc在该状态被锁定,直到将锁定机制移回到解锁状态(状态610)的实际的解锁请求来到。当WOPI Doc被锁定时,任何WOPI访问将与WOPI Doc一起工作(状态615)。所以,所有的WOPI编辑在该状态下都可以发生于工作副本上。一旦对于工作副本的WOPI访问完成,锁定机制就转变回状态601。在该转变期间,工作副本被与IM服务器同步以创建新的对象,并且工作副本本身被删除。
根据WOPI规范,锁定机制实现WOPI访问令牌超时。这样,如果用户装置在一定时间(比如,20分钟)内一直空闲,则向用户通知对于文档的访问已经到期(超时)的消息可以出现在用户装置上、在线应用中。用户可以被要求刷新并且再次请求访问。在一些情况下,可能所有的访问令牌都已经超时。当达到该条件(门限)时,WOPI会话完成,这表示存储处理的开始(例如,使最新的工作副本与IM服务器同步以用于存储为将被存储在后端的版本)。
图7描绘根据一些实施例的包括WOPI服务器的系统780的例子的图示。系统780的组件可以类似于以上参照图4描述的系统480的组件。例如,用户装置701可以是用户装置401的例子,办公在线服务器730可以是应用服务器430的例子,IM app 705可以是IM app405的例子,在线app 707可以是在内嵌框架407中运行的在线应用的例子,IM服务器710可以是IM服务器410的例子,WOPI主机700可以是上述WOPI主机400的例子。
在图7的例子中,IM app 705可以在不必通过WOPI主机700的情况下与IM服务器710进行通信。路由基础设施750被配置为基于请求或调用的格式来路由请求或调用。
当用户选择按钮或者指示希望在IM app 705中创建、打开或编辑文档并且选择在线应用(例如,在线app 707)以打开或创建IM服务器710管理的文档时,IM app 705(或运行IM app 705的浏览器)可以操作为从IM服务器710检索资源信息(例如,文件列表)、确定该资源信息是否可以被编辑、并且使用WOPI主机700收集的关于在线app 707的数据来填充在其内运行在线app 707的内嵌框架。
在该处理期间,诸如文档标识符和IM服务器认证令牌的参数也可以被IM app 705从后端(例如,从WOPI主机700)获得。这些参数被IM app 705在在线app 707进行的客户端调用中传递给其服务器,在例子中,其服务器是办公在线服务器730。
办公在线服务器730(其是WOPI主机(WOPI服务器)700的客户端(WOPI客户端))继而调用WOIP主机700(或者,在技术上,路由基础设施750)。调用被路由基础设施750路由到WOPI主机700。如上所述,WOPI主机700可以操作来从IM服务器710获得工作副本。
WOPI主机700和IM服务器710这二者都通信地连接到数据和文件存储层760。主数据储存器762存储用于IM服务器710的草稿元数据和被管理对象。草稿(例如,最新的工作副本)被WOPI主机700高速缓存和存储在联网文件系统(NFS)764中。补充数据储存器766可以存储WOPI主机700所需的任何信息。这样的信息可以被WOPI主机700以各种方式和/或在不同的时间收集(例如,当WOPI主机700第一次启动时和/或通过按预定间隔对办公在线服务器730进行轮询)。如图7所示,办公在线服务器730可以将更新或整个文件提供给WOPI主机700,或者WOPI主机700可以发起发现处理以从办公在线服务器730获得信息。WOPI主机700收集的信息可以被存储在文件(例如,可扩展标记语言(XML)文档)中,并且可以包括发现信息、审计信息、WOPI访问令牌等。
在操作中,IM服务器710可以从主数据储存器762提取文档(例如,用户通过IM app705请求的文档),生成副本,并且将该副本提供给WOPI主机700。WOPI主机700可以如以上参照图6所述的那样对工作副本执行锁定机制并且创建WOPI Doc。如上所述,WOPI Doc是用户请求的同一个文档的另一个工作副本,但是是受WOPI主机700的控制。工作副本被WOPI主机700提供给其客户端(WOPI客户端730),该客户端将工作副本提供给其客户端(在线app707),该客户端在用户装置701上显示它。在一些实施例中,WOPI客户端730可以高速缓存其客户端(在线app 707)正在对其进行工作的文档的副本。在一些实施例中,WOPI主机700可以托管并且保存工作副本的最新版本。这样的工作副本可以反映在线编辑处理中所涉及的同一个文档的不同版本,而原始文档被存储在主数据储存器762中并且被锁定不让编辑。
当工作完成时(例如,当用户选择“保存”或者关闭在线app 707或IM app 705时),工作副本被从在线app 707同步回WOPI客户端730,然后被从WOPI客户端730同步回WOPI主机700。WOPI主机700可以如以上参照图5A-6所描述的那样执行一些清理操作,并且向IM服务器710传达它具有文档的新的副本。继而,IM服务器710可以要么将文档的新的副本保存为新的草稿,要么在主数据储存器762中用新的草稿替换存储的文档。用于新的草稿的元数据可以被IM服务器710提取并且被存储在主数据储存器762中。如该处理例示说明的,后端的IM服务器710的操作和性能不受WOPI要求的影响或其他限制。
熟练的技术人员意识到,数据和文件存储层760可以以许多方式实现,并且可以利用各种存储机制和系统。例如,除了上述存储器中的数据结构和分布式数据库系统之外,对象-关系数据库系统也可以被实施。
图8描绘其中可以实现所公开的实施例的企业网络计算环境的例子的图示。在例示说明的例子中,网络计算环境800包括网络814,网络814可以双向耦合到用户装置812、SaaS提供商计算机815和IM服务器计算机816。IM服务器计算机816可以双向耦合到被管理对象数据储存器818。网络814可以表示网络计算环境800可以利用其来进行本领域技术人员已知的各种类型的网络通信的有线网络和无线网络的组合。
为了例示说明的目的,示出了用于每个用户装置812、SaaS提供商计算机815和IM服务器计算机816的单个系统。然而,在用户装置812、SaaS提供商计算机815和IM服务器计算机816中的每个内,多个联网装置和计算机(未示出)两者都可以通过网络814彼此互连。例如,多个用户装置812和多个SAAS提供商计算机815可以耦合到网络814。用户装置812可以包括用于与IM服务器计算机816进行通信的数据处理系统。
用户装置812可以包括中央处理单元(“CPU”)820、只读存储器(“ROM”)822、随机存取存储器(“RAM”)824、硬盘驱动器(“HD”)或存储存储器826和(一个或多个)输入/输出装置(“I/O”)828。I/O 828可以包括键盘、监视器、打印机、电子指点装置(例如,鼠标、轨迹球、铁笔等)等。用户装置812可以包括台式计算机、膝上型计算机、个人数字助理、蜂窝电话、或能够通过网络进行通信的几乎任何的启用网络的装置。SAAS提供商计算机815可以类似于用户计算机812,并且可以包括CPU 850、ROM 852、RAM 854、HD 856和I/O 858。
同样地,IM服务器计算机816可以包括CPU 860、ROM 862、RAM 864、HD 866和I/O868。IM服务器计算机816可以包括被配置为通过网络814向用户装置812提供各种IM服务的一个或多个后端系统。被管理对象数据储存器818可以包括将被管理对象存储在IM服务器计算机816管理的储存库中的至少一个数据存储装置。许多其他的替代配置是可能的,并且是熟练的技术人员已知的。
图8中的计算机中的每个可以具有多于一个的CPU、ROM、RAM、HD、I/O或其他硬件组件。为了简洁起见,每个计算机被例示为具有硬件组件中的每个中的一个,即使多于一个被使用。计算机812、815和816中的每个是数据处理系统的例子。ROM 822、852和862;RAM 824、854和864;HD 826、856和866;以及数据储存器818可以包括可以被CPU 820、850或860读取的介质。因此,这些类型的存储器包括非暂时性计算机可读存储介质。这些存储器可以在计算机812、815或816的内部或外部。
本文中所描述的方法的部分可以用可以驻留在ROM 822、852或862;RAM 824、854或864;或HD 826、856或866内的合适的软件代码来实现。除了这些类型的存储器之外,本文中所公开的实施例中的指令可以包含在具有不同的计算机可读存储介质(诸如硬盘)的数据存储装置上。可替代地,指令可以被作为软件代码元素存储在数据存储阵列、磁带、软盘、光学存储装置、或其他合适的数据处理系统可读介质或存储装置上。
相关领域的技术人员将意识到,本发明可以用其他计算机系统配置来实现或实施,包括,但不限于,多处理器系统、网络装置、迷你计算机、大型计算机、数据处理器等。本发明可以在被特别编程、配置或构造为执行本文中详细描述的功能的计算机或数据处理器中实施。本发明也可以被用于分布式计算环境中,在分布式计算环境中,任务或模块由通过通信网络(诸如局域网(LAN)、广域网(WAN)和/或互联网)链接的远程处理装置执行。在分布式计算环境中,程序模块或子例程可以被安置在本地存储器存储装置和远程存储器存储装置这二者中。这些程序模块或子例程可以例如被存储或分布在计算机可读介质(包括磁性的和光学可读的且可移动的计算机盘)上、被作为固件存储在芯片中、以及通过互联网或者通过其他网络(包括无线网络)电子地分布。示例芯片可以包括电可擦除可编程只读存储器(EEPROM)芯片。本文中所讨论的实施例可以用可以驻留在非暂时性计算机可读介质、硬件电路等或任何组合上并且可以被一个或多个服务器机器转化的合适的指令来实现。在本公开中下面提供非暂时性计算机可读介质的例子。
ROM、RAM和HD是用于存储CPU可执行的或者能够被编译或解释为可被CPU执行的计算机可执行指令的计算机存储器。合适的计算机可执行指令可以驻留在计算机可读介质(例如,ROM、RAM和/或HD)、硬件电路等或它们的任何组合上。在本公开内,术语“计算机可读介质”不限于ROM、RAM和HD,并且可以包括可以被处理器读取的任何类型的数据存储介质。计算机可读存储介质的例子可以包括,但不限于,易失性的和非易失性的计算机存储器和存储装置,诸如随机存取存储器、只读存储器、硬盘驱动器、数据盒子、直接存取存储装置阵列、磁带、软盘、闪存驱动器、光学数据存储装置、紧凑盘只读存储器、以及其他合适的计算机存储器和数据存储装置。因此,计算机可读介质可以是指数据盒子、数据备份磁带、软盘、闪存驱动器、光学数据存储驱动器、CD-ROM、ROM、RAM、HD等。
本文中所描述的处理可以用可以驻留在计算机可读介质(例如,磁盘、CD-ROM、存储器等)上的合适的计算机可执行指令来实现。可替代地,计算机可执行指令可以被作为软件代码组件存储在直接存取存储装置阵列、磁带、软盘、光学存储装置、或其他合适的计算机可读介质或存储装置上。
任何合适的编程语言可以用于实现本文中所描述的发明的实施例的例程、方法或程序,包括C、C++、Java、JavaScript、HTML或任何其他的编程或脚本代码等。其他软件/硬件/网络架构可以被使用。例如,所公开的实施例的功能可以在一个计算机上实现,或者在网络中的或整个网络上的两个或更多个计算机之间共享/分布。实现实施例的计算机之间的通信可以使用任何电子信号、光学信号、射频信号或符合已知的网络协议的其他的合适的通信方法和工具来实现。
不同的编程技术可以被采用,诸如过程式的或面向对象的。任何特定的例程可以在单个计算机处理装置或多个计算机处理装置、单个计算机处理器或多个计算机处理器上执行。数据可以被存储在单个存储介质中,或者通过多个存储介质分布,并且可以驻留在单个数据库或多个数据库(或其他数据存储技术)中。尽管步骤、操作或计算可以按特定的次序呈现,但是在不同的实施例中,该次序是可以改变的。在一些实施例中,就多个步骤在本说明书中被示为顺序的来说,替代实施例中的这样的步骤的某个组合可以同时执行。本文中所描述的操作序列可以被中断、被暂停、或者被另一处理(诸如操作系统、核等)以其他方式控制。例程可以在操作系统环境中操作,或者作为独立例程操作。本文中所描述的功能、例程、方法、步骤和操作可以在硬件、软件、固件或它们的任何组合中执行。
本文中所描述的实施例可以在软件或硬件或软件和硬件的组合中以控制逻辑的形式实现。所述控制逻辑可以被存储在信息存储介质(诸如计算机可读介质)中、被存储为适于指导信息处理装置执行各种实施例中所公开的一组步骤的多个指令。基于本文中所提供的公开和教导,本领域的普通技术人员将意识到实现本发明的其他的方式和/或方法。
用软件编程或代码实现本文中所描述的步骤、操作、方法、例程或其部分中的任何一个也在本发明的精神和范围内,其中,这样的软件编程或代码可以被存储在计算机可读介质中,并且可以被处理器操作以使得计算机可以执行本文中所描述的步骤、操作、方法、例程或其部分中的任何一个。本发明可以通过使用一个或多个数字计算机中的软件编程或代码,通过使用专用集成电路、可编程逻辑器件、现场可编程门阵列、光学、化学、生物、量子或纳米工程系统,可以使用组件和机制来实现。本发明的功能可以以许多方式实现。例如,分布式的或联网的系统、组件和电路可以被使用。在另一个例子中,数据的通信或传送(或者要不然从一个地方移到另一个地方)可以是有线的、无线的或通过任何其他的手段。
“计算机可读介质”可以是可以包含、存储、传送、传播或输送用于供指令执行系统、设备、系统或装置使用或者与指令执行系统、设备、系统或装置有关的程序的任何介质。所述计算机可读介质可以是,仅举例来说,而非限制,电子、磁性、光学、电磁、红外线或半导体系统、设备、系统、装置、传播介质或计算机存储器。这样的计算机可读介质应是机器可读的,并且包括可以是人类可读的软件编程或代码(例如,源代码)、或者可以是机器可读的软件编程或代码(例如,对象代码)。非暂时性计算机可读介质的例子可以包括随机存取存储器、只读存储器、硬盘驱动器、数据盒子、磁带、软盘、闪存驱动器、光学数据存储装置、紧凑盘只读存储器以及其他适合的计算机存储器和数据存储装置。在说明性实施例中,软件组件中的一些或全部可以驻留在单个服务器计算机上或者单独的服务器计算机的任何组合上。如本领域技术人员可以意识到的,实现本文中所公开的计算机程序产品可以包括存储计算环境中的一个或多个处理器可转化的计算机指令的一个或多个非暂时性计算机可读介质。
“处理器”包括对数据、信号或其他信息进行处理的任何硬件系统、机制或组件。处理器可以包括具有中央处理单元、多个处理单元、用于实现功能的专用电路或其他系统的系统。处理无需限于地理位置或具有时间限制。例如,处理器可以“实时地”、“离线地”、按“分批模式”等执行其功能。处理的部分可以在不同的时间、不同的地点、通过不同的(或相同的)处理系统执行。
如本文中所使用的,术语“包括”、“包含”、“具有”或它们的任何其他的变型意图涵盖非排他性的包括。例如,包括元素列表的处理、产品、物品或设备不一定仅限于这些元素,而是可以包括没有明确列出的或者这样的处理、产品、物品或设备固有的其他元素。
此外,如本文中所使用的术语“或”一般意图意指“和/或”,除非另有指示。例如,条件A或B通过以下中的任何一个得到满足:A为真(或存在)并且B为假(或不存在)、A为假(或不存在)并且B为真(或存在)、以及A和B这二者都为真(或存在)。如本文中所使用的,前面有“一个”或“一种”的术语(以及前置基础为“一个”或“一种”时的“所述”)既包括单数的这样的术语,又包括复数的这样的术语,除非另有明确的指示(即,论述“一个”或“一种”明确地仅指示单数或者仅指示复数)。此外,如本文中的描述所使用的,“在……中”的意义包括“在……中”和“在……上”,除非上下文另有明确的指示。
还将意识到,如根据特定应用有用的,附图/图形中所描绘的元素中的一个或多个也可以以更分开的或更集成的方式实现,或者甚至如在某些情况下可操作的那样被移除或被渲染。另外,附图/图形中的任何信号箭头仅应被认为是示例性的,而非限制,除非另有明确的注释。本发明的范围应由所附权利要求和它们的合法的等同形式确定。
Claims (12)
1.一种用于文件访问的方法,包括:
在用户装置处,从用户接收在在线应用中打开或创建文档的请求,文档由信息管理IM服务器管理,IM服务器通过网络通信地连接到用户装置;
在用户装置上启动在线应用;
从Web应用开放平台接口WOPI服务器获得认证令牌;
至少将文档的文档标识符和WOPI服务器的认证令牌传递到在线应用服务器,其中,在线应用服务器是WOPI服务器的WOPI客户端并且独立于IM服务器进行操作,并且其中,在线应用服务器通过文档的文档标识符并通过WOPI服务器的认证令牌来调用WOPI服务器;
由WOPI服务器从IM服务器获得文档的工作副本;
由WOPI服务器将文档的工作副本提供给在线应用服务器,其中,在线应用服务器将工作副本提供给在线应用;以及
由在线应用将文档的工作副本显示在用户装置上。
2.根据权利要求1所述的方法,其中,打开或创建文档的请求是由在用户装置上运行的IM应用接收的,其中,IM应用是IM服务器的客户端应用,并且其中,所述启动是由IM应用执行的,并且导致在线应用在用户装置上的IM应用内的内联框架中运行。
3.根据权利要求1所述的方法,其中,打开或创建文档的请求是由在用户装置上的浏览器应用中运行的IM应用接收的,其中,IM应用是IM服务器的客户端应用,并且其中,所述启动是由IM应用执行的,并且导致在线应用在用户装置上的浏览器应用内运行的IM应用内的内联框架中运行。
4.根据权利要求1所述的方法,进一步包括:
从用户装置接收关闭或保存文档的工作副本的指示;
使文档的工作副本与IM服务器同步,其中,IM服务器将文档的工作副本作为草稿存储在联网文件系统中;以及
删除工作副本,所述删除由WOPI主机执行。
5.根据权利要求1所述的方法,进一步包括:
将WOPI服务器从IM服务器获得的文档的工作副本存储在WOPI服务器中作为WOPI文档;
在WOPI文档被锁定的情况下,响应于WOPI访问修改WOPI文档而不修改由IM服务器管理的文档;以及
一旦对WOPI文档的WOPI访问完成,就解锁WOPI文档,将WOPI文档与IM服务器同步以在IM服务器上创建新的对象,并且删除WOPI文档。
6.一种用于文件访问的系统,包括:
储存库,储存库存储企业计算网络中的被管理对象;
信息管理IM服务器,IM服务器对企业计算网络中的服务器机器进行操作,IM服务器通信地连接到储存库和用户装置,其中,用户装置从用户接收在在线应用中打开或创建文档的请求,文档被存储在储存库中并且由IM服务器管理,在线应用由在线应用服务器托管;以及
Web应用开放平台接口WOPI服务器,WOPI服务器通信地连接到IM服务器和在线应用服务器,其中,在线应用服务器是WOPI服务器的WOPI客户端并且独立于IM服务器进行操作,其中,在线应用服务器对于用户请求的文档调用WOPI服务器,其中,WOPI服务器被配置为从IM服务器获得文档的工作副本并且将文档的工作副本提供给在线应用服务器,并且其中,在线应用服务器将工作副本提供给在线应用,以供用户装置上的在线应用响应于来自用户的请求进行显示。
7.根据权利要求6所述的系统,其中,打开或创建文档的请求是由在用户装置上运行的IM应用接收的,其中,IM应用是IM服务器的客户端应用,并且其中,在线应用在用户装置上的IM应用内的内联框架中运行。
8.根据权利要求6所述的系统,其中,打开或创建文档的请求是由在用户装置上的浏览器应用中运行的IM应用接收的,其中,IM应用是IM服务器的客户端应用,并且其中,在线应用在用户装置上的浏览器应用内运行的IM应用内的内联框架中运行。
9.根据权利要求6所述的系统,其中,WOPI服务器实施WOPI锁定机制,并且其中,IM服务器实施不同于WOPI锁定机制的锁定机制。
10.根据权利要求6所述的系统,其中,WOPI服务器驻留在用户装置或服务器机器上。
11.根据权利要求6所述的系统,其中,WOPI服务器作为云服务或IM服务器的代理服务器进行操作。
12.根据权利要求6所述的系统,其中,WOPI服务器被进一步配置为:
将WOPI服务器从IM服务器获得的文档的工作副本存储在WOPI服务器中作为WOPI文档;
在WOPI文档被锁定的情况下,响应于WOPI访问修改WOPI文档而不修改由IM服务器管理的文档;以及
一旦对WOPI文档的WOPI访问完成,就解锁WOPI文档,将WOPI文档与IM服务器同步以在IM服务器上创建新的对象,并且删除WOPI文档。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762453342P | 2017-02-01 | 2017-02-01 | |
US62/453,342 | 2017-02-01 | ||
US15/884,078 | 2018-01-30 | ||
US15/884,078 US10671570B2 (en) | 2017-02-01 | 2018-01-30 | Web application open platform interface (WOPI) server architecture and applications for distributed network computing environments |
PCT/CA2018/050115 WO2018141060A1 (en) | 2017-02-01 | 2018-02-01 | Web application open platform interface (wopi) server architecture and applications for distributed network computing environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110313148A CN110313148A (zh) | 2019-10-08 |
CN110313148B true CN110313148B (zh) | 2021-11-23 |
Family
ID=62979929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880009369.5A Active CN110313148B (zh) | 2017-02-01 | 2018-02-01 | 用于分布式网络计算环境的web应用开放平台接口(WOPI)服务器架构和应用 |
Country Status (4)
Country | Link |
---|---|
US (4) | US10671570B2 (zh) |
EP (1) | EP3577855A4 (zh) |
CN (1) | CN110313148B (zh) |
WO (1) | WO2018141060A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10671570B2 (en) | 2017-02-01 | 2020-06-02 | Open Text Sa Ulc | Web application open platform interface (WOPI) server architecture and applications for distributed network computing environments |
EP4235461A3 (en) * | 2017-07-24 | 2023-11-15 | Wix.com Ltd. | Editing a database during preview of a virtual web page |
US10809991B2 (en) | 2018-10-26 | 2020-10-20 | Salesforce.Com, Inc. | Security model for live applications in a cloud collaboration platform |
EP3742308A1 (en) * | 2019-05-21 | 2020-11-25 | Siemens Healthcare GmbH | Computer-implemented method for providing cross-linking between cloud-based webapplications |
US11436299B2 (en) * | 2019-06-11 | 2022-09-06 | Ricoh Company, Ltd. | Information processing system, server apparatus, and information processing method |
CN112565059B (zh) * | 2020-12-03 | 2022-06-28 | 城云科技(中国)有限公司 | 基于即时通讯私有云架构的消息传输方法和系统 |
US11797315B2 (en) * | 2021-04-02 | 2023-10-24 | Microsoft Technology Licensing, Llc | Automatic acquisition and integration of supplemental software programs |
US11934545B2 (en) | 2021-06-22 | 2024-03-19 | Fortra, Llc | Secure way to authenticate from file protocol while handling third party cookies and browser inconsistencies |
CN113704005B (zh) * | 2021-08-31 | 2023-09-19 | 成都华唯科技股份有限公司 | 可远程调用应用的方法、装置、系统及可读存储介质 |
TWI788085B (zh) * | 2021-11-03 | 2022-12-21 | 財團法人資訊工業策進會 | 同步管理伺服器、同步管理系統及同步管理方法 |
CN114329290B (zh) * | 2021-12-15 | 2023-09-15 | 北京科东电力控制系统有限责任公司 | 能力开放平台及其授权访问方法 |
CN115150389B (zh) * | 2022-06-23 | 2024-05-17 | 浙江惠瀜网络科技有限公司 | 文件下载处理方法以及装置、电子设备、存储介质 |
CN115296858B (zh) * | 2022-07-12 | 2023-08-25 | 南京赛宁信息技术有限公司 | 主动防御网关拓扑编辑器本地存储方法与系统 |
US20240311343A1 (en) * | 2023-03-14 | 2024-09-19 | Dell Products L.P. | Bridging heterogeneous sets of cloud applications and storage |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6484149B1 (en) * | 1997-10-10 | 2002-11-19 | Microsoft Corporation | Systems and methods for viewing product information, and methods for generating web pages |
TW201042973A (en) * | 2008-11-28 | 2010-12-01 | Ibm | Token-based client to server authentication of a secondary communication channel by way of primary authenticated communication channels |
US8195792B2 (en) * | 2009-01-16 | 2012-06-05 | Microsoft Corporation | Interfacing distinct services for providing web based document manipulation access |
KR101217038B1 (ko) * | 2010-09-10 | 2013-01-02 | 주식회사 지.알테크 | 인터넷을 이용한 시공보증서 발급시스템 및 방법 |
US20130080603A1 (en) * | 2011-09-27 | 2013-03-28 | Microsoft Corporation | Fault Tolerant External Application Server |
US9338158B2 (en) * | 2011-10-14 | 2016-05-10 | Open Text S.A. | System and method for secure content sharing and synchronization |
US9369504B1 (en) * | 2011-10-31 | 2016-06-14 | Rollapp, Inc. | Enabling seamless remote access to online applications through a web server |
CN102571948B (zh) | 2011-12-29 | 2014-07-02 | 国云科技股份有限公司 | 基于云计算的PaaS平台系统及其实现方法 |
US9413587B2 (en) | 2012-05-02 | 2016-08-09 | Box, Inc. | System and method for a third-party application to access content within a cloud-based platform |
AU2015258733B2 (en) * | 2014-05-14 | 2020-03-12 | Pagecloud Inc. | Methods and systems for web content generation |
US10101983B2 (en) * | 2014-11-07 | 2018-10-16 | Open Text Sa Ulc | Client application with embedded server |
WO2016138067A1 (en) | 2015-02-24 | 2016-09-01 | Cloudlock, Inc. | System and method for securing an enterprise computing environment |
US10027644B2 (en) * | 2015-03-03 | 2018-07-17 | Microsoft Technology Licensing, Llc | Analysis with embedded electronic spreadsheets |
CN105868416A (zh) * | 2016-05-26 | 2016-08-17 | 湖南洋达信息科技有限公司 | 一种在线文档设计管理系统及方法 |
US10313359B2 (en) * | 2016-11-01 | 2019-06-04 | Microsoft Technology Licensing, Llc | Protocols for accessing hosts |
US11188710B2 (en) * | 2016-12-30 | 2021-11-30 | Dropbox, Inc. | Inline content item editor commands |
US10671570B2 (en) | 2017-02-01 | 2020-06-02 | Open Text Sa Ulc | Web application open platform interface (WOPI) server architecture and applications for distributed network computing environments |
US10387383B2 (en) * | 2017-02-15 | 2019-08-20 | Google Llc | Systems and methods for providing access to a data file stored at a data storage system |
US20190068533A1 (en) * | 2017-08-28 | 2019-02-28 | Microsoft Technology Licensing, Llc | Acquiring attachments from data storage providers for use in electronic communications |
US11188353B2 (en) * | 2018-07-12 | 2021-11-30 | Vmware, Inc. | Runtime extension system for bundled web application |
US11797315B2 (en) * | 2021-04-02 | 2023-10-24 | Microsoft Technology Licensing, Llc | Automatic acquisition and integration of supplemental software programs |
-
2018
- 2018-01-30 US US15/884,078 patent/US10671570B2/en active Active
- 2018-02-01 EP EP18747978.7A patent/EP3577855A4/en active Pending
- 2018-02-01 CN CN201880009369.5A patent/CN110313148B/zh active Active
- 2018-02-01 WO PCT/CA2018/050115 patent/WO2018141060A1/en unknown
-
2020
- 2020-05-11 US US16/871,612 patent/US11442901B2/en active Active
-
2022
- 2022-07-29 US US17/876,671 patent/US11704287B2/en active Active
-
2023
- 2023-06-03 US US18/328,717 patent/US12072846B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10671570B2 (en) | 2020-06-02 |
CN110313148A (zh) | 2019-10-08 |
EP3577855A4 (en) | 2020-08-19 |
US20220382718A1 (en) | 2022-12-01 |
US20200334211A1 (en) | 2020-10-22 |
US11442901B2 (en) | 2022-09-13 |
US11704287B2 (en) | 2023-07-18 |
WO2018141060A1 (en) | 2018-08-09 |
US20180218006A1 (en) | 2018-08-02 |
EP3577855A1 (en) | 2019-12-11 |
US12072846B2 (en) | 2024-08-27 |
US20230325359A1 (en) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110313148B (zh) | 用于分布式网络计算环境的web应用开放平台接口(WOPI)服务器架构和应用 | |
US20230308489A1 (en) | Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations | |
US11985167B2 (en) | System and method for remote wipe | |
US20190230130A1 (en) | System and method for updating downloaded applications using managed container | |
US9992200B2 (en) | System and method for secure content sharing and synchronization | |
EP3614276B1 (en) | Document management and collaboration system | |
JP6608453B2 (ja) | 記憶されたデータに対するリモートアクセス制御 | |
US10452683B2 (en) | Selectively synchronizing data on computing devices based on selective sync templates |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |