[alg] verschil tussen een channel en een pipe.

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik ben erg veel met channels bezig en ik kom daarbij ook vaak in aanraking met de kreet 'pipe'. Ik heb al heel wat zitten bladeren en mensen geraadpleegd, maar niemand heeft mij tot zover het verschil tussen een channel en pipe. Wie kan mij uitleggen wat het verschil tussen een channel en een pipe is? Of zijn het gewoon synoniemen?

Verwijderd

Een pipe is voor zover ik weet een full-duplex stream-oriented communicatiekanaal (met twee eindpunten).

Wat een channel is kan ik niet echt zeggen (ook omdat je er geen context bij geeft), maar misschien een generalisatie zijn, bijvoorbeeld met meerdere eindpunten, niet object-georienteerd, of wat onder Windows een 'named pipe' heet (een pipe met een naam waarmee je de pipe terug kan vinden).

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Verwijderd schreef op maandag 22 augustus 2005 @ 20:45:
Een pipe is voor zover ik weet een full-duplex stream-oriented communicatiekanaal (met twee eindpunten).
Voor zover ik weet is een pipe unidirectional (zijn channels ook). En stream oriented.. tja.. het ligt denk ik maar net op welke nivo je zit. De een werkt met bytes.. de ander met hele objecten.

[edit]
Ik heb wat zitten bladeren over directionaliteit van pipes. Er bestaan wel bidirectionele, maar unidirectionele is volgens mij het meest gangbare.
Wat een channel is kan ik niet echt zeggen (ook omdat je er geen context bij geeft)
Ik dacht dat een channel wel bekend was algemeen 'pattern' in oo talen..

[ Voor 13% gewijzigd door Alarmnummer op 22-08-2005 20:54 ]


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Als ik door mijn bookmarks blader:
The Pipe pattern is a special case of the Producer-Consumer pattern that involves only one Producer object an only one Consumer object. The Pipe pattern usually refers to the Producer object as a data source and the Consumer object as a data sink.
Dus: één object aan beide zijden en idd unidirectioneel.

Channel (voorbeeldje, uit een andere bookmark ;) ):

Afbeeldingslocatie: http://www.tweakers.net/ext/f/65069/full.gif

Maar dan ligt hier meer de nadruk op een Channel als 'Messaging center'.

Ik weet alleen niet of dit was wat je bedoelde. :?

Sundown Circus


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
RedRose schreef op maandag 22 augustus 2005 @ 23:53:
Als ik door mijn bookmarks blader:

Ik weet alleen niet of dit was wat je bedoelde. :?
Yep.. dat was wat ik bedoelde en ik zie eigelijk alleen maar meer bevestigd worden (voor zover ik dat nog niet had gezien) dat pipes en channels gewoon exact hetzelfde zijn. Ik wil het graag zeker weten zodat ik niet iets belangrijks mis.

  • momania
  • Registratie: Mei 2000
  • Laatst online: 01-05 07:53

momania

iPhone 30! Bam!

RedRose schreef op maandag 22 augustus 2005 @ 23:53:
Als ik door mijn bookmarks blader:


