WO2022251852A1 - Distributed processing in a satellite network based on satellite characteristics - Google Patents

Distributed processing in a satellite network based on satellite characteristics Download PDF

Info

Publication number
WO2022251852A1
WO2022251852A1 PCT/US2022/072572 US2022072572W WO2022251852A1 WO 2022251852 A1 WO2022251852 A1 WO 2022251852A1 US 2022072572 W US2022072572 W US 2022072572W WO 2022251852 A1 WO2022251852 A1 WO 2022251852A1
Authority
WO
WIPO (PCT)
Prior art keywords
satellite
application
instance
change
execute
Prior art date
Application number
PCT/US2022/072572
Other languages
French (fr)
Inventor
Benjamin Lyon
Jonathan Donaldson
Original Assignee
Astra Space, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Astra Space, Inc. filed Critical Astra Space, Inc.
Publication of WO2022251852A1 publication Critical patent/WO2022251852A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/1853Satellite systems for providing telephony service to a mobile station, i.e. mobile satellite service
    • H04B7/18532Arrangements for managing transmission, i.e. for transporting data or a signalling message
    • H04B7/18534Arrangements for managing transmission, i.e. for transporting data or a signalling message for enhancing link reliablility, e.g. satellites diversity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/19Earth-synchronous stations

Definitions

  • aspects of the present disclosure can include a method where a load balancer can determine a first satellite, of a satellite constellation, to execute a first instance of a first application.
  • the load balancer may also determine a second satellite, of the satellite constellation, to execute a second instance of the first application.
  • the first satellite can execute the first instance of the first application, and the second satellite can execute the second instance of the first application.
  • the first satellite can experience a change in operational circumstances, for example, a transition from sunlight to darkness that causes a lower power state.
  • the load balancer can transition the execution of the first application from the first satellite to a third satellite.
  • the load balancer may determine a third satellite, of the satellite constellation, to execute a third instance of the first application, and the third satellite can execute the third instance of the first application.
  • Fig. 1 is a three-dimensional view of the earth with one or more satellites orbiting the earth in accordance with aspects of the present disclosure
  • FIG. 2 is a view of a coverage area of a satellite orbiting about the earth in accordance with aspects of the present disclosure
  • FIG. 3 is a block diagram of a processing system of a satellite (and/or ground station of the ground segment) in accordance with aspects of the present disclosure
  • Fig. 4 A is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure
  • Fig. 4B is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure
  • Fig. 4C is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure
  • Fig. 4D is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure
  • Fig. 4E is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure
  • Fig. 5 is a communication diagram (e.g., a signpost diagram) showing communications in the system/methods in accordance with aspects of the present disclosure
  • FIG. 6A is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure
  • Fig. 6B is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure
  • FIG. 7 is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure
  • FIG. 8 is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure
  • Fig. 9 is a block diagram of possible satellite systems in accordance with aspects of the present disclosure.
  • Fig. 10 is a block diagram of possible processing system of a satellite in accordance with aspects of the present disclosure.
  • An environment can include a system 100, which may conduct methods that may operate in the environment.
  • the environment and the system 100 may be as shown in Fig. 1.
  • the environment can include the earth 102 and the space surrounding the earth 102, which may include a satellite constellation, which is a group of two or more satellites 104a through 104d. If the satellite constellation is interconnected and may operate in concert (as described herein), the satellite constellation may be referred to as a satellite network 100.
  • the satellites 104 may travel around the earth 102 along an orbit 106a- 106d.
  • the orbits 106 may be Low Earth Orbits (LEOs), Medium Earth Orbits (MEOs), or some other type of orbit around the earth 102.
  • LEOs Low Earth Orbits
  • MEOs Medium Earth Orbits
  • the satellite 104 may communicate, with the other satellites 104, via one or more Inter- Satellite Link (ISL) or can communicate with one or more ground station(s) 108.
  • ISL Inter- Satellite Link
  • the orbit 106 of the satellite 104 may cause the satellite 104 to move from an area of sunshine 110 (sunlight) to an area of darkness 112, e.g., in the earth’s shadow (night).
  • the satellite 104 may enter a low-power state where the solar arrays of the satellites 104 may receive less power or may not receive any power while in darkness.
  • Satellite 104 can be any type of man-made spacecraft that is placed into orbit 106 by a rocket.
  • the satellite 104 may have one or more systems as described in conjunction with Fig. 9.
  • One system may be a processing system 1010, which may be further described in Fig. 10. These systems allow the satellite 104 to conduct some type of operation or mission while in orbit 106.
  • the satellites 104a through 104d can communicate with each other through a laser ISL or other types of communication medium and may communicate with the ground station 108 through a Radio Frequency (RF) or other type of communication medium.
  • RF Radio Frequency
  • a sensor on satellite 104 may have an area of regard 202.
  • the area of regard 202 can be the extents of the sensors ability to detect information or capture other readings from the surface of the earth 102.
  • An application or mission of one of the satellites 104 may have an area of interest 204.
  • the area of interest may be a portion of the earth 102 to which detection by some sensor is desired. This area of interest 204, can be over water, land, or any other part of the earth 102.
  • An area of coverage 206 (e.g., the shaded area in Fig. 2) may be the portion of the area of interest 204 that is also covered by the area of regard 202. This area of coverage 206 represents where the sensors can detect information within the area of interest 204.
  • a satellite 104 (and/or the ground station 108 or other component of the ground segment) may have various systems as described in conjunction with Figs. 9 and 10.
  • the processing system 1010 of Fig. 10 can include one or more hardware and or software processors, as may be shown in Fig. 3.
  • the processor 1010 can include a load balancer processor 302 (also referred to simply as a load balancer), a scheduler processor 304 (also referred to simply as a scheduler), an application state processor 306, and/or a satellite state processor 308.
  • the processing system 1010 can include a memory 1012, which may include one or more datastores 312, 314.
  • the memory 1012 can include state containers 310, which can save data about the application state 312 and/or the satellite state 314.
  • the processors 302-308 and state containers 310 may execute in the ground segment (e.g., in the ground station 108), in a satellite 104, or in another component.
  • the load balancer processor 302 can be the hardware and/or software related to balancing the load of executing application instances across one or more satellites 104a- 104d.
  • the load balancer processor 302 can determine the number of instances and/or the number of processing cycles used by the application within each satellite 104.
  • An instance of an application is a portion or a single copy of the software running on a single processor 1010.
  • object-oriented code an instance is a specific realization of any object.
  • the application can be any software of computer program designed to carry out a specific task other than one relating to the operation of the computer itself.
  • the load balancer processor 302 can have one more instances start in the first satellite 104a and one or more other instances start in satellite 104b, etc.
  • the load balancer processor 302 can also begin execution of an application by the satellite 104, stop execution at a satellite 104, etc.
  • the load balancer processor 302 may send directions or directives and receive information from the various satellites 104, as described in conjunction with Figs. 4A through 4E.
  • Scheduler processor 304 can determine orbit characteristics for one or more satellite(s) in one or more orbits 106. Further, the scheduler processor 304 can also determine information about other celestial bodies, for example, the earth 102, the sun, the moon, etc. The scheduler processor 304 can then determine events that may occur to the satellites 104. For example, the scheduler processor 304 can determine when satellite 104c moves from sunlight 110 into darkness 112 and then enters a lower power state. Scheduler processor 304 can also determine a time for events or can determine other transitions for the satellites 104.
  • the application state processor 306 can receive and store the application state in applications state datastore 312.
  • the application executed by the one or more processors of the satellite 104 can be stateless.
  • the application may be stateful and the application state may be stored in a state container 310, for example, application state 312.
  • the application state processor 306 can receive the state from applications executed on satellites 104 and provide that state to one or more other satellites 104 or other processes based on processing requirements.
  • Satellite state processor 308 can receive, store, and provide the satellite state data 314 in state container 310.
  • the satellite state information 314 can be provided to the load balancer processor 302 to determine how to properly load the application instances across the satellite constellation. For example, if a satellite’s state changes and the satellite becomes unable to perform the required operations, the satellite state processor 308 can inform the load balancer processor 302 that that satellite has experienced a change in operational circumstances, for example, a failover event of one or more components (e.g., the satellite stops executing properly), and must stop execution of the instance of the application and that instance may need to be moved to a different satellite 104.
  • a failover event of one or more components e.g., the satellite stops executing properly
  • SOH State Of Health
  • Other changes in the operational circumstances can include one or more of, but is not limited to, a transition to a low power state, a change in the State Of Health (SOH), etc.
  • a change in the SOH can include one or more of, but is not limited to, an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the satellite, a change in attitude control, etc.
  • State container 310 may be any type of state container, for example, Kubernetes or other similar application state container 310 can store the state and provide that state as needed.
  • the state is the current condition of the application or instance (e.g., represents the totality of everything necessary to keep the application running).
  • the state container 310 can include the application state 312 and satellite state 314. The changes to the states of the application(s) or satellite(s) can change the state container 310 and can change the data within those state stores 312 and 314.
  • Implementations of one or more messages, signals, data structures, etc. 400 that may be sent, received, or stored in conjunction with the configurations described herein, may be as shown in Figs. 402-442.
  • the implementations can have different datastores or data structures 402, 416, 426, 434, and 442, but may be collectively described as data signals, messages, etc., 400.
  • the various data structures may have one or more identifiers (IDs) associated with one or more components or structures of the system 100, as described herein.
  • IDs identifiers
  • Each of these IDs 404-408 can be a numeric, alphanumeric, Globally Unique Identifier (GUID), a registration number, a serial number, or other types of identifiers. These identifiers 404- 408 may uniquely identify the component, to which the ID 404-408 is associated, compared to other similar components within the system 100.
  • the application ID 404 uniquely identifies the application to be executed by the satellite 104.
  • the instance ID 406 is an identifier of the instance of the application, identified by application ID 404.
  • the satellite ID 408 identifies which satellite 104a-104d will execute the instance, identified by ID 406. IDs 404 through 408 will not be explained further hereinafter.
  • the data structure 402 may comprise stored data, which identifies which satellite 104 is executing which instance of which application.
  • the data structure 402 may comprise the application ID 404, the instance ID 406, and the satellite ID 408.
  • data structure 402 stores the arrangement of how the satellite constellation can execute the various instances of the various applications and records the load balancing scheme.
  • the application executed by the satellites 104 may include state data.
  • the application state data 410 may be extracted from application state information 314 and stored with data structure 402.
  • the data in data structure 402 may have more or fewer fields than that shown in Fig. 4, as represented by ellipses 412.
  • Each satellite 104/application directive sent to a satellite 104 to execute an instance of an application may have a different date structure 402, as represented by ellipses 414.
  • Data structure 416 can represent information stored about what each satellite 104 is currently executing and the state of application/satellite 104.
  • Data structure 416 may represent what is stored in the application state data 312 or the satellite state data 314.
  • Data structure 416 can include one or more IDs 404, 406, and/or 408.
  • the application state 410 (describing a state of the application processing), as described in conjunction with Fig. 3, may be stored as data structure 416.
  • SOH data 418 can include any type of data about the state of the satellite 104 that may be stored as satellite state data 314.
  • the SOH data 418 can include data as a snapshot of the telemetry from the satellite systems, trends or changes in satellite operation over time, different alerts regarding satellite operation, etc.
  • the scheduled transitions 420 can be the events/transitions, which may be known by the scheduler processor 304, and when those events may occur.
  • the scheduled transitions 420 can include transitions from sunlight to darkness, predictable loss of communication, or other types of events that may be known to occur or that will occur at some time in the future.
  • This scheduled transitions information 420 can be stored for the load balancer processor 302 to transition instances of the application to other satellites. There may be more or few fields within data structure 416, as represented by ellipses 422. Further, each satellite 104 may have a different data structure 416, as represented by ellipses 424.
  • the satellite 104 may send a registration request to the load balancer 302.
  • the registration request may be data structure 426.
  • the registration request can include the satellites ID 408.
  • the registration request 428 may be provided within data structure 426, acknowledging that the satellite 104 may be available for executing an instance of the application.
  • Satellite 104 may also send SOH information 418, which may be some indication that the satellite is performing well enough to execute an instance of the application.
  • the SOH 418 can be sent to another satellite 104 or to the ground station 108, or wherever the load balance processor 302 is executing.
  • the SOH 418 can indicate to the load balance processor 302 weather the satellite 104 would be capable of executing instance(s) of the application(s), how many instances, and how to use the satellite 104 in the load balancing scheme.
  • the scheduled transitions information 420 may also be provided to load balancer processor 302.
  • the scheduled transitions 420 may be the same or similar to the transitions described in conjunction with Fig. 4B.
  • Each satellite 104 can send the registration request data structure 426 when available, which means that the registration request data structure 426 may be sent multiple times, as represented by ellipses 432.
  • the load balancer processor 302 can send directives to the satellites for starting execution of an application instance, pausing the execution of an application instance, stopping execution of the application instance, or conducting other operations.
  • the data structure 434 represents a directive.
  • the directive message data structure 434 may include one or more IDs 404- 408. These IDs 404-408 have been explained previously in conjunction with Fig. 4A and need not be explained farther here.
  • the directive may also include the application state 410, which was explained in conjunction with Fig. 4B and will not be explained further here.
  • the application state 410 provides state data about the instance of the application to the satellite 104 if the application has states.
  • the application directive 436 represents what is required by the satellite 104.
  • the satellite 104 may be directed to begin execution of an instance of the application, to stop execution of an instance of an application, or to conduct some other operation.
  • the directive 436 can indicate to the satellite 104 to stop or start the execution of the instance based on the satellite’s SOH, based on changing operational conditions of the satellite 104, based on a transition, whether scheduled or not, or based on other factors.
  • the directive 436 may also prescribe time periods to which to conduct or to stop executing instances of an application. For example, the application directive 436 may allow execution of the instance of the application while the satellite transitions into darkness 112, but only for certain amount of time or power usage (e.g., 10 minutes, or 5% power drain).
  • the application directive 436 may direct a satellite 104, which is currently in darkness 112, to begin executing an application instance in anticipation of that satellite 104 transitioning into sunlight.
  • the directive message data structure 434 may have fewer or more fields than that shown in Fig. 4D, as represented by ellipses 438. Every directive 436 produced by the load balancer 302 may include a directive message data structure 434, as represented by ellipses 440.
  • SOH message data structure 442 may be as shown in Fig. 4E.
  • the SOH message data structure 442 may include the satellite ID 408, identifying which satellite 104 is sending the SOH message data structure 442.
  • the SOH message data structure 442 may include SOH information 418.
  • the SOH information 418 may include a portion or all the telemetry indicating the functioning of the satellite 104.
  • the SOH information 418 can include the one or more items of telemetry that have crossed some threshold and indicate a condition that may cause the satellite 104 to cease functioning properly.
  • the SOH information 418 can indicate if the satellite is still operating properly, and can include a single bit or other small item of data indicating that the satellite 104 is operating within parameters.
  • the SOH message data structure 442 can include more or fewer fields than that shown in Fig. 4E, as represented by ellipses 444.
  • the SOH message data structure 442 may be polled by the load balancer 302 or the satellite state processor 308 or may be pushed by the satellite 104. Other implementations allow for the SOH message data structure 442 to be relayed among other satellites 104 to the satellite state processor 308.
  • FIG. 5 An implementation of communications 500 between various components of the system 100 or satellite network may be shown in Fig. 5.
  • the communications 500 may be provided from a first satellite 104a, to load balancer processor 302 or other processors 1010, which may be executing at a ground station 108 or in some other location.
  • the satellite 104a may communicate with one or more other satellites 104b through 104d.
  • the other satellites 104b through 104d may also communicate with the ground station 108 processing functions 1010, which may also execute in other locations.
  • the following messages 502-516 may be sent and/or received by one or more communication systems described hereinafter.
  • a first message 502 may be a registration request 426 to the ground station 108 or to where the load balancer processor 302 is being executed.
  • This registration request message 502 may be the same or similar to registration request data structure 426, described in conjunction with 4C.
  • the ground station 108 may send a directive message 504 back to the first satellite 104a.
  • the directive 504 can include the message 434, as described in conjunction with Fig. 4D.
  • the first satellite 104a and other satellites 104b through 104n may send/receive SOH messages 506a, 506b, either with each other or with the ground station 108.
  • the SOH messages 506 may be the same or similar to SOH message data structure 442, described in conjunction with Fig. 4E.
  • the SOH message 506 may indicate, to the ground station 108, that the satellite 104a is not functioning properly. As such, the ground station 108 may send a redirect message 508 to one of the other satellites 104b through 104d to take over executing the instance of the application.
  • the redirect message 508 may be a directive message data structure 434, as described in conjunction with Fig. 4D.
  • the satellite 104a may be experiencing some sort of change in operational circumstances, for example, a transition to a low-power state caused by the orbit moving to a state of darkness.
  • the load balancer 302 can send message 510 to stop execution of the instance at the first satellite 104a.
  • the stop directive can be a directive 436 and can be the same or similar to message 434, as described in conjunction with Fig. 4D.
  • the stop directive 436 can direct the first satellite 104 to stop executing the instance of the application.
  • the ground station 108 can send a directive message 512 to one of the other satellites 104b through 104d to begin executing an instance of the application in replacement of the instance being executed by the first satellite 104a.
  • the redirect message 512 may also be a directive message data structure 434, as described in conjunction with Fig. 4D.
  • the satellite 104 can send a re-registration message 514 back to the ground station 108.
  • the re-registration message 514 can be the same as or similar to the registration request data structure 426, as described in conjunction with Fig. 4C.
  • the ground station 108 can recognize that the satellite 104a is again capable of executing instance(s) the application(s).
  • the ground station 108 can send a redirect message 516 to the first satellite 104a to begin executing another instance of the application.
  • the redirect message 516 may be the same or similar to the directive message data structure 434, as described in conjunction with Fig. 4D.
  • the signals for messages provided in Fig. 5 may be sent to ground station 108 through one or more intermediary hops between satellites 104a through 104d. And, as such, even without direct contact with the ground station 108, the satellites 104 can still communicate with the ground station 108 by having messages relayed between satellites 104 through the ISL and then relayed to the ground station 108 via one of the satellites 104 that are in direct contact with the ground station 108.
  • Implementation of a method 600 for managing the execution of an application amongst one or more satellites 104 may be as shown in Fig. 6.
  • the method 600 may be described from the perspective of a load balancer processor 302 executed at a processing component of a ground station 108 or other device or component that may be executing the load balancer processor 302.
  • a general order for the steps of the method 600 is shown in FIG. 6.
  • the method 600 can start with a start operation and can end with an end operation.
  • the method 600 can include more or fewer steps or can arrange the order of the steps differently than those shown in FIG. 6.
  • the method 600 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium.
  • the method 600 can be performed by gates or circuits associated with a space-qualified and/or radiation-hardened processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system-on-chip (SOC), or other hardware device.
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • SOC system-on-chip
  • Load balancer processor 302 can receive a registration request data structure 426 from a first satellite 104a, a second satellite 104b, or other satellite 104, in stage 602.
  • the registration request may be a message 502 containing the registration request 428 contained in data structure 426.
  • the registration request message 502 can indicate, to the load balancer processor 302, that the satellite 104 is capable and ready to receive a directive to execute an instance of an application.
  • the load balancer processor 302 can then determine a load balancing scheme, in stage 604.
  • a load balancer processor 302 can access satellite state data 314 to determine the load or ability of each of the satellites 104a-104d to execute instances of applications including determining an amount of available processing cycles, memory availability, communication capability, power capability, etc.
  • the load balancer processor 302 can access application state data 312 to determine also an amount of needed processing cycles, memory usage, communication capability, power capability, etc.
  • the load balancing scheme can determine which satellites 104 may execute an instance of an application, how many instances of the application the satellite 104 may execute, the number of applications that the satellite 104 may or can execute, etc.
  • the load balancer processor 302 can determine which satellites 104 to use by the satellite ID 408 and send a directive to execute an instance of an application to those satellites 104.
  • the load balancer processor 302 can then determine the first satellite 104a, of the satellite constellation, to execute the first instance of a first application, in stage 606.
  • the load balancer processor 302 can determine the first satellite 104a is capable of executing a first instance of a first application based on the load balancing scheme. Further, the load balancer processor 302 can determine a second satellite of the satellite constellation to execute a second instance of the first application, in stage 608. Plus, the load balancer processor 302 can also determine that satellite 104b may execute the second instance of the application.
  • the above determinations can be based on the amount of time needed to execute the instance of the application compared to the amount of time the satellite may have within sunlight 110 before transitioning to darkness 112. Thus, it is determined that the power for the satellite 104 will be sustained during execution of the instance.
  • the load balancer processor 302 may then send a directive to direct the first satellite to execute the first instance the first application, in stage 610, and send a second directive to direct the second satellite to execute the second instance of the application, in stage 612.
  • the load balancer processor 302 may send the directive messages 504 to the first satellite 104a and to the second satellite 104b.
  • This directive message 504 can include the data structure 434 with the application directive 436 to assign or direct the processor of the satellite 104 to execute an instance of the application.
  • the load balancer processor 302 can store the state of the first application in a state container 310, in stage 614.
  • the load balancer processor 302 can store which satellites 104 are executing which instances and the state of those applications within the application state data 312 in state container 310.
  • the application state data can include information about inputs and outputs from the application and the current state of the application for future instances that may be executed by the satellites 104.
  • the load balancer processor 302 or satellite state processor 308 can store the state of the first satellite 104a, the second satellite 104b, and/or other satellites 104 in a state container 310, in stage 616.
  • the load balancer processor 302 can store the state(s) within the satellite state data 314.
  • the information about the instance being executed by the satellites 104 can be retrieved, and the load balancer processor 302 can store data structure 402 in the satellite state datastore 314. This information may be used then to determine which satellites 104 are executing which instances, which may be used to modify the load balancing scheme.
  • the satellite state processor 308 can store the data structure 416 in satellite state data 314. This information may indicate the state of the satellite 104 which may be directed by the load balancer processor 302.
  • the scheduler processor 304 may send an event to load balancer processor 302, which may receive the event from the scheduler processor 304, in stage 618.
  • the scheduler processor 304 can determine future events or current events that will or are occurring with the satellite 104 that maybe change states. These events can include a loss of communications, transition from sunlight to darkness that can cause a low power state or other types of events. These events may be alerted to the load balancer processor 302 for determining that an event may be occurring or will occur.
  • the load balancer processor 302 may require a change in the load balancing scheme.
  • the load balancer processor 302 or the satellite state processor 308 can receive SOH messages from the first satellite 104a, in stage 620.
  • the SOH message may be the same or similar to SOH message data structure 442, as described in conjunction with Fig. 4E.
  • the SOH messages 442 may be communicated directly from satellite 104a, or through one or more other satellites 104b through 104d, as messages 506 that can reach the ground station 108 and/or the load balancer processor 302.
  • the SOH messages 442 may describe a change in the status of the satellite 104, which may require changing the load balancing scheme.
  • the load balancer processor 302 can determine that the first satellite 104a is or will experience a change in operational circumstances, in stage 622.
  • the load balancer processor 302 can determine from the event provided by the scheduler application 304 or based on SOH information 506 that the first satellite 104a may be or will be unavailable to execute an instance of the application currently or within some period of time.
  • the load balancer processor 302 can alter the load balancing scheme, in stage 624.
  • the load balancer processor 302 may then determine a change to the balance of the load across the satellites 104 based on current availability of satellite 104a. Changing the load balancing scheme may require assigning instances of the application(s) to other satellites 104.
  • the load balancer processor 302 can determine a third satellite 104c, of the satellite constellation, to execute a third instance of the first application, in stage 626.
  • the third instance of the application may be continuation or redirection of the instance first executed or previously executed by the first satellite 104a.
  • the third instance may be a new instance of the application that continues the instance executed by the first satellite 104a or may be mutually exclusive from the execution of the first instance by the first satellite 104a.
  • the load balancer processor 302 may direct the third satellite 104c to execute the third instance of the first application, in stage 628.
  • the directive may be a redirect message to 512 or 508 that is sent with data structure 434 directing the third satellite 104c to execute a third instance of the application.
  • the third satellite may then begin executing an instance of the application.
  • the load balancer processor 302 can also direct the first satellite 104a to stop execution the first instance of the application, in stage 630.
  • the load balancer processor 302 can send message 510, including data structure 434, which directs the first satellite 104a to stop execution of the first instance the application.
  • the first satellite 104a may no longer be capable or able to execute instances the application for some period of time.
  • the load balancer processor 302 can receive a re-registration message or request from the first satellite, in stage 632.
  • the re-registration message 514 can be received by the load balancer processor 302.
  • the re registration request may include data structure 426 that requests that the first satellite 104a is available to once again execute instance(s) of one more applications.
  • the load balancer processor 302 can alter the load balancing scheme again, in stage 634.
  • the load balancing scheme can again change the number of satellites 104 available for executing instances of the application. This change in the scheme means that some instances of the application may not be assigned to other satellites 104b through 104e but rather to the first satellite 104a.
  • the load balancer processor 302 based on the load balancing scheme change, can determine the first satellite 104a is able to execute a fourth instance of the first application, in stage 636.
  • the fourth instance may be a new instance of the application that may be executed by the satellite 104a.
  • the load balancer processor 302 can direct the first satellite 104a to execute the fourth instance of the first application, in stage 638.
  • the redirect message 516 may be sent from the load balancer processor 302 to the first satellite 104a, and the redirect message 516 can include data structure 434.
  • Data structure 434 may include a directive to execute a new instance of the application by the satellite 104a.
  • the load may be balanced or changed across the satellite constellation.
  • a method 700 for executing an instance of an application by one more satellites 104 may be as shown in Fig. 7.
  • a general order for the steps of the method 700 is shown in FIG. 7.
  • the method 700 can start with a start operation and can end with an end operation.
  • the method 700 can include more or fewer steps or can arrange the order of the steps differently than those shown in FIG. 7.
  • the method 700 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method 700 can be performed by gates or circuits associated with a space-qualified and/or radiation-hardened processor, ASIC, FPGA, SOC, or other hardware device.
  • the method 700 shall be explained with reference to the systems, components, devices, modules, software, signals, data structures, interfaces, methods, etc. described in conjunction with FIGS. 1- 6 and 9-10.
  • a first satellite 104a can send a registration request to a load balancer processor 302, in stage 702.
  • the registration request message 502 may include data structure 426.
  • the message 502 may be sent from the satellite 104 to the ground station 108 or to another component executing a load balancer processor 302.
  • the load balancer processor 302 may send, and the satellite 104 can receive the directive to execute the first instance of the first application, in stage 704.
  • the directive message 504 may be received by the satellite 104a and contain a directive data structure 434.
  • the satellite processor may execute a first instance of the first application, in stage 706.
  • the processor of the satellite 104 can execute the first instance and save state data to local memory.
  • the satellite 104a may also send SOH messages 506 to the load balancer processor 302, in stage 708.
  • the SOH message 506 may include data structure 442.
  • the SOH message data structure 442 can include any type of change or possible failure of a component of the satellite 104.
  • the satellite 104 may experience a change in operational circumstances, in stage 710.
  • the change in operational circumstances can be planned, or at least predicted, such as a transition from sunlight to darkness, or may be unpredictable, for example, a failure of a component or some other operational change in satellite 104.
  • the change in operational circumstances, in stage 710 can be reported to the load balancer processor 302 as an event from a scheduler processor 304 or as SOH data 418 provided to the load balancer processor 302. If the experienced change in operational circumstances was predicted, then the satellite 104 may receive a directive to stop execution of the first instance, in stage 712.
  • the load balancer processor 302 can send the stop instance message 510 with a directive, in data structure 434, to stop executing the first instance. This change in execution may happen before or during transition from sunlight to darkness or before some other transition in operational circumstances.
  • the satellite 104 may then stop execution of the first instance, in stage 714.
  • the satellite 104 can stop executing the instances of the application and report the state to the load balancer processor 302 and application state processor 306 to store data in datastore 314.
  • the sending of directives to stop execution and stopping the execution of the instance, in stages 712 and 714, may be optional and based on whether the changes in operational circumstances can be predicted.
  • the satellite 104 can send a re-registration request to the load balancer processor 302, in stage 716.
  • the re-registration request may be message 514 and include data structure 426 requesting to register with the load balancer processor 302.
  • the re-registration request message 514 may elicit a new directive sent by the load balancer processor 302.
  • the satellite 104 can receive the directive to execute a fourth instance of the first application, in stage 718.
  • a redirect message 516 may be sent to the satellite 104 including a new directive message data structure 434, with the directive 436, which can instruct the satellite 104a to execute the fourth instance of the application.
  • satellite 104a can execute the fourth instance of the first application, in stage 720.
  • Method 800 may be from the perspective of the scheduler processor 304, which may execute at the ground station 108 or other component of the system shown in Fig. 1.
  • a general order for the steps of the method 800 is shown in FIG. 8.
  • the method 800 can start with a start operation and can end with an end operation.
  • the method 800 can include more or fewer steps or can arrange the order of the steps differently than those shown in FIG. 8.
  • the method 800 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium.
  • the method 800 can be performed by gates or circuits associated with a space-qualified and/or radiation- hardened processor, ASIC, FPGA, SOC, or other hardware device.
  • the method 800 shall be explained with reference to the systems, components, devices, modules, software, signals, data structures, interfaces, methods, etc. described in conjunction with FIGS. 1-7 and 9-10.
  • the processor 1010 can receive a registration request from satellites 104, in the satellite constellation.
  • the processor 1010 can receive a registration request message 502, which includes data structure 426, in stage 802.
  • the processor 1010 may provide the registration request to the load balancer processor 302 and/or to other processors, for example the scheduler processor 304.
  • This information and registration request may be stored in satellite state datastore 314.
  • the scheduler processor 304 can access satellite state information 314 to determine information about the satellite 104a. From the information, for example, the satellite ID 408 and other information, the scheduler processor 304 can determine orbit characteristics of the satellite 104a or satellites 104 in the constellation, in stage 804.
  • Satellite characteristics can include the orbit information, e.g., the inclination, orbit shape, sun synchro nicity, and other information about the orbit of the satellites 104. Further, the scheduler processor 304 can also determine information about the angle and position of the sun, moon, earth, and other space environment characteristics, in stage 806. The position of the sun, moon, earth, and other characteristics may be specific to each satellite 104. These different characteristics can determine such things as when the satellite 104 will enter the earth’s shadow or when the satellite 104 can possibly encounter other changes while in orbit 106.
  • the scheduler processor 304 can determine an upcoming event for first satellite, in stage 808.
  • the event can be any event that may affect the ability for the satellite 104 to execute an instance of the application.
  • the event can include entering a low-power state due to lack of sunlight on the solar array, changes in radiation that may affect the satellite 104, or other types of events.
  • An event is determined for the first satellite 104a; the scheduler processor 304 can send the upcoming event and event information to the load balancer processor 302, in stage 810.
  • the scheduler processor can send an event message to the load balancer processor 302.
  • Data structure 416 may be sent to the load balancer processor 302 that indicates a scheduled transition 420. This transition could be an event that requires the load balancer to change the load balancing scheme and redirect execution of an instance to another satellite 104.
  • a satellite 104 can have one or more satellite systems and/or subsystems 900. These systems 900 can include one or more of, but are not limited to: a structural/thermal system(s) 912, the payload(s) (e.g., sensors and devices) 914, a propulsion system(s) 906, an attitude control systems(s) 908, a power system(s) 904, a processing system(s) 910, and/or a communication system(s) 902.
  • a structural/thermal system(s) 912 the payload(s) (e.g., sensors and devices) 914, a propulsion system(s) 906, an attitude control systems(s) 908, a power system(s) 904, a processing system(s) 910, and/or a communication system(s) 902.
  • the structural system 912 can be the materials and structures that give the satellite 104 shape, secure all sub-systems and other components, and provide protection from mechanical stresses during launch and on orbit, protect from radiation, and minimize vibration.
  • the thermal control system (TCS) 912 can keep satellite systems within acceptable temperature ranges.
  • the TCS 912 can eject heat passively through the radiation of the satellite or through more active systems, e.g., an infrared radiation coil.
  • the attitude control systems(s) (ACS) 908 can include a telemetry subsystem (e.g., Command and Data Handling, C&DH) that can monitor satellite operations, can transmit telemetry data to the ground station 108, and can receive commands, from the ground station 108, to perform operations, equipment adjustments, etc. Further, the ACS 908 can comprise sensors to determine satellite orientation. The ACS 908 can control operations in the flight software, activate actuators (e.g., reaction wheels, thrusters), and conduct other maneuvers. The actuators can apply forces to re-orient the satellite 104 to a desired altitude/attitude, keep the satellite in the correct orbital position, and keep antennas pointed in the right directions.
  • a telemetry subsystem e.g., Command and Data Handling, C&DH
  • C&DH Command and Data Handling
  • the ACS 908 can comprise sensors to determine satellite orientation.
  • the ACS 908 can control operations in the flight software, activate actuators (e.g., reaction wheels, thrusters), and conduct other maneuver
  • the power system(s) 904 can be the components and systems that supply power to the other components of the satellite 104.
  • the power system 904 can include solar panels to convert solar energy into electrical power, power electronics to regulate power distribution lunctions, and batteries that store power and supply power to the satellite 104 when the satellite 104 passes into and through the earth's shadow.
  • the communication system(s) 902 can include any Radio Frequency (RF) hardware, radio components, multiplexers, ISL, etc. to communicate with other satellites 104 or with the ground station 108.
  • the communication system(s) 902 can include transponders capable of: receiving uplink radio signals from the ground station 108, amplify received radio signals, sort the input signals, direct the output signals to the downlink antennas for transmission to the ground station 108, etc.
  • the payload(s) can be any sensor, component, system, or object being carried by the satellite 104.
  • the payload 914 can provide data for the user of the satellite 104 and may not contribute to the operation of the other systems of the satellite 104.
  • the propulsion system(s) 906 can be any subsystem or component used in the vacuum of space to change the orbit of the satellite 104. Several methods of propulsion system(s) 906 can be used, including chemical thrusters (often monopropellant rockets) or resistojet rockets for orbital station-keeping, momentum wheels for attitude control, electric propulsion (e.g., ion thrusters and Hall-effect thrusters), etc. Some the propulsion system(s) 906 may be shared with the ACS 908.
  • the processing system 910 can include any hardware and/or software to conduct operations, as described herein, in accordance with aspects of the present disclosure.
  • the processing 910 may be as described in conjunction with Figs. 9 and 10.
  • Interconnected to the processing system 910 may be one or more datastores 310-314, the payload sensors and devices 914, the propulsion system 906, the attitude control systems(s) 908, the power system(s) 904 and/or the communication system(s) 902, which have been previously described.
  • Fig. 10 illustrates one configuration of a processing system 910 upon which the satellites 104, ground station 108, or other systems or components described above may be deployed or executed.
  • the processing system 910 is shown comprising hardware elements that may be electrically coupled via an electrical or communication bus 1014.
  • the hardware elements may include one or more central processing units (CPUs) 1002; one or more input devices 1004 (e.g., a mouse, a keyboard, etc., if a ground station computing system); and one or more output devices 1006 (e.g., a display device, a printer, etc., if a ground station computing system).
  • the processing system 910 may also include one or more storage devices 1008.
  • storage device(s) 1008 may be disk drives, optical storage devices, solid-state storage devices such as a random access memory (“RAM”) and/or a read- only memory (“ROM”), which can be programmable, flash updateable and/or the like.
  • RAM random access memory
  • ROM read- only memory
  • the processing system 910 may additionally include a computer-readable storage media/reader; a communications system (e.g., an antenna, Radio Frequency hardware, a multiplexer, a radio, an ISL, etc.); and working memory 1012, which may include RAM and ROM devices as described above.
  • the processing system 910 may also include a processing acceleration unit, which can include a digital signal processor (DSP), a special-purpose processor, and /or the like.
  • DSP digital signal processor
  • the computer-readable storage media /reader can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s) 1008) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information.
  • the communications system 902 may permit data to be exchanged with a satellite network and/or any other satellite or ground system computer described above with respect to the computer environments described herein.
  • the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.
  • the processing system 910 may also comprise software elements, which may be located within a working memory 1012, including an operating system and/or other code. It should be appreciated that alternate embodiments of a processing system 910 may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed.
  • Examples of the CPU(s) 1002 and/or processors 1010 as described herein may include, but are not limited to, at least one of Qualcomm® Qualcomm® Qualcomm® Snap dragon® 620 and 615 with 4G LTE Integration and 64-bit computing, Apple® A7 processor with 64-bit architecture, Apple® M7 motion coprocessors, Samsung® Exynos® series, the Intel® Core® family of processors, the Intel® Xeon® family of processors, the Intel® Atom® family of processors, the Intel Itanium® family of processors, Intel® Core® i5-4670K and G7-4770K 22 nm Haswell, Intel® Core® i5-3570K 22nm Ivy Bridge, the AMD® FX® family of processors, AMD® FX -4300, FX -6300, and FX-8350 32nm Vishera, AMD® Kaveri processors, other hardened or space-qualified processors, and may perform computational functions using any known or future-developed standard, instruction set, libraries
  • the processing function 910 (of the satellite 104) can execute instances for several applications 1016, 1018, and/or 120.
  • the processing function 910 can also executes one or more instances of each application 1016, 1018, and/or 120.
  • the processing function 910 can execute instances 1016a, 1016b, and/or 1016n of the application 1016.
  • the processing function 910 can execute instances 1018a, 1018b, and/or 1018n of the application 1018, and the processing function 910 can execute instances 1020a, 1020b, and/or 1020n of the application 1020.
  • the load balancing scheme can balance the execution of several instances of several applications across several satellites 104.
  • a user may wish to detect the presence of some type of object within an area of interest 204.
  • the user may wish to detect the presence of an unauthorized fishing vessel within coastal waters in area 204.
  • the area of regard 202 of the satellite 104 may traverse the area of interest 204, and the area of regard 202 may cover a portion or all of the area of interest 204.
  • the satellite 104 may produce an image of the area of coverage 206. This image may then be processed by an artificial intelligence (AI) model (e.g., a machine learning model (MLL)) that may look for the object, e.g., a fishing vessel (for example, a vessel with rigging arms extended to deploy a net).
  • AI artificial intelligence
  • MLL machine learning model
  • the processing of these images can be data intensive. Thus, relaying those images to a ground station 108 may be prohibitive, due to unavailability or the lack of bandwidth of the downlink. Plus, the satellite 104 may execute the AI model at the satellite 104 or may send an image to one or more other satellites 104 to execute an instance of the AI model to detect the object.
  • the satellite network 100 can operate as a large source of processing cycles to execute instances of the AI model.
  • the images need not be sent to the ground station 108 unless an object is detected by one of the instances the AI model executed in the satellite network 100.
  • the satellite network 100 can also process crypto-currency or other non-fungible tokens.
  • the processing cycles of the network are more ubiquitous for crypto-currency processing, and instances of the crypto-currency processing may be shared amongst the satellites 104 when those satellites 104 travel into darkness.
  • the processing within the satellite network 100 eliminates the need for sending data through a downlink that may be unavailable, depending on the orbit of the satellite 104, or may be bandwidth limited. Further, the satellites 104 have a great source of sunlight that has great availability and can power the processors used for the various applications. Further, the processing of data within a satellite network 100 can be performed for the satellite 104 for other satellites, which are not part of the satellite network 100 but can may communicate with the satellite network 100. Thus, various components of satellite network 100 can provide near-instantaneous access to a substantial number of computing cycles for space or other missions. The access to the satellite network 100 is also not limited based on geography or national boundaries.
  • the exemplary configurations illustrated herein show the various components of the system collocated, certain components of the system can be located remotely, at distant portions of a distributed satellite network, such as a LAN and/or the Internet, or within a dedicated system.
  • a distributed satellite network such as a LAN and/or the Internet
  • the components of the system can be combined into one or more devices, or collocated on a particular node of a distributed network. It will be appreciated from the preceding description, and for reasons of computational efficiency, that the components of the system can be arranged at any location within a distributed network of components without affecting the operation of the system.
  • the various links connecting the elements can be wireless links (e.g., laser or RF links), or any other known or later developed element(s) that is capable of supplying and/or communicating data to and from the connected elements. These links can also be secure links and may be capable of communicating encrypted information.
  • Transmission media used as links can be any suitable carrier for electrical signals, and may take the form of light waves, such as those generated during radio-wave and infra-red data communications.
  • the systems and methods of this disclosure can be implemented in conjunction with a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital signal processor, a hard -wired electronic or logic circuit such as discrete element circuit, a programmable logic device or gate array such as PLD, PLA, FPGA, PAL, special purpose computer, any comparable means, or the like.
  • any device(s) or means capable of implementing the methodology illustrated herein can be used to implement the various aspects of this disclosure. Some of these devices include processors (e.g., a single or multiple microprocessors), memory, nonvolatile storage, input devices, and output devices.
  • alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.
  • the disclosed methods may be readily implemented in conjunction with software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation platforms.
  • the disclosed system may be implemented partially or fully in hardware using standard logic circuits or VLSI design. Whether software or hardware is used to implement the systems in accordance with this disclosure is dependent on the speed and/or efficiency requirements of the system, the particular function, and the particular software or hardware systems or microprocessor or microcomputer systems being utilized.
  • the disclosed methods may be partially implemented in software that can be stored on a storage medium, executed on programmed general purpose computer with the cooperation of a controller and memory, a special purpose computer, a microprocessor, or the like.
  • the systems and methods of this disclosure can be implemented as a program embedded on a personal computer such as an applet, JAVA® or CGI script, as a resource residing on a server or computer workstation, as a routine embedded in a dedicated measurement system, system component, or the like.
  • the system can also be implemented by physically incorporating the system and /or method into a software and/or hardware system.
  • the present disclosure in various embodiments, configurations, and aspects, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, sub combinations, and subsets thereof. Those of skill in the art will understand how to make and use the systems and methods disclosed herein after understanding the present disclosure.
  • the present disclosure in various embodiments, configurations, and aspects, includes providing devices and processes in the absence of items not depicted and/or described herein in various embodiments, configurations, or aspects hereof, including in the absence of such items as may have been used in previous devices or processes, e.g., for improving performance,
  • phrases “at least one, ‘one or more,” “or,” and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation.
  • aspects of the present disclosure may take the form of an configuration that is entirely hardware, an configuration that is entirely software (including firmware, resident software, micro -code, etc.) or an configuration combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Any combination of one or more computer-readable medium(s) may be utilized.
  • the computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium.
  • a computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non -exhaustive list) of the computer -readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD -ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
  • a computer-readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
  • An aspect of the present disclosure comprises a method comprising: determining a first satellite, of a satellite constellation, to execute a first instance of a first application; determining a second satellite, of the satellite constellation, to execute a second instance of the first application; executing, by the first satellite, the first instance of the first application; executing, by the second satellite, the second instance of the first application; experiencing, by the first satellite, a change in operational circumstances; based on the change in operational circumstances of the first satellite, determining a third satellite, of the satellite constellation, to execute a third instance of the first application; and executing, by the third satellite, the third instance of the first application.
  • any of the one or more above aspects, wherein the change in operational circumstances comprises one or more of a failover event, a transition to a lower power state, and/or a change in state of health.
  • Any of the one or more above aspects further comprising: stopping execution of the first instance of the first application based on the change in operational circumstances.
  • a load balancer determines the first satellite, from the satellite constellation, to execute the first instance of a first application and the second satellite, from the satellite constellation, to execute the second instance of the first application based on a load balancing scheme.
  • Any of the one or more above aspects further comprising: sending, by the first satellite, a registration request to the load balancer to receive instance of an application for execution.
  • any of the one or more above aspects further comprising: sending, by the first satellite, a state of health message that indicates that the first satellite is experiencing the change in operational circumstances.
  • state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
  • An aspect of the present disclosure comprises a satellite comprising: a memory; and a processor in communication with the memory, the processor to: receive a first directive to execute an instance of a first application; execute the instance of the first application; receiving a second directive to stop executing the instance of the first application, based on a change in operational circumstances that will occur; experiencing the change in operational circumstances; and after the change in operational circumstances, send a registration request to again execute an instance of the first application.
  • the processor farther to send a state of health message that indicates that the satellite is experiencing the change in operational circumstances.
  • the state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
  • An aspect of the present disclosure comprises a satellite network comprising: a first satellite, of a satellite constellation, operable to execute a first instance of a first application; a second satellite, of the satellite constellation, operable to execute a second instance of the first application; a third satellite, of the satellite constellation, operable to execute a third instance of the first application; a load balancer in communication with the first satellite and the second satellite, the load balancer operable to: direct the first satellite to execute the first instance of the first application; direct the second satellite to execute the second instance of the first application; determine that the first satellite is experiencing a change in operational circumstances; based on the change in operational circumstances of the first satellite, determine a third satellite, of the satellite constellation, to execute a third instance of the first application; and direct the third satellite to execute a third instance of the first application.
  • any of the one or more above aspects, wherein the change in operational circumstances comprises one or more of a failover event, a transition to a lower power state, and/or a change in state of health.
  • the load balancer further to direct the first satellite to stop execution of the first instance of the first application based on the change in operational circumstances.
  • any of the one or more above aspects wherein the scheduler sends a message to the load balancer to stop the execution of the first instance.
  • the load balancer directs the first satellite to stop executing the first instance of the first application after the first satellite has already transitioned to darkness.
  • the load balancer directs the third satellite to start execution of the third instance before the third satellite leaves darkness into sunlight.
  • load balancer determines a processing load for the first satellite and the satellite constellation.
  • any of the one or more above aspects further comprising the first satellite to send a registration request to the load balancer to receive an instance of an application for execution.
  • any of the one or more above aspects further comprising the first satellite to send a state of health message that indicates that the first satellite is experiencing the change in operational circumstances.
  • state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
  • any of the one or more above aspects further comprising a processor at a ground station to execute the load balancer.
  • a radiation-hardened processor for any of the one or more above aspects.

Abstract

A load balancer can determine a first satellite, of a satellite constellation, to execute a first instance of a first application, and can determine a second satellite, of the satellite constellation, to execute a second instance of the first application. The first satellite can execute the first instance of the first application, and the second satellite can execute the second instance of the first application. At some time thereinafter, the first satellite can experience a change in operational circumstances, for example, a transition from sunlight to darkness that causes a lower power state. Based on the change in operational circumstances of the first satellite, the load balancer can transition the execution of the first application from the first satellite to a third satellite. Thus, the load balancer may determine a third satellite, of the satellite constellation, to execute a third instance of the first application, and the third satellite can execute the third instance of the first application.

Description

DISTRIBUTED PROCESSING IN A SATELLITE NETWORK BASED ON SATELLITE CHARACTERISTICS
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority in U.S. Patent Application Serial No. 63/193,055, filed May 25, 2021, the contents of which are hereby incorporated by reference.
BACKGROUND
[0002] In some missions, conducted from space by one or more satellites, there can be massive amounts of data to be processed. However, the processing of this data may be hampered by the availability of or the bandwidth associated with the downlink from the satellite(s). In some situations, the mission can be jeopardized by the inability to process the data on-time or completely.
SUMMARY
[0003] Aspects of the present disclosure can include a method where a load balancer can determine a first satellite, of a satellite constellation, to execute a first instance of a first application. The load balancer may also determine a second satellite, of the satellite constellation, to execute a second instance of the first application. The first satellite can execute the first instance of the first application, and the second satellite can execute the second instance of the first application. At some time thereinafter, the first satellite can experience a change in operational circumstances, for example, a transition from sunlight to darkness that causes a lower power state. Based on the change in operational circumstances of the first satellite, the load balancer can transition the execution of the first application from the first satellite to a third satellite. Thus, the load balancer may determine a third satellite, of the satellite constellation, to execute a third instance of the first application, and the third satellite can execute the third instance of the first application.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] The present disclosed subject matter is described herein with reference to the following drawing figures, with greater emphasis being placed on clarity rather than scale:
[0005] Fig. 1 is a three-dimensional view of the earth with one or more satellites orbiting the earth in accordance with aspects of the present disclosure;
[0006] Fig. 2 is a view of a coverage area of a satellite orbiting about the earth in accordance with aspects of the present disclosure;
[0007] Fig. 3 is a block diagram of a processing system of a satellite (and/or ground station of the ground segment) in accordance with aspects of the present disclosure;
10008] Fig. 4 A is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure;
[0009] Fig. 4B is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure;
[0010] Fig. 4C is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure;
[0011] Fig. 4D is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure;
[0012] Fig. 4E is a data structure diagram of data that may be stored, retrieved, or communicated within, to, or from the aspects described herein in accordance with aspects of the present disclosure;
[0013] Fig. 5 is a communication diagram (e.g., a signpost diagram) showing communications in the system/methods in accordance with aspects of the present disclosure;
[0014] Fig. 6A is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure;
[0015] Fig. 6B is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure;
[0016] Fig. 7 is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure;
[0017] Fig. 8 is a process diagram of a method for distributing processing in a satellite constellation in accordance with aspects of the present disclosure;
10018] Fig. 9 is a block diagram of possible satellite systems in accordance with aspects of the present disclosure;
[0019] Fig. 10 is a block diagram of possible processing system of a satellite in accordance with aspects of the present disclosure.
DETAILED DESCRIPTION
[0020] Certain terminology will be used in the following description for convenience in reference only and will not be limiting. For example, up, down, top, bottom, front, back, rear, right, left, forward, rearward, upward, and downward refer to the disclosed subject matter as orientated in the view being referred to, or in reference to such terminology designating the characteristics of an assembly as described in this description. Such terminology will include the words specifically mentioned, derivatives thereof, and words of similar meaning.
[0021] An environment can include a system 100, which may conduct methods that may operate in the environment. The environment and the system 100 may be as shown in Fig. 1. The environment can include the earth 102 and the space surrounding the earth 102, which may include a satellite constellation, which is a group of two or more satellites 104a through 104d. If the satellite constellation is interconnected and may operate in concert (as described herein), the satellite constellation may be referred to as a satellite network 100. The satellites 104 may travel around the earth 102 along an orbit 106a- 106d. The orbits 106 may be Low Earth Orbits (LEOs), Medium Earth Orbits (MEOs), or some other type of orbit around the earth 102. The satellite 104 may communicate, with the other satellites 104, via one or more Inter- Satellite Link (ISL) or can communicate with one or more ground station(s) 108. In some situations, the orbit 106 of the satellite 104 may cause the satellite 104 to move from an area of sunshine 110 (sunlight) to an area of darkness 112, e.g., in the earth’s shadow (night). In areas of darkness 112, the satellite 104 may enter a low-power state where the solar arrays of the satellites 104 may receive less power or may not receive any power while in darkness.
[0022] Satellite 104 can be any type of man-made spacecraft that is placed into orbit 106 by a rocket. The satellite 104 may have one or more systems as described in conjunction with Fig. 9. One system may be a processing system 1010, which may be further described in Fig. 10. These systems allow the satellite 104 to conduct some type of operation or mission while in orbit 106.
[0023] The satellites 104a through 104d can communicate with each other through a laser ISL or other types of communication medium and may communicate with the ground station 108 through a Radio Frequency (RF) or other type of communication medium.
[0024] Another environment 200 in which the satellite(s) 104 may operate may be as shown in Fig. 2. A sensor on satellite 104 may have an area of regard 202. The area of regard 202 can be the extents of the sensors ability to detect information or capture other readings from the surface of the earth 102. An application or mission of one of the satellites 104 may have an area of interest 204. The area of interest may be a portion of the earth 102 to which detection by some sensor is desired. This area of interest 204, can be over water, land, or any other part of the earth 102. An area of coverage 206 (e.g., the shaded area in Fig. 2) may be the portion of the area of interest 204 that is also covered by the area of regard 202. This area of coverage 206 represents where the sensors can detect information within the area of interest 204.
[0025] A satellite 104 (and/or the ground station 108 or other component of the ground segment) may have various systems as described in conjunction with Figs. 9 and 10. The processing system 1010 of Fig. 10 can include one or more hardware and or software processors, as may be shown in Fig. 3. For example, the processor 1010 can include a load balancer processor 302 (also referred to simply as a load balancer), a scheduler processor 304 (also referred to simply as a scheduler), an application state processor 306, and/or a satellite state processor 308. Further, the processing system 1010 can include a memory 1012, which may include one or more datastores 312, 314. For example, the memory 1012 can include state containers 310, which can save data about the application state 312 and/or the satellite state 314. The processors 302-308 and state containers 310 may execute in the ground segment (e.g., in the ground station 108), in a satellite 104, or in another component.
[0026] The load balancer processor 302 can be the hardware and/or software related to balancing the load of executing application instances across one or more satellites 104a- 104d. The load balancer processor 302 can determine the number of instances and/or the number of processing cycles used by the application within each satellite 104. An instance of an application is a portion or a single copy of the software running on a single processor 1010. In object-oriented code, an instance is a specific realization of any object. The application can be any software of computer program designed to carry out a specific task other than one relating to the operation of the computer itself. In some configurations, the load balancer processor 302 can have one more instances start in the first satellite 104a and one or more other instances start in satellite 104b, etc. The load balancer processor 302 can also begin execution of an application by the satellite 104, stop execution at a satellite 104, etc. The load balancer processor 302 may send directions or directives and receive information from the various satellites 104, as described in conjunction with Figs. 4A through 4E.
[0027] Scheduler processor 304 can determine orbit characteristics for one or more satellite(s) in one or more orbits 106. Further, the scheduler processor 304 can also determine information about other celestial bodies, for example, the earth 102, the sun, the moon, etc. The scheduler processor 304 can then determine events that may occur to the satellites 104. For example, the scheduler processor 304 can determine when satellite 104c moves from sunlight 110 into darkness 112 and then enters a lower power state. Scheduler processor 304 can also determine a time for events or can determine other transitions for the satellites 104.
[0028] The application state processor 306 can receive and store the application state in applications state datastore 312. In some configurations, the application executed by the one or more processors of the satellite 104 can be stateless. In other implementations, the application may be stateful and the application state may be stored in a state container 310, for example, application state 312. The application state processor 306 can receive the state from applications executed on satellites 104 and provide that state to one or more other satellites 104 or other processes based on processing requirements.
[0029] Satellite state processor 308 can receive, store, and provide the satellite state data 314 in state container 310. The satellite state information 314 can be provided to the load balancer processor 302 to determine how to properly load the application instances across the satellite constellation. For example, if a satellite’s state changes and the satellite becomes unable to perform the required operations, the satellite state processor 308 can inform the load balancer processor 302 that that satellite has experienced a change in operational circumstances, for example, a failover event of one or more components (e.g., the satellite stops executing properly), and must stop execution of the instance of the application and that instance may need to be moved to a different satellite 104. Other changes in the operational circumstances can include one or more of, but is not limited to, a transition to a low power state, a change in the State Of Health (SOH), etc. A change in the SOH can include one or more of, but is not limited to, an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the satellite, a change in attitude control, etc.
[0030] State container 310 may be any type of state container, for example, Kubernetes or other similar application state container 310 can store the state and provide that state as needed. The state is the current condition of the application or instance (e.g., represents the totality of everything necessary to keep the application running). The state container 310 can include the application state 312 and satellite state 314. The changes to the states of the application(s) or satellite(s) can change the state container 310 and can change the data within those state stores 312 and 314.
[0031] Implementations of one or more messages, signals, data structures, etc. 400 that may be sent, received, or stored in conjunction with the configurations described herein, may be as shown in Figs. 402-442. The implementations can have different datastores or data structures 402, 416, 426, 434, and 442, but may be collectively described as data signals, messages, etc., 400. The various data structures may have one or more identifiers (IDs) associated with one or more components or structures of the system 100, as described herein. For example, there may be an application identifier 404, an instance identifier 406, a satellite identifier 408, or other types of identifiers. Each of these IDs 404-408 can be a numeric, alphanumeric, Globally Unique Identifier (GUID), a registration number, a serial number, or other types of identifiers. These identifiers 404- 408 may uniquely identify the component, to which the ID 404-408 is associated, compared to other similar components within the system 100. The application ID 404 uniquely identifies the application to be executed by the satellite 104. The instance ID 406 is an identifier of the instance of the application, identified by application ID 404. The satellite ID 408 identifies which satellite 104a-104d will execute the instance, identified by ID 406. IDs 404 through 408 will not be explained further hereinafter. [0032] The data structure 402 may comprise stored data, which identifies which satellite 104 is executing which instance of which application. The data structure 402 may comprise the application ID 404, the instance ID 406, and the satellite ID 408. Thus, data structure 402 stores the arrangement of how the satellite constellation can execute the various instances of the various applications and records the load balancing scheme.
[0033] In some implementations, the application executed by the satellites 104 may include state data. The application state data 410 may be extracted from application state information 314 and stored with data structure 402. The data in data structure 402 may have more or fewer fields than that shown in Fig. 4, as represented by ellipses 412. Each satellite 104/application directive sent to a satellite 104 to execute an instance of an application may have a different date structure 402, as represented by ellipses 414.
[0034] Data structure 416 can represent information stored about what each satellite 104 is currently executing and the state of application/satellite 104. Data structure 416 may represent what is stored in the application state data 312 or the satellite state data 314. Data structure 416 can include one or more IDs 404, 406, and/or 408. Further, the application state 410 (describing a state of the application processing), as described in conjunction with Fig. 3, may be stored as data structure 416. SOH data 418 can include any type of data about the state of the satellite 104 that may be stored as satellite state data 314. The SOH data 418 can include data as a snapshot of the telemetry from the satellite systems, trends or changes in satellite operation over time, different alerts regarding satellite operation, etc.
10035] The scheduled transitions 420 can be the events/transitions, which may be known by the scheduler processor 304, and when those events may occur. The scheduled transitions 420 can include transitions from sunlight to darkness, predictable loss of communication, or other types of events that may be known to occur or that will occur at some time in the future. This scheduled transitions information 420 can be stored for the load balancer processor 302 to transition instances of the application to other satellites. There may be more or few fields within data structure 416, as represented by ellipses 422. Further, each satellite 104 may have a different data structure 416, as represented by ellipses 424. [0036] When a satellite 104 becomes available to execute an instance of an application, the satellite 104 may send a registration request to the load balancer 302. The registration request may be data structure 426. The registration request can include the satellites ID 408. Further, the registration request 428 may be provided within data structure 426, acknowledging that the satellite 104 may be available for executing an instance of the application. Satellite 104 may also send SOH information 418, which may be some indication that the satellite is performing well enough to execute an instance of the application. The SOH 418 can be sent to another satellite 104 or to the ground station 108, or wherever the load balance processor 302 is executing. The SOH 418 can indicate to the load balance processor 302 weather the satellite 104 would be capable of executing instance(s) of the application(s), how many instances, and how to use the satellite 104 in the load balancing scheme.
|0037] The scheduled transitions information 420, for the satellite 104, may also be provided to load balancer processor 302. The scheduled transitions 420 may be the same or similar to the transitions described in conjunction with Fig. 4B. There may be more or fewer fields in the registration request data structure 426, as represented by ellipses 430. Each satellite 104 can send the registration request data structure 426 when available, which means that the registration request data structure 426 may be sent multiple times, as represented by ellipses 432.
[0038] The load balancer processor 302 can send directives to the satellites for starting execution of an application instance, pausing the execution of an application instance, stopping execution of the application instance, or conducting other operations. The data structure 434 represents a directive. The directive message data structure 434 may include one or more IDs 404- 408. These IDs 404-408 have been explained previously in conjunction with Fig. 4A and need not be explained farther here. The directive may also include the application state 410, which was explained in conjunction with Fig. 4B and will not be explained further here. The application state 410 provides state data about the instance of the application to the satellite 104 if the application has states.
[0039] The application directive 436 represents what is required by the satellite 104. The satellite 104 may be directed to begin execution of an instance of the application, to stop execution of an instance of an application, or to conduct some other operation. The directive 436 can indicate to the satellite 104 to stop or start the execution of the instance based on the satellite’s SOH, based on changing operational conditions of the satellite 104, based on a transition, whether scheduled or not, or based on other factors. The directive 436 may also prescribe time periods to which to conduct or to stop executing instances of an application. For example, the application directive 436 may allow execution of the instance of the application while the satellite transitions into darkness 112, but only for certain amount of time or power usage (e.g., 10 minutes, or 5% power drain). Similarly, the application directive 436 may direct a satellite 104, which is currently in darkness 112, to begin executing an application instance in anticipation of that satellite 104 transitioning into sunlight. The directive message data structure 434 may have fewer or more fields than that shown in Fig. 4D, as represented by ellipses 438. Every directive 436 produced by the load balancer 302 may include a directive message data structure 434, as represented by ellipses 440.
[0040] An example of a SOH message data structure 442 may be as shown in Fig. 4E. The SOH message data structure 442 may include the satellite ID 408, identifying which satellite 104 is sending the SOH message data structure 442. The SOH message data structure 442 may include SOH information 418. The SOH information 418 may include a portion or all the telemetry indicating the functioning of the satellite 104. In other implementations, the SOH information 418 can include the one or more items of telemetry that have crossed some threshold and indicate a condition that may cause the satellite 104 to cease functioning properly. In other implementations, the SOH information 418 can indicate if the satellite is still operating properly, and can include a single bit or other small item of data indicating that the satellite 104 is operating within parameters. The SOH message data structure 442 can include more or fewer fields than that shown in Fig. 4E, as represented by ellipses 444. The SOH message data structure 442 may be polled by the load balancer 302 or the satellite state processor 308 or may be pushed by the satellite 104. Other implementations allow for the SOH message data structure 442 to be relayed among other satellites 104 to the satellite state processor 308.
[0041] An implementation of communications 500 between various components of the system 100 or satellite network may be shown in Fig. 5. The communications 500 may be provided from a first satellite 104a, to load balancer processor 302 or other processors 1010, which may be executing at a ground station 108 or in some other location. Further, the satellite 104a may communicate with one or more other satellites 104b through 104d. The other satellites 104b through 104d may also communicate with the ground station 108 processing functions 1010, which may also execute in other locations. The following messages 502-516 may be sent and/or received by one or more communication systems described hereinafter.
[0042] A first message 502 may be a registration request 426 to the ground station 108 or to where the load balancer processor 302 is being executed. This registration request message 502 may be the same or similar to registration request data structure 426, described in conjunction with 4C. In response, the ground station 108 may send a directive message 504 back to the first satellite 104a. The directive 504 can include the message 434, as described in conjunction with Fig. 4D.
100431 The first satellite 104a and other satellites 104b through 104n may send/receive SOH messages 506a, 506b, either with each other or with the ground station 108. The SOH messages 506 may be the same or similar to SOH message data structure 442, described in conjunction with Fig. 4E.
[0044] In some optional situations or implementations, the SOH message 506 may indicate, to the ground station 108, that the satellite 104a is not functioning properly. As such, the ground station 108 may send a redirect message 508 to one of the other satellites 104b through 104d to take over executing the instance of the application. The redirect message 508 may be a directive message data structure 434, as described in conjunction with Fig. 4D.
[0045] In other configurations, the satellite 104a may be experiencing some sort of change in operational circumstances, for example, a transition to a low-power state caused by the orbit moving to a state of darkness. In these instances, the load balancer 302 can send message 510 to stop execution of the instance at the first satellite 104a. The stop directive can be a directive 436 and can be the same or similar to message 434, as described in conjunction with Fig. 4D. The stop directive 436 can direct the first satellite 104 to stop executing the instance of the application. Concurrently, the ground station 108 can send a directive message 512 to one of the other satellites 104b through 104d to begin executing an instance of the application in replacement of the instance being executed by the first satellite 104a. The redirect message 512 may also be a directive message data structure 434, as described in conjunction with Fig. 4D.
[0046] After the first satellite 104a changes or experiences a change in operational circumstances, for example, transitioning into darkness, that satellite 104a maybe unable to execute an instance of the application for some period of time. After the period of time, satellite 104a may again transition back to a state where the satellite 104a can execute another instance of the application. Optionally, the satellite 104 can send a re-registration message 514 back to the ground station 108. The re-registration message 514 can be the same as or similar to the registration request data structure 426, as described in conjunction with Fig. 4C. In response to the re-registration message 514, the ground station 108 can recognize that the satellite 104a is again capable of executing instance(s) the application(s). As such, the ground station 108 can send a redirect message 516 to the first satellite 104a to begin executing another instance of the application. The redirect message 516 may be the same or similar to the directive message data structure 434, as described in conjunction with Fig. 4D.
[0047] The signals for messages provided in Fig. 5 may be sent to ground station 108 through one or more intermediary hops between satellites 104a through 104d. And, as such, even without direct contact with the ground station 108, the satellites 104 can still communicate with the ground station 108 by having messages relayed between satellites 104 through the ISL and then relayed to the ground station 108 via one of the satellites 104 that are in direct contact with the ground station 108.
[0048] Implementation of a method 600 for managing the execution of an application amongst one or more satellites 104 may be as shown in Fig. 6. The method 600 may be described from the perspective of a load balancer processor 302 executed at a processing component of a ground station 108 or other device or component that may be executing the load balancer processor 302. A general order for the steps of the method 600 is shown in FIG. 6. Generally, the method 600 can start with a start operation and can end with an end operation. The method 600 can include more or fewer steps or can arrange the order of the steps differently than those shown in FIG. 6. The method 600 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method 600 can be performed by gates or circuits associated with a space-qualified and/or radiation-hardened processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), system-on-chip (SOC), or other hardware device. Hereinafter, the method 600 shall be explained with reference to the systems, components, devices, modules, software, signals, data structures, interfaces, methods, etc. described in conjunction with FIGS. 1- 5 and 7-10.
[0049] Load balancer processor 302 can receive a registration request data structure 426 from a first satellite 104a, a second satellite 104b, or other satellite 104, in stage 602. The registration request may be a message 502 containing the registration request 428 contained in data structure 426. The registration request message 502 can indicate, to the load balancer processor 302, that the satellite 104 is capable and ready to receive a directive to execute an instance of an application.
[0050] The load balancer processor 302 can then determine a load balancing scheme, in stage 604. A load balancer processor 302 can access satellite state data 314 to determine the load or ability of each of the satellites 104a-104d to execute instances of applications including determining an amount of available processing cycles, memory availability, communication capability, power capability, etc. Also, the load balancer processor 302 can access application state data 312 to determine also an amount of needed processing cycles, memory usage, communication capability, power capability, etc. Based on the needs and the availability of the satellites 104, the load balancing scheme can determine which satellites 104 may execute an instance of an application, how many instances of the application the satellite 104 may execute, the number of applications that the satellite 104 may or can execute, etc. Based on the load balancing scheme, the load balancer processor 302 can determine which satellites 104 to use by the satellite ID 408 and send a directive to execute an instance of an application to those satellites 104.
[0051] The load balancer processor 302 can then determine the first satellite 104a, of the satellite constellation, to execute the first instance of a first application, in stage 606. The load balancer processor 302 can determine the first satellite 104a is capable of executing a first instance of a first application based on the load balancing scheme. Further, the load balancer processor 302 can determine a second satellite of the satellite constellation to execute a second instance of the first application, in stage 608. Plus, the load balancer processor 302 can also determine that satellite 104b may execute the second instance of the application. Among other factors, the above determinations can be based on the amount of time needed to execute the instance of the application compared to the amount of time the satellite may have within sunlight 110 before transitioning to darkness 112. Thus, it is determined that the power for the satellite 104 will be sustained during execution of the instance.
[0052] The load balancer processor 302 may then send a directive to direct the first satellite to execute the first instance the first application, in stage 610, and send a second directive to direct the second satellite to execute the second instance of the application, in stage 612. The load balancer processor 302 may send the directive messages 504 to the first satellite 104a and to the second satellite 104b. This directive message 504 can include the data structure 434 with the application directive 436 to assign or direct the processor of the satellite 104 to execute an instance of the application.
[0053] Optionally, the load balancer processor 302 can store the state of the first application in a state container 310, in stage 614. The load balancer processor 302 can store which satellites 104 are executing which instances and the state of those applications within the application state data 312 in state container 310. The application state data can include information about inputs and outputs from the application and the current state of the application for future instances that may be executed by the satellites 104.
[0054] Further, the load balancer processor 302 or satellite state processor 308 can store the state of the first satellite 104a, the second satellite 104b, and/or other satellites 104 in a state container 310, in stage 616. The load balancer processor 302 can store the state(s) within the satellite state data 314. The information about the instance being executed by the satellites 104 can be retrieved, and the load balancer processor 302 can store data structure 402 in the satellite state datastore 314. This information may be used then to determine which satellites 104 are executing which instances, which may be used to modify the load balancing scheme. The satellite state processor 308 can store the data structure 416 in satellite state data 314. This information may indicate the state of the satellite 104 which may be directed by the load balancer processor 302.
[0055] The scheduler processor 304 may send an event to load balancer processor 302, which may receive the event from the scheduler processor 304, in stage 618. The scheduler processor 304 can determine future events or current events that will or are occurring with the satellite 104 that maybe change states. These events can include a loss of communications, transition from sunlight to darkness that can cause a low power state or other types of events. These events may be alerted to the load balancer processor 302 for determining that an event may be occurring or will occur. The load balancer processor 302 may require a change in the load balancing scheme.
[0056] Optionally, the load balancer processor 302 or the satellite state processor 308 can receive SOH messages from the first satellite 104a, in stage 620. The SOH message may be the same or similar to SOH message data structure 442, as described in conjunction with Fig. 4E. The SOH messages 442 may be communicated directly from satellite 104a, or through one or more other satellites 104b through 104d, as messages 506 that can reach the ground station 108 and/or the load balancer processor 302. The SOH messages 442 may describe a change in the status of the satellite 104, which may require changing the load balancing scheme.
[0057] The load balancer processor 302 can determine that the first satellite 104a is or will experience a change in operational circumstances, in stage 622. The load balancer processor 302 can determine from the event provided by the scheduler application 304 or based on SOH information 506 that the first satellite 104a may be or will be unavailable to execute an instance of the application currently or within some period of time. In response, the load balancer processor 302 can alter the load balancing scheme, in stage 624. The load balancer processor 302 may then determine a change to the balance of the load across the satellites 104 based on current availability of satellite 104a. Changing the load balancing scheme may require assigning instances of the application(s) to other satellites 104. [0058] Based on the new load balancing scheme, the load balancer processor 302 can determine a third satellite 104c, of the satellite constellation, to execute a third instance of the first application, in stage 626. The third instance of the application may be continuation or redirection of the instance first executed or previously executed by the first satellite 104a. In other implementations, the third instance may be a new instance of the application that continues the instance executed by the first satellite 104a or may be mutually exclusive from the execution of the first instance by the first satellite 104a. To begin the execution of the third instance, the load balancer processor 302 may direct the third satellite 104c to execute the third instance of the first application, in stage 628. The directive may be a redirect message to 512 or 508 that is sent with data structure 434 directing the third satellite 104c to execute a third instance of the application. The third satellite may then begin executing an instance of the application. Concurrently, before, or after this directive message 508, 512 to the third satellite, the load balancer processor 302 can also direct the first satellite 104a to stop execution the first instance of the application, in stage 630. The load balancer processor 302 can send message 510, including data structure 434, which directs the first satellite 104a to stop execution of the first instance the application.
[0059] The first satellite 104a may no longer be capable or able to execute instances the application for some period of time. After the period of time where the first satellite 104a is unable to execute instances of the application, the load balancer processor 302 can receive a re-registration message or request from the first satellite, in stage 632. The re-registration message 514 can be received by the load balancer processor 302. The re registration request may include data structure 426 that requests that the first satellite 104a is available to once again execute instance(s) of one more applications. In response to the re-registration request message 514, the load balancer processor 302 can alter the load balancing scheme again, in stage 634. The load balancing scheme can again change the number of satellites 104 available for executing instances of the application. This change in the scheme means that some instances of the application may not be assigned to other satellites 104b through 104e but rather to the first satellite 104a.
[0060] The load balancer processor 302, based on the load balancing scheme change, can determine the first satellite 104a is able to execute a fourth instance of the first application, in stage 636. The fourth instance may be a new instance of the application that may be executed by the satellite 104a. Based on this determination, the load balancer processor 302 can direct the first satellite 104a to execute the fourth instance of the first application, in stage 638. The redirect message 516 may be sent from the load balancer processor 302 to the first satellite 104a, and the redirect message 516 can include data structure 434. Data structure 434 may include a directive to execute a new instance of the application by the satellite 104a. As such, the load may be balanced or changed across the satellite constellation. These changes in the load balancing scheme and determinations of which satellites 104 may execute instances of the application may be continuously adjusted as satellites 104 become unavailable or available based on various changes in the operations conditions of the satellite constellation.
[0061] A method 700 for executing an instance of an application by one more satellites 104 may be as shown in Fig. 7. A general order for the steps of the method 700 is shown in FIG. 7. Generally, the method 700 can start with a start operation and can end with an end operation. The method 700 can include more or fewer steps or can arrange the order of the steps differently than those shown in FIG. 7. The method 700 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method 700 can be performed by gates or circuits associated with a space-qualified and/or radiation-hardened processor, ASIC, FPGA, SOC, or other hardware device. Hereinafter, the method 700 shall be explained with reference to the systems, components, devices, modules, software, signals, data structures, interfaces, methods, etc. described in conjunction with FIGS. 1- 6 and 9-10.
[0062] A first satellite 104a can send a registration request to a load balancer processor 302, in stage 702. The registration request message 502 may include data structure 426. The message 502 may be sent from the satellite 104 to the ground station 108 or to another component executing a load balancer processor 302.
[0063] Sometime thereinafter and based on the registration request message 502, the load balancer processor 302 may send, and the satellite 104 can receive the directive to execute the first instance of the first application, in stage 704. The directive message 504 may be received by the satellite 104a and contain a directive data structure 434. Based on receiving this directive, the satellite processor may execute a first instance of the first application, in stage 706. The processor of the satellite 104 can execute the first instance and save state data to local memory.
[0064] The satellite 104a may also send SOH messages 506 to the load balancer processor 302, in stage 708. The SOH message 506 may include data structure 442. The SOH message data structure 442 can include any type of change or possible failure of a component of the satellite 104.
[0065] At some point thereinafter, the satellite 104 may experience a change in operational circumstances, in stage 710. The change in operational circumstances can be planned, or at least predicted, such as a transition from sunlight to darkness, or may be unpredictable, for example, a failure of a component or some other operational change in satellite 104. The change in operational circumstances, in stage 710, can be reported to the load balancer processor 302 as an event from a scheduler processor 304 or as SOH data 418 provided to the load balancer processor 302. If the experienced change in operational circumstances was predicted, then the satellite 104 may receive a directive to stop execution of the first instance, in stage 712. The load balancer processor 302 can send the stop instance message 510 with a directive, in data structure 434, to stop executing the first instance. This change in execution may happen before or during transition from sunlight to darkness or before some other transition in operational circumstances. The satellite 104 may then stop execution of the first instance, in stage 714.
[0066] For some period of time, the satellite 104 can stop executing the instances of the application and report the state to the load balancer processor 302 and application state processor 306 to store data in datastore 314. The sending of directives to stop execution and stopping the execution of the instance, in stages 712 and 714, may be optional and based on whether the changes in operational circumstances can be predicted.
[0067] At some time thereinafter, possibly after the change in operational circumstances is corrected, the satellite 104 can send a re-registration request to the load balancer processor 302, in stage 716. The re-registration request may be message 514 and include data structure 426 requesting to register with the load balancer processor 302. The re-registration request message 514 may elicit a new directive sent by the load balancer processor 302. The satellite 104 can receive the directive to execute a fourth instance of the first application, in stage 718. A redirect message 516 may be sent to the satellite 104 including a new directive message data structure 434, with the directive 436, which can instruct the satellite 104a to execute the fourth instance of the application. In response, satellite 104a can execute the fourth instance of the first application, in stage 720.
[0068] An embodiment of a method 800 for determining changes in operational circumstances may be as shown in Fig. 8. Method 800 may be from the perspective of the scheduler processor 304, which may execute at the ground station 108 or other component of the system shown in Fig. 1. A general order for the steps of the method 800 is shown in FIG. 8. Generally, the method 800 can start with a start operation and can end with an end operation. The method 800 can include more or fewer steps or can arrange the order of the steps differently than those shown in FIG. 8. The method 800 can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method 800 can be performed by gates or circuits associated with a space-qualified and/or radiation- hardened processor, ASIC, FPGA, SOC, or other hardware device. Hereinafter, the method 800 shall be explained with reference to the systems, components, devices, modules, software, signals, data structures, interfaces, methods, etc. described in conjunction with FIGS. 1-7 and 9-10.
[0069] The processor 1010 can receive a registration request from satellites 104, in the satellite constellation. For example, the processor 1010 can receive a registration request message 502, which includes data structure 426, in stage 802. The processor 1010 may provide the registration request to the load balancer processor 302 and/or to other processors, for example the scheduler processor 304. This information and registration request may be stored in satellite state datastore 314. After receiving the registration request, the scheduler processor 304 can access satellite state information 314 to determine information about the satellite 104a. From the information, for example, the satellite ID 408 and other information, the scheduler processor 304 can determine orbit characteristics of the satellite 104a or satellites 104 in the constellation, in stage 804. Satellite characteristics can include the orbit information, e.g., the inclination, orbit shape, sun synchro nicity, and other information about the orbit of the satellites 104. Further, the scheduler processor 304 can also determine information about the angle and position of the sun, moon, earth, and other space environment characteristics, in stage 806. The position of the sun, moon, earth, and other characteristics may be specific to each satellite 104. These different characteristics can determine such things as when the satellite 104 will enter the earth’s shadow or when the satellite 104 can possibly encounter other changes while in orbit 106.
[0070] From the information determined previously, the scheduler processor 304 can determine an upcoming event for first satellite, in stage 808. The event can be any event that may affect the ability for the satellite 104 to execute an instance of the application. For example, the event can include entering a low-power state due to lack of sunlight on the solar array, changes in radiation that may affect the satellite 104, or other types of events. An event is determined for the first satellite 104a; the scheduler processor 304 can send the upcoming event and event information to the load balancer processor 302, in stage 810. The scheduler processor can send an event message to the load balancer processor 302. Data structure 416 may be sent to the load balancer processor 302 that indicates a scheduled transition 420. This transition could be an event that requires the load balancer to change the load balancing scheme and redirect execution of an instance to another satellite 104.
[0071] A satellite 104 can have one or more satellite systems and/or subsystems 900. These systems 900 can include one or more of, but are not limited to: a structural/thermal system(s) 912, the payload(s) (e.g., sensors and devices) 914, a propulsion system(s) 906, an attitude control systems(s) 908, a power system(s) 904, a processing system(s) 910, and/or a communication system(s) 902.
[0072] The structural system 912 can be the materials and structures that give the satellite 104 shape, secure all sub-systems and other components, and provide protection from mechanical stresses during launch and on orbit, protect from radiation, and minimize vibration. The thermal control system (TCS) 912 can keep satellite systems within acceptable temperature ranges. The TCS 912 can eject heat passively through the radiation of the satellite or through more active systems, e.g., an infrared radiation coil.
[0073] The attitude control systems(s) (ACS) 908 can include a telemetry subsystem (e.g., Command and Data Handling, C&DH) that can monitor satellite operations, can transmit telemetry data to the ground station 108, and can receive commands, from the ground station 108, to perform operations, equipment adjustments, etc. Further, the ACS 908 can comprise sensors to determine satellite orientation. The ACS 908 can control operations in the flight software, activate actuators (e.g., reaction wheels, thrusters), and conduct other maneuvers. The actuators can apply forces to re-orient the satellite 104 to a desired altitude/attitude, keep the satellite in the correct orbital position, and keep antennas pointed in the right directions.
[0074] The power system(s) 904 can be the components and systems that supply power to the other components of the satellite 104. For example, the power system 904 can include solar panels to convert solar energy into electrical power, power electronics to regulate power distribution lunctions, and batteries that store power and supply power to the satellite 104 when the satellite 104 passes into and through the earth's shadow.
[0075] The communication system(s) 902 can include any Radio Frequency (RF) hardware, radio components, multiplexers, ISL, etc. to communicate with other satellites 104 or with the ground station 108. The communication system(s) 902 can include transponders capable of: receiving uplink radio signals from the ground station 108, amplify received radio signals, sort the input signals, direct the output signals to the downlink antennas for transmission to the ground station 108, etc.
[0076] The payload(s) can be any sensor, component, system, or object being carried by the satellite 104. The payload 914 can provide data for the user of the satellite 104 and may not contribute to the operation of the other systems of the satellite 104.
[0077] The propulsion system(s) 906 can be any subsystem or component used in the vacuum of space to change the orbit of the satellite 104. Several methods of propulsion system(s) 906 can be used, including chemical thrusters (often monopropellant rockets) or resistojet rockets for orbital station-keeping, momentum wheels for attitude control, electric propulsion (e.g., ion thrusters and Hall-effect thrusters), etc. Some the propulsion system(s) 906 may be shared with the ACS 908.
[0078] The processing system 910 can include any hardware and/or software to conduct operations, as described herein, in accordance with aspects of the present disclosure. The processing 910 may be as described in conjunction with Figs. 9 and 10. Interconnected to the processing system 910 may be one or more datastores 310-314, the payload sensors and devices 914, the propulsion system 906, the attitude control systems(s) 908, the power system(s) 904 and/or the communication system(s) 902, which have been previously described.
[0079] Fig. 10 illustrates one configuration of a processing system 910 upon which the satellites 104, ground station 108, or other systems or components described above may be deployed or executed. The processing system 910 is shown comprising hardware elements that may be electrically coupled via an electrical or communication bus 1014. The hardware elements may include one or more central processing units (CPUs) 1002; one or more input devices 1004 (e.g., a mouse, a keyboard, etc., if a ground station computing system); and one or more output devices 1006 (e.g., a display device, a printer, etc., if a ground station computing system). The processing system 910 may also include one or more storage devices 1008. By way of example, storage device(s) 1008 may be disk drives, optical storage devices, solid-state storage devices such as a random access memory (“RAM”) and/or a read- only memory (“ROM”), which can be programmable, flash updateable and/or the like.
[0080] The processing system 910 may additionally include a computer-readable storage media/reader; a communications system (e.g., an antenna, Radio Frequency hardware, a multiplexer, a radio, an ISL, etc.); and working memory 1012, which may include RAM and ROM devices as described above. The processing system 910 may also include a processing acceleration unit, which can include a digital signal processor (DSP), a special-purpose processor, and /or the like.
[0081] The computer-readable storage media /reader can further be connected to a computer-readable storage medium, together (and, optionally, in combination with storage device(s) 1008) comprehensively representing remote, local, fixed, and/or removable storage devices plus storage media for temporarily and/or more permanently containing computer-readable information. The communications system 902 may permit data to be exchanged with a satellite network and/or any other satellite or ground system computer described above with respect to the computer environments described herein. Moreover, as disclosed herein, the term “storage medium" may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.
[0082] The processing system 910 may also comprise software elements, which may be located within a working memory 1012, including an operating system and/or other code. It should be appreciated that alternate embodiments of a processing system 910 may have numerous variations from that described above. For example, customized hardware might also be used and/or particular elements might be implemented in hardware, software (including portable software, such as applets), or both. Further, connection to other computing devices such as network input/output devices may be employed.
[0083] Examples of the CPU(s) 1002 and/or processors 1010 as described herein may include, but are not limited to, at least one of Qualcomm® Snapdragon® 800 and 801, Qualcomm® Snap dragon® 620 and 615 with 4G LTE Integration and 64-bit computing, Apple® A7 processor with 64-bit architecture, Apple® M7 motion coprocessors, Samsung® Exynos® series, the Intel® Core® family of processors, the Intel® Xeon® family of processors, the Intel® Atom® family of processors, the Intel Itanium® family of processors, Intel® Core® i5-4670K and G7-4770K 22 nm Haswell, Intel® Core® i5-3570K 22nm Ivy Bridge, the AMD® FX® family of processors, AMD® FX -4300, FX -6300, and FX-8350 32nm Vishera, AMD® Kaveri processors, other hardened or space-qualified processors, and may perform computational functions using any known or future-developed standard, instruction set, libraries, and/or architecture. [0084] As shown in Fig. 10, the processing function 910 (of the satellite 104) can execute instances for several applications 1016, 1018, and/or 120. For each application 1016, 1018, and/or 120, the processing function 910 can also executes one or more instances of each application 1016, 1018, and/or 120. For example, the processing function 910 can execute instances 1016a, 1016b, and/or 1016n of the application 1016. Similarly, the processing function 910 can execute instances 1018a, 1018b, and/or 1018n of the application 1018, and the processing function 910 can execute instances 1020a, 1020b, and/or 1020n of the application 1020. Thus, the load balancing scheme can balance the execution of several instances of several applications across several satellites 104.
[0085] In a first use case, a user may wish to detect the presence of some type of object within an area of interest 204. For example, the user may wish to detect the presence of an unauthorized fishing vessel within coastal waters in area 204. The area of regard 202 of the satellite 104 may traverse the area of interest 204, and the area of regard 202 may cover a portion or all of the area of interest 204. The satellite 104 may produce an image of the area of coverage 206. This image may then be processed by an artificial intelligence (AI) model (e.g., a machine learning model (MLL)) that may look for the object, e.g., a fishing vessel (for example, a vessel with rigging arms extended to deploy a net). The processing of these images can be data intensive. Thus, relaying those images to a ground station 108 may be prohibitive, due to unavailability or the lack of bandwidth of the downlink. Plus, the satellite 104 may execute the AI model at the satellite 104 or may send an image to one or more other satellites 104 to execute an instance of the AI model to detect the object.
[0086] In this way, the satellite network 100 can operate as a large source of processing cycles to execute instances of the AI model. The images need not be sent to the ground station 108 unless an object is detected by one of the instances the AI model executed in the satellite network 100.
[0087] In another use case, international banking requires the quick and worldwide processing of banking transactions. Account information may be stored across the satellite network (which is extremely secure because the satellites are difficult to communicate with without specialized equipment) and may be accessible to various nations across the earth. The transactions may enter the satellite network 100 to change data within the information stored within the satellite network 100. The transactions travel faster between the satellites 104 than is typical for networks that are based on the surface of the earth. Further, transactions reach the data quickly so that collisions can be avoided compared to earth-based computer networks.
[0088] In still another use case, due to the almost unlimited source of power based from satellites being in sunlight frequently, the satellite network 100 can also process crypto-currency or other non-fungible tokens. The processing cycles of the network are more ubiquitous for crypto-currency processing, and instances of the crypto-currency processing may be shared amongst the satellites 104 when those satellites 104 travel into darkness.
[0089] There are several advantages of processing difference instances for applications within a satellite network 100. For example, the processing within the satellite network 100 eliminates the need for sending data through a downlink that may be unavailable, depending on the orbit of the satellite 104, or may be bandwidth limited. Further, the satellites 104 have a great source of sunlight that has great availability and can power the processors used for the various applications. Further, the processing of data within a satellite network 100 can be performed for the satellite 104 for other satellites, which are not part of the satellite network 100 but can may communicate with the satellite network 100. Thus, various components of satellite network 100 can provide near-instantaneous access to a substantial number of computing cycles for space or other missions. The access to the satellite network 100 is also not limited based on geography or national boundaries.
[0090] The exemplary systems and methods of this disclosure have been described in relation to satellite systems. However, to avoid unnecessarily obscuring the present disclosure, the preceding description omits a number of known structures and devices. This omission is not to be construed as a limitation of the scope of the claimed disclosure. Specific details are set forth to provide an understanding of the present disclosure. It should, however, be appreciated that the present disclosure may be practiced in a variety of ways beyond the specific detail set forth herein.
[0091 ] Furthermore, while the exemplary configurations illustrated herein show the various components of the system collocated, certain components of the system can be located remotely, at distant portions of a distributed satellite network, such as a LAN and/or the Internet, or within a dedicated system. Thus, it should be appreciated, that the components of the system can be combined into one or more devices, or collocated on a particular node of a distributed network. It will be appreciated from the preceding description, and for reasons of computational efficiency, that the components of the system can be arranged at any location within a distributed network of components without affecting the operation of the system.
[0092] Furthermore, it should be appreciated that the various links connecting the elements can be wireless links (e.g., laser or RF links), or any other known or later developed element(s) that is capable of supplying and/or communicating data to and from the connected elements. These links can also be secure links and may be capable of communicating encrypted information. Transmission media used as links, for example, can be any suitable carrier for electrical signals, and may take the form of light waves, such as those generated during radio-wave and infra-red data communications.
[0093] While the flowcharts have been discussed and illustrated in relation to a particular sequence of events, it should be appreciated that changes, additions, and omissions to this sequence can occur without materially affecting the operation of the disclosed configurations, configuration, and aspects.
[0094] A number of variations and modifications of the disclosure can be used. It would be possible to provide for some features of the disclosure without providing others.
[0095] In yet another configuration, the systems and methods of this disclosure can be implemented in conjunction with a special purpose computer, a programmed microprocessor or microcontroller and peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital signal processor, a hard -wired electronic or logic circuit such as discrete element circuit, a programmable logic device or gate array such as PLD, PLA, FPGA, PAL, special purpose computer, any comparable means, or the like. In general, any device(s) or means capable of implementing the methodology illustrated herein can be used to implement the various aspects of this disclosure. Some of these devices include processors (e.g., a single or multiple microprocessors), memory, nonvolatile storage, input devices, and output devices. Furthermore, alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein.
[0096] In yet another configuration, the disclosed methods may be readily implemented in conjunction with software using object or object-oriented software development environments that provide portable source code that can be used on a variety of computer or workstation platforms. Alternatively, the disclosed system may be implemented partially or fully in hardware using standard logic circuits or VLSI design. Whether software or hardware is used to implement the systems in accordance with this disclosure is dependent on the speed and/or efficiency requirements of the system, the particular function, and the particular software or hardware systems or microprocessor or microcomputer systems being utilized.
[0097] In yet another configuration, the disclosed methods may be partially implemented in software that can be stored on a storage medium, executed on programmed general purpose computer with the cooperation of a controller and memory, a special purpose computer, a microprocessor, or the like. In these instances, the systems and methods of this disclosure can be implemented as a program embedded on a personal computer such as an applet, JAVA® or CGI script, as a resource residing on a server or computer workstation, as a routine embedded in a dedicated measurement system, system component, or the like. The system can also be implemented by physically incorporating the system and /or method into a software and/or hardware system.
[0098] Although the present disclosure describes components and functions implemented in the configurations with reference to particular standards and protocols, the disclosure is not limited to such standards and protocols. Other similar standards and protocols not mentioned herein are in existence and are considered to be included in the present disclosure. Moreover, the standards and protocols mentioned herein and other similar standards and protocols not mentioned herein are periodically superseded by faster or more effective equivalents having essentially the same functions. Such replacement standards and protocols having the same functions are considered equivalents included in the present disclosure.
[0099] The present disclosure, in various embodiments, configurations, and aspects, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, sub combinations, and subsets thereof. Those of skill in the art will understand how to make and use the systems and methods disclosed herein after understanding the present disclosure. The present disclosure, in various embodiments, configurations, and aspects, includes providing devices and processes in the absence of items not depicted and/or described herein in various embodiments, configurations, or aspects hereof, including in the absence of such items as may have been used in previous devices or processes, e.g., for improving performance,
[0100] The foregoing discussion of the disclosure has been presented for purposes of illustration and description. The foregoing is not intended to limit the disclosure to the form or forms disclosed herein. In the foregoing Detailed Description for example, various features of the disclosure are grouped together in one or more embodiments, configurations, or aspects for the purpose of streamlining the disclosure. The features of the embodiments, configurations, or aspects of the disclosure may be combined in alternate embodiments, configurations, or aspects other than those discussed above. This method of disclosure is not to be interpreted as reflecting an intention that the claimed disclosure requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment, configuration, or aspect. Thus, the following claims are hereby incorporated into this Detailed Description, with each claim standing on its own as a separate preferred configuration of the disclosure.
[0101] Moreover, though the description of the disclosure has included description of one or more embodiments, configurations, or aspects and certain variations and modifications, other variations, combinations, and modifications are within the scope of the disclosure, e.g., as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights, which include alternative embodiments, configurations, or aspects to the extent permitted, including alternate, interchangeable and /or equivalent structures, functions, ranges, or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges, or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.
[0102] The phrases “at least one, ‘one or more,” “or,” and “and/or” are open-ended expressions that are both conjunctive and disjunctive in operation. For example, each of the expressions at least one of A, B and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,”“A, B, and/or C,” and “A, B, or C “means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
[0103] The term “a” or “an” entity refers to one or more of that entity. As such, the terms “a” (or “an”), “one or more,” and “at least one” can be used interchangeably herein. It is also to be noted that the terms “comprising,” “including,” and “having” can be used interchangeably.
[0104] The term “automatic” and variations thereof, as used herein, refers to any process or operation, which is typically continuous or semi-continuous, done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material.”
[0105] Aspects of the present disclosure may take the form of an configuration that is entirely hardware, an configuration that is entirely software (including firmware, resident software, micro -code, etc.) or an configuration combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module,” or “system.” Any combination of one or more computer-readable medium(s) may be utilized. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium.
[0106] A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non -exhaustive list) of the computer -readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD -ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
[0107] The terms “determine,” “calculate,” “compute,” and variations thereof, as used herein, are used interchangeably and include any type of methodology, process, mathematical operation or technique.
[0108] The term “means” as used herein shall be given its broadest possible interpretation in accordance with 35 U.S. C., Section 112 (f) and/or Section 112, Paragraph 6. Accordingly, a claim incorporating the term “means” shall cover all structures, materials, or acts set forth herein, and all of the equivalents thereof. Further, the structures, materials or acts and the equivalents thereof shall include all those described in the summary, brief description of the drawings, detailed description, abstract, and claims themselves.
[0109] An aspect of the present disclosure comprises a method comprising: determining a first satellite, of a satellite constellation, to execute a first instance of a first application; determining a second satellite, of the satellite constellation, to execute a second instance of the first application; executing, by the first satellite, the first instance of the first application; executing, by the second satellite, the second instance of the first application; experiencing, by the first satellite, a change in operational circumstances; based on the change in operational circumstances of the first satellite, determining a third satellite, of the satellite constellation, to execute a third instance of the first application; and executing, by the third satellite, the third instance of the first application.
[0110] Any of the one or more above aspects, wherein the change in operational circumstances comprises one or more of a failover event, a transition to a lower power state, and/or a change in state of health.
[0111 ] Any of the one or more above aspects, further comprising: stopping execution of the first instance of the first application based on the change in operational circumstances.
[0112] Any of the one or more above aspects, wherein a scheduler determines that the first satellite will be experiencing the change in operational circumstances by the first satellite.
[01 3] Any of the one or more above aspects, wherein the scheduler determines that the first satellite will transition from sunlight to darkness and enter a lower power state.
[0114] Any of the one or more above aspects, wherein the load balancer stops the execution of the first instance of the first application after the first satellite has already transition to darkness.
[0115] Any of the one or more above aspects, wherein the load balancer sends a message to the third satellite to start execution of the third instance before the third satellite leaves darkness into sunlight.
10116] Any of the one or more above aspects, wherein a load balancer determines the first satellite, from the satellite constellation, to execute the first instance of a first application and the second satellite, from the satellite constellation, to execute the second instance of the first application based on a load balancing scheme.
[0117] Any of the one or more above aspects, further comprising: sending, by the first satellite, a registration request to the load balancer to receive instance of an application for execution.
[0118] Any of the one or more above aspects, further comprising: sending, by the first satellite, a state of health message that indicates that the first satellite is experiencing the change in operational circumstances.
[0119] Any of the one or more above aspects, wherein the state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
[0120] Any of the one or more above aspects, wherein the first application is stateful, and wherein a state container stores a state of the first application.
[0121] An aspect of the present disclosure comprises a satellite comprising: a memory; and a processor in communication with the memory, the processor to: receive a first directive to execute an instance of a first application; execute the instance of the first application; receiving a second directive to stop executing the instance of the first application, based on a change in operational circumstances that will occur; experiencing the change in operational circumstances; and after the change in operational circumstances, send a registration request to again execute an instance of the first application.
[0122] Any of the one or more above aspects, wherein the change in operational circumstances comprises a transition from sunlight into darkness.
[0123] Any of the one or more above aspects, wherein the first directive is from a load balancer.
[0124] Any of the one or more above aspects, the processor farther to send a state of health message that indicates that the satellite is experiencing the change in operational circumstances. [0125] Any of the one or more above aspects, wherein the state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
[0126] An aspect of the present disclosure comprises a satellite network comprising: a first satellite, of a satellite constellation, operable to execute a first instance of a first application; a second satellite, of the satellite constellation, operable to execute a second instance of the first application; a third satellite, of the satellite constellation, operable to execute a third instance of the first application; a load balancer in communication with the first satellite and the second satellite, the load balancer operable to: direct the first satellite to execute the first instance of the first application; direct the second satellite to execute the second instance of the first application; determine that the first satellite is experiencing a change in operational circumstances; based on the change in operational circumstances of the first satellite, determine a third satellite, of the satellite constellation, to execute a third instance of the first application; and direct the third satellite to execute a third instance of the first application.
[0127] Any of the one or more above aspects, wherein the change in operational circumstances comprises one or more of a failover event, a transition to a lower power state, and/or a change in state of health.
[0128] Any of the one or more above aspects, the load balancer further to direct the first satellite to stop execution of the first instance of the first application based on the change in operational circumstances.
[0129] Any of the one or more above aspects, farther comprising a scheduler to determine that the first satellite will be experiencing the change in operational circumstances.
[0130] Any of the one or more above aspects, wherein the scheduler determines that the first satellite will transition from sunlight to darkness and enter a lower power state.
[0131] Any of the one or more above aspects, wherein the scheduler sends a message to the load balancer to stop the execution of the first instance. [0132] Any of the one or more above aspects, wherein, based on the message from the scheduler, the load balancer directs the first satellite to stop executing the first instance of the first application after the first satellite has already transitioned to darkness.
[0133] Any of the one or more above aspects, wherein, based on the message from the scheduler, the load balancer directs the third satellite to start execution of the third instance before the third satellite leaves darkness into sunlight.
[0134] Any of the one or more above aspects, wherein the load balancer determines a processing load for the first satellite and the satellite constellation.
[0135] Any of the one or more above aspects, further comprising the first satellite to send a registration request to the load balancer to receive an instance of an application for execution.
[0136] Any of the one or more above aspects, further comprising the first satellite to send a state of health message that indicates that the first satellite is experiencing the change in operational circumstances.
[0137] Any of the one or more above aspects, wherein the state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
[0138] Any of the one or more above aspects, wherein the first application is stateful, and wherein a state container stores a state of the first application.
[0139] Any of the one or more above aspects, further comprising a processor at a ground station to execute the load balancer.
[0140] Any of the one or more above aspects in combination with any of the one or more other above aspects.
[0141] A means for any of the one or more above aspects.
[0142] A radiation-hardened processor, FPGA, ASIC, System-On-Chip (SOC), and/or controller for any of the one or more above aspects.

