Hier stelle ich die nächsten Entwicklungsziele für dWb+ vor. Diesmal steht eine größere Architekturänderung zur weiteren Modularisierung an.
Hierbei geht es um eine größere Architekturänderung, die es erlauben soll, Modulaspekte geziehlt zur Modellierung des Contexts zu nutzen: Anders als zur Zeit wird der Modul-Container lediglich die Module aufnehmen und entsprechend instantiieren. Sie werden nicht mehr zum BeanContext hinzugefügt. Statt dessen wird der Context beim Hinzufügen und Entfernen Signale an einen neu zu schaffenden Manager senden, der dann andere Context-Implementationen über diese Tatasachen informiert. Der erste dieser neu zu schaffenden Contexts wird eine Umsetzung des BeanContext sein, so dasss anschließend wieder dieselbe Funktionalität erreicht sein wird, wie aktuell in der alten Architektur. Der zweite Context soll dann Module, die einen entsprechenden Aspekt aufweisen, über eine REST-Schnittstelle steuerbar machen. Diese geplante Architekturänderung führte zu tiefergehenden Gedanken zur konkreten Umsetzung, die sich in folgenden Aspekten widerspiegeln: Sollten die verfügbaren Services zur Laufzeit umkonfiguriert werden können? Beispiele dafür wären unter anderem die Möglichkeit, spezielle Services hinzufügen oder entfernen zu können. Alternativ dazu (und sicher einfacher umzusetzen) wäre es, die Menge der Context-Implementierungen fest an den Container zu binden. Dann müsste man spezielle Group-Workspaces oder auch Layer definieren, die über die an sie gebundenen Context-Implementierungen spezielle Mehrwerte anbieten. Daher kam auch die Idee, die Einbindung von Modulen feiner zu steuern, als über bloßes Hinzufügen und Entfernen: Setzt man mit den Context-Implementierungen bei den Layern auf, kann das Hinzufügen eines Moduls zum Container noch gar nichts Besonderes bewirken - erst wenn man es innerhalb des Containers in einen Layer verschiebt, der spzielle Context-Implementationen anbietet, würde ein entsprechender Mehrwert aktiviert. Dazu müsste sich man von dem Konzept des Layers als reine Gliederungshilfe, wie es jetzt besteht weg hin zu einer komplexeren Sichtweise bewegen. Die flexibelste aber auch komplexeste Variante wäre eine Kombination aus beiden: Die Layer verwalten eine Sammlung von Context-Implementationen, deren Umfang und Inhalt jederzeit geändert werden kann.
Ein weiterer Aspekt führte zunächst ein wenig mäandernd zu folgenden zwei Fragestellungen: Welche Context-Implementierung ist am schnellsten und problemlosesten auszuprobieren. Dadurch kam ich auf die Idee, eine solche anzubieten, die beliebige Module hernimmt und sie als MBeans über JMX exponieren kann. Dadurch kam mir die Idee, wie man JavaBeans als MBeans exponieren könnte, ohne das MBean-Interface zu implementieren (JavaBeans, über die man keine Quelltexthoheit hat beispielsweise). Und die zweite Frage, die sich mir stellte und über die ich bisher noch nie gelesen hatte: Wenn JavaBeans als MBeans exponiert werden können - wird dann die BeanInfo honoriert? Zwei Gedanken, denen ich noch vor der Umsetzung des eigentlich hier beschriebenen Ziels nachjagen wollte...
12.03.2016
Wie in einem früheren Artikel bereits ausgeführt, fragte ich mich, ob beliebige Module als MBeans über JMX exponiert werden können, ohne das MBean-Interface zu implementieren Hier stelle ich die Ergebnisse der Untersuchungen vor.
Testdatengeneratoren als Microservices mit Docker
02.11.2019
Ich habe die verschiedenen Testdatengeneratoren mittels Microservices über HTTP zugänglich gemacht, um sie unabhängig von der verwendeten Programmiersprache und/ oder Version (Java 11) verwenden zu können.
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Git(lab|hub) Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Nachdem ich neulich auf einen sehr interessanten Link gestoßen war, habe ich mich dafür interessiert, ob es möglich wäre - und falls ja: wie einfach - GIF-Animationen aus Java heraus zu erzeugen - und zwar mit Bordmitelln und ohne Zuhilfenahme externer Biblioheken
Weiterlesen...Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:
Weiterlesen...Nachdem es nun bereits seit einiger Zeit ein wenig stiller um meine diversen Generatoren für Testdaten geworden ist, habe ich über den Feiertag in Thüringen einen neuen begonnen.
Weiterlesen...Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.