[...]
Misschien dan het enige verschil dat je bij een pipe maar 1 producer en 1 consumer hebt en dat dat bij een channel meerdere consumers(/producers) kunnen zijn?

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Ja, ik zie dus wel verschil. 'Channel' ken is dus meer als 'publish / subscribe', en dan is er per channel 1 publisher en zijn er 0 tot n subscribers, terwijl een pipe meer een 1 op 1 verhaal is.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Verwijderd schreef op dinsdag 23 augustus 2005 @ 00:53:
Ja, ik zie dus wel verschil. 'Channel' ken is dus meer als 'publish / subscribe', en dan is er per channel 1 publisher en zijn er 0 tot n subscribers, terwijl een pipe meer een 1 op 1 verhaal is.
Dat is geen verplichting bij channels. Als je bv het boek "Enterprise Integration Patterns" (site kan je hier vinden http://www.eaipatterns.com) dan zie je daar dat je een een speciaal soort type channel hebt, namelijk de publish subscribe channel

[ Voor 19% gewijzigd door Alarmnummer op 23-08-2005 07:59 ]


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Ik dacht het ook dat een pipe 1 op 1 is, source-sink, etc. En een channel dan full duplex, n-n, bv. een event channel waar elke client events kan afvangen en genereren, of een cryptografisch channel waar er two-way communicatie is. Is het niet zo dat een pipe altijd een channel is, maar een channel niet noodzakelijk een pipe?

  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
Ik snap de vraagstelling niet. Het verschil tussen een channel en een pipe is alleen aan te geven als je weet wat een channel is en weet wat een pipe is.

Volgens Martin Fowler terminologie zijn voor zover ik weet helemaal geen pipes. Het enige wat hij aanhaalt in EAI patterns is het pipes and filters pattern. Hierin noemt hij de pipes ook channels, maar zijn de pipes meer een synoniem voor generiek input/output kanaal voor een filter.

Martin Fowler is echter niet de enige op deze wereld die catchy naampjes verzint. De meest gebruikelijke definitie voor een pipe die ik ken is inderdaad een éénrichtings, point-to-point communicatiekanaal, zoals de rest ook aangeeft. Een channel is dan "een communicatiekanaal", meestal een rijkere variant, en een bredere definitie dan het begrip pipe.

Dit is echter niet meer dan wat ik het vaakst heb gezien in API's en documentatie waarin pipes en channels worden aangehaald. Er is echter geen officiële definitie voor de termen dus kan het van alles betekenen in verschillende situaties.

[ Voor 11% gewijzigd door misfire op 23-08-2005 20:04 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
misfire schreef op dinsdag 23 augustus 2005 @ 20:03:
Ik snap de vraagstelling niet. Het verschil tussen een channel en een pipe is alleen aan te geven als je weet wat een channel is en weet wat een pipe is.
Hoezo vraag je mijn vraagstelling niet? Ik zie channels en pipes in literatuur vaak door elkaar gebruikt worden en ik wil graag bevestiging van het feit dat ze wel of niet gelijk aan elkaar zijn.
Volgens Martin Fowler terminologie zijn voor zover ik weet helemaal geen pipes. Het enige wat hij aanhaalt in EAI patterns is het pipes and filters pattern. Hierin noemt hij de pipes ook channels, maar zijn de pipes meer een synoniem voor generiek input/output kanaal voor een filter.
Boek is trouwens niet geschreven door Martin Fowler.
Er is echter geen officiële definitie voor de termen dus kan het van alles betekenen in verschillende situaties.
Mwuah.. geen officiele definitie.. die bestaan tegenwoordig al nergens meer voor met alle overladen kreten. En verder geef je de laatste tijd weer erg lange en niet echt iets toevoegende replies.

[edit]
Ik heb trouwens de auteur van dat boek gemaild. Ik hoop dat hij een goed antwoord heeft op mijn vraag.

[ Voor 6% gewijzigd door Alarmnummer op 23-08-2005 20:15 ]


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 01-05 16:03

Salandur

Software Engineer

kijk naar het echte leven: voor een pijp heb je een zender en een ontvanger nodig (waterleiding bijvoorbeeld: als de kraan dicht is of de toevoer is er niet dan heb je geen water) en bij een channel wordt er altijd verzonden, maar het maakt niet uit of er ontvangers zijn (tv kanaal: er hoeft niemand te kijken, toch wordt het uitgezonden)

Dat is in dit geval denk ik toch het makkelijkste.

Assumptions are the mother of all fuck ups | iRacing Profiel


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Salandur schreef op dinsdag 23 augustus 2005 @ 20:35:
kijk naar het echte leven: voor een pijp heb je een zender en een ontvanger nodig (waterleiding bijvoorbeeld: als de kraan dicht is of de toevoer is er niet dan heb je geen water) en bij een channel wordt er altijd verzonden, maar het maakt niet uit of er ontvangers zijn (tv kanaal: er hoeft niemand te kijken, toch wordt het uitgezonden)

Dat is in dit geval denk ik toch het makkelijkste.
Dat lijkt mij ook de meest zinnige uitleg. Maar het zal niet de eerste keer zijn dat ik met mijn "boerenverstand" methode ernaast zit ;)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Mijn email:
Hi Gregor,

I have a question about Pipes and Channels and I have been looking on the internet for quite some time, looked at a lot of books, but I haven`t been able to get a satisfying answer and hope you know the answer the my question.

The question is: what is the difference between a pipe and a channel? In your book : Enterprise Integration Patterns (I like it a lot btw) you use the words channel and pipe, and my guess so far is that there is no difference between them and you can use them interchangeably.

Peter.
Antwoord van Gegor Hohpe
Hi Peter,

Correct, we use pipe and channel quite interchangeably, but there is a subtle difference. The term pipe originates from a pipe-and-filters pattern, which is quite old. You could say that a Channel is the messaging implementation of a pipe-and-filter pattern, even though a Channel is still a logical construct.

I hope this helps. Let me know if someone has come up with a better explanation!

--gregor
Gregor Hohpe is de auteur van Enterprise Integration Patterns

  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
Grappig... dat is dus hetzelfde antwoord als in één van mijn "erg lange en niet echt iets toevoegende replies". :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
misfire schreef op donderdag 25 augustus 2005 @ 20:17:
Grappig... dat is dus hetzelfde antwoord als in één van mijn "erg lange en niet echt iets toevoegende replies". :)
Ik kan dat er eerlijk gezegd niet uit opmaken.
Pagina: 1