Ob Du völlig falsch angesetzt hast, das kann ich nicht sagen; hört sich für mich einfach ungewöhnlich an.
Aber wie das meistens läuft:
- Eine zentrale Plattform (nennen wir es mal Server App) würde das Crawling übernehmen
- Dadurch wird natürlich dann auch kein Akku oder Bandbreite/Volumen gezogen
- Sobald die Server App etwas findet wirft sie "Events", ähnlich wie Events in WinForms zB
- EventHandler reagieren dann darauf und verschicken dann zB eine Mail, eine SMS oder eine Notification
- Die Server App bietet eine Schnittstellen, mit der dann Apps aktiv kommunizieren können: eine Notification beinhaltet also zB die Information, dass es etwas "neues" gibt - aber keine Inhalte. Die Inhalte holt sich die Mobile App dann über einen GET Request, zB über
REST oder
gRPC von der Server App
Je nach Ausbaustufe reicht eine minimalste Server Applikation; kann man aber natürlich auch im Endeffekt unendlich weit skalieren.
Aber gleich vorweg: das sind nun sehr viele neue Technologien für Dich.
Alles nicht sonderlich komplex, aber eben "viel".
Sofern Du .NET dafür verwenden willst, so kannst Du alles prinzipiell über Konsolenanwendung machen; eine UI Technologie wie WinForms oder WPF geht natürlich nicht.
Im Falle von .NET ist das so, dass ASP.NET Core selbst eine Konsolenapplikation ist, mit der Du sowas sehr einfach abbilden kannst.
- Deinen API Teil machst Du zB mit
ASP.NET Core MVC
- Die Background Aufgaben ebenfalls über ASP.NET Core mit Hilfe von
Hosted Services
Der Background Task kann also das Crawlen übernehmen und Notifications anstoßen; macht am Ende vom Tag exakt das, was wie Worker in Android machen - nur eben in der ASP.NET Core Pipeline.
ASP.NET Core auf der Synology:
Eine NAS ist nicht unbedingt eine Plattform für sowas.
Bei Deiner NAS hast Du nun etwas Glück, dass Du damit grundlegend sowas programmieren kannst, weil Du eine entsprechende CPU und Plattform hast, mit der Du Docker Container betreiben kannst.
Das heisst, dass Du prinzipiell eine Server App programmierst, die in einem Docker Container läuft:
- ASP.NET Core selbst bekommst Du über das entsprechende Publishing in den Docker Container.
- Aus dem Container machst Du ein Image.
- Das Image schiebst Du in eine Registry (ähnliche Funktionweise wie NuGet)
- Die Registry hinterlegst Du im
Docker Manager auf der Synology
- Das Image kannst dann laden und lokal einen Container starten
Docker images for ASP.NET Core
Die App auf der Synology kann natürlich sehr einfach nach Außen kommunizieren, um Zb Notifications zu verschicken.
Du musst natürlich dann aber in Deinem Netzwerk sicherstellen, dass man von außen auch die Applikaton im Docker Container auf der NAS erreicht.
Ich nehme die Synology sehr gerne für Proof of Concepts bei Kunden, da sie vergleichsweise günstig ist und sehr viel Leistung bietet (deutlich mehr als ein Raspberry aber auch nicht so extrem teuer wie ein Embedded Industrie PC; meistens die DS 718+).