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).
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).
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.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).
[edit]
Ik heb wat zitten bladeren over directionaliteit van pipes. Er bestaan wel bidirectionele, maar unidirectionele is volgens mij het meest gangbare.
Ik dacht dat een channel wel bekend was algemeen 'pattern' in oo talen..Wat een channel is kan ik niet echt zeggen (ook omdat je er geen context bij geeft)
[ Voor 13% gewijzigd door Alarmnummer op 22-08-2005 20:54 ]
Als ik door mijn bookmarks blader:
Channel (voorbeeldje, uit een andere bookmark
):

Maar dan ligt hier meer de nadruk op een Channel als 'Messaging center'.
Ik weet alleen niet of dit was wat je bedoelde.
Dus: één object aan beide zijden en idd unidirectioneel.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.
Channel (voorbeeldje, uit een andere bookmark

Maar dan ligt hier meer de nadruk op een Channel als 'Messaging center'.
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.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.
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.
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 channelVerwijderd 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.
[ Voor 19% gewijzigd door Alarmnummer op 23-08-2005 07:59 ]
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?
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.
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 ]
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.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.
Boek is trouwens niet geschreven door Martin Fowler.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.
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.Er is echter geen officiële definitie voor de termen dus kan het van alles betekenen in verschillende situaties.
[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 ]
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 is in dit geval denk ik toch het makkelijkste.
Assumptions are the mother of all fuck ups | iRacing Profiel
Dat lijkt mij ook de meest zinnige uitleg. Maar het zal niet de eerste keer zijn dat ik met mijn "boerenverstand" methode ernaast zitSalandur 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.
Mijn email:
Antwoord van Gegor HohpeHi 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.
Gregor Hohpe is de auteur van Enterprise Integration PatternsHi 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
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.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".
Pagina: 1