Komunikacja miedzyobiektowa

Oglądasz archiwalną wersję wątku "Komunikacja miedzyobiektowa" z forum pl.comp.lang.java



pluton - 1 Paź 2008, 07:47
Witam,

Mam w aplikacji kilka(nascie) "monstrualnych"
obiektow (spoko, kazdy ma <50 linijek:)
i wymyslilem sobie, ze skomunikuje je w nastepujacy sposob:

1) Kazdy obiekt dziedziczy z klasy NadajnikOdbiornik ,
dzieki czemu ma metode WyslijDoRozdzielacza
oraz OdbierzZRozdzielacza

2) klasa Rozdzielacz to po prostu kontener (lista) poleceń.
Każdy obiekt moze tam wyslac polecenie i adresata,
inne obiekty sa zobowiazane przegladac te liste,
odbierac polecenia skierowane do siebie i wykonywac
Rozdzielacz moze miec tez UI, dzieki czemu widzimy
wiszace w kolejce polecenia i mozemy sledzic postepy
aplikacji

Wobec tego obiekty nie musza znac swoich typow,
nie musza kombinowac z ew. singletonami,
nie musza zdobywac referencji do innych obiektow
zeby wydac im polecenie (bo te inne obiekty byc moze
jeszcze sie nie urodzily) itp.
Musza znac tylko symboliczne typy innych obiektow
(zeby zaadresowac polecenie) i liste rozkazow,
jakie mozna wydac danemu obiektowi.

Czy takie rozwiazanie ma sens ? Jest ono wlasciwie
rownowazne znajomosci referencji i nazw metod publicznych,
ale dodatkowo mamy widoczna liste polecen i kolejkowanie
polecen, jezeli odbiorcy sa zajeci.
Zatem czy warto tak kombinowac ?

pozdrawiam
pluton




Mikolaj Rydzewski - 1 Paź 2008, 08:58

1) Kazdy obiekt dziedziczy z klasy NadajnikOdbiornik ,
dzieki czemu ma metode WyslijDoRozdzielacza
oraz OdbierzZRozdzielacza



Lepiej zeby implementowal.

2) klasa Rozdzielacz to po prostu kontener (lista) poleceń.
Każdy obiekt moze tam wyslac polecenie i adresata,
inne obiekty sa zobowiazane przegladac te liste,
odbierac polecenia skierowane do siebie i wykonywac



Kiedy to jest zadanie dla 'rozdzielacza' wlasnie. Nadawca wysyla
wiadomosc. Odbiorca ja automagicznie dostaje, bez zadnego samodzielnego

A tak wogole, to dlaczego chcesz wymyslac JMS od nowa? ;-)



pluton - 1 Paź 2008, 10:28

| 2) klasa Rozdzielacz to po prostu kontener (lista) poleceń.
| Każdy obiekt moze tam wyslac polecenie i adresata,
| inne obiekty sa zobowiazane przegladac te liste,
| odbierac polecenia skierowane do siebie i wykonywac

Kiedy to jest zadanie dla 'rozdzielacza' wlasnie. Nadawca wysyla
wiadomosc. Odbiorca ja automagicznie dostaje, bez zadnego samodzielnego



Myslalem ze rozdzielacz  nie powinien wiedziec, kto z niego korzysta teraz,
a kto skorzysta za 5 czy 10 lat.

W zamysle to nie ma byc aktywne biurko,
ktore popieprza za coraz to nowymi pracownikami i rozdaje im dokumenty,
tylko czeka, zeby zainteresowani podeszli i wzieli co trzeba :)

A tak wogole, to dlaczego chcesz wymyslac JMS od nowa? ;-)



Nie chce, jakos takos mi sie o tym "zapomnialo" :)

dzieki za "przypomnienie"

pozdrawiam
pluton



Mikolaj Rydzewski - 1 Paź 2008, 10:30

Myslalem ze rozdzielacz  nie powinien wiedziec, kto z niego korzysta teraz,
a kto skorzysta za 5 czy 10 lat.

W zamysle to nie ma byc aktywne biurko,
ktore popieprza za coraz to nowymi pracownikami i rozdaje im dokumenty,
tylko czeka, zeby zainteresowani podeszli i wzieli co trzeba :)



Uzytkownicy rozdzielacza rejestruja sie w nim (okreslajac tez jakiego

mozna wysylac. Dopoki dany uzytkownik sie nie wyrejestruje.




pluton - 1 Paź 2008, 10:43

| Myslalem ze rozdzielacz  nie powinien wiedziec, kto z niego korzysta
| teraz,
| a kto skorzysta za 5 czy 10 lat.

| W zamysle to nie ma byc aktywne biurko,
| ktore popieprza za coraz to nowymi pracownikami i rozdaje im dokumenty,
| tylko czeka, zeby zainteresowani podeszli i wzieli co trzeba :)

Uzytkownicy rozdzielacza rejestruja sie w nim (okreslajac tez jakiego

mozna wysylac. Dopoki dany uzytkownik sie nie wyrejestruje.



To znowu mamy inne ciekawe zagadnienia:
- odbiorcy musza tez umiec informowac
rozdzielacz, ze sa zajeci i zeby chwilowo nie zawracal im gitary,
- trzeba ciekawie obsluzyc moment wyrejestrowania, zeby nie bylo sytuacji
ze wyrejestrowanie nastapi w momencie przesylania,
- java nie ma destruktora i musze sie gimnastykowac nad wyrejestrowaniem
przed utrata referencji
(wyjsciem z funkcji ktora ew. tworzy na chwile jakiegos odbiorce)
- jezeli zostawie gdzies (w rozdzielaczu) referencje do odbiorcy,
to nie moge tego odbiorcy oddac w opieke smieciokolektora, kiedy
nie bedzie mi juz potrzebny itp itd

Troche brudu sie robi, niestety.

pozdrawiam
pluton



Mikolaj Rydzewski - 1 Paź 2008, 11:01

Troche brudu sie robi, niestety.



Ktory JMS posprzatal ;-)

Swoja droga, to dostalem maila dzis:

The Apache Qpid community is please to announce the release of Apache
Qpid M3!

Apache Qpid is a cross platform enterprise messaging solution which
implements the Advanced Message Queueing Protocol (http://www.amqp.org).
It provides brokers written in Java and C++ and clients in C++, Java
(including a JMS implementation), .Net, Python and Ruby.

This release features:

  * AMQP 0-10 support in the Java, Python and C++ clients and the C++
    broker

  * Java broker supports priority queues

  * Apache Derby based persistent store for the Java broker

  * Java client performance improvements

  * AMQP-based management protocol and a set of CLI
    management utilities

It is available to download from
http://www.apache.org/dist/incubator/qpid/M3-incubating/

Complete release notes are available here:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=123121...

INCUBATION DISCLAIMER

Apache Qpid is an effort undergoing incubation at The Apache Software
Foundation (ASF). Incubation is required of all newly accepted projects
until a further review indicates that the infrastructure, communications,
and decision making process have stabilized in a manner consistent with
other successful ASF projects. While incubation status is not necessarily
a reflection of the completeness or stability of the code, it does
indicate that the project has yet to be fully endorsed by the ASF.



maczech - 1 Paź 2008, 11:12

Witam,

Mam w aplikacji kilka(nascie) "monstrualnych"
obiektow (spoko, kazdy ma <50 linijek:)
i wymyslilem sobie, ze skomunikuje je w nastepujacy sposob:

1) Kazdy obiekt dziedziczy z klasy NadajnikOdbiornik ,
dzieki czemu ma metode WyslijDoRozdzielacza
oraz OdbierzZRozdzielacza

2) klasa Rozdzielacz to po prostu kontener (lista) poleceń.
Każdy obiekt moze tam wyslac polecenie i adresata,
inne obiekty sa zobowiazane przegladac te liste,
odbierac polecenia skierowane do siebie i wykonywac
Rozdzielacz moze miec tez UI, dzieki czemu widzimy
wiszace w kolejce polecenia i mozemy sledzic postepy
aplikacji

Wobec tego obiekty nie musza znac swoich typow,
nie musza kombinowac z ew. singletonami,
nie musza zdobywac referencji do innych obiektow
zeby wydac im polecenie (bo te inne obiekty byc moze
jeszcze sie nie urodzily) itp.
Musza znac tylko symboliczne typy innych obiektow
(zeby zaadresowac polecenie) i liste rozkazow,
jakie mozna wydac danemu obiektowi.

Czy takie rozwiazanie ma sens ? Jest ono wlasciwie
rownowazne znajomosci referencji i nazw metod publicznych,
ale dodatkowo mamy widoczna liste polecen i kolejkowanie
polecen, jezeli odbiorcy sa zajeci.
Zatem czy warto tak kombinowac ?

pozdrawiam
pluton



A czy to nie czasem klasyczny przypadek użycia wzorca projektowego
Observer.
Tutaj prosty tutorial http://www.javaworld.com/javaworld/javaqa/2001-05/04-qa-0525-observer....
Jeśli to ma działać w jednym JVM to chyba wystarczy (jeśli nie to
trzeba użyć JMS-a).

pozdrawiam Marcin



pluton - 2 Paź 2008, 02:56

A czy to nie czasem klasyczny przypadek u ycia wzorca projektowego
Observer.



Po cichu liczylem, ze ktos cos takiego powie :) Dzieki.

Niestety programowanie staje sie coraz mniej przyjemne:
zamiast wymyslec i zaimplementowac cos fajnego,
czlowiek musi sie nagrzebac za gotowymi rozwiazaniami,
potem stracic troche czasu zeby je poznac,
potem sie powkurzac, ze nie do konca to jest to, czego sie chcialo,
a potem walczyc zeby tego gotowca wkleic do swojej eklektycznej
konstrukcji :)

pozdrawiam
pluton


Programowanie sieciowe - oczekiwanie na potwierdzenie odebrania komunikatu
J2ME komunikator internetowy !!! JAVA Micro Edition
FF3.0 Ajax i komunikat NS_BINDING_ABORTED
pomysl na wymiane komunikatow klient-serwer
  • pielegniarki opieka kielce
  • czemu po moim routerze jest getaway a potem
  • kretynskie smsy od roznych reklamodawcow
  • smieszne teksty historie
  • drzewka do kupienia
  • katowice awf fizjoterapia egzaminy
  • java;warcaby
  • tunezyjski aar 1066 1820
  • o symbianie na powaC2 nie czyli
  • Zbieranina wiadomości z for dyskusyjnych || Indeks