source: objectmq/README.txt @ 30

Last change on this file since 30 was 3, checked in by stoda, 11 years ago
File size: 2.4 KB
Line 
1Aquest middleware utilitza rabbitmq per tal d'enviar els missatges i poder fer invocacions
2remotes.
3
4El seu funcionament es pot veure en el packet revo.z.sample.
5En ell hi tenim un unit test que serveix per comprovar si funciona una petició. En aquest cas es fa
6una suma 10 +20 i es comprova si s'ha fet bé la suma.
7
8En la classe servidor d'aquest paquet hi trobem dues funcions molt importants:
9        -startRegistry
10        -registerObject
11La primera crea un registre en el servidor. En fer això el que es farà serà internament
12inicialitzar un RequestListener. Un RequestListener és un Thread que llegeix d'UNA ÚNICA CUA
13a l'espera de peticions. Cada cop que es reb una petició en la cua d'RPC crea una nou thread
14per tal d'executar al servidor la petició. Una vegada feta, s'envia la resposta al client.
15
16El registre consta d'una taula de hash en la qual es registren els objectes segons un nom,
17a partir d'aquest nom el client pot fer un lookup amb el qual recupera l'objecte registrat al servidor.
18Ho he intentat fer calcat al model rmi. (Si més no l'exemple que vaig trobar ho feia així així que l'he imitat :P )
19
20Per altra banda trobem la classe Client aquest bàsicament fa un getRegistry tot utilitzant uns properties ens els quals diu
21on ha de fer els publish i subscribes... 
22
23El que fa la funció 
24        -LocateRegistry.getRegistry(env);
25és el següent: inicialitza un ResponseListener. Un responseListener és un ÚNIC THREAD que escolta
26d'UNA ÚNICA cua de respostes. Quan reb una resposta del servidor la guarda en una taula de hash.
27La clau en serà l'UID de la petició i l'objecte la seva resposta.
28Per altra banda també inicialitza un proxy el qual en l'invoke el que fa és un publish al rabbit amb
29la seva petició. Després s'espera una estona i comprova que la taula de hash del ResponseListener tingui
30la resposta a la seva petició. Una vegada la té, la retorna.
31
32Bàsicament això és el que fa el meu helloword i com està estructurat internament.
33L'objectiu principal de fer això era orientar-me per entendre com havia de fer les coses.
34Així doncs si he de canviar coses ja tinc una visió global. 
35
36
37
38Serializers
39Para ejecutar aspectos poner en el VM arguments del cliente y del server:
40-javaagent:/home/gguerrero/Dropbox/pfc-superior/workspace/evocb_rabbit/lib/aspectjweaver.jar
41
42- Java
43- kryo
44https://code.google.com/p/kryo/
45
46- YAML
47https://code.google.com/p/snakeyaml/
48- XML
49http://xstream.codehaus.org/
Note: See TracBrowser for help on using the repository browser.