Stateful und Stateless BSP-Anwendungen HTTP ist stateless!

Größe: px
Ab Seite anzeigen:

Download "Stateful und Stateless BSP-Anwendungen HTTP ist stateless!"

Transkript

1 Stateful und Stateless BSP-Anwendungen HTTP ist stateless! (1) Stateful BSP-Programmierung : NWAS: stateful Anwendungskontext über Response hinaus gehalten Bei Weiterführung zvfg. User 1 Session 1 session NWAS "merkt" sich Daten, die zu Anwendung gehören (Rollbereich) + greift bei Fortsetzung darauf zu User 2 Session 2 session Daten auch nach Senden der Response-Seite an Browser für weitere Requests derselben BSP- Anwendung zur Vfg Session Stickness! User 3 Session 3 session Zeit Nachteil : Ressource Laufzeit vs. Ressource Speicher - Hohe Last auf dem Server - Kontextdaten vieler User im Speicher halten - Ressourcen unnötig lange gehalten, wenn User BSP-Anwendung abbricht (Timeout) Vorteil : - Einfachere Programmierung - Daten bleiben zvfg. ( keine Cookies etc nötig ) - Keine erneute Datenbeschaffung + keine wiederholten DB-Zugriffe! HTTP ist ein zustandsloses Protokoll: Nach Antwort eines Servers auf die Anfrage eines Clients hält der Server keine Zustandsinformationen über den Client - jede neue Anfrage des Clients erfordert einen neuen Verbindungsaufbau und erneute Datenbeschaffung. Jedoch wird in einer stateful BSP-Anwendung der Anwendungskontext über die Response (Serverroundtrip) und alle Benutzerinteraktionen hinweg gehalten, bis die BSP-Anwendung beendet ist. Der Anwendungs- / Benutzerkontext wird wie bei einer klassischen R/3-Transaktion im Rollbereich zwischengespeichert und wieder in den zuständigen WAS-Workprozess hineingerollt, wenn die Bearbeitung fortgesetzt wird. Der Anwendungskontext wird über alle Request-Response- Zyklen einer BSP-Anwendung gehalten - die Daten stehen auf jeder Seite über die gesamte Session zur Vfg. Konsequenzen: Auf dem Server wird eine große Last erzeugt: Web-Anwendungen werden meist von vielen Benutzern eingesetzt. Für jeden Benutzer wird Kontext auf dem Netweaver Application Server gehalten und belastet somit dessen Speicherkapazität. Ressourcen werden unnötig lange auf dem Server gehalten: Webbrowser melden sich nicht beim Server ab, wenn ein "flüchtiger" Benutzer zu einer anderen Seite navigiert. Eine offene Sitzung kann somit nicht beendet werden - und verbleibt im Speicher des WAS bis der Timeout- Mechanismus den Kontext freigibt. Da dies einige Zeit dauern kann, werden begrenzte Server- Speicherressourcen unnötig lange blockiert. Ist der Server nicht mehr in der Lage, weitere Daten zu speichern, verweigert er die Erstellung zusätzlicher Sessions, so dass kein weiterer Anwender die Applikation nutzen kann. Die Programmierung ist jedoch leichter zu realisieren: Die Daten stehen beim erneuten Zugriff ohne erneute DB-Abfragen für die komplette BSP-Session zur Vfg. Die Zahl der Datenbankzugriffe ist minimal. Es kann auf Cookies oder Hidden Fields verzichtet werden. Man sollte sich jedoch stets fragen, ob es wirklich nötig ist, die komplette Benutzersitzung permanent aufzubewahren.

2 Session- Handling : SAP-Session- ID (2) HTTP arbeitet stateless Kennt nur unabhängige Requests Nach Response wird Verbindung geschlossen Kein Mechanismus zur Sessionkennzeichnung : Zuordnung mehrerer Request zu einer gemeinsamen Sitzung BSP-LZ generiert Session-ID in Session-Cookie: - Im stateful-fall verschickt sap-contextid - Identifikation mehrerer Requests als Teil einer logischen Session / Anwendung - Gültig bis Sitzungs-Ende - Abfrage über autom. instantiiertes Objekt runtime In allen Eventhandlern + Layout Attribut session_id abgreifbar Explizites Beenden einer Session : navigation exit( 'extit.htm' ). Funktioniert nicht, wenn in Browser- Einstellungen Sitzungs-Cookies nicht zugelassen sind! Data: s_id TYPE string. s_id = runtime session_id. Bewirkt im stateful-fall Abbau des Session-Kontextes + Freigabe aller Ressourcen! Zum Session-Handling dient das globale, automatisch instantiierte Objekt runtime vom Typ IF_BSP_RUNTIME. Über runtime hat man Zugriff auf das Attribut session_id. Dieses enthält einen eindeutigen Sitzungsschlüssel zur Sitzungsidentifikation. (Eine weitere nützliche Methode des runtime-objekts ist get_url(). Diese liefert die URL der aktuellen BSP-Seite zurück.) Allerdings wird nur im stateful-fall dieser Sitzungsschlüssel in Form eines Sitzungs-Cookies an den Client-Browser geschickt (und von diesem mit dem nächsten Request der gleichen Session wieder an den Server). Eine BSP-Session ist der Zeitraum zwischen Start der Applikation durch Aufruf der entsprechenden URL, und Beenden der Applikation. Die Zuordnung von Requests zu einer stateful-bsp-session erfolgt mit Hilfe von Session-Cookies, die von der BSP-Laufzeit erzeugt werden. Sie werden clientseitig als "sap-contextid" im Speicher abgelegt und bestehen auf dem Client nur für den Zeitraum der BSP-Session. Damit ist es der BSP-Laufzeit möglich, den Client-Requests eine eindeutige Session-Nummer anzufügen, um den Request im stateful-fall einer bestimmten Session und dem Applikationskontext zuzuordnen. Bei jedem erstmaligem Aufruf einer neuen BSP-Anwendung wird eine neue session_id vergeben. Eine stateful-bsp-anwendung hält Daten, die der Anwender eingegeben oder angefragt hat (Applikations- / Benutzerkontext), über die komplette BSP-Session hinweg. Der benutzer-spezifische Applikationskontext steht über die einzelnen Request-Response-Zyklen hinaus zur Vfg und wird von Seitenaufruf zu Seitenaufruf aktualisiert. Leider wird die Synchronität zwischen Client und Server durch das Stateful-Zustandsmodell gefährdet und muss vom Entwickler sichergestellt werden: Der Zustand der Anwendung kann sich von der Anzeige im Browser unterscheiden, zb durch Navigieren in der Browser-Historie oder mittels Browser-Back-Button. Ein User kann zu einer Webseite zurück navigieren und diese erneut senden, obwohl die Anwendung mit anderen Anfragen rechnet:

3 Stateless BSP-Anwendungen Nach Absenden jeder Response wird aktueller Benutzerkontext abgebaut und alle Ressourcen freigegeben - Alle Instanzen gelöscht User 1 WAS : stateless request response (3) - Alle Seitenattribut-Werte gelöscht - Alle Anwendungsklassen-Attributwerte gelöscht. User 2 request response Werte bei nächstem Request nicht mehr Vfg. Server ohne "Gedächtnis" - bedient isolierte Requests. User 1 request response Zeit Kompletter Kontextneuaufbau bei jedem Seitenwechsel erforderlich. 1. Seitenattribute In OnInitialization oder Layout wird Wert zugewiesen. In OnInputProcessing verwendbar, Wert dort aber wieder initial 2. Attribute des Applikationsklassen-Objekts Attribute (Einzelwerte und ganze interne Tabellen) nach Response in OnInputProcessing wieder initial Das Stateless-Zustandsmodell hält den benutzerspezifischen Applikationskontext nur für die Dauer eines Request-Response-Zyklus. Eine BSP-Anwendung stateless auszuführen bedeutet, daß für jeden Request ein neuer Applikationskontext erzeugt wird und einschließlich sämtlicher Instanzen nach jeder Response wieder verworfen wird (zustandslos = "gedächtnis-frei"). Ist der Request bearbeitet und die Response an der Browser gesendet, werden alle Ressourcen freigegeben. Der WAS verhält sich somit so, als würde sich jeder Benutzer einer BSP-Anwendung bei jedem Seitenwechsel abmelden und anschließend erneut anmelden. Der Kontext (Inhalt Seitenattributen und die Instanz der Anwendungsklasse mit ihren Attribut-Werten) bleibt nicht über einen Request- / Response-Zyklus hinaus auf dem WAS erhalten - und muss somit bei jedem folgenden Request komplett neu aufgebaut werden. Beispiel: Man weist in einer stateless-bsp einem Seitenattribut im Layout einen Wert zu. Dann kann zwar das Seitenattribut im Eventhandler OnInputProcessing verwendet werden, sein Wert ist dort aber wieder initial! Das gleiche gilt für die Attribute der Applikationsklasse. Anmerkung: Mit Ablauf des Benutzerkontextes wird auch das ABAP-Memory abgebaut, so dass die entsprechenden ABAP-Anweisungen: IMPORT... FROM MEMORY ID... und EXPORT... TO MEMORY ID... nicht sinnvoll einsetzbar sind. Das Verwerfen des Kontextes lässt sich auch in der SAP-Benutzerliste SM04 erkennen: Während des Aufrufs einer BSP-Anwendung erscheint kein Eintrag in der Benutzerliste. Erst wenn man zb in einem Eventhandler einen Beakpoint setzt, erscheint die Sitzung in der Benutzliste! Wird die gleiche Anwendung stateful geschaltet, so wird der Benutzkontext gehalten und führt zu einen Eintrag in der Benutzerliste.

4 Stateless BSP-Anwendungen (4) Nachteil : - Daten neu zu beschaffen, wenn mehrfach benötigt - Erneute Datenbeschaffung + DB-Anfragen - oder: Cookies Vorteil : - Server Ressourcen nur während Request-Bearbeitung beansprucht. Kein Blockieren unnötiger Ressourcen - Bessere Skalierung des Servers - gut für viele Anwender - Browser-Back/Forward-Navigation unproblematisch - Direkter Sprung in beliebige Anwendungsseite unproblematisch Requests Keine "Session Stickness" bei verteiltem SAP-System aus mehreren NWAS Jeder einzelnen Request kann von vorgelagerten WebDispatcher einem anderen NWAS des Systems zugeteilt werden! Web Disp. NWAS 1 NWAS 2 NWAS 3 Verteiltes System Einstellen Zustandsverhalten : In Eigenschaften der BSP-Anwendnung kann stateful oder stateless selektiert werden! Selektives Umschalten zur LZ möglich - gemischte BSP-Anwendung : Setzen des Attributs keep_context des Objekts runtime : Umschalten auf stateful : runtime keep_context = 1. Umschalten auf stateless : runtime keep_context = 0. im Eventhandlercode Vorteil ist die Ressourcennutzung: Auf dem NWAS werden nur während der Bearbeitung eines Requests Ressourcen beansprucht. Sofortiges Verwerfen des Applikationskontext nach Absenden der Response vermeidet unnötige Speicherbelegung durch zahlreiche "flüchtige" Internetuser. Stateless Programmierung führt somit zu einer guten Skalierung des Servers und ist für Web-Anwendungen (viele "flüchtige" Anwender) gut geeignet. Nachteilig ist die hohe Zahl von Datenbankzugriffen. Daten müssen ständig neu beschafft werden: Daten, die mehrere BSPs innerhalb einer BSP-Anwendung benötigen, müssen mehrfach von der DB gelesen werden. Dies führt zu einer höheren Last auf der DB und zu Laufzeitverlängerungen gegenüber dem Stateful-Zustandsmodell. Es gibtlösungen diesen Nachteil zu umgehen (s.u.) Für Applikationen, die keine Statusdaten brauchen, ist stateless (Default) sinnvoller, da nicht unnötig Ressourcen im SAP-System belegt werden. In den Eigenschaften einer BSP-Anwendung läßt sich festlegen, ob die gesamte Anwendung stateful oder stateless gehandhabt wird. Aber es ist auch möglich, zwischen stateful und stateless zur Laufzeit umzuschalten (gemischte BSP-Applikation). Dies wird zur LZ erreicht durch das Setzen des Attributs keep_context des Objekts runtime (Typ if_bsp_runtime). Das Umschalten ist in den Eventhandlern möglich. Typischerweise würde die Anwendung stateful geschaltet, wenn der Anwender Daten eingibt, die im weiteren Verlauf der Anwendung weiterhin benötigt werden. Da stateless BSP-Anwedungen keinen Kontext auf dem NWAS für den User speichern, kann jeder Teilschritt einer Webanwendung von einem anderen NWAS eines verteilten SAP-Systems bearbeitet werden im Gegensatz zu einer klassischen SAP-Anwendung, bei der der User nach seiner Anmeldung (via Message Server) einem bestimmten NWAS fest zugeteilt wird und im Rollbereich dieses NWAS ein entsprechender Userkontext gehalten wird. In einer stateless BSP-Anwendung wird somit Session-Stickness vermieden und die Skalierbarkeit des Systems verbessert! Dagegen erzwingen statefull BSP-Anwendungen Session-Stickness durch das Halten von User-Kontext auf einem der NWAS. Aufeinander folgende Request der gleichen Session können nicht auf verschiedene NWAS verteilt werden, da der Userkontext nur auf einem NWAS gehalten wird.

5 Weitergabe von Seitenattribut-Werten innerhalb BSP 1 Wertübergabe bei impliziter + expliziter Navigation : OnInputProcessing Navigation OnInitialization Bereits behandelt (5) Identisch für stateless / stateful Unterschiedlich für AUTO und Nicht-AUTO-Seitenattribute 2 Seitenattribut : test type string Seitenattribut test füllbar in : 1. OnInitialization 2. Layout On Initialization Layout On InputProcessing Form req. res. req. Wert in OnInputProcessing noch gefüllt und abgreifbar? Browser Browser Formular Request-Response-Zyklus = Kontextlebensdauer BSP 1... Identisch für AUTO / Nicht- AUTO-Seitenattribute Unterschiedlich für stateless und stateful Anwendungen Bereits behandelt wurde die Übergabe von Seitenattribut-Werten aus dem Zeitpunkt OnInputProcessing an OnInitialization. Hier wurden verschiedene Arten der Navigation auf die gleiche oder eine andere BSP unterschieden. Es ging um die Wertübergabe: OnInputProcessing ( Navigation ) OnInitialization Das Verhalten hing nicht davon ab, ob die BSP-Anwendung stateful oder stateless lief. Dagegen war entscheidend, ob es sich um ein Auto-Seitenattribut oder Nicht-Auto-Seitenattribut handelte. Nun betrachten wir die Übergabe von Seitenattribut-Werten aus den Zeitpunkt OnInitialization, Layout und Formbearbeitung an OnInputProcessing. Es geht um die Wertübergabe: OnInitialization / Layout / Formular OnInputProcessing Das Verhalten hängt nicht davon ab, ob es sich um ein Auto-Seitenattribut oder Nicht-Auto- Seitenattribut handelt. Dagegen ist es entscheidend, ob die BSP-Anwendung stateful oder stateless läuft.

6 Weitergabe von Seitenattribut-Werten innerhalb BSP (6) Seitenattribut test gefüllt in: 1. OnInitialization 2. Layout 3. Form Zugriff in: OnInputProcessing Identisch für AUTO / Nicht- AUTO-Seitenattribute Unterschiedlich für stateless und stateful Anwendungen Noch gefüllt + abgreifbar in OnInputProcessing : Seitenattribut stateless stateful gefüllt in : OnInitialization nein ja Layout nein ja Form (Benutzereingabe) ja ja request get_form_field( ) Man bewegt sich in ein und derselben BSP-Seite Dennoch Seitenattribut-Werte nicht ständig verfügbar! BSP-Seitengrenzen nicht identisch mit Umfang eines Request-Response-Zyklus! In der Tabelle ist das Verhalten einer stateful- und stateless-bsp-anwendung gegenübergestellt. Wenngleich man sich ständig innerhalb einer BSP-Seite bewegt, stehen die einmal gefüllten Seitenattribut-Werte nicht ständig zur Verfügung - was eventuell der Intuition widerspricht.

7 Halten von Kontextdaten in stateless BSP- Anwendungen : Hidden Fields + Clientseitige Cookies + Serverseitige Cookies (7) HTTP ist stateless, aber : Betriebswirtschaftliche Transaktionen benötigen internen Zustand = Userkontext Dieser ist der Inhalt der laufenden Session + einem Client = User zugeordnet Abhilfe / Workaround : Zustand als Datenpaket zwischengespeichert - durch Serverprogramm auswertet : Korrekte Fortsetzung der Transaktion Generieren der korrekten Response 1. Unsichtbare Eingabeelemente <input type=hidden > 2. Clientseitige Cookies 3. Serverseitige SAP-"Cookies" auf DB 4. HTML5 : Web Storage ( sessionstorage + localstorage ) Typischer Anwendungsfall : Warenkorb-Zuordnung Ein gutes Beispiel für die Notwendigkeit, den Benutzerkontext (Zustand) aufzubewahren ist der Warenkorb eines OnlineShops: Die Auswahl des Besuchers muss im Warenkorb gespeichert bleiben, selbst wenn zwischendurch die Verbindung unterbrochen wird. Wenn der Kunde, nachdem er einige Waren aufgenommen hat, eine andere Webseite aufsucht und dann zum Onlineshop zurückkehrt, sollen alle Inhalte und Details des Warenkorbes noch vorhanden sein. Dazu müssen diese Informationen als Kontext gespeichert werden. Die Gedächtnisfreiheit von HTTP (und somit das wiederholte Einlesen von Daten) läßt sich auch in einer stateless BSP-Anwendung durch verschiedene Techniken umgehen: a) Unsichtbares Eingabeelement: Ablegen von Daten in einem HTML-Formular durch hidden fields. Diese werden über mehrere Seiten hinweg innerhalb von Forms übertragen. b) Cookies (client- und serverseitig): Das ICF bietet Methoden zum Senden und Empfangen von Cookies. Die Lebensdauer von Cookies kann bestimmt werden.

8 Hidden Fields Für Benutzer unsichtbares Weiterreichen von Formulardaten = Name-Wert-Paare über mehrere Seiten Behandlung analog zu sichtbaren Formularfeldern In BSP mit navigation set_parameter( ) an Folgeseite first.htm <form > Layout <input type = "TEXT" name = "NAME" > <input type = "HIDDEN" name = "user" value = "13" > <input type = "SUBMIT" name = "OnInputProcessing(Opt)" value = "Ab!" > </form > Form 13 Form 13 Form Hidden field (8) Web Server CASE event_id. OnInputProcessing WHEN 'Opt'. navigation set_parameter( 'user' ). navigation goto_page( 'next.htm' ). ENDCASE. next.htm Seitenattribut Auto user X In einem HTML-Formular sind für den Anwender nicht sichtbare, versteckte HTML-Input-Felder vom Typ hidden mit zugewiesenen Werten abgelegt. Nach Versand des Formulars mittels Submit kann das versteckte Textfeld auf dem Server ausgelesen und die Information weiterverarbeitet werden. Der Inhalt versteckter Textfelder (hidden fields) wird innerhalb eines HTML-Formulars versteckt mitgesendet. Diese Informationen sind - analog zu sichtbaren INPUT-Feldern - in Name-Wert-Paaren zusammengefasst. Man nutzt dieses Verfahren, um Variablen, die auf mehreren oder allen Seiten der Anwendung benötigt werden, durchzuschleifen, dh von Seite zu Seite zu übergeben. Für eine BSP ist es irrelevant, ob Werte aus einer Form als Typ = "hidden" oder Typ = "text" beim Request mitgesendet werden. Damit die eingegebenen Daten auch in der Folgeseite verarbeitet werden können, muss in allen Fällen mit navigation set_parameter() der Wert weitergeleitet werden. Die Folgeseite muss ein gleichnamiges Auto-Seitenattribut besitzen, um den Wert entgegennehmen zu können. Mit der Technik der versteckten Felder lassen sich somit Informationen über mehrere Seiten in HTML-Formularen übertragen. Dazu muss das Name-Wert-Paar auch in den Folgeseiten wiederum als hidden field an deren Folgeseiten übertragen werden. Eine typische Anwendung ist die Weitergabe von User- bzw. Rolleninformationen innerhalb einer stateless BSP-Anwendung. Dies kann alternativ natürlich auch mit Cookies geschehen. Es ist nicht möglich, die Werte interner Tabellen auf diese Weise zu übertragen! Zum Weiterreichen derselben hidden fields über mehrere Seiten einer BSP-Anwendung sind Seitenfragmente gut geeignet. Nachteile: Es ist umständlich, die hidden fields in allen relevanten Seiten zu deklarieren. Ferner gibt es browserabhängige Größenbegrenzungen für Formularfelder. Somit eignen sich hidden fields nur für kleine Steuerungs-Kontexte.

