Network peer discovery system and method
By receiving the location and platform information of the client terminal, the distance between the network switching point and the client terminal is determined. If the threshold is exceeded, it will be extended to the network switching point through a third-party network to establish a peer-to-peer connection, which solves the network communication quality in the prior art Poor problems, high bandwidth and secure peer-to-peer connections are achieved.
Patent Information
- Application Number
- CN202080010570.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-01-24
- Filing Date
- 2020-01-22
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2040-01-22
AI Technical Summary
The prior art is difficult to effectively select appropriate network resources to create peer-to-peer connections between client terminals and network switching points of cloud service providers, resulting in poor network communication quality and lack of reliable local connection options.
By receiving the location and platform information of the client terminal, we determine whether the distance between the network switching point and the client terminal exceeds the threshold. If it exceeds, it will gradually expand to the network switching point through a third-party network to establish peer-to-peer connections to ensure high bandwidth and security .
It realizes the creation of high-quality peer-to-peer connections between client terminals and cloud service providers, improves the bandwidth and security of network communications, reduces network latency, and uses dark fiber resources to provide more economical communication solutions.
Smart Images

Figure CN113366813B_ABST
Abstract
Description
Background Art
[0001] Cloud service providers provide various cloud computing resources based on software hosted by servers. The software can be accessed by remotely located client terminals through a communication network. The servers are optionally located at one or more access points (Points of Presence) together with network exchange points, storage devices or other hardware, each of which is called a "PoP". Each PoP is a facility where a physical network connection to the server of the corresponding cloud service provider can be established. PoPs are distributed geographically throughout the service area, with the goal of locating at least one nearby PoP to as many potential customers as possible.
[0002] Despite the diverse geographic locations of PoPs, there are still many customers whose locations are not close enough to connect directly to one or more cloud service provider PoPs locally. For example, Oracle Cloud Resources deploys a network of PoPs that provide privately routed inter-regional connectivity. Such a network is private and provides consistent inter-regional performance in terms of low latency and jitter, as well as reliable bandwidth relative to the public Internet. However, there are practical limits to the number of PoPs that can be built, leaving some potential customers hundreds or even thousands of miles from the nearest PoP.
[0003] Potential customers seeking to connect to a cloud service provider often lack sufficient information to establish the necessary network connections. For example, a corporate entity in a city is unlikely to know if there is a PoP near a cloud service provider of interest to which servers associated with that corporate entity can connect locally. Furthermore, it is unlikely that the corporate entity knows which network service providers operate networking resources locally to establish a connection to the locally accessible PoP. It is even unlikely that the corporate entity is aware of any third parties operating intermediary networking resources that are not local to the corporate entity or cloud service provider. Summary of the invention
[0004] In one embodiment, a computer-implemented method and / or a non-transitory computer-readable medium storing computer-executable instructions is disclosed that, when executed by at least one processor of a computing system, causes the computing system to:
[0005] At least a processor receives information about a client location and a platform where a client terminal is located; at least a processor determines whether a distance between a network exchange point of the platform and the client location exceeds a threshold; if the distance does not exceed the threshold, a data structure is modified to include a local network connection between the network exchange point and the client terminal; if the distance exceeds the threshold, the data structure is modified to include a third-party network between the client terminal and the network exchange point by: (i) including the local network connection between the third-party network and the client terminal in the data structure, and (ii) gradually extending the third-party network substantially away from the client terminal in a direction toward the network exchange point; and the modified data structure is transmitted to a remote computer terminal to control the creation of a peer-to-peer connection between the multi-tenant platform and the client terminal.
[0006] In another embodiment, a computing system is disclosed, comprising:
[0007] at least one processor connected to at least one memory; an analysis module stored on a non-transitory computer-readable medium and comprising instructions that, when executed by at least the at least one processor, cause the computing system to: receive, by at least the processor, a client location at which a client terminal is located and platform information that identifies a multi-tenant platform to which the client terminal is to connect to grant the client terminal access to resources hosted by the multi-tenant platform;
[0008] storing, by at least the processor, the received customer information associated with the received platform information in a data structure; and
[0009] identifying, by at least the processor, a network switching point including network hardware to establish a physical network connection for the client terminal to the multi-tenant platform; and
[0010] A mapping module stored on a non-transitory computer readable medium and comprising instructions that, when executed by at least at least one processor, cause a computing system to:
[0011] determining, by at least a processor, whether a distance between a network switching point and a customer location exceeds a threshold;
[0012] If the distance does not exceed the threshold, modifying the data structure to include a local network connection between the network switching point and the client terminal;
[0013] If the distance exceeds the threshold, modifying the data structure to include a third party network between the client terminal and the network exchange point by: (i) including in the data structure a local network connection between the third party network and the client terminal, and (ii) progressively extending the third party network substantially away from the client terminal in a direction toward the network exchange point; and
[0014] The modified data structure is transmitted to the remote computer terminal to control the creation of a peer-to-peer connection between the multi-tenant platform and the client terminal. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] The accompanying drawings that are incorporated in this specification and form a part thereof illustrate various systems, methods and other embodiments of the present disclosure. It will be appreciated that the element boundaries (e.g., boxes, groups of boxes, or other shapes) illustrated in the accompanying drawings represent an embodiment of boundaries. In certain embodiments, an element may be implemented as a plurality of elements, or a plurality of elements may be implemented as an element. In certain embodiments, an element that is shown as an internal component of another element may be implemented as an external component, and vice versa. In addition, the element may not be drawn to scale.
[0016] Figure 1 is an illustrative arrangement of PoPs within a geographic area.
[0017] Figure 2 An environment including a client terminal operatively connected to a multi-tenant platform via a peer-to-peer connection is illustrated.
[0018] Figure 3 One embodiment of a cloud-based peer-to-peer system for establishing peer-to-peer connections between client terminals and network exchange points of a cloud service provider is illustrated.
[0019] Figure 4 An embodiment of a graphical user interface provided by a peer-to-peer system for receiving user input parameters for establishing a peer-to-peer connection is illustrated.
[0020] Figure 5 is one embodiment of a flow chart schematically depicting a method of identifying network resources that can be used to form a peer connection between a client terminal and a cloud PoP.
[0021] Figure 6 An embodiment of a computing system configured with the disclosed example systems and / or methods is illustrated. DETAILED DESCRIPTION
[0022] The present disclosure relates to network peer discovery systems and methods. There are many network service providers operating fiber optic networks that connect one building to another building or connect one building to a service. However, there is currently no way to reliably select appropriate network resources to create a peer connection between a client terminal and a network exchange point of a cloud service provider.
[0023] There are many available network resources that can be selected and used to create peer connections. These network resources exhibit different characteristics, such as bandwidth, network latency, cost, etc. However, the "last mile" network resources (such as wireless communication channels connected to client terminals) may not have enough capacity, exhibit acceptable network latency, or may be expensive. Compared with existing last mile resources, dark optical fibers or underutilized fiber optic lines near customer locations can provide improved network communication capabilities for client terminals. For example, compared with wireless communication channels, available dark optical fibers can provide greater bandwidth, can be more secure, and can be used at a lower cost. However, customers and cloud service providers are generally unaware of the availability of existing dark fiber resources.
[0024] The public Internet can also be used exclusively as an economical and practical alternative for network communications between cloud service providers and customer endpoints. However, using the public Internet as the sole communication network between such entities may pose security risks to sensitive communications. In addition, the ability to communicate solely over the public Internet may be hampered by peak Internet traffic during peak hours, thereby introducing network latency into network communications.
[0025] The disclosed network peer-to-peer system and method control network resources contained in a third-party network for creating peer-to-peer connections between a multi-tenant platform of a cloud service provider and a client terminal. The network resources can be selected based on client information input into the system, such as an address, GPS coordinates, zip code, or other information indicating the client location where the client terminal is located. Platform information indicating the cloud service provider to which the client terminal is to connect can also be input.
[0026] A local PoP that houses an intermediate network exchange point located closest to the customer terminal can be selected based on the customer location. A local network connection can be established by selecting a dark fiber between the customer terminal and the intermediate network exchange point of the local PoP. Third-party network resources are gradually selected to grow the third-party network from the local PoP to the PoP ("cloud PoP") including the network exchange point of the multi-tenant platform. Before the third-party network resources between the local PoP and the cloud PoP, a local PoP or an intermediate network exchange point can be optionally selected to be included in the peer connection. A data structure including the identities of the local PoP, the cloud PoP, and the third-party network resources can be generated. A peer connection with the desired quality can then be created and made operational based on the information contained in the data structure.
[0027] Compared with growing third-party networks in other directions, growing third-party networks from local PoPs to cloud PoPs improves bandwidth, security, and other possible qualities of peer connections. For example, growing a third-party network from a cloud PoP may involve selecting a cloud PoP for the cloud service provider closest to a client terminal. Then third-party network resources known to the cloud service provider can be selected to form a communication network between the cloud PoP and the client terminal. However, the selected third-party network resources may include communication channels that form part of the public Internet, which may lack the security of private optical cables. In addition, cloud service providers have limited knowledge of network resources available in many markets where client terminals may be located. Therefore, when dark fiber may be available near the client location, the selected network resources may also include communication channels with undesirable bandwidth, latency or other characteristics. Therefore, the selected network resources will form slow peer connections and / or peer connections that are subject to considerable network latency.
[0028] With reference to the accompanying drawings, Figure 1 The geographic area 110 (in Figure 1 1 (shown in the United States) houses an illustrative arrangement of a cloud PoP 100 in which a first location within the United States houses a network exchange point 105. The network exchange point 105 includes network hardware in which a physical network connection to a multi-tenant platform 115 can be established. Examples of network hardware may include Ethernet switches, routers, fiber optic patch panels, or other such physical networking infrastructure for establishing a physical network connection.
[0029] exist Figure 1 The customer location 120, shown as an office building, accommodates customer terminals 125 located in different areas of the geographic area 110 and remote from the cloud PoP 100. The customer terminals 125 may be, for example, servers belonging to a corporate entity, and may exchange data or documents with the multi-tenant platform 115, or access resources hosted by the multi-tenant platform 115.
[0030] Communications between the multi-tenant platform 115 and the client terminals 125 will occur over peer-to-peer connections 130 established by the peer-to-peer systems and methods described herein. Multiple user terminals may be operably connected to the client terminals 125 via a private, secure network, such as a local area network (“LAN”), a wide area network (“WAN”), or a combination thereof at the client location 120. The connected user terminals may use one or more resources hosted by the multi-tenant platform 115 through the client terminals 125. Examples of user terminals include, but are not limited to, desktop computers, laptop computers, notebook computers, tablet computers, personal digital assistants (PDAs), smart phones, cellular phones, and consumer electronic devices containing one or more computing device components such as one or more processors, central processing units (CPUs), or controllers.
[0031] The peer connection 130 will be composed of the following Figure 3 The peer system 300 described in is established between the customer terminal 125 at the customer location 120 and the multi-tenant platform 115. However, the customer location 120 is too far away from the cloud PoP 100 where the network exchange point 105 of the cloud service provider is located to establish a direct peer connection.
[0032] For example, Figure 1 A secure, direct peer connection 135 between a customer terminal and a network exchange point 105, shown by the dashed line, may not be feasible or practical. The cloud PoP may be located in a different state than the customer location 120, or may be tens, hundreds, or even thousands of miles away from the customer location 120. A continuous, uninterrupted fiber optic cable or line that is underutilized and has the ability to form a peer connection 135 may not exist or may not be available. The cost of installing such a fiber optic line may be cost-prohibitive for the customer or cloud service provider.
[0033] As another example, a cloud PoP can be located farther away from a customer location 120 than an intermediate network exchange point 140 housed within a regional PoP 145 near the customer location 120. The intermediate network exchange point 140 can be located in the same city, county, or state as the customer location 120. Alternatively, the intermediate network exchange point 140 can be located in a different city, county, or state than the customer location 120. However, the intermediate network exchange point 140 can be separated from the customer location 120 by a distance that is less than the distance that separates the cloud PoP from the customer location 120.
[0034] The regional PoP 145 or the intermediate network exchange point 140 may be owned, maintained, or operated by a third party other than the customer and the cloud service provider. Dark fiber may be installed and may be used to form part of the peering connection 130 extending between the customer location 120 and the regional PoP. By utilizing the existing dark fiber between the customer terminal 125 at the customer location 120 and the intermediate network exchange point 140, a direct, private (only for the customer), and secure connection may be formed. Depending on the availability of high-bandwidth network resources such as dark fiber between the regional PoP 145 and the cloud PoP 100, one or more additional PoPs 150 housing another network exchange point may also be included in the peering connection 130 established as described herein.
[0035] Figure 2An environment 200 is illustrated that includes a client terminal 125 connected to a multi-tenant platform 115 via a peer connection 130. The multi-tenant platform 115 may include multiple processing tiers or layers, including a user interface layer 205, an application layer 210, and a data storage layer 215. The user interface layer 205 may maintain multiple user interfaces 220, including graphical user interfaces and / or web-based interfaces. The user interfaces 220 may include a default user interface of the platform (e.g., an administration UI), as well as one or more user interfaces extended by one or more tenants of the system (e.g., via access to one or more APIs).
[0036] Each level or layer may be implemented with a set of computers and / or computer components including computer servers and processors, and may perform various functions, methods, processes, or operations as determined by executing software applications or sets of instructions hosted by the multi-tenant platform 115. For example, the application layer 210 may include one or more application servers 225, each of which stores an application module for providing content to the client terminal 125 via the peer-to-peer connection 130.
[0037] The data storage layer 124 may include one or more production data repositories 230, and one or more test, validation and / or backup data repositories 235. The data repositories may be implemented using any suitable data storage technology, including a relational database management system ("RDBMS") based on structured query language ("SQL"). As a multi-tenant, the multi-tenant platform 115 hosts content and services that can be accessed simultaneously by the client terminal 125 and multiple additional client terminals.
[0038] refer to Figure 3 , shows one embodiment of a cloud-based peer-to-peer system 300 associated with creating a peer connection 130 between a client terminal 125 and a cloud PoP 100. The peer-to-peer system 300 is operably connected to communicate with a plurality of client terminals 305, 310, 315 via a communication network 320 such as the Internet. For example, the client terminals 305, 310, 315 may communicate with the peer system via a standardized Internet protocol suite (TCP / IP). According to one embodiment, the client terminal 305, 310, 315 or the peer system 300 may be a computing device 600, such as reference 100. Figure 6 shown and described.
[0039] The peer-to-peer system 300 maintains one or more data structures 325 defining graphical user interfaces. In response to receiving a request from one of the client terminals (such as the client terminal 305) over the network 320, the peer-to-peer system 300 provides content to the requesting client terminal 305. The provided content causes the requesting client terminal 305 to display one or more graphical user interfaces for display by the requesting client terminal 305 to receive user input. The received user input is transmitted by the requesting client terminal 305 to the peer-to-peer system 300 for use in establishing the peer-to-peer connection 130.
[0040] For example, Figure 4 An illustrative embodiment of a graphical user interface 400 provided by peer system 300 is shown. Graphical user interface 400 may be displayed by a suitable application executing on requesting client terminal 305. Examples of suitable applications include, but are not limited to, web browser applications (e.g., Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, etc.).
[0041] The graphical user interface 400 includes a data entry tool that allows a user to enter desired parameters for a peer connection 130 to be established. In the illustrated embodiment, the graphical user interface 400 includes a customer information interface 405, a performance interface 410, and a platform interface 415.
[0042] The customer information interface 405 includes a zip code field 420 into which the user can freely enter the numeric zip code of the customer location 120 ( Figure 1 ). While a zip code is described as an example of text that may be entered into the zip code field 420 , other embodiments of the zip code field 420 may receive GPS coordinates, a street address, or any other information indicative of the customer location 120 .
[0043] According to one embodiment, the customer information interface 405 may optionally include a state drop-down menu 425 and a city drop-down menu 430. The user may select the state in which the customer location 120 is found from a limited number of selectable options. Selecting a state from the state drop-down menu 425 may optionally filter the list of options selectable from the city drop-down menu 430 to a limited number of cities within the selected state. The options presented in the city drop-down menu 430 may be limited to those cities within the selected state that are known to have local direct access to the PoP via available dark fiber. For example, the cities in the city drop-down menu 430 may be limited to cities located in the selected state where dark fiber exists and can be used for local connections to customer locations in those cities. The database 330 ( Figure 3) maintains cities with such network resources as described below.
[0044] The performance interface 410 includes one or more fields configured to receive user desired performance characteristics of the peer connection 130. For example, the bandwidth drop-down menu 435 allows the user to select a desired minimum bandwidth threshold for the peer connection 130. The selectable options may include a discrete minimum bandwidth value or an acceptable range of bandwidth values.
[0045] As another example, the performance interface 410 may include a latency drop-down menu 440. The latency drop-down menu 440 may be populated with a maximum acceptable latency limit. Selecting a latency limit from the latency drop-down menu 440 defines the maximum allowable time for transmitting data through the peer connection 130 between the client terminal 125 and the network exchange point 105 of the cloud service provider.
[0046] The platform interface 415 includes at least one cloud field 445 that allows a user to enter a cloud service provider connected to the client terminal 125 via the peer connection 130. The cloud field 445 may include a drop-down menu populated with a plurality of selectable cloud service providers maintained in the database 330. The plurality of selectable cloud service providers maintained in the database may be limited to providers whose locations of at least one associated cloud PoP are included in the database.
[0047] Although the above fields are described as including text entry fields or fields populated from a drop-down menu, the present disclosure is not limited thereto. Each field can be independently configured to receive user-defined information for managing one or more aspects of the peer connection 130 according to any suitable entry mechanism. Once the parameter(s) of interest are entered into the corresponding field(s), selecting the submit control 450 transmits the user input information to the peer system 300 via the network 320.
[0048] Reference again Figure 3 , the peer system 300 receives the information submitted in response to selecting the submit control 450. The analysis module 335 of the peer system 300 receives the transmitted client information 340 indicating the location of the client terminal 125. The analysis module 335 also receives the platform information 345 identifying the multi-tenant platform 115 to which the client terminal 125 will be connected via the peer connection 130, as well as any performance information input to the performance interface 410.
[0049] In one embodiment, one or more components described herein are configured as program modules stored in a non-transitory computer-readable medium. The program module is configured with stored instructions that, when executed by at least one processor, cause the computing device to perform (one or more) corresponding functions as described herein.
[0050] Based on the received customer information 340 and platform information 345, the analysis module 335 identifies a network exchange point 105 to establish a physical network connection for the customer terminal 125 to the multi-tenant platform 115. In the event that there is more than one network exchange point 105 for the multi-tenant platform 115, the analysis module 335 may select the network exchange point 105 that is closest to the customer location 120. The identified network exchange point 105, the received customer information 340, and the received platform information 345 are stored by the analysis module 335 in one or more data structures 325 at the customer location.
[0051] The peer system 300 also includes a mapping module 350. The mapping module is configured to generate or modify a data structure 355 to include details about the peer connection 130 to be created. In general, the mapping module 350 includes a distance module 360 that is configured to determine whether to create a direct or indirect peer connection 130 between the client terminal 125 and the network exchange point 105 or cloud PoP of the multi-tenant platform 115 identified by the analysis module 335.
[0052] Depending on whether a direct or indirect peer connection 130 is to be created, mapping module 350 may identify third-party network service providers that may be used to create a direct or indirect peer connection 130. Filters 365 may be operable to limit third-party network service providers and their corresponding network resources, which are returned to providers of resources that meet any performance criteria submitted by a user via performance interface 410.
[0053] Database 330 may be maintained to include at least a plurality of cloud service providers, and the location of at least one network exchange point for each cloud service provider. In addition, database 330 may store one or more third parties (e.g., third parties other than the cloud service providers of interest to users and customers) that own, operate, or otherwise have an interest in controlling the allocation of dark fiber, PoPs, and other networking resources in different geographic areas. Records of networking resources in database 330 may be tagged or otherwise associated with location information. Based on the location information, a query to database 330 of networking resources near a customer location may filter resources that are not accessible from the customer location.
[0054] In one embodiment, Figure 5A method for identifying network resources that can be used to form a peer connection between a client terminal and a cloud PoP is schematically illustrated in FIG. In one embodiment, the method 500 is implemented as part of a peer system 300. At block 500, client information 340 indicating a client location 120 at which a client terminal 125 is located and platform information 345 are received. The received platform information 345 identifies the multi-tenant platform 115 to which the client terminal 125 will be connected via the generated peer connection 130, thereby authorizing the client terminal 125 to access resources hosted by the multi-tenant platform 115.
[0055] Based on the received information, the analysis module 335 identifies an appropriate network exchange point 105 at block 505, which includes network hardware in which a physical network connection to the multi-tenant platform 115 is to be established. The physical connection completes the peer connection 130 on the multi-tenant platform 115 side and authorizes the client terminal 125 to access one or more resources hosted by the multi-tenant platform 115. The analysis module 335 can identify the network exchange point 105 closest to the client location 120 by comparing the proximity of each network exchange point 105 of the multi-tenant platform 115 to the client location 120. The identified network exchange point 105 is stored in the data structure 325, optionally with the received client information 340 and platform information 345.
[0056] Based at least in part on the information stored in the data structure 325, the mapping module 350 determines at decision block 510 whether the distance separating the network exchange point 105 from the customer location 120 exceeds a threshold. The threshold can be a defined distance (e.g., 20 miles) or a relative distance (e.g., the distance separating the customer location from an intermediate network exchange point). If not, the mapping module 350 modifies the data structure at block 515 to include a local, direct peer connection 130 between the network exchange point 105 at the cloud PoP 100 and the customer terminal 125. The data structure 325 may also be modified to include the identity of a party to be contacted to allocate use of a portion of the dark fiber available at the customer location 120, and optionally include contact information (e.g., a telephone number, an email address, a URL of a website, etc.) for the identified party.
[0057] A direct connection does not necessarily require the absence of cross-branching in the fiber line used to establish the peering connection 130. Alternatively, the direct peering connection does not include but omits an intermediate network exchange point or PoP between the customer terminal 125 and the network exchange point 105 at the cloud PoP 100. The rationale behind this decision is that the distance separating the network exchange point 105 at the cloud PoP 100 and the customer terminal 125 is short enough that dark fiber can be used to bridge the gap, or dark fiber can be installed without being too costly.
[0058] If it is determined at decision block 510 that the distance exceeds the threshold, then at block 520 the data structure is modified to include an intermediate network exchange point 140 as a third-party network exchange point or other resource such as an intermediary between the customer terminal 125 and the network exchange point 105 at the cloud PoP 100. By including a dark fiber 155 ( Figure 1 ) to modify data structure 325.
[0059] Then at block 525, the third party network is expanded or "grown" generally away from the customer terminal 125 and toward the cloud PoP 100. By continuously adding third party network resources to the peering connection 130, growth occurs in a direction from the intermediate network exchange point 140 generally toward the network exchange point 105 at the cloud PoP 100. For example, a second intermediate PoP 150 housing another network exchange point may be included in the data structure 325 of the peering connection 130. The second intermediate PoP 150 may be operably connected to the intermediate PoP 145 in the data structure 325 via dark fiber available between the two PoPs 145, 150.
[0060] The third-party network resources included in the peer connection 130 may be limited to private resources and devoid of public or unsecured communication channels (e.g., the public Internet). In addition, the filter 365 may optionally be applied at block 530 via the performance interface 410 ( Figure 4 ) to limit network resources to those that meet the user-defined criteria. The inclusion of dark fiber 155 between the customer terminal 125 and the intermediate network switching point 140 establishes the desired bandwidth and latency for the peer connection 130 without directly connecting to the cloud PoP 100.
[0061] At block 535, the modified data structure is transmitted to the requesting client terminal 305 via the network 320 to control the formation of the peer connection 130. For example, based on the received modified data structure, the requesting client terminal 305 generates an interface to be displayed to the user. The interface may include information to be used to allocate at least some network resources (e.g., dark fiber, local PoP connection, etc.) to the peer connection 130. According to one embodiment, the interface may include an email address or phone number of a party operating at least some of the network resources to be included, a URL or hyperlink to a website where at least some of the network resources can be deployed, etc. The user can use the information contained in the interface to form the peer connection 130.
[0062] According to another embodiment, the interface may include a selectable option allowing a portion of the network resource to be electronically allocated to peer connection 130 from within the interface (or from a website or portal launched in response to selection of the option). The command to allocate a portion of the network resource to peer connection 130 may be submitted to a third-party operator of a portion of the network resource via an application programming interface ("API").
[0063] Computing Device Embodiments
[0064] Figure 6 An example computing device is illustrated that is configured and / or programmed with one or more of the example systems and methods described herein and / or equivalents. The example computing device may be a computer 600 that includes a processor 620, a memory 635, and an input / output port 645 operably connected via a bus 625. In one example, the computer 600 may include an analysis module 335 and a mapping module 350 that are configured to facilitate similar Figure 3 The creation of a peer-to-peer connection of the peer system 300 shown and described above, and / or in one embodiment is configured to implement and perform the method 500. In different examples, the modules 335, 350 can be implemented in hardware, a non-transitory computer-readable medium having stored instructions, firmware, and / or a combination thereof. Although the modules 335, 350 are shown as hardware components attached to the bus 625, it should be appreciated that in other embodiments, the modules 335, 350 can be implemented in the processor 620, stored in the memory 635, or stored in the disk 605.
[0065] In one embodiment, the module 335, 350 or computer 600 is a means (e.g., structure: hardware, non-transitory computer-readable medium, firmware) for performing the described actions. In some embodiments, the computing device may be a server operating in a cloud computing system, a server configured in a software as a service (SaaS) architecture, a smart phone, a laptop, a tablet computing device, etc.
[0066] The means may be implemented, for example, as an ASIC programmed to create a peer-to-peer connection as described herein. The means may also be implemented as stored computer executable instructions that are presented to the computer 600 as data 610 temporarily stored in the memory 635 and then executed by the processor 620.
[0067] Modules 335, 350 may also provide means (eg, hardware, non-transitory computer-readable media storing executable instructions, firmware) for performing the methods of network peering as described herein.
[0068] Generally describing an example configuration of computer 600, processor 620 can be a variety of processors, including dual microprocessors and other multi-processor architectures. Memory 635 can include volatile memory and / or non-volatile memory. Non-volatile memory can include, for example, ROM, PROM, etc. Volatile memory can include, for example, RAM, SRAM, DRAM, etc.
[0069] Storage disk 655 can be operably connected to computer 600 via, for example, input / output (I / O) interface (e.g., card, device) 640 and input / output port 645. Disk 655 can be, for example, a magnetic disk drive, a solid state disk drive, a floppy disk drive, a tape drive, a Zip drive, a flash memory card, a memory stick, etc. In addition, disk 655 can be a CD-ROM drive, a CD-R drive, a CD-RW drive, a DVD ROM, etc. For example, memory 635 can store processes and / or data 610. Disk 655 and / or memory 635 can store an operating system that controls and allocates resources of computer 600.
[0070] The computer 600 can interact with input / output (I / O) devices via the I / O interface 640 and the input / output ports 645. The input / output devices can be, for example, keyboards, microphones, pointing and selecting devices, cameras, video cards, displays, disks 655, network devices 650, etc. The input / output ports 645 can include, for example, serial ports, parallel ports, and USB ports.
[0071] The computer 600 can operate in a network environment and can therefore be connected to a network device 650 via an I / O interface 640 and / or an I / O port 645. Through the network device 650, the computer 600 can interact with the network. Through the network, the computer 600 can be logically connected to a remote computer. The network that the computer 600 can interact with includes, but is not limited to, a LAN, a WAN, and other networks.
[0072] Definitions and Other Examples
[0073] In another embodiment, the described methods and / or their equivalents may be implemented with computer executable instructions. Thus, in one embodiment, a non-transitory computer readable / storage medium is configured with computer executable instructions having stored algorithms / executable applications that, when executed by (one or more) machines, cause the (one or more) machines (and / or associated components) to perform the methods. Example machines include, but are not limited to, processors, computers, servers operating in a cloud computing system, servers configured with a software as a service (SaaS) architecture, smart phones, and the like. In one embodiment, a computing device is implemented with one or more executable algorithms configured to perform any of the disclosed methods.
[0074] In one or more embodiments, the disclosed methods or their equivalents are performed by any of the following: computer hardware configured to perform the methods; or, computer instructions embodied in a module stored in a non-transitory computer-readable medium, wherein the instructions are configured as an executable algorithm, which is configured to perform the methods when executed by at least one processor of a computing device.
[0075] Although for the purpose of simplifying the description, the method shown in the figure is shown and described as a series of algorithmic square blocks, it should be appreciated that these methods are not limited by the order of the square blocks. Some square blocks may appear in a different order than shown and described and / or appear simultaneously with other square blocks. Moreover, the example method can be implemented using square blocks less than all the square blocks shown. Square blocks can be combined or divided into multiple actions / components. In addition, additional and / or alternative methods can adopt additional actions not shown in the square blocks.
[0076] The following includes definitions of selected terms used herein. The definitions include various examples and / or forms of components that fall within the scope of the terms and can be used for implementation. The examples are not intended to be limiting. Both singular and plural forms of the terms may be within the definitions.
[0077] References to "one embodiment," "an embodiment," "an example," "an example," etc. indicate that the embodiment(s) or examples so described may include particular features, structures, characteristics, properties, elements, or limitations, but not every embodiment or example must include the particular features, structures, characteristics, properties, elements, or limitations. Furthermore, repeated use of the phrase "in one embodiment" does not necessarily refer to the same embodiment, although it may.
[0078] ASIC: Application-Specific Integrated Circuit.
[0079] CD: compact disc.
[0080] CD-R: CD-Recordable.
[0081] CD-RW: Rewritable CD.
[0082] DVD: Digital Versatile Disc and / or Digital Video Disc.
[0083] HTTP: Hypertext Transfer Protocol.
[0084] LAN: Local Area Network.
[0085] RAM: Random Access Memory.
[0086] ROM: Read-only memory.
[0087] SQL: Structured Query Language.
[0088] USB: Universal Serial Bus.
[0089] WAN: Wide Area Network.
[0090] As used herein, a "data structure" is an organization of data stored in a memory, storage device, or other computerized system in a computing system. A data structure can be, for example, any of a data field, a data file, a data array, a data record, a database, a data table, a chart, a tree, a linked list, etc. A data structure can be formed by and contain many other data structures (e.g., a database includes many data records). Other examples of data structures are also possible according to other embodiments.
[0091] As used herein, "computer-readable medium" or "computer storage medium" refers to a non-transitory medium that stores instructions and / or data configured to perform one or more functions of the disclosed functions when executed. In some embodiments, data can be used as instructions. Computer-readable media can take the form of, but not limited to, non-volatile media and volatile media. Non-volatile media can include, for example, optical disks, magnetic disks, etc. Volatile media can include, for example, semiconductor memories, dynamic memories, etc. Common forms of computer-readable media can include, but are not limited to, floppy disks, flexible disks, hard disks, magnetic tapes, other magnetic media, application-specific integrated circuits (ASICs), programmable logic devices, compact disks (CDs), other optical media, random access memories (RAMs), read-only memories (ROMs), memory chips or cards, memory sticks, solid-state storage devices (SSDs), flash drives, and other media that computers, processors, or other electronic devices can work with. If each type of medium is selected for implementation in one embodiment, it can include storage instructions for algorithms configured to perform one or more functions of the disclosed and / or claimed functions.
[0092] As used herein, "logic" means a component implemented using a computer or electrical hardware, a non-transitory medium with storage instructions of executable applications or program modules, and / or a combination of these to perform any function or action as disclosed herein, and / or to cause a function or action from another logic, method, and / or system to be performed as disclosed herein. Equivalent logic may include firmware, a microprocessor programmed with an algorithm, discrete logic (e.g., ASIC), at least one circuit, an analog circuit, a digital circuit, a programmed logic device, a memory device containing instructions of the algorithm, etc., any of which may be configured to perform one or more of the disclosed functions. In one embodiment, logic may include one or more gates, a combination of gates, or other circuit components configured to perform one or more of the disclosed functions. In the case of describing multiple logics, it is possible to merge multiple logics into one logic. Similarly, in the case of describing a single logic, it is possible to distribute the single logic between multiple logics. In one embodiment, one or more of these logics are corresponding structures associated with performing the disclosed and / or claimed functions. Choosing which type of logic to implement can be based on desired system conditions or specifications. For example, if higher speed is considered, hardware will be selected to implement the function. If lower cost is a consideration, stored instructions / executable applications will be chosen to implement the functionality.
[0093] An "operable connection" or a connection through which entities are "operably connected" is a connection that can send and / or receive signals, physical communications, and / or logical communications. An operable connection may include a physical interface, an electrical interface, and / or a data interface. An operable connection may include different combinations of interfaces and / or connections sufficient to allow operable control. For example, two entities may be operably connected to transmit signals to each other directly or through one or more intermediate entities (e.g., a processor, an operating system, logic, a non-transitory computer-readable medium). Logical and / or physical communication channels may be used to create an operable connection.
[0094] As used herein, a "user" includes, but is not limited to, one or more persons, computers or other devices, or a combination of these.
[0095] Although the disclosed embodiments have been shown and described in considerable detail, it is not intended that the scope of the appended claims be limited or in any way restricted to such detail. Of course, it is not possible to describe every expected combination of components or methods for the purpose of describing various aspects of the subject matter. Therefore, the present disclosure is not limited to the specific details or illustrative examples shown and described. Therefore, the present disclosure is intended to cover changes, modifications and variations that fall within the scope of the appended claims.
[0096] To the extent that the term "comprising" or "including" is employed in the detailed description or claims, it is intended to be inclusive in a manner similar to how the term "comprising" is interpreted when employed as a transitional word in a claim.
[0097] To the extent that the term "or" is employed in the detailed description or claims (e.g., A or B), it is intended to mean "A or B or both A and B." When the applicants intend to indicate "only A or B but not both A and B," then the phrase "only A or B but not both A and B" will be used. Thus, the use of the term "or" herein is inclusive, rather than exclusive.
Claims
1. A non-transitory computer-readable medium storing computer-executable instructions, which, when executed by at least a processor of a computing system, cause the computing system to: receiving, by at least the processor, a client location and platform information at which the client terminal is located, wherein the platform information identifies a multi-tenant platform to which the client terminal is to connect to grant the client terminal access to resources hosted by the multi-tenant platform; determining, by at least the processor, whether a distance between a network exchange point of the multi-tenant platform and a customer location exceeds a threshold, wherein the network exchange point includes network hardware to establish a physical network connection for the customer terminal to the multi-tenant platform; If the distance does not exceed the threshold, modifying a data structure storing at least the received client location associated with the received platform information to include a local network connection between a network exchange point and the client terminal; If the distance exceeds the threshold, modifying the data structure to include a third-party network between the client terminal and the network exchange point by: (i) including a local network connection between the third-party network and the client terminal in the data structure, and (ii) gradually extending the third-party network away from the client terminal in a direction toward the network exchange point, wherein the extending is performed by successively adding third-party network resources to a peer connection between the multi-tenant platform and the client terminal; and The modified data structure is transmitted to the remote computer terminal to control the creation of a peer-to-peer connection between the multi-tenant platform and the client terminal.
2. The non-transitory computer-readable medium of claim 1, wherein if the distance does not exceed the threshold, then the peer-to-peer connection between the network exchange point and the client terminal has no intermediate network exchange points between the network exchange point and the client terminal; or If the distance exceeds the threshold, then the third party network between the client terminal and the network exchange point includes an intermediate network exchange point between the network exchange point and the client terminal.
3. The non-transitory computer readable medium of claim 1 or 2, further comprising instructions that, when executed by at least the processor, cause the computing system to: At least the processor receives a bandwidth demand of a client terminal for accessing resources hosted by a multi-tenant platform; and The third party network between the client terminal and the network exchange point is restricted to include network resources that meet the bandwidth requirements.
4. The non-transitory computer readable medium of claim 1 or 2, further comprising instructions that, when executed by at least the processor, cause the computing system to: identify, by at least the processor, an underutilized fiber optic line accessible from the customer location, wherein If the distance exceeds the threshold, the underutilized optical fiber line is allocated for establishing a local network connection between the third party network and the customer terminal.
5. The non-transitory computer readable medium of claim 1 or 2, wherein the modified data structure transmitted to a remote computer terminal, when processed by the remote computer terminal, causes the remote computer terminal to generate a display comprising: (i) a service provider operating an underutilized fiber optic line accessible from the customer location, or (ii) an operator of an intermediate network exchange point between a network exchange point and the customer terminal, wherein the peering connection includes the intermediate network exchange point.
6. The non-transitory computer readable medium of claim 1 or 2, wherein the threshold comprises a distance of the customer location from a second network switching point that is locally accessible from the customer location via a fiber optic line.
7. A computing system comprising: at least one processor coupled to at least one memory; an analysis module stored on a non-transitory computer readable medium and comprising instructions that, when executed by at least the at least one processor, cause the computing system to: The processor receives at least: (i) the customer location where the customer terminal is located, and (ii) platform information identifying the multi-tenant platform to which the client terminal is to connect in order to grant the client terminal access to resources hosted by the multi-tenant platform; storing, by at least the processor, the received customer location associated with the received platform information in a data structure; as well as identifying, by at least the processor, a network switching point including network hardware to establish a physical network connection for a client terminal to a multi-tenant platform; as well as a mapping module stored on the non-transitory computer-readable medium and comprising instructions that, when executed by at least the at least one processor, cause the computing system to: determining, by at least the processor, whether a distance between a network switching point and the customer location exceeds a threshold; If the distance does not exceed the threshold, modifying the data structure to include a local network connection between the network switching point and the client terminal; If the distance exceeds the threshold, modifying the data structure to include a third-party network between the client terminal and the network exchange point by: (i) including a local network connection between the third-party network and the client terminal in the data structure, and (ii) gradually extending the third-party network away from the client terminal in a direction toward the network exchange point, wherein the extending is performed by successively adding third-party network resources to a peer connection between the multi-tenant platform and the client terminal; and The modified data structure is transmitted to the remote computer terminal to control the creation of a peer-to-peer connection between the multi-tenant platform and the client terminal.
8. The computing system of claim 7, wherein the mapping module omits an intermediate network exchange point between a network exchange point and a client terminal from the peer connection in response to determining that the distance does not exceed the threshold; or The mapping module causes an intermediate network switching point to be arranged between the network switching point and the client terminal in response to determining that the distance exceeds the threshold.
9. The computing system of claim 7 or 8, wherein the mapping module further comprises instructions that, when executed by the at least one processor, cause the computing system to: Receiving, by the at least one processor, a bandwidth demand of a client terminal for accessing resources hosted by the multi-tenant platform; and The third party network between the customer terminal and the network exchange point is limited to include network resources that meet the bandwidth requirements.
10. The computing system of claim 7 or 8, wherein the mapping module further comprises instructions that, when executed by at least the processor, cause the processor to: at least the processor to identify an underutilized fiber line accessible from the customer location, wherein if the distance exceeds the threshold, the underutilized fiber line is allocated for establishing a local network connection between the third party network and the customer terminal.
11. The computing system of claim 7 or 8, wherein the modified data structure transmitted to a remote computer terminal causes the remote computer terminal to generate a display, wherein the display includes: (i) a service provider operating an underutilized fiber optic line accessible from the customer location, or (ii) an operator of an intermediate network exchange point between the network exchange point and the customer terminal that is included in the peering connection.
12. The computing system of claim 7 or 8, wherein the threshold comprises a distance of the customer location from a second network switching point that is locally accessible from the customer location via a fiber optic line.
13. A computer-implemented method, the method comprising: At least the processor receives: (i) the customer location where the customer terminal is located, and (ii) platform information identifying the multi-tenant platform to which the client terminal is to connect in order to grant the client terminal access to resources hosted by the multi-tenant platform; storing, by at least the processor, the received customer location associated with the received platform information in a data structure; identifying, by at least the processor, a network switching point including network hardware to establish a physical network connection for a client terminal to a multi-tenant platform; determining, by at least the processor, whether a distance between a network switching point and the customer location exceeds a threshold; if the distance does not exceed the threshold, modifying, by at least the processor, the data structure to include a local network connection between a network switching point and a client terminal; If the distance exceeds the threshold, modifying the data structure to include a third-party network between the client terminal and the network exchange point by at least the processor by: (i) including a local network connection between the third-party network and the client terminal in the data structure, and (ii) gradually extending the third-party network away from the client terminal in a direction toward the network exchange point, wherein the extending is performed by successively adding third-party network resources to a peer connection between the multi-tenant platform and the client terminal; as well as The modified data structure is transmitted by at least the processor to a remote computer terminal to control creation of a peer-to-peer connection between the multi-tenant platform and the client terminal.
14. The computer-implemented method of claim 13, wherein if the distance does not exceed the threshold, modifying the data structure comprises omitting an intermediate network exchange point between the network exchange point and the client terminal from the peer connection; or Wherein if the distance exceeds the threshold, modifying the data structure comprises including an intermediate network switching point between the network switching point and the client terminal in a third-party network.
15. The computer-implemented method of claim 13 or 14, further comprising identifying, by at least the processor, an underutilized fiber line accessible from the customer location, wherein if the distance exceeds the threshold, the underutilized fiber line is allocated for establishing a local network connection between the third-party network and the customer terminal.
16. A computer-implemented method, the method comprising: receiving, by at least a processor, a client location and platform information at which a client terminal is located, wherein the platform information identifies a multi-tenant platform to which the client terminal is to connect to grant the client terminal access to resources hosted by the multi-tenant platform; determining, by at least the processor, whether a distance between a network exchange point of the multi-tenant platform and a customer location exceeds a threshold, wherein the network exchange point includes network hardware to establish a physical network connection for the customer terminal to the multi-tenant platform; If the distance does not exceed the threshold, modifying a data structure storing at least the received client location associated with the received platform information to include a local network connection between a network exchange point and the client terminal; If the distance exceeds the threshold, modifying the data structure to include a third-party network between the client terminal and the network exchange point by: (i) including a local network connection between the third-party network and the client terminal in the data structure, and (ii) gradually extending the third-party network away from the client terminal in a direction toward the network exchange point, wherein the extending is performed by successively adding third-party network resources to a peer connection between the multi-tenant platform and the client terminal; and The modified data structure is transmitted to the remote computer terminal to control the creation of a peer-to-peer connection between the multi-tenant platform and the client terminal.
17. The computer-implemented method of claim 16, wherein if the distance does not exceed the threshold, then the peer-to-peer connection between the network exchange point and the client terminal has no intermediate network exchange points between the network exchange point and the client terminal; or If the distance exceeds the threshold, then the third party network between the client terminal and the network exchange point includes an intermediate network exchange point between the network exchange point and the client terminal.
18. The computer-implemented method of claim 16 or 17, further comprising: At least the processor receives a bandwidth demand of a client terminal for accessing resources hosted by a multi-tenant platform; as well as The third party network between the client terminal and the network exchange point is restricted to include network resources that meet the bandwidth requirements.
19. The computer-implemented method of claim 16 or 17, further comprising: An underutilized fiber optic line accessible from the customer location is identified by at least the processor, wherein if the distance exceeds the threshold, the underutilized fiber optic line is allocated for establishing a local network connection between the third party network and a customer terminal.
20. The computer-implemented method of claim 16 or 17, wherein the modified data structure transmitted to the remote computer terminal, when processed by the remote computer terminal, causes the remote computer terminal to generate a display, the display comprising: (i) a service provider operating an underutilized fiber optic line accessible from the customer location, or (ii) an operator of an intermediate network exchange point between a network exchange point and the customer terminal, wherein the peering connection includes the intermediate network exchange point.
21. The computer-implemented method of claim 16 or 17, wherein the threshold comprises a distance of the customer location from a second network switching point that is locally accessible from the customer location via a fiber optic line.
22. A computing system comprising: at least one processor; as well as At least one memory coupled to the at least one processor and having executable instructions stored thereon, which, when executed by the at least one processor, cause the at least one processor to perform the computer-implemented method of any one of claims 16-21.
23. A computer program product comprising instructions which, when executed by a computer, cause the computer to perform the computer-implemented method of any one of claims 16-21.
24. A non-transitory computer-readable medium storing computer-executable instructions which, when executed by at least a processor of a computing system, cause the computing system to perform the computer-implemented method of any one of claims 13-15.
25. A computer program product comprising instructions which, when executed by a computer, cause the computer to perform the computer-implemented method of any one of claims 13-15.
Citation Information
Patent Citations
Automatically recommending point of presence centers
US20160142256A1
Local point of presence
US8150400B1