EA3

EA3 und Kurstext sind online. Leider ist es nun wirklich zum Javakurs verkommen....
 
Wo soll denn bitte das JADE-Framework auf der Kursseite sein? Haben die sich da etwa bei den Dateien ein wenig vergriffen?

20 von 100 Punkten bekommt man also direkt geschenkt wenn man JADE zum Laufen bringt :) Das ist ja cool.
 
Zuletzt bearbeitet:
Ich erhalte gleich die Fehlermeldung beim Starten von jade: "Fehler: Hauptklasse jade.Boot konnte nicht gefunden oder geladen werden". Google weiß nichts dazu. PATH ist gesetzt auf JRE bin-Ordner. Ideen, gleiche Erfahrung?
 
Nutzt du den Start Befehl aus der Aufgabenstellung oder aus dem Online Tutorial? Ich hatte das Problem nichtmehr als ich den Befehl aus der Aufgabenstellung genutzt habe.
 
Recht hast du: C:\Program Files\Java\jdk1.7.0_45\bin, habe ich auch, aber geht nicht...
Ich habe:
1. jade in c:\jade entpackt.
2. jdk habe ich schon drauf für eclipse.
3. Path gesetzt zu C:\Program Files\Java\jdk1.7.0_45\bin.
4. in cmd ausgeführt: java -cp C:\jade\lib\jade.jar jade.Boot -gui
5. Fehler: Hauptklasse jade.Boot konnte nicht gefunden oder geladen werden
Ist CLASSPATH wichtig?

OK. Es geht: Jade neu geladen und erneut entpackt und es geht soweit. Danke für die moralische Unterstützung
 
Zuletzt bearbeitet:
Habt ihr 1 & 2 auch so?:

3.1

Name des Agentcontainers: Main-Container
Gesamtinformation: Agent container Main-Container@172.30.1.107

3.2
a)
Die Rückantwort ist „pong“.
b)
sniffer.png
 
Zuletzt bearbeitet:
Hi Riad,
3.1 habe ich auch so
3.2 die Grafik von dir kann man nicht erkennen, aber pong ist korrekt.

3.3 habe ich mit Eclipse gemacht und bin gerade dabei, die Agents einzurichten. Wenn sich bei jmd. aus Eclipse die GUI auch nicht startet, schaut mal hier:
http://wrjih.wordpress.com/2008/11/29/running-jade-under-eclipse/
bei den Programm Arguments muss man nur -gui jade.Boot angeben, die Agents lassen sich dann über die GUI mit den Parametern erstellen
 
Zuletzt bearbeitet:
Hm irgendwie stehe ich da auf dem Schlauch. Ich versende meine CFP-Nachricht, empfange die dann auch im Maschinenagenten, und gebe einen Vorschlag zurück. Allerdings springt die Methode handleAllResponses des Jobagenten dann nicht an. Weiß da jemand Rat?
 
Mir geht es ähnlich, habe auch alle Agenten in der JADE GUI eingerichtet, doch wirklich "automatisiert" läuft bei mir dann auch keine Antwort ab.
 
Ich habs rausgefunden. Schaut euch in den Examples am besten im Beispiel Protocols die beiden Klassen ContractNetInitiatorAgent und ContractNetResponderAgent an. Dort steht alles genau beschrieben. :)

Das Gantt würde dann so aussehen:

M1 - J2(20)
M2 - J3(15) - J5(7)
M3 - J1(10) - J4(18)

Die Zykluszeit beträgt damit 28.

Habt ihr das auch so? (Die Belegung ist natürlich variabel, da bei J1 und J2 jeweils verschiedene Möglichkeiten entstehen.)
 
Zuletzt bearbeitet:
Wow Leute.....ihr seit ja mal richtig turbo schnell unterwegs :)

Ich wollte heute auch mit der Programmierung anfangen, sehe ich das richtig oder reicht es "lediglich" die "To do's" aus den Klassen zu erledigen. Wie frägt man denn nachdem Agent-Directory-Service ab bzw. welches Objekt (getter) liefert die Möglichkeit im ADS zu suchen?

Gruß
Memolie
 
Ich habs rausgefunden. Schaut euch in den Examples am besten im Beispiel Protocols die beiden Klassen ContractNetInitiatorAgent und ContractNetResponderAgent an. Dort steht alles genau beschrieben. :)

Das Gantt würde dann so aussehen:

M1 - J1(10) - J4(18)
M2 - J2(20) - J5(7)
M3 - J3(15)

Die Zykluszeit beträgt damit 28.

Habt ihr das auch so? (Die Belegung ist natürlich variabel, da bei J1 und J2 jeweils verschiedene Möglichkeiten entstehen.)

Zunächst :) Diesen Gantt habe ich mir schon vor der Software so überlegt, das es wohl das Ergebnis und damit logisch ist. Soweit bin ich aber noch nicht. Habe mir die Klassen bereits angeschaut und leichte Korrekturen vorgenommen. Womit fängst du denn jetzt an? Mit welcher Message von wem zu wem im Tool?
 
Das stimmt natürlich. ;) Die optimale Zykluszeit mit Beachtung der Kosten wäre aber 27, soweit ich mich nicht täusche, wenn man nicht streng nach J1 bis J5 gehen würde in der Betrachtung.

Zu meiner Vorgehensweise:

Wichtig: Es darf nichts eigenmächtig mit .send() verschickt werden. Das macht alles das Programm selbst, sonst funktioniert es nicht.

Ich setze den Content in der Methode Setup im JobAgent(JA) zunächst mit der Bearbeitungszeit. In der handleCFP-Methode des MaschinenAgenten(MA) lese ich diese aus und addiere sie zu der bereits gespeicherten Zeit, die für alle anderen Aufträge auf der jeweiligen Maschine benötigt wird. Dann schreibe ich in meinen propose mit Komma getrennt die Fertigstellungszeit und die Kosten. Diese lese ich in der Methode handleAllReponse im JA aus, splitte sie und gucke zunächst, ob die Kosten niedriger sind, als mein Budget (sonst ablehnen,also raus aus der Schleife) und dann, ob die Fertigstellungszeit niedriger ist, als die, die ich bereits für den Job gespeichert habe (bzw. ob es die erste verfügbare Zeit ist.) Wenn beides true ist, setze ich die Maschine bzw. die Message als access und meine aktuelle Fertigstellungszeit neu. Sind alle Maschinen durchgelaufen, setze ich bei access die Nachricht auf "angenommen" (sofern access nicht null), das Programm benachrichtigt dann die MA und sagt auch selbstständig ab. Soweit klar?
 
Hi Riad,

den Aufruf für den Verzeichnisdienst kann ich leider nicht erkennen :( obwohl ich die Klassen
ContractNetInitiatorAgent und ContractNetResponderAgent angesehen habe
 
Das stimmt natürlich. ;) Die optimale Zykluszeit mit Beachtung der Kosten wäre aber 27, soweit ich mich nicht täusche, wenn man nicht streng nach J1 bis J5 gehen würde in der Betrachtung.

Zu meiner Vorgehensweise:

Wichtig: Es darf nichts eigenmächtig mit .send() verschickt werden. Das macht alles das Programm selbst, sonst funktioniert es nicht.

Ich setze den Content in der Methode Setup im JobAgent(JA) zunächst mit der Bearbeitungszeit. In der handleCFP-Methode des MaschinenAgenten(MA) lese ich diese aus und addiere sie zu der bereits gespeicherten Zeit, die für alle anderen Aufträge auf der jeweiligen Maschine benötigt wird. Dann schreibe ich in meinen propose mit Komma getrennt die Fertigstellungszeit und die Kosten. Diese lese ich in der Methode handleAllReponse im JA aus, splitte sie und gucke zunächst, ob die Kosten niedriger sind, als mein Budget (sonst ablehnen,also raus aus der Schleife) und dann, ob die Fertigstellungszeit niedriger ist, als die, die ich bereits für den Job gespeichert habe (bzw. ob es die erste verfügbare Zeit ist.) Wenn beides true ist, setze ich die Maschine bzw. die Message als access und meine aktuelle Fertigstellungszeit neu. Sind alle Maschinen durchgelaufen, setze ich bei access die Nachricht auf "angenommen" (sofern access nicht null), das Programm benachrichtigt dann die MA und sagt auch selbstständig ab. Soweit klar?

Ja, die Programmierung ist mir klar und habe das genauso gelöst wie du, nur habe ich nicht mit Komma, sondern mit "###" getrennt, was ja egal ist, wenn es wieder dementsprechend splittet. Ich meine die eigentliche Ausführung im JADE Tool. Ich habe da alle Agenten erstellt, welche Nachrichten verschickst du dann?
 
Ich erstelle erst die 3 MaschinenAgenten, dann den ersten JobAgent und der läuft ja allein los. Das Programm springt dann automatisch zwischen den Agenten hin und her. Am Ende gibt es drei Ausgaben, zwei Ablehnungen und eine Zusage. Dann den nächsten Job bis J5.
 
Danke dir, ich hatte die in einer anderen Reihenfolge angelegt und mich gewundert, wieso nichts losgeht. Interessant ist mein Ergebnis. Ich habe auch eine Zykluszeit von 28, aber folgende Verteilung:

M1 J3 (15), J5 (7)
M2 J1 (10), J4 (18)
M3 J2 (20)

Auch egal :) wir haben beide eine annehmbare und deutlich bessere Lösung als die in der Aufgabenstellung. Schönen Abend noch!
 
Hallo zusammen,

Ich habe eine Frage zu der Aufgabe 3.3: Ich habe die Implementierung so wie in den Beispielen übernommen, nur leider bricht bei mir der erste Job ab:

Maschinenidentifizierung Mx und Bearbeitungspauschale als Parameter angeben
Maschinenidentifizierung Mx und Bearbeitungspauschale als Parameter angeben
Maschinenidentifizierung Mx und Bearbeitungspauschale als Parameter angeben
*** Uncaught Exception for agent JobAgent1 ***
java.lang.NullPointerException
at jade.domain.DFService.search(DFService.java:353)
at jade.domain.DFService.search(DFService.java:397)
at ess.JobAgent.setup(JobAgent.java:51)
at jade.core.Agent$ActiveLifeCycle.init(Agent.java:1522)
at jade.core.Agent.run(Agent.java:1468)
at java.lang.Thread.run(Unknown Source)
ERROR: Agent JobAgent1 died without being properly terminated !!!
State was 2

-> Ohne lokale Deklarierung wird die Variabel 'myAgent' in der Methode setup() nicht erkannt:
DFAgentDescription[] result = DFService.search(myAgent, template);

Woher kommt diese Variable und was soll übergeben werden?

Weiß da jemand etwas Genaueres?
Über jeden Tipp bin ich dankbar!
 
@Marie111 Schau dir mal den Code an, bei dem du dir das mit dem "myAgent" angeschaut hast. Dann sollte klar werden, dass du anstatt "myAgent" - "this" schreiben solltest. Es ist damit die Klasse gemeint, in der du gerade bist, eben der Agent :)

Zu allen anderen: Ich werde meinen genauen Code hier nicht posten, @Riad und ich haben durch unsere Diskussion eigentlich alles von der Einrichtung, über die Vorgehensweise (Code von Riad wo die Algorithmen quasi in Textform stehen), die Beispieldateien zum Anschauen bis hin zur Durchführung in JADE gepostet.
 
@m4rkusf Es hätte mir einfach Zeit und Arbeit erspart. Sehr oft übergebe ich hier komplette Textzeilen aus meinen Lösungen um anderen zu helfen. Ich denke ich werde mir die Lösung auch erarbeiten können. Wie man deinen Charakter nach der Aussage oben einschätzt, kann sich jeder selbst überlegen. Da überlegt man sich doch wirklich in wie weit man es nicht in Zukunft auch so handhabt.

@vok2002 Ich werde nächstes WE wieder Zeit für die 3.3 haben und dann können wir uns nochmal austauschen.
 
Ich habs rausgefunden. Schaut euch in den Examples am besten im Beispiel Protocols die beiden Klassen ContractNetInitiatorAgent und ContractNetResponderAgent an. Dort steht alles genau beschrieben. :)

Das Gantt würde dann so aussehen:

M1 - J2(20)
M2 - J3(15) - J5(7)
M3 - J1(10) - J4(18)

Die Zykluszeit beträgt damit 28.

Habt ihr das auch so? (Die Belegung ist natürlich variabel, da bei J1 und J2 jeweils verschiedene Möglichkeiten entstehen.)

Hallo,

danke erstmal im Allgemeinen für die guten Hinweise hier im Forum zu der Aufgabe.
Ich verstehe im Moment ebenfalls nicht, warum die Methode "handleAllResponses" bei mir nicht anspringt. Habe auch schon mit den Beispielquelltexten verglichen.

Kannst du - oder irgendjemand - mir ein Tipp geben, woran es im Detail liegt?

Danke und Gruß
Jan
 
Hey Jan, kann es sein, dass du mitunter, so wie ich zuerst, die Agenten in der "falschen Reihenfolge" im Tool angelegt hast. Erst die drei Maschinenagenten anlegen, dann die Jobagenten der Reihe nach... mach dir mal so einen Sniffer Agenten nachdem du die Maschinenagenten angelegt hast, dann siehst du, ob was passiert.

@edstrinova Mitunter bist du in der Sache jetzt die falsche Adresse, da ich von anderen Fächern in anderen Foren schon bemerkt habe, dass du dich aktiv beteiligst. Ich finde halt, es ist was anderes wenn man Ideen austauscht und ggf. Vorgehensweisen in textlichler Form als den bloßen Code. Das führt nämlich dazu, dass sich Leute diesen auch nur kopieren und so die Arbeit abgeben, ohne auch nur ein wenig darüber nachgedacht zu haben. Wie gesagt, das bist jetzt mitunter nicht du, aber genug andere. Ich hab sowas in meinem Bachelor öfter erlebt und auch in der Betreuung von Tutorien gemerkt, wie manche Aufgaben bearbeiten und bleibe daher dabei.
 
@m4rkusf danke für den Tipp. Das habe ich schon probiert. Beim Sniffer sehe ich auch nur, dass die Maschine antwortet, jedoch danach nichts weiter passiert.
Habe auch schon probiert im Quelltext an verschiedenen Stellen ein system.out.println einzustellen, um zu sehen, ob was passiert. Leider ohne Erfolg.
 
Hallo!

Ich hatte das gleiche Problem. Kann es sein, dass du irgendwo selbstständig versuchst, etwas zu senden? Wenn ja, dann lösche diese Zeilen, weil sonst der Rhytmus durcheinander kommt. ;)
 
Mit 3.3 beschäftige ich mich dann ab morgen...scheint ja durchaus ein wenig komplexer zu sein.
3.1 und 3.2a) wurden hier ja schon aufgeführt. Wie macht ihr das mit dem Screenshot? Man kann ja direkt aus dem Sniffer einen Shot exportieren, aber da fehlt mir iwie die Dateiendung. Habe jez einfach das Snipping Tools aus Windows genommen. Reicht das wohl?
 

Anhänge

  • snapshot sniffer.JPG
    snapshot sniffer.JPG
    66 KB · Aufrufe: 235
Hallo zusammen,

was für eine Bearbeitungszeit trägt ihr in der Klasse JobAgent (JA) und Methode:
msg.setContent("") ein? Mir ist nicht so ganz klar was für ein Messageinhalt hier eingefügt werden soll, in der Aufgabenbeschreibung steht zwar die Bearbeitungszeit allerdings welche (es gibt ja verschiedene Bearbeitungszeiten)..... :D
 
@knuddlwolle: So hab ich das auch gemacht, :)

@memolie: Der Jobagent übergibt seine Bearbeitungszeit, der Maschinenagent gibt ihm die Kosten und den frühesten Fertigstellungstermin (Durch ein Trennzeichen, wie ",", getrennt zurück), damit der entscheiden kann, ob er sich die Maschine leisten kann und ob sie für ihn auch die beste Wahl hinsichtlich des Fertigstellungstermins ist.
 
@memolie?
hast du bzgl der Abfage des Agent-Directory-Service was gefunden. Steh da auch bisschen auf dem Schlauch hab im BookBuyer- oder -Seller-Beispiel sowie im ContractNetInitiatorAgent und ContractNetResponderAgent nichts gefunden