Claims

CLAIMS Having described the disclosed subject matter, what is claimed as new and desired to be secured by Letters Patent is:
1. A method comprising: determining a first satellite, of a satellite constellation, to execute a first instance of a first application; determining a second satellite, of the satellite constellation, to execute a second instance of the first application; executing, by the first satellite, the first instance of the first application; executing, by the second satellite, the second instance of the first application; experiencing, by the first satellite, a change in operational circumstances; based on the change in operational circumstances of the first satellite, determining a third satellite, of the satellite constellation, to execute a third instance of the first application; and executing, by the third satellite, the third instance of the first application.
2. The method of claim 1, wherein the change in operational circumstances comprises one or more of a failover event, a transition to a lower power state, and/or a change in state of health.
3. The method of claim 2, further comprising: stopping execution of the first instance of the first application based on the change in operational circumstances.
4. The method of claim 3, wherein a scheduler determines that the first satellite will be experiencing the change in operational circumstances by the first satellite.
5. The method of claim 4, wherein the scheduler determines that the first satellite will transition from sunlight to darkness and enter a lower power state.
6. The method of claim 5, wherein a load balancer stops the execution of the first instance of the first application after the first satellite has already transition to darkness.
7. The method of claim 6, wherein the load balancer sends a message to the third satellite to start execution of the third instance before the third satellite leaves darkness into sunlight.
8. The method of claim 1, wherein a load balancer determines the first satellite, from the satellite constellation, to execute the first instance of a first application and the second satellite, from the satellite constellation, to execute the second instance of the first application based on a load balancing scheme.
9. The method of claim 8, farther comprising: sending, by the first satellite, a registration request to the load balancer to receive instance of an application for execution.
10. The method of claim 1, lurther comprising: sending, by the first satellite, a state of health message that indicates that the first satellite is experiencing the change in operational circumstances.
1 1 . The method of claim 1 , wherein a state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
12. The method of claim 1, wherein the first application is stateful, and wherein a state container stores a state of the first application.
13. A satellite comprising: a memory; and a processor in communication with the memory, the processor to: receive a first directive to execute an instance of a first application; execute the instance of the first application; receiving a second directive to stop executing the instance of the first application, based on a change in operational circumstances that will occur; experiencing the change in operational circumstances; and after the change in operational circumstances, send a registration request to again execute an instance of the first application.
14. The satellite of claim 13, wherein the change in operational circumstances comprises a transition from sunlight into darkness.
15. The satellite of claim 13, wherein the first directive is from a load balancer.
16. The satellite of claim 13, the processor farther to send a state of health message that indicates that the satellite is experiencing the change in operational circumstances.
17. The satellite of claim 16, wherein the state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
18. A satellite network comprising: a first satellite, of a satellite constellation, operable to execute a first instance of a first application; a second satellite, of the satellite constellation, operable to execute a second instance of the first application; a third satellite, of the satellite constellation, operable to execute a third instance of the first application; a load balancer in communication with the first satellite and the second satellite, the load balancer operable to: direct the first satellite to execute the first instance of the first application; direct the second satellite to execute the second instance of the first application; determine that the first satellite is experiencing a change in operational circumstances; based on the change in operational circumstances of the first satellite, determine a third satellite, of the satellite constellation, to execute a third instance of the first application; and direct the third satellite to execute a third instance of the first application.
19. The satellite network of claim 18, wherein the change in operational circumstances comprises one or more of a failover event, a transition to a lower power state, and/or a change in state of health.
20. The satellite network of claim 19, the load balancer further to direct the first satellite to stop execution of the first instance of the first application based on the change in operational circumstances.
21. The satellite network of claim 18, farther comprising a scheduler to determine that the first satellite will be experiencing the change in operational circumstances.
22. The satellite network of claim 21, wherein the scheduler determines that the first satellite will transition from sunlight to darkness and enter a lower power state.
23. The satellite network of claim 22, wherein the scheduler sends a message to the load balancer to stop the execution of the first instance.
24. The satellite network of claim 23 , wherein, based on the message from the scheduler, the load balancer directs the first satellite to stop executing the first instance of the first application after the first satellite has already transitioned to darkness.
25. The satellite network of claim 24, wherein, based on the message from the scheduler, the load balancer directs the third satellite to start execution of the third instance before the third satellite leaves darkness into sunlight.
26. The satellite network of claim 18, wherein the load balancer determines a processing load for the first satellite and the satellite constellation.
27. The satellite network of claim 18, further comprising the first satellite to send a registration request to the load balancer to receive an instance of an application for execution.
28. The satellite network of claim 18, further comprising the first satellite to send a state of health message that indicates that the first satellite is experiencing the change in operational circumstances.
29. The satellite network of claim 28, wherein the state of health message indicates an increase in radiation level, an increase in heat, a decrease in heat, a failure of a component of the first satellite, and/or a change in attitude control.
30. The satellite network of claim 18, wherein the first application is stateful, and wherein a state container stores a state of the first application.
31. The satellite network of claim 18, farther comprising a processor at a ground station to execute the load balancer.
PCT/US2022/072572 2021-05-25 2022-05-25 Distributed processing in a satellite network based on satellite characteristics WO2022251852A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163193055P 2021-05-25 2021-05-25
US63/193,055 2021-05-25

