Autor Thema: Java und Agenten (effizient!)  (Gelesen 7239 mal)

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Java und Agenten (effizient!)
« am: 09.03.05 - 10:38:46 »
Huhu :)

ich programmiere eine LDAP Suchanfrage in Java in einem Notes Agenten. (Die Übergabe die der Agent erhält variiert also sehr stark)
Dabei lege ich meinen Source in einem Agenten ab.  Das Primärziel des Projektes ist es, dass es effizient und schnell ist. Sekundärziel ist das der Nutzer möglichst wenig Arbeit hat mit der Gestaltung der Anfrage hat)

Mein Problem ist die Übergabe der Suchanfrage an den Agenten. (ich habe mir ein recht ähnliches thema in diesem Forum hier: http://www.atnotes.de/index.php?topic=17208.0;prev_next=prev
angesehen und auch mir die Beispiele angesehen, die in dem PDF gezeigt werden). Nun wollte ich fragen was der beste / effizienteste Weg ist, dem Agenten den Suchstring zu übermitteln? 
Wenn ich es so machen würde, dass ich ein temporär dokument erstelle, indem dann die gefundenen Daten abgelegt werden, dann müsste ich ja eine Script Libary erstellen, die für mich immer sagt, welches Dokument erstellt wird. Andernfalls müsste ich von dem Agenten der mir die Suchanfrage übermittelt bestimmen, welches temp doc genutzt wird. Dies würde aber jeden Aufruf unnötig komplizieren... Ich hoffe ich konnte mein Problem einigermaßen verdeutlichen. Ich bin für jeden Tipp dankbar :)

Greetz
Michael



« Letzte Änderung: 09.03.05 - 10:55:45 von MichaelH »

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #1 am: 09.03.05 - 11:06:36 »
Wie wird dieser Agent gestartet?
Aus dem Web? --> CGI Variablen (notes designer hilfe).
Aus einem document? AgentContext.getDocumentContext()

Das mit den temporären Dokumenten macht schon mal theoretisch Sinn, wenn auf de externe Ressource (LDAP-Server) etwa aus Sicherheitsgründen nur vom Server zugegriffen werden soll oder eine spezifische Client-Software nötig ist (z.B. DB2 Client).
Allerdings ist dies wirklich grundsätzlich inperformant und zwar IM ERNST.

Warum kann der Agent nicht auf dem Client laufen?
Wenn der code auf einem Server laufen muß, nimm Tomcat. 

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #2 am: 09.03.05 - 11:14:39 »
danke für die antwort :)

(Es ist keine Webanwendung)
der Agent kann entweder manuell (läuft auf client) gestartet, event getriggert (läuft auf server) oder gescheduled (läuft auf server) gestartet werden.
Es ist vorgegeben das ich Notes nehme.

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #3 am: 09.03.05 - 11:51:47 »
Ich würd es als ziemlich wahrscheinlich ansehen, dass der User seinen search-query in eine Maske eingibt?
Da kannst du dann im QuerySave oder über einen Button den Agenten triggern.
Im Agenten erhälst du den SuchString über
Code
pseudocode: 
Document docCur = agentContext.getDocumentContext();
String queryString = docCur.getItemValueString("FELDWERT_VON_QUERY");

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #4 am: 09.03.05 - 12:34:47 »
keine maske ... hab ich auch vorgeschlagen, wird nicht gewollt...

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #5 am: 09.03.05 - 12:44:56 »
Wo sollen Suchanfragen denn sonst eingetragen werden, wenn nicht in Felder. Felder kann man in Lotus Notes nur in Masken einbinden.
Für mich drängt sich bei solchen Anforderungen der Verdacht auf, dass es den Anforderern zu gut geht. Erhöhe den Druck.  ;D

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #6 am: 09.03.05 - 13:03:06 »
rofl  ;)
Zitat
Erhöhe den Druck
es existiert eine Lösung die wohl über Web läuft (hier dauert die Suchanfrage zwischen 5 - 15 Sekunden). Ich soll es nun auf 0 - 2 Sekunden bringen (mittels LDAP).

Der Aufbau ist (angelehnt an das bestehnde programm), dass ein Agent wohl eine ID ausliest und mir diese an eine Script Lib schickt welche dann meinen Agenten triggert und ihm diese ID übergibt ...  [wenn die Notesbegriffe nicht 100% stimmen nicht beissen ich kenne Notes erst seit ner woche ;)]. Ich hab jetzt schon mit meinem Cheffe gesprochen, weil das viel einfacher (für mich logischer) über ne Maske zu realisieren wäre, aber anscheinend will er nicht immer ne Maske durchgehen. Sein kommentar ist nur (dein programm bekommt zwei Strings (1. Suchanfrage, 2. was soll zurückgeliefert werden) [ich darf sogar entscheiden wie er auszusehen hat *freu* ;D] und damit arbeitest du, der rest hat dich nicht zu interessieren). Nur wie es die 2 Strings bekommt ist auch mein Problem :-\

