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 ).

Stateful und Stateless BSP-Anwendungen: HTTP ist stateless!

Stateful und Stateless BSP-Anwendungen: HTTP ist stateless! Stateful und Stateless BSP-Anwendungen: HTTP ist stateless! (1) Stateful BSP-Programmierung : NWAS: stateful Anwendungskontext über Response hinaus gehalten Bei Weiterführung zur Vfg. NWAS "merkt" sich

Mehr

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

Sessions mit PHP. Annabell Langs 2004. Sessions in PHP - Annabell Langs 1

Sessions mit PHP. Annabell Langs 2004. Sessions in PHP - Annabell Langs 1 Sessions mit PHP Annabell Langs 2004 Sessions in PHP - Annabell Langs 1 Sessions» Inhaltsverzeichnis Wozu Sessions? 3 Wie funktionieren Sessions? 5 Wie kann ich die Session-ID übergeben? 8 Sicherheit 9

Mehr

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling Open-Xchange Authentication & Sessionhandling Version Date Author Changes 1.0 28.08.2006 Stephan Martin Initiale Version 1.1 29.08.2006 Marcus Klein Details Authentication via JSON 1.2 04.09.2006 Stephan

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

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

Python CGI-Skripte erstellen

Python CGI-Skripte erstellen Python CGI-Skripte erstellen CGI (Common Gateway Interface)... ist eine Schnittstelle, um Scripte im Web bereitzustellen. ist eine Schnittstelle zwischen einem HTTP-Server und ausführbaren Programmen.

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

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

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

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

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

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

Java zur Realisierung von Internetanwendungen

Java zur Realisierung von Internetanwendungen Java zur Realisierung von Internetanwendungen Elementare Web-Programmierung Prof. Dr. Bernhard Schiefer HTTP Web-Browser Web-Browser GET http://www.zw.fh-kl.de/beispiel.htm beispiel

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

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

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

Dokumentation. juris Autologon-Tool. Version 3.1

Dokumentation. juris Autologon-Tool. Version 3.1 Dokumentation juris Autologon-Tool Version 3.1 Inhaltsverzeichnis: 1. Allgemeines... 3 2. Installation Einzelplatz... 3 3. Installation Netzwerk... 3 4. Konfiguration Netzwerk... 3 4.1 Die Autologon.ini...

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Benutzerhandbuch. Smartphone-Server App Stand 06.10.11

Benutzerhandbuch. Smartphone-Server App Stand 06.10.11 Benutzerhandbuch Smartphone-Server App Stand 06.10.11 Über diese App Mit der Smartphone-Server App können Sie per Smartphone / Tablet PC auf alle Daten Ihres Unternehmens zugreifen, zu denen Ihr Administrator

Mehr

Session-IDs im FRITZ!Box Webinterface

Session-IDs im FRITZ!Box Webinterface Session-IDs im FRITZ!Box Webinterface Session-IDs und geändertes Login-Verfahren im FRITZ!Box Webinterface Ab der FRITZ!Box Firmware-Version xx.04.74 wurde der vorhandene Kennwortschutz verbessert sowie

Mehr

Formular-Generator. 1. Übersichtsseite

Formular-Generator. 1. Übersichtsseite Formular-Generator Der Formular-Generator dient dazu, Formulare ohne Kenntnisse von Html- oder JavaScript- Programmierung zu erstellen. Mit den Formularen können Sie einfache Anfragen, Anregungen und Wünsche

Mehr

ViSAS Domainadminlevel Quick-Start Anleitung

ViSAS Domainadminlevel Quick-Start Anleitung 1. Was ist VISAS? VISAS ist eine Weboberfläche, mit der Sie viele wichtige Einstellungen rund um Ihre Internetpräsenz vornehmen können. Die folgenden Beschreibungen beziehen sich auf alle Rechte eines

Mehr

ASP.NET Grundlagen. Was ist ASP.NET