übrigens wenn jemand probleme mit den Ports hatte Fehlermeldung: No ICP active
dann muss man einen anderen Port verwenden beim aufruf
z.B -gui -local-port 1101 jade.Boot


hab jetzt was gefunden vl hilft es dem einen oder anderen weiter
zu meinem Thema ist abschnitt 6 ganz nett

http://jade.tilab.com/doc/tutorials/JADEProgramming-Tutorial-for-beginners.pdf
 
Zuletzt bearbeitet:
Hallo Zusammen,
ich hoffe, irgendwer kann mir helfen, da ich komplett am verzweifeln bin und nicht einmal die erste Aufgabe schaffe - immer wenn ich cmp starten möchte, kommt die Meldung, dass der Pfad nicht korrekt ist. Eingabe erfolgt genau nach Aufgabenstellung. Path C:\Program Files\Java\jdk1.7.0_45\bin. habe ich einen neuen unter Systemvariablen gesetzt, jade ist unter C:\jade gespeichert, JDk ist ebenfalls installiert.

Bin noch absoluter Neuling auf diesem Gebiet, aber möchte wirklich gerne diese EA abschliessen.
Vielen Dank vorab für eure Hilfe!
 
Hallo koerschtin,
ich verstehe das Problem noch nicht ganz.
1. meinst du wohl cmd, evtl. heißt es in deiner Win-Version auch einfach Eingabeaufforderung. Wenn diese nicht startet, dann müssen wir deine Installation des OS prüfen. Du solltest auf jeden Fall eine kleine Dos box öffnen können, dann
2. sehen wir weiter.
Wie weit bist du?
 
Hallo Vok2012,
vielen Dank erstmal, für Deine Hilfe! Ich denke, dass ich es wahrscheinlich irgendwie falsch installiert habe. Als Hilfe anbei ein Dokument mit der Eingabeaufforderung und was ich versucht habe...
 

Anhänge

  • Screen_1.pdf
    33,9 KB · Aufrufe: 108
Ja, das jdk ist installiert und die Variable hab ich neu gesetzt - danke Klangfreund für den Link!
...nur habe ich immer noch das gleiche Problem in der Eingabeaufforderung...
 
Also, das JDK muss installiert sein und Jade muss im Ordner c:\jade abgelegt sein. In der Zip vom Lehrstuhl ist der Ordner noch mal im Ordner abgelegt, also drauf achten, dass das ganze nicht in c:\jade\jade\... liegt :)

Nach der Einstellung der Systemvariablen die Eingabeaufforderung am besten schließen und erneut starten. Dann sollte er auf den Befehl java reagieren. Im Screenshot 1 war, glaube ich, der Befehl nicht ganz korrekt. Er lautet laut Script so:
java -cp C:\jade\lib\jade.jar jade.Boot -gui

Ergänzung: drauf achten, dass nach -gui kein Punkt gesetzt wird, dann läuft es nicht.
 
So eben war kurz Zeit. Habe mal die 3.3 angefangen. Kann ja mal meinen aktuellen Stand durchgeben. Mir fehlt wohl nur noch das TODO "implementieren Sie die Abfage des Agent-Directory-Service hier ...". Und natürlich die Fehlerkorrekturen meines restlichen Codes.

Job-Agent:
fügen Sie der Nachricht den Inhalt (Content) hinzu ...
Code:
Integer bearbeitungsdauerInteger = new Integer(bearbeitungsdauer);
            msg.setContent(bearbeitungsdauerInteger.toString());

implementieren Sie die Auswahl der Maschine hier ...
setzen die die Variable "accept" auf eine entsprechende Referenz ...

