CN106797312A - 用于安全实时的云服务的系统和方法 - Google Patents

用于安全实时的云服务的系统和方法 Download PDF

Info

Publication number
CN106797312A
CN106797312A CN201580040579.7A CN201580040579A CN106797312A CN 106797312 A CN106797312 A CN 106797312A CN 201580040579 A CN201580040579 A CN 201580040579A CN 106797312 A CN106797312 A CN 106797312A
Authority
CN
China
Prior art keywords
data
server
client
network
ria
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
CN201580040579.7A
Other languages
English (en)
Inventor
A·S·托马斯
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.)
Cogent Real Time Systems Inc
Original Assignee
Cogent Real Time 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
Priority claimed from US14/542,427 external-priority patent/US9100424B1/en
Application filed by Cogent Real Time Systems Inc filed Critical Cogent Real Time Systems Inc
Publication of CN106797312A publication Critical patent/CN106797312A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • 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
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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
    • 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/55Push-based network services
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

公开一种用于在因特网上提供实现实时数据的安全、端到端数据服务的系统和方法。该系统和方法提供传感器、装置和机械与来自任何远程位置的那个数据的用户之间的通信构架,该任何远程位置被连接至因特网,而不需要打开入站防火墙端口,同时建立高数据速率、低延迟和完全双向式。与公开的系统和方法结合的RIA框架的图示和网络特征安全地在因特网上提供web浏览器中的低延迟、实时数据应用。

Description

