CN111066307B - 包装延续令牌以支持跨不同地理位置的多个服务器的分页 - Google Patents

包装延续令牌以支持跨不同地理位置的多个服务器的分页 Download PDF

Info

Publication number
CN111066307B
CN111066307B CN201880058851.8A CN201880058851A CN111066307B CN 111066307 B CN111066307 B CN 111066307B CN 201880058851 A CN201880058851 A CN 201880058851A CN 111066307 B CN111066307 B CN 111066307B
Authority
CN
China
Prior art keywords
records
server
continuation token
client device
enterprise
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
Application number
CN201880058851.8A
Other languages
English (en)
Other versions
CN111066307A (zh
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.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN111066307A publication Critical patent/CN111066307A/zh
Application granted granted Critical
Publication of CN111066307B publication Critical patent/CN111066307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/52Network services specially adapted for the location of the user terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • 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/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/126Shortest path evaluation minimising geographical or physical path length

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开的各方面涉及包装延续令牌以支持跨不同地理位置的多个服务器的分页。一种企业服务器可接收对多个记录的第一请求,并且对所述多个记录的所述第一请求可请求超过页面大小限制的一定量的记录。响应于接收到所述第一请求,所述企业服务器可检索第一组记录,所述第一组记录包括等于所述页面大小限制的第一数目的记录。所述企业服务器可生成第一包装的延续令牌,其包括标识要在其中检索下一组记录的第一服务器的地理位置的位置信息。最后,所述企业服务器可向所述客户端装置发送所述第一组记录和所述第一包装的延续令牌,这可使所述客户端装置处理所述第一组记录。

Description

包装延续令牌以支持跨不同地理位置的多个服务器的分页
交叉引用
本申请要求2017年8月28日提交的标题为《包装延续令牌以支持跨不同地理位置的多个服务器的分页(WRAPPING CONTINUATION TOKENS TO SUPPORT PAGING FORMULTIPLE SERVERS ACROSS DIFFERENT GEOLOCATIONS)》的第15/688,252号美国非临时专利申请的优先权,此申请特此以全文引用的方式并入本文中。
技术领域
本公开的各方面涉及计算机硬件和软件。具体地说,本公开的一个或多个方面大体上涉及用于跨多个地理位置的大数据存储和检索的计算机硬件和软件。
背景技术
虚拟环境可提供对分段在基于云的环境的多个地理位置中的全局分布式多模型大数据的存储。具体地说,此类以数据为中心的系统可能需要在例如键值存储和文件存储的无模式数据库中存储和检索非结构化和结构化数据。随着云中企业扩展其服务,跨多个地理位置的数据到达的量、多样性和速度都急剧增加。因此,常规系统可能无法在效率、性能、无缝性和可扩展性上应对这些挑战。
发明内容
下文呈现本文所描述的各种方面的简化概述。此概述并非广泛综述,而且并非旨在标识关键或重要要素或划定权利要求的范围。以下概述仅以简化形式呈现一些概念,作为对下文提供的更详细描述的介绍性序言。
为了克服上文描述的现有技术中的限制,并且为了克服在阅读和理解本说明书之后将显而易见的其它限制,本文所描述的各方面涉及包装延续令牌以支持跨不同地理位置的多个服务器的分页。
根据本公开的一个或多个方面,一种具有至少一个处理器、存储器和通信接口的企业服务器可从客户端装置接收对多个记录的第一请求,并且所述第一请求可请求超过页面大小限制的一定量的记录。响应于接收到所述第一请求,所述企业服务器可检索第一组记录,所述第一组记录包括等于所述页面大小限制的第一数目的记录。随后,所述企业服务器可生成第一包装的延续令牌,其可包括标识要在其中检索下一组记录的第一服务器的地理位置的位置信息。此后,所述企业服务器可向客户端装置发送第一组记录和第一包装的延续令牌,而向客户端装置发送第一包装的延续令牌可使客户端装置处理第一组记录。
在一些情况下,在企业服务器向客户端装置发送第一组记录和第一包装的延续令牌之后,所述企业服务器可从客户端装置接收所述第一包装的延续令牌。例如,所述企业服务器可基于第一包装的延续令牌而标识与要检索的多个记录相关联的第二组记录,并且所述第二组记录可包括小于页面大小限制的第二数目的记录。在另一示例中,响应于标识第二组记录,所述企业服务器可检索第二组记录。
在一些情况下,在检索第二组记录之后,所述企业服务器可向第一新地理数据服务器发送第二请求以检索包括第三数目的记录的第三组记录,并且第二数目的记录和第三数目的记录的总和可等于所述页面大小限制。在一些情况下,所述企业服务器可从第一新地理数据服务器接收第三组记录和第二包装的延续令牌。在一些情况下,第二包装的延续令牌可包括标识要在其中检索多个记录中的下一组记录的第一新地理数据服务器的地理位置的位置信息。因此,所述企业服务器可向客户端装置发送第二组记录、第三组记录和第二包装的延续令牌,其中向客户端装置发送第二包装的延续令牌可使所述客户端装置处理第二组记录和第三组记录。
在一些情况下,在发送第二和第三组记录以及第二包装的延续令牌之后,所述企业服务器可从客户端装置接收所述第二包装的延续令牌。随后,所述企业服务器可基于与第二包装的延续令牌相关联的地理位置而向第一新地理数据服务器发送第二包装的延续令牌。
在一些情况下,响应于向第一新地理数据服务器发送第二包装的延续令牌,所述企业服务器可从第一新地理数据服务器接收第四组记录,其中所述第四组记录可包括小于页面大小限制的第四数目的记录。在一些情况下,所述企业服务器可向第二新地理数据服务器发送第三请求以检索多个记录中的额外记录。由此,所述企业服务器可从第二新地理数据服务器接收包括第五数目的记录的第五组记录,其中第四数目的记录和第五数目的记录的总和可小于页面大小限制。
在一些情况下,所述企业服务器可标识所述多个记录中不存在要检索的额外记录,并且向客户端装置发送第四和第五组记录,这可使客户端装置处理第四组记录和第五组记录。在一些情况下,所述企业服务器可配置成托管可包括用于特定地理区域的数据的数据存储区。
得益于下文进一步详细论述的公开内容,将了解这些和其它方面。
附图说明
可通过参考结合附图的以下描述来获取对本文中所描述的方面和其优势的更完全理解,附图中相似附图标号指示相似特征,并且在附图中:
图1描绘可根据本文中描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2描绘可根据本文中描述的一个或多个说明性方面使用的说明性远程访问系统架构。
图3描绘可根据本文中描述的一个或多个说明性方面使用的说明性虚拟化(管理程序)系统架构。
图4描绘可根据本文中描述的一个或多个说明性方面使用的说明性基于云的系统架构。
图5描绘说明性企业移动性管理系统。
图6描绘另一说明性企业移动性管理系统。
图7描绘根据本文所描述的一个或多个说明性方面的用于包装延续令牌以支持跨不同地理位置的多个服务器的分页的说明性计算环境。
图8A到8D描绘根据本文所描述的一个或多个说明性方面的用于包装延续令牌以支持跨不同地理位置的多个服务器的分页的示例事件序列。
图9描绘根据本文所描述的一个或多个说明性方面的包装延续令牌以支持跨不同地理位置的多个服务器的分页的示例方法。
具体实施方式
在各种实施例的以下描述中,参考了上文指出且形成本发明的部分的附图,并且在附图中以说明方式示出其中可实践本文所描述的各方面的各种实施例。应理解,在不脱离本文所描述的范围的情况下,可利用其它实施例,并且可进行结构和功能修改。各个方面能够有其它实施例,并且能以各种不同方式实践或执行。
应理解,本文中所用措词和术语用于描述的目的,不应视为具有限制性。实际上,应对本文中使用的短语和术语给予其最广泛的解释和含义。对“包含”和“包括”以及其变体的使用意在涵盖其后所列项目和其等同物以及额外项目和其等同物。对术语“安装”、“连接”、“联接”、“定位”、“接合”和类似术语的使用意在包含直接和间接这两种安装、连接、联接、定位和接合。
计算架构
可在包含独立式、联网、远程访问(又名,远程桌面)、虚拟化和/或基于云的环境等各种不同系统环境中利用计算机软件、硬件和网络。图1示出可用以在独立式和/或联网环境中实施本文所描述的一个或多个说明性方面的系统架构和数据处理装置的一个示例。各种网络节点103、105、107和109可通过互联网等广域网(WAN)101互连。还可以或替代地使用其它网络,包含私有内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等。网络101用于说明的目的,并且可由更少或额外计算机网络替换。局域网133可具有任何已知LAN拓扑中的一个或多个,并且可使用各种不同协议中的一种或多种,例如以太网。装置103、105、107、109和其它装置(未示出)可通过双绞线、同轴线缆、光纤、无线电波或其它通信介质连接到所述网络中的一个或多个。
如本文中所使用且在图中描绘的术语“网络”不仅指其中远程存储装置通过一个或多个通信路径联接在一起的系统,还指可不时地联接到具有存储能力的此类系统的独立装置。因此,术语“网络”不仅包含“物理网络”,还包含由可归于驻存在所有物理网络上的单个实体的数据构成的“内容网络”。
部件可包含数据服务器103、网页服务器105和客户端计算机107、109。数据服务器103提供对用于执行本文描述的一个或多个说明性方面的数据库和控制软件的总体访问、控制和管理。数据服务器103可连接到网页服务器105,用户通过所述网页服务器与请求的数据交互和获得请求的数据。替代地,数据服务器103可充当网页服务器自身并且直接连接到互联网。数据服务器103可通过局域网133、广域网101(例如,互联网)通过直接或间接连接或通过某一其它网络连接到网页服务器105。用户可使用远程计算机107、109与数据服务器103交互,例如使用网页浏览器来通过由网页服务器105托管的一个或多个外露网站连接到数据服务器103。客户端计算机107、109可与数据服务器103配合使用以访问其中存储的数据,或可用于其它目的。例如,从客户端装置107,用户可使用所属领域中已知的互联网浏览器或通过执行在计算机网络(例如互联网)上与网页服务器105和/或数据服务器103通信的软件应用程序来访问网页服务器105。
服务器和应用程序可在相同物理机器上组合,并且保留单独的虚拟或逻辑地址,或可驻存于单独的物理机器上。图1仅示出可使用的网络架构的一个示例,并且所属领域的技术人员应了解,所用的具体网络架构和数据处理装置可变化,且对于其提供的功能来说是次要的,如本文进一步描述。例如,由网页服务器105和数据服务器103提供的服务可在单个服务器上组合。
每个部件103、105、107、109可以是任一类型的已知计算机、服务器或数据处理装置。数据服务器103例如可包含控制数据服务器103的总体操作的处理器111。数据服务器103还可包含随机存取存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(I/O)119可包含各种接口单元和驱动器以用于读取、写入、显示和/或打印数据或文件。存储器121还可存储用于控制数据处理装置103的总体操作的操作系统软件123、用于发指令给数据服务器103以执行本文中描述的各方面的控制逻辑125以及其它应用程序软件127,所述其它应用程序软件提供可以或可能不结合本文中描述的方面使用的辅助、支持和/或其它功能。所述控制逻辑在本文中还可称作数据服务器软件125。数据服务器软件的功能可指基于编码到控制逻辑中的规则而自动做出的操作或决策、通过用户对系统提供输入而手动做出的操作或决策,和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合。
存储器121还可存储用于进行本文中描述的一个或多个方面的数据,所述存储器包含第一数据库129和第二数据库131。在一些实施例中,第一数据库可包含第二数据库(例如作为单独表格、报告等)。即,取决于系统设计,信息可存储在单个数据库中,或分到不同逻辑、虚拟或物理数据库中。装置105、107和109可具有如关于装置103所描述的类似或不同的架构。所属领域的技术人员应了解,本文中描述的数据处理装置103(或装置105、107、109)的功能可散布在多个数据处理装置上以例如将处理负荷分布在多个计算机上,从而基于地理位置、用户访问级别、服务质量(QoS)等来分隔事务。
一个或多个方面可由本文中描述的一个或多个计算机或其它装置执行的例如一个或多个程序模块中的计算机可用或可读数据和/或计算机可执行指令来体现。一般来说,程序模块包含在由计算机或其它装置中的处理器执行时执行特定任务或实施特定抽象数据类型的例程、程序、对象、部件、数据结构等。模块可用随后被编译供执行的源代码编程语言来编写,或可用例如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)的脚本语言来编写。计算机可执行指令可存储在非易失性存储装置等计算机可读介质上。可利用任何合适的计算机可读存储介质,包含硬盘、CD-ROM、光学存储装置、磁性存储装置和/或其任何组合。另外,表示本文中描述的数据或事件的各种传输(非存储)媒体可按穿过信号传导介质的电磁波形式传送于源与目的地之间,所述信号传导介质例如金属线、光纤和/或无线传输介质(例如,空气和/或空间)。本文中描述的各种方面可体现为方法、数据处理系统或计算机程序产品。因此,各种功能可全部或部分地以软件、固件和/或硬件或硬件等同物体现,例如,集成电路、现场可编程门阵列(FPGA)等。可使用特定数据结构更有效地实施本文中描述的一个或多个方面,并且预期此类数据结构在本文中描述的计算机可执行指令和计算机可用数据的范围内。
另外参考图2,可在远程访问环境中实施本文中描述的一个或多个方面。图2描绘可根据本文所描述的一个或多个说明性方面使用的在说明性计算环境200中的包含计算装置201的示例系统架构。计算装置201可用作单服务器或多服务器桌面虚拟化系统(例如远程访问或云系统)中的服务器206a,所述桌面虚拟化系统配置成向客户端访问装置提供虚拟机。计算装置201可具有用于控制服务器和其相关联部件的总体操作的处理器203,所述相关联部件包含RAM 205、ROM 207、输入/输出(I/O)模块209和存储器215。
I/O模块209可包含计算装置201的用户可借以提供输入的鼠标、小键盘、触摸屏、扫描仪、光学读取器和/或触控笔(或其它输入装置),并且还可包含用于提供音频输出的一个或多个扬声器以及用于提供文本、视听和/或图形输出的一个或多个视频显示装置。软件可存储在存储器215和/或其它存储装置内以提供指令到处理器203,以将计算装置201配置成专用计算装置以便执行本文所描述的各种功能。例如,存储器215可存储由计算装置201使用的软件,例如操作系统217、应用程序219和相关联数据库221。
计算装置201可在联网环境中操作,所述联网环境支持与终端240(也称为客户端装置)等一个或多个远程计算机的连接。终端240可以是个人计算机、移动装置、笔记本电脑、平板计算机或服务器,其包含上文关于计算装置103或201所描述的许多或全部元件。图2中描绘的网络连接包含局域网(LAN)225和广域网(WAN)229,但也可包含其它网络。当用于LAN联网环境中时,计算装置201可通过网络接口或适配器223连接到LAN 225。当用在WAN联网环境中时,计算装置201可包含调制解调器227或其它广域网接口以在计算机网络230(例如互联网)等WAN 229上建立通信。应了解,所示网络连接是说明性的,并且可使用其它方式在计算机之间建立通信链路。计算装置201和/或终端240还可以是包含电池、扬声器和天线(未示出)等各种其它部件的移动终端(例如移动电话、智能电话、个人数字助理(PDA)、笔记本电脑等)。
本文中描述的方面也可与众多其它通用或专用计算系统环境或配置一起操作。可适合与本文中描述的方面一起使用的其它计算系统、环境和/或配置的示例包含但不限于个人计算机、服务器计算机、手持型或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费型电子装置、网络个人计算机(PC)、微型计算机、大型计算机、包含以上系统或装置中的任一种的分布式计算环境,等等。
如图2中所示,一个或多个客户端装置240可与一个或多个服务器206a到206n(在本文中统称为“服务器206”)通信。在一个实施例中,计算环境200可包含安装在服务器206与客户端机器240之间的网络设备。所述网络设备可管理客户端/服务器连接,并且在一些情况下可使客户端连接在多个后端服务器206当中实现负载均衡。
在一些实施例中,客户端机器240可称作单个客户端机器240或客户端机器240的单个群组,而服务器206可称作单个服务器206或服务器206的单个群组。在一个实施例中,单个客户端机器240与多于一个服务器206通信,而在另一实施例中,单个服务器206与多于一个客户端机器240通信。在又一实施例中,单个客户端机器240与单个服务器206通信。
在一些实施例中,客户端机器240可通过以下非穷尽性术语中的任一个提及:客户端机器;客户端;客户端计算机;客户端装置;客户端计算装置;本地机器;远程机器;客户端节点;端点;或端点节点。在一些实施例中,服务器206可由以下非穷尽性术语中的任一个提及:服务器、本地机器;远程机器;服务器集群,或主机计算装置。
在一个实施例中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由1型或2型管理程序管理的任何虚拟机,所述管理程序例如,由Citrix系统、IBM、VMware开发的管理程序,或任何其它管理程序。在一些方面,虚拟机可由管理程序管理,而在其它方面,虚拟机可由服务器206上执行的管理程序或客户端240上执行的管理程序来管理。
一些实施例包含客户端装置240,其显示由服务器206或其它远程定位的机器上远程执行的应用程序生成的应用程序输出。在这些实施例中,客户端装置240可执行虚拟机接收器程序或应用程序以在应用窗口、浏览器或其它输出窗口中显示输出。在一个示例中,应用程序是桌面,而在其它示例中,应用程序是生成或呈现桌面的应用程序。桌面可包含图形壳层,其向操作系统的实例提供用户界面,本地和/或远程应用程序可集成在所述操作系统中。如本文中所用的应用程序是在已加载操作系统(任选地,还有桌面)的实例之后执行的程序。
在一些实施例中,服务器206使用远程呈现协议或其它程序将数据发送到精简客户端或在客户端上执行的远程显示应用程序,以呈现由服务器206上执行的应用程序生成的显示输出。精简客户端或远程显示协议可以是以下非穷尽性协议列表中的任一个:由佛罗里达州劳德代尔堡(Fort Lauderdale,FL)的思杰系统公司(Citrix Systems,Inc.)开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙德的微软公司(Microsoft Corporation)制造的远程桌面协议(RDP)。
远程计算环境可包含多于一个服务器206a到206n,使得服务器206a到206n例如在云计算环境中一起逻辑分组为服务器集群206。服务器集群206可包含地理上分散但逻辑分组在一起的服务器206,或彼此位置接近同时逻辑分组在一起的服务器206。在一些实施例中,服务器集群206内的地理上分散的服务器206a到206n可使用WAN(广)、MAN(都市)或LAN(本地)进行通信,其中不同地理区域可表征为:不同大陆;大陆的不同区域;不同国家;不同州;不同城市;不同园区;不同房间;或前述地理位置的任何组合。在一些实施例中,可将服务器集群206作为单个实体管理,而在其它实施例中,服务器集群206可包含多个服务器集群。
在一些实施例中,服务器集群可包含执行大体上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID、SYMBIAN等)的服务器206。在其它实施例中,服务器集群206可包含执行第一类型的操作系统平台的一个或多个服务器的第一群组,以及执行第二类型的操作系统平台的一个或多个服务器的第二群组。
服务器206可按需要配置为任一类型的服务器,例如,文件服务器、应用程序服务器、网页服务器、代理服务器、设备、网络设备、网关、应用程序网关、网关服务器、虚拟化服务器、部署服务器、安全套接层(SSL)VPN服务器、防火墙、网页服务器、应用程序服务器,或作为主应用程序服务器、执行活动目录的服务器,或执行提供防火墙功能、应用功能或负载均衡功能的应用加速程序的服务器。还可使用其它服务器类型。
一些实施例包含第一服务器206a,其接收来自客户端机器240的请求,将请求转发到第二服务器206b(未示出),并且通过来自第二服务器206b(未示出)的响应对由客户端机器240生成的请求进行响应。第一服务器206a可获取可用于客户端机器240的应用程序的列举,以及与托管所述应用程序列举内标识的应用程序的应用程序服务器206相关联的地址信息。接着,第一服务器206a可使用网页界面呈现对客户端请求的响应,并且与客户端240直接通信以向客户端240提供对所标识应用程序的访问权。一个或多个客户端240和/或一个或多个服务器206可通过网络101等网络230传输数据。
图3示出说明性桌面虚拟化系统的高层级架构。如所示,桌面虚拟化系统可以是单服务器或多服务器系统或云系统,其包含配置成将虚拟桌面和/或虚拟应用程序提供到一个或多个客户端访问装置240的至少一个虚拟化服务器301。如本文所使用,桌面是指其中可托管和/或执行一个或多个应用程序的图形环境或空间。桌面可包含图形壳层,其向操作系统的实例提供用户界面,本地和/或远程应用程序可集成在所述操作系统中。应用程序可包含在已加载操作系统(任选地,还有桌面)的实例之后执行的程序。操作系统的每一实例可以是物理的(例如每一装置一个操作系统)或虚拟的(例如单个装置上运行的OS的许多实例)。每个应用程序可在本地装置上执行,或在位于远处的装置(例如,远程)上执行。
计算机装置301可配置为虚拟化环境中的虚拟化服务器,例如单服务器、多服务器或云计算环境。图3所示的虚拟化服务器301可部署为图2所示服务器206的一个或多个实施例,和/或由所述一个或多个实施例或由其它已知计算装置来实施。虚拟化服务器301中包含硬件层,所述硬件层可包含一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个物理存储器316。在一些实施例中,固件312可存储在物理存储器316中的存储器元件内,并且可由物理处理器308中的一个或多个执行。虚拟化服务器301还可包含操作系统314,所述操作系统可存储在物理存储器316中的存储器元件中并且由物理处理器308中的一个或多个执行。另外,管理程序302可存储在物理存储器316中的存储器元件中,并且可由物理处理器308中的一个或多个执行。
一个或多个虚拟机332A-C(统称332)可在物理处理器308中的一个或多个上执行。每个虚拟机332可具有虚拟磁盘326A-C和虚拟处理器328A-C。在一些实施例中,第一虚拟机332A可使用虚拟处理器328A执行包含工具堆栈324的控制程序320。控制程序320可称作控制虚拟机、Dom0、域0或用于系统管理和/或控制的其它虚拟机。在一些实施例中,一个或多个虚拟机332B-C可使用虚拟处理器328B-C执行客户机操作系统330A-B。
虚拟化服务器301可包含硬件层310,所述硬件层具有与虚拟化服务器301通信的一个或多个硬件。在一些实施例中,硬件层310可包含一个或多个物理磁盘304、一个或多个物理装置306、一个或多个物理处理器308和一个或多个物理存储器316。物理部件304、306、308和316可包含例如上文所描述的任一部件。物理装置306可包含例如网络接口卡、视频卡、键盘、鼠标、输入装置、监测器、显示装置、扬声器、光学驱动器、存储装置、通用串行总线连接、打印机、扫描仪、网元(例如,路由器、防火墙、网络地址转换器、负载均衡器、虚拟私有网络(VPN)网关、动态主机配置协议(DHCP)路由器等)或连接到虚拟化服务器301或与所述虚拟化服务器通信的任何装置。硬件层310中的物理存储器316可包含任何类型的存储器。物理存储器316可存储数据,并且在一些实施例中,可存储一个或多个程序或可执行指令集。图3示出固件312存储在虚拟化服务器301的物理存储器316内的实施例。存储在物理存储器316中的程序或可执行指令可由虚拟化服务器301的一个或多个处理器308执行。
虚拟化服务器301还可包含管理程序302。在一些实施例中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建并管理任何数目个虚拟机332的程序。管理程序302可称作虚拟机监控器或平台虚拟化软件。在一些实施例中,管理程序302可以是可执行指令与监测在计算机器上执行的虚拟机的硬件的任何组合。管理程序302可以是2型管理程序,其中所述管理程序在操作系统314内执行,所述操作系统在虚拟化服务器301上执行。虚拟机可接着在高于所述管理程序的层级处执行。在一些实施例中,2型管理程序可在用户的操作系统的情境内执行,使得2型管理程序与用户的操作系统交互。在其它实施例中,虚拟化环境中的一个或多个虚拟化服务器301可改为包含1型管理程序(未示出)。1型管理程序可通过直接访问硬件层310内的硬件和资源而在虚拟化服务器301上执行。即,虽然2型管理程序302通过主机操作系统314访问系统资源,如所示,但1型管理程序可在无主机操作系统314的情况下直接访问所有系统资源。1型管理程序可直接在虚拟化服务器301的一个或多个物理处理器308上执行,并且可包含存储在物理存储器316中的程序数据。
在一些实施例中,以模拟能够直接访问系统资源的操作系统330或控制程序320的任何方式,管理程序302可将虚拟资源提供到在虚拟机332上执行的操作系统330或控制程序320。系统资源可包含但不限于物理装置306、物理磁盘304、物理处理器308、物理存储器316和包含在虚拟化服务器301硬件层310中的任何其它部件。管理程序302可用于模拟虚拟硬件、分割物理硬件、虚拟化物理硬件和/或执行提供对计算环境的访问权的虚拟机。在其它实施例中,管理程序302可控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分割。管理程序302可包含:加利福尼亚州帕洛阿尔托(Palo Alto,California)的VMWare,Inc.制造的管理程序;XENPROJECT管理程序,其为在开源XenProject.org团体监督下开发的开源产品;由微软提供的HyperV、VirtualServer或虚拟PC管理程序,或其它管理程序。在一些实施例中,虚拟化服务器301可执行创建虚拟机平台的管理程序302,客户机操作系统可在所述虚拟机平台上执行。在这些实施例中,虚拟化服务器301可称作主机服务器。此类虚拟化服务器的示例是由佛罗里达州劳德代尔堡的思杰系统公司提供的XENSERVER。
管理程序302可创建一个或多个虚拟机332B-C(统称332),客户机操作系统330在所述虚拟机中执行。在一些实施例中,管理程序302可加载虚拟机图像以创建虚拟机332。在其它实施例中,管理程序302可执行虚拟机332内的客户机操作系统330。在其它实施例中,虚拟机332可执行客户机操作系统330。
除创建虚拟机332之外,管理程序302还可控制至少一个虚拟机332的执行。在其它实施例中,管理程序302可通过虚拟化服务器301提供的至少一个硬件资源(例如,在硬件层310内可用的任何硬件资源)的抽象来呈现至少一个虚拟机332。在其它实施例中,管理程序302可控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可包含确定虚拟机332是否应当具有对处理器308的访问权以及物理处理器能力被呈现给虚拟机332的方式。
如图3中所示,虚拟化服务器301可托管或执行一个或多个虚拟机332。虚拟机332是可执行指令集,其在由处理器308执行时可模仿物理计算机的操作,使得虚拟机332可极类似于物理计算装置来执行程序和进程。虽然图3示出虚拟化服务器301托管三个虚拟机332的实施例,但在其它实施例中,虚拟化服务器301可托管任何数目的虚拟机332。在一些实施例中,管理程序302可为每个虚拟机332提供可用于该虚拟机332的物理硬件、存储器、处理器和其它系统资源的独特虚拟视图。在一些实施例中,所述独特虚拟视图可基于虚拟机权限、将策略引擎应用于一个或多个虚拟机标识符、访问虚拟机的用户、在虚拟机上执行的应用程序、虚拟机访问的网络或任何其它所要准则中的一个或多个。例如,管理程序302可创建一个或多个不安全虚拟机332和一个或多个安全虚拟机332。可阻止不安全虚拟机332访问可准许安全虚拟机332访问的资源、硬件、存储器位置和程序。在其它实施例中,管理程序302可为每个虚拟机332提供可供此虚拟机332使用的物理硬件、存储器、处理器和其它系统资源的大体上类似的虚拟视图。
每个虚拟机332可包含虚拟磁盘326A-C(统称326)和虚拟处理器328A-C(统称328)。在一些实施例中,虚拟磁盘326是虚拟化服务器301的一个或多个物理磁盘304或虚拟化服务器301的一个或多个物理磁盘304的一部分的虚拟化视图。物理磁盘304的虚拟化视图可由管理程序302生成、提供和管理。在一些实施例中,管理程序302为每个虚拟机332提供物理磁盘304的独特视图。因此,在这些实施例中,包含在每个虚拟机332中的特定虚拟磁盘326相比于其它虚拟磁盘326可以是独特的。
虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施例中,物理处理器308的虚拟化视图可由管理程序302生成、提供和管理。在一些实施例中,虚拟处理器328具有至少一个物理处理器308的大体上所有相同特性。在其它实施例中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的至少一些特性不同于对应物理处理器308的特性。
另外参考图4,可在基于云的环境中实施本文中描述的一些方面。图4示出云计算环境(或云系统)400的示例。如图4中所见,客户端计算机411到414可与云管理服务器410通信以访问云系统的计算资源(例如,主机服务器403a到403b(本文统称为“主机服务器403”)、存储资源404a到404b(本文统称为“存储资源404”)和网络资源405a到405b(本文统称为“网络资源405”))。
管理服务器410可在一个或多个物理服务器上实施。管理服务器410可运行例如佛罗里达州劳德代尔堡的思杰系统公司的CLOUDPLATFORM或OPENSTACK等。管理服务器410可管理各种计算资源,包含云硬件和软件资源,例如,主机计算机403、数据存储装置404和联网装置405。云硬件和软件资源可包含私有和/或公共部件。例如,云可配置为待由一个或多个特定客户或客户端计算机411到414和/或在私有网络上使用的私有云。在其它实施例中,公共云或混合公共-私有云可由其它客户在开放式或混合网络上使用。
管理服务器410可配置成提供用户接口,云操作员和云客户可通过所述用户接口与云系统400交互。例如,管理服务器410可为一组应用程序编程接口(API)和/或一个或多个云操作员控制台应用程序(例如,基于网络的或独立的应用程序)提供用户接口以允许云操作员管理云资源、配置虚拟化层、管理客户账户以及执行其它云管理任务。管理服务器410还可包含具有用户接口的一组API和/或一个或多个客户控制台应用程序,所述用户接口配置成通过客户端计算机411到414接收来自终端用户的云计算请求,例如创建、修改或毁坏云内的虚拟机的请求。客户端计算机411到414可通过互联网或某一其它通信网络连接到管理服务器410,并且可请求访问由管理服务器410管理的计算资源中的一个或多个。响应于客户端请求,管理服务器410可包含配置成基于客户端请求而选择和布建云系统的硬件层中的物理资源的资源管理器。例如,云系统的管理服务器410和额外部件可配置成在网络(例如,互联网)上为客户端计算机411到414处的客户布建、创建和管理虚拟机和其操作环境(例如,管理程序、存储资源、由网元提供的服务等),从而为客户提供计算资源、数据存储服务、联网能力以及计算机平台和应用程序支持。云系统还可配置成提供各种特定服务,包含安全系统、开发环境、用户接口等。
某些客户端411到414可相关,例如,代表同一最终用户或附属于同一公司或组织的不同用户创建虚拟机的不同客户端计算机。在其它示例中,某些客户端411到414可不相关,例如附属于不同公司或组织的用户。对于不相关客户端,可使任何一个用户的关于虚拟机或存储的信息对其它用户隐藏。
现参考云计算环境的物理硬件层,可用性区401到402(或区)可指物理计算资源的并置集合。可将区与计算资源的整个云中的其它区在地理上分开。例如,区401可以是位于加利福尼亚的第一云数据中心,而区402可以是位于佛罗里达的第二云数据中心。管理服务器410可位于一个可用性区处,或位于单独的位置。每个区可包含通过网关与管理服务器410等在所述区外的装置介接的内网。云的最终用户(例如,客户端411到414)可能察觉到或可能察觉不到区之间的区别。例如,最终用户可请求创建具有指定量的存储器、处理力和网络能力的虚拟机。管理服务器410可响应用户的请求,并且可在用户不知晓是使用来自区401还是区402的资源创建虚拟机的情况下分配资源以创建虚拟机。在其它示例中,云系统可允许最终用户请求将虚拟机(或其它云资源)分配在特定区中或区内的特定资源403到405上。
在此示例中,每个区401到402可包含各种物理硬件部件(或计算资源)403到405的布置,例如,物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换器和可用于向客户提供云计算服务的额外硬件资源。云区401到402中的物理托管资源可包含一个或多个计算机服务器403,例如上文所描述的虚拟化服务器301,其可配置成创建和托管虚拟机实例。云区401或402中的物理网络资源可包含包括被配置成向云客户提供网络服务的硬件和/或软件的一个或多个网元405(例如,网络服务提供商),所述硬件和/或软件例如防火墙、网络地址转换器、负载均衡器、虚拟私有网络(VPN)网关、动态主机配置协议(DHCP)路由器等。云区401到402中的存储资源可包含存储磁盘(例如,固态驱动器(SSD)、磁性硬盘等)和其它存储装置。
图4中示出的示例云计算环境还可包含具有被配置成创建和管理虚拟机并且使用云中的物理资源向客户提供其它服务的额外硬件和/或软件资源的虚拟化层(例如,如图1到3中所示)。虚拟化层可包含管理程序,如上文在图3中所描述,所述管理程序与其它部件一起提供网络虚拟化、存储虚拟化等。虚拟化层可作为与物理资源层分开的层,或可与物理资源层共享一些或全部相同硬件和/或软件资源。例如,虚拟化层可包含与物理计算资源一起安装在每个虚拟化服务器403中的管理程序。替代地,可使用已知云系统,例如,WINDOWSAZURE(华盛顿州雷德蒙德的微软公司)、AMAZON EC2(华盛顿州西雅图的亚马逊公司(Amazon.com Inc.))、IBM BLUE CLOUD(纽约州阿蒙克的IBM公司)等。
企业移动性管理架构
图5表示用在“自带装置”(BYOD)环境中的企业移动性技术架构500。所述架构使移动装置502的用户能够从移动装置502访问企业或个人资源,以及将移动装置502用于个人用途。用户可使用由用户购买的移动装置502或由企业提供给用户的移动装置502访问此类企业资源504或企业服务508。用户可仅将移动装置502用于业务用途,或用于业务和个人用途。移动装置502可运行iOS操作系统、Android操作系统等。企业可选择实施策略来管理移动装置502。可通过防火墙或网关实施策略,其方式使得移动装置502可被标识、保护或予以安全验证并且获得对企业资源(例如504和508)的选择性或全部访问权。所述策略可以是移动装置管理策略、移动应用程序管理策略、移动数据管理策略,或移动装置、应用程序和数据管理策略的某种组合。通过应用移动装置管理策略管理的移动装置502可称作已登记装置。
在一些实施例中,移动装置502的操作系统可分成受管理分割区510和未管理分割区512。受管理分割区510可有策略被应用以保护受管理分割区510上运行的应用程序和受管理分割区中存储的数据。受管理分割区510上运行的应用程序可以是安全应用程序。在其它实施例中,所有应用程序可根据与所述应用程序分开接收到的一个或多个策略文件的集合来执行,并且所述一个或多个策略文件限定一个或多个安全参数、特征、资源限制和/或当所述应用程序在装置502上执行时由移动装置管理系统施行的其它访问控制。通过根据其相应策略文件操作,可允许或限制每个应用程序与一个或多个其它应用程序和/或资源通信,由此创建虚拟分割区。因此,如本文所使用,分割区可指存储器的物理分割部分(物理分割区)、存储器的逻辑分割部分(逻辑分割区)和/或因如本文所描述跨多个应用程序施行一个或多个策略和/或策略文件所创建的虚拟分割区(虚拟分割区)。换句话说,通过对受管理应用程序施行策略,那些应用程序可限于仅能够与其它受管理应用程序和受信任企业资源通信,由此创建未管理应用程序和装置不能进入的虚拟分割区。
安全应用程序可以是电子邮件应用程序、网页浏览应用程序、软件即服务(software-as-a-service,SaaS)访问应用程序、Windows应用访问应用程序等。安全应用程序可以是安全本机应用程序514、由安全应用程序启动器518执行的安全远程应用程序522、由安全应用程序启动器518执行的虚拟化应用程序526等。安全本机应用程序514可由安全应用程序包装器520包装。安全应用程序包装器520可包含整合策略,当安全本机应用程序514在移动装置502上执行时,在移动装置502上执行所述整合策略。安全应用程序包装器520可包含元数据,所述元数据使移动装置502上运行的安全本机应用程序514指向企业处托管的资源(例如504和508),安全本机应用程序514可能需要所述资源来完成在执行安全本机应用程序514时请求的任务。可在安全应用程序启动器518内执行由安全应用程序启动器518执行的安全远程应用程序522。由安全应用程序启动器518执行的虚拟化应用程序526可利用移动装置502上、企业资源504处的资源等。由安全应用程序启动器518执行的虚拟化应用程序526在移动装置502上使用的资源可包含用户交互资源、处理资源等。用户交互资源可用以收集和传输键盘输入、鼠标输入、相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可用于呈现用户界面、处理从企业资源504接收的数据等。由安全应用程序启动器518执行的虚拟化应用程序526在企业资源504处使用的资源可包含用户界面生成资源、处理资源等。用户界面生成资源可用以汇编用户界面、修改用户界面、刷新用户界面等。处理资源可用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用程序526可记录与图形用户界面(GUI)相关联的用户交互,并且将所述交互传达到服务器应用程序,其中服务器应用程序将把用户交互数据用作服务器上操作的应用程序的输入。在此类布置中,企业可选择维护服务器侧的应用程序,以及与所述应用程序相关联的数据、文件等。虽然企业可根据本文原理通过确保一些应用程序部署在移动装置502上来选择“调动”所述应用程序,但也可针对某些应用程序选择此布置。例如,虽然可确保一些应用程序用在移动装置502上,但其它应用程序可能未准备或可能不适合部署在移动装置502上,因此企业可选择通过虚拟化技术向移动用户提供对未准备的应用程序的访问。作为另一示例,企业可具有含有大型复杂数据集的大型复杂应用程序(例如,材料资源规划应用程序),其中可能极其难以或者不期望定制用于移动装置502的应用程序,因此企业可选择通过虚拟化技术提供对应用程序的访问。作为又一示例,企业可具有维护高度受保护的数据(例如,人力资源数据、客户数据、工程数据)的应用程序,企业可认为所述高度受保护的数据即便对于受保护的移动环境也是过于敏感的,因此企业可选择使用虚拟化技术来准许对此类应用程序和数据的移动访问。企业可选择在移动装置502上提供充分受保护且功能齐全的应用程序以及虚拟化应用程序526,以允许访问被认为在服务器侧操作更恰当的应用程序。在实施例中,虚拟化应用程序526可将移动装置502上的一些数据、文件等存储在一个安全存储位置中。例如,企业可选择允许在移动装置502上存储某些信息而不准许其它信息。
如本文所描述,结合虚拟化应用程序526,移动装置502可具有被设计成呈现GUI且接着记录用户与GUI的交互的虚拟化应用程序526。虚拟化应用程序526可将用户交互传达到服务器侧,以由服务器侧应用程序用作与所述应用程序的用户交互。作为响应,服务器侧的应用程序可将新GUI传输回到移动装置502。例如,新GUI可以是静态页面、动态页面、动画等,由此提供对远程定位的资源的访问。
安全应用程序514可访问存储在移动装置502的受管理分割区510中的安全数据容器528中的数据。安全数据容器中受保护的数据可由安全本机应用程序514、安全应用程序启动器518所执行的安全远程应用程序522、安全应用程序启动器518所执行的虚拟化应用程序526等访问。存储于安全数据容器528中的数据可包含文件、数据库等。存储于安全数据容器528中的数据可包含限于特定安全应用程序530的数据、安全应用程序532当中共享的数据等。限于安全应用程序的数据可包含安全的通用数据534和高度安全的数据538。安全的通用数据可使用强的加密形式,例如高级加密标准(AES)128位加密等,而高度安全的数据538可使用极强的加密形式,例如AES 256位加密。在接收到来自装置管理器524的命令后,就可从移动装置502删除存储在安全数据容器528中的数据。安全应用程序(例如514、522和526)可具有双模式选项540。双模式选项540可向用户呈现选项以在无保护或未管理模式中操作受保护应用程序。在无保护或未管理模式中,安全应用程序可访问存储在移动装置502的未管理分割区512上的无保护数据容器542中的数据。存储在无保护数据容器中的数据可以是个人数据544。存储在无保护数据容器542中的数据还可由无保护应用程序546访问,所述无保护应用程序在移动装置502的未管理分割区512上运行。当从移动装置502删除存储在安全数据容器528中的数据时,存储在无保护数据容器542中的数据可保持在移动装置502上。企业可能想要从移动装置502删除选定的或所有由企业拥有、授权或控制的数据、文件和/或应用程序(企业数据),同时留下或以其它方式保留由用户拥有、授权或控制的个人数据、文件和/或应用程序(个人数据)。此操作可称作选择性擦除。在企业和个人数据根据本文所描述的方面布置的情况下,企业可执行选择性擦除。
移动装置502可连接到企业处的企业资源504和企业服务508,连接到公共互联网548,等。移动装置502可通过虚拟私有网络连接来连接到企业资源504和企业服务508。虚拟私有网络连接,也称为microVPN或专用VPN,可特定于特定应用程序550、特定装置、移动装置上的特定受保护区域552等。例如,移动装置502的受保护区域中的每个包装应用程序可通过专用VPN访问企业资源,使得将基于与应用程序相关联的属性、可能结合用户或装置属性信息而准予对VPN的访问。虚拟私有网络连接可携载微软交换(Microsoft Exchange)业务、微软活动目录(Microsoft Active Directory)业务、超文本传输协议(HTTP)业务、安全超文本传输协议(HTTPS)业务、应用程序管理业务等。虚拟私有网络连接可支持并实现单点登录认证过程554。单点登录过程可允许用户提供认证证书的单个集合,接着通过认证服务558来验证所述认证证书。认证服务558接着可准予用户访问多个企业资源504,而不需要用户将认证证书提供给每个个别企业资源504。
虚拟私有网络连接可由访问网关560建立和管理。访问网关560可包含管理、加速和改进企业资源504递送到移动装置502的性能增强特征。访问网关560还可将业务从移动装置502重新路由到公共互联网548,从而使移动装置502能够访问在公共互联网548上运行的公开可用和无保护应用程序。移动装置502可通过传输网络562连接到访问网关。传输网络562可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、私有网络等。
企业资源504可包含电子邮件服务器、文件共享服务器、SaaS应用程序、网页应用程序服务器、Windows应用程序服务器等。电子邮件服务器可包含交换服务器、Lotus Notes服务器等。文件共享服务器可包含ShareFile服务器等。SaaS应用程序可包含Salesforce等。Windows应用程序服务器可包含建构来提供预期在本地Windows操作系统等上运行的应用程序的任何应用程序服务器。企业资源504可以是基于场所的资源、基于云的资源等。移动装置502可直接或通过访问网关560来访问企业资源504。移动装置502可通过传输网络562访问企业资源504。
企业服务508可包含认证服务558、威胁检测服务564、装置管理器服务524、文件共享服务568、策略管理器服务570、社交整合服务572、应用程序控制器服务574等。认证服务558可包含用户认证服务、装置认证服务、应用程序认证服务、数据认证服务等。认证服务558可使用凭证。所述凭证可通过企业资源504等存储在移动装置502上。存储在移动装置502上的凭证可存储于移动装置502上的加密位置中,所述凭证可暂时存储在移动装置502上以在认证时等情况下使用。威胁检测服务564可包含入侵检测服务、未授权的访问尝试检测服务等。未授权的访问尝试检测服务可包含对装置、应用程序、数据等的未授权尝试访问。装置管理服务524可包含配置、布建、安全、支持、监测、报告和停用服务。文件共享服务568可包含文件管理服务、文件存储服务、文件协作服务等。策略管理器服务570可包含装置策略管理器服务、应用程序策略管理器服务、数据策略管理器服务等。社交整合服务572可包含联系人整合服务、协作服务、与Facebook、Twitter和LinkedIn等社交网络的整合,等等。应用程序控制器服务574可包含管理服务、布建服务、部署服务、指派服务、撤销服务、包装服务等。
企业移动性技术架构500可包含应用程序商店578。应用程序商店578可包含未包装应用程序580、预包装应用程序582等。应用程序可从应用程序控制器574充入应用程序商店578中。应用程序商店578可由移动装置502通过访问网关560、通过公共互联网548等访问。应用程序商店578可具有直观且易于使用的用户界面。
软件开发工具包584可使用户能够通过如先前在本说明书中所描述对应用程序进行包装来保护用户所选的应用程序。接着,可通过使用应用程序控制器574将已使用软件开发工具包584包装的应用程序充入应用程序商店578中来使所述应用程序可供移动装置502使用。
企业移动性技术架构500可包含管理和分析能力588。管理和分析能力588可提供关于使用资源的方式、使用资源的频率等的信息。资源可包含装置、应用程序、数据等。使用资源的方式可包含哪些装置下载哪些应用程序、哪些应用程序访问哪些数据,等等。使用资源的频率可包含应用程序被下载的频率、应用程序访问特定数据集的次数等。
图6是另一说明性企业移动性管理系统600。为简单起见,省略上文参考图5所描述的移动性管理系统500的一些部件。图6中描绘的系统600的架构在许多方面类似于上文参考图5所描述的系统500的架构,并且可包含上文未提到的额外特征。
在此情况下,左侧表示具有客户端代理604的已登记移动装置602,所述移动装置与网关服务器606(其包含访问网关和应用程序控制器功能)交互以访问各种企业资源608和服务609,例如交换、Sharepoint、公钥基础设施(PKI)资源、Kerberos资源、颁证服务,如在右侧上方所示。虽然未具体示出,但移动装置602还可与企业应用程序商店(StoreFront)交互以选择和下载应用程序。
客户端代理604充当在企业数据中心中托管的Windows应用程序/桌面的UI(用户界面)中间物,所述Windows应用程序/桌面使用高清用户体验(HDX)/ICA显示远程协议来访问。客户端代理604还支持移动装置602上的本机iOS或Android应用程序等本机应用程序的安装和管理。例如,上图所示的受管理应用程序610(邮件、浏览器、包装的应用程序)都是在移动装置602上本地执行的本机应用程序。此架构的客户端代理604和应用程序管理框架用以提供策略驱动管理能力和例如与企业资源/服务608的连接性和SSO(单点登录)等特征。客户端代理604处置对企业的主要用户认证,通常是对具有SSO到其它网关服务器部件的访问网关(AG)606的主要用户认证。客户端代理604从网关服务器606获得策略以控制移动装置602上的受管理应用程序610的行为。
本机应用程序610与客户端代理604之间的安全进程间通信(IPC)链路612表示管理信道,其可允许客户端代理供应待由“包装”每个应用程序的应用程序管理框架614施行的策略。IPC信道612还可允许客户端代理604供应证书和认证信息,从而实现到企业资源608的连接性和SSO。最后,IPC信道612可允许应用程序管理框架614调用由客户端代理604实施的用户接口功能,例如在线和离线认证。
客户端代理604与网关服务器606之间的通信基本上是管理信道从包装每个本机受管理应用程序610的应用程序管理框架614的扩展。应用程序管理框架614可向客户端代理604请求策略信息,所述客户端代理继而可向网关服务器606请求策略信息。应用程序管理框架614可请求认证,并且客户端代理604可登录网关服务器606的网关服务部分(也称为NETSCALER ACCESS GATEWAY)。客户端代理604还可调用网关服务器606上的支持服务,所述网关服务器可产生输入材料以导出用于本地数据库616的加密密钥,或可提供可实现对PKI保护的资源的直接认证的客户端凭证,如下文更充分地解释。
更详细地说,应用程序管理框架614“包装”每个受管理应用程序610。这可通过显式建构步骤或通过后建构处理步骤来并入。应用程序管理框架614可在应用程序610的首次启动后与客户端代理604“配对”以初始化安全IPC信道612并获得用于此应用程序的策略。应用程序管理框架614可施行策略的本地适用的相关部分,例如客户端代理登录从属性以及一些限制可如何使用本地OS服务或其可如何与受管理应用程序610交互的遏制策略。
应用程序管理框架614可使用客户端代理604在安全IPC信道612上提供的服务以促进认证和内网访问。针对私有和共享数据库616(容器)的密钥管理也可通过受管理应用程序610与客户端代理604之间的适当交互来进行管理。在策略允许的情况下,库616仅可在线上认证之后可用,或仅可在离线认证之后可用。库616的首次使用可能需要在线认证,并且离线访问可能最多限于在再次需要在线认证之前的策略刷新周期。
对内部资源的网络访问可从个别受管理应用程序610通过访问网关606直接发生。应用程序管理框架614可负责代表每个受管理应用程序610来协调网络访问。客户端代理604可通过提供在线上认证之后获得的适当的限时辅助证书来促进这些网络连接。可使用多个模式的网络连接,例如反向web代理连接和端对端VPN式隧道618。
邮件和浏览器受管理应用程序610具有特殊状态,并且可使用可能通常不可用于任意包装应用程序的设施。例如,邮件应用程序610可使用特殊后台网络访问机制,其允许邮件应用程序在延长的时间周期中访问交换服务器608而无需全AG登录。浏览器应用程序610可使用多个私有数据库616来分隔不同种类的数据。
此架构可支持各种其它安全特征的并入。例如,在一些情况下,网关服务器606(包含其网关服务)可能不需要验证活动目录(AD)口令。可让企业来判断在一些情况下是否可将AD口令用作一些用户的认证因素。在用户在线或离线(即,连接或未连接到网络)的情况下,可使用不同认证方法。
设置认证是这样一种特征:其中网关服务器606可标识允许具有对需要强认证的高度分类数据的访问权的受管理本机应用程序610,并且确保仅在执行适当认证后才准许访问这些应用程序,即使这意味着用户在先前较弱等级的登录后需要重认证也如此。
这种解决方案的另一安全特征是移动装置602上的数据库616(容器)的加密。库616可被加密,以使得包含文件、数据库和配置的所有装置上数据受到保护。对于在线库,可将密钥存储在服务器(网关服务器606)上,而对于离线库,密钥的本地副本可受到用户口令或生物特征识别验证保护。如果或当数据在移动装置602上本地存储在安全容器616中时,可优选利用最低限度的AES 256加密算法。
还可实施其它安全容器特征。例如,可包含记录特征,其中可记录在受管理应用程序610内部发生的安全事件并将其报告到后端。可支持数据擦除,例如,如果或当受管理应用程序610检测到篡改时,可用随机数据改写相关联的加密密钥,从而在文件系统上不留下用户数据被破坏过的提示。截屏保护可以是另一特征,其中应用程序可防止任何数据存储于截屏中。例如,可将密钥窗口的隐藏性质设置成YES。这可使当前显示于屏幕上的任何内容都被隐藏,从而产生其中任何内容通常会驻存的空白截屏。
可例如通过防止任何数据例如通过将其复制或将其发送到外部应用程序而在本地传送到应用程序容器外部来防止本地数据传送。键盘高速缓存特征可用以针对敏感文本框停用自动校正功能。SSL凭证验证可以是可操作的,因此应用程序专门验证服务器SSL凭证,而非将凭证存储于密钥链中。可使用加密密钥生成特征,使得使用由用户供应的密码或生物特征识别数据来生成用于加密移动装置602上的数据的密钥(如果需要离线访问)。如果不需要离线访问,则可将其与随机生成且存储于服务器侧的另一密钥进行异或运算。密钥导出函数可操作,使得从用户口令生成的密钥使用KDF(密钥导出函数,尤其是基于口令的密钥导出函数2(PBKDF2))而非创建其密码散列。后者使密钥易受蛮力或字典式攻击。
此外,可在加密方法中使用一个或多个初始化向量。初始化向量将使相同加密数据的多个副本产生不同密文输出,从而防止重放和密码分析攻击。在不知用以加密数据的具体初始化向量的情况下,这还将使攻击者即使利用被盗的加密密钥也不能解密任何数据。此外,可使用认证,然后解密,其中仅在用户已在应用程序内认证后才解密应用程序数据。另一特征可涉及存储器中的敏感数据,仅在需要时可将敏感数据保存在存储器中(而不在磁盘中)。例如,可在登录之后从存储器擦除登录证书,并且不存储面向对象的C语言实例变量内部的加密密钥和其它数据,因为它们可能易于被引用。实际上,可针对这些特征手动分配存储器。
可实施不活动超时,其中在不活动的策略限定周期之后,终止用户会话。
可以其它方式防止来自应用程序管理框架614的数据泄漏。例如,如果或当受管理应用程序610处于后台时,可在预定(可配置)时间段之后清除存储器。当在后台运行时,可获取上一次显示的应用程序屏幕的快照以稳固前台运行进程。截屏可能含有保密数据,并且因此应被清除。
其它安全特征可涉及使用OTP(一次口令)620而不使用AD(活动目录)622口令来访问一个或多个应用程序。在一些情况下,一些用户不知道(或不准许知道)其AD口令,因此这些用户可使用OTP 620认证,例如通过使用像SecurID的硬件OTP系统(OTP还可由不同供应商提供,例如Entrust或Gemalto)。在一些情况下,在用户通过用户ID认证之后,可将带有OTP 620的文本发送到用户。在一些情况下,这可仅针对在线使用而实施,其中提示是单个字段。
对于通过企业策略准许离线使用的那些受管理应用程序610,可实施离线口令以用于离线认证。例如,企业可能想要以此方式访问StoreFront。在此情况下,客户端代理604可能需要用户设置自定义离线口令,并且不使用AD口令。网关服务器606可提供策略来控制和施行关于例如由标准Windows服务器口令复杂度要求所描述的最小长度、字符类别组成和口令期限的口令标准,但这些要求可修改。
另一特征可涉及将某些应用程序610的客户端侧凭证作为辅助证书而启用(出于通过应用程序管理框架微VPN特征访问PKI保护的网页资源的目的)。例如,受管理应用程序610可利用此类凭证。在此情况下,可支持使用ActiveSync协议的基于凭证的认证,其中来自客户端代理604的凭证可由网关服务器606检索并且用于密钥链中。每个受管理应用程序610可具有一个相关联客户端凭证,其由网关服务器606中限定的标签标识。
网关服务器606可与企业专用网页服务交互以支持客户端凭证的发布,从而允许针对内部PKI保护资源认证相关受管理应用程序。
可增强客户端代理604和应用程序管理框架614以支持获得和使用客户端凭证以用于针对内部PKI保护网络资源的认证。可支持多于一个凭证,以便匹配各种层级的安全和/或分隔要求。所述凭证可由邮件和浏览器管理的应用程序610使用,并且最终由任意包装应用程序610使用(前提是,那些应用程序使用网页服务式通信模式,其中应用程序管理框架调节HTTPS请求是合理的)。
iOS上的应用程序管理客户端证书支持可依赖于在每个使用周期内将公钥密码术标准(PKCS)12BLOB(二进制大对象)导入到每个受管理应用程序610中的iOS密钥链内。应用程序管理框架客户端凭证支持可使用具有私有存储器内密钥存储的HTTPS实施方案。客户端凭证可能不存在于iOS密钥链中,并且除了潜在地在受到强保护的“仅在线”数据值中之外,可能不会被留存。
还可通过要求针对企业认证移动装置602,且反之亦然,以实施互SSL来提供额外安全。还可实施针对网关服务器606的认证的虚拟智能卡。
有限和全Kerberos支持两者都可以是额外特征。全支持特征涉及能够使用活动目录(AD)口令或受信任客户端凭证执行到AD 622的完全Kerberos登录,以及获得Kerberos服务票证以响应HTTP协商认证质询。有限支持特征涉及思杰访问网关企业版(AGEE)中的受限委托,其中AGEE支持调用Kerberos协议转变,由此其可响应于HTTP协商认证质询而获得并且使用Kerberos服务票证(受制于受限委托)。此机制在反向web代理(也称为公司虚拟私有网络(CVPN))模式中以及当HTTP(但不是HTTPS)连接在VPN和MicroVPN模式中代理时起作用。
另一特征可涉及应用程序容器锁定和擦除,其可在越狱或生根检测后自动发生,并且作为来自管理控制台的推送命令而发生,且即使在受管理应用程序610未在运行时也可包含远程擦除功能。
可支持企业应用程序商店和应用程序控制器的多位点架构或配置,其在有故障的情况下允许从若干不同位置中的一个来服务用户。
在一些情况下,可允许受管理应用程序610通过API(例如OpenSSL)访问凭证和私钥。可允许企业的受信任的受管理应用程序610利用应用程序的客户端凭证和私钥执行特定公钥操作。因此,可标识和处理各种使用情况,例如,如果或当应用程序表现得像浏览器且不需要凭证访问时,如果或当应用程序读取“我是谁”的凭证时,如果或当应用程序使用凭证建构安全会话令牌时,以及如果或当应用程序使用私钥以用于重要数据(例如,交易记录)的数字签名或用于临时数据加密时。
包装延续令牌以支持跨不同地理位置的多个服务器的分页
如上文所论述,本公开的各方面涉及包装延续令牌以支持跨不同地理位置的多个服务器的分页。另外,本公开的一个或多个方面可并入有计算机系统架构、远程访问系统架构、虚拟化(管理程序)系统架构、基于云的系统架构和/或上文结合图1到6所论述的企业移动性管理系统中的一个或多个,在其中体现和/或使用其实施。
图7描绘根据本文所描述的一个或多个说明性方面的用于包装延续令牌以支持跨不同地理位置的多个服务器的分页的说明性计算环境。参考图7,计算环境700可包含企业服务器710、第一企业地理数据服务器720、第二企业地理数据服务器730、客户端装置740和750,以及企业网络760。企业服务器710、第一企业地理数据服务器720、第二企业地理数据服务器730以及客户端装置740和750可包含一个或多个物理部件,例如一个或多个处理器、存储器、通信接口和/或其类似者。
企业服务器710可包含处理器711、存储器712、通信接口713和数据存储区714。处理器711可执行存储在存储器712中的指令以使企业服务器710执行一个或多个功能,例如生成第一延续令牌以及利用地理位置服务器标识符包装第一延续令牌以产生第一包装的延续令牌。通信接口713可包含一个或多个网络接口,企业服务器710可通过所述网络接口与计算环境700中的一个或多个其它系统和/或装置通信,其它系统和/或装置例如第一企业地理数据服务器720、第二企业地理数据服务器730以及客户端装置740和750。存储器712可包含令牌存储区(未示出),所述令牌存储区可暂时存储延续令牌以及包装的延续令牌,之后所述令牌会传输给客户端装置740和客户端装置750以及从所述客户端装置传输出来。企业710可托管数据存储区714,其可提供对云计算环境中的大数据的存储。在一些示例中,数据存储区714可包含无模式数据库或非SQL数据库,例如键值存储和文件存储,其可侧重于大量的非结构化、半结构化或结构化数据的存储和检索。此类数据库系统可通过免除读写一致性等传统上与常规数据库相关联的某些限制以换取跨多个地理位置的可扩展性和分布式处理来实现性能增益。在一些示例中,数据存储区714可能不会施加可能妨碍快速读取或实例化数据的过程的某些形式的模式、数据模型或格式。在替代布置中,数据存储区714可能不会对关于一个单列类型的个别值施行数据类型限制。例如,数据存储区714可能不需要预设存储库中的数据类型,这可减少建立数据存储库的时间。在一些实施例中,数据存储区714可以不需要引入额外层(例如对象关系映射(ORM)层)以抽取关系模型并以面向对象的格式将其暴露。因此,数据存储区714可存储具有不同特性的数据并且容许数据定义改变而无须计划复杂中断和变化,并且可消除复杂的模式迁移。在一些实施例中,数据存储区714可以不需要资金和运营成本过多的复杂专属基础设施来进行扩展。例如,可通过简单操作很容易地扩展相对小的实例,虽然一些传统数据库可提供此特征,但模式的严格性可能造成限制。鉴于可扩展性不仅仅是分片数据的能力,还可以是快速适应变化的模式的能力,数据存储区714可无缝地实施按需可扩展性,并且可在相对更便宜的商品硬件上实施部署。
在一些示例中,如图7中所示,数据存储区714可驻存在企业服务器710上。在替代布置中,企业服务器710和数据存储区714可驻存在单独的计算装置上,并且数据存储区714可由企业服务器710远程管理。
企业服务器710可与企业组织相关联,并且可发送和接收信息到客户端装置740和客户端装置750以及计算环境700中的其它计算装置。企业服务器710可管理客户端装置740和客户端装置750。企业用户可通过客户端装置740和客户端装置750访问系统资源。客户端装置740和客户端装置750可以是任何类型的计算装置,包含例如服务器、计算机、笔记本电脑、平板电脑、智能手机或包含处理器的其它客户端装置(例如计算装置201)。客户端装置740和750可通过其通信接口(例如无线接口、LAN接口、WLAN接口)与企业服务器710、第一企业地理数据服务器720和第二企业地理数据服务器730等其它装置和/或实体通信,如下文更详细地论述。客户端装置740和750还可与本文所描述的各种网络节点通信。
企业网络760可包含一个或多个广域网和/或局域网,并且可互连包含在计算环境700中的一个或多个系统和/或装置。例如,企业网络760可互连企业服务器710、第一企业地理数据服务器720、第二企业地理数据服务器730以及客户端装置740和750。
环境700可包含第一企业地理数据服务器720和第二企业地理数据服务器730,其可各自包含处理器、存储器、通信接口和类似于驻存在企业服务器710上的数据存储区的数据存储区。在一些示例中,第一企业地理数据服务器720和第二企业地理数据服务器730的数据存储区可托管无模式数据库,类似于企业服务器710上的无模式数据库。企业服务器710、第一企业地理数据服务器720和第二企业地理数据服务器730可负责生成和管理包装的延续令牌以促进跨多个地理位置的数据存储和检索。在一些示例中,企业服务器710可管理包含第一企业地理数据服务器720和第二企业地理数据服务器730的预定服务器列表,并且基于预定次序将数据检索请求引导到第一企业地理数据服务器720和第二企业地理数据服务器730。在替代布置中,企业服务器710可管理第一企业地理数据服务器720和第二企业地理数据服务器730,并且基于随机次序将数据检索请求引导到第一企业地理数据服务器720和第二企业地理数据服务器730。而在其它布置中,企业服务器710可对第一企业地理数据服务器720和第二企业地理数据服务器730进行管理和负载均衡,并且基于系统上的负载将数据检索请求引导到第一企业地理数据服务器720和第二企业地理数据服务器730。在一些示例中,企业服务器710可基于位置信息而将数据检索请求引导到第一企业地理数据服务器720和第二企业地理数据服务器730,所述位置信息包含于对应于第一企业地理数据服务器720和第二企业地理数据服务器730的地理位置的包装的延续令牌中和/或以其它方式与所述包装的延续令牌相关联。尽管在图7中仅示出两个企业地理数据服务器,但环境700可包含适于云计算环境中的企业的一个或多个企业地理数据服务器。
图8A到8D描绘根据本文所描述的一个或多个说明性方面的用于包装延续令牌以支持跨不同地理位置的多个服务器的分页的示例事件序列。图8A到8D中所示的部件之间的通信可通过在计算机网络中提供通信安全的传输层安全(TLS)密码协议或互联网协议安全(IPsec)隧道进行加密。
参考图8A,在步骤801,客户端装置可发送第一请求到企业地理数据服务器,例如企业服务器,以检索多个记录。例如,客户端装置740可通过企业网络760发送请求到企业服务器710以检索多个记录。在一些示例中,客户端装置可发送数据检索请求到虚拟的基于云的企业系统中的企业地理数据服务器集群,其中企业服务器710可负责与客户端装置740直接交互。在一些示例中,企业服务器710可在企业地理数据服务器集群中承担管理作用以代表集群接收并处理请求。
在步骤802,企业服务器可确定对多个记录的第一请求可能请求超过页面大小限制的一定量的记录。在一些示例中,当在数据存储区的表存储中执行第一请求中的查询时,可返回可能超过系统的页面大小限制的大量数据。例如,一些系统可指定单个请求中1,000个记录或表行的页面大小限制。归因于在单次迭代中不完全完成查询,企业710可能需要执行一系列连续数据段读取并且汇总结果。
在一些示例中,客户端装置所请求的记录可分段于跨多个地理位置的分割区中。可实施分段以支持受制于数据可能位于的国家的法律的数据主权。例如,在多地理位置情境中,数据可分段以使得在每个地理位置中,数据分割区可含有源于该地理区域的数据。例如,源于美国的数据可能与源于欧洲的数据分开,并且可能驻存在不同数据分割区中。
在步骤803,企业服务器可检索第一组记录,所述第一组记录包括等于所述页面大小限制的第一数目的记录。例如,在可能超过1,000个记录的页面大小限制的列出所有客户数据的查询中,企业服务器710可从其数据存储区检索含有1,000个记录的第一组记录。
在步骤804,企业服务器可生成第一包装的延续令牌,其包括标识可在其中检索下一组记录的第一服务器的地理位置的位置信息。延续令牌可用作提供分页支持的机制来回于数据集之中。在上文所示的示例中,企业服务器710的数据存储区714可在客户端装置查询大量数据时实施延续令牌作为提供每请求一致响应时间并且避免超时的机制。在一些示例中,延续令牌可在对应的查询响应超过每次调用的最大所允许行时使用。例如,企业服务器710可返回带有延续令牌的前1,000个记录,所述令牌可用于检索下一组记录。在一些示例中,延续令牌可在对应的查询覆盖多个分割区时使用。在替代布置中,延续令牌可在对应的查询花费超过企业服务器710上执行的预定时限(例如5秒)时使用。
在一些示例中,为了支持跨多个地理位置的分页,企业服务器710可用可标识哪个特定地理位置可挖掘的方式来包装延续令牌。例如,延续令牌可以是XML结构,其可保持用于检索下一组记录的信息。企业服务器710可在XML结构中添加额外字段以指示标识可在其中检索下一组记录的服务器的地理位置的位置信息。在一些示例中,延续令牌可以是标识要检索的下一组记录的位置的整数或其它类型的数据。例如,企业服务器710可利用延续令牌的数据结构的额外元素来包装延续令牌以指示延续令牌可能起源的数据存储区。例如,数据元素可添加到延续令牌作为数据服务器名称的指示符,客户端可从所述数据服务器请求下一组记录。在此情况下,所述名称可以是地理位置的名称。例如,包装的延续令牌可呈“[地理:1,令牌:xxx]”形式以标识调用哪个地理位置,其中“xxx”可以是令牌名称,而地理:1可以是通用位置的指示,例如“US”或“欧洲”来指示数据存储区可能驻存的位置。
在步骤805,企业服务器可向客户端装置发送第一组记录和第一包装的延续令牌。例如,企业服务器710可将第一组1,000个记录和新生成的包装的延续令牌发送到客户端装置740。在步骤806,客户端装置可处理第一组记录。
转到图8B,在步骤807,客户端装置可将第一包装的延续令牌发送到企业服务器。例如,客户端装置740可将第一包装的延续令牌发送到企业服务器710。第一包装的延续令牌的存在可向客户端装置指示,可存在要检索的另外一组数据,并且第一包装的延续令牌可指示要从中请求此另外一组数据的服务器的名称。
在步骤808,企业服务器可基于第一包装的延续令牌来标识与要检索的多个记录相关联的第二组记录。例如,基于包装的延续令牌的位置信息和内部数据结构,企业服务器710可开始从企业服务器710上驻存的数据存储区中检索第二组数据记录。
在步骤809,响应于标识第二组记录,企业服务器可检索包括小于页面大小限制的第二数目的记录的第二组记录。例如,企业服务器710可检索对应于第二数目的记录的一组记录。如果第二数目的记录小于页面大小限制,则这可指示企业服务器710可能需要到下一数据存储区检索下一组记录。在一些示例中,可存在企业地理数据服务器的明确或预定次序,因此企业服务器710可按预定次序将额外记录请求引导到下一企业地理数据服务器。在一些替代布置中,客户端装置可能了解此预定次序并且可能知道去哪里请求下一组记录。
在一些示例中,在确定没有更多数据要从企业服务器的数据存储区中检索后,企业服务器可基于预先建立的次序调用下一企业地理数据服务器。由此,在步骤810,企业服务器可向企业地理数据服务器720发送第二请求以检索包括第三数目的记录的第三组记录。
在步骤811,响应于确定存在要从企业地理数据服务器720检索的额外记录,第一企业地理数据服务器可检索第三组记录,并且在步骤812,企业地理数据服务器720可生成第二包装的延续令牌。同样,第二包装的延续令牌可包含标识要在其中检索多个记录中的下一组记录的企业地理数据服务器720的地理位置的位置信息。
在图8C中的步骤813,企业地理数据服务器720可将第三组记录和第二包装的延续令牌发送到企业服务器。随后,在步骤814,企业可向客户端装置发送从企业服务器检索到的第二组记录、从企业地理数据服务器720接收到的第三组记录和第二包装的延续令牌。
在步骤815,客户端装置可处理第二和第三组记录。在一些示例中,客户端装置可将第一、第二和第三组记录汇总在一起。以此方式,从多个服务器检索到的数据可汇总并持久性地呈现给客户端装置以避免超时。
在步骤816,客户端装置可将第二包装的延续令牌发送到企业服务器。在一些实施例中,鉴于企业服务器710可管理企业地理数据服务器集群,所述企业服务器可充当客户端装置与企业地理数据服务器的通信之间的中介。
在步骤817,企业服务器可基于与第二包装的延续令牌相关联的地理位置而向企业地理数据服务器720转发第二包装的延续令牌。在一些示例中,第二包装的延续令牌可包含标识企业地理数据服务器720的位置信息。
在步骤818,企业地理数据服务器720可从企业地理数据服务器720检索第四组记录,并且第四组记录可包括小于页面大小限制的第四数目的记录。例如,第四组记录可含有小于1,000个记录。在如图8D中所示的步骤819,企业地理数据服务器720可将第四组记录发送到企业服务器。
在步骤820,所述企业服务器可向企业地理数据服务器730发送第三请求以检索多个记录中的额外记录。在一些示例中,企业服务器可遵循服务器列表的预定次序并且将企业地理数据服务器730标识为列表上的下一服务器。
在步骤821,企业地理数据服务器730可从企业地理数据服务器730检索要检索的第五组记录,其包括第五数目的记录,并且第四数目的记录和第五数目的记录的总和可小于页面大小限制。在步骤822,企业地理数据服务器730可将第五组记录发送到企业服务器。
在步骤823,企业服务器可确定所述多个记录中可能不存在额外记录。在一些示例中,企业服务器可确定企业地理数据服务器的有序列表已耗尽,并且将这作为可能不存在要检索的额外记录的指示。
在步骤824,企业服务器可将第四和第五组记录发送到客户端装置,并且最后在步骤825,客户端装置可处理第四组和第五组记录。例如,客户端装置可汇总第四和第五组记录。由此,客户端装置可访问和汇总来自不同服务器的多组记录,而客户端装置可以不需要知道可从跨地理位置的数据存储区检索到第四和第五组记录。
图9描绘根据一个或多个示例实施例的用于包装延续令牌以支持跨不同地理位置的多个服务器的分页的说明性方法。参考图9,在步骤902,具有至少一个处理器、通信接口和存储器的企业服务器(例如企业服务器710)可通过通信接口从客户端装置接收对多个记录的第一请求,并且对多个记录的第一请求可请求超过页面大小限制的一定量的记录。在步骤904,响应于接收到对多个记录的第一请求,企业服务器可检索包括等于页面大小限制的第一数目的记录的第一组记录。在步骤906,企业服务器可生成第一包装的延续令牌,其包括标识要在其中检索下一组记录的第一服务器的地理位置的位置信息。在步骤908,企业服务器可通过通信接口向客户端装置发送第一组记录和第一包装的延续令牌。因此,发送第一包装的延续令牌到客户端装置可使客户端装置处理第一组记录。
本发明的一个或多个方面可体现在由一个或多个计算机或其它装置执行的计算机可用数据或计算机可执行指令中,例如,一个或多个程序模块中,从而执行本文中描述的操作。通常,程序模块包含例程、程序、对象、部件、数据结构等,其在由计算机或其它数据处理装置中的一个或多个处理器执行时执行特定任务或实施特定抽象数据类型。计算机可执行指令可作为计算机可读指令存储于例如硬盘、光盘、可移除存储介质、固态存储器、RAM等计算机可读介质上。可按需要在各种实施例中组合或分布程序模块的功能。此外,所述功能可全部或部分地体现在固件或硬件等同物中,例如,集成电路、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。可使用特定数据结构更有效地实施本公开的一个或多个方面,并且预期此类数据结构在本文中描述的计算机可执行指令和计算机可用数据的范围内。
本文中描述的各种方面可体现为方法、设备,或体现为存储计算机可执行指令的一个或多个计算机可读介质。因此,那些方面可采取全部硬件实施例、全部软件实施例、全部固件实施例或组合了呈任何组合形式的软件、硬件与固件方面的实施例的形式。另外,表示如本文中所描述的数据或事件的各种信号可按穿过例如金属线、光纤或无线传输介质(例如,空气或空间)的信号传导介质的光或电磁波的形式在源与目的地之间传送。一般来说,一个或多个计算机可读介质可以和/或包含一个或多个非暂时性计算机可读介质。
如本文中所描述,各种方法和动作可跨一个或多个计算服务器和一个或多个网络操作。所述功能可以任何方式分布,或可位于单一计算装置(例如,服务器、客户端计算机等)中。例如,在替代实施例中,上文所论述的计算平台中的一个或多个可实施于由一个或多个物理计算装置提供的一个或多个虚拟机中。在此类布置中,每个计算平台的各种功能可由一个或多个虚拟机执行,并且计算平台之间的任何和/或所有上述通信可对应于数据被一个或多个虚拟机存取、移动、修改、更新和/或以其它方式使用。
本公开的各方面已在其说明性实施例方面进行了描述。所属领域的一般技术人员查看本公开后将会想到所附权利要求书的范围和精神内的许多其它实施例、修改和变化。例如,可按不同于所述次序来执行说明性图中描绘的一个或多个步骤,并且根据本公开的各方面,一个或多个所描绘步骤可以是任选的。
尽管已用特定于结构特征和/或方法动作的语言来描述主题,但应理解,所附权利要求书中限定的主题未必局限于上文所描述的具体特征或动作。实际上,上文所描述的具体特征和动作被描述为所附权利要求的示例实施方案。