Code:
    String antwort = msg.getContent();
                        String fruehsteFertigstellungszeitAntwortString = antwort.substring(0, antwort.indexOf("#"));
                        String kostenAntwortString = antwort.substring(antwort.indexOf("#")+1);
                        int fruehsteFertigstellungszeitAntwort = 999;
                        int kostenAntwort = -1;
                       
                        fruehsteFertigstellungszeitAntwort = Integer.parseInt(fruehsteFertigstellungszeitAntwortString);
                        kostenAntwort = Integer.parseInt(kostenAntwortString);
                        AID besteFinanzierbareMachine = null;
                       
                        if (kostenAntwort <= budget) {
                       
                        if (fruehsteFertigstellungszeit < 0) { // bei der ersten Antwort
                            fruehsteFertigstellungszeit = fruehsteFertigstellungszeitAntwort;
                            besteFinanzierbareMachine = msg.getSender();
                            accept = reply;
                            }
                       
                        if (fruehsteFertigstellungszeitAntwort < fruehsteFertigstellungszeit) { // Bedingungen pruefen
                            fruehsteFertigstellungszeit = fruehsteFertigstellungszeitAntwort;
                            besteFinanzierbareMachine = msg.getSender();
                            accept = reply;
                            }

erstellen Sie die Akzeptanznachricht
Code:
accept.setPerformative(ACLMessage.ACCEPT_PROPOSAL);
 
Maschinen-Agent:
fügen Sie der Nachricht den Inhalt hinzu
Code:
                Integer fruehsteFertigstellungszeitInteger = new Integer(fruehsteFertigstellungszeit);
                Integer bearbeitungspauschaleInteger = new Integer(bearbeitungspauschale);
                propose.setContent(fruehsteFertigstellungszeitInteger.toString() + "#" + bearbeitungspauschaleInteger.toString());
                return propose;
 
Der Agent-Directory-Service scheint mir gerade, wie schon ein paar anderen, auf Anhieb nicht zu gelingen. Irgendwo steckt noch ein Denkfehler. Man hat ja bereits AID[] maschinenAgenten = null; gegeben... Eine letzte Hilfe, in wie weit man den Code aus Book-BayerAgent verwenden kann, wäre super. Habt ihr da einen kompletten Ticker mit implementiert?
 
Der Agent-Directory-Service scheint mir gerade, wie schon ein paar anderen, auf Anhieb nicht zu gelingen. Irgendwo steckt noch ein Denkfehler. Man hat ja bereits AID[] maschinenAgenten = null; gegeben... Eine letzte Hilfe, in wie weit man den Code aus Book-BayerAgent verwenden kann, wäre super. Habt ihr da einen kompletten Ticker mit implementiert?

Der Code aus dem Beispiel lässt sich fast 1:1 übernehmen. Statt der sellerAgents müssen nur die maschinenAgenten gefüllt werden und der Type ist ein anderer. Einen Ticker braucht man natürlich nicht, die Abfrage soll ja nur einmalig am Anfang geschehen.

erstellen Sie die Akzeptanznachricht
Code:
accept.setPerformative(ACLMessage.ACCEPT_PROPOSAL);

Das reicht noch nicht ganz, wenn du dir im MaschinenAgent die Stelle ansiehst, wo auf das akzeptierte Angebot reagiert wird, siehst du, dass die Nachricht einen Inhalt zur Verarbeitung braucht.
 
Oh ja, danke @Reinhardtinho. Den Content habe ich dort nun wieder angefügt.

Und der DS scheint laut Jade auch zu klappen.

DFAgentDescription dfd = new DFAgentDescription();
ServiceDescription sd = new ServiceDescription();
sd.setType("maschine");
dfd.addServices(sd);
try {
DFAgentDescription[] result = DFService.search(this, dfd);
maschinenAgenten = new AID[result.length];
for (int i = 0; i < result.length; ++i) {
maschinenAgenten = (result.getName());
}
}
catch (FIPAException fe) {
fe.printStackTrace();
}
 
Meiner Meinung nach funktioniert es nun sehr gut und sollte als abgabefertige Version ausreichen.

Die Console schreibt mir das:


Und der Sniffer in Jade sagt das (nur Job1-4, Rest ist abgeschnitten):
 
Hallo! Wo finde ich denn das BookTrading-Beispiel. Und soweit ich verstehe entwickelt man JobAgent und MaschinenAgent in Eclipse. Wie kommt das dann in JADE? Es soll ja am Schluß in Jade laufen, oder?
Also diese Aufgabe geht schnell von 0 auf 100. Lerneffekt ist hier keiner!
 
Moin,

rein theoretisch:

Um zur Klausur zugelassen zu werden, muss man Übung 1 und 3 erfolgreich bestanden haben. Um eine Übung erfolgreich zu bestehen muss man 50% der Aufgaben lösen. Die ersten beiden Aufgaben aus Übung 3 ergeben 50 Punkte und damit die notwendigen 50%. Wenn man nun die von edstrinova bereitgestellten Code-Fragmente zusammenbastelt und sie halbwegs richtig verpackt, gibt es sicherlich noch ein paar Gnadenpunkte. Damit ist die Teilnahme an der Klausur sichergestellt. Sehe ich das richtig? (Natürlich vorausgesetzt, dass man die erste Übung bestanden hat und die ersten beiden Aufgaben der Übung 3 korrekt hat)

@vok2012: sehe das Ganze ähnlich wie du. Dazu ist mir dieses Bild eingefallen:
how_to_draw_an_owl.jpg


Die Frage, die sich mir stellt, ist wie das Niveau der Prüfung sein wird?
 
Hallo! Wo finde ich denn das BookTrading-Beispiel. Und soweit ich verstehe entwickelt man JobAgent und MaschinenAgent in Eclipse. Wie kommt das dann in JADE? Es soll ja am Schluß in Jade laufen, oder?
Also diese Aufgabe geht schnell von 0 auf 100. Lerneffekt ist hier keiner!

Die Beispiele sind im Jade-Ordner unter \src\examples. Und wie man Eclipse konfiguriert, wurde bereits hier im Thread auf der ersten Seite genannt. In der Projektdatei von der Kurswebseite sind die Pfade auch schon auf die Jade-Bibliothek gesetzt. Damit lässt sich der Code direkt in Eclipse debuggen.
 
Welches Formum meinst du? Java Umgebungsvariable einstellen unter Windows 7?? Ich muss mich leider hier zur Zeit mit einem Vista vergnügen.

der befehl java -cp C:\jade\lib\jade.jar jade.Boot -gui klappt ja bei mir.
 
Ja, ich meinte die Hinweise in diesem Thread.

Im EA-Text ist die Zeile unterbrochen (weil die Seite rechts aufhört), in deinem Posting auch. Hast Du den Befehl in einer Zeile geschrieben, also als einen zusammenhängenden Befehl?
 
Bevor ich weiter mache möchte ich mich erstmal für deine Hilfe bedanken @Klangfreund

Also
1). Im Path befindet sich u.a \;C:\Program Files\Java\jdk1.6.0_30\bin;
Ich glaube das ist OK soweit

