Java Portlets. Seminararbeit. Technischen Universität Wien. Die Spezifikation und deren Anwendung

Größe: px
Ab Seite anzeigen:

Download "Java Portlets. Seminararbeit. Technischen Universität Wien. Die Spezifikation und deren Anwendung"

Transkript

1 Technische Universität Wien Seminararbeit Java Portlets Die Spezifikation und deren Anwendung ausgeführt am Institut für Softwaretechnik und Interaktive Systeme der Technischen Universität Wien durch Peter Gerstbach Mat.Nr.: Alexander Trieb Mat.Nr.: Mai 2004

2 Abstract Unternehmen setzten im Inter- und Intranet seit Jahren Portale ein, um die Informationsflut zu bewältigen, doch das Fehlen von Standards machte Portal-Projekte inkompatibel und kostspielig. Seit Oktober 2003 existiert nun der JCP-Standard Java Portlets, der dieses Problem in der Java-Welt beseitigen soll. Diese Arbeit gibt einen Überblick über die Konzepte der Spezifikation, beschreibt die Integration in vorhandenen Anwendungen und gibt einen Überblick über freie und kommerzielle Angebote, die den Standard implementieren. ii

3 Inhaltsverzeichnis 1 Einleitung 1 2 Spezifikation Portal Definition Portlet Portlet Container Portlet Life Cycle Instanzierung Initialisierung Portlet Window Anfrage-Behandlung Beenden PortletURL Portlet URL Modes Portlet Parameter Portlet URL Erweiterungen Portlet Modes VIEW Mode EDIT Mode HELP Mode CUSTOM Mode Portlet Requests Request Parameter Request Attribute Request Properties Request Security Weitere Eigenschaften Portlet Response Response Properties Action Responses Render Responses URL Encoding iii

4 Inhaltsverzeichnis 2.7 Packaging und Deploying Packaging Portlet Deployment Descriptor PortletConfig PortletContext PortletPreferences PortletSession UserInformation PortletCaching PortletSecurity Security Constraints TagLibs Integration Servlet Integration JSP Integration ActionURL RenderURL Web Service Remote Portlet Integration Prozessablauf Systemumgebung Kommerzielle Anbieter OracleAS 10g Portal Sybase Enterprise Portal Sun Microsystems Java Enterprise Solution IBM WebSphere Portal BEA Systems WebLogic Portal Freie Anbieter Jakarta Pluto Jetspeed Empfehlung Case Study Überblick Installation und Konfiguration Architektur Test Suite Fazit 35 iv

5 1 Einleitung Seit Anfang des Internets war die Notwendigkeit gegeben, diversifizierte Informationen für die verschiedenen Anwender effizient, übersichtlich, personalisiert und organisiert zur Verfügung zu stellen. Daraus ergab sich der Bedarf für Portalsysteme. Dieser Bedarf war durch einzelne Haushalte bis hin zu Unternehmen, die produkt- und dienstleistungsbezogene Informationen anbieten wollten, gegeben. Durch die Notwendigkeit, maßgeschneiderte Informationen anzubieten, wurden verschiedenste Technologien entwickelt, die den Aufbau von solchen Systemen effektiver und kostengünstiger gestalten. Erst seit kurzem wurde von dem Java Community Process ein Java Specification Request (JSR) erstellt, der genau diesen Bedarf abdecken soll. Jetzt als JSR 168 bekannt, wurde die Spezifikation als eine Erweiterung der bekannten Java Servlets Technologie erstellt. Diese neue Spezifikation beschreibt eine neue, auf Java basierende Technologie namens Java Portlets. Um ein besseres Verständnis für die technischen Möglichkeiten des Java Portlets Frameworks zu gewinnen, werden wir im ersten Kapitel eine detaillierte Analyse der Spezifikation durchführen. Im zweiten Kapitel werden wir die verschiedenen Integrationsmöglichkeiten, die Java und das Portlets Framework anbieten, analysieren (z.b. Java Server Pages und Servlets, Web Service Integration). Erst wenn innerhalb der IT Community ein neues Framework akzeptiert wird, entsteht der Wert dieser neuen Technologie. Deswegen werden wir in einem weiteren Kapitel nach existierenden bzw. zukünftigen Systemumgebungen forschen, die das Java Portlets Framework unterstützen. Um auch einen besseren Einblick über das Potenzial dieses Ansatzes zu bekommen, werden wir nicht nur die kommerziellen Produkte (wie z.b. BEA WebLogic, IBM WebSphere, etc.) sondern auch die Open Source Ansätze (z.b. der Apache Software Foundation) betrachten. In einem weiteren Kapitel werden wir anhand der Referenzimplementierung die Integration eines einfachen Portlets zeigen. Nach einer genauen Analyse der Spezifikation, einem Vergleich mit anderen Lösungsansätzen und Technologien, einer Präsentation verschiedener existierender bzw. zukünftiger Systemumgebungen und einem Implementierungsbeispiel, werden wir unsere Ergebnisse und Erkenntnisse diskutieren. Daraus wird dann eine Schlussfolgerung die Potenziale dieses neuen Ansatzes zeigen. 1

6 1 Einleitung 2

7 2 Spezifikation 2.1 Portal Definition Ein Portal ist eine web-basierte Applikation, die auf Aggregation personalisierter Inhalte beruht. Das Portal erlaubt einem Benutzer bei einmaligem Anmelden, von mehreren Informationsquellen Informationen zur Verfügung gestellt zu bekommen. Ein Portal kann in anspruchsvoller Weise an verschiedene Benutzer und Geräte angepasst werden Portlet Ein Portlet ist ein Teil einer Portal Seite. Genauer gesehen ist ein Portlet ein auf die Präsentationsebene gerichtetes Objekt, das entweder statischen oder dynamischen Inhalt erzeugen bzw. anzeigen kann. Portlets werden von Portal Systemen als eine pluggable user interface Komponente gesehen, die als Präsentationsebenen zu existierenden Informationssystemen dienen. [1, Seite 13] Der Inhalt, der von einem Portlet generiert wird, wird als Fragment bezeichnet. Ein Fragment bezieht sich auf einen Teil einer Markup-Sprache (z.b. HTML, XML) und kann wieder aus mehreren Fragmenten bestehen. Die Aggregation von diesen Portlets bildet eine Portal Seite. Portlets werden durch Request/Response-Methoden angesprochen und reagieren dementsprechend darauf. Die Eigenschaften eines Portlets (z.b. Window State) sowie der Inhalt können verändert werden Portlet Container Der Portlet Container, ähnlich wie der Servlet Container, kontrolliert und verwaltet die einzelnen Portlets. Die Requests, die von einem bestimmten Client stammen, werden vom Portlet Container an das notwendige Portlet weitergeleitet. Der Portlet Container verwaltet auch die Erzeugung so wie die Zerstörung der einzelnen Portlets. 2.2 Portlet Life Cycle Ein Portlet kann sich in verschiedenen Phasen befinden, diese Phasen werden durch den Lebenszyklus definiert. Wir werden diesen Zyklus kurz beschreiben, um einen besseren Überblick des gesamten Ansatzes zu gewährleisten. Dieser Zyklus besteht 3

8 2 Spezifikation Abbildung 2.1: Elemente eines Portals [1, Seite 19] grundsätzlich aus dem Aufruf der init, processaction, render und destroy Methoden Instanzierung Der Portlet Container ist für das Laden und die Instanzierung des einzelnen Portlets verantwortlich. Der Container darf entscheiden, wann das einzelne Portlet geladen werden soll. Entweder wird das Portlet beim Beginn der Portlet Applikation geladen oder erst nachdem eine Anfrage an den Portlet Container geschickt wurde. Durch den ClassLoader wird das Portlet Object geladen und instanziert, aber für die Portlet Applikation noch nicht freigeben Initialisierung Nachdem der Portlet Container das Portlet instanziert hat, muss das Portlet zuerst initialisiert werden um Anfragen annehmen und ausführen zu können. Dies entspricht eigentlich nur dem Aufruf der init Methode. Hier kann dann das Portlet verschiedene von ihm benötigten Ressourcen initialisieren und für die Dauer des Portlets zur Verfügung stellen. Es ist aber zu beachten, dass der Portlet Container ein eindeutiges PortletConfig Objekt an das Portlet weitergeben muss. Innerhalb dieses Objekts 4