Claims (20)

1.一种企业服务器,其包括:
至少一个处理器;
通信接口;
存储指令的存储器,所述指令在由所述至少一个处理器执行时使所述企业服务器:
通过所述通信接口从客户端装置接收对多个记录的第一请求,所述多个记录跨多个地理位置被存储,其中所述第一请求指示超过与所述第一请求相关联的页面大小限制的一定量的记录;
响应于接收到对所述多个记录的所述第一请求,检索包括等于所述页面大小限制的第一数目的记录的第一组记录;
生成第一延续令牌,所述第一延续令牌包括标识第一服务器的信息,所述第一服务器包括在所述多个地理位置中的一个地理位置上存储的第二组记录;
基于所述第一延续令牌生成第一包装的延续令牌,所述第一包装的延续令牌指示所述第一服务器的地理位置和所述第一服务器的身份;以及
通过所述通信接口并向所述客户端装置发送所述第一组记录和所述第一包装的延续令牌,其中向所述客户端装置发送所述第一包装的延续令牌使所述客户端装置处理所述第一组记录。
2.根据权利要求1所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
在将所述第一组记录和所述第一包装的延续令牌发送到所述客户端装置之后:
通过所述通信接口并从所述客户端装置接收所述第一包装的延续令牌;
基于从所述客户端装置接收到的所述第一包装的延续令牌中的所述第一服务器的地理位置,标识与要检索的所述多个记录相关联的第二组记录,所述第二组记录包括小于所述页面大小限制的第二数目的记录;以及
响应于标识所述第二组记录,检索所述第二组记录。
3.根据权利要求2所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
在检索所述第二组记录之后,向第一新地理数据服务器发送第二请求以检索包括第三数目的记录的第三组记录,其中所述第二数目的记录和所述第三数目的记录的总和等于所述页面大小限制。
4.根据权利要求3所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
从所述第一新地理数据服务器接收所述第三组记录;以及
从所述第一新地理数据服务器接收第二包装的延续令牌,所述第二包装的延续令牌包括标识要在其中检索所述多个记录中的下一组记录的所述第一新地理数据服务器的地理位置的位置信息。
5.根据权利要求4所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
向所述客户端装置发送所述第二组记录、所述第三组记录和所述第二包装的延续令牌,其中向所述客户端装置发送所述第二包装的延续令牌使所述客户端装置处理所述第二组记录和所述第三组记录。
6.根据权利要求5所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
在发送所述第二组记录、所述第三组记录和所述第二包装的延续令牌之后:
通过所述通信接口并从所述客户端装置接收所述第二包装的延续令牌;以及
基于与所述第二包装的延续令牌相关联的所述第一新地理数据服务器的所述地理位置,将所述第二包装的延续令牌发送到所述第一新地理数据服务器。
7.根据权利要求6所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
响应于将所述第二包装的延续令牌发送到所述第一新地理数据服务器,从所述第一新地理数据服务器接收第四组记录,所述第四组记录包括小于所述页面大小限制的第四数目的记录。
8.根据权利要求7所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
向第二新地理数据服务器发送第三请求以检索所述多个记录中的额外记录;以及
从所述第二新地理数据服务器接收包括第五数目的记录的第五组记录,其中所述第四数目的记录和所述第五数目的记录的总和小于所述页面大小限制。
9.根据权利要求8所述的企业服务器,其中所述存储器存储额外指令,所述额外指令在由所述至少一个处理器执行时使所述企业服务器:
标识所述多个记录中不存在要检索的额外记录;以及
通过所述通信接口并向所述客户端装置发送所述第四组记录和所述第五组记录,其中所述第四组记录和所述第五组记录的发送使所述客户端装置处理所述第四组记录和所述第五组记录。
10.根据权利要求1所述的企业服务器,其中所述企业服务器配置成托管包括用于特定地理区域的数据的数据存储区。
11.一种方法,其包括:
在包括至少一个处理器、存储器和通信接口的服务器处:
通过所述通信接口并从客户端装置接收对多个记录的第一请求,所述多个记录跨多个地理位置被存储,其中所述第一请求指示超过与所述第一请求相关联的页面大小限制的一定量的记录;
响应于接收到对所述多个记录的所述第一请求,检索包括等于所述页面大小限制的第一数目的记录的第一组记录;
生成第一延续令牌,所述第一延续令牌包括标识第一服务器的信息,所述第一服务器包括在所述多个地理位置中的一个地理位置上存储的第二组记录;
基于所述第一延续令牌生成第一包装的延续令牌,所述第一包装的延续令牌指示所述第一服务器的地理位置和所述第一服务器的身份;以及
通过所述通信接口并向所述客户端装置发送所述第一组记录和所述第一包装的延续令牌,其中向所述客户端装置发送所述第一包装的延续令牌使所述客户端装置处理所述第一组记录。
12.根据权利要求11所述的方法,其还包括:
在将所述第一组记录和所述第一包装的延续令牌发送到所述客户端装置之后:
通过所述通信接口并从所述客户端装置接收所述第一包装的延续令牌;
基于从所述客户端装置接收到的所述第一包装的延续令牌中的所述第一服务器的地理位置,标识与要检索的所述多个记录相关联的第二组记录,所述第二组记录包括小于所述页面大小限制的第二数目的记录;以及
响应于标识所述第二组记录,检索所述第二组记录。
13.根据权利要求12所述的方法,其还包括:
在检索所述第二组记录之后,向第一新地理数据服务器发送第二请求以检索包括第三数目的记录的第三组记录,其中所述第二数目的记录和所述第三数目的记录的总和等于所述页面大小限制。
14.根据权利要求13所述的方法,其还包括:
从所述第一新地理数据服务器接收所述第三组记录;以及
从所述第一新地理数据服务器接收第二包装的延续令牌,所述第二包装的延续令牌包括标识要在其中检索所述多个记录中的下一组记录的所述第一新地理数据服务器的地理位置的位置信息。
15.根据权利要求14所述的方法,其还包括:
向所述客户端装置发送所述第二组记录、所述第三组记录和所述第二包装的延续令牌,其中向所述客户端装置发送所述第二包装的延续令牌使所述客户端装置处理所述第二组记录和所述第三组记录。
16.根据权利要求15所述的方法,其还包括:
在发送所述第二组记录、所述第三组记录和所述第二包装的延续令牌之后:
通过所述通信接口并从所述客户端装置接收所述第二包装的延续令牌;以及
基于与所述第二包装的延续令牌相关联的所述第一新地理数据服务器的所述地理位置,将所述第二包装的延续令牌发送到所述第一新地理数据服务器。
17.根据权利要求16所述的方法,其还包括:
响应于向所述第一新地理数据服务器发送所述第二包装的延续令牌,从所述第一新地理数据服务器接收第四组记录,所述第四组记录包括小于所述页面大小限制的第四数目的记录。
18.根据权利要求17所述的方法,其还包括:
向第二新地理数据服务器发送第三请求以检索所述多个记录中的额外记录;以及
从所述第二新地理数据服务器接收包括第五数目的记录的第五组记录,其中所述第四数目的记录和所述第五数目的记录的总和小于所述页面大小限制。
19.根据权利要求18所述的方法,其还包括:
标识所述多个记录中不存在要检索的额外记录;以及
通过所述通信接口并向所述客户端装置发送所述第四组记录和所述第五组记录,其中所述第四组记录和所述第五组记录的发送使所述客户端装置处理所述第四组记录和所述第五组记录。
20.存储指令的一个或更多个非暂时性计算机可读介质,所述指令在由包括至少一个处理器、存储器和通信接口的计算平台执行时使所述计算平台:
通过所述通信接口并从客户端装置接收对多个记录的第一请求,所述多个记录跨多个地理位置被存储,其中所述第一请求指示超过与所述第一请求相关联的页面大小限制的一定量的记录;
响应于接收到对所述多个记录的所述第一请求,检索包括等于所述页面大小限制的第一数目的记录的第一组记录;
生成第一延续令牌,所述第一延续令牌包括标识第一服务器的信息,所述第一服务器包括在所述多个地理位置中的一个地理位置上存储的第二组记录;
基于所述第一延续令牌生成第一包装的延续令牌,所述第一包装的延续令牌指示所述第一服务器的地理位置和所述第一服务器的身份;以及
通过所述通信接口并向所述客户端装置发送所述第一组记录和所述第一包装的延续令牌,其中向所述客户端装置发送所述第一包装的延续令牌使所述客户端装置处理所述第一组记录。
CN201880058851.8A 2017-08-28 2018-08-23 包装延续令牌以支持跨不同地理位置的多个服务器的分页 Active CN111066307B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/688,252 2017-08-28
US15/688,252 US10701161B2 (en) 2017-08-28 2017-08-28 Wrapping continuation tokens to support paging for multiple servers across different geolocations
PCT/US2018/047644 WO2019046083A1 (en) 2017-08-28 2018-08-23 ENVELOPMENT OF CONTINUATION TOKENS TO SUPPORT PAGING FOR MULTIPLE SERVERS THROUGH DIFFERENT GEOGRAPHIC LOCATIONS