Publications (1)

Publication Number Publication Date
WO2022251852A1 true WO2022251852A1 (en) 2022-12-01

Family

ID=84229252

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2022/072572 WO2022251852A1 (en) 2021-05-25 2022-05-25 Distributed processing in a satellite network based on satellite characteristics

Country Status (1)

Country Link
WO (1) WO2022251852A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120134261A1 (en) * 2010-05-28 2012-05-31 Telcordia Technologies, Inc. Context aware adaptive switching in reconfigurable low earth orbit satellite networks
US20120146847A1 (en) * 2008-09-30 2012-06-14 Janky James M Method and system for location-dependent time-specific correction data
US20140145877A1 (en) * 2012-11-27 2014-05-29 Eutelsat S A Method of geo localization of a terminal sending a single signal to a satellite system
US20160025858A1 (en) * 2014-07-28 2016-01-28 Echostar Technologies L.L.C. Electronic satellite feed switcher
US20190280764A1 (en) * 2016-10-19 2019-09-12 Vector Launch Inc. State Transfer Among Satellite Platforms

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120146847A1 (en) * 2008-09-30 2012-06-14 Janky James M Method and system for location-dependent time-specific correction data
US20120134261A1 (en) * 2010-05-28 2012-05-31 Telcordia Technologies, Inc. Context aware adaptive switching in reconfigurable low earth orbit satellite networks
US20140145877A1 (en) * 2012-11-27 2014-05-29 Eutelsat S A Method of geo localization of a terminal sending a single signal to a satellite system
US20160025858A1 (en) * 2014-07-28 2016-01-28 Echostar Technologies L.L.C. Electronic satellite feed switcher
US20190280764A1 (en) * 2016-10-19 2019-09-12 Vector Launch Inc. State Transfer Among Satellite Platforms

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
B. PALMINTIER, C. KITTS, P. STANG, M. SWARTWOUT: "A distributed computing architecture for small satellite and multi-spacecraft missions", PROCEEDINGS OF THE 16TH ANNUAL AIAA/USU CONFERENCE ON SMALL SATELLITES, AUGUST 12 - 15, 2002, UTAH STATE UNIVERSITY, LOGAN, UTAH, 13 August 2002 (2002-08-13) - 15 August 2002 (2002-08-15), pages SSC02 - 11, XP007910359 *