ASP.NET Grundlagen. Was ist ASP.NET ASP.NET Grundlagen ASP.NET Grundlagen...1 Was ist ASP.NET...1 Webseiten mit ASP.NET...3 Ereignisse...4 Zustandsverwaltung...5 Die Eigenschaften Request und Response....6 Was ist ASP.NET ASP steht für Active

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

BANKETTprofi Web-Client

BANKETTprofi Web-Client BANKETTprofi Web-Client Konfiguration und Bedienung Handout für die Einrichtung und Bedienung des BANKETTprofi Web-Clients im Intranet / Extranet Der BANKETTprofi Web-Client Mit dem BANKETTprofi Web-Client

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

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

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

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

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

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

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

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

Outlook Web App 2010 Kurzanleitung

Outlook Web App 2010 Kurzanleitung Seite 1 von 6 Outlook Web App 2010 Einleitung Der Zugriff über Outlook Web App ist von jedem Computer der weltweit mit dem Internet verbunden ist möglich. Die Benutzeroberfläche ist ähnlich zum Microsoft

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

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

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

1Im Gegensatz zu den übrigen Web-IO Digital, ist bei den

1Im Gegensatz zu den übrigen Web-IO Digital, ist bei den 5.9 Über die Standardbetriebsarten hinaus, beinhalten die ERP- Gateway-Modelle 57635 und 57636 zusätzlich das patentierte Wayback-Verfahren für den Zugriff auf die digitalen Ausgänge. Dieses ermöglicht

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

Version 2.0.1 Deutsch 03.06.2014. In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Version 2.0.1 Deutsch 03.06.2014. In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen. Version 2.0.1 Deutsch 03.06.2014 In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen. Inhaltsverzeichnis... 1 1. Hinweise... 2 2. Konfiguration... 3 2.1. Generische

Mehr

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Das Programm Mensch ärgere Dich nicht ermöglicht das Spielen des gleichnamigen Spieles über Netzwerke. Jeder Spieler verfügt dabei über einen Clienten,

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

Distribution Group. Anlegen und Administrieren

Distribution Group. Anlegen und Administrieren Distribution Group Anlegen und Administrieren Einleitung: Als Ablösung der vorhandenen (Global/Domain lokal) Gruppen, wird ab sofort nur noch der Gruppentyp Distribution Groups/Security angelegt und benutzt.

Mehr

10.6 Programmier-Exits für Workitems

10.6 Programmier-Exits für Workitems 10.6 Programmier-Exits für Workitems 279 10.6 Programmier-Exits für Workitems 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT Am Schritt einer Workflow-Definition im Reiter»Programmier-Exits«können verschiedene

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

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

MAILADRESSVERWALTUNG_

MAILADRESSVERWALTUNG_ 1. VORWORT Dieses Dokument soll Ihnen dabei helfen, die E-Mail Accounts die Sie in bei Ihrem Produkt inkludiert haben, über unsere Webschnittstelle selbst konfigurieren zu können. Im letzten Kapitel fassen

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

TechTipp. Ich sehe was, was Du auch siehst: Multicast-Betrieb für GigE ueye Kameras. Hintergrund. Multicast-Kamera als Master-PC konfigurieren

TechTipp. Ich sehe was, was Du auch siehst: Multicast-Betrieb für GigE ueye Kameras. Hintergrund. Multicast-Kamera als Master-PC konfigurieren Ich sehe was, was Du auch siehst: Multicast-Betrieb für GigE ueye Kameras Wenn Sie für eine GigE ueye Kamera den Multicast-Betrieb aktivieren, sendet die Kamera Bilddaten an eine Multicast-Adresse. Somit

Mehr

Session-IDs im FRITZ!Box Webinterface

Session-IDs im FRITZ!Box Webinterface Session-IDs im FRITZ!Box Webinterface Session-IDs und geändertes Login-Verfahren im FRITZ!Box Webinterface Ab der FRITZ!Box Firmware-Version xx.04.74 wurde der vorhandene Kennwortschutz verbessert sowie

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

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

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

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

Kapitel 4 Zugriffsbeschränkungen

Kapitel 4 Zugriffsbeschränkungen Kapitel 4 Zugriffsbeschränkungen In diesem Kapitel erfahren Sie, wie Sie Ihr Netzwerk durch Zugriffsbeschränkungen des 54 MBit/s Wireless Router WGR614 v6 schützen können. Diese Funktionen finden Sie im

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

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

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

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

AccountPlus Systemkonfiguration

AccountPlus Systemkonfiguration Anwenderhandbuch AccountPlus Systemkonfiguration Version 1.10 Inhalt: 1 ANWENDUNG... 3 2 DAS PROGRAMM... 3 2.1 Startparameter...5 2.2 Die Karteikarte ACCTPLUS.INI...5 2.3 Die Karteikarte Datenbanken...5

Mehr

crypta.net email System Quickstart Guide für Benutzer

crypta.net email System Quickstart Guide für Benutzer crypta.net email System Quickstart Guide für Benutzer support@crypta.net, Version 20.11.2007 Inhaltsverzeichnis 1. Kurzübersicht...3 1.1. Zugriff auf Postfächer...3 1.2. Persönliche Einstellungen...3 1.3.

Mehr

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

Programmieren II. Wie kommen Daten von einem Webserver? Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 23 2 / 23 Wie kommen Daten von einem Webserver? In der Praxis existieren verschiedene Wege, wie ein Server einem Client zu

Mehr

CARM-Server. Users Guide. Version 4.65. APIS Informationstechnologien GmbH

CARM-Server. Users Guide. Version 4.65. APIS Informationstechnologien GmbH CARM-Server Version 4.65 Users Guide APIS Informationstechnologien GmbH Einleitung... 1 Zugriff mit APIS IQ-Software... 1 Zugang konfigurieren... 1 Das CARM-Server-Menü... 1 Administration... 1 Remote-Konfiguration...

Mehr

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration

KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13. Dokumentation KREDITVERZEICHNIS. Teil 2. Konfiguration KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 1/13 Dokumentation KREDITVERZEICHNIS Teil 2 Konfiguration Stand 20.02.2013 KREDITVERZEICHNIS Konfiguration Ausgabe: 20.02.13 2/13 Inhalt 1. KONFIGURATION...

Mehr

Benutzerdokumentation Hosted Backup Services Client

Benutzerdokumentation Hosted Backup Services Client Benutzerdokumentation Hosted Backup Services Client Geschäftshaus Pilatushof Grabenhofstrasse 4 6010 Kriens Version 1.1 28.04.2014 Inhaltsverzeichnis 1 Einleitung 4 2 Voraussetzungen 4 3 Installation 5

Mehr

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder BS-Anzeigen 3 Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder Inhaltsverzeichnis Anwendungsbereich... 3 Betroffene Softwareversion... 3 Anzeigenschleuder.com... 3 Anmeldung...

Mehr

Lehrlings- und Fachausbildungsstelle. EDV-Prüfungsprogramm

Lehrlings- und Fachausbildungsstelle. EDV-Prüfungsprogramm Lehrlings- und Fachausbildungsstelle EDV-Prüfungsprogramm Bedienungsanleitung DI Friedrich Koczmann Seite 1 02.09.09 Inhaltsverzeichnis 1 Allgemeines...4 1.1 Voraussetzungen...4 1.2 Funktionen des Programms...4

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

Visendo SMTP Extender

Visendo SMTP Extender Inhalt Einleitung... 2 1. Aktivieren und Konfigurieren des IIS SMTP Servers... 2 2. Installation des SMTP Extenders... 6 3. Konfiguration... 7 3.1 Konten... 7 3.2 Dienst... 9 3.3 Erweitert... 11 3.4 Lizenzierung

Mehr

2 Aufruf eines SAP Webservices aus einer Adobe Flex 4.0- Applikationen

2 Aufruf eines SAP Webservices aus einer Adobe Flex 4.0- Applikationen 1 Allgemein Voraussetzungen: SAP Web Application Server (WAS) 6.0, 7.0 oder 7.1 Adobe Flash Builder.0 Abstract: Erzeugen eines SAP Webservices mit der Transaktion SE37 Anlegen einer Flex -Anwendung samt

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

