Leitfaden zum Umgang mit dem ApplicationInterface
Für die Verwendung des ApplicationInterface sind einige wichtige Informationen zu beachten.
Do's
- Anmelden – alle Aktionen durchführen – Abmelden
- Objekte im Read-Only Modus öffnen, wenn keine Modifikation durchgeführt wird
- Ändern statt löschen und neu anlegen
- Nichts verwenden, was nicht unbedingt benötigt wird
- Wenn möglich Massenfunktionen verwenden anstatt vieler Einzelaktionen (Ist keine Massenfunktion vorhanden: Anfrage beim Automic Support)
- Aufwändige Massenänderungen zunächst mittels ApplicationInterface in einer nicht produktiven AE-Umgebung durchführen und dann über Utilities ins Produktivsystem überführen.
Don'ts
- Schleifen ohne Wartezeit (speziell bei Statusabfragen)
- Mehrmaliges Speichern bei Anlegen/Ändern eines Objektes
- Große und viele Suchabfragen mit der Klasse "SearchObject"
Wichtige Hinweise
- Das ApplicationInterface ist in erster Linie dazu gedacht, Benutzer-Interaktionen zu automatisieren.
- Beim Review von Applikationen, die das ApplicationInterface verwenden, ist höchstes Augenmerk auf häufig wiederkehrende Abläufe, speziell in Verarbeitungsschleifen, zu legen, da hier die größten Performancegewinne zu erwarten sind.
- Bei Highvolume-Verarbeitungen mit dem ApplicationInterface ist immer abzuwägen, ob eine rasche Durchlaufzeit oder die Nicht-Beeinträchtigung der Performance des Produktivsystems wichtiger ist. Steht die Performance des Produktivsystems im Vordergrund, ist das ApplicationInterface so zu verwenden, dass die Verarbeitung über einen längeren Zeitraum gleichmäßig verteilt wird (z.B. durch Warteschleifen).
- Das Ziel sollte sein, möglichst wenige Anfragen zur Automation Engine zu senden. Die Methoden Connection.sendRequest() und Connection.sendRequestAndWait() sollten nicht unnötig oft aufgerufen werden.
Negative Effekte von schlecht designten Applikationen
- Dialog-Benutzer werden ausgebremst, weil das ApplicationInterface ebenfalls die Dialogprozesse verwendet.
- Die Performance des gesamtes Automation Engine Systems wird negativ beeinflusst, da jeder Aufruf des ApplicationInterface ein Schreibzugriff auf die Datenbank ist -> daraus resultiert ein hohes I/O-Aufkommen auf der Datenbank.