CN105144108A - 远程主机上的进程的基于服务的负载平衡管理 - Google Patents

远程主机上的进程的基于服务的负载平衡管理 Download PDF

Info

Publication number
CN105144108A
CN105144108A CN201480012719.5A CN201480012719A CN105144108A CN 105144108 A CN105144108 A CN 105144108A CN 201480012719 A CN201480012719 A CN 201480012719A CN 105144108 A CN105144108 A CN 105144108A
Authority
CN
China
Prior art keywords
distance host
session
user
host
resource
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.)
Pending
Application number
CN201480012719.5A
Other languages
English (en)
Inventor
B·奥尔里奇
C·鲁多夫
K·雷斯尔
J·南那伽
D·安德森
B·沃克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105144108A publication Critical patent/CN105144108A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)

Abstract

会话管理器用于管理响应于与用户相关联的请求的对用于会话的远程主机的选择。会话管理器使用在请求之前从远程主机获取的资源信息来确定将哪一个远程主机与客户机的会话相关联。每一远程主机执行(可配置的)资源计算来确定它还可容纳多少进程/会话。远程主机将资源计算的结果以及所确定的其他资源信息发送到会话管理器。会话管理器向客户机设备提供所确定的远程主机。客户机设备然后直接连接到所确定的远程主机。进程可以在用于该客户机的远程主机上作为用户自动启动。会话管理器还可存储和接收关于活动和历史进程、远程主机状态和远程主机配置的信息。

Description

远程主机上的进程的基于服务的负载平衡管理
背景
负载平衡是一种将工作分布在不同机器上以便更高效地利用可用资源的方法。例如,可基于当前资源正由一机器使用来选择该机器处理请求。跨服务器的负载平衡过程可以是有挑战性的。
概述
提供概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选集。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
会话管理器用于管理响应于与用户相关联的请求的对用于会话的远程主机的选择。会话管理器使用在请求之前从远程主机获取的资源信息来确定将哪一个远程主机与客户机的会话相关联。每一远程主机确定其当前正在运行的进程/会话并执行资源计算以确定它还能容纳多少进程/会话。由远程主机执行的资源计算是可配置的且可以在运行时期间更新。在远程主机执行资源计算后,远程主机将资源计算的结果以及所确定的其他资源信息发送到会话管理器(例如,通过安全连接)。会话管理器使用从每一远程主机提供的资源计算和信息来确定哪一个远程主机可用于创建新进程和/或已经与会话相关联。会话管理器向客户机设备提供所确定的远程主机。客户机设备然后直接连接到所确定的远程主机。进程可以在对应于客户机的远程主机上作为用户自动启动。会话管理器还可存储和接收关于活动和历史进程、远程主机状态和远程主机配置的信息。由每一远程主机执行的计算可以在运行时由管理针对每一远程主机的度量、限制和算法数据的会话管理器来更改。
附图简述
图1示出了用于远程主机上的进程的负载平衡管理的系统;
图2示出了用于使用会话管理器来对远程主机上的会话进行负载平衡的过程;
图3示出了用于监视远程主机并向会话管理器提供资源信息的过程;
图4示出了用于使用会话管理器来对会话进行负载平衡的示例性系统;以及
图5、6A、6B和7以及相关联的描述提供了其中可实施本发明的各实施例的各种操作环境的讨论。
详细描述
现将参考其中相同的标号代表相同的元件的附图来描述各实施例。
图1示出了用于远程主机上的进程的负载平衡管理的系统。如图所示,系统100包括计算设备1-N、远程主机180、会话管理器26、用户(1)1-N以及用户接口(UI)1-N(118、119和120)。
所示的系统100可包括检测何时接收了触摸输入(例如,手指触摸或接近触及该触摸屏)的零个或多个触摸屏输入设备/显示器。可利用检测用户的触摸输入的任何类型的触摸屏。例如,触摸屏可包括一层或多层检测触摸输入的电容性材料。除了电容性材料之外或代替电容性材料,可使用其他传感器。例如,可使用红外(IR)传感器。根据一实施例,触摸屏被配置成检测与可触摸的表面接触或位于可触摸的表面上方的物体。尽管在本说明书中使用术语“上方”,应理解,触摸面板系统的定向是不相关的。术语“上方”旨在可适用于所有这样的定向。触摸屏可被配置成确定触摸输入被接收的位置(如起点、中间点和终点)。可通过任何合适的手段,包括如耦合到触摸面板的振动传感器或话筒,来检测可触摸的表面和物体之间的实际接触。用于检测接触的传感器的示例的非穷尽列表包括:基于压力的机构、微机械加速度计、压电器件、电容传感器、电阻传感器、感应传感器、激光振动计和LED振动计。一个或多个记录设备可被用于检测语音和/或视频/图片(如微软KINECT、话筒等等)。一个或多个扬声器也可被用于音频输出(如TTS合成语音)。
一般而言,会话管理器26管理响应于与用户(例如,用户1-N)相关联的请求的对将要创建进程/会话的远程主机的选择。根据一实施例,会话与MICROSOFTDYNAMICSGP相关联。然而,会话可以与其它类型的应用/程序相关联。会话管理器26存储并使用从远程主机180获取的资源信息124来确定将哪一个远程主机与客户机的会话相关联。每一远程主机180(例如,主机1、主机2......主机N)确定其当前正在运行的进程/会话并执行资源计算以确定它还能容纳多少进程/会话。根据一实施例,资源计算是在发生事件(例如,会话创建/停止、时间段期满、正被利用的资源突然变化等)时执行的。用于确定远程主机将如何执行资源计算的配置消息可以与会话管理器存储在一起和/或存储在每一远程主机上和/或某一其他位置(例如,网络位置)。根据一实施例,配置信息被存储在会话管理器上。
在每一远程主机执行资源计算后,远程主机诸如通过安全连接将资源信息发送到会话管理器26。会话管理器26存储从每一远程主机接收到的资源信息124。资源信息124包括指示每一主机还可容纳的会话数量(如由该远程主机确定)的信息。根据一实施例,资源信息包括每一远程主机上的每一活动会话/进程以及其他资源信息(例如,已用/可用存储器、处理器利用率等)。响应于来自与用户相关联的计算设备(例如,与用户1相关联的计算设备2)的请求,会话管理器26确定哪一个远程主机可用于创建新进程和/或已经与该用户的会话相关联。请求可包括用于认证或授权用户的认证信息。如图所示,计算设备可由不同用户(例如,用户2)使用。会话管理器26还可存储和接收关于活动和历史进程、远程主机状态和远程主机配置的信息。由每一远程主机执行的计算可以在运行时由管理针对每一远程主机的度量、限制和算法数据的会话管理器来更改。根据一实施例,远程主机可以挂起接受新会话,但仍服务现有的正在运行的会话。即使远程主机当前不接受新会话请求,用户也可通过会话服务重新连接到这些会话。
远程主机180包括各自包含会话服务和运行时进程的各个计算设备(例如,服务器)。响应于从来自计算设备(例如,计算设备1...N)的调用者(例如,用户1、用户2......用户N)接收到启动会话的请求,远程主机上的会话服务创建启动运行时进程的会话。如此处所讨论的,计算设备从会话管理器26接收对远程主机的选择。换言之,会话管理器26将所确定的远程主机返回至做出请求的调用者和计算设备,而不是会话管理器26担当代理并自己在计算设备和远程主机之间做出连接。根据一实施例,在从计算设备接收到请求后,被调用的远程主机上的会话服务在该远程主机上创建并展示用于应用的运行时服务(运行时进程),以供做出请求的计算设备安全地与该远程主机上的会话进行通信。
每一远程主机上的会话监视器执行资源计算并将其资源信息(例如,负载)报告给会话管理器26,会话管理器26帮助确定哪一个远程主机接收创建新会话的请求。会话监视器以可配置间隔和/或应预定事件运行,并且被配置成检查正在运行的会话,执行任何清除任务并向会话管理器26报告信息。
根据一实施例,会话监视器是在远程主机上运行的会话服务的组件,该组件监视主机资源并执行其他动作,诸如检查正在运行的会话、执行清除任务以及向会话管理器26报告信息。会话管理器26和/或某一其他服务还可被配置成对用户进行授权。可使用桥接服务(未示出)来将会话服务与运行时进程桥接。
根据一实施例,在远程主机上运行的会话监视器不具有对会话管理器做出的过往资源信息报告的知识。根据另一实施例,会话监视器可存储资源信息。在该示例中,会话监视器可执行加权平均计算,以使得该会话监视器向会话管理器做出的报告包括诸如平均存储器、平均处理器利用率等数据。
会话管理器26查询诸如远程主机状态表等资源信息124,并使用远程主机的能创建会话数并将该数字乘以利用率。基于经排序结果,会话管理器26查询前几个可能可用的远程主机(例如,1、2、3......)以确定该远程主机是否可用。根据一实施例,会话管理器26对远程主机上的会话服务使用IsAvailable()调用。如果该主机可用,则该主机返回关于该主机的信息以使得应用/网站可与其通信。如果主机不可用,则会话管理器26查询经排序列表中的下一主机。IsAvailable操作执行小型性能检查以便基于从会话管理器提供的数据(可以运行的最多会话、用以启动会话的最少存储器等)来确定实际上是否能创建会话。根据一实施例,会话管理器26不执行很多负载平衡算法工作,因为该工作是由每一远程主机在该远程主机报告其在会话监视器运行期间确定的当前资源信息和资源计算之前执行的。根据另一实施例,会话管理器26可执行负载平衡计算,诸如查询多个远程主机;一次管理一个队列而不是一个主机以允许更快地返回结果,因为每一失败查询可能花费相对较长时间(例如,25秒);使用附加信息来修改从远程主机返回的资源信息/计算;等等。
根据一实施例,会话管理器26使用诸如以下操作来在远程主机180上调用操作以便与远程主机180交互:IsAvailable(是可用)、SetCalculationAlgorithm(设置计算算法)、RunSessionMonitor(运行会话监视器)、Get/SetCustomRuntimeSettingsforaSession(获取/设置会话的自定义运行时环境)、TerminateSession(终止会话)。
IsAvailable()–检查会话服务是否可用并且另外执行性能检查以便通过分析存储器利用率、处理器利用率、网络利用率、因租户而异的性能度量和/或因用户而异的能度量来确定远程主机是否能够接纳新会话。
SetCalculationAlgorithm()–更新用于确定以下内容的远程主机的算法数据配置:能创建会话数、监视器运行频率、将在没有正在运行的运行时进程时用于运行时进程的默认平均存储器、可用于启动新进程的最少存储器、可以在远程主机上运行的最大会话数、基于性能(处理器、存储器、盘i/o、网络)的关于会话监视器何时运行的远程主机度量。
RunSessionMonitor()–启动会话服务以运行其会话监视器。当会话管理器服务启动时,它在场中的每一远程主机上调用该操作。
GetCustomRuntimeSettings(stringsessionId,IEnumerable<string>keys)–获取对应于给定会话id的远程主机上的运行时进程所使用的自定义环境。会话管理器在远程主机上查找所提供的sessionId(会话id)并对该远程主机做出调用以检索数据。
GetCustomRuntimeSettings(stringsessionId,IEnumerable<string>keys)–获取对应于给定会话id的远程主机上的运行时进程所使用的自定义环境。会话管理器在远程主机上查找所提供的sessionId(会话id)并对该远程主机做出调用以检索数据。
TerminateSession(stringsessionId)–终止与所提供的会话id相关联的主机上的正在运行的会话。
远程主机180使用诸如以下操作来在会话管理器26上调用操作:GetCalculationAlgorithm(获取计算算法)、GetServiceSecurityGroups(获取服务安全组)和ReportSessions(报告会话)。
GetCalculationAlgorithm()–获取用于确定以下内容的远程主机的算法数据配置:能创建会话数、监视器运行频率、将在没有正在运行的运行时进程时用于运行时进程的默认平均存储器、可用于启动新进程的最少存储器、可以在远程主机上运行的最大会话数、基于性能(处理器、存储器、盘i/o、网络)的关于会话监视器何时应运行的远程主机度量。
GetSessionServiceSecurityGroups(stringremoteHostId)–获取为会话服务定义的安全组。会话服务在它开始设置其用于授权调用者和应用用户的操作安全性时调用该操作。
ReportSessions(SessionHostStatussessionHostStatus,IEnumerable<SessionReportingInfo>sessionsToReport)–允许远程主机向会话管理器报告其所有会话信息。当会话监视器运行时,它调用该操作以报告其会话和主机状态。
根据一实施例,客户机使用诸如以下操作来在会话管理器26上调用操作:Get/SetRemoteHostsConfiguration(获取/设置远程主机配置)、Get/SetaRemoteHostStatus(获取/设置远程主机状态)、GetAvailableRemoteHost(获取可用远程主机)、GetSessionsusinganumberoffilteringoptions(user、remotehost、status)(使用多个过滤选项(用户、远程主机、状态)来获取会话)、Get/SetCustomRuntimeSettingsforaSession(获取/设置会话的自定义运行时环境)和TerminateaSession(终止会话)。
GetRemoteHostConfiguration(stringremoteHostId)–获取关于远程主机的配置消息。
GetRemoteHostsConfiguration()–获取关于场中的所有远程主机的配置消息。
SetRemoteHostConfiguration(stringremoteHostId)–更新关于远程主机的配置消息。
GetRemoteHostStatus(stringremoteHostId)–获取远程主机的状态。
SetRemoteHostStatus(stringremoteHostId,statusValue)–更新远程主机的状态。
GetMostAvailableRemoteHost()–基于使用多个负载平衡因素的计算来获取场中的最可用远程主机。根据一实施例,会话管理器26查询远程主机状态表并取得远程主机的能创建会话数并将该数字乘以利用率。基于经排序结果,会话管理器26查询远程主机上的会话服务以确定它是否IsAvailable()。如果远程主机可用,则会话管理器返回关于该主机的信息以使得客户机能够与其通信。如果远程主机不可用,则会话管理器将查询经排序列表中的下一主机。根据一实施例,会话管理器26不负责进行大量负载平衡算法工作,因为这是每一远程主机的责任以便在会话监视器运行期间报告其当前数据。会话管理器26负载平衡可完成附加工作,如一次查询3个远程主机/一次管理一队列而不是1个主机以允许更快地返回结果,因为每一个失败查询可能花费25秒。
GetSessions(针对用户、远程主机、状态等的任何数量的过滤选项)-基于所提供的过滤来获取会话列表。
GetCustomRuntimeSettings(stringsessionId,IEnumerable<string>keys)–获取对应于给定会话id的远程主机上的运行时进程所使用的自定义环境。会话管理器26在远程主机上查找所提供的sessionId(会话id)并对该远程主机做出调用以检索数据。如果键由于未找到其值而被指定,则该键不被计入结果集。
GetCustomRuntimeSettings(stringsessionId,IEnumerable<string>keys)–获取对应于给定会话id的远程主机上的运行时进程所使用的自定义环境。会话管理器26在远程主机上查找所提供的sessionId(会话id)并对该远程主机做出调用以检索数据。如果提供了对运行时进程是未知的键,则忽略该键。
TerminateSession(stringsessionId)–终止与所提供的会话id相关联的远程主机上的正在运行的会话。
根据一实施例,远程主机180上的客户机调用包括诸如以下操作:AuthorizeUser(授权用户)、CreateaSession(创建会话)和GetSessionRecoveryInformation(获取会话恢复信息)。
Authorize(stringuser,stringpassword)–用于认证和授权用户。如果所提供的用户凭证通过认证,则用户被授权成为针对用户帐户定义的用户/组的成员。如果用户被授权,则用户凭证与认证令牌一起安全地存储在远程主机上并用于创建一个会话。认证令牌被返回到调用者。认证令牌被用来确认对CreateSession(创建会话)操作的调用。当进程作为模拟用户启动时,通常不使用授权操作。
CreateSession(SessionCreationContextsessionInfo,GuidauthenticationToken)–在用户被指派给认证令牌时创建客户机会话。根据一实施例,进程在用户被指派给在授权操作期间存储在存储器/安全串中的认证令牌时启动。当创建会话时,在授权操作期间存储并由该操作使用的用户凭证高速缓存将从安全存储器中移除。当创建会话时,通过触发会话监视器运行来向会话管理器报告信息。
GetSessionRecoveryInformation(stringsessionId)–获取关于会话的用于恢复现有会话的信息。
根据一实施例,存在七个会话状态,包括活动、进程正在运行但不响应、客户机发起的终止、心跳超时终止、不响应超时终止、管理员终止以及未知终止。活动状态指示会话正在运行并且可访问任何共享数据。进程正在运行但不响应指示会话进程正在运行,但会话监视器无法与该会话通信。客户机发起的终止指示客户机发起终止会话。心跳超时终止指示客户机停止发送心跳并且满足心跳超时配置值因而会话监视器终止了该会话。不响应超时终止状态指示会话正在运行,但无法访问共享数据。如果会话不响应,则相关联的应用无法连接到该会话。根据一实施例,在会话监视器运行期间第一次遇到不响应会话时不终止该不响应会话,因为它可能在创建过程中。根据一实施例,会话在监视器运行期间第二次不响应时,强制终止该会话。这已被发现是罕见情况。管理员终止状态指示会话已由管理器终止。未知终止状态指示会话被终止的原因是未知的。会话监视器报告正在运行的进程并且会话管理器处理结果。如果会话管理器确定一会话先前已经被报告为活动或进程正在运行但不响应,并且现在不在正在运行的会话列表中,则会话管理器将该会话标记为未知终止。
以下场景是出于说明目的,并不旨在进行限制。
以下场景描述创建新会话。最初,用户访问用于访问服务的应用。根据一实施例,用户访问服务的网页。或者,用户可访问不同的UI以访问服务。在访问服务后,从用户接收认证信息。可以从所存储的位置接收与用户相关联的认证信息,而不是直接从用户接收认证信息。
使用与用户相关联的认证信息,使用会话管理器26来确定远程主机。认证信息可包括不同凭证(例如,用户名和口令)和/或其他认证信息(例如,用户是所允许的用户组的成员)。如果被认证或授权,则关于做出请求的用户的认证信息被存储在当创建会话时使用的远程主机(例如,存储器)上。认证令牌可被返回到做出请求的调用者和计算设备并被存储以供稍后使用。
会话管理器26还确定是否存在当前与用户相关联的任何活动会话。例如,用户可能已经在工作时在一个计算设备上启动会话,并且然后从家庭计算机做出请求。用户可以与一个或多个租户相关联。当不存在活动会话且存在一个租户时,创建使用该单个租户的新会话。当存在活动会话时,显示(例如,在网格中)用户的活动会话的显示画面。当存在与用户相关联的两个或更多租户时,这些租户被显示给用户。当用户选择创建新会话时,使用认证令牌和租户信息来在授权该用户的远程主机上创建会话。远程主机使用较早提供的用户认证信息来启动租户信息中所定义的运行时进程。
以下场景描述恢复与用户相关联的现有会话。在认证和授权用户后,确定关于该用户的活动会话列表。当存在与该用户相关联的活动会话时,将这些会话显示给该用户以使得该用户可选择一会话。在接收到选择后,使用对与所选会话相关联的远程主机的请求来获取关于当前会话的详细信息,诸如运行时服务地址和安全令牌。如果会话仍然是活动的,则返回该信息。如果会话不活动,则返回空并且做出调用的应用(例如,网页)通过显示错误消息并刷新会话列表来处置该错误状况。当会话活动时,用户被重定向至活动会话。根据一实施例,用户被重定向至网页。相关联的网站代码基于所选会话来创建初始化参数并将这些参数传递至相关联的应用(例如,MICROSOFTSILVERLIGHT)。参数包括用以连接到运行时服务的数据并且包括指示会话恢复的标志。
在该网页内,应用加载并解译参数。应用通过在运行时服务上调用交回原始安全令牌的操作来请求新安全令牌,该操作使原始安全令牌无效。与所选会话相关联的远程主机上的运行时服务处理该请求并向客户机上的应用发送信息,该应用处理该信息并显示与该会话相关联的窗口和数据。
根据一实施例,用于创建(可能的)新会话的远程主机在用户在网站上输入其凭证时确定。根据另一实施例,对最可用远程主机的确定将只在用户选择创建新会话时完成。可能的益处是远程主机在认证用户时与用户选择创建会话时之间的任何不利变化被最小化。另外,如果用户选择恢复现有会话(而不是创建新会话),则无需确定最可用远程主机。
图2和3示出了用于使用会话管理器来对远程服务器上的进程进行负载平衡过程的说明性过程。在阅读本文中给出的例程的讨论时,应该理解,各个实施例的逻辑操作被实现为:(1)一系列运行于计算系统上的计算机实现的动作或程序模块;和/或(2)计算系统内的互连的机器逻辑电路或电路模块。这种实现是取决于实现本发明的计算系统的性能需求的选择问题。因此,所例示并构成本文中描述的实施例的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑,以及其任何组合来实现。
图2示出了用于使用会话管理器来对远程主机上的会话进行负载平衡的过程。
在开始操作之后,该过程移至操作210,在此接收请求和认证信息。该请求可以是启动(例如,创建)新进程/会话和/或选择仍然活动的现有进程/会话的请求。认证信息唯一地标识用户和/或与该用户相关联的租户。认证信息可以直接从用户接收(例如,输入口令/标识符)和/或从存储器(例如ROM/RAM/硬盘驱动器/网络存储/...)获取。根据一实施例,从与在远程主机上运行的应用/会话相关联的客户机设备接收认证信息。
流转至操作220,认证并授权用户。可确定不同的认证校验。例如,一个用户可被认证为访问一个服务,而另一用户可被认证为附加服务和/或访问其他数据。
移至判定操作230,确定可用远程主机。根据一实施例,远程主机由不同于被配置成为与客户机计算设备相关联的用户执行会话的远程主机的会话管理器来确定。
在操作232,由会话管理器访问资源信息。资源信息包括关于被配置成创建/运行与请求相关联的进程/会话的每一远程主机的资源信息和可用性。根据一实施例,资源信息包括每一远程主机做出的关于它还能容纳(例如,运行)的会话数量的判定以及每一远程主机上的活动会话/进程中的每一个,以及其他资源信息(例如,已用/可用存储器、处理器利用率等)。每一远程主机基于事件触发(参见图3和相关讨论)来向会话管理器提供资源信息。
在操作234,确定将要创建会话和/或已经与要还原的会话相关联的远程主机。根据一实施例,会话管理器通过检查资源信息并确定与其他远程主机相比具有最大可用性的远程主机来确定最可用远程主机。例如,最初选择指示可用于容纳比其他主机更多的会话的远程主机。最初可选择一个或多个远程主机(例如,一个、两个、三个...)。
在操作236,确定远程主机当前是否可用。该确定可使用不同方法(例如,查验远程主机、使用API调用(IsAvailable())等)来做出。该确定可以对不止一个远程主机做出。例如,虽然一个远程主机可基于负载平衡因素而被确定为更可用,但该远程主机可能不响应为是可用的。通过一次对不止一个远程主机做出该可用确定,可节省用远程主机确定来响应客户机的时间。
流转到操作240,将所确定的可用远程主机返回到做出请求的客户机。根据一实施例,会话管理器在不将客户机连接到远程主机的情况下确定远程主机。取而代之地,会话管理器向客户机提供连接信息,以使得该客户机可以在没有来自会话管理器的干扰的情况下直接与该远程主机连接。根据另一实施例,会话管理器可以在做出请求的客户机与远程主机之间建立直接连接。
移至操作250,客户机使用所确定的远程主机来与远程主机连接。根据一实施例,如果远程主机在预定时间(例如,2、3分钟)内未从客户机接收到连接,则远程主机自动移除该客户机的连接能力。
随后该过程移至结束框并返回以处理其它动作。
图3示出了用于监视远程主机并向会话管理器提供资源信息的过程。
在开始操作后,该过程流转到操作310,在此可调节资源计算。根据一实施例,可以在运行时调节资源计算。例如,管理员可基于他们发现的与其环境相关的因素来改变资源计算。还可配置发送给会话管理器的资源信息。例如,可设置将在不存在正在运行的进程时用于运行时进程的默认平均存储器。可设置可用于启动新进程的最少存储器。可配置执行资源计算的时间段。可设置能够在远程主机上运行的会话数量。被配置成由会话监视器发送到会话管理器的其他资源信息可包括诸如利用率、存储器使用率等项目。由于每一远程主机运行其自己的会话监视器,因此远程主机可被配置成在已经满足性能数据阈值片段(例如,处理器处于峰值达x时间量、网络利用率处于x百分比达x时间量、盘i/o利用率处于x百分比达x时间量、存储器利用率处于x百分比达x时间量)的情况下运行会话监视器。每一资源信息片段可以在会话管理器中配置并被提供给远程主机以供进行运行时修改。计算可基于移动平均和/或时间点来完成。资源计算还可基于其他因素来调节。例如,特定租户可能消耗比其他租户更多的存储器/运行更多的进程。根据一实施例,负载平衡逻辑可基于所选租户和/或用户来调整哪一个远程主机接收下一创建会话调用。
流转到操作320,确定运行会话监视器的触发。存在可触发会话监视器收集/确定资源信息的多种方式,诸如:在会话服务启动时;在会话管理器启动时;在新会话在远程主机上创建时;在会话被终止时;周期性地;尖峰事件;和/或所确定的某一其他触发。
根据一实施例,当会话服务在远程主机上启动时,该会话服务触发该远程主机上的会话监视器运行,该会话监视器向会话管理器报告所有正在运行的会话的当前状态。当会话管理器启动时,会话管理器遍历每一经配置远程主机并调用会话监视器在每一远程主机上运行。每一次在远程主机上创建会话时,会话监视器运行并且对会话管理器做出调用以报告包括会话信息在内的资源信息。一旦发生进程/会话终止,会话监视器就运行并且对会话管理器做出调用以报告会话和资源信息。每一会话监视器也可以在周期性基础上(例如,每3分钟、5分钟、2分钟...)运行。会话监视器何时应运行的间隔可以在配置文件中定义。
移至操作330,在远程主机上查询每一会话/进程。根据一实施例,每一次会话监视器运行时,它查询远程主机上的活动运行时进程,并通过执行资源计算来确定该远程主机的当前可用性。
转到操作340,由远程主机执行资源计算。在执行资源计算时,每一远程主机在该远程主机上执行其自己的计算以便基于多个因素(例如,存储器使用、处理器使用、网络使用、硬盘使用、租户信息、用户信息等)来确定它能够创建多少会话。可以在确定远程主机当前能够创建的会话数量时使用一个或多个因素。会话管理器(如所描述的)可以修改/调整针对远程主机的所确定的资源计算。
根据一实施例,确定正在远程主机上执行的每一运行时进程。对于每一运行时进程,确定不同的资源信息。该资源信息可包括每一运行时进程所使用的存储器量以及总存储器使用。还可通过将各运行时进程所使用的总存储器除以当前正在执行的运行时进程的数量来确定平均存储器使用。根据一实施例,当不存在正在运行的运行时进程时,则可使用默认存储器使用(例如,如由应用确定的50MB或某一其他值)。该存储器使用值可以单独和/或与其他值相组合地用来确定远程主机能够创建的会话数量。
移至判定操作350,将资源信息和资源计算发送到会话管理器。
随后该过程移至结束框并返回以处理其它动作。
图4示出了用于使用会话管理器来对会话进行负载平衡的示例性系统。如图所示,系统1000包括服务1010、会话管理器26、数据存储1045、远程会话主机180、资源1015、触摸屏输入设备/显示器1050(例如,板式)和智能电话1030。
如图所示,服务1010是基于云和/或基于企业的服务,该服务被配置成提供产生多模态输出(例如,语音、文本...),并接收包括言语在内的多模态输入以便与服务交互,诸如与各种应用(例如,游戏、浏览、定位、生产力服务(例如,电子表格、文档、演示文稿、图表、消息等))相关的服务。该服务可以使用不同类型的输入/输出来交互。例如,用户可使用语音输入、触摸输入、基于硬件的输入等。服务可提供由TTS组件生成的语音输出。服务1010所提供的一个或多个服务/应用的功能也可被配置为基于客户机/服务器的应用。
如图所示,服务1010向任何数量的租户(例如,租户1-N)提供资源1015和服务。多租户服务1010是基于云的服务,其将资源/服务1015提供给向该服务进行预订的租户,以及与其他租户数据分开地维护每个租户的数据并保护每个租户的数据。例如,服务1010可以是提供商业解决方案的服务,诸如MICROSOFTDYNAMICSGP和/或某一其他服务。会话管理器26存储并使用从远程主机180获取的资源信息来确定哪一个远程主机将与客户机的会话相关联。
如图所示,系统1000包括检测何时接收到触摸输入(例如,手指触摸或接近触摸触摸屏)的触摸屏输入设备/显示器1050(例如,板式/平板设备)和智能电话1030。可利用检测用户的触摸输入的任何类型的触摸屏。例如,触摸屏可包括一层或多层检测触摸输入的电容性材料。除了电容性材料之外或代替电容性材料,可使用其他传感器。例如,可使用红外(IR)传感器。根据一实施例,触摸屏被配置成检测与可触摸的表面接触或位于可触摸的表面上方的物体。尽管在本说明书中使用术语“上方”,应理解,触摸面板系统的定向是不相关的。术语“上方”旨在可适用于所有这样的定向。触摸屏可被配置成确定触摸输入被接收的位置(如起点、中间点和终点)。可通过任何合适的手段,包括如耦合到触摸面板的振动传感器或话筒,来检测可触摸的表面和物体之间的实际接触。用于检测接触的传感器的示例的非穷尽列表包括:基于压力的机构、微机械加速计、压电器件、电容传感器、电阻传感器、感应传感器、激光振动计和LED振动计。
根据一实施例,智能电话1030和触摸屏输入设备/显示器1050配置有与服务1010以及与该服务相关联的会话交互的多模态应用(1031、1051)。
如图所示,触摸屏输入设备/显示器1050和智能电话1030示出了显示对利用多模态输入/输出(例如,语音/图形显示)的应用的使用的示例性显示器1052/1032。数据可被存储在设备(例如,智能电话1030、平板1050)上和/或某一其他位置(例如,网络数据存储1045)。数据存储1054可用于存储TTS组件所使用的文本、相应的人类文本记录和/或语言理解系统所使用的模型。设备所使用的应用可以是基于客户机的应用、基于服务器的应用、基于云的应用和/或某种组合。
会话管理器26被配置成执行与本文描述的方法/过程有关的操作。虽然管理器26被示为在服务1010内,但该管理器的所有/部分功能可被包括在其他位置(例如,智能电话1030和/或平板设备1050上)。
本文描述的实施例和功能可经许多计算系统来操作,包括有线和无线计算系统、移动计算系统(如移动电话、图形输入板或平板型计算机、膝上型计算机等)。此外,本文所述的实施例和功能可在分布式系统上操作,其中应用功能、存储器、数据存储和检索、以及各种处理功能可在诸如因特网或内联网之类的分布式计算网络上彼此远程地操作。各种类型的用户界面和信息可经板载计算设备显示器或经与一个或多个计算设备相关联的远程显示单元被显示。例如,各种类型的用户界面和信息可在墙壁表面上被显示和交互,各种类型的用户界面和信息被投射在墙壁表面上。与可用于实施本发明的各实施例的许多计算系统的交互包括:键击输入、触摸屏输入、语音或其他音频输入、姿势输入(其中相关联的计算设备配备有用于捕捉和解释用于控制计算设备的功能的用户姿势的检测(如相机)功能)等。
图5、6和7及相关联的描述提供了其中可实施本发明的各实施例的各种操作环境的讨论。然而,关于图5-7所示出和讨论的设备和系统是用于示例和说明的目的,而非对可被用于实施本文所述的本发明的各实施例的大量计算设备配置的限制。
图5是示出可用来实施本发明的各实施例的计算设备1100的示例物理组件的框图。以下描述的计算设备组件可适用于上述计算设备。在一基本配置中,计算设备1100可以包括至少一个处理单元1102和系统存储器1104。取决于计算设备的配置和类型,系统存储器1104可以包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存或任何组合。系统存储器1104可以包括操作系统1105、一个或多个编程模块1106,且可以包括web浏览器应用1120。例如,操作系统1105可适用于控制计算设备1100的操作。在一个实施例中,编程模块1106可包括如上所述的安装在计算设备1100上的会话管理器26。此外,本发明的各实施方式可以结合图形库、其他操作系统、或任何其他应用程序来实践,且不限于任何特定应用程序或系统。该基本配置在图5中由虚线1108内的那些组件示出。
计算设备1100可具有附加特征或功能。例如,计算设备1100还可包括附加数据存储设备(可移动和/或不可移动),诸如例如,磁盘、光盘、或磁带。这些附加存储由可移动存储1109和不可移动存储1110示出。
如上所述,可以在系统存储器1104中存储包括操作系统1105在内的多个程序模块和数据文件。当在处理单元1102上执行时,诸如管理器等编程模块1106可执行各个过程,包括例如与如上所述的方法有关的操作。前述过程是示例,且处理单元1102可执行其他过程。根据本发明的各实施方式可以使用的其他编程模块可以包括电子邮件和联系人应用、字处理应用、电子数据表应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。
一般而言,根据本发明的各实施方式,程序模块可以包括可以执行特定任务或可以实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的各实施方式可用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型机、大型计算机等。本发明的各实施方式也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
此外,本发明的各实施方式可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实现。例如,可以通过片上系统(SOC)来实施本发明的各实施例,其中,可以将图5中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,在此所述的关于管理器26的功能可以通过与计算设备/系统1100的其他组件一起集成在单个集成电路(芯片)上的应用专用逻辑来操作。本发明的各实施方式还可以使用能够执行诸如,例如,AND(与)、OR(或)和NOT(非)等逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施方式可以在通用计算机或任何其他电路或系统中实现。
例如,本发明的各实施方式可被实现为计算机进程(方法)、计算系统或诸如计算机程序产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码了用于执行计算机进程的指令的计算机程序的计算机存储介质。
如这里所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器1104、可移动存储1109和不可移动存储1110都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可以包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息且可以由计算设备1100访问的任何其他介质。任何这样的计算机存储介质都可以是设备1100的一部分。计算设备1100还可以具有输入设备1112,如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等输出设备1114。上述设备是示例且可以使用其他设备。
相机和/或某种其他传感设备可操作来记录一个或多个用户以及捕捉计算设备的用户作出的运动和/或姿势。传感设备还可操作来捕捉诸如通过话筒口述的单词和/或捕捉来自用户的诸如通过键盘和/或鼠标(未描绘)的其他输入。传感设备可包括能够检测用户的移动的任何运动检测设备。例如,相机可以包括微软运动捕捉设备,它包括多个相机和多个话筒。
如这里所使用的术语计算机可读介质还包括通信介质。通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
图6A和6B示出可用来实施本发明的各实施例的合适的移动计算环境,例如移动电话、智能电话、输入板个人计算机、膝上型计算机等。参考图6A,示出了用于实现各实施例的示例移动计算设备1200。在一基本配置中,移动计算设备1200是具有输入元件和输出元件两者的手持式计算机。输入元件可包括允许用户将信息输入到移动计算设备1200中的触摸屏显示器1205和输入按钮1210。移动计算设备1200还可结合允许进一步的用户输入的可选的侧面输入元件1215。可选的侧面输入元件1215可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代实施例中,移动计算设备1200可结合更多或更少的输入元件。例如,在某些实施例中,显示器1205可以不是触摸屏。在又一替代实施例中,移动计算设备是便携式电话系统,如具有显示器1205和输入按钮1210的蜂窝电话。移动计算设备1200还可包括可选的小键盘1235。可选的小键盘1235可以是物理小键盘或者在触摸屏显示器上生成的“软”小键盘。
移动计算设备1200结合输出元件,如可显示图形用户界面(GUI)的显示器1205。其他输出元件包括扬声器1225和LED1220。另外,移动计算设备1200可包含振动模块(未示出),该振动模块使得移动计算设备1200振动以将事件通知给用户。在又一实施例中,移动计算设备1200可结合耳机插孔(未示出),用于提供另一手段来提供输出信号。
尽管此处组合移动计算设备1200来描述,但在替代实施例中,本发明还可组合任何数量的计算机系统来被使用,如在台式环境中、膝上型或笔记本计算机系统、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机等。本发明的实施例也可在分布式计算环境中实践,其中任务由分布式计算环境中通过通信网络链接的远程处理设备来执行;程序可位于本机和远程存储器存储设备中。总而言之,具有多个环境传感器、向用户提供通知的多个输出元件和多个通知事件类型的任何计算机系统可结合本发明的实施例。
图6B是示出在一个实施例中使用的诸如图6A中所示的计算设备之类的移动计算设备的组件的框图。即,移动计算设备1200可结合系统1202以实现某些实施例。例如,系统1202可被用于实现可运行与台式或笔记本计算机的应用类似的一个或多个应用的“智能电话”,这些应用例如演示文稿应用、浏览器、电子邮件、日程安排、即时消息收发、以及媒体播放器应用。在某些实施例中,系统1202被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
一个或多个应用1266可被加载到存储器1262中并在操作系统1264上或与操作系统2064相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、PIM(个人信息管理)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息通信程序等等。系统1202还包括存储器1268内的非易失性存储1262。非易失性存储1268可被用于存储在系统1202断电时不会丢失的持久信息。应用1266可使用信息并将信息存储在非易失性存储1268中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也可驻留在系统1202上并被编程为与驻留在主机计算机上的对应同步应用进行交互,以保持存储在非易失性存储1268中的信息与存储在主机计算机上的对应信息相同步。如应被理解的,其他应用可被加载到存储器1262中且在设备1200上运行,包括上述会话管理器26。
系统1202具有可被实现为一个或多个电池的电源1270。电源1270还可包括外部功率源,如补充电池或对电池重新充电的AC适配器或加电对接托架。
系统1202还可包括执行发射和接收无线电频率通信的功能的无线电1272。无线电1272通过通信运营商或服务供应商方便了系统1202与“外部世界”之间的无线连接。来往无线电1272的传输是在操作系统1264的控制下进行的。换言之,无线电1272接收的通信可通过操作系统1264传播到应用1266,反之亦然。
无线电1272允许系统1202例如通过网络与其他计算设备通信。无线电1272是通信介质的一个示例。通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。如此处所使用的术语计算机可读介质包括存储介质和通信介质两者。
系统1202的该实施例是以两种类型的通知输出设备来示出的:可被用于提供视觉通知的LED1220,以及可被用于扬声器1225提供音频通知的音频接口1274。这些设备可直接耦合到电源1270,使得当被激活时,即使为了节省电池功率而可能关闭处理器1260和其他组件,它们也在一段由通知机制指示的持续时间保持通电。LED1220可被编程为无限地保持通电,直到用户采取行动指示该设备的通电状态。音频接口1274用于向用户提供听觉信号并从用户接收听觉信号。例如,除被耦合到扬声器1225以外,音频接口1274还可被耦合到话筒以接收听觉输入,诸如便于电话对话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。系统1202可进一步包括允许板载相机1230的操作来记录静止图像、视频流等的视频接口1276。
移动计算设备实现系统1202可具有附加特征或功能。例如,该设备还可包括附加数据存储设备(可移动的/或不可移动的),诸如磁盘、光盘或磁带。此类附加存储在图6B中由存储1268示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。
设备1200生成或捕捉的且经系统1202存储的数据/信息可如上所述本地存储在设备1200上,或数据可被存储在可由设备通过无线电1272或通过设备1200和与设备1200相关联的分开的计算设备之间的有线连接访问的任何数量的存储介质上,该分开的计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经设备1200、经无线电1272或经分布式计算网络来被访问。类似地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算设备之间传送以存储和使用,这些手段包括电子邮件和协作数据/信息共享系统。
图7示出用于如此处所述的系统的系统架构。
经由会话管理器26管理的组件可被存储在不同的通信信道或其他存储类型中。例如,可使用目录服务1322、web门户1324、邮箱服务1326、即时消息收发存储1328以及社交网络站点1330来存储组件以及从中开发出组件的信息。系统/应用26、1320可使用任何这些类型的系统等,用于允许在存储1316中管理和存储组件。服务器1332可提供与如本文描述的方法有关的通信和服务。服务器1332可通过网络1308在web上向客户机提供服务和内容。可利用服务器1332的客户机的示例包括计算设备1302,计算设备可包括任何通用个人计算机、平板计算设备1304和/或可包括智能电话的移动计算设备1306。任何这些设备可从存储1316获得显示组件管理通信和内容。
以上参考根据本发明的实施例的方法、系统和计算机程序产品的框图和/或操作说明描述了本发明的实施例。框中所注明的各功能/动作可以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次序来执行。
以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。

Claims (10)

1.一种用于确定远程主机的方法,包括:
从客户机计算设备接收包括用户的认证信息的请求,以确定将与所述用户的会话相关联的远程主机;
认证并授权所述用户;
使用从执行涉及每一远程主机的可用资源的资源计算的远程主机获取的先前存储的资源信息来确定所述会话的远程主机;
向所述客户机计算设备提供指示所确定的远程主机的信息;以及
接收对从执行所述资源计算的每一远程主机获取的资源信息的更新。
2.如权利要求1所述的方法,其特征在于,还包括向所述远程主机提供由授权用户调节的经更新的资源计算,所述经更新的资源计算由每一远程主机用来计算所述资源信息。
3.如权利要求1所述的方法,其特征在于,还包括在向所述客户机设备提供指示所确定的远程主机之前确定所确定的远程主机的当前可用性。
4.如权利要求1所述的方法,其特征在于,还包括重新连接到所确定的远程主机上的已作为用户在所述远程主机上启动的正在运行的进程。
5.如权利要求1所述的方法,其特征在于,所述远程主机确定可用资源并执行所述资源计算,并且响应于发生在所述远程主机上的事件来提供所述资源计算和资源信息。
6.如权利要求1所述的方法,其特征在于,所述资源信息响应于事件而被报告,所述事件包括以下的至少一个:会话创建、会话终止、时间段期满以及导致在所述远程主机上使用可用资源中的尖峰的事件。
7.一种存储用于确定远程主机的计算机可执行指令的计算机可读介质,包括:
从客户机计算设备接收包括用户的认证信息的请求,以确定从各远程主机中选择的将与上述用户的会话相关联的远程主机;
认证并授权所述用户;
使用从每一远程主机获取的与每一远程主机的可用资源有关的先前存储的资源信息来确定所述会话的远程主机;
向所述客户机计算设备提供指示所确定的远程主机的信息;以及
接收对从每一远程主机获取的资源信息的更新。
8.一种用于确定远程主机的系统,包括:
处理器和存储器;
包括会话监视器的远程主机,所述会话监视器被配置成确定关于所述远程主机的资源信息并执行计算所述远程主机能容纳的进程数量的资源计算;以及
会话管理器,所述会话管理器执行各动作,包括:
从客户机计算设备接收包括用户的认证信息的请求,以确定从各远程主机中选择的将与上述用户的会话相关联的远程主机;
认证并授权所述用户;
使用从每一远程主机获取的与每一远程主机的可用资源有关的先前存储的资源信息来确定所述会话的远程主机;
确定所确定的远程主机的当前可用性;以及
向所述客户机计算设备提供指示所确定的远程主机的信息;以及
接收对从每一远程主机获取的资源信息的更新。
9.如权利要求8所述的系统,其特征在于,所述资源信息包括每一远程主机一次能容纳的会话数量,或者向会话管理器报告所述资源信息。
10.如权利要求8所述的系统,其特征在于,还包括确定与所述用户相关联的当前会话并显示所述当前会话以供选择。
CN201480012719.5A 2013-03-07 2014-02-27 远程主机上的进程的基于服务的负载平衡管理 Pending CN105144108A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/788,946 2013-03-07
US13/788,946 US10021042B2 (en) 2013-03-07 2013-03-07 Service-based load-balancing management of processes on remote hosts
PCT/US2014/019151 WO2014137762A1 (en) 2013-03-07 2014-02-27 Service-based load-balancing management of processes on remote hosts

Publications (1)

Publication Number Publication Date
CN105144108A true CN105144108A (zh) 2015-12-09

Family

ID=50391374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480012719.5A Pending CN105144108A (zh) 2013-03-07 2014-02-27 远程主机上的进程的基于服务的负载平衡管理

Country Status (4)

Country Link
US (2) US10021042B2 (zh)
EP (1) EP2965203B1 (zh)
CN (1) CN105144108A (zh)
WO (1) WO2014137762A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017162003A1 (zh) * 2016-03-25 2017-09-28 华为技术有限公司 一种会话监控的方法、装置和系统
CN108769196A (zh) * 2018-05-29 2018-11-06 新华三信息安全技术有限公司 一种会话创建方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979669B1 (en) * 2013-12-13 2018-05-22 Emc Corporation Projecting resource allocation to achieve specific application operation times in a virtually provisioned environment
US9766985B1 (en) * 2014-10-09 2017-09-19 EMC IP Holding Company LLC Deviceless brokerless backup
US10880381B2 (en) 2015-11-04 2020-12-29 Micro Focus Llc Direct connection limitation based on a period of time
JP6776864B2 (ja) * 2016-12-13 2020-10-28 富士通株式会社 負荷分散装置及び負荷分散方法
US11882008B1 (en) * 2022-12-08 2024-01-23 Sap Se Workload classes for tenant-level resource isolation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110078318A1 (en) * 2009-06-30 2011-03-31 Nitin Desai Methods and systems for load balancing using forecasting and overbooking techniques
CN102396287A (zh) * 2009-04-16 2012-03-28 微软公司 瘦客户机会话管理
CN102404384A (zh) * 2010-09-30 2012-04-04 微软公司 统一重新连接至多个远程服务器

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938732A (en) 1996-12-09 1999-08-17 Sun Microsystems, Inc. Load balancing and failover of network services
US6665702B1 (en) 1998-07-15 2003-12-16 Radware Ltd. Load balancing
WO2000068856A2 (en) * 1999-05-11 2000-11-16 Webvan Group, Inc. Electronic commerce enabled delivery system and method
ATE366437T1 (de) 1999-08-13 2007-07-15 Sun Microsystems Inc Elegante verteilung des lastausgleichs für anwendungs-server
US6389448B1 (en) * 1999-12-06 2002-05-14 Warp Solutions, Inc. System and method for load balancing
US6560717B1 (en) 1999-12-10 2003-05-06 Art Technology Group, Inc. Method and system for load balancing and management
US6816905B1 (en) 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US6922832B2 (en) * 2000-12-12 2005-07-26 Lockheed Martin Corporation Execution of dynamic services in a flexible architecture for e-commerce
US7113993B1 (en) * 2001-06-20 2006-09-26 Microstrategy, Inc. Technique for handling server session requests in a system having a plurality of servers
US7373644B2 (en) * 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
JP3969089B2 (ja) * 2001-12-25 2007-08-29 株式会社日立製作所 階層構成サーバシステム
US7225464B2 (en) 2002-04-03 2007-05-29 Yodlee.Com, Inc. Method for verifying the identity of a user for session authentication purposes during Web navigation
US8275889B2 (en) * 2002-06-10 2012-09-25 International Business Machines Corporation Clone-managed session affinity
US7676576B1 (en) * 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US20040267897A1 (en) * 2003-06-24 2004-12-30 Sychron Inc. Distributed System Providing Scalable Methodology for Real-Time Control of Server Pools and Data Centers
US20090299791A1 (en) * 2003-06-25 2009-12-03 Foundry Networks, Inc. Method and system for management of licenses
US20050027862A1 (en) 2003-07-18 2005-02-03 Nguyen Tien Le System and methods of cooperatively load-balancing clustered servers
EP1790131B1 (en) * 2004-09-09 2012-12-05 Avaya Inc. Methods of and systems for network traffic security
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology
US20060153068A1 (en) * 2004-12-17 2006-07-13 Ubiquity Software Corporation Systems and methods providing high availability for distributed systems
US7555484B2 (en) * 2005-01-19 2009-06-30 Microsoft Corporation Load balancing based on cache content
JP2006293885A (ja) * 2005-04-14 2006-10-26 I Broadcast:Kk 情報配信システムと方法およびプログラム
JP4961146B2 (ja) * 2006-02-20 2012-06-27 株式会社日立製作所 負荷分散方法およびシステム
US8260940B1 (en) 2007-06-29 2012-09-04 Amazon Technologies, Inc. Service request management
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US8090847B2 (en) * 2008-05-02 2012-01-03 Microsoft Corporation Session broker extensibility application program interface
US8291481B2 (en) * 2007-09-18 2012-10-16 Microsoft Corporation Sessionless redirection in terminal services
US8316101B2 (en) * 2008-03-15 2012-11-20 Microsoft Corporation Resource management system for hosting of user solutions
US8539565B2 (en) * 2008-03-21 2013-09-17 Microsoft Corporation Load balancing in server computer systems
US9396042B2 (en) * 2009-04-17 2016-07-19 Citrix Systems, Inc. Methods and systems for evaluating historical metrics in selecting a physical host for execution of a virtual machine
US8949408B2 (en) * 2009-12-18 2015-02-03 Microsoft Corporation Session monitoring of virtual desktops in a virtual machine farm
US8984142B2 (en) * 2009-12-30 2015-03-17 Mckesson Financial Holdings Methods, apparatuses and computer program products for facilitating remote session pooling
US8887172B2 (en) * 2009-12-31 2014-11-11 Microsoft Corporation Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds
EP2692092B1 (en) * 2011-03-28 2014-12-17 Citrix Systems Inc. Systems and methods for tracking application layer flow via a multi-connection intermediary device
US8631131B2 (en) * 2011-09-07 2014-01-14 Red Hat Israel, Ltd. Virtual machine pool cache
US20130093776A1 (en) * 2011-10-14 2013-04-18 Microsoft Corporation Delivering a Single End User Experience to a Client from Multiple Servers
EP2909734A4 (en) * 2012-10-22 2016-06-15 Cassidian Communications Inc GROUPED MEETING MANAGEMENT

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102396287A (zh) * 2009-04-16 2012-03-28 微软公司 瘦客户机会话管理
US20110078318A1 (en) * 2009-06-30 2011-03-31 Nitin Desai Methods and systems for load balancing using forecasting and overbooking techniques
CN102404384A (zh) * 2010-09-30 2012-04-04 微软公司 统一重新连接至多个远程服务器

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017162003A1 (zh) * 2016-03-25 2017-09-28 华为技术有限公司 一种会话监控的方法、装置和系统
CN107231401A (zh) * 2016-03-25 2017-10-03 华为技术有限公司 一种会话监控的方法、装置和系统
US10785309B2 (en) 2016-03-25 2020-09-22 Huawei Technologies Co., Ltd. Session monitoring method, apparatus, and system
CN108769196A (zh) * 2018-05-29 2018-11-06 新华三信息安全技术有限公司 一种会话创建方法及装置
CN108769196B (zh) * 2018-05-29 2021-07-09 新华三信息安全技术有限公司 一种会话创建方法及装置