Similar Documents

Publication Publication Date Title
Ellery et al. The case for robotic on-orbit servicing of spacecraft: Spacecraft reliability is a myth
Klesh et al. Cyber-physical challenges for space systems
Schilling Perspectives for miniaturized, distributed, networked cooperating systems for space exploration
Speretta et al. LUMIO: an autonomous CubeSat for lunar exploration
Teston et al. PROBA: ESA's autonomy and technology demonstration mission
US8720831B2 (en) Spacecraft panel architecture
Hakima et al. Deorbiter CubeSat system engineering
Arnold et al. QbX-the CubeSat experiment
Dubock et al. The Envisat satellite and its integration
Ratheesh et al. Srmsat: A feasibility study on small satellite mission to moon
WO2022251852A1 (en) Distributed processing in a satellite network based on satellite characteristics
Findlay et al. A space-based mission to characterize the IEO population
Bermyn PROBA-project for on-board autonomy
Dessanti et al. Design of a millimeter waveguide satellite for space power grid
Kusnierkiewicz et al. A description of the Pluto-bound New Horizons spacecraft
Kirsch et al. Extending the lifetime of ESA's X-ray observatory XMM-Newton
Oda et al. ETS-7, a rendezvous docking and space robot technology experiment satellite result of the engineering model development work
Bennett et al. Gravity Probe B spacecraft description
Chen et al. Design and Implementation of Avionic Autonomous Management System for Deep Space Exploration
Sorensen LEO-1: Development of a University Microsatellite for Flight Testing New Technologies
West et al. Space mission hibernation mode design: lessons learned from Rosetta and other pathfinding missions using hibernation
Wheeler et al. Strategies to maximize science data availability for the GOES-R series of satellites
Malaviarachchi et al. A small satellite concept for on-orbit servicing of spacecraft
Doggett et al. On-orbit Servicing, Assembly and Manufacturing (OSAM) Near-Term in-Space Developmental Test Persistent Platform: ESPA-Star Based Implementation
Srama et al. Feasibility studies for a dust observatory between earth and the asteroid belt

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22812384

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE