AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige?
Thema durchsuchen
Ansicht
Themen-Optionen

Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige?

Ein Thema von Der schöne Günther · begonnen am 6. Mai 2013 · letzter Beitrag vom 8. Mai 2013
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#1

AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige

  Alt 7. Mai 2013, 10:09
Als Microsoft-spezifische Lösung nenne ich nur mal so MSMQ, Microsoft Message Queuing. Damit können Prozesse Nachrichten austauschen, was sogar "transaktional" geht (d.h. wenn eine Reihe von Nachrichten empfangen wurde und der Empfänger kein "Acknowledge" sendet, sondern abstürzt, erhält er die Nachrichten nach dem Neustart noch einmal). http://msdn.microsoft.com/en-us/library/ms978430.aspx
Das ist aber mit Vorsicht zu genießen. Messages überleben in der Queue nicht ewig, und wenn sich in der MessageQueue nachrichten Aufstauen, und der Abnehmer sie nicht schnell genug verarbeitet (default liegt bei 10 Sekunden), kann es gut wird es passieren das einzelne Messages austimen und verschwinden.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige

  Alt 7. Mai 2013, 13:16
Als Microsoft-spezifische Lösung nenne ich nur mal so MSMQ, Microsoft Message Queuing. ...
Messages überleben in der Queue nicht ewig
Das Timeout kann man nach Bedarf hochsetzen, solange ausreichend RAM vorhanden ist. Microsoft MSMQ ist vermutlich dann aus dem Rennen, wenn man den Server öfter mal neu booten muss, und keine Möglichkeit hat, die noch nicht zugestellten Messages zu persistieren - so wie es andere (RabbitMQ, WebSphere) können.
Michael Justin
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.190 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige

  Alt 7. Mai 2013, 13:28
Microsoft MSMQ ist vermutlich dann aus dem Rennen, wenn man den Server öfter mal neu booten muss, und keine Möglichkeit hat, die noch nicht zugestellten Messages zu persistieren
. Der Kunde stellt die lustigsten Dinge mit den Maschinen an, einfach Strom ziehen ist nichts ungewöhnliches. Daher...

Aber ist das dann nicht ein allgemeines Problem der Ressourcenverwaltung / des Error-Handlings?

Wenn ich eine bestimmte Hardware per COM-Anschluss ansteuere und mein Programm dabei ein Fehler produziert, muss ich doch sicherstellen, dass der COM-Anschluss auch wieder freigegeben wird.
In der Theorie, ja. Allerdings muss (und möchte) ich auch davon ausgehen, dass es immer irgendwo eine Fehlermöglichkeit gibt, die das ganze Teil aufhängt oder komplett abstürzen lässt. Die Aufteilung in eigene Prozesse hilft da ungemein da Windows hier alles wieder freigibt.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.675 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige

  Alt 7. Mai 2013, 13:40
Der Kunde stellt die lustigsten Dinge mit den Maschinen an, einfach Strom ziehen ist nichts ungewöhnliches. Daher...
...ist das Handle wenigstens freigegeben.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.675 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige

  Alt 7. Mai 2013, 13:43
und die Instanz vom Message Bus kann im Kern der Anwendung liegen? Oder lieber separat?
Sven Harazim
--
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige

  Alt 7. Mai 2013, 13:51
und die Instanz vom Message Bus kann im Kern der Anwendung liegen? Oder lieber separat?
Der Message Bus wird von einem eigenen Prozess bereitgestellt, damit ist er selbst in dem (allerdings unwahrscheinlichen Fall) erreichbar, dass der Anwendungskern komplett abgestürzt ist - und nur noch die Plugin-Prozesse laufen und man kann ihn bei Bedarf auch auf eine eigene (virtuelle) Maschine legen, an der nicht herumgefummelt wird.
Michael Justin
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.190 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Modularer (evtl. verteilter) Programmaufbau - Welche Art von IPC ist die richtige

  Alt 7. Mai 2013, 14:11
Faszinierendes Kochrezept.

Für meinen Zweck hatte hätte ich bislang eigentlich bewusst eine Punkt-zu-Punkt-Verbindung zwischen Kern und den Modulen angestrebt. Und zwar da
  1. die Module in ihrer Natür sehr autark sind. Was ein einem passiert beinflusst i.d.R. die Tätigkeiten des anderen in keinster Weise, oder nur sehr indirekt
  2. ich bewusst verhindern möchte, dass man sich in einem Modul mit Aufgabenbereichen eines eigentlich anderen befasst.

Der Grund für den zweiten Punkt ist folgender: Baut der Kunde an seiner Installation etwas um, möchte ich ihm nur eine neue Konfiguration des Moduls (oder ein anderes) liefern. Wenn ich jetzt noch andere Module habe, die in gewisser Weise von anderen Plug-Ins "abhängig" sind, komme ich in Teufels Küche...


Ich bin begeistert, wie lange sich so ein komplexes Thema hält.

Geändert von Der schöne Günther ( 7. Mai 2013 um 14:23 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz