<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hali!<br>
<br>
Wow, thx, szerintem teljesen jó. Viszont akkor JUnit/JDBC teljesen
kiihúzva?<br>
<br>
Az alapfeladat szövegén annyit változtatnék, hogy ne <i>null</i>
értéket adjon vissza (socketen lehetne hibaüzenet is).<br>
<br>
Egy minimális kommunikációs példát belerakhatnánk, ilyesmit, hogy:<br>
<blockquote><small><tt>Kliens 1:<br>
Üzenet:<br>
write 1 message one<br>
Válasz:<br>
OK ...<br>
Blackboard tartalma:<br>
1 --> message one<br>
<br>
Kliens 2:<br>
Üzenet:<br>
write 1 erroneous message<br>
Válasz:<br>
ERR ...<br>
Blackboard tartalma:<br>
1 --> message one<br>
<br>
Kliens 2:<br>
Üzenet:<br>
read 1<br>
Válasz:<br>
OK message one<br>
Blackboard tartalma:<br>
1 --> message one<br>
<br>
Kliens 3:<br>
Üzenet:<br>
take 1<br>
Válasz:<br>
OK message one<br>
Blackboard tartalma:<br>
-</tt></small><br>
</blockquote>
Vagy ilyesmi (persze, RMI-vel nem sok értelme van, de kb.
illusztrálja, mik kellenek).<br>
<br>
Szinkronizációt biztos akarunk a kettesért?<br>
<br>
Loggerből nem elég, ha egyet csinálnak?<br>
<br>
Ne legyen egy +1 feladat, hogy valamelyik kiváltható legyen? (Előző
félévekben mintha úgy lettek volna, hogy 5 db +1 feladat van, de
lehet csak rosszul emlékszem.)<br>
<br>
My 2 cents - és nagyon köszi!<br>
Ricsi<br>
<pre class="moz-signature" cols="72">--
Richard O. Legendi
PhD Student
Eötvös Loránd University, Faculty of Informatics
Department of Programming Languages and Compilers
<a class="moz-txt-link-freetext" href="http://people.inf.elte.hu/legendi/">http://people.inf.elte.hu/legendi/</a>
</pre>
On 2012.05.15. 21:19, Zaicsek Balázs wrote:
<blockquote cite="mid:4FB2AC5B.5050508@pnyf.inf.elte.hu" type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<tt>Sziasztok!<br>
<br>
A következőre gondolok:<br>
</tt>
<ul>
<li><tt>Alap feladat:</tt></li>
<ul>
<li><tt>Egy BlackBoard, amire mindenki szabadon helyezhet el
üzeneteket</tt></li>
<ul>
<li><tt>Minden üzenetnek van Id-ja, és tartalma (int,
String)</tt></li>
<li><tt>Az üzeneteket az id-juk alapján lehet kérni</tt></li>
<li><tt>Az üzenet ID-ját a kliens határozza meg, létező ID
újraelhelyezése hibajelzést ad (szabadon eldönthető,
hogy milyet)<br>
</tt></li>
</ul>
<li><tt>Egy üzenetet lehet olvasni (read)</tt></li>
<ul>
<li><tt>Ha nincs a kért ID-jú üzenet, a visszatérési érték
null<br>
</tt></li>
</ul>
<li><tt>Egy üzenetet lehet elhelyezni (write)</tt></li>
<li><tt>Egy üzenetet le lehet venni a BlackBoard-ról (take)</tt></li>
<ul>
<li><tt>Ha nincs a kért ID-jú üzenet, a visszatérési érték
null<br>
</tt></li>
</ul>
<li><tt>Oldja meg a helyes szinkronizációt, és készítse fel a
rendszert több kliensre</tt></li>
</ul>
<li><tt>Hármasért:</tt></li>
<ul>
<li><tt>Írj Logger-t a BlackBoard-hoz</tt></li>
<li><tt>Ha az előzőt RMI-vel írtad, ezt Socket-ekkel készítsd,
és fordítva</tt></li>
<li><tt>A Logger magától kéri el a BlackBoard aktuális
állapotát, és ennek gyakorisága parancssori paraméter</tt></li>
<li><tt>Ha a Logger csak egy paramétert kap, akkor a konzolra
ír, ha 2-t, akkor a második paraméterként kapott file-ba</tt></li>
<li><tt>A Loggernek a konzolról lehet parancsot küldeni</tt></li>
<ul>
<li><tt>"force" -- azonnali üzenet lekérés</tt></li>
<li><tt>"exit" -- kilép</tt></li>
</ul>
<li>Több Logger is futhasson egy időben</li>
</ul>
<li>+1 jegy:</li>
<ul>
<li> Ha valaki olyan ID-val kér üzenetet, ami nincs, akkor
addig várakozzon a kérése, amíg ilyen ID-jú üzenet nem
érkezik a BlackBoard-ra</li>
</ul>
<li>+1 jegy:</li>
<ul>
<li>Mirror készítése</li>
<li>Akárhány Mirror lehet egy BlackBoard-hoz</li>
<li>A Mirror magától regisztrál a BlackBoard-ra</li>
<li>A Mirrorok kezdeti állapotát a BlackBoard beállítja</li>
<li>A Mirrorok állapotát a BlackBoard tartja karban</li>
</ul>
</ul>
<p>Szerintem ez így kerek, és megfelelően nehezedő feladat. Nem
lesz sok ötös, de ha valaki 2-est, 3-ast szeretne, az viszonylag
könnyen megkapja. Szerintetek?<br>
</p>
<p>Balu<br>
</p>
<br>
<br>
<br>
2012.05.15. 10:19 keltezéssel, Richard O. Legendi írta:
<blockquote cite="mid:4FB21195.3020200@elte.hu" type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
Örülnék is neki!<br>
Ricsi<br>
<pre class="moz-signature" cols="72">Richard O. Legendi
PhD Student
Eötvös Loránd University, Faculty of Informatics
Department of Programming Languages and Compilers
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://people.inf.elte.hu/legendi/">http://people.inf.elte.hu/legendi/</a>
</pre>
<br>
On 2012.05.15. 9:37, Zaicsek Balázs wrote:
<blockquote cite="mid:4FB207B3.6050803@pnyf.inf.elte.hu"
type="cite">
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
Hi!<br>
<br>
Alapvetően jó, csak nekem egy kicsit bonyolult, ha
belerakhatok pár javaslatot, szólj!<br>
<br>
Balu<br>
<br>
2012.05.14. 13:23 keltezéssel, Richard O. Legendi írta:
<blockquote cite="mid:4FB0EB2D.1080102@elte.hu" type="cite">
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
Sziasztok!<br>
<br>
Múltkor Balu említette hogy szívesen írna ki feladatot, én
örülnék neki.<br>
<br>
Ötletem nekem is lenne, csak nem biztos, hogy le tudom
kerekíteni: valami minimális Linda rendszert lehetne íratni
velük, az nem túl bonyolult.<br>
<br>
Legyen egy központ (space/blackboard), ahová kliensek tudnak<i>
write()</i>-olni, <i>read()</i>-elni, meg <i>take()</i>-elni
feladatokat (mint pl. a JavaSpaces-ben, ha ismeritek).
Konkrétan <i>(ID, String)</i> típusú üzenetekre gondoltam.
Lehetne <i>ID</i> alapján szűrni az üzenetekre, esetleg <i>*</i>-ozni,
hogy azt az üzenetet bárki olvashatja, elveheti, etc. A
kommunikációt megoldhatnák RMI-vel vagy sockettel, amelyik
jobban tetszik vagy megy nekik. Kettesért ennek kéne mennie
(pl. 2 konzolos klienssel, a blackboard tartalmát kéne még
tudni listázni, hogy ellenőrizni tudjuk a működést).<br>
<br>
További feladatok tetszés szerinti sorrendben megoldhatók
(több is van, ha valamelyik problémás esetleg).<br>
<br>
+1 jegy Felkészítés N db kliensre, megfelelő
szinkronizációval. Legyen egy író, meg egy olvasó kliens,
ami x időnként pakolászik meg olvas.<br>
<br>
+1 jegyért Checkpointing: lehessen kérni backupot JDBC-vel
az aktuális tartalommal, valamint annak visszaállítását is
(az aktuális tartalom eldobásával pl.).<br>
<br>
+1 jegyért legyenek tesztek (inicializált blackboardon nincs
üzenet, ha rárakunk egyet, akkor az ott van, ha valaki csak
olvassa, akkor még mindig ott van, ha a címzett leveszi,
akkor meg megint nincs ott, etc.).<br>
<br>
+1 jegyért üzenetek naplózása: legyen valami logger worker,
ami minden üzenetet sasol, és logol fájlba (minden felkerülő
üzenet először a loggernek visz fel a rendszer, majd az
leveszi, feldolgozza, és visszaírja a feladatot a
blakcboardra az eredeti címzettnek).<br>
<br>
Vélemény? Túl egyszerű, túl bonyolult? Esetleg van már
másnak konkrét feladatkiírása? :-)<br>
<br>
Igyekeztem figyelembe venni, hogy csak Java referencia lesz
(elvileg, legalábbis nekem ez rémlik), illetve nem árt majd
gondolom némi segédszöveg a JUnithoz (nem mindenki IDE-zik
tippre), valamint a Jarokra is szükség van - btw én
Derby-ztem a srácokkal, mert az alapból van a JDK-ban,
kivéve talán az 1.6u26-ot, amiből véletlen kihagyták :-)<br>
<br>
Comments are welcome,<br>
Ricsi<br>
<pre class="moz-signature" cols="72">--
Richard O. Legendi
PhD Student
Eötvös Loránd University, Faculty of Informatics
Department of Programming Languages and Compilers
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://people.inf.elte.hu/legendi/">http://people.inf.elte.hu/legendi/</a>
</pre>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Orgyak mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Orgyak@plc.inf.elte.hu">Orgyak@plc.inf.elte.hu</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://plc.inf.elte.hu/mailman/listinfo/orgyak">https://plc.inf.elte.hu/mailman/listinfo/orgyak</a>
</pre>
</blockquote>
</blockquote>
<br>
</blockquote>
</body>
</html>