Unterschied Producer-Consumer und Provider-Consumer Modell

Sebastian_TIA

Level-1
Beiträge
25
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Community,

ich muss einen kleinen Vortrag über Feldbus / Industrial Ethernet halten.

Nun bin ich bei meiner Recherche häufig über die verschiedenen Modellbezeichnungen und deren Definitionen gestolpert und bin mir nun doch etwas unsicher was nun fachlich korrekt ist.

Definition:
Es wird von einem Teilnehmer (Producer) an alle anderen Teilnehmer (Consumer) eine Nachricht versendet. Dabei werden diese Nachrichten über eindeutige "Telegramm-Identifier" gekennzeichnet. Die interessierenden Consumer können dann diese Nachricht aufnehmen und verarbeiten. Da der Empfänger nicht bekannt ist, findet hier keine verbindungsorientierte Verbindung statt. Das heißt, Slaves können ihre Daten ohne explizite Aufforderung an den Master senden.

Gibt es in der Technik überhaupt einen Unterschied zwischen dem Producer-Consumer-Modell und Provider-Consumer-Modell?? Oder wird hier für das Gleiche nur ein unterschiedlicher Name verwendet??

Danke für eure Hilfe.
 
Definition:
Es wird von einem Teilnehmer (Producer) an alle anderen Teilnehmer (Consumer) eine Nachricht versendet. Dabei werden diese Nachrichten über eindeutige "Telegramm-Identifier" gekennzeichnet. Die interessierenden Consumer können dann diese Nachricht aufnehmen und verarbeiten. Da der Empfänger nicht bekannt ist, findet hier keine verbindungsorientierte Verbindung statt. Das heißt, Slaves können ihre Daten ohne explizite Aufforderung an den Master senden.

Woher hast Du denn diese seltsame Definition?

Schaue mal hier: https://de.wikipedia.org/wiki/Feldbus
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mh... bin mir nun nicht sicher, was du mir mit dem Link sagen willst?? Dort steht ja gar nichts über die Verschiedenen Modelle... Und bezüglich meiner Frage steht dort ja auch nichts...

http://www6.in.tum.de/pub/Main/Teac...edded/Feldbusse_und_Kommunikationssysteme.pdf
=> Seite 6 ( Uni München)
Hier habe ich die Definition gefunden.

Prinzipiell ist meine Frage ja einfach: Gibt es einen unterschied zwischen Producer-Consumer und Provider-Consumer Modell??
 
Also wenn ich den Text richtig lese dann meint der Autor das gleiche:

2.Provider-Consumer-Modell
Es wird von einem Teilnehmer (Producer)an alle anderen Teilnehmer (Consumer) eine Nachrichtver-sendet. Dieses wird als Broadcasting bezeichnet. Dabei werden dieseNachrichten über eindeutige Telegramm-Identifier" gekennzeichnet. Die interessierendenConsumer können dann diese aufnehmen und verarbeiten. Da der Empfänger nichtbekannt ist, findet hier keine verbindungsorientierte Verbin-dung statt.(4)(12)

 
Zuletzt bearbeitet:
Jetzt komme ich als Spielverderber :p

Aber der Reihe nach ... in der Praxis werden häufig
Dinge als gegeben hingenommen, ohne die dahinter
liegenden Modelle und Theorie zu hinterfragen.
Deswegen kommen die Antworten hier eher verhalten.

Zum Thema – wenn ich das hier lese:

https://msdn.microsoft.com/de-de/library/hh228601(v=vs.110).aspx
http://www.lernkaertchen.ch/kaertchen15002

komme ich zum Schluss, dass in Deiner PDF ein Fehler sein muss.

PDF schrieb:
2. Provider-Consumer-Modell
Es wird von einem Teilnehmer (Producer) an alle anderen Teilnehmer (Consumer) eine Nachricht ver-sendet. Dieses wird als Broadcasting bezeichnet. Dabei werden diese Nachrichten über eindeutige "Te-legramm-Identifier" gekennzeichnet. Die interessierenden Consumer können dann diese aufnehmen und verarbeiten. Da der Empfänger nicht bekannt ist, findet hier keine verbindungsorientierte Verbin-dung statt. (4) (12)
3. Datenorientierte Schnittstelle
Es erfolgt ein Zugriff auf einen gemeinsamen Speicher durch das Bussystem und Anwenderprogramm. Die Informationen werden dabei entweder zyklisch oder gleich abgefragt, wenn es eine Änderung erfolgt hat. Hierbei sind wegen der Ansammlung der zu übertragenden Daten die Zeitverzögerungen möglich, da die Daten im gemeinsamen Speicher gelagert werden. Durch den Einsatz dieser Schnittstelle werden hohe Übertragungssequenz sowie eine schnelle Datenübertragung erreicht. Das Producer-Consumer Modell nutzt oft diese Art von Schnittstellen. (1) (13)

Wenn statt Producer Provider stehen würde, wäre
  1. der Text schlüssig
  2. tatsächlich ein Unterschied:
    • beim Provider-Consumer-Modell erfolgt der
      Datenaustausch über Telegramme
    • beim Producer-Consumer-Modell erfolgt der Daten-
      austausch über einen gemeinsamen Speicherbereich

Vermutlich ist Producer-Consumer viel schneller, da die
Auswertung der Telegramme weg fällt.
 
Der Test ist aber auch schlüssig wenn ich das Wort "Provider" durch das Wort "Producer" ersetze



2. Provider-Consumer-Modell
Es wird von einem Teilnehmer (Producer) an alle anderen Teilnehmer (Consumer) eine Nachricht ver-sendet. Dieses wird als Broadcasting bezeichnet. Dabei werden diese Nachrichten über eindeutige "Te-legramm-Identifier" gekennzeichnet. Die interessierenden Consumer können dann diese aufnehmen und verarbeiten. Da der Empfänger nicht bekannt ist, findet hier keine verbindungsorientierte Verbin-dung statt. (4) (12)
3. Datenorientierte Schnittstelle
Es erfolgt ein Zugriff auf einen gemeinsamen Speicher durch das Bussystem und Anwenderprogramm. Die Informationen werden dabei entweder zyklisch oder gleich abgefragt, wenn es eine Änderung erfolgt hat. Hierbei sind wegen der Ansammlung der zu übertragenden Daten die Zeitverzögerungen möglich, da die Daten im gemeinsamen Speicher gelagert werden. Durch den Einsatz dieser Schnittstelle werden hohe Übertragungssequenz sowie eine schnelle Datenübertragung erreicht. Das Producer-Consumer Modell nutzt oft diese Art von Schnittstellen. (1) (13)

Für mich ist der Text dahingehend unschlüssig als dass nach meinem Verständnis 1-4 nicht Varianten eines Themas sind sondern 1&2 Konzepte für "Datenaustauschmodelle" und 3&4 Konzepte für "Schnittstellenmodelle" sind (und daher eine eigene Überschrift verdienen würden). Liest du den Text logisch fertig dann steht da auch:

4.
Nachrichtenorientierte Schnittstelle
Bei der nachrichtenorientierten Schnittstelle werden die Nachrichten von den Teilnehmern direkt verschickt. Die Benachrichtigungen über Fehler werden mit Hilfe von Ereignissen an alle beteiligten Teilnehmern übertragen. Somit ist die Verwendung solcher Schnittstelle wegen Diagnose und Wartung für die Anwendungsprogramme sehr geeignet. Die Kommunikation erfolgt verbindungsorientiert und so-mit findet hier oft das Client-Server Modell die Anwendung

Also nach logischer Textanalyse würde ich vermuten dass die Elemente 1&2 gleichwertig sind wobei 3&4 Attribute sind die jeweils auf 1&2 anwendbar sind wobei es üblich ist dass 3 auf 2 angewendet wird und 4 auf 1.

Rein technisch macht ja imho was anderes auch wenig Sinn. Entweder ich habe eine Punkt zu Punkt Verbindung (Client Server) oder ich habe ein Abonentensystem (Provider Consumer)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt komme ich als Spielverderber :p

komme ich zum Schluss, dass in Deiner PDF ein Fehler sein muss.



Wenn statt Producer Provider stehen würde, wäre
  1. der Text schlüssig
  2. tatsächlich ein Unterschied:
    • beim Provider-Consumer-Modell erfolgt der
      Datenaustausch über Telegramme
    • beim Producer-Consumer-Modell erfolgt der Daten-
      austausch über einen gemeinsamen Speicherbereich

Vermutlich ist Producer-Consumer viel schneller, da die
Auswertung der Telegramme weg fällt.

Genau so ist es richtig. Provider/Consumer und Producer/Consumer ist nicht das Gleiche.

Beispiel für Provider/Consumer = PROFINET

Beispiel für Producer/Consumer = Ethernet/IP
 
Zuletzt bearbeitet:
Unser Schwerpunkt liegt im Bereich PROFINET und weniger Ethernet/IP. daher kann ich dir zu den Quellen für das Producer/Consumer Prinzip nicht großartig weiterhelfen.

Eine Definition für Producer/Consumer kann ich leider nur auf englisch anbieten: http://javarevisited.blogspot.de/2012/02/producer-consumer-design-pattern-with.html

Provider/Consumer wir hier etwas erklärt: http://www.feldbusse.de/Profinet/profinet.shtml

Des weiteren kann ich Dir die Lektüre von Manfred Popp "Industrielle Kommunikation" in der aktuellen Ausgabe empfehlen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Also erstmal sind in beiden Artikel die Begriffe nur verwendet und rudimentär erklärt. Daher frage ich mich inwieweit sich diese dafür eignen unser Dilemma zu klären. Ich verstehe in den Links aber eher eine Bestätigung meiner Meinung.

[h=1]Producer Consumer Design Pattern with Blocking Queue Example in Java [/h]Producer Consumer Design pattern is a classic concurrency or threading pattern which reduces coupling between
Producer and Consumer by separating Identification of work with Execution of Work. In producer consumer design pattern a shared queue is used to control the flow and this separation allows you to code producer and consumer separately. It also addresses the issue of different timing require to produce item or consuming item. by using producer consumer pattern both Producer and Consumer Thread can work with different speed. In this article we will see What is producer consumer problem which is very popular multi-threading interview question, How to solve producer consumer problem using Blocking Queue and Benefits of using Producer Consumer design pattern.

Behandelt erstmal eine konkrete Implentierung eines "Producer Consumer Design Patterns" mittels einer "blocking Qeue" die verwendet wird um in einem Multithreading System der Tatsache gerecht zu werden dass die beiden Threads asynchron arbeiten. Das machen sie mit einer "shared Blocking Queue".

Code:
class [B]Producer[/B] implements [B]Runnable[/B] {



    private final [B]BlockingQueue[/B] sharedQueue;



    public Producer(BlockingQueue sharedQueue) {
        this.sharedQueue = sharedQueue;
    }

Demnach würde ich sagen wir reden von einem Producer Consumer Modell mit Datenorientierter Schnittstelle.


Bei Profinet IO wird im Gegensatz zum Master-Slave-Verfahren von Profibus ein Provider-Consumer-Modell verwendet, das die Kommunikationsbeziehungen zwischen den gleichberechtigten Teilnehmern am Ethernet unterstützt. Wesentliches Merkmal dabei ist, dass der Provider seine Daten ohne Aufforderung des Kommunikationspartners sendet. Neben dem zyklischen Nutzdatenaustausch bietet Profinet zusätzliche Funktionen für die Übertragung von Diagnosen, Parametrierungen und Alarmen.
Im Gegensatz dazu ist das bei Profinet auch ein Producer Consumer Modell (https://de.wikipedia.org/wiki/Profinet, http://www.profinet.felser.ch/index.html?verschaltungs-download.htm, http://www.automation.com/pdf_articles/hms/Whitepaper_Time_to_move_to_PROFINET.pdf) das Aufgrund der Tatsache dass sich Producer und Consumer keinen Speicherbereich teilen nach einem Producer Consumer Modell mit Nachrichtenorientirter Schnittstelle arbeitet
 
Genau so ist es richtig. Provider/Consumer und Producer/Consumer ist nicht das Gleiche.

Beispiel für Provider/Consumer = PROFINET

Beispiel für Producer/Consumer = Ethernet/IP

Die Aussage von Marco erscheint mir nicht schlüssig zu sein... Ist ja auch nur eine Behauptung!

Ich bleibe der Meinung, dass Provider und Producer - Consumer Modell im Grunde das gleiche meint!

Außer, es wird mit einer Quelle wiederlegt und dann bitte ich aber um eine verständliche Beschreibung in einfachen Worten.

Bei Wikipedia z.B. steht unter ProfiNet:
Dazu verwendet Profinet IO Ethernet-basierte Protokolle, folgt dem Producer-/Consumer-Modell und eignet sich je nach Konformitätsklasse für Buszykluszeiten von mehreren ms bis zu 31,25 μs.
 
Zuletzt bearbeitet:
Zurück
Oben