![Page 1: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/1.jpg)
1
EsprIT 7.xJUGS-Talklet
Client/Server Technologie mit Event-gesteuerten ClientsJava Framework für Agenten-basierende Client/Server Programmierung
![Page 2: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/2.jpg)
2
EsprIT 7.x
Deine Taten sind sinnlos
wenn niemand davon erfährt
![Page 3: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/3.jpg)
3
EsprIT 7.xInhalt
EsprIT Technologie
• Multi-Kanal Client Sessions• Agenten Konzept• Client-Kommandos• MVC & Alive Business Objects• AsyncTaks und Workflows• EsprIT Client Framework• EsprIT Server Funktionen• Server Verbundnetze• Anwendungsbeispiele• Key-Vorteile, Vergleich
![Page 4: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/4.jpg)
4
EsprIT 7.xClient/Server Historie
Client-Funktionalität
Mainframe
Serv
er-F
unkt
iona
lität
Client/Server
Web-Clients Rich-Clients
1990 1995
2000 2005
![Page 5: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/5.jpg)
5
EsprIT 7.xWeb- oder Rich-Client?
WebServer
HTTP/HTMLWebClient
statelessunidirektional
ServletJSPsJSF
StrutsSpringHtmlXML
TaglibsPHPASP
PEARLCGI
Web-Browser
...ist der EsprIT-Server für Rich-Clients
EsprIT-Server
Java Objekt- Serialisierung
RichClient
statefullbidirektional
AgentenAlive Business Objects
Java VM
Was der Web-Server für Web-Clients...
![Page 6: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/6.jpg)
6
EsprIT 7.xRückkehr der Rich-Clients
Web-Client
+ Keine Software Installation nötig+ Zugriff auf Server von überall
- Browser abhängig- Eingeschränkt auf Browser GUI- Eingeschränkt in Komplexität- Kein echtes Session Management- Fehlersicherheit ist schwierig- Software schwer wartbar/testbar- Aufwendiges Server-Polling - Eingeschränkte Performance - Starke Last auf Serverseite
Rich-Client
- Installation nötig auf Client (Automatisch seit Java-Webstart)
+ Kein Browser nötig+ Uneingeschränkte GUI Power+ Uneingeschränkte Komplexität+ Echtes Session Management+ Robust und Fehlersicher+ Software leicht wartbar/testbar+ Dynamische Benachrichtigung + Bestmögliche Performance+ Last verteilt auf Client und Server
Vorteile/Nachteile Web/Rich Clients
![Page 7: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/7.jpg)
7
EsprIT 7.xClient Verbindung
EsprIT Multi-Kanal Client Verbindungen• Request/Response Kanal für sync/async Client Anfragen• Message Kanal für asynchrone Server Nachrichten• Transfer Kanal (optional) für Übertragung von File-Sets• Web Kanal (optional) für Zugriff auf HTML Dokumente
Request/Response und Message Kanäle bilden eine Client-Session
![Page 8: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/8.jpg)
8
EsprIT 7.xRequest/Response
Request/Response Kanal• Request wird zum Server geschickt, Client erhält Response • Request und Response tragen ein beliebiges Argument-Objekt• Request kann auf Client oder Server in Timeout laufen• Request kann hohe/niedrige Priorität haben• Request wird synchron abgearbeitet
Client GUI blockiert vollständig bis Response empfangen wurde
EsprIT Server
DatenbankRequest
ClientResponse
![Page 9: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/9.jpg)
9
EsprIT 7.xMessage
Message Kanal (asynchron)• Server schickt asynchrone Message an Client• Message kann beliebiges Argument-Objekt tragen• Message kann stammen vom Server, anderen Clients, Client selbst• Verschiedene Messages lösen verschiedene Reaktionen bei Client aus• Client registriert/deregistriert sich für bestimmte Message-Typen• Client kann ein ausführbares Kommando in Message erhalten
Kommando wird synchron oder asynchron im Client ausgeführt
EsprITServer
DatenbankClientMessage
Client registriert sich für bestimmte Messagetypen
![Page 10: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/10.jpg)
10
EsprIT 7.xAsynchrone Requests
Asynchrone Requests • Request (vom Typ async) wird zum Server geschickt• Response bestätigt den Start der asynchronen Abarbeitung• Message bestätigt Ende der Abarbeitung und enthält Ergebnis• Im Client blockiert nur die aufrufende Action solange bis Message
empfangen wurde• Für asynchrone Aktivität kann ein Timeout vergeben werden
EsprITServer
DatenbankClientMessage
Request
![Page 11: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/11.jpg)
11
EsprIT 7.xAgenten Konzept
Synchrone Ausführung von Agenten• Agent ist Argument von Request/Response oder Message• Agent wird auf dem Server ausgeführt und dann zurückgeschickt• Agent wird auf dem Client beim Empfang postprocessed • Agent enthält Input-Parameter und Ergebnisse der Ausführung• Kann mit definierbarer Priorität laufen• Kann beliebiges Argument-Objekt beinhalten (ggf. gezipped)
Datenbank
Request
Client
Response
Sync
![Page 12: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/12.jpg)
12
EsprIT 7.xAgenten Lebenszyklus
ClientContext ServerContext
Agent als zwei-Welten Objekt1. Instantiierung im Client (ClientContext)2. Transfer zum Server und Ausführung (ServerContext)3. Rücktransfer zum Client und Ergebnis-Verarbeitung
Erzeugungnew MyAgent(ctx)doBeforeSend()
AusführungexecuteOnServer()Ergebnis
doOnResponseReceived()doOnMessageReceived()
sendForExecution()
MyAgent agent = new MyAgent(ctx);agent = agent.sendForExecution();Result result = agent.getResult();
![Page 13: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/13.jpg)
13
EsprIT 7.xAsynchrone Agenten
Asynchrone Ausführung von Agenten• Agent kann auf dem Server asynchron ausgeführt werden• Nach Ausführung wird Agent in einer Message zurückgeschickt• Die aufrufende GUI-Aktion blockiert bis Message empfangen wird• Client kann asynchrone Agenten jederzeit abbrechen• Client kann viele asynchrone Agenten parallel laufen lassen• Wenn Client terminiert, beendet Server alle Agenten dieses Clients
Datenbank
Request
Client
Message
Async
![Page 14: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/14.jpg)
14
EsprIT 7.xParallel-Ausführung
Parallel-Ausführung von Agenten auf Client und Server1. Asynchroner Agent wird teilw. synchron auf Server ausgeführt und
sofort in Response zum Client geschickt (mit Teilergebnissen)2. Server startet asynchrone Ausführung des Agenten 3. Client startet Postprozessing des Response-Agenten 4. Server sendet fertigen Agenten in Message (mit Gesamtergebnis)5. Client postprozesst den erhaltenen Message-Agenten
So findet gleichzeitiges Prozessing auf Server und Client statt
Datenbank
Request
Client
Message
Response Async
Sync
![Page 15: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/15.jpg)
15
EsprIT 7.xSequenzierte Agenten
Sequenzierte Agenten erstrecken sich über mehrere Messages • Große Ergebnismengen werden in mehreren Teilmengen geschickt• Größe der Teilmengen ist Benutzer-definierbar• Client kann Fortschritt in einem Progress-Bar anzeigen• Client GUI-Aktion blockiert bis letzte Teilmenge empfangen wurde• Beispiel: Lesen großer Datenmengen aus Datenbank
Datenbank
Request
Client
Sequenz von Messages
AsyncAsync
Async
![Page 16: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/16.jpg)
16
EsprIT 7.xClient Kommandos
Server kann Kommando an Client schicken• Kommando wird beim Empfang vom Client ausgeführt• Ausführung kann synchron oder asynchron im Client laufen• Client-Kommando kann beliebige Funktionen des Clients ausführen• Server benutzt Client-Kommando, um Clients zu kontrollieren
Beispiel: Erzwungenes Beenden eines Clients• Benutzer können Client-Kommandos zu anderen Clients schicken
Client-KommandoClient Datenbank
EsprIT Server
![Page 17: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/17.jpg)
17
EsprIT 7.xClient Kommunikation
Clients können direkt miteinander kommunizieren• Ein Client kann Nachricht schicken an:
- einen bestimmten Client- einen bestimmten Benutzer (kann mehrfach eingeloggt sein)- alle verbundenen Clients
• Integriertes Client-Chat-Tool• Integriertes Client-Benachrichtigungs-Tool
EsprIT Server
Client 1
Client 2
Client 3
Integriertes Client Chat-Tool
Client-Nachricht
![Page 18: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/18.jpg)
18
EsprIT 7.xTransfer Kanal
Transfer Kanal für transaktionale Datei-Übertragungen• Tempoäre TCP Verbindung ausschließlich für Datei-Transfer• Gemischte Up/Downloads von Dateien als Transaktion• Kann synchron/asynchron, gesperrt/ungesperrt laufen• Viele Transfers können parallel laufen• Unterstützt auch File-DownStreaming
Auswertung des Datei-Inhalts direkt aus dem Stream ohne Speicherung auf Client
EsprIT ServerTransfer Kanal
DatenbankClient
transaktionaleUp/Downloadsvon Dateien
![Page 19: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/19.jpg)
19
EsprIT 7.xWeb-Kanal
Web Kanal - Integrierter Web-Server• Erlaubt Zugriff auf HTML Dokumente, Bilder, etc.• PUBLIC Web root-Directory für unauthorisierte Zugriffe• PRIVAT Web root-Directory für authorisierte Zugriffe
EsprIT ServerWeb Kanal
DatenbankClient
HtmlBilder etc...
HTTP Request
Public Bereich Privat Bereich
![Page 20: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/20.jpg)
20
EsprIT 7.xMVC über Netz
Model-View-Controller Prinzip über Netz
Ein Client (Controller) modifiziert das Modell
EsprIT Server
Alle Clients werden benachrichtigt und aktualisieren ihre Darstellung (View)
DatenbankModel
![Page 21: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/21.jpg)
21
EsprIT 7.xAlive Business Objects I
"Lebende" Business Objekte, global zugreifbare Server-Objektemit dynamischer Aktualiserung auf allen Clients - ohne deren Zutun
Ein Client modifiziertdas Business-Objekt
EsprIT Server
Alle Clients werden benachrichtigt und aktualisieren ihre Darstellung
DatenbankTank ...
Tank 5Tank 4
![Page 22: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/22.jpg)
22
EsprIT 7.xAlive Business Objects II
Alive Business Objects (ABOs)• Verwenden MVC über Netz• ABOs unterscheiden sich durch PrimaryKey• Änderungen werden an zugreifenden Clients kommuniziert• Können mit serverseitiger Editier-Sperre zugegriffen werden• Können Datenbank-persistent sein• Extrem einfach in der Anwendung
• fetch(withLock, PrimaryKey) Zugriff mit PrimaryKey (ggf. mit gleichzeitiger Editier-Sperre)• find(SqlCondition) Suche nach allen, die SQL-Bedingung erfüllen• drop() Vergiß dieses Objekt (keine
Aktualiserung mehr)• create() Erzeuge neues Objekt auf
Serverseite• update() Aktualisiere Objekt auf Serverseite• delete() Lösche Objekt auf Serverseite
![Page 23: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/23.jpg)
23
EsprIT 7.xAlive Business Objects III
ABO Server-Cache• ABOs werden auf Serverseite gecached für schnellen Zugriff• ABO-Access-List
Server weiß, welcher Client welches ABO im Zugriff hatund schickt Change-Events nur an diese Clients
• Client kann ABO "droppen" und wird dann nicht mehr informiert• Wenn kein Client mehr zugreift wird ABO aus dem Cache gelöscht• Cache-resistente ABOs bleiben immer im Cache
EsprIT ServerClient 1
Client 2
ABO-CacheTrackABO
GraphABO
![Page 24: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/24.jpg)
24
EsprIT 7.xABO-Anwendung
Anwendung bei Hydro Aluminium Hamburg
EsprIT ServerClient 1
Client 2
ABO-Cache
ca. 1000MFStateABOs
Client 1
Client 2
Datenbank
Datenbank
Vorher
NachherSQL
ABO Filter
SQL
![Page 25: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/25.jpg)
25
EsprIT 7.xRemote Tasks
Synchronisierter Ablauf zwischen lokalem und remote Prozeß• Client Thread startet remoten Thread (Prozeß) auf Server• Client Thread wartet auf Events des Server-Threads• Server-Thread sendet Prozeß-typische TaskEvents:
STARTED, PROCEEDED, SUCCEEDED, CANCELLED, FAILED, FINISHED
• Das FINISHED-Event beendet auf jeden Fall den Wartezustand• Einfache Programmierung von asynchron ablaufenden Workflows
TaskEventClient DatenbankEsprIT Server
Lokaler Thread Remoter Thread
Fortschritts-Monitoring
![Page 26: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/26.jpg)
26
EsprIT 7.xAsync Task Framework
Tasks können in beliebiger Tiefe schachteln
![Page 27: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/27.jpg)
27
EsprIT 7.xWorkflows
Workflows• Kontrollierter Ablauf mehrerer asynchroner Tasks• Incl. Remote-Tasks, File-Transfers, Stream-Downloads etc...• Workflow Monitor zeigt geplante/laufende/erledigte Tasks
Decision-Points erlaubenbenutzergesteuerten Ablauf
• An beliebiger Stelle abbrechbar
• Klare Fehlerbehandlung• Viele Workflows können
gleichzeitig laufen
![Page 28: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/28.jpg)
28
EsprIT 7.xServer Sperren
Server Resource Sperren• Beliebige Server-Objekte können mit Zugriffssperre belegt werden
SHARED mehrere Zugriffe erlaubt - schützt vor LöschenEXCLUSIVE nur ein Zugriff - schützt vor fremden Änderungen
Sperren sind "geleased" • Client muss eine Sperre regelmäßig retriggern
Fällt Client aus, wird die Sperre automatisch aufgelöst• Administrator kann Freigabe einer Sperre erzwingen
Beispiele • Zugriff auf eine Server-Datei• Zugriff auf die Datenbank• Zugriff auf ein ABO (Alive Business Object)
![Page 29: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/29.jpg)
29
EsprIT 7.xAnwendungen schreiben I
Agenten sind Programmier-Schnittstelle für Kunden-Anwendungen
• Agenten beinhalten Code für Prozessing auf Server und Client• Ein Agent kapselt eine bestimmte Funktion vollständig
• Eine Anwendung schreiben bedeutet: Schreiben bestimmter Agenten für bestimmte Funktionen!Das ist alles!
• Umfangreiche Agenten-Bibliothek für Standardfunktionen inklusive
![Page 30: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/30.jpg)
30
EsprIT 7.xAnwendungen schreiben II
Programmierung von Anwendungen
ClientContext
MyClientContext
Eigene Komponenten
ServerContext
MyServerContext
Eigene KomponentenEigene Komponenten
MyAgentXY
![Page 31: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/31.jpg)
31
EsprIT 7.xEsprIT Client
Umfangreiches Client Framework• GUI Framework zur Entwicklung kundenspezifischer Clients• Dynamisches Verbinden/Trennen zum/vom EsprIT-Server• Kommunikation mit anderen Clients• Viele fertige GUI Komponenten und GUI Unterstützungs-Klassen• Leistungsfähiges Async-Task Framework
![Page 32: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/32.jpg)
32
EsprIT 7.xClient Aktivitäts-Monitor
Clientseitige asynchrone Aktivität besteht aus:Agenten: Laufende AgentenTransfers: Laufende File-Transfers/Stream-DownloadsProzesse: Laufende lokale/remote OS-ProzesseCommands: Laufende (empfangene) Client-KommandosSperren: Vom Client belegte Sperren auf Server-ResourcenABOs: Vom Client zugegriffene Alive-Business-Objects
• Sämtliche asynchrone Client-Aktivität kann visuell beobachtet werden• Benutzer kann jegliche asynchrone Aktivität jederzeit abbrechen
Asynchrone Client Aktivität auf dem Server
Verbinden/Trennen
Message LED
Request LED
![Page 33: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/33.jpg)
33
EsprIT 7.xEsprIT Admin-Client
Administrations-Client zur Kontrolle des EsprIT Servers • Beobachtet Server-Aktivität (Parameter Profil)• Zeigt Console-Ausgaben und Server-Events online• Erlaubt interaktives Auswerten der Server Logfiles• Dynamische Konfiguration der Server Runtime-Parameter• Beobachtet und kontrolliert Clients• Administrator Nachrichten an Clients
![Page 34: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/34.jpg)
34
EsprIT 7.xEsprIT Server
Voll ausgestatteter Multikanal Middleware Server • Läuft als Hintergrundprozeß• Unabhängig von Plattform oder Datenbank (pure Java) • Skalierbar, dynamisch konfigurierbare Thread-Pools• Integrierter User-Manager • Verwaltet Editier-Sperren für Server-Resourcen• Automatisches Logfile-Management
Div. Logfiles für div. Applikationen
• Leicht auf kundenspezifische Funktionalitäten zu erweiternViele fertige Server-Komponenten verfügbar...
ServerContext
MyServerContext
Eigene KomponentenEigene Komponenten
![Page 35: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/35.jpg)
35
EsprIT 7.xServer Profil
Server Aktivitäts-Profil • Beobachtbare Server-Statistiken
![Page 36: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/36.jpg)
36
EsprIT 7.xIntegrierter WebServer
Integrierter Webserver• HTML Dokumentation, Webservice, Classdownloading
![Page 37: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/37.jpg)
37
EsprIT 7.xDatenbank-Zugriff
Remote-Zugriff auf Datenbank (Volle Editier-Funktionalät)
![Page 38: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/38.jpg)
38
EsprIT 7.xServer Verbundnetz
Mehrere Server können zu einem Verbund geschaltet werden• Ein Server kann Client eines anderen Servers sein• Co-Client/Co-Server Verbindungen sind ausfallsicher (monitored)• Requests können zu einem Ziel-Server gerouted werden• Agenten können über mehrere Server durchgereicht werden
![Page 39: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/39.jpg)
39
EsprIT 7.xCo-Clients, Co-Server
Co-Client und Co-Server Verbindungen
Mein Server hat einen anderen Server als Co-Client
Mein Server is Co-Client von zwei anderen Servern
3 Benutzer sind aktiv
Ein Benutzer hält eine exclusive Sperre auf einer Server Resource
Ein Benutzer führt einen File-Transfer aus
![Page 40: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/40.jpg)
40
EsprIT 7.xWeitere Server Features
Weitere Server Features• Server-Batch-Prozesse (Zeitgesteuerte Hintergrund-Jobs)• Alarm-Benachrichtigung an Administrator per Email• Exclusive/Shared Sperren auf Server-Resourcen• Datenbankverbindung mit Connection-Pool (parallele Transaktionen)• Simultane Verbindungen zu mehreren Datenbanken
Direkter Daten-Transfer zwischen unterschiedlichen DB-Systemen
![Page 41: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/41.jpg)
41
EsprIT 7.xBGR
BGR Bundesanstalt für Geowissenschaften und Rohstoffe, HannoverFinite Elemente Analyse geologischer Prozesse
![Page 42: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/42.jpg)
42
EsprIT 7.xProjekt INCA
BGR Hannover, Finite Elemente Berechnungen
![Page 43: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/43.jpg)
43
EsprIT 7.xProjekt INCA
BGR Hannover, Ergebnis Analyse Tool
![Page 44: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/44.jpg)
44
EsprIT 7.xProjekt HiLocate
ISA Telematics, Flotten Management System HiLocate
![Page 45: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/45.jpg)
45
EsprIT 7.xProjekt BDE
Hydro Aluminium Hamburg, Online Betriebsdaten Erfassung
![Page 46: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/46.jpg)
46
EsprIT 7.xKey-Vorteile I
Wichtigste Vorteile der EsprIT Client/Server Technologie
• Echte Sessions aus Request/Response und Message KanalClient-Aktualisierung per Nachricht, kein Server-Polling erforderlich.Echtes Model-View-Controller Prinzip (MVC) über Netz
• Höchstmögliche PerformanceEinfache Datenübertragung per Java-Serialisierung, stehende TCP Verbindung.Kein Overhead durch Daten-Konvertierungen (XML oder ähnl.)
• Sehr flexibles Agenten KonzeptAgenten als elegante Programmier-Schnittstelle
• Alive Business Objects (ABOs)Mit automatischer, dynamischer Aktualisierung auf ClientsAlle Clients haben genau eine Sicht der Welt
• Transaktionaler File-TransferZum Austausch großer Datenmengen, ClientServer, ServerServer
• Server Verbundnetz Ermöglicht Aufgabenteilung, Involvierung vieler Systeme, Filetransfers uvm...
![Page 47: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/47.jpg)
47
EsprIT 7.xKey-Vorteile II
Wichtigste Vorteile der EsprIT Server Technologie
• Verkettung komplexer synchroner/asynchroner Operationen mit Agenten, ClientKommandos, Tasks, FileTransfers etc…Beispiel: Client startet CAD System und erzeugt Input-DateiInput-Datei wird automatisch zum Zentral-Server übertragenZentral-Server macht Datenbankeintrag und überträgt weiter an Compute-Server Compute-Server startet Berechung und überträgt Zwischenergebnis an Zentral-ServerZentral-Server macht Datenbankeintrag und meldet Ergebnis an wartenden ClientClient holt Ergebnisdatei von Zentral-Server abClient startet CAD-System zur Darstellung des Ergebnisses...Alles in einem automatischen Ablauf, gesteuert durch den Workflow
• Unabhängig vom Datenbanksystem (pure JDBC)• Unabhängig von Hardwareplattform (pure Java)
Vielfältige Anwendungsmöglichkeiten
![Page 48: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/48.jpg)
48
EsprIT 7.xEinsatzmöglichkeiten
Wo kann man den EsprIT Server einsetzen?
• Für Entwicklung hochperfomanter Client/Server Anwendungen• Beste Unterstützung für Clients...
...mit komplexer Funktionalität (mit Web-Clients schwer zu realisieren),
...die kurze Antwortzeiten haben müssen,
...die stets aktuelle Daten anzeigen müssen (Meßwerte, Aktienkurse, Fahrstrecken...)
• EsprIT Server kann beobachten und kontrollieren:- Ausführung/Monitoring anderer Betriebssystem-Prozesse, Sensoren etc.
- Ausführung/Monitoring zeitgesteuerter Server-Prozesse
• Server-Kaskadierung kann benutzt werden......zum Ausführen verschiedener Aufgaben auf verschiedenen Rechnern
...zur Überwachung der Aktivität anderer Rechner und deren Prozesse
![Page 49: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/49.jpg)
49
EsprIT 7.xVergleich
EsprIT-Server
+ Preisgünstig+ Wenig Wartungsaufwand+ Kleine Lernkurve (standard Java)+ Server-Kaskadierung möglich+ Leichte Programmier-API (Agent)+ Keine Einschränkung in Funktion+ Client Benachrichtigung inklusive+ Bestmögliche Performance (dual TCP, reine Serialisierung)
Applikations-Server
- Relativ Teuer - Hoher Wartungsaufwand- Steile und hohe Lernkurve- Keine Server-Kaskadierung- Komplizierter Technologie-Mix - Eingeschränkt auf EJBs- Keine Client-Benachrichtigung- Eingeschränkte Performance (RMI, SOAP, XML etc...)
EsprIT-Server oder Applikations-Server?
![Page 50: EsprIT JUGS-Talklet 7 · • Ausführung kann synchron oder asynchron im Client laufen • Client-Kommando kann beliebige Funktionen des Clients ausführen • Server benutzt Client-Kommando,](https://reader030.vdocuments.pub/reader030/viewer/2022040706/5e0689a019b0043db24e5b7e/html5/thumbnails/50.jpg)
50
EsprIT 7.x
Kleine Firmen bauen einer Arche
Große Firmen bauen die Titanic