CN101946493B - 用于提供连接到因特网的客户端之间的连接性的方法和系统 - Google Patents
用于提供连接到因特网的客户端之间的连接性的方法和系统 Download PDFInfo
- Publication number
- CN101946493B CN101946493B CN200880126827.XA CN200880126827A CN101946493B CN 101946493 B CN101946493 B CN 101946493B CN 200880126827 A CN200880126827 A CN 200880126827A CN 101946493 B CN101946493 B CN 101946493B
- Authority
- CN
- China
- Prior art keywords
- client
- control server
- web
- described control
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4535—Network directories; Name-to-address mapping using an address exchange platform which sets up a session between two nodes, e.g. rendezvous servers, session initiation protocols [SIP] registrars or H.323 gatekeepers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用于识别并连接被连接到包括控制服务器(6)的同一网络(2)的客户端(1a-1d)的方法和系统(5),执行以下步骤:将运行网页浏览器应用程序(4a-4d)的第一客户端(1a-1d)连接到控制服务器(6)并注册与第一客户端相关联的客户端专用连接信息,接收来自网页浏览器应用程序(4a-4d)的对由控制服务器(6)所定义并与第二客户端(1a-1d)相关联的唯一URI的请求,请求控制服务器(6)居间促成到与所述唯一URI相关联的第二客户端(1a-1d)的连接并在直接连接上接收来自第二客户端(1a-1d)的数据并将该数据转发给网页浏览器应用程序(4a-4d)以用于在图形用户界面中显示接收到的数据。
Description
技术领域
本发明涉及通过使用控制服务器来识别并连接连接到同一网络(诸如因特网)的客户端的方法和系统。
背景技术
因特网上的通信的主要部分是基于在诸如个人计算机这样的客户端上运行的网页浏览器。网页浏览器对因特网上的服务器所提供的信息(诸如包含图片和Java小应用程序的HTML页)进行简单地解释,并在诸如计算机屏幕这样的图形用户界面中显示这些内容。因特网用户非常熟悉网页浏览器的使用,因此作为应用程序的网页浏览器是非常重要的工具,以提供对因特网上可用内容的访问。由于网页浏览器的普及性,所以它们的功能已经扩展到包括诸如FTP文件传输和阅读RSS馈送这样的特征,以使这种广泛分布的应用程序更适用于访问因特网上可用的内容和信息。
然而,为了用网页浏览器访问内容和信息,必须使得期望的内容或信息能够在适用于提供网络服务的中央网络服务器上获得。存在向网络服务器上载内容以使该内容对所有的因特网用户而言都可用的若干服务,甚至存在提供私人共享内容和信息的基于网络的服务。通过上载内容(诸如数字图像和视频片段)到网络服务器来与其它可信的因特网用户共享这些内容对大部分的用户而言是冗长的任务,对某些用户而言甚至是困难的任务。另一个更困难的解决方案是建立诸如网络服务器或FTP服务器这样的用于共享内容的私人服务器。
将连接到因特网的客户端直接连接(这可被认为是可替换的方式)的困难在于仅有少数的连接到因特网的客户端具有固定的IP地址并且大部分的客户端由于因特网对无保护系统的敌对特性而躲在防火墙之后。因此,实际上,就内容和信息共享而言,连接到因特网的私人客户端不是因特网的一部分。这种客户端仅是被动客户端(passive client),它们不能直接与其它用户共享内容并且也不能以对平常的普通用户而言简单的方式被因特网的其它用户看见和访问。因此,存在着巨大的潜力来将因特网扩展到包括这些通常不可见和被动的客户端。
为了在连接到因特网基础设施的客户端之间提供更好和更透明的连接性,已经进行了若干尝试,以便共享诸如数码相片和视频这样的内容。
US 2006/0224759公开了一种通过使用网页插件来提供点对点流的方法和系统,它将网页浏览器的功能扩展到显示在点对点网络中流动的内容。然而,被流动的内容源并不是源自单独的同位体,而是被存储在具有中央存储器和/或视频和音频捕获设备的流服务器中或者提供自所述流服务器。控制服务器维护对等列表,在每次同位体连接到网络时该对等列表得到更新。当同位体正在流动来自流服务器的内容时,它们可被配置为高速缓存或临时存储所流动的内容,然后所流动的内容可被分配给其它的同位体以便降低流服务器的负担。
在US 2005/0229243中,公开了一种用于提供运行网页浏览器的同位体的方法和系统,该网页浏览器http接入到位于防火墙背后的对等服务器。该公开包括在点对点网络中提供中央代理服务器,服务器同位体向中央代理服务器注册出站套接字(socket)连接。中央代理服务器处理来自同位体的网页浏览器的输入http请求,并将这些请求转换成请求数据包,通过使用所注册的出站套接字连接,所述请求数据包被发送给对等服务器。来自对等服务器的响应被转换成HTTP请求,以便提供通用网络业务流。
发明内容
基于上面概述的背景技术,本发明的总体目的是提供一种用于识别和连接连接到同一网络的客户端的方法和系统。
为了实现该目的,下面的描述将变得明显,根据本发明的第一方面,提供一种方法,用于执行下面的步骤:
将运行网页浏览器应用程序的第一客户端连接到控制服务器并注册与所述第一客户端相关联的客户端专用连接信息,
从所述网页浏览器应用程序接收由所述控制服务器所定义并与第二客户端相关联的唯一URI的请求,
请求所述控制服务器居间促成(mediate)到与所述唯一的URI相关联的第二客户端的连接,
接收与所述第二客户端相关联的连接信息,
通过使用与所述第二客户端相关联的连接信息来建立到所述第二客户端的直接连接,其中连接建立由所述控制服务器居间促成,
在所述直接连接上接收来自所述第二客户端的数据,并将所述数据转发给所述网页浏览器应用程序以用于在图形用户界面中显示所接收到的数据。
通过利用已存在的基础设施及其用途,本发明提供了连接到因特网的客户端之间的直接通信。因此,通过使用已存在的网页浏览器可获得更多的内容,并且具有连接到因特网的计算机的用户能够容易地使其它计算机访问存储在本地计算机上的内容。
此外,本发明避免了客户端为了彼此共享内容而对具有用户所知的IP地址的需求,因为客户端使用控制服务器所分配的、用于彼此识别和连接的唯一的URI。这在移动设置方面是有优势的,因为客户端可从一个网络移动到另一个网络,而且这在典型的因特网服务提供商(ISP)通过使用DHCP来动态地改变用户的IP地址的私人消费者设置方面也是有优势的。
在优选的实用实施方式中,所述应用程序是网页浏览器应用程序。
在优选的实施方式中,根据本发明的步骤由安装在网页浏览器应用程序中的插件来完成,这是非常简单的方式来将本发明所提供的新功能添加到已经安装到客户端上的网页浏览器应用程序中。这还使得有可能使用诸如用于微软Internet Explorer的异步可插协议这样的已有技术,这些已有技术在浏览器中注册以处理新协议命名空间中的所有URI来建立客户端之间的直接通信。
在另一优选的实用实施方式中,将所述方法嵌入到包含适用于与所述应用程序交互的API的操作系统或库中。
在本发明的另一实用实施方式(该实施方式已经被说明是非常实用的)中,使用域名系统的基础设施来解析URI。因此,可用URI来识别控制服务器网络上的位置。
在特别优选的实施方式中,在建立直接连接的步骤中的所述第一和第二客户端使用由控制服务器居间促成的TCP或UDP穿孔技术来建立用于通信的直接连接。
这已经被证明是建立客户端之间的直接通信的非常可靠且有效的方式,客户端之间的直接通信还限制了系统服务器上的负担。
在特别的实施方式中,向控制服务器注册的每个客户端的连接信息包括IP地址和端口号。
在非常容易实施的一个实施方式中,第二客户端包括来自第一客户端的进入的请求所指向的网络服务器。
在本发明的另一实施方式中,将控制服务器的连接居间促成分布到被指定为客户端子控制器的一个或多个级别的客户端上。
在另一实施方式中,网页浏览器应用程序初始接收包含嵌入式网页应用程序的网页,并且其中通过嵌入式网页应用程序来执行随后的步骤。
这样,在彼此连接的客户端上不修改和不安装附加软件的情况下,有可能实施根据本发明的方法。该方法仅在网页画面中执行,而且不改变客户端本地处的任何内容。这对于诸如具有有限存储容量和存储装置的移动电话和个人数字助理这样的便携式客户端而言或者当某个客户端首次连接到另一客户端上时是非常有用的。
在本发明的另一方面,所述方法还包括以下步骤:
从所述控制服务器接收可访问客户端的信息,包括与连接到所述控制服务器的客户端相关联的唯一URI,
向运行于所述第一客户端上的网页浏览器应用程序转发所述信息,以在图形用户界面中显示所述信息。
这样,有可能概览哪些熟知的客户端是可用的以及它们可通过使用网页浏览器应用程序而容易地被访问。
对于该方法的实施,提供了根据本发明的又一方面的系统,其中:
第一客户端连接到控制服务器,并注册与所述第一客户端相关联的客户端专用连接信息,
第二客户端连接到所述控制服务器,并注册与所述第二客户端相关联的客户端专用连接信息,
所述第二客户端被分配了唯一的URI,
所述控制服务器被请求居间促成到与由运行于所述第一客户端上的网页浏览器应用程序所请求的唯一的URI相关联的第二客户端的连接,
所述控制服务器向所述第一客户端转发与所述第二客户端相关联的连接信息,以及向所述第二客户端转发与所述第一客户端相关联的连接信息,
所述控制服务器居间促成第一客户端之间的直接连接的建立,
所述第一客户端接收来自所述第二客户端的数据,该数据被转发给网页浏览器应用程序并在图形用户界面中被显示。
在实用的实施方式中,所述应用程序是网页浏览器应用程序。
在优选的实施方式中,至少第一客户端的网页浏览器应用程序包括插件,该插件与控制服务器和第二客户端进行通信。
在另一实用实施方式(其便于根据本发明的系统的使用以及方法的实施)中,至少一个客户端的操作系统或库包括适用于与所述应用程序交互的API。
在另一实用且非常有用的实施方式中,URI可通过使用域名系统的基础设施来进行解析。
在本发明的实用实施方式中,第一客户端和第二客户端之间的直接连接通过使用由控制服务器所居间促成的TCP或UDP穿孔技术来建立。
在本发明的另一实施方式中,向控制服务器注册的连接信息包括IP地址和端口号。
在本发明的另一实用实施方式中,第二客户端包括来自第一客户端的进入的请求所指向的网络服务器。
在本发明的实用实施方式中,第一客户端通过包含在网页中的嵌入式网页应用程序连接到所述系统,该网页由所述系统的中间方网络服务提供给第一客户端。
在本发明的另一实施方式中,将控制服务器的连接居间促成分布到被指定为客户端子控制器的一个或多个级别的客户端上。
在本发明的另一实施方式中,至少第一客户端接收来自控制服务器的可访问客户端的信息,包括与连接到控制服务器的客户端相关联的唯一的URI,
向运行于所述第一客户端上的网页浏览器应用程序转发所述信息,以在图形用户界面中显示所述信息。
附图说明
下面将通过示意性附图所示的优选实施方式来进一步解释本发明,其中:
图1示出了两个连接到因特网的客户端;
图2示出了根据本发明的系统;
图3示出了图2的细节;
图4示出了本发明的特别的实施方式。
具体实施方式
图1示出了连接到诸如因特网这样的网络2的两个客户端1a、1b。客户端1a、1b通常通过因特网服务提供商(ISP)连接到因特网或者连接到公司或研究机构的局域网(LAN)。在大部分的情况中,这些客户端位于图2所示的防火墙3a、3d的背后,防火墙3a、3d通过检查通过它的网络业务来保护客户端1a、1d并基于一组规则来拒绝或允许通过。防火墙3a、3d通常被设置在路由器(未示出)的背后,路由器将小的专用网络或者例如LAN连接到因特网。该设置使得普通用户难于访问连接到因特网的其它客户端1a-1d,因此在某种意义上,因特网被限制在位于网络2中的客户端或服务器中。位于网络2中的服务器(未示出)和客户端为例如网络服务器,网络服务器为因特网的用户提供诸如HTML页或其它数据结构这样的网络内容。网络服务器可被理解为运行于服务器或客户端上以便因特网用户可通过网页(诸如具有诸如图片和视频这样的链接对象的HTML文档)的形式来获得内容或服务的应用程序。
连接到因特网上的大部分的客户端1a-1d都配有网页浏览器应用程序4a-4d,以用于访问和观看由例如网络服务器在因特网上所提供的内容。这不仅对个人计算机是如此,而且对诸如个人数字助理和移动电话这样的具有有限处理能力的移动终端也是如此。
图2示出了根据本发明的系统5,其为连接到因特网的客户端1a-1d提供了连接基础设施。客户端1a-1d使用不同的设置来连接到因特网。客户端1a位于防火墙3a的背后,并且在每次客户端1a连接到因特网2时由例如ISP提供不同的公共IP地址。因此,连接到客户端1a所需的信息经常改变并且客户端1a位于防火墙3a的背后,防火墙3a控制对客户端1a的访问。客户端1b配有静态IP地址并且不位于防火墙的背后,这使得其它用户端的用户能够相对容易地访问客户端1b。然而,对于因特网的平均用户而言,如何通过直接使用另一客户端的IP地址来连接到该客户端是不明显的。客户端1c也在没有防火墙保护的情况下连接到因特网,但是与客户端1b不同的是,客户端1c配有动态IP地址,其与上面对客户端1a所描述的情况一样经常改变。客户端1d是用于将客户端1d连接到因特网的又一可能的设置。客户端1d位于防火墙的背后但配有静态IP地址。
客户端1a-1d示出了用于将客户端连接到因特网的各种设置,还示出了每个客户端必须以不同的方式被访问以便建立两个客户端之间的直接连接的事实。本发明通过提供图2的系统5来处理这个问题,不管客户端1a-1d使用哪些设置来连接到因特网2,其都促成了某个客户端(诸如客户端1a)的用户访问另一客户端1a-1d。而且,本发明还在不需要用户知道诸如IP地址和端口号这样的不同的客户端专用连接以建立两个客户端1a-1d之间的直接连接的情况下,提供了客户端之间的连接。
在图2所示的根据本发明的系统中,具有与其它客户端共享的内容的每个客户端1a-1d都被系统5分配了唯一的URI。在优选实施方式中,这在当具有要共享的内容的客户端向该系统中提供的控制服务器6注册时被执行。然后,具有要共享的内容的客户端1a-1d与客户端控制器7a-7c相关联,客户端控制器7a-7c将分配给客户端的URI进行注册并处理与客户端1a-1d相关联的诸如端口号和IP地址这样的连接信息。此外,如下面将要详细描述的,客户端控制器7a-7c还居间促成了客户端之间的连接的建立。控制服务器6是系统5的入口,其知道每个客户端1a-1d与哪个客户端控制器7a-7c相关联。理论上,控制服务器6还可处理客户端控制器7a-c的任务。然而,在本发明的实用优选实施方式中,系统5配有多个客户端控制器7a-c,其能够高效地平衡系统上的负担。图2的系统还包括中间方网络服务8,它的作用将在下面进行详细描述。
如果例如客户端1d希望访问客户端1a所提供的内容,则在运行于客户端1d上的网页浏览器应用程序4中做出对被分配给客户端1a的唯一URI的请求。通常通过来自客户端1a的用户的电子邮件或者通过激活位于因特网上的网络服务器上的网页的链接(其中,该链接包括分配给客户端1a的URI),客户端1d的用户被提供了分配给客户端1a的唯一的URI。所请求的URI被转发给控制服务器6,控制服务器6检查与所请求的URI相关联的该特定客户端1a是否连接到了该系统上,即是否向客户端控制器7a-7c注册。如果与所请求的URI相关联的客户端1a连接到了该系统和客户端控制器7a-7c,则客户端1d被指向处理客户端1a的客户端控制器7a-7c。客户端控制器7a-7c向客户端1a传送对与客户端1d相关联的URI和连接信息的请求,并相应地向客户端1d发送与客户端1a相关联的连接信息。然后,通过使用TCP或UCP穿孔技术建立客户端1d和客户端1a之间的直接连接,这由处理客户端1a的客户端控制器7a-7c居间促成。TCP或UDP穿孔技术是本领域技术人员公知的技术,且解决了客户端1a、1d位于专用局部网络上的防火墙的背后的问题。由于每个客户端1a-1d还在启动时向客户端控制器7a-7c或控制服务器6注册,所以改变IP地址并不会出现问题,因为客户端由系统5所分配的唯一的URI来识别,以用于识别向其它客户端1a-1d提供内容的客户端1a-1d。客户端1a-1d之间的直接连接和数据转移还具有该系统由于中央代理服务而不具有有限容量的优势,中央代理服务由客户端1a-1d处理,因此在系统具有许多用户的情况下不会成为问题。当已经建立了直接连接时,客户端1d和1a可交换信息,所述信息被解析到客户端1d的网页浏览器应用程序并在图形用户界面中被显示。
该系统的客户端1a-1d可通过使用UDP数据包简单穿过NAT(STUN)技术来获得它们的公共IP地址,STUN是本领域技术人员公知的网络协议,它允许路由器背后的客户端执行NAT(网络地址转换)以便使得专用网络上的多个主机能够通过使用单个公共IP地址来访问因特网。该连接信息例如用于建立都位于路由器和防火墙背后的两个主机之间的UDP或TCP通信。因此,与客户端1a-1d相关联的实际的连接是双重的并包括转换的本地IP地址与端口号和实际的公共IP地址与端口号,其中前者在提供位于同一本地网络上的两个客户端1a-1b之间的连接的情况中是有用的。
在优选实施方式中,客户端1a包括请求被转发至的网络服务器,并且网络服务器用响应来应答所述请求,该响应被直接发送给客户端1d、转发给网页浏览器应用程序并在图形用户界面中显示。该响应可例如是包括数字图片的网页,该网页嵌入到在两个客户端之间建立的连接中。因此,请求与客户端1a相关联的URL的用户将获得相同的响应,如同该网页位于因特网2上的传统网络服务器上一样。这将因特网的范围扩展到包括客户端1a-1d,客户端1a-1d包括向其它客户端提供内容的网络服务器。安装在客户端1a-1d上的网络服务器可以是运行在客户端1a-1d的操作系统上的简单的应用程序,并可以包括根据本发明的功能以便建立两个客户端之间的直接连接。在另一实施方式中,网络服务器作为单独的应用程序被安装,并且到其它客户端的连接被提供有网页浏览器应用程序。
系统5中的实际的通信,即客户端1a-1d和服务器6、7a-7c之间的通信以及客户端1a-1d之间的直接通信可基于传统的http/TCP连接或专有协议。因此,系统5中的实际的数据流并不需要必须是典型的因特网数据流,并且仅可以由系统5来解释。
在优选实施方式中,根据本发明的方法通过用于网页浏览器应用程序4a-4d的插件10a-10d的方式来实施。插件10a-10d可例如在客户端1a-1d首次请求系统5所定义的URI时被下载并安装。插件10a-10d用作网页浏览器应用程序4a-4d和系统5与连接到系统5的其它客户端1b-1d之间的中介体,并从而向网页浏览器应用程序4a-4d提供用于解译并在图形用户界面中显示的数据流,就像该数据流源自因特网上的网络服务器一样。显然,根据本发明的方法还可实现为单独的应用程序或者实现为客户端1a-1d的操作系统的集成部分,该方法处理与服务器6、7a-7c和客户端1a-1d的连接并向网页浏览器应用程序4a-4d提供用于在图形用户界面中显示的数据。在优选实施方式中,网页浏览器插件通过使用异步可插协议(APP)来实施,异步可插协议允许将微软的Internet Explorer扩展到包括使用其它连接策略而不是标准因特网协议来获得数据的定制协议。当在操作系统中实施根据本发明的方法时,客户端配有操作系统或库的应用编程接口(API),该API适用于提供对由诸如网页浏览器应用程序这样的应用程序所作出的请求的支持。因此,有可能将根据本发明的方法嵌入到客户端的操作系统或库中,这避免了为了成为系统的一部分并连接到该系统所需要的任何特殊的用户任务。
在图4所示的另一实施方式中,有可能在客户端1d上安装插件10a-10d或应用程序。系统5和连接到因特网的其它客户端然后可通过具有嵌入式网页应用程序12的网页11的方式被访问。如果客户端(诸如客户端1d)之后尝试访问系统5所定义的URL,则客户端1d的网页浏览器应用程序4d之后被提供有包含框架集13的HTML页11,框架集13具有两个或多个框架(IFrame或Frame)其中一个框架包括嵌入式网页应用程序12(诸如Java小应用程序、Active-X或Flash),嵌入式网页应用程序12提供了到系统5和其它客户端1a-1c的连接。因此,到该系统和其它客户端1a-d的连接在一个框架13a中被执行,以及由其它客户端所提供的内容在另一框架13b中被显示。这通常通过中间方网络服务8来实施,中间方网络服务8向客户端1d提供HTML页11并居间促成了嵌入式网页应用程序与系统5以及服务器6、7a-7c、客户端1a-1c之间的连接。
在优选实施方式中,该系统将包括多个服务器以便平衡系统5上的负担。当期望向其它用户提供内容的客户端1d启动时,它需要知道它的客户端控制器7a-c的IP地址。通过要求已存在的域名系统(DNS)基础设施来解析系统5所分配和定义的、客户端自己的唯一URL的IP地址,客户端1a-1d可获得这些信息。在某种程度上,对DNS基础设施的这种请求将到达负责给定子域的DNS服务器(未示出),所述DNS服务器可以是系统5中的服务器(诸如专用DNS服务器(未示出))。当接收到请求时,DNS服务器就已经知道了哪个客户端控制器7a-c被指定给特定的客户端1a-1d或者它将找到自由的客户端控制器7a-c来处理客户端1a-1d,并且该客户端控制器7a-c的IP地址然后被返回给客户端1a-1d。
对于到达服务器(诸如系统5中的控制服务器6)的URI请求而言,分配给每个客户端1a-d的唯一URI的结构可例如为<uniqueid>.<subdomain>.<domain>.com的形式。分成子域对于平衡系统5的多个服务器上的负担而言是有用的,每个都为在子域下注册的唯一的URI提供DNS服务。这还具有向期望使用标准DNS名(诸如my.picturealbum.com)的因特网的其它用户提供内容的客户端1a-1d的用户可简单地将地址指向系统5所提供的URI的优势。这样,客户端的DNS解析器自动地向DNS基础设施要求my.picturealbum.com的地址,该地址可以是客户端1a-1d的唯一URI标识的别名。
所描述系统中会出现的问题是控制服务器6资源匮乏。即使控制服务器上的负担可平衡到多个服务器(诸如客户端控制器7a-7c)上,但是连接到该网络的服务器6、7a-7c上的百万或亿万个客户端将意味着大量的空闲连接。即使在最现代的操作系统中,这种空闲连接和开放连接量也会成为容量问题。因此,在优选实施方式中,将空闲连接卸载到网络中被选为超级客户端的客户端。一个解决方案仅是卸载到对因特网开放的那些客户端,即没有防火墙和/或NAT保护的客户端。这将使得连接到系统5的客户端所做的工作分布不恰当,从公平的角度来看是有问题的。
因此,本系统的优选实施方式在客户端之间均等地平衡工作。指定某个客户端为超级客户端的最简单的方式是随机地进行选择。然而,已经表明,基于对网络拓扑的检查或之前的认知而做出的决定是可应用的。由于一些同位体位于防火墙和/或NAT的背后或者存在着连接或其它障碍,所以该解决方案使用两个级别的STUN。
在优选实施方式中,从连接到系统5的客户端1a-1d中随机地选择超级客户端。当指定了超级客户端时,该超级客户端就创建并发起客户端上的STUN启用的子客户端控制器(子控制器)。连接到客户端主控制器7a-7c的新的普通客户端将被重定向将超级客户端上的客户端子控制器用作客户端控制器(客户端子控制器),而不是直接使用客户端主控制器7a-7c。客户端子控制器将经常保持到客户端主控制器7a-7c的开放连接,以及保持到转发给它的客户端的连接。到主控制器7a-7c的连接用于经由STUN方法转发并发起中继自客户端主控制器7a-7c且到客户端子控制器的新的客户端连接。到客户端主控制器7a-7c的连接还用于将要被处理的发送自客户端主控制器7a-7c的连接居间促成数据中继到客户端子控制器的连接客户端中的一个。
当同位体1a请求到另一同位体1b的连接时,它首先连接到7a-7c。客户端主控制器将连接居间促成请求转发给保持用于1b的控制器连接的超级客户端(未示出)的客户端子控制器,并且一旦被接受,居间促成接受请求就被发回1a,从而1a和1b就可开始STUN连接。另一客户端1a被重定向来完成到客户端子控制器的连接,客户端子控制器通过与客户端1a和1b双方的直接通信来居间促成客户端1a和1b之间的连接。显然,引入多级别的客户端子控制器还可增强该实施方式。
被指定为超级客户端的典型客户端1a-1d能够毫无问题的管理几百或上千个空闲连接,因为该客户端仅需要到客户端控制器的一个连接。
虽然前面主要参照单个的当前优选实施方式对本发明的方法和系统进行了描述,但是本发明的范围将包括所附权利要求书所限定的使用其它类型的标准通信网络和其它传输模式的可替换实施方式。
Claims (14)
1.一种用于识别并连接被连接到包括多个控制服务器的同一网络的客户端的方法,该方法包括步骤:
将运行网页浏览器应用程序的第一客户端连接到所述多个控制服务器中的一个控制服务器并注册与所述第一客户端相关联的客户端专用连接信息;
从所述网页浏览器应用程序接收对由所述控制服务器所定义并与第二客户端相关联的唯一URI的请求;
请求所述控制服务器居间促成到与所述唯一URI相关联的第二客户端的连接;
接收与所述第二客户端相关联的连接信息;
通过使用与所述第二客户端相关联的连接信息来建立到所述第二客户端的直接连接,其中连接建立由所述控制服务器居间促成;
在所述直接连接上接收来自所述第二客户端的数据,并将所述数据转发给所述网页浏览器应用程序以用于在图形用户界面中显示所接收到的数据,其特征在于:
所述步骤由安装在所述网页浏览器应用程序中的插件来执行,其中插件与所述控制服务器和所述第二客户端进行通信;
由所述控制服务器分配给所述第二客户端的URI是能够通过使用域名系统的基础设施来进行解析的URL;
所述第二客户端包括网络服务器,其中来自所述第一客户端的进入的请求被指向该网络服务器;以及
所述第二客户端请求已存在的域名系统基础设施来解析由所述控制服务器所分配和定义的客户端自己的唯一URL的IP地址,以便获得与所述第二客户端相关联的控制服务器的IP地址。
2.根据权利要求1所述的方法,其中,所述方法嵌入到包括适用于与所述网页浏览器应用程序交互的API的操作系统中。
3.根据权利要求1所述的方法,其中,在建立直接连接的步骤中的所述第一客户端和第二客户端使用由所述控制服务器所居间促成的TCP或UDP穿孔来建立用于通信的直接连接。
4.根据权利要求1所述的方法,其中,向所述控制服务器注册的每个客户端的连接信息包括IP地址和端口号。
5.根据权利要求1所述的方法,其中,所述控制服务器的连接居间促成被分布到被指定为客户端子控制器的一个或多个级别的客户端上。
6.根据权利要求1所述的方法,该方法还包括初始步骤:
所述网页浏览器应用程序初始接收包含嵌入式网页应用程序的网页,并且其中由所述嵌入式网页应用程序来执行随后的步骤。
7.根据权利要求1所述的方法,该方法还包括步骤:
从所述控制服务器接收可访问客户端的信息,该信息包括与连接到所述控制服务器的客户端相关联的唯一URI;
将所述信息转发到在所述第一客户端上运行的所述网页浏览器应用程序,以用于在所述图形用户界面中显示所述信息。
8.一种用于识别并连接被连接到同一网络(2)的客户端(1a-1d)的系统(5),包括多个控制服务器(7a-7c),其中:
运行网页浏览器(4a-4d)应用程序的第一客户端(1a-1d)连接到所述控制服务器(7a-7c)中的一个控制服务器,并注册与所述第一客户端(1a-1d)相关联的客户端专用连接信息;
第二客户端(1a-1d)连接到所述控制服务器(7a-7c),并注册与所述第二客户端(1a-1d)相关联的客户端专用连接信息;
所述第二客户端(1a-1d)被分配了唯一URI;
所述控制服务器(7a-7c)被请求居间促成到与由在所述第一客户端(1a-1d)上运行的网页浏览器(4a-4d)应用程序所请求的唯一URI相关联的所述第二客户端(1a-1d)的连接;
所述控制服务器向所述第一客户端(1a-1d)转发与所述第二客户端相(1a-1d)关联的连接信息,以及向所述第二客户端(1a-1d)转发与所述第一客户端(1a-1d)相关联的连接信息;
所述控制服务器(7a-7c)居间促成所述第一客户端(1a-1d)和所述第二客户端(1a-1d)之间的直接连接的建立;
所述第一客户端(1a-1d)接收来自所述第二客户端(1a-1d)的数据,所述数据被转发给所述网页浏览器(4a-4c)应用程序并在图形用户界面中被显示,其特征在于
所述网页浏览器(4a-4c)应用程序包括插件(10a-10d),所述插件(10a-10d)与所述控制服务器(7a-7c)和所述第二客户端(1a-1d)进行通信;
由所述控制服务器(7a-7c)分配给所述第二客户端(1a-1d)的URI是能够通过使用域名系统的基础设施来进行解析的URL;
所述第二客户端(1a-1d)包括网络服务器,其中来自所述第一客户端(1a-1d)的进入的请求被指向该网络服务器;以及
所述第二客户端(1a-1d)要求已存在的域名系统基础设施来解析由所述控制服务器(7a-7c)所分配和定义的客户端自己的唯一URL的IP地址,以便获得与所述第二客户端相关联的控制服务器(7a-7c)的IP地址。
9.根据权利要求8所述的系统,其中,操作系统包括适用于与所述网页浏览器(4a-4d)应用程序进行交互的API。
10.根据权利要求8所述的系统,其中,所述第一客户端(1a-1d)和所述第二客户端(1a-1d)之间的直接连接通过使用由所述控制服务器(7a-7c)居间促成的TCP或UDP穿孔来建立。
11.根据权利要求8所述的系统,其中,向所述控制服务器(7a-7c)注册的连接信息包括IP地址和端口号。
12.根据权利要求8所述的系统,其中,所述控制服务器(7a-7c)的连接居间促成被分布到被指定为客户端子控制器的一个或多个级别的客户端(1a-1d)上。
13.根据权利要求8所述的系统,其中,所述第一客户端(1a-1d)通过包含在网页中的嵌入式网页应用程序(12)连接到所述系统(5),所述网页由所述系统(5)的中间方网络服务提供给所述第一客户端(1a-1d)。
14.根据权利要求8所述的系统,其中至少所述第一客户端(1a-1d)
从所述控制服务器(7a-7c)接收可访问客户端(1a-1d)的信息,该信息包括与连接到所述控制服务器(7a-7c)的客户端(1a-1d)相关联的唯一URI;
将所述信息转发到在所述第一客户端(1a-1d)上运行的网页浏览器应用程序(4a-4c),以用于在所述图形用户界面中显示所述信息。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/DK2008/050043 WO2009103291A1 (en) | 2008-02-20 | 2008-02-20 | Method and system for providing connectivity between clients connected to the internet |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101946493A CN101946493A (zh) | 2011-01-12 |
CN101946493B true CN101946493B (zh) | 2013-06-19 |
Family
ID=40084333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880126827.XA Active CN101946493B (zh) | 2008-02-20 | 2008-02-20 | 用于提供连接到因特网的客户端之间的连接性的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8972483B2 (zh) |
EP (1) | EP2248324B1 (zh) |
JP (1) | JP5301571B2 (zh) |
CN (1) | CN101946493B (zh) |
DK (1) | DK2248324T3 (zh) |
WO (1) | WO2009103291A1 (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7675872B2 (en) | 2004-11-30 | 2010-03-09 | Broadcom Corporation | System, method, and apparatus for displaying pictures |
US9712486B2 (en) | 2006-09-25 | 2017-07-18 | Weaved, Inc. | Techniques for the deployment and management of network connected devices |
US8447843B2 (en) | 2006-09-25 | 2013-05-21 | Yoics, Inc. | System, method and computer program product for identifying, configuring and accessing a device on a network |
US9231904B2 (en) | 2006-09-25 | 2016-01-05 | Weaved, Inc. | Deploying and managing networked devices |
US10637724B2 (en) | 2006-09-25 | 2020-04-28 | Remot3.It, Inc. | Managing network connected devices |
US11184224B2 (en) | 2006-09-25 | 2021-11-23 | Remot3.It, Inc. | System, method and compute program product for accessing a device on a network |
US10129346B1 (en) * | 2008-03-25 | 2018-11-13 | Egain Corporation | Analyzing navigation with a webpage |
US8682977B1 (en) * | 2008-03-25 | 2014-03-25 | Egain Communications Corporation | Communication associated with a webpage |
US7881965B2 (en) | 2008-10-02 | 2011-02-01 | ecoATM, Inc. | Secondary market and vending system for devices |
US11010841B2 (en) | 2008-10-02 | 2021-05-18 | Ecoatm, Llc | Kiosk for recycling electronic devices |
CN105336045B (zh) | 2008-10-02 | 2018-08-31 | 埃科亚特姆公司 | 针对设备的二手市场和自动售货系统 |
US10853873B2 (en) | 2008-10-02 | 2020-12-01 | Ecoatm, Llc | Kiosks for evaluating and purchasing used electronic devices and related technology |
DK2550790T3 (en) | 2010-03-23 | 2015-11-23 | Nabto Aps | Method of providing data from a resource-poor device to a computer client |
US10244033B2 (en) | 2010-03-23 | 2019-03-26 | Nabto Aps | Method for providing data from a resource weak device to a computer client |
KR101176144B1 (ko) * | 2010-11-30 | 2012-08-22 | 삼성에스디에스 주식회사 | 다중 네트워크 환경에서의 피어-투-피어 접속 시스템 및 방법 |
TWI465071B (zh) * | 2011-01-28 | 2014-12-11 | Throughtek Co Ltd | Remote messaging system and its connection method |
DE102011109678A1 (de) * | 2011-08-08 | 2013-02-14 | Rwe Effizienz Gmbh | Kommunikationssystem |
DE102012109060A1 (de) | 2011-09-29 | 2013-04-04 | Sma Solar Technology Ag | Kommunikation mit dezentralen, elektrische Energie handhabenden Einrichtungen über das Internet |
US20150113602A1 (en) * | 2012-05-08 | 2015-04-23 | Serentic Ltd. | Method and system for authentication of communication and operation |
US10075354B2 (en) * | 2012-10-12 | 2018-09-11 | Sling Media L.L.C. | Identification of servers by common wide area network addresses |
US8954391B2 (en) | 2012-10-15 | 2015-02-10 | Oracle International Corporation | System and method for supporting transient partition consistency in a distributed data grid |
US9591056B2 (en) * | 2013-01-29 | 2017-03-07 | Facebook, Inc. | Techniques for contact exporting |
CN104461413B (zh) * | 2013-09-17 | 2017-11-28 | 哈尔滨安天科技股份有限公司 | 一种基于web技术的LED显示控制系统及方法 |
US9819720B2 (en) * | 2013-10-14 | 2017-11-14 | Futurewei Technologies, Inc. | System and method to correlate local media URIs between web browsers |
TW201518963A (zh) * | 2013-11-05 | 2015-05-16 | Richplay Information Co Ltd | 推薦瀏覽物件之方法 |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US11537777B2 (en) | 2014-09-25 | 2022-12-27 | Huawei Technologies Co., Ltd. | Server for providing a graphical user interface to a client and a client |
WO2016054435A1 (en) | 2014-10-02 | 2016-04-07 | ecoATM, Inc. | Application for device evaluation and other processes associated with device recycling |
WO2016053378A1 (en) | 2014-10-02 | 2016-04-07 | ecoATM, Inc. | Wireless-enabled kiosk for recycling consumer devices |
US10445708B2 (en) | 2014-10-03 | 2019-10-15 | Ecoatm, Llc | System for electrically testing mobile devices at a consumer-operated kiosk, and associated devices and methods |
US10417615B2 (en) | 2014-10-31 | 2019-09-17 | Ecoatm, Llc | Systems and methods for recycling consumer electronic devices |
CA3227945A1 (en) * | 2014-11-06 | 2016-05-12 | Ecoatm, Llc | Methods and systems for evaluating and recycling electronic devices |
US10101983B2 (en) | 2014-11-07 | 2018-10-16 | Open Text Sa Ulc | Client application with embedded server |
WO2016094789A1 (en) | 2014-12-12 | 2016-06-16 | ecoATM, Inc. | Systems and methods for recycling consumer electronic devices |
KR101783014B1 (ko) * | 2015-09-10 | 2017-09-28 | 주식회사 수산아이앤티 | 공유단말 검출 방법 및 그 장치 |
US10269110B2 (en) | 2016-06-28 | 2019-04-23 | Ecoatm, Llc | Methods and systems for detecting cracks in illuminated electronic device screens |
US10812445B2 (en) | 2018-02-13 | 2020-10-20 | Sling Media Pvt Ltd | Cloud access to local network addresses |
US20190289085A1 (en) * | 2018-03-13 | 2019-09-19 | Indigenous Software, Inc. | System and method for tracking online user behavior across browsers or devices |
CN108965413B (zh) * | 2018-07-03 | 2021-08-03 | 北京小米移动软件有限公司 | 信息交互方法、装置及存储介质 |
CN111131369B (zh) * | 2018-11-01 | 2022-09-27 | 百度在线网络技术(北京)有限公司 | App使用情况的传输方法、装置、电子设备及存储介质 |
US11989710B2 (en) | 2018-12-19 | 2024-05-21 | Ecoatm, Llc | Systems and methods for vending and/or purchasing mobile phones and other electronic devices |
US11005913B1 (en) * | 2019-01-11 | 2021-05-11 | TeliApp Corporation | System for obtaining internet access for computing device tethered to mobile device having internet connection via universal translating software adapter and universal muxer data tracker |
US11462868B2 (en) | 2019-02-12 | 2022-10-04 | Ecoatm, Llc | Connector carrier for electronic device kiosk |
EP3924918A1 (en) | 2019-02-12 | 2021-12-22 | ecoATM, LLC | Kiosk for evaluating and purchasing used electronic devices |
CN211956539U (zh) | 2019-02-18 | 2020-11-17 | 埃科亚特姆公司 | 用于评估电子设备状况的系统 |
GB2583114B (en) * | 2019-04-17 | 2022-09-21 | F Secure Corp | Preventing UDP hole punching abuse |
US11922467B2 (en) | 2020-08-17 | 2024-03-05 | ecoATM, Inc. | Evaluating an electronic device using optical character recognition |
WO2022040668A1 (en) | 2020-08-17 | 2022-02-24 | Ecoatm, Llc | Evaluating an electronic device using optical character recognition |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1742265A (zh) * | 2003-11-25 | 2006-03-01 | 索尼株式会社 | 服务管理设备和方法,以及服务提供系统和方法 |
WO2007026997A1 (en) * | 2005-08-30 | 2007-03-08 | Kt Corporation | System for service sharing and controling contents in voice session and thereof method |
CN101044772A (zh) * | 2004-08-18 | 2007-09-26 | Sk电信有限公司 | 用于在移动通信系统及其设备中提供内容的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002033773A (ja) | 2000-07-17 | 2002-01-31 | Web On Demand:Kk | Webオンデマンドシステム |
GB0120712D0 (en) * | 2001-08-24 | 2001-10-17 | Intuwave Ltd | Web server resident on a mobile computing device |
US20030097448A1 (en) * | 2001-11-21 | 2003-05-22 | Menezes Francisco Jose | Server control of hypertext transfer protocol client |
US7203940B2 (en) | 2002-04-29 | 2007-04-10 | Hewlett-Packard Development Company, Lp. | Automated installation of an application |
JP3922575B2 (ja) * | 2003-06-20 | 2007-05-30 | 日本電信電話株式会社 | SIPセッション制御によるCDNにおけるQoS保証方法とQoS保証システムおよび端末装置とコンテンツ配信サブシステムとSIPセッション制御サブシステムならびにプログラム |
JP2005286725A (ja) * | 2004-03-30 | 2005-10-13 | Hitachi Ltd | IPv6制御装置 |
US20050229243A1 (en) | 2004-03-31 | 2005-10-13 | Svendsen Hugh B | Method and system for providing Web browsing through a firewall in a peer to peer network |
US7558862B1 (en) * | 2004-12-09 | 2009-07-07 | LogMeln, Inc. | Method and apparatus for remotely controlling a computer with peer-to-peer command and data transfer |
JP4599196B2 (ja) | 2005-03-11 | 2010-12-15 | 株式会社アドイン研究所 | 中継装置、通信システム、これらの制御方法及び制御プログラム |
US20060224759A1 (en) * | 2005-03-15 | 2006-10-05 | 1000 Oaks Hu Lian Technology Development Co., Ltd. | System and method for a peer-to-peer streaming content operation by a browser plug-in |
JP4829294B2 (ja) * | 2005-05-06 | 2011-12-07 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Ipマルチメディアサブシステム(ims)における構成 |
US8296437B2 (en) * | 2005-12-29 | 2012-10-23 | Logmein, Inc. | Server-mediated setup and maintenance of peer-to-peer client computer communications |
US7783985B2 (en) * | 2006-01-04 | 2010-08-24 | Citrix Systems, Inc. | Systems and methods for transferring data between computing devices |
JP4609345B2 (ja) | 2006-03-01 | 2011-01-12 | 日本電気株式会社 | 中継サーバ及び接続制御方法並びにプログラム |
US7791559B2 (en) * | 2006-09-14 | 2010-09-07 | Citrix Systems, Inc. | System and method for multiple display support in remote access software |
US8539028B2 (en) * | 2010-11-05 | 2013-09-17 | Logmein, Inc. | Network-based quick connect meeting service |
-
2008
- 2008-02-20 CN CN200880126827.XA patent/CN101946493B/zh active Active
- 2008-02-20 JP JP2010547045A patent/JP5301571B2/ja active Active
- 2008-02-20 WO PCT/DK2008/050043 patent/WO2009103291A1/en active Application Filing
- 2008-02-20 EP EP08706937.3A patent/EP2248324B1/en active Active
- 2008-02-20 DK DK08706937.3T patent/DK2248324T3/en active
- 2008-02-20 US US12/812,351 patent/US8972483B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1742265A (zh) * | 2003-11-25 | 2006-03-01 | 索尼株式会社 | 服务管理设备和方法,以及服务提供系统和方法 |
CN101044772A (zh) * | 2004-08-18 | 2007-09-26 | Sk电信有限公司 | 用于在移动通信系统及其设备中提供内容的方法 |
WO2007026997A1 (en) * | 2005-08-30 | 2007-03-08 | Kt Corporation | System for service sharing and controling contents in voice session and thereof method |
Also Published As
Publication number | Publication date |
---|---|
CN101946493A (zh) | 2011-01-12 |
EP2248324A1 (en) | 2010-11-10 |
DK2248324T3 (en) | 2019-01-07 |
US20110055322A1 (en) | 2011-03-03 |
EP2248324B1 (en) | 2018-09-12 |
US8972483B2 (en) | 2015-03-03 |
WO2009103291A1 (en) | 2009-08-27 |
JP5301571B2 (ja) | 2013-09-25 |
JP2011517867A (ja) | 2011-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101946493B (zh) | 用于提供连接到因特网的客户端之间的连接性的方法和系统 | |
JP6054484B2 (ja) | 割り当てられたネットワークアドレスを有するデバイスにアクセスするクライアントローカルプロキシサーバを使用したシステムおよび方法 | |
CN104270379B (zh) | 基于传输控制协议的https 代理转发方法及装置 | |
AU2015267341B2 (en) | Network packet encapsulation and routing | |
US20050229243A1 (en) | Method and system for providing Web browsing through a firewall in a peer to peer network | |
CN101369959A (zh) | 一种支持点对点业务的网络地址转换穿越方法 | |
CN104836863B (zh) | 实现tcp反向端口映射的系统和方法 | |
CN107463453B (zh) | 同一终端不同应用间通信的方法、装置、设备和存储介质 | |
JP2008306736A (ja) | 通信モジュール及びこの通信モジュールを備えたアプリケーションプログラム | |
CN102970387A (zh) | 一种域名解析方法、装置及系统 | |
CN111711705B (zh) | 基于代理节点作双向nat实现网络连接的方法和装置 | |
CN102594886A (zh) | 浏览器与浏览器直通的方法、装置和通信系统 | |
CN106713528B (zh) | 一种家庭网关及IPv6主机访问网络服务器的方法 | |
CN104519077A (zh) | 多媒体分享方法、注册方法、服务器及代理服务器 | |
KR101710033B1 (ko) | 유동 ip기기 간 상시 연결성 유지 방법 및 이를 위한 장치 | |
Hamarsheh | Deploying IPv4-only connectivity across local IPv6-only access networks | |
CN102546845B (zh) | 业务访问方法、装置及系统 | |
CN105516121B (zh) | 无线局域网中ac与ap通信的方法及系统 | |
JP6605149B2 (ja) | 共有端末の検出方法及びその装置 | |
CN105812499B (zh) | 通信方法和通信系统及虚拟客户终端设备 | |
CN103621036A (zh) | 注册方法及设备、系统 | |
Raste et al. | Design and implementation scheme for deploying IPv4 over IPv6 tunnel | |
JP2015201758A (ja) | 中継装置、通信システム、情報処理方法及びプログラム | |
JP5084716B2 (ja) | Vpn接続装置、dnsパケット制御方法、及びプログラム | |
KR20020079271A (ko) | 사설아이피주소로 포워딩된 고정도메인을 갖는 호스트운영방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |