Das Konzept von Enterprise JavaBeans 3.1

Größe: px
Ab Seite anzeigen:

Download "Das Konzept von Enterprise JavaBeans 3.1"

Transkript

1 Das Konzept von Enterprise JavaBeans 3.1 Benjamin Kugel Medien- und Kommunikationsinformatik Hochschule Reutlingen Kurzfassung: Eine Möglichkeit, komplexe Anwendungen über ein verteiltes System zu entwickeln, ist die Enterprise JavaBeans Technologie. Diese Technologie lässt sich dabei selbst als komplexe Sammlung von Bibliotheken bezeichnen. Der Zweck dieser wissenschaftlichen Ausarbeitung besteht darin, in einer komprimierten Form das Grundverständnis der Enterprise JavaBean Technologie, deren Nutzen und Funktionsweise zu vermitteln. Der Schwerpunkt dieser Arbeit befasst sich mit der Version Enterprise JavaBeans 3.1, führt aber ebenso die wichtigsten Unterschiede und Weiterentwicklungen zu Enterprise JavaBeans 2.0 auf. Wenn in der Arbeit nicht explizit eine andere EJB-Version erwähnt wird, wird der Enterprise Standard 3.1 beschrieben.

2 1. Einleitung Die Enterprise JavaBeans Technologie wurde zur einfacheren Realisierung von Client- Server-Systemen entwickelt. Genauer gesagt dienen Enterprise JavaBeans, im Folgenden auch EJB genannt, zum Erstellen von verteilten Systemen, wobei bei dieser Technologie vor allem der Server im Fokus liegt. Um ein verteiltes System handelt es sich immer dann, wenn nicht alle Komponenten auf dem gleichen Computer, oder um noch genauer zu sein, nicht in der gleichen Java VM (virtual machine) laufen [Roz07, S.21]. Enterprise JavaBeans ist ein Standard auf der Basis von Java, der den Entwicklern das Realisieren eben solch genannter Systeme durch vordefinierte Bibliotheken erleichtert. Um sich das Konzept und das Ziel der EJB-Technologie besser klar machen zu können, ist es sinnvoll, die Ausgangslage vor EJB und die dortige Problemstellung zu betrachten. 1.1 Die Problemstellung Eines der bekanntesten Beispiele für Client-Server-Kommunikation ist das World-Wide- Web, wo Browser (Clients) verschiedener Hersteller die Daten von Webservern (Server) beliebiger anderer Hersteller abfragen und dem Nutzer anzeigen, vgl. [EL07, S.8]. Dieses Konzept brachte viele Vorteile, wie z.b. Unabhängigkeit der Programmiersprachen mit sich, ebenso aber einen großen Nachteil, vgl. [EL07, S.8]. Die Entwicklung von Anwendungen, die über mehrere Rechnersysteme verteilt waren, bedeutete eine Menge technischen Aufwand. Es stellte sich unter anderem die Frage nach der Möglichkeit, Daten dauerhaft speichern zu können (Persistenz), Clients zu verwalten, bzw. welche Nutzer welche Zugriffsberechtigungen erhalten würden, oder wie die Performance der Anfragen eines Clients auf z.b. eine Datenbank verbessern werden kann. Im Zusammenhang mit Datenbanken mussten sich die Entwickler also auch mit SQL (Structured Query Language), der Sprache für viele DB-Systeme, beschäftigen. Alleine das richtige Abbilden von Objekten auf eine Datenbanktabelle stellte schon einen großen Aufwand innerhalb der gewünschten Anwendung dar. Das Alles machte ein verteiltes System sehr komplex. Als Lösung wurde die 2-Schichten-Architektur entwickelt, die aus Client und Server bestand. So wurden Daten an einer zentralen Stelle auf einem Server gesammelt und Clients konnten von unterschiedlichsten Standorten aus darauf Zugriff bekommen. Da auf den Servern nur über einfache SQL-Befehle Datenmanipulation möglich war, wurde die dazugehörige Logik auf den Clients implementiert, welche die erhaltenen Daten wiederum je nach Anwendungsfall weiterverarbeiteten. Dem entsprechend wurden die Clients aber immer größer, wurden als FatClients bezeichnet, und mussten ständig neu programmiert und verteilt werden, wollte man z.b. erweiterte Funktionen anbieten [EL07, S.11]. So war es mit Hunderten von Clients kaum mehr möglich, einen konsistenten Softwarestand zu gewährleisten [BR07, S.9]. Schließlich wurde diese Architektur auf eine 3-Schichten-Architektur umgestellt, die auch unter dem englischen Fachbegriff 3 Tier Architecture bekannt ist. Hier wird auf Seiten des Servers eine dritte Schicht, die sogenannte Mittelschicht (engl. Middle-Tier), eingerichtet, wobei dafür

3 durchaus eigenständige Rechner oder Subsysteme genutzt werden können [BR07, S.9]. Dienste und die Verarbeitung von Daten der Datenbank werden hier mit Hilfe höherer Programmiersprachen ausgeführt. Die Logik wird hier auf den Server ausgelagert und entlastet die Clients, was den Vorteil einfacherer Verwaltung zum Ergebnis hat. Die aufgeführte Abbildung 1.1 veranschaulicht den Aufbau dieser Architektur. Abbildung 1.1: 3-Schicht-Architektur [EL07, S.10] Sun entwickelte Mitte 1997 die Java Enterprise Edition (JEE), eine Sammlung von Java Standards und Spezifikationen. Mit dem JEE Standard ermöglichte Sun die Umsetzung von Geschäftslogik auf dieser 3-Schicht-Architektur. Aufgrund dieses Konzeptes sollte es für Entwickler solcher Anwendungen auch mit Hilfe vieler Standardbibliotheken deutlich einfacher werden, diese komplexen Systeme zu entwickeln. So sollte derjenige Entwickler, der die Geschäftslogik versteht, aus den vordefinierten Komponenten Anwendungen zusammensetzen können und zwar so, dass er sich nicht um programmtechnische Details kümmern muss [BR07, S.5]. Die Enterprise JavaBeans Technologie ist Teil der JEE und deckt diese Mittelschicht ab. Sie schließt die Verfahren mit ein, wie EJB s auch von der Präsentationsebene (Clients) aus angesprochen werden können, ebenso aber, wie die Persistenzebene zu integrieren ist, vgl. [EL07, S.10]. 2. Konzept der Architektur Um das Prinzip der Funktion einer EJB-Anwendung zu verstehen, müssen zunächst einige Begriffe definiert werden. Bestandteile einer solchen Anwendung sind ein Java- EE-Server, ein EJB-Container und die EJB-Komponenten, die wiederum Dienste für Clients anbieten. Ein Java-EE-Server umgibt einen oder mehrere Container (es gibt zum Beispiel noch Web-Container) und versorgt diesen mit wichtigen Funktionen. Zu den Aufgaben eines solchen Servers gehört z.b. die Verwaltung von System-Ressourcen, die unter Anderem für Verbindungen zu Datenbanken nötig sind. Des Weiteren übernimmt der Server das Prozess- und Threadmanagement innerhalb der umgebenden Container, vgl. [BR07, S.28]. Der EJB-Container stellt die zentrale Verwaltungsstelle der EJB- Komponenten dar und verwaltet einen Großteil der technischen Aspekte einer Geschäftsanwendung, um die sich der Entwickler dadurch weniger kümmern muss. Der Container übernimmt die Kontrolle über Instanzen von Enterprise Beans, kümmert sich