用于安全实时的云服务的系统和方法
相关申请交叉引用
本申请要求2015年6月18日提交的美国临时申请14/743,666的优先权,该申请是2014年11月14日提交的美国临时申请14/542,427的继续申请,其要求2014年7月10日提交的美国临时申请号62/023,172和2014年8月10日提交的美国临时申请号62/035,473的优先权,上述内容在此被引入作为参考。
版权声明
本专利文件公开内容的一部分包含受版权保护的材料。版权所有人不反对任何人对出现在专利商标局专利文件或记录中的专利文件或专利公开进行复制,但是无论如何要保留所有其它版权。
背景技术
实时数据是指在起初创建数据之后在一定时间内应当处理和/或传送的任何数字或模拟信息。从创建数据之时直到处理和/或传送数据消逝的时间被称为延迟。对于任何特定的实时应用来说可允许的最大延迟是依赖于应用的。最大延迟是严格要求的应用可以被称为“硬”实时应用,而最大延迟不是严格要求的应用可以被称为“软”实时应用。软实时应用只需要满足依赖应用的、通常是主观的、成为衡量“足够迅速的”的标准。非实时数据是不需要满足任何特定的延迟要求的数据。
术语“数据”可以指硬实时数据、软实时数据、或非实时数据。“实时数据”可以指硬实时数据或软实时数据。
实时数据通常由物理过程或处理数据的计算机系统外部的计算机程序生成。例如,实时数据可以包括:来自诸如马达状态、液体罐水平、阀门位置、传送带速度等的工业过程控制系统的信息;诸如股票的金融工具的价格、数量等;诸如表明用户已经点击计算机显示器上的按钮的人机交互事件;人类操作员进行的数据输入;和计算机操作系统状态变化。实际上,任何随时间变化的信息均可以被视为实时数据。
可以将数据的起源描述为“数据源”。例如,数据可以源于物理过程、通过电测量、然后转换为数字表示,或数据可以数字表示的形式产生。一般地,数据以数字表示在数字计算机中是可用的,遵循零个或多个步骤将数据转换成数字表示。数据源可以包含将数据转换为计算机程序可访问的数字形式所需的所有组件和步骤。
类似于数据源的是数据接收器(data sink)。数据接收器消耗或使用数据。数据接收器的某些实例是:过程控制系统的致动器;股票交易系统的交易处理软件;用户界面应用;数据库或其它的数据存储系统。
许多数据源也是数据接收器。因此,数据源可以包含数据源、数据接收器、或同时包括数据源和数据接收器。例如,当数据传送至数据源时,数据源也可以作为数据接收器。
在计算机应用中,一般由“服务器”管理数据。服务器可以作为数据源或作为数据接收器,或既作为数据源又作为数据接收器,允许“客户端”应用程序与服务器管理的数据进行交互作用。
一般地,客户端应用程序必须发起与服务器的连接,从而利用数据进行交互作用。连接可以是“短暂的”,其中连接只在与数据进行的一个或一些交互作用的持续时间内存在,或者连接可以是“长期的”,其中连接在与数据进行许多交互作用期间继续存在,和可能在客户端应用程序的有效期的持续时间内存在。长期的连接也可以被称为“持续的”连接。
数据源以限定数据的数字表示的一个或更多个“数据格式”提供数据。数据格式可以符合公布标准或是数据源所特有的。相似地,数据接收器可以需要以公布标准格式的数据或数据接收器所特有格式的数据。
数据源通过一个或更多个“传输协议”提供数据访问。传输协议指定数据从数据源转移至数据接收器依赖的机制。传输协议可以符合发布标准或为数据源所特有的。数据源可以组合数据格式和传输协议,因此不是所有支持的数据格式均可以通过所有支持的传输协议传输。一般地,“协议”或“数据协议”是指通过特定传输协议传输的特定数据格式的组合。
为了使用数据源产生的数据,数据接收器必须支持数据源提供的至少一个数据协议。由于存在大量数据协议,所以所有数据源和数据接收器支持所有数据协议是不切实际的。因此,利用数据的客户端应用程序一般创建为仅支持其主要目的需要的大多数协议。相似地,数据源一般仅支持其主要目的必需的协议。所以,例如,没有办法使支持HTTP协议的web浏览器直接连接支持DDE协议的电子表格应用程序。
将数据从数据源支持的协议转换为数据接收器支持的协议必须进行协议转换步骤,以便于数据接收器利用数据源提供的数据。可以由“中间设备”应用程序执行该转换步骤。中间设备应用程序的主要目的可以是通常通过将数据从一个协议转换为另一个协议促进在数据源和数据接收器之间的通信,以致于当数据源和数据接收器未共享共同协议时,数据源和数据接收器可以间接地进行交互作用。
数据源可以利用至少两种方法将数据转移至数据接收器:
1.在要求时:数据源被动地等待数据接收器,从而请求数据源中可用的某些或所有数据。当数据接收器发出请求请求数据时,数据源用表明所请求数据的当前状态的结果作为响应。如果需要通知数据接收器数据的更改,数据接收器必须重复请求,以便于数据源用更新数据作为响应。由数据接收器对同一个数据进行重复的请求被称为“轮询”。数据接收器可以为每个新请求创建数据源的短暂连接或持续连接,许多重复请求在持续连接期间传送。
2.通过订阅:数据接收器创建数据源的持续连接,并订阅来自数据源的某些或所有可用数据。当发生变化时,数据源通过持续连接传送数据的任何变化。数据源将继续发送数据的变化,直到数据接收器以其他方式指定或连接关闭。
理解的是,诸如共享内存、消息队列、和邮箱的数据转移方法是关于经要求或订阅方法的变种。还理解的是,术语数据转移、数据传播、或数据传输均是指数据在系统内的活动,在这些术语涉及具体的数据转移方法时,这些术语可以互换地使用。进一步理解的是,这些方法独立于下层传输协议。
处理实时数据的计算机应用程序必须是可靠的、应答的、和容易连接其数据源。这意味着从历史上讲已经将实时数据处理应用程序创建为直接或间接连接数据源的独立应用程序。该独立结构也允许应用程序充分利用计算机的图形能力提供实时数据的丰富动态可视化。相比之下,就数据连通性和图形速度而言,已经证明基于web浏览器技术的应用程序是不合适的。HTTP协议旨在作为请求响应通信方法,其中每个请求响应配对请求web客户端(通常是web浏览器)向web服务器打开新的套接字(socket)、执行通信,以及然后关闭套接字。这个范例针对非频繁并且没有特别对时间灵敏的通信工作良好。HTTP协议进一步限制用于来自web服务器的数据检索或向Web服务器的数据上报的事务处理的类型,但是不是二者均在相同的事务处理中进行。期望基于这个模型的诸如AJAX的方法以进行相对很少的事务处理并且非常差地按比例趋向较高速度。用于每个事务处理的建立的连接和闭合的连接的计算和网络成本充当用于这种系统的速度的限制。
因此,广泛的实时数据处理以及Web浏览器中的显示已经是不可用的。某些开发人员努力已经利用web浏览器中的ActiveX组件提供对数据驱动显示的访问,但是现代浏览器一般对这些组件的支持较差,并且由于组件表示的安全风险这些组件受到限制影响。
已经做出努力以利用浏览器的内嵌Javascript引擎显示web浏览器中的变化数据。一般这是通过利用被称为AJAX(异步Javascript和XML)的方法实现的,在AJAX中web浏览器周期性地轮询新数据,然后相应地更新其显示。该轮询机制的效率非常低,只适合于相对少的数据集或相对慢速运动的数据。降低轮询速度保存CPU或网络带宽会增加数据延迟,这对于实时应用程序而言是无法接受的。
关于通过称为流式AJAX的机制改进AJAX所做的努力利用浏览器网页加载机制的副作用通过随着时间的推移将Javascript指令增加至网页引起浏览器网页增量地增加。当每个Javascript指令到达时就执行每个指令,呈现出连续的数据流。有效地欺骗Web浏览器使其认为正通过较慢的网络连接加载非常大的web网页。该方法具有一些缺点,包括由于正在传送的网页不断增大,web浏览器的内存和CPU用法可以随着时间连续地增加。像这样保持HTTP连接打开以收集来自具体设计web服务器的多个异步消息,有效地使得短期HTTP连接到长期流连接中。这允许较快的从服务器更新至客户端,因为能够从服务器异步地发送新数据并且新数据不需要客户端打开和关闭针对每个消息的连接。然而,其没有加速从客户端至服务器的通信。有效地,其创造从服务器至客户端的快速单向信道,而仍然维持在从客户端至服务器通信时的HTTP的负面性能特征。
AJAX和流式AJAX方法均受到web浏览器内缺乏质量显示选项的影响。Web浏览器一般设计为显示静态网页和web“窗体”,并不提供高速或高质量的图形显示选项。关于图形显示选项改进做出的努力是为了使web浏览器互相兼容,且一般执行速度非常慢。
基于内嵌web浏览器性能的所有数据传输解决方案主要目标是接收web浏览器中的数据。数据通信是单向的,原因是从服务器接收数据的连接无法用于传送数据至服务器。如果web浏览器需要将数据反向传送至服务器,那么web浏览器必须打开新的连接、传送HTTP请求、然后再次关闭连接。因此,诸如流式AJAX的解决方案将数据反向传送至数据服务器非常慢,因为需要为每个数据传输发送新的HTTP请求会引起较大的开销和延迟。
基于web的数据可视化的努力试图通过将缓慢移动(高延迟)的数据呈现为好像很快的数据移动以改进用户体验。这是通过以比数据实际到达的频率更高的频率在web浏览器中显示内插数据来实现的。例如,表示速度计的圆形计量器可以接收每5秒钟分割的值1和值100。网页可以每秒钟提取计量器刻度盘5次,每次用4改变值。这会给观察者提供平稳变化的速度,即使下层的数据传输不含有该信息。也就是,这种内插数据的显示能够完全地误导观察者。这种内插模糊了下层数据的真实行为,且内插在诸如过程控制和股票交易市场的实时应用中一般是不可接受的。
诸如Adobe FlashTM和Microsoft SilverlightTM的丰富因特网应用(RichInternet Application,“RIA”)框架同时为web浏览器内的数据处理和图形显示提供了改进的平台。这些RIA框架也支持RIA内的直接TCP/IP通信。出奇地,这些特征的组合使得可以处理和显示web浏览器内的实时信息。由于在软件领域中RIA主要适合于视频、广告、和游戏,所以该处理和显示性能还未转变为实时数据系统。
用于HTTP的通常的取代方式是提供在HTTP通信信道一旁的用于高速度数据的二次通信套接字。有效地,web客户端经由用于呈现信息的HTTP以及经由用于高速双向数据通信的单独专用套接字进行通信。这个解决了速度问题,但是引进了其它问题:
单独通信套接字需要单独TCP端口以在服务器上打开。这个意味着是在企业防火墙中IT部门通常抵抗的其它开口。
诸如Flash或Silverlight的丰富因特网应用(RIA)框架通常实现套接字通信上的限制,其需要用于打开的另一种众所周知的端口以充当访问策略服务器。这个引进企业防火墙中的另外的开口,进一步限制技术的用途。
在浏览器(例如,Silverlight)中操作的RIA框架可以不实施其自己的SSL层,而是依赖于用于加密的浏览器的HTTPS实现方式。在这种情况中,通过RIA实现的专用套接字将不是安全的。
专用套接字将不通过Web代理。
在因特网上的高速或实时数据处理的出现已经创造用于长期高速套接字通信的需求。这个需求已经驱动RIA实现者以提供这种套接字,但是具有上述的限制。这仍然存在用于在HTTP或更优选地HTTPS上向web服务器的长期双向套接字通信的未能满足的需求。
HTML5规范包括称作WebSockets的草案规范。这个旨在提供使用HTTP媒介套接字的客户端和服务器之间的双向通信。虽然此时WebSocket不是普遍支持的,但是它们提供通过前进和后退web代理创造双向连接的可能性。当前发明通过WebSocket实现实时数据连接,甚至在其中数据源或最终用户经由代理服务器与因特网孤立并且数据源或最终用户不能经由任意TCP/IP端口做连接的例示中提供成功的连接。这个显著地扩大网络拓扑集合,在该网络拓扑集合上可以有效地实施当前发明并且允许客户端网络上的安全性的附加潜在安全等级。
本发明适合于加强工业的管理控制和数据采集(“SCADA”)系统。SCADA系统包括诸如传感器和其它装置的数据收集硬件、通信网络、中央处理系统和显示单元以允许工厂操作者和工程师实时地观看它们的工业过程中的数据。SCADA系统常常包括支撑协调和控制(诸如向糖果制造机器上传新的配方、变化风力涡轮机上的整体设置、或确认用于锅炉的高压力报警)的管理水平的接口。
SCADA系统已随着时间演进。第一代系统是运行在直接连接至现场装置的个人计算机上的“单片电路”。第二代使用在局域网上(“LAN”)与彼此通信以及与现场装置在专用控制网络上通信的多个计算机允许“分布式”处理。当前网络代使用专用计算机和诸如用于局域区域网络的TCP/IP和开放协议的开放标准。因此,虽然存在关于限制广泛采用这种能力的安全性的基本问题,但是当前可能的是访问SCADA系统和来自因特网的数据。
使用客户端/服务器模型设计网络SCADA系统。服务器(装置或软件应用)包含数据项目的集合。这些数据项目在通过客户端请求之后变得对客户端(装置或软件应用)可用。隐含假设的是服务器是数据值的授权源,并且具有它将供应的哪些数据值的先验知识。客户端是非授权的,并且通过询问服务器确定它可以使用的哪些数据项目。为了清楚起见,数据的授权源有责任确定它将包含并且对其客户端可用的哪些数据项目,并且保持在授权源中的数据的值被假设成是正确的和当前的。客户端不能够确定哪些数据项目存在,并且仅可以影响限定在服务器中的数据项目的值和/或特性。
重要的是,服务器同时是授权数据源并且还是来自客户端的进入连接的监听器。在网络系统中,这意味的是使用数据的任何客户端必须能够向服务器发起连接。在SCADA系统中,这将意味着,例如,操作者工作站(充当客户端)必须能够向SCADA服务器建立连接。这进而要求SCADA服务器经由网络从客户端的位置是可达到的。在基于因特网或基于云的系统的情况下,这意味的是SCADA服务器必须从因特网是可达到的,其造成不可接受的安全风险。出于清楚起见,数据“云”和“因特网”可以可交换地贯穿这个公开进行使用。
当在过程控制工程师之间提出云计算的主题时,存在关于安全性的许多有理由的关注。SCADA与其它制造和控制系统常常支撑高价值生产线,其中任何干扰或不当行为可能花费数千或数百万美元。虽然当前某些生产场所已经开始使它们的过程数据对在企业LAN上的公司的其余部分可用,但是存在对打开工厂防火墙中的端口以允许来自因特网的进入连接的强烈抵抗。
另一方面,云系统一般请求因特网访问,通常使用web浏览器HMI(“人机接口”)或RIA或其它种类的客户端以连接至过程侧上的服务器。直到当前发明为止,这意味着在工厂防火墙中必须打开端口以允许web浏览器连接。并且这个是少数工厂工程师愿意冒险的安全性风险。安全漏洞的主要源是防火墙允许入站连接。除非去除这些,工厂被暴露于攻击。
由于SCADA系统的任务关键特性,为工业过程负责的工程师和管理者不愿意将它们直接地暴露于因特网,在安全防火墙后面运行保持入侵者和黑客陷入绝境。使问题变得更复杂的是多数安装的工业系统的架构没有考虑到利用因特网进行研发。为了足够充分地解决工业用户的关注的问题,需要用于数据网络的根本不同的方法。本发明通过采用用于满足实时数据的工业用户的严格要求的安全性的新方法解决这个问题。
发明内容
本发明提供了使用了诸如web浏览器、RIA框架和专用应用的网络客户端的图形特征和联网特征和至少一个实时数据服务器的系统和方法,从而提供在web浏览器内的较低延迟的实时数据应用。本发明克服了当前AJAX和流式AJAX的限制,并且同时处理在web浏览器中不可用的数据的数据源。
本发明还提供可以完全通过HTTP或HTTPS执行的web客户端的长期的、双向通信机制,优选地使用现有的HTTP动词(例如,GET和POST)同时利用现有的浏览器和RIA技术是可操作的。贯穿这个公开,术语“RIA”、“丰富因特网应用”、“web浏览器”、“网络客户端”和“客户端”被理解为可互换地指代通过HTTP和HTTPS协议通信的任何软件或硬件应用。
本发明还提供用于在因特网上实现实时数据的安全、端到端数据服务的系统和方法。本发明提供在传感器、装置和机械与来自任何远程位置的它们的数据的用户之间的实时连接,该任何远程位置被连接至因特网,其中数据吞吐率可以是每秒25,000次数据变化,优选的在每秒50,000次数据变化以上,更优选地在每秒75,000次数据变化以上,以及最优选地在每秒100,000次数据变化以上。数据流的增加延迟可以以毫秒为单位进行测量,大于它本身在因特网上的连接的延迟,优选地不大于200毫秒,更优选地不大于100毫秒,还更优选地不大于50毫秒,还更优选地不大于25毫秒,还更优选地不大于10毫秒,以及最优选地不大于5毫秒。本发明对这些利用来自工业系统、嵌入式装置、“智能”装置或金融系统的实时数据工作特别地有价值。
本发明通过将数据延迟降低至利用真实数据值而非内插值可以动态显示可视化组件的程度,对到达web浏览器和网络客户端的最先进的实时数据传输进行改进。这使得数据的短暂行为更加准确地呈现给用户。在理解通过数据呈现的实时系统的真实动态方面短暂的数据行为通常是重要的。例如,正在观看物理计量器的人通过观看计量器指针行为的振动或过调量能够辨别重要的系统特性。在本发明的一个实施例中,物理计量器的数字表示能够捕获指针动态,并提供与物理计量器相同的高质量信息。
本发明极大地改进了从用户到数据服务器的数据传输的速度,降低了CPU和网络开销,也降低了延迟。这允许用户参与到系统响应对纠正行为来说比较重要的更复杂的控制情况中。例如,系统可需要在用水填充容器时保持-释放交互作用。用户将按下按钮,并保持按下直到容器充满,然后释放按钮。显然地,系统必须迅速响应,从而避免过度填充容器。由于数据传输延迟的不可预测性,这种控制在典型的基于web的应用中是不可能的。令人惊讶的是,本发明使先前的太慢、不可靠、或落后而不被考虑使用web浏览器的控制和实时数据应用进行分类变得可能。
典型的web应用处理由应用设计人员提供的特定格式的数据。这是有意的方法以限制终端用户选择,或是简单的设计上的限制。即使在数据格式遵循工业标准(例如XML或JSON)的情况中,数据源是应用所特有的。本发明还提供了用于传送源于工业标准和专用源的多种实时数据的通用机制。有利地,本发明能够进一步以多种数据格式提供该数据。
许多数据源,实时的和非实时的,不是为了网络使用(例如,通过网络传输)。本发明允许数据从这些数据源(诸如Microsoft ExcelTM(微软公司))通过网络可靠且迅速的传送至任何RIA或基于web的应用。某些数据源,例如基于OPC的数据源,是为了网络使用,但是不是设计为与web浏览器进行通信。本发明也允许这些数据源迅速且可靠地传送至基于web的应用。其它数据源,例如数据库系统,完全不为实时信息提供接口。本发明允许来自源(诸如数据库应用)的非实时数据就好像是实时数据一样被传送,因而消除了RIA或基于web应用对执行数据库的低效轮询的需求。
数据源和数据接收器可以通过持续连接或短暂连接与服务器连接。能够理解的是,与服务器的连接方法将反映特定数据源或数据接收器的需求。
本发明提供了来自一个或更多个数据源的实时数据有效地用于丰富因特网应用的方法。本发明进一步提供了RIA有效地修改实时数据或生成能够传输回至一个或更多个数据源的实时数据的方法。然后,一个或更多个数据源能够将该数据通过网络重新传输至其它的RIA。因此,本发明有效地使得任意数量的RIA应用互相之间进行实时通信,以及共同与一个或更多个实时数据源进行通信。本发明允许实时数据的抽象概念,使得能够利用抽象概念表示的任何数据能够用于RIA,无论其最初来源、表示方法、或转移协议。
本发明提供一种用于因特网或基于云的通信框架和服务的系统和方法,其不需要用于连接的数据源和客户端(例如,工业设施、终端用户客户端装置)的任何打开的进入防火墙端口,从而避免暴露于潜在攻击。本发明通过反转工厂和云服务器之间的客户端/服务器关系提供该新的改进。不是工厂数据源充当服务器,利用本发明,工厂数据源充当客户端,以及云服务充当服务器。这个反转了如何与因特网进行连接的方向。工厂数据源服务器发送出站连接请求至云中的服务器,并且因此不需要打开工厂防火墙中的任何入站端口。这个新方法保持工厂防火墙关闭,并且使潜在的攻击表面收缩至零。
在本发明之前,在因为不存在被感受到的需求,并且其没有直观或结构的意义,没有进行反转客户端/服务器关系。现有的SCADA和控制系统以及诸如OPC的标准工业协议期望服务器是数据集合的授权持有者。由于数据在过程处正在被生成,并且然后在别处使用,则符合逻辑的是,数据的消费者(例如,外部用户)是客户端,并且该客户端请求来自过程、服务器的数据。客户端自然地期望连接至服务器,询问数据集合以及订阅客户端需求的数据。这个现有技术方法在现有协议所针对设计的封闭系统中足够好的工作。然而,基于云的系统需要基本上新的方法。
通过变化客户端和服务器的角色,现有发明提供其中客户端变成数据集合的授权持有者的不寻常和新的情况。充当客户端的过程连接至云服务器并且利用其当前数据集合配置该服务器。数据集合的更新随后从过程传递至云服务器。在其它侧上,数据的用户(客户端)通过相似方法连接至云服务器。客户端还做了到云服务器的出站客户端连接,并且能够实时地与数据集合交互。还在客户端侧上,不需要打开进入防火墙端口。以这个方式运行,本发明允许云服务器提供到过程数据的访问,而不需要打开工厂防火墙或客户端的防火墙中的单个进入端口。
当前发明反转客户端/服务器关系。也就是,客户端应用能够可选地充当授权数据源,并且服务器能够充当该数据的非授权消费者。事实上,当前发明提供用于单个应用以同时地充当授权服务器、授权客户端、非授权服务器和非授权客户端。这使得充当非授权服务器的服务器应用位于公共可访问的云计算机上,同时在安全网络内配置SCADA系统作为授权客户端成为可能。SCADA系统在安全SCADA网络中做出从安全SCADA网络至云服务器的出站连接,以及用其数据集合填充云服务器。云服务器不要求其数据集合的先验知识,而是从SCADA系统内的授权客户端获知其数据集合。在需要访问SCADA系统的数据的公共网络上的其它客户端将作为非授权客户端连接至云服务器,因此将云服务器当作事实上起源于SCADA系统处的数据的授权服务器。因此,客户端应用能够连接至云系统并且与SCADA系统的数据交互,就像其正在连接至SCADA系统一样,尽管SCADA系统从未暴露至公共网络。本发明的出乎意料的结果是提供到SCADA系统的数据的远程访问,而不需要牺牲SCADA系统本身的网络安全。
对于增加的安全,本发明允许应用的第二实例,其操作作为到SCADA系统的非授权服务器以及作为到云系统的授权客户端,以被安装在工业工厂内的单独网络中,使得该第二实例不能访问至安全SCADA网络。SCADA系统然后发送数据至该第二实例,并且该第二实例发送数据至云服务器。在这个配置中,SCADA系统甚至不具有到因特网的直接出站连接,而是通过包含第二实例的网络进一步隔离。
SCADA系统通常提供机制以允许客户端应用(像操作者面板)发射值变化至特定数据项目。例如,操作者可能想要开始或停止工厂中的机器。工厂拥有者可能不愿意允许从远程位置对SCADA数据修改。现有发明允许SCADA系统(充当到云的授权客户端)拒绝修改数据项目的值的全部尝试,即使是其中用户许可通常允许修改的情况。此外,云服务器能够被配置为允许特定用户基于它们的用户证书和它们正在连接的计算机的IP地址修改特定数据项目的值。因此,当前发明提供经由公共网络的攻击和用于修改数据的非授权尝试二者的安全,即使在云服务器受到危害的事件中。
在另一实施例中,通过以下方式执行一种提供安全网络连接的方法:在服务器处侦听在服务器和客户端之间的网络上的到服务器的入站连接请求,在服务器处接收来自客户端的第一入站连接请求,根据第一入站连接请求建立服务器和客户端之间的第一网络连接,以及在服务器处通过第一网络连接接收来自客户端的第一数据集合,其中客户端是第一数据集合的授权源并且经由入站连接请求是不可访问的。
在另一实施例中,提供一种用于提供安全数据网络的系统。该系统包括通信地耦合到服务器和客户端之间的网络的服务器,该服务器可操作用于:侦听入站连接请求,基于通过服务器接收的第一入站连接请求建立服务器和客户端之间的第一数据连接,以及通过第一数据连接接收来自客户端的第一数据集合,其中通过授权源产生第一数据集合。客户端经由入站连接请求是不可访问的,并且客户端是授权源。
虽然这个描述涉及其用于SCADA系统的应用,但是应该理解的是该相同机制广泛地适用于可以经由公共网络使得可用的任何数据。该数据可能发源于任何程序或过程,诸如金融交易系统、家用电量计、远程机器、移动电话、嵌入式装置、或生成数据的任何其它程序或装置,并且仍然落入本发明的范围中。在本发明的一个方面中,公共要求是数据源没有被要求接受入站网络连接,以使得其数据对该数据的用户可用。
附图说明
图1是示出了根据本发明的一个实施例的在RIA和服务器之间的直接连接的示例性的方框图。
图2是示出了根据本发明的一个实施例的在RIA、服务器、和单独的数据源之间的连接的示例性的方框图。
图3是示出了根据本发明的一个实施例的在多个RIA、服务器、和多个单独的数据源之间的连接的示例性的方框图。
图4是示出了根据本发明的一个实施例的RIA控制流的一个方法的示例性的流程图。
图5a、5b是示出了根据本发明的一个实施例的服务器操作的一个方法的示例性的流程图。
图6是示出了根据本发明的一个实施例的数据服务器管理与多个RIA的同步连接的示例性的方框图。
图7是示出了根据本发明的一个实施例的在电子表格应用程序和RIA之间通过局域网或广域网进行数据的实时传输的示例性的方框图。
图8是示出了根据本发明的一个实施例的系统实施方式的示例性的方框图。
图9a、图9b、图9c是根据本发明的一个实施例例示客户端和服务器的操作的一个方法的示例性流程图。
图10是例示现有技术系统实现方式的示例性框图。
图11是根据本发明的一个实施例例示系统实现方式的示例性框图。
图12是根据本发明的一个实施例例示系统实现方式的示例性框图。
具体实施方式
提供下面的描述是为了使本领域的技术人员能够实现和利用本发明,以及在本发明的特定应用的背景下提供了下面的描述。本领域的技术人员将容易看出,在不偏离本发明的保护范围的情况下,可以对公开的实施例进行各种修改,以及本文中定义的一般原理可以应用于其它的实施例和应用中。不同实施例和实例的参考并不会限制本发明的保护范围,本发明的保护范围仅由所附的权利要求的保护范围限制。此外,在该说明书中阐述的实例不是为了起到限制作用,仅仅是阐述要求保护的发明的许多可能的实施例中的某些实施例。
执行本发明的当前实施例的编程环境说明性地包括通用计算机或专用设备,例如便携式计算机、电话或PLC。为了简洁起见,可以省略这些设备(例如,处理器、内存、数据存储器、显示器)的详细信息。
还理解的是,可以利用多种方法实施本发明的技术。例如,本文中所描述的方法可以在计算机系统上执行的软件中实施,或在利用微处理器或其它专门设计的专用集成电路、可编程逻辑设备、或其组合的硬件中实施。特别地,可以通过驻存在合适的计算机可读介质上的一系列计算机可执行指令实施本文中所描述的方法。合适的计算机可读介质可以包括易失性(例如,RAM)和/或非易失性(例如,ROM、磁盘)存储器、载波、和传输介质(例如,铜线、同轴电缆、光纤介质)。示例性的载波可以采用电信号、电磁信号、或光信号的形式,其沿着局域网、诸如因特网的公开可访问网络、或某些其它通信链路传送数字数据流。
关于附图中所示的实例实施例,可以理解,为了简洁起见选择了简化的实例。出现在附图中的元件(例如,RIA、服务器、客户端、数据源、数据接收器等)的一个实例可以用多个相同的元件替代,且仍然在本发明的保护范围内。
因此,在一个方面,本发明提供了一种用于提供实时数据到RIA的方法,该方法包含:在数据源产生数据;将数据传播至服务器;在服务器采集数据;创建从RIA到服务器的持续连接;和使RIA订阅到所订阅的数据,其中所订阅数据包含在服务器采集的数据的至少某些数据,其中当在服务器采集数据时,服务器将所订阅数据通过持续连接传播至RIA。该方法进一步包含将起源RIA的数据发送至服务器。起源RIA的数据可以含有通过持续连接至数据的至少一个更改请求或至服务器的至少一个命令。进一步,数据可以通过至少一个中间组件传播。服务器可以接收至少一个更改请求,并将至少一个更改请求传送至数据源。可以通过中间组件传送至少一个更改请求。中间组件可以是中间硬件组件或中间软件组件。可选地,RIA可以订阅所订阅数据。在数据源产生数据和将数据传播至服务器可以与在服务器采集数据同时发生。RIA可以基于数据执行动作,例如图形表示的计算或修改。RIA可以将数据的可视化表示显示在用户显示器,用户可以与可视化表示进行交互,从而生成起源RIA的数据。可视化表示可以是在RIA框架内运行的程序。起源RIA的数据可以指示服务器执行动作,例如关闭服务器,或改变其行为,例如改变哪个数据来自服务器。
例如,起源RIA的数据可以是用户交互作用、计时器事件、对来自服务器的数据更改的响应、脚本、或另一个非用户生成的事件的结果。
在另一个方面中,本发明提供了一种提供实时数据到RIA的方法,该方法包含:提供来自数据源的数据;将来自数据源的数据传播至服务器;在服务器采集数据;在RIA产生数据;创建从服务器到RIA的第一持续连接;创建从RIA到服务器的第二持续连接;将来自RIA的数据通过第二持续连接传播至服务器;和使RIA订阅所订阅数据,其中所订阅数据包含在服务器采集的数据的至少某些数据,以及其中服务器将所订阅数据通过第一持续连接传播至RIA。该方法可以进一步包含将来自服务器的数据传播至数据接收器。第一持续连接和第二持续连接可以由单个连接构成。
数据源、数据接收器、和服务器可以由单个组件或两个或更多个组件的组合构成。数据可以通过从包含以下项的组中选择的至少一个中介物进行传播:软件组件、硬件组件、和网络。数据项可以基于订阅在RIA和服务器之间传播,其中数据项响应数据项中的变化立刻传播。可以从包含以下项的组中选择传播的数据:数值数据、非数值数据、配置设置、和可执行指令。RIA可以基于数据执行动作,其中动作从包含以下项的组中选择:修改用户显示器的可视化表示、计算、生成新数据、修改现有数据、存储数据、音频指示、执行脚本、传播数据至服务器、用户可视化编程响应、和非用户可视化编程响应。在RIA生成的数据可以指示服务器执行从包含以下项的组中选择的动作:修改服务器内的数据、传播数据至连接服务器的数据接收器、执行脚本、存储数据至文件系统、创建新数据、传播新数据至连接服务器的数据接收器、修改服务器配置、修改服务器行为、用户可视化编程响应、和非用户可视化编程响应。
在另一个方面中,本发明提供了一种存储指令的计算机可读存储介质,当在一个或更多个计算机上执行该指令时,该指令引起计算机执行如上所述的提供实时数据到RIA的方法。
在另一个方面中,本发明提供了一种用于提供实时数据到RIA的系统,该系统包含:至少一个数据源、至少一个服务器,其中服务器包含:用于从至少一个数据源采集数据的数据采集组件;用于发送数据至至少一个数据客户端的数据发送组件;至少一个RIA;以及可选的至少一个数据接收器。服务器可以进一步包含用于修改由数据采集组件采集的数据的形式以便由数据发送组件发送的数据修改组件。能够理解的是,至少一个数据源和至少一个服务器可以在至少一个计算机程序(例如,单个计算机程序、或两个或更多个单独的计算机程序)中实施。
服务器可以进一步包含从以下项选择的一个或更多个组件:数据修改组件;数据创建组件;用户界面组件;计算机文件系统交互组件;用于与运行服务器的计算机上运行的其它程序进行交互的程序交互组件;用于执行可编程动作的脚本语言组件;用于接受来自客户端程序的HTTP请求和以那些请求指定的文档以与“web服务器”相似的方式做出响应(包括能够响应于请求动态地构建文档,以及在文档内包括驻存在服务器中的数据的当前值和执行服务器中的内嵌脚本语言的声明的结果)的HTTP组件;用于在任何局域网或网络可访问的计算机上和服务器的另一种运行实例交换和同步数据的同步组件,使得服务器本质上维持该数据的相同拷贝,因而能够使连接服务器的任一种实例的客户端应用与相同的数据集进行交互;用于限制采集数据的速率的第一减速组件;用于限制发送数据的速率的第二减速组件;用于检测与其它服务器失去连接和当恢复连接时重新连接其它服务器的连接组件;用于冗余地连接相同或相似信息的多个其它服务器,使得在其它服务器中的一个或更多个不可访问时,可以采集来自其它服务器的任一服务器的数据的冗余组件;和桥接组件,用于把数据源之间的数据“桥接”起来使得这些数据源内的某些或所有数据彼此维持相似的值,或用于在包括数学变换的数据源之间桥接数据,使得一个源中的数据被维持作为另一个源中的数据的数学变换,包括能够同时正向和反向地通过双向桥接操作应用数学变换。能够理解的是,通过将额外的功能增加至服务器以支持其它的数据采集和传输机制、其它的处理机制和其它的存储机制,可以扩展这组服务器组件。
数据采集组件可以通过以下方式中的一个或更多个来采集数据:在要求时,其中服务器发送请求驻存在另一个服务器中的某些或所有数据的请求,和其它服务器响应请求以所请求数据的一个或更多个当前值只做出一次响应;通过订阅,其中服务器发送订阅驻存在另一个服务器中的某些或所有数据的请求,和其它服务器通过发送其数据的一个或更多个当前值做出响应,然后继续发送数据的一个或跟多个值的任何随后的变化,直到服务器服务器终止其与其它服务器的连接,或请求其它服务器停止发送更新;经过触发,其中客户端、脚本、或人(“用户”)配置服务器为只有当满足特定触发条件时才采集数据,特定触发条件可以是计时器、一天中的某个时间、数据变化、系统状态的改变、用户动作、或某个其它可检测的事件;和通过被动地等待“客户端”应用将数据发送至服务器。
数据发送组件可以以以下方式中的一个或更多个发送数据:在要求时,其中“客户端”应用发送请求某些或所有数据的请求,和服务器响应请求以所请求数据的一个或更多个当前值只做出一次响应;通过订阅,其中客户端应用发送订阅某些或所有数据的请求,服务器通过发送数据的一个或更多个当前值做出响应,然后继续发送一个或更多个值的任何随后的变化,直到客户端终止其与服务器的连接或请求服务器停止发送更新;经过触发,其中客户端、脚本、或人(“用户”)配置服务器为只有当满足特定触发条件时才发送数据,特定触发条件可以是计时器、一天中的某个时间、数据变化、系统状态的改变、用户动作、或某个其它可检测的事件。
可以利用从以下选择的一个或更多个传输协议接收在数据采集组件采集的数据:动态数据交换(DDE)、过程控制的OLE(OPC)、OPC警报和事件规范(OPC A&E)、OPC统一结构(OPC-UA)、OPC快捷接口(OPC-Xi)、TCP/IP、通过定制接口在TCP/IP上的SSL(安全套接字层协议)、超文本传输协议(HTTP)、安全HTTP(HTTPS)、开放数据库连接(ODBC)、微软实时数据规范(RTD)、消息队列、Windows Communication Foundation(WCF)、诸如Profibus和Modbus的工业总线协议、Windows系统性能计数器、嵌入式系统的TCP/IP通信、非MS-Windows系统的TCP/IP通信、Linux的TCP/IP通信、QNX的TCP/IP通信、TRON的TCP/IP通信、提供C编译器和TCP实施的任何系统的TCP/IP通信、利用内嵌脚本语言书写的脚本、由人通过用户界面输入的数据、从局域磁盘文件读取的数据、从远程可访问磁盘文件读取的数据、专用格式、用户定义的格式、和通过扩展服务器增加的格式。专用格式的实例是Wonderware SuiteLinkTM
可以利用从以下选择的一个或更多个传输协议传送从数据发送组件发送的数据:动态数据交换(DDE)、过程控制的OLE(OPC)、OPC警报和事件规范(OPC A&E)、OPC统一结构(OPC-UA)、OPC快捷接口(OPC-Xi)、TCP/IP、通过定制接口在TCP/IP上的SSL(安全套接字层协议)、超文本传输协议(HTTP)、安全HTTP(HTTPS)、开放的数据库连接(ODBC)、微软实时数据规范(RTD)、消息队列、Windows Communication Foundation(WCF)、诸如Profibus和Modbus的工业总线协议、嵌入式系统的TCP/IP通信、非MS-Windows系统的TCP/IP通信、通过用户接口呈现给人的数据、写入局部磁盘文件的数据、写入远程可访问磁盘文件的数据、专用格式、用户定义的格式、通过扩展服务器增加的格式、电子邮件(E-Mail)、和短消息服务(SMS)消息格式。
进一步,在数据采集组件处采集的数据可以是适于传输协议的格式。从数据发送组件发送的数据可以是适于传输协议的格式。在数据采集组件处采集的数据和从数据发送组件发送的数据也可以是从以下选择的格式:插入语句(像LISP的)格式、超文本标记语言(HTML)、可扩展的标记语言(XML)、JavaScript Object Notation(JSON)、专用二进制格式、用户定义的文本格式、和通过扩展服务器增加的格式。
系统可以进一步包含实施TCP/IP连接和服务器支持的数据格式中的一个或更多个的应用编程接口(API),该应用编程接口有助于编程人员创建如上所述的连接。以下平台中的一个或更多个可以实施API:“C”编程语言、“C++”编程语言、Microsoft.Net编程环境、Microsoft Silverlight RIA框架、Adobe Flash RIA框架、Adobe Air RIA框架、支持TCP/IP通信的编程语言(包括任何脚本语言)、和支持TCP/IP通信的RIA框架。
可以利用从以下选择的RIA框架实施RIA:Microsoft Silverlight、Adobe Air、和支持TCP/IP通信的RIA框架。RIA框架可以支持:与服务器建立第一长期TCP/IP数据连接从而接收数据;接收来自服务器的数据;和通过第二TCP/IP数据连接将数据传送至服务器。经要求或通过订阅可以从服务器接收数据。第一TCP/IP数据连接和第二TCP/IP数据连接可以是相同的连接。第二TCP/IP数据连接可以是长期的连接。第二TCP/IP数据连接可以是短暂的连接。与服务器的TCP/IP数据连接可以是从以下选择的协议:如上所述的API、直接TCP/IP连接、HTTP、和HTTPS。
可以使用RIA框架、web浏览器、编译计算机语言、解释计算机语言、硬件装置或支持HTTP和/或HTTPS协议的另一个实施机制实现客户端。客户端可以支持:与服务器建立第一长期TCP/IP数据连接以接收数据;接收来自服务器的数据;和在第二长期TCP/IP数据连接上将数据发送至服务器。可以根据需要或通过订阅从服务器接收数据。与服务器的TCP/IP数据连接可以是在从HTTP和HTTPS选择的协议中。
可以通过从以下选择的一个或更多个形式接收来自服务器的数据,或可以将数据通过从以下选择的一个或更多个形式传送至服务器:插入语句(像LISP的)格式、超文本标记语言(HTML)、可扩展的标记语言(XML)、JavaScript Object Notation(JSON)、专用二进制格式、用户可定义的格式、和通过扩展服务器增加的格式。
RIA框架可以进一步支持将表示数据的图形显示呈现给用户。图形显示器可以包含从以下选择的一个或更多个图形元件:文本显示、Slider控件、图表、趋势图、CircularGauge控件、线性Gauge控件、按钮、复选框、单选按钮、进度条、原始图对象、由RIA框架支持的控件、用于扩展RIA框架创建的自定义控件、利用RIA框架实施的第三方控件、和定制的图形元件。
图形显示器的配置信息可以保存在服务器上,和从服务器加载。可以在图形显示器内创建图形元件和修改图形元件。图形元件可以是由用户定制的可定制图形元件,其中定制可以保存在服务器。可以由编程人员执行定制,而无需对RIA框架中实施的应用进行修改。定制图形元件可以供其它图形显示器的用户使用。这些定制可以用于创建新的显示、修改现有的显示,除了由用户界面应用最初支持的图形元件以外的所有显示。图形元件可以含有用户可修改的一个或更多个属性,且一个或更多个属性可以由编程人员选择。用户与图形元件交互会引起用户界面应用将数据的修改发送给服务器。可以提供仅用户模式从而不允许用户创建或修改图形显示,以及也提供只读模式从而不允许用户与图形元件进行交互。系统管理员可以选择哪个用户和用户界面应用将以仅用户模式和只读模式中的一个操作哪个图形显示。可以要求用户识别其本身,和在要求这种识别的情况下,用户界面应用可以仅用户模式和只读模式中的至少一个工作。有利地,本发明的特征使得通过任何用户RIA终端修改图形显示,一旦保存,得到的变化就立刻可用于连接服务器的所有其它RIA终端。
在另一个方面中,本发明提供一种通过HTTP或HTTPS协议在客户端和服务器之间提供双向流通信的方法,该方法包括生成会话ID;经由从客户端至服务器的第一HTTP事务处理打开第一套接字;将会话ID与服务器和客户端处的第一套接字关联;经由从客户端到服务器的HTTP事务处理打开第二套接字;将会话ID与服务器和客户端处的第二套接字关联;在第一套接字上维持长期连接;以及在第二套接字上维持长期连接,其中在会话ID、第一套接字和第二套接字之间创建对应关系,并且其中在客户端和服务器之间建立双向通信。
方法可以进一步包括发送从包括配置信息、命令、实时信息、来自在先事务处理的未决数据和其它数据的组选择的至少一个数据消息的客户端。方法可以进一步包括等待来自第一套接字的事件;验证来自第一套接字的事件是否是错误的;当事件不是错误的时,读取来自第一套接字的可用数据;处理数据以产生结果;以及可选地将结果经由第二套接字传送至服务器。方法可以进一步包括客户端:关闭第一套接字;以及关闭第二套接字,其中来自第一套接字的事件是错误的。方法可以进一步包括客户端:等待客户端生成的事件;处理客户端生成的事件以产生结果;以及可选地将结果经由第二套接字发送至服务器。客户端生成的事件可以从包括内部生成的激励、用户活动的结果、计时器和外部的激励的组进行选择。方法可以进一步包括客户端:将用于发送至服务器的数据标记为未决的;关闭第二套接字;打开新的第二套接字;以及将新的第二套接字与会话ID关联。
方法可以进一步包括服务器:等待来自第二套接字的事件;验证来自第二套接字的事件是否错误;当来自第二套接字的事件不是错误时,读取来自第二套接字的可用数据;处理数据以产生结果;并且可选地将结果经由第一套接字传送至客户端。方法可以进一步包括服务器关闭第二套接字,其中来自第二套接字的事件是错误。方法可以进一步包括服务器:等待服务器生成的事件;处理服务器生成的事件以产生结果;以及可选地将结果经由第一套接字发送至客户端。服务器生成的事件可以从包括内部生成的激励、用户活动的结果、计时器、来自另一个连接的客户端的结果、来自数据源的数据、和外部激励的组选择。方法可以进一步包括服务器:关闭第一套接字;并且关闭第二套接字。
在以上方法中,第一HTTP事务处理可以从包括:HTTP GET事务处理和HTTP HEAD事务处理的组选择;并且第二HTTP事务处理可以从包括HTTP POST事务处理、HTTP PUT事务处理、HTTP PATCH事务处理和HTTP TRACE事务处理的组选择。优选地,第一HTTP事务处理是HTTP GET事务处理,并且第二HTTP事务处理是HTTP POST事务处理。
还在另一个方面中,本发明提供用于通过HTTP或HTTPS协议提供双向流通信的系统,该系统包括:至少一个客户端;和至少一个服务器,其中至少一个客户端适合于实施上述方法,并且其中至少一个服务器适合于实施上述方法。至少一个客户端可以包括RIA。至少一个服务器可以包括:用于收集来自至少一个数据源的数据收集构件;以及用于将数据发送至至少一个数据客户端的数据发送构件。
仍在另外方面中,本发明提供存储指令的计算机可读存储器,其中当在一个或更多个计算机上执行时,引起计算机实行在客户端和服务器之间通过HTTP或HTTP协议提供双向流通信的方法,该方法包括上述方法的步骤。
如上所述,HTTP协议实施其中每个事物处理通常是短期的的事务处理模型。每个事务处理通过客户端发起并且被指定为将数据发送至服务器,或者从服务器请求数据,而不是二者都被指定。
web客户端可能需要发送或接收大量数据。在这个情况下,可以实现API允许客户端以不完全的组块传送和接收数据。也就是,其在已经发送全部数据集合之前可以请求多个传送和接收行动。例如,接收来自服务器的图像的客户端可以以1KB的组块接收图像,使得其能够在整个图像已经到达之前开始呈现图像,以产生渐进式呈现的效果。能够在客户端内利用这个行为以产生数据的连续流。该客户端可以对专用设计的服务器(或具有用于该URL的专门设计的处理程序的标准服务器)上的URL进行HTTP GET请求。服务器可以用HTTP报头响应,并且保持套接字打开。在未来的任一时间处,服务器可以在套接字上发送数据,其作为未完成传输将达到在客户端。客户端能够处理该数据并且然后等待更多的数据。只要服务器保持套接字打开,则客户端将简单地基于存在将被接收的更多数据的期望进行动作,并且将在数据到达时进行处理。服务器能够在任何时间处异步发送更多数据至客户端,而不需要客户端重复打开和关闭HTTP连接。这个机制是流AJAX的基本方法。如上所述,其是单向的。这个机制不提供从客户端到服务器的高速通信。
本发明的重要创新中的一个是解决创造从客户端至服务器的高速连接的问题。解决方案提供客户端打开与服务器的HTTP POST事务处理,并且发送必要的HTTP报头信息。服务器然后将等待POST的数据载荷到达。在未来的任一时间处,客户端可以在打开套接字上发送数据,有效地充当像反向方向中的流AJAX机制。客户端可以无限地保持套接字打开,在必要时发送数据,而不需要必须重复地打开和关闭用于每个新传输的HTTP连接。
服务器必须意识到数据将作为流达到并且当其到达时处理信息。这可能需要在服务器中的自定义行为。
HTTP协议指定客户端必须以HTTP报头(内容-长度)通知服务器HTTP POST消息的大小。客户端发送与指定在内容-长度报头中的数据比较更多或更少的数据违背HTTP协议。本发明通过跟踪从客户端传输至服务器的字节数量来辨认该情况。通过客户端指定HTTPPOST内容长度为字节的任意数量。当客户端已经发送内容-长度字节时,其关闭其存在的连接并且打开新的连接并继续发送。POST消息中的字节的数量能够是大量的(例如,高至231字节),因此这个打开和关闭将很少地发生。该结果将在一些数据的传输中是稍微迟延,但是没有丢失信息。
在一个优选地实施方式中,本发明请求两个套接字,一个处理经由HTTP GET的服务器至客户端通信,以及另一个处理经由HTTP POST的客户端至服务器通信。为了两个套接字共同起提供双向流通信的作用,web服务器必须意识到的是它们是单个对话的相关的半部分。这个关系可以通过客户端进行建立。客户端首先打开HTTP GET连接,并且包括其URL中的唯一会话句柄(例如,随机生成GUID)。当随后客户端打开HTTP POST请求时,其包括在URL中的相同会话句柄。服务器然后能够关联两个连接。当HTTP POST连接由于达到内容-长度限制必须被关闭并且重新打开时,客户端再次发送相同的GUID。然后服务器能够利用现有的GET套接字关联这个新的POST套接字。
web服务器需要理解这个方法正在被采用。它必须保持跟踪用于源GET连接的专门指定的URL的调用,关联会话句柄与该连接,并且然后随后将具有相同会话句柄的POST连接与该GET连接关联。web服务器开辟单独线程以处理每个连接配对可以是希望的,但是不是必须的。
已经建立GET和POST连接,客户端能够经由GET连接接收来自服务器的异步数据传输并且经由POST连接发送异步数据至服务器。服务器反向进行,经由GET连接发送数据以及经由POST连接接收数据。另外,客户端和服务器二者的行为在其他方面是相同的,就像是它们正经由单个双向套接字通信。
如本领域技术人员将理解的是,诸如HEAD、PUT、PATCH和TRACE的其它HTTP动词还可以被使用。其还将理解的是,例如可能进一步修改服务器以辨认行为像GET的HEAD事务处理上的其它动词或松弛协议限制。因此,如果服务器被修改以辨认添加的/不同的行为,其它动词可以被使用。这种修改偏离了HTTP规范的严格实施方式,然而仍然落入在本发明中。
本发明的关于用于安全实时云服务的系统和方法的预料不到的优点是若干的。为了解决安全问题,用于共享云上的过程数据的一个现有技术方法已经使用虚拟专用网络(“VPN”)。然而,从安全的角度来看,VPN的使用是有问题的,因为VPN上的每一个装置是对每一个其他机器打开的。每个装置(并且所述装置的每个用户)必须对VPN完全可信。安全是复杂的并且不是非常好的,使得使用这个方法用于打开公司之间的通信事实上是不可能的。因此,本发明允许在第三方公司之间共享数据,而不需要第三方访问现有的VPN,并且因此绝不会对那些第三方暴露VPN上的计算机和装置。另外,VPN还招致性能恶化、或是牺牲实时性能或是显著地额外成本以进行补偿(例如,需要系统的额外的硬件、计算资源和复杂性)。
更有利地,本发明允许用户使用工厂所在地的通过客户端公司进行配置以允许具体数据流被上载或下载的软件,连接用于管理工厂占地设备以及伙伴和第三方公司。
本发明可以是完全地基于软件,并且能够在现有的硬件上进行实施,因此没有对已建立的网络引入显著的复杂性。
有利地,使用本文中公开的方法,一旦建立了客户端/服务器连接,则数据能够以任意方向流动。客户端使用者能够以实时的方式监视系统、影响变化,以及立即见到它们活动的影响,犹如它们正在工作在本地系统上。或者,如果需要,则系统能够由工厂配置为单向、只读的。
本发明提供使用像OPC、TCP和ODBC那样的公开的、标准协议连接至任何工业系统的能力。这种灵活性允许通过完全利用现有设备方面的投资来进一步降低成本或利用云连通性增强新设施。本发明的示例使用除了现有SCADA系统之外,是作为用于单独机器的HMI、或访问RTU或甚至单独嵌入式装置的增强功能。
与本文中公开的方法相结合,本发明支持发布/订阅数据传送、事件驱动模型,其中客户端登记在一个时间的数据变化并且然后在随后的更新发生之后立即接收它们。这个低延迟、基于云的系统给总数据传输时间增加了微乎其微的开销,有效地保持多于网络传播时间几个微秒(或更少)的产出速度。
在一个实施方式中,本发明可以达到非常高速的性能,其通过以可能的最简单格式处理数据实现。提供数据中心设计,本系统能够利用各种类型的数据源和用户,诸如控制系统、OPC服务器、数据库、电子表格、网页、和嵌入的设备运行。优选地,当建立与云服务器的连接时,进入数据被剥离不必要的格式(XML、HTML、OPC、SQL等)并且尽可能快速传递给任何已登记的客户端。在接收端处,以客户端需求的任何方式传送数据。
利用本文中公开的方法,用于安全云服务的RIA或基于web的用户界面提供到用于服务器的任何访问以登记服务、配置数据连接选项和监视使用与费用。因此,全部数据显示屏可以经由基于web的界面进行提供。这个基于web的HMI允许用户从任何位置创建页面,并且立即部署它们。
进一步有利地,云计算的优势中的一个是其按比例增加或减少以满足其用户的需求的能力。本发明不仅能够处理数据流中的高速度活动的突发,其还能够快速地被配置为满足增长的系统的需求。用户能够通过容易使用、基于web的配置界面对具体装置增加数据点,或导致新装置、新SCADA系统、甚至新位置和设施。
本发明可操作为实时工业系统,并且能够维持云环境中的性能和安全的适合水平。其复杂的连接选项允许工厂中的主要控制系统继续运行而不需要中断。结果是到企业中的实况过程数据的鲁棒和安全馈送以提供用于实时监视、合作和预测性维护的机会。
参考图1,在一个实施例中,RIA 101建立与同时作为数据源和数据服务器100的程序直接连接。这种情况在数据源通过TCP/IP协议同时是原始数据的采集器和发射器的情况中发生。这种情况的一个实例是嵌入在PLC内的OPC-UA服务器。另一个实例是作为数据源和提供能够提供定制TCP/IP接口的TCP/IP服务器的嵌入式设备。又一个实例是提供TCP/IP接口的股票市场数据馈送。
参考图2,在一个实施例中,另一个配置包含单独的数据源202和服务器203。该配置通过将数据源202的数据协议转换为能够由RIA 201处理的TCP/IP协议扩展通信模型。通过允许服务器203与不直接提供TCP/IP接口的数据源202进行交互大大地扩大了数据源202的数目和类型。
参考图3,在一个实施例中,服务器203可以同时管理多于一个个数据源302的连接和多余一个RIA 301的连接。这种更复杂的配置将数据源302和RIA 301的数据聚合为在TCP/IP网络上的任何位置可访问的单个数据集。
在另一个实施例中,系统可以包括与一个或更多个数据源和/或一个或更多个RIA互连的多个服务器。
参考图4,在一个实施例中,示出了RIA行为和控制流的方法。RIA不需要明确的停止准则,尽管可以包括一个或更多个停止准则。当用户关闭含有RIA的web浏览器或页面时,就隐含地停止RIA。RIA同时遵循两个控制流,其能够是以单个程序线程交错或以分开的程序线程实施。
在第一控制流中,RIA尝试创建和维持与服务器的连接,并响应服务器可用数据的改变。RIA首先尝试创建连接(步骤410)。如果连接失败,就无限地再尝试连接。如果连接成功(步骤402),那么RIA可以订阅所有或部分的数据集(步骤403)。或者,服务器可以基于存在连接隐含地使RIA订阅数据集,在这种情况下可以跳过步骤403。除了订阅之外,RIA也可以将其它信息传输至服务器,从而配置数据传输的行为,例如关于连接的更新或超时参数之间的最小时间。
一旦已经建立连接,RIA就等待来自服务器的数据改变的通知(步骤404)。如果已经出现数据改变(步骤405),那么RIA以某个方式处理该数据(步骤407)。该处理可以是修改RIA的内部状态、修改图形表示、播放RIA设计人员确定的声音或任何其它编程响应。如果未出现数据改变,那么RIA检查从而确定是否因为任何原因已经失去与服务器的连接。如果还未失去与服务器的连接,那么RIA返回等待出现数据改变(步骤404)。如果已经失去与服务器的连接,那么RIA重新尝试与服务器连接(步骤401)。
与步骤401到步骤407同时,RIA也可以接受用户输入,允许用户生成能够传播回至服务器的数据改变。RIA以单独的程序线程或以与步骤401到步骤407多路复用的方式等待用户输入(步骤420)。
图4示出了单独的线程方法。如果已经出现用户输入(步骤421),那么RIA能够尝试将作为结果的数据传输至服务器。通过首先检查从而了解是否连接服务器(步骤422)来这样做。如果连接服务器,那么RIA将新数据传输至服务器(步骤423)。如果未连接服务器,那么RIA等待更多的输入(步骤420)。服务器连接的检查(步骤422)可以隐含在尝试传输数据过程中,在这种情况中实际上组合步骤422和步骤423。
RIA也可以是非交互性的,因此不可接受用户输入,在这种情形中能够省略步骤420到步骤423。
参考图5,在一个实施例中,示出了数据服务器的操作方法。服务器可以同时采集来自零个或更多个数据源的数据,同时提供数据给零个或更多个RIA连接。两个主要控制流能够通过单独的线程实施,或通过交错单个线程内的两个流控制路径实施。
为了与数据源交互,服务器必须首先创建与该数据源的连接(步骤501)。通常,服务器发起与数据源的连接。在大多数情形中,数据源可以发起与服务器的连接。如果连接成功(步骤502),那么服务器开始从数据源采集数据(步骤503)。如果连接失败,那么服务器重新尝试与数据源连接(步骤501)。如果数据源是与服务器连接的发起人,那么步骤501和步骤502合并至单个等待状态,服务器被动地等待数据源连接。数据采集(步骤503)将遵循适合数据源的方法,并且一个数据源和另一个数据源的方法可以不同。能够使服务器适应其数据能够在服务器中呈现的任何数据源。如果来自数据源的新数据可用(步骤504),那么服务器将该数据转换为服务器的内部数据表示。这允许服务器利用不同的数据表示聚合来自多个数据源的数据。在数据源、服务器、和RIA均使用相同的数据表示的简单情形中,能够省略步骤506。然后服务器尝试将数据传输至每个RIA。服务器可以首先创建连接RIA(步骤507)。如果连接一个或更多个RIA,那么服务器将数据转换为适合于RIA的数据表示(步骤508),并将该数据传输至连接的每个RIA(步骤509)。如果未连接RIA,那么服务器继续从数据源采集数据(步骤503)。服务器无限地反复执行该序列(步骤501-步骤509)。当没有需要来自数据源的数据的数据接收器连接服务器时,服务器可以选择不从该数据源采集数据。
与从数据源采集数据同时或交错进行,服务器也管理来自RIA的连接。服务器等待来自RIA的连接(步骤520)。当RIA尝试连接服务器(步骤521)时,服务器接受连接(步骤522),并继续等待来自其它RIA的连接。当等待RIA连接时,服务器也必须确定是否已经断开现有的RIA连接(步骤523)。如果已经断开RIA,那么从服务器中的任何跟踪移除RIA连接(步骤524),使得未来不会尝试传输数据(步骤509)至已断开的RIA。服务器无限地反复执行该序列(步骤520-步骤524)。当RIA尝试连接时(步骤522),服务器可以应用接收准则,使得服务器可以因任何原因(例如认证失败或服务器应用的关于RIA实例的同时连接最大数的限制)拒绝连接。
与从数据源采集数据和管理来自RIA的新连接同时或交错进行,服务器也可以从已经连接的RIA接收数据。服务器等待来自RIA的数据到达(步骤530)。当新数据到达时(步骤531),服务器将该数据转换为服务器的内部数据格式(步骤532)。然后,服务器确定当前是否连接任一RIA(步骤533)。然后,服务器将数据转换为RIA适合接收的格式(步骤534)并将数据传输至每个当前连接的RIA(步骤535)。服务器然后确定当前是否连接需要改变信息的任一数据源(步骤536)。对于需要信息的当前连接服务器的每个数据源,服务器将数据转换为适合于该数据源的格式(步骤537)并传输数据(步骤538)。服务器无限地反复执行该序列(步骤530-步骤538)。
对于服务器可以连接的每个数据源,能够重复地复制步骤501到步骤509。
对于服务器可以从其接收连接的每个RIA,能够重复地复制步骤520到步骤524。
对于每个连接的RIA,可以重复地复制步骤530到步骤538,或多路复用使得步骤530一次同时等待所有连接的RIA,或这些选项的任意组合。
能够理解的是,可以将在图4和图5中示出的方法修改为包括额外的性能,包括:RIA和数据服务器的明确停止条件;服务器能够被动等待数据源连接服务器;服务器能够主动地连接RIA;服务器能够同时管理多个数据源的连接;服务器能够同时管理多个RIA的连接;和服务器能够同时从多个RIA接收数据。
参考图6,在一个实施例中,数据服务器603能够同时管理多个RIA 601的连接有利地允许RIA 601通过服务器在彼此之间进行通信。服务器将从RIA 601传输至服务器603的任何信息视为就好像RIA 601是数据源,并将该数据传播至连接服务器且已经订阅该数据的任何其它RIA 601。令人吃惊的是,这有效地创建进行实时的互相通信的RIA网络。实际上,服务器603可以用于利用服务器支持的协议的任意组合,实现在任何数量的客户端应用之间通信。
参考图7,在一个实施例中,本发明的重要优势是能够在RIA 701中呈现出源于以其他方式通过网络无法访问的源的数据。在该实施例中,出现在电子表格应用(例如Microsoft Excel)705中的数据可以通过局域网或广域网进行传输,这在本发明之前是不可能的。Microsoft Excel的数据传输限于DDE、RTD、或通过脆弱脚本进行的ad-hoc通信。Microsoft Excel提供的协议,包括DDE、RTD、或通过脚本进行的ad-hoc通信,无法与RIA进行实时通信。本发明允许任何应用通过任何TCP/IP网络与电子表格数据进行实时通信,极大地扩大了电子表格数据应用的范畴。这种通信能力与RIA 701的组合能够使多个用户通过单个web浏览器连接与单个电子表格同步进行交互。这个相同功能扩展至服务器703支持的任何协议。
当在web浏览器内运行RIA时,RIA必须利用web服务器用于web浏览器。也就是说,用户将URL输入web浏览器,或点击web页面内该URL的链接,引起web浏览器加载含有RIA的网页。Web服务器为URL提供服务,例如Microsoft IISTM或ApacheTM。当加载和连接RIA时,事件的序列是:
1.用户选择web浏览器内的URL;
2.Web浏览器加载来自web服务器的含有RIA的页面;
3.Web浏览器起动RIA;
4.RIA通过TCP/IP连接数据服务器;
5.RIA订阅数据服务器中的数据;
6.数据服务器开始根据订阅传输数据;
7.数据服务继续直到RIA断开或以其他方式停止。
该序列要求出现web服务器,并配置web服务器为为RIA提供服务。可能方便的是使web服务器性能嵌入数据服务器内,从而降低系统组件的数量,并更加紧密地结合web功能和RIA的数据功能。
本领域的技术人员将容易理解,可以执行嵌入式浏览器或单独的非浏览器主机(有时被称为RIA的脱离浏览器模式)的RIA,从而发起RIA会话。URL和web浏览器对用户可能是不可见。因此,可以修改以上事件的序列的前三个步骤,从而反映这些替代性的实施例。
在本发明中,RIA可以是利用能够利用或生成数据的RIA框架书写的任何应用。
在一个实施例中,RIA显示对用户可见的实时数据。可视化组件可以是Gauge控件、趋势图、进度条、按钮、图像、和桌面应用中常见的其它可视化表示。由于存在多种可能的表示,特定数据集的最合适的表示将不同于另一个数据集的最合适的表示,RIA应当是用户可配置的。这意味着可以为用户呈现可视化配置工具,允许用户使数据与可视化“对象”相关联。这些可视化对象的集合能够一起布置成一般用于显示相关信息的可视化“页面”。然后,用户可以创建多个页面从而显示相关信息的不同集合。
为了使用户能够定制数据可视化,RIA必须提供集成的或单独的定制功能,一般被称为编辑器。编辑器提供用户指定显示实时数据的页面的可视化设计的工具。编辑器也可以提供设计专门版本的可视化对象的能力。
应当由web服务器存储关于各个可视化对象的设计和可视化网页的设计的信息。这允许用户创建能够由具有必要访问权限的任何其它用户在web服务器处查看的数据可视化。RIA与web服务器交互,从而存储和检索以诸如XML格式存储的文档。可以通过现有的实时数据连接或利用单独的HTTP连接执行该信息的传输。数据服务器内的内嵌web服务器简化了该传输的实施,但不是必须的。
在本发明的一个实施例中,一种实施本发明的方法的系统包含以下软件应用程序:
1.作为数据服务器的Cogent DataHubTM(Cogent Real-Time Systems公司);
2.作为web服务器的Cogent DataHub(Cogent Real-Time Systems公司);
3.作为RIA框架的Microsoft Silverlight(微软公司);
4.作为Microsoft Silverlight的协议实施层的.Net的DataHub API(CogentReal-Time Systems公司);
5.作为在web浏览器中显示实时数据的RIA的DataHub WebViewTM(Cogent Real-Time Systems公司);
6.作为可视化对象和网页设计的显示编辑器的DataHub WebView(Cogent Real-Time Systems公司)。
此外,Cogent DataHub可以发送和接收来自多个数据源的数据,包括:
1.作为电子表格应用的Microsoft ExcelTM(微软公司);
2.作为数据通信接口的OPC-DA服务器(各个制造商);
3.作为数据通信接口的OPC-UA服务器(各个制造商);
4.作为数据通信接口的OPC Xi服务器(各个制造商);
5.作为数据库接口的ODBC服务器(各个制造商)。
参考图8,在一个实施例中,依赖于特定的实施,零个或更多个数据源801连接Cogent DataHubTM 802,其进而连接Cogent DataHub WebViewTMRIA 803用于传送实时数据显示的。
在本发明的替代性实施例中,RIA框架可以是能够支持持续网络连接的任何RIA框架。诸如RIA框架的替代物的实例包括Adobe FlashTM和Adobe FlexTM。能够理解的是,其它的RIA框架也可以是合适的。
RIA可以是利用RIA框架创建的任何应用程序,该RIA框架能够利用服务器的TCP/IP通信协议消耗或产生数据。
RIA框架可以结合web浏览器,当这种情况时,例如,HTML5支持必要的TCP通信机制。
数据服务器可以是设计用于从数据源采集数据或本身用作数据源的任何应用程序,只要数据服务器也提供构造的RIA能够访问的TCP/IP通信方法。
数据源可以是能够生成实时数据的任意应用程序或系统,该实时数据能够转换为适合于在服务器内表示的格式。
数据源也可以是能够生成非实时数据的任意应用程序或系统,该非实时数据能够转换为适合于在服务器内表示的格式。通过订阅,服务器能够反复地轮询该数据或采集该数据,从而将该数据提供给RIA,即使是在原始数据是非实时的情况中。例如,数据库管理系统(DBMS)一般是非实时的,但是能够反复地轮询数据,从而在服务器内创建周期性更新的数据集,因此为RIA提供DBMS内数据的伪实时视图。
服务器和数据源可以组合成单个应用,可以是OPC-UA服务器的情况,或提供通过TCP/IP连接访问其数据的嵌入式设备的情况。
Web服务器可以是能够为含有RIA的网页提供服务的任何应用程序。
使用能够打开TCP/IP套接字和与TCP/IP套接字交互的任何编译或解释计算机语言部署的程序可以用于代替RIA,其可以在web浏览器内运行或可以不在web浏览器内运行。相似地,代替RIA,也可以利用浏览器中、脱离浏览器的主机、或通过扩展浏览器可直接执行的代码实施本发明的方法,使得浏览器、脱离浏览器的主机、或浏览器扩展能够打开TCP/IP套接字和与TCP/IP套接字交互,产生持续的网络连接,和可选地,提供图形性能。
参照图9,在一个实施例中,使用两个HTTP连接用于在客户端和服务器之间的双向流通信的机制被示出。假设的是,服务器已经正在运行,并且正在侦听服务器和客户端同意的端口上的TCP连接。出于清楚起见,HTTP协议的规范没有被示出或被描述,因为其在工业中得到相当好的限定,并且对于本领域技术人员是已知的。另外,省略了非实质的错误条件的处理。
如图9a所示,客户端启动或开始其试图经由双向HTTP流与服务器通信(步骤900)。首先,客户端生成GUID以识别目前的通信对话(步骤901)。替代性地,服务器能够在客户端的请求时生成GUID(未示出)。这个GUID将通过服务器进行使用以将GET和POST套接字彼此关联并且与客户连接关联。接下来,客户端打开HTTP GET事务处理,提供其GUID作为URL的部分(步骤902)。服务器记录该GUID并且将其与HTTP GET套接字关联(步骤903)。服务器保持这个套接字打开。然后客户端打开与服务器的HTTP POST事务处理(步骤904),再次供应GUID作为URL的部分的或在POST消息的主体中。客户端指定该HTTP POST事务处理的内容-长度是服务器可接受的字节的任意数目。服务器将HTTP POST套接字与GUID关联,因此创造客户端、POST套接字和GET套接字之间的对应关系。
一旦POST和DET套接字已经成功地被打开,则客户端可以经由POST套接字发送配置信息和在先连接未决的任何数据(步骤906)。客户端可以选择仅仅在用于给定会话的POST套接字的第一连接上发送配置信息。在随后的POST套接字连接上,可以存在是在这个点被传送的在先未传送的数据。如果任何命令或数据在步骤906中被发送,则服务器处理它们(步骤907)并且生成客户端将在步骤908中接收的零或更多响应。
一旦连接被完全地建立,则客户端和服务器分别进入等待状态,其中它们等待来自另一方的数据到达,或等待将引起他们发送数据到另一方的事件。也就是,服务器可以等待来自客户端的数据到达,或者等待局部生成(服务器生成的)事件发生(步骤919),如图9c例示。相似地,客户端可以等待来自服务器的数据到达,或等待局部生成(客户端生成的)事件发生,如图9b例示。
参照图9b,客户端将随后进入循环,其中其等待事件(步骤908)并且根据其类型处理事件(步骤909)。如果事件是发源于GET套接字的事件,则客户端将首先检查事件是否是套接字错误(步骤911)。如果是,则客户端关闭GET和POST套接字(步骤915),有效地关闭与服务器的通信会话,并且通过返回步骤902或替代性地返回至步骤901(未示出),试图创建与服务器的新的对话。如果事件是发源于GET套接字的事件并且不是一个错误,则客户端读取来自套接字的可用数据(步骤912),并且以某种方式处理数据(步骤913)。这个处理可以生成能够经由POST套接字发送回至服务器的结果(步骤914)。这个结果可以是空的结果,在这个情况下,不发送回至服务器任何信息。替代性地,客户端可以可选地选择不发送回至服务器任何信息。
在步骤914中经由POST套接字的结果传输可能失败。至少一个失败模式是HTTP协议违背。也就是,一旦客户端已经将内容-长度字节发送至服务器,则违背HTTP协议的是在POST套接字上发送更多字节。随后试图在POST套接字上发送数据将失败,因此客户端针对这个和其它失败进行检查(步骤916)。如果发送失败发生,则客户端将标记用于这个传输的数据作为未决(步骤917),并且将关闭POST套接字(步骤918)。客户端然后将试图通过返回至步骤904重新打开POST套接字。在这个示例中,客户端不应该关闭和重新打开GET套接字,因为其将终止全部对话并且将导致未决传输丢失。通过重新打开POST套接字,客户端和服务器维持它们的会话,即使发生套接字重新连接。
如果在步骤909中客户端内部地,或作为用户活动、计时器、或其它外部激励的结果生成需要与服务器通信的事件,则客户端将执行需要计算发送至服务器的数据的任何处理(步骤910)。这个数据有效地是事件的结果数据,其然后被发送至服务器(步骤914)并且遵从与如来自套接字事件的结果数据相同的传输方法。
客户端可以无限定地循环,建立到服务器的连接并且如果失败重新建立该连接。客户端可以选择将失败和重新连接状态以信号告知用户或其它程序,或可以简单地重新连接至服务器而不需要通知。
在步骤907之后,服务器还将进入循环,其中其在步骤919中等待事件,并且根据其类型处理事件(步骤920),如图9c所例示。如果事件是发源于POST套接字的事件,则服务器将首先检查该事件是否是套接字错误(步骤922)。如果事件是套接字错误,则服务器关闭POST套接字,有效地请求客户重新建立其POST套接字。这允许客户端通过仅重新建立两个通信套接字中的一个维持其与服务器的会话。如果事件是发源于POST套接字的事件并且不是错误,则服务器读取来自套接字的可用数据(步骤924),并且以某种方式处理数据(步骤925)。这个处理可以生成能够经由GET套接字发送回至客户端的结果(步骤926)。该结果可以是空结果,在这个情况下,不发送回至客户端任何信息。替代性地,服务器可以可选地选择不发送回至客户端任何信息。
在步骤926中经由GET套接字的结果传输可能失败。服务器针对传输失败进行检查(步骤927),并且如果传输失败发生,然后服务器将关闭POST和GET套接字二者,有效地结束会话(步骤928)。服务器没有试图重新建立与客户端的连接,而是如果必要的话等待客户端重新建立连接。这有效地将客户端/服务器系统返回至步骤902或替代性地返回至步骤901(未示出)。在某些实施方式中可以是令人满意的是通过多个会话维持GUID,尽管这个不是所需要的特征。
如果在步骤919中服务器内部地,或作为用户活动、计时器、另一个连接的客户端、来自数据源的数据、或其它外部激励的结果生成需要与客户端进行通信的事件,则服务器将执行计算发送至客户端的数据需要的任何处理(步骤921)。这个数据有效地是事件的结果数据,其然后被发送至客户端(步骤926)并且遵从与如来自套接字事件的结果数据相同的传输方法。
如本领域技术人员将理解的是,能够在步骤901至步骤907中存在错误处理,其在步骤901处可能关闭任何打开的套接字并且重新开始连接过程。虽然为了清楚起见这些错误处理没有被例示在图9中,但是它们将被包括在优选的实施方式中。如本领域技术人员将理解的是,客户端可以选择终止连接(例如,关闭浏览器客户端),并且任何这种终止可以以与传输错误相同的方式通过服务器进行处理。也就是,服务器将关闭GET和POST套接字,终止会话并且等待客户端连接(步骤900)。
客户端和服务器能够以任何若干方式实施等待状态,包括创建新的过程线程以执行同步等待或执行单个线程中的多个事件等待。这些是实现方式的细节,其将根据在客户端和服务器实现方式期间进行选择,但是没有偏离本发明的范围。
出乎预料的是,本发明的基本益处是能够使用HTTP或HTTPS中介套接字提供在客户端和服务器之间的高速、双向通信,并且克服了HTTP协议中的限制,并且还维持了利用现有浏览器和RIA技术的可操作性。
在一个替代性的实施例中,本发明和双向通信方法还适用于采用RIA的web客户端/服务器。
有利地,本发明在能够打开HTTP或HTTPS中介套接字的任何装置上是可操作的。例如,客户端/服务器实施方式可以包括在网络或因特网上以实时方式(可选地,以安全方式经由HTTPS)传播数据的多个服务器,而不需要在现有设施中(安全策略、防火墙、软件、硬件等)的任何主要的并且因此昂贵地变化。
参照图10,示出用于提供在通过网络1007分离开的服务器1002和客户端1001之间的直接通信的现有技术系统,如通过传统的SCADA系统进行预期的。在这个示例实施方式中,服务器1002和客户端1001位于防火墙1003、1004之后以保护在网络1007上的任何第三方(未示出)的未经授权的访问。箭头1006象征地示出客户端1001发起服务器1002上的数据的请求,并且箭头1005示出服务器1002等待来自客户端1001的传入请求。为了使客户端1001访问服务器1002上的数据,服务器的防火墙1003必须配置成允许来自外部防火墙1003的传入连接。在这个示例中,服务器1002被暴露于发源于网络1007的传入请求,并且因此防火墙1003提供可以利用的攻击或易受损的点。
当网络1007是专用网络时,假设的是服务器1002上的通过防火墙1003上的打开端口的协同恶意攻击是不可能并且是可接受的风险。然而,当网络1007是公共网络(例如,因特网)时,服务器1002上的协同攻击的可能性是高的,并且风险是不可接受的。
参照图11,在一个实施方式中,示出用于在网络1107上提供安全、实时数据的系统。与图10中示出的现有技术系统相反,图11示出的新系统例示直接客户端/服务器连接和通过本发明提供的基于云的系统之间的区别。
在本发明中,云服务器1100位于远离充当授权客户端的服务器1102和用户客户端1101(非授权)二者。服务器1102和客户端1101二者通过它们的相应防火墙1103、1104发起到云服务器1100的出站连接,如通过箭头1105、1106示出。不需要防火墙1103、1104提供任何打开的入站端口。这个配置是同等地安全,不管服务器1102和客户端1101之间的网络1107是专用的或是公用的。
服务器或授权客户端1102决定什么数据将传送至云服务器1100。进一步,每个服务器1102能够设置每个数据流是单向或是双向的,并且能够根据其需求传送其数据的某些或全部。优选地,这个配置通过顾客在授权客户端处以连接器的方式进行设置,其以以上描述的软件应用(DataHub)的形式被提供。因此,配置可以完全地在连接器中,而不是在云服务器处进行设置,从而可选地提供如果云服务器受到损伤的安全的附加层。
还示出在图11中的是充当授权客户端的多个服务器1102,其使本发明的出乎意料的结果变得可能。具体地,本发明允许多个服务器1102充当用于它们自己的数据集合的授权客户端(未例示),并且在云服务器1102处聚集用于通过一个或更多个客户端1101的不同的消耗。出乎意料的是,这允许服务器1102位于物理上彼此分离的位置中(例如,在位于世界各地的不同工厂设施中),同时产生在云服务器处的统一数据集合,使得一个或更多个客户端1101看见像从单个系统生产的统一数据集合。也就是,分布的系统作为单个系统出现给客户端。这种功能在传统的SCADA系统中是不可能的。这个至少是有利益的以提供方便并且有能力同时地监视系统的整个网络,以及以在服务器1102之间共享数据。这种应用的示例是广泛地,例如,交通工具队、装置的网络、全球金融交易系统和冗余并联系统的协调操作。
当授权客户端(服务器1102)连接至云服务器1100时,其不知道服务器1100是否包含授权客户端1102旨在公布的数据项目,并且其中那些数据项目确实存在于服务器1100中,客户端1101不知道它们当前的值。通常客户端将依赖于服务器以提供项目和它们的值,但是在授权客户端1102的情况中,是客户端1102必须提供项目和它们的值。因此,在初始连接之后,授权客户端1102必须发送整个数据集合和当前值,忽略和覆盖已经呈现在服务器1100中的任何值。当前发明可选地提供这个行为,允许任何客户端选择其是否将对特定数据集合是授权的。
相似地,当授权客户端1102从云服务器1100断开连接时,其必须能够通知其它连接的客户端数据的授权源不在提供数据。当客户端断开连接以指示那些数据项目“没有连接”时,授权客户端1102通知服务器其是授权的,并且额外地指示服务器1100改变服务器中的数据项目的特性。云服务器1100必须在这个过程中共同操作,因为在数据项目已经被标记为“没有连接”之前,授权客户端已经断开连接,并且服务器必须传播状态的这个变化(有时被称为“质量(quality)”)至其它连接的客户端。
这些重要的特征的组合确保服务器1100上的数据是与授权客户端1102上的数据一致,或是其是在已知错误状态中以指示授权客户端1102没有被连接至云服务器1100。
参照图12,在另一个实施方式中,示出与图11中示出的系统相似的系统,但是是以更形象地描述方式。具体地,服务器的示例性类型可以包括嵌入式装置、SCADA系统或各种连接的消费品,全部产生、传播、传送和/或接收数据(某些以实时方式,某些不是)。如图12例示,这些装置是在防火墙之后,而不需要打开传入防火墙端口,从而消除来自公共网络上的可能是黑客的直接攻击(未示出)。在相同公共网络上,安全云服务器可以接收通过在防火墙后面的装置发起的出站连接,如通过跨防火墙到云服务器的大箭头象征地例示的。在大箭头内,数据可以安全地传送回至装置。
另外在图12中示出的是本发明的另一个方面,为了数据分析(例如,生成关键性能指数)凭借云服务器可以采用上述方法以将数据传送至RIA用于预测性维护或HMI显示或发送至数据库,或以提供改变(例如,经由电子邮件或SMS)。
在另一个实施例(未示出)中,防火墙没有被提供在网络上的服务器、客户端或装置的前面,其中服务器/客户端/装置被配置为拒绝入站连接请求。这个与采用忽略到防火墙后面的服务器/客户端/装置的入站连接请求的防火墙形成对比。在这个实施例中,服务器/客户端/装置的操作系统勉强利用“没有人在侦听”的响应来响应于入站连接请求。尽管这个配置可能比采用防火墙安全低,存在其中服务器/客户端/装置是受限于不可能包括防火墙的点的源的情况。出乎意料的是,本发明因此提供与源受限制的装置通信的一个安全方法。
应该理解的是,当例如涉及驻留在例如服务器和客户端之间的网络时,网络本身可以包括一系列的网络连接,也就是存在没有隐含的直接连接。相似地,在因特网“上”的任何服务器、客户端、或装置被理解为意味着服务器、客户端或装置连接至是可访问至因特网的网络连接。
这还理解的是,对于数据集合上的授权,或数据集合的授权持有者涉及数据集合的组织者和持有非授权拷贝的数据集合的所有其它接收者。在本发明中,服务器、客户端或装置能够继承来自另一个服务器、客户端或装置的授权;例如,云服务器可以充当另一个客户端/终端用户装置的数据集合上的授权;客户端/终端用户装置将云服务器视作数据集合上的授权,但是对客户端/终端用户装置未知,云服务器可以传播来自连接至云服务器的“真”授权客户端/终端用户装置的数据。理解的是本发明允许互相连接的并且继承共享在它们之间的多个数据集合上的授权的服务器、客户端和装置的大量组合。

Claims (26)

1.一种提供安全网络连接的方法,所述方法包括:
在服务器处,侦听在所述服务器和第一客户端之间的网络上的到服务器的入站连接请求;
在所述服务器处,接收来自所述第一客户端的第一入站连接请求;
根据所述第一入站连接请求,建立所述服务器和所述第一客户端之间的第一网络连接;以及
在所述第一网络连接上,在所述服务器处,接收来自所述第一客户端的第一数据集合,其中所述第一客户端是所述第一数据集合的授权源并且经由入站连接请求是不可访问的。
2.根据权利要求1所述的方法,进一步包括:
在所述服务器处,接收来自所述网络上的第二客户端的第二入站连接请求;
根据所述第二入站连接请求,建立所述服务器和所述第二客户端之间的第二网络连接;以及
在所述第二网络连接上,将来自所述服务器的所述第一数据集合传播至所述第二客户端,并且
其中,所述服务器相对于所述第二客户端是所述第一数据集合的授权源。
3.根据权利要求2所述的方法,进一步包括:
在所述服务器处,接收来自所述第二客户端的第一数据子集,所述第一数据子集是所述第二客户端对所述第一数据集合的子集的修改;以及
将来自所述服务器的所述第一数据子集传播至所述第一客户端。
4.根据权利要求2所述的方法,进一步包括:
在所述服务器处,接收来自所述第二客户端的第二数据集合,其中所述第二客户端是所述第二数据集合的授权源。
5.根据权利要求2所述的方法,进一步包括:
在所述第一网络连接和所述第二网络连接上,经由所述服务器,传播所述第一数据集合和来自所述第二客户端的第二数据集合中的至少一个至所述第一客户端。
6.根据权利要求2所述的方法,其中所述第二客户端经由入站连接请求是不可访问的。
7.根据权利要求2所述的方法,其中相对于所述网络上的一个或更多个二次终端用户装置,所述第二客户端充当第二服务器和所述第一数据集合的授权源。
8.根据权利要求4所述的方法,其中相对于所述网络上的一个或更多个二次终端用户装置,所述第二客户端充当第二服务器和所述第二数据集合的授权源。
9.根据权利要求2所述的方法,其中所述第二客户端充当用于(i)所述第一客户端、(ii)或所述网络上的一个或更多个二次终端用户装置,或(i)和(ii)的组合的数据服务器。
10.根据权利要求2所述的方法,其中所述第二客户端同时是用于所述第一客户端或所述网络上的一个或更多个二次终端用户装置的数据的授权源以及用于所述第一客户端或所述网络上的一个或更多个二次终端用户装置的非授权服务器。
11.根据权利要求3所述的方法,进一步包括:
在所述第一客户端处,确定接受或拒绝所述第一数据子集;以及
当所述第一客户端接受所述第一数据子集时,将所述第一数据子集插入至所述第一数据集合中。
12.一种具有在其上存储的一个或更多个指令序列的非易失性计算机可读介质,所述一个或更多个指令序列用于引起一个或更多个处理器执行权利要求1-11中的任何一项中的方法。
13.一种系统,所述系统包括:
一个或更多个处理器;以及
计算机可读存储介质,其耦合至所述一个或更多个计算机处理器,所述计算机可读存储介质包括存储在其上的指令,其中,所述指令当由所述一个或更多个处理器执行时,导致所述一个或更多个处理器执行权利要求1-11中的任何一项中的方法。
14.一种提供安全网络连接的方法,所述方法包括:
通过第一客户端向网络上的服务器传送第一入站连接请求;
根据所述第一入站连接请求,建立所述服务器和所述第一客户端之间的第一网络连接;以及
在所述第一网络连接上,通过所述第一客户端向所述服务器传送第一数据集合,其中所述第一客户端是所述第一数据集合的授权源并且经由入站连接请求是不可访问的。
15.根据权利要求14所述的方法,进一步包括:
通过所述第一客户端接收来自所述服务器的第一数据子集,所述第一数据子集已经通过第二客户端生成并且通过所述第二客户端传送至所述服务器,所述第一数据子集是对所述第一数据集合的子集的修改,其中相对于所述第二客户端,所述服务器是所述第一数据集合的授权源。
16.根据权利要求14所述的方法,进一步包括:
通过所述网络上的第二客户端向所述服务器传送第二入站连接请求;
根据所述第二入站连接请求,建立所述服务器和所述第二客户端之间的第二网络连接;以及
在所述第二网络连接上,在所述第二客户端处,接收来自所述服务器的所述第一数据集合,以及
其中相对于所述第二客户端,所述服务器是所述第一数据集合的授权源。
17.根据权利要求16所述的方法,进一步包括:
通过所述第二客户端向所述服务器传送第二数据集合,其中所述第二客户端是所述第二数据集合的授权源。
18.根据权利要求16所述的方法,进一步包括:
在所述第一网络连接和所述第二网络连接上,通过所述第一客户端接收所述第一数据集合和来自所述第二客户端的第二数据集合中的至少一个。
19.根据权利要求16所述的方法,其中所述第二客户端经由入站连接请求是不可访问的。
20.根据权利要求16所述的方法,其中相对于所述网络上的一个或更多个二次终端用户装置,所述第二客户端充当第二服务器和所述第一数据集合的授权源。
21.根据权利要求17所述的方法,其中相对于所述网络上的一个或更多个二次终端用户装置,所述第二客户端充当第二服务器和所述第二数据集合的授权源。
22.根据权利要求16所述的方法,其中所述第二客户端充当用于(i)所述第一客户端,(ii)或所述网络上的一个或更多个二次终端用户装置,或(i)和(ii)的组合的数据服务器。
23.根据权利要求16的所述方法,其中所述第二客户端同时是用于所述第一客户端或所述网络上的一个或更多个二次终端用户装置的数据的授权源和用于所述第一客户端或所述网络上的一个或更多个二次终端用户装置的非授权服务器。
24.根据权利要求15的所述方法,进一步包括:
在所述第一客户端处,确定接受或拒绝所述第一数据子集;以及
当所述第一客户端接受所述第一数据子集时,将所述第一数据子集插入至所述第一数据集合中。
25.一种具有存储在其上的一个或更多个指令序列的非易失性计算机可读介质,所述一个或更多个指令序列用于引起一个或更多个处理器执行权利要求14-24中的任何一项中的方法。
26.一种系统,包括:
一个或更多个处理器;
计算机可读存储介质,其耦合至所述一个或更多个计算机处理器,所述计算机可读存储介质包括存储在其上的指令,其中所述指令当由所述一个或更多个处理器执行时引起所述一个或更多个处理器执行权利要求14-24的任何一项中的方法。
CN201580040579.7A 2014-07-10 2015-07-09 用于安全实时的云服务的系统和方法 Pending CN106797312A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201462023172P 2014-07-10 2014-07-10
US62/023,172 2014-07-10
US201462035473P 2014-08-10 2014-08-10
US62/035,473 2014-08-10
US14/542,427 US9100424B1 (en) 2014-07-10 2014-11-14 System and method for secure real-time cloud services
US14/542,427 2014-11-14
US14/743,666 US9288272B2 (en) 2014-07-10 2015-06-18 System and method for secure real-time cloud services
US14/743,666 2015-06-18
PCT/IB2015/001765 WO2016005821A2 (en) 2014-07-10 2015-07-09 System and method for secure real-time cloud services

