System, method, and computer program for internet of things (IoT) community services

As described herein, a system, method, and computer program are provided for Internet of Things (IoT) community services. In use, a platform of an IoT network is provided to a plurality of IoT devices of the IoT network, where the platform has one or more services accessible to the plurality of IoT devices. Further, the platform executes the one or more services to enhance functionality of the plurality of IoT devices.

FIELD OF THE INVENTION

The present invention relates to Internet of Things (IoT) devices.

BACKGROUND

The Internet of Things (IoT) refers to the interconnection of computing devices (also referred to IoT devices) via the Internet which enables the computing devices to send and/or receive data. For example, IoT technology may allow the computing devices to communicate with one another. In some embodiments, the computing devices may be embedded in everyday objects, such as home appliances, and/or may include mobile devices, personal devices, etc.

To date, IoT technology has been limited to being used in the context of the existing capabilities of the IoT devices, including being used for gathering data from the IoT devices and/or initiating existing functionality of the IoT devices. However, IoT technology has not been extended for use in improving the functionality of the IoT devices themselves.

SUMMARY

As described herein, a system, method, and computer program are provided for Internet of Things (IoT) community services. In use, a platform of an IoT network is provided to a plurality of IoT devices of the IoT network, where the platform has one or more services accessible to the plurality of IoT devices. Further, the platform executes the one or more services to enhance functionality of the plurality of IoT devices.

DETAILED DESCRIPTION

FIG. 1illustrates a method100for providing Internet of Things (IoT) community services, in accordance with one embodiment. The method100may be carried out by one or more computing device (e.g. servers) located within an IoT network. For example, the method100may be carried out by a computer processor, software, or any combination thereof.

As shown in operation102, a platform of an IoT network is provided to a plurality of IoT devices of the IoT network, where the platform has one or more services accessible to the plurality of IoT devices. In the context of the present description, the IoT network is any network enabling communications between IoT devices. In addition, the IoT devices may be any devices capable of communicating over the IoT network, such as computing devices embedded in everyday objects (e.g. home appliances, etc.), mobile devices, personal devices, etc.

It should be noted that providing the platform refers to making the platform accessible to the IoT devices. In particular, the platform is provided to make the one or more services of the platform accessible to the IoT devices. Thus, the platform may be any environment (e.g. configured in software and/or hardware) which provides (e.g. stores, executes, etc. computer code representing) the one or more services for use by the IoT devices. In one embodiment, the platform may be located on one or more computing devices (e.g. servers) of the IoT network.

Further, as shown in operation104, the platform executes the one or more services to enhance functionality of the IoT devices. The platform may execute the services upon request by the IoT devices. In any case, the one or more services of the platform are each any service configured to enhance functionality (e.g. operation) of the IoT devices. Enhancing the operation of the IoT devices may include adding new functionality to the IoT devices, increasing a rate at which tasks are completed, enabling collaboration between the IoT devices to achieve certain goals (e.g. complete certain functions), or any other improvement to functionality of the IoT devices.

In one embodiment, the one or more services may include a skills library service providing a library through which the IoT devices share skills with one another. In another embodiment, the one or more services may include a task sharing bus service providing a task sharing bus through which the IoT devices share tasks with one another. In yet another embodiment, the one or more services may include a partner bridging service providing a virtual bridge through which the IoT devices communicate to achieve a common goal. More details regarding the exemplary embodiments of these services will be described below with reference toFIGS. 3-5.

FIG. 2illustrates a system200providing IoT community services, in accordance with one embodiment. As an option, system200may be implemented in the context of the details of the previous figure and/or any subsequent figure(s). Of course, however, the system200may be implemented in the context of any desired environment. Further, the aforementioned definitions may equally apply to the description below.

As shown, an IoT service platform202is provided to a plurality of IoT devices206A-N. The IoT service platform202and IoT devices206A-N may be located in a common IoT network. Thus, communications between the IoT service platform202and IoT devices206A-N may be enabled via the IoT network. In an embodiment, the IoT service platform202may be located on a server or other computing device of the IoT network.

As also shown, the IoT service platform202has (e.g. provides) one or more services204A-N that are accessible to the IoT devices206A-N. The services are operable to enhance functionality of the IoT devices206A-N. For example, the services may include a skills library service providing a library through which the IoT devices share skills with one another (e.g. seeFIG. 3); a task sharing bus service providing a task sharing bus through which the IoT devices share tasks with one another (e.g. seeFIG. 4); and/or a partner bridging service providing a virtual bridge through which the IoT devices communicate to achieve a common goal (e.g. seeFIG. 5).

FIG. 3illustrates a method300of the system200ofFIG. 2for providing a skills library service, in accordance with one embodiment. The method300may be performed by the IoT service platform202of the system200. It should be noted that the method300is just one exemplary implementation of the skills library service mentioned above.

As shown in operation302, a library of the skills library service stores skills published to the library by the IoT devices206A-N. The skills may each be computer code, an IoT device configuration, or any other information held by one of the IoT devices206A-N that could be used to enhance functionality of another one of the IoT devices206A-N.

The library may be any repository capable of storing the skills and making those skills accessible to the IoT devices206A-N. For example, the library may be searchable by the IoT devices206A-N for retrieving one or more of the skills published to the library. Further, in operation304, the skills are provided from the library to the IoT devices206A-N upon request.

In one exemplary embodiment, one or more of the IoT devices206A-N equipped with machine learning capabilities may be designed to evolve and learn from the moment they are activated. These IoT devices206A-N can be called to perform activities which offer them opportunities to develop new skills in unique ways.

The skills library service allows these IoT devices206A-N to share those skills, by either sharing the new lines of code which accomplish a newly learned function and/or sharing the data and configuration which are required to fulfill the newly learned function.

The library may be available on the IoT network to allow the IoT devices206A-N to communicate to it directly. The library may store all skills reported by the IoT devices206A-N, optionally with the details of the IoT device206A-N who owns the skill. The skills may be organized in multiple orders based on various attributes, such as the IoT device206A-N which reported the skill, the range of IoT devices206A-N the skill fits, the language in which the skill is written, the value the skill is meant to provide, the improvement the skill provides over other methods, etc.

In an embodiment, the library may be searchable by IoT devices206A-N which are looking for workable efficient solutions to a task they were assigned to perform (e.g. when those IoT devices206A-N are not already operable to perform the task or when the IoT devices206A-N prefer more efficient functionality to perform the task).

IoT devices206A-N which select to adopt a skill published to the library may, in one embodiment, be required to pay a fee from the account of the IoT device206A-N owner for the use of the skill, thereby purchasing the right to learn the skill. The money from the purchase may be paid back to the owner of the IoT device206A-N which published the skill, optionally with a commission for the community library service. The payment for the skill may be done as a money transfer or as an internal coin of the community services of the platform202which would allow the IoT device206A-N publishing the skill to learn skills of his own from the library utilizing the coin. The value of a skill in the library may start from a standard rate and may be determined by any attribute of the skill, such as the type of skill, language or popularity of the IoT devices206A-N it can be applied on, etc. The value of the skill may also adjust over time as the popularity of the skill among IoT devices206A-N goes up or down.

FIG. 4illustrates a method400of the system200ofFIG. 2for providing a task sharing bus service, in accordance with one embodiment. The method400may be performed by the IoT service platform202of the system200. It should be noted that the method400is just one exemplary implementation of the skills library service mentioned above.

As shown in operation402, a task sharing bus of the task sharing bus service stores information for tasks requested by the IoT devices206A-N. For each task, the information may include a description of work requested to be performed. Thus, each task may be work that is being requested to be performed for the requesting IoT device206A-N.

In operation404, the information is provided from the task sharing bus to the IoT devices206A-N upon request for use by the IoT devices206A-N in performing the tasks. To this end, the task sharing bus may be any repository capable of storing the information for the requested tasks and making that information accessible to the IoT devices206A-N. For example, the task sharing bus may be accessible to the IoT devices206A-N for identifying one or more of the tasks published to the task sharing bus. When an IoT device206A-N retrieves a task from the task sharing bus, the IoT device206A-N may perform the task and publish results of the task either back to the task sharing bus for retrieving by the requesting IoT device206A-N or may send the results directly to the requesting IoT device206A-N.

In one exemplary embodiment, an IoT device206A-N which performs complex tasks for which help is needed from other IoT devices206A-N can publish to the task sharing bus a request. The requests published may include multiple attributes detailing the requested task, including information such as: the nature of the task required, the instructions for the required task to be completed, the location in which the task should be performed in (if such is required), the location in which the product (results) the task produces or modifies needs to be delivered to (if such is required), the quality of work expected, the description of the required product the task should enable, etc.

To facilitate the completion of complex tasks, the requesting IoT device206A-N may break down the task to sub-tasks allowing IoT devices206A-N with skills limited to a certain aspect (sub-task) of the task to perform the sub-task which is within its skill set while other IoT devices206A-N complete the remaining sub-tasks.

Examples of tasks an IoT device206A-N may publish to the task sharing bus for being up by other IoT devices206A-N may include, but are not limited to the following.

Example 1: An IoT device206A-N is required by its owner to take care of plants in the owner's house, but one day a plant dies and is needed to be replaced. The IoT device206A-N requests to package a plant of the same type and ship it to the owner's address. The IoT device206A-N provides, to the task sharing bus, the details of the plant which needs to be found and packaged as a first sub-task and the shipment details as a second sub-task dependent on the first sub-task. The first IoT device206A-N which picks up the first sub-task from the task sharing bus provides to the task sharing bus the details of the packaged plant, so a second IoT device206A-N may retrieve the details from the task sharing bus and handle the shipment as the second sub-task.

Example 2: An autonomous cooking IoT device206A-N is required to produce a very high order within a very short time. As a single device, the IoT device206A-N can only produce a fraction of the order. A task with multiple sub-tasks is published to the task sharing bus by the autonomous cooking IoT device206A-N, where each product is requested to be produced as a sub-task limited to devices within a range or proximity to the requesting autonomous cooking IoT device206A-N. Multiple local cooking IoT devices206A-N within the same area retrieve the sub-tasks from the task sharing bus and complete the various products, and in turn the owner of the autonomous cooking IoT device206A-N is notified for collecting the products from the various locations of the local cooking IoT devices206A-N.

Example 3: An IoT device206A-N is responsible for a network coverage at a certain location. The IoT device206A-N must go under maintenance for several hours. Before shutting down, the IoT device206A-N publishes a task to the task sharing bus for any other IoT device206A-N in the same location to allow relaying network traffic for this time-period when the IoT device206A-N will be shut down. Multiple IoT devices206A-N may be required to relay the traffic, some of which may go in and out of the area during the required period, thus covering only part of the task for part of the time. IoT devices206A-N which accept a task may get paid for the activity they perform. The payment may be paid to the account of the owner of the IoT device206A-N fulfilling the task or it may be paid utilizing an internal coin of the community platform202to the account of the IoT device206A-N.

To fund the task, the IoT device206A-N requesting the task may also submit an amount to be paid and the amount may be collected upfront by the community platform202, so the account will not need to be contacted at the time of completion. As another option, the amount may be committed when publishing the task but only collected when the task is completed. The decision of which type of payment to take may change depending on the type of task or other attributes. The community platform202may take a commission for tasks paid.

FIG. 5illustrates a method500of the system200ofFIG. 2for providing a partner bridging service, in accordance with one embodiment. The method500may be performed by the IoT service platform202of the system200. It should be noted that the method500is just one exemplary implementation of the skills library service mentioned above.

As shown in operation502, a virtual bridge of a partner bridging service receives collaboration requests published to it by a plurality of IoT devices206A-N. The collaboration requests each include a request from one IoT device206A-N for one or more additional IoT devices206A-N to collaborate with the one IoT device206A-N to accomplish a common goal. Thus, the IoT devices206A-N may communicate through the virtual bridge to achieve the common goal. The virtual bridge may be a central communication service, which all IoT devices206A-N can connect to in order to enable communication between the IoT devices206A-N. In another embodiment, the virtual bridge may be the element all IoT devices206A-N which require collaboration can connect to, in order to find other IoT devices206A-N which they can collaborate with.

In operation504, each of the collaboration requests is distributed from the virtual bridge to at least a subset of the IoT devices206A-N. A collaboration request may be distributed to IoT devices206A-N that are selected (by the platform202) based on criteria defined for the collaboration request (e.g. criteria defined by the requesting IoT device206A-N). When an IoT device206A-N receives the collaboration request from the virtual bridge, the IoT device206A-N may choose whether to collaborate with the requesting IoT device206A-N. The choice may be communicated back to the requesting IoT device206A-N.

For example, while outsourcing tasks allows an IoT device206A-N to complete activities that can be done off line, there may be goals IoT devices206A-N have which require partnering with other IoT devices206A-N and remaining in constant communication to achieve the goal. The platform2020may include virtual bridges to allow communication between IoT devices206A-N which need to partner to achieve a chain of tasks which require online collaboration between the IoT devices206A-N.

The virtual bridges may support multiple methods of communication in multiple computer languages and technologies. The virtual bridges may also support translation of the commands flowing between the machines to allow devices which communicate in different languages to pass messages while the virtual bridge translates the communication to the language the receiving end requires. The virtual bridge may support collaboration of multiple IoT devices206A-N on a single virtual bridge all working together towards a common goal.

The virtual bridge may support reaching out to a population of IoT devices206A-N which fit a criterion defined by the IoT device206A-N which opened (requested) the virtual bridge. The criterion may include diverse attributes such as skills of the IoT devices206A-N it is reaching out to, the location of the IoT devices206A-N or the proximity of the IoT devices206A-N to the IoT device206A-N which opened the virtual bridge. This ability enables reacting to an IoT device206A-N in an emergency state.

Examples of uses of the partner bridging service may include, but are not limited to, the following.

Example 1: A security system (IoT device206A-N) in a house identifies a dangerous robber is trying to run away from the house. He is caught on camera controlled by the security system and the cops are alerted, but he is starting to get out of the range the cameras of the security system can cover. The system partners with nearby security systems (IoT devices206A-N), through the virtual bridge, to point their cameras on him, track his movements and send to the police a continuous video of the criminal to assist in his capture.

Example 2: An autonomous car (IoT device206A-N) can navigate the road at high speeds without reaching out to the cars (IoT devices206A-N) around it. However, once emergency strikes and the car is out of control endangering its passengers and the cars around it, the IoT device206A-N navigating the car may reach out to the cars around it through a virtual bridge broadcasting to the cars to join the virtual bridge. Cars joining can receive from the IoT device206A-N data on its current trajectory to avoid collision or even to assist in slowing down the out of control car and forcing it to a safe location to stop.

Example 3: An IoT device206A-N designed to allow blind people to see, by translating images of the surrounding to electronic signals and broadcasting those to the visual part of the brain, may utilize a camera located on its owner for a majority of the images it collects. However, should that camera be compromised or have limitations in collecting all images needed to give a full range, the IoT device206A-N may reach out to other cameras in the vicinity which are in the community, through a virtual bridge, to provide added images so the person using the device will not be impacted by the limitations of his camera and lose his eye sight.

Example 4: IoT devices206A-N responsible for managing inventory in stores may hold an open virtual bridge to: (1) communicate inventory surpasses; (2) balance inventory by trading in the surplus items with stores which require the items, and (3) get items which close shortages without having to go back to suppliers. Such a virtual bridge may hold hundreds of stores in constant communication as customers buy items and shortages start generating in specific items. This can be especially crucial for inventories including medical or other quick perishing commodities.

The Value of Paying for Services on the Community Platform

The resources of the IoT devices206A-N devices, and the resources which the IoT devices206A-N utilize to perform their activities, are limited. Placing a value (monetary or internal to the platform202) to an activity in the community allows those resources to be managed and to verify that an equivalent resource is returned for the one invested.

The ability to generate income to the owner of an IoT device206A-N may encourage owners of IoT devices206A-N to invest in their IoT devices206A-N, and allocate time and effort to train machine learning IoT devices206A-N in new skills, or allocate time for IoT devices206A-N to take on tasks from the community, thus reducing the need for added resources to be wasted to achieve the same goal.

FIG. 6illustrates a network architecture600, in accordance with one possible embodiment. As shown, at least one network602is provided. In the context of the present network architecture600, the network602may take any form including, but not limited to a telecommunications network, a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, peer-to-peer network, cable network, etc. While only one network is shown, it should be understood that two or more similar or different networks602may be provided.

Coupled to the network602is a plurality of devices. For example, a server computer604and an end user computer606may be coupled to the network602for communication purposes. Such end user computer606may include a desktop computer, lap-top computer, and/or any other type of logic. Still yet, various other devices may be coupled to the network602including a personal digital assistant (PDA) device608, a mobile phone device610, a television612, etc.

FIG. 7illustrates an exemplary system700, in accordance with one embodiment. As an option, the system700may be implemented in the context of any of the devices of the network architecture600ofFIG. 6. Of course, the system700may be implemented in any desired environment.

As shown, a system700is provided including at least one central processor701which is connected to a communication bus702. The system700also includes main memory704[e.g. random access memory (RAM), etc.]. The system700also includes a graphics processor706and a display708.

The system700may also include a secondary storage710. The secondary storage710includes, for example, a hard disk drive and/or a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, etc. The removable storage drive reads from and/or writes to a removable storage unit in a well-known manner.

Computer programs, or computer control logic algorithms, may be stored in the main memory704, the secondary storage710, and/or any other memory, for that matter. Such computer programs, when executed, enable the system700to perform various functions (as set forth above, for example). Memory704, storage710and/or any other storage are possible examples of non-transitory computer-readable media.

The system700may also include one or more communication modules712. The communication module712may be operable to facilitate communication between the system700and one or more networks, and/or with one or more devices through a variety of possible standard or proprietary communication protocols (e.g. via Bluetooth, Near Field Communication (NFC), Cellular communication, etc.).