Poprzedni wpis dotyczący komunikacji osmotycznej został skomentowany na innym blogu („Komunikacja osmotyczna czyli po Brzytwie przypadków użycia” na it-consulting.pl/blog), ze wskazaniem, że „komunikacja osmotyczna” to inna nazwa dla wzorca „publish/subscribe”. Muszę przyznać, że nie do końca się mogę zgodzić.
Należy zwrócić uwagę na pojęcie „Subscriber” – oznacza ono, że odbiorca podłączył się do huba, rozdzielnika, czy tematu. „Publisher” określa kto i do czego może się „subscriber” podłączyć. Komunikacja jest jednokierunkowa i wskazuje na pewne rozdzielenie „publikującego” oraz „subskrybującego”, o czym można poczytać na stronach MSDN.
W przypadku komunikacji osmotycznej jest mowa bardziej o dynamicznych rozwiązaniach, gdzie „odbiorcy” nie subskrybowali danej informacji, a jedynie reagują na nią bądź nie. Komunikacja jest w takiej sytuacji dwukierunkowa i nie ma określenia kto, czym może się zainteresować i czy może się wypowiedzieć. Reakcja odbiorcy może spowodować dalszą reakcję innych osób. O ile dobrze rozumiem w przypadku modelu „publish/subscribe” odbiorca komunikatu musiałby określić ponownie swoich „subscriber’ów”.
Moim zdaniem Alistair Cockbourn spojrzał z wyższego poziomu abstrakcji i nie skupił się na rozwiązaniu systemowym. Rozwiązanie z wzorcem „publish/subscribe” umiejscawia rozważania na poziomie rozwiązań informatycznych, wspierane przez odpowiednie modele, narzędzia, opisy wymagań. Jednakże nie zawsze o to chodzi.
Dlatego też, brzytwa Ockhama raczej nie znajduje tutaj zastosowania – trudno mówić o powieleniu bytów. Jednakże zaznaczam, że jest to moja opinia. Mogę się jedynie zgodzić, że od komunikacji osmotycznej możemy przejść do wskazanego wzorca, choć można by spróbować także poszukać innych rozwiązań „biznesowych” wspominanych przy metodach zwinnych.