OP 2005: Änderungen Mailimport

OP 2005: Änderungen Mailimport OP 2005: Änderungen Mailimport 02.01.2008 Dokumentation Original auf SharePoint Doku zu OP 2005 JT-Benutzerkonfiguration - EMail In dieser Registerkarte können Sie die E-Mail-Konfiguration, des Benutzers

Mehr

KSN-OUTLOOK-BASICS. November 2008. Grundlagen zum Thema Lokaler Mail-Client. Lokale Mailclients konfigurieren

KSN-OUTLOOK-BASICS. November 2008. Grundlagen zum Thema Lokaler Mail-Client. Lokale Mailclients konfigurieren Seite1 KSN-OUTLOOK-BASICS Grundlagen zum Thema Lokaler Mail-Client Lokale Mailclients konfigurieren WebMail bezeichnet eine Methode E-Mail direkt mit dem Web-Browser nach Eingabe von Benutzername und Kennwort

Mehr

Endkunden Dokumentation

Endkunden Dokumentation Endkunden Dokumentation X-Unitconf Windows Version - Version 1.1 - Seite 1 von 20 Inhaltsverzeichnis 1. Anmeldung an X-Unitconf... 3 2. Menü Allgemein... 4 2.1. Übersicht... 4 2.2. Passwort ändern... 5

Mehr

Automatisiertes Informationsmanagement für Microsoft Exchange Server

Automatisiertes Informationsmanagement für Microsoft Exchange Server Windream Exchange Automatisiertes Informationsmanagement für Microsoft Exchange Server Facts: Zugriff auf E-Mails sowohl aus Microsoft Outlook als auch aus Windream Komfortable Recherche und Verwaltung

Mehr

JobServer Installationsanleitung 08.05.2013

JobServer Installationsanleitung 08.05.2013 JobServer sanleitung 08.05.2013 Der JobServer ist ein WCF Dienst zum Hosten von Workflow Prozessen auf Basis der Windows Workflow Foundation. Für die wird das Microsoft.NET Framework 3.5 und 4.0 vorausgesetzt.

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

Dokumentation zur Anlage eines JDBC Senders

Dokumentation zur Anlage eines JDBC Senders Dokumentation zur Anlage eines JDBC Senders Mithilfe des JDBC Senders ist es möglich auf eine Datenbank zuzugreifen und mit reiner Query Datensätze auszulesen. Diese können anschließend beispielsweise

Mehr

Terminland Free / Terminland Easy Schnellstart

Terminland Free / Terminland Easy Schnellstart Dokumentation: V 10.04.0 Datum: 22.12.2014 Inhaltsverzeichnis 1. Einführung... 3 2. Hilfe... 3 3. Online-Terminbuchung... 4 3.1. Aufruf der Online-Terminbuchung... 4 3.2. Aufruf des internen Terminmanagers...

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

Wie funktioniert das WWW? Sicher im WWW

Wie funktioniert das WWW? Sicher im WWW Wie funktioniert das WWW? Sicher im WWW Der normale Aufruf 1. Browserprogramm starten 2. Adresse eintippen, z.b. : ich-hab-doch-nichts-zu-verbergen.de 3. Der Browser ändert die Adresse auf: http://ich-hab-doch-nichts-zu-verbergen.de/

Mehr

Ersatzteile der Extraklasse Magento-Module der Shopwerft

Ersatzteile der Extraklasse Magento-Module der Shopwerft Ersatzteile der Extraklasse Magento-Module der Shopwerft MicroStudio - Fotolia.com Werden von Kunden oder Suchmaschinen Elemente des Shops aufgerufen, die nicht vorhanden sind, wird statt des gewünschten

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

Dreamwap. Systemanalyse

Dreamwap. Systemanalyse Dreamwap Systemanalyse Änderungskontrolle Version Datum Name Bemerkung 0.1 15.7.2000 P. Troxler Initialversion 0.2 16.7.2000 P. Troxler Neue Tabelle: Kap. 2.1. Vgl. Datenbank Tabellen 0.3 18.7.2000 P.

