The disclosed technology pertains to providing cloud-services or other applications via one or more satellites to user terminals and more specifically to the various technologies related to managing, via one or more satellites, the access to compute resources such as data, bandwidth, storage, endpoint-to-endpoint communication channels, various types of cloud-services such as applications and/or computer processing power. The disclosure addresses providing access to compute resources via the one or more satellites given the movement of the satellites according to their respective orbits and the unique requirements of the orbiting environment which are not applicable to earth-based computer systems.
Satellite communication systems can provide Internet access to user terminals at user terminal locations, for example at homes or businesses. User terminals may also be used for cellular backhaul where a user terminal is configured on a cell tower and serves a certain area. The satellite in this context can receive from a user terminal a request for data, access to the Internet or cloud-computing services, or access to computer processors, a cloud-based service or application. For example, the user may request a video to watch via a streaming video service or desire to access a trading platform for making a stock or bond trade. The user will typically be at a user device which can be a computing device such as a computer or a mobile device. The user device gains access to the Internet via the user terminal and its wireless connection to the satellite. The satellite in turn will transmit signals to a ground station (called a gateway or terrestrial gateway) on Earth with the request to obtain the data or provide access to the ground-based computer systems that provide the service or application. The ground station is connected to the Internet or another ground-based network that stores the requested data or the software that provides the service or application. The satellite and the ground station transmit and receive signals via a respective satellite antenna and a ground station antenna.
The gateway will access the Internet or other network to obtain the desired data and to upload the data up to the satellite. The satellite then transmits the data down to the user terminal such that the user can utilize the data on a user device. In the case of cloud-services or applications, the ground-based computer systems will perform their programmed functions to provide the service or application and return the output data via the gateway and satellite system to the user terminal.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
In general, this disclosure relates to providing access to cloud-services to user terminals in the context of the cloud-services being available to access from one or more satellites. Operating a group of satellites that can provide cloud-services involves a number of different issues that are not contemplated from terrestrial cloud computing environments. In one aspect, the computing environment configured on one or more satellites can be characterized as an edge node.
The computer systems making up various cloud computing environments such as Amazon Web Services or Microsoft Azure do not move and are not subject to a changing environment such as being in the sun for part of the time and in the Earth's shadow for part of the time. Being in the sun heats up the satellite which can impact performance. This disclosure generally relates to new approaches regarding how to manage access to requested compute resources (such as, for example, data, applications, computer processor time, storage, endpoint-to-endpoint low latency communication channels, and so forth) from a dynamically changing group of satellites in which different entities, which typically differ from the satellite operating entity, will have configured on one or more satellites compute environments that offer different compute resources. Parameters such as one or more of an energy status of individual satellites, thermal conditions, a resetting or rebooting of the satellite due to radiation events or software issues, a state of individual satellites, a distance between respective satellites and a user terminal or a distance between respective satellites and other satellites, user permissions, compute resource entity data, can be applicable to determine how to route a request for compute resources to which hardware on which satellite(s). Furthermore, satellites can be clustered dynamically to enable a proper response to a request for compute resources. These various aspects of the underlying issue are developed in this application in different examples.
As used herein, the term compute resources generally means any resource made available through a satellite or a terrestrial computer system. Such compute resources can include computer processors (hardware or virtual processors), storage for data in any type of computer-readable storage medium (RAM, hard-disk and so forth), software applications, platforms, virtual private clusters of a combination of compute resources, bandwidth, endpoint-to-endpoint services, or any combination of these resources.
In accordance with one example of the present disclosure, a general method includes how to receive and respond to requests for compute resources. The method includes receiving, at a satellite control system on a satellite, a request from a user terminal for compute resources, requesting, from a computing environment configured on the satellite, access to the compute resources, receiving, from the computing environment configured on the satellite, access to the compute resources and transmitting data associated with the use of the compute resources to the user terminal.
The compute resources can be data such as a media presentation or can relate to any type of application or platform operating on the satellite or a group of satellites. For example, the data can relate to output from use of compute resources made available on one or more satellites, or the data can be output from a stock-trading platform or a media platform that provides downloaded video or audio to a user device utilizing the user terminal for access to the one or more satellites. The approach disclosed herein provides low-latency content delivery to a user terminal because rather than serve the content from the ground, through a series of satellites, and then to the user, the content is served directly from one or more satellite. The approach can also provide low latency using a constellation of satellites for data transmission via laser connections to provide, for example, an endpoint-to-endpoint communication channel. The path of data transmission over the constellation of satellites can be an improvement over standard Internet packet flow. For example, one reason for long latency via point-to-point via terrestrial cables (undersea and overland routes) is geography and the existing routes. There is no direct undersea route from South Africa to Sydney. For this and other reasons, an endpoint-to-endpoint communication channel through one or more satellites between two ground stations (user terminals or gateways) can provide a lower latency communication path.
In any of the examples or methods described herein, the computing environment configured on the satellite may include a memory device that stores the data or stores instructions which, when executed by a processor, enables use of the compute resources on the satellite or group of satellites.
In any of the examples or methods described herein, the computing environment configured on the satellite can provide compute resources to the user terminal (and ultimately the user computing device) or a gateway and may further include one or more of hardware available on demand, an application or platform, any cloud-service, data storage and access generally, an access/control module, endpoint-to-endpoint communication channel services and/or a user interface module if a particular user interface is useful in accessing the computing environment. In one example, the access/control module can include the instructions and operations to access or control the data or compute resources of interest. The access/control module can be tailored to enable the access and control of different types of applications such access to compute resources in a similar manner to cloud computing, high performance computing resources, data such as media, certain functionality from a platform, or any other type of application or platform that can be configured on the satellite or the group of satellites. The access/control module can also cover encryption and/or transport layer security aspects for particular applications where security is desired, such as file transfers, video and audio conferencing, email, texting or other applications where security is desired.
An intelligence layer can determine how to load balance or manage the distribution or steering of requests for compute resources and can exist on one or more satellites, at a ground-based service or a service at a terrestrial location, or in a hybrid configuration in which some processing occurs on one or more satellites and other processing occurs on a ground-based service. Depending on the application, a combination of modules and/or data can apply to delivering the capabilities of the respective application.
In any of the examples or methods described herein, when the computing environment configured on the satellite does not have the requested data or the requested compute resources on the satellite, the computing environment and/or access/control module may request the data or the compute resources from one of another computing environment configured on the satellite, a terrestrial computing network, or another satellite via a communication link such as a laser communication link.
In any of the examples or methods described herein, a method may further include identifying the computing environment configured on the satellite as either having the compute resources or being associated with an account of a user. The user may or may not be associated with any particular user terminal as the account data to access the computing environment may be independent of any particular user terminal or gateway.
In any of the examples or methods described herein, receiving, from the computing environment configured on the satellite, the data of the application functionality may further include the computing environment authorizing access to the data or application for a user and/or transmitting a user interface associated with the computing environment to the user terminal. The computing environment may authenticate the user and transmit a user-specific interface to its computing/data resources. In some cases, the special user interface may provide specific graphical objects or capabilities to enable the user to access a particular application. In other cases, the user interface may not be altered or needed from a traditional user interface in that the location of the data or the application on the satellite or group of satellites will be transparent to the user.
Another example relates to taking the physical condition of satellites into account when routing requests for compute resources or for clustering satellites to provide access to compute resources. A method in this regard includes receiving, at a satellite as part of a group of satellites, data associated with the group of satellites, wherein the data includes one or more of an energy balance associated with the group of satellites, transient hardware temperatures associated with the group of satellites, a reboot or reset event associated with the group of satellites, scheduled workload on one or more satellites and orbital data associated with the group of satellites and, based on the data, configuring an availability of compute resources across the group of satellites to yield dynamically available compute resources.
The compute resources mean any resource available such as bandwidth, endpoint-to-endpoint communication channels, memory, computer processors, and storage as well. The method includes receiving a request from a user terminal for compute resources to yield requested compute resources and providing, from the group of satellites and to the user terminal, access to the dynamically available compute resources based on the requested compute resources. In one example, satellites can be rebooted or reset due to radiation exposure or for some other reason in which the electronic components stop behaving in their expected manner. A reboot may also be initiated due to corrupted software or some other factor. The logic of the satellite will cause a reboot to correct for the condition and the delivery of compute resources might be paused in that case or transferred with state information to another satellite to accommodate for the reset or reboot event(s).
In one aspect, there are probabilities of whether a radiation event might happen to a given satellite which can depend on characteristics of different satellites such as their age, design, radiation protection infrastructure, and exposure to the sun. In another aspect, there are backup satellites for serving a user terminal if a radiation event occurs and a reboot or reset is initiated. The workload can be balanced and transferred to one or more designated backup satellites in a dynamic manner based on such an event. The topology schedule and/or workload schedule can be used to establish backup satellites as part of a clustering of satellites or in general.
Thus, the management of access to compute resources can be performed based on a hybrid of predictive or future looking conditions such as the transient hardware temperature which is known in advance and dynamic events like a reboot due to a radiation event or software error.
In another aspect, the satellites are constantly moving in their respective orbits. The intelligence layer can take into account the movement of the satellites when making routing or steering decisions. A method in this regard can include receiving, at a satellite as part of a group of satellites, data associated with the group of satellites, wherein the data is associated with movement of the group of satellites according to a respective orbit of each satellite of the group of satellites and, based on the data, clustering two or more satellites of the group of satellites that can provide cloud-computing operations to user terminals to yield a cluster of satellites. The method can include receiving, at a satellite associated with the cluster of satellites, a request from a user terminal or gateway for compute resource to yield a requested compute resource and providing, from the cluster of satellites and for the user terminal or gateway, access to the compute resources based on the requested compute resources. The clustering can occur before or after the request for compute resources.
In another aspect, a method includes receiving, in connection with a group of satellites, data associated with the group of satellites, wherein the data is associated with movement of the group of satellites according to a respective orbit of each satellite of the group of satellites and, based on the data, linking two or more satellites of the group of satellites into a constellation of satellites that can provide cloud-computing operations to user terminals or gateways. The method can further include receiving, at a satellite associated with the constellation of satellites, a request from a user terminal or gateway for compute resource to yield a requested compute resource, based on the request and the constellation of satellites, routing the request to one or more satellites of the constellation of satellites to provide the compute resources to the user terminal or gateway and providing, from the one or more satellites of the constellation of satellites and to the user terminal or gateway, access to the compute resources.
Examples can include one or more satellites as well as ground-based operational systems. In one aspect, a satellite includes a satellite control system, an antenna connected to the satellite control system, a solar panel, a battery and a power converter configured between the solar panel and the battery to manage a flow of electricity. The satellite control system in this scenario includes the logic or intelligence to manage request for compute resources and to route those requests to the computing environment (edge node) on one or more satellites to enable access to the requested compute resources. The satellite further includes a memory device, a computing environment configured on the satellite and a plurality of compute resources as part of the computing environment. When a user terminal requests a compute resource via the satellite control system to yield requested compute resource, the computing environment retrieves, if available, the requested compute resource from the plurality of compute resources stored in the memory device and provides data associated with the requested compute resource to the satellite control system for transmission via the antenna to the user terminal or makes the requested compute resource available to the user terminal. In some respects, the computing environment operated on the satellite is from a different company or different entity from the satellite company.
A method of managing access to compute resources in this regard can include receiving, at a satellite control system on a satellite, a request from a user terminal for compute resources and requesting, from an entity computing environment configured on the satellite, the compute resources. In a multi-tenant environment, there may be different entities offering different computing environments on a group of satellites. The method can include receiving, from the entity computing environment configured on the satellite, data associated with the compute resources and transmitting the data associated with the compute resources to the user terminal.
In any of the examples or methods described herein, the computing environment configured on the satellite may include one of a virtual computing environment and a hardware computing environment.
In any of the examples or methods described herein, the computing environment configured on the satellite may be one of a plurality of computing environments configured on the satellite. In other words, the satellite(s) can provide a multi-tenant environment with different compute resources being managed and made available by different companies.
In any of the examples or methods described herein, the computing environment configured on the satellite may further include an entity computing environment and the data may include audio or video or any other type of data which can include an output of an application process, an artificial intelligence or machine learning model, or any other application or platform.
In any of the examples or methods described herein, the computing environment may further include a user interface module for providing to the satellite control system a user interface for transmission to the user terminal. In some cases, the access to data or applications on the satellite or group of satellites can require a specialized user interface which can be transmitted to the user terminal for display on a user device that presents the user interface for interaction by the user.
In any of the examples or methods described herein, a satellite may further include a plurality of computing environments configured on the satellite, each respective computing environment of the plurality of computing environments being separate from the satellite control system and other computing environments. In another aspect, the system may include control systems as well as computing environments on a same board.
In any of the examples or methods described herein, when the user terminal requests via the satellite control system the requested data, the satellite control system may determine that the computing environment is a chosen computing environment from a plurality of computing environments configured on the satellite.
In any of the examples or methods described herein, a user account associated with the computing environment may be used to determine that the computing environment is the chosen computing environment from the plurality of computing environments configured on the satellite. In this context, the satellite or group of satellites can be a multi-tenant environment in which individual users can gain access to data or applications made available via the satellite or group of satellites. Access control can also be coordinated with a ground-based system operating by a respective entity that controls access to the compute resources according to a user profile or account of a registered user for access.
In any of the examples or methods described herein, when the requested data is not available on the memory device, then the computing environment may obtain the requested data from one of another computing environment on the satellite, a terrestrial source via a gateway, or any computer system on Earth such as a datacenter or cloud-computing environment, a company on-premises computing environment, a Point of Presence (POP) computer system for defining different communicating entities, or another satellite. Any computing system in one or more satellites or as a terrestrial source of compute resources can apply here.
In any of the examples or methods described herein, the satellite may further include a battery, a solar panel connected to the battery, and a management module that manages power usage amongst components.
In any of the examples or methods described herein, a satellite may further include a workload management module that manages one or more of power usage amongst components and scheduling of workload across the plurality of computing environments. The workload management module can provide for load balancing across the group of satellites and can be configured on one or more satellites and/or can be configured on a ground computing device for managing the load balancing across the group of satellites. Data from the workload management module can also be used to cluster satellites together in connection with a topology schedule to provide access to compute resources.
In any of the examples or methods described herein, the computing environment may be configured in one of a virtual machine, a container or on dedicated hardware on the satellite.
In any of the examples or methods described herein, the computing environment may include an entity computing environment and wherein the requested data can include video or audio.
In accordance with another embodiment of the present disclosure, a method is provided.
The method can include receiving, at a satellite control system on a satellite, a request from a user terminal for compute resources, requesting, from an entity computing environment configured on the satellite, the compute resources, clustering, based on the request, two or more satellites based on one or more of a thermal condition, a reboot or reset event, movement of a group of satellites including the satellite, a proximity of one or more satellites to the user terminal, or a schedule of future positions of the group of satellites to yield a cluster of satellites, receiving, from the computing environment configured on one or more of the cluster of satellites, data associated with the compute resources or access to the compute resources and transmitting the data associated with the compute resources to the user terminal.
In any of the examples or methods described herein, the data associated with the compute resources may include one or more of a media presentation, a file, and data generated from running workload using the compute resources.
In any of the examples or methods described herein, the compute resources may include a service, an endpoint-to-endpoint communication channel, or an application offered in response to the request.
In any of the examples or methods described herein, the service or the application may be operable on the satellite and/or a secondary satellite in communication with the satellite.
In each case described herein where communication with a satellite is described as being via a user terminal, other ground stations are also contemplated. Thus, the communication could occur from a gateway as well or other communication device that is not a user terminal or a gateway.
In order to describe the manner in which the above-recited issues can be addressed, a more particular description of the principles briefly described above will be rendered by reference to specific examples thereof that are illustrated in the appended drawings. Understanding that these drawings depict only exemplary examples of the disclosure and are not therefore to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which:
7E illustrates an example method of using entity compute resource data as well as other satellite data to determine routing strategies in accordance with examples of the present disclosure;
Various examples of systems and method of the disclosure are discussed in detail below. While specific implementations are discussed, it should be understood that this description is for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. Thus, the following description and drawings are illustrative and are not to be construed as limiting.
Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure can be references to the same embodiment or any embodiment; and, such references mean at least one of the example embodiments.
Reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. However, any example or embodiment is not meant to be independent or exclusive of features disclosed elsewhere in the application. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative example embodiments mutually exclusive of other example embodiments. Moreover, various features are described which may be exhibited by some example embodiments and not by others. Any feature of one example or embodiment can be integrated with or used with any other feature of any other example or embodiment.
The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Alternative language and synonyms may be used for any one or more of the terms discussed herein, and no special significance should be placed upon whether or not a term is elaborated or discussed herein. In some cases, synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms discussed herein is illustrative only and is not intended to further limit the scope and meaning of the disclosure or of any example term. Likewise, the disclosure is not limited to various example embodiments given in this specification.
Without intent to limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the example embodiments of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, technical and scientific terms used herein have the meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions will control.
Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims or can be learned by the practice of the principles set forth herein.
For clarity of explanation, in some instances the present technology may be presented as including individual functional blocks representing devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software.
In the drawings, some structural or method features may be shown in specific arrangements and/or orderings. However, it should be appreciated that such specific arrangements and/or orderings may not be required. Rather, in some examples, such features may be arranged in a different manner and/or order than shown in the illustrative figures. Additionally, the inclusion of a structural or method feature in a particular figure is not meant to imply that such feature is required in all examples and, in some examples, it may not be included or may be combined with other features.
While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific examples thereof have been shown by way of example in the drawings and will be described herein in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the present disclosure and the appended claims.
The present disclosure relates to providing cloud computing resources, applications, platforms, data, and similar computer-based resources from one or more satellites in news ways in which the compute resources are available at least in part or possibly available on the one or more satellites and how to access and control those resources. As the innovations operate in the context of a constellation of satellites, user terminals, gateways and ground-based computer environments, this disclosure first provides in
Cloud-services are generally computer implemented capabilities that are outside of the capability of an on-premises company computer system. For example, some companies have workloads that may require extra computing power on occasion. They may also need or desire applications or other capabilities that they don't want to pay for in terms of buying their own hardware. Companies may also not want to incur the cost of managing software and hardware infrastructure. In some cases, companies or individuals may want access to capabilities such as more processing power, certain software applications, bandwidth, endpoint-to-endpoint communication channels or data such as streaming video, and so forth. There are many cloud-services characterized by the “X as a service” model where “X” can mean many different functions. For example, XaaS can include banking as a service, blockchain as a service, data management as a service, artificial intelligence or machine learning as a service, software as a service, platform as a service, payment as a service, network as a service, security as a service, and so forth. Any of the capabilities that are available “as a service” can be delivered as compute resources or cloud-services as described herein. Cloud-services can also include access to data such as movies or other media as well as computer processors for processing data or applications. For example, a company may need more computing power than they currently have available on site and desire to expand into a cloud computing environment for the purpose of using processor power. They may gain access to compute resources (hardware and/or virtual resources), and provision applications, software and/or data and then run their jobs on the compute resources. Thus, cloud-services can also include access to such computing power for a period of time. Once a job is complete, the compute resources can be released for others to use.
In addition to the satellites 102, the satellite communication system 100 also includes a user terminal 112 on Earth and a gateway terminal 104 on Earth. The user terminal 112 and the gateway terminal 104 may be referred to collectively as “ground terminals.” Each satellite 102 includes an onboard satellite computer system 103 programmed to manage communications with user terminals 112, satellite access gateways 104, and other satellites 102, using one or more communication terminals (e.g., RF antennas and/or laser communication terminals) of the satellite. In particular, the satellite computer system 103 routes communications to and from those nodes through the respective satellite 102 as part of the network mesh topology. The satellite 102 can also include other components that can be represented generally by feature 103. For example, sensors that detect radiation, electrical signals, and/or temperatures experienced by the satellite 102, a gyroscope and/or any other component related to the health and condition of the satellite 102 in space. The data received from these components can be communicated to the satellite computer system and used to determine how to cluster or organize the deliverance of compute resources such as data, applications, high frequency trading platforms, endpoint-to-endpoint services, computer processor usage, and so forth from a dynamically adjusting cluster or constellation of satellites.
User terminal 112 may be installed at a house, a business, a vehicle (e.g., a land-, air-, or sea-based) vehicle, or another Earth-based location where a user desires to obtain communication access or Internet access via the satellites 102. An Earth-based endpoint terminal 102 may be a mobile or non-mobile terminal connected to Earth or as a non-orbiting body positioned near Earth. For example, an Earth-based endpoint terminal 112 may be in Earth's troposphere, such as within about 10 kilometers (about 6.2 miles) of the Earth's surface, and/or within the Earth's stratosphere, such as within about 50 kilometers (about 31 miles) of the Earth's surface, for example on a stationary object, such as a balloon.
For example, the user may connect one or more network devices 114 such as desktop computers, laptops, mobile devices, Internet of Things (IoT)-enabled devices, and the like (collectively, “customer equipment”) locally to the user's user terminal 112 and obtain access via satellites 102 to the Internet. Although the local connection between the customer equipment and the user terminal is illustrated as a WiFi router 118 (or more broadly a WiFi mesh), other types of wired or wireless local communication are also contemplated.
The gateway terminal 104 serves as a satellite access gateway for the satellite(s) 102 to communicate with one or more ground-based networks 120, such as the Internet 122 or another ground-based network 124, through which content, such as videos or other data, may be accessed (e.g., from a server 150) and provided back to the user terminal 112 and network device 114. The gateway terminal 104 may be connected to a point-of-presence (PoP) 140 on the ground-based network 120.
The illustrated communication signal paths in the satellite communication system 100 include a link between the user terminal 112 and one of the satellites 102 in the mesh, which may be referred to as a UT-SAT link. In the exemplary embodiment, the UT-SAT link is implemented as a Ku-band radio frequency (RF) link. For example, the user terminal 112 and each of the satellites 102 may include a phased array antenna for transmitting and receiving RF signals in the Ku band. However, other types of communication links are also contemplated for implementing the UT-SAT link, for example, other bands or other types of links including optical links. Moreover, while only one user terminal 112 and three satellites 102 are illustrated, satellite communication system 100 may include millions of user terminals 112 and many thousands of satellites 102, and different ones of the user terminals 112 and satellites 102 may use different types of communication links to establish the UT-SAT link.
The illustrated communication signal paths in the satellite communication system 100 include a link between one of the satellites 102 in the mesh and the gateway terminal 104, which may be referred to as a SAT-GW link. In the exemplary embodiment, the SAT-GW link is implemented as a Ka-band radio frequency (RF) link. For example, the gateway terminal 104 and each of the satellites 102 may include a parabolic antenna for transmitting and receiving RF signals in the Ka band. However, other types of communication links are also contemplated for implementing the SAT-GW link. For example, the satellites 102 may also include laser communication terminals, as described below, and the gateway terminal 104 may also include one or more laser communication terminals for communication with the satellites 102 when atmospheric weather conditions are favorable for ground-to-space (and space-to-ground) laser transmission. Moreover, while only one gateway terminal 104 and three satellites 102 are illustrated, satellite communication system 100 may include hundreds of gateway terminals 104 and many thousands of satellites 102, and different ones of the gateway terminals 104 and satellites 102 may use different types of communication links to establish the SAT-GW link.
The illustrated communication signal paths in the satellite communication system 100 may further include links between respective pairs of the satellites 102 in the satellite mesh topology 107, which may be referred to as SAT-SAT links. In the exemplary embodiment, the SAT-SAT links are implemented as optical frequency links, or simply “optical” or “laser-based” links. For example, each of the satellites 102 also includes one or more laser communication terminals for transmitting and receiving laser-based (e.g., optical) signals. The laser communication terminals may be dynamically oriented with respect to the satellite 102 on which they are mounted to enable the laser communication terminals of each satellite 102 to track, and maintain the SAT-SAT links 106 with, other satellites 102 in relative motion with respect to the satellite 102. In the exemplary embodiment, each of the satellites 102 includes multiple laser communication terminals that may be independently oriented to enable each satellite to simultaneously maintain SAT-SAT links with multiple other satellites 102. However, other types of communication links are also contemplated for implementing the SAT-SAT links. Moreover, while only three satellites 102 are illustrated, satellite communication system 100 may include many thousands of satellites 102, and different pairs of the satellites 102 may use different types of communication links to establish the respective SAT-SAT link between them. Additionally, one or more of the satellites 102 may not be configured to establish SAT-SAT links with other satellites 102. SAT-SAT links can be established and changed in the context of dynamic clusters of satellites 102 that can be created based on a schedule or topology for providing access to cloud-services or might be generated dynamically based on one or more requests for compute resources to process workload or access data. After a job is complete, or the use of the compute resources is complete, the cluster of satellites 102 can be removed or eliminated and the SAT-SAT links changed.
In the exemplary embodiment, satellite communication system 100 also includes satellite operations (“SatOps”) services 130 connected to the gateway terminal 104 from a centralized location. For example, each gateway terminal 104 is associated with its own PoP 140, and the PoP 140 is connected to the centralized SatOps 130 via a private backbone 126. The SatOps 130 may transmit various operational and management instructions to the gateway terminal 104, as well as to the satellites 102 (via the gateway terminal) and to the user terminal 112 (via the gateway terminal and the satellites). In the exemplary embodiment, the private backbone 126 may be implemented on an Internet-based secure cloud platform, such as Amazon Web Services® (AWS) by way of a non-limiting example. The AWS PrivateLink is an example system that provides private connectivity between Virtual Private Clouds (VPCs), AWS services and on-premises networks. However, other implementations of the private backbone 126 are also contemplated. In one aspect, the approach disclosed herein can include an endpoint-to-endpoint communication channel through one or more satellites to enable or as part of a private secure network for clients. Note that the concepts disclosed herein enable a secure cloud platform to be moved to one or more satellites 102 and the disclosure provides various approaches to making such a framework feasible given the movement of the satellites and other issues experienced by satellites 102 but not traditional cloud platforms.
The SatOps services 130 and its associated components can in one aspect operate the intelligence to manage or map the access to compute resources across one or more satellites in a network or satellite-based cloud platform. The requests for compute resources can be mapped to the appropriate hardware on one or more satellites in a context of a moving group of satellites with other dynamically changing conditions such as thermal and reboot or reset conditions of individual satellites. In this regard, the SatOps service 130 can operate as a load balancing module (also referred to as feature 130) with respect to requests for compute resources from user terminals 112. For example, the SatOps services 130 can receive information about requests for compute resources and with knowledge of the available compute resources, data, applications, movement of the satellites and so forth across the various satellites, can manage the dynamic generation of clusters of satellites for a period of time to deliver the requested compute resource. The topology service 132 can include or provide the necessary data about the topology of the group of satellites over time and a predicted topology for a future period of time as well. Other components such as the node status service 134 and the steering service 136 can be used to enable the satellites 102 to provide compute resources to requesting user terminals 112. In another aspect, control modules 103 can operate on the satellites to perform these operations as well. In yet another aspect, the functions can be divided between a ground station such as, for example, the SatOps services 130 and a control module 103 on one or more satellites 102.
A workload manager 137 can be included as part of the SatOps services 130. The workload manager 137 can represent an intelligence layer that can receive request for compute resources from one or more customers or user computing equipment 114. For example, the customer equipment 114 might be on-premises equipment for a company wherein the company periodically needs more computing power or access to some kind of compute resource that is not available on the customer equipment 114. The company may request 20 processors, 3 GB of memory, a certain computing environment (operating system, software application, data, and so forth), an endpoint-to-endpoint high-speed communication channel, and submit that request as “workload”. Workload managers typically receives the requests for workload and schedules the workload in a data center such that in each time slice, all or almost all of the processors are actually processing workload rather than being dormant. If a data center for example has 300 processors, the goal is to have for each one second of time, all 300 processors are processing workload. There might be twenty different jobs or workload from twenty different entities that are distributed across the 300 processors for a certain amount of time. Some workload requires a large amount of processing power and other workload does not. However, other workload might only require a few processors. The Moab® workload manager and the Slurm® workload manager are examples of such software tools. Other related tools can include TORQUE (Terascale Open-Source Resource and QUEue Manager) which is a distributed resource manager that provides control over batch jobs and distributed compute nodes. The Maui Cluster Scheduler is another tool that is a job scheduler for use on cluster and supercomputers. This tool is capable of supporting multiple scheduling policies, dynamic priorities, reservations and fairshare capabilities. Other workload automation tools include, but are not limited to, OpenPBS, Oracle Grid Engine, Platform LSF, Apache Airflow, and others. These tools are applicable in the high-performance computing context to provide scalable access to specialized architectures and policy-based management and automation. Those of skill in the art will understand these various workload automation tools. The use of the workload manager 137 relates to the use of any of these types of tools in order to utilize the workload schedule in combination with a topology schedule to improve the clustering of satellites in order to provide more efficient compute resources with less latency.
Fifty-five percent of the United States GDP of around $10 trillion is associated with high performance computing (HPC), including for industrial design, weather prediction, genomic research, vehicle crash simulation and drug discovery. Every industry automotive, aerospace, electronics, financial sector, oil and gas, energy and utilities, life sciences and more is running compute-intensive workloads to optimize designs or predict business outcomes. The approach disclosed herein will make one or more satellites a potential destination for providing compute resources to operate these important workloads.
In many cases, a single job needs to run multiple simulation applications at different scales along with data analysis, in situ visualization, machine learning, and artificial intelligence (AI). Scientific workflow requirements combined with hardware innovations—for example, extremely heterogeneous resources such as GPUs, multitiered storage, AI accelerators, quantum computing of various configurations, and cloud computing resources—are increasingly rendering traditional computing resource management and scheduling software incapable of handling the workflows and adapting to the emerging supercomputing architectures. The supercomputing architectures and such hardware innovations can be implemented on one or more satellites that thus made available via clustering for this type of workload as disclosed herein.
The use of a workload manager that can analyze such data as service level agreements, priority of users or workload, quality of service requirements, types of workload and affinity for certain types of computing environments, and so forth, can enable a highly efficient use of a data center over mere load balancing. In this context of this disclosure, the scheduled workload or scheduled use of compute resources in general and other information about the workload can be utilized by the SatOps services 130 to cluster satellites in a more intelligent manner. The use of the workload manager 137 will be described in more detail below.
In the context described herein, third parties 138 separate from the entity operating the satellite or satellites 102, can have compute environments configured on one or more satellites and can provide compute resources to user terminals. Compute resource entity 138 can provide data associated with its cloud-services to the SatOps service 130 which can then utilize that data to provide the routing of a request to the proper satellite or satellites 102 and to perform other operations such as clustering based on the various factors disclosed herein. Issues such as user authorization, status of the compute resources (i.e., location of a particular file, scheduled use of the compute resources that may not allow a quality of service to be delivered, a state of the compute resources, etc.), proximity of the compute resources to the user terminal 112 making the request, and so forth can be considered when routing the request to a satellite or satellites 102. Some of that data can come from the compute resource entity 138 which represents typically a third-party cloud-service provider having an entity compute environment configured on one or more satellites.
Also shown in
For global coverage with a reduced latency relative to a terrestrial communication network, satellite communication system 100 employs non-geostationary satellites, and more specifically low-Earth orbit (LEO) satellites 102. Geostationary-Earth orbit (GEO) satellites orbit the equator with an orbital period of exactly one day at a high altitude, flying approximately 35,786 km above mean sea level. Therefore, GEO satellites remain in the same area of the sky as viewed from a specific location on Earth. In contrast, LEO satellites orbit at a much lower altitude (typically less than about 2,000 km above mean sea level), which reduces Earth-satellite signal travel time and therefore reduces communication latency relative to GEO satellites.
However, a stable low-Earth orbit necessarily corresponds to a much shorter orbital period as compared to GEO satellites. For example, at a particular altitude, a LEO satellite 102 may orbit the Earth once every 95 minutes. Further in the exemplary embodiment, the low-Earth orbits of satellites 102 are prograde. Therefore, LEO satellites do not remain stationary relative to a specific location on Earth, but rather advance generally eastward with respect to the Earth's surface. In addition, the lower orbital altitude means that, in contrast to a GEO satellite, a LEO satellite in an equatorial orbit would not have a “line of sight” for direct communication with user terminals or gateway terminals at middle or upper latitudes on Earth, such as at locations L1 (corresponding to Los Angeles, Calif.) and L2 (corresponding to Seattle, Wash.) identified in
Accordingly, satellite communication system 100 may include a large number, for example several thousand, satellites 102 arranged in a constellation of inclined orbits that ensures that at least some satellites 102 are always crossing the sky within range of user terminals 112 at any given Earth latitude and longitude. One non-limiting embodiment is illustrated in
The angle of inclination of the satellites typically corresponds to an upper and lower limiting Earth latitude (indicated as P and Q for satellite string X1, and as R and S for satellite string Y1) of the orbital paths of the satellites. Although two strings at different inclinations are illustrated, other numbers of strings, such as one string or more than two strings, are also contemplated. Moreover, the illustrated angles of inclination are examples, and other angles of inclination for a single string or for multiple strings are also contemplated. Orbital patterns X1 and/or Y1 may be designed as repeating ground track systems or may have a drifting pattern relative to the Earth's rotation rate.
Due to the inclination of the orbits, in addition to the general eastward motion of the satellites relative to the Earth's surface, each satellite 102 spends half its orbital period ascending from south to north over the Earth's surface, and the other half of its orbital period descending from north to south. The movement of the various satellites 102 is taken into account as disclosed herein in the context of clustering satellites for providing access to a user terminal 112 to compute resources on the satellite 102.
The network topology of the satellite communication system 100 may be analogized to a map of roads (travel routes) interconnecting a group of cities (nodes). For road travel between two cities separated by a significant distance, several different road routes may be available, each using roads that connect a different set of intermediate cities. One must know which intermediate cities are connected by roads, and how much traffic there will be on each road, in order to select the best travel route between the two cities.
Similarly, for data travel between two nodes in the satellite communication system 100 (e.g., between a user terminal 112 and a data source, such as the ground-based server 150 (shown in
In the exemplary embodiment, the ground area 300 includes user terminals 112 grouped into service cells 302. Although each service cell 302 is illustrated as a hexagonally shaped area, service cells 302 of any shape are contemplated. Moreover, although the service cells 302 are illustrated as having a particular size, other sizes of service cells 302 are contemplated. The ground area 300 also includes one or more gateway terminals 104.
With reference to
The topology service 132 may transmit topology schedule data to the user terminals 112 in each service cell 302 on a regular basis (e.g., via the gateway terminal 104 and the satellite 102 that are currently in communication with the service cell 302 associated with the respective user terminal 112). The topology schedule data transmitted to the user terminals specifies one or more of the satellites 102 that will be available for connectivity to the respective user terminal 112 during one or more future time slots. In conjunction with the arrival of the future time slot, the user terminal 112 initiates a SAT-UT link with one of the satellites 102 specified by the topology schedule data for that time slot. In the exemplary embodiment, the SatOps services 130 also includes a steering service 136 that is programmed to manage the routing of the many data requests from, and responses to, user terminals 112 through the network topology of the satellite communications system 100. As disclosed herein, the network topology can vary based on the need to provide access to compute resources available on one or more satellites 102. Thus, the timing and information provided can be utilized by an intelligence layer on the SatOps or load balancing module 130 and can be used as part of the topology schedule. Thus, the topology schedule can be adjusted to take into account that certain satellites might have a SAT-SAT link to enable access to compute resources that might expand beyond one satellite or to provide access to a satellite 102 that is not within a direct view of a user terminal 112 seeking access to a compute resource.
The timing of the regular transmission of the topology schedule data to the user terminals in a service cell 302 may be selected to balance several factors. For example, transmitting the topology schedule data for each time slot well in advance of the arrival of the future time slot helps to ensure that the topology schedule data propagates through the gateways and satellites to the user terminals in time to enable the user terminals to re-orient their respective phased array RF beams when the future time slot arrives. On the other hand, transmitting the topology schedule data for each time slot a relatively short time in advance of the arrival of the future time slot enables the topology service 132 to account for more up-to-date satellite and gateway statuses and ground demand data in assigning service cells to satellites. For example, the SatOps services 130 may include a node status service 134 that monitors the satellites 102 and gateways 104. The node status service may provide projected satellite orbital positions during future time slots based on the position, velocity, and altitude of each satellite. The node status service may also provide data indicating Internet connectivity and performance of the PoP 140 associated with each gateway 104, and/or data indicating weather-based signal attenuation prediction data for each gateway 104. The node status service 134 may further evaluate the health and operability of each satellite and gateway, for example, by tracking a slew rate and alignment performance of each parabolic antenna of the satellite or gateway to determine a current capability of the parabolic antenna to obtain and track links. Other types of health and/or status monitoring of the nodes in satellite communication system 100 are also contemplated. The topology service 132 may be programmed to avoid assigning a potential link between nodes if the node status data suggests the link would be unreliable.
In some examples, the factors involved in advance transmission timing for the topology schedule data may be balanced advantageously by regularly transmitting the topology schedule data to the user terminals in each service cell at an advance transmission time of five to ten minutes in advance of the one or more future time slots associated with the topology schedule data. However, other advance transmission times are also contemplated.
As discussed above with respect to user terminals, a particular satellite 102 also may be in a position to establish communication with a particular gateway terminal 104 for only a short time window. In the exemplary embodiment, the topology service 132 also assigns each satellite 102 to one of the gateway terminals 104 on the slot-by-slot basis. The topology service 132 may transmit topology schedule data to the satellites on a regular basis (e.g., via the gateway terminal 104 that is currently in communication with the respective satellite 102). The topology schedule data transmitted to the satellites specifies an expected connectivity of the respective satellite 102 to one of the gateway terminals 104 during one or more future time slots. In conjunction with the arrival of the future time slot, the satellite 102 initiates a SAT-GW link with the gateway terminal 104 specified by the topology schedule data for that time slot.
The timing of the advance transmission may be based on advance timing factors similar to those discussed above. For example, the satellites and gateways terminals may need to receive the topology schedule data sufficiently in advance of the future time slot to calculate and execute slewing of their respective parabolic RF antennas as required by the topology schedule data for that future time slot. In some examples, the advance transmission time for the topology schedule data to the satellites is five to ten minutes in advance of the one or more future time slots associated with the topology schedule data. However, other advance transmission times are also contemplated.
For example, as illustrated in
In some examples, the topology schedule data specifies, on a per service cell 302 basis, a priority sequence in which the user terminals 112 should attempt to establish links with the available satellites 102A, 102B, and 102C. In other words, the topology schedule data sent to user terminals in some service cells 302 may specify a priority of 102A, 102B, and 102C for attempts to establish links during the time slot, while the topology schedule data sent to user terminals in other service cells 302 may specify a priority of 102B, 102A, and 102C for attempts to establish links during the time slot. Each user terminal 112 attempts first to establish a UT-SAT link with the first satellite in the priority sequence, and if unsuccessful, attempts to establish a UT-SAT link with the second satellite in the priority sequence, and so on. Although three satellites are listed in the example priority sequences above, other numbers of satellites in a priority sequence are also contemplated, and different service cells may be given different numbers of satellites in their priority sequences. In other examples, the topology schedule data merely identifies, on a per service cell 302 basis, a non-prioritized list of satellites that should be available to establish links, and each user terminal 112 is programmed to select for itself an order in which the user terminal will attempt to establish a link with each of the listed satellites.
There may be several advantages in providing the user terminals 112 in each service cell 302 with more than one candidate satellite 102 for establishing a UT-SAT link during a given time slot. For example, for a service cell 302 that receives topology schedule data including a list of candidate satellites 102A, 102B, and 102C, some user terminals in that service cell may become blocked from communication with satellite 102A, as the satellite moves across the sky relative to the ground, by a local obstacle, such as a tree or building. The list of candidates in the topology schedule data enables the user terminal to quickly move to establish a link with the next candidate satellite during the same time slot. In addition, there may be an upper limit on the number of UT-SAT links that can be maintained by each satellite 102A, 102B, and 102C. For example, this may be due to a physical limitation on the number of channels that can be maintained simultaneously by the phased array RF antennas on each satellite 102, and some of the channels may occasionally fall offline for short periods. Accordingly, some user terminals 112 in a service cell 302 with a relatively high number of active user terminals may be blocked from linking to one or more of the candidate satellites in the topology schedule data because other user terminals were first to take the available channels. Again, the list of candidate satellites in the topology schedule data enables the blocked user terminal to quickly move to establish a link with the next candidate satellite during the same time slot. For these or similar reasons, even in examples where all user terminals in the same service cell 302 receive the same priority list of satellites for a particular time slot, user terminals in that service cell actually may establish UT-SAT links with different satellites during that time slot.
Similarly, the satellites 102A, 102B, and 102C have previously received topology schedule data for the particular time slot shown in
There may be several advantages in providing the satellites 102 with more than one candidate gateway terminal 104 for establishing a SAT-GW link during a given time slot. For example, satellite 102A receives topology schedule data including a list of candidate gateway terminals 102C, 102A, and 102B, but may be blocked from establishing a high-quality link with gateway terminal 104C by weather-based signal attenuation. The list of candidates in the topology schedule data enables the satellite to quickly move to establish a link with the next candidate gateway terminal during the same time slot. In addition, there may be an upper limit on the number of SAT-GW links that can be maintained by each gateway terminal 102A, 102B, and 102C. For example, this may be due to a physical limitation on the number of satellites that can be tracked simultaneously by the parabolic RF antennas at each gateway terminal site, and some of the parabolic antennas may occasionally not track as expected for short periods. Accordingly, some satellites 102 may be blocked from linking to one or more of the candidate gateway terminals in the topology schedule data because other satellites were first to take the available channels. Again, the list of candidate satellites in the topology schedule data enables the blocked satellite to quickly move to establish a link with the next candidate gateway terminal during the same time slot.
The term “satellite mesh topology” refers specifically to the network interconnectivity among the group of satellites 102 as nodes within the overall mesh network, and the configuration of the satellite mesh topology 107 changes dynamically over time in the satellite communication system 100 to account for relative motion among the satellites 102 and other factors. With respect to clustering of satellites 102, the concept is applied herein to provide via one or more satellites a cluster of satellites that are chosen based on a number of factors to enable users to access cloud-services or compute resources from the cluster of satellites. This is beyond merely seeking access to the Internet through the satellite network as was traditionally done. In this case, where a particular compute resource entity 138 has for example establishes a cache of data or has respective compute environments configured on a sub-group of satellites, the satellite mesh topology can involve clustering the sub-group of satellites and establishing SAT-SAT laser links between those satellites because: (1) a user terminal (or multiple user terminals 112) has requested a compute resource provided by the compute resource entity, (2) the system expects requests for compute resources from a geographic region and is preconfiguring a cluster of satellites to prepare for requests for compute resources and/or (3) other reasons determined by the load balancing module 130.
One factor that affects the satellite mesh topology 107 is that each satellite 102 can only link directly to a limited number of other satellites 102 at any given time, due to each satellite 102 having a finite number of laser communication terminals (and/or other SAT-SAT communication devices). In other words, at any given time, each satellite 102 is capable of establishing a direct network connection to only a few other satellites 102 out of potentially thousands of satellites in the constellation. In one embodiment, each satellite 102 has four laser communication terminals available to link to other satellites 102. However, examples in which one or more of the satellites 102 has a different number of laser communication terminals (or a different number of other SAT-SAT communication devices) are also contemplated.
Due to the finite number of possible direct connections between pairs of satellites 102, and other factors discussed in more detail below, the topology service 132 may dynamically assign each satellite 102 to a sub-mesh that includes a particular subset of satellites in the constellation. A “sub-mesh” is defined, for purposes of the present disclosure, as a set of satellites 102 that are all capable of communicating with each other using SAT-SAT links within the set. In other words, two satellites 102 in the same sub-mesh need not have a direct SAT-SAT link between them, but must at least be linked indirectly via a communication path through SAT-SAT links with one or more satellites in the same sub-mesh. In some examples, at any given time, hundreds or thousands of different sub-meshes may be established among the thousands of satellites in the constellation.
In the exemplary embodiment, the topology service 132 assigns each satellite 102 to a sub-mesh on the slot-by-slot basis. The topology service 132 may include the sub-mesh assignments in the topology schedule data transmitted to each satellite 102 on the regular basis, as discussed above (e.g., via the satellite access gateway 104 currently in communication with the respective satellite 102). More specifically, the topology schedule data may specify a connectivity of the respective satellite 102 to other satellites in the satellite mesh topology 107 during the one or more future time slots. In conjunction with the arrival of the future time slot, the satellite computer system 103 dynamically establishes SAT-SAT links with the other satellites specified by the topology schedule data for that time slot, as well as the SAT-GW link with the gateway terminal 104 specified for that time slot.
Another factor that affects the satellite mesh topology 107 is that reliable communication links between each satellite 102 and other satellites 102 can typically be established only within a threshold distance between the satellites, due to parameters such as a line-of-sight requirement for laser-based links and/or tracking and pointing accuracy limitations of the antennas. Accordingly, as satellites 102 move relative to each other on their respective orbital paths, previously established links between satellites may become untenable as the distance between them increases. Those satellites can each be dynamically assigned to a respective different sub-mesh as they move to within the threshold distance of other satellites in the constellation.
As a practical matter, it is beneficial to select the set of satellites 102 for a sub-mesh from satellites that are relatively close to each other in physical space. For example, physically close sub-meshes may be beneficial to reduce a signal travel-time (communication latency) within the sub-mesh, to reduce a precision needed for antenna alignment to establish SAT-SAT links among the set, and/or to reduce a transmitter power needed to maintain the SAT-SAT links in the sub-mesh.
Satellite velocity is another factor that affects the satellite mesh topology 107. In particular, reliable communication links between each satellite 102 and other satellites 102 can typically be established only within a threshold relative velocity between the satellites. For example, the laser communication terminals on a first satellite 102 may not be able to reliably track and point at a second satellite 102 as that second satellite moves at a high relative velocity through the first satellite's field of view, even if the distance threshold between the first and second satellites is satisfied.
Yet another factor that affects the satellite mesh topology 107 is satellite altitude. Satellites 102 within the constellation may be placed at differing orbital altitudes, for example within an altitude band about a nominal altitude of the satellite string. The field of view of the surface of the Earth from a first satellite at a higher orbital altitude typically is broader than the field of view of a second satellite 102 at a lower orbital altitude above the same location on Earth. Thus, the first satellite 102 may be able to reliably link with ground terminals across a broader geographic range. Moreover, satellites 102 have different velocities at different orbital altitudes. Thus, satellites 102 in relatively close proximity at a certain time, and moving in the same general direction, may nonetheless separate from each other over a relatively short time if they are at different ends of the orbital altitude band.
Still another factor that affects the satellite mesh topology 107 is the differing demand levels from user terminals 112 in different service cells 302 during each time slot. Sub-meshes may be assigned in part based on satellite positions relative to one or more service cells 302 or satellite access gateways 104. For example, satellites 102 passing close to a high-demand ground area (e.g., a geographic area that includes service cells 302 having a relatively high density of active user terminals 112) during a time slot may be preferentially assigned to sub-meshes covering the high-demand ground area, rather than to sub-meshes covering adjacent, lower-demand ground areas.
In some examples, the mesh topology time slot length selected to accommodate the relative motion of the satellites 102 to ground terminals 112 and 104, as discussed above with respect to the general system mesh topology, also works well to accommodate the potentially short duration of the various links associated with the satellite mesh topology 107, based on the factors described above. In the exemplary embodiment, the time slot length is between 10 and 20 seconds inclusive. For example, each time slot may be 15 seconds long. However, other time slot lengths are also contemplated. In the exemplary embodiment, the time slot start time, end time, and/or duration for the satellite sub-mesh assignments are selected to correspond to the time slot start time, end time, and/or duration for the time slots used to assign service cells to satellites and satellites to gateway terminals. However, non-corresponding time slot start times, end times, and/or durations are also contemplated.
The topology service 132 may be programmed to evaluate one or more of the factors above in determining the satellite sub-mesh topology schedule data for each of the time slots. For example, as discussed above, the node status service 134 may provide status data, e.g., position, velocity, altitude, health, and operability, of each satellite, which may include tracking a slew rate and alignment performance of each laser communication terminal on the satellite to determine a capability of the terminal to make and maintain new links. The topology service 132 may use such data from the node status service 134 in making sub-mesh assignments.
In certain examples, the topology service 132 may further be programmed to assign a reliability rating to each SAT-SAT link in the topology schedule data. For example, the topology service 132 may evaluate the node status data provided by the node status service 134 for a particular pair of satellites to predict a reliability of an assigned SAT-SAT link between that pair of satellites. For example, if the link is assigned to a particular laser communication terminal on one of the satellites, and that particular laser communication terminal has demonstrated slightly degraded slewing/tracking performance, the link may be assigned a lower reliability rating. The reliability rating may be included, along with the assigned SAT-SAT link, in the topology schedule data transmitted to that pair of satellites.
As noted above, the topology service 132 may be programmed to transmit the sub-mesh topology schedule data to the satellites on the same regular basis, such as five to ten minutes in advance of the one or more future time slots, as is used to transmit general mesh topology schedule data to the nodes. However, other advance transmission times are also contemplated. The topology schedule may be transmitted sufficiently in advance of the future time period to enable each satellite 102 to re-orient one or more laser communication terminals as necessary to establish communication with any satellites 102 in the future time-slot sub-mesh that were not in the previous time-slot sub-mesh to which the respective satellite was assigned.
Systems are currently being deployed to provide communication via constellations of satellites.
What is needed in the art is an improved structure and/or function that enables data to be requested from a user terminal 502 and provided directly from the satellite 504. In one nonlimiting example, this disclosure addresses limitations with respect to the process described above in which a user requests a video (or any data) for viewing and the satellite 504 and must receive the video from the gateway terminal 506 which obtains the video from a ground network 508, such as the Internet. There is latency involved in the need to transfer the video from the gateway terminal 506 up to the satellite 504, and then down to the user terminal 502. Backhaul processes in the context of satellite communications can also cause latency issues. This disclosure introduces a new computing environment that is configured directly on the satellite 504. The new computing environment stores video, files or any other data which might be requested. Rather than forwarding a request from the satellite 504 to the gateway terminal 506, this disclosure provides the ability of the satellite 504 to simply retrieve the requesting data from its own storage or memory as managed by a media entity (such as a video streaming service or a video sharing web site) in its own independent and secure computing environment. The secure computing environment would be firewalled—in terms of hardware, software, or a combination of both technologies—from other environments and control systems for the satellite.
Furthermore, what is needed in the art can be a broader application of servers, memory, and other components integrated into the satellite 504 to enable what had been traditionally considered to be terrestrial “cloud” computing components to operate in and be accessible from the satellite 504. Thus, in the broadest sense, the concept disclosed herein provides similar compute resources as traditional cloud computing environment but offers those services from one or more satellites 504. This regard, the various services such as platform as a service (PaaS), software as a service (SaaS), hardware as a service (HaaS), content as a service (CaaS), and so forth can be provided from the satellite 504. As can be imagined, however, there are fundamental differences that need to be taken into account when providing such services from a satellite 504. As a non-limiting set of example issues can include latency, energy, thermal, bandwidth, spectrum, reboot or reset events and weight are introduced in the context of providing compute resources from the satellite 504. These issues are typically not relevant on a terrestrial computing system 508 or arise at a lower rate.
Examples of the present disclosure are directed to any one or more node in the network including the user terminal 502, the satellite 504, or the gateway terminal 506 and particularly with respect to new capabilities in software and/or hardware on the satellite 504. For example, one aspect can include claims directed to structure on the satellite 504 or operations/steps that are practiced on the satellite 504 or a group of satellites. In another aspect, structure or operations could be considered from the standpoint of the user terminal 502 or the gateway 506 or other ground-based components such as the load balancing module 130 and how they respectively function when the compute resources are configured on the satellite 504.
As shown in
In
This disclosure also introduces additional memory or storage devices and functionality to enable one or more computing environments in which media entities, such as Netflix®, Disney+®, YouTube®, Hulu®, Apple TV®, or the like, can operate to provide their respective functionality, access, and control as well as content. In one aspect, the concept is essentially moving a media distribution service or a media node or nodes from the ground network 508 on Earth to the satellite 504. The entities can also represent any entity that operates compute resources on the satellite 504, 624. For example, one entity might operate a stock trading platform while another entity provides access to compute processors for on-demand access to processor power for a period of time. A first entity (1) (represented by numeral 606) can represent a contained computing environment with its own operating system and applications to provide a first type of compute resources. The entity (1) 606 can include a compute resource 608 which can be data, software, a cloud-service, a platform, an application and so forth, an access and security control module 610, and a user interface module 612. Any other required functionality can also be provided. Another entity 614 can provide the same or different type of compute resources available on the satellite 504, 624. The entities (1) 606 and (2) 614 can also represent any application, platform, service, operating system and so forth as described herein. The entities (1) 606 and (2) 614 can operate or communicate with each other and other systems within the satellite 504, 624 using an operating system that can be used by, for example, a media entity to manage its distribution of media and communication with other components. Such operating systems can include redundant system drives, power supplies, and network interface ports. Entities (1) 606 and (2) 614 can represent any third-party application as well that can be hosted on the compute environment 600 configured on one or more satellites 104, 624. The entities (1) 606 and (2) 614 can also represent compute resources that enable endpoint-to-endpoint communication channel capability.
Assume, for example, entity (1) 606 is a data streaming service. In this scenario, movies and other programs could be stored in memory 207, or compute resources 616 on the satellite 504 and a separate secure physical or virtual environment of the entity (1) 606 could be dedicated to the media streaming service. The memory 607, can represent any type of memory device used for storing or caching content such as media content or other data. Thus, when a user device 622 requests a movie from the media streaming service, the request is received on the Rx antenna 602B of the satellite 504. The satellite control 604 can access the separate computer environment for entity (1) 606 to fulfill the request. The request does not need to be forwarded to the gateway 506 to obtain the media from the ground network 508. The requested movie will simply be downloaded from the media entity 1 (606) via the Tx antenna 602A to the user terminal 502 and provided to the user device 622.
The entity (1) 606 could control or verify access to a user via the access and security control module 610 and could then transmit, with the data and via the Tx antenna 602A, an optional user interface via the user interface module 612. This way, the user can have a traditional experience on the user device 622 when obtaining media from their registered account at the respective media entity 606, 614. These additional features are optional from the core idea of obtaining the transmission of data from the satellite 504 to the user terminal 502. The user interface may or may not be necessary as in one aspect, users will not know that they compute resources they request are being served from one or more satellites 504, 624. In this regard, there may not be any change or different user interface from what is normally used to request compute resources.
Another entity (2) 614 could also be provided within the computer system 600 on the satellite 504 that provides another type of compute resources. The entity (2) 614 could also have compute resources such as data, processing power, a cloud-service, and so forth 616, access and security controls 618 and optional user interface controls 220. The user experience at the user device 622 could be the same as was previously experienced. However, when the compute resource relates to accessing data, latency can be reduced and less data needs to be transmitted because the satellite 504 stores the data and the other controls for the entity (2) 614. In this regard, the approach makes the satellite available to provide the compute resources to the user terminal 502. Each entity computing environment 606, 614 can operate their own operating system and software and be in separate compute environments (such as in separate containers or virtual environments) in a similar manner to different entities use different compute resources in a public cloud. In this manner, content providers such as Apple® or Hulu® can consider the satellite 504 as a server of their content. The compute resources 614, 608 represent the respective available cloud-services, applications, data, or other functionality made available to user terminals 502.
The one aspect, the computer system 600 can be arranged in a similar manner to a public or private cloud infrastructure. In some scenarios, different entities can gain access to compute resources today via the establishment of virtual environments which are secure and independent of other environments owned by other entities. Thus, the entity (1) 606 and the entity (2) 614 can represent either separate hardware environments which are accessed by the satellite control 604 or they can represent separate virtual computing environments which are either fixed or flexible or elastic in size based on any computing parameter. The environments can also span multiple satellites which are clustered based on the various parameters disclosed herein such as one or more of a topology schedule and scheduled workload.
For example, the computer system 600 could enable load balancing of compute and memory requirements amongst the different compute environments 606, 614 and control systems. In order to save power or weight on the satellite 504, environments could be established as virtual and if the entity (1) 606 has a reduced need for memory 607 and if the entity (2) 614 has extra need for memory 615 or computing power, resources could be adjusted down or up for the respective virtual environment 606, 614 to be able to achieve their goal of servicing their clients with the desired compute resource. A management module 630 could provide a global view of all the resources of the computing system 600 and manage the load balancing or adjustment of compute resources amongst the entities (1) and (2). The management module 630 can also communicate with a load balance module 130 that has a universal view of all the satellites 102 that are available and that will be available. In other words, the management module 630 can receive data regarding the various different entity computing environments 606, 614, their status, their usage, or other data and can transmit that data to the load balancing module 130 that can utilize that data with other topological data as disclosed herein to generate a steering or routing plan or schedule for requests for compute resources across one or more satellites including clustering of one or more satellites to provide the compute resources.
In one aspect, the desired data or other software enabling various cloud-services can be stored in connection with the compute resources 608, 616 in the respective entities 606, 614. However, additional functionality is possible in the context of the structure. For example, the satellite controller 604 could receive a request for the movie “Star Wars” to be directed to entity (1) 606. If the compute resource 608 includes the movie “Star Wars”, the satellite 504 can receive the movie from entity (1) 606 and download the movie down to the user terminal 502 via the Tx antenna 602A. However, if that data is not available as part of the compute resources 608, then the entity (1) 606 could request the video from the other entity (2) 614. If entity (2) 614 has the requested media, then it could transmit or make available the requested media to entity (1) 606 or provide that media to the satellite controller 604 for download to the user terminal 502. A charge could be provided between entities 606, 614 for such a service. This operation could work for any type of compute resource that is requested by a user terminal 502.
Otherwise, if the entity (2) 614 does not have the requested media, then the entity (1) 606 could instruct the satellite 504 to communicate with the gateway 506 and have the media obtained from the ground network 508 and transmitted from the gateway 506 to the satellite 504 for download to the user terminal 502. In one aspect, as the requested media would have to pass through the satellite 504 on its way to the user terminal 502, a copy of the media could be added to the compute resources 608 and thus be available for download based on a later request. In another aspect, bandwidth and costs could be improved as well where the entity (1) 606 and the entity (2) 614 share in duplicate copies of media. In this case, where each entity offers the same video for download, a single copy could be stored on the satellite 504 and accessed via each entity for sale or rent. These principles are applicable to any type of data as well as any cloud-service offered by the entity or entities.
Additionally, the compute resources 608, 616 could be balanced based on a number of different factors. For example, if memory 607, 615 on the satellite 504 is becoming full, then some data can be deleted from the compute resources 608, 616 and other data could be uploaded based on any one or more parameters. For example, if the holidays are coming soon, then holiday-related data or applications (such as on-line payment processes or platforms) could be uploaded to the satellite 504 in preparation for expected requests for the holiday-related compute resources. New release movies may be immediately uploaded as there would be an expectation of request for such media. Trending videos or videos that are beginning to go viral on YouTube® or social media based on the user views could be uploaded to reduce the latency of requests for such videos. Trading platforms that are traditionally busier at a given time could be provisioned in advance as compute resources based on an expected use. Users may have priority such that a particular cloud-service, movies or videos of the request from a priority user are automatically uploaded to the satellite 504 if the requested media or compute resource is not already in storage on the satellite 504. In other aspect, bandwidth could be made available or scheduled in advance for expected endpoint-to-endpoint communication channel requests such as at the beginning of a day of trading on a stock exchange platform.
In another aspect as noted above, load balancing can also occur between satellites. For example, a second satellite 624 could also include similar computer systems that store media, compute resources, operating systems, and architecture 626 locally on the satellite 624. In some cases, satellite 504 may not have the requested compute resource 608 and the satellite 504 could obtain the compute resource from another satellite 624 which could either transmit the compute resource to the satellite 504 or could deliver the compute resource to the user terminal 502 via its Tx antenna. Satellite 504 and satellite 624 could communicate via laser as part of a laser mesh network of satellites.
The use of the second satellite 624 in connection with the first satellite 504 can also be representative of a combination or a group of satellites 504, 624 that can operate as a combined “cloud” computing environment or virtual large compute environment or compute resource center. For example, where each of the satellites 504, 624 has compute resources such as one or more of servers, data, cloud-services, operating systems, applications, data storage components, and so forth, the group of satellites 504, 624 can function in the context of a group of servers operating on Earth which share in providing requested compute resources to users. The group of satellites 504, 624 can operate a distributed file system, for example, that can be accessed and shared amongst the satellites 504, 624 to respond to requests for data from the user terminal 502. The group of satellites can be clustered together as disclosed herein dynamically based on parameters including one or more of thermal conditions, reset or reboot events, proximity to each other and to a user terminal 502 or gateway, movement, state, energy availability relative to a requested use of compute resources, number of user terminals in a geographic area over which one or more satellites will pass, a predicted future state of any of these parameters, and so forth. Note that feature 2034 in
In another example, assume a user requests compute resources such as processing power, data storage, an application or content. The request is received at the satellite 504 and a control system 630 determines that the satellite 504 does not have sufficient processing power, memory or the proper data for the application. The satellite 504 can communicate via laser or other communication means with another satellite 624 and request the additional compute resources from the second satellite 624. Lasers are a preferred approach for inter-satellite communication as a high-throughput connection is needed for the communication link between satellites. For example, a workload may be requested by the user for a particular compute intensive application such as a weather analysis or a trading platform. If the satellite 504 does not have sufficient computing resources available to process the workload under a quality-of-service (QoS) requirements, then the request can be shifted to a secondary satellite 624 for processing. The resulting data can be communicated from the satellite 624 to the originating satellite 504 and transmitted down to the user terminal 502. The shift can also occur in coordination with a topology schedule received from a load balancing module 130, a workload schedule from a workload manager 137, and/or in connection with data from a compute resource entity 138.
Note however, that any form of wireless communication or communication protocol can be used to transmit data between satellites and lasers are not a requirement for such communication.
The constellation of satellites 504, 624 could operate in one aspect as a mesh network in which the various nodes coordinate with one another to efficiently route data, workload, instructions, and functionality to and from each other in order to respond to requests for compute resources. Many more satellites can be part of the network rather than just two as shown in
As noted above, one example approach is to provide compute resources entities 138 operating compute resources on the satellite 504 with an ability to cache content or cloud-services available for request by a user. In one aspect, the data and the application that would be necessary to operate entity (1) 606 and/or entity (2) 614 can be transmitted to the satellite 504 after launch. However, because the data would be large, another aspect of this disclosure could be that the satellite 504 is loaded prior to launch with the necessary hardware, software, firmware, data, and so forth which would be necessary or desirable to create the entity (1) 606 and the entity (2) 614. For example, data storage of over 100 terabytes of memory per satellite might be necessary to operate the computing environments of the entities 606, 614.
The addition of the entities to the satellite 504 can cause an extra power draw on the battery 628 of the satellite 504. The satellite 504 has a solar panel 629 that charges the battery 628. A flight computer can manage a power converter board which converts the solar power to bus and battery power. In one scenario, an additional feature added to the satellite 504 is the management module 630 that can perform a number of different functions. As noted above, the management module 630 can manage load balancing and the access of data between the entity (1) 606 and entity (2) 614. The management module 630 can load balance in terms of power drawn from the battery. The management module 630 can reduce the power used by entity (2) 614 if the battery 628 becomes low on power and the entity (2) 614 is drawing too much power. The power might be used for computer processing, access media, transmitting media, and so forth. The management module 630 could place the satellite control system 604 into a low-power state. The management module 630 could cause a delay in some transmissions either to or from the gateway 506, to or from the user terminal 502 or two or from one of the media entities 606, 614.
Energy data can be reported to the load balancing module 130 for use in its intelligence layer in terms of how to cluster satellites for enabling access to compute resources, and how to incorporate that data into a topology schedule which is distributed for a period of time or for dynamic clustering of satellites. In some cases, a request for compute resources might be routed away from a given satellite who has the compute resources available but not sufficient energy at that time to respond timely to the request.
Generally, the management module 630 will evaluate the energy level in the battery 628 and report the energy level to the load balancing module 130 as well as implement power conserving actions amongst the various operations on the satellite 504. Some functions might have priority and thus be given power priority in a low battery situation. In general, the management module 630 will evaluate not only the energy level and the battery 628 but the energy either being consumed by one of the other components or that are scheduled to be consumed and can implement, if necessary, energy saving operations.
In one example, the functions and thus the use of battery power might be known because the functions or operations are scheduled. If a new movie is about to be released, there might be a scheduled or expected increase of activity by entity (1) 606 for obtaining and downloading multiple copies of the movie to various user terminals 502. Other data streams or use of the compute resources of the entities 606, 614 could be scheduled by a workload manager that could be a part of the management module 630. For example, if 1000 requests for different videos are received simultaneously, a workload manager in the management module 630 could schedule the various requests at specific times over a period of five or ten seconds or minutes such that the workload (i.e., accessing and providing the movie copies to the satellite control system 604 for transmission) is predictably and efficiently carried out. This scheduling of workload could also have a corresponding schedule or an expectation of power usage which can be evaluated and managed by the management module 630. The functions of the management module 630 can also be performed on a ground station like the load balancing module 130.
In another example, the entity (1) 606 might be scheduled to download 500 videos to various user terminals 502. This scheduled operation can be called “scheduled workload” for the satellite. Since the management module 630 knows the power consumption associated with the scheduled workload, the management module 630 might grant full power to the entity (1) 606 but then, after the completion of the batch of work associated with the scheduled workload, place the entity (1) 606 in a low power mode or state. Similar scheduling could also occur by the satellite control component 604 in terms of its communication via the Tx antenna 602A with various user terminals 502 and gateways 506. Thus, the power consumption amongst the satellite control system 604, and the entities 606, 614, as well as other components, could be managed and balanced or adjusted based on a management module 630 and an analysis of energy usage, available energy from the battery 628, and/or a schedule of workload and other factors as well. Other parameters might include priority of data, priority of users accessing data, quality of service requirements, expectation of access to the sun for the solar panel 629, historical power usage or workload usage, and so forth. Such function can also be performed by the load balancing module 130 as well.
It is noted that latency can be an issue with respect to satellite communications. Accordingly, the management module 630 can take latency into account in terms of power management as well as scheduling of functions or actions by the satellite control system 604 or the entities 606, 614. Latency can primarily occur in streaming or receiving data from Earth-based stations 502, 506 but can occur in various ways in these compute environments.
It one aspect, the entities 606, 614 can represent compute environments that are configured in a “container.” A container is a unit of lightweight, executable software that packages application code and dependencies in a standardized way. Containers enable an abstraction away from an operating system in the infrastructure (hardware) that the application needs to run on. The container image contains all the information for the container to run, such as application code, operating systems and other dependencies such as libraries or data. There are multiple container image formats and a common one which would be known to those of skill the art is the Open Container Initiative (OCI). The container engine pulls the container images from a repository and can run them.
There can be a number of container engines such as Docker, RKT, LXD as would be known by those of skill the art. The container engines can run on any container host which in this case is the computing environment on the satellite 504. In one sense, the container will essentially provide a separate and secure operating environment for each entity 606, 614. Any of these different entities might have separate operations in “the cloud”. Similar separate virtual resources can be provided on the satellite 504. Also, the software or other compute resources that are provided can also be configured on “bare metal” and not in a virtual environment as described above.
The entities 606, 614 can also operate in virtual machines which aim to abstract an operating system from a physical server. A virtual machine hypervisor can virtualize the hardware to host multiple isolated operating systems. Virtual machine environments can also be implemented on one or more satellites. By using virtual machines and containers, the system can provide a configured computing environment as required by the entities 606, 614. Any other type of compute environment is contemplated as well.
While entities providing videos are discussed by way of example, the computing environments 606, 614 can represent any application or cloud-service having data that is requested by a user terminal 502. Thus, these environments 606, 614 are not limited to media data but can be any kind of data or any kind of compute resource. Furthermore, any number of different entities 606, 614 can exist within the computer system 600 of the satellite 504 as part of a multi-tenant environment. Different entities of different types as well can exist where various services such as Software as a Service (SaaS), Platforms as a Service (PaaS) and so forth can be made available directly on the satellite using the approach disclosed herein.
In one aspect, in a container environment, the management module 630 could include a container orchestrator which can be considered a software platform that addresses the management of multiple containers and a lifecycle management of the containers. For example, a container orchestrator can perform tasks such as provisioning and deployment of the container and the application, data, operating system, and so forth that will function within the container. The container orchestrator in the management module 630 can provide resource allocation associated with a respective container. The container orchestrator can also manage container uptime and application health as well as a dynamic scaling up and down of the container resources perhaps in the context of power management as discussed above. The container orchestrator can also perform functions such as service discovery, networking, security, data storage, use or authorization and access control and other functions. One example container orchestration platform is known as Kubernetes (K8s). This platform can be deployed as part of the management module 630, or a separate orchestration platform on the satellite 504. In one example, a compute resource might be requested by a user terminal 502. In response to the request, the load balancing module 130 or other control component can cluster a group of satellites together, provision operating systems and application software, provide access to data to run on an application, and then run the application, with the data, and download output data to the user terminal 502. The hardware or virtual components are thereby used just be that user for a period of time and then made available for other users.
It is also noted that the respective compute environment, whether configured on dedicated hardware for the environment, configured in a virtual machine or a container or some other type of compute environment, can also support the concept of cloud bursting. In this scenario, with respect to the compute environment operating on the satellite 504, the concept could be considered in an inverse manner from the standard environment in which a private cloud requires additional resources and “bursts” into a public cloud for provisioning and obtaining additional compute resources as they are needed. In the present context, where one of the entities 606, 614 might require additional resources, networking, storage, and so forth, the respective compute environment might expand into cloud-based resources available on the Earth via communication with the gateway 506. Rather than cloud bursting, the concept could be called ground bursting as it would be the satellite 504 that seeks additional compute resources from a ground network 508.
In this context, the ground network 508 might include available compute resources which can be “burst” into from the satellite 504. The reverse might occur as well where a satellite 504 which is configured to accommodate entities 606, 614 with all of the computing power, memory 607, 615, and capability of operating such environments, could also have compute resources available for bursting activities from a ground-based network 508 connected via the gateway 506 or from a user device 622 connected via the user terminal 502. In this scenario, a different analysis might apply than is normal. For example, the ground network 508 or user device 622 might include a compute environment for a company such as Hulu® and involve streaming media upon request. The workload management issue might be that a large number of requests for videos has been made at the ground network 508. An analysis by a workload manager can be performed which includes the consideration of stored media and the possibility of providing that media from the satellite instance (say entity (1) 606) of the media streaming service compute environment. Thus, rather than necessarily bursting into using compute resources on the satellite 504 from the ground network 508, a request for a video or other data that is received at the ground network 508 might be transferred to the satellite 504 for the purpose of delivering that data from a different origination location (the satellite 504) than the ground network 508.
In another example, assume the clustering of satellites as indicated by the load balancing module 130 works to provide compute resources to a user terminal 502. However, if conditions change (which they can with moving satellites) such that continuing to provide the compute resources is not feasible due to one or more of thermal conditions, reset or reboot events, energy conditions, movement of a satellite, additional demands for compute resources, and so forth, then the cluster of satellites might be adjusted or at least some of the requested compute resources might be served from ground-based cloud environments. This bursting into using ground-based computer systems can be dynamic but would utilize the topology data and other data relevant to satellites that are not applicable to terrestrial computer systems.
In one example, the user device 622 might have a standard Internet connection 232 as well as a satellite Internet connection via the user terminal 502 to the satellite 504. In one case, the user device 622 may request data or compute resources from the ground network 508 through a wired connection 232 to the Internet. While the ground-based network 508 might simply provide the data or compute resources in the manner it was requested, due to one or more of latency, cost, power management, priority issues, quality of service issues, and other possible issues, the ground-based network 508 might transfer the request to the satellite 504 and instruct its counterpart compute environment 606 to respond to the request because the data can be transmitted to the user terminal 502 for viewing by the user on the user device 622 or because it might be more efficient to provide access to the compute resources via a satellite 504 or a cluster of satellites. The user may not notice any difference as they may have a standard user interface and simply receive the data such as a view for viewing, without noticing that the source of the data was the satellite 504 rather than the ground network 508.
A method 700 can include receiving, at a satellite control system on a satellite, a request from a user terminal for compute resources such as access to an application, a platform, data or compute resources (702), requesting, from a computing environment configured on the satellite, access to the compute resources (704), receiving, from the computing environment configured on the satellite, access to the compute resources (706) and transmitting the data associated with the compute resource to the user terminal (708). The request for compute resources can include a request for media such as a movie or access to cloud-services such as a trading platform, access to an application or other data. The computing environment can be a secure computing environment or any other computing environment, application or service made available by the satellite. The satellite can access, via the laser mesh, another satellite that is configured with the desired compute resource and have the compute resource made available or transmitted (if it is data such as media) to the servicing satellite for communication to the user terminal 502. The satellite might also be part of a dynamic mesh of satellites with SAT-SAT laser communications for the purpose of providing the compute resources. The decision regarding how to cluster satellites together can be based on one or more factors including a topology schedule and/or a workload schedule.
The entity computing environment 606, 614 configured on the satellite 504 can include a memory device 607, 615 that stores the data on the satellite 504. The entity computing environment 606, 614 configured on the satellite 504 further can include one or more of data storage of data such as videos, an access/control module and a user interface module. A management module 630 can manage power, data streaming, scheduling of functions or data requests, access to compute resources, and any other management needs associated with the use of the entity computing environment 606, 614.
When the entity computing environment 606, 614 configured on the satellite 4504 does not store the data on the satellite 504 or have the requested compute resources, the entity computing environment 606, 614 can request the data or access to the compute resources from one of another entity computing environment configured on the satellite 504, a ground network 508 via the gateway 506, or another satellite 624.
The method can further include identifying the entity computing environment 606, 614 configured on the satellite 504 as either having the data or compute resources or being associated with an account of a user associated with the user terminal 502.
Receiving, from the entity computing environment configured on the satellite, the data further can include the entity computing environment 606, 614 performing at least one of authorizing access to the data for a user associated with the user terminal 502 and optionally transmitting a user interface associated with the entity computing environment 606, 614 to the user terminal 502 for use by a user device 622 connected to the user terminal 502. The entity computing environment 606, 614 configured on the satellite 504 can include one of a virtual computing environment and a hardware computing environment. The entity computing environment 606, 614 configured on the satellite can be one of a plurality of entity computing environments configured on the satellite 504.
Note that the entity computing environment could also be any computing environment 606, 614 having associated data or compute resources that the user terminal 502 requests. When the user terminal 502 requests data or compute resources, the computing environment 606, 614 can seek to retrieve from the memory 607, 615 on the satellite 504 the requested data or make available the requested compute resources and if that data is available or the compute resources are available, the computing environment 606, 614 can cause the requested data to the be transmitted via the transmission antenna 602A to the user terminal 502 or enable access to the compute resources. The requested data could be a website, a file, a cloud-service, or an application to download from, for example, an “app store” such as is operated by Apple®, and so forth. Any data can be stored on the satellite 504 and offered for download in the context of this disclosure.
The combination of the first satellite 504 and the second satellite 624 can represent two or more satellites that are in communication via the communication means such as a laser and which can be utilized to create a network of components each of which is a satellite and which can be utilized to provide compute resources to user terminals 502. In one example, with respect to the entities 606, 214 being media entities, a caching topology amongst the plurality of satellites 504, 624 can be implemented in which data, application functionality, cloud-services, processing power, and so forth can be distributed amongst a constellation of satellites 504, 624 to balance the workload requirements across the available compute resources, which are limited because each node or component is a satellite. Issues arise in this context such as which orbital planes the applications on respective satellites 504, 624 should exist in and how frequently does the system distribute the data or content across the constellation of satellites 504, 624. These are issues that are raised through configuring applications and other compute resources to satellites and that introduce new constraints not at issue on Earth. In one aspect, a novelty with this approach can be to communicate data, requests, responses and so forth between satellites using inter-satellite lasers. A distributed application with its associated data and functions can then provide a response to a request for a service, compute resources, or data (media) through receiving the request at a first satellite 504 and utilizing inter-satellite lasers to communication with another satellite 624 or more than one other satellite 624 to coordinate the necessary compute resources to respond to the request.
In one example, depending on the requested compute resource, a particular satellite or satellites 504, 624 may not have enough energy to respond to the request and thus that might trigger a load balancing operation in which the request is transferred to another satellite or satellites to provide the compute resources. The transfer might occur through inter-satellite communications. In one example, the battery 628 on a satellite 504 might be relatively low, and given the position in orbit, the solar panels 629 on the satellite may not be in the sun for a relatively long period of time for recharging. A power converter is used to manage the conversion of solar power to bus and battery power. In this case, taking the position and movement of the satellite 504 relative to the sun (the source of recharging the battery 628) into account, as well as the nature of the request for compute resources 616 and the power needed to provide the compute resources, the system can handoff the request to other satellites 624. The system can also include the load balancing module 130 on the Earth which can make the steering or routing decisions.
Different requests for compute resources can consume different amounts of energy, such as a difference between a first request for downloading a file and other request for use of a trading platform for a period of time or processing power to process a large amount of data. There are issues not experienced by terrestrial cloud computing environments. Further, thermal conditions may not be appropriate for a given request for compute resources as well. Some requests may cause the satellite 504 to operate hotter just as a computer having a processor that runs constantly for some time can generate heat. Thus, the amount of heat that workload may generate when operating on one or more satellites 504 can be taken into account as well as the thermal condition of the satellite (such as, for example, when it is hot because it is in the sun), when determining how to route or steer requests for compute resources 616, 608.
In another example, depending on the country over which the satellite 112 is passing, the amount of processing requested can change. Some countries have many users and thus the satellite 504 heats up in a similar manner as a computer heats up when it constantly runs. Thus, the transient hardware temperatures are typically related to the satellite 504 being in or out of a view of the sun but also can be based on an amount of use of the satellite 504 over a particular geographic area.
The data associated with the movement of the group of satellites can be received from the topology service 132 described in
Compute resources can include any application, data, processing power, or combination thereof from a cluster or a constellation of satellites 504. In one case, the constellation or cluster of satellites is determined by a combination of position and operational status of the respective satellite 504 plus the availability of the compute resource 616, 608 or a portion of the compute resource on the respective satellite 504. For example, a group of satellites might include thirty satellites, of which eight satellites include the necessary software to run a trading platform and fifteen satellites include the necessary data to provide access to media such as movies and television programs. Perhaps a different set of twelve satellites are configured to provide compute resources for users to run a particular software application. The selection or configuration of a constellation or a cluster of satellites can take these individual capabilities into account as well as other issues such as thermal issues, a reset or reboot issue, energy usage, and so forth when considering how to cluster satellites to provide cloud-computing capabilities to user terminals 502.
In one example, as shown in
A reboot can occur based on hardware responses to radiation. For example, hardware may have to reboot due to radiation exposure in space. There can be radiation-induced outages or failures of a satellite 504. The failure may be permanent or may be temporarily and the satellite may need to reboot according to its reactive logic. These failures, predicted failures, and the temporal nature of these failures and whether the satellite 5045 can recover are taken into account by the intelligence built into the control on the satellite or the ground-based load balancing module 130. The load balancing module 130 can make clustering, steering and routing decisions to service requests for compute resources. Further, how the satellites 504 might be clustered together for a period of time and for how long can take this data into account.
The clustering can occur before or after the request for compute resources. In one example, the cluster can be managed by a load balancing module 130 that uses the topology information to cluster satellites across a given geographic area and for a period of time. This can mean providing for example a large cluster of say twelve satellites as they cross an area with many subscribers who typically access cloud-services. The cluster would be in place for a period of time such as, for example, ten to fifteen minutes.
In another aspect, the cluster might be organized on a dynamic based on one or more requests. For example, if one or more user terminals requests a particular compute resource, then the cluster can be organized and linked wirelessly through, for example, laser communication between the chosen satellites, and then provide the requested compute resource. After the use of the compute resource, then the cluster can be disbanded in this aspect. Provisioning of data, operating systems and/or applications or software can be part of the clustering process and the de-clustering process of disbanding the cluster of satellites.
The above method is useful in a scenario where a group of satellites 900 as shown in
The operations can further include receiving, at a satellite associated with the cluster of satellites, a request from a user terminal for compute resource to yield a requested compute resource and providing, from the cluster of satellites and for the user terminal, access to the compute resources based on the requested compute resources.
When cluster of satellites is a dynamic cluster that adjusts over time amongst the group of satellites as the group of satellites orbit the Earth, another aspect of this approach is a “handoff” from one cluster of satellites to another. Assume a cluster of satellites, say six satellites, is offering a cloud-service to a user terminal 502. The moving satellites offer the service to a particular user terminal 502 for typically ten to fifteen minutes. The direct communication with the user terminal 502 might change from one satellite of the six to another satellite of the six as they orbit the earth over the user terminal 502. The six satellites can be configured to communicate via a high-speed communication protocol or hardware such as using lasers to communicate one with another.
Throughout providing the cloud-service to the user terminal 502, the user terminal may communicate with different respective satellites of the six satellites over time. However, at some point, all six satellites will no longer be able to communicate with the user terminal 502. In this scenario, a “handoff” can occur in a number of different ways.
For example, the handoff may involve a completely new set of six satellites that receive state data associated with the state of providing the cloud-service from at least one satellite of the original cluster of six satellites. The processing of the data or providing the service can be transferred from the original cluster to a secondary cluster of satellites to continue offering the service. In this manner, if a movie is in the middle of being streamed to the user, or a weather analysis is only partly completed, or a stock trading session by the user is still in process, then the state of the project can be transitioned to a new cluster to continue providing the cloud-service. The transition can be transparent to the user or the user may get some notice of the changeover.
In another aspect, the transition to anew cluster can be overlapping in nature. In this aspect, the original six satellites in a cluster could be adjusted such that as they move across the sky, the system reorganizes the cluster such that satellites four to six of the original cluster of six are now arranged as the first three satellites of a new cluster having seven satellites. In this manner, for a next period of time (say, for example, ten minutes), the new cluster of seven satellites provides the cloud-service and there is some overlap from a previous cluster to a new cluster. This could be characterized as a partial handover as some satellites are removed from the cluster and other satellites are added to the cluster but there is always some overlap.
The decision of whether to provide a completely new cluster or perform a partial handover can be based on any factors disclosed herein. For example, issues like an energy balance, thermal cycles as a satellite moves in and out of a view of the sun, reset or reboot issues, or any other orbital concerns or condition can be used by the system such as the load balancing module 130 to determine which type of handoff to perform. Any one or more factor such as the type of cloud-service, quality of service factors, guarantees to users via service level agreements, a priority of users, bandwidth or computer processing power, and other issues with respective to load balancing of workload on individual satellites as well can be used to determine what kind of handoff to perform. For example, if an entirely new cluster handoff would impose a large workload on the new cluster in that it is already at capacity in terms of processing power used, or how much data is being streamed to user terminals, or has a high thermal load, then a partial handoff may be implemented by the system to give the satellites in the new cluster time to complete their workload, cool down, power up, or take some other step which might be helpful to better position them for the delivery of the cloud-service associated with the new cluster.
The topology service 132 as part of a load balancing module 130 can provide a schedule in advance which can identify which satellite or cluster of satellites a particular user terminal 502 should connect with. For example, the topology service 132 can provide for a period of time such as two minutes, five minutes or ten minutes what the expected or scheduled satellite or cluster of satellites that one or more user terminals 502 should use. The topology service 132 can utilize in one example which user terminals 502 are utilizing cloud-services and at what state the cloud-service usage is in and can take that information into account when it schedules the set of satellites for connecting with the user terminals 502 for a period of time. The schedule may be for a group of user terminals 502 in a cell as is shown in
In one embodiment, a group of satellites can provide cloud-services in which one or more of the group of satellites includes a processor, a memory storing computing instructions and a communication component to enable communication with a user terminal and another communication component to enable communication with other satellites as well as a gateway. The group of satellites can perform operations including receiving data associated with the group of satellites, wherein the data is associated with movement of the group of satellites according to a respective orbit of each satellite of the group of satellites and, based on the data, clustering two or more satellites of the group of satellites that can provide cloud-computing operations to user terminals to yield a cluster of satellites. The operations can include receiving a request from a user terminal for compute resource to yield a requested compute resource and providing, from the cluster of satellites and for the user terminal, access to the compute resources based on the requested compute resources.
Clustering decisions can also take into account distance between satellites in a cluster. As the satellites all orbit the Earth, there are times where two respective satellites might be closer together at one time and farther away from each other at other times. This data can be provided by the topology service 132 and taken into account by a load balancing module 130 with respect to how to cluster satellites for providing cloud-services or compute resources. For example, when a request for compute resources is received, the load balancing module 130 (or a component on a satellite that has topology information), can dynamically cluster two or more satellites to enable the delivery of the requested resource. One satellite might have needed data and another satellite might have available computer processors for processing the data. The clustered satellites might be determined to be close enough for being clustered and have the appropriate thermal or reboot/reset condition as well. The clustering approach can be for a particular request for compute resources and can be removed after the job is complete or the clustering might be for a given period of time.
In one aspect, the idea of clustering can be dynamic in that it occurs based on the request for compute resources. The method can include receiving, at a satellite control system on a satellite, a request from a user terminal for compute resources, requesting, from an entity computing environment configured on the satellite, the compute resources and clustering, based on the request, two or more satellites based on one or more of a thermal condition, a reboot or reset event, movement of a group of satellites including the satellite, a proximity of one or more satellites to the user terminal, or a schedule of future positions of the group of satellites to yield a cluster of satellites. Once the cluster is established after receiving the request, the method can include receiving, from the computing environment configured on one or more of the cluster of satellites, data associated with the compute resources or access to the compute resources and transmitting the data associated with the compute resources to the user terminal.
In one embodiment, a group of satellites can provide cloud-services in which one or more satellite of the group of satellites includes a processor, a memory storing computing instructions and a communication component to enable communication with a user terminal and another communication component to enable communication with other satellites as well as a gateway. The group of satellites can perform operations including receiving, in connection with the group of satellites, data, wherein the data is associated with movement of the group of satellites according to a respective orbit of each satellite of the group of satellites and, based on the data, linking two or more satellites of the group of satellites into a constellation of satellites that can provide cloud-computing operations to users. The operations can further include receiving a request from a user terminal for compute resource to yield a requested compute resource and, based on the request and the constellation of satellites, routing the request to one or more satellites of the constellation of satellites to provide the compute resources to the user terminal. The operations can include providing, from the one or more satellites of the constellation of satellites and to the user terminal, access to the compute resources. The steps outlined herein can be practiced via any number of hardware configurations. For example, one or more satellites of a group of satellites 900 can perform the operations. Some steps can be performed by ground based-systems accessible via a gateway 504 by one or more satellites, or the steps may occur in a combination of different hardware components. Examples of this disclosure can include any one hardware component configured on Earth or in orbit and can include multiple different components each performing a step or part of a step claimed. This can also include user terminals 502 or associated hardware components performs steps as well.
The compute resource can be data such as a streaming video or cloud-services such as an application or function as a service. Routing the request to at least one chosen satellite to make accessible the compute resources to the user terminal can be managed on one or more satellites or via a load balancing module 130 operating on the ground.
A clustering of satellites can occur based on the request for compute resources or can be provided for a period of time based on other factors and independent of any one or more requests for compute resources.
As noted above, the entity (1) or entity (2) can provide media as one example to user terminals 502. A satellite 504 can include a satellite control system 604, a transmission (Tx) antenna 602A and a receive (Rx) antenna 602B connected to the satellite control system 604, a memory device (shown in
The entity computing environment 606, 614 further can include an access and control module 610, 618 for managing user access to the plurality of media presentations. The entity computing environment 606, 614 further can include an optional user interface module 612, 620 for providing to the satellite control system 604 a user interface for transmission to the user terminal 502. In some cases, the user interface will not change and the routing to a chosen satellite to provide the compute resources is performed independent of any change or special user interface.
The satellite 504 further can include a plurality of entity computing environments 606, 614, each respective entity computing environment of the plurality of entity computing environments 606, 614 being separate from the satellite control system 604 and other entity computing environments. This describes a multi-tenant scenario where separate compute resource entities operate different computing environments 606, 614 independent of one another.
When the user terminal 502 requests via the satellite control system 604 the compute resources, the satellite control system 604 can determine that the entity computing environment 606, 614 is a chosen entity computing environment from a plurality of entity computing environments configured on the satellite 504. A user account associated with the entity computing environment 606, 614 can be used to determine that the entity computing environment is the chosen entity computing environment from the plurality of entity computing environments configured on the satellite 504 to which the user has an account and thus access to compute resources. Access control 618, 610 can also occur or be managed by the compute resource entity 138 as well.
When the video, data or compute resource is not available on the memory device 607, 615, then the entity computing environment 606, 614 can obtain the video or data or compute resource from one of another entity computing environment on the satellite 504, a ground network 508 via a gateway 506, or another satellite 624. The satellite 504 can also include a battery 628 and a solar panel 629 and a management module 630 which can also represent a power converter and which can manage power usage amongst components, workload management and/or container orchestration for the various entity computing environments 606, 614.
Another aspect of this disclosure relates to how the system can direct or steer a user terminal 502 to the correct satellite 504/624 that provides a compute resource. In this aspect, the system could use some type of resolution or feedback in order to making steering decisions or instructions for user terminals 502 to communicate with the proper satellite. For example, in the standard Internet service, a Domain Name Server (DNS) will resolve or translate a universal resource locator (website name) to a translated IP address and thus route the request to the proper server. In the satellite context, a user terminal 502 may make a request for a certain compute resource and the request might be received at a satellite 504. The satellite 504 can have information regarding the location of the compute resource that will need to be accessed to respond to the request from the user terminal 502. The information can be an Internet Protocol (IP) address of a server operating in the satellite 504 or operating on a second satellite 624. The satellite 504 can receive the compute resource or data confirming that the compute resource is available on the second satellite 624 from the second satellite 624 via, for example, an inter-satellite laser communication. The compute resource may also have to be provisioned or a cluster of satellites might have to be configured dynamically to provide the requested compute resources.
The satellite 504 can transmit an instruction to the user terminal 502 to steer to the second satellite 624 and initiate communication with the second satellite 624. The instruction can include the IP address (or other compute resource identifier) of the server on the second satellite 624 and thus the satellite 624 to which the user terminal 502 needs to steer. In this context, the compute resource identifier can be an IP address of a server, or an identification of an application, a satellite identifier, hardware, compute resources, data, and so forth. In another aspect, the IP address can be provided or identified in a refined protocol which relates to or maps a traditional IP address to a satellite IP address which can include within the protocol identifying information for the second satellite 624 as well as other protocol structures which can be used to identify the server operating on the second satellite 624.
The satellite 504 can store data regarding which satellites store which applications or data as part of the network of satellites 504, 624. Thus, the method can include receiving, from a user terminal 502, a request for compute resources at first satellite 504 and determining, based on the request, that the compute resources to respond to the request are on a second satellite 624. If so, then the method would include instructing the user terminal 502 to steer to the second satellite 624 in order to obtain the compute resources. As an alternative, as the constellation of satellites 504, 624 can be configured as a distributed file system, the method can include retrieving from the second satellite 624 and at the first satellite 504, the proper data via a broadband communication link (such as a laser communication link) and downloading the data from the first satellite 504 to the user terminal 502. In this regard, the approach would emulate static terrestrial services for content or other compute resources.
In one aspect, the entity operating the compute resource such as a media streaming company or other type of company might not want or need to inform the satellite company that deploys the satellites where a particular compute resource is. For example, a media streaming company might distribute movies across multiple different satellites 504, 624 and not necessarily inform the satellite company of which movies are on which satellites. The satellite company 138 may only know that the media streaming service is available on a set of one hundred satellites but not know (or desire to know) the granularity of which shows are on which satellites. In this regard, the method may include accessing a DNS server (which can be operated by the media streaming company) or other entity that provide the compute resource identifier to the satellite so that the chosen satellite can be identified and the user terminal 502 can steer to the proper satellite. The satellite company can coordinate the exchange of data to enable the proper steering of the user terminal 502 to the appropriate satellite to access the compute resource without knowing what exactly the compute resource is. Obtaining the compute resource identifier may involve the satellite 504 communicating with the gateway 506 to retrieve the compute resource identifier from a server or computer operated by the company providing the compute resources.
As noted above, the satellite might not have the compute resource requested and it may need to communicate or identify a storage satellite that has the compute resource. The computer resource as explained herein can be data, an application, a cloud-service, a platform, bandwidth, endpoint-to-endpoint communication services, and/or computer processor usage. Thus, use of the compute resource might be streaming data to the user terminal 502 such as to enable the user to watch a movie, or it might mean providing an application or platform such as a cryptocurrency trading platform. In this manner, the satellites can coordinate amongst themselves or as instructed by a load balancing module 130 such that the user terminal (and the ultimate human user requesting the compute resources), in a transparent way, can access the storage satellite having the compute resources.
One embodiment can be from the standpoint of a group of satellites. In this regard, a first satellite of the group of satellites can perform operations including receiving a request from a user terminal for a compute resource and the first satellite or another satellite or ground-based system can determine a compute resource identifier that identifies a location on a second satellite that contains the compute resource. The second satellite can communicate with the first satellite and transmit or making available the compute resource from the second satellite to the first satellite and the first satellite can transmit the compute resource or results from use of the compute resource from the first satellite to the user terminal.
In another aspect,
The compute resources that are distributed across a mesh network of satellites 900 can be any compute resource as disclosed herein or other compute resources that can be accessed. In some cases, where the compute resource is for example computer processors and memory, such a compute resource cannot be transmitted from satellite to satellite as data can, and so the process of providing the compute resource to the user terminal might vary depending on the type of compute resource that is requested.
With the infrastructure disclosed herein, many different types of compute resources can be provided to users. For example, a machine learning or artificial intelligence algorithm could be trained to make some kind of a recommendation to a user or provide a predicted outcome based on some data. Artificial intelligence or machine learning algorithms generally are models built on training data and seek to make predictions or decisions without being explicitly programmed to provide a specific output. Machine learning models can be used in a variety of contexts such as speech processing, medical diagnostics, email filtering, advertising recommendations, computer vision, or many other tasks. The models that are contemplated herein include any models such as artificial neural networks, decision trees, support-vector machines, regression analysis, Bayesian networks, genetic algorithms, and/or federated learning algorithms.
The trained model might require a lot of computational power to receive data and generate the output or the recommendation. There are many different types of models and the context of this disclosure can encompass any such model. Speech recognition or spoken language understanding models are exemplary but other models can apply. In this case, the model(s) could be uploaded as compute resources onto one or more satellites. When a user of a user device 622 accesses a satellite through the user terminal 502, the need or context might be for speech recognition and/or spoken language understanding model compute resources. Assume satellite 504 is communicating 520 with the user terminal 502 and the user provides speech (audio waveforms) through a microphone on their computing device 622. The user might be in a document and seeking speech recognition for dictation or the audio waveform might be in a video or a recording of a conversation and user may seek the speech recognition and/or spoken language understanding models to process the data. The data transmitted to the satellite 504 can include the raw data and meta data indicating the desired compute resources.
Assume in this case that the speech recognition models are configured on satellite 910 and the spoken language understanding models are configured on satellite 906. A routing table or data on the satellite 904 can cause it to communicate via a communication channel such as a laser the necessary instructions and data (raw data) to the respective satellites such that the speech recognition is performed at satellite 910 and the spoken language understanding is processed at satellite 906. Those two satellites might even exchange data through a communication link as part of the process. The results can then be returned to the satellite 904 communicating 920 with the user terminal 502, for transmission to the user terminal 502.
An alternate approach is that the satellite 904 can provide the user terminal 502 with data regarding where to steer its signal to the proper satellite in the group of satellites 900 that has the requested compute resource, if it is possible for the user terminal to access that satellite. The user terminal might be steered to a series of or cluster of satellites to accomplish a larger task if multiple satellites have the necessary compute resources to accomplish a multi-step task. The load balancing module 130 can organize the cluster of satellites for this purpose. In another aspect, such as a highly complex machine learning model, a group of satellites might run the model in a distributed manner and the user terminal 502 might be directed to one of the group of communication with and the communicating satellite can coordinate the exchange of data between the group that is going to run the model on the user data.
When endpoint-to-endpoint services are provided, an identification of the endpoints is typically received so that the satellites can utilize the topology data to configure a communication channel between the endpoints. The identification can relate to data associated with user terminals on either side of the channel or based on the computing devices having Internet Protocol (IP) addresses. In one example, the endpoints can be computers with traditional IP addresses that are used to identify the endpoint devices. A high-speed communication channel can be established from a first endpoint (e.g., computer 622 in a home 936), though a first user terminal 502, to a first satellite 904 and then either to a second user terminal 930 or a second or more satellite 902 (via a laser connection 926) to the second user terminal 930 via a communication channel 929 and finally a second endpoint 932 which can be another computer with an IP address. This path can have less latency than a channel 922 between the first satellite 904 and the gateway 506. The final branch in this scenario is transmitting the data through the ground network 5098 to the second endpoint 932, which can introduce more latency. The ground stations that communication with one or more satellites can be user terminals or gateways or other devices that are capable of communication with a satellite such as a mobile device.
Granting access to the use of the laser communication channel for transmitting data can occur dynamically such as via a request for some kind of transaction. The satellite 904 might receive the trade request with metadata or an indicator that it must be transmitted through the constellation of satellites 900. The use of the endpoint-to-endpoint communication channel might also be scheduled in advance. For example, a user might schedule the communication channel at the beginning of a trading day and use the channel for one hour. The scheduling can occur via a user interface or application associated with the stock trading platform or via a third party.
In one aspect, platforms such as trading platforms, sports or video streaming platforms, a cloud-service, video-conferencing platform or any application that might benefit from low latency communications with their customers can integrate a satellite endpoint-to-endpoint option for accessing their platform. Thus, as users interact with a graphical user interface, and initiate the use of an application, there may be a default option or a selectable option to communicate with the application via a satellite endpoint-to-endpoint communication channel which is generally offered as a “compute resource” to the user.
In another example, a platform such as a stock trading platform, can contract with a satellite company to offer a high-speed communication channel to their customers. The customers may also contract to obtain this service. A user with an account on a particular platform such as a stock-trading platform may be in Los Angeles and log into their account for the London Stock exchange. The user interface may be modified for the user based on an account profile or by default to include a selectable object which can confirm a request for a high-speed communication channel. The initial communication channel to access the website might be a standard Internet communication channel. However, if the user selects the high-speed communication channel, the routing of the packets can be adjusted or steered through the mesh of satellites to reduce the latency to perform the particular functions that require a faster connection. A channel monitoring service may also ensure that between the standard Internet channel and the satellites mesh, the fastest communication path (or a sufficiently fast communication path) is selected. The satellite infrastructure can receive the Internet Protocol (IP) addresses or other identifier of the respective endpoints and configure through the known topology of the group of satellites what the path should be through one or more satellites to provide a communication channel that has less latency than a standard Internet connection.
In one example, a system can include a first satellite 904 configured with a first laser communication device and a second satellite configured 902 with a second laser communication device. The first satellite 904 and the second satellite 902 are configured to receive, from a first user terminal 502 and at the first satellite 904, a request for an endpoint-to-endpoint communication channel and identify the second satellite 902 as a link to provide the endpoint-to-endpoint communication channel. The first satellite 904 establishes a laser connection with the second satellite 902 and receives data from the first user terminal 502. The first satellite 904 transmits the data 926 to the second satellite 902 through the laser connection 926 and the second satellite 902 transmits the data 920 to a second user terminal 930.
A method in this regard can include receiving from a first user terminal 802 and at the first satellite 904, a request for an endpoint-to-endpoint communication channel and identifying a second satellite 902 as a link to provide the endpoint-to-endpoint communication channel. The method can include the first satellite 904 establishing a laser connection with the second satellite 902 and receiving data from the first user terminal 502. The method can further include the first satellite 904 transmitting the data 926 to the second satellite 902 through the laser connection 926 and the second satellite 902 transmitting the data 920 to a second user terminal 930.
The endpoint-to-endpoint services might be provided by a system including just one satellite. In this example, a satellite 904 can include a laser communication device and be configured to receive, at the satellite 904 from a first ground station 502, a request for an endpoint-to-endpoint communication channel, receive, at the satellite 904, data from the first ground station 502 and transmit the data received from the first ground station 502 at the satellite to a second ground station 506 as part of the endpoint-to-endpoint communication channel. The ground station in this case at either end of the endpoint-to-endpoint communication channel can be a user terminal 502, 930 or a gateway 506. The first ground station can therefore be a first user terminal or a first gateway and the second ground station can be a second user terminal or a second gateway.
Another system can include two or more satellites that are used to establish the endpoint-to-endpoint communication channel. The system can include a first satellite 904 configured with a first laser communication device and one or more additional satellite 902 each configured with a respective second laser communication device. The first satellite 904 and the one or more additional satellite 902 can be configured to: receive, at the first satellite 904 from a first ground station 502, a request for an endpoint-to-endpoint communication channel, identify the one or more additional satellite 902 as a link to provide the endpoint-to-endpoint communication channel, establish a laser connection 926 between the first satellite 904 and the one or more additional satellite 902, wherein when there are three or more satellites in the endpoint-to-endpoint communication channel, a respective laser connection is established between each respective pair of satellites in the endpoint-to-endpoint communication channel, receive, at the first satellite 904, data from the first ground station 502, transmit the data from the first satellite 904 to the one or more additional satellite 902 through the laser connection 926 and transmit the data from the one or more additional satellite 902 to a second ground station 506. Again, the ground stations can be user terminals 502, 930 or gateways 506 as well.
A method of providing an endpoint-to-endpoint communication channel via a single satellite 904 can include receiving, at a satellite 904 from a first ground station 502, a request for an endpoint-to-endpoint communication channel, receiving, at the satellite 904, data from the first ground station 502 and transmitting the data received from the first ground station 502 at the satellite 904 to a second ground station 506 as part of the endpoint-to-endpoint communication channel.
A method with respect to using two or more satellites to establish an endpoint-to-endpoint communication channel can include receiving, at a first satellite 912 from a first ground 502, a request for an endpoint-to-endpoint communication channel, identifying one or more additional satellite 904, 902 to provide the endpoint-to-endpoint communication channel, establishing a laser connection between the first satellite 912 and the one or more additional satellite 904, 902, wherein when there are three or more satellites in the endpoint-to-endpoint communication channel, a respective laser connection is established between each respective pair of satellites in the endpoint-to-endpoint communication channel, receiving, at the first satellite 912, data from the first ground station 502, transmitting the data from the first satellite 912 to the one or more additional satellite 904, 902 through the laser connection and transmitting the data from one of the one or more additional satellite 902 to a second ground station 506.
In another example, there may not be a communication link in the ground between the user device 622 and the ground network 508. This can occur when the only access to the ground network 508 is through one or more of the satellites 912, 904. However, when there is a connection such as a standard Internet connection, one aspect of this disclosure can include, for example, performing an evaluation of an expected latency when communicating from the user device 622 to a network server via the ground network 508 relative to potentially accessing the network server via an endpoint-to-endpoint communication channel via one or more satellites. When low latency is desired and can be achieved using a selected communication channel such as using the satellites network, then the routing of the communication can be through the lower latency channel and thus provide improved service to the user.
The method of
Another issue that arises in the context of the group of satellite 900 is how to address the problems of topology and how does the overall system shift from state to state as satellites move across the sky. In the context of the group to satellites, the network topology in this case includes the arrangement of the various nodes (satellites), communication links (which can be via laser or other wireless communication protocol), transmission rates, distances between satellites, transmission time between satellites or between a user terminal or gateway and a particular satellite, satellite movement, satellite position relative to one or more user terminals or gateways, co-orbiting data for a group of satellites and they orbit relative to each other, and so forth. In one example, the physical topology between satellites can include a communication topology in a ring, mesh, star, fully connected, line, tree or bus arrangement. Depending on the distances and relative position of the various satellites in a group of satellites 900, various topologies with respect to how they communicate with each other can be determined. The topologies might be static once the compute resources are configured on various satellites or might be dynamic. In a dynamic scenario, a first topology might be configured for a group of satellites over a given geographic region and a second topology might be configured for the same group of satellites over a different geographic region.
Each satellite will have limited computing power, data storage capabilities, bandwidth capabilities and size, as well as other characteristics such as thermal issues or reboot/reset issues. Data centers on earth do not have such limitations and can provide in one location a large amount of compute resources. In the context of a group of satellites 900, there is much more limited computer capabilities and the compute resources likely have to be distributed. The issue as noted above arises when one is to deploy a compute resource such as a machine learning algorithm, a media streaming service, or other compute resource offering a cloud-service, and how to distribute that compute resource across the network topology with the network is a group of satellites 900. In
Thus, one aspect of this disclosure is a method 1100 shown in
Next, the method 1100 can include determining at least one characteristic of the group of satellites (1104). The at least one characteristic can include one or more of a distance between respective satellites, hardware characteristics of each respective satellite, communication bandwidth possible between any two satellites, an endpoint-to-endpoint communication channel capability, a speed or location of each respective satellite, software capabilities of a respective satellite, an orbital configuration for one or more satellite, a timing of when one or more satellites is in a position relative to one or more user terminals or gateways, computing power capabilities on one or more satellite, data storage capabilities for one or more satellites, a distance of a respective satellite to earth (which orbit the satellite is in), other compute resources deployed on a respective satellite, and/or characteristics associated with the capability to run virtual environments or virtual machines on a respective satellite. Based on the at least one characteristic of the compute resource to be deployed on a group of satellites and the at least one characteristic of the group of satellites, deploying the compute resources across the group of satellites (1106). The method can also include receiving, from a user terminal 502 on Earth, a request at a satellite 504 for the compute resources deployed across the group of satellite (1108), and providing access to the compute resources in response to the request (1110). Providing access to the compute resources might include coordinating access to the compute resources via the satellite that is communicating with the user terminal 502 or might include causing the user terminal to steer to the one or more satellites 900 that are configured with the requested compute resource such that the user can access the compute resources. The compute resources might be an endpoint-to-endpoint high speed communication channel which can provide a lower latency that would be experienced on the Internet.
Note that the group of satellites 900 might actually be a subgroup of a larger set of satellites and the analysis outlined above could include an analysis of a larger set of satellites with a selection of the group of satellite 900 from the larger set for deployment of the compute resources. In this manner, a cluster of satellites can be configured via the load balancing module 130.
The various characteristics outlined above can be used to determine which compute resources or services, with what frequencies and patterns, get deployed on which satellites in the group of satellites 900. Then, routing tables or other data can be used to map requests for respective compute resources to the proper location of the compute resources across the group of satellites 900. Again, typically a user terminal 502 is in communication with a respective satellite and will then request a particular compute resource. A DNS server 926 or similar routing table or database can be provided on the satellite (not shown but could be part of any one or more satellites) or accessed from earth to map or route the request to the proper satellite that has the compute resource and/or to cause the user terminal 502 to be steered to the proper satellite of the group of satellites 900. The DNS server 926 can be operated by the satellite company and have up-to-date information about which IP address or which satellites a particular user terminal should access at a given time, according to the orbits of the group of satellites that contains the requested compute resource. The compute resource entity 138 can also provide data to the DNS server in order to enable the proper routing of requests for compute resources to the proper hardware on one or more respective satellites 900.
The concept of state information in this disclosure differs in that as satellites move across the sky and a hand-off from one satellite 504 to the next 902 satellite needs to occur, when the user terminal 502 is accessing compute resources which may or may not be configured on the satellite 904 but might be provided from one or more other satellites, the “state” of the use of those compute resources needs to be transitioned to the new serving satellite 902. For example, if the user terminal 502 started a streaming service of a movie while communicating with satellite 904, and the data (compute resource) was actually configured on satellite 906, the satellite 906 might stream the movie through direction communication with the user terminal 502 or may communicate the data to the serving satellite 904 which then transmits the movie to the user terminal 502. However, if part way through the movie, the user terminal 502 needs to hand-off to satellite 902, the state information of that access of the movie (compute resource) is transferred from the storage satellite 906 to the new serving satellite 902 which may then start to receive the movie at the proper moment from the satellite 906 so that it can begin to transmit the movie to the user terminal 502. Alternately, if the serving satellite 906 needs to hand-off to a new serving satellite as it is moving out of range, then a redundant storage satellite might need to be identified and the state of the streaming video needs to be transmitted to a new serving satellite such as satellite 912 that also is configured with the data or compute resources and can continue the download to the user terminal 502 or to provide continued access to the compute resources.
If the compute resource is something other than data but the operation of an application or a service, and a job that is being processed is only party way complete, then the state information can be one or more of a configuration or state of the job, hardware, software or other provisioned compute environment data, sources of data or a status of output data, and so forth.
If the compute resource is a machine-learning model, and a hand-off needs to occur, a new satellite configured with the machine learning model might need to be identified and accessed to continue the service, or, through the laser mesh network, the output data from the satellite operating the model might need to simply transfer the data to a new serving satellite with the user terminal 502.
Note that the satellite network topology obtained via the topology service 132 can also be important in terms of handing off from one satellite to the next satellite and according to the state information. For example, with reference to
In one aspect, as shown in
In another aspect, where the compute resources are distributed across the group of satellites 900, the access to a large group of resources can exist through a pooling of compute resources from the group of satellites 900. This can be achieved through establishing a cluster of satellites.
For example, the amount of computing power or memory that is required might span across multiple satellites. In this regard,
In some cases, the pooling of computer resources across co-orbiting satellites might be dynamic. For example, a cluster of satellites 908, 504, 904 might be pooled for a period of time with respect to their compute resources due to factors such as the number of requests over a geographic area or other factors. As the larger set of satellites 900 orbits, the pool might adjust dynamically to add or subtract from the pool as the needs might differ over a different geographic region, or a demand or a predicted demand for the compute resources might occur. For example, as the holidays approach, the system might expect a large increase in the request for streaming media at certain times or access to certain purchasing, social media or commerce platforms is expanded. A number of different changes or adjustments could be made to meet the demand. In one aspect, data stored on one satellite might be duplicated on another satellite such that the pool of satellites could expand to meet the temporary demand. In another aspect, more satellites having a portion of the compute resources might be virtually added to a pool or cluster of satellites to enhance the compute resources available. Thus, such clusters or pools of satellites can be created, expanded, reduced, and so forth to create a virtual large compute resource center. Such adjustments can also occur in response to a single request. For example, a request for compute resources might be serviced starting with three satellites operating a machine-learning model and complete with just a single satellite performing final calculations. Again, accessing the compute resources can occur through steering user terminals to the appropriate satellite or through a data transfer via the mesh network of satellites 900 to the servicing satellite which can then transmit data to the user terminal 502.
Note that a workload management component 1226 can be configured on a satellite 904 or ground station (such as part of the SatOps service 130) which can evaluate requests for compute resources and schedule future access and make reservations of compute resources across one or more satellites 900 in order to make the access to and use of the compute resources more efficient.
The parameters for scheduling or balancing such requests can take in to account thermal conditions, reboot/reset conditions and/or energy levels as describe herein. In this manner, a greater efficiency can maximize the use of all CPU cycles, memory, communication bandwidth, and so forth. In other words, in a group of satellites 900 that in a distributed manner provide access to compute resources, it is desirable to provide efficient use of the compute resources such that compute resources are not wasted and requests can be timely provided a response. For example, a satellite 504 might receive one thousand requests for different types of compute resources from user terminals 502, 1220, 1222, 1224. Some of these requests might be for streaming media, and others might be for use of machine learning models, and so forth. The requests might have certain characteristics such as qualities of service, priorities, and so forth. The workload management component 1226 would place each request in a queue and could determine when to make reservations of the various compute resources across the network of satellites 900 to meet the various requests. A workload management component 1226 (much like the management module 630 in
Where a pool or cluster of satellites are organized to provide a larger pool or available set of compute resources, and where that pool might be dynamically changing, note that updates to a routing table or to the workload management component 1226 can be provided such that each request for resources can be served or provided via a current understanding of the network topology. In some cases, the queue of request might drive a change in the network topology as well such that additional satellites might be added to a pool or a duplication of data or adjustment of some type might occur to meet the demands of requests in a queue.
For example, if there is a five second opening in which no request is scheduled for streaming a video and that is available, the workload management component 1226 can schedule that five second opening to enable access to the compute resources for that period of time. Thus, available openings in time can be filled and thus lead to increased efficiency in the overall use of the compute resources. Because the compute resources in this case are going to be distributed across a group of satellites 900, the evaluation and the reservation process can take into account such factors as the movement of one or more satellites, the position of the one or more satellites relative to the requesting user terminal 502, the capabilities of respective satellites with respect to power, processing capabilities, memory storage, energy requirements, thermal issues, reboot/reset issues, distance between satellites over time and a distance between respective satellites and a respective user terminal, and so forth.
In another example, reserving compute resources might take into account the fact that a pooling of compute resources across a subgroup of satellites might occur for a particular period of time while one or more of the subgroup of satellites is in communication with a respective user terminal 502. Over time, the subgroup of satellites might move into a new position and no longer be capable of providing direct communication with the requesting user terminal. Thus, where a new subgroup of satellites might need to receive a transition or a handoff of the servicing of the request for compute environments, such handoffs or the likelihood in the future of the need for such handoffs might be taken into account with respect to reserving compute resources from a group of satellites.
For example, given the movement of the various groups of satellites, the workload management component 1226 might determine to delay the reservation of the compute resources until a certain subgroup of satellites are in a certain position such that no handoff will be needed throughout the process of providing access to the required compute resources. In another aspect, where handoffs might need to occur amongst either a satellite that is going to be communicating with the user terminal 502 or one or more satellites that will actually be providing the compute resources, the timing and bandwidth needed in order to achieve a handoff situation can be taken into account with respect to the overall efficiency of servicing a request for compute resources. Thus, these additional factors will need to be taken into account in the context of providing access to distributed compute resources across a group of satellites 900 which factors are not at play in a ground-based network 508.
In some cases, compute resource providers, such as a media streaming company, might simply want their cloud-services made available via the set of satellites 1200 and might not need to know all of the details about how their compute resources will be delivered. The satellite company may not need to or desire to know where any particular file is stored on their satellites but might be focused on how to generally deliver access to the compute resources. The question is how will a user terminal 502 be able to access or request compute resources in such a scenario? To address this issue, the satellite service might provide all the user terminals 502, 1220, 1222, 1224 a map of IP addresses (or other identifying data) to satellites and the company providing the compute resources can get a listing of all IP addresses of satellites upon which their software, cloud-service, or application is running. For example, the satellite company might instruct the compute resource company that their compute resources are running on satellites 902, 904 and 1204 with IP addresses of 192.158.1.38; 192, 158.1.39; 192.158.3.40. The user terminals 502, 1220, 1222, 1224 might tag the IP address 192.158.1.38 noting that this IP address is on a satellite and/or which satellite the service is on. The serving satellite for the user terminal 502 can receive the request and know to transition the user terminal 502 to the appropriate satellite or to retrieve via a satellite-to-satellite communication (through a laser satellite mesh network 1200) the requested compute resource or to access the data on the appropriate satellite. In another aspect, the user terminal 502 might respond to the tag associated with the IP address and simply immediately transition to that satellite identified via the tag.
There can be different routing strategies. For example, the request from the user terminal 502 may state that it needs to get to any one of a group of twenty satellites that has the requested compute resource. The servicing satellite can then select via an algorithm or a routing table or some other mechanism and route the request to one of the other of the twenty satellites. The serving satellite might choose the one closest to it based on distance, or the servicing satellite might “ping” the other of the twenty satellites or the closest ten satellites determining how burdened each one is and whether a respective satellite can respond to the request. Other factors can take into account characteristics such as a thermal condition, a reset/reboot event(s), an energy level, a current distance between satellites or a predicted or future distance between two given satellites.
In another example, the data in the request from the user terminal 502 may indicate that the user terminal 502 should get access to a certain “group A” of satellites (such as satellites 912, 1206, 908) that are over North America and that represent the pooled satellites offering the compute resources that are needed. The data in the request that identifies the group of satellites that it needs to be directed to might be based on the tag associated with the IP address, wherein the tag indicates that the computers associated with the IP address are on satellites (rather than being configured on Earth).
The compute resources that are needed might span more than one satellite. This, a particular request might include the pooling of compute resources from multiple satellites to deliver the requested compute resources. For example, one request might be served by satellites 906, 910, 912 and 1206. Another request might be served by satellites 902 and 1204. A workload management component 1226 might utilize data indicating the compute resources on each satellite and construct a determination of which satellites are to be pooled to meet the request. Different parts of the workload can then be divided up and communicated to the proper satellites in the laser mesh of satellites 1200. Part of processing the workload can include interim communications which might be necessary to complete the workload processing on these separate nodes of the pool.
In one aspect, one factor that can be utilized to select or organize a pool of satellites to service a compute resource request can be to include one satellite in the pool that is the satellite designated to communicate with the user terminal 502. This might be the same satellite that was currently communicating with the user terminal 502 or a handoff to another satellite in the pool that is also participating in servicing the request with compute resources. As noted above, the pooling of computer resources can also be determined based on the fact that satellites in the pool are co-orbiting satellites. Thus, there are a number of different strategies for pooling satellites to create virtual large compute resource centers via a cluster or pool of different satellites.
One issue addressed herein is the fact that in the context of the capability of providing a laser mesh of communicating satellites that can house distributed compute resources, the third parties 138 that provide the compute resources or software and data to operate or provide the compute resources, those third parties will not want to know or need to know about orbital mechanics. Additionally, the company providing the satellites does not want to or need to know about each file or piece of data or algorithm provided as a compute resource and which satellite stores or caches which data. A challenge exists with respect to how to coordinate with third parties to distribute their compute resources across the satellites. However, the system needs to know both pieces of information in order to properly route requests to the right satellites. The disclosed solutions address these problems. Notably, the communication between the compute resource entity 138 and the load balancing module 130 achieves this goal.
One example solution to this problem is to provide some new data communicated between the user terminal 502, servers 1230 operated by the satellite company and servers operated by a third part compute resource provider 1232. The issues set forth above can be solved in a number of different solutions. For example, the satellite company servers 1230 can communicate via an application programming interface (API) 1234 or some other communication protocol with the third-party servers 1232. Assume for this example that the third-party company is a media streaming company. They know that their service is operating on one hundred satellites, but they do not know where the satellites are or which ones are in range at any given time for their customers. The structure of the API in one example can be that the third-party servers 1232 transmit a set of IP addresses and options or data. A particular episode of a show might be stored on ten of the one hundred satellites. The third-party company will not know the orbital patters or locations of those ten satellites (they orbit the earth every 95 minutes) that have the proper episode but they know which ten satellites store that episode. The media company third-party server 1232 may receive a request from a user operating software and/or hardware associated with the media company for the particular episode and transmit via the API data about the user (location, for example, which enables the satellite company to determine which user terminal 502, 1220, 1222, 1224 will receive the streaming media) and data about the ten satellites that will be capable of responding to the request. In this case, assume that satellites 902 and 910 in
In another aspect, the third-party company that provides compute resources such as a media streaming service can provide to its customers a universal resource locator (URL) with data that could identify the various satellites that house the compute resources. When the customer (through an application, website or other software operated by the media streaming service) requests a program or a compute resource, the customer software or other application on a user device can access a DNS service 926 (directly or via a ground network 508 shown in
Another aspect of this disclosure relates to the clustering process and how decisions are made to generate a cluster of satellites for providing compute resources.
Each satellite 2002, 2010, 2018 has respective compute resources 2004, 2012, 2020 including computer processors 2006, 2014, 2022 and memory 2008, 2016, 2024. The computer processors 2006, 2014, 2022 and memory 2008, 2016, 2024 are representative of compute resources but they could also include ports for endpoint-to-endpoint high speed data communication between satellites, or applications, or cloud-service instances, and so forth. These are available for use as compute resources or they may have software configured thereon to provide access to services such as a stock trading platform or other “X” as a service.
In cloud computing and on-demand high performance computing environments, many requests for compute resources can be received from different users. A data center having many compute nodes can have workload manager that acts as an intelligence layer to evaluate the requests, evaluate the scheduled workload on the data center and schedule the new requests in ways that seek to efficiently use each computer processor in each time slice so that computer processor cycles are not wasted. This approach is applied to a satellite context in which in addition to the physical condition of one or more satellites or based on satellite movement and relative position, a scheduled workload or scheduled requests for compute resources are evaluated for determining which satellites from the group 900 to cluster together.
In one example, the workload manager 137 shown in
Some requests might include requests for endpoint-to-endpoint high speed communication channels from one location to a far distance location (such as LA to London) and the topology schedule can be combined with such a request to cluster the proper set of satellites together to deliver the channel.
In one example, assume that satellite 2002 is closer to satellite 2010 than is satellite 2018. Assuming satellite 2002 has acceptable conditions (thermal, radiation, energy), it would likely be clustered together with satellite 2010 to provide compute resources to the user terminal 112. However, what if the circumstance arises where a previous workload that is running or using the computer processors 2006 and all or substantially all of its computer processors 2006 are busy as well as perhaps its computer-readable storage devices or media 2008. In this case, satellite 2002 might not be available for any workload for a period of time such as five minutes of the ten-minute time slot covered by the topology schedule from the topology service 132. In such a case, the clustering might involve a laser connection 2036 between satellite 2010 and satellite 2018. In this regard, these satellites might physically be further apart, but their workload schedule will enable them to service expected requests from the user terminal 112 or received requests that need to be scheduled.
Assume that the user terminal 112 requests a compute environment as compute resources via a communication link 2038 with the satellite 2010. This might be a certain number of computer processors and memory with a configured software package to run the workload. In this regard, the cluster of satellites 2010, 2018 can be configured through a high-speed communication link 2036 to enable a compute environment 2034 that can include some computer processors 2026 and memory 2028 from the satellite 2010 and some computer processors 2030 and memory 2032 from satellite 2018. The compute environment 2034 may be provisioned for the request for compute resources with certain software to provide a service or may already be provisioned and made available as the request would be for a platform performing particular function. In this regard, the clustering might involve simply how busy different satellites of the group of satellites 2000 are to be responsive to requests. If one satellite 2004 is too busy or not capable of responding to a request or expected requests in a geographic area, then the clustering might involve not including that satellite 2004 in a cluster.
The method can further include granting access to the compute resources on the cluster of satellites (2108). The clustering of the two or more satellites can be based on one or more of thermal conditions, reboot/reset conditions and energy conditions associated with each satellite of the group of satellites. The clustering can also be based exclusively on the workload scheduled or expected workload as the cluster of satellites moves over a geographic area having at least one user terminal 112. Again, the workload can include any compute resources such as bandwidth or an endpoint-to-endpoint high speed communication channel.
The method can further include receiving, from a user terminal 112, third data associated with a request for compute resources and providing the compute resources 2034 from the cluster of satellites to the user terminal 112. The clustering of the two or more satellites of the group of satellites 2000 can further be based on the third data.
Receiving the third data can occur after the clustering of the two or more satellites. For example, the clustering can occur based on existing workload or expected or predicted workload. The group of satellites might be moving from an area over the ocean to an area over a large city on the coast and have many expected requests for compute resources. The group of satellites can receive from the SatOps service 130 one or more parameters, or an instruction based on one or more parameters to cluster certain subgroups of satellites together to prepare for the requests. Other data can be utilized as well such as public events (sporting events) that might be scheduled and which would cause many user terminals 112 to request a certain streaming service, or holiday information, or new movie release information, as well as demographics or information about one or more users, which can cause or impact the clustering decision made by the SatOps service 130.
The method can further include receiving third data associated with requests from the users for compute resources to be provided after the first time to yield second workload (2208) and providing the compute resources from the cluster of satellites to the user terminal (2210).
In one aspect, the method can include scheduling the second workload after the first time on the cluster of satellites to yield a workload schedule and providing the compute resources to the users from the cluster of satellites according to the workload schedule.
Clustering two or more satellites of the group of satellites can further be based on the third data. Receiving the third data can occur after the clustering of the two or more satellites.
The method can further include receiving fourth data associated with one or more of a priority, a service level agreement and quality of service guarantees associated with at least one of the first workload and the second workload. The clustering of the satellites can further be based on the fourth data.
A compute environment 2034 can be provisioned for a user workload across the cluster of satellites 2010, 2018. In some cases, the provisioning needs to be done after the request and in other cases the necessary software already is provisioned and the user is requesting a service such as a trading platform or streaming video. The provisioning can be scheduled and can include the provisioning of any software or application needed to provide compute resources such as endpoint-to-endpoint communication channels.
Clustering the two or more satellites can further be based on two or more requests for compute resources. Clustering the two or more satellites can further be based on one or more of a transient thermal condition of the group of satellites, a reboot/reset condition of the group of satellites, an energy level associated with each satellite of the group of satellites.
In one example, the workload schedule can not only cause certain satellites to be clustered 2010, 2018, but in some cases the request for compute resources might be services through a communication link 2040 to a gateway 104 which connects to the Internet and other ground computer systems which can provide the compute resources. The group of satellites 2000 for example, might have a full workload scheduled for a period of time in which the group of satellites 2000 will pass over a geographic area with user terminals 112 where requests for compute resources might be received. In one aspect, where the satellites 2000 cannot service the requests or expected requests, the traditional approach can be implemented where requests are provided through the gateway 104 to traditional terrestrial cloud computing environments. In another aspect, compute environments 2034 configured on a cluster of satellites, if the circumstances warrant, could have their compute environment transitioned to a ground computing environment to continue processing the data. The time and cost of shifting the compute environment 2034 to a ground computing environment can be taken into account whether such a load balancing operation would be worthwhile.
The method can further include receiving prediction data regarding expected requests for compute resources from one or more user terminals 112 in a geographic area during at least a portion of the period of time in the future. The, the clustering of the two or more satellites from the group of satellites can further based on the prediction data.
The clustering of the two or more satellites can be static for the period of time or dynamic and changes based on one or more parameters after establishing the cluster of satellites and before a conclusion of the period of time. In this example, the cluster can be operable for five minutes of the ten-minute slot of time of the topology schedule but workload may complete, or requests may be withdrawn, or higher priority requests may be received, and thus the cluster and any compute environment 2034 associated with the cluster of satellites 2010, 2018 might be torn down and the satellites 2010, 2018 would return back to a larger group of satellites 2000 available for clustering.
The dynamic nature of the clustering can also mean that the cluster configuration can change even before a traditional topology schedule timing. The change can be based on a change in workload, a completion of workload, new requests that require additional workload, and so forth. A cluster of satellites can grow or shrink dynamically depending on the workload pressure as well as the other conditions disclosed herein. For example, if satellite 2018 is in a cluster and starts to have thermal issues where it is operating too hot, then the cluster can be adjusted to include satellite 2002 instead of satellites 2018. Backup satellites can be configured, provisioned or assigned in advance as well to accommodate a reset or reboot event or where a transient thermal condition occurs.
Any given satellite might have multiple communication links 2036 and be able to be a part of multiple clusters. In such a case, the workload manager 137 would take into account both clusters, expected workload and other factors to enable quality requirements to be met when providing compute resources.
In another example, a method can include providing data about the workload schedule from the workload manager 137 to the topology service 132 which can then be used to determine the proper topology over a period of time. The data reported from the topology service 132 might vary depending on the scheduled workload from the workload manager 137. The workload manager 137 can have access to workload requests from one or more entities that desire access to the compute resources. In one example, the topology service 132 typically will provide the topology schedule for a period of time, such as ten minutes, which relates to how long a group of satellites will be in sight of a cell of user terminals. The timing is based on the physical movement of the satellites. However, the topology service 132 can receive data from the workload manager 137. The data may indicate that a large amount of workload is scheduled for seven minutes from the current time and is scheduled to run for eight minutes. This would mean that the workload would start and run for three minutes and then the topology schedule may change in the middle of processing the workload, which may cause a reclustering of the satellites and introduce latency. Thus, the topology service 132 might adjust the timing of the topology schedule based on the scheduled workload and reset the schedule in advance of the large workload (and in advance of the normal timing for a new schedule) for a period of nine minutes to enable the workload to start and complete without a readjustment of the cluster or of the topology. Other adjustments to the topology schedule might occur as well based on the data about the scheduled workload.
As another example, the workload might involve the request for a high-speed endpoint-to-endpoint communication channel from Los Angeles to London for a particular application. The topology schedule might take into account not just the satellites over a given geographic area such as Los Angeles where data transmission might originate, but it could also take into account the larger group of satellites that would be part of the endpoint-to-endpoint communication channel all the way to London. Thus, clustering decisions can take such extended use of compute resources into account beyond a generated cluster above a certain geographic area.
In each case, where scheduled workload is mentioned herein, it can also include predicted workload due to, for example, a large amount of user terminals in a given area, based on a time of year or for other reasons that many requests for compute resources are expected in the future but not formally received.
In most cases, the hardware shown in
Storage device 2730 is a non-volatile memory and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, volatile random-access memories (RAMs) 2725, read only memory (ROM) 2720, and/or hybrids thereof.
The storage device 2730 can include services 2732, 2734, 2736 for controlling the processor 2710. Other hardware or software modules are contemplated. The storage device 2730 can be connected to the system connection 2705. In one aspect, a hardware module that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as the processor 2710, connection 2705, output device 2735, and so forth, to carry out the function.
In some examples, computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
Methods according to the above-described examples can be implemented using computer executable instructions that are stored or otherwise available from computer readable media. Such instructions can include, for example, instructions and data which cause or otherwise configure a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on.
Devices implementing methods according to these disclosures can include hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include laptops, smart phones, small form factor personal computers, personal digital assistants, rackmount devices, standalone devices, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.
The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures.
Although a variety of examples and other information was used to explain aspects within the scope of the appended claims, no limitation of the claims should be implied based on particular features or arrangements in such examples, as one of ordinary skill would be able to use these examples to derive a wide variety of implementations. Further and although some subject matter may have been described in language specific to examples of structural features and/or method steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or acts. For example, such functionality can be distributed differently or performed in components other than those identified herein. Rather, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.
Claim language reciting “at least one of” refers to at least one of a set and indicates that one member of the set or multiple members of the set satisfy the claim. For example, claim language reciting “at least one of A and B” means A, B, or A and B.
Any reference to communication with a user terminal can also be interested as a communication with a gateway or other communication device which can communicate with a satellite.
Any dependent claim even if recited below as being dependent from a single independent claim or other dependent claim can also be dependent from any other claim as well. Thus, multiple dependent claims are contemplated as within the scope of this disclosure. This includes the various examples set forth herein as well. Any example or any feature from one example disclosed herein can be combined with any other feature of any other example as well.
The present application claims priority to U.S. Provisional Patent Application No. 63/251,001, filed Sep. 30, 2021, entitled “SYSTEM AND METHOD OF PROVIDING ACCESS TO COMPUTE RESOURCES DISTRIBUTED ACROSS A GROUPS OF SATELLITES,” the contents of which is hereby expressly incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63251001 | Sep 2021 | US |