Also Published As

Publication number Publication date
WO2014137762A1 (en) 2014-09-12
US20140258534A1 (en) 2014-09-11
EP2965203B1 (en) 2017-08-30
US10021042B2 (en) 2018-07-10
EP2965203A1 (en) 2016-01-13
US10547564B2 (en) 2020-01-28
US20180375793A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
CN105144108A (zh) 远程主机上的进程的基于服务的负载平衡管理
CN102396287B (zh) 瘦客户机会话管理的方法和设备
US10097649B2 (en) Facilitating location of and interaction with a convenient communication device
CN107852416A (zh) 监测计算机网络连接的生命周期
CN107111725A (zh) 在输入理解系统中保护私有信息
CN105308615A (zh) 在应用空闲时间段期间保护所显示电子内容以防止未授权访问
KR20150107754A (ko) 사용자 생성 지식을 통한 협력 학습 기법
US10506089B2 (en) Notification bot for topics of interest on voice communication devices
CN102968296A (zh) 在没有web托管知识的情况下使用基于云的无摩擦数据库来创建web应用
US8689243B2 (en) Web service API for unified contact store
JP6450765B2 (ja) データをバックアップするための方法および装置並びに電子装置
CN112016068A (zh) 账户控制方法、装置、设备和计算机可读存储介质
CN104115187A (zh) 远程桌面协议中的视频检测
US20140115514A1 (en) User-specific mobile computing device resource management
CN109891406A (zh) 多级数据分页
CN108885557A (zh) 分批的任务
CN104603752A (zh) 跨平台共享应用代码
US10091250B2 (en) Proxy persona to aid facilitation of capturing information on behalf of an end user during real time collaboration
CN104699535B (zh) 一种信息处理方法及电子设备
US10592689B2 (en) Selective container use for device usage sessions
TW202037142A (zh) 語音通話錄音方法、即時通訊裝置及電腦程式產品
US10740124B1 (en) Collaborative computer-implemented virtual platform
US20220358914A1 (en) Operational command boundaries
CN102930368B (zh) 容错外部应用服务器
US10075480B2 (en) Notification bot for topics of interest on voice communication devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20151209

RJ01 Rejection of invention patent application after publication