Computer-implemented method, computer program, and computer system (Internet of Things device orchestration)

The method coordinates devices through direct agent connections, enabling local actions and simulations, addressing centralized cloud inefficiencies by enhancing fog computing for reduced latency and improved security in device orchestration.

JP7719568B2Active Publication Date: 2025-08-06INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021182183
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-10
Filing Date
2021-11-08
Publication Date
2025-08-06
Estimated Expiration
2041-11-08

AI Technical Summary

Technical Problem

Existing device orchestration systems lack holistic learning capabilities and rely on centralized cloud operations, leading to increased latency, security issues, and inefficiencies in managing device ecosystems.

Method used

A method and system that coordinates devices through direct agent connections, enabling local simulations and actions without cloud infrastructure, using an orchestrator to determine device actions based on polled data and confidence scores, facilitating fog computing.

Benefits of technology

Reduces latency, minimizes downtime, enhances security, and improves device ecosystem management by providing cloud services without relying on cloud infrastructure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007719568000001
    Figure 0007719568000001
  • Figure 0007719568000002
    Figure 0007719568000002
  • Figure 0007719568000003
    Figure 0007719568000003
Patent Text Reader

Abstract

To provide a method, program and system for orchestrating devices of a device ecosystem.SOLUTION: In a system where one or more smart devices, one or more agents, an orchestrator and cloud services are all interconnected via a network, the orchestrator is configured to: receive polling data from agents that are directly connected to the devices, the polling data indicating simulations run by the devices for a cloud service; determine a preview state of a device ecosystem through the received polling data; determine an action to change a state of the device ecosystem based on the preview state; generate an instruction for the action and the devices to perform the action; and transmit the instruction to the agents. The agents having received the instruction actuates the change via the determined at least one of the devices to perform the action.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The illustrative embodiments relate generally to cloud and fog computing, and more particularly to device orchestration performed as an intermediate operation without requiring cloud processing. [Background technology]

[0002] In a network, a fog utilizing fog computing or fog networking may provide an architecture situated between the cloud and edge devices. The fog may be configured to perform a substantial amount of computation, storage, data, or signal exchange, or a combination thereof, as well as other cloud and / or fog operations locally, which is then routed through the network backbone. While the fog may provide certain features, there may be instances where the cloud is required to perform operations, particularly cloud service operations.

[0003] For example, there may be a set of devices in the fog that share a common network but are functionally unrelated to one another. In such a scenario, actions or data in a device may not produce effects on any other device. The combination of data from different devices may only be interpreted in the cloud through the cloud, where logical aggregations may be defined and transformations may be applied, executing cloud service operations. Therefore, intelligence and automatic task triggering in the fog may fail.

[0004] In another example, there may be a user utilizing a device associated with a cloud. The user may want to access device information from another device on the cloud. The user and the device associated with the cloud may be able to access the requested information using cloud services in the cloud. However, the cloud, the area in which the user is located, etc. may not be configured with fog. Therefore, pushing information toward the fog to take advantage of fog features may not be readily available for use. In such a scenario, the user is required to rely on fog and all communications associated with such data exchange, even if they must deal with increased latency and other drawbacks. Summary of the Invention [Problem to be solved by the invention]

[0005] In traditional approaches, orchestrators only need information from devices to run simulations and make decisions, which is a centralized operation that lacks the characteristics of holistic learning. [Means for solving the problem]

[0006] Exemplary embodiments disclose a method, computer program product, and computer system for coordinating devices in a device ecosystem. The method comprises receiving, by an orchestrator, polling data from agents each directly connected to one or more of the devices. The polling data indicates a respective simulation performed by each of the devices that observes the device ecosystem with respect to cloud services utilized by the devices. The method comprises determining, by the orchestrator, a preview state of the device ecosystem based on the polling data. The method comprises determining, by the orchestrator, an action to be performed by at least one of the devices that actuates a change to a state of the device ecosystem based on the preview state of the device ecosystem. The method comprises generating, by the orchestrator, an instruction indicating the action and at least one of the devices that will perform the action. The method comprises sending, by the orchestrator, the instruction to the agent, and the agent actuating the change via the determined at least one of the devices that will perform the action. The orchestrator coordinates the agents to provide the devices with cloud services that are isolated from a cloud computing system associated with the cloud services. [Brief explanation of the drawings]

[0007] The following detailed description, given by way of example and not intended to limit the exemplary embodiments thereto, will be best understood in conjunction with the accompanying drawings, in which:

[0008] [Figure 1] FIG. 1 is an exemplary schematic diagram illustrating a device orchestration system 100, according to an example embodiment.

[0009] [Figure 2]FIG. 2 illustrates an example apparatus 200 including an orchestrator 130 of a device orchestration system 100 positioned in the fog, according to an exemplary embodiment.

[0010] [Figure 3] FIG. 3 illustrates an example apparatus 300 including an orchestrator 130 of a device orchestration system 100 located in the cloud, according to an exemplary embodiment.

[0011] [Figure 4] 4 is an exemplary flowchart of a method 400 illustrating the operation of the orchestrator 130 of the device orchestration system 100 in coordinating devices using data polled from the devices through directly connected agents, according to an exemplary embodiment.

[0012] [Figure 5] FIG. 2 is an exemplary block diagram illustrating hardware components of the device orchestration system 100 of FIG. 1, according to an exemplary embodiment.

[0013] [Figure 6] FIG. 1 illustrates a cloud computing environment, in accordance with an example embodiment.

[0014] [Figure 7] FIG. 1 is an illustration of abstraction model layers in accordance with an illustrative embodiment.

[0015] The drawings are not necessarily to scale. The drawings are merely schematic representations and are not intended to portray specific parameters of example embodiments. The drawings are intended to illustrate typical example embodiments only. Like numbers represent like elements in the drawings. DETAILED DESCRIPTION OF THE INVENTION

[0016] Although detailed embodiments of the claimed structures and methods are disclosed herein, it should be understood that the disclosed embodiments are merely exemplary of the claimed structures and methods, which may be embodied in various forms. The exemplary embodiments are merely illustrative, and may be embodied in many different forms, and should not be construed as being limited to the exemplary embodiments set forth herein. Rather, these exemplary embodiments are provided so that this disclosure will be comprehensive and complete, and will fully convey the scope of the exemplary embodiments to those skilled in the art. In the description, details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the embodiments of the present invention.

[0017] References herein to "one embodiment," "an embodiment," "an exemplary embodiment," etc. indicate that the described embodiment includes a particular feature, structure, or characteristic, but that not all embodiments necessarily include the particular feature, structure, or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with one embodiment, it is presented within the knowledge of one of ordinary skill in the art to implement such feature, structure, or characteristic in connection with other embodiments, whether or not explicitly described.

[0018] In the interest of not obscuring the presentation of the exemplary embodiments, in the following detailed description, some process steps or operations known in the art may be combined together for presentation and illustration purposes, and in some instances may not be described in detail. In other instances, some process steps or operations known in the art may not be described at all. It should be understood that the following description focuses on typical features or elements according to various exemplary embodiments.

