To je dalsi zajimavy hint. Ne tedy pro moje pouziti. To by asi nezvladly ftp servery, mailservery, ... :)

Pet


Martin Kuba napsal(a):

Oto Buchta wrote:

Jenom doplnim, ze v Jave se v distribuovanem prostredi s uspechem pouziva nekolik reseni:
- JMS queue a v onMessage() pak synchronizovany blok
- synchronizovane EJB Counter ;-)
- a spousta dalsich reseni postavenych na principu klient-server :-D
- lze vyuzit exkluzivitu JNDI bindu: neni mozne bindnout jiz bindnutou hodnotu, je treba rebind. V tomto pripade seqence bind(lock)->get(value)->value++->rebind(value)->unbind(lock) funguje jako atomicky "take" znamy ze spaceovych systemu (TupleSpace, Jini,STITCH,...)

Nelze-li pouzit centralizovanou spravu, pak lze pouzit nektery z klasickych algoritmu pro volbu vedouciho a toho pak docasne prohlasit za centralu.


Když už jsme se dostali v teorii až k distribuovanému prostředí,
tak ještě doplním, že centrální místo generující jednoznačné
identifikátory nemusí být vždycky použitelné řešení. Pak
lze použít tzv. UUID (universally unique identifier), od Javy 1.5
implementovaný třídou
java.util.UUID, viz
http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.html
která dokáže generovat jedinečné identifikátory i bez
centralizovaného řešení. Využívá k tomu různé věci, jako
MAC adresu síťové karty, aktuální čas a náhodně generovaná čísla.

Makub



Odpovedet emailem