9 Client- Cookies HTTP- Cookie : (9) Bis zu 4 KB pro Cookie, nur Strings Request Response Maximal 300 pro Client Maximal 20 pro Server oder Domäne Von Server mit HTTP-Response gesendet HTTP-Client (Browser) Request HTTP-Server Vom Client mit nächsten Request automatisch zur selben Server-URL zurückgeschickt. Lebendauer : - temporär - persisitent (mit Verfallsdatum) Data: booklist type string. OnInputProcessing request get_cookie( exporting name = 'basket' importing value = booklist ). * Cookie-Datenstring booklist in interne Tabelle überführen * Interne Tabelle = Einkaufskorb verwalten * Interne Tabelle wieder in Cookie-Datenstring booklist überführen * response set_cookie( exporting name = 'basket' value = booklist expires = 'TUE, 30-MARCH-13 23:59:59 GMT ' ). BSP-Objekte und Methoden zum Auslesen und Übergeben von Cookies an HTTP Keine internen Tabellen - müssten serialisiert werden SS0-Tickets + SessionIDs werden als nichtpersistente Cookies geführt Lebensdauer + Gültigkeit für eine Session SSO-Cookie = MYSAPSSO2 Eigenschaften eines HTTP-Client-Cookies: Bis zu 4 KByte Textdaten werden vom Server in der angeforderten HTTP-Response eingebettet und mitgesendet. Den Inhalt des Cookies legt der Server fest. Cookies können serverseitig gesetzt und bereits im HTTP-Protokollkopf mitgeschickt werden - oder mittels des JS-Objekts document.cookie clientseitig erst beim Aufbau der HTML-Seite im Browser gesetzt werden. Die Wirkung ist dieselbe: Bei jedem folgenden Request werden die Cookie- Daten im HTTP-Protokollkopf zurück an den Server gesendet. Das Cookie enthält : 1. Die zu sichernde Information - benutzerbezogene Zustandsinformationen, z.b. fortlaufende Nummern für den Zustand einer Transaktion, oder der aktuelle Inhalt eines Warenkorbs. (Name- Wert-Paare). 2. Die Gültigkeitsdauer. 3. Die URL des Ursprungsservers (Domain). Nachteil von Client-Cookies: Da sie Teil des HTTP-Protokolls sind, können sie nur Felder vom Typ String enthalten keine internen Tabellen. Da sie bei jedem Request mitgesendet werden erzeugen Cookies auch Netzlast. Ein Cookie kann von einem Server nicht aktiv angefordert werden. Der Server sendet Cookies zum Browser. Der Client-Browser schickt den Inhalt des Cookies beim nächsten HTTP-Request zum gleichen Server automatisch wieder mit. Die Lebensdauer ist entweder a) temporär - der Browser hält den Cookie nur im Speicher, mit Ende der Browser-Session geht der Cookie verloren. Oder b) persistent - der Browser speichert das Cookie lokal in einem festgelegten Verzeichnis, so dass es in der nächsten Browser-Session wieder ausgelesen werden kann. Der Server gibt dazu dem Cookie ein Verfallsdatum (expiration date) mit, nach dessen Ablauf der Browser den Cookie nicht mehr sendet. Browsereinstellungen legen fest, ob Cookies überhaupt oder erst nach Nachfrage angenommen werden sollen. Sie lassen sich durch den Browseruser abschalten. Somit sind clientseitige Cookies kein sicheres Mittel. Clienseitige Cookies sollten also nicht als "Basisfunktionalität" einer Anwendung eingesetzt werden, sondern allenfalls als Ergänzung. Sicherlich ist es nicht sinnvoll, sensible Daten als Browser-Cookie abzulegen.

10 Client- Cookies Zahlreiche(!) weitere Methoden zur Cookie-Manipulation im Interface IF_HTTP_ENTITY (10) Importparameter von set_cookie( ) Name Typ Bedeutung name String Name des Cookies value String Wert des Cookies domain String Domäne der aufgerufenen Seite. Wenn nicht gesetzt, dann Hostname des sendenden Servers path String Gültiges Verzeichnis auf Server; Default = Pfad der aktuellen Seite expires String Zeitstempel, legt Ende der Lebensdauer fest. Format: Wdy, DD-Mon-YY HH:MM:SS GMT zb Tue, 30-March-12 23:59:59 GMT secure i Wert : 1 Cookie nur über HTTPS-Verbindung sendbar Wert : 0 Cookie auch über ungesicherte Verbindung sendbar Mögliche Aufrufzeitpunkte von : get_cookie: OnRequest, OnInitialization, OnInputProcessing, OnManipulation set_cookie: OnInitialization, OnManipulation Das ICF bietet in IF_HTTP_ENTITY Methoden zum Versenden und Empfangen clientseitiger Cookies. Diese Methoden stehen über die automatisch instantiierten Objekte request und response zur Vfg. Man kann einen beliebigen String im Cookie ablegen. Die Lebensdauer des Cookies ist durch einen Zeitstempel steuerbar: Wenn man kein Verfallsdatum angibt, wird das Cookie beim Schließen des Browsers (Sessionende) gelöscht. Soll das Cookie auf dem Client abgelegt werden, dann muss dem Cookie in der Methode set_cookie() ein Verfallsdatum mitgegeben werden. Cookies mit abgelaufenem Verfallsdatum werden nicht mehr an den Server gesendet. Vom WAS aus können clientseitige Cookies gelöscht werden. Dazu sendet man das Cookie erneut an den Client, datiert das Verfallsdatum jedoch in die Vergangenheit. Das Pfad-Attribut beschränkt das Cookie auf bestimmte Server-URLs. Der Wert '/' drückt aus, das das Cookie für alle URLs auf dem Server gültig ist. Weitere mögliche Werte sind z.b. runtime- >runtime_url oder runtime->page_url. Die Klasse CL_BSP_UTILITY verfügt über die statsiche Methode data_to_string_http, mit der sich ein Zeitstempel im gewünschten Format erzeugen lässt: Data: ts TYPE bsptimestamp, tss(14) TYPE c. ts-date = sy-datum. ts-time = sy-uzeit. tss = ts. Cl_BSP_UTILITY date_to_string_http( timestamp = tss ). Die Objekte request und response stehen mit ihren Methoden nur zu den angegebenen Zeitpunkten zur Vfg. Zu anderen Zeitpunkten kann man sich die aktuellen Instanz-Referenzen über die Referenz page der aktuellen BSP-Seitenklasse beschaffen: Data: response TYPE REF TO if_http_resonse, request TYPE REF TO if_http_request. response = page get_response( ). request = page get_request( ).

11 Cookies auf Server : Serverseitige SAP- Cookies (11) HTTP-Client (Browser) Request Response Request WAS DB Serverseitiges Cookie : Speichern von Kontext in stateless- Anwendungen Server-Cookie : - Speichern von Zustandsdaten, Kontext in DB-Tabelle sscookie - Beliebige Typen und Mengen Einzelwerte, Strukturen, ganze Tabellen - Lebensdauerkonzept - Zugriff durch statische Methoden der Klasse CL_BSP_SERVER_SIDE_COOKIE Vorteil : Ergebnisse komplexer Selects für direkten Wiederzugriff abgelegt Standardprogramme : BSP_SHOW_SERVER_COOKIES : zeigt alle Server-Cookies an BSP_CLEAN_UP_SERVER_COOKIES : löscht alle abgelaufenen Server-Cookies Serverseitigen SAP-Cookies: Serverseitige Cookies sind persistente Daten (Felder, Strukturen, ganze Tabellen) und werden in der DB des Systems abgelegt. Somit ist das Setzen und Lesen eines Server-Cookies ein DB-Zugriff. Sie werden nicht zwischen Client und Server hin und her transferiert. Es existiert ein Verfallszeitmechanismus. Ihr Vorteil: Man kann beliebig viele anlegen und sie haben unbegrenzte Größe. Anwendungsdaten werden in oft komplexen select-anweisungen aus mehreren DB-Tabellen zusammengestellt. Indem man die einmal in einer internen Tabelle gesammelten Daten in Form eines serverseitigen Cookies auf der DB ablegt... vermeidet man wiederholte komplexe Select-Anweisungen, und greift stattdessen die gewünschten Daten in einem einfacheren Zugriff ab. beschränkt man den DB-Zugriff auf die gewünschte Menge. Somit kann der Einsatz von Server-Cookies die Performanz steigern. Die Klasse CL_BSP_SERVER_SIDE_COOKIE stellt Methoden zum Arbeiten mit serverseitigen Cookies zur Vfg. Folgende Standardprogramme sind hilfreich: BSP_SHOW_SERVER_COOKIES : zeigt alle Server-Cookies an BSP_CLEAN_UP_SERVER_COOKIES : löscht alle abgelaufenen Server-Cookies Sollte als periodischer Batch-Job vom WAS-Admin eingeplant werden, da Server-Cookies, deren Verfallszeit abgelaufen ist, nicht automatisch gelöscht werden. Das Programm besteht nur aus einer Zeile: delete from sscookie where expiryd lt sy-datum. Jedoch wird beim Auslesen ein serverseitiges Cookie automatisch aus DB gelöscht. Soll es erhalten bleiben, muss es sofort im Anschluss an den Lesevorgang wieder auf die DB geschrieben werden. Die Verfallszeit kann in Sekunden oder Tagen angegeben werden.

12 SAP-Server-Cookies : CL_BSP_SERVER_SIDE_COOKIE * Server-Cookie Schreiben : Cl_BSP_SERVER_SIDE_COOKIEset_server_cookie ( exporting name = 'booklist' application_namespace = runtime application_namespace application_name = runtime application_name username = sy-uname session_id = runtime session_id data_name = 'it_book_data' data_value = it_book_data expiry_time_rel = 3600 ). Server-Cookie hier angelegt für : - aktuellen User (12) - aktuelle Anwendung - aktuelle Session Nur für diese später auch zugreifbar Server-Cookie auch unabhängig von bestimmter Anwendung, Session, User speicherbar In diesem Fall: application_namespace = 'NONE' application_name username session_id = 'NONE' = 'NONE' = 'NONE' Anwendungsname und Session-ID als Attribute des globalem Objekt runtime in allen Eventhandlern und Layout zur Vfg. Die Methodenparameter von set_server_cookie() und ihre Bedeutung: name username übereinstimmen data_name data_value expiry_time_rel expiry_date_rel expiry_time_abs expiry_date_abs Beliebiger Name des Cookies als String Beleibiger Benutzername als String, muss nicht mit sy-uname Datenname als String muss identisch mit 'data_value' sein Dateninhalte beliebigen Typs, auch interne Tabellen Relative Lebensdauer in Sekunden als Integer Relative Lebensdauer in Tagen als Integer Absolute Lebensdauer als Zeitfeld vom Typ T Absolute Lebensdauer als Datumsfeld vom Typ D Mit den Parametern data_value und data_name werden zu sichernder Datenobjektinhalt und Datenobjektname festgelegt. Dies ist notwending, wel die Cookie-Daten in einer generischen Clustertabelle auf der DB gespeichert werden. Zur endeutigen Identifizierung eines Server-Cookies sind die Session-ID sowie Benutzer- und Anwendungsname geeignet. Diese Werte stehen als Attribute des automatisch instantiierten Objekts runtime zur Vfg. Man kann ein Server-Cookie auch Anwendungs-, Session- und Benutzer-unabhängig ablegen! In diesem Fall würde man den Parametern: application_namespace application_name username session_id einfach zb als Default den String-Wert 'NONE' zuweisen. Auf Server-Cookies deren Vefallszeit abgelaufen ist, kann nicht mehr zugegriffen werden. Sie werden jedoch nicht automatisch aus der DB gelöscht.

13 SAP-Server-Cookies : CL_BSP_SERVER_SIDE_COOKIE (13) * Server-Cookie Lesen Data: ex_d type SYDATE. Data: ex_t type SYTIME. Cl_BSP_SERVER_SIDE_COOKIEget_server_cookie ( exporting name = 'booklist' application_namespace = runtime application_namespace application_name = runtime application_name username = sy-uname session_id = runtime session_id data_name = 'bookshop_data' importing expiry_date = ex_d expiry_time = ex_t changing data_value = it_book_data ). Alle Parameter außer Lebensdauer sind auch beim Auslesen mitzugeben * Server-Cookie Löschen - unahängig von Lebensdauer Cl_BSP_SERVER_SIDE_COOKIEdelete_server_cookie ( ). Alle Parameter (außer der Lebensdauer) müssen auch beim Lesen wieder mitgegeben werden, damit das richtige Cookie gefunden wird. Die Methode get_server_cookie() liefert auserdem die Lebensdauer des Server-Cookies zurück, und zwar als Datums- oder Zeitfeld in Form der SAP-Dictionary-Datentypen SYDATE und SYTIME. Es existiert eine eigene Methode delete_server_cookie(), um das Cookie manuell (unabhängig von seiner Lebensdauer) aus der DB zu löschen: Cl_BSP_SERVER_SIDE_COOKIE delete_server_cookie ( exporting name application_namespace application_name username = 'booklist" = runtime application_namespace = runtime application_name = sy-uname session_id = runtime session_id ). Anmerkung: Der Hauptspeicher des NWAS scheidet zum Zwischenspeichern von Sitzungs-daten aus, da die Session bei jedem Request auf einer anderen Maschine bearbeitet werden kann, falls es sich um ein SAP-System aus mehreren WAS handelt. Die Verteilung des Speicherinhalts auf alle Applikationsserver wäre zu aufwendig.

14 Datenhaltung bei Stateless-Anwendungen Quelle: [WOLF03] (14) via Netzwerk via Datenbank Hidden Field, set_parameter() - Begrenzte Datenmenge - Benötigt keine DB-Zugriffe - Belastet das Netzwerk Client-Cookie - Begrenzte Zahl und Datenmenge - Vom Browser-User abschaltbar - Benötigt keine DB-Zugriffe - Belastet das Netzwerk Server-Cookie + DB-Ablage - Unbegrenzte Datenmenge - Schont das Netzwerk - Belastet die DB-Performanz - Belegt DB-Speicher - Regelmäßiges "Säubern" nötig Stateful oder Stateless : Sehr grosse Zahl gleichzeitiger User Komplexere Anwendung, wenige User, aufwendige DB-Zugriffe stateless stateful Auch - oder gerade - in stateless Applikationen stellt sich die Frage, wie trotz Verlustes des Anwendungskontextes nach jedem Request, z.b. Benutzereingaben über mehrere Requests hinweg gerettet werden können. Hierzu ist entsprechende Funktionalität zu programmieren. Es gibt zwei Verfahrensgruppen - Verwendung des Netzwerks bzw der Datenbank. Je kleiner die zu haltende Datenmenge (bis zu wenigen kb), desto effizienter ist die Netzwerk- Lösung. Wird die bei jeder Benutzeraktion über das Netz zu übertragende Datenmenge größer, resultieren jedoch schnell nicht mehr akzeptable Antwortzeiten. Die Datenbank hat den Vorteil, dass in ihr auch grosse Datenmengen verarbeitet werden können. Allerdings ist die Datenbank der "bottleneck" des SAP-Systems. Daumenregel: stateful oder stateless? Als Daumenregel gilt, daß Internetszenarien, die von einer potenziell sehr großen Anzahl Benutzer gleichzeitig genutzt werden, eher stateless arbeiten sollten. Komplexere Anwendungen, die von einer begrenzten Anzahl Benutzer parallel eingesetzt werden und die über einem teurer zu ermittelnden Datenbestand operieren, bieten sich eher für das stateful Programmieren an. Stateless BSP-Applikation blockieren nur dann Server-Ressourcen, solange ein einzelner Request bearbeitet wird. Nach Abarbeitung des Requests werden alle Ressourcen an das System zurückgegeben und für andere Requests eingesetzt. Stateless Applikation erlauben somit aus Sicht der Ressource "Speicher" eine optimale Skalierung. Andererseits kann das Freigeben des Anwendungskontext nach jedem Request erfordern, dieselben Daten mehrfach aus der Datenbank zu lesen und aufzubereiten. Somit wird die Einsparung an Speicher durch Laufzeit-Einbußen möglicherweise kompensiert. Dies ist von Fall zu Fall genau zu analysieren und zu beurteilen.

15 Zustände BSP-Anwendung (15) Quelle: Heinemann, Rau 2005 Stateful : Seiten-Objekt bleibt erhalten OnCreate nur einmal durchlaufen! OnDestroy gar nicht! Die Aufrufabfolge der Event-Handler ist abhängig vom Zustandmodell der BSP-Applikation bzw. - Seite, da sich der Aufruf der Events nach der Lebenszeit des BSP-Seitenobjekts richtet. Stateless-Modell: Bei der Bearbeitung eines Request überprüft die BSP-Laufzeit, ob für die angeforderte Seite bereits ein Seitenobjekt existiert. Falls kein Seitenobjekt existiert, wird der OnCreate-Handler aufgerufen und durchlaufen und für die Seite ein Seitenobjekt erzeugt. Auto- Seitenattribute werden übernommen, so dass sie der Seite zur Vfg stehen. Es folgt OnRequest. Falls eine Benutzeraktion voranging, wird OnInputProcessing angestoßen. Dessen Programmcode kann auf eine andere Seite navigieren oder auf der Seite verbleiben. Im ersten Fall wird der OnDestroy-Handler aufgerufen und das Seitenobjekt zerstört. Daraufhin beginnt der Zyklus für die annavigierte Seite von Neuem. Im zweiten Fall würde OnInitialization derselben Seite aufgerufen. Im Anschluss erfolgt das Zusammenführen statischen Layout-HTMLs und dynamischen ABAP-Layout-Codes und die Einbettung in einen HTTP-Datenstrom im OnLayout-Handler. Danach wird OnManipulation aufgerufen; hierin kann der Datenstrom noch verändert werden. Daraufhin wird OnDestroy angestoßen und das Seitenobjekt gelöscht. In OnDestroy bietet es sich im stateless-fall an, Zustandsdaten zu sichern. Abschließend wird der HTTP-Datenstrom an den Client geschickt. Das Stateful-Modell unterscheidet sich im Ablauf der Handler vom Stateless-Modell nur bezüglich des OnCreate- und OnDestroy-Events. Im Statefull-Modell bleiben die Seitenobjekte einer BSP- Applikation für die gesamte Dauer der BSP-Session erhalten. Daher wird OnCreate für jede BSP-Seite nur einmal ausgeführt. Das Event OnDestroy wird im Stateful-Fall überhaupt nicht prozessiert, da während einer Stateful- Session keine Seitenobjekte zerstört werden.

16 Online Text Repository OTR : Internationalisierung (16) Ziel: OTR: Anwendung in mehreren Sprachen (sprachunabhängig) Zentrale paketspezifische Textablage + Dienste zur Texterfassung und Übersetzung OTR-Tags im BSP-Layout verwendbar Textarten : 1. Kurztexte (Aliastexte): Unter Aliasnamen paketweit ansprechbar <%=OTR( Aliasname )%> 2. Langtexte: Direkt in OTR-Tags eingeschlossen language = "abap" %> <html> <head> <title> OTR-Texte </title> </head> <body> <otr> Dieser Text ist lang und kommt nur einmal vor. Deshalb im OTR als Langtext abgelegt </otr> <center> <%=otr( zbsptest/gruss ) %> </center> </body> </html> Paketname immer Teil des Aliasnamens! <OTR>... </OTR> Alle BSP-Seiten und Seitenfragmente können auf alle OTR-Texte des Pakets zugreifen Pflege der OTR-Texte : a) Kurztexte aus Layout durch Doppelklick auf OTR-Referenz (Vorwärtsnavigation ins Pflegebild für OTR-Texte) b) durch Menü Springen OTR Browser c) durch Direkteinstieg in TA SOTR_EDIT Übersetzung der OTR-Texte : Springen Übersetzung OTR Kurztexte / Langtexte Weitere Infos in [WOLF03] Das OTR ist die zentrale Textablage. Im BSP-Layout können OTR-Direktiven eingesetzt werden. OTR-Objekte sind einem Paket zugeordnet und werden in Transportaufträge aufgenommen. Damit eine BSP-Anwendung in mehreren Sprachen zur Vfg steht, sollte man im Layout alle übersetzungsrelevanten Teile als OTR-Texte angeben. (Übersetzung in TA SE63). Es werden Langtexte und Kurztexte unterschieden, wobei die absolute Länge des abgelegten Textes nicht wesentliches Untescheidungsmerkmal ist. Wichtiger ist die Häufigkeit des Vorkommens: Kommt ein Text nur einmal in einer BSP-Anwendung vor, dann wird der Text als Langtext im OTR abgelegt. Man legt einen Langtext an, indem man im Layout der BSP den Text selbst zwischen die Tags <OTR>... </OTR> schreibt und die Seite aktiviert. Dadurch wird der Text automatisch ins OTR eingetragen. Langtexte stehen für sich selbst, dh sind nicht über einen Aliasnamen oder Schlüssel erreichbar. Wird dagegen ein Text häufig gebraucht, wird der Text unter einem Aliasnamen als Kurztext im OTR abgelegt. Über diesen Aliasnamen ist dieser Text paketweit ansprechbar und somit wiederverwendbar. Die Übersetzung muss nur einmal erfolgen. Das Anlegen von Kurztexten erfolgt durch Schreiben des Tags <%=OTR(Aliasname)%> und Doppelklick auf den Aliasnamen. Auf einem Bildschirmbild kann man den Aliasnamen, die maximale Textlänge und den Text pflegen. Der Aliasname beginnt immer mit dem Namen des zugeordneten Pakets. Um Texte zu übersetzen, muss durch das Menü Springen Übersetzung OTR Langtext in die Übersetzung verzweigt werden. Man erhält einen Überblick über alle dem Paket zugeordneten OTR-Texte im OTR-Browser, erreichbar durch das BSP-Layout-Menü Springen OTR Browser. Im OTR wird auch ein Kontext zu jedem OTR-Objekt (Ersteller, Datum,...) gespeichert.

17 OTR Notation <%=otr( aliasname )%> nur im Layout-Bereich anwendbar. Jedoch auch in Eventhandlern und Anwendungsklasse Zugriff auf Kurztexte mittels runtime-objekt oder Klasse CL_BSP_GET_TEXT_BY_ALIAS : (17) DATA: alias TYPE STRING, text TYPE STRING. alias = ' zbsptest/gruss '. text = runtime get_otr_text( alias ). CL_BSP_GET_TEXT_BY_ALIAS get_text ( exporting language = 'EN' alias = alias importing alias_text = text ). OTR-Texte können in Übersetzungsvarianten unterschiedliche Länge aufweisen Abschneiden überschüssiger Leerzeichen im Layout durch BSP-Seitendirektive : language="abap" otrtrim="true" %> Die OTR-Referenz <%=otr( aliasname )%> wird intern in einen Methoden-aufruf der runtime-instanz aufgelöst. Der Methodenaufruf cl_bsp-runtime=>get_otr_text() kann auch in den Eventhandlern und der Anwendungsklasse erfolgen - aber auch in Reports und konventionellen ABAP-Programmen außerhalb der BSP-Programmierung. Vertiefung siehe [WOLF03]. Eine Anwendungsmöglichkeit ist die sprachunabhängige Hinterlegung von Fehlermeldungen, die beim Prozessieren der Eventhandler erzeugt werden - oder die Wiederverwendung von Texten auch innerhalb derselben Sprache. OTR-Texte werden auf dem WAS gepuffert - dies macht den Zugriff schnell. Durch das Systemkommando /$otr kann der OTR-Puffer manuelle zurückgesetzt werden, wenn Textänderungen vorgenommen worden sind. Auch mittels der Klasse CL_BSP_GET_TEXT_BY_ALIAS kann auf OTR-Texte zugegriffen werden. Die Klasse hat nur eine statische Methode get_text(). Hier kann auch die gewünschte Sprache als Parameter übergeben werden. Somit können auch Texte in Sprachen verwendet werden, die nicht der Anmeldesprache des Benutzers entsprechen. Damit eine BSP in der gewünschten Sprache angezeigt wird, muss diese Sprache im benutzten Service hinterlegt sein. Dazu werden in der TA SICF Alias-Services eingerichtet. OTR-Texte können Parameter beinhalten. Hierzu wird der Platzhalter für den Parameter durch das & eingeschlossen. Nur Buchstaben, Ziffern und Unterstrich sind erlaubt. Zur Laufzeit wird dann der benannte Platzhalter durch einen Wert (zb Seitenattribut) ersetzt. Wenn man einen OTR-String anlegt und in verschiedene Sprachen übersetzt, so wird die Länge der übersetzten Strings in der Regel in den verschiedenen Sprachen unterschiedlich sein. Ein langer OTR-String könnte sehr kurze Übersetzungen besitzen. Allerdings wird mit dem String in allen seinen Übersetzungen durch das OTR-System stets nur die Länge des Orginal-Strings gespeichert - und liefert somit eventuell OTR-Strings mit überschüssigen Spaces zurück, so dass HTML-Darstellungen unschön verbreitert sind. Die o.a. BSP-Seitendirektive sorgt dafür, dass aus jedem in die Seite eingefügten OTR-Strings überflüssige Spaces entfernt werden.

18 Timeout-Situationen : 1. Session-Timeout Session-Timeout und Processing-Timeout (18) HTTP Server kann nur passiv auf eingehende Client-Requests reagieren. Server merkt nicht, wenn Client abspringt (Browser schliesst, wegnavigiert, untätig ist) Bindet Ressourcen (=Status) auf dem Server Inaktive Sessions nach vorkonfigurierter idle time vom ICM abgeräumt! Ressourcen freigeben, Session gelöscht Maximum idle time : Konfiguriert in Systemprofil-Parameter rdisp/plugin_auto_logout Default : 30 Minuten Gilt für gesamten WAS und alle BSP-Anwendungen. Nicht für einzelne BSP- Anwendungen verlängerbar, Jedoch in SICF verkürzbar Client bekommt timeout allerdings nicht mit, nicht vom Server darüber informierbar. Erst bei nächsten Roundtrip tritt bei User Fehler wegen inaktiver Session auf. Benutzer-Info mittels Workaround : Nach idle time Browser-Fenster via Skript löschen : <script> var T = 31 /*min*/ * 60 * 1000; /*ms*/ window.settimeout( "document.url = 'about:blank' ;", T ) ; </script> Der Session-Timeout bezieht sich auf das Browser-Verhalten: Wenn sich Browser nach Ablauf dieser Zeit nicht mehr meldet wird der Kontext verworfen HTTP ist ein striktes Request/Response-Protokoll; der Server kann nur auf einen Browser-Request hin tätig werden. Der Server kann nicht beim Browser "nachfragen": "Bist du noch da". Er kann höchstens für sich einen internen Timeout setzen und nach dessen Ablauf die Verbindung schliessen. Der Server kann dem Browser zu keinen Zeiten "zwischendurch" Informationen zukommen lassen. Somit kann der Browser auch nicht über eingetretene Session-Timeouts informiert werden. Die Session wird einfach beendet, ohne dass im Browser-Fenster etwas darauf hindeutet. Wenn der User später an seinen Arbeitsplatz zurückkehrt, so sieht er im Browser weiterhin die offene scheinbar noch laufende BSP-Anwendung. Erst bei der nächsten Interaktion tritt ein Fehler auf und der User bemerkt die verlorene Session. Als Hilfe für den User dient das clientseitige JavaScript, das in jede Seite der BSP-Anwendung einzubauen wäre. Solange der User mit der BSP-Anwendung interagiert setzt sich jede neu geladene Seite einen neu initialisiereten Timer. Im Skript gehen wir von einer Server-idle time von 30 Minuten aus. Sollte der User den Browser länger als 31 Minuten nicht bedienen (keine neuen Seiten anfordern) so wird der Brower-Screen gelöscht - und der User bemerkt auf diese Weise, dass die Session serverseitig beendet wurde. Es ist möglich, den Server darüber zu informieren, dass der Browser die BSP-Anwendung verlässt (wegnavigiert oder geschlossen wird), indem das onunload-javascript-event der Seiten verwendet wird und eine JavaScript-Funktion appunload() implementiert wird. Diese wird beim Eintreten von onunload augerufen. Für Details der Lösung (Verwendung von Framesets) verweisen wir auf [MCKE06], S.125ff.

19 Timeout-Situationen : Session-Timeout und Processing-Timeout 2. Processing-Timeout Maximale Prozessdauer für Bearbeitung HTTP-Request durch ABAP-Stack auf Server Bei Überschreiten wird ABAP-Session + BSP-Anwendung abgebrochen (19) Fehlermeldung 500 Connection timed out an Browser In ICM-Verwaltung SMICM eingesehbar : Wird pro offenem HTTP-Port eingestellt Konfigurierbar in Systemprofil-Parameter: icm/server_port Ermöglichen längerer Prozessdauern : Neuen HTTP- Port in SMICM definieren mit längerer maximaler Prozessdauer : Springen Services Service Anlegen und dort Verfügbar nach Neustart NWAS Der "Connection Timeout" ist die Folge eines Überschreitens der maximalen Prozessdauer. Er drückt aus, dass die Verbindung zwischen ICM und ABAP-Stack eine Zeitüberschreitung erfahren hat. Die Fehlermeldung hat nichts zu tun mit einem Session-Timeout (idle timeout). Länger als dieses Zeitintervall darf die Request-Bearbeitung durch die WAS-Workprozesse nicht dauern, sonst wird die Bearbeitung abgebrochen und der User erhält eine Fehlerseite. Wenn dieses Zeit zu knapp eingestellt ist, dann kann nicht mehr richtig debuggt werden, da die Dauer des Debugs einfliesst. In Produktivsystemen ist die maximale Prozessdauer meist auf relativ kleine Werte gesetzt, so dass Workprozesse nicht lange blockiert werden können. Nachteilig kann sein, dass Debuggen von BSP- Anwendungen nicht mehr funktioniert, da der Debug-Vorgang in die Prozessdauer eingeht. Abhilfe schafft das Anlegen eines weiteren HTTP-Ports mit längerer maximaler Prozessdauer. Die URL (Port-Nummer) der BSP-Anwendung muss im Browser entsprechend geändert werden, damit sie beim Aufruf über den neuen Port läuft. Anmerkung: Die keep-alive Zeit (sichtbar in TA SMICM) legt gemäß HTTP1.1 die Zeit in Sekunden fest, die der ICM eine untätige TCP-Verbindung offen hält (und auf einen Browser-Request) wartet, ehe er sie schliesst. Die Wiederverwendung von TCP-Verbindungen verbessert das Antwortverhalten bei HTTP-Requests, da keine erneuten Roundtrips zwischen Browser und Server nötig sind, um eine neue TCP-Verbindung aufzusetzen. Allerdings ist die maximale Zahl gleichzeitig offener TCP- Verbindungen des Servers begrenzt. Deshalb werden nicht verwendete TCP-Verbindungen nach einigen Sekunden idle time geschlossen. Die Profil-Parameter des ICM können in der TA SICM eingesehen werden durch Aufruf des Memüpunkts Springen Parameter Anzeigen. Hier finden sich auch die Einstellungen für maximale Zeitdauern

20 LZ- Fehler-Behandlung (20) Historische BSP Error Pages seit 6.40 inaktiv! BSP Runtime setzt TRY / CATCH um jeden Seitenaufruf. Wenn beim Prozessieren der BSP LZ-Exception auftritt wird Kontrolle an Fehlerseite übergeben Problem : Auch die Fehlerseite ist eine BSP! Nicht sinnvoll bei Schiefstand im BSP-Framework! Neues Konzept ab 6.40 : Wenn Exception auftritt, wird BSP-Framework sofort verlassen + ICF übernimmt Kontrolle ICF-Klasse CL_HTTP_EXT_BSP fängt Fehler aus BSP-Anwendungen + erzeugt generische HTML-Fehlerseite mittels Methode REPORT_ERROR_HTML. Ausprobieren in BSP z.b. mit : <% data: result type i. result = 1 / 0. % > Durch das Konzept der BSP Fehlerseiten konnten in jeder BSP-Anwendung eine oder mehrere BSP-Seiten als Fehlerseiten ausgewiesen werden. Dies geschah einfach durch Setzen eines Eintrags auf der Eigenschaftenseite. Problematisch daran ist, dass es sich bei der Fehlerseite selbst auch um eine BSP handelt. Tritt ein Fehler auf, so startet die Fehlerseite in der fehlerbehafteten Umgebung der Orginal-BSP. Die Fehlerseite hat keine Information darüber, was von der Orginal-BSP bereits in das HTTP response-objekt geschrieben wurde und somit Teil der erzeugten Antwort ist, die an den Client geht. Zudem könnte auch der gesamte BSP-Stack selbst in einem fragwürdigen Zustand sein. Schlimmstenfalls könnte die Fehlerseite selbst einen Fehler auslösen, während sie auf den Fehler der Original-BSP eingeht. Aufgrund dieser Problematik hat SAP ab NWAS 6.40 den Support für das Fehlerseiten-Konzept eingestellt: Alle Fehlerseiten-Einträge auf BSP-Eigenschaftsseiten werden seitdem einfach von der BSP-Laufzeit ignoriert. Allerdings wurde sofort ein neues Konzept ausgeliefert, das BSP-Anwender auch customizen können: Wenn eine LZ-Exception auftritt, so wird das BSP-Framework komplett verlassen und das ICF übernimmt die Kontrolle mit eingestellten Fehlerklassen. Die automatisch erzeugten generischen Fehlerseiten decken die meisten LZ-Fehler-Situationen ab und liefern viele Diagnose-Informationen. Konfigurations-Möglichkeiten: In DB-Tabelle BSPERRHANDLER kann eine andere Fehler-Klasse und ihre Methode hinterlegt werden, die im LZ-Fehlerfall gerufen wird. Mittels Wildcards (*) in der angegebenen URL kann eine Fehlerklasse für eine Gesamtheit von BSP-Anwendungen vorgesehen werden. Die Klasse CL_BSP_ERRHANDLER_SAMPLE enthält ein SAP-Beispiel für eine selbstgeschriebene Fehlerklasse und ihre Methode REPORT_ERROR_HTML. Die Klassen CL_BSP_ERRHANDLER und CL_HTTP_EXT_BSP können als Kopiervorlagen für eigene Fehlerklassen dienen. Man befindet sich dabei jedoch nicht mehr innerhalb des BSP-Frameworks. Somit können BSP Extensions und HTMLB nicht eingesetzt werden! Es ist ein HTML-String zusammenzustellen und dem ICF-response-Objekt zu übergeben: response append_cdata( html ).

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de

Fortgeschrittene Servlet- Techniken. Ralf Gitzel ralf_gitzel@hotmail.de Fortgeschrittene Servlet- Techniken Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Servlet Initialisierung Attribute und Gültigkeitsbereiche Sessions

Mehr

Session Management und Cookies

Session Management und Cookies LMU - LFE Medieninformatik Blockvorlesung Web-Technologien Wintersemester 2005/2006 Session Management und Cookies Max Tafelmayer 1 Motivation HTTP ist ein zustandsloses Protokoll Je Seitenaufruf muss

Mehr

Datenbank-basierte Webserver

Datenbank-basierte Webserver Datenbank-basierte Webserver Datenbank-Funktion steht im Vordergrund Web-Schnittstelle für Eingabe, Wartung oder Ausgabe von Daten Datenbank läuft im Hintergrund und liefert Daten für bestimmte Seiten

Mehr

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten

Dynamik bis zur DB-Interaktion. Marc Schanne. CGI Möglichkeiten CGI einfach PHP Dynamik bis zur DB-Interaktion 1 CGI Möglichkeiten Das Common Gateway Interface (CGI) ermöglicht den Entwurf von interaktiven, benutzergesteuerten Web-Applikationen. Der WWW-Server ruft

Mehr

Sicherheit in Webanwendungen CrossSite, Session und SQL

Sicherheit in Webanwendungen CrossSite, Session und SQL Sicherheit in Webanwendungen CrossSite, Session und SQL Angriffstechniken und Abwehrmaßnahmen Mario Klump Die Cross-Site -Familie Die Cross-Site-Arten Cross-Site-Scripting (CSS/XSS) Cross-Site-Request-Forgery

Mehr

Proseminar Website-Management-Systeme im W intersem ester 2003/04

Proseminar Website-Management-Systeme im W intersem ester 2003/04 Folie 1 Vortrag zum Proseminar Website-Management-Systeme im W intersem ester 2003/04 von Christian Bindseil Oktober 2003 Theoretische Grundlagen Folie 2 Theoretische Grundlagen Theoretische Grundlagen

Mehr

Userhandbuch. Version B-1-0-2 M

Userhandbuch. Version B-1-0-2 M Userhandbuch Version B-1-0-2 M Inhaltsverzeichnis 1.0 Was bietet mir SERVRACK?... 3 1.1 Anmeldung... 3 1.2 Passwort vergessen?... 3 1.3 Einstellungen werden in Realtime übernommen... 4 2.0 Die SERVRACK

Mehr

Anleitung. E-Mail Spam Filter mit Quarantäne Eine kurze Funktionsübersicht. Internet- & Netzwerk-Services

Anleitung. E-Mail Spam Filter mit Quarantäne Eine kurze Funktionsübersicht. Internet- & Netzwerk-Services Anleitung E-Mail Spam Filter mit Quarantäne Internet- & Netzwerk-Services 1. Anmeldung Die Anmeldung erfolgt über: http://mailadmin.tbits.net Jeder Benutzer meldet sich mit der E-Mail-Adresse als Benutzername

Mehr

Call Button / HTTP - Systembeschreibung

Call Button / HTTP - Systembeschreibung Call Button / HTTP - Systembeschreibung Detlef Reil, 14.03.2004, zu Call Button, Version 040127, V1.50 Beta! Software System Für die Kommunikation zwischen den Call Buttons und der Applikation war bisher

Mehr

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1

Active Server Pages. Internetanbindung von Datenbanken. Gliederung. Einführung in ASP. Sessions mit ASP. Datenbankanbindung mit ASP ASP-1 Internetanbindung von Datenbanken Active Server Pages ASP-1 Gliederung Einführung in ASP Sessions mit ASP Datenbankanbindung mit ASP Brunner, Fromm, Huppert ASP-2 Einführung in ASP ASP-3 Entwicklung des

Mehr

Session Storage im Zend Server Cluster Manager

Session Storage im Zend Server Cluster Manager Session Storage im Zend Server Cluster Manager Jan Burkl System Engineer, Zend Technologies Agenda Einführung in Zend Server und ZSCM Überblick über PHP Sessions Zend Session Clustering Session Hochverfügbarkeit

Mehr

4 Business Server Pages Grundlagen

4 Business Server Pages Grundlagen 27 4 Business Server Pages Grundlagen Wie bei zahlreichen Programmier-Tutorial, so wollen wir auch bei den Business Server Pages zunächst einfache Beispieldialoge erstellen, um die Grundlagen der Web-Dialogprogrammierung

Mehr

IRF2000, IF1000 Application Note ModbusTCP API

IRF2000, IF1000 Application Note ModbusTCP API Version 2.0 Original-Application Note ads-tec GmbH IRF2000, IF1000 Application Note ModbusTCP API Version 2.0 Stand: 28.10.2014 ads-tec GmbH 2014 IRF2000 IF1000 2 Inhaltsverzeichnis 1 Einführung... 3 2

Mehr

Web-Programmierung mit dem Business Server Page Framework des SAP Netweaver Application Servers

Web-Programmierung mit dem Business Server Page Framework des SAP Netweaver Application Servers Web-Programmierung mit dem Business Server Page Framework des SAP Netweaver Application Servers (1) Prof. Dr. Herbert Neuendorf neuendorf@dhbw-mosbach.de (Tel: 470) Das BSP-Framework und -Programmiermodell

Mehr

Anwendungsprotokolle: HTTP, POP, SMTP

Anwendungsprotokolle: HTTP, POP, SMTP Anwendungsprotokolle: HTTP, POP, SMTP TCP? UDP? Socket? eingesetzt, um Webseiten zu übertragen Zustandslos Nutzt TCP Client schickt Anfrage ( HTTP-Request ) an Server, Server schickt daraufhin Antwort

Mehr

BusinessMail X.400 Webinterface Mailbox V2.6

BusinessMail X.400 Webinterface Mailbox V2.6 V2.6 Benutzerinformation (1) In der Vergangenheit mussten Sie eine Sperre für Mitteilungen aus dem Internet bzw. die Freischaltung von definierten Partner über ein Formblatt bei der zentralen Administration

Mehr

Collax Web Application

Collax Web Application Collax Web Application Howto In diesem Howto wird die Einrichtung des Collax Moduls Web Application auf einem Collax Platform Server anhand der LAMP Anwendung Joomla beschrieben. LAMP steht als Akronym

Mehr

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs Der Aufbau der MS Outlook Integration orientiert sich stark an den SmarTeam Integrationen zu den MS Office Produkten, wobei

Mehr

Transaktionspixel. Inhalt: Anbindung Bestellsystem Transaktionspixel-Parameter Conversion-Tracking. NetSlave GmbH Simon-Dach-Straße 12 D-10245 Berlin

Transaktionspixel. Inhalt: Anbindung Bestellsystem Transaktionspixel-Parameter Conversion-Tracking. NetSlave GmbH Simon-Dach-Straße 12 D-10245 Berlin Transaktionspixel Inhalt: Anbindung Bestellsystem Transaktionspixel-Parameter Conversion-Tracking NetSlave GmbH Simon-Dach-Straße 12 D-10245 Berlin Telefon +49 (0)30-94408-730 Telefax +49 (0)30-96083-706

Mehr

LHR Modul <>

LHR Modul <<E-Mail-Versand>> LHR Modul LHR E-mail-Versand Seite 1 Inhaltsverzeichnis Neues Modul: E-Mail Versand PDF (passwortgeschützt)... 3 Allgemeines... 3 Allgemeine Einstellungen für die Verwendung des E-Mail-Versandes...

Mehr

Hinweis 1781277 - B2A: Fehlersuche BusinessConnector LStA, LStB, ELStAM

Hinweis 1781277 - B2A: Fehlersuche BusinessConnector LStA, LStB, ELStAM Hinweissprache: Deutsch Version: 1 Gültigkeit: gültig seit 29.10.2012 Zusammenfassung Symptom Der Hinweis bezieht sich auf die Lohnsteueranmeldung(LStA), Lohnsteuerbescheinigung(LStB) und die elektronische

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

PDF FormServer Quickstart

PDF FormServer Quickstart PDF FormServer Quickstart 1. Voraussetzungen Der PDF FormServer benötigt als Basis einen Computer mit den Betriebssystemen Windows 98SE, Windows NT, Windows 2000, Windows XP Pro, Windows 2000 Server oder

Mehr

Installationsanleitung

Installationsanleitung Installationsanleitung POP3 und Bridge-Modus Inhaltsverzeichnis 1 POP3 und Bridge-Modus 2 1.1 Funktionsweise von POP3 mit REDDOXX 2 1.2 Betriebsarten 3 1.2.1 Standard-Modus 3 1.2.2 Bridge-Modus 6 1.2.3

Mehr

!"# $ % Internet Protokolle: HTTP 1/38

!# $ % Internet Protokolle: HTTP 1/38 !"# $ % Internet Protokolle: HTTP 1/38 1 Themenübersicht Schichtenmodell Gopher /FTP Statistik URL Einleitung Anwendungsablauf Beispiel mit Telnet Request, Response Anfragemethoden header Negotiation Proxyserver

Mehr

Outlook Web App 2010. Kurzanleitung. interner OWA-Zugang

Outlook Web App 2010. Kurzanleitung. interner OWA-Zugang interner OWA-Zugang Neu-Isenburg,08.06.2012 Seite 2 von 15 Inhalt 1 Einleitung 3 2 Anmelden bei Outlook Web App 2010 3 3 Benutzeroberfläche 4 3.1 Hilfreiche Tipps 4 4 OWA-Funktionen 6 4.1 neue E-Mail 6

Mehr

Anleitung E-Mail Konfiguration sowie Übersicht Mailprogramm roundcube Inhaltsverzeichnis

Anleitung E-Mail Konfiguration sowie Übersicht Mailprogramm roundcube Inhaltsverzeichnis Anleitung E-Mail Konfiguration sowie Übersicht Mailprogramm roundcube Inhaltsverzeichnis Einführung... 2-3 Servereinstellungen für die Einrichtung auf dem E-Mail Client... 4 E-Mail Adresse / Postfach einrichten...

Mehr

Installation und Dokumentation. juris Autologon 3.1

Installation und Dokumentation. juris Autologon 3.1 Installation und Dokumentation juris Autologon 3.1 Inhaltsverzeichnis: 1. Allgemeines 3 2. Installation Einzelplatz 3 3. Installation Netzwerk 3 3.1 Konfiguration Netzwerk 3 3.1.1 Die Autologon.ini 3 3.1.2

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

PowerBridge MSSQL Beta

PowerBridge MSSQL Beta SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...

Mehr

Web-Programmierung mit dem Business Server Page Framework des SAP Netweaver Application Servers. Prof. Dr. H. Neuendorf

Web-Programmierung mit dem Business Server Page Framework des SAP Netweaver Application Servers. Prof. Dr. H. Neuendorf (1) Web-Programmierung mit dem Business Server Page Framework des SAP Netweaver Application Servers Prof. Dr. H. Neuendorf neuendorf@dhbw-mosbach.de 16 h Vorlesung + Testat in Gruppen Request Skript :

Mehr

Verteilergruppen, Aufgaben definieren und automatisieren

Verteilergruppen, Aufgaben definieren und automatisieren Verteilergruppen, Aufgaben definieren und automatisieren Willkommen an Bord der Rationalisierung. Automatische Informationsverteilung zahlt sich aus. Automatische Verteilung von Auswertungen und Exportdaten

Mehr

AJAX SSL- Wizard Referenz

AJAX SSL- Wizard Referenz AJAX SSL- Wizard Referenz Version 1.0.2+ - 04.04.2011 Präambel Die vorliegende Dokumentation beschreibt den AJAX basierten SSL- Wizard der CertCenter AG. Der SSL- Wizard kann mit wenigen Handgriffen nahtlos

Mehr

Mobile Security Configurator

Mobile Security Configurator Mobile Security Configurator 970.149 V1.1 2013.06 de Bedienungsanleitung Mobile Security Configurator Inhaltsverzeichnis de 3 Inhaltsverzeichnis 1 Einführung 4 1.1 Merkmale 4 1.2 Installation 4 2 Allgemeine

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

Web 2.0 Software-Architekturen

Web 2.0 Software-Architekturen Web 2.0 Software-Architekturen Servlets als Controller einer MVC Web Architektur Prof. Dr. Nikolaus Wulff HTTP und HTML Das HyperText TransferProtokoll (HTTP) beschreibt eine einfache verbindungslose Kommunikation,

Mehr

Mobile Data Monitor Erfassung, Überwachung und Analyse von übertragenen Datenmengen

Mobile Data Monitor Erfassung, Überwachung und Analyse von übertragenen Datenmengen Mobile Data Monitor Erfassung, Überwachung und Analyse von übertragenen Datenmengen Testdokumente Semesterarbeit von: Juli 2005 Mobile Data Monitor Seite 71 / 106 5.3 Testing Folgende Tests wurden durchgeführt.

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Aktuelle Sicherheitsprobleme im Internet

Aktuelle Sicherheitsprobleme im Internet Herbst 2014 Aktuelle Sicherheitsprobleme im Internet Wirtschaftsinformatik: 5. Semester Dozenten: Rainer Telesko / Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Rainer Telesko - Martin Hüsler 1 Inhalt

Mehr

Web Visu Tutorial. Hipecs Web Visu. Übersicht

Web Visu Tutorial. Hipecs Web Visu. Übersicht Revision Date V100 10082011 Hipecs Web Visu Die hipecs (high performance controller system) bietet die Möglichkeit einer sog Web-Visualisierung über den integrierten Webserver Hierfür wird im Standard

Mehr

MAILADMIN. Verwaltung Ihrer Emailkonten mit dem Online-Tool: INHALT. 1. Anmeldung. 2. Das MAILADMIN Menü. 3. Die Domain Einstellungen

MAILADMIN. Verwaltung Ihrer Emailkonten mit dem Online-Tool: INHALT. 1. Anmeldung. 2. Das MAILADMIN Menü. 3. Die Domain Einstellungen Verwaltung Ihrer Emailkonten mit dem Online-Tool: MAILADMIN INHALT 1. Anmeldung 2. Das MAILADMIN Menü 3. Die Domain Einstellungen 3.1 Catch-all adress: 3.2 Die Signature (Unterschrift): 4. Accounts (Postfächer

Mehr

Howto. Konfiguration eines Adobe Document Services

Howto. Konfiguration eines Adobe Document Services Howto Konfiguration eines Adobe Document Services (ADS) Inhaltsverzeichnis: 1 SYSTEMUMGEBUNG... 3 2 TECHNISCHE VERBINDUNGEN ZWISCHEN DEN SYSTEMEN... 3 2.1 PDF BASIERENDE FORMULARE IN DER ABAP UMGEBUNG...

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Manueller Import von Dateien

Manueller Import von Dateien PhPepperShop Enterprise Datum: 22. Mai 2015 Version: 1.2 Manueller Import von Dateien Importe/Exporte Business Connector Glarotech GmbH Inhaltsverzeichnis 1. Manueller Import von Dateien im Caller...3

Mehr

Plone Caching. Oberseminar Content Management Systeme Plone / Zope. Georg Giel, 09 MIM

Plone Caching. Oberseminar Content Management Systeme Plone / Zope. Georg Giel, 09 MIM Plone Caching Oberseminar Content Management Systeme Plone / Zope Georg Giel, 09 MIM Gliederung 1. Grundlegendes 1. Motivation für die Verwendung eines Caches 2. Probleme / Nachteile 3. CMS Anforderungen

Mehr

Benutzerhandbuch Edith-Aktuelles

Benutzerhandbuch Edith-Aktuelles Benutzerhandbuch Edith-Aktuelles Den eigenen Internetauftritt verwalten so geht s! Eine Orientierungshilfe der NetzWerkstatt Programmierung: Die NetzWerkstatt GbR Geschäftsführer: Dirk Meinke und Sven

Mehr

DeskSave 8.2. - Aufruf mit Kommandozeilenparametern möglich - Automatisches Restaurieren bei Auflösungswechsel, Programmstart oder Rückkehr aus

DeskSave 8.2. - Aufruf mit Kommandozeilenparametern möglich - Automatisches Restaurieren bei Auflösungswechsel, Programmstart oder Rückkehr aus DeskSave 8.2 (c) 1998-2008 Thorsten Blauhut DeskSave ist ein anwenderfreundliches Tool, mit dem man das Icon-Layout des Desktops sichern und bei Bedarf wieder restaurieren kann. Eigenschaften: - Sicherung

Mehr

Teamcenter Rapid Start (Rich Client)

Teamcenter Rapid Start (Rich Client) 15.06.15-1 - E:\Stefan\CAD\Teamcenter\TCRS10\Anleitungen\TeamcenterRich.doc Teamcenter Rapid Start (Rich Client) 1. Starten und Beenden - Teamcenter starten (Desktop-Verknüpfung): - Anmeldeinformationen

Mehr

Reporting Services Dienstarchitektur

Reporting Services Dienstarchitektur Reporting Services Dienstarchitektur Reporting Services Dienstarchitektur In Reporting Services wird ein Berichtsserver als ein Windows - Dienst implementiert, der aus unterschiedlichen Featurebere i-

Mehr

Scalera Mailplattform Dokumentation für den Domänenadministrator

Scalera Mailplattform Dokumentation für den Domänenadministrator Scalera Mailplattform Vertraulichkeit Die vorliegende Dokumentation beinhaltet vertrauliche Informationen und darf nicht an etwelche Konkurrenten der EveryWare AG weitergereicht werden. Kontakt Everyware

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

EINRICHTUNG DER PORTMAPPERDIENSTE VON WWW.FESTE-IP.NET!

EINRICHTUNG DER PORTMAPPERDIENSTE VON WWW.FESTE-IP.NET! EINRICHTUNG DER PORTMAPPERDIENSTE VON WWW.FESTE-IP.NET! Auf den folgenden Seiten haben wir verschiedene Anwendungsfälle für unseren IPv6 Portmapper dokumentiert. Bitte bearbeiten Sie immer nur einen Anwendungsfall.

Mehr

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching

1 Einleitung. 1.1 Caching von Webanwendungen. 1.1.1 Clientseites Caching 1.1 Caching von Webanwendungen In den vergangenen Jahren hat sich das Webumfeld sehr verändert. Nicht nur eine zunehmend größere Zahl an Benutzern sondern auch die Anforderungen in Bezug auf dynamischere

Mehr

für den Helpdesk TOPIX Informationssysteme AG

für den Helpdesk TOPIX Informationssysteme AG Ticket-System für den Helpdesk TOPIX Informationssysteme AG Inhalt Tickets...2 Eigenschaften...2 Einstellungen...3 Das erste Ticket...4 Verknüpfungen mit den Tickets...5 Kategorienamen...6 Funktionen in

Mehr

EDV-Hausleitner GmbH Dokumentation Online Bestellungen

EDV-Hausleitner GmbH Dokumentation Online Bestellungen EDV-Hausleitner GmbH Dokumentation Online Bestellungen Von Michael Obermüller Entwicklung EDV Hausleitner GmbH Bürgerstraß 66, 4020 Linz Telefon: +43 732 / 784166, Fax: +43 1 / 8174955 1612 Internet: http://www.edv-hausleitner.at,

Mehr

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus?

Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus? Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus? Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

Dynamische Webseiten

Dynamische Webseiten Dynamische Webseiten Seminar Medientechnik 30.06.2003 Dynamische Webseiten 1 Inhalt Allgemeine Funktionsweise eines Webservers Grundgedanke von dynamischen Webseiten Einschub: Dynamische Seitenerzeugung

Mehr

Anleitung. E-Mail Kontenverwaltung auf mail.tbits.net

Anleitung. E-Mail Kontenverwaltung auf mail.tbits.net Anleitung E-Mail Kontenverwaltung auf mail.tbits.net E-Mail Kontenverwaltung auf mail.tbits.net 2 E-Mail Kontenverwaltung auf mail.tbits.net Leitfaden für Kunden Inhaltsverzeichnis Kapitel Seite 1. Überblick

Mehr

a) WebDav-Laufwerk einrichten (Windows Vista, W7, W8) Seite 2

a) WebDav-Laufwerk einrichten (Windows Vista, W7, W8) Seite 2 DIANIZER 3.0 WEB einrichten Inhalt a) WebDav-Laufwerk einrichten (Windows Vista, W7, W8) Seite 2 b) Dianizer WEB einrichten Seite 5 b1) Rufen Sie Ihre Wunsch-Subdomain auf. Seite 5 b2) Melden Sie sich

Mehr

BSH-FX (File Exchange) Datenaustausch mit registrierten Mailbox-Usern

BSH-FX (File Exchange) Datenaustausch mit registrierten Mailbox-Usern BSH-FX (File Exchange) Dokumentation für BSH-Mitarbeiter und externe Partner für den Datenaustausch mit registrierten Mailbox-Usern Stand: 24.06.2015, Version 1.01 Inhalt Inhalt... 2 Allgemeines zum BSH-FX

Mehr

Ziel des Dokuments: Erläuterung der Infoblox GUI für CVs, Erläuterung der Fehlermeldungen.

Ziel des Dokuments: Erläuterung der Infoblox GUI für CVs, Erläuterung der Fehlermeldungen. Infoblox GUI Ziel des Dokuments: Erläuterung der Infoblox GUI für CVs, Erläuterung der Fehlermeldungen. Inhalt 1. Einleitung... 2 2. Login / Logout ins GUI... 2 3. Assign Fixed IP... 4 4. Add Host... 6

Mehr

telpho10 Update 2.1.6

telpho10 Update 2.1.6 telpho10 Update 2.1.6 Datum: 31.03.2011 NEUERUNGEN... 2 STANDORTANZEIGE GESPERRTER IP ADRESSEN... 2 NEUE SEITE SYSTEM STATUS IN DER ADMINISTRATOR WEB-GUI... 2 NEUE SEITE SNOM FIRMWARE IN DER ADMINISTRATOR

Mehr

Einrichtung eines SQL Server. als Index-Datenbank für Quarantänen. in AntiVir Exchange

Einrichtung eines SQL Server. als Index-Datenbank für Quarantänen. in AntiVir Exchange Avira GmbH Page 1 of 18 Einrichtung eines SQL Server als Index-Datenbank für Quarantänen in AntiVir Exchange Avira GmbH Page 2 of 18 Inhalt EINFÜHRUNG... 3 Vorteil der im Standard verwendeten Jet-DB...

Mehr

Internetprotokolle: POP3. Peter Karsten Klasse: IT7a. Seite 1 von 6

Internetprotokolle: POP3. Peter Karsten Klasse: IT7a. Seite 1 von 6 Internetprotokolle: POP3 Peter Karsten Klasse: IT7a Seite 1 von 6 Alle Nachrichten, die auf elektronischem Weg über lokale oder auch globale Netze wie das Internet verschickt werden, bezeichnet man als