[0019] Exemplary embodiments are directed to methods, computer program products, and systems that coordinate devices using data polled from the devices through directly connected agents. As described in more detail below, each agent may establish a direct communication path with multiple devices such that data is sent from the devices to the agent without any intermediate components other than traditional network connectivity components. Exemplary embodiments provide an orchestrator that polls devices, receives data from agents, and determines whether to perform an action that changes the world state of the device, thereby providing cloud services at least in part via changes to the world state for the device without the need for a cloud infrastructure or cloud to perform an action for the cloud service. In exemplary embodiments, the orchestrator is positioned in an architecture that resides between the agents and the cloud infrastructure, such that devices may still utilize cloud services without still requiring the cloud infrastructure to effect changes in the world state. Significant benefits of exemplary embodiments may include compensating for drawbacks associated with cloud networks, such as reducing latency, minimizing downtime issues where cloud services are unavailable, and reducing security and privacy issues due to increased data communication. A detailed implementation of exemplary embodiments is as follows.

[0020] Conventional approaches to coordinating devices in a network utilize various approaches with different principles and / or objectives. For example, conventional approaches often utilize resource management as the basis for coordinating operations performed by devices in a network. Thus, each decision may incorporate how a single component, multiple components, or a system of components utilizes available resources to perform the operation. In certain conventional approaches, resource management may be such a high priority that other considerations may be omitted (e.g., a component that may not be considered due to resource unavailability may remain the best choice for performing a given operation). In another example, a conventional approach may coordinate peer devices, in which case the peer devices may represent a closed subsystem. When a device in the subsystem sends a request corresponding to a task, the conventional approach determines how to assign the task to the peer devices in the subsystem. However, this conventional approach does not consider coordinating tasks or operations when external devices are involved. In a further example, a conventional approach may provide an orchestration system that controls devices within a communication reach and manages aspects of those devices. However, if the orchestrator runs simulations to determine the aspects to be managed, this conventional approach is centralized. Thus, the orchestrator in this conventional approach only needs information from the devices to run the simulation and make decisions, which is a centralized operation that lacks the characteristics of holistic learning. In yet another example, conventional approaches focus on the manner and / or frequency at which data is provided from the devices according to a trigger condition (e.g., an event occurs, more information is sought, etc.). Thus, this conventional approach is based on how data is received from the devices for any subsequent action to be taken.

[0021] Exemplary embodiments are configured to provide an orchestration approach that compensates for various issues that arise with cloud computing, fog computing, or both. As described below and as will be apparent to those skilled in the art, exemplary embodiments enhance fog computing with an orchestration approach that obtains and implements immediate actions from devices to improve performance in critical real-time scenarios where cloud computing may be too "far away," while preventing cloud connectivity issues and maintenance delays that may arise due to the use of cloud infrastructure on which cloud processing for cloud services is performed. Exemplary embodiments may also open a single distributed access point in the cloud to each device ecosystem. In this way, exemplary embodiments may manage one or more device ecosystems for the state of the world to be manipulated without the need to involve cloud computing. Furthermore, exemplary embodiments are agnostic about the manner in which data is received from devices to coordinate distributed actions, by selecting one or more devices most appropriate to perform an action or task in a manner relatively independent of resource management, and by the orchestrator determining the state of the world for the devices through simulations polled from the devices.

[0022] The exemplary embodiments are described with particular reference to fog and cloud computing, where fog computing, cloud computing, and device computing, including devices utilizing fog and / or cloud, may be represented by respective network layers. Those skilled in the art will understand that network layers are not equivalent to other layers (e.g., OSI layers) that may be utilized in a network environment. In contrast, as described below, the network layers described herein may represent locational arrangements. The exemplary embodiments may utilize an arrangement in which a fog layer may reside between a device layer and a cloud layer. However, this arrangement is for illustrative purposes only. The exemplary embodiments may be utilized and / or modified for use in any data exchange environment in which components providing services to recipients may be managed through an orchestrator that communicates with the recipients via directly connected agents.

[0023] 1 illustrates a device orchestration system 100 according to an exemplary embodiment. According to an exemplary embodiment, device orchestration system 100 may include one or more smart devices 110, one or more agents 120, an orchestrator 130, and a cloud service 140, all of which may be interconnected via a network 108. While programming and data of exemplary embodiments may be stored and accessed remotely across several servers via network 108, programming and data of exemplary embodiments may alternatively or additionally be stored locally on only one physical computing device or among computing devices other than those shown. Device orchestration system 100 represents a communications apparatus, the components of which are configured to exchange data with each other in a direct or indirect manner.

[0024] In an exemplary embodiment, network 108 may be a communications channel over which data can be transferred between connected devices. Thus, components of device orchestration system 100 may represent network components or network devices interconnected via network 108. In an exemplary embodiment, network 108 may be the Internet, representing a worldwide collection of networks and gateways supporting communication between Internet-connected devices. Furthermore, network 108 may utilize various types of connections, such as wired, wireless, fiber optic, etc., which may be implemented as an intranet network, a local area network (LAN), a wide area network (WAN), or a combination thereof. In a further embodiment, network 108 may be a Bluetooth® network, a WiFi network, or a combination thereof. In another further embodiment, network 108 may be a telecommunications network used to facilitate calls between two or more parties, comprising a terrestrial network, a wireless network, a closed network, a satellite network, or a combination thereof. In general, network 108 may represent any combination of connections and protocols that support communication between connected devices. For example, the network 108 may also represent direct or indirect wired or wireless connections between components of the device orchestration system 100 that do not utilize the network 108.

[0025] In an exemplary embodiment, one or more smart devices 110 may include a device exchange client 112 and may be an enterprise server, a laptop computer, a notebook, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a server, a personal digital assistant (PDA), a rotary dial phone, a touch-tone phone, a smartphone, a mobile phone, a virtual device, a thin client, an Internet of Things (IoT) device, or any other electronic device or computing system capable of receiving data from and transmitting data to other computing devices. While smart device 110 is shown as a single device, in other embodiments, smart device 110 may be comprised of a cluster of computing devices or multiple computing devices working together or independently, such as in a modular fashion. Smart device 110 is described in further detail as a hardware implementation with reference to FIG. 5, as part of a cloud implementation with reference to FIG. 6, or as processing utilizing a function abstraction layer with reference to FIG. 7, or combinations thereof.

[0026] In an exemplary embodiment, the device exchange client 112 may act as the client in a client-server relationship and may be a software, hardware, or firmware, or combination thereof, based application that can determine and exchange data corresponding to the state of the world or device ecosystem of which the smart device 110 is a part, over the network 108. In an embodiment, the device exchange client 112 performs operations in a substantially background capacity and in an automated manner, as well as interacts with one or more components of the device orchestration system 100, and may utilize a variety of wired and / or wireless connectivity protocols, including Bluetooth®, 2.4 GHz and 5 GHz Internet, near field communication, Z-Wave, Zigbee®, etc., for data transmission and exchange associated with data used to modify versions of applications.

[0027] The device exchange client 112 may be configured to determine data corresponding to the state of the world or device ecosystem including the smart device 110 and the additional smart devices 110. The device exchange client 112 may receive a request for polling data. As a result of receiving the request, the device exchange client 112 may perform one or more operations to determine the state of the world or device ecosystem based on at least locally currently available information about the smart device 110. For example, changes to sensory data (e.g., from a health monitoring device), changes to document data (e.g., changes reflected in a document stored in the cloud), etc. may be stored locally on the smart device 110 before being exchanged with the cloud for updates and further cloud operations (e.g., logical aggregation, transformation, etc.). Thus, the device exchange client 112 may perform a simulation locally based on the available data to generate polling data responsive to the request. Those skilled in the art will understand various techniques and approaches that may be used to perform a simulation based on available information to generate polling data. For example, based on the goals and / or objectives of the cloud service, the simulation may utilize a respective set of operations to perform the simulation. An example embodiment may be configured such that the smart device 110 performs a suitable set of actions to perform a simulation of the polling data that will be generated.

