Bronikowski.com - Emil Oppeln-Bronikowski: Kod & Słowa

Skip navigation

Bronikowski.com G+

cartier replica watches Rolex replica watches chanel j12 replica cartier bracelet replica omega Seamaster replica watches rolex replica watches Cartier replica watches replica watches Replica Omega Seamaster Planet Ocean Calibre de Cartier Replica

Jedni pchają, inni ciągną

Posted in µGeek | 7 Comments

Rozważmy hipotetyczną sytuację: chcemy się napić z kolegą. Sytuacja ta jest hipotetyczna dla części z Was, dla innych to czwartek, 11:30. Mamy dwa scenariusze.

Scenariusz pierwszy

Wsiadasz w komunikację miejską, pokonujesz n przystanków. Wysiadasz. Wchodzisz na klatkę i łomocesz do drzwi. Kolega otwiera, a na pytanie o wspólne picie mówi, że jeszcze od wczoraj mu nie zeszło. Wracasz więc do domu, rzucasz palto i czekasz cały kwadrans. Zakładasz palto i wsiadasz w komunikację miejską. Wysiadasz, klatka, a kolega nadal to samo. Jaki debil.

Wracasz, wstawiasz wodę, zjadasz torebkę Sagi i wpijasz duszkiem wrzątek. Kierowca komunikacji miejskiej kiwa Ci głową i pyta, czy tam, gdzie zwykle. Tam. Tym razem nikt nie odpowiada. Jedziesz do szpitala na płukanie żołądka po herbacie Saga. Wsiadasz w komunikacje miejską, siedzący obok Syzyf kręci głową z dezaprobatą.

Dwa dni później kolega otwiera ci i zaprasza szerokim gestem. Wypijasz kolejkę i wsiadasz po kwadransie w komunikację miejską.

Scenariusz drugi

Wsiadasz w komunikację miejską, pokonujesz n przystanków. Wysiadasz. Wchodzisz na klatkę i łomocesz do drzwi. Kolega otwiera, a na pytanie o wspólne picie mówi, że jeszcze od wczoraj mu nie zeszło. Mówisz

– To weź zadzwoń jak ogarniesz, OK?
– Dobra

Kolega dzwoni i jedziesz się napić.

Pierwszy scenariusz ssał, nie tylko jako sposób na życie, ale także jako metodologia. W podobny sposób zachowuje się wiele aplikacji klienckich.

  1. Odczekaj interwał
  2. Sprawdź, czy jest nowa poczta
  3. Jest? Jeśli jest, zapisz. Nie? Idziesz na start, nie otrzymujesz $200.

W drugi przypadku mówimy o Push. Pewnie zauważyliście, że Wasz mądrytelefon albo tablet piszczy niecierpliwie natychmiast po otrzymaniu wiadomości? To dlatego, że serwer po otrzymaniu informacji, które są dla konkretnego klienta informuje go o tym fakcie. Nie ma więc interwału pomiędzy przychodzącą wiadomością, a „świadomością” klienta o tym fakcie.

Gdybyście projektowali jakąś prostą aplikację, gdzie jest wyraźny podział między częścią serwującą dane, a klientem możecie wprowadzić proste modyfikacje, które pozwolą Wam uniknąć tej całej komunikacji publicznej via TCP/IP.

Serwer powinien móc zapisać ścieżkę „do oddzwonienia” dla konkretnego klienta. Kiedy pojawia się nowa informacja, serwer opakowuje nowe dane i przesyła je do klienta, który może natychmiast zareagować. Przykładowy dialog:

– Klient: Dzień dobry, to moje dane autoryzacyjne
– Serwer: OK, widzę. Czego?
– K: Jak pojawi się coś dla mnie to zapamiętaj, że masz to wysłać na http://bronikowski.com/flaszka/
S: Pamiętam. Idź już.

A potem:

– S: O, są nowe informacje o flaszkach, których wg dostępnych logów nie słałem do klienta. Gdzie to słać? A, tam.
– K: O, dane!

Notkę napisałem głównie żeby się zawstydzić, bo znów zaprojektowałem coś, co robi Pull. Jestem leniwym i durnym draniem, ale to już wiedzieliście.

7 Responses to Jedni pchają, inni ciągną

  1. Marek says:

    Jestem prawie pewien, że serwer nie może dosłownie oddzwonić do klienta – szczególnie jeżeli klient nie ma publicznego ip. Push chyba (?) działa tylko dlatego, że połączenie po pierwszym handshake nie jest urywane.

    Odpowiednikiem tego zachowania w barwnej metaforze jest to, co robiły nasze matki gdy obiad był gotowy – nie chodziłeś i nie pytałeś co 15 min czy obiad jest gotowy, tylko mieliście otwarty kanał komunikacji (korytarz) przez który nie przechodziły dane póki obiad nie był już ciepły.

    Ciekaw jestem, czy w świecie dzisiejszych firewalli dało by się wyczarować prawdziwe “oddzwanianie” do komputera klienta (zakładając że nie ma publicznego IP (także w VPN) i nie robi za serwer nasłuchujący na jakimś porcie).

  2. Emil Oppeln-Bronikowski says:

    @Marek

    Chciałem wytłumaczyć ogólną ideę, nie całą technologię, która stoi za. No i weź pod uwagę, że na ten przykład w moim przypadku oba serwisy stoją w jednej sieci, więc nie mam większego problemu.

    To, o czym piszesz rzeczywiście dotyczy klientów “odseparowanych” np. telefonu z aplikacją GMail, który zwisa sobie z jakiegoś 3G.

    Są jeszcze rzeczy pomiędzy: push Blackberry opierał się na infrastrukturze operatora.

  3. Metafora z flaszką świetna, ukradnę to na jakąś swoją prezentację o Push, dzięki :)

  4. Emil Oppeln-Bronikowski says:

    @Andrzej

    Oczywiście. Tylko rzuć mi linkę na Twitterze. ;-)

  5. Marek says:

    @Emil

    Uproszczenie w celu jasnego wytłumaczenia idei jest całkowicie spoko, broń boże nie chciałem się tego czepiać (ani niczego w sumie). Ot, głośno myślałem a wyszedłem troche assholish ;). Sorry.

  6. Emil Oppeln-Bronikowski says:

    @Marek

    No co Ty, Twój komentarz był absolutnie na temat. Jestem tylko jakimś gościem z instalacją WordPressa, nie wyrocznią. Poza tym bardziej zainteresowany czytelnik może od razu zerknąć dalej po lekturze Twojego komcia, win-win.

  7. Docelowo może styknąć IPv6, o ile nie rozgrabimy go tak rabunkowo, jak się to już zapowiada ;D

    Bo aktualnie to na otwartych/wiszących połączeniach i innych takich leci, c’nie?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Hej, mamy 2012! ...a Twój Internet Explorer ma już ponad 10 lat!

Zaktualizuj natychmiast przeglądarkę lub zainstaluj którąś z alternatywnych:

...po czym wróć na naszą stronę :)