Warum Message Passing ?

Warum soll man sich die Mühe machen, alles asynchron zu entwickeln?

Nun, muss man ja gar nicht.

devel.one kann man wunderbar in ein ganz normales synchrones Program einbinden. Nun hat man die Möglichkeit, sehr einfach mit anderen Programmen zu interagieren. Die Kommunikation z.B bei der Client-Server-Programmierung ist im Handumdrehen erledigt. Überall, wo man Daten zwischen Prozessen austauscht, kann schnell ein Target auf beiden Seiten implementiert werden, was das Messaging verwirklicht. Das Auslagern von fertigen Programmteilen auf andere Rechner ist damit sehr schnell implementiert. Die herkömmlich und synchron programmierten Blöcke können beliebig groß sein. Du musst dich also gar nicht umgewöhnen.

Aber wenn man erst mal damit angefangen hat...

OSGi-Programmierer kennen die Art zu Programmieren schon von jeher. Sie bieten Interfaces für Services an, die jeder in einem lokalen Programm nutzen kann. Dabei ist die Implementierung immer verborgen. Das ist sinnvoll, denn Services können sich im Inneren schnell ändern. Der Vertrag zum Kunden (das Interface) bleibt aber gleich.

Wir haben beim Messaging eine ähnliche Situation. Nur haben wir hier noch zusätzlich die Verteilung des Codes auf andere Orte. Und wir haben nicht mehr starre Interfaces, sondern lockere Bindungen via Messages, damit unterschiedliche Versionen dennoch zusammenarbeiten können.

Das ermöglicht uns den Entwurf von kleinen Services oder Mikro-Services. Das "klein" ist hier gewollt: denn je kleiner die Services sind, desto höher ist die Wiederverwertung des Codes. Und Wiederverwertung ist in großen Projekten bares Geld. Dabei kann man sogar die Programmiersprache wechseln, und dennoch kann man den wertvollen Code weiterverwenden.

Und noch etwas ist gut an "kleinen" Services: Sie sind überschaubar in ihrer Funktion, so dass der Code schnell von anderen Programmierern gewartet und übernommen werden kann. Auch das spart sehr viel Geld durch Wiederverwendung.

Zudem sieht der Code auch noch immer ähnlich aus. Wir sehen hier ganze Landschaften an Message-Handlern. Bei unseren Kunden war das auch ein wichtiges Kriterium für die leichte Einarbeitung von neuen Mitarbeitern.

Ein weiterer Vorteil ist die Ähnlichkeit von Message-Sequenzen mit UML-Sequenz-Diagrammen. Es gibt Kunden, die über das Tracking der Nachrichten einen automatischen Vergleich von Soll-Sequenzen mit Ist-Sequenzen vornehmen, zur Qualitätssicherung.
Man muss nur etwas Phantasie mit Initiative paaren...