Mehr

SmartExporter 2013 R1

SmartExporter 2013 R1 Die aktuelle Version wartet mit zahlreichen neuen Features und umfangreichen Erweiterungen auf. So können mit SmartExporter 2013 R1 nun auch archivierte Daten extrahiert und das Herunterladen der Daten

Mehr

Proseminar: Website-Management-Systeme

Proseminar: Website-Management-Systeme Proseminar: Website-Management-Systeme Thema: Web: Apache/Roxen von Oliver Roeschke email: o_roesch@informatik.uni-kl.de Gliederung: 1.) kurze Einleitung 2.) Begriffsklärung 3.) Was ist ein Web? 4.) das

Mehr

Verwendung der Support Webseite

Verwendung der Support Webseite amasol Dokumentation Verwendung der Support Webseite Autor: Michael Bauer, amasol AG Datum: 19.03.2015 Version: 3.2 amasol AG Campus Neue Balan Claudius-Keller-Straße 3 B 81669 München Telefon: +49 (0)89

Mehr

Mehr Dynamik in Apex mit Javascript und JQuery. Alexander Scholz its-people

Mehr Dynamik in Apex mit Javascript und JQuery. Alexander Scholz its-people Vortrag zur DOAG Konferenz 2011 Mehr Dynamik in Apex mit und Alexander Scholz its-people 1 Ablauf Thema des Vortragsthemas Motivation Besonderheit des Referenten Alexander Scholz its-people Wie kann in

Mehr

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc.

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 4: Einführung in JavaScript Stand: 03.11.2014. Übung WS 2014/2015. Benedikt Schumm M.Sc. Übung WS 2014/2015 E-Commerce: IT-Werkzeuge Web-Programmierung Kapitel 4: Stand: 03.11.2014 Benedikt Schumm M.Sc. Lehrstuhl für ABWL und Wirtschaftsinformatik Katholische Universität Eichstätt-Ingolstadt

Mehr

Wurm-Lizenzserver Internetverbindung über Port 80 (http) Bei aktiver Firewall muss die Ausnahme für die URL http://ls.wurm.de eingerichtet werden

Wurm-Lizenzserver Internetverbindung über Port 80 (http) Bei aktiver Firewall muss die Ausnahme für die URL http://ls.wurm.de eingerichtet werden Der Wurm Lizenzmanager Der Wurm Lizenzmanager dient als Lizenzserver für Software der Firma Wurm. Die Installation erfolgt auf einem Rechner innerhalb des jeweiligen Intranets. Dadurch kann auf separate

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

Mehr

Dokumentation: Erste Schritte für Endkunden

Dokumentation: Erste Schritte für Endkunden pd-admin v4.x Dokumentation: Erste Schritte für Endkunden 2004-2007 Bradler & Krantz GmbH & Co. KG Kurt-Schumacher-Platz 9 44787 Bochum 1 Einleitung Diese Anleitung ist für Endkunden gedacht, die von Ihrem

Mehr

eoslogistics processing solutions

eoslogistics processing solutions eoscop gmbh Roggenstrasse 5 CH-4665 Oftringen Tel. +41 (0)62 788 44 44 info@eoscop.ch Anleitung / Systemvoraussetzungen innight.web Datum 12.12.2008 Unser Zeichen RM Kontaktperson 1 Inhaltsverzeichnis

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Den Fehler session error bei der Kalenderanmeldung beheben:

Den Fehler session error bei der Kalenderanmeldung beheben: Den Fehler session error bei der Kalenderanmeldung beheben: Sollte bei der Anmeldung am Kalender eine Fehlerseite mit der Meldung session error erscheinen, liegt dies an der Cookieverwaltung des Internet

Mehr

COOKIES WAS SIND COOKIES? WIE SETZEN WIR COOKIES EIN?

COOKIES WAS SIND COOKIES? WIE SETZEN WIR COOKIES EIN? COOKIES Damit dieses Internetportal ordnungsgemäß funktioniert, legen wir manchmal kleine Dateien sogenannte Cookies auf Ihrem Gerät ab. Das ist bei den meisten großen Websites üblich. WAS SIND COOKIES?

Mehr

Wichtige Grundsätze für die Nutzung der E-Mail-Schnittstellen

Wichtige Grundsätze für die Nutzung der E-Mail-Schnittstellen Einleitung Diese Dokumentation soll Ihnen bei der Nutzung unseres Produktes zur Seite stehen. Leider können wir hiermit sicherlich nicht alle Fragen und Fallstricke aus der Welt schaffen, daher scheuen

Mehr

Manuelle Installation des SQL Servers:

Manuelle Installation des SQL Servers: Manuelle Installation des SQL Servers: Die Installation des SQL Servers ist auf jedem Windows kompatiblen Computer ab Betriebssystem Windows 7 und.net Framework - Version 4.0 möglich. Die Installation

Mehr

Rechnernetze Übung 12

Rechnernetze Übung 12 Rechnernetze Übung 12 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Sie kennen sicherlich sogenannte Web-Mailer, also WWW-Oberflächen über die Sie Emails lesen und vielleicht

Mehr

NetMan Desktop Manager Quick-Start-Guide

NetMan Desktop Manager Quick-Start-Guide NetMan Desktop Manager Quick-Start-Guide In diesem Dokument wird die Installation von NetMan Desktop Manager beschrieben. Beachten Sie, dass hier nur ein Standard-Installationsszenario beschrieben wird.

Mehr

Open Catalog Interface (OCI) Anbindung an VirtueMart

Open Catalog Interface (OCI) Anbindung an VirtueMart Ver. 2.5.1 Open Catalog Interface (OCI) Anbindung an VirtueMart Joomla 2.5 und Virtuemart 2.0.6 Ing. Karl Hirzberger www.hirzberger.at Inhaltsverzeichnis Begriffserklärung... 3 OCI für VirtueMart... 4

Mehr

DIskus. E-Mail mit DISKUS. 1. Erzeugen einer E-Mail 2. Versenden der E-Mail 3. Gezippte E-Mail mit HTML-Dateien 4.

DIskus. E-Mail mit DISKUS. 1. Erzeugen einer E-Mail 2. Versenden der E-Mail 3. Gezippte E-Mail mit HTML-Dateien 4. Carl H.Hilgers Technisches Büro DIskus Mikroskopische Diskussion E-Mail mit DISKUS 1. Erzeugen einer E-Mail 2. Versenden der E-Mail 3. Gezippte E-Mail mit HTML-Dateien 4. E-Mail einrichten DISKUS kann

Mehr

Serverumzug mit Win-CASA

Serverumzug mit Win-CASA Serverumzug mit Win-CASA Wenn Sie in Ihrem Netzwerk einen Umzug der Server-Version durchführen müssen, sollten Sie ein paar Punkte beachten, damit dies ohne Probleme abläuft. 1. Nachweis-Ordner In der

Mehr

Stefan Dahler. 1. Konfiguration der Stateful Inspection Firewall. 1.1 Einleitung

Stefan Dahler. 1. Konfiguration der Stateful Inspection Firewall. 1.1 Einleitung 1. Konfiguration der Stateful Inspection Firewall 1.1 Einleitung Im Folgenden wird die Konfiguration der Stateful Inspection Firewall beschrieben. Es werden Richtlinien erstellt, die nur den Internet Verkehr

Mehr

Stubbe-CS. Kurssystem. Günter Stubbe. Datum: 19. August 2013

Stubbe-CS. Kurssystem. Günter Stubbe. Datum: 19. August 2013 Kurssystem Günter Stubbe Datum: 19. August 2013 Aktualisiert: 6. September 2013 Inhaltsverzeichnis 1 Einleitung 5 2 Benutzer 7 2.1 Registrierung............................. 7 2.2 Login..................................

Mehr

Tutorial Grundlagen der Softwareverteilung

Tutorial Grundlagen der Softwareverteilung Tutorial Grundlagen der Softwareverteilung Inhaltsverzeichnis 1. Einführung... 3 2. Clientsysteme einrichten... 3 2.1 Den SDI Agent verteilen... 3 2.2 Grundeinstellungen festlegen... 4 3. Softwareverteiler...

Mehr

VIP-LMS Anbindung. Uni Stgt. 27. Juni 2014. Version: 2.6

VIP-LMS Anbindung. Uni Stgt. 27. Juni 2014. Version: 2.6 Heiko Bernlöhr FreeIT.de VIP-LMS Anbindung Per Pascal Grube Uni Stgt. Thomas Richter Uni Stgt. 27. Juni 2014 David Boehringer Uni Stgt. Stephan Rudlof Uni Stgt. Version: 2.6 Zusammenfassung Maximale Integration

Mehr

Internet for Guests. Interfaces. 1.0.0 Deutsch. Interfaces Seite 1/14

Internet for Guests. Interfaces. 1.0.0 Deutsch. Interfaces Seite 1/14 Internet for Guests Interfaces 1.0.0 Deutsch Interfaces Seite 1/14 Inhalt 1. PMS... 3 1.1 Hinweise... 3 1.2 Konfiguration... 4 1.2.1 VIP/Mitgliedschaft: VIP Gast kostenloser Betrieb... 5 1.2.2 VIP/Mitgliedschaft:

Mehr

Nutzerbeirat 2012 Bonn 20.11.2012

Nutzerbeirat 2012 Bonn 20.11.2012 Der neue Personalausweis Einsatzmöglichkeiten in der Lucom Interaction Platform Nutzerbeirat 2012 Bonn 20.11.2012 Henning Meinhardt Leiter Software Entwicklung Ab Version 3.2.2 unterstützt die LIP den

Mehr

ZEUS Energiebuchhaltung Salzburg Automatische Zählerstandanlieferung: E-Mail-Schnittstelle

ZEUS Energiebuchhaltung Salzburg Automatische Zählerstandanlieferung: E-Mail-Schnittstelle ZEUS Energiebuchhaltung Salzburg Automatische Zählerstandanlieferung: E-Mail-Schnittstelle Version: 1.0.0 Datum: 2013-11-20 Autor: Bernd Ennsfellner, Renate Pinggera gizmocraft, design and technology GmbH

Mehr

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit 1 Hochverfügbarkeit Lernziele: Network Load Balancing (NLB) Failover-Servercluster Verwalten der Failover Cluster Rolle Arbeiten mit virtuellen Maschinen Prüfungsanforderungen von Microsoft: Configure

Mehr

Raid-Log-Import: Manual

Raid-Log-Import: Manual Raid-Log-Import: Manual Autor: Hoofy Ein Plugin für: Inhaltsverzeichnis 1. Einführung 2. Einstellungen Was bedeutet welche Option? 2.1. Allgemeine Optionen 2.2. Mitglieder Einstellungen 2.3. Parse-Einstellungen

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

In 9 Schritten zu Ihrem Partnerprogramm bei ADCELL

In 9 Schritten zu Ihrem Partnerprogramm bei ADCELL In 9 Schritten zu Ihrem Partnerprogramm bei ADCELL Bitte führen Sie die Schritte in der vorgeschlagenen Reihenfolge aus: 1. Einloggen Bitte loggen Sie sich in Ihren Programmbetreiber-Account bei ADCELL

Mehr