4 um Transaktionsdienste, Datenbankzugriffe und bietet u. a. die Schnittstelle für Clientzugriffe mittels der JNDI-API (Java Naming and Directory Interface). Die EJB- Komponenten sind schließlich die verschiedenen Beans, welche die Logik einer Anwendung enthalten. Zum besseren Verständnis lässt sich die Architektur wie folgt zusammenfassen. Ein Java-EE-Server verwaltet den EJB-Container, der die Laufzeitumgebung mit den nötigen Diensten für die Enterprise Bean Komponenten bereitstellt [BR07, S.28]. Abbildung 2.1 veranschaulicht das Prinzip des EJB-Containers, führt den Java-EE-Server aber nicht mit auf. Abbildung 2.1: EJB-Container-Architektur [EL07, S.14] Der EJB-Container einer Server-Anwendung lässt sich gut mit der Virtual Machine einer normalen Computeranwendung vergleichen. Eine normale Java-Klasse, die Code für ein Programm beinhaltet, braucht die VM als Container, um ausgeführt werden zu können. Diese Verwaltungsaufgabe übernimmt der EJB-Container für die EJB-Komponenten. 3. Enterprise Beans Enterprise Beans sind zunächst einfache Java Klassen, die allerdings bestimmten Spezifikationen folgen. Bei diesen Klassen handelt es sich um Komponenten der Java EE Plattform, welche die EJB-Technologie implementieren, vgl. [Ora13, Part4]. Es sind die Komponenten, die vom EJB-Container verwaltet werden. Instanzen dieser Beans sind im Container über eine eindeutige Identität, welche der Container zuteilt, von Clients ansprechbar. Diese Clients nutzen die in den Beans zur Verfügung gestellten Methoden und Funktionen, welche die Anwendungslogik einer Applikation beinhalten. Hier sollte angemerkt werden, dass Clients nicht nur entfernte Nutzer sein müssen, die sich in einer anderen Virtual Machine befinden. Auch eine andere Bean kann die Dienste einer Bean beanspruchen. Im EJB-Standard wird zwischen verschiedenen Beanarten unterschieden, die je nach Anwendung zum Einsatz kommen. Unterteilen lassen sie sich in Session Beans, die sich

5 jedoch in drei weitere Beanarten aufteilen lassen, Message-Driven Beans und Entity Beans. In Abbildung 3.1 werden die Beans zur besseren Übersicht grafisch dargestellt. Abbildung 3.1: Enterprise Bean-Arten, vgl. [Roz07, S.22] 3.1 Session Beans Session Beans realisieren die serverseitige Geschäftslogik einer Anwendung [BR07, S.37]. Diese Beans lassen sich in drei weitere Beanarten aufteilen. Der dritte Bean-Typ ist die Singleton Session Bean und wurde erst mit dem EJB-Standard 3.1 eingeführt. Zu dieser Bean gibt es einige Besonderheiten, die im späteren Abschnitt aufgeführt sind. Die Stateful und die Stateless Session Bean unterscheiden sich bei Aufrufen, ausgehend von Clients, in zwei wesentlichen Merkmalen voneinander. Die Instanzen von Stateful Beans können einen client-spezifischen Zustand speichern, während Instanzen von Stateless Beans sich nur genau einen Aufruf merken können. Unter einem clientspezifischen Zustand ist dabei die Fähigkeit zu verstehen, Daten über mehrere Client- Aufrufe hinweg innerhalb einer Bean-Instanz zu speichern [EL07, S.37]. Hier ist wichtig zu erwähnen, dass Session Beans normale Java-Instanzen sind. Das bedeutet, dass sie nicht dauerhaft persistiert sind. Endet der Dienst einer Bean, wird diese verworfen und vom Carbage Collector zu gegebener Zeit entfernt. Es ist aber möglich, die Daten einer Bean-Instanz dauerhaft in einer Datenbank zu speichern und sie damit persistent zu machen. Später können sie über die Dienste der Beans ausgelesen werden.

6 3.1.1 Client-Zugriff auf Session Beans Bevor die detailliertere Beschreibung der beiden Session Beans aufgeführt werden kann, ist es von Vorteil, das Konzept für einen Bean-Aufruf zu betrachten. Beans werden auf zwei unterschiedliche Arten von Clients angesprochen. Das gilt sowohl für Stateless als auch für Stateful Session Beans. Einen Aufruf eines Clients von einer anderen Virtual Machine ausgehend nennt man dabei Remote-Zugriff, der Aufruf eines Clients innerhalb derselben VM hingegen wird als Lokaler-Zugriff bezeichnet. Beans werden jedoch nie direkt von einem Client referenziert oder gar instanziiert. Da der EJB-Container die Bean-Instanzen verwaltet, können sie also nicht einfach vom Client instanziiert werden, sondern der Container entscheidet, wann er eine neue Instanz einer Session Bean erzeugt [EL07, S.39]. Worauf der Client eigentlich zugreift, ist ein Interface, das von der Bean implementiert wird. Innerhalb des Interfaces wird per Annotation die Zugriffsberechtigung definiert. Wird die gewählt, bedeutet das, dass die zur Verfügung gestellten Methoden des Interfaces von Clients aufgerufen werden können, die sich außerhalb des Applikationsservers befinden, vgl. [Roz11, S.80ff]. Ein lokaler Zugriff hingegen wird seit Enterprise JavaBeans 3.1 automatisch ohne zusätzliche Annotation ermöglicht. Bei der vorherigen EJB-Version 3.0 musste hierfür implementiert werden. Das bedeutet, wenn eine Bean-Klasse kein Interface definiert, wird sie vom Standard her automatisch für lokale Zugriffe freigegeben, vgl. [Roz11, S.82]. Sobald man aber das Remote-Interface für eine Bean nutzt, muss für lokale Zugriffe auf dieselbe Bean, vorausgesetzt dieser lokale Zugriff ist erwünscht, implementiert werden. Das impliziert, dass für eine Bean beide Interfaces gleichzeitig genutzt werden dürfen. Methoden, die in diesen Interfaces definiert sind, nennt man Business- Methoden, vgl. [Roz07, S.66]. Eine Session Bean kann noch weitere Methoden deklarieren, die nicht im Interface aufgeführt sind. Diese sind für Clients allerdings nicht sichtbzw. aufrufbar. Um dies besser nachvollziehen zu können, wird die Deklaration der Interfaces im Codebeispiel 3.1 und Codebeispiel 3.2 verdeutlicht. Codebeispiel 3.1: Remote-Interface

7 Codebeispiel 3.2: Local-Interface In den dargestellten Codebeispielen wurden in den Interfaces die Wörter Local bzw. Remote im Namen geführt. Dies ist kein muss für die korrekte Funktion des Programms, hat sich aber als ein gewisser Standard zur besseren Übersicht weitgehend etabliert, vgl. [Roz11, S.85]. Ein Clientzugriff erfolgt beim EJB-Konzept über den Java Naming and Directory Dienst. Das JNDI-API wird vom Server bereitgestellt und vom Container genutzt, um verschiedene Systemkomponenten zu verbinden [Sta07, S.293], was in diesem Fall die Verbindung von Clients und Enterprise Beans beinhaltet. Der Container teilt jeder EJB- Komponente, die entweder über Remote- oder Local-Zugriff erreichbar ist, einen Namen zu und ordnet diese in ein bestimmtes hierarchisches Verzeichnis ein, vgl. [BR07, S.35]. Möchte ein Client nun den Zugriff auf eine Bean, muss er den exakten vom Container zugeteilten Namen der Bean aufrufen. Den Fachbegriff für den Aufruf einer Bean wird als Lookup bezeichnet. Ebenso ist der technische Unterschied zwischen einem Remote- und einem Local-Aufruf von relevanter Bedeutung. Hierbei geht das EJB-Konzept wie bei dem bereits aus Java bekannten Prinzip CBR bzw. CBV vor. Die Call-By-Value Semantik wird bei einem Client-Zugriff außerhalb des Applikationsservers benutzt. Übertragene Parameter werden als Kopie übergeben. Für Lokal-Zugriffe von z.b. anderen Beans innerhalb der gleichen Java VM wird die Call-By-Reference Semantik verwendet. Hier werden Parameter nicht mehr kopiert, es erfolgt eine Kopie der Referenz. D.h. dasselbe Objekt wird gleichzeitig von zwei oder mehr Zeigern referenziert. Dieses Prinzip fällt aber zu sehr in den Bereich der Java-Grundlagen und wird hier nicht weiter vertieft Stateless Session Beans Die Stateless Session Bean ist eine EBJ-Komponente ohne client-spezifische Zustände. Sie bietet Dienste für Clients, die mit einer einfachen Antwort zu erledigen sind. Das heißt, für die korrekte Funktion einer solchen Business-Methode sind nur die vom Client übergebenen Eingabeparameter notwendig, vgl. [BR07, S.85]. Dies kann z.b. eine Abfrage über die Wetterinformationen der kommenden Woche sein. Hierfür wären nur das

8 aktuelle Datum und der Standort des Aufrufers nötig. Der Standard im EJB-Konzept möchte nur mit normalen Java-Objekten arbeiten, sogenannten POJO s (Plain Old Java Object), vgl. [EL11, S.41]. Deshalb reicht hier ebenso eine einfache Annotation, um die Java-Klasse zur Bean umzufunktionieren. über einer Klasse teilt dem EJB-Container, der die Beans verwaltet, alle nötigen Informationen zur Umwandlung mit. Im Codebeispiel 3.3 ist eine Stateless Bean mit der kennzeichnenden Annotation und der implementierten Business-Methode für die Wetterabfrage über einen Remote-Zugriff zu sehen. Das entsprechende Interface ist in Codebeispiel 3.1 zu sehen. Codebeispiel 3.3: Stateless Session Bean Auch hier gilt, der Ausdruck Bean muss nicht extra im Namen der Klasse enthalten sein. Was genau die Verwaltung durch den EJB-Container bezüglich der Bean bedeutet, ist am sogenannten Lebenszyklus (engl. LifeCycle) einer Bean-Instanz zu sehen. Zum Lebenszyklus einer Stateless Bean gehören zwei Zustände. Sie befindet sich entweder im Zustand Does Not Exist, oder im Zustand Method Ready Pool. Does Not Exist bedeutet schlicht, dass die Bean vom Container noch nicht erzeugt wurde, kurz gesagt, es gibt sie noch nicht, vgl. [EL11, S.39]. Die Definition für den Method Ready Pool- Zustand hingegen lautet, die Bean ist erzeugt und bereit, von einem Client für seine Dienste beansprucht zu werden, vgl. [EL11, S.40]. Um den Übergang vom einen in den anderen Zustand besser nach vollziehen zu können, wird hier die Abbildung 3.2 mit dem Lebenszyklus einer Stateless Bean dargestellt.

9 Abbildung 3.2: Lebenszyklus einer Stateless Session Bean [EL07, S.40] In Schritt 1 wird eine neue Instanz der Bean-Klasse vom Container erzeugt. Dies geschieht über einen Standardkonstruktor. Dieser ist zwingend notwendig in einer Stateless Bean. Es ist zwar möglich, einen eigenen Konstruktor zu definieren, doch muss in diesem Falle explizit ein zusätzlicher Standardkonstruktor implementiert werden, vgl. [Roz11, S.84]. Der EJB-Container braucht diesen, um die Bean initialisieren zu können. Sobald ein Client über die lookup()-methode nach einer Bean sucht, wird intern beim Erzeugen einer neuen Bean-Instanz vom Container die newinstance()-methode aufgerufen. Hiervon ausgehend ist der parameterlose Standardkonstruktor der einzig mögliche, da bei lookup() keine weiteren Parameter übergeben werden können, vgl. [Roz11, S.149]. Da eine Stateless Bean aber ohnehin keinen client-spezifischen Zustand annehmen soll, ist die Frage, ob ein eigens definierter Konstruktor zur Deklaration von Attributen sinnvoll ist. Es gibt EJB-Dienste vom Container, die eine Stateless Bean sinnvollerweise initiieren kann. Die Bean macht sich dann die Ressourcen des Applikationsservers zu Eigen. Zu diesen Ressourcen gehört z.b. der Zugriff auf eine DataSource-Instanz, über die eine Verbindung zu einer Datenbank hergestellt werden kann, vgl. [Roz11, S.87]. Dies wird aber nicht im Konstruktor, sondern über die Dependency Injection, also im Schritt 2 ausgeführt, wobei sich die Bean diese Daten in Instanzvariablen injizieren lässt. Diesen Vorgang nennt man Injizierung [EL11, S.46]. Dafür deklarierte Instanzvariablen sind in diesem Fall keine client-spezifischen, sondern client-unabhängige Variablen, vgl. [EL11, S.46]. Im 3. Schritt wird einmalig die PostConstruct-Methode der Bean aufgerufen. Sie ist eine der zwei sogenannten Lifecycle Callback-Methoden der Stateless Session Bean. Sie wird direkt nach der Erzeugung der Bean-Instanz aufgerufen. Ihr Gegenstück ist die PreDestroy-Methode, welche einmalig direkt vor der Zerstörung der Instanz ausgeführt wird. Hier können z.b. Datenbankverbindungen geschlossen werden. Beide Methoden sind optional und dienen zur Benachrichtigung über die Erzeugung, bzw. Zerstörung. Dementsprechend kann hier in der PostConstruct-Methode also eine Nachricht über die Er-

10 zeugung ausgegeben werden, oder die Initialisierungsarbeit im Rahmen des JNDI, die innerhalb der Dependency Injection nicht möglich war, vervollständigt werden, vgl. [EL11, S.47]. Der Methode dürfen keine Parameter übergeben werden und ihr Rückgabewert muss void sein. Nachdem diese drei Schritte abgearbeitet wurden, befindet sich die Instanz der Stateless Bean im Zustand Method Ready Pool. Ein Pool ist dabei einfach eine Menge von initialisierten Bean-Instanzen ohne konkrete Zuteilung zu einem Client [EL11, S.40]. Dies bedeutet, dass eine Bean in diesem Zustand zwar existiert, aber zurzeit keinen Dienst ausführt, bzw. von keinem Client genutzt wird. Sie liegt also im Pool zusammen mit ein paar anderen Bean-Instanzen bereit. Das Konzept hinter einem Instanzen-Pool hat vor allem performancetechnische Gründe und trägt zur Skalierbarkeit der Anwendung bei. Die Verbesserung der Performance wird durch das vorherige Erzeugen der Bean durch den Container gegeben. Ruft ein Client eine Geschäftsmethode auf, muss die Bean-Instanz also nicht erst erzeugt werden oder zuerst noch die oben beschriebenen Schritte durchführen. Hat eine Instanz eine aufgerufene Geschäftsmethode abgearbeitet, befindet sie sich direkt danach wieder in wartender Bereitschaft im Pool, vlg. [EL11, S.40]. Vor allem hier wird deutlich, warum eine Stateless Bean keine client-spezifischen Zustände annehmen darf. Solch eine Instanz ist nie fest an einen Client gebunden. Nur während einer Methodenabarbeitung ist sie dem Client zugeordnet. Würde ein Client jetzt Informationen in einer Instanzvariablen speichern, um sie beim nächsten Mal weiter verarbeiten zu können, müsste der Client beim nächsten Aufruf wieder genau diese Instanz der Bean aus dem Pool bekommen, vgl. [Roz11, S. 85ff]. Da die Zuteilung aber vom EJB-Container gesteuert wird, ist dies nicht gewährleistet und auch nicht gewollt Stateful Session Beans Stateful Session Beans wurden im Gegensatz zu Stateless Session Beans für anhaltende Prozessaufgaben konzipiert. Der größte Unterschied zwischen diesen beiden Bean- Typen besteht hier in der Verbindung zwischen Bean und Client. Diese Verbindung wird für die gesamte Lebensdauer einer Stateful Session Bean-Instanz aufrecht erhalten und erst mit dem Abschluss der Aufgabe, die meist über mehrere Clientaufrufe dauern kann, aufgelöst. In einer solchen Bean-Instanz werden client-spezifische Instanzvariablen angelegt und individuelle Werte vom Client zwischengespeichert. Auf diese Art und Weise können Informationen über mehrere Methodenaufrufe verteilt genutzt werden. Weil bei diesem Prinzip der Client und die Session Bean miteinander interagieren, wird dieser Status auch als eine Konversation bezeichnet, vgl. [Ora13, Part4/22]. Im Vergleich zu einer Stateless Bean-Instanz, welche von verschiedenen Clients genutzt werden kann, wird eine Stateful Bean-Instanz also an ihren Client gebunden, existiert nur für ihn und kann von keinem anderen Client genutzt werden. Der Applikationsserver muss also für jeden Client eine eigene Instanz einer Stateful Session Bean vorhalten [Roz11, S.146].

11 Ein oft verwendetes Beispiel für solch eine Sitzung (engl. Session) zwischen Client und Bean ist eine Warenkorbanwendung. Ein Nutzer navigiert sich durch einen Online-Shop, legt Waren in einen virtuellen Korb und schließt den Vorgang durch einen Kauf oder einen Abbruch ab. An dieser Stelle wird die Bean-Instanz freigegeben und dem Carbage Collector überlassen. Bei solch einem Warenkorbvorgang muss in der Session einiges an Informationen über den Nutzer wie z.b. Name, Adresse oder bereits in den Warenkorb gelegt Artikel gespeichert werden. Eine eigene Instanz pro Client bedeutet unter Umständen, dass für einen Einkauf auf einer Website einige hunderte, wenn nicht tausende Einkäufer auf einmal zusammen kommen. Der EJB-Container erzeugt für jeden Einkäufer eine notwendige Bean-Instanz, was bei einer großen Anfrage aber viele Speicherressourcen beansprucht. Da eine Server-Client-Anwendung aber den Vorteil von Skalierbarkeit bieten soll, muss bei Stateful Session Beans eine Möglichkeit geschaffen werden, jedem Nutzer den sofortigen Zugang zur Anwendung zu gewährleisten, ohne den Server durch zu viel benötigten Speicherplatz zu überlasten. Während bei den Stateless Beans die Performance über das Pool-Handling verbessert wird, nutz der Applikationsserver bei Stateful Beans das Swapping-Verfahren, vgl. [BR07, S.75]. Hier werden Beans, die seit einer gewissen Zeit von ihrem Client nicht mehr aufgerufen wurden, vorübergehend vom Hauptspeicher auf ein anderes Speichermedium ausgelagert, um dringend benötigten Speicher für andere Clients freizugeben. Zur Kennzeichnung einer Javaklasse als Stateful Session Bean wird dieses Mal verwendet. Codebeispiel 3.4: Stateful Session Bean Wie bei den Stateless Beans verwaltet der Container auch die Stateful Beans. Genau wie bei der Stateless Bean ist hier ebenfalls ein Standardkonstruktor zur Initialisierung notwendig. Im Codefragment 3.4 ist kein Konstruktor definiert, was dem Standardkonstruktor gleich kommt. Er wird beim Fehlen eines Konstruktors vom Compiler erzeugt. Das Codebeispiel zeigt eine Beispielklasse einer Warenkorbanwendung und soll nur zur Veranschaulichung dienen. Um die Funktionsweise der Stateful Session Bean zu verstehen, müssen die einzelnen Zustände, die eine solche Bean einnehmen kann, betrachtet werden. In Abbildung 3.3 ist der Lebenszyklus mit den Übergängen in die einzelnen Zustände dargestellt.

12 Abbildung 3.3: Lebenszyklus einer Stateful Session Bean [EL07, S.59] Die ersten Zustände Does Not Exist und Method Ready sind fast gleich wie die der Stateless Bean. Im Does Not Exist -Zustand gibt es noch keine Instanz der Bean. Fordert ein Client Zugriff auf eine Business-Methode, initiiert der EJB-Container eine neue Instanz und überführt sie durch Abarbeitung der notwendigen Schritte in den Method Ready -Zustand. Hier fällt der erste Unterschied des Stateful-Lebenszyklus auf. Bei den hier beschriebenen Beans gibt es keinen Method-Ready-Pool, die Bean befindet sich lediglich im Zustand Method Ready, vgl. [Roz11, S.156]. Die Überführung in diesen Zustand verläuft aber nach dem gleichen Prinzip. Der EJB-Container ruft die newinstance()-methode der Klasse auf, injiziert per Dependency Injection gewünschte Ressourcen und ruft gegebenenfalls die Callback-Methode auf, welche über gekennzeichnet ist. Bereits nach der Dependency Injection und noch vor der optionalen Callback-Methode gilt: Im Gegensatz zu den zustandslosen Beans ist hier die Beaninstanz ab diesem Zeitpunkt fest mit einem Client verbunden [Roz11, S.156]. Nach Aufruf der PostConstruct-Methode befindet sich die Bean im Zustand Method Ready und ist bereit, Business-Methoden ihres zugeordneten Clients auszuführen. Befindet sich die Bean im Zustand Method-Ready, unterscheidet man zwischen zwei weiteren Möglichkeiten. Erste ist, der Client ruft eine Methode auf und wird mit den daraus resultierenden Ergebnissen versorgt. Ein weiterer Methodenaufruf erfolgt, doch es ist für den Client nicht unbedingt notwendig, beide Aufrufe in einem sicheren voneinander abhängigen Kontext auszuführen, in dem das Scheitern einer Methode ebenso zum Verwurf der Ergebnisse aus der anderen Methode führen würde. Ohne diesen Kontext, den als Transaktion bezeichnet wird, verbleibt die Bean-Instanz nach dem Methodenaufruf im Zustand Method Ready [EL11, S.63]. Die zweite Möglichkeit besteht darin, mehrere Methodenaufrufe in einer Transaktion zusammen zu fassen. Die Stateful

13 Bean-Instanz wird hierbei in den Zustand Method Ready in Transaction versetzt, welcher oben in der Abbildung aufgezeigt ist und verharrt dort, bis die Transaktion entweder durch einen commit oder einen rollback abgeschlossen wird. In diesem Zustand darf sie nicht außerhalb einer Transaktion oder nicht innerhalb einer anderen Transaktion gerufen werden als der, die zum Übergang in diesen Zustand führte [EL11, S.63]. Danach befindet sie sich wieder im Method Ready -Zustand. Im vorherigen Abschnitt wurde das Swapping-Verfahren als Management wichtiger Speicherressourcen erwähnt. Dieses Verfahren wird vom EJB-Container kontrolliert und durch den Passive -Zustand realisiert. Den Zeitpunkt einer Passivierung kann allerdings weder der Client noch der Entwickler der Bean bestimmen. Wenn ein Client die Business-Methoden einer Bean eine gewisse Zeit lang nicht mehr aufgerufen hat, erhöht sich die Wahrscheinlichkeit der Passivierung der Bean durch den Container. Dieser nutzt hierfür einen Algorithmus, der unter dem Namen LRU (Least Recently Used) bekannt ist, vgl. [Ora13, Part4], und wählt die am Längsten nicht mehr benutzen Bean- Instanzen aus. Bei den Stateful Session Beans gibt es hier aber vor der Passivierung die Möglichkeit, mit der Callback-Methode PrePassivate Vorkehrungen zu treffen. Aufgabe dieser Methode ist es, alle Attribute der Beanklasse, die nicht serialisierbar sind, freizugeben [Roz11, S.160]. Das ist deshalb wichtig, da die Passivierung auf der Java- Basis der Serialisierung arbeitet. Für dieses Konzept gilt, alle Instanzvariablen des Objektes müssen serialisierbar sein. Um primitive Datentypen muss sich der Entwickler hier nicht kümmern, doch müssen komplexe Datentypen das Interface Serializable implementieren, um auf diese Weise gespeichert werden zu können. Da bei Serialisierung der Stateful Bean der gesamte Objektgraph gespeichert wird, müssen die Referenzen der Referenzen ebenso serialisiert werden können, vgl. [BR07, S78]. Entscheidet sich der Container, eine Bean zu passivieren, bleibt diese solange im Zustand Passive, bis der Client die Bean durch einen Business-Methodenaufruf wieder nutzen möchte oder die maximale Lebenszeit (Timeout) der Session Bean überschritten ist. Ein Methodenaufruf auf eine passivierte Bean versetzt sie wieder in den Method Ready -Zustand. Wichtig zu betrachten ist aber das Überschreiten der maximalen Lebenszeit einer Bean- Instanz. Für jede Beaninstanz kann ein gewisser Session Timeout festgelegt werden. Über eine kann der Entwickler bestimmen, wann der EJB-Container eine Beaninstanz freigeben soll. Wird der zeitliche Rahmen überschritten, löst der Container die Verbindung zum Client und übergibt sie an den Garbage Collector. So wird verhindert, dass die Bean vom Container am Leben erhalten wird, die Verbindung zum Client aber schon längst unterbrochen wurde, vgl. [BR07, S. 85]. Findet ein Timeout während des Method Ready -Zustandes statt, ruft der Container die PreDestroy Callback-Methode auf, führt dort abschließende Anweisungen aus und entfernt die Bean. Ein Problem kann es allerdings geben, wenn sich die Bean nach dem Timeout im Passive -Zustand befindet, denn hier wird die PreDestroy Methode nicht mehr ausgeführt. Dem sollte durch Abbau aller Verbindungen zu externen Systemen in der PrePassivate Methode bei der Passivierung vorgebeugt werden, vgl. [EL11, S.67]. In diesem Falle stellt das Entfernen kein Problem mehr dar.

14 Eine Stateful Session Bean kann aber auch auf ordentliche Weise entsorgt werden. Dafür ist vorgesehen, welche über beliebigen auch mehreren Methoden in der Bean deklariert werden kann. Ruft ein Client eine solch gekennzeichnete Methode auf, kann der Container gegebenenfalls noch die PreDestroy Methode ausführen, vgl. [Ora13, Part4] und die Bean anschließend entsorgen. Um das Beschriebene besser nachvollziehen zu können, ist hier das Codebeispiel 3.5 abgebildet. Die WarenkorbBean aus Codebeispiel 3.4 wurde um eine Callback Methode erweitert, die vor der Passivierung ausgeführt wird. Zusätzlich wurde die bezahlen()-methode mit zum ordentlichen Beenden der Client/Beankonversation eingefügt. Codebeispiel 3.5: Stateful Session Bean Singleton Session Beans Die Singleton Session Bean ist die dritte Art der Session Beans. Ihr Lebenszyklus lässt sich als eine Kombination von Stateless und Stateful Session Beans beschreiben, vgl. [EL11, S.69]. Auffällig ist hier die Anzahl der möglichen Zustände. Sie sind identisch mit der der Stateless Beans. Doch der Unterschied liegt im Method Ready -Zustand. Von Singleton Beans gibt es keinen Pool, daher erinnert dieser Zustand an den der Stateful Session Beans. Im ersten Zustand Does Not Exist gibt es noch keine Instanz, wobei im zweiten Zustand genau eine Singleton Bean-Instanz pro Virtual Machine existiert. Es werden hier also alle Client-Anfragen von derselben Beaninstanz abgearbeitet [EL11, S.69]. Die Singleton Bean kann als ein zentraler Ort von Informationen gesehen werden, auf den alle Clients gleichzeitig zugreifen können, vgl [Roz11, S.179].

15 Bei dieser Bean gilt es einige Besonderheiten zu beachten. Von der Funktionalität gleicht die Singleton Session Bean den Stateless Beans, vgl. [Ora13, Part4]. Sie wird während ihrer Lebensdauer nicht einem bestimmten Client zugeordnet. Trotzdem bietet sie die Möglichkeit, in den Instanzvariablen Zustände zu speichern. Die Instanzvariablen einer solchen Bean stehen allen Clients zur Verfügung und werden bis zur Zerstörung der Bean erhalten. Um viele Clientanfragen gleichzeitig realisieren zu können, wird bei diesen Beans im Gegensatz zu den restlichen Beanarten das Konzept von Multi- Threading erlaubt. Hierbei muss der Entwickler auf die Gefahren des Multithreading- Konzepts achten und die Business-Methoden dementsprechend vor Fehlern wie z.b. Deadlocks sichern. In Abbildung 3.4 ist der Lebenszyklus der Singleton Session Bean zu sehen. Abbildung 3.4: Lebenszyklus einer Singleton Session Bean [EL11, S.70] Die deklariert eine solche Javaklasse als Singleton Session Bean. In Codebeispiel 3.6 wird eine solche Bean der Vollständigkeit halber aufgezeigt. Codebeispiel 3.6: Singleton Session Bean

16 Diese Singleton Bean implementiert ein Local-Interface und zählt die Anzahl vom Container erstellter Session Beans. Egal wie viele Clients auf die Instanz der Singleton Bean zugreifen, sie erhöhen alle dieselbe Variable. Dies zeigt, dass die Bean nicht nur einem Client zugeordnet ist. Über kann der Anwendungsentwickler die Bean aus Performancegründen vom Server direkt beim Serverstart initiieren lassen, vgl. [Roz11, S.183]. Diese Initiierung über bringt den Vorteil eines schnelleren ersten Zugriffs auf die Bean. Ohne diese Annotation wird die Bean mit dem ersten Client-Zugriff instanziiert. Dementsprechend nimmt der erste Aufruf aber mehr Zeit in Anspruch. 3.2 Entity Beans Die Entity Beans bilden die Schnittstelle zur dritten Schicht einer verteilten Anwendung, der Persistenzschicht, vgl. [Roz11, S.253]. Sie sind für die Abbildung von Objekten auf eine Datenbank verantwortlich. Die EJB-Technologie greift hier auf einen eigenständigen Persistenzstandard zu, der auch außerhalb einer Enterprise JavaBean-Anwendung genutzt werden kann und so konzipiert ist, dass er auch ohne JEE-Umgebung leben kann [EL11, S.86]. Die Java Community Expert Group entwickelte diesen Standard unter dem Namen Java Persistence API (JPA). Bei diesem Persistenzprinzip geht es darum, Objekte korrekt auf eine Tabelle einer Datenbank zu mappen. Prinzipiell kann solch eine Datenbankverwaltung und die Anbindung daran selbst geschrieben werden, doch soll der EJB-Standard dem Entwickler diesen technischen Aspekt abnehmen bzw. kompensieren. Mit dem Konzept der EJB-Persistenz wird dem Entwickler in großem Umfang auch das Schreiben von SQL-Befehlen abgenommen. Dafür bietet die JPA ein Persistenz-Framework, welches das O/R-Mapping (Objektrelationales Mapping) durchführt. Der Begriff Objektrelationalem Mapping beschreibt das Abbilden von Javaobjekten auf ein Tabellenschema einer relationalen Datenbank, umgekehrt das Strukturieren eines Objekts aus den Informationen einer Datenbanktabelle, vgl. [BR07, S.111]. Die JPA bietet die Vorteile, mit normalen Javaklassen nach dem POJO-Prinzip und mit Annotationen zu arbeiten. Zudem implementieren sie kein Interface und sind ohne diese Annotationen nicht einmal als Entity Beans zu erkennen, vgl. [Roz11, S.255]. Dementsprechend sind Entity Beans als normale Javaklassen zu handhaben. Jede Entity Bean, also eine dauerhaft speicherbare Javaklasse, repräsentiert eine Tabelle in einer relationalen Datenbank und jede Entity-Instanz verweist auf eine Reihe der jeweiligen Tabelle [Ora13, Part6]. Die Attribute einer Entität stellen dabei die Spalten einer Datenbanktabelle dar. Sowie in jedem Datensatz Entitäten durch einen Primärschlüssel referenzierbar sind, benötigt eine Entity-Bean einen Primärschlüssel. Dieser kann durch ein normales Attribut gegeben werden.

17 3.2.1 Aufbau der Entites Obwohl es sich um Plain Old Java Objects handelt, müssen trotzdem einige Standards gegeben sein. Eine Entity-Instanz muss einen öffentlichen Standardkonstruktor implementieren, darf selbst nicht als final deklariert sein oder final-attribute besitzen und soll zwecks Übergabe an Clients auch serialisierbar sein, vgl. [Ora13, Part6]. Ihre Attribute sollten über private-zugriffsberechtigung verfügen, um einen direkten Clientzugriff zu verhindern. Entity Beans werden über Annotationen gekennzeichnet und definiert. So kann der Entwickler mit einem minimalen Aufwand die Annotationen für das Mapping nutzen, oder alternativ selbst noch mit zusätzlichen SQL-Queries seine Anforderungen anpassen. Um eine Vorstellung für eine Entity Bean zu bekommen, ist in Codebeispiel 3.7 die Entität Artikel aufgeführt. Diese stellt einen Entity Bean passend zur weiter oben angegebenen Stateful Session Bean aus Codebeispiel 3.5 dar.

18 Codebeispiel 3.7: Entity Bean Artikel In diesem Beispiel ist über der Klasse zu sehen, welche die Javaklasse als Entity Bean kennzeichnet. Etwas weniger sinnvoll ist an dieser Stelle die mit dem name-attribut. Zur Veranschaulichung wurde diesem Attribut der Name Ware zugeteilt. Vom Standard der Java Persistence API werden Entity Beans wie in der Klasse definiert auf eine Tabelle abgebildet. Der Name der Datenbanktabelle ist beispielsweise der einfache Klassenname der Bean, die Namen der Spalten hingegen gleichen den Namen der in der Klasse definierten Attribute, vgl. [BR07, S.118]. Mit diesem name-attribut lässt sich dieser Standardname in einen anderen Namen ändern. Die Tabelle ist hier also unter dem Namen Ware zu finden. Da ein Datenbankeintrag über einen Primärschlüssel verfügen muss, wurde die Instanzvariable artikelid mit der beschrieben. Die JPA bietet hierfür die Möglichkeit, Primärschlüssel automatisch generieren zu lassen. Es muss keine Methode geschrieben werden, welche die Id mit jeder neuen Instanz inkrementiert und dabei sicherstellt, dass niemand die Id von außen verändern kann. Umgesetzt wird die automatische Generierung durch mit dem dazugehörigen strategy-attribut, das in diesem Fall auf GenerationType.AUTO eingestellt ist. Zusätzlich ist im Codebeispiel auf das kategorie-attribut angewandt. Über das aus der Programmiersprache Java bekannte Schlüsselwort transient werden Attribute von der Serialisierung ausgeschlossen. Den gleichen Effekt bringt Mit ihr markierte Instanzvariablen werden nicht auf die Datenbanktabelle abgebildet. Das zur Warenkorb Entity Bean gehörige SQL- Statement aus Codebeispiel 3.8 wird beim Mapping automatisch generiert.

19 Codebeispiel 3.8: SQL-Statement zum Kreieren der Tabelle Ware Das abgebildete Schema in der Datenbank ist hier wie in Abbildung 3.5 aufgebaut. Zu sehen sind die Spalten, benannt nach den implementierten Attributen der Entity Bean. Der Tabellenname wurde auf Ware festgelegt. Jede Zeile repräsentiert eine Objekt- Instanz. Über die genaue Funktionsweise von Datenbanken wird hier aber nicht weiter eingegangen. Ware artikelid bezeichnung preis 1 Gartenstuhl 34,95 2 Gartentisch 79,95 Abbildung 3.5: Datenbanktabelle Ware Verwaltung und Persistenzmanagement Im obigen Abschnitt wurde erklärt, wie eine Entität auf eine Datenbank abgebildet wird. Die JPA bringt die dafür notwendigen Standards und Automatismen mit sich. Dazu gibt es einige Begriffe und Funktionen, die im Folgenden erklärt werden und mit deren Hilfe das Persistieren erfolgen kann. Generell gilt: Ein neu angelegtes Entity-Objekt ist nicht automatisch persistent, und ein per Garbage Collection entferntes Entity-Objekt löschst nicht automatisch seine Repräsentation in der Datenbank [BR07, S.124]. Die ausführende Einheit wird als Entity-Manager bezeichnet. Er arbeitet dabei mit zwei weiteren Standards zusammen und bezieht aus ihnen Informationen über die Verwaltung der Entitäten. Diese sind der Persistenz-Kontext und die Persistenz-Unit. Der Entity- Manager stellt dem Entwickler verschiedene Methoden bereit, um mit Entitäten zu arbeiten. So kann der Entwickler in den Business-Methoden der Beans Befehle für bestimmte Operationen angeben. Über die Methode persist legt der Entity-Manager Entitäten in der Datenbank ab, die Methode find wird zum Laden von Entitäten aus der Datenbank verwendet, vgl. [EL11, S.92]. Der Persistenz-Kontext bestimmt, welche Entitäten vom Entity-Manager verwaltet werden sollen. Die Entitäten, die vom Persistenz-Kontext referenziert werden, werden vom Entity-Manager überwacht. Finden an solch erfassten

20 Entitäten Änderungen statt, schreibt oder aktualisiert der Entity-Manager diese automatisch zu einem von ihm bestimmten Zeitpunkt und gleicht sie mit der Datenbank ab, vgl. [BR07, S.124]. Entity-Manager bieten zusätzlich noch die flush-methode, über welche das sofortige Festschreiben der erfassten Änderungen möglich ist. Prinzipiell ist dies aber nicht nötig. Die Aufgabe der Persistenz-Unit besteht darin, welche Entitätstypen wie und auf welche Datenbank abgebildet werden [EL07, S.80]. Sie ist ein XML- Dokument, in dem die einzelnen Entity Beans mit Informationen über die Abbildung auf die Datenbank aufgelistet sind, vgl. [EL07, S.80], was aber weitestgehend schon über die Annotationen in der Bean festgeschrieben ist. Entsprechend der hier aufgezählten Funktionen ist der Entity-Manager das zentrale Medium zur Verwaltung von Entitäten. Um mit dem Manager arbeiten zu können, muss man eine Referenz auf diesen erhalten. Der EJB-Standard sieht hier das Konzept der Dependency Injection vor, die im Abschnitt der Session Beans aus dem Lebenszyklus bekannt ist. Eine Möglichkeit, Referenzen auf Komponenten in einem JEE-Server zu bekommen ist der JNDI-Dienst. Dependency Injection ist aber die weit einfachere Alternative zu JNDI, solange man Referenzen auf Komponenten innerhalb des JEE-Servers braucht, vgl. [EL07, S.173]. Bei der Dependency Injection greift die Bean auf den EJB- Context vom Container zu und besorgt sich die nötigen Ressourcen ohne einen komplizierten Lookup. So wird dem Server über eine die Aufgabe zugeteilt, den Entity-Manager einer Bean als Attribut zu injizieren, vgl. [EL11, S.95], sodass diese mit ihm arbeiten kann. Durch dieses Konzept der JPA wird dem Entwickler eine große Menge technischen Aufwands abgenommen. Der Entwickler kann sich mehr auf die Implementierung der Anwendungslogik konzentrieren und muss sich weniger mit dem Schreiben von SQL-Befehlen und Datenbankanbindungen befassen. 4. Vergleich EJB 2 und EJB 3 Die bisher beschriebenen Kapitel zum Thema Enterprise JavaBeans befassten sich soweit nicht anders erwähnt mit dem EJB-Standard 3.1. Zwischen den beiden Versionen 2.1 und 3.1 wurde die EJB-Technologie verbessert. Ein deutlich bemerkbarer Unterschied liegt in der Entwicklung der Annotationen. Während bei EJB 2.1 die Konfiguration und Verwaltung von Beans, Entitäten, Datenbanken und Ressourcen allein über den Deployment Descriptor möglich war, nutzt EJB 3.1 das Prinzip der Annotation. Alleine Aufgrund dieser Verbesserung des EJB-Standards gelang es, Entwicklern die Nutzung der EJB-Technologie zu erleichtern. Über den Deployment Descriptor mussten Entwickler vorher viel Zeit in XML-Dateien investieren und hier die Verwaltungsaufgaben definieren. Seit EJB 3.1 ist der Deployment Descriptor nicht mehr zwingend erforderlich. Er dient als Ergänzung zu den Annotationen. Der größte Unterschied zwischen den beiden Versionen liegt in der Umgestaltung der Persistenzschicht. Praktisch die gesamte Schicht wurde neu definiert [Roz11, S.267]. Dies wurde durch die Einführung der JPA ermöglicht. Vorher konnte der EJB-Standard Entitäten nicht automatisch verwalten oder über einen Entity-Manager auf die Daten-