Mehr

SIENNA Home Connect. Bedienungsanleitung V2.6

SIENNA Home Connect. Bedienungsanleitung V2.6 SIENNA Home Connect Bedienungsanleitung V2.6, Rupert-Mayer-Str. 44, 81379 München, Deutschland Tel +49-89-12294700 Fax +49-89-72430099 Copyright 2015. Inhaltsverzeichnis 1 INSTALLATION... 3 1.1 FW UPDATE

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

Operator Guide. Operator-Guide 1 / 7 V1.01 / jul.12

Operator Guide. Operator-Guide 1 / 7 V1.01 / jul.12 Operator Guide Einleitung Diese Guide vermittelt ihnen das Operator Know How für die Gästbox. Was müssen Sie wissen bevor Sie sich an die Arbeit machen. Von welchem PC aus kann ich die Gästbox bedienen.

Mehr

Mobile Anwendungen Google Cloud Messaging

Mobile Anwendungen Google Cloud Messaging Mobile Anwendungen Google Cloud Messaging 1. Allgemeines zu Google Cloud Messaging (GCM): - 60% der Top 100 Apps nutzen Google Cloud Messagging - 200.000 Messages pro Sekunde = 17 Milliarden Messages pro

Mehr

STAR-Host Kurzanleitung ISP-Config

STAR-Host Kurzanleitung ISP-Config STAR-Host Kurzanleitung ISP-Config Webseite (Domain) einrichten Loggen Sie sich unter ISPConfig ein. Im Hauptmenü können Sie jetzt direkt eine Webseite (Domain) einrichten oder zunächst einen Kunden. Klicken

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

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander

Überblick. Netzprogrammierung 7b. Zustand in Web Anwendungen. Zustand in HTTP HTTP ist zustandslos Zwei Interaktionen sind unabhängig voneinander Überblick 1. Zustand in Web Anwendungen Netzprogrammierung 7b. Zustand in Web Anwendungen Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Mehr

Projekt Weblog :: Integration

Projekt Weblog :: Integration Projekt Weblog :: Integration Die Implementation des Formhandling Frameworks wird nun im Projekt Weblog integriert. Dafür stehen 2 Möglichkeiten zur Auswahl. Sie haben Ihre eigene Implementation der Actions,

Mehr

Call - ID. Call-ID. Leitfaden Installation und Konfiguration CALL-ID Stand : 30. Mai 2008

Call - ID. Call-ID. Leitfaden Installation und Konfiguration CALL-ID Stand : 30. Mai 2008 Call - ID Call-ID ist ein Programm zur direkten Anzeige von eingehenden Anrufen durch automatisches öffnen der entsprechenden Tobit-Adresskarte oder Wahlweise separatem Pop-Up. Zudem erstellt Call-ID eine

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

Release-Info. FILAKS.PLUS Release 4.5.0. Anhang DAF ecommerce

Release-Info. FILAKS.PLUS Release 4.5.0. Anhang DAF ecommerce Release-Info FILAKS.PLUS Release 4.5.0 Anhang DAF ecommerce Inhaltsübersicht 1 Allgemein 3 2 DAF ecommerce 4 2.1 Artikelabfrage 6 2.2 Warenkorb an FILAKS.PLUS übertragen 7 2.3 Neuer Auftrag in FILAKS.PLUS

Mehr

WufooConnector Handbuch für Daylite 4

WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 WufooConnector Handbuch für Daylite 4 1 Allgemeines 1.1 Das WufooConnector Plugin für Daylite 4 4 2 Einrichtung 2.1 2.2 2.3 Installation 6 Lizensierung 8 API Key einrichten

Mehr

JobCharger Arbeiten mit dem Scan Profil Generator 08.05.2013

JobCharger Arbeiten mit dem Scan Profil Generator 08.05.2013 JobCharger Arbeiten mit dem Scan Profil Generator 08.05.2013 Der Scan Profil Generator dient als Administrationstool für personalisierte USB Sticks, wenn Sie eine Kodak Scan Station 520EX oder einen externen

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