用于移动云服务的本地代理的利记博彩app

文档序号:10541137阅读:289来源:国知局
用于移动云服务的本地代理的利记博彩app
【专利摘要】公开了用于公司网络防火墙内的代理设备的系统、设备和方法,以便发起与基于云的网关的HTTP连接,然后将该连接升级为WebSockets协议,以便具有交互式会话。经这种交互式会话,连接到基于云的中介的移动设备可以从公司防火墙内部的服务器请求数据。因为防火墙是利用HTTP协议(具有WebSockets)被遍历的,所以它能够像让员工从公司网络的内部浏览web一样安全。
【专利说明】用于移动云服务的本地代理
[0001] 对相关申请的交叉引用
[0002] 本申请要求于2014年2月7日提交的美国临时专利申请No. 61 /937,316的权益,其 全部通过引用被结合于此,用于所有目的。
【背景技术】
[0003] 在公司的服务器上运行的公司的企业应用通常由员工的工作计算机访问。工作计 算机由公司的信息技术(IT)部门维护,并且配置被严格控制。工作计算机,诸如膝上型计算 机或台式工作站,插入办公室网络插孔或登录到加密的无线网络集线器。所有的设备、计算 机和服务器由一个或多个防火墙保护不受互联网影响。
[0004] 用户越来越多地需要在路上、家里或在公司的办公室以外的其它地区的时候对公 司数据的访问。例如,公司的销售人员有时希望他们在旅行时从公司的服务器访问联系人 列表和其它戒备森严的专有数据。IT部门已经发展到配发他们维护的公司自有的移动设 备。这不仅包括他们已经支持了一段时间的膝上型计算机,而且还有上网本和智能电话。
[0005] 由于一般而言消费类电子产品的价格不断下降,用户常常购买比他们公司提供的 更新款的智能电话和计算机。其结果是,用户的个人电子设备常常比由公司的IT部门提供 的那些更强大。利用他们自己的设备上可用的比其公司配发的更大的处理能力、存储器和 带宽,一些用户选择使用他们自己的设备来处理许多否则将在公司配发的设备上执行的公 司职能。
[0006] 首席信息官(CIO)可能对他或她的员工的个人BY0D (自带设备)移动电子设备访问 公司服务器有所畏惧。来自用户被恶意软件感染的移动设备的安全漏洞的威胁实在是太巨 大。然而,不必购买或维护用户想要以任何方式使用的另一用户设备的诱惑是有前途的。
[0007] 在本领域中存在利用员工自己的移动设备安全访问公司的企业应用服务器上的 数据的需求。

【发明内容】

[0008] -般而言,描述了公司的防火墙内部并内部连接到公司服务器的代理设备,该代 理设备还安全地连接到移动设备与之连接的外部的、基于云的网关。内部受控的代理启动 利用超文本传输协议(HTTP)与外部的基于云的网关的通信,然后为了更具交互性的功能而 把连接升级到WebSockets协议。
[0009] 代理可以依赖于一天的时间和其它设置从基于云的网关自动更新它自己的软件。 例如,可以存在可能不发生更新的时间窗口。而且,如果发生更新并且不成功,则它可以回 滚到先前的版本。
[0010] 本发明的一些实施例涉及促进对企业计算机网络的非现场访问的方法。该方法包 括从在企业网络上的防火墙后面的计算机上执行的代理发起与防火墙之外基于云的网关 的超文本传输协议(HTTP)连接,将HTTP连接升级为WebSocket协议连接,经WebSocket协议 连接在代理处从网关接收对数据的请求,在代理处将请求重新格式化为HTTP请求,从代理 向企业网络上的服务器发送该HTTP请求,在代理处从服务器接收对HTTP请求的响应,在代 理处基于来自服务器的响应创建WebSocket响应,以及从代理经到网关的WebSocket协议连 接发送WebSocket响应。
[0011] HTTP连接到WebSocket协议连接的升级可以由HTTP连接的发起自动触发。该方法 可以包括在基于云的网关处从移动设备接收请求,在网关处将来自移动设备的请求重新格 式化为对经WebSocket协议的数据的请求,在网关处从代理接收WebSocket响应,在网关处 根据来自代理的WebSocket响应创建启用云的响应,以及向移动设备发送该启用云的响应。
[0012] 该方法可以包括在发送WebSocket响应之前由代理将来自服务器的响应打包成 WebSocket响应的串、二进制对象或ArrayBuffer。服务器可以是本地网络服务器,和/或服 务器可以运行企业应用。WebSocket连接可以是安全WebSocket连接。
[0013]该方法可以包括由具有基于云的网关的代理检查代理软件的更新,向代理下载软 件更新,以及在代理处安装所下载的软件更新。该方法还可以包括确定对于软件更新可接 受的或不可接受的时间窗口,以及基于所确定的时间窗口执行检查、下载或安装。该方法可 以包括将所下载的软件更新的安装回滚到代理软件的一个版本。
[0014] 还有其它实施例涉及采用或存储用于上述方法的指令的系统和机器可读有形存 储介质。
[0015] 本概述并不意在识别要求保护的主题的关键或必要特征,也不意在孤立地被用来 确定要求保护的主题的范围。主题应当参照本专利的整个说明书的适当部分、任何或全部 附图以及每项权利要求来理解。
【附图说明】
[0016] 图1示出了根据实施例的部件模型。
[0017] 图2示出了根据实施例的移动云服务的部件的集成服务。
[0018] 图3示出了根据实施例的本地环境中的聚合服务。
[0019] 图4是根据实施例的序列图。
[0020] 图5是示出根据实施例的过程的示例流程图。
[0021] 图6绘出了用于实现其中一种实施例的分布式系统的简化图。
[0022] 图7示出了根据本公开的实施例的、实施例系统的组件提供的服务可以作为云服 务被提供的系统环境的组件的简化框图。
[0023]图8示出了本发明的各种实施例可以在其中实现的示例性计算机系统。
[0024]图9是根据实施例的代理的框图。
[0025]图10是示出根据实施例、在基于云的网关中的过程的示例流程图。
[0026]图11是根据实施例的基于云的网关的框图。
【具体实施方式】
[0027] 一般而言,实施例涉及在公司的防火墙后面的代理服务器发起经由HTTP协议(通 常是端口 80,但可以是任何端口范围)与可信云中的网关服务器的连接,然后将该连接升级 为websocket协议。利用已建立的双向WebSocket连接,在公司的防火墙之外的移动设备与 公司的服务器之间的通信被促进。
[0028] "WebSocket协议"由互联网工程任务组(IETF)标准化为(请求注解)RFC 6455,或 者如本领域中另外已知的。
[0029]与其它协议相反,使用WebSocket协议的技术优势是其与HTTP的相似性,这允许 WebSocket分组通过企业网络防火墙,而无需防火墙、网络等的进一步配置。如果首席技术 官允许他或她的员工从企业网络的计算机访问web(利用随处可见的HTTP协议),则使用 WebSockets允许通信没有太大的飞跃。毕竟,将流量限制到与HTTP类似的程度不允许黑客 轻易接手受保护网络服务器的完全、管理控制。WebSocket协议在集中的、大型多人在线 (ΜΜ0)游戏中使用,在那里它是可靠和安全的。它允许计算机之间几乎实时的通信,使得它 非常适合于视频游戏产业。几乎实时的通信对于企业网络可能没有必要,但WebSockets给 出的安全性对企业网络是有利的,否定了围绕防火墙的许多传统黑客渠道。
[0030] 一般用例
[0031] 从云访问的企业应用可以包括Oracle软件即服务(SaaS)和平台即服务(PaaS)资 产,诸如具有定制扩展的OracleFusion客户资源管理(CRM)、把811丨1'1〇¥、1316〇和3333人力资 本管理(HCMhSaaS HCM可以包括企业名录、工人肖像、审批、招聘、简历筛选、目标和候选人 筛选。
[0032] 公司本地资产可以包括运行多个厂商的应用的服务器应用。一些资产可以包括 Oracle电子商务套件,包括服务订单、运输、快捷产品生命周期管理(PLM)、请求状态,以及 订单。Siebel CRM包括医药销售生命科学、医药销售代表、机会、服务订单服务请求状态、零 售执行消费品、TPM消费品、联系人,以及现场服务。PeopleSoft应用可以包括用于费用、申 请、审批和公司目录的那些。JD Edwards应用可以包括用于费用、申请和采购订单(P0)审批 的那些。
[0033] 第三方SaaS资产可以包括来自salesforce. com,Amazon托管的服务,诸如EC2(计 算)、S3(存储)、简单通知服务(SNS)和Beanstalk、Google,诸如AppEngine/计算引擎、云存 储,地图(方向、距离矩阵、海拔、地理编码、时区、地方)、应用(日历、任务、Gmail、联系人、驱 动器、电子表格、网站)、G 〇〇gle+,以及商业(购物、支付和钱包)以及NEST。仅移动或移动优 先的资产可以为数据存储,包括关系、文件/L0B,和非SQL/非结构化的,以及为应用用户简 档信息,而创建。
[0034]连接性用例
[0035] 移动云服务可以调用本地S0AP/XML(WSDL)服务。例如,移动云服务可以向移动客 户端暴露内部电子商务套件订单条目功能。移动客户端可以使用JS0N(JavaScript对象符 号)与由移动云服务暴露的移动应用编程接口(mAPI)进行交互,这在本地连接之前进行数 据翻译。
[0036] 移动云服务可以调用本地表述性状态转移(REST) (JS0N/XML)服务。例如,员工自 助服务应用可以利用S0A体系架构是启用REST的。当连接到公司内联网时,应用可以被员工 使用。移动客户端可以使用JS0N来与由移动云服务暴露的mAPI进行交互,这组成多个REST 调用,以便为移动客户端提供单页UI(用户界面)。
[0037]事件(XML等)传播可以从本地应用到移动云服务来促进。例如,当连接到内联网 时,内部招聘门户可以让员工可用。当员工找工作时,通知可以被发送到招聘经理的移动设 备(具有关于
【申请人】的的经验的基本信息)。申请事件从本地招聘应用传播到移动云服务, 其通知经理的移动客户端应用(例如,在对JSON翻译执行XML之后)。
[0038](由可扩展标记语言(XML)等定义的)事件的传播可以从云到本地应用来促进(除 了移动客户端)。例如,在Oracle销售云中创建的lead可以与用于活动管理的Siebel CRM (客户关系管理)(异步地)被同步。此外,lead也可以被推到在境内的销售代表的移动设备 (基于订阅)。
[0039] 从移动云服务到本地应用移动文件(例如,文档、图像)可以被促进。例如,在移动 客户端上被扫描并附连到费用报告移动应用的账单可以被本地存储,使得第三方提供商可 以利用现有的本地基于Web的应用验证账单。此前的费用报告可以利用仅在连接到内联网 时可用的基于Web的应用提交。它也可以从移动客户端到移动云服务(MCS)被建模为带附件 的JS0N。在这种情况下,移动云服务可以利用基于云的存储服务将附件存储为文件,然后把 文件从云移动到本地存储服务器。
[0040] 其它连接性用例包括从本地应用到移动云服务移动文件、从移动云服务到本地应 用移动文件批,以及从本地应用到移动云服务移动文件批。
[0041 ]执行流例子
[0042] 在例子中,在云中的应用可以从本地环境调用REST WebService。来自云的客户端 从网关调用REST服务,例如:
[0043] http://mygateway.oraclecloud.com/mypremise_com/service_name [0044] 该调用被传送到本地,并且代理调用真正的服务,例如:
[0045] http://mypremise.com/service_name
[0046] 代理处理响应并且将响应传送到云。网关为客户端提供响应。这些步骤为服务和 客户端都提供了调用的透明性。
[0047] 在另一个例子中,事件在云中生成并被传播到本地环境。本地服务调用:
[0048] http://mypremise.com/event_handler
[0049] 这预期在事件的情况下被调用。这个服务的网关表示
[0050] http://mygateway.oraclecloud.com/mypremise_com/event_handler
[0051] 在云应用中被注册为事件处理程序。当事件发生时,服务:
[0052] http: //mygateway · oraclecloud · com/mypremise_com/event_handler 被调用。
[0053] 在又一个例子中,事件在本地环境中生成并且被传播到云。假设事件通过以下被 处理:
[0054] http://oraclecloud.com/event_from_enterprise_handler [0055] 本地应用调用:
[0056] http://myagent.mypremise.com/oraclecloud_com/event_from-enterpri se_ handler
[0057] 这个调用被传送到云,并且网关调用真正的服务:
[0058] http://oraclecloud.com/event_from_enterprise_handler
[0059]在另一个例子中,大量的数据从云被传送到本地系统。假设数据通过以下被处理:
[0060] http://mypremise.com/upload-service
[0061] 除HTTP POST用于文件上载之外,步骤与上面指出的第一个例子中相同。
[0062]另一个例子是用于数据从本地被流传输到云。来自云的客户端调用来自网关的服 务,例如:
[0063] http: //my gateway · oraclec loud · com/mypremise_com/media_str earning 这个调 用被传送到本地(通过WebSockets协议)并且代理调用真正的服务:
[0064] http://mypremise.com/media_streaming
[0065]代理处理响应并将其传送到云。网关为客户端提供响应。在HTTP内部工作的任何 流协议都可以运行良好。
[0066] 移动云服务(MCS)
[0067]术语"连接性"在这里表示集成的低级、基本部分,或者如本领域中另外已知的。它 可以是云和本地环境端之间的简单桥梁,它可以在两个方向上中被同步(例如,云到本地和 反过来),事务传播或补偿动作、协议翻译、数据变换、服务编排/聚合,以及消息序列化/并 行化可能不全都是连接性的一部分。
[0068]图1示出了根据实施例的部件模型。在系统100中,基于云的系统102利用HTTP通过 互联网104与本地系统106连接。
[0069]网关108作为云服务可用,而作为部署节点的代理110可以对本地部署用作软件、 虚拟或硬件设备。
[0070] 代理110到网关108的部署关系可被表征为多对多。一个基于云的网关实例可以接 受来自多个代理实例的连接(并行地)。一个代理实例可以连接到若干个网关实例(并行 地)。
[0071] 代理到服务和网关到服务协议栈可以是对称的(不一定相等,因为它们具有相同 的顶层协议)。在一些设计中,所有企业服务都可以作为Web服务暴露。云可以限制到HTTP (S) (即,安全HTTP)的任何外部通信。
[0072] 代理到网关的通信协议限制代理通过既明确又透明的web代理服务器工作。从代 理到网关的通信信道经过公共网络(例如,互联网104)并且因此应当受到保护。在纯HTTP之 上的内容保护是可能的,但与行业标准的HTTPS相比可能毫无优势可言。
[0073] WebSocket是在数据和HTTP协议之间使用的合适协议。Comet也可能工作,诸如"长 轮询"和"HTTP流化"。
[0074]在图中,传送信道监听器是客户端模块,该模块与网关108建立连接并以异步模式 经这种双向传送信道执行数据交互。
[0075] HTTP监听器116监听来自企业系统的传入HTTP请求并将HTTP请求发送到网关108。 它同步地返回给定的响应。
[0076] HTTP翻译器118从网关接收HTTP请求并将HTTP请求转发到企业服务。它同步地将 给定的响应返回到网关。
[0077]同步模块120在数据分组排队之上执行同步逻辑。它为HTTP翻译器提供同步(请 求/响应)API并且为传送信道客户端提供异步API(发送/接收)。
[0078] 生命周期管理器122执行自我维护、监视和远程管理任务并且负责代理特征,就像 零停机时间、零维护成本及其它。
[0079]访问控制124和126是用于云到服务访问控制的本地策略储存器和设备。
[0080]在网关108中,传送信道监听者114监听来自代理110的传入连接并且以异步模式 经这种双向传送信道执行数据交互。
[0081 ] HTTP监听器130监听来自云系统的传入HTTP请求并将送HTTP请求发送到代理110。 它同步地返回给定的响应。
[0082] HTTP翻译器124从代理接收HTTP请求并将HTTP请求转发到云服务102。它同步地将 给定的响应返回到代理。
[0083]同步模块120在数据分组排队之上执行同步逻辑。它为HTTP翻译器提供同步(请 求/响应)API并且为传送信道客户端提供异步API(发送/接收)。
[0084] 访问控制126是用于云到服务和企业到服务访问控制的远程策略储存器和设备。 [0085]配置管理器128是用于连接性管理的云存储和管理接口(API或UI或二者)。
[0086]图2示出了根据实施例、作为移动云服务的部件的集成服务。在系统200中,移动云 服务202在云中、在防火墙后面,并且它可以充当移动设备224和本地旧式系统216之间的接 □ 〇
[0087]移动设备224通过mAPI (移动应用编程接口)208通信,该接口将其消息转发到支持 服务204。支持服务204将消息发送到集成服务206,其包括连接器210。连接器210与网关212 耦合。
[0088]移动云服务202在网关212处将来自移动设备224的请求重新格式化为符合 WebSocket协议的消息。网关212从本地企业网络接收符合胃6&5〇〇1^1:协议的响应并从该响 应创建启用云的响应,以发送到移动设备。
[0089]在旧式系统的本地地理位置,代理222可以在到公共网络214的防火墙后面的计算 机上执行。代理222从网关212接收对数据的请求,将请求重新格式化成用于旧式系统216的 HTTP请求,并且使用服务1 218提供对请求的响应。一旦来自服务的响应在代理222被接收, 代理222就利用由服务提供的信息创建符合WebSocket协议的响应,以便发送回网关212。然 后网关212可以将数据重新翻译成HTTP格式,以便发送回移动设备224。服务2 220也可以与 服务1 218结合使用,或单独使用。
[0090]图3示出了根据实施例的本地环境中的聚合服务。这个图包括本地聚合服务326, 通过其,代理222与旧式系统216的服务1 218和服务2 220通信。
[0091]所提出的方法是"抓住" HTTP数据分组(请求和响应),将HTTP分组(请求和响应)传 送到另一侧并以有限和明确的一组修改转发HTTP数据分组(请求和响应):
[0092] ?请求URL(统一资源定位符)_依赖于选定的数据路由配置设计,URL的一些部分 可能会被重写(主机/端口部分或请求路径或二者hURL重写应当是翻译请求的主要机制: [0093] ?到网关的HTTP请求到到企业服务的HTTP请求。
[0094] ?到代理的HTTP请求到到云服务的HTTP请求。
[0095] ?请求/响应报头-应当保持不变地被传送和转发。
[0096] ?请求/响应主体-应当保持不变地被传送和转发。
[0097] ?请求证书-对于每个核心HTTP(主要是基本访问认证)和相关的(像OAuth)认证 方法。
[0098]作为数据传送容器,最性能高效的格式可以自由地被选择(XML、JS0N、BS0N(二进 制JS0N)等),如果它是由最终选定的代理到网关通信技术可以接受的话(一些已知的备选 方案具有已知的局限性,即,XML-仅数据传送)。
[0099]与服务编排解决方案的使用
[0100]事务传播或补偿动作、协议翻译、数据变换、服务编排/聚合、消息序列化/并行化 不是全都是连接性的一部分,但它们可以通过组合所提供的解决方案与特定的解决方案来 实现。这些解决方案可以在云中和本地都部署。
[0101]系统起动例子
[0102] 1.当在本地系统的代理建立时,它利用HTTP/HTTPS代理连接到网关并且在代理和 网关之间建立WebSocket连接。这个连接将被用于在两个方向传送数据。
[0103] 2.代理从网关下载其自己的配置,包括过滤器、访问控制列表,以及更新可用性。
[0104] 3.在起动后,网关监听云中的传入的HTTP调用并且代理监听在本地环境中传入的 HTTP调用。
[0105] 云中的应用从本地环境调用REST web服务。
[0106] 1.客户端(C)对网关,端点Gateway_El,进行HTTP调用
[0107] 2.监听器接收对地址Gateway_El的请求
[0108] 3.HTTP翻译器将该地址翻译成E1并准备要经传输信道传送的地址、报头和主体。
[0109] 4.同步模块向请求分配唯一ID,把原始线程设成保持并将请求添加到传出队列
[0110] 5.从该队列,请求被传送到代理
[0111] 6.在代理一侧,请求被重构,使地址、报头和主体成为有效的HTTP请求
[0112] 7.对端点E1进行传出的调用
[0113] 8. -旦响应被接收,它就被传送到网关
[0114] 图4是根据实施例的序列图。在过程400中,展示了基于云的网关和本地代理之间 的连接。
[0115] 代理404发起与网关403的HTTP连接408,并且网关403利用服务器连接409作出响 应。"HTTP连接"可以包括安全HTTPS连接。然后代理404请求410将连接升级为WebSocket协 议,并且网关验证连接的升级411。
[0116] 用户数据报协议(UDP)消息,称为数据报,可以与HTTP连接一起用来在网关403和 代理404之间来回发送信息,网关403在云中,并且代理404在企业网络中的防火墙后面。
[0117] 代理404可以是需要最少维护的独立的Java应用。代理可以检查其自己的软件的 更新、下载它,并作为软件更新安装它。
[0118]代理404可以查找或以其它方式确定用于更新其自己的软件的可接受的(或不可 接受的)时间段。例如,星期天凌晨2点可能是可接受的时间,那时候系统上的用户数最少。 作为另一个例子,代理可以确定在代理上加载的使用模式,并且选择存在使用的陡降(dip) 或最小程度的时间,以便寻求软件更新。
[0119]如果关于安装更新存在问题,则代理可以将已下载软件更新的安装回滚到该软件 的先前(或随后)版本。例如,如果软件更新后代理不能马上与基于云的网关403连接,则该 软件更新可被回滚。
[0120]在初始化后的某个时间,移动设备401向基于云的系统406的mAPI 402发送对数据 的请求412。请求被转发到网关403,其重新格式化该请求。
[0121] 重新格式化的请求414从网关403被发送到在公司位置407本地的代理404。代理 404将WebSockets格式翻译成HTTP请求,然后将该HTTP请求415发送到运行企业应用的旧式 服务器405。
[0122] 旧式服务器405向代理404发送HTTP响应416,代理404将其重新格式化为用于 WebSockets。重新格式化的响应417从代理被发送到网关403,网关403将其翻译成原始请求 的格式。响应418从网关403发送到mAPI,mAPI将其作为响应419发送到移动设备401。
[0123] 图5是示出根据一种实施例的过程的示例流程图。这个过程可以在计算机或其它 机器中被自动化。过程可以在软件、固件中进行编码,或者被硬编码为机器可读指令并通过 可以实现该指令的处理器运行。在操作501中,超文本传输协议(HTTP)连接从在企业网络的 防火墙后面的计算机上执行的代理发起,其中基于云的网关在该防火墙之外。在操作502 中,HTTP连接被升级为WebSocket协议连接。在操作503中,来自网关的对数据的请求经 WebSocket协议连接在代理被接收。在操作504中,请求在代理处被重新格式化为HTTP请求。 在操作505中,HTTP请求从代理发送到企业网络上的服务器。在操作506中,对HTTP请求的响 应在代理处从服务器接收。在操作507中,基于来自服务器的响应在代理处创建WebSocket 响应。在操作508中,WebSocket响应经WebSocket协议连接从代理发送到网关。
[0124] 图6绘出了用于实现其中一种实施例的分布式系统600的简化图。在所示出的实施 例中,分布式系统600包括一个或多个客户端计算设备602、604、606和608,这些客户端计算 设备被配置为经一个或多个网络610执行并操作诸如web浏览器、专属客户端(例如,Oracle Forms)等的客户端应用。服务器612可以经由网络610与远程客户端计算设备602、604、606 和608通信耦合。
[0125] 在各种实施例中,服务器612可以适于运行由系统的一个或多个组件提供的一个 或多个服务或软件应用。服务或软件应用可以包括非虚拟和虚拟环境。虚拟环境可以包括 用于虚拟事件、商品展览(tradeshow)、模拟器、教室、购物交流和企业的那些环境,无论是 二维还是三维(3D)表示、基于页面的逻辑环境,或以其它方式。在一些实施例中,这些服务 可以作为基于web的或云服务依据软件即服务(SaaS)模型向客户计算设备602、604、606和/ 或608的用户提供。操作客户端计算设备602、604、606和/或608的用户又可以利用一个或多 个客户端应用与服务器612交互,以利用由这些组件提供的服务。
[0126] 在该图中所绘出的配置中,系统600的软件组件618、620和622被示为在服务器612 上实现。在其它实施例中,系统600的一个或多个组件和/或由这些组件提供的服务也可以 由一个或多个客户端计算设备602、604、606和/或608实现。然后,操作客户端计算设备的用 户可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以在硬件、 固件、软件或其组合中实现。应当认识到的是,各种不同的系统配置是可能的,这些配置可 以与分布式系统600不同。因此,该图中所示的实施例是用于实现实施例系统的分布式系统 的一个例子并且不是要限制。
[0127] 客户端计算设备60 2、604、60 6和/或60 8可以是便携式手持设备(例如, iPhone?、蜂窝电话、iPad?、计算平板、个人数字助理(pda))或可穿戴设备(例如, GoogleGlass?头戴式显示器),运行诸如Microsoft Windows.Mobile?的软件,和/或诸 如i0S、Windows Phone、Android,BlackBerry 10、Palm 0S等各种移动操作系统,并且启用 互联网、电子邮件、短消息服务(SMS)、BlackBerry?或其它的通信协议。客户端计算设 备可以是通用个人计算机,作为例子,包括运行各种版本的Microsoft Windows?、 AppleM.acintosh?:和/或Linux操作系统的个人计算机和/或便携式计算机。客户端计算 设备可以是运行任何各种市售UNIX?或类unix操作系统当中任意一种,包括但不限于 各种GNU/Linux操作系统,诸如像Google Chrome 0S,的工作站计算机。作为替代,或附加 地,客户端计算设备602、604、606和608可以是任何其它电子设备,诸如能够经(一个或多 个)网络610通信的瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有 Kinect?手势输入设备的Microsoft Xbox游戏控制台),和/或个人消息传送设备。
[0128]虽然示例性分布式系统600被示为具有四个客户端计算设备,但任何数量的客户 端计算设备可以被支持。其它设备,诸如具有传感器的设备等,可以与服务器612交互。
[0129 ]分布式系统600中的(一个或多个)网络610可以是本领域技术人员熟悉的、可以利 用各种市售协议当中任意一种支持数据通信的任何类型的网络,其中协议包括但不限于 TCP/IP(传输控制协议/网际协议)、SNA(系统网络体系结构)、IPX(互联网数据包交换)、 AppleTalk,等等。仅仅作为例子,(一个或多个)网络610可以是局域网(LAN),诸如基于以太 网、令牌环等的LAN。(一个或多个)网络610可以是广域网和互联网。它可以包括虚拟网络, 包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线 网络(例如,依据电气和电子学研究所(ieee)8〇2.11协议套件、Bluetooth?和/或任何其 它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
[0130] 服务器612可以由一个或多个通用计算机、专用服务器计算机(作为例子,包括PC (个人计算机)服务器、UNIX?服务器、中档服务器、大型计算机、机架式服务器,等等)、 服务器群、服务器集群,或者任何其它适当的布置和/或组合组成。服务器612可以包括运行 虚拟操作系统的一个或多个虚拟机,或涉及虚拟化的其它计算体系架构。逻辑存储设备的 一个或多个柔性池可以被虚拟化,以维护用于服务器的虚拟存储设备。虚拟网络可以由服 务器612利用软件定义的联网来控制。在各种实施例中,服务器612可以适于运行在前面公 开内容中所描述的一个或多个服务或软件应用。例如,服务器612可以对应于用于执行上面 根据本公开内容的实施例所描述的处理的服务器。
[0131] 服务器612可以运行包括上面讨论的操作系统当中任意一种在内的操作系统,以 及任何市售的服务器操作系统。服务器612还可以运行各种附加的服务器应用和/或中间层 应用当中任意一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI (公共网关接口)服务器、JAVA?服务器、数据库服务器,等等。示例性数据库服务器包括 但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等等可商购的那些。
[0132] 在一些实现中,服务器612可以包括一个或多个应用,以分析和合并从客户端计算 设备602、604、606和608的用户接收的数据馈送和/或事件更新。作为例子,数据馈送和/或 事件更新可以包括,但不限于,Twitter?馈送、Faeeb(K)k?更新或者从一个或多个第三 方信息源和连续数据流接收到的实时更新,其可以包括与传感器数据应用、金融报价机、网 络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关 的实时事件。服务器612还可以包括一个或多个应用,以经由客户端计算设备602、604、606 和608的一个或多个显示设备显示数据馈送和/或实时事件。
[0133] 分布式系统600还可以包括一个或多个数据库614和616。数据库614和616可以驻 留在各个位置。作为例子,数据库614和616中的一个或多个可以驻留在服务器612本地的非 临时性存储介质上(和/或驻留在服务器612中)。作为替代,数据库614和616可以远离服务 器612,并且经基于网络的或专用的连接与服务器612通信。在一组实施例中,数据库614和 616可以驻留在本领域技术人员熟悉的存储区域网络(SAN)中。类似地,用于执行服务器612 所具有的功能的任何必要的文件都可以适当地本地存储在服务器612上和/或远程存储。在 一组实施例中,数据库614和616可以包括适于响应于SQL格式的命令而存储、更新和检索数 据的关系数据库,诸如由Oracle提供的数据库。一个或多个数据库614和616可以包括或实 现为数据库114。
[0134] 图7是根据本公开的实施例的由实施例系统的一个或多个组件提供的服务可以作 为云服务被提供的系统环境700的一个或多个组件的简化框图。在所示出的实施例中,系统 环境700包括一个或多个可以被用户用来与提供云服务的云基础设施系统702交互的客户 端计算设备704、706和708。客户端计算设备可被配置为操作客户端应用,诸如web浏览器、 专用客户端应用(例如,Oracle Forms),或某种其它应用,其可以被客户端计算设备的用户 用来与基础设施系统702交互,以使用由云基础设施系统702提供的服务。
[0135] 应当认识到,该图中所绘出的云基础设施系统702可以具有除绘出的那些之外的 其它组件。另外,图中所绘出的实施例中只是可以结合本发明的实施例的云基础设施系统 的一个例子。在一些其它的实施例中,云基础设施系统702可以具有比图中所示更多或更少 的组件、可以组合两个或更多个组件,或者可以具有组件的不同配置或布置。
[0136] 客户端计算设备704、706和708可以是类似于上面对602、604、606和608所描述的 设备。
[0137] 虽然示例性系统环境700被示为具有三个客户端计算设备,但是任何数量的客户 端计算设备都可以被支持。诸如具有传感器的设备等的其它设备可以与云基础设施系统 702交互。
[0138] (一个或多个)网络710可以促进客户端704、706和708与云基础设施系统702之间 的通信和数据交换。每个网络可以是本领域技术人员熟悉的、可以支持利用任何各种商业 协议的任何类型的网络,包括上面对(一个或多个)网络710所描述的网络。
[0139] 云基础设施系统702可以包括一个或多个计算机和/或服务器,这可以包括以上对 服务器612所描述的服务器。
[0140] 在某些实施例中,由云基础设施系统提供的服务可以包括可以让云基础设施系统 的用户按需使用的服务的托管,诸如在线数据存储和备份解决方案、基于web的电子邮件服 务、托管的办公套件和文档协作服务、数据库处理、管理的技术支持服务等。由云基础设施 系统提供的服务可以动态地扩展,以满足其用户的需求。由云基础设施系统提供的服务的 具体实例在本文中称作为"服务实例"。一般而言,来自云服务提供商系统的、经由诸如互联 网的通信网络对用户可用的任何服务被称为"云服务"。通常,在公共云环境中,构成云服务 提供商的系统的服务器和系统与客户自己的办公场所服务器和系统不同。例如,云服务提 供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订阅和使用应 用。
[0141] 在一些例子中,在计算机网络云基础设施中的服务可以包括对由云供应商提供给 用户的存储、托管数据库、托管web服务器、软件应用或其它服务的受保护的计算机网络访 问,或者如以其它方式在本领域中已知的。例如,服务可以包括通过互联网对云上远程存储 的密码保护的访问。作为另一个例子,服务可以包括用于被联网开发人员私人使用的基于 web服务的托管的关系数据库和脚本语言中间件引擎。作为另一个例子,服务可以包括对在 云供应商的网站上托管的电子邮件软件应用的访问。
[0142] 在某些实施例中,云基础设施系统702可以包括以自助服务、基于订阅、弹性可扩 展、可靠、高可用性并且安全的方式交付给客户的一套应用、中间件和数据库服务产品。这 种云基础设施系统的例子是由本受让人提供的Oracle Public Cloud。
[0143] "大数据"可以在许多层面上和在不同规模由基础设施系统托管和/或操纵。极其 大的数据集可以由分析师和研究人员存储并操纵,以可视化大量数据、检测趋势,和/或以 其它方式与数据进行交互。数十、数百或数千并行连接的处理器可以对这些数据采取行动, 以便呈现它或模拟对数据的外力或它代表什么。这些数据集可以涉及结构化数据,诸如在 数据库中或根据结构化模型以其它方式组织的结构化数据,和/或非结构化数据(例如,电 子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理)。通过充分利用实施例相对 快速地将更多(或更少)计算资源聚焦到目标上的能力,云基础设施系统可以更好地可用于 基于来自企业、政府机构、研究机构、私营个体、意见相同的个人或组织,或其它实体的需求 对大数据集执行任务。
[0144] 在各种实施例中,云基础设施系统702可以适于自动供给、管理和跟踪客户对由云 基础设施系统702提供的服务的订阅。云基础设施系统702可以经由不同的部署模型提供云 服务。例如,服务可以根据公共云模型来提供,其中云基础设施系统702由销售云服务的组 织拥有(例如,被Oracle拥有)并且使得服务对一般公众和不同行业的企业可用。作为另一 个例子,服务可以根据私有云模型来提供,其中云基础设施系统702只为单个组织运营并且 可以为该组织内的一个或多个实体提供服务。云服务也可以根据社区云模型来提供,其中 云基础设施系统702和由云基础设施系统702提供的服务被相关社区中的若干个组织共享。 云服务也可以根据混合云模型来提供,它是两种或更多种不同模型的组合。
[0145] 在一些实施例中,由云基础设施系统702提供的服务可以包括根据软件即服务 (SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务的其它 服务类别提供的一个或多个服务。客户经由订阅订单可以订阅由云基础设施系统702提供 的一个或多个服务。云基础设施体系702然后执行处理,以提供在客户的订阅订单中的服 务。
[0146] 在一些实施例中,由云基础设施系统702提供的服务可以包括但不限于,应用服 务、平台服务和基础设施服务。在一些实例中,应用服务可以经由SaaS平台由云基础设施系 统提供。SaaS平台可被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成 开发和部署平台上构建和交付一套按需应用的能力。SaaS平台可以管理和控制用于提供 SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基 础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可 以提供各种不同的SaaS服务。例子包括但不限于,提供用于大型企业的销售绩效管理、企业 整合和业务灵活性的解决方案的服务。
[0147] 在一些实施例中,平台服务可以经由PaaS平台由云基础设施系统提供。PaaS平台 可被配置为提供属于PaaS类别的云服务。平台服务的例子可以包括但不限于,使组织(诸如 Oracle)能够在共享、公共的体系架构上整合现有应用,以及利用由平台提供的共享服务构 建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设 施。客户可以获得由云基础设施系统提供的PaaS服务,而无需客户购买单独的许可和支持。 平台服务的例子包括但不限于,Oracle Java云服务(Oracle Java Cloud Service,JCS)、 Oracle数据库云服务(Oracle Database Cloud Service,DBCS)以及其它服务。
[0148] 通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语 言和工具并且也可以控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台 服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和 Java云服务。在一种实施例中,数据库云服务可以支持使组织能够集中数据库资源并且以 数据库云的形式为客户提供数据库即服务的共享服务部署模型。中间件云服务可以为客户 提供平台来开发和部署各种商业应用,并且Java云服务可以为客户提供在云基础设施系统 中部署Java应用的平台。
[0149] 各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服 务促进对诸如存储、网络和其它基本计算资源的底层计算资源的管理和控制,以便让客户 利用由SaaS平台和PaaS平台提供的服务。
[0150]在某些实施例中,云基础设施系统702也可以包括用于提供用来向云基础设施系 统的客户提供各种服务的资源的基础设施资源730。在一种实施例中,基础设施资源730可 以包括诸如服务器、存储和网络资源的硬件的预先集成和优化组合,以便执行由PaaS平台 和SaaS平台提供的服务。
[0151] 在一些实施例中,在云基础设施系统702中的资源可以被多个用户共享并且动态 地按需重新分配。此外,资源可以被分配给在不同时区的用户。例如,云基础设施系统730可 以使在第一时区的第一组用户能够利用云基础设施系统的资源指定的小时数,并且然后使 相同资源重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
[0152] 在某些实施例中,可以提供由云基础设施系统702的不同组件或模块以及由云基 础设施系统702提供的服务共享的多个内部共享服务732。这些内部共享服务可以包括,但 不限于,安全和身份服务、集成服务、企业信息库服务、企业管理服务、病毒扫描和白名单服 务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传 输服务,等等。
[0153] 在某些实施例中,云基础设施系统702可以提供在云基础设施系统中云服务(例 如,SaaS、PaaS和IaaS服务)的综合管理。在一种实施例中,云管理功能可以包括用于供给、 管理和跟踪由云基础设施系统702接收到客户的订阅等能力。
[0154]在一种实施例中,如该图中所绘出的,云管理功能可以由一个或多个模块提供,诸 如订单管理模块720、订单编制模块722、订单供给模块724、订单管理和监视模块726、以及 身份管理模块728。这些模块可以包括一个或多个计算机和/或服务器或者利用一个或多个 计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服 务器计算机、服务器农场、服务器集群、或任何其它适当的布置和/或组合。
[0155]在示例性操作734中,使用客户端设备,诸如客户端设备704、706或708,的客户可 以通过请求由云基础设施系统702提供的一个或多个服务和针对由云基础设施系统702提 供的一个或多个服务下订阅订单来与云基础设施系统702交互。在某些实施例中,客户可以 访问云用户界面(UI)、云UI 712、云UI 714和/或云UI 716并且经由这些UI下订阅订单。响 应于客户下订单而被云基础设施系统602接收到的订单信息可以包括识别客户和客户想要 订阅的由云基础设施系统702提供的一个或多个服务的信息。
[0156] 在客户下订单之后,订单信息经由云UI 712、714和/或716被接收。
[0157] 在操作736,订单被存储在订单数据库718中。订单数据库718可以是由云基础设施 系统718操作并且结合其它系统元素一起操作的若干个数据库之一。
[0158]在操作738,订单信息被转发到订单管理模块720。在一些情况下,订单管理模块 720可被配置为执行与订单相关的计费和记帐功能,诸如验证订单,以及在验证后预订订 单。
[0159] 在操作740,关于订单的信息被传送到订单编制模块722。订单编制模块722可以利 用订单信息来编制用于由客户所下订单的服务和资源的供给。在一些情况下,订单编制模 块722可以编制资源的供给,以利用订单供给模块724的服务支持订阅的服务。
[0160] 在某些实施例中,订单编制模块722使得能够管理与每个订单相关联的业务流程 并且应用业务逻辑,以确定订单是否应该继续供给。在操作742,当接收到针对新订阅的订 单时,订单编制模块722发送请求到订单供给模块724,以分配资源和配置履行订阅订单所 需的那些资源。订单供给模块724使得能够分配用于客户订阅的服务的资源。订单供给模块 724在由云基础设施系统700提供的云服务和用于为了提供所请求的服务供给资源的物理 实现层之间提供一层抽象。订单编制模块722可以因此与实现细节隔离,诸如服务和资源是 实际上在运行中被供给还是预先被供给并且只在请求时被分配/指定。
[0161]在操作744,一旦服务和资源被供给,所提供的服务的通知就可以通过云基础设施 系统702的订单供给模块724发送给在客户端设备704、706和/或708的客户。
[0162] 在操作746,客户的订阅订单可以被订单管理和监视模块726管理和跟踪。在一些 情况下,订单管理和监视模块726可被配置为收集订阅订单中的服务的使用统计数据,诸如 使用的存储量、传送的数据量、用户的数量、以及系统上线时间和系统停机时间的量。
[0163] 在某些实施例中,云基础设施系统700可以包括身份管理模块728。身份管理模块 728可被配置为提供身份服务,诸如在云基础设施系统700中的访问管理和授权服务。在一 些实施例中,身份管理模块728可以控制关于希望利用由云基础设施系统702提供的服务的 客户的信息。这种信息可以包括验证这种客户的身份的信息和描述这些客户被授权哪些行 为来相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段、等等)执行的信息。 身份管理模块728也可以包括关于每个客户的描述性信息和关于描述性信息可以如何以及 由谁来访问和修改的管理。
[0164] 图8示出了其中可以实现本发明的各种实施例的示例性计算机系统800。计算机系 统800可以被用来实现上述任何计算机系统。如该图中所示出的,计算机系统800包括经由 总线子系统802与多个外围子系统通信的处理单兀804。这些外围子系统可以包括处理加速 单元806、1/0子系统808、存储子系统818和通信子系统824。存储子系统818包括有形计算机 可读存储介质822和系统存储器810。
[0165] 总线子系统802提供了用于让计算机系统800的各种组件和子系统按意图彼此通 信的机制。虽然总线子系统802被示意性地示为单条总线,但是总线子系统的备选实施例可 以利用多条总线。总线子系统802可以是若干种类型的总线结构中的任何一种,包括存储器 总线或存储器控制器、外围总线、以及利用任何各种总线体系结构的局部总线。例如,这种 体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA (EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以被实现 为按IEEE P1386.1标准制造的Mezzanine总线。
[0166] 可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元 804控制计算机系统800的操作。一个或多个处理器可以被包括在处理单元804中。这些处理 器可以包括单核或多核处理器。在某些实施例中,处理单元804可以被实现为一个或多个独 立的处理单元832和/或834,其中在每个处理单元中包括单核或多核处理器。在其它实施例 中,处理单元804也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处 理单元。
[0167] 在各种实施例中,处理单元804可以响应于程序代码执行各种程序并且可以维护 多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代 码可以驻留在(一个或多个)处理器804中和/或存储子系统818中。通过适当的编程,(一个 或多个)处理器804可以提供上述各种功能。计算机系统800可以附加地包括处理加速单元 806,其可以包括数字信号处理器(DSP)、专用处理器,等等。
[0168] I/O子系统808可以包括用户接口输入设备和用户接口输出设备。用户接口输入设 备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动 轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其 它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如 的MicrosoftKineet?运动传感器,其使得用户能够通过利用手势和语音命令的自然用户 接口控制诸如的Microsoft叉b?X?360游戏控制器的输入设备并与之交互。用户接口输入 设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍拍摄照片和/或 做出菜单选择时的"眨眼")并且将眼睛姿势转换为到输入设备(例如,GoogleGhlSS'? )中 的输入的GoogleGlaSS?眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语 音命令与语音识别系统(例如,Siri?导航器)交互的语音识别感测设备。
[0169] 用户接口输入设备也可以包括,但不限于,三维(3D)鼠标、操纵杆或指向棒、游戏 面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放 器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪 和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机 断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以 包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
[0170] 用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非视 觉显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子 显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语"输出设备"的使用意在包括用 于从计算机系统800向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用 户接口输出设备可以包括,但不限于,在视觉上传达文字、图形和音频/视频信息的各种显 示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调 制解调器。
[0171]计算机系统800可以包括包含软件元素、被示为当前位于系统存储器810中的存储 子系统818。系统存储器810可以存储可加载并且可在处理单元804上执行的程序指令,以及 在这些程序执行期间所产生的数据。
[0172] 依赖于计算机系统800的配置和类型,系统存储器810可以是易失性的(诸如随机 存取存储器(RAM))和/或非易失性的(诸如只读存储器(R0M)、闪存存储器,等等hRAM通常 包含可被处理单元80位即访问和/或目前正被处理单元804操作和执行的数据和/或程序 模块。在一些实现中,系统存储器810可以包括多种不同类型的存储器,例如静态随机存取 存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如在启动期间,包含有助于 在计算机系统800的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以 被存储在ROM中。作为例子,但不是限制,系统存储器810也示出了可以包括客户端应用、web 浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序812,程序数据814,以及操 作系统816。作为例子,操作系统816可以包括各种版本的組〇1'〇8〇;^\\ 7||1^0\¥§_''1<,知口16 Madutosh?和/或Linux操作系统、各种商用UNIX?或类UNIX操作系统(包括但不限于 各种GNU/Linux操作系统、GoogleQu^me^^S作系统,等等)和/或诸如i0S、评S? Phone、Android? os、BlaekBerry? 100S 和 paim?OS 操作系统的移动操作系统。
[0173] 存储子系统818也可以提供用于存储提供一些实施例的功能的基本编程和数据结 构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、 指令)可以被存储在存储子系统818中。这些软件模块或指令可以被处理单元804执行。存储 子系统818也可以提供用于存储根据本发明被使用的数据的储存库。
[0174]存储子系统800也可以包括可被进一步连接到计算机可读存储介质822的计算机 可读存储介质读取器820。与系统存储器810-起并且,可选地,与其相结合,计算机可读存 储介质822可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信 息的远程、本地、固定和/或可移动存储设备加存储介质。
[0175] 包含代码或代码的部分的计算机可读存储介质822也可以包括本领域已知或使用 的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传 输的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括有形 的、非临时性计算机可读存储介质,诸如RAM、R0M、电可擦除可编程ROM(EEPROM)、闪存存储 器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘 储存器或其它磁存储设备,或者其它有形的计算机可读介质。当被指定时,这也可以包括非 有形的、临时性计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息 并且可以被计算系统700访问的任何其它介质。
[0176] 作为例子,计算机可读存储介质822可以包括从不可移动的非易失性磁介质读取 或写到其的硬盘驱动器、从可移动的非易失性磁盘读取或写到其的磁盘驱动器、以及从可 移动的非易失性光盘,诸如cdrom、dvd和Blu-Ray?盘或其它光学介质,读取或写到其的 光盘驱动器。计算机可读存储介质822可以包括,但不限于,Zip?驱动器、闪存卡、通用串行 总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质 722也可以包括基于非易失性存储器的固态驱动器(SSD),诸如基于闪存存储器的SSD、企业 闪存驱动器、固态ROM等,基于易失性存储器的SSD,诸如固态RAM、动态RAM、静态RAM,基于 DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。 盘驱动器及其相关联的计算机可读介质可以为计算机系统800提供计算机可读指令、数据 结构、程序模块及其它数据的非易失性存储。
[0177] 通信子系统824提供到其它计算机系统和网络的接口。通信子系统824用作用于从 其它系统接收数据和从计算机系统800向其它系统发送数据的接口。例如,通信子系统824 可以使计算机系统800能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系 统824可以包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,利用蜂窝 电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi (IEEE 802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收 器组件和/或其它组件。在一些实施例中,作为无线接口的附加或者替代,通信子系统824可 以提供有线网络连接(例如,以太网)。
[0178] 在一些实施例中,通信子系统824也可以代表可以使用计算机系统800的一个或多 个用户接收结构化和/或非结构化数据馈送826、事件流828、事件更新830等形式的输入通 {目。
[0179] 作为例子,通信子系统824可被配置为实时地从社交媒体网络和/或其它通信服务 的用户接收数据馈送8 26,诸如TWitter?馈送、Faeebook?更新、诸如丰富站点摘要 (RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
[0180] 此外,通信子系统824也可被配置为接收连续数据流形式的数据,这可以包括本质 上可以是连续的或无界的没有明确终止的实时事件的事件流828和/或事件更新830。产生 连续数据的应用的例子可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具 (例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
[0181] 通信子系统824也可被配置为向一个或多个数据库输出结构化和/或非结构化数 据馈送826、事件流828、事件更新830,等等,这一个或多个数据库可以与耦合到计算机系统 800的一个或多个流式数据源计算机通信。
[0182] 计算机系统800可以是各种类型之一,包括手持便携式设备(例如,iPhone%蜂窝 电话、iPad?计算平板、PDA)、可穿戴设备(例如,Go〇gleG丨ass'?头戴式显示器)、pc、工作 站、大型机、信息站,服务器机架,或任何其它数据处理系统。
[0183] 由于计算机和网络的不断变化的本质,在图中绘出的计算机系统800的描述仅仅 要作为具体的例子。具有比图中绘出的系统更多或更少组件的许多其它配置是可能的。例 如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或它 们的组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连 接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其 它方式和/或方法。
[0184] 图9是根据实施例的代理900的框图。代理900的块可以由硬件、软件或硬件和软件 的组合实现,以执行本发明的原理。在本领域中应当理解,图中所描述的块可以被组合或分 离为子块,以实现如上所述的本发明的原理。例如,第一接收单元903和第二接收单元906可 以集成为一个接收单元。因此,本文的描述可以支持本文所描述的功能块的任何可能的组 合或分离或者进一步定义。
[0185] 如图所示,用于促进对企业计算机网络的异地访问的代理900包括发起单元901、 升级单元902、第一接收单元903、重新格式化单元904、第一发送单元905、第二接收单元 906、创建单元907,以及第二发送单元908。发起单元901可以发起与企业网络上的防火墙之 外的基于云的网关的超文本传输协议(HTTP)连接。代理在防火墙后面的计算机上执行。升 级单元902可以把HTTP连接升级为WebSocket协议连接。第一接收单元903可以经WebSocket 协议连接从网关接收对数据的请求。重新格式化单元904可以把请求重新格式化为HTTP请 求。第一发送单元905可以向企业网络上的服务器(未示出)发送该HTTP请求。第二接收单元 906可以从服务器接收对HTTP请求的响应。创建单元907可以基于来自服务器的响应创建 WebSocket响应。第二发送单元908可以经到网关的WebSocket协议连接发送WebSocket响 应。
[0186] 根据本发明的一些实施例,HTTP连接到WebSocket协议连接的升级可以通过HTTP 连接的发起被自动触发。
[0187] 根据本发明的一些实施例,代理900还可以包括包装单元909。包装单元909可以在 发送WebSocket响应之前将来自服务器的响应包装成WebSocket响应的串、二进制对象或者 ArrayBuffer〇
[0188] 根据本发明的一些实施例,服务器可以是本地web服务器。
[0189 ] 根据本发明的一些实施例,服务器可以运行企业应用。
[0190] 根据本发明的一些实施例,WebSocket连接可以是安全WebSocket连接。
[0191] 根据本发明的一些实施例,代理900还可以包括检查单元910、下载单元911,以及 安装单元912。检查单元910可以利用基于云的网关检查代理软件的更新。下载单元911可以 下载软件更新。安装单元912可以安装所下载的软件更新。
[0192] 根据本发明的一些实施例,代理900还可以包括确定单元913。确定单元913可以确 定对软件更新可接受或不可接受的时间窗口。检查、下载或安装可以基于所确定的时间窗 口来执行。
[0193] 根据本发明的一些实施例,代理900还可以包括回滚单元914。回滚单元914可以将 所下载的软件更新的安装回滚到代理软件的先前版本。
[0194] 图10是示出根据实施例的、在基于云的网关中的过程的示例流程图。这个过程可 以在计算机或其它机器中被自动化。该过程可以在软件,固件中被编码,或者被硬编码为机 器可读指令并通过可以实现该指令的处理器执行。在操作1001中,来自移动设备的请求在 基于云的网关被接收。在操作1002中,来自移动设备的请求在网关被重新格式化为对经 WebSocket协议的数据的请求。在操作中1003中,对数据的请求从网关经WebSocket协议连 接被发送到代理。在操作1004中,WebSocket响应在网关从代理接收。在操作1005中,启用云 的响应在网关根据来自代理的WebSocket响应创建。在操作1006中,启用云的响应被发送到 移动设备。
[0195]根据本发明的一些实施例,WebSocket协议连接可以是安全WebSocket协议连接。 [0196]图11是根据实施例的、基于云的网关1100的框图。如该图所示,基于云的网关1100 包括第一接收单元1101、重新格式化单元1102、第一发送单元1103、第二接收单元1104、仓ij 建单元1105,以及第二发送单元1106。第一接收单元1101可以从移动设备接收请求。重新格 式化单元1102可以将来自移动设备的请求重新格式化为对经WebSocket协议的数据的请 求。第一发送单元1103可以经WebSocket协议连接向代理发送对数据的请求。第二接收单元 1104可以从代理接收?6匕3〇〇1^1:响应。创建单元1105可以根据来自代理的16匕3〇〇1^1:响应创 建启用云的响应。第二发送单元1106可以向移动设备发送启用云的响应。
[0197]根据本发明的一些实施例,WebSocket协议连接可以是安全WebSocket协议连接。
[0198] 在前述的说明书中,本发明的各方面参照其具体实施例进行了描述,但本领域技 术人员将认识到本发明不限于此。上述发明的各个特征和各方面可以被单独或联合使用。 另外,在不背离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些 之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而 不是限制性的。
[0199] 下列的项包括装置。
[0200] 项1.用于促进对企业计算机网络的非现场访问的代理(900),代理包括:
[0201]发起单元(901),被配置为发起与在企业网络上的防火墙外面的基于云的网关的 超文本传输协议(HTTP)连接,代理在防火墙后面的计算机上执行;
[0202]升级单元(902),被配置为用于将HTTP连接升级为WebSocket协议连接;
[0203]第一接收单元(903),被配置为用于经WebSocket协议连接从网关接收对数据的请 求;
[0204]重新格式化单元(904),被配置为用于将请求重新格式化为HTTP请求;
[0205]第一发送单元(905),被配置为用于将HTTP请求发送到企业网络上的服务器;
[0206]第二接收单元(906),被配置为用于从服务器接收对HTTP请求的响应;
[0207] 创建单元(907),被配置为用于基于来自服务器的响应创建WebSocket响应;及
[0208] 第二发送单元(908),被配置为经到网关的WebSocket协议连接发送WebSocket响 应。
[0209]项2.项1所述的代理,其中HTTP连接到WebSocket协议连接的升级由HTTP连接的发 起被自动触发。
[0210] 项3.任何前述项所述的代理,还包括:
[0211] 包装单元(909),被配置为用于在发送WebSocket响应之前将来自服务器的响应包 装成WebSocket响应的串、二进制对象或者ArrayBuffer。
[0212] 项4.任何前述项所述的代理,其中服务器是本地网络服务器。
[0213] 项5.任何前述项所述的代理,其中服务器运行企业应用。
[0214] 项6 .任何前述项所述的代理,其中WebSocket协议连接是安全WebSocket协议连 接。
[0215] 项7.任何前述项所述的代理,还包括:
[0216]检查单元(910),被配置为用于利用基于云的网关检查代理软件的更新;
[0217] 下载单元(911 ),被配置为用于下载软件更新;及
[0218] 安装单元(912),被配置为用于安装所下载的软件更新。
[0219] 项8.项7所述的代理,还包括:
[0220]确定单元(913),被配置为用于确定对于软件更新可接受或不可接受的时间窗口; 及
[0221] 检查、下载或安装是基于所确定的时间窗口执行的。
[0222] 项9.项7或8所述的代理,还包括:
[0223] 回滚单元(914),被配置为用于将所下载的软件更新的安装回滚到代理软件的先 前版本。
[0224] 项10. -种促进对企业计算机网络的异地访问的方法,该方法包括:
[0225] 在基于云的网关从移动设备接收请求;
[0226] 在网关将来自移动设备的请求重新格式化为经WebSocket协议的对数据的请求; [0227] 经WebSocket协议连接从网关向代理发送对数据的请求;
[0228] 在网关从代理接收WebSocket响应;
[0229] 在网关根据来自代理的WebSocket响应创建启用云的响应;及 [0230]向移动设备发送启用云的响应。
[0231 ] 项11.项10所述的方法,其中WebSocket协议连接是安全WebSocket协议连接。
[0232] 项12.-种基于云的网关,包括:
[0233] 第一接收单元,被配置为用于从移动设备接收请求;
[0234] 重新格式化单元,被配置为用于将来自移动设备的请求重新格式化为经 WebSocket协议的对数据的请求;
[0235] 第一发送单元,被配置为用于经WebSocket协议连接从网关向代理发送对数据的 请求;
[0236]第二接收单元,被配置为用于从代理接收WebSocket响应;
[0237] 创建单元,被配置为用于根据来自代理的WebSocket响应创建启用云的响应;及
[0238] 第二发送单元,被配置为用于向移动设备发送启用云的响应。
[0239] 项13 .项12所述的基于云的网关,其中WebSocket协议连接是安全的WebSocket协 议连接。
【主权项】
1. 一种促进对企业计算机网络的非现场访问的方法,该方法包括: 从在企业网络上的防火墙后面的计算机上执行的代理发起与防火墙之外基于云的网 关的超文本传输协议(HTTP)连接; 将HTTP连接升级为WebSocket协议连接; 经WebSocket协议连接在代理处从网关接收对数据的请求; 在代理处将请求重新格式化为HTTP请求; 从代理向企业网络上的服务器发送该HTTP请求; 在代理处从服务器接收对HTTP请求的响应; 在代理处基于来自服务器的响应创建WebSocket响应;及 从代理经到网关的WebSocket协议连接发送WebSocket响应。2. 如权利要求1所述的方法,其中HTTP连接到WebSocket协议连接的升级由HTTP连接的 发起被自动触发。3. 如权利要求1或2所述的方法,还包括: 在基于云的网关处从移动设备接收请求; 在网关处将来自移动设备的请求重新格式化为经WebSocket协议对数据的请求; 在网关处从代理接收WebSocket响应; 在网关处根据来自代理的WebSocket响应创建启用云的响应;及 向移动设备发送该启用云的响应。4. 如权利要求1至3中任何一项所述的方法,还包括: 在发送WebSocket响应之前由代理将来自服务器的响应打包成WebSocket响应的串、二 进制对象或ArrayBuf fer。5. 如权利要求1至4中任何一项所述的方法,其中服务器是本地web服务器。6. 如权利要求1至5中任何一项所述的方法,其中服务器运行企业应用。7. 如权利要求1至6中任何一项所述的方法,其中WebSocket连接是安全WebSocket协议 连接。8. 如权利要求1至7中任何一项所述的方法,还包括: 由具有基于云的网关的代理检查代理软件的更新; 向代理下载软件更新;及 在代理处安装所下载的软件更新。9. 如权利要求8所述的方法,还包括: 确定对于软件更新可接受的或不可接受的时间窗口;及 基于所确定的时间窗口执行所述检查、下载或安装。10. 如权利要求8或9所述的方法,还包括: 将所下载的软件更新的安装回滚到代理软件的先前版本。11. 一种包含指示指令的信息的机器可读非临时性介质,其中指令用于使一个或多个 机器执行操作,所述操作包括: 从在企业网络上的防火墙后面的计算机上执行的代理发起与防火墙之外基于云的网 关的超文本传输协议(HTTP)连接; 将HTTP连接升级为WebSocket协议连接; 在代理处经WebSocket协议连接从网关接收对数据的请求; 在代理处将请求重新格式化为HTTP请求; 从代理向企业网络上的服务器发送该HTTP请求; 在代理处从服务器接收对HTTP请求的响应; 在代理处基于来自服务器的响应创建WebSocket响应;及 从代理经到网关的WebSocket协议连接发送WebSocket响应。12. 如权利要求11所述的介质,其中HTTP连接到WebSocket协议连接的升级由HTTP连接 的发起被自动触发。13. 如权利要求11-12中任何一项所述的介质,其中介质包括指令,还包括: 在基于云的网关处从移动设备接收请求; 在网关处将来自移动设备的请求重新格式化为经WebSocket协议对数据的请求; 在网关处从代理接收WebSocket响应; 在网关处根据来自代理的WebSocket响应创建启用云的响应;及 向移动设备发送该启用云的响应。14. 如权利要求11-13中任何一项所述的介质,其中介质包括指令,还包括: 由具有基于云的网关的代理检查代理软件的更新; 向代理下载软件更新;及 在代理处安装所下载的软件更新。15. 如权利要求14所述的介质,其中介质包括指令,还包括: 确定对于软件更新可接受的或不可接受的时间窗口;及 基于所确定的时间窗口执行所述检查、下载或安装。16. -种用于促进对企业计算机网络的非现场访问的系统,该系统包括: 至少一个处理器;及 存储器,与至少一个处理器操作耦合,所述至少一个处理器执行来自存储器的指令,用 于: 从在企业网络上的防火墙后面的计算机上执行的代理发起与防火墙之外基于云的网 关的超文本传输协议(HTTP)连接; 将HTTP连接升级为WebSocket协议连接; 在代理处经WebSocket协议连接从网关接收对数据的请求; 在代理处将请求重新格式化为HTTP请求; 从代理向企业网络上的服务器发送该HTTP请求; 在代理处从服务器接收对HTTP请求的响应; 在代理处基于来自服务器的响应创建WebSocket响应;及 从代理经到网关的WebSocket协议连接发送WebSocket响应。17. 如权利要求16所述的系统,其中HTTP连接到WebSocket协议连接的升级被配置为由 HTTP连接的发起被自动触发。18. 如权利要求16-17中任何一项所述的系统,其中来自存储器的指令还包括: 在基于云的网关处从移动设备接收请求; 在网关处将来自移动设备的请求重新格式化成经WebSocket协议对数据的请求; 在网关处从代理接收WebSocket响应; 在网关处根据来自代理的WebSocket响应创建启用云的响应;及 向移动设备发送该启用云的响应。19. 如权利要求16-18中任何一项所述的系统,其中服务器是本地web服务器。20. 如权利要求16-19中任何一项所述的系统,其中服务器运行企业应用。
【文档编号】H04L29/06GK105900397SQ201480073134
【公开日】2016年8月24日
【申请日】2014年9月10日
【发明人】V·Y·奇若夫, A·V·默克夫, K·范·德鲁
【申请人】甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1