Systems and methods for scalable management of audio system devices
A middleware component of an audio system configured to operate with a plurality of audio devices operating in different environments to centralize management of certain aspects of such audio devices.
1 . A method of operating an audio system, the method comprising:
responsive to receiving, via an application programming interface and from centralized audio device management software, first data associated with an event, communicate second data associated with the event to control an audio device, wherein the second data is communicated by middleware software capable of being executed by either a processor operating in an on-premises environment or a processor operating in a cloud-native environment, wherein the event is associated with a first cloud-based service;
identifying, by the middleware software, at least one termination of the first cloud-based service; and
responsive to detecting that the first cloud-based service comprised an incomplete state upon the at least one termination, connecting, by the middleware software, a second cloud-based service to enable persistent management of the audio device and the event.
2 . The method of claim 1 , wherein the event is associated with a management function of the centralized audio device management software for managing the audio device.
3 . The method of claim 2 , wherein the management function is selected from a group consisting of an update of the audio device, a control of the audio device, a discovery function, a registration function, a control function, an event notification function, a service creation function, an audio routing function, a linking function, a troubleshooting function, a licensing function, a monitoring function and an inventory maintenance function.
4 . The method of claim 1 , wherein the centralized audio device management software is associated with a third-party system.
5 . The method of claim 1 , wherein the second data is based on the audio device being associated with a set of permissions.
6 . The method of claim 1 , wherein the second data is based on the audio device being associated with a role.
7 . The method of claim 1 , wherein the second data is based on the audio device being associated with a user.
8 . The method of claim 1 , wherein the second data is communicated to the audio device via a proxy service.
9 . The method of claim 1 , wherein the audio device is selected from a group consisting of: a microphone, an audio transmitter, an audio receiver, an audio recorder, a speaker, an audio routing device, an audio processor and an audio mixer.
10 . The method of claim 1 , wherein the audio device comprises an internet of things enabled audio device.
11 . The method of claim 10 , further comprising determining a plurality of shadows of the internet of things enabled audio device at a plurality of different points in time and determining, based on the plurality of shadows, a property subscription of the internet of things enabled audio device.
12 . The method of claim 10 , further comprising employing a counter such that the second data is communicated in a designated order.
13 . The method of claim 1 , wherein the application programming interface comprises a representational state transfer application programming interface associated with a GraphQL application programming interface.
14 . A system comprising:
a local processor;
a local memory device that stores a first instance of middleware software that, when executed by the local processor operating in an on premises environment, cause the local processor to execute the first instance of the middleware software to control an audio device based on data associated with an event received from centralized audio device management software via a first application programming interface, wherein the event is associated with a first cloud-based service;
a remote processor; and
a remote memory device that stores a second instance of the middleware software that, when executed by the remote processor operating in a cloud-native environment, cause the remote processor to execute the second instance of the middleware software to control the audio device based on the data associated with the event received from the centralized audio device management software via a second application programming interface, identify at least one termination of the first cloud-based service, and responsive to detecting that the first cloud-based service comprised an incomplete state upon the at least one termination, connect to a second cloud-based service to enable persistent management of the audio device and the event.
15 . The system of claim 14 , wherein the local processor executes the first instance of the middleware software when the cloud-native environment is not available.
16 . The system of claim 14 , wherein the event is associated with a management function of the centralized audio device management software for managing the audio device.
17 . The system of claim 16 , wherein the management function is selected from the group consisting of an update of the audio device, a control of the audio device, a discovery function, a registration function, a control function, an event notification function, a service creation function, an audio routing function, a linking function, a troubleshooting function, a licensing function, a monitoring function and an inventory maintenance function.
18 . The system of claim 14 , wherein the centralized audio device management software is associated with a third-party system.
19 . The system of claim 14 , wherein the data is based on the audio device being associated with at least one of: a set of permissions, a role, and a user.
20 . The system of claim 14 , wherein the data is communicated to the audio device via a proxy service.
21 . The system of claim 14 , wherein the audio device is selected from a group consisting of: a microphone, an audio transmitter, an audio receiver, an audio recorder, a speaker, an audio routing device, an audio processor and an audio mixer.
22 . The system of claim 14 , wherein the first application programming interface is different from the second application programming interface.
23 . The system of claim 14 , wherein at least one of the first application programming interface and the second application programming interface comprises a representational state transfer application programming interface associated with a GraphQL application programing interface.
24 . The system of claim 14 , wherein the audio device comprises an internet of things enabled audio device.
25 . The system of claim 24 , wherein when executed by the remote processor operating in the cloud-native environment, the second instance of the middleware software causes the remote processor to determine a plurality of shadows of the internet of things enabled audio device at a plurality of different points in time and determine, based on the plurality of shadows, a property subscription of the internet of things enabled audio device.
26 . The system of claim 24 , wherein when executed by the remote processor operating in the cloud-native environment, the second instance of the middleware software causes the remote processor to communicate, via a counter, the data associated with the event in a designated order.