Benefit is claimed under 35 U.S.C. 119(a)-(d) to Foreign Application Serial No. 201841035253 filed in India entitled “ENHANCED COMMUNICATION OF SERVICE STATUS INFORMATION IN A COMPUTING ENVIRONMENT”, on Sep. 19, 2018, by VMware, Inc., which is herein incorporated in its entirety by reference for all purposes.
Fog computing or fog networking is a computing architecture that uses edge computing elements to provide computation, storage, and other operations for internet of things devices coupled to the edge computing elements. These internet of things devices may comprise cameras, actuators, sensors, or some other similar device that generates and receives input and output data. The edge computing elements or servers may provide computational operations on the data to limit the amount of data that is required to be transferred to another computing network or system. In particular, edge computing elements may comprise industrial controllers, switches, routers, embedded servers, processors of surveillance cameras, or some other similar device capable of providing computational resources near the internet of things devices. These edge computing elements may then communicate data to and from a centralized service or data center based on the local processing for the internet of things devices.
Although fog computing provides an efficient manner of using processing resources near internet of things devices to supplement the processing of data near the devices, managing the networks can be difficult and cumbersome for administrators of the environments. In particular, edge computing elements may be frequently added, removed, have services modified, become unavailable, or have some other similar modification. As a result, communication configurations for the various edge computing elements may require consistent modification and updates to reflect the current state of the network. In particular, when a configuration for an edge computing element occurs, the fog computing network may require efficient propagation of the configuration to other systems of the fog computing network.
The technology described herein enhances the management of a fog computing environment. In one implementation, a first computing element identifies a modification to a service data structure maintained by the first computing element, wherein the service data structure comprises service status information for a fog computing environment. The first computing element further, in response to the modification, determines a key-value pair associated with the modification, and generates a gateway protocol packet containing the key-value pair. Once generated, the first computing element communicates the gateway protocol packet to a second computing element associated with the modification.
In operation, servers 101-103 function as fog servers that provide a platform for nodes 111-113, wherein nodes 111-113 represent virtual nodes or machines that provide computational operations near Internet of Things (IoT) edge devices (hereinafter “edge devices”) for an organization. These edge devices may comprise cameras, actuators, sensors, or some other similar device that generates and receives input and output data and may be communicatively coupled to at least one server of servers 101-13. In each of nodes 111-113, containers 121-123 execute that provide the various application and service functionality for the edge devices. Containers 121-123 may be responsible for obtaining data from the edge devices, providing data to the edge devices, processing data obtained from the devices, or some other similar operation.
Also illustrated in the example of computing environment 100 each server of servers 111-113 and management system 150 includes an edge gateway that can be used as a virtual router to communicate packets between various computing sites. This edge gateway may be logically networked to each of the nodes operating on a corresponding server of servers 101-103, and provide network communications to management service 150 and/or other computing systems required for the processing of data from the various edge devices. The edge gateways may provide network services such as static routing, virtual private networking, load balancing, firewall operations, Dynamic Host Configuration Protocol (DHCP), and network address translation. In the example of computing environment 100, each of the edge gateways establish a gateway protocol session, wherein the gateway protocol may be used by the edge gateways as a standardized exterior protocol, which is designed to exchange routing and reachability information between systems on the Internet. This edge gateway protocol may comprise a version of Border Gateway Protocol (BGP) in some examples, such as multiprotocol border gateway protocol (MP-BGP).
Once the gateway protocol sessions are established, the gateway protocol may be used by the systems of computing environment 100 to provide update information for service data structures 130-133 that correspond to addressing information for the servers 101-103, the nodes executing thereon, and the services that are provided by the nodes via containers 121-123. As an example, management server 150 may identify an addressing modification in data structure 130, wherein the modification may be monitored periodically, when the modification occurs, or at some other interval. In response to the modification, management service 150 may determine a key-value pair that indicates where the changed data is located in service data structure 130 and the value that was modified. Once the key-value pair is generated, the key-value pair may be added to at least one gateway protocol packet and communicated to the required server or servers in computing environment 100. Once received at the end server, the server may parse or process the data packet to identify the key-value pair and update the local service data structure based on the information in the key-value pair. In this manner, management service 150 and servers 101-103 may provide consistent updates to service information, including addressing, service identifiers, and usage for each of the servers that operate as part of computing environment 100. Further, the updates to the data structure may be communicated without establishing a second communication protocol session, but rather using an existing session to provide the required updates.
Although demonstrated in the example of
While not illustrated in the example of
As depicted in operation 200, a first computing element may identify (201) a modification to a local data structure. In some implementations, the data structure may be used for status information related to services provided by various nodes and servers of a computing environment. In particular, the data structure may maintain addressing information for the various servers, addressing information for the nodes executing on the servers, information about the types of services provided, information about the load on the servers or nodes, or some other similar information. In some implementations, the services provided by the servers may include fog services that are used to efficiently process data for edge devices near the edge devices reducing the quantity of data to be communicated to a centralized data processing system.
Once a modification is identified to the data structure, the at least one computing element may generate (202) a key-value pair for the modification and generate a gateway protocol packet comprising the key-value pair, wherein the key-value pair may indicate where the value is located in the data structure and the modification to the key-value pair. Once the packet is generated, operation 200 may communicate (203) the gateway protocol packet to a second computing element associated with the modification. Referring to the example, of computing environment 100 of
Once the modification is identified, management service 150 may determine a key-value pair and include the key-value pair in a gateway protocol packet, wherein the gateway protocol session is already established between the first computing element and the second computing element. In at least one implementation, the key-value pair may correspond to a new address family type, which can be included in a MP-BGP packet. Thus, if the modification to service data structure 130 corresponded to load information for a server of servers 101-103, the key-value pair may indicate which of the values in the data structure are being modified and indicate the new value. Once generated, the key-value pair may be placed in a MP-BGP packet for communication to at least one server of servers 101-103 associated with the modification. Once placed in the packet, the packet may be communicated by edge gateway 160 to any of servers 101-103 using the established gateway protocol sessions.
Although demonstrated in the example of management service 150 with operation 200 executing outside of the edge gateway 160, operation 200 may operate wholly or partially inside edge gateway 160. Moreover, while demonstrated in the example of
As depicted, operation 300 includes obtaining (301) the gateway protocol packet transferred from management service 150. Once obtained, server 101 parses (302) the gateway protocol packet to identify the key value pair and updates (303) local service data structure of the second computing element based on the key-value pair. As an example, the packet from management service 150 may include a key-value pair that indicates an addressing modification for a node in computing environment. Once the packet is received, server 101 will parse or process the packet to identify the key-value pair and implement the modification in service data structure 131. Advantageously, this permits computing elements in a computing environment to exchange configuration information using an already established communication protocol session.
Although demonstrated in the example of server 101 as operating outside of edge gateway 161, operation 300 may operate wholly or partially within edge gateway 161. Additionally, while demonstrated as obtaining a packet from management service 150, server 101 may exchange data with other peer services in a computing environment in some examples. In particular, rather than relying on management service 150, which may operate as a route reflector in some examples, each server of servers 101-103 may exchange data structure information to maintain the various data structures to support the required operations. As an example, server 102 may communicate a data structure update to server 101, wherein server 101 may receive the update as a gateway protocol packet, parse the packet to identify the modification, and implement the required modification.
Referring first to
Turning to
Referring to
Although demonstrated in
Referring first to
Turning to
Referring to
Although demonstrated in the examples of
Communication interface 601 comprises components that communicate over communication links, such as network cards, ports, radio frequency (RF), processing circuitry and software, or some other communication devices. Communication interface 601 may be configured to communicate over metallic, wireless, or optical links. Communication interface 601 may be configured to use Time Division Multiplex (TDM), Internet Protocol (IP), Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof. In at least one implementation, communication interface 601 may be used to communicate with edge fog devices, other servers, and/or management services for a computing environment.
User interface 602 comprises components that interact with a user to receive user inputs and to present media and/or information. User interface 602 may include a speaker, microphone, buttons, lights, display screen, touch screen, touch pad, scroll wheel, communication port, or some other user input/output apparatus—including combinations thereof. User interface 602 may be omitted in some examples.
Processing circuitry 605 comprises microprocessor and other circuitry that retrieves and executes operating software 607 from memory device 606. Memory device 606 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Memory device 606 may be implemented as a single storage device but may also be implemented across multiple storage devices or sub-systems. Memory device 606 may comprise additional elements, such as a controller to read operating software 607. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, and flash memory, as well as any combination or variation thereof, or any other type of storage media. In some implementations, the storage media may be a non-transitory storage media. In some instances, at least a portion of the storage media may be transitory. It should be understood that in no case is the storage media a propagated signal.
Processing circuitry 605 is typically mounted on a circuit board that may also hold memory device 606 and portions of communication interface 601 and user interface 602. Operating software 607 comprises computer programs, firmware, or some other form of machine-readable program instructions. Operating software 607 includes maintain module 608, generate module 609, and communicate module 610, although any number of software modules may provide a similar operation. Operating software 607 may further include an operating system, utilities, drivers, network interfaces, applications, or some other type of software. When executed by processing circuitry 605, operating software 607 directs processing system 603 to operate computing system 600 as described herein.
In one implementation, maintain module 608 directs processing system 603 to maintain a service data structure, wherein the service data structure maintains status information for services executing in a computing environment. In some implementations, the services may correspond to fog node services executed on fog nodes (virtual machines) operating in the computing environment. In some examples, the status information may include identifiers for the servers in the environment, addressing for the fog nodes executing on the servers, and service information for the services executing on the fog nodes, wherein the services may comprise containers in some examples. In at least one implementation the service information may include the type of service provided, the load on the services, or any other similar information related to the services.
While maintaining the service data structure, maintain module 608 may identify a modification to the data structure, wherein the modification may comprise a change to a value in the data structure, an addition of a container, node, or server to the data structure, a removal of a container, node, or server from the data structure, or some other similar modification to the data structure. As an example, when computing system 600 represents a server in a computing environment, computing system 600 may identify a modification to a load value associated with computing system 600, wherein the load value corresponds to a processing load generated by the nodes executing on computing system 600. This modification may be provided by a user associated with the computing environment, may be determined based on monitoring the processing load on the computing system, or may be determined in any other similar manner.
In response to identifying the modification to the service data structure, generate module 609 directs processing system 603 to generate a key-value pair representative of the modification and generate a gateway protocol packet that includes the key-value pair. Once generated, communicate module 610 may communicate the packet to another computing element in the computing environment. As an example, computing system 600 may establish a gateway protocol session with other servers operating in the computing environment. Once established, computing system 600 may communicate the gateway protocol packet with the key-value pair to one or more other servers in the computing environment, permitting the one or more other servers to update a local service data structure.
In some implementations, communicate module 610 may further be configured to obtain gateway protocol packets from one or more other computing elements (e.g., management systems, servers, and the like) and process the packets to determine any modifications to the service data structure. In at least one implementation, when a packet is received, maintain module 608 may parse the packet to determine if any key-value pairs are included in the packet, wherein the key-value pairs correspond to modifications of the service data structure. When a key-value pair is identified, maintain module 608 may determine where the new data is located in the data structure, and what data should be implemented in the data structure. Once identified, maintain module 608 may implement the modification in the service data structure.
Although demonstrated in the examples of
Returning to the elements of
Communication between management service 150 and servers 101-103 may use metal, glass, optical, air, space, or some other material as the transport media. Communication between management service 150 and servers 101-103 may use various communication protocols, such as Time Division Multiplex (TDM), asynchronous transfer mode (ATM), Internet Protocol (IP), Ethernet, synchronous optical networking (SONET), hybrid fiber-coax (HFC), circuit-switched, communication signaling, wireless communications, or some other communication format, including combinations, improvements, or variations thereof. Communication between management service 150 and servers 101-103 may use direct links or can include intermediate networks, systems, or devices, and can include a logical network link transported over multiple physical links.
The included descriptions and figures depict specific implementations to teach those skilled in the art how to make and use the best mode. For the purpose of teaching inventive principles, some conventional aspects have been simplified or omitted. Those skilled in the art will appreciate variations from these implementations that fall within the scope of the invention. Those skilled in the art will also appreciate that the features described above can be combined in various ways to form multiple implementations. As a result, the invention is not limited to the specific implementations described above, but only by the claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
201841035253 | Sep 2018 | IN | national |