Fiware: Manager & IoT Agent relationship - IDAS - agent

I have installed the IDAS Backend Device Manager and the UltraLight IoT Agent. After executing it, I see two processes running: one is the agent and the other the manager. But I don't know which one is the exact functionality of this manager.
Are required both the agent and the manager to connect the context broker with a device?
Can this communication happen using only the agent?
Is the manager in charge of receiving all the messages from the devices and to forwarding them to the corresponding agent?
Is the manager simply an admin API to manage the installed agents and the devices?

The Manager is not needed for small/medium IoT deployments. So generally you will not need it. The Manager is used for large settings where multiple IoT Agents of different types handle lots of devices.
You can read more about the manager in the documentation at the github.
As explained in (1), yes.
It is actually the contrary, a northbound umbrella so the ContextBroker or other northbound elements may talk only with one entity that proxies all IoT Agents.
A bit of that but also it may concentrate all ContextBroker - IoT Agents comms.
Thanks for using IDAS!
Cheers,

Related

When Azure IoT Hub can be preferred over Iot Central?

I am not understanding when Azure IoT Hub can be preferred over Azure IoT Central. From the readings done so far, IoT central seems better over all the aspects.
Anybody can explain me where are the situations where IoT hub is better than IoT Central?
Thanks
There is no definitive answer to that question, neither are "better", but most of the times one will fit your use case more than the other.
If you want a complete, managed way of connecting devices to the cloud and create dashboards (within the product's limits), a Software as a Service solution like Azure IoT Central can be a match. Think about the requirements of the project you're looking to do, and if it's all supported by IoT Central, go for it! If there are some features you can build by leveraging data export from IoT Central, it might still be a great fit.
If you want to build bi-directional communication and device registration for IoT devices into your own cloud platform, IoT Hub comes into play. Maybe you need better control of the data, or maybe the data insights you need aren't supported by IoT Central. There are a lot of cases where it might not be the best choice. IoT Hub gives you a lot more flexibility that you can use to create almost any IoT scenario.
Both are not directly comparable, there are specific advantages of IoT Central which you may need to consider.
IoT Hub is a PaaS service which can be used with other services to create an IoT solution while IoT Central is IoT Application platform which can be used as-is or extended via companion application. Even addressing basic functionality in IoT Central you will need over dozen other services and you own responsibility to design, manage and administer the orchestration yourself.
IoT Central internally uses multiple IoT Hubs (HA/DR) and bunch of services to bring the functionality that you see in the application. This includes App Service to host the UX, Rules Engine, Fast Storage, API layer, Data Export, RBAC, in-app Multi-tenancy , etc. etc. The key advantages you get -
Full featured IoT solution with high availability, security, scalability that is available in < 10 secs under 99.9% SLA
Simplification, easy to connect any device or simulate basic capabilities using the built-in plug-n-play support. Just select any device from the pnp catalog and try it out even before purchasing the devices.
Create user or app level dashboards with device specific views. Device specific view can be auto-generated with PnP devices.
Rule creation, alerting and integration with other applications via Logic Apps, Functions
Data Export functionality to Event Hub, Service Bus, Blob Storage or Web hooks
Rich Job's interface allowing updating device configurations or firmware
RBAC in combination with Organizations allow giving specific permissions to user.
The big advantage is all this is available with a very simpler per device per month pricing that starts as low as 8 cents per device per month ($2 a year) + additional messages https://azure.microsoft.com/en-us/pricing/details/iot-central/
In general unless you already have UX, Storage, Rules engine, etc. elements required for IoT Solution and need to add IoT Hub to ingest and manage IoT devices it will make more sense to start with IoT Central and build with it. It will save time, efforts and you can focus on specific differentiation than build the underlying plumbing and owning the management and sustenance. It is difficult to come to that price point given the high cost of cloud engineers required to support and maintain it.
It is recommended that all customers begin their IoT journey with our aPaaS offering Azure IoT Central. IoT Central is a ready-made environment for IoT solution development. As an aPaaS offering it is built to simplify and accelerate IoT solution assembly and operations, by preassembling PaaS services from the IoT Platform (including IoT Hub and the IoT Hub Device Provisioning Service) and across Azure. A customer that starts with IoT Central builds valuable expertise regardless of whether they go to production with IoT Central, or later build a custom solution to meet complex business needs using PaaS services. To learn more about onboarding to Azure IoT check out this documentation: https://aka.ms/azureiotarch and stay tuned for a session at Microsoft Ignite Nov3-4th Entitled Onboarding to Azure IoT

IoT hub and device provisioning service

Is Microsoft provided few standard device provisioning service in Azure marketplace which can be directly used for device provisioning for any custom device? Or OEM needs to create a device provisioning service for their custom device ,put that in the market place and then use that device provisioning service from market place?
Could someone please clarify? Thanks.
MS has a Auto-provisioning service but is not a full fledged system. But that is to be expected as the market requirements can be vary broad and very much use case specific.
https://learn.microsoft.com/en-us/azure/iot-dps/
In terms of OEM services. OEM's can probably create such services, but again the use case and ownership questions arise.
So the basically the 'basic' tools are there but it is kinda left to you on how you want to deal with the situation. Thinking of integration with CI/CD and the custom software needed to install on each device - Some custom work such a provisioning service is need. At least in our case.
But this can be a nightmare when going to the thousands of devices to manage.
As Van mentioned, Azure does have a device provisioning service that can be used for any custom device, and new features were announced about a month ago.
If there are gaps in the service, please suggest improvements in the UserVoice! As the PM for provisioning service, knowing the gaps means we can start to fill them.

Minimum requirements Azure IoT Hub

Does someone know the bare minimum required for a device to connect to the Azure IoT Hub and to send and receive messages (in terms of memory usage, processing power etc.). Or is this really case-specific?
I couldn't find a conclusive answer on the web. Does someone have experience with this?
Many thanks!
Does someone know the bare minimum required for a device to connect to
the Azure IoT Hub and to send and receive messages (in terms of memory
usage, processing power etc.).
As #juunas pointed out, it is hard to say precisely.
But you can check from the following two aspects(I assume you mean devices that communicate directly with Azure IoT Hub):
Using Azure IoT SDKs, the device needs to be capable of establishing an IP connection, support TLS, have at least 64KB of RAM ...
Using REST api, the device can connect to the Azure IoT Hub and to send and receive messages directly over the Internet from any application that can send an HTTPS request and receive an HTTPS response.
There's nothing like system/set-up requirements for Azure IoT Hub so there's no specific document from Microsoft talking about this topic. Depending on your target application you can pick the device, as all descent embedded devices can act as IoT device for Azure.
You can take a look at Azure Certified IoT device catalogue and find out whether particular device is listed under that.
MS has published 2 Whitepapers on this. You may find this useful
Evaluating Your IOT Security
The right secure hardware for your IoT deployment

Azure Service Bus Alternatives

We continue to see instability in Azure Service Bus and are looking for alternatives. Ideally we would like something we can run locally in a Windows 2012 R2 domain and has many of the same feature sets as Azure SB. We have taken a look at the Service Bus For Windows 1.1 however that product has not been updated in a while and we are not sure about its future. We use C# so ideally there would be a client API/wrapper that would make the integration with our existing application relatively easy. Open source and free software is totally acceptable. :-)
Background
In the couple of weeks we have had SB go down in the datacenter we have chosen to host our queues. We have moved to another datacenter and it too has issues every once in a while. The issues typically last anywhere from 2 min to almost an entire day and eventually Microsoft gets them running again.
I would recommend exploring RabbitMQ with MassTransit as an API, or NServiceBus (which is commercial)
RabbitMQ is a message broker that supports multiple transport layers (such as HTTP, AMQP, and STOMP among others) has feature parity with Azure service bus, however it is not cloud based, and you will need to host it on some infrastructure and support it, but it is robust and supports clustering and federation.
RabbitMQ is open source. Both free and commercial versions available. Has paid support.

Microsoft Azure to embedded device communcation

I have a question about an Azure IoT project based on Windows Azure. In short; it's an embedded application (ARM based device, running on a custom RTOS) who's sending device information to Windows Azure using the recently announced Serverbus Event Hub. It's using the HTTS endpoint of the Event Hub to send it's information to. So for so good.
But now I want to "talk" to the device from the cloud. Basically, I have a website running on Azure, and I want to send commands to that device (which is not 100% of the time connected, as it's an on-the-field device). What's the best way to do this? What technologies can I use?
Do I need to use Sockets, TCP connections, long-polling HTTP requests, ..? The big 'thing' is that the device is running a custom RTOS, so there are no libraries or whatsoever available..
Thanks! :)
You can think about AMQPS and Azure Service Bus Topics/Subscriptions. Create a subscription with a filter (e.g. by device name or ID) for each device and send annotated messages to the topic.
Count of subscriptions limited by 2000 for 1 topic.

Resources