Publications (1)

Publication Number Publication Date
CN106797312A true CN106797312A (zh) 2017-05-31

Family

ID=55065035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580040579.7A Pending CN106797312A (zh) 2014-07-10 2015-07-09 用于安全实时的云服务的系统和方法

Country Status (7)

Country Link
US (2) US9288272B2 (zh)
EP (1) EP3167568A4 (zh)
JP (1) JP6689838B2 (zh)
KR (1) KR20170057228A (zh)
CN (1) CN106797312A (zh)
CA (1) CA2991685C (zh)
WO (1) WO2016005821A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109033116A (zh) * 2018-03-20 2018-12-18 广州中国科学院软件应用技术研究所 一种基于数据血统的信息数据回流系统及方法
CN109040065A (zh) * 2018-08-01 2018-12-18 杭州安恒信息技术股份有限公司 一种云安全管理平台与云平台的对接方法及装置
CN109462659A (zh) * 2018-12-17 2019-03-12 深圳市网心科技有限公司 嵌入式设备远程访问控制系统、方法及存储介质
CN109618012A (zh) * 2019-02-21 2019-04-12 腾讯科技(深圳)有限公司 建立连接的方法、装置、终端及存储介质

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10462206B2 (en) 2009-10-16 2019-10-29 Real Innovations International Llc Bidirectional networked real-time data exchange using a spreadsheet application
US10498796B2 (en) 2009-10-16 2019-12-03 Real Innovations International Llc System and method for providing real-time data
EP2996307B1 (de) * 2014-09-10 2019-11-27 Siemens Aktiengesellschaft Verfahren zur energieoptimierten datenübertragung mittels opc ua protokoll
DE102016106003A1 (de) * 2016-04-01 2017-10-05 Sick Ag Anzeige- und Bedieneinheit und Verfahren zur Bedienung eines Feldgeräts mit einer Anzeige- und Bedieneinheit
EP3440349B1 (en) * 2016-04-07 2021-06-16 Vestas Wind Systems A/S Data collection system for wind turbine data
EP3260991A1 (en) * 2016-06-20 2017-12-27 Siemens Aktiengesellschaft System and method configured to execute data model transformations on data for cloud based applications
US10382395B2 (en) * 2016-07-25 2019-08-13 Honeywell International Inc. Industrial process control using IP communications with publisher subscriber pattern
CA3062745C (en) * 2016-11-20 2023-09-05 Real Innovations International Llc Bidirectional networked real-time data exchange using a spreadsheet application
US11323519B2 (en) * 2017-04-19 2022-05-03 Microsoft Technology Licensing, Llc Internet of things pub-sub data publisher
CN107343042B (zh) * 2017-07-03 2020-06-23 网宿科技股份有限公司 浏览器流量劫持方法、装置及移动终端
US10778726B2 (en) 2017-08-31 2020-09-15 Microsoft Technology Licensing, Llc Bidirectional data exchange between computing devices
US20190068684A1 (en) * 2017-08-31 2019-02-28 Microsoft Technology Licensing, Llc Bidirectional data exchange
WO2019204642A1 (en) * 2018-04-18 2019-10-24 Iboss, Inc. Hybrid cloud computing network management
US10997192B2 (en) 2019-01-31 2021-05-04 Splunk Inc. Data source correlation user interface
US10719332B1 (en) * 2019-04-29 2020-07-21 Splunk Inc. Provisioning a client device with a multi-component application
US10754638B1 (en) 2019-04-29 2020-08-25 Splunk Inc. Enabling agile functionality updates using multi-component application
US11194564B1 (en) 2019-04-29 2021-12-07 Splunk Inc. Maintaining compatibility in a multi-component application
US11151125B1 (en) 2019-10-18 2021-10-19 Splunk Inc. Efficient updating of journey instances detected within unstructured event data
US11363090B2 (en) * 2019-11-25 2022-06-14 Citrix Systems, Inc. Integrating web applications with local client applications in multi-user client environment
CA3181369A1 (en) 2020-04-27 2021-11-04 Real Innovations International Llc Secure remote access to historical data
US11277381B2 (en) 2020-04-30 2022-03-15 Kyndryl, Inc. Multi-channel based just-in-time firewall control
US11269876B1 (en) 2020-04-30 2022-03-08 Splunk Inc. Supporting graph data structure transformations in graphs generated from a query to event data
US11741131B1 (en) 2020-07-31 2023-08-29 Splunk Inc. Fragmented upload and re-stitching of journey instances detected within event data
CN113010820B (zh) * 2021-03-22 2023-07-04 中国联合网络通信集团有限公司 页面数据更新方法、装置、电子设备、介质及程序产品

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1364374A (zh) * 1999-05-18 2002-08-14 Jp摩根蔡斯银行 安全会话定序的代理系统及其方法
CN101095134A (zh) * 2004-04-12 2007-12-26 Xds有限公司 自动发起和动态建立有防火墙的服务器和有防火墙的客户机之间的安全的因特网连接的系统和方法
CN102598584A (zh) * 2009-10-16 2012-07-18 瑞尔创新国际公司 提供实时数据的系统和方法
US20130041931A1 (en) * 2011-08-08 2013-02-14 Ctera Networks Ltd. Remote access service for cloud-enabled network devices
US20130212227A1 (en) * 2012-02-09 2013-08-15 Cogent Real-Time Systems Inc. System and method for streaming data via http

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625643B1 (en) 1998-11-13 2003-09-23 Akamai Technologies, Inc. System and method for resource management on a data network
EP1045549A1 (en) * 1999-04-15 2000-10-18 International Business Machines Corporation System and method for non intrusive monitoring and management of distributed data networks
US6370576B1 (en) 1999-05-27 2002-04-09 Nadio.Com, Inc. System and method for obstacle-free network communication
US6941374B1 (en) * 1999-08-05 2005-09-06 Amazon.Com, Inc. Hidden agent transfer protocol
US8793374B2 (en) * 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
JP2001346342A (ja) * 2000-06-01 2001-12-14 Toshiba Corp 遠隔操作端末
GB2366163A (en) 2000-08-14 2002-02-27 Global Knowledge Network Ltd Inter-network connection through intermediary server
US7043644B2 (en) 2001-01-31 2006-05-09 Qurio Holdings, Inc. Facilitating file access from firewall-protected nodes in a peer-to-peer network
JP4206206B2 (ja) * 2001-06-20 2009-01-07 株式会社日立製作所 情報資源の更新方法
US7308710B2 (en) * 2001-09-28 2007-12-11 Jp Morgan Chase Bank Secured FTP architecture
JP3984046B2 (ja) * 2001-12-21 2007-09-26 日清エンジニアリング株式会社 情報配信装置並びにリモートエンジニアリングシステム
US7392316B2 (en) 2003-06-30 2008-06-24 Microsoft Corporation Client to server streaming of multimedia content using HTTP
AU2005247504B2 (en) 2004-05-25 2008-12-18 Reflexion Networks, Inc. A system and method for controlling access to an electronic message recipient
US7849133B2 (en) 2007-08-07 2010-12-07 Ticketmaster, Llc Systems and methods for providing resource allocation in a networked environment
US8181238B2 (en) 2007-08-30 2012-05-15 Software Ag Systems and/or methods for streaming reverse HTTP gateway, and network including the same
US8769129B2 (en) 2007-11-14 2014-07-01 Juniper Networks, Inc. Server initiated secure network connection
US8336094B2 (en) 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
JP5599582B2 (ja) * 2009-07-15 2014-10-01 株式会社日立製作所 原子力発電プラントの監視システムおよび運転・保守データ管理システム
US8478821B2 (en) 2010-03-05 2013-07-02 Veetle, Inc. Network membership management for peer-to-peer networking

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1364374A (zh) * 1999-05-18 2002-08-14 Jp摩根蔡斯银行 安全会话定序的代理系统及其方法
CN101095134A (zh) * 2004-04-12 2007-12-26 Xds有限公司 自动发起和动态建立有防火墙的服务器和有防火墙的客户机之间的安全的因特网连接的系统和方法
CN102598584A (zh) * 2009-10-16 2012-07-18 瑞尔创新国际公司 提供实时数据的系统和方法
US20130041931A1 (en) * 2011-08-08 2013-02-14 Ctera Networks Ltd. Remote access service for cloud-enabled network devices
US20130212227A1 (en) * 2012-02-09 2013-08-15 Cogent Real-Time Systems Inc. System and method for streaming data via http

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109033116A (zh) * 2018-03-20 2018-12-18 广州中国科学院软件应用技术研究所 一种基于数据血统的信息数据回流系统及方法
CN109033116B (zh) * 2018-03-20 2021-07-09 广州中国科学院软件应用技术研究所 一种基于数据血统的信息数据回流系统及方法
CN109040065A (zh) * 2018-08-01 2018-12-18 杭州安恒信息技术股份有限公司 一种云安全管理平台与云平台的对接方法及装置
CN109040065B (zh) * 2018-08-01 2021-04-23 杭州安恒信息技术股份有限公司 一种云安全管理平台与云平台的对接方法及装置
CN109462659A (zh) * 2018-12-17 2019-03-12 深圳市网心科技有限公司 嵌入式设备远程访问控制系统、方法及存储介质
CN109462659B (zh) * 2018-12-17 2021-06-15 深圳市网心科技有限公司 嵌入式设备远程访问控制系统、方法及存储介质
CN109618012A (zh) * 2019-02-21 2019-04-12 腾讯科技(深圳)有限公司 建立连接的方法、装置、终端及存储介质
CN109618012B (zh) * 2019-02-21 2021-10-15 腾讯科技(深圳)有限公司 建立连接的方法、装置、终端及存储介质

Also Published As

Publication number Publication date
US9762675B2 (en) 2017-09-12
WO2016005821A3 (en) 2016-03-17
KR20170057228A (ko) 2017-05-24
US9288272B2 (en) 2016-03-15
WO2016005821A2 (en) 2016-01-14
CA2991685C (en) 2023-09-26
JP6689838B2 (ja) 2020-04-28
US20160150025A1 (en) 2016-05-26
EP3167568A2 (en) 2017-05-17
JP2017530487A (ja) 2017-10-12
EP3167568A4 (en) 2018-04-25
US20160014210A1 (en) 2016-01-14
CA2991685A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
CN106797312A (zh) 用于安全实时的云服务的系统和方法
US10462206B2 (en) Bidirectional networked real-time data exchange using a spreadsheet application
JP6314204B2 (ja) 実時間データを提供するためのシステムおよび方法
US10558744B2 (en) Bidirectional networked real-time data exchange using a spreadsheet application
US9100424B1 (en) System and method for secure real-time cloud services
Jourdain et al. ParaViewWeb: A web framework for 3D visualization and data processing
US20160291826A1 (en) STANDALONE AND DISTRIBUTED APPLICATION FOR SIMULATION OF INTERNET OF THINGS (IoT) SCENARIOS
US10498796B2 (en) System and method for providing real-time data
US20130212227A1 (en) System and method for streaming data via http
CN102646055B (zh) 一种系统间数据交互的方法
CN108701130A (zh) 使用自动浏览群集更新提示模型
CN109194637A (zh) 一种用于教育云平台的内外网通讯方法及系统
WO2023150722A1 (en) Systems for multi-blockchain, multi-token interoperability via common blockchain integration and methods of use thereof
Sill Invention, innovation, and new apis
Kachhwaha et al. Ajax enabled web application model with comet programming
CN103338197B (zh) 一种服务器访问方法及系统、服务器
CN118264722A (zh) 物联网设备多协议适配方法、装置及相关设备
CN117742706A (zh) 智能楼宇移动端应用的开发方法、装置以及电子设备
Solhaug Design and implementation of a real-time web based interactive system
Lerner At the forge: talking to Twitter

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170531

WD01 Invention patent application deemed withdrawn after publication