Publications (2)

Publication Number Publication Date
CN111066307A CN111066307A (zh) 2020-04-24
CN111066307B true CN111066307B (zh) 2022-08-26

Family

ID=63492006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880058851.8A Active CN111066307B (zh) 2017-08-28 2018-08-23 包装延续令牌以支持跨不同地理位置的多个服务器的分页

Country Status (6)

Country Link
US (2) US10701161B2 (zh)
EP (1) EP3676723B1 (zh)
CN (1) CN111066307B (zh)
AU (1) AU2018324490B2 (zh)
CA (1) CA3073068C (zh)
WO (1) WO2019046083A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10701161B2 (en) * 2017-08-28 2020-06-30 Citrix Systems, Inc. Wrapping continuation tokens to support paging for multiple servers across different geolocations
US11375043B2 (en) * 2019-03-06 2022-06-28 Citizen Watch Co., Ltd. Program management system, external device and terminal device for controlling a program developer's ability to access, publish and manage marketing of a program
US11095661B2 (en) * 2019-05-29 2021-08-17 Cisco Technology, Inc. Enforcing data sovereignty policies in a cloud environment
US20220051306A1 (en) * 2020-08-11 2022-02-17 Elektrik App Identifying connection accessories for electrical cables
KR102633926B1 (ko) * 2021-07-28 2024-02-06 (주)제이엔테크놀러지 클라이언트 샤딩 및 프록시 서버 샤딩을 지원하는 듀얼 모드 샤딩 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105518655A (zh) * 2013-09-05 2016-04-20 贝宝公司 无缝分页
CN105900396A (zh) * 2014-02-07 2016-08-24 甲骨文国际公司 移动云服务体系架构
CN106576041A (zh) * 2014-06-27 2017-04-19 林建华 客户端与服务器之间相互验证的方法
CN106605221A (zh) * 2014-08-21 2017-04-26 卓普网盘股份有限公司 具有用于即时索引的方法的多用户搜索系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7516198B1 (en) * 2001-10-30 2009-04-07 Cisco Technology, Inc. Arrangement for providing content-based quality of service for a service flow based on parsing XML tags detected from a server response to a client request
US8392400B1 (en) * 2005-12-29 2013-03-05 Amazon Technologies, Inc. Method and apparatus for stress management in a searchable data service
WO2011041465A1 (en) * 2009-09-30 2011-04-07 Tracking.Net Enhanced website tracking system and method
CA2837716A1 (en) * 2011-06-01 2012-12-06 Security First Corp. Systems and methods for secure distributed storage
US9563712B2 (en) * 2011-07-14 2017-02-07 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing internal custom feed items
WO2013048986A1 (en) * 2011-09-26 2013-04-04 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US9514199B1 (en) * 2012-09-28 2016-12-06 Google Inc. Sorting and pagination of content item streams
EP2717015B1 (en) * 2012-10-08 2018-05-23 Harman Becker Automotive Systems GmbH Seamless display of objects
US9407615B2 (en) * 2013-11-11 2016-08-02 Amazon Technologies, Inc. Single set of credentials for accessing multiple computing resource services
US9894154B2 (en) * 2014-10-11 2018-02-13 Papaya Mobile, Inc. Data synchronization methods and systems
JP6251702B2 (ja) * 2015-05-26 2017-12-20 エヌ・ティ・ティ・コミュニケーションズ株式会社 接続先サーバ指示装置、サービス利用システム、接続先サーバ指示方法、及びプログラム
US10701161B2 (en) * 2017-08-28 2020-06-30 Citrix Systems, Inc. Wrapping continuation tokens to support paging for multiple servers across different geolocations
US11210347B2 (en) * 2019-09-17 2021-12-28 Citrix Systems, Inc. Object search with pagination and non-duplicates support

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105518655A (zh) * 2013-09-05 2016-04-20 贝宝公司 无缝分页
CN105900396A (zh) * 2014-02-07 2016-08-24 甲骨文国际公司 移动云服务体系架构
CN106576041A (zh) * 2014-06-27 2017-04-19 林建华 客户端与服务器之间相互验证的方法
CN106605221A (zh) * 2014-08-21 2017-04-26 卓普网盘股份有限公司 具有用于即时索引的方法的多用户搜索系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Next Google Search Results Page,https://www.gtricks.com/google/automatically-load-next-google-search-results-page/;Abhishek;《www.gtricks.com》;20151102;参见1-3页 *
一种共享IP流记录分布式平台;张国良等;《计算机系统应用》;20110615(第06期);全文 *