2). ich habe den befehl kopiert und nicht auf den unterbrechung geachtet .... jetzt ist mir schon klar das alles in eine Zeie muss...
.
Befehl von 3.2 und Ping-Agent klappen jetzt :)


Mal schauen ob ich mit dem Rest der Aufgabe auch klar komme ;-)
 
Jetzt klappt es ja und der Rest der Aufgabe ging ja schnell.
Mich reizt es schon die Aufgaben selber zu machen und bei Fragen wie eben Euch zu konsultieren

Wie verschickt ihr die Aufgaben? (also veschickt ihr nur die Aufgabe 3.3 als E-mail )
und reicht es bei 3.2 nur einen Screenshot von dem Sniffer ( und nicht von dem dummy ... ping-agenten) ??
 
Wie verschickt ihr die Aufgaben? (also veschickt ihr nur die Aufgabe 3.3 als E-mail )
und reicht es bei 3.2 nur einen Screenshot von dem Sniffer ( und nicht von dem dummy ... ping-agenten) ??

Hab alle drei Teile ausgedruckt und per Post verschickt, die beiden Source-Dateien aus 3.3 an die angegebene Email-Adresse, 3.2.a.) eine kurze Beschreibung, wie der Ablauf ist und 3.3.b.) den Screenshot vom Sniffer.
 
Also mir ist noch nichts klar...
Ich erzeuge also code in JobAgent.java und MaschinenAgent.java.
Das muss ich jetzt compilieren mit javac und wohin und was dann?
Mir ist auch nicht klar was ich mit dem EA3_3_Eclipse-Ordner anfangen soll.
Versteht mich nicht falsch, ich programmiere seit Jahren OO, aber eben kein Java und nicht mit Eclipse. Für diesen Kurs benötigt man JAVA-Kenntnisse nicht OO-Kenntnisse.

Der ganze Kurs ist voller komischer Aufgaben (siehe auch EA4). Ich finde es ja sehr gut, wenn man das ganze mal in die Praxis umsetzt, aber etwas mehr Führung wäre angebracht.
 
Ich habe einfach das Projekt aus dem EA3_3_Eclipse-Ordner in Eclipse geöffnet, den Source von JobAgent und MaschinenAgent ergänzt, die Eclipse-Konfiguration des Projekts auf die Jade-Umgebung angepasst (das HowTo dazu wurde auf der ersten Seite des Threads verlinkt) und dann das Projekt aus Eclipse heraus gestartet. Dadurch wurde Jade gestartet und die verschiedenen Agents konnten dort gestartet - und parallel im Eclipse gedebuggt werden.
 
Also ich denke viel mehr kann mir dir jetzt nicht mehr ohne TeamViewer helfen.

Erstmal die Ausgangssituation. Du legst dir im workspace einen eigenen Ordner an und packst dort den Inhalt aus dem zip rein oder du behältst den namen wie er bereits in der zip liegt. Danach sieht es dann aus wie bei mir im eclipse Screenshot. Dann schreibst du an den markierten Stellen im Code deinen Code dazu und fertig. Sonst gibt es für dich kein ToDo mehr außer den run button zu klicken. Dann startet Jade (gibt hier noch ein paar Posts dazu) und dort legst du dann auf dem alt bekannten weg neue Agenten an. Beim Anlegen der Agenten kannst du dann die richtige Klasse auswählen und benennst "Arguments" die du den Klassen übergibst. Diese trennst du mit "," und ohne Leerzeichen.











Wäre sehr nett wenn du im Gegenzug bei EA4 ausführlich deine Lösungen bereitstellst. Dann kann ich mir dort Arbeit einsparen. Wäre das ein Deal?
 
Hallo edstrinova,
ich habe heute versucht Jade aus Eclipse zu starten. Es geht nicht. Und ich werde es nicht weiter versuchen.
Ich werde EA4 versuchen und dir meine Erkenntnisse zukommenlassen. Ich kann aber aus beruflichen Gründen auch erst am Montag abend starten.
Gruß und nochmals vielen Dank!
 
Danke @edstrinova ! Du hast mir aller Wahrscheinlichkeit, unabsichtlich, den Arsch gerettet! Ich hatte ja ein bisschen, wegen Aufgabe 1 & 2, die Komplexität des Themas unterschätzt und gerade erst angefangen.
Während ich noch, ich komme eher aus dem Web Bereich, versucht habe die Anmeldung aus dem BookBuyerAgent.java irgendwie zurechtzustutzen, java ist Neuland, dachte ich mir, da muss es doch was Schmaleres geben und habe Google angeworfen. Glückwunsch zu Platz 4:)

Der Lerneffekt ist natürlich überschaubar. Was man gesehen hat, kann man ja nicht mehr ungesehen machen. Dabei schaue ich extra nicht in die Foren^^
Aber ich will jetzt nicht kleinlich sein: Danke!
 
@domk,

Manchmal ist es zeitlich einfach nicht anders möglich. Ich denke aber, soweit ich dich durch diesen Post einschätzen kann, dass du dir das Thema ja trotzdem auch selbst angeschaut hättest und dann genauso weit wärst. Vielleicht kannst du ja auch die nächsten Tage EA4 hier online stellen, habe diese Woche nämlich kaum Zeit.
 
Großartig! Das hat mir gefehlt, ade Feierabend. Ich schaus mir an und versuche das bis Freitags Nacht durchzuziehen, damit man Samstag morgen noch zu Post kann.
 
Bei mir auch, wobei ich diese Korrekturen immer sehr seltsam empfinde :). Da wurden mir bei Aufgabe 2 einfach 10Pkt abgezogen, weil auf dem Screenshot nicht dummy sonder Other drauf stand mit der Begründung es sollte der Dummy verwendet werden, welches ich aber in der Tag verwendet habe....
Sei es drum :).

Wie findet ihr die Übungsaufgaben im Skript, ich finde die teilweise unlösbar, da werden 2 Sätze als Aufgabe geschrieben und die Antwort umfasst ne halbe Seite mit Informationen, die gar nicht so im Skript stehen?
 
Top