9 2.2 Portlet Life Cycle Abbildung 2.2: Generierung der Portalseiten [1, Seite 20] befinden sich Informationen bezogen auf verwendbare Ressourcen, Initialisierungsparameter und alles andere, was in dem Portlet Deployment Descriptor definiert werden kann Portlet Window Die Definition eines Portlets kann eine Liste von Voreinstellungen enthalten (Portlet- Preferences). Das Portlet passt den Aufbau der Informationen oder sein Verhalten an diese Voreinstellungen an und kann sie lesen, modifizieren oder neue Werte hinzufügen. Die Kombination eines Portlets mit dem PortletPreferences-Objekt wird als Portlet Window bezeichnet Anfrage-Behandlung Nachdem ein Portlet initialisiert wurde, wird es für die Behandlung der Anfragen (Request Handling) freigegeben. Die Portlet Spezifikation unterscheidet zwischen einem RenderRequest und einem ActionRequest (genaue Beschreibung befindet sich im Abschnitt 2.5 Portlet Request). Diese verschiedenen Arten von Anfragen erlauben, dass das Verhalten eines Portlets genau gesteuert werden kann. Sie werden durch die render und processaction Methoden aufgefangen und weiter verarbeitet. Anfragen werden durch PortletURLs (siehe PortletURL) ausgelöst. Normalerweise wird zuerst ein ActionRequest des betroffenen Portlets ausgelöst, danach wird von jedem der nicht betroffenen Portlets ein RenderRequests aufgerufen. Falls Caching eingeschaltet ist, kann der Portlet Container selbst entscheiden, ob die Notwendigkeit die render Methode auszulösen gegeben ist oder die benötigte Information einfach aus dem Cache gelesen und zurückgeschickt werden kann. Implementierungen der Response und Request Objekte müssen nicht Thread-sicher sein. 5

10 2 Spezifikation Abbildung 2.3: Portlet Request Handling Sequence [1, Seite 25] Beenden Ein Portlet Container ist nicht gezwungen, ein Portlet für einen bestimmten Zeitraum am Leben zu erhalten. Die Lebensdauer eines Portlets kann zwischen ein paar Millisekunden und einem beliebigen Zeitraum variieren. Falls ein Portlet Container entscheidet, ein Portlet beenden zu müssen, wird die destroy Methode des Portlets aufgerufen. Nachdem ein Portlet zerstört wurde, darf der Portlet Container keine weiteren Anfragen an dieses Portlet weiterleiten. Der Portlet Container darf nur neue Portlet Instanzen aufbauen, jedoch zerstörte Portlets nicht wiederbeleben. Nachdem ein Portlet zerstört wurde, muss es für den Garbage Collector zur Verfügung gestellt werden. 2.3 PortletURL Ein wichtiger Aspekt der Portlets ist die Verknüpfung mit sich selbst oder anderen Portlets (z.b. Formulare oder externe Resourcen). Dies wird, wie in HTML und HTTP üblich, via URLs erledigt. Hier stellt die Java Portlet Spezifikation das Konzept der 6

11 2.3 PortletURL PortletUrls vor. PortletUrls sind einfach neue Client Requests, die von einem URL (z.b. Link oder Formular) innerhalb eines Portlets stammen. Da diese Requests wiederum spezielle Portlet Requests sind, müssen diese URLs, die sich innerhalb eines Portlets befinden, durch ein PortletUrl Objekt erzeugt werden. Hier gibt es verschiedene PortletUrl Modes, die, basierend auf dem Requesttyp, angepasst werden müssen Portlet URL Modes PortletUrl Objekte werden durch das RenderResponse Interface erzeugt. Hierbei muss der Programmierer überlegen, was für ein PortletUrl Objekt benötigt wird. Bei der Verwendung von Formularen sollte der Porletsprogrammierer nur die POST- Methode benützen, da die GET-Methode nicht von der Portletspezifikation unterstützt wird. Action URL s: Wie schon erwähnt wurde gibt es zwei verschiedene Arten von Requests. Ein Action URL wird durch die createactionurl Methode erzeugt. Dies wiederum ruft die processaction() und nicht die render() Methode auf. Action URL s sollten verwendet werden, falls eine Weiterleitung an ein anderes Portlet oder eine externe Website durchgeführt werden sollte, ebenso, wenn man den PortletMode oder den WindowState ändern möchte, wenn die persistenten Daten geändert, hinzugefügt oder gelöscht, so wie die Render-Parametern gesetzt werden sollen. Render URL s: Render URL s werden durch die createrenderurl Methode erzeugt. Dieser URL Typ wiederum ruft die render() Methode von einem Portlet auf. Render URL s sollten für nicht-idempotente (nicht immer die Selben) Tätigkeiten verwendet werden, da das Portletverhalten (u.a. Error Caching, Cache Expirations) den generierten Inhalt verändern kann. Weiters sollten Render URL s nicht in Formularen verwendet werden, da es sein kann, dass der Portlet Container Formular-Parameter einfach ignoriert Portlet Parameter PortletUrl Objekte können durch eine vom Programmierer definierte Parameterliste erweitert werden. Die Codierung der Parameter wird für den Programmierer transparent durchgeführt, muss aber vom Portlet Container als x-www-form-urlencoded codiert werden Portlet URL Erweiterungen PortletUrl s können auch den PortletMode und den WindowState des Portlets kontrollieren. Um die Sicherheit zu gewährleisten, können Programmierer PortletUrl s 7

12 2 Spezifikation entweder als https oder http URL s erstellen. 2.4 Portlet Modes Ein Portlet Mode beschreibt die Funktion, die ein Portlet gerade ausübt, die aber ohne weiteres auch programmtechnisch geändert werden kann. Weiters können Portlet Modes auch benutzerabhängig definiert werden. Es gibt von der Spezifikation aus drei default modes, in der sich ein Portlet befinden kann, und die Möglichkeit eigene Modi zu definieren VIEW Mode Die vorgeschriebene Funktionalität eines Portlets, das sich im View Mode befindet, ist Markup anzuzeigen. In diesem Fall ist Markup als HTML oder XHTML Output definiert, könnte aber in weiterer Folge auch andere Ausgabeformate unterstützen. Der Inhalt dieses Markups kann entweder als statische Information dargestellt werden oder mehrere Seiten enthalten, um Interaktion mit dem Benutzer zu ermöglichen. Der VIEW Mode muss von einem Portlet unterstützt werden EDIT Mode Innerhalb dieses Modus kann ein Benutzer die Logik und den Inhalt bestimmen bzw. verändern. Im EDIT Modus kann der Benutzer auch auf mehreren Seiten Änderungen vornehmen. Typischerweise können innerhalb des EDIT Modus die Einstellungen des Portlets vom Benutzer verändert werden. Im Gegensatz zu dem VIEW Mode muss der EDIT Mode nicht vom Portlet unterstützt werden HELP Mode Dieser Modus erlaubt dem Benutzer nähere Informationen über das Portlet zu erhalten. Die Information kann entweder ein statischer Text sein oder ein context-sensitiver Text. Wie beim EDIT Mode muss der HELP Mode vom Portlet nicht unterstützt werden CUSTOM Mode Portlet Lieferanten können auch eigene Modes definieren. Dies erlaubt eine gewisse Flexibilität, die besonders für den Programmierer einen Vorteil darstellt. Diese CU- STOM Modes müssen innerhalb des Deployment Descriptors definiert werden. Die Portlet Spezifikation beschreibt einige vordefinierte CUSTOM Modes, die nicht unbedingt von einem Portlet Anbieter implementiert bzw. angeboten werden müssen. Folgende Beispiele für CUSTOM Modes sind gegeben: 8

13 2.5 Portlet Requests About Mode: Stellt Information über ein Portlet dar. Config Mode: Administrative Funktionalität für Portlets, die als nonmodifiable im Deployment Descriptor definiert wurden. Preview Mode: Erlaubt dem Entwickler in der Design-Phase das Portlet zu rendern, ohne dass eine Back-End Verbindung zu den Daten besteht. Print Mode: Erlaubt dem Benutzer, den Inhalt in einem druckerfreundlichen Format anzuzeigen. Um Portlet Modes für das jeweilige Portlet zu definieren, müssen alle erlaubten Modes im Deployment Descriptor angegeben werden. Da der VIEW Mode für jedes Portlet erlaubt werden muss, wird es für die Definition nicht benützt. Die verschiedenen Modes eines Portlet werden im Deployment Descriptor folgendermaßen definiert: <portlet-app>... <portlet>... <supports>... <portlet-mode>print</portlet-mode> </supports> </portlet>... <!-- Falls ein Custom Mode --> <custom-portlet-mode>... <name>print</name> </custom-portlet-mode> </porlet-app> 2.5 Portlet Requests Eines der wesentlichen Bestandteile der Portlet Infrastruktur ist die Art und Weise, Client Requests zu handhaben. Requests werden als Request Objekte interpretiert, wobei alle notwendigen Informationen (u.a. Parameter, Portlet Mode, Window State, etc.) innerhalb des Objekts vorhanden sein müssen. Das Request Objekt wird zu der processaction() und der render() Methode eines Portlets geschickt. Grundsätzlich gibt es innerhalb des Portlet Frameworks zwei Arten von Request Objekten, die wiederum vom PortletRequest Interface abgeleitet werden: 9

14 2 Spezifikation ActionRequests RenderRequests Request Parameter Falls ein Client Request existiert, der sich auf das eigene Portlet bezieht, müssen alle Request Parameter innerhalb des erstellten PortletURL Objekts definiert werden. Es dürfen keine ActionRequest Parameter an ein RenderRequest propagiert werden. Die RenderRequest Parameter können entweder durch ein ActionRequest mit den setrenderparamters() Methoden erstellt werden oder innerhalb des RenderURLs Objekts. Render Parameter werden innerhalb eines PortletRequests als ein Name-Value Paar gespeichert. Diese können dann durch folgende Methoden verwendet werden: getparameter getparameternames getparametervalues getparametermap Zusätzlich erlauben Portlets selbstdefinierte Parameter zu setzten, um den PortletURLs weitere container-routing oder Request-Handling-Möglichkeiten zu gewährleisten. Für die Kodierung der erweiterten Parameter ist der Portlet Container zuständig. Diese müssen mit dem Präfix javax.portlet. gekennzeichnet werden Request Attribute Request Attributes erlauben dem Portletprogrammierer die Möglichkeit mit externen JSP oder Servlets zu kommunizieren. Es darf aber nur ein Wert pro Attribut gespeichert werden. Folgende Methoden werden für die Verwendung dieser Attribute bereit gestellt: getattribute getattributes setattribute removeattribute 10

15 2.5 Portlet Requests Request Properties Der Portlet Programmierer kann durch die Request Properties Informationen über Portlets/Portlet-Container oder sogar HTTP Headers bekommen. Der Zugriff auf HTTP Header Properties ist aber Voraussetzung der Spezifikation und kann deshalb bei verschiedenen Anbietern variieren. Mit den folgenden Methoden kann ein Portlet Programmierer Zugriff auf Portlet Properties bekommen: getproperties getproperty getpropertyname Request Security Da in allen heutigen IT-Projekten Rücksicht auf die Sicherheit genommen werden muss, gibt es portlet-spezifische Sicherheitsmaßnahmen. Innerhalb eines Portlet Request Kontext werden folgende Methoden angeboten: getauthtype getremoteuser getuserprincipal isuserinrole issecure Es gibt 4 grundlegende Authentifizierungsschemas. Diese basieren auf existierende default Typen (BASIC AUTH, DIGEST AUTH, CERT AUTH, und FORM AUTH). Die Möglichkeit anbieterspezifische Authentifizierungsmethoden implementieren zu können ist auch gegeben Weitere Eigenschaften Die Anzahl der Erweiterungen der Portlet Requests ist zu groß um hier komplett aufgelistet zu werden. Wichtige Erweiterungen werden unten kurz beschrieben. Internationalization: Die getlocale Methode ist innerhalb des PortletRequest Objekt vorhanden und dient somit dem Portlet Programmierer die Internationalisierung des Portlets besser zu gestalten. 11

16 2 Spezifikation Portlet Modes und Window States: Durch die angebotenen Methoden getportletmode und getwindowstate ist es möglich, innerhalb eines Requests den Mode und Window State vom Portlet zu bekommen. Upload Data: Portal Programmierer können auch Dateien jeglicher Art von einem Benutzer durch die getportletinputstream oder getreader Methode bekommen. Der Lebenszyklus eines Portlet Requests besteht nur innerhalb des processaction oder render Rahmen. Falls ein Portlet Programmierer das Request Objekt ausserhalb dieses Rahmen verwenden möchte, kann es zu nicht deterministischen Nebenwirkungen kommen. Jedoch lehnt die Spezifikation dem Programmierer diese Implementierungsentscheidung ab. 2.6 Portlet Response Das PortletResponse Objekt dient dazu, alle Informationen (z.b. Titel, Inhalt, Weiterleitung, Portlet Mode Änderung usw.) an den Portal-Container bzw. an ein Portlet zurück zu schicken. Dieses Objekt wird an die processaction oder render zurück gegeben. Das PortletResponse Objekt dient als Interface für die ActionResponse und RenderResponse Objekte Response Properties Wie bei den PortletRequest Objekten kann der Programmierer eigene Eigenschaften an das Portal bzw. den Portlet-Container übergeben. Diese werden mit folgenden Methoden gesetzt: setproperty addproperty Action Responses Um konsistent mit dem Portlets Framework zu sein gibt es unterschiedliche Response Typen. Das ActionResponse Objekt dient dazu, um Weiterleitungen durchzuführen oder Window States zu ändern so wie Render Parameter zu setzen. Weiterleitungen werden mit der setredirect Methode ausgeführt. Portlet Modes und Window States werden mit den setportletmode und setwindowstate Methoden festgelegt. Dabei muss beachtet werden in welcher Reihenfolge die verschiedenen Methoden aufgerufen werden, ansonsten wird eine Exception ausgelöst. 12

17 2.7 Packaging und Deploying Render Responses Dieser Response Typ erlaubt dem Portlet Programmierer den Portlet Titel so wie den Portlet Inhalt zu gestalten. Dabei muss sichergestellt werden, dass die setcontenttype Methode aufgerufen wird, um den Inhaltstyp zu definieren. Außerdem ist es möglich, jegliche Information an den Client zu schicken. Durch die Verwendung von entweder einem OutputStream oder einem Writer Objekt können verschiedene Inhalte an den Client geschickt werden. Der Response kann zuerst in einen Buffer (dies ist dem Programmierer überlassen, wird aber aus Effizienzgründen bevorzugt) geschrieben werden, wobei folgende Methoden zur Verfügung stehen: getbuffersize setbuffersize iscommitted reset resetbuffer flushbuffer Die Buffergröße kann vom Programmierer festgelegt werden, wobei der Buffer den Inhalt an den Client schickt, entweder wenn er voll ist oder wenn die flushbuffer Methode aufgerufen wird URL Encoding Da Portlets mit JSP oder Servlets erweitert werden können, ist es möglich, verschiedene implementations-spezifische Daten an die verschiedenen Komponenten zu schicken. Dies wird durch die encodeurl Methode verwirklicht. Dadurch ist es möglich, Session ID s oder Portlet spezifische Daten an Servlets oder den JSPs zu übergeben. 2.7 Packaging und Deploying Packaging Portlets sind vollständige Applikationen, die ohne zusätzliche Ressourcen lauffähig sein sollen. Deswegen werden alle Ressourcen in einem Web Application Archive (WAR) gespeichert, aus dem der Portal-Server alle benötigten Konfigurationen und den Quellcode erhält. Das Web Application Archive ist genauso aufgebaut wie in der Servlet-Spezifikation [2] beschrieben: 13