Also Published As

Publication number Publication date
EP3676723A1 (en) 2020-07-08
US11470169B2 (en) 2022-10-11
AU2018324490A1 (en) 2020-04-16
US10701161B2 (en) 2020-06-30
CA3073068A1 (en) 2019-03-07
US20200287979A1 (en) 2020-09-10
CA3073068C (en) 2022-10-04
AU2018324490B2 (en) 2021-05-06
EP3676723B1 (en) 2023-08-16
WO2019046083A1 (en) 2019-03-07
US20190068725A1 (en) 2019-02-28
CN111066307A (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN109558721B (zh) 客户端应用程序的安全单点登录和条件访问的方法和系统
CN111052706B (zh) 将单点登录扩展到联合登录提供者的依赖方的方法
US11627120B2 (en) Dynamic crypto key management for mobility in a cloud environment
CN107566400B (zh) 用于确定应用的操作模式的方法
US11734635B2 (en) Deploying and implementing enterprise policies that control augmented reality computing functions
US11062041B2 (en) Scrubbing log files using scrubbing engines
CN111066307B (zh) 包装延续令牌以支持跨不同地理位置的多个服务器的分页
CN112789841A (zh) 在远程访问或基于云的网络环境中访问资源
US11748312B2 (en) Sharing of data with applications
US11711214B2 (en) Enhanced token transfer
US11770454B2 (en) Native application integration for enhanced remote desktop experiences
CN111566619A (zh) 虚拟桌面中的本地映射账户
US20220038282A1 (en) Secure Token Transfer between Untrusted Entities
US10721719B2 (en) Optimizing caching of data in a network of nodes using a data mapping table by storing data requested at a cache location internal to a server node and updating the mapping table at a shared cache external to the server node
US20200110857A1 (en) Reflection Based Endpoint Security Test Framework

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