21 bank abbilden. Namen von Tabellen und vieles mehr mussten im Deployment Descriptor definiert werden, vgl. [Roz11, S267], und SQL-Statements selbst geschrieben werden. Der Entwickler hatte praktisch eine Menge technischer Implementierungsarbeit mehr zu erledigen. Bei den Session Beans sind ebenso einige Änderungen vorzuweisen. Das Konzept von EJB 3.1 arbeitet laut Spezifikation mit normalen POJO s. In der Version 2.1 erfüllten Session Beans diesen Standard noch nicht. Der Vorteil davon ist, dass sich diese Beanklassen auch in einer anderen Umgebung als EJB, also z.b. in einer Java-SE- Anwendung mit grafischer Oberfläche, vgl. [Roz11, S.96], nutzen lassen. Dies lässt mehr Spielraum nach dem Prinzip der Wiederverwendbarkeit von Klassen zu. Des Weiteren musste bis EBJ 3.0 in einer Session Bean für einen Lokalen Zugriff ebenso ein Local-Interface implementiert werden. Seit EJB 3.1 wird eine Session Bean, die kein Interface nutzt, automatisch für einen Lookup innerhalb des JEE-Servers, also einen Local-Zugriff, freigegeben. Die Singleton Session Bean wurde erst mit EJB 3.1 eingeführt. Dieses Konzept war vorher in der EJB-Technologie gar nicht vorhanden. 5. Zusammenfassung Die EJB-Technologie ist eine gute Möglichkeit, verteilte Client-Server-Anwendungen zu schreiben. Mit Hilfe des EJB-Standards können Entwickler Anwendungen ohne große Kenntnisse in z.b. SQL oder Datenbankanbindungen schreiben. Durch die JEE- Spezifikationen wird dem Entwickler ein erheblicher Mehraufwand technischer Details abgenommen. Besonders die Einführung der Annotationen und der JPA mit der EJB Version 3.0 erleichtern das Erstellen solcher Anwendungen. Auch die Erweiterung der Beanklassen um die Singleton Session Bean ab Version 3.1 bietet Möglichkeiten, direkt beim Deployment der Applikationen Anweisungen auszuführen. Vielen Entwicklern war das Konzept vor Version EJB 3.0 zu komplex, da hier noch kein O/R-Mapping durch die JPA möglich war und jede Bean zusätzlich im Deployment Descriptor definiert werden musste. Dieser Aufwand ist heute nicht mehr gegeben. Allerdings sollte bei der Nutzung der EJB Technologie darauf geachtet werden, dass die Größe der Anwendung der Komplexität von EJB entspricht, da die Einarbeitung in Enterprise Java Beans zeitintensiv ist. Gerade in kleineren Web-Anwendungen ist hier die Frage nach der Effizienz gegeben. Daher bevorzugen viele Unternehmen für kleine Anwendungen Alternativen zu EJB, während bei komplexeren Applikationen die EJB-Technologie hingegen häufig eingesetzt wird.

22 6. Literaturverzeichnis [BR07] M. Backschat, B. Rücker: Enterprise JavaBeans 3.0 Grundlagen Konzepte Praxis; 2. Auflage; Spektrum Akademischer Verlag; München; 2007; ISBN [EL07] W. Eberling, J. Lessner: Enterprise JavaBeans 3 Praxisbuch für ein und Umsteiger; Hanser Verlag; München Wien; 2007; ISBN [El11] W. Eberling, J. Lessner: Enterprise JavaBeans 3.1 Praxisbuch für ein und Umsteiger; 2. Auflage; Hanser Verlag; München Wien; 2011; ISBN [Ora13] Oracle: Das Java EE 6 Tutorial; Januar 2013; Part-No: ; < ( ) [Roz07] U. Rozanski: Enterprise JavaBeans 3.0 mit Eclipse und JBoss; 1. Auflage; mitp Verlag; Heidelberg; 2007; ISBN [Roz11] U. Rozanski: Enterprise JavaBeans 3.1 Einstieg, Umstieg, Praxis und Referenz; 1. Auflage; Heidelberg; 2011; ISBN [Sta07] T. Stark: Java EE 5 Einstieg für Anspruchsvolle; Addison Wesley Verlag; 2007; ISBN

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

3. Stored Procedures und PL/SQL

3. Stored Procedures und PL/SQL 3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

icloud nicht neu, aber doch irgendwie anders

icloud nicht neu, aber doch irgendwie anders Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und

Mehr

4 Aufzählungen und Listen erstellen

4 Aufzählungen und Listen erstellen 4 4 Aufzählungen und Listen erstellen Beim Strukturieren von Dokumenten und Inhalten stellen Listen und Aufzählungen wichtige Werkzeuge dar. Mit ihnen lässt sich so ziemlich alles sortieren, was auf einer

Mehr

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

Mehr

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Bereich METIS (Texte im Internet) Zählmarkenrecherche Bereich METIS (Texte im Internet) Zählmarkenrecherche Über die Zählmarkenrecherche kann man nach der Eingabe des Privaten Identifikationscodes einer bestimmten Zählmarke, 1. Informationen zu dieser Zählmarke

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Lizenzierung von Windows Server 2012

Lizenzierung von Windows Server 2012 Lizenzierung von Windows Server 2012 Das Lizenzmodell von Windows Server 2012 Datacenter und Standard besteht aus zwei Komponenten: Prozessorlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

4. BEZIEHUNGEN ZWISCHEN TABELLEN

4. BEZIEHUNGEN ZWISCHEN TABELLEN 4. BEZIEHUNGEN ZWISCHEN TABELLEN Zwischen Tabellen können in MS Access Beziehungen bestehen. Durch das Verwenden von Tabellen, die zueinander in Beziehung stehen, können Sie Folgendes erreichen: Die Größe

Mehr

Windows 8 Lizenzierung in Szenarien

Windows 8 Lizenzierung in Szenarien Windows 8 Lizenzierung in Szenarien Windows Desktop-Betriebssysteme kommen in unterschiedlichen Szenarien im Unternehmen zum Einsatz. Die Mitarbeiter arbeiten an Unternehmensgeräten oder bringen eigene

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit

Mehr

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

Mehr

Online Banking System

Online Banking System Online Banking System Pflichtenheft im Rahmen des WI-Praktikum bei Thomas M. Lange Fachhochschule Giessen-Friedberg Fachbereich MNI Studiengang Informatik Erstellt von: Eugen Riske Yueksel Korkmaz Alper

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr

Die Dateiablage Der Weg zur Dateiablage

Die Dateiablage Der Weg zur Dateiablage Die Dateiablage In Ihrem Privatbereich haben Sie die Möglichkeit, Dateien verschiedener Formate abzulegen, zu sortieren, zu archivieren und in andere Dateiablagen der Plattform zu kopieren. In den Gruppen

Mehr

How to do? Projekte - Zeiterfassung

How to do? Projekte - Zeiterfassung How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...

Mehr

NEWSLETTER // AUGUST 2015

NEWSLETTER // AUGUST 2015 NEWSLETTER // AUGUST 2015 Kürzlich ist eine neue Version von SoftwareCentral erschienen, die neue Version enthält eine Reihe von Verbesserungen und neuen Funktionen die das Arbeiten mit SCCM noch einfacher

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

FlowFact Alle Versionen

FlowFact Alle Versionen Training FlowFact Alle Versionen Stand: 29.09.2005 Rechnung schreiben Einführung Wie Sie inzwischen wissen, können die unterschiedlichsten Daten über verknüpfte Fenster miteinander verbunden werden. Für

Mehr

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. Datenbank-Verschlüsselung mit DbDefence und Webanwendungen. In diesem Artikel werden wir Ihnen zeigen, wie Sie eine Datenbank verschlüsseln können, um den Zugriff einzuschränken, aber trotzdem noch eine

Mehr

Kurzanleitung. Zuordnung eines Moodle-Kurses in TUMonline

Kurzanleitung. Zuordnung eines Moodle-Kurses in TUMonline Kurzanleitung Zuordnung eines Moodle-Kurses in TUMonline Inhalt 1 Allgemeine Informationen... 2 2 Kategorie elearning zuordnen... 2 3 Wo ist die Kategorie nach der Zuteilung zu finden?... 4 4 Wann wird

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

HINWEISE ZUR ARBEIT IM LABOR

HINWEISE ZUR ARBEIT IM LABOR HINWEISE ZUR ARBEIT IM LABOR MIT GLASSFISH UND DERBY UNTER NETBEANS 1. Grundsätzliches: Auch weiterhin arbeiten Sie im SWE-Labor remote, d.h. auf einem Server. Ihre Entwicklungsumgebung Netbeans ist dort

Mehr

Hilfedatei der Oden$-Börse Stand Juni 2014

Hilfedatei der Oden$-Börse Stand Juni 2014 Hilfedatei der Oden$-Börse Stand Juni 2014 Inhalt 1. Einleitung... 2 2. Die Anmeldung... 2 2.1 Die Erstregistrierung... 3 2.2 Die Mitgliedsnummer anfordern... 4 3. Die Funktionen für Nutzer... 5 3.1 Arbeiten

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Handbuch. Adressen und Adressenpflege

Handbuch. Adressen und Adressenpflege Handbuch Adressen und Adressenpflege GateCom Informationstechnologie GmbH Am Glocketurm 6 26203 Wardenburg Tel. 04407 / 3141430 Fax: 04407 / 3141439 E-Mail: info@gatecom.de Support: www.gatecom.de/wiki

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit

Mehr

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC.

Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Anleitung Konverter Letzte Aktualisierung dieses Dokumentes: 14.11.2013 Der vorliegende Konverter unterstützt Sie bei der Konvertierung der Datensätze zu IBAN und BIC. Wichtiger Hinweis: Der Konverter

Mehr

Tevalo Handbuch v 1.1 vom 10.11.2011

Tevalo Handbuch v 1.1 vom 10.11.2011 Tevalo Handbuch v 1.1 vom 10.11.2011 Inhalt Registrierung... 3 Kennwort vergessen... 3 Startseite nach dem Login... 4 Umfrage erstellen... 4 Fragebogen Vorschau... 7 Umfrage fertigstellen... 7 Öffentliche

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit Relationship Manager / address manager Dateiabgleich im Netzwerk über Offlinedateien Dateiabgleich im Netzwerk über Offlinedateien

Mehr

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299

SEPA Lastschriften. Ergänzung zur Dokumentation vom 27.01.2014. Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 SEPA Lastschriften Ergänzung zur Dokumentation vom 27.01.2014 Workshop Software GmbH Siemensstr. 21 47533 Kleve 02821 / 731 20 02821 / 731 299 www.workshop-software.de Verfasser: SK info@workshop-software.de

Mehr

Fernzugriff auf Kundensysteme. Bedienungsanleitung für Kunden

Fernzugriff auf Kundensysteme. Bedienungsanleitung für Kunden inquiero Fernzugriff auf Kundensysteme Bedienungsanleitung für Kunden Bahnhofstrasse 1, CH-8304 Wallisellen Tel.: +41 (0)44 205 84 00, Fax: +41 (0)44 205 84 01 E-Mail: info@elray-group.com, www.elray-group.com

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 3 12.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: a)

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis Kommunikationsübersicht Inhaltsverzeichnis Kommunikation bei Einsatz eines MasterServer... 2 Installation im... 2 Installation in der... 3 Kommunikation bei Einsatz eines MasterServer und FrontendServer...

Mehr

Inkrementelles Backup

Inkrementelles Backup Inkrementelles Backup Im Gegensatz zu einer kompletten Sicherung aller Daten werden bei einer inkrementellen Sicherung immer nur die Dateien gesichert, die seit der letzten inkrementellen Sicherung neu

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen Stand: 13.12.2010 Die BüroWARE SoftENGINE ist ab Version 5.42.000-060 in der Lage mit einem Microsoft Exchange Server ab Version 2007 SP1

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Neue Schriftarten installieren

Neue Schriftarten installieren .DIE Neue Schriftarten installieren Die Informationen zu jeder Schriftart (Font) sind in jeweils einer Datei untergebracht, der sog. Font-Datei mit der Endung.ttf ttf steht für True Type Font und bedeutet,

Mehr

SE2-10-Entwurfsmuster-2 15

SE2-10-Entwurfsmuster-2 15 Architektur und Skalierbarkeit SE2-10-Entwurfsmuster-2 15 Skalierbarkeit Skalierbarkeit bedeutet die Anpassung einer Software an wachsende Last: Interaktionsfrequenz Nutzerzahl Anpassung durch Hinzufügen

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

ARCO Software - Anleitung zur Umstellung der MWSt

ARCO Software - Anleitung zur Umstellung der MWSt ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Speichern. Speichern unter

Speichern. Speichern unter Speichern Speichern unter Speichern Auf einem PC wird ständig gespeichert. Von der Festplatte in den Arbeitspeicher und zurück Beim Download Beim Kopieren Beim Aufruf eines Programms Beim Löschen Beim

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Anforderungen an die HIS

Anforderungen an die HIS Anforderungen an die HIS Zusammengefasst aus den auf IBM Software basierenden Identity Management Projekten in NRW Michael Uebel uebel@de.ibm.com Anforderung 1 IBM Software Group / Tivoli Ein Feld zum

Mehr

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern.

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Tutorial In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern. Zu Beginn müssen wir uns über die gewünschten Sprachen Gedanken machen. Zum einem, da eine professionelle

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Reporting Services und SharePoint 2010 Teil 1

Reporting Services und SharePoint 2010 Teil 1 Reporting Services und SharePoint 2010 Teil 1 Abstract Bei der Verwendung der Reporting Services in Zusammenhang mit SharePoint 2010 stellt sich immer wieder die Frage bei der Installation: Wo und Wie?

Mehr

Einfach A1. Anleitung A1 TV aufnehmen. A1.net. Bitte beachten Sie: Aufnahmen sind nur mit dem A1 Mediabox Recorder möglich.

Einfach A1. Anleitung A1 TV aufnehmen. A1.net. Bitte beachten Sie: Aufnahmen sind nur mit dem A1 Mediabox Recorder möglich. Anleitung A1 TV aufnehmen A1.net Einfach A1. Bitte beachten Sie: Aufnahmen sind nur mit dem A1 Mediabox Recorder möglich. Stand: November 2012 Der A1 Mediabox Recorder bietet Ihnen mehr Möglichkeiten.

Mehr

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird. Der Admin-Bereich im Backend Achtung: Diese Anleitung gibt nur einen groben Überblick über die häufigsten Aufgaben im Backend-Bereich. Sollten Sie sich nicht sicher sein, was genau Sie gerade tun, dann

Mehr

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe crm-now/ps Webforms: Webdesigner Handbuch Copyright 2006 crm-now Versionsgeschichte Version 01 2006-08-21 Release Version crm-now c/o im-netz Neue

Mehr

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten Seit Anfang Juni 2012 hat Facebook die Static FBML Reiter deaktiviert, so wird es relativ schwierig für Firmenseiten eigene Impressumsreiter

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Durchführung der Datenübernahme nach Reisekosten 2011

Durchführung der Datenübernahme nach Reisekosten 2011 Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

Mehr

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet. 1 TimeTrack! TimeTrack! Ist ein Softwareprodukt von The Project Group, welches der Erfassung von Ist- Aufwänden von Projekten dient. Voraussetzung hierfür ist allerdings, dass das Projekt vorher mit Microsoft

Mehr

DB2 Kurzeinführung (Windows)

DB2 Kurzeinführung (Windows) DB2 Kurzeinführung (Windows) Michaelsen c 25. Mai 2010 1 1 Komponenten von DB2 DB2 bietet zahlreiche graphische Oberflächen für die Verwaltung der verschiedenen Komponenten und Anwendungen. Die wichtigsten

Mehr

Elexis-BlueEvidence-Connector

Elexis-BlueEvidence-Connector Elexis-BlueEvidence-Connector Gerry Weirich 26. Oktober 2012 1 Einführung Dieses Plugin dient dazu, den Status Hausarztpatient zwischen der BlueEvidence- Anwendung und Elexis abzugleichen. Das Plugin markiert

Mehr

ARAkoll 2013 Dokumentation. Datum: 21.11.2012

ARAkoll 2013 Dokumentation. Datum: 21.11.2012 ARAkoll 2013 Dokumentation Datum: 21.11.2012 INHALT Allgemeines... 3 Funktionsübersicht... 3 Allgemeine Funktionen... 3 ARAmatic Symbolleiste... 3 Monatsprotokoll erzeugen... 4 Jahresprotokoll erzeugen

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele: 2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Configuring Terminal Services o Configure Windows Server 2008 Terminal Services RemoteApp (TS RemoteApp) o Configure Terminal Services Gateway

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

Session Beans & Servlet Integration. Ralf Gitzel

Session Beans & Servlet Integration. Ralf Gitzel s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Aufbau einer Stateless s Stateful s Web Client Offene Antwort von

Mehr

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Excel-Schnittstelle Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können. Voraussetzung: Microsoft Office Excel ab Version 2000 Zum verwendeten Beispiel:

Mehr