18 2 Spezifikation einzelne Ressourcen, wie JSPs und Bilder ein WEB-INF Verzeichnis mit web.xml lib-verzeichnis mit zusätzlichen JARs classes-verzeichnis mit den Servlet und Portlet-Klassen Wie schon in den vorigen Kapiteln häufig erwähnt, gibt es zusätzlich zur Konfigurationsdatei web.xml auch noch die Konfigurationsdatei portlet.xml. Sie heißt Portlet Deployment Descriptor und enthält nur die portletspezifischen Einstellungen Portlet Deployment Descriptor Der Portlet Deployment Descriptor portlet.xml kann zwei Arten von Definitionen enthalten: Definitionen der gesamten Portalanwendung Definitionen der einzelnen Portlets Zu den Portal Definitionen gehören einige schon besprochene Konfigurationsdaten, wie custom-portlet-mode, user-attribute und security-constraint. Neben diesen Einstellungen, die für das gesamte Portal gültig sind, gibt es Einstellungen für ein oder mehrere Portlets, die ebenfalls teilweise schon besprochen wurden: portlet-name, initparams oder auch portlet-preferences. Der Portlet Deployment Descriptor unterstützt auch Localization, so können beispielsweise unterschiedliche Sprachen für die Beschreibung von Portlets verwendet werden: <display-name xml:lang="en">time Zone Clock Portlet</display-name> <display-name xml:lang="de">zeitzonen-portlet</display-name> Der Einfachkeit halber können diese Informationen auch in eigenen Ressource- Bundles abgespeichert werden, die den üblichen Aufbau von Java-Properties haben. 2.8 PortletConfig Das Interface PortletConfig stellt Methoden zur Verfügung, um ein Portlet-Objekt konfigurieren zu können. Es ist ähnlich aufgebaut, wie das Interface ServletConfig der Servlet-Spezifikation. 14

19 2.9 PortletContext Die Methode getportletcontext gibt den PortletContext der Portlet- Anwendung zurück. Mit den Methoden getinitparameternames und getinitparameter kann auf Initialisierungparameter, die im Deployment-Deskriptor angegeben werden können, zugegriffen werden. Die Methode getportletname gibt den Namen des Portlets zurück, der im Deployment-Deskriptor über den portlet-name eingestellt werden kann. Weiters kann auf ResourceBundles zugegriffen werden, die im Deployment Deskriptor definiert werden können (siehe Abschnitt 2.7). 2.9 PortletContext Das Interface PortletContext definiert die Sicht eines Portlets auf die Portal- Anwendung, in der es läuft. Es bietet Methoden an, um Ereignisse zu protokollieren, um auf anwendungsweite Ressourcen zuzugreifen und um Attribute zu lesen und zu setzten, auf die andere Portlets und Servlets der Anwendung zugreifen können. Für jede Portalanwendung existiert genau ein PortletContext-Objekt. Da eine Portal-Anwendung eine erweiterte Webanwendung ist, hat auch jede Portal- Anwendung einen ServletContext. Intern leitet der PortalContext manche Anfragen direkt an den ServletContext weiter, denn alle Servlets und Portlets teilen sich die kontextübergreifende Parameter. Beispielsweise müssen die in der web.xml definierten Initialisierungsparameter über den PortletContext die gleichen Werte zurückliefern, wie über den ServletContext. Das gleiche gilt auch für Kontextattribute. Dadurch ist es möglich, Daten zwischen Portlets und Servlets bzw. JSPs zu teilen PortletPreferences Üblicherweise können Benutzer Portlets an ihre eigenen Bedürfnisse anpassen und diese Einstellungen speichern. Bei einem Wetter-Portlet wäre es z.b. wünschenswert die Einheit der Temperatur, also z.b. F für Fahrenheit oder C für Celsius, pro Benutzer speichern zu können. Diese Funktionalität übernimmt das Interface PortletPreferences. Es kann einfache Konfigurationsdaten speichern, ist jedoch nicht als Ersatz für komplexere Einstellungen gedacht, die nach wie vor in Datenbanken gespeichert werden sollen. Die Speicherung erfolgt über Schlüssel-Wert Paare, wobei sowohl der Schlüssel als auch der Wert vom Typ String sein muss. Es können jedoch einem Schlüssel auch mehrere Werte zugeordnet werden. Weiters kann auf Werte auch nur eine lesende Zugriffmöglichkeit eingestellt werden. Zugriffsmethoden sind u.a. getnames, getvalue, setvalue, getvalues, setvalues, die die Namen der Schlüssel und den (ersten) Wert bzw. die Werte des Schlüssels zurückliefern. 15

20 2 Spezifikation Die Methode reset kann dazu verwendet werden, die Einstellungen auf den Standard-Wert zurückzusetzen. Die Methode store speichert das Preferences-Objekt transaktionssicher. Folgendes Listing zeigt einen möglichen Eintrag von Einstellungen im Deployment Deskriptor: <portlet>... <portlet-preferences> <preference> <name>units</name> <value>c</value> <value>f</value> </preference> </portlet-preferences> </portlet> Auf die Einträge kann in folgender Weise zugegriffen werden: PortletPreferences prefs = req.getpreferences(); String[] units = prefs.getvalues("units", null); 2.11 PortletSession Um sinnvolle Portale bauen zu können, müssen die einzelnen Anfragen eines Clients als zusammengehörig erkannt werden. Um dies zu erreichen, kann das Interface PortletSession verwendet werden, das unabhängig von der Implementierung eine Session-Funktionalität zur Verfügung stellt. Jede Portal-Anwendung hat pro User ein eigenes Session-Objekt, das dieses Interface realisiert. Eine PortletSession kennt zwei unterschiedliche Gültigkeitsbereiche: Application Scope Portlet Scope Auf ein Objekt, das den Gültigkeitsbereich Application Scope besitzt, kann jedes Portlet in der Anwendung zugreifen. Auf Objekte mit dem Gültigkeitsbereich Portlet Scope kann nur das Portlet zugreifen, das es auch erstellt hat. Intern wird so ein Objekt allerdings ebenfalls im Application Scope gespeichert, nur mit einem speziellen Namensraum. Das Setzten von Attributen demonstriert folgendes Beispiel: 16