thx das du dir so viel die ohren von mir zublubben lässt :)

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #7 am: 09.03.05 - 13:09:40 »
[ich darf sogar entscheiden wie er auszusehen hat *freu* ;D] und damit arbeitest du, der rest hat dich nicht zu interessieren)
... Abschaum
... mit seiner Aufgabe überfordert

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #8 am: 09.03.05 - 13:22:41 »
bitte ?

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #9 am: 09.03.05 - 13:59:43 »
den Mitmenschen, den du chef nennst.
... sieht so aus als ob ihr ein Kommunikationsproblem habt.
Ich würd dran arbeiten. von beiden Seiten.

Ich bin manchmal schwierig.
Gestern hab ich z.B. 15 Minute meinem Chef 15 Minuten die Ohren vollgequatscht über Probleme in einer Anwendung, die er vor 3.5 Jahren entwickelt hat. Er bemerkte, dass es vielleicht gut wäre, wenn ich ihm die Schablone zuschicken würde, da er nicht kapiert, was ich meine. 
Er wurde nach 15 Minuten auch ein bischen genervt und bittete auf umsteigen auf Email + Schablone zuschicken.
Dabei löse ich Probleme am besten, wenn ich darüber rede  ;D
Und es hat echt was gebracht, weil ich hab dann die Lösung gefunden.

Wäre ich an seiner STelle hätte ich das vermutlich früher abgebrochen.  ::)

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #10 am: 09.03.05 - 14:07:11 »
jou das kommunikationsproblem haben wir ...

besteht eine Möglichkeit das zwei Agenten miteinander kommunizieren können (ohne irgendwelche Zwischenschritte (temp doc etc.))?   

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #11 am: 09.03.05 - 14:39:46 »
ja. database.getAgent("agentName").
agent.run().

ich eskaliere sowas.
ich versuche Konflikte zu vermeiden, aber das was du schilderst eskaliere ich auch mit Kunden. Auch wenns der Kaiser von China ist.

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #12 am: 09.03.05 - 14:53:23 »
jou aber irgendwann hab ich keine lust mehr zu sowas und machs wie er es haben will ...

Zitat
ja. database.getAgent("agentName").
agent.run().

aber wie kommuniziere ich mit ihm, übergebe ihm einen String (ohne zwischenschritt)?

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #13 am: 09.03.05 - 14:57:20 »
das geht dann nur per ID Übergabe und dann Dokument holen.
Das ist aber inperformant.
Du kannst einem Agenten keinen String übergeben. Nur eine DokID.

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #14 am: 09.03.05 - 15:17:05 »
ok dann mach ich es über die script lib ... dank dir für die hilfreiche diskussion!

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Java und Agenten (effizient!)
« Antwort #15 am: 09.03.05 - 15:28:21 »
Die Frage ist: Wie willst Du ScriptLib und Java-Agenten "vermählen" ?

Das mit der Übergabe eines Docs an den Agent ist übrigens nicht zwangsweise inperformant - Notes greift auf dieses Dokument auf dem schnellsten Weg (NoteID) zu, den es gibt.

Bernhard

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #16 am: 09.03.05 - 17:03:33 »
wie das gemacht wurde, versuche ich gerade zu verstehen ... (aus der bisherigen Lösung)

Marinero Atlántico

  • Gast
Re: Java und Agenten (effizient!)
« Antwort #17 am: 09.03.05 - 17:13:50 »
Gut. Ich habe Lösungen mit runOnServer im Kopf. Da kann ich sicher sagen, dass es inperformant ist.
Die Zeitkosten von agent.run(docId) auf derselben Maschine weiss ich nicht.

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Java und Agenten (effizient!)
« Antwort #18 am: 09.03.05 - 19:00:48 »
RunOnServer wirkt immer zäh, Axel - der AMgr ist im Spiel, und der tut, wenn er Zeit hat. Aber miss mal die Zeit bis zur Ermittlung des übergebenen Docs - daran kann es nicht liegen.

Bernhard

Offline MichaelH

  • Frischling
  • *
  • Beiträge: 17
Re: Java und Agenten (effizient!)
« Antwort #19 am: 15.03.05 - 13:08:39 »
Die Lösung wurde nun mittels LS2J realisiert.  Die Javaklassen wurden in einer script library festgehalten.

Code
Dim session As JavaSession
Dim class As JavaClass
Dim object As JavaObject

Set session = New JavaSession

Set class = session.GetClass("javaclass")

Set object = class.createObject(...)

Hierdurch wurde ein Konstruktor der "startjava" klasse erzeugt, dem man einen übergabeparameter mitgeben konnte.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz