CaptainCasa Enterprise Client CaptainCasa Enterprise Client CaptainCasa Enterprise Client Rich Client Benutzeroberflächen für operativ genutzte, umfangreiche Unternehmensanwendungen 1 Diese Broschüre beschreibt die inhaltlichen Grundlagen des CaptainCasa Enterprise Clients. Sie gibt Einblick in die Architektur und versucht, die Vorteile der Technologielösung hieraus darzustellen und zu begründen. Sie richtet sich an: Entwickler, Softwarearchitekten, Entwicklungsleiter, Mitarbeiter aus dem Product Management. Auf einen Blick.................................................................................................3 Was ist der „CaptainCasa Enterprise Client“?.........................................................3 Was ist ein „Rich Client“?................................................................................3 Auf welchen Standards beruht CaptainCasa Enterprise Client?....................................4 Wo wird CaptainCasa Enterprise Client eingesetzt?.................................................4 Welches Wissen brauchen Anwendungsentwickler?..................................................4 Wer steckt hinter CaptainCasa Enterprise Client?...................................................4 Aufbau des CaptainCasa Enterprise Clients...............................................................5 Architektur-Überblick.....................................................................................5 Generischer Client.....................................................................................5 Server Anbindung über http(s).......................................................................6 Java Server Faces (JSF) im Server...................................................................6 Gesamtbild..............................................................................................7 Logikverteilung.............................................................................................7 Roundtrips..................................................................................................8 Aufwand zum Betrieb.....................................................................................8 Client Technologie.........................................................................................8 Entwicklungsmodell...........................................................................................9 Layout Definition..........................................................................................9 Server-seitige Anbindung................................................................................10 Zusammenstellung mehrerer Seiten..................................................................11 Deployment...............................................................................................12 Look & Feel...............................................................................................12 Einsatzszenarien.............................................................................................13 Technologische Einsatzszenarien......................................................................13 CaptainCasa – Hibernate............................................................................13 CaptainCasa – Spring (- Hibernate)................................................................13 CaptainCasa – Enterprise Java Beans (EJB).......................................................13 CaptainCasa – Web Service – Legacy Systeme....................................................13 CaptainCasa – JCO (SAP Java Connector) - SAP..................................................14 Portal/Web Integration..............................................................................14 Inhaltliche Einsatzszenarien............................................................................14 Formularartige Erfassung von Stamm- und Bewegungsdaten..................................14 Aus- und Eingabelisten, Grids......................................................................15 Reporting und Grafik/Charts........................................................................16 Diagramme.............................................................................................17 Touchscreen Dialoge.................................................................................17 Subsystem Integration...............................................................................17 Spezielle Szenarien......................................................................................18 Offline Modus / Embedded Modus.................................................................18 Simple HTML Masken.................................................................................18 Kontaktaufnahme............................................................................................19 Erstes Kennenlernen.....................................................................................19 Tieferes Kennenlernen..................................................................................19 2 CaptainCasa Enterprise Client Inhalt Auf einen Blick Was ist der „CaptainCasa Enterprise Client“? CaptainCasa Enterprise Client ist eine Technologielösung zur Erstellung und zum Betrieb von Rich Client Benutzeroberflächen vor langlebigen Server-seitigen Anwendungen. CaptainCasa Enterprise Client zeichnet sich aus durch: • eine schnelle und robuste Client-Umgebung, die den Ansprüchen operativer Benutzer gerecht wird • eine äußerst umfangreiche Bibliothek hochwertiger Oberflächenkomponenten, aus denen die Benutzeroberflächen zusammengestellt werden • ein einfaches und effizientes Entwicklungsmodell, sowohl zur deskriptiven Definition der Oberflächen als auch zur Anbindung der Server-seitigen Verarbeitung • eine Unterstützung durch Werkzeuge, die das Erstellen und Bearbeiten von Oberflächen für die Anwendungsentwicklung einfach machen CaptainCasa Enterprise Client Was ist ein „Rich Client“? Als „Rich Client“ werden Szenarien beschrieben, in denen auf dem Rechner des Benutzers nur die Benutzeroberfläche einer Anwendung läuft – während die eigentliche Verarbeitung auf zentralen Servern stattfindet. Frontend Client Frontend Client Benutzer Oberfläche Browser Frontend Browser Client Browser http(s) Anwendungsverarbeitung Backend Anwendung 3 Im Gegensatz zu „Thin Clients“ verfügen Rich Clients nicht über einen fest definierten, limitierten Umfang an Oberflächenkomponenten („Controls“) sondern erlauben die Einbindung anspruchsvoller, komplexer Komponenten. - Im Gegensatz zum „Fat Client“, bei dem Benutzeroberfläche und Verarbeitung gemeinsam auf dem Rechner des Benutzers ablaufen, sind beim Rich Client Benutzeroberfläche und Server-seitige Anwendung durch ein Netzwerk voneinander getrennt. Auf welchen Standards beruht CaptainCasa Enterprise Client? Der Client ist ein generischer Client, der auf Basis von Java Swing erstellt ist. Der Client läuft innerhalb des Web-Browsers oder wird aus diesem heraus gestartet. Zwischen Client und Server besteht eine http(s) Verbindung Der Server ist eine Standard J2EE Servlet Umgebung, in deren JSF Verarbeitung (Java Server Faces) sich CaptainCasa einklinkt. Auf Basis dieser Standards kann CaptainCasa auf verschiedenen Applikationsservern (Tomcat, JBoss, IBM Websphere, BEA Weblogic, ...) und in hoch skalierenden Umgebungen betrieben werden. Wo wird CaptainCasa Enterprise Client eingesetzt? CaptainCasa Enterprise Client ist eine Rich Client Lösung für operativ genutzte Unternehmensanwendungen mit hohen Ansprüchen an Verarbeitungsgeschwindigkeit, Stabilität und Interaktivität. Die CaptainCasa Technologielösung basiert auf Serverseitigen Technologien des Internets, nutzt aber als Client-Umgebung eine stabile, performante Java Implementierung. Typische Nutzungsszenarien sind: • Softwarehäuser – in denen langlebige Softwareprodukte/-lösungen Benutzerschnittstelle auf Basis von CaptainCasa erhalten eine • „Software as a Service“ – zentrale Installationen, zu denen die Benutzerschnittstelle als Web-Rich-Client zur Verfügung gestellt wird • Projektnutzung Wissen über „Java“ für den Server-seitigen Einsatz – das ist alles, was erwartet wird. Insbesondere werden keine Client-Implementierungen (z.B. Java Swing Programmierung) von der Anwendungsentwicklung durchgeführt. Die Anwendungsentwicklung spielt sich „hinten“, auf der Server-Seite ab. Wer steckt hinter CaptainCasa Enterprise Client? CaptainCasa ist das Ergebnis der Zusammenarbeit mittelständischer Softwarehäuser aus dem deutschsprachigen Raum, die eine gemeinsame Oberflächentechnologielösung verwenden und betreiben. CaptainCasa als Unternehmen versteht sich als Anführer dieser Zusammenarbeit und als Anbieter dieser Lösung. Die „CaptainCasa Corporate Community“ trifft sich regelmäßig und ist über ein Forum verbunden. Aus Sicht eines CaptainCasa Community Mitgliedes erstellt CaptainCasa das Oberflächen-Framework in ähnlicher Weise wie eine eigene Entwicklung: • Jederzeit Zugriff auf und Rechte am Source Code • Offene Kommunikation von Anforderungen, enge Einbindung in den Planungsprozess, zeitnahe Umsetzung von Anforderungen 4 CaptainCasa Enterprise Client Welches Wissen brauchen Anwendungsentwickler? Aufbau des CaptainCasa Enterprise Clients Rich Client Technologielösungen stellen eine Client-Benutzeroberfläche zur Verfügung, die Inhalte einer Server-seitigen Anwendung anzeigt und verändert. Kernfragen bei der Gestaltung einer solchen Technologielösung sind: • Logikverteilung: Welche Logik läuft „vorne“ auf dem Client beim Benutzer ab, welche Logik läuft „hinten“ im Server ab? • Roundtrips: Wie groß ist das zwischen Client und Server ausgetauschte Datenvolumen? Wie häufig wird zwischen Client und Server kommuniziert? • Aufwand zum Betrieb: Wie einfach ist die Verteilung des Clients zum Benutzer hin? Wie einfach ist insbesondere die Verteilung von Änderungen (z.B. Fehlerkorrekturen)? • Technologie: Welche Technologie wird auf Client-Seite verwendet? Wie lässt sich diese Technologie in Browser-basierte Szenarien, z.B. Portale, einbinden? Nach einem kurzen Überblick über die Architektur des CaptainCasa Enterprise Clients werden die Fragen im folgenden Text beantwortet. Architektur-Überblick Generischer Client Wie funktioniert ein Web-Browser? - Der Browser sendet einen „Request“ zum Server (URL mit Parametern) und erhält eine Layout-Beschreibung als „Response“ zurück (HTML). Diese Layout-Beschreibung wird in eine entsprechende Grafik umgesetzt. Aktive Elemente in dieser Grafik können ihrerseits wieder neue Requests zum Server schicken. Prinzipiell genauso funktioniert auch der CaptainCasa Enterprise Client, nur: • Der Client ist kein Web-Browser sondern ein in Java Swing implementierter, generischer Client. Client CaptainCasa Enterprise Client Generischer Rich Client XML Layout Definition (delta) Data changes & events http Server Interaktionsverarbeitung Anwendungslogik • Statt des HTMLs wird ein entsprechendes XML vom Server zum Client geschickt und von diesem in eine Benutzeroberfläche umgesetzt. Und statt wie beim Browser immer alles HTML einer Seite zum Client zu schicken, werden über ein Deltaprotokoll nur die Elemente per XML verschickt, bei denen auch wirklich eine Änderung stattfand. Entsprechend klein ist das verschickte Datenvolumen und entsprechend schnell ist die Änderungszeit auf dem Client, da nur das nachgezeichnet wird, was sich auch geändert 5 hat. • Statt der limitierten aktiven Komponenten, die über HTML zur Verfügung gestellt werden, können nun Java Swing basierte Komponenten im Client verwendet werden. Stellen Sie sich also den Client-Teil der CaptainCasa Technologielösung als einen hochwertigen, für Delta-Rendering optimierten Browser vor. Server Anbindung über http(s) Immer, wenn der Benutzer in der Oberfläche eine Aktivität vornimmt, die Server-seitige Relevanz hat, wird ein http(s) Request vom Client an den Server gesendet. Umgekehrt wird eine Response vom Server erwartet, die das Layout (bzw. die Änderungen im Layout) wieder zum Client bringt. Die Struktur des Request und die Struktur der Response entspricht genau dem http(s) Protokoll. Der Client verhält sich also aus Kommunikationssicht genau so wie ein normaler Web-Browser. Dies bedeutet wiederum, dass alle Technologien, die im Laufe der letzten Jahre auf der Server Seite zur Erstellung von Web-Anwendungen geschaffen wurden, nun auch für die Anbindung des CaptainCasa Enterprise Clients genutzt werden können. Die Vorteile hieraus sind: • Stabile Server-Umgebung: CaptainCasa bringt keine eigene Server Umgebung mit sondern klinkt sich in bewährte Technologien aus dem Web-Umfeld ein. • Knowhow Transfer: Entwickler, die bereits für das Web entwickelt haben, verwenden die gleiche Umgebung für CaptainCasa. Selbiges gilt für Systemadministratoren etc. Java Server Faces (JSF) im Server Req Res <row> <label text=“...“/> <field text=“...“/> </row> BODY ROW .JSP File LABEL FIELD Managed Beans JSF wurde von Anfang an so konzipiert, dass es nicht auf HTML als Oberflächendefinitionssprache festgelegt ist. Somit bietet JSF die ideale, standardgemäße Umgebung zur Server-seitigen Erstellung und Verarbeitung von CaptainCasa Enterprise Client Benutzeroberflächen. Ist JSF komplex? - Ja und nein. Die Nutzung von „JSF unplugged“ ist durchaus etwas für Entwickler, die sich damit auskennen... aber: dies ist nicht das Betätigungsfeld eines 6 CaptainCasa Enterprise Client Der Standard zur Erstellung Server-seitiger Oberflächen heißt „JSF“ (Java Server Faces). JSF verwaltet für eine Benutzersitzung auf dem Server einen Komponentenbaum, der der dargestellten Benutzeroberfläche entspricht. Aus dem Komponentenbaum wird durch rekursives „Abmarschieren“ die Oberflächendefinition erzeugt (XML Definition), umgekehrt werden Ereignisse der Oberfläche in den Komponentenbaum eingearbeitet. Anwendungsentwicklers! Dieser stellt Oberflächen entweder statisch oder dynamisch aus bestehenden Komponenten zusammen und verbindet diese Elemente mit Server-seitigen Programmen. Entsprechende Tools, vom WYSIWYG Editor bis hin zum Code Generator, unterstützen diesen Vorgang. Gesamtbild Es ergibt sich das folgende Gesamtbild: Browser Swing based „Browser“ WebStart / Applet / Stand alone http(s) XML Layout Definition „full“ or „delta“ JSF Component Library Data changes & events Java Server Faces Managed Bean(s) J2EE Web Container (Tomcat, JBoss, IBM Websphere, BEA Web Logic, ...) Die Benutzeroberfläche läuft in einem generischen Client, der im Web Browser gestartet wird. Die Interaktionsverarbeitung läuft Server-seitig in Form von sog. „Managed Bean“Programmen auf Basis von Java Server Faces. CaptainCasa Enterprise Client Logikverteilung Die Interaktionssteuerung, d.h. das Überführen von Ereignissen der Oberfläche in eine Anwendung sowie das Bereitstellen von Daten aus der Anwendung heraus, läuft beim CaptainCasa Enterprise Client komplett im Server ab. Im Client läuft ausschließlich formale Logik ab, wie z.B.: • Das Validieren von Eingaben gegen Datentypen. • Das Validieren von Eingaben gegen reguläre Ausdrücke. Konkretes Beispiel: die Eingabe einer EAN Nummer (13 stellig, mit Prüfziffer) wird vorne im Client auf formale Richtigkeit hin überprüft. Eine Prüfung, ob die EAN Nummer auch in der Artikeldatenbank der Anwendung enthalten ist, findet im Server statt. Dieses Prinzip „Interaktionssteuerung im Server“ ist eine enorme Vereinfachung der Anwendungsentwicklung: • Im Client findet keine Anwendungsentwicklung Anwendungsentwicklung ist somit homogen. statt – die Umgebung zur • Es gibt keine mannigfaltigen Schnittstellenbeziehungen zwischen Client und Server, sondern nur eine zentrale Schnittstelle – der http(s) Kanal, über den Request- und 7 Response-Meldungen kommuniziert werden. Roundtrips Zwischen Client und Server besteht ein geblocktes Roundtrip Protokoll. Das Datenvolumen ist durch Anwendung von Deltamechanismen klein, das typische Roundtripdatenvolumen beträgt zwischen 1 und 2 kBytes. „Geblockt“ bedeutet hierbei, dass jeder Kommunikationsbedarf vom Client zum Server genau durch genau einen Kommunikationsvorgang (Request, Response) abgebildet wird. Aufwand zum Betrieb Der CaptainCasa Enterprise Client benötigt im Client eine Java Runtime (Version 1.6). Diese Runtime wird entweder über Server der Java-Organisation oder über Inhouse-Server bezogen. Die Installation der Java Runtime muss einmal durchgeführt werden. Mit der Installation werden entsprechende Plug-ins in den gängigen Browsern (Microsoft Internet Explorer, Mozilla Firefox, etc.) eingebaut, über die der Client dann als Applet oder Webstart Anwendung aus dem Web-Browser heraus gestartet wird. Der generische CaptainCasa Enterprise Client wird von der Java Runtime geladen und ausgeführt – und im Client gepuffert, so dass beim nächsten Verwenden des Clients auf ein erneutes Laden verzichtet wird. Von nun an stellt der Client die ihm zugeschickten XML Seiten dar und schickt entsprechende Requests zum Server, wenn der Benutzer Eingaben tätigt. Änderungen an bestehenden Seiten (z.B. neue Felder) bewirken somit nicht eine Neuverteilung des generischen Clients – sondern werden von diesem über die auf dem Server geänderte XML Definition der Seite „ganz normal“ dargestellt. Zum Vergleich: auch ein HTML Web Browser wird nur einmal installiert und stellt dann beliebige Seiten dar. Der Aufwand im Betrieb lässt sich demnach folgendermaßen zusammenfassen: • Einmalige Installation der Java Umgebung: „managed installation“ • Einmaliges Laden und Puffern des Clients: „automated installation“ Client Technologie Der generische Client ist auf Basis von Java Swing erstellt. Die Vorteile sind: • Robuste, erprobte, schnelle Umgebung – geeignet für industriellen Einsatz • Langfristige Unterstützung durch Java, Aktualität durch Version 1.6 Update 10 • Mannigfaltige Möglichkeiten zur grafischen Ein/Ausgabe • Lauffähig auf allen relevanten Client Plattformen (Windows, Linux, Mac OS, etc.), Pixel-gleiche Zurverfügungstellung von Oberflächen auf diesen Plattformen • Einbindung in Browser Anwendungen über Applet und Webstart Technologie Die Wahl einer „nativen Client-Technologie“ zur Erstellung des Clients fiel bewusst und auf Basis umfangreicher Erfahrungen mit HTML/AJAX-basierten Ansätzen. Innerhalb der nativen Client-Technologien gibt es drei Strömungen, die langfristigen Bestand haben: Java, Adobe Flex und Microsoft Silverlight. Java wurde hier auf Grund der Aspekte Robustheit, Programmierbarkeit (inklusive Tracing, Debugging, OO Design) und Plattformunabhängigkeit gewählt. 8 CaptainCasa Enterprise Client • Darstellung der Seiten und deren Updates: „zero installation“ Entwicklungsmodell Die typische Erstellung der Oberfläche einer Anwendung verläuft in folgenden Schritten: • Zusammenstellung der Komponenten einer Oberfläche in Form einer XML LayoutDefinition • Anbindung eines Server-seitigen Programms, das die Logik der Seite abbildet und an bestehende oder zu erstellende Geschäftslogik knüpft • Zusammenstellung mehrerer Seiten zu einer Anwendung Anhand des Beispiels „Hello World!“ werden diese Schritt im folgenden Text dargestellt. Natürlich ist „Hello World!“ ein recht simples Beispiel, die grundsätzlichen Abarbeitungsstrukturen lassen sich aber gut daran ablesen. Am Ende der Entwicklung steht die Verteilung der Anwendung zum Einsatzort, sprich: das Deployment der Anwendung. Auch hierauf wird kurz eingegangen. Layout Definition Die Layout-Definition findet, wenn sie statisch geschieht, als XML Definition innerhalb einer „.jsp“ Datei statt. Der folgende Screenshot... CaptainCasa Enterprise Client ...ist wie folgt definiert: <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <%@taglib prefix="t" uri="/WEB-INF/eclnt"%> <f:view> <h:form> <f:subview id="workplace_demohelloworld_sag_sv"> <t:rowbodypane id="g_1" bgpaint="rectangle(0,0,100%,100%,#f8f8f8,#c0c0c0,vertical)"> <t:row id="g_2"> <t:label id="g_3" text="Your Name" width="120" /> <t:field id="g_4" clientname="yourName" text="#{wp.DemoHelloWorld.name}" width="200" /> </t:row> 9 <t:rowdistance id="g_5" height="5" /> <t:row id="g_6"> <t:coldistance id="g_7" width="120" /> <t:button id="g_8" actionListener="#{wp.DemoHelloWorld.onHello}" clientname="onHello" text="Hello!" /> </t:row> <t:rowdistance id="g_9" height="50" /> <t:row id="g_10"> <t:label id="g_11" text="Result" width="120" /> <t:field id="g_12" background="#F0F0F0" clientname="result" enabled="false" text="#{wp.DemoHelloWorld.output}" width="100%" /> </t:row> </t:rowbodypane> <t:pageaddons id="g_pa" /> </f:subview> </h:form> </f:view> Die XML Definition ist strukturell an HTML angelehnt: es gibt Container, in die Zeilen platziert werden. In den Zeilen befinden sich entweder Komponenten oder wiederum Container. Server-seitige Anbindung In der XML Definition ist die Zusammenstellung der Komponenten beschrieben. Jede Komponente hat Attribute, die das Layout der Komponente bestimmen. Ein Attribut kann dabei auf zwei Weisen definiert werden: • Fixe Definition, z.B.: width=“100%“ • Variable Definition, z.B.: text=“#{wp.DemoHelloWorld.name}“ Im Fall der variablen Definition wird der Wert dynamisch aus einem Programm ermittelt, das auf Server-Seite zur Verfügung gestellt wird. Das Programm und das betreffende 10 CaptainCasa Enterprise Client Die Erstellung der XML Definition geschieht mit Hilfe eines WYSIWYG Editors, der Bestandteil der Toolumgebung ist. Property wird über einen „#{}“-Expression gebunden: package workplace; import javax.faces.event.ActionEvent; public class DemoHelloWorld { String m_name; String m_output; public void setName(String value) { m_name = value; } public String getName() { return m_name; } public String getOutput() { return m_output; } public void onHello(ActionEvent ae) { if (m_name == null) m_output = "No name set."; else m_output = "Hello World, "+m_name+"!"; } } Das obige Programm ist sozusagen das Server-seitige Gegenstück zur im Client laufenden Seite. Von dem Programm aus geschieht die Anbindung bestehender oder zu erstellender Geschäftslogik. Zusammenstellung mehrerer Seiten CaptainCasa Enterprise Client Einzelne Seiten können nun in beliebiger Form zu Anwendungsszenarien zusammengesetzt werden. Jede Seite kann hierbei als autarke Einheit definiert werden, die dann als Bestandteil von anderen Seiten eingebunden wird. Eine besondere Form der Einbindung ist der sog. „Workplace“: hier werden unterschiedliche Funktionen einer Anwendung zusammengeführt. 11 Der Workplace beinhaltet: • Ein dynamisch erzeugtes Menü aus dem heraus der Benutzer die Funktionen aufrufen kann • Die Verwaltung von Favoriten über Drag & Drop • Einen Arbeitsbereich, in den herein die Funktion gestartet wird • Möglichkeit, eine laufende Funktion aus dem Arbeitsbereich herauszulösen und in einem eigenen Fenster zu bearbeiten • Möglichkeit, mehrere Funktionen parallel zu bearbeiten - mit strikter Objekttrennung auf der Server-seitigen Verarbeitungsebene Deployment Ergebnis der Entwicklung aus Auslieferungssicht ist eine sog. „J2EE Web Application“. In dieser sind alle zur Anwendung gehörigen Dateien (Oberflächendefinitionen, Programme, Ressourcen) enthalten. Die Auslieferung geschieht in Form eines „J2EE Web Archives“ (.war-Datei). Dieses WebArchive wird im Zielsystem eingespielt („deployed“). Auf Grund der Tatsache, dass CaptainCasa Enterprise Client Server-seitig auf Java Server Faces aufsetzt, gibt es keine Besonderheiten beim Deployment – verglichen mit dem Deployment von anderen Web Anwendungen, die den Web Browser bedienen. Look & Feel Die grafischen Komponenten sind durch eine Vielzahl von Parametern in ihrem Look & Feel individuell steuerbar. Hierzu gehören: Font, Hintergrundsgestaltung (Schattierung, Zeichnung), Vordergrundfarbe, Rahmen, Einrückung, u.v.m. CaptainCasa Enterprise Client In Form von XML-Style-Definitionen können diese Parameter von außen aufgeprägt werden. Ein und dieselbe Seite kann somit je nach Wahl der Style-Definition verschiedenartig präsentiert werden. 12 Einsatzszenarien Technologische Einsatzszenarien Der CaptainCasa Enterprise Client ist eine Rich Client Technologielösung – nicht weniger aber auch nicht mehr. Innerhalb der CaptainCasa Enterprise Client Umgebung werden die Oberflächen erstellt und an die verarbeitenden Schichten angebunden. CaptainCasa macht keinerlei Vorschriften über die Gestaltung der verarbeitenden Schichten – sondern passt sich deren Belangen an. Die folgende Auflistung von technologischen Einsatzszenarien ist deswegen nur ein Auszug von Möglichkeiten. CaptainCasa – Hibernate Hibernate ist eine populäre open-source-Umgebung zur Datenbankanbindung. Als Schicht oberhalb der direkten Datenbankverwendung über JDBC, übernimmt Hibernate folgende Aufgaben: • Abstraktion von der verwendeten Datenbank, so dass die verwendende Anwendung auf verschiedenen Datenbanken ablaufen kann. • Mapping von Tabellen in Objekte. • Abstraktion von Queries über Hibernate Query Language. Hibernate bietet dem Verwender eine gute Mischung aus einer objektorientierten Sichtweise auf die Datenbank und einee Query-basierten Sichtweise. CaptainCasa – Spring (- Hibernate) Der zentrale Aspekt des Spring Frameworks ist die Schaffung einer Anwendung, die aus verschiedenen Modulen besteht, die über Interfaces miteinander verknüpft sind. Spring übernimmt hierbei auf elegante Weise die Verknüpfung der einzelnen Module und hält das Wissen über die Art und Weise der Verknüpfung aus den Modulen heraus. CaptainCasa Enterprise Client Aus diesem Grundaspekt heraus hat sich Spring um viele weitere Bestandteile erweitert. Oft wird Hibernate über Spring angebunden. CaptainCasa – Enterprise Java Beans (EJB) Enterprise Java Beans ist das J2EE Framework zur Kapselung von logischen Komponenten in einer Serververarbeitung. Auch wenn die Nutzung bei Entwicklern nicht unumstritten ist, so gibt es doch etliche EJB basierte Anwendungen. Aus CaptanCasa Sicht heraus wird eine EJB Anwendung „ganz normal“ wie aus jeder Web Anwendung heraus angesprochen. CaptainCasa – Web Service – Legacy Systeme Die Modernisierung von Legacy Systemen (z.B. Mainframe Anwendungen) geschieht oft in der Form, dass vorhandene Legacy Funktionalität im Legacy System gebündelt wird und über Schnittstellen nach außen publiziert wird. Die Schnittstellen (z.B. remote procedure calls) werden von entsprechenden Umgebungen verarbeitet und in Form von Web Services auf einheitliche Weise zur Verfügung gestellt. Aus Java Sicht geschieht der Aufruf eines Web Services über die Nutzung entsprechender Bibliotheken, z.B. axis2. In diesen wird ein Web Service als Java Objektstruktur zur 13 Verfügung gestellt, die dann direkt in die Oberflächenverarbeitung eingebunden werden kann. CaptainCasa – JCO (SAP Java Connector) - SAP Natürlich lassen sich auch SAP Systeme über Web Services einbinden. Häufig genutzt wird aber auch noch die direkte Einbindung von „remote function calls“ über den „Java Connector“ der SAP. Portal/Web Integration Eine Einbindung von CaptainCasa basierten Oberflächen ist über einen Aufruf als Applet einfach möglich. In der Aufruf-URL können Parameter mitgegeben werden, die dann der Verarbeitung zur Verfügung gestellt werden. Inhaltliche Einsatzszenarien Als Technologielösung zur Erstellung und zum Betrieb von Rich Client Oberflächen ist der CaptainCasa Enterprise Client nicht auf eine bestimmte Branche spezialisiert. Kundenszenarien sind Anwendungen aus den Bereichen: • Logistik • Finanzwesen und Controlling • Personalverwaltung • Administrationsfunktionen • u.v.m. Die Anwendungen werden sowohl als Softwarelösung vertrieben und/oder als Service zentral zur Verfügung gestellt. Innerhalb der Anwendungen lassen sich folgende Einsatzbereiche identifizieren: Formularartige Erfassung von Stamm- und Bewegungsdaten • Sichtbarmachung von einzugebenden oder fehlerhaften Feldern mit Begleitkommentar und farblicher Hinterlegung • Direkte Verprobung von Eingaben gegen reguläre Ausdrücke im Client • Kontext-sensitive Online-Hilfe 14 CaptainCasa Enterprise Client • Statische und/oder konfigurationsgesteuerte Masken • Werteselektion über Combobox, modale/amodale Auswahldialoge • Hintereinanderschaltung mehrerer Seiten als Wizard • Tastatursteuerung inklusive Short-Keys und epxliziter Focussteuerung • Erfassung von Daten im Grid über beliebige Komponenten • File Up/Download zum Client • Verschiedene Arten von Container Komponenten, die beliebig verschachtelt werden können: Tab-Reiter, auf/zuklappende Bereiche, animierte Bereiche CaptainCasa Enterprise Client Aus- und Eingabelisten, Grids • Einfache Listen bis komplexe Grids (z.B. 2 Zeilen pro Position) • Beliebige Komponenten können als Grid-Zellen verwendete werden: von der einfachen Textausgabe bis zur komplexen Werteselektion 15 • Konfigurierbarkeit von Listen – per Drag&Drop oder per Konfigurationsdialog. Speicherung der Konfiguration in der Anwendung • Einfach-/Mehrfach-Selektion, rechte Maustaste Popup-Menu-Unterstützung, Drag&Drop • Skalierendes Grid Modell – nur die Einträge werden zum Client gebracht, die auch sichtbar sind • Einfache und komplexe Baumdarstellungen Reporting und Grafik/Charts CaptainCasa Enterprise Client • Direkte Ausgabe und direkter Druck von PDF Dokumenten im Client, die auf Server Seite erstellt werden • Direkte Ausgabe von Geschäftsgrafiken • Typischerweise: Verwendung von Reporting Tools im Server: Jasper-Reports, Eclipse BIRT, u.a. Deren Ausgaben werden entweder direkt oder per PDF im Client visualisiert. 16 Diagramme • Ausgabe und Manipulation von Diagrammen mit Formen und verschiedenen LinienVerbindungstypen • Frei definierbare Formen • Drag&Drop Positionierung Touchscreen Dialoge • Bildschirmtastatur – entweder fest eingebunden (z.B. Kassenanwendung) oder als Popup bei Druck auf Feld • Verschiedene, konfigurierbare Tastaturlayouts • Freie Skalierbarkeit der Komponentengrößen CaptainCasa Enterprise Client • Auswahl von Objekten über Bilder/Icons mit/ohne Text Subsystem Integration • Beispiel: Barcodescanner, Kartenleser, spezielle automatische Waagen Client Drucker, USB Kameras, • Über Tastaturweiche, dabei Nutzung der expliziten Focussteuerung 17 • Über UDP Message Protokoll • Über http Message Protokoll • Über ActiveX Integration Spezielle Szenarien Offline Modus / Embedded Modus Neben dem standardmäßigen „Rich Client Modus“, in dem Benutzeroberfläche und Anwendung über ein Netzwerk entkoppelt sind, lassen sich CaptainCasa Enterprise Client Anwendungen auch im sog. „Embedded Modus“ betreiben: in diesem laufen Benutzeroberfläche und Anwendungsverarbeitung in einem Systemprozess direkt beim Benutzer – die Netzwerkkommunikation wird hierbei durch eine direkte Programmkommunikation ersetzt. Dieses Szenario eignet sich einerseits für die Zurverfügungstellung von Anwendungen als Offline Lösungen – und andererseits für spezielle Arbeitsplätze, in denen bestimmte Benutzer ungeteilten Zugriff auf die Anwendungsverarbeitung haben sollen. Simple HTML Masken Standardmäßige Benutzeroberflächen, die mit CaptainCasa Enterprise Client entwickelt werden, laufen in einem generischen, Java-basierten Client ab – der wiederum entweder im Browser oder aus dem Browser heraus gestartet wird. Daneben gibt es eine Auswahl von Komponenten, die direkt über HTML Rendering im Web Browser bedient werden können. Damit werden Szenarien ermöglicht, in denen der „Hauptteil der Anwendung“ über performante „rich Oberflächen“ abgebildet wird und ein begrenzter Teil der Anwendung über „thin HTML Oberflächen“ angeboten wird. CaptainCasa Enterprise Client Wichtig hierbei: das Entwicklungskonzept zur Erstellung dieser „thin HTML Oberflächen“ ist genau das gleiche wie das zur Erstellung von „rich Oberflächen“. 18 Kontaktaufnahme Haben wir Ihr Interesse geweckt? - Dann freuen wir uns über Ihre Kontaktaufnahme! Wir unterstützen Sie beim Kennenlernen der CaptainCasa Enterprise Client Lösung durch eine Reihe von Angeboten. Erstes Kennenlernen • ONLINE SESSION – in einer ca. 30 minütigen Online Session führen wir Sie durch das System und zeigen, wie Sie die ersten Entwicklungsschritte bewältigen. Diese Session empfehlen wir „jedem“ - Sie erhalten die Informationen komprimiert, die Sie normalerweise nachlesen müssten. • DOWNLOAD – CaptainCasa Enterprise Client steht als Download zur Evaluation ohne funktionale Restriktionen zur Verfügung. Der Download beinhaltet die vollständige Dokumentation. • FORUM – Melden Sie sich in unserem Community Forum an und stellen Sie Fragen! Tieferes Kennenlernen • ONSITE DEMOS – Durchführung einer ca. 90-120 minütigen Demonstration in Ihrem Hause. Die Präsentation ist inhaltlich geprägt und führt von einem Überblick bis hin zu den Grundlagen der Entwicklung. • CAPTAINCASA CORPORATE COMMUNITY TREFFEN – ca. 3 Mal im Jahr trifft sich die Corporate Community. Hierbei werden im Rahmen eines halben Tages Neuigkeiten der Lösung vorgestellt, Anwenderszenarien präsentiert und nächste Schritte der CaptainCasa Entwicklung besprochen. CaptainCasa Enterprise Client • WORKSHOP – Durchführung eines 2 tägigen Workshops bei Ihnen, Motto: „Druckbetankung“. I.d.R. werden in dem Workshop 4-5 Seiten, die durch Sie vorgegeben werden, implementiert. Je nach Szenario wird ein Durchgriff bis auf Ihre bestehende Anwendung durchgeführt. Ziel des Workshops: Erstellung eines lauffähigen Prototyps, dabei Schaffen eines „Entwickler-Bauchgefühls“ bzgl. der Nutzbarkeit. Wir freuen uns auf ein Kennenlernen! 19 Folgende Handelsmarken oder eingetragenen Markenzeichen werden innerhalb dieser Dokumentation referenziert: Java - Sun Microsystems Inc.; UNIX – The Open Group; SAP, R/3, ABAP – SAP AG; Microsoft, Windows – Microsoft Corporation; BEA, WebLogic – Oracle Corporation; JBoss – Red Hat Middleware; IBM, Websphere – IBM Corporation; Tomcat – Apache Group CaptainCasa GmbH Hindemithweg 13 69245 Bammental Tel +49 6223 484147 http://www.CaptainCasa.com [email protected] 20 CaptainCasa Enterprise Client Alle anderen genannten Handelsmarken und Produkte sind Handelsmarken oder eingetragene Warenzeichen ihrer Eigentümer.