21 2.12 UserInformation PortletSession session = request.getsession(true); URL url = new URL(" session.setattribute("home.url",url,portletsession.application_scope); session.setattribute("bkg.color","red",portletsession.portlet_scope); Weiters hat eine PortletSession viele Gemeinsamkeiten mit der HttpSession der Servlet-Spezifikation: die von einem Portlet gespeicherten Objekte sind auch für Servlets sichtbar und umgekehrt. Methoden wie getid, invalidate und isnew müssen die selbe Funktionalität wie bei Servlets besitzen UserInformation Ein grundlegendes Konzept eines Portals ist die Anpassung der Oberfläche und des Inhalts an den Benutzer. Um entsprechende Anpassungen vornehmen zu können, muss die Anwendung Informationen über den Benutzer speichern können. Die Portlet- Spezifikation sieht für diesen Zweck einen Mechanismus vor, mit dem ein Portlet auf Benutzer-Informationen zugreifen kann. Diese Informationen können in sogenannten Benutzer-Attributen gespeichert werden. Diese werden im Deployment Deskriptor definiert. Folgendes Listing zeigt eine Konfigurationsbeispiel: <portlet-app>... <user-attribute> <description>vorname</description> <name>user.name.given</name> </user-attribute> <user-attribute> <description>nachname</description> <name>user.name.family</name> </user-attribute> <user-attribute> <description> -adresse</description> <name>user.home-info.online. </name> </user-attribute>... <portlet-app> Die Namen der Attribute, wie user.name.given, können freigewählt werden, die Spezifikation empfiehlt aber die Verwendung vorgegebener Namen für häufig benötigte 17

22 2 Spezifikation Daten, um eine einheitliche Bezeichnung und Semantik zu gewährleisten. Die vorgegebenen Namen orientieren sich an der P3P-Spezifikation des W3Cs [3]. Um von einem Portlet auf die Benutzer-Attribute zuzugreifen, wird ein Objekt vom Typ Map verwendet, das als Attribut im Request gespeichert ist. Das folgende Beispiel zeigt den Zugriff auf den im Deployment Deskriptor definierten Wert mit dem Vornamen: Map userinfo = (Map) request.getattribute(portletrequest.user_info); String givenname = (userinfo!=null)? (String) userinfo.get("user.name.given") : ""; 2.13 PortletCaching Um die Antwortzeit eines Portals zu erhöhen, können Caching-Mechanismen verwendet werden. Die Spezifikation sieht einen Mechanismus vor, der auf einem Verfallsdatum basiert und eine Zwischenspeicherung pro Portlet und Client vorsieht. Diese Zeitangabe wird in Sekunden angegeben und kann im Deployment Deskriptor angegeben oder im Programm selbst zur Laufzeit verändert werden PortletSecurity Ein Portalsystem enthält Ressourcen, auf die durch viele User zugegriffen werden kann. In offenen Netzwerken wie dem Internet müssen deswegen Sicherheitsanforderungen beachtet werden. Der Portlet Container muss die Portlets informieren, welche Rolle ein zugreifender User einnimmt. Die Authentifizierung übernimmt aber nicht der Portlet Container sondern der Servlet Container, wie es in der Servlet Spezifikation 2.3 definiert ist. Das Request-Interface besitzt die selben Methoden-Signaturen wie das ServletRequest- Interface: getremoteuser, isuserinrole und getuserprincipal. Diese Methoden haben auch die selbe Bedeutung wie bei Servlets [2]. Für die Verbindung von Portlets mit Enterprise JavaBeans existiert eine Erweiterung, die das Aufrufen von Beans ermöglicht, auch wenn der User dem Portal-System nicht bekannt ist. Dafür kann die Identifizierung an die EJB-Ebene weitergereicht werden Security Constraints Ähnlich wie bei Servlets können auch Portlets bestimmte Einschränkungen auferlegt werden. Diese beziehen sich aber nicht wie bei Servlets auf URL-Pattern und HTTP- Methoden sondern auf die einzelnen Portlets. Es können Anforderungen bezüglich Inte- 18

23 2.15 TagLibs grität und Vertraulichkeit gestellt werden, die beispielsweise durch SSL-Verbindungen erfüllt werden müssen. Ausschnitt eines Deployment-Deskriptors mit Security Constraints, bei dem das Portlet accountsummary sicher dargestellt werden muss: <portlet-app>... <portlet> <portlet-name>accountsummary</portlet-name>... </portlet>... <security-constraint> <display-name>secure Portlets</display-name> <portlet-collection> <portlet-name>accountsummary</portlet-name> </portlet-collection> <user-data-constraint/> <transport-guarantee>confidential</transport-guarantee> </user-data-constraint> </security-constraint>... </portlet-app> 2.15 TagLibs Tag Libraries werden eingesetzt um die Programmierung einer JSP zu vereinfachen. Ein Portlet-Container muss 5 Tags implementieren um die Spezifikation zu erfüllen. Diese sollen den Zugriff auf portletspezifische Elemente und Funktionalität ermöglichen: defineobjects Tag: ermöglicht in der JSP den Zugriff auf die Variablen: renderrequest, renderresponse und portletconfig. actionurl Tag: erzeugt einen URL, der auf das aktuelle Portlet zeigt und einen action request auslöst. Es können Attribute angegeben werden, die u.a. den WindowState und PortletMode setzen. renderurl Tag: erzeugt einen URL, der auf das aktuelle Portlet zeigt und einen render request auslöst. Es können ebenfalls Attribute für den WindowState und PortletMode gesetzt werden. 19

24 2 Spezifikation namespace Tag: erzeugt einen eindeutigen Wert für das aktuelle Portlet. Es kann verwendet werden, um z.b. JavaScript-Funktionen eindeutig zu benennen, wodurch keine Namenskonflikte mehr auftreten können. param Tag: definiert Parameter, die einem ActionURL oder RenderURL hinzugefügt werden können. 20

25 3 Integration Die Portlet Architektur wurde so spezifiziert, dass die Erweiterbarkeit und Integration von existierenden Frameworks auch ermöglicht wird. Insbesonders werden wir hier Integrationsfähigkeiten des Portlet Frameworks mit existierenden Technologien, so wie JSP, Servlets, Web Services u.ä. präsentieren. 3.1 Servlet Integration Da das Portlet Framework mit der Java Programmiersprache entwickelt wurde, kann daraus abgeleitet werden, dass Java Portlets durchaus mit anderen auf Javabasierenden Architekturen interagieren kann. Portlets basieren auf die Servlet 2.3 Spezifikation. Trotz der Ähnlichkeiten gibt es eindeutige Unterschiede zwischen diesen Technologien, die eine eigene Spezifikation notwendig gemacht haben [1]. Ähnlichkeiten Java basierende Technologie Container Verwaltung Generierung dynamischer Inhalte Lifecycle von Container verwaltet Interaktion durch Request- Response-Paradigma J2EE Integration Unterschiede Portlets erzeugen nur markup fragments Portlets sind nicht direkt an ein URL gebunden Mehrere Portlets können auf einer Portal Seite existieren Clients interagieren mit Portlets durch ein Portal System Portlets haben raffiniertere Request Handhabung Vordefinierte Portletmodes Tabelle 3.1: Servlet vs. Portlet Spezifikation Zusätzlich gibt es weitere Funktionalitäten die von der Portletsumgebung unterstützt werden: Portlets haben die Zugriff- und Speicherungsmöglichkeiten persistenter Konfiguration und Anpassungsdaten Portlets haben Zugriff auf Benutzerprofildaten 21

26 3 Integration Portlets haben die Möglichkeit URLs Portal Server agnostisch zu erstellen Portlets können transiente Daten innerhalb 2 verschiedener Scopes speichern: die Application-Wide Scope und der Portlet-Private Scope Durch die Verwendung eines PortletRequestDispatcher Objekts innerhalb der Ausführung der render() Methode kann der Portletprogrammierer Inhalte erzeugen und an ein Servlet oder eine JSP Seite weiterleiten. 3.2 JSP Integration Durch die starke Verbreitung der Java Server Pages Technologie wird sowohl in der Java Portlets Spezifikation als auch in anderen kommerziellen Portlet-unterstützten Produkten (w.z.b. BEA) die Zugriffsmöglichkeiten auf Portlets durch JSP Tags angeboten. Um innerhalb einer JSP Seite Zugriff auf ein Portlet haben zu können, muss der JSP Entwickler die korrekte Tag Library deklarieren: <%@ taglib uri=" prefix="portlet"%> Somit wird die Tag Library spezifisch für die Integration von Portlets definiert. Dadurch hat der JSP Entwickler die Möglichkeit, verschiedene Portletobjekte zu verwenden. Um diese Objekte verwenden zu können, muss das defineobjects tag die RenderRequest, RenderResponse, und PortletConfig Objekte definieren. Folgendes Beispiel würde den Titel eines Portlets innerhalb einer JSP Seite definieren: <portlet:defineobjects/> <%=renderresponse.settitle("my New Portlet Title!")%> ActionURL Weiters ist es möglich innerhalb JSP ein bestimmtes actionurl Objekt zu erzeugen, das dem JSP Entwickler erlaubt, verschiedene Aktionen einem Portlet zu übergeben bzw. ein ActionRequest auszulösen. Folgende Parameter können zu einem actionurl hinzugefügt werden: windowstate portletmode var secure 22

27 3.3 Web Service Remote Portlet Integration Mittels <portlet:param/> tag ist es auch möglich, eigene Parameter an ein actionurl hinzuzufügen. Ein Beispiel, welches dem Portlet in den EDIT Modus versetzt und den Windowstate auf MAXIMIZED setzt, würde folgendermaßen aussehen: <portlet:actionurl windowstate="maximized" portletmode="edit"> <portlet:param name="action" value="editstocks"/> </portlet:actionurl> RenderURL Da Portlets nicht nur ActionRequests unterstützen sondern auch RenderRequests, ist es auch möglich, renderurl innerhalb einer JSP Seite zu verwenden. Diese lösen wiederum RenderRequests für ein gegebenes Portlet aus. Ähnlich wie bei actionurls können folgende Parameter gesetzt werden: windowstate portletmode var secure Folgendes Beispiel würde einen URL erzeugen, auf welchem die Aktienwerte zweier Firmen angezeigt werden: <portlet:renderurl portletmode="view" windowstate="normal"> <portlet:param name="showquote" value="mycompany"/> <portlet:param name="showquote" value="someothercompany"/> </portlet:renderurl> 3.3 Web Service Remote Portlet Integration Das Konzept (und der damit verbundene Hype) von Web Services gibt es schon seit einiger Zeit. Web Services sind im Grunde genommen plattform-unabhängige, datenorientierte, übers web-zugreifende Remote Objects. Die Web Service Remote Portlet Spezifikation dient als Lösung für einen präsentations orientierten Web Service Ansatz. Web Services dienen dem Konsumenten von solchen Services nur für datenorientierte Zwecke. Diese Web Services müssten dann wiederum mit einer vom Konsumenten selbst erstellten Präsentationsschicht versehen werden. Weiter gedacht, müssen Applikationsaggregatoren mit einer eindeutigen Schnittstelle kommunizieren [7, Seite 7]. Eine Plug-and-Play Lösung für die dynamische Integration von Geschäftsapplikationen oder Inhalte wurde durch die Web Service for Remote Portlets Spezifikation vorgeschlagen. In Abbildung 3.1 wird die Architektur des WSRP Ansatzes dargestellt. 23

28 3 Integration Abbildung 3.1: WSRP Architektur Prozessablauf 1. Konsument eines WSRP identifiziert, bzw. entdeckt einen Produzenten. Der Konsument findet die URL für den Web-Service Endpoint und eruiert die Metadaten, inkl. Beschreibung des Produzenten, mögliche Registrierungsanforderungen und möglicherweise eine Liste der veröffentlichen Portlets. 2. Etablierung einer Beziehung zwischen Konsument und Produzent. Dies kann auf geschäftlicher oder technischer Ebene fungieren wie auf Sicherheitsanforderungen. 3. Etablierung einer Beziehung zwischen Konsument und Benutzer. Dies erlaubt dem Benutzer den möglichen Zugriff auf den vom Produzenten veröffentlichten Portlet. Der Konsument könnte sogar dem Benutzer die Möglichkeit erlauben eigene Anpassungen der Portlets vorzunehmen. 4. Produktion der aggregierten Seiten. Dieser Prozessschritt wird normalerweise nach der Basisdefinition des Pagelayouts vom Benutzer durchgeführt. 24

29 3.3 Web Service Remote Portlet Integration 5. Abfrage einer Seite. 6. Benutzerinteraktionen verarbeiten. Manche Benutzerinteraktionen führen zu Abwicklungen einer bestimmten Logik innerhalb der konsumentendefinierten Seiten. Der Konsument führt diese Logik aus, was wiederum einen Einfluss auf andere Portlets haben könnte und somit den vorherigen Schritt auslöst. 7. Beendigung der Beziehung zwischen Produzent und Konsument kann zu jeder Zeit durchgeführt werden, wobei die benutzten Ressourcen danach freigegeben werden können. Obwohl die Spezifikation schon als Standard akzeptiert wurde, gibt es offiziell noch sehr geringe Unterstützung innerhalb der IT Gemeinschaft. Die Apache Gruppe hat das so genannte WSRP4J (Web Service for Remote Portlets for Java) Framework als Inkubator Projekt, welches wiederum von IBM gestartet und weiterhin unterstützt wird, begonnen [4]. 25

30 3 Integration 26

31 4 Systemumgebung Schon seit einigen Jahren werden Portale verwendet um einen zentralen Zugang zu inidividuell zugeschnittenen, unternehmensinternen und -externen Informationen und Diensten zu ermöglichen. Diese Integration ist jedoch sehr kostspielig und auch nicht immer durch Erfolg gekrönt. Eine Forrester-Umfrage vom April 2004 unter Angestellten zeigte, dass nur knapp die Hälfte der Angestellten aus dem Webangebot der Firma einen Nutzen gewinnen können [10]. In einer anderen Studie sieht Forrester- Research den Grund des Versagens von Portalen unter anderem in der mangelnden Unterstützung von Standards, wie JSR 168 und WSRP [6]. Heute, ungefähr ein Jahr nachdem die erste Version der JSR 168 veröffentlicht wurde und etwas mehr als ein halbes Jahr nach der Veröffentlichung der finalen Version, unterstützen 7 der 9 größten Anbietern von Portal-Systemen JSR 168 und WSRP: BEA Weblogic Portal 8.1 IBM WebSphere Portal 5.0 Oracle AS 10g Portal Plumtree Enterprise Websuite Sun Java System Portal Server 6.2 Sybase Enterprise Portal 6.0 Vignette Application Portal 7.0 and Application Builder 4.5 NetworkComputing hat einen Vergleich dieser 9 Anbieter durchgeführt [8], wobei lediglich zwei Anbieter (Microsoft und Tibco) kein zu JSR 168 und WSRP standardkonformes Produkt vertreiben. Nach dem Vergleich landete Oracle 10g Portal auf Platz eins, gefolgt von Sybase Enterprise Portal und Plumtree Enterprise Web Suite. Die Beschreibung der folgenden kommerziellen Anbietern ist eine Kurzfassung dieses Vergleichs. 27

32 4 Systemumgebung 4.1 Kommerzielle Anbieter Dieses Kapitel zeigt eine Übersicht einiger Portal-Produkte. Portalsysteme können zumeist in zwei Kategorien eingeteilt werden: entweder sie basieren auf einer Infrastruktur, die Enterprise Application Integration zum Bestandteil hat, oder sie verwenden eine Portal-Standard-Software, die als eigenständige Anwendung läuft OracleAS 10g Portal Das Oracle-Portal ist eines von wenigen Systemen, für die keine Zeile Code geschrieben werden muss, um es in eine vorhandene Struktur zu integrieren. Neben der obligaten Unterstützung von JSR 168 unterstützt das Portalsystem von Oracle als Datenquellen SQL-Datenbanken, XML, HTML und Web Services. Mail-Integration funktioniert mit Lotus Notes und Microsoft Exchange, zur Benutzerverwaltung kann LDAP und Active Directory verwendet werden. Weiters bietet es ein visuelles Layout-Werkzeug für die einzelnen Seiten. Das Oracle-Portal gewinnt auch durch die breite Unterstützung und Integrationsmöglichkeit mit Produkten von Oracle und anderen Anbietern Sybase Enterprise Portal 6.0 Das Portalsystem von Sybase besticht durch gute Integrationsmöglichkeiten. Es läuft auf jedem zertifiziertem J2EE-Webcontainer, die unterstützten Datenquellen sind SQL, XML, HTML und Web Services; Metadaten können in LDAP, Oracle und Sybase Systemen gespeichert werden Sun Microsystems Java Enterprise Solution Die Portalsystem von Sun verwendet den ONE Directory Server und kann auf Applikationsservern von IBM, BEA und natürlich Sun eingesetzt werden. Die gesamte Konfiguration kann über ein webbasiertes Tool vorgenommen werden. Ein visuelles Werkzeug um einzelne Seiten zu erstellen existiert jedoch nicht. Das Portal unterstützt Instant Messaging-Tools, Authentifizierung über LDAP, Radius, SAML und Unix. Portlets lassen sich einfach auf User und Clients anpassen, ein eigenes Werkzeug sorgt für eine einfache Integration von Webservices IBM WebSphere Portal 5.0 Das IBM Produkt verfügt von Haus aus über weniger vorgefertigte Portlets, dafür findet man darunter auch Portlets für das Dokumentmanagement von Microsoft Office- Dokumenten. Als Mail-Systeme können Lotus Notes, Exchange und IMAP/POP3 integriert werden, für Metadaten können u.a Produkte von Microsoft, Oracle und natürlich 28

33 4.2 Freie Anbieter IBM eingesetzt werden. Um neue Portlets einfacher entwickeln zu können, integriert IBM die Portal Factory von Bowstreet BEA Systems WebLogic Portal 8.1 Die Software von BEA unterstützt den Import von Text, HTML und XML. Authentifizierung kann über Active Directory und LDAP abgewickelt werden, Metadaten können in beliebige RDBMS gespeichert werden. Das enthaltene Entwicklungskit eignet sich jedoch nicht, um in kurzer Zeit Portlets zu integrieren, da die Integration und die Wiederverwendung von Portlets nicht einfach zu administrieren ist. 4.2 Freie Anbieter Jakarta Pluto Pluto, ein Subprojekt des Apache Portal Projekts, ist die Referenzimplementierung der Java Portlets Spezifikation JSR 168. Die aktuelle Version 1.0 ist keine vollständige Implementierung eines Portals sondern nur ein Portlet-Container, der der Spezifikation JSR 168 genügt. Aufgrund dieser Sonderstellung als Referenzimplementierung ist das Projekt im Kapitel 5 genauer beschrieben Jetspeed Jetspeed ist eine Open Source-Implementierung eines Enterprise Information Portals der Apache Software Foundation, basierend auf Java und XML mit dem Ziel Netzwerk- Ressourcen Endbenutzern zugänglich zu machen. Dabei ist Zugriff über Webbrowser, WAP-Handy oder andere Geräte möglich. Jetspeed-2 ist konform zur Java Portlet- Spezifikation. Viele externe Datenquellen, wie XML, RSS oder SMTP können integriert werden. Weiters werden Content Publication Frameworks, wie Cocoon, Web- Macro oder Velocity unterstützt. Das Projekt ist in aktiver Entwicklung und hat sich zum Ziel gesetzt, Jetspeed zu einem Werkzeug für Portal-Entwickler und User Interface-Designer zu machen. Mit Jetspeed soll die Erstellung eines XML basierten Portals stark vereinfacht werden. 4.3 Empfehlung Neben den erwähnten großen Anbietern von Portal Systemen gibt es natürlich auch noch eine große Anzahl an kleinen Firmen, die JSR 168-konforme Portal Systeme entwickelt haben. Es kann angenommen werden, dass durch Open Source-Projekte, wie Jetspeed von Apache, in Zukunft eine große Anzahl an freien und kommerziellen Implementierungen entstehen werden, die auf vorhandenen Implementierungen aufbauen. 29

34 4 Systemumgebung Die schon erwähnte Forrester-Studie [10] zeigt jedoch dass nach wie vor viele Portale - unabhängig von den oft eingesetzten Produkten- nicht erfolgreich sind. Folgende häufige Gründe konnten identizifiert werden (nach einer Zusammenfassung in [9]): Keine Unterstützung der Standards JSR 168 und WSRP Unzureichende Budget-Planung in frühen Phasen der Einführung Aus einer zu großen Auswahl resultieren zu viele inkompatible Produkte Schwache Übereinstimmung mit den Geschäftszielen Da 54% der IT-Entscheidungsträger angeben haben, im Jahr 2004 neue Portal- Technologie einsetzen zu wollen (an zweiter Stelle hinter Sicherheits-Technologie), gibt Forrester folgende Empfehlungen: Die Stärken und Schwächen der gewählten Portal-Lösung sollten genau studiert werden Die vorhandene Infrastruktur sollte gut etabliert sein Neue Projekte sollten nicht unternehmensweit sondern nur in bestimmten Abteilungen durchgeführt werden Die Portal-Entwickler sollten System-Integratoren und Entwicklungspartner der entsprechenden Abteilungen konsultieren 30

35 5 Case Study Dieses Kapitel präsentiert die Referenzimplementierung des Java Portlet Standards im Detail. Es wird ein Überblick über das Produkt gegeben, die Architektur kurz beschrieben und anhand von Screenshots das Konzept eines Portal-Containers erläutert. 5.1 Überblick Jakarta Pluto ist die Referenzimplementierung der Java Portlet Spezifikation. Die aktuelle Version 1.0 ist jedoch keine vollständige Implementierung eines Portals sondern nur ein Portlet-Container, der der Spezifikation JSR 168 genügt. Der Portlet Container stellt eine Laufzeitumgebung für Portlets zur Verfügung und benötigt seinerseits einen Servlet-Container und verwendet dessen Ressourcen und Funktionalität. Pluto implementiert die Portlet API und gibt somit Portlet-Entwicklern die Möglichkeit ihre Portlets zu testen. Die Implementierung ist jedoch einfach und erfüllt nur jene Anforderungen, die die Spezifikation ausdrücklich nennt. Neben dem Portlet-Container gibt es auch eine ebenfalls auf das Wesentliche beschränkte Implementierung eines Portal Treibers, also dem eigentlichen Portal, in dem der Pluto Portlet Container getestet werden kann. Ein weiterer Teil des Projekts ist eine Test Suite, die alle wichtigen Funktionen eines Portlet-Containers testet. Diese Portlets können somit auch verwendet werden, um andere Implementierungen von Portal Servern zu testen. 5.2 Installation und Konfiguration Pluto verwendet das Projektmanagement-Tool Apache Maven. Neben diesem wird Java 1.3 oder höher, sowie Tomcat 4.1 mit der Servlet API 2.3 zur Ausführung benötigt. Durch Maven kann der Build-Prozess und das Deployment in einem einzigen Schritt einfach ausgeführt werden. Das Resultat ist eine lauffähiges Portal mit installierter Portal Test Suite. Um Portlets verwenden zu können, müssen sie in der Datei portletentityregistry.xml registriert werden. Weiters kann in der Datei pageregistry.xml das Portal Layout definiert werden. Das Standard-Layout von Pluto zeigt Abbildung

Softwareentwicklung mit JAVA EE

Softwareentwicklung mit JAVA EE Softwareentwicklung mit JAVA EE Portlets Was sind Portale? Aufgaben von Portalsystemen Integration unterschiedlicher Anwendung Schwerpunkt liegt auf der Präsentationsebene Ermöglichung personalisierter

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

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

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

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

JSP und Servlet Programmierung

JSP und Servlet Programmierung Seminarunterlage Version: 5.02 Copyright Version 5.02 vom 1. März 2013 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

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

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

Infopark CMS Fiona. Fiona 6.5.1 Release Notes

Infopark CMS Fiona. Fiona 6.5.1 Release Notes Infopark CMS Fiona Fiona 6.5.1 Release Notes Infopark CMS Fiona Fiona 6.5.1 Release Notes Die Informationen in diesem Dokument wurden mit größter Sorgfalt erarbeitet. Dennoch können Fehler nicht vollständig

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

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

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

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

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

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

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

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

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten 1 von 5 12.01.2013 17:59 SharePoint 2013 Veröffentlicht: 16.10.12 Zusammenfassung: Informationen zur Verwendung von Excel zum Erstellen und Freigeben von Verbindungen mit SQL Server-Daten, mit deren Hilfe

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

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

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

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

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

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

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

Planung für Organisation und Technik

Planung für Organisation und Technik Salztorgasse 6, A - 1010 Wien, Austria q Planung für Organisation und Technik MOA-VV Installation Bearbeiter: Version: Dokument: Scheuchl Andreas 19.11.10 MOA-VV Installation.doc MOA-VV Inhaltsverzeichnis

Mehr

7 SharePoint Online und Office Web Apps verwenden

7 SharePoint Online und Office Web Apps verwenden 7 SharePoint Online und Office Web Apps verwenden Wenn Sie in Ihrem Office 365-Paket auch die SharePoint-Dienste integriert haben, so können Sie auf die Standard-Teamsite, die automatisch eingerichtet

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

MSDE 2000 mit Service Pack 3a

MSDE 2000 mit Service Pack 3a MSDE 2000 mit Service Pack 3a Neues MSDE im WINLine-Setup: Seit der WINLine 8.2 Build 972 wird auf der WINLine-CD ein neues Setup der Microsoft MSDE mit ausgeliefert. Mit dieser neuen Version MSDE 2000

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

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

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

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

VIDA ADMIN KURZANLEITUNG

VIDA ADMIN KURZANLEITUNG INHALT 1 VIDA ADMIN... 3 1.1 Checkliste... 3 1.2 Benutzer hinzufügen... 3 1.3 VIDA All-in-one registrieren... 4 1.4 Abonnement aktivieren und Benutzer und Computer an ein Abonnement knüpfen... 5 1.5 Benutzername

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

InfoPoint vom 9. November 2011

InfoPoint vom 9. November 2011 InfoPoint vom 9. November 2011 Was ist Joomla? Theorie Installation Extensions Administration Demo Joomla ist ein modulares content management system (CMS) Es ermöglicht eine Website zu erstellen und online

Mehr

Portale mit dem Java-Portlet-Standard JSR168, Jetspeed 2 und WSRP

Portale mit dem Java-Portlet-Standard JSR168, Jetspeed 2 und WSRP Portale mit dem Java-Portlet-Standard JSR168, Jetspeed 2 und WSRP Thorsten Berger Diplomstudiengang Informatik 8. Semester 10. Juli 2005 Einführung 1. Einführung Portal-Begriff Vorteile Software 2. Java-Portlet-Standard

Mehr

Installation der SAS Foundation Software auf Windows

Installation der SAS Foundation Software auf Windows Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software

Mehr

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld Sharing. Auf dem Bildschirm sollte folgendes Fenster erscheinen: Einleitung Unter MacOS X hat Apple die Freigabe standardmäßig auf den "Public" Ordner eines Benutzers beschränkt. Mit SharePoints wird diese Beschränkung beseitigt. SharePoints erlaubt auch die Kontrolle

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

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

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

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

Verarbeitung der Eingangsmeldungen in einem Callcenter

Verarbeitung der Eingangsmeldungen in einem Callcenter Q-up ist ein Produkt der: Anwendungsbeispiele Verarbeitung der Eingangsmeldungen in einem Callcenter Der Testdatengenerator Der Testdatengenerator Verarbeitung der Eingangsmeldungen in einem Callcenter

Mehr

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung

Mehr

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen zu SQL Server Analysis Services-Daten

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen zu SQL Server Analysis Services-Daten 1 von 5 12.01.2013 17:58 SharePoint 2013 Veröffentlicht: 16.10.12 Zusammenfassung: Informationen zur Verwendung von Excel zum Erstellen und Freigeben einer Verbindung zu SQL Server Analysis Services-Daten,

Mehr

aviita reporting portal

aviita reporting portal aviita reporting portal Version 1.1 Mai 2009 T +423 384 06 06 F +423 384 06 08 info@aviita.li 1/9 aviita est. Das Unternehmen aviita est. steht für individuelle und massgeschneiderte Software Lösungen.

Mehr

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool JBoss vorbereiten Wir haben ein zip-archiv mit JBoss 4.0.5 in /opt/jboss-4.0.5.zip hinterlegt. Entpacken Sie dieses in ihrem Homeverzeichnis an

Mehr

RESTful Web. Representational State Transfer

RESTful Web. Representational State Transfer RESTful Web Representational State Transfer 1 Warum REST? REST ist die Lingua Franca des Webs Heterogene (verschiedenartige) Systeme können mit REST kommunizieren, unabhängig von Technologie der beteiligten

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

:: Anleitung Hosting Server 1cloud.ch ::

:: Anleitung Hosting Server 1cloud.ch :: :: one source ag :: Technopark Luzern :: D4 Platz 4 :: CH-6039 Root-Längenbold LU :: :: Fon +41 41 451 01 11 :: Fax +41 41 451 01 09 :: info@one-source.ch :: www.one-source.ch :: :: Anleitung Hosting Server

Mehr

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION Allgemein Infomon bietet die Architektur für das Informations-Monitoring in einer Windows- Topologie. Die Serverfunktionalität wird in einer IIS-Umgebung

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

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

2 Konfiguration von SharePoint

2 Konfiguration von SharePoint 2 Konfiguration von SharePoint Server 2010 Umgebungen Prüfungsanforderungen von Microsoft: Configuring a SharePoint Environment o Configure SharePoint farms configuring inter-server communications 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

Windows Server 2008 für die RADIUS-Authentisierung einrichten

Windows Server 2008 für die RADIUS-Authentisierung einrichten Windows Server 2008 für die RADIUS-Authentisierung einrichten Version 0.2 Die aktuellste Version dieser Installationsanleitung ist verfügbar unter: http://www.revosec.ch/files/windows-radius.pdf Einleitung

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

White Paper. Installation und Konfiguration der PVP Integration

White Paper. Installation und Konfiguration der PVP Integration Copyright Fabasoft R&D GmbH, A-4020 Linz, 2010. Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller. Diese Unterlagen sind streng

Mehr

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing. www.egiz.gv.at E-Mail: post@egiz.gv.at Telefon: ++43 (316) 873 5514 Fax: ++43 (316) 873 5520 Inffeldgasse 16a / 8010 Graz / Austria Beschreibung und Bedienungsanleitung Werkzeug für verschlüsselte bpks

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

(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

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

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

DOKUMENTATION VOGELZUCHT 2015 PLUS

DOKUMENTATION VOGELZUCHT 2015 PLUS DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP

Mehr

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel ralf_gitzel@hotmail.de

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel ralf_gitzel@hotmail.de JSP Grundlagen JEE Vorlesung Teil 5 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht JSP Konzept Model-View-Controller mit JSPs JSP Expression Language EL Literale

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

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

Forefront Threat Management Gateway (TMG) und Forefront Unified Access Gateway (UAG) Die perfekte Lösung

Forefront Threat Management Gateway (TMG) und Forefront Unified Access Gateway (UAG) Die perfekte Lösung Forefront Threat Management Gateway (TMG) und Forefront Unified Access Gateway (UAG) Die perfekte Lösung Das Problem Die Abkündigungen seitens Microsoft von Forefront Threat Management Gateway (TMG) und

Mehr

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:

Mehr

Installationsanleitung dateiagent Pro

Installationsanleitung dateiagent Pro Installationsanleitung dateiagent Pro Sehr geehrter Kunde, mit dieser Anleitung möchten wir Ihnen die Installation des dateiagent Pro so einfach wie möglich gestalten. Es ist jedoch eine Softwareinstallation

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

MCRServlet Table of contents

MCRServlet Table of contents Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

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

Stefan Zörner. Portlets. Portalkomponenten in Java. ntwickier

Stefan Zörner. Portlets. Portalkomponenten in Java. ntwickier Stefan Zörner Portlets Portalkomponenten in Java ntwickier Vorwort 9 1 Portalkomponenten in Java 11 1.1 Hype beiseite 11 Was ist ein Portal? 11 Portalkomponenten in Java 14 Das Portlet-Ökosystem 16 1.2

Mehr

Zustandsgebundene Webservices

Zustandsgebundene Webservices Zustandsgebundene Webservices Präsentation ausgewählter Problemstellungen der Informatik Markus Oertel oer@uni-paderborn.de Universität Paderborn 25. September 2005 Zustandsgebundene Webservices Seite

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

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

INSTALLATION VON INSTANTRAILS 1.7

INSTALLATION VON INSTANTRAILS 1.7 INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis

Mehr

Excel Auswertungen in XAuftrag / XFibu

Excel Auswertungen in XAuftrag / XFibu 1 Excel Auswertungen in XAuftrag / XFibu Im Folgenden wird kurz beschrieben, wie Anwender die Sicherheitseinstellungen in Excel Auswertungen anpassen können. Sicherheitseinstellungen verhindern, dass Makros

Mehr

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Wie richten Sie Ihr Web Paket bei Netpage24 ein Wie richten Sie Ihr Web Paket bei Netpage24 ein Eine kostenlose ebook Anleitung von Netpage24 - Webseite Information 1 E-Mail Bestätigung... 3 2 Ticketsystem... 3 3 FTP Konto anlegen... 4 4 Datenbank anlegen...

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver Eine Firewall für Lexware professional oder premium konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Die Firewall von Windows 7 und Windows 2008 Server... 2 4. Die Firewall

Mehr

Anleitung Captain Logfex 2013

Anleitung Captain Logfex 2013 Anleitung Captain Logfex 2013 Inhalt: 1. Installationshinweise 2. Erste Schritte 3. Client-Installation 4. Arbeiten mit Logfex 5. Gruppenrichtlinien-Einstellungen für die Windows-Firewall 1. Installationshinweis:

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

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

Ü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