[0028] In an exemplary embodiment, one or more agents 120 may include an agent exchange client 122 and a trusted client 124, and may be an enterprise server, a laptop computer, a notebook, a tablet computer, a netbook computer, a personal computer (PC), a desktop computer, a server, a personal digital assistant (PDA), a rotary dial phone, a touch-tone phone, a smartphone, a mobile phone, a virtual device, a thin client, an Internet of Things (IoT) device, or any other electronic device or computing system capable of receiving data from and transmitting data to other computing devices. While agent 120 is shown as a single device, in other embodiments, agent 120 may be comprised of a cluster of computing devices or multiple computing devices, such as in a modular fashion, working together or independently. Agent 120 is described in further detail as a hardware implementation with reference to FIG. 5, as part of a cloud implementation with reference to FIG. 6, or processing utilizing a function abstraction layer with reference to FIG. 7, or combinations thereof.

[0029] As described in more detail below, the agent 120 may be a component utilized in fog computing, cloud computing, or both to provide certain features, such as increased security. The agent 120 may be configured such that a direct connection is established between the agent 120 and selected ones of the smart devices 110. It is noted that a "direct" connection does not require the smart device 110 to be connected to the agent 120 without any intervening components (e.g., a wired connection connected to the smart device 110 on one end and to the agent on the other end). In contrast, those skilled in the art will appreciate that a direct connection may include various network components between which communications are exchanged. However, components such as those used in cloud computing to provide cloud services 140 may not be part of the communication path between the smart device 110 and the agent 120 to establish a direct connection. A direct connection between the smart device 110 and the agent 120 may be established based on various factors (e.g., location, service agreement, type of cloud service offered, etc.).

[0030] In an exemplary embodiment, the agent exchange client 122 may act as a client in a client-server relationship as well as a server in a client-server relationship with the device exchange client 112 and may be a software, hardware, or firmware, or combination thereof, based application that can exchange data corresponding to the state of the world or device ecosystem of which the smart device 110 is a part, over the network 108. In an embodiment, the agent exchange client 122 exchanges data regarding the smart device 110 directly connected to it and may utilize a variety of wired and / or wireless connectivity protocols, including Bluetooth, 2.4 GHz and 5 GHz Internet, near field communication, Z-Wave, Zigbee, etc., for data transmission and exchange associated with data used to modify versions of applications.

[0031] Using direct connections with the smart devices 110 and their respective device exchange clients 112, the agent exchange client 122 may be configured to maintain direct connections with selected ones of the smart devices 110 according to predetermined factors with which the device orchestration system 100 may be configured. The agent 120 may receive or be programmed to request polling data from the directly connected smart devices 110. For example, the agent 120 may receive a request for polling data (e.g., from the orchestrator 130), and the agent 120 may forward the request to its connected smart devices 110. In another example, the agent 120 may be programmed to request polling data from the smart devices 110 at predetermined intervals (e.g., at a given cycle in which features of the exemplary embodiments are to be executed). Thus, the agent 120 may receive polling data from the smart devices 110 and forward the polling data.

[0032] The agent 120 may also receive further instructions and forward the instructions to an appropriate destination, such as the smart device 110. As described below, the exemplary embodiment may determine the state of the world or preview the state of the world based on polling data from the smart devices 110, and may determine tasks to be performed by selected ones of the smart devices 110. The agent 120 to which the selected smart devices 110 are connected may receive the corresponding instructions, so that the selected smart devices 110 may then receive the instructions and perform their assigned tasks.

[0033] In an exemplary embodiment, the trust client 124 may act as a client in a client-server relationship and may be a software, hardware, or firmware-based application, or a combination thereof, capable of processing polling data from the smart devices 110 via the network 108. The trust client 124 may be configured to determine a confidence score for the polling data received from the smart devices 110. The confidence score may be a metric of accuracy of the state of the world or device ecosystem, which may be determined from the polling data. That is, the confidence score may represent a calculation based on the polling data from each of the smart devices 110 that identifies how confident the agent 120 is that the state preview based on the corresponding smart device 110 is a good representation. For example, if the polling data relates to a cloud service that tracks the health status of users utilizing the smart devices 110, a simulation from the corresponding smart device 110 may be used to generate polling data with a high likelihood that all of the results produced as other data from other smart devices 110 may be irrelevant. Thus, the trust client 124 may determine a high confidence score for such polling data (e.g., a score of 0.95 where confidence scores range from 0 to 1). In another example, if the polling data relates to a cloud service where multiple users utilizing multiple different smart devices 110 contribute to maintaining the data, the data available to one of the smart devices 110 may provide only a partial picture. The complete picture may be determined by considering only the data from each smart device 110 that utilizes the cloud service. In such a scenario, the trust client 124 may determine a relatively low confidence score for each piece of polling data for each individual determination. For example, the trust client 124 may determine that the confidence score is proportional to the smart device 110 associated with the given polling data being part of the cloud service.In a particular example, the trust client 124 may determine a trust score having a value that is an even distribution among the smart devices 110 utilizing the cloud service, such that a device ecosystem including four smart devices 110 each has a trust score of 0.25. However, one skilled in the art will understand that there may be other considerations (e.g., priority level, contribution level, metrics of how much current information is used to generate polling data, etc.) that may affect the trust score in a device ecosystem involving more than one smart device 110.

[0034] Cloud service 140 may represent any cloud service provider and the services offered to a user associated with smart device 110. Those skilled in the art will understand the various components, devices, connections, etc. that may be involved in providing cloud service 140. For example, cloud service 140 may utilize cloud computing, where a network of remote servers and other network devices hosted over a network (e.g., the Internet) may provide data storage, management, processing, etc., as opposed to a local server or network maintained by an entity. Exemplary embodiments may be utilized and / or modified for use with cloud service 140 and may encompass any cloud service available to a user of smart device 110. In addition to the traditional benefits of utilizing cloud computing (e.g., utilizing an established infrastructure without having to maintain separate servers, etc.), cloud service 140 may provide certain features (e.g., security features) related to smart device 110, an example of which is described in more detail below. Cloud service 140 may also represent a cloud infrastructure in which network devices may reside and perform various operations in providing different cloud services 140. As described below, exemplary embodiments may enable cloud services, such as those included in cloud services 140, to still be provided to a device ecosystem without a cloud infrastructure.

[0035] In the exemplary embodiment, orchestrator 130 may include scoring program 132 and selection program 134 and may act as a server in a client-server relationship with agent exchange client 122. Orchestrator 130 may be an enterprise server, a laptop computer, a notebook, a tablet computer, a netbook computer, a PC, a desktop computer, a server, a PDA, a rotary phone, a touch-tone phone, a smartphone, a mobile phone, a virtual device, a thin client, an IoT device, or any other electronic device or computing system capable of receiving data from and transmitting data to other computing devices. While orchestrator 130 is shown as a single device, in other embodiments, orchestrator 130 may be comprised of a cluster of computing devices or multiple computing devices working together or independently. Orchestrator 130 is also shown as a separate component, but in other embodiments, the operations and features of orchestrator 130 may be combined with one or more of the other components of device orchestration system 100. Orchestrator 130 is described in further detail as a hardware implementation with reference to FIG. 5, as part of a cloud implementation with reference to FIG. 6, or as processing using a function abstraction layer with reference to FIG. 7, or a combination thereof.

[0036] As described above, the agent 120 may be configured to receive requests for polling data, transmit polling data received from the smart device 110, and receive instructions to select directly connected smart devices. In addition to the operations described below, the orchestrator 130 may also generate corresponding data packages for the above-described operations of the agent 120. For example, the orchestrator 130 may be configured to send a request for polling data to the agent 120. The orchestrator 130 may determine when to send the request based on a cycle for performing the operations of the exemplary embodiments (e.g., at predetermined time intervals). In another example, the orchestrator 130 may be configured to receive polling data from the smart device 110 via a corresponding one of the agents 120 as a result of sending a request for polling data, or from an agent 120 programmed to request polling data at a given cycle. In a further example, and as described in more detail below with respect to selection program 134, orchestrator 130 may also generate instructions that are received by agent 120 so that agent 120 may forward the instructions to the appropriate destination.

[0037] In an exemplary embodiment, scoring program 132 may be a software, hardware, or firmware application, or a combination thereof, configured to incorporate confidence scores received from agent 120 against corresponding polling data from smart device 110. Scoring program 132 may determine how polling data corresponding to smart device 110 is to be utilized based on each corresponding confidence score. For example, the confidence score may provide a weight for utilizing particular pieces of polling data.

[0038] In an exemplary embodiment, the selection program 134 may be a software, hardware, or firmware application, or a combination thereof, configured to determine the state of the world or device ecosystem of which the smart device 110 is a part or a preview (collectively or individually referred to as the “state of the world”) based on polling data from the smart device and other complementary information, such as respective confidence scores associated with the polling data and historical data (e.g., information about how the cloud service was used, previous actions performed by the agent 120 and the smart device 110 to affect the world with corresponding previous results, previous orchestrations for historical cycles, etc.). The preview state of the world or device ecosystem may indicate the expected state of the world upon one or more actions performed by the smart device 110. In determining the state of the world, the selection program 134 may determine a task, action, or operation, or combination thereof, to be performed by the smart device to appropriately affect or modify the world, including the smart device 110. Thus, the task may essentially enable a cloud service to be provided by the orchestrator 130 without the need for a cloud infrastructure or cloud components to perform the corresponding actions. Upon determining the actions to be performed and determining which of the smart devices 110 will perform the corresponding actions, the selection program 134 may generate instructions to be sent to an agent 120 directly connected to the determined smart device 110, whereby the agent 120 sends the instructions to the determined smart device 110 via the direct connection.In this way, the orchestrator 130 may provide the brain functionality of the device orchestration system 100, given historical and / or real-time data (e.g., via simulations performed by the smart devices 110 to generate polling data), and decide what to do (e.g., for each cycle in which polling data is received) and which of the agents 120 to trigger to the appropriate smart devices 110 to perform the action.

[0039] As described above, orchestrator 130 may use historical information to determine its selection for the current cycle. For example, historical information may include previous orchestrations in each previous cycle. Thus, orchestrator 130 may be configured with a reinforcement learning model in which previous orchestrations performed by orchestrator 130 may be used to learn and train the model, such that subsequent orchestrations by orchestrator 130 may generate more accurate orchestrations that achieve desired changes to the world.

[0040] The orchestrator 130 may be configured to coordinate the smart devices 110 that comprise the world or device ecosystem. Thus, the smart devices 110 may be within a given ecosystem as a whole, may be from external devices (e.g., multiple ecosystems), etc. The orchestrator 130 thereby determines a selection of which of the smart devices 110 will perform an action according to a request that affects the world, for example. An exemplary implementation thereof is described below. The orchestrator 130 may perform a selection from an available set of smart devices 110 by choosing at least one of these smart devices 110 that fulfills the request. In determining the selection, the device orchestration system 100 configures the orchestrator 130 with a back-end orchestration framework.

[0041] As mentioned above, the orchestrator 130 may be the brain that determines the actions to be performed by the smart devices 110 to achieve changes to the world. However, the device orchestration system 100 is configured to be inherently distributed. For example, the orchestrator 130 is not configured to simulate cloud services that the polling data may target. Instead, the orchestrator 130 coordinates the smart devices 110 to run a simulation and generate corresponding polling data, where each polled smart device 110 observes its own environment / world / ecosystem. The smart devices 110 send the polling data to their directly connected agents 120, which then send the polling data (i.e., simulation data results) to the orchestrator 130. The orchestrator 130 may also have access to other related information, such that the polling data becomes an augmented version of the simulation results used to implement the selection of the smart devices 110 to perform at least one action to change the state of the world. Through a distributed approach, the orchestrator 130 has the benefit of minimizing the amount of information stored about the smart devices 110 by relying on polling data to select which of the smart devices 110 to perform an action on.

[0042] As described above, exemplary embodiments may be directed to a cloud computing environment including a cloud tier and a device tier where the smart device 110 may reside. Exemplary embodiments may also be directed to a fog computing environment including a fog tier between the cloud tier and the device tier. Fog between the cloud tier and the device tier may refer to a communicative arrangement. Additionally, exemplary embodiments may utilize a cloud and / or fog utilizing an agent 130 (e.g., as opposed to an agentless system). Thus, exemplary embodiments may utilize features of fog and agent 130. For example, fog may provide an extension to the cloud through an edge node (e.g., agent 130) that directly connects to the smart device 110 (the edge node being physically closer to the smart device 110). In another example, fog may mitigate issues caused by the cloud, especially when the cloud (e.g., infrastructure providing cloud services) is remote or too far away. In this manner, fog may provide lower latency than cloud utilization, eliminate bandwidth issues, and the like, as well as provide device benefits including higher security, improved power efficiency, and the like, while providing an improved user experience. In further examples, agent 130 may collect relevant information, send information to a central control system (e.g., cloud infrastructure), and provide the ability to control security (e.g., at the virtual machine level). Exemplary embodiments may also involve agent 130 performing additional operations, such as forwarding requests from orchestrator 130 to poll data from smart devices 110, forwarding instructions from orchestrator 130 to smart devices 110 directly connected to it, etc.

[0043] The exemplary embodiments may utilize cloud computing and fog computing features, where agent 120 may reside in the fog tier and orchestrator 130 may reside in the cloud tier or the fog tier. The positioning of orchestrator 130 in performing the operations described above may allow the features of orchestrator 130 to be applied to various scenarios.

[0044] FIG. 2 illustrates an example apparatus 200 including the orchestrator 130 of the device orchestration system 100 positioned in the fog, according to an exemplary embodiment. As described above and illustrated in the apparatus 200 of FIG. 2, the device orchestration system 100 may include a device layer 205, a fog layer 225, and a cloud layer 240. The device layer 205 may include IoT devices 210, 215, and 220, which correspond to the smart device 110 of FIG. 1. The cloud layer 240 may include the cloud service 140 of FIG. 1. As described above, the cloud may include various features. For example, the cloud layer 240 may include an IoT privacy (IoTp) 245 mechanism through which privacy aspects may be preserved when using the cloud service 140. In the apparatus 200, the fog layer 225 may include agents 230 and 235, which correspond to the agent 120 of FIG. 1, and a fog orchestrator 250, which corresponds to the orchestrator 130 of FIG. 1.

[0045] The apparatus 200 may include multiple connections between components. For example, as described above, the agents 230 and 235 may be directly connected to the IoT devices 210, 215, and 220. In an exemplary implementation, the agent 230 may be directly connected to the IoT device 210, and the agent 235 may be directly connected to the IoT devices 215 and 220 based on proximity factors. In another example, the IoT devices 210, 215, and 220 may be connected to the IoTp 245 through their respective physical interfaces. In yet another example, the fog orchestrator 250 may be connected to the agents 230 and 235. In a further example, the fog orchestrator 250 may be connected to the cloud service 140 of the cloud layer 240. In an exemplary implementation, the orchestrator 250 may include an application programming interface (API) (not shown) configured to establish a connection to the cloud service 140. In this manner, orchestrator 250 may have information about the cloud services 140 being utilized by IoT devices 210-220 and may have knowledge about logical aggregations, transformations, etc. that should be applied to affect the state of the world. The orchestrator's 250 API may also be configured to establish connections to additional mechanisms, such as web-based computerized maintenance management systems (CMMS), systems configured to support various device types and vendors.

[0046] Through layers 205, 225, and 240 and various connections, the device orchestration system 100, which positions the fog orchestrator 250 in the fog layer 225, may enable the fog orchestrator 250 to provide the features of exemplary embodiments to various scenarios. For example, IoT devices 210-220 may share a common fog network but are functionally unrelated to one another. Thus, the operation or data of one of the IoT devices 210-220 may not produce an effect on any of the other IoT devices 210-220. In this scenario, the combination of data from different IoT devices 210-220 may be interpreted only in the cloud, where a user may define logical aggregations and apply appropriate transformations. As a result, intelligence and automatic task triggering within the fog may fail. However, exemplary embodiments may enable the fog to work in isolation from the cloud and execute autonomous processes. For example, autonomous processes may include device health, maintenance, device interactions, etc. The orchestrator 250 deployed in the fog layer 225 may process sensory data (e.g., provided as polling data) from the IoT devices 210-220 and trigger the best actions for specific conditions to affect the state of the world that includes the IoT devices 210-220.

[0047] FIG. 3 illustrates an example apparatus 300 including the orchestrator 130 of the device orchestration system 100 located in the cloud, according to an exemplary embodiment. The apparatus 300 may be substantially similar to the apparatus 200. For example, the apparatus 300 may also include a device layer 305, a fog layer 325, and a cloud layer 340. The device layer 305 may include IoT devices 310, 315, and 320, corresponding to the smart device 110 of FIG. 1. The cloud layer 340 may include the cloud service 140 of FIG. 1, as well as an IoTp 345 mechanism. In the apparatus 300, the fog layer 325 may include agents 330 and 335, corresponding to the agent 120 of FIG. 1. In contrast to the apparatus 200, in the apparatus 300, the cloud layer 340 may include a cloud orchestrator 350, corresponding to the orchestrator 130 of FIG. 1. The apparatus 300 may include multiple connections in a substantially similar manner to the apparatus 200 , with modifications to the connections involving a cloud orchestrator 350 residing in a cloud tier 340 .

[0048] Through layers 305, 325, and 340 and various connections, the device orchestration system 100, which positions the cloud orchestrator 350 in the cloud layer 340, may enable the cloud orchestrator 350 to provide features of exemplary embodiments to various other scenarios. For example, a user utilizing one of the IoT devices 310-320 may want to access IoT device information. The user and / or IoT device 310-320 may access the IoT device information using the cloud service 140. However, pushing information from the IoT device 310-320 toward fog computing may not be readily available. In contrast, exemplary embodiments may enable information to be made available to the IoT device 310-320. The cloud orchestrator 350 may obtain information about the user and / or IoT device 310-320 from the fog via agents 330, 335 directly connected to the IoT device 310-320. When the orchestrator 250 receives a request for information from a user or one or both of the IoT devices 310-320, the orchestrator 350 may request a preview from the agents 330, 335 by polling the IoT devices 310-320 and receiving corresponding polling data. The orchestrator 350 may then proceed to determine the response with the most relevant information to the request.

[0049] 4 shows an example flowchart of a method 400 illustrating the operation of the orchestrator 130 of the device orchestration system 100 in coordinating the smart devices 110 using data polled from the smart devices 110 through directly connected agents 120, according to an example embodiment. The method 400 may relate to operations performed by the scoring program 132 and the selection program 134 of the orchestrator 130. Thus, the method 400 will be described from the perspective of the orchestrator 130.

[0050] The orchestrator 130 may receive polling data and corresponding confidence scores from agents 120 directly connected to the smart devices 110 (stage 402). As the cycle executes, the orchestrator 130 may generate requests to be sent to the agents 120, thereby receiving the polling data. The agents 120 may forward the requests to the smart devices 110, thereby allowing each of the smart devices 110 to run a simulation (e.g., based on a cloud service) utilizing available information about the smart devices 110. In this manner, the smart devices 110 may observe their environment (e.g., the world, the device ecosystem, etc.). When running a simulation, the smart devices 110 may generate polling data. According to an exemplary implementation, the smart devices 110 may provide the polling data in raw form. The agents 130 may analyze the raw polling data and generate expanded polling data, which is then provided to the orchestrator 130 in response to the request. The agent 130 may also receive polling data and determine a confidence score for each polling data from each one of the smart devices 110.

[0051] As a result of receiving the polling data, the orchestrator 130 may determine the state of the world including the smart devices 110 (stage 404). In an exemplary implementation, the orchestrator 130 may determine a preview of the state of the world by incorporating sensory information contained in the polling data. By running simulations on the smart devices 110, the orchestrator 130 may process the polling data to determine any actions to be performed by any of the smart devices 110 so that it may actuate appropriate changes to the state of the world.

[0052] In determining the state of the world, the orchestrator 130 may incorporate confidence scores of the polling data. In an example implementation, the confidence scores may be for selected scenarios, where the polling data for the given scenario is scored. For each polling data from the smart devices 110, relevant information may be extracted from the polling data, where an associated confidence score is determined for the given scenario. Upon incorporating the confidence scores associated with the polling data, the orchestrator 130 may then determine the actions to be performed for the given scenario, as well as the components (e.g., selected ones of the smart devices 110) that will perform the actions. For example, the orchestrator 130 may filter each scored polling data to determine the actions and the components that will perform the actions. In this manner, the orchestrator 130 may determine one or more actions to be performed by one or more of the smart devices 110, where one action may involve one or more of the smart devices 110, or one of the smart devices 110 may involve one or more of the actions. As mentioned above, orchestrator 130 may utilize a reinforcement learning model where historical information from previous cycles may provide insight in determining behavior and selecting components.

[0053] As a result of processing the polled data, orchestrator 130 may determine whether action is required to change the state of the world in an appropriate manner (decision 406). As a result of no action being required (decision 406, "No" branch), orchestrator 130 may complete the current cycle and update any models through learning from the currently completed cycle so that subsequent cycles may utilize any available historical information.

[0054] As a result of at least one action being sought (decision 406, "Yes" branch), the orchestrator 130 may determine the action and one or more components to perform the action (stage 408). The orchestrator 130 may send an instruction indicating the action and the component to the corresponding agent 120 (stage 410). Thus, for the selected action, the orchestrator 130 may actuate a change by sending the instruction to the agent 120, which in turn instructs the smart device 110 to perform the action. In an exemplary implementation, the orchestrator 130 may be configured to generate a single instruction that includes the action to be performed and one or more components that perform the action to actuate the change. The agent 120 may process the instruction and determine whether and how to actuate the change (e.g., determine whether any of the directly connected smart devices 110 receive the instruction). Upon actuating the change, the smart device 110 may provide result data so that the actual change to the state of the world may be known, such as through running another simulation and providing updated polling data.

[0055] The orchestrator 130 may continue this process by determining whether there is at least one more action (decision 412). As a result that there is at least one more action to process (decision 412, "yes" branch), the orchestrator 130 provides appropriate instructions to the agent 120, which then actuates changes to the smart device 110 through the execution of the action. As a result that there are no more actions to process (decision 412, "no" branch), the orchestrator 130 may complete the current cycle and update any models through learning from the currently completed cycle so that subsequent cycles may utilize any available historical information.

[0056] Exemplary embodiments are configured to coordinate multiple devices that utilize cloud services. Exemplary embodiments provide an orchestrator that requests polling data from the devices, the polling data indicating the results of simulations performed by the devices as they observe the world and the device ecosystem. The orchestrator of exemplary embodiments may process the polling data and utilize other relevant information to determine one or more actions to be performed by one or more of the devices. The orchestrator may generate instructions that are sent to agents that actuate changes to the world or the device ecosystem by instructing the devices to perform the actions.

[0057] 5 illustrates a block diagram of devices in the device orchestration system 100 of FIG. 1 in accordance with an exemplary embodiment. It should be understood that FIG. 5 is intended only to illustrate one example implementation and is not intended to suggest any limitation with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environments may be made.

[0058] As used herein, a device may include one or more processors 02, one or more computer-readable RAMs 04, one or more computer-readable ROMs 06, one or more computer-readable storage media 08, device drivers 12, read / write drives or interfaces 14, and network adapters or interfaces 16, all interconnected through a communications fabric 18. The communications fabric 18 may be implemented with any architecture designed to pass data and / or control information between processors (such as microprocessors, communications and network processors), system memory, peripheral devices, and any other hardware components in the system.

[0059] One or more operating systems 10 and one or more application programs 11 are stored on one or more computer-readable storage media 08 for execution by one or more of the processors 02 via one or more of the respective RAMs 04 (which typically include cache memory). In the illustrated embodiment, each of the computer-readable storage media 08 may be a magnetic disk storage device of an internal hard drive, a CD-ROM, a DVD, a memory stick, magnetic tape, a magnetic disk, an optical disk, a semiconductor storage device such as RAM, ROM, EPROM, flash memory, or any other computer-readable tangible storage device capable of storing computer programs and digital information.

[0060] As used herein, a device may include a R / W drive or interface 14 that reads from or writes to one or more portable computer-readable storage media 26. Application programs 11 for such devices may be stored on one or more of the portable computer-readable storage media 26 and read via the respective R / W drive or interface 14 and loaded onto the respective computer-readable storage media 08.

[0061] A device as used herein may also include a network adapter or interface 16, such as a TCP / IP adapter card or a wireless communication adapter (such as a 4G wireless communication adapter using OFDMA technology). The application program 11 of the computing device may be downloaded to the computing device from an external computer or external storage device via a network (e.g., the Internet, a local area network, or other wide area network, or a wireless network) and the network adapter or interface 16. From the network adapter or interface 16, the program may be loaded into the computer-readable storage medium 08. The network may comprise copper wire, fiber optics, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof.

[0062] The devices used herein may also include a display screen 20, a keyboard or keypad 22, and a computer mouse or touchpad 24. The device driver 12 interfaces to the display screen 20 for imaging, to the keyboard or keypad 22, to the computer mouse or touchpad 24, or to the display screen 20 for pressure-sensitivity of alphanumeric character entry and user selection, or to a combination thereof. The device driver 12, the R / W drive or interface 14, and the network adapter or interface 16 may comprise hardware and software (stored in a computer-readable storage medium 08, or in ROM 06, or both).

[0063] The programs described herein may be identified based on the application in which they are implemented in a particular one of the exemplary embodiments. However, it should be understood that the naming of any particular program herein is used merely for convenience, and thus the exemplary embodiments should not be limited to use only in any particular application identified and / or suggested by such naming.

[0064] Based on the foregoing, a computer system, method, and computer program product have been disclosed. However, numerous modifications and substitutions can be made without departing from the scope of the exemplary embodiments. Accordingly, the exemplary embodiments have been disclosed by way of example and not limitation.

[0065] Although this disclosure includes a detailed description of cloud computing, it should be understood that implementation of the teachings referred to herein is not limited to a cloud computing environment. Rather, exemplary embodiments may be implemented in conjunction with any other type of computing environment now known or later developed.

[0066] Cloud computing is a model of service delivery that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and released with minimal administrative effort or interaction with the provider of the service. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0067] The properties are as follows:

[0068] On-Demand Self-Service: Cloud consumers can unilaterally provision computing capacity, such as server time and network storage, automatically as needed without the need for human interaction with the provider of the service.

[0069] Broad Network Access: Capabilities are available over the network and accessed through standard mechanisms, facilitating use by heterogeneous thin or thick client platforms (eg, cell phones, laptops, and PDAs).

[0070] Resource Pooling: A provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically allocated and reallocated according to demand. There is location independence in the sense that consumers generally have no control or knowledge over the exact location of the resources provided, but may be able to specify location at a higher level of abstraction (e.g., country, state, or data center).

[0071] Rapid scalability: Capacity can be quickly and elastically provisioned, sometimes automatically, to rapidly scale out and rapidly release and rapidly scale in. To the consumer, the capacity available for provisioning often appears infinite, and can be purchased in any amount at any time.

[0072] Metering Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of utilized services.

[0073] The service model is as follows:

[0074] Software as a Service (SaaS): The consumer is offered the ability to use a provider's applications running on a cloud infrastructure. The applications are accessible from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, storage, or even individual application capabilities, except in some cases for limited user-specific application configuration settings.

[0075] Platform as a Service (PaaS): The ability offered to consumers is to deploy consumer-created or acquired applications, written using provider-supported programming languages and tools, on a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including the network, servers, operating systems, or storage, but does have control over the deployed applications and, in some cases, the configuration of the environment in which the applications are hosted.

[0076] Infrastructure as a Service (IaaS): The ability offered to consumers is to provision processing, storage, network, and other basic computing resources on which they can deploy and run any software, which can include operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but do have control over the operating system, storage, deployed applications, and in some cases limited control to select networking components (e.g., host firewalls).

[0077] The deployment model is as follows:

[0078] Private Cloud: Cloud infrastructure is operated solely for the institution. It may be managed by the institution or a third party and may reside on-site or off-site.

[0079] Community Cloud: Cloud infrastructure is shared by multiple agencies and supports a specific community of shared interests (e.g., mission, security requirements, policies, and compliance considerations). It may be managed by the agency or a third party and may reside on-site or off-site.

[0080] Public Cloud: Cloud infrastructure is made available to the general public or large business groups and is owned by an institution that sells cloud services.

[0081] Hybrid Cloud: A cloud infrastructure is a blend of two or more clouds (private, community, or public) that remain distinct entities but are linked together by standardized or proprietary technologies that allow for data and application portability (e.g., cloud bursting for load balancing between clouds).

[0082] Cloud computing environments are service-oriented and focus on statelessness, low coupling, modularity, and semantic interoperability. At the heart of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0083] Referring now to FIG. 6, an exemplary cloud computing environment 50 is shown. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 40 with which local computing devices used by cloud consumers, such as, for example, a personal digital assistant (PDA) or cellular phone 54A, a desktop computer 54B, a laptop computer 54C, or an automobile computer system 54N, or combinations thereof, may communicate. The nodes 40 may communicate with each other. They may be grouped (not shown) physically or virtually in one or more networks, such as private, community, public, or hybrid clouds as described above, or combinations thereof. This enables the cloud computing environment 50 to provide infrastructure, platform, or software, or combinations thereof, as a service without the cloud consumer having to maintain resources on their local computing devices. The types of computing devices 54A-N shown in FIG. 6 are intended to be merely exemplary, and it will be understood that the computing nodes 40 and the cloud computing environment 50 can communicate with any type of computerized device through any type of network or network-addressable connection, or both (e.g., using a web browser).

[0084] Referring now to Figure 7, a set of function abstraction layers provided by cloud computing environment 50 (Figure 6) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 7 are intended to be merely exemplary, and example embodiments are not limited thereto. As shown, the following layers and corresponding functions are provided:

[0085] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture-based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0086] The virtualization layer 70 provides an abstraction layer from which examples of virtual entities may be provided, such as virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.

[0087] In one example, management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic procurement of computing and other resources used to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of those resources. In one example, these resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, as well as protection for data and other resources. User portal 83 provides access to the cloud computing environment for consumers and system administrators. Service level management 84 provides allocation and management of cloud computing resources so that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides advance arrangements for and procurement of cloud computing resources for anticipated future needs in accordance with SLAs.

[0088] The workload layer 90 provides examples of functionality for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this layer include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instruction delivery 93, data analytics processing 94, transaction processing 95, and device orchestration processing 96.

[0089] The present invention may be a system, a method, or a computer program product, or a combination thereof, at any possible level of technical detail of integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions that cause a processor to implement aspects of the present invention.

[0090] A computer-readable storage medium can be a tangible device that can hold and store instructions used by an instruction execution device. The computer-readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. A non-exclusive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disc read-only memories (CD-ROMs), digital versatile discs (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge-in-groove structures with instructions recorded thereon, and any suitable combination of the above. Computer-readable storage medium, as used herein, is not to be construed as being a transitory signal per se, such as radio frequency or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or electrical signals transmitted through wires.

[0091] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each receiving computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing / processing device.

[0092] Computer-readable program instructions that implement the operations of the present invention may be source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or object-oriented programming languages such as Smalltalk®, C++, and procedural programming languages such as the “C” programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, a field programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the present invention.

[0093] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0094] Computer-readable program instructions may be provided to a computer processor or other programmable data processing apparatus to create a machine, whereby the instructions, executing via the computer processor or other programmable data processing apparatus, create means for implementing the functions / acts specified in a block or blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium and can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, whereby the computer-readable storage medium having instructions stored thereon comprises a product containing instructions that implement aspects of the functions / acts specified in a block or blocks of the flowcharts and / or block diagrams.

[0095] The computer-readable program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be executed on the computer, other programmable apparatus, or other device to create a computer-implemented process, whereby the instructions executing on the computer, other programmable apparatus, or other device implement the functions / acts specified in a block or blocks of the flowcharts and / or block diagrams.

[0096] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, comprising one or more executable instructions that implement the specified logical function(s). In some alternative implementations, the functions shown in the blocks may occur in an order other than that shown in the figures. For example, two blocks shown in succession may in fact be performed as a single step, or may be executed simultaneously, substantially simultaneously, partially, or fully in a time-overlapping manner, or the blocks may even be executed in the reverse order, depending on the functionality involved. It is also noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a special-purpose hardware-based system that performs the specified functions or operations, or may embody a combination of special-purpose hardware and computer instructions. According to this specification, the following items are also disclosed. [Item 1] 1. A computer-implemented method for coordinating devices in a device ecosystem, comprising: receiving, by an orchestrator, polling data from agents directly connected to one or more of the devices, respectively, indicative of respective simulations run by each of the devices observing the device ecosystem with respect to cloud services utilized by the devices; determining, by the orchestrator, a preview state of the device ecosystem based on the polling data; determining, by the orchestrator, an action to be performed by at least one of the devices to actuate a change to a state of the device ecosystem based on the preview state of the device ecosystem; generating, by the orchestrator, instructions indicating the operation and at least one of the devices on which to perform the operation; sending, by the orchestrator, the instruction to the agent, wherein the agent actuates the change via the determined at least one of the devices that performs the action; the orchestrator orchestrates the agents to provide the cloud service to the device in isolation from a cloud computing system associated with the cloud service; Computer-implemented methods. [Item 2] receiving, for each polling data from a corresponding one of the devices, a confidence score indicative of the relevance of the polling data to the cloud service; determining the preview state of the device ecosystem further based on the confidence score; determining the action to be performed by the at least one of the devices is further based on the confidence score. Item 1. The computer-implemented method of item 1. [Item 3] 3. The computer-implemented method of claim 1, wherein the agent is deployed in a fog communicatively disposed between the device and the cloud computing system. [Item 4] Item 4. The computer-implemented method of item 3, wherein the orchestrator is deployed in one of the fog and the cloud computing system. [Item 5] Item 5. The computer-implemented method of item 4, wherein the orchestrator is deployed in the fog and the devices share a common network of the fog and are functionally independent of each other. [Item 6] Item 5. The computer-implemented method of item 4, wherein the orchestrator is deployed in the cloud computing system and generating the instructions is the result of receiving an information request associated with the cloud service from one of the devices. [Item 7] 7. The computer-implemented method of any one of items 1 to 6, wherein determining the action to be performed by the at least one of the devices is based, at least in part, on a reinforcement learning model trained on a previous orchestration performed by the orchestrator. [Item 8] 1. A computer program for orchestrating devices in a device ecosystem, the computer program comprising: receiving polling data from agents directly connected to one or more of the devices, respectively, indicative of respective simulations performed by each of the devices observing the device ecosystem with respect to cloud services utilized by the devices; determining a preview state of the device ecosystem based on the polling data; determining, based on the preview state of the device ecosystem, an action to be performed by at least one of the devices to actuate a change to the state of the device ecosystem; generating, by the orchestrator, instructions indicating the operation and at least one of the devices on which to perform the operation; sending the instruction to the agent, the agent actuating the change via the determined at least one of the devices performing the action; the orchestrator orchestrates the agents to provide the cloud service to the device in isolation from a cloud computing system associated with the cloud service; Computer program. [Item 9] The orchestrator, receiving, for each polling data from a corresponding one of the devices, a confidence score indicative of the relevance of the polling data to the cloud service; determining the preview state of the device ecosystem further based on the confidence score; determining the action to be performed by the at least one of the devices is further based on the confidence score; Item 9. The computer program according to item 8. [Item 10] 10. The computer program of claim 8, wherein the agent is deployed in a fog communicatively arranged between the device and the cloud computing system. [Item 11] Item 11. The computer program of item 10, wherein the orchestrator is deployed in one of the fog and the cloud computing system. [Item 12] Item 12. The computer program product of item 11, wherein the orchestrator is deployed in the fog and the devices share a common network of the fog and are functionally independent of each other. [Item 13] Item 12. The computer program product of item 11, wherein the orchestrator is deployed in the cloud computing system and the step of generating the instructions is the result of receiving an information request associated with the cloud service from one of the devices. [Item 14] Item 14. The computer program of any one of items 8 to 13, wherein the procedure for determining the action to be performed by the at least one of the devices is based, at least in part, on a reinforcement learning model trained on previous orchestrations performed by the orchestrator. [Item 15] 1. A computer system for coordinating devices in a device ecosystem, comprising: one or more computer processors; one or more computer-readable storage media; and program instructions stored on the one or more computer-readable storage media, executed by at least one of the one or more computer processors, capable of performing a method, the method comprising: receiving, by an orchestrator, polling data from agents directly connected to one or more of the devices, respectively, indicative of respective simulations run by each of the devices observing the device ecosystem with respect to cloud services utilized by the devices; determining, by the orchestrator, a preview state of the device ecosystem based on the polling data; determining, by the orchestrator, an action to be performed by at least one of the devices to actuate a change to a state of the device ecosystem based on the preview state of the device ecosystem; generating, by the orchestrator, instructions indicating the operation and at least one of the devices on which to perform the operation; sending, by the orchestrator, the instruction to the agent, wherein the agent actuates the change via the determined at least one of the devices that performs the action; the orchestrator orchestrates the agents to provide the cloud service to the device in isolation from a cloud computing system associated with the cloud service; Computer system. [Item 16] The method comprises: receiving, for each polling data from a corresponding one of the devices, a confidence score indicative of the relevance of the polling data to the cloud service; determining the preview state of the device ecosystem further based on the confidence score; determining the action to be performed by the at least one of the devices is further based on the confidence score. Item 16. The computer system of item 15. [Item 17] 17. The computer system of claim 15, wherein the agent is deployed in a fog communicatively disposed between the device and the cloud computing system. [Item 18] Item 18. The computer system of item 17, wherein the orchestrator is deployed in one of the fog and the cloud computing system. [Item 19] 20. The computer system of claim 18, wherein the orchestrator is deployed in the fog and the devices share a common network of the fog and are functionally independent of one another. [Item 20] Item 19. The computer system of item 18, wherein the orchestrator is deployed in the cloud computing system and generating the instructions is the result of receiving an information request associated with the cloud service from one of the devices.

Claims

1. 1. A computer-implemented method for coordinating devices in a device ecosystem, comprising: receiving, by an orchestrator, polling data from agents directly connected to one or more of the devices, respectively, indicative of results of respective simulations performed by each of the devices to observe the device ecosystem with respect to cloud services utilized by the devices; determining, by the orchestrator, a preview state of the device ecosystem based on the polling data; determining, by the orchestrator, an action to be performed by at least one of the devices to actuate a change to a state of the device ecosystem based on the preview state of the device ecosystem; generating, by the orchestrator, instructions for at least one of the devices to perform the actions; sending, by the orchestrator, the instruction to the agent, wherein the agent actuates the change via the determined at least one of the devices that performs the action; the orchestrator coordinates the agents such that the cloud service is provided to the device without executing the cloud service by a cloud computing system associated with the cloud service. Computer-implemented methods.

2. receiving, for each polling data from a corresponding one of the devices, a confidence score indicating a confidence in the relevance of the polling data to the cloud service; determining the preview state of the device ecosystem further based on the confidence score; determining the action to be performed by the at least one of the devices is further based on the confidence score. The computer-implemented method of claim 1 .

3. The computer-implemented method of claim 1 or 2, wherein the agent is deployed in a fog communicatively disposed between the device and the cloud computing system.

4. The computer-implemented method of claim 3 , wherein the orchestrator is deployed in one of the fog and the cloud computing system.

5. The computer-implemented method of claim 4 , wherein the orchestrator is deployed in the fog and the devices share a common network of the fog and are functionally independent of each other.

6. 5. The computer-implemented method of claim 4, wherein the orchestrator is deployed in the cloud computing system and generating the instructions is a result of receiving an information request associated with the cloud service from one of the devices.

7. 7. The computer-implemented method of claim 1, wherein determining the action to be performed by the at least one of the devices is based, at least in part, on a reinforcement learning model trained on a previous orchestration performed by the orchestrator.

8. 1. A computer program for orchestrating devices in a device ecosystem, the computer program comprising: receiving polling data from agents directly connected to one or more of the devices, respectively, indicative of results of respective simulations performed by each of the devices to observe the device ecosystem with respect to cloud services utilized by the devices; determining a preview state of the device ecosystem based on the polling data; determining, based on the preview state of the device ecosystem, an action to be performed by at least one of the devices to actuate a change to the state of the device ecosystem; generating, by the orchestrator, instructions for causing at least one of the devices to perform the actions; sending the instruction to the agent, the agent actuating the change via the determined at least one of the devices performing the action; the orchestrator coordinates the agents such that the cloud service is provided to the device without executing the cloud service by a cloud computing system associated with the cloud service. Computer program.

9. The orchestrator, receiving, for each polling data from a corresponding one of the devices, a confidence score indicating a confidence in the relevance of the polling data to the cloud service; determining the preview state of the device ecosystem further based on the confidence score; determining the action to be performed by the at least one of the devices is further based on the confidence score; 9. A computer program according to claim 8.

10. The computer program product of claim 8 or 9, wherein the agent is deployed in a fog communicatively arranged between the device and the cloud computing system.

11. The computer program product of claim 10 , wherein the orchestrator is deployed in one of the fog and the cloud computing system.

12. The computer program product of claim 11 , wherein the orchestrator is deployed in the fog and the devices share a common network of the fog and are functionally independent of each other.

13. 12. The computer program product of claim 11, wherein the orchestrator is deployed in the cloud computing system and the generating the instructions is a result of receiving an information request associated with the cloud service from one of the devices.

14. 14. The computer program product of claim 8, wherein the procedure for determining the action to be performed by the at least one of the devices is based, at least in part, on a reinforcement learning model trained on previous orchestrations performed by the orchestrator.

15. 1. A computer system for coordinating devices in a device ecosystem, comprising: one or more computer processors; one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media, executed by at least one of the one or more computer processors, capable of performing a method, the method comprising: receiving, by an orchestrator, polling data from agents directly connected to one or more of the devices, respectively, indicative of results of respective simulations performed by each of the devices to observe the device ecosystem with respect to cloud services utilized by the devices; determining, by the orchestrator, a preview state of the device ecosystem based on the polling data; determining, by the orchestrator, an action to be performed by at least one of the devices to actuate a change to a state of the device ecosystem based on the preview state of the device ecosystem; generating, by the orchestrator, instructions for at least one of the devices to perform the actions; sending, by the orchestrator, the instruction to the agent, wherein the agent actuates the change via the determined at least one of the devices that performs the action; the orchestrator coordinates the agents such that the cloud service is provided to the device without executing the cloud service by a cloud computing system associated with the cloud service. Computer system.

16. The method comprises: receiving, for each polling data from a corresponding one of the devices, a confidence score indicating a confidence in the relevance of the polling data to the cloud service; determining the preview state of the device ecosystem further based on the confidence score; determining the action to be performed by the at least one of the devices is further based on the confidence score.

16. The computer system of claim 15.

17. The computer system of claim 15 or 16, wherein the agent is deployed in a fog communicatively disposed between the device and the cloud computing system.

18. The computer system of claim 17 , wherein the orchestrator is deployed in one of the fog and the cloud computing system.

19. 20. The computer system of claim 18, wherein the orchestrator is deployed in the fog and the devices share a common network of the fog and are functionally independent of one another.

20. 20. The computer system of claim 18, wherein the orchestrator is deployed in the cloud computing system and generating the instructions is a result of receiving an information request associated with the cloud service from one of the devices.

Citation Information

Patent Citations

  • Efficient State Machines for Real-Time Dataflow Programming

    JP2019512973A

  • Multi-access edge computing (MEC) service contract formation and workload execution

    US20200007414A1

  • Distributed software-defined industrial systems

    WO2019099111A1