Home

Endbericht der Projektgruppe Werkzeuge f ur Digitale Bibliotheken

image

Contents

1. AccountPaymentClient lt lt interface gt gt fT PaymentHandlerInterface A invoiceRequest i i getBrandIds i getTransaction BankTransferPaymentClient getTaStatus est getErrorStatus i invoiceRequest getBalance getCredit lt lt interface gt gt i EE lca transactionSettled PaymentClient enee rec al Amen een bookPayment Kane a invoiceRequest invoiceRequest 1 invoiceRequest insertCustomer i i ECashPaymentClient implements dech EEN H invoiceRequest PaymentHandler i CybercashPaymentClient InvoiceResult fn getBrandIds uses deR getTransaction invoiceRequest getTaStatus getErrorStatus IllegalParameterException getBalance getCredit transactionSettled bookPayment CustomerDoesNotExistException invoiceRequest insertCustomer throws TransactionDoesNotExistException uses Login TransactionFailedException RemoteException Brand PaymentCustomer Transaction Abbildung 4 1 Klassenhierarchie des Payment Systems 4 3 1 1 PaymentHandlerInterface und PaymentHandler Die eigentliche nach aussen sichtbare Schnittstelle des Payment Systems wird durch die RMI Schnittstellen Klasse PaymentHandlerInterface definiert Implementiert wird die gesamte Funk tionalit t dieser abstrakten Klasse durch PaymentHandler Die Anwendung der Methoden wurde ber
2. Artikell Autoren Name Herausg Autor Autor2 v Autor3 v Autor4 v y Autor5 y Autor y y Autor7 v Verwerfen Speichern Abbildung 6 10 Authoring Tool Autoren zu einem Objekt 93 94 KAPITEL 6 AUTHORING KOMPONENTE Artikell Inhalte Xx Frei URLs URL1 URL2 URL3 URL4 URLS URL6 URL7 URL8 URLs ausw hlen Inhaltsverz Homepage Bild Leseprobe Verwerfen Speichern Abbildung 6 11 Authoring Tool URLs zu einem Objekt URL Auswahl index html kap1 html kap2 html kap3 html kap4 html toc html Verzeichnis Filter Abbildung 6 12 Authoring Tool Auswahl neuer URLs Std Filechooser e Der Tabellen Bereich Im Tabellen Bereich werden verschiedene Tabellen in der Datenbank gewartet Es gibt f nf Arten von Tabellen die alle ber ein eigenes Fenster bearbeitet werden k nnen Die Tabellen dienen als Datengrundlage f r die Erstellung neuer Objekte Bevor z B ein Autor einem Objekt zugeordnet werden kann muss er ber das Fenster zur Verwaltung der Autoren Tabelle in die Datenbank eingef gt worden sein Die einzelnen Tabellen sind ber das Men Bearbeiten und das Men Ansicht zu erreichen 6 1 ENTWURF Autoren Datenbank Autorl Autor2 Autor3
3. Leseprobe rachristiey orient express probe pdf Verwerfen OK Abbildung 6 29 Auswahl der Artikel Inhalte 6 3 2 6 Autoren Fenster Das Autoren Fenster stellt die zu einem Dokument geh renden Autoren bzw Herausgeber dar Au erdem ist es ber dieses Fenster m glich dem Dokument neue Autoren bzw Herausgeber hinzuzufiigen Abgebildet ist das Autoren Fenster in Abbildung 6 30 A Artikel Autoren x Herausgeber Agatha Christie im wi verwerfen OK I Abbildung 6 30 Das Autoren Fenster des Authoring Tools Aufgeteilt ist das Fenster in drei Spalten der Namensspalte der Herausgeberspalte und der Autorenspalte Die Namensspalte enth lt die Namen der Autoren bzw Herausgeber Um einen Namen als Autoren bzw Herausgeber des Dokumentes zu markieren muss in der gleichen Zeile in der Autoren bzw Herausgeberspalte die Checkbox mit einem Haken versehen werden Einem neuen Dokument sind zu Anfang noch keine Namen in dem Autoren Fenster zugeordnet Mittels Drag And Drop k nnen neue Namen aus dem Autoren Datenbankfenster dem Autoren Fenster hinzugef gt werden wobei diese initial weder Autor noch Herausgeber sind Diese Zuordnung muss explizit erfolgen Sind mindestens zwei Zeilen in dem Autoren Fenster zu einem Doku ment vorhanden k nnen durch Anklicken mittels der rechten Maustaste einzelne Zeilen gel scht werden Es muss jedoch immer eine Zeile stehen bleiben Die Reihenfolge der Zeilen im Autoren
4. Standardm ssig muss sich ein Anbieter selbst um die Abwicklung der elektronischen Zahlungs vorg nge k mmern Die Mechanismen sind zwar integriert aber es fallen bspw bei eCash und CyberCash noch Anmeldungen bei Banken bzw Kreditunternehmen an Alternativ kann jedoch auch ein zentraler Payment Handler angebunden werden der verschiedene Zahlungsverfahren kapselt und allen Anbietern zur Verfiigung gestellt wird Die Komponente DDS Payment stellt zus tzlich noch eine Java Applikation zur Verwaltung der Bezahlungen zur Verf gung bspw f r das Eintragen der Zahlungseing nge bei Bankeinzug 2 3 3 Dokumentenschutz Komponente Die Komponente DDS Access verwaltet die hypermedialen Dokumente und gew hrt den auto risierten Zugriff auf die Dokumente Sie besteht aus dem Apache WWW Server sowie einem Apache erweiternden Modul welches die Zugriffsschutzma nahmen realisiert 2 3 4 Authoring Komponente Die Komponente DDS Authoring ist als Java Applikation realisiert worden Sie unterst tzt die Einrichtung und Verwaltung von iShops durch den Einsatz von graphisch interaktiven Hilfsmit teln Aus den folgenden Sub Komponenten setzt sich die Komponente DDS Authoring zusam men e Mit dem Shop Manager k nnen generelle Einstellungen wie Auswahl des Shop Layouts Name des Shops Name und Anschrift des Shop Betreibers etc vorgenommen werden e der Classification Manager ist f r die Organisation der einzelnen Dokumente in Kategorien Klassifi
5. 105 Die generellen Shop Einstellungen o o nenn 107 Die Internet Shop Einstellungen e 108 Die Bezahlungs Shop Einstellungen e e 108 Ein Datenbankfenster des Authoring Tools o nn 109 Das Details Fenster des Authoring Tools o nn 109 Auswahl der Artikel Inhalte o o ee e 111 Das Autoren Fenster des Authoring Tools o 111 Das Angebote Fenster des Authoring Tools a 112 Der Dateimanager li Rei es 113 Die Klassenstruktur der Servlets o e 121 Die Klassenstruktur der ShopPages 122 Das Layout o g teuten Go k amot AR A E 126 Die Navigation durch die Dokumentkategorien im Layout 1 127 Die Navigationsleiste von Layout 1 e e 127 Das Layout eg Ze Hen este eee pene ke E br aR E er 129 Die Navigation durch die Dokumentkategorien im Layout 2 130 Das LayoUt or sa tee io Er Rn ee 131 ABBILDUNGSVERZEICHNIS vil 7 9 7 10 7 11 7 12 7 13 7 14 7 15 7 16 7 17 7 18 7 19 7 20 7 21 7 22 7 23 Die Navigation im Layout 3 0 0 0 0 000000 132 Das Login Fenster sd arin e naar da he ot Bod 134 Der Warenkorb io ser a Bee ee RE eh a a 135 Das Benutzerdaten Fenster 2 on on nn 137 Das Holler Regester toi he ea E ae Se led 138 Das Suchen Fenster s 2 ws 2 2 ee a ee EE a aaa 138 Das Shopinfo Fenster 24 2 Kara er A 140
6. KundenDaten klickt erscheint im Hauptframe ein Men das folgende Men punkte zur Verf gung stellt pers nliche Daten bearbeiten Hier gelangen Sie zu einem Fenster in dem Sie sich gegebenenfalls anmelden oder Ihre Nutzerdaten bearbeiten und ver ndern k nnen Dazu geh rt auch der Wechsel Ihres Passwortes Kontoauszug Hier k nnen Sie sich Ihren Kontoauszug anzeigen lassen das heisst die Buchungen die innerhalb des letzten Monats vorgenommen wurden werden Ihnen unter einander aufgelistet Diese Liste l st sich aber durch die entsprechenden Buttons auch weiter zur ckverfolgen 128 KAPITEL 7 DDS WEB KOMPONENTE Kundenkonto aufladen Um Ihr Kundenkonto aufzuladen m ssen Sie auf diesen Link klicken Benutzer Logout Sofern Sie sich ausloggen wollen um eventuell den Benutzer zu wech seln oder den Shop zu verlassen miissen Sie auf diesen Link klicken Der Warenkorb wird hierbei allerdings nicht gel scht damit Sie falls Sie Ihre Identit t innerhalb des Shops ndern wollen nicht alle Dokumente erneut zusammen suchen m ssen Dies kann der Fall sein wenn Sie in Warenkorb abgelegte B cher unter einem anderen Benutzerlogin kaufen wollen Lizenzen Es gibt zwei Arten von Lizenzen die g ltigen Lizenzen und die komplette Liste aller Lizenzen das heisst zur Liste der g ltigen Lizenzen kommen noch die Lizenzen hinzu die noch nicht freigeschaltet sind Unter diesem Men punkt werden erst die g ltigen Lizenzen angezeigt die kom
7. ber das Transaction Tool gebucht werden Automatisierte Kreditkartenzahlungen k nnen ber CyberCash erfolgen CreditCardSSLPay mentClient kann verwendet werden wenn dieser Dienst nicht zur Verf gung steht 60 KAPITEL 4 PAYMENT KOMPONENTE 4 3 2 4 ECashPaymentClient Der ECashPaymentClient implementiert die Methode invoiceRequest fiir Zahlungen ber das elektronische Zahlungsverfahren ECash Zun chst wird auch hier die vorher angelegte Transaktion aus der Datenbank geholt Dann wird getestet ob die ECash Umgebung korrekt ist d h ob die ECash Software und die pers nliche ECash Geldb rse an dem Ort sind der in der Datei ecash props angegeben wurde Im Fehlerfall wird der aufgetretene Fehler in die Transaktion in der Datenbank geschrieben und ein InvoiceResult Objekt mit Fehlerbeschreibung zurtickgegeben Im anderen Fall wird ein Systemaufruf gestartet der die ECash Software mit den entsprechen den Zahlungsdaten so aufruft dass die entstehende Zahlungsaufforderung ausgegeben wird Diese Ausgabe des Prozesses wird nun ber einen BufferedReader bis zum Ende eingelesen Durch den Aufruf der ECash Software wartet der ECash Server bis zu einem festgelegten TimeOut auf die Durchfiihrung der Zahlung deren Aufforderung soeben gestellt wurde Deshalb wird nun ein Thread gestartet der auf das Ende des ECash Serverprozesses wartet Mittels des Riickgabe wertes dieses Prozesses wird dann festgestellt ob die Zahlung erfolgreich durchgef h
8. und den Index der Hashtable unter dem die Daten der Lizenz gespeichert sind an das C Modul Mit dem String standard erf hrt das C Modul dass es sich um einen Standard Request handelt Das C Modul fragt dann den User nach seinem Login und Passwort und ruft das Security Servlet mit dem String standard dem Login Passwort und dem Index f r die Hashtable auf 76 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE 5 4 2 Der first_click Request Das C Modul gibt dem User auf seinem Browser eine Seite aus in der er nach seinem Login und Passwort gefragt wird Der String firstClick das Login Passwort und der zum User geh rende Index in der Hashtable des Security Servlets werden an das Security Servlet gesendet Das Security Servlet weiss aufgrund des Strings firstClick dass es sich um einen first_click Request handelt und muss dann entscheiden ob der User weiter in dem Dokument navigieren darf Frage Geh ren Login Passwort und Customer ID zusammen Antwort Antwort Nein Login Passwort und Customer ID geh ren nicht zusammen Ja Login und Passwort geh ren zur Customer ID Aktion first_click setzen neue Session ID berechnen validTo berechnen die Datenbank updaten Meta refresh durchf hren Aktion Dem User die M glichkeit geben zuriick zum Webshop zu gelangen oder nochmal den sein Login und Passwort einzugeben Abbildung 5 6 Der first_click Request Geh ren Login P
9. Format Language Author s Tabellen 3 3 3 4 3 5 3 6 und 3 7 sind aus dem eigentlichen Dokument ausgelagert Sie werden durch die DDS Authoring Komponente separat zum Dokument in eigenen Pools verwaltet und k nnen so gleichzeitig mehreren Dokumenten zugeordnet werden Da ein Dokument u U mehrere Autoren besitzt die evtl auch in unterschiedlichen Funktionen beteiligt waren werden sie in ihrer Dokument Assoziation durch spezielle Attribute position author_type unterschie den F r die Klassifikation der Dokumente sind so genannte Kataloge bzw Ordner vorgesehen Fol der s Tabelle 3 1 Dabei kann ein Dokument auch verschiedenen Ordnern zugeordnet sein Die Ordner selbst k nnen wiederum hierarchisch organisiert werden Der Zugriff auf das Angebot des Shops an digitalen Dokumenten erfolgt ber die Ordner Ein Dokument das keinem der Kataloge zugeordnet ist kann f r diese Zeit auch nicht ber den Shop erworben werden Beste hende g ltige Lizenzen f r dieses Dokument laufen aber weiter Dem Kunden wird ein Dokument kostenpflichtig zug nglich gemacht Der Preis wird in der En tit t Angebot Offer s Tabelle 3 2 festgehalten Es ist m glich mehrere Angebote zu einem Dokument vorzuhalten wovon aber immer nur eines aktuell g ltig ist Sp ter erwirbt der Kun de dann Zeitlizenzen Licence s Tabelle 3 10 f r die angebotenen Dokumente Er erkauft sich somit das Recht ein Dokument solange abrufen zu k nnen bis die Zeit
10. NUMBER Status der Transaktion NUMBER Fehlercode NUMBER Identifikator des Kunden z B IP Adresse Login STRING Kurzbeschreibung der Transaktion bzw Ver wendungszweck NUMBER Zeitpunkt der Zahlungsaufforderung NUMBER Betrag der Zahlungsaufforderung NUMBER Zeitpunkt der Zahlung NUMBER Betrag der Zahlung NUMBER Zeitpunkt der Buchung Tabelle 3 18 Tabelle Transaction 28 KAPITEL 3 DATENBANK KOMPONENTE 3 2 Datenbank Schnittstellen 3 2 1 Die Schnittstellen von DB_Access Die Klassen die die Schnittstellen der Datenbank Komponente implementieren sind im Packa ge webshop dbif zusammengefasst Dazu geh rt als Schnittstelle fiir alle Konmponenten des DDS Systems die Klasse webshop dbif DB_Access Sie implementiert die Methoden zum Auslesen von Datens tzen und zur Durchfiihrung von Transaktionen auf der Datenbank Der Payment Handler erh lt iiber eigene Methoden Zugriff auf die Datenbank Die Komponenten des DDS Sytems verwenden teilweise dieselben Methoden Verschiedene Ausnahmen und Fehlerklassen sind f r die Fehlerbehandlung zust ndig die Verbindungen zu der Datenbank organisiert die Klasse webshop dbif DBMediatior 3 2 2 Die Schnittstellen fiir das DDS System Die Klasse webshop dbif DB_Access stellt eine Reihe von Methoden zur Verf gung mit denen Datens tze aus der Datenbank ausgelesen eingef gt sowie ge ndert werden k nnen Es handelt sich bei allen Methoden um Klassenmethoden sta
11. Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Dokument zum Parameter docld getDocument Authors Liefert die Autoren zu einem Dokument mit der ID im Parameters docld public static AuthorHolder getDocumentAuthors int docId throws InternalDbifError InvalidIDException Parameters docld die ID PK des Dokuments Returns webshop classes Aut horHolder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Dokument zum Parameter docld getDocumentOffers Liefert die Angebote zu einem Document public static OfferHolder getDocumentOffers int docId throws InternalDbifError InvalidIDException Parameters docld die ID PK des Dokuments Returns webshop classes Offer Holder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existieren keine Angebote zum Dokument mit der ID docld oder das Dokument existiert nicht getAllAuthors Liefert alle Autoren in der Datenbank Wenn die Tabelle keine Eintr ge enthalt ist der Riickgabewert ein leerer Vektor public static java util Vector getAllAuthors throws InternalDbifError Returns Vektor mit Objekten vom Typ webshop classes Author Throws InternalDbifError Schwerer Fehler in webshop dbif getAllPublishers Liefert alle Verlage in der Datenbank Wenn die Tabelle keine Eintr ge enth lt ist der R ckgabewert ein leerer Vektor 34 KAPITEL 3 DATEN
12. public Login int shop id String password public Login int shop_id String password String name String connection 4 3 ARCHITEKTUR UND IMPLEMENTIERUNG DES PAYMENT SYSTEMS 55 4 2 6 Transaction e Konstanten int TYPE BUY 1 int TYPE_LOAD 2 int STATE NEW 1 int STATE BOOKED 2 e Attribute int phPayld int taStatus int errorStatus String cOrgld int customer_id String shortDesc int brandld int transactionType Date invoiced At double invoicedAmount Date paidAt double paidAmount Date settledAt int shopld e Konstruktoren public Transaction public Transaction int phPayld int taStatus int errorStatus String cOrgld int cu stomer_id String shortDesc int brandld int transactionType Date invoicedAt dou ble invoicedAmount Date paidAt double paidAmount Date settledAt int shopld e spezielle Methoden public boolean isSettled 4 3 Architektur und Implementierung des Payment Systems In diesem Kapitel sollen zun chst die f r das Payment System implementierten Klassen sowie die Beziehungen zwischen diesen vorgestellt werden Anschlie end wird die Implementierung der einzelnen Zahlungsverfahren erl utert 56 KAPITEL 4 PAYMENT KOMPONENTE 4 3 1 Klassen des Payment Systems
13. werden miissen Die Darstellung dieser Informationen und deren Beziehungen zueinander sind ein wesentlicher Teil des Designs Die Frage nach dem besten Design wird durch ein Abw gen von Verst ndlichkeit Erweiterbarkeit und Korrektheit beantwortet Dem Webshop liegt als Design das Holderkonzept zugrunde das im Folgenden ausf hrlich beschrieben wird Dar ber hinaus werden alternative M glichkeiten aufgezeigt die Gegenstand fr herer Diskussionen waren 6 1 1 1 Das Holderkonzept Die eigentliche Idee des Holderkonzeptes ist es zusammengeh rige Informationen eines Doku mentes innerhalb einer gemeinsamen Klasse zu kapseln Diese B ndelung von vielen kleinen Informationen erzeugt eine berschaubare Menge von gr sseren Informationspaketen Zus tz lich bernehmen Holder gewisse Aufgaben die ein konsistentes Verarbeiten der Informationen garantieren Da alle Holder diese Methoden implementieren m ssen ist eine einheitliche Arbeits weise mit verschiedenen Holdern m glich Verwaltet werden die Holder von dem Dokument das die Holder setzt bzw wieder entfernt Diese abstrakte Sichtweise des Holderkonzeptes wird durch die Bildung eines konkreten Holders verst ndlich Zu einem Dokument geh ren Informationen wie ein Titel eine Beschreibung und ein Verlag Diese drei Informationen werden zu einer Klas se ThreelnfosHolder zusammengefasst indem sie als Attribute in der Klasse vorkommen Ein Zugriff auf die einzelnen Informationen geschieht ber
14. 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen A 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 CyberCash cOrg keiner offen X 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 CyberCash cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 CyberCash cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 Account cOrg a offen Y 13 Thu Jan 01 01 00 00 Tue Sep 19 17 18 shortDesc 100 BankTransfer cOrg keiner gebucht 1 13 Thu Jan 01 01 00 00 Tue Sep 19 17 18 shortDesc 100 ECash cOrg 44 gebucht 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 100 ECash cOrg 44 offen v ShopID I wiKundeniD 13 war alle Jetzt buchen T Abbildung 4 2 Screenshot des Administrations Tools Zur Verwaltung der durchgef hrten Transaktionen wurde ein zus tzliches Administrations Tool f r den PaymentHandler entwickelt Dieses dient dazu bersichtlich alle Transaktionen mit allen relevanten Informationen z B Fehler Buchung Betrag etc anzuzeigen Weitere Aufgabe ist es eine geeignete Oberfl che zur Verf gung zu stellen um gegebenenfalls den Status von Transaktionen manuell zu ndern falls es bei der automatischen Buchung durch den PaymentHandler zu Fehlern kam Insbesond
15. 3 2 3 Die Schnittstellen f r den Payment Handler 40 3 2 4 Ausnahmen und Fehlerklassen 42 GN 45 3 3 1 Zeitliche Vorgehensweise bei der Realisierung 45 3 3 2 Aufbau der DDS DB Komponente e e 46 3 4 DB Optimierungsaspekte e 47 Payment Komponente 49 A VEHLWUTE dt do a AN ae al A bbe ot ae 49 4 2 Schnittstellen ss s sonsos e a A ee a d 50 Adal Allgemeines css ass as a Ge ae A Gos 50 4 2 2 PaymentHandlerInterface Cm un nn 50 Se DEER 93 4 2 4 InvoiceResult si be a wa e A rennen 54 4 2 9 OGM s p a a E a a A hu 54 ADO ALTANSAChION wars AO Fog Row a eR ls ee ge ee ES a RA 55 4 3 Architektur und Implementierung des Payment Systems 55 4 3 1 Klassen des Payment Systems e 56 4 3 2 Implementierung der Clients f r die Zahlungsverfahren 59 4 3 3 Erweiterbarkeit des PaymentHandlers aooaa a 60 4 4 Benutzungshandbuch nn 61 4 4 1 Einrichtung und Betrieb der Payment Komponente 61 4 4 2 Das Administrations Tool zur Transaktions Verwaltung 64 Dokumentschutz Komponente 67 Daly Motivation get re ea ar ee es Ee Wr ee 67 5 27 Das Lizenz Konzept se is hack En Das Wire ran 67 5 2 1 Eine Aufz hlung von m glichen Sicherheitstechniken die auf das Lizenz Konzept aufsetzen bzw es ersetzen 2 2 Comm 68 5 3 Analyse und Problembetrachtung der unterschiedlichen Sicherheitstechniken 69 D
16. 3 Die verschiedenen Interaktionsfenster Diese Fenster sind bis auf eine Ausnahme nicht abh ngig vom Layout und werden immer im Hauptframe dargestellt Nur der Warenkorb wird im Layout2 nicht im Hauptframe angezeigt sondern ist permanent im linken unteren Frame dargestellt Der Aufbau des Warenkorbes unter scheidet sich nicht zu dem Aufbau im Layout 1 und 3 deswegen wird der Warenkorb allgemein an dieser Stelle erklart Login Login F r den Zugriff auf die gew nschte Seite m ssen Sie sich erst einloggen Bitte geben Sie Ihr Login und das Password ein Ihr Username Ihr Password ka Wenn Sie noch keinen Account haben k nnen Sie sich hier einen neuen Account anlegen Neuen Zugang anlegen Abbildung 7 10 Das Login Fenster F r einige Aktionen ist es notwendig dass der Benutzer sich vorher anmeldet In einem solchen Fall wird ggf das Login Fenster Abb 7 10 vor dem eigentlichen Kontext dargestellt dort m ssen Sie sich dann mit Ihrem Login und Passwort anmelden Falls Sie noch kein Login und Passwort besitzen besteht dort noch f r Sie die M glichkeit sich einen eigenen Zugang anzulegen Wenn Sie einen eigenen Zugang besitzen geben Sie bitte zuerst das Login und dann das Passwort ein Danach erfolgt die Weiterleitung zum entsprechenden Interaktionsfenster Warenkorb Der Warenkorb Abb 7 11 bietet Ihnen einen berblick ber Ihre eingepackten Dokumente und f hrt Sie auf die Bestellseite Hier gelangen Sie z
17. Autor4 Autor5 Autor Autor7 Neuer Autor Abbildung 6 13 Authoring Tool Autoren Tabelle in der Datenbank Verlags Datenbank Verlag Verlag2 Verlag3 Verlag4 Verlag5 Verlag Verlag7 Neuer Verlag Abbildung 6 14 Authoring Tool Verlage Tabelle in der Datenbank Format Datenbank Format Format Forma Format Format5 Format6 Format7 Neues Format Abbildung 6 15 Authoring Tool Formate Tabelle in der Datenbank 95 96 KAPITEL 6 AUTHORING KOMPONENTE Sprachen Datenbank Sprachel Sprache2 Sprache3 Sprache4 Sprache Sprache6 Sprache Neue Sprache Abbildung 6 16 Authoring Tool Sprachen Tabelle in der Datenbank Typen Datenbank Typl Typ2 Typ3 Typ4 Typ5 Typ6 Typ Neuer Typ Abbildung 6 17 Authoring Tool Typen Tabelle in der Datenbank e Der Einstellungs Bereich Der Einstellungs Bereich unterteilt sich in vier Teilbereiche Allgemeine Einstellungen Abb 6 18 Internet Einstellungen Abb 6 19 Payment Einstellungen Abb 6 20 und Einstellungen zum verwendeten Layout Abb 6 21 Die ersten drei Bereiche befinden sich ein einem Fenster und sind durch Register voneinander getrennt Das Fenster f r die Layout Einstellungen ist aufgrund der Gr e der einzelnen Vorschau Bilder in ein separa tes Fenster ausgelagert Dei der Layo
18. Die kontextsensitive Hilfe Abb 7 13 wird je nach Inhalt des Hauptframes in einem extra Fenster angezeigt Wenn zum Beispiel im Hauptframe Ihre Lizenzen angezeigt werden so er scheint im Hilfefenster die Hilfeseite zur Lizenzanzeige Sie erreichen die kontextsensitive Hilfe im Layout 1 in dem Sie einfach auf das Fragezeichen in der Navigation klicken Im Layout 2 und Layout 3 gelangen Sie mit einem Klick auf das kleine Fragezeichen Symbol welches Ihnen des fteren in den Anzeigen begegnen wird zur kontextsensitiven Hilfe Innerhalb des neuen Hilfefensters k nnen Sie mittels der Navigationshilfen im oberen und unteren Bereich navigieren Unter dem Link Index verbirgt sich ein kurzes Inhaltsverzeichnis der Hilfe hier k nnen Sie also schnell ein spezielles Thema ausw hlen ber das Sie informatiert werden wollen Suchen Das Suchen Frame Abb 7 14 bietet Ihnen die M glichkeit einer Suche auf den Dokumenten des iShops Ein Mausklick auf diesen Link f hrt Sie zur Suchseite wo Sie die M glichkeit haben nach einem Suchbegriff im Datenbestand suchen zu lassen Die Seite f r die Suche bietet Ihnen die M glichkeit auf den Dokumenten in der Datenbank eine Suche nach den folgenden derzeitigen Kriterien durchzuf hren Titel Der Titel des Dokumentes nach dem Sie suchen 138 KAPITEL 7 DDS WEB KOMPONENTE Inhalt Index Zur ck Vorherige Seite N chste Seite WebShop Anleitung Lizenzanzeige Aut den Lizenzseitenhaben Sie
19. F r die Er stellung und Pflege solcher Shops gibt es inzwischen zahlreiche Software Systeme sogenannte eShop Systeme oder Commerce Server InterShop Openshop Internolix eShops sind spezielle WWW Sites die den Kauf von Produkten ber das WWW erm glichen Die Funktionalit t von eShops basiert eigentlich immer auf demselben Muster das traditionel len Einkaufsvorg ngen nachgebildet ist Kunden k nnen entweder ber einen Katalog im Pro duktbestand navigieren oder gezielt nach Produkten suchen Aus den Trefferlisten lassen sich Produkte ausw hlen und ausf hrlichere Beschreibungen h ufig mit Fotos oder Filmen verse hen abrufen Produkte die der Kunde erwerben m chte k nnen in einen virtuellen Warenkorb abgelegt werden Hat der Kunde seine Auswahl abgeschlossen begibt er sich zur Kasse Hier 4 KAPITEL 1 EINLEITUNG sind die Zahlungsformalit ten zu erledigen Anschliefend werden die erworbenen Produkte im allgemeinen per Post ausgeliefert eShop Systeme sind Software Systeme die den Aufbau die Verwaltung und den Einsatz von eShops unterstiitzen Fiir den Handler werden zumeist graphisch interaktive Tools zur Verfiigung gestellt die es erlauben auch ohne Programmierkenntnisse einen eShop einzurichten und zu betreiben Die Daten werden in einer Datenbank abgespeichert Der Kundenzugriff wird ber dynamische WWW Seiten realisiert wobei die Daten aus der Datenbank abgerufen werden 1 4 Digital Commerce Als digit
20. Fenster von oben nach unten gibt die Reihenfolge der Nennungen der Autoren bzw Herausgeber zu dem Dokument auf der Kundenseite vor Per Drag And Drop kann die Reihenfolge ver ndert 112 KAPITEL 6 AUTHORING KOMPONENTE werden Um die eingetragenen Daten in die Datenbank zu schreiben muss auf die Schaltfl che Speichern gedr ckt werden Damit die zuletzt gespeicherten Werte im Fenster erscheinen muss auf die Schaltfl che Verwerfen gedr ckt werden 6 3 2 7 Angebote Fenster Das Angebote Fenster enth lt alle zu einem Dokument jemals erstellten Angebote und kenn zeichnet ein Angebot als zur Zeit g ltig Es ist ber dieses Fenster m glich dem Dokument neue Angebote hinzuzuf gen Abgebildet ist das Angebote Fenster in Abbildung 6 31 Artikel r X Gueltig Angebote 0 28 DEM 0 3 DEM 0 25 DEM 0 2 DEM Neues Angebot ess DEM O EUR A Abbildung 6 31 Das Angebote Fenster des Authoring Tools Es existieren zwei Bereiche das obere Panel ist der Darstellungsbereich der bisher eingetragenen Angebote und das untere Panel ist der Angebots Erstellungsbereich Im oberen Bereich stehen die Angebote zu dem Dokument in DM oder Euro und einer Markierung ob das jeweilige Angebot zur Zeit G ltigkeit besitzt Diese G ltigkeit wird durch einen Haken in der links neben dem Angebot stehenden Checkbox ausgedr ckt Es kann nur ein Angebot zur Zeit g ltig sein Um ein neues Angebot d
21. ID an das Security Servlet geschickt Wie die Kommunikation genau funktioniert wird sp ter im Abschnitt Kommunikation zwischen Server Plugin und Security Servlet be schrieben Die Zeichenkette die vom Servlet zuriickgeschickt wird speichert das Server Plugin in einer internen Datenstruktur ab Damit ist die erste Phase der Anfragebearbeitung abge schlossen Der n chste interessante Schritt ist das Zur cksenden einer Antwort an den Client Hier wird nun in der internen Datenstruktur des Server Plugins die Antwort des Servlets berpr ft Ist die Antwort OK so wird das angeforderte Dokument angezeigt wobei wichtig ist dass die Session ID wieder in der URI steht Ohne die Session ID wire n mlich das weitere Navigieren in einem geschtitzten Dokument nicht m glich Wenn jedoch ein Fehler aufgetreten ist so sendet der Server eine entsprechende Antwort an den Client zur ck Diese Antwort kann einfach nur aus einem Fehlertext aber auch aus einer Aufforderung zum Einloggen bestehen falls die Session ID abgelaufen ist Die Bearbeitung des Login Formulars bernimmt dann wieder das Servlet 5 5 2 Implementation des Security Servlets Das Security Servlet hat die Aufgabe zu berpr fen ob ein bestimmter User Zugriff auf ein bestimmtes Dokument hat oder nicht Dies geschieht mittels Anfragen an die Datenbank via die Datenbankschnittstelle Sendet der Server nun eine URI und eine Session ID zur berpr fung an das Servlet so fordert es m
22. Implementierungs Phase des Programms welche rund zwei Monate dauerte Wahrend dieser Zeit waren die Autoren des Tools oft gezwungen den Entwurf ein klein wenig abzu ndern da einige Teilaspekte des Entwurfes gar nicht oder nur sehr schwierig realisierbar erschienen Dariiber hinaus waren die Autoren des Tools oft gefordert spezielle Detail L sungen fiir besondere Probleme zu finden Obendrein traten auch kleinere Fehler in der verwendeten Java Entwicklungsumgebung in der Version 1 2 2 zu Tage fiir die in einigen Fallen ein Workaround entwickelt wurde in anderen Fallen aber keine L sung vorhanden war Zu guter Letzt mussten nach Abschluss der Implementierungs Phase noch einige Modifikatio nen am fertigen Quell Code vorgenommen werden da bei Tests des fertigen Programms auf verschiedenen Plattformen ein unterschiedliches Verhalten zu Tage trat was die Entwickler des Authoring Tools an der Plattformunabh ngigkeit der Java Programmiersprache zweifeln lief Die endgiiltige Programmierschnittstelle des Authoring Tools und einige Detail L sungen wer den in des folgenden Unterkapiteln pr sentiert 6 2 1 Schnittstellen Dokumentation Das Authoring Tool selber hat keine besonderen Schnittstellen die von anderen Anwendungen benutzt werden k nnten Stattdessen gibt es einige abstrakte Klassen auf denen das Authoring Tool aufbaut Diese Klassen stellen sozusagen das Grundger st des Authoring Tools dar und sollen im Folgenden erkl rt werden W
23. Ist die Lizenz schon bezahlt Antwort Ja die Lizenz ist bezahlt worden Antwort Nein die Lizenz ist noch nicht bezahlt worden Aktion Das Security Servlet sendet firstClick und den Index der Hashtable per Socket Verbindung an das C Modul Das C Modul fragt dann den User nach seinem Login und Password Aktion Das Security Servlet sendet den String nochnichtbezahlt per Socket Verbindung an das C Modul Abbildung 5 4 Ist die Lizenz schon bezahlt Hier stellt sich die Frage ob die Lizenz schon bezahlt ist Es kann sein dass zwar schon versucht wurde auf die Seiten zuzugreifen die Lizenz jedoch noch nicht freigeschaltet wurde weil Sie noch nicht bezahlt worden ist bzw die Information ber die erfolgte Zahlung noch nicht einge gangen ist Ist die Lizenz noch nicht bezahlt worden bzw die Information ber die Zahlung noch nicht ein gegangen so sendet das Security Servlet den String nochnichtbezahlt per Socket Verbindung an das C Modul welches eine entsprechende Ausgabe auf dem Browser des Users macht Sollte sie doch schon bezahlt worden sein so handelt es sich hier um den ersten Aufruf der Seiten nach dem Eingang der Zahlung weswegen der first_click gesetzt werden muss Daf r muss der User sich jedoch authentifizieren weswegen das Security Servlet den String firstClick und den Index der Hashtable in der die Daten der Lizenz gespeichert sind per Socket Verbindung an das C M
24. JDBC angebunden werden so dass quasi jede Datenbank die JDBC unterst tzt angebunden werden kann Zum Zugriff auf die Datenbank sollten entsprechenden Schnittstellen f r die anderen Module bereitgestellt werden e Das DDS System sollte verschiedene Zahlungsverfahren wie zum Beispiel eCash Cyber Cash Kreditkarte f r die Bezahlung der Online Zeit Lizenzen unterst tzen 2 3 ARCHITEKTUR 9 e Weiterhin sollte der eigentliche iShop zum Kauf von Online Zeit Lizenzen fiir digitale Do kumente in verschiedenen Layouts erstellt werden der die folgenden Funktionalit ten bie tet neue Kunden sollten sich registrieren k nnen bereits registrierte Kunden sollten sich anmelden k nnen ein Gastzugang sollte m glich sein so dass erst mal der Shop ausgekundschaftet werden kann bevor sich ein Kunde registriert der iShop sollte eine Suchfunktion zur Verfiigung stellen attributierte Suche in Do kumentbeschreibungen eine Navigation im Produktkatalog Klassifikation sollte angeboten werden die Anzeige von Dokumentbeschreibungen sollte m glich sein es sollte die M glichkeit der Lizenzbestellung Einzelbestellung Warenkorb inklu sive Bezahlung verfiigbar sein eine Ubersicht iiber die aktuellen Lizenzen sollte angezeigt werden k nnen und der Zugriff auf die hypermedialen Dokumente sollte aus dem Shop heraus m glich sein e Durch eine weitere Komponente sollten die Dokumente vor
25. Methoden zur Verf gung Nachdem Sie Ihre Daten in das entsprechende Bestellformular eingegeben haben und Ihre Be stellung abgeschickt haben erhalten Sie eine Nachricht ber den Status Ihrer Bestellung also ob die Transaktion geklappt hat oder nicht 7 3 BENUTZERHANDBUCH 147 Bestellung per Bankeinzug Im Bestellformular fiir die Zahlung per Bankeinzug miissen Sie die folgenden selbstbeschreibenden Felder ausfiillen e Kontonummer e Bankleitzahl e Kreditinstitut e Name des Kontoinhabers initial der Name des angemeldeten Nutzers Im oberen Bereich werden Ihre Bestelldaten angezeigt und Sie haben die M glichkeit die Zah lungsmethode noch mal zu ndern oder anzupassen Desweiteren wird Ihnen unterhalb des For mulars noch mal in einem kurzen Text mitgeteilt wieviel DM von dem angegebenen Konto per Lastschrift eingezogen werden Ein Mausklick auf Bestellen f hrt Ihre Bestellung aus sofern keine weiteren Probleme aufgetreten sind Bestellung per Credit Card Im Bestellformular f r die Zahlung per Credit Card m ssen Sie die folgenden sebstbeschreibenden Felder ausf llen e Kreditkartennummer e Giiltigkeitsmonat und jahr Ihrer Kreditkarte e Kreditkarteninstitut z B Eurocard VISA e Name des Kreditkarteninhabers initial der Name des angemeldeten Nutzers Im oberen Bereich werden Ihre Bestelldaten angezeigt und Sie haben die M glichkeit die Zah lungsmethode noch mal zu ndern oder anzupassen Desweiteren wird Ih
26. Navigationsleiste durch die einzelnen Dokumentkategorien Abb 7 7 die vom aktuellen Online Shop angeboten werden Initial wer den hier die Hauptkategorien geladen sofern Sie dann auf eine Hauptkategorie klicken steht im oberen Teil des Frames der Name der Hauptkategorie und im unteren Tei des Frames die Namen der in dieser Kategorie enthaltenen Unterkategorien Desweitern werden im Hauptframe die in dieser Kategorie enthaltenen Dokumente angezeigt Der Warenkorb befindet sich beim Layout 2 permanent im rechten unterern Frame So haben Sie jederzeit einen berblick ber die aktuell im Warenkorb befindlichen Dokumente Dies ist bei Layout 1 und 3 nicht der Fall hier m ssen Sie extra auf den Men punkt Warenkorb klicken um sich dann im Hauptframe den Warenkorb anzeigen zu lassen 7 3 BENUTZERHANDBUCH 131 Layout 3 D HA bite H ategorien Dem Ger einloggen e Werenkorl q Su lern Dj till ED ws Inu A Yom oe Abbildung 7 8 Das Layout 3 Im Layout 3 Abb 7 8 befindet sich wie bei den anderen Layouts auch im rechten oberen Eck das Logo des Online Shops wie bei Layout 1 existiert hier auch keine Interaktionsm glichkeit Im Layout 3 befindet sich im linken unteren Frame die Navigationsleiste Abb 7 9 die sich sowohl auf den Dokumentbestand als auch auf die Navigation durch den Shop bezieht Diese Navigationsleiste beinhaltet folgende Men punkte Startseite Mit diesem Men punkt wird die ShopInfo Seite
27. Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zum Parameter folderld 40 KAPITEL 3 DATENBANK KOMPONENTE 3 2 3 Die Schnittstellen fiir den Payment Handler insertShop Fiigt einen neuen Shop in die Tabelle Shop ein public static int insertShop Login shop throws InternalDbifError InvalidIDException Parameters shop webshop payment Login Returns Die ID PK des Shops in der Tabelle Shop Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Shops ist ung ltig updateShop Andert einen Shop Datensatz in der Tabelle Shop public static void updateShop Login shop throws InternalDbifError InvalidIDException Parameters shop webshop payment Login Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Shops ist ung ltig getAllShops Liefert alle Shops aus der Tabelle Shop public static java util Vector getAllShops throws InternalDbifError Returns Vector mit Objekten vom Typ webshop payment Login Throws InternalDbifError Schwerer Fehler in webshop dbif insertTransaction F gt eine neue Transaktion zum Kunden eines Shops in die Tabelle Transaction ein public static int insertTransaction Transaction transaction throws InternalDbifError InvalidIDException Parameters transaction webshop payment Transaction Returns Die ID PK der Transaktion in der Tabelle Transaction Throws InternalDbifError Schwerer F
28. Tabelle Document_Folder public static void deleteDocumentFromFolder int docId int folderId throws InternalDbifError InvalidIDException Parameters docld Die ID PK des Dokuments in der Tabelle Document folderld Die ID PK des Folders in der Tabelle Folder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert keine Zuordnung des Dokuments mit der docld zu dem Folder mit der folderld getFolderlessDocuments Liefert alle Dokumente aus der Tabelle Document die keinem Fol der zugeordnet sind Wenn keine Dokumente existieren wird ein leerer Vector zur ckge geben Die Dokumente enthalten nur die docld den Titel und die Image Url jedoch keine DocumentInfo public static java util Vector getFolderlessDocuments throws InternalDbifError Returns Vektor mit Objekten vom Typ webshop classes Document Throws InternalDbifError Schwerer Fehler in webshop dbif getDocuments Liefert alle Dokumente aus der Tabelle Document die dem Folder mit der ID im Parameter folderld zugeordnet sind Wenn keine Dokumente existieren wird ein leerer Vektor zuriickgegeben Die Dokumente enthalten nur die docld den Titel und die Image Url jedoch keine DocumentInfo public static java util Vector getDocuments int folderld throws InternalDbifError InvalidIDException Parameters folderld Die ID PK in der Tabelle Folder Returns Vektor mit Objekten vom Typ webshop classes Document Throws InternalDbifError
29. Verwendung verschiedener voneinander getrennter Fenster fiir die Verwaltung der Datenbank Tabellen Author Verlage Dokument Formate Dokument Typen und Spra chen gab es ein Problem Anderungen in diesen Tabellen anderen Programm Bereichen vor allem das Fenster mit den Details zu einem Artikel mitzuteilen Die L sung dieses Problems bestand darin eine Klasse zu erschaffen die entsprechende Tabellen statisch fiir alle Instanzen des Programms bereit stellte Da es sich bei den Tabellen um einfache Li sten handelte wurde zur Kapselung der Daten das ListModel des Swing Paketes aus Java 1 2 verwendet Somit war es m glich sich bei den verschiedenen Modellen als ListDataLi stener zu registrieren um ber nderungen in der Liste informiert zu werden Die Folge 102 KAPITEL 6 AUTHORING KOMPONENTE war schlie lich dass in allen Funktionen des Authoring Tools auf gemeinsame Tabellen zugegriffen werden konnte und somit die Konsistenz der Daten gew hrt war Die Klasse die die verschiedenen Tabellen als ListModel bereitstellt ist die Klasse DBSupporter Problem Performance Probleme beim Anzeigen von Artikeln Die Shop Einstellungen Klasse ShopSettings sind in vielen Funktionen notwendig und normalerweise hatte es auch gereicht die Einstellungen bei Aufruf einer Funktion je weils einmal aus der Datenbank zu laden Allerdings gibt es eine elementare Funktion im Authoring Tool wo mit dieser Vorgehensweise gro e Performance Probleme a
30. abstract class e webshop servlet Basket Viewer webshop servlet Cat Viewer webshop servlet CustomerViewer webshop servlet Document List Viewer webshop servlet Document Viewer webshop servlet Folder Viewer webshop servlet Help Viewer webshop servlet Licence Viewer webshop servlet Order Viewer webshop servlet Search webshop servlet WebShop Abbildung 7 1 Die Klassenstruktur der Servlets Das Servlet Webshop Als Einstiegspunkt in den WebShop sowie fiir die Html Seiten deren Erzeugung keine weitere Funktionalit t ben tigt dient das Servlet webshop serulet WebShop Es liefert wenn es ohne einen definierten Parameter webshop servlet DOIT im HttpServletRequest angefordert wird das Frameset f r den WebShop durch welches dann die weiteren Frameinhalte von den Servlets angefordert werden Das Servlet WebShop erzeugt die Html Seiten e FramePage das Frameset e LogoPage das Frame mit dem ShopLogo oben links e NavigationPage in Layout 1 die obere Navigationsleiste e InfoPage die Seiten die als Start und Info seiten gezeigt werden wenn diese nicht in der Datenbank definiert sind e HeadPage in Layout 3 das Frame rechts oben e ErrorPage eine Fehlermeldung welche den Nutzer ber aufgetretene Fehler oder seine abgelaufene HttpSession informiert 122 KAPITEL 7 DDS WEB KOMPONENTE e webshop servlet ShopPage abstract class e webshop servlet FramePage e webshop servlet ShopContentPage abstract class e
31. ben tigten Informationsbereiche geladen bzw gespeichert 88 KAPITEL 6 AUTHORING KOMPONENTE Abstract ShopFrame ShopSettings 1 1 Authoring 1 1 Layout Frame Tool Chooser 1 1 1 1 Document Abstract 2 Browser Editor TableEditor 1 1 1 Document Editor 1 4 5 Ly XXX HolderFrame HolderPanel TableFrame lt 4 1 1 1 1 XXX HolderPanel TablePanel Fi TablePanel Abbildung 6 2 Das spezielle Klassenmodell des GUI 6 1 1 5 Alternativen zum Holderkonzept Anstatt die kennzeichnenden Elemente eines Dokumentes auf Holder aufzuteilen h tten sie auch direkt als Attribute in einem Dokument dargestellt werden k nnen Folge w re eine recht un bersichtliche Klasse Document die direkt auf die Attribute zugreifen k nnte Der Vorteil hierbei ist jedoch dass es keine B ndelung verschiedener Informationen gibt die eine gemein same Bearbeitung nahelegt Es ist offen ob der Titel zusammen mit dem Verlag in einem Panel bearbeitet wird oder ob beide Informationen in getrennten Panels angezeigt werden Sicherlich ist diese Offenheit auch mitels der Holder zu realisieren jedoch wird dies bei einer nicht v lli gen berarbeitung der Holder mit einem gewissen Overhead einhergehen Das Holderkonzept ist darauf ausgerichtet die Inhalte eines Holders zusammen in einem Panel anzuzeigen Bei den meisten Holdern ist jedoch abzusehen dass ihre Inhalt
32. bereits vorhandene Daten aus der Datenbank auszulesen In der ersten Programmierphase wurden die einzelnen Komponenten unabh ngig vonein ander ausprogrammiert wobei die Schnittstellen Methoden durch Dummy Methoden zur Datenbeschaffung und Datenbereitstellung ersetzt wurden W hrend der Integrationsphase wurden dann die Dummy Methoden durch die Schnittstellen Methoden ersetzt und somit die Integration der f nf Komponenten zum eigentlichen DDS System nach und nach realisiert 2 5 Installationsanleitung Was braucht man um das System einsetzen zu k nnen Zum Betrieb des DDS iShops ist neben der DDS System Software selbst der Apache WWW Server mit Servlet Unterst tzung und ein JDBC unterst tzendes Datenbanksystem erforderlich Zus tzlich sollte gen gend Speicherplatz zur Ablage der angebotenen hypermedia len Dokumente auf dem WWW Server zur Verf gung stehen F r den Betrieb des DDS Authoring Tools sollte Java in der Version 1 2 oder h her installiert sein Zus tzlich muss noch das Klassenarchiv der verwendeten Datenbank hier der Oracle Datenbank vorhanden sein welches im CLASSPATH auftauchen muss Auf Seiten des Kunden sollte ein Standard WWW Browser mit eingeschaltetem JavaScript und dem Aktzeptieren von Cookies vorhanden sein F r die Bezahlung mittels ECash oder CyberCash sollten entsprechende Wallets auf Kundenseite vorhanden sein Installationsanleitung Zun chst einmal muss auf dem Server des Anbieters ein Apache
33. dem Kapitel 6 Authoring Komponente Damit die angebotenen Dokumente auch ber die Dokumentenschutz Komponente vor dem nicht autorisierten Zugriff geschiitzt sind miissen diese Dokumente auf dem WWW Server ab gelegt werden und diirfen sich nicht irgendwo auf einem anderen Server im WWW befinden wo sie durch die Dokumentenschutz Komponente nicht geschiitzt werden k nnen Dies kann mittels eines normalen FTP Programms geschehen 14 KAPITEL 2 DAS DDS SYSTEM Kapitel 3 Datenbank Komponente 3 1 Datenbank Entwurf 3 1 1 ER Schemata Die im Folgenden dargestellten Entity Relationship Modelle spiegeln die Relationen des Daten Modells zu gr ten Teil direkt wider Die Namen der Entit ten wurden f r die entsprechenden Relationen bzw Tabellen bernommen Bez glich des vollst ndigen DDS Systems sind noch zahlreiche zus tzliche Entit ten denkbar Da diese allerdings nicht persistent sein m ssen wer den sie im Zusammenhang mit dem Datenbank Entwurf nicht weiter betrachtet 3 1 1 1 DDS ER Schema Die in Abbildung 3 1 dargestellte Entit t Shop_Settings beschreibt einen Tupel von DDS Attributen die in der Tabelle 3 14 n her erl utert werden Zu diesen Einstellungen geh ren ebenso eine Anzahl von unterstiitzten Zahlungsverfahren siehe Entit t Brand Shop_Settings mode of payment gt Abbildung 3 1 Entity Relationship Diagramm f r die DDS Einstellungen Das in Abbildung 3 2 dargestellte ER Modell zeigt die Ent
34. die Anzeige der Lizenzen eines Kunden Das Servlet Licence Viewer erzeugt die Html Seiten e LicencePage zur Anzeige der Lizenzen eines Kunden e LoginPage wenn dieses Servlet aufgerufen wird bevor anderswo ein Login gemacht wurde Das Servlet OrderViewer bearbeitet die Durchfiihrung der Bestellung von Lizenzen sowie das Aufladen des Kundenkontos Das Servlet OrderViewer erzeugt die Html Seiten e OrderPage zur Verarbeitung der Bestellung e LoginPage wenn dieses Servlet aufgerufen wird bevor anderswo ein Login gemacht wurde e CustomerPage zum Einrichten eines neuen Kunden Das Servlet Search erm glicht die Suche auf der Dokumentendatenbank Das Servlet Search erzeugt die Html Seite e SearchPage zur Fingabe der Suchdaten sowie der Darstellung der Suchergebnisse Eine bersicht ber die weiteren implementierten Interfaces und Klassen zeigen die Abbildungen 7 20 bis 7 22 124 KAPITEL 7 DDS WEB KOMPONENTE 7 3 Benutzerhandbuch Dieses Benutzerhandbuch teilt sich in zwei Abschnitte auf Zum einen werden die wichtigsten Erkl rungen und Erl uterungen f r den Betreiber des DDS Systems aufgez hlt zum anderen die Beschreibungen um mit dem Programm zu arbeiten was f r den sp teren Benutzer des Programms von Bedeutung ist Der Betreiber ben tigt vor allem Informationen zur Installation und Wartung des WebShops Ausserdem muss der Betreiber wissen welche Voraussetzungen sein System erf llen sollte damit dieser Te
35. die Auslieferung von digitalen Produkten unterscheiden e direkte Online Auslieferung Das Produkt wird entweder zum Download bereitgestellt oder via eMail an den Kunden verschickt e indirekte Online Auslieferung Das Produkt verbleibt beim Anbieter der einen Online Zugriff zumeist ber WWW Browser erm glicht sogenannte Online Lizenzen Aus Anbietersicht ist die zweite Auslieferungsform interessanter da so ein besserer Infor mationsschutz beispielsweise was die Verletzung von Copyright und Urheberrecht angeht gew hrleistet werden kann Hierzu sind nat rlich entsprechende Schutzmechanismen in den 7 8 KAPITEL 2 DAS DDS SYSTEM iShop zu integrieren bzw auf dem Server des Anbieters zu installieren Im Rahmen unserer Projektgruppe haben wir uns mit Digitalen Bibliotheken besch ftigt und so lag es nahe zum einen ein Tool zu entwickeln welches einen Shop Betreiber bei der Erstellung seines Shops unterst tzt und zum anderen auch ein Gesch ftsmodell f r den Information Commerce in einen solchen iShop integriert Das Ziel sollte also sein ein DDS System zu entwickeln welches eine Integration von kostenpflichtigen Digitalen Bibliotheken und E Commerce realisiert 2 2 Anforderungen Das DDS System sollte es einem Anbieter erm glichen fast ohne Programmierkenntnisse oder Kenntnisse in HTML einen eigenen iShop aufzubauen und zu betreiben Dieser iShop sollte die M glichkeit bieten Online Zeit Lizenzen zu erwerben und diese
36. die Klasse ThreeInfosHolder beispiels weise mittels Get und Set Methoden Zus tzlich bernimmt die Klasse die Aufgabe die drei Informationen bei Bedarf in einer Datenbank zu speichern Ein Dokument besteht nun nicht mehr in erster Linie aus Titel Beschreibung und Verlag sondern aus einem ThreeInfosHolder und kann die Werte der drei Informationen ber den Aufruf der Speicher Methode des Holders bequem in der Datenbank speichern Nach dem gleichen Prinzip werden weitere Holder gebildet bis alle Informationen einem Holder zugeordnet sind und somit ein Dokument nur noch aus Holdern besteht Sollen nun alle Informationen in der Datenbank gespeichert werden muss bei 85 86 KAPITEL 6 AUTHORING KOMPONENTE allen Holdern nur die Speicher Methode aufgerufen werden und dies kann einheitlich innerhalb einer Schleife erfolgen 6 1 1 2 Die Datenstruktur Jede Klasse die das Interface Holder implementiert ist vom Typ Holder Das Interface enth lt zwei Methoden eine Schreibmethode write int Document und eine Reinitialisierungsmethode rollBack int Document wobei das Argument Document die in der Datenbank verwendete Identifikationsnummer eines Dokumentes darstellt Die Schreibmethode soll jeder Holder so im plementieren dass die eigentlichen Inhalte des Holders in der Datenbank gespeichert werden Die Reinitialisierungsmethode soll den Holder mit den zuletzt in der Datenbank gespeicherten Werten f llen Bei den Datenbankzugriffe
37. entnommen Attributname Domain Beschreibung format_id NUMBER ID des Dokumentformats PK doc_format STRING Bezeichnung des Formats Tabelle 3 5 Tabelle Format Language Die Tabelle Language speichert Sprachen Sie bildet einen Pool von Sprachen die den Dokumenten im DDS zugeordnet werden k nnen was eine einheitliche Schreibweise f r alle Dokumente beg nstigen soll Das Attribut ist dem Dublin Core Element Set ent nommen Attributname Domain Beschreibung language_id NUMBER ID der Sprache PK language STRING Sprache in der ein Dokument verfasst sein kann Tabelle 3 6 Tabelle Language 3 1 DATENBANK ENTWURF 21 Author Die Tabelle Author enth lt den Autorenstamm der Dokumente im DDS Die Autoren k nnen verschiedenen Dokumenten zugeordnet sein was unterschiedliche Schreibweisen verhindert und einer bessere Trefferquote bei einer Suche ber Autoren beg nstigt Attributname Domain Beschreibung author_id NUMBER ID des Autors PK name STRING Bezeichnung bzw der Name des Autors Tabelle 3 7 Tabelle Author Document_Author Die Tabelle Document_Author dient der Assoziation zwischen Dokumen ten und Ihren Autoren Als zus tzliche Attribute der Assoziation werden die Rolle des Autors sowie seine Position in einer Reihe mehrerer Autoren festgehalten Attributname Domain Beschreibung doc_id NUMBER ID des Dokuments f r das dieses Angebot gilt FK author_id NUMBER ID eines Autors des Dokuments FK au
38. er keine korrespondierende Datei finden die er dem User schicken k nnte Die Dateinamen m ssen eindeutig erkennbar sein Dies kann man jedoch nicht im Dateinamen selbst kodieren weil immer die M glichkeit besteht dass jemand eine Datei genau so benennt wie der Webshop sie umbenennt Deswegen war ein weiterer Eintrag in der Datenbank geplant in dem der umbenannte Dateiname steht Dar ber h tte es eine eindeutige Identifizierung gegeben Leider wurde zuviel Zeit in den Entwurf dieser Sicherheitstechnik investiert weil eine Realisie rung mit dem Apache Webserver nicht m glich erscheint Das liegt daran dass vom C Modul Dateien per Sub Request an den User geschickt werden Diese Sub Requests erm glichen den In formationsflu zwischen C Modul und Security Servlet mit der Entscheidungsf higkeit ob eine Datei an den User gesendet wird oder nicht Bei einem Sub Request wird jedoch nichts anderes als bei dem Modul Modrewrite gemacht n mlich eine Datei mit einem beliebigen Namen an den Browser des User gesendet Der User bekommt davon nichts mit weil sein Browser dar ber nicht informiert wird weswegen er die Datei unter dem Namen erh lt unter dem sie angefordert wurde Das bedeutet dass nichts dadurch gewonnen werden kann Eine kurzfristige Alternative schien das Arbeiten mit Meta Refresh Aufrufen zu sein weil ber diesen Weg dem User Dateien mit neuen Dateinamen gesendet werden k nnen Das liegt daran dass bei dieser Methode der Use
39. f r die er bezahlt hat abgelaufen ist Das Lesen von Dokumentinhalten erfolgt innerhalb einer oder mehrerer Kun densitzungen Customer_Session s Tabelle 3 11 innerhalb derer die Zugriffssteuerung f r eine Lizenz geregelt wird 18 KAPITEL 3 DATENBANK KOMPONENTE 3 1 1 2 Payment Handler ER Schema Abbildung 3 3 zeigt das ER Modell des zentralen Payment Handlers Als persistente Objek te Entit ten werden hier Transaktionen Transaction s Tabelle 3 18 Web Shops Shop s Tabelle 3 16 und Kunden eines Web Shops Payment_Customer s Tabelle 3 17 verwaltet Anbieter bzw Shopbetreiber die den Payment Handler nutzen miissen registriert sein Die Kun den eines Anbieters sind fiir den Payment Handler anonym was die Speicherung pers nlicher Daten betrifft Ein Kunde tritt dem Payment Handler auch immer nur in Verbindung mit dem selben Shop gegen ber ist er gleichzeitig auch noch Kunde eines anderen Anbieters der eben falls die Dienste des Payment Handlers in Anspruch nimmt gilt er bei Gesch ften die er iiber diesen Anbieter t tigt als neuer Kunde des Payment Handlers Als Kunde kann er iiber den Payment Handler Transaktionen unterschiedlichen Typs abwickeln deren Verlauf und Erfolg vom Payment Handler protokolliert werden und die f r den Kunden jederzeit ber den Umweg des DDS Shops einsehbar sein sollen Transaction rN payment PS din P N 1 ee 0 Shop purchaser Payment_Customer N 4
40. mehr Platz vorhanden ist als sie tats chlich braucht ber cksichtigt sie diesen nicht falls sie in einem JScrollPane liegt Die Folge war dass Drag und Drop nur auf Bereiche der Tabelle funktionierte in denen Daten angezeigt wurden Dieses Verhalten war nach Meinung der Entwickler offensichtlich falsch Abhilfe brachte eine Modifikation zweier durch das Interface Scrollable zu implementierenden Methoden Angenehmer Nebeneffekt war zudem dass die Hintergrund Farbe von Tabellen nun einheitlich erschien Problem Absturz des Drag und Drop Systems unter Motif Unter Motif tritt das Problem auf dass das komplette Drag und Drop System von Java in der Version 1 2 abst rzt sobald ein JWindow ge ffnet wird Dieses Problem scheint zumindest bei der Verwendung von Motif aufzutreten unter Windows gibt es ein derartiges Problem nicht Eine L sung dieses Problems konnte leider nicht gefunden werden da der Fehler offensichtlich in der Implementierung des nativen Motif UI von Sun liegt Vielleicht ist Java in der Version 1 3 von diesem Problem nicht mehr betroffen Problem Zuordnung von Artikeln zu Ordnern Die Zuordnung von Artikeln zu Ordnern in der Datenbank ist eine n zu m Beziehung Damit ein neuer Artikel dem aktuell ge ffneten Ordner zugeordnet werden kann ist es notwendig dass das UI informiert wird sobald ein Artikel in der Datenbank neu erstellt 6 2 IMPLEMENTIERUNG 103 wird Allerdings besitzen die Artikel die durch die Klasse Docum
41. mit verschiedensten Zahlungsmethoden zu bezahlen Im einzelnen haben wir die folgenden Anforderungen an das zu entwickelnde DDS System gestellt welches sich aus f nf verschiedenen Modulen zusammen setzen sollte e Ein Tool sollte den Shopbetreiber bei der Erstellung seines iShops untersst tzen Dieses sogenannte Authoring Tool sollte folgende Anforderungen erf llen allgemeine Shopeinstellungen wie z B ShopLayout Name Anschrift sollten vor genommen werden k nnen die angebotenen Dokumente sollten in Kategorien organisiert werden k nnen Klas sifikation der Dokumente der Shopbetreiber sollte Kurzbeschreibungen f r die Dokumente anfertigen k nnen z B bibliographische Daten Inhaltsverzeichnis Leseprobe Cover angebotene Dokumente d rfen aus mehreren URLs bestehen die frei oder nur mit der entsprechenden Lizenz zugreifbar sein sollten hierf r sollten die URLs aus gew hlt und entsprechend als frei oder nicht frei gekennzeichnet werden k nnen f r die Dokumente sollten Angebote erstellt werden k nnen nderung von Lizenz preisen etc der Shopbetreiber sollte die unterst tzten Zahlungsverfahren spezifizieren k nnen die Kundendaten sollten gepflegt werden k nnen der Shopbetreiber sollte sich eine bersicht ber die verkauften Lizenzen schaffen k nnen und zur Benutzung sollte eine Hilfefunktion angeboten werden e Zur Datenhaltung sollte eine Datenbank via
42. nlichen Kundenkonten gespeichert F r den Payment Handler selbst bleibt der Kunde relativ anonym abgesehen von pers nlichen Daten die beispielsweise f r die Durchf hrung eines Lastschriftverfahrens anzugeben sind aber nicht persistent gespeichert werden Ein realer Kunde sollte auch niemals mit dem Payment Handler selbst ndig in Kontakt treten Statt dessen muss seine Funktionalit t durch die Shopbetreiber gekapselt und dem Kunden ber einfache Schnittstellen zu Verf gung ge stellt werden Attributname Domain Beschreibung shop customer_id NUMBER ID des Kunden PK shop_id NUMBER ID des Shops FK balance NUMBER Saldo des Kundenkontos credit NUMBER einger umter berziehungskredit customer_id NUMBER ID des Kunden innerhalb eines Shops Tabelle 3 17 Tabelle Payment_Customer 3 1 DATENBANK ENTWURF 27 Transaction Die Tabelle Transaction speichert s mtliche Transaktionen die vom Payment Handler bearbeitet werden Jede Transaktion wird von einem Payment_Customer aus gel st Eine Transaktion durchl uft bis sie als beendet gilt verschiedene Zust nde die durch die Belegung Attribute in der Tabelle widergespiegelt werden Diese Attribute sol len vom Payment Handler zeitnah aktualisiert werden Attributname Domain Beschreibung phPay id_id taType taStatus errorStatus cOrg id shortDesc invoiced At invoiced Amount paid At paidAmount settled At NUMBER ID der Transaktion PK
43. sind besch ftigen Eine HTML Datei enth lt zwei wichtige Bestandteile die den User interessieren Das erste ist der textuelle bzw graphische Inhalt also das wof r er Lizenzko sten bezahlt Das zweite sind sogenannte Links Verkn pfungen ber die der User innerhalb eines Dokuments zu unterschiedlichen Stellen springen kann Diese Links k nnen zwar auf eine einzige HTML Datei beschr nkt sein aber f r gew hnlich handelt es sich dabei um mehrere Dateien die ber Links miteinander verkn pft sind In diesen Links stehen die Namen der HTML Dateien die geladen werden wenn auf diese Links geklickt wird ndert man die Namen der HTML Dateien so sind die Links unbrauchbar weil es zu ihnen keine korrespondierenden HTML Dateien mehr gibt Das Konzept war dass der User ber den Klick auf einen Link eine HTML Datei anfordert der Name dieser Datei vom Webshop System auf den umbenannten Namen umgesetzt wird und dem User dann die richtige Datei mit einem falschen Namen gesendet wird Dadurch w rde er keine Einschr nkungen erleiden und im Zweifelsfall noch nicht einmal etwas davon mitbekommen F r den Fall dass er sich die angeforderten Dateien lokal auf seinem Rechner speichert w re er nicht mehr in der Lage auf dem Dokument zu navigieren weil alle Links unbrauchbar w ren Ihm 5 8 DAS PROBLEM BEI DER UMBENENNUNG DER DATEINAMEN 83 fehlt dann in diesem Fall das Webshop System als Ubersetzer der Dateinamen F r dieses Konzept gab es me
44. umfasste vor allem die Umwandlung des BDK in eine verteilte digitale Bibliothek auf Grundlage von JavaBeans Das hei t das bestehende BDK musste so umgewandelt werden dass es sowohl JavaBeans aus dem Internet als auch JavaBeans die lokal auf der Festplatte liegen verwenden kann Die se Aufgabe erforderte eine Anpassung der ToolBox sowie die Implementierung eines Servers ber den die NewBeanBox auf die JavaBeans im Internet Zugang erh lt und eine WWW Schnittstelle fiir die KleinAnbieter einzelner JavaBeans Mit der NewBe anBox soll es m glich sein JavaBeans ber das Internet von verschiedenen Servern zu verwenden aber auch weiterhin lokale JavaBeans zu benutzen Eine der weite ren Aufgaben war die Implementierung einer Suche auf den angebotenen JavaBeans Das hei t man kann die JavaBeans die einem lokal oder ber einen der Server zur Verfiigung stehen nach verschiedenen Kriterien durchsuchen Der Schwerpunkt dieser Gruppe lag auf der Benutzerseite nicht auf der Anbieterseite das hei t die NewBe anBox wurde haupts chlich fiir den Anwender optimiert und nur zum geringen Teil fiir den Anbieter Sub Projekt Framework Im Rahmen der gestellten Aufgabe sollte ein allgemei nes Modell entwickelt werden das das Angebot die Bestellung die Abrechnung und die Bezahlung digitaler Objekte unterstiitzt Die konkrete Umsetzung des entwickelten Modells sollte anschlie end durch eine prototypische Implementierung erfolgen Da es sich um ein allg
45. werden der so wohl die Autoren der Dokumente als auch den User zufriedenstellt In den n chsten Kapiteln wird dargestellt welche Schutzmechanismen existieren und welche davon f r das DDS System als sinnvoll angesehen wurden 5 2 Das Lizenz Konzept Das generelle Lizenz Konzept sieht vor dass der User eine zeitlich befristete Lizenz beim Web shop f r ein Dokument erwirbt und dann solange in dem Dokument navigieren kann wie die Lizenz g ltig ist Der User kann zwar ber die Lizenzdauer hinaus die geladenen Dokument Teile lesen aber er kann nicht ber die Lizenzdauer hinaus ber die im Dokument enthaltenen Links weiter in dem Dokument navigieren was ein Weiterlesen des Dokuments verhindert Bei der Umsetzung des Lizenz Verfahrens f r den Webshop wird das berpr fen der G ltigkeit der Lizenz ber Session ID s realisiert Das bedeutet der User bekommt beim Kauf der Lizenz einen Link zu dem gew nschten Dokument In diesem Link ist eine eindeutige Zeichenkette Session Id enthalten welche bei Anfragen an den Webserver ausgelesen wird und ber die in Zusammenhang mit dem Link auf das Dokument die User Daten und die G ltigkeit der Lizenz ermittelt werden Anhand dieser Daten wird entschieden ob der User weiter in dem Dokument navigieren darf oder nicht Darf der User weiternavigieren so wird ihm mit der angeforderten Seite des Dokuments eine neue Session ID mitgeliefert die automatisch in allen Links des Do kuments enthalten sin
46. werden in der Tabelle Offer hier nur das valid_offer Flag aktualisiert public static void updateDocumentOffers int docld OfferHolder offers throws InternalDbifError InvalidIDException IncompleteDataException Parameters docld Die ID PK des Dokuments dessen Urls aktualisiert werden sollen offers webshop classes Offer Holder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Dokument zum Parameter docld IncompleteDataException Der AuthorHolder ist leer updateShopSettings Aktualisiert die Shop Einstellungen Falls noch kein Datensatz vorhan den ist werden die Einstellungen in die Tabelle Shop_Settings eingef gt public static void updateShopSettings ShopSettings settings throws InternalDbifError 36 KAPITEL 3 DATENBANK KOMPONENTE Parameters settings webshop classes ShopSettings Throws InternalDbifError Schwerer Fehler in webshop dbif insert Author F gt einen neuen Eintrag in die Tabelle Author ein public static int insertAuthor Author author throws InternalDbifError Parameters author webshop classes Author Returns Die vergebene ID PK fiir den neuen Autor Throws InternalDbifError Schwerer Fehler in webshop dbif updateAuthor Aktualisiert einen Eintrag in der Tabelle Author public static void updateAuthor Author author throws InternalDbifError InvalidIDException Parameters author webshop classes Author Throws InternalDbifError Sch
47. x gt Abbildung 3 3 Entity Relationship Diagramm fir den Payment Manager 3 1 DATENBANK ENTWURF 19 3 1 2 DB Tabellendefinitionen 3 1 2 1 DDS Tabellen Folder Die Tabelle Folder enth lt die Kategorien fiir die Klassifizierung der Digitalen Do kumente Die Kategorien selbst sind in einer Baumstruktur organisiert was eine feinere Untergliederung erm glicht Attributname Domain Beschreibung folder_id NUMBER ID des Folders PK name STRING Name des Folders bzw der Kategorie father_folder_id NUMBER folder_id des bergeordneten Folders Tabelle 3 1 Tabelle Folder Offer Die Tabelle Offer enth lt Angebote zu den digitalen Dokumenten Zu jedem Dokument k nnen unterschiedliche Angebote existieren Aus K ufersicht ist aber immer nur ein An gebot aktuell g ltig Angebote k nnen im nachhinein nicht mehr ver ndert ausgenommen die G ltigkeit oder gel scht werden Die Angebotsform ist bewusst sehr restriktiv gehalten Es ist z B nicht m glich eine Benu zungsdauer f r einen Angebotspreis festzulegen Die Benuzungsdauer soll f r alle Angebote gleich sein und wird daher in der Implementierung der DDS Applikationen festgelegt Attributname Domain Beschreibung offer_id NUMBER ID des Angebots PK doc_id NUMBER ID des Dokuments f r das dieses Angebot gilt FK price NUMBER Angebotspreis currency STRING W hrung des Angebotspreises valid_offer NUMBER G ltigkeit des Angebots zum akt
48. zur Datei webshop ini gt webshop payment PaymentHandler Hinweise zu Nutzung des RMI Clients Wie schon in der Schnittstellendokumentation Kap 4 2 1 beschrieben nutzen alle Kom ponenten des DDS Systems f r Zugriffe auf den PaymentHandler die Klasse RMIClient Damit die Nutzung des RMI Clients reibungslos ablaufen kann m ssen in der Konfigurati onsdatei des DDS Systems webshop ini einige Parameter zum PaymentHandler gepflegt werden Die folgenden Parameter sind ein Auszug aus der Datei webshop ini Sie sind essentiell f r den RMI Client 4 4 BENUTZUNGSHANDBUCH 63 PH_ShopID lt Identifikationsnummer des DDS gt Die Kombination aus ShopID und ShopPassword bildet den Login der fiir die Au thentifizierung beim PaymentHandler ben tigt wird Der RMI Client ben tigt die sen Login Daten bei den meisten Methodenaufrufen des PaymentHandlers s Kap 4 2 1 Die Login Daten miissen in der Datenbank des PaymentHandlers hinterlegt sein damit eine einwandfreie Authentifzierung m glich ist siehe auch Kapitel 3 Datenbank Komponente PH_ShopPassword lt Passwort zur Authentifizierung des DDS gt siehe oben PH_ServerURL lt IP Adresse des Payment Servers gt Uber diese Adresse findet der RMI Client den Host des PaymentHandlers PH_ServerPort lt Portnummer des Payment Servers gt Die Portnummer unter der die RMI Registry des PaymentHandlers lauft PH_PolicyFile lt kompletter Pfad der Policy Datei gt In der Policy Datei k n
49. 6 5 Er kann die zum Dokument geh renden Informationen ndern Abbildung 6 6 Einstellungen ndern Benutzer w hlt Shop Einstellungen aus Y Benutzer ndert Einstellungen und dr ckt OK Shop Einstellungen Holder an Datenbank Nein Holder gespeichert Ja Fehlerm eldung an Bestatigung an Benutzer Benutzer Abbildung 6 3 Shop Einstellungen ndern 90 KAPITEL 6 AUTHORING KOMPONENTE Neues Dokument Benutzer w hlt Neues Dokum ent anlegen Die Holder Fenster werden angezeigt Benutzer f llt ein Holder Fenster und dr ckt OK Ja Fenster zu f llen llt sind Neues Dokum ent an Datenbank Nein Dokum ent gespeichert Best tigung an Benutzer Abbildung 6 4 Neues Dokument Dokument l schen Benutzer w hlt zu l schendes Dokument aus Aufforderung an Datenbank zum l schen Nein Dokum ent gel scht Fehlerm eldung an Best tigung an Benutzer Benutzer Abbildung 6 5 Dokument l schen 6 1 ENTWURF 6 1 2 2 Maskenentwurf Dokument ndern Arfang Benutzer w hlt zu nderndes D okument Benutzer w hlt Holder F enster aus Benutzer f llt Holder Fenster und dr ckt OK Dokum ent H older an Datenbank Holder gespeichert Nein Ja Fehlerm eldung an Benutzer Best tigung an Benutzer Abbildung 6 6 Dokument ndern 91 Die O
50. BANK KOMPONENTE public static java util Vector getAllPublishers throws InternalDbifError Returns Vektor mit Objekten vom Typ webshop classes Publisher Throws InternalDbifError Schwerer Fehler in webshop dbif getAllDocumentTypes Liefert alle Document Typen in der Datenbank Wenn die Tabelle keine Eintr ge enth lt ist der Riickgabewert ein leerer Vektor public static java util Vector getAllDocumentTypes throws InternalDbifError Returns Vektor mit Objekten vom Typ webshop classes Document Type Throws InternalDbifError Schwerer Fehler in webshop dbif getAllLanguages Liefert alle Sprachen in der Datenbank Wenn die Tabelle keine Eintr ge enth lt ist der Riickgabewert ein leerer Vektor public static java util Vector getAllLanguages throws InternalDbifError Returns Vektor mit Objekten vom Typ webshop classes Language Throws InternalDbifError Schwerer Fehler in webshop dbif getAllDocumentFormats Liefert alle Document Formate in der Datenbank Wenn die Ta belle keine Eintr ge enth lt ist der Riickgabewert ein leerer Vektor public static java util Vector getAllDocumentFormats throws InternalDbifError Returns Vektor mit Objekten vom Typ webshop classes DocumentFormat Throws InternalDbifError Schwerer Fehler in webshop dbif insertDocument Fiigt ein neues Dokument in die Tabelle Dokument ein und speichert zus tz lich alle Detailinformationen in den verkniipften Tabellen Offer Document_Aut
51. Customer Returns einen Vector mit Objekten vom Typ Transaction Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Kunde zum Parameter shop_customerld insertPaymentCustomer F gt einen neuen Kunden Datensatz in die Tabelle Pay ment_Customer ein public static int insertPaymentCustomer PaymentCustomer paymentCustomer throws InternalDbifError InvalidIDException Parameters paymentCustomer webshop payment PaymentCustomer Returns Die ID PK des Kunden aus der Tabelle Payment_Customer Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Ung ltige Fremdschl sselbeziehung Die Shopld existiert nicht in der Tabelle Shop updatePaymentCustomer ndert einen Kunden Datensatz in der Tabelle Pay ment_Customer public static void updatePaymentCustomer PaymentCustomer paymentCustomer throws InternalDbifError InvalidIDException Parameters paymentCustomer webshop payment PaymentCustomer Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Ung ltige Fremdschl sselbeziehung Die Shopld existiert nicht in der Tabelle Shop get AllPaymentCustomers Liefert alle Kunden aus der Tabelle Payment_Customer public static java util Vector getAllPaymentCustomers throws InternalDbifError Returns Vector mit Objekten vom Typ PaymentCustomer Throws InternalDbifError Schwerer Fehler in webshop dbif 42 KAPITEL 3 DATENBANK KOMPONE
52. DDS System Komponenten die von den anderen Teilgruppen realisiert wurden Die Dokumentation sollte im Anschluss an die Integrationsphase angegangen werden und m glichst bis Ende Sep tember fertiggestellt werden 7 2 2 Der Entwurf und die Implementierung Zur Realisierung des WebShops wurde Java 1 2 von Sun Microsystems gew hlt Dabei wurde das Java Development Kit JDK 1 2 2 sowie das Java Server Development Kit JSDK 2 0 Apache in der Version 1 3 12 und der ApacheJServer in der Version 1 1 verwendet Aufgrund der in der Oberl chengestaltung getroffen Designentscheidungen wird bei den Brow sern Javascript und Frame Unterst tzung vorausgesetzt Da die Sessionidentifizierung ber Coo kies geht m ssen diese im Browser eingeschaltet sein 7 2 2 1 Die Oberfl che Ausgehend von der ben tigten Funktionalit t des WebShop s wurden zun chst von jedem der Gruppenmitglieder Design berlegungen angestellt die dann in drei zun chst in statischem HTML programierten Demoversionen der GUI festgehalten wurden Da allen drei Versionen gemeinsam war das ein Frameset benutzt wurde in dem die Hauptaktivit t jeweils in einem Frame stattfand wobei diese Hauptaktivit ten aufgrund der Aufgabenstellung ziemlich gleich artig aufgebaut war haben wir uns entschieden diese drei Gui Versionen auch in dem iShop zu implementieren 7 2 2 2 Die Entwicklung der Servlets Da aufgrund der Designentscheidung verschiedene Frames mit Inhalten zu vers
53. Das Lizenz Anzeige wu un ew ae EEE ge ee Gee e A 141 Die Langinfo zu einem Dokument 142 Das Kundenkonto Fenster 2 2 m on nn nn 142 Die D kument nzeise avd E en EE ak BP ES A 143 DieInterfaces i cath 2er eat er IE ee 149 Die Klasssen die FormSelector implementieren 2 2 2 2 e 149 sonstige Klassen x 4 iss a ws san ar EE BR lok Goede Bos 149 Die Klasssen die FormContent implementieren 150 Kapitel 1 Einleitung 1 1 Inhalte und Ziele der Projektgruppe Dieser Bericht fasst die Ergebnisse der Arbeit der Projektgruppe tooLib Werkzeuge f r Digitale Bibliotheken zusammen die im Wintersemester 1999 2000 und im Sommersemester 2000 im Fachbereich Informatik der Universit t Oldenburg stattfand Der Ablauf und die Inhalte der Projektgruppe lassen sich in zwei Abschnitte gleidern Phase 1 Als erstes Teilziel innerhalb der Projektgruppe sollten die Anforderungen Eigenschaf ten Funktionsweise Aufbau sowie die Probleme mit der Entwicklung von Digitalen Biblio theken n her kennen gelernt werden Damit die Teilnehmer der Projektgruppe in kleinerem Umfang praktische Erfahrungen auf diesem Gebiet sammeln konnten besch ftigten sie sich mit der prototypischen Entwicklung eigener Digitaler Bibliotheken mit klar abgegrenzten und eingeschr nkten Inhalten in einem festgelegten thematischen Kontext Insbesondere sollten hier auch erste Erfahrungen mit Softwarewerkzeugen gesammelt werden die die Entwicklungsarbeit unte
54. Datenbestand aufgenommen und dem ausgew hlten Ordner zugeordnet werden Die Zuordnung von Artikeln zu Ordnern kann per Drag and Drop ver ndert werden Dazu ist ein Artikel auszuw hlen und bei gedr ckter linker Maustaste auf den Ziel Ordner zu ziehen Nach Loslassen der Maustaste wird der entsprechende Artikel dem Ziel Ordner zugeordnet und die alte Zuordnung entfernt Sollte beim Loslassen der Maustaste die Steuerungs Taste der Tastatur niedergehalten worden sein wird die alte Zuordnung beibehalten Dadurch ist es m glich einen Artikel mehreren Ordnern gleichzeitig zuzuordnen Die Zuordnung zwischen einem Artikel und dem aktuell ausgew hlten Ordner kann ber den Men Eintrag Datei gt Artikel entfernen aufgehoben werden Artikel die keine Zuordnung zu einem Ordner besitzen k nnen ber den Men Eintrag Bearbeiten gt Entfernte Artikel sichtbar gemacht werden Zudem ist es m glich mehrere Artikel gleichzeitig auszuw hlen Dazu ist bei der Auswahl die Steuerungs Taste bzw die Hochstell Taste niederzuhalten Bereichs Auswahl von Artikeln wird ebenfalls unterst tzt Allerdings k nnen die Informationen zu einem Artikel nur bearbeitet werden wenn ein einzelner Artikel ausgew hlt ist um die Eindeutigkeit der Informationen zu wahren 6 3 BENUTZUNGSHANDBUCH 107 6 3 2 2 Shop Einstellungen Das Fenster mit den Shop Einstellungen teilt sich in 3 Bereiche auf e Generelle Einstellungen e Internet Einstellu
55. Die interne Struktur und der Inhalt der Dokumente soll nicht ver ndert werden Die interne Ver nderung der Dokumente ist nicht generell m glich Das bezieht sich nicht nur auf den Inhalt der Texte und Grafiken diese Inhalte sollen sowieso nicht ver ndert werden Urheberrecht Es geht dabei auch um den Quelltext der um die Text Daten herum existiert Es w re z B problematisch wenn Dokumente aufgrund 70 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE von Sicherheitstechniken die die interne Struktur des Dokuments ver ndern auf einigen Clients nicht mehr angezeigt werden k nnten bzw fehlerhaft angezeigt werden was dann dem Webshop Betreiber von den Firmen die Dokumente ber den Webshop einstellen wollen in Rechnung gestellt werden kann Deswegen darf der Inhalt der Dokumente nicht ver ndert werden 3 PDF Dokumente alleine sind nicht ausreichend Das Webshop Prinzip auf PDF Dokumente zu beschr nken w rde die Lizenz Vergabe und das Session ID Verfahren berfl ssig machen Da das Ziel der Projektgruppe ein Webshop f r viele unterschiedliche Dokument Arten ist w re die Verschl sselung von PDF Dateien nur als Erweiterung des Webshops in Betracht zu ziehen Unter diesen Einschr nkungen werden jetzt die unterschiedlichen weitergehenden Sicherheits techniken analysiert PDF Dokumente verschl sseln Versteckte Links in HTML Dateien Ein eigenes Client Server System Die Dokumente selbst verschl sseln Die Dokumente verk
56. INTERNE BERICHTE Carl von Ossietzky Universit t Oldenburg Fachbereich Informatik Endbericht der Projektgruppe Werkzeuge f r Digitale Bibliotheken J Eschke M H ft M H lsmann M Klein O Klein M Malachinski T Ottenhues D Pawlowski A Rolfs V Weber W Willms A Wunsch D Boles C Haber Bericht IS xx Oktober 2000 Inhaltsverzeichnis 1 Einleitung 1 1 1 2 1 3 1 4 1 5 Inhalte und Ziele der Projektgruppe 02 2008 Digitale Bibliotheken Electronic Commerce 9 4 a une eek En E Digital Commerce su a a a er ee Aufbau der Arbeit 5 2 ass AAA ee ee 2 Das DDS System 2 1 Motivation 2 08 a a ee 2 2 Anlorderungen 4 35 w e ee Bee her Sa a 2 3 Architektur it GR SAA AA who in ye ee ade i 2 3 1 Datenbank Komponente oaoa a a 2 3 2 Payment Komponente nn 2 3 3 Dokumentenschutz Komponente e 2 3 4 Authoring Komponente e 2 3 5 Web Komponente sasaaa ee ee 2 4 E EENEG 2 5 Installationsanleitung 2 20 0 0 020200 00 00000000 3 Datenbank Komponente 3 1 Datenbank Entwurf 2 2 22 Comm nn ee 3 11 ER Schem t cr ee ae are ee A RE eg 3 1 2 DB Tabellendefinitionen 3 2 Datenbank Schnittstellen 2 222 on on nn 3 2 1 Die Schnittstellen von DB_Access 2 2 2m nenn Di AeA ww os on N 10 10 10 10 11 11 12 ii INHALTSVERZEICHNIS 3 2 2 Die Schnittstellen f r das DDS System 2 2 2 2 22 a 28
57. NTE getPaymentCustomer Liefert den Kunden mit der Id shop_customer_id aus der Tabelle Pay ment_Customer public static PaymentCustomer getPaymentCustomer int shop_customer_id throws InternalDbifError InvalidIDException Parameters shop customer_id die ID PK des Kunden aus der Payment_Customer Tabelle Returns webshop payment PaymentCustomer Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Kunde zur angegebenen ID shop_customer_id in der Tabelle Payment_Customer checkLogin Vergleicht das Login Object mit der Shop Tabelle in der Datenbank Liefert true falls in der Tabelle Shop ein Datensatz mit Login shopld shop tabelle shop_id und Lo gin password shop tabelle password existiert Sonst false public static boolean checkLogin Login login throws InternalDbifError InvalidIDException Parameters Login webshop payment Login Returns TRUE falls Login shopld shop tabelle shopid und Login password shop tabelle password sonst FALSE Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Shop zur shopld im Objekt Login shopCustomerldToCustomerld Liefert die shop_customer_id PK aus der Tabelle Pay ment_Customer zu der angegebenen customer_id und der shop_id aus dem Login Objekt public static int shopCustomerIdToCustomerId int customer_id Login login throws InternalDbifError InvalidIDException Parameters customer_i
58. Online Shops eingeloggt haben hierzu siehe weiter oben Die Auflistung der Lizenzen umfasst folgende Merkmale Titel Der Titel des Dokuments Autor en Die Autoren die an der Entstehung des Dokuments mitgewirkt haben Das Infosymbol 1 Dises Symbol repr sentiert einen Link auf die Langinfo Seite eines Doku ments Das Lesesymbol H Das zweite Symbol repr sentiert den Link zum Lesen des eigentlichen Dokuments Restzeit Zeit wie lange diese Lizenz noch g ltig ist Das letzte Symbol Der rote oder gr ne Punkt gibt an ob eine Lizenz freigeschaltet wurde oder ob diese noch nicht freigeschaltet ist 142 KAPITEL 7 DDS WEB KOMPONENTE Langinfo eines Dokuments Hamster Dietrich Boles Cornelia amt bla blubb a Teubner Verlag 2000 Auflage Buch HTML Englisch ISBN Nr 012345 Inhaltsverzeichnis Leseproben Angebot 30 0 DM Minute Homepage Hamster Abbildung 7 17 Die Langinfo zu einem Dokument In der Dokumentenansicht wird ein Dokument n her beschrieben Die Langinfo Abb 7 17 bietet Ihnen die M glichkeit sich ausgiebig ber das ausgew hlte Dokument zu informieren Hierzu wird falls vorhanden das Cover des Dokuments angezeigt Sie k nnen einen Blick in das Inhaltsverzeichnis werfen ggf eine gratis Leseprobe runterladen oder anschauen oder sich auf der Homepage die zu dem Dokument existiert noch n her informieren Desweiteren haben Sie die M glichkeit das Dokument in ihren Warenkorb zu legen ode
59. Tabelle Shop_Settings geholt Wenn noch keine Brandlds vergeben sind ist der Vektor f r die Brandlds in den ShopSettings leer public static ShopSettings getShopSettings throws InternalDbifError Returns webshop classes ShopSettings Throws InternalDbifError Schwerer Fehler in webshop dbif getLicenceSessionInfo Holt ein LicenceSessionInfo Objekt zu einer Url mit SessionId public static LicenceSessionInfo getLicenceSessionInfo java lang String url java lang String sessionId throws InternalDbifError InvalidIDException BadFitException Parameters url address in der Tabelle Url sessionId PK in der Tabelle Session Returns webshop server LicenceSessionInfo Throws InternalDbifError schwerer Fehler in webshop dbif InvalidIDException Es existiert keine Customer_Session zum Parameter sessionId BadFitException Die SessionID gehoert nicht zur angegebenen Url checkPassword Autentifiziert einen Kunden anhand seiner ID seines Logins und seines Passworts 32 KAPITEL 3 DATENBANK KOMPONENTE public static boolean checkPassword java lang String login java lang String password int customerld throws InternalDbifError InvalidIDException Parameters login Das Login des Kunden aus der Tabelle Customer password Das Passwort des Kunden aus der Tabelle Customer customer_id PK in der Tabelle Customer Returns TRUE wenn alle Parameter mit einem Eintrag in der Tabelle Customer ber einstimmen sonst FALSE Thro
60. URL STRING Url zu einer Bilddatei des Shop Logos root_path STRING absoluter Pfad zu den Dokumenten auf dem Ser ver Tabelle 3 14 Tabelle Shop_Settings Brand Die Tabelle Brand enth lt die vom DDS unterst tzten Zahlungssysteme Es werden nur die vom Payment Handler vergebenen IDs verwaltet und mit den Shopeinstellungen verkn pft Inhaltliche Informationen zu den Zahlungssystemen werden nicht gespeichert da sie prinzipiell vom verwendeten Payment Handler abh ngig sind Attributname Domain Beschreibung brand_id NUMBER ID des Zahlungssystems PK Die ID wird ex tern vom Payment Manager vergeben shop id NUMBER ID der Shopeinstellungen FK Tabelle 3 15 Tabelle Brand 26 KAPITEL 3 DATENBANK KOMPONENTE 3 1 2 2 Payment Handler Tabellen Shop Die Tabelle Shop nimmt die erforderlichen Daten eines Shopbetreibers auf der die Dien ste des Payment Handlers nutzen m chte Bei Angabe einer Bankverbindung kann der Payment Handlers dem Shopbetreiber die jeweiligen Einnahmen direkt auf seinem Konto gutschreiben Attributname Domain Beschreibung shop_id NUMBER ID des Shops PK name STRING offizieller Name des Shops password STRING Zugangspasswort des Shops bank_connection STRING Bankverbindung Tabelle 3 16 Tabelle Shop Payment_Customer Die Tabelle Payment_Customer nimmt die erforderlichen Kundendaten eines Shopbetreibers auf wenn er die Dienste des Payment Handlers nutzt Au erdem werden hier die Salden der pers
61. WWW Server mit Servlet Unterst tzung installiert werden falls dieser noch nicht vorhanden ist Die Dokumentenschutz Komponente erweitert diesen mittels entsprechender Plug ins bzw eines C Moduls und eines Servlets Security class um die entsprechenden Dokumentenschutz Mechanismen Nachdem der Apache WWW Server auf dem Server des Anbieters installiert ist muss zun chst das Server Plugin in den Server Kernel einkompiliert werden Anschliessend sind noch einige Mo difikationen zur Konfiguration des Web Servers notwendig die in den Dateien zone properties und http conf vorgenommen werden m ssen Das genaue Vorgehen bei der Installation der Dokumentenschutz Komponente wird in Kapitel 5 Dokumentenschutz Komponente beschrieben 2 5 INSTALLATIONSANLEITUNG 13 Die verwendeten Servlets der DDS Web Komponente und die verwendeten class Dateien wur den in ein JAR File gepackt welches auf dem Server abgelegt werden muss Danach sind noch einige Anpassungen in den zone properties und jserv properties durchzufiihren insbesondere muss hier eingetragen werden wo das JAR File mit den Servlets abgelegt wurde bevor der WebShop durch Aufruf der entsprechenden URL in einem Standard WWW Browser des Kun den genutzt werden kann N here Informationen zur Installation der DDS Web Komponente finden Sie im Kapitel 7 Web Komponente Bevor die Datenbankanbindung im DDS System genutzt werden kann miissen zun chst ein paar Anpassungen der Properties in der Date
62. Werte gesetzt balance und credit werden mit Null initialisiert 58 KAPITEL 4 PAYMENT KOMPONENTE 4 3 1 2 PaymentClient Die abstrakte Klasse PaymentClient ist die Vaterklasse fiir alle konkreten Implementierungen der verschiedenen Zahlungsverfahren Sie wird von PaymentHandler in der Methode invoiceRe quest deklariert und abh ngig vom gew hlten Zahlungsverfahren mit dem entsprechenden Zahlungssystem PaymentClient instanziiert Als einzige Methode wird hier invoiceRequest de klariert Diese wird von allen konkreten Zahlungssystem Clients implementiert 4 3 1 3 InvoiceResult InvoiceResult stellt das Ergebnis einer Zahlungsaufforderung dar Die zugeh rige Transaktion ist durch das Attribut phPayld beschrieben Das Attribut error enth lt entweder den Wert Null oder einen Fehlercode falls es w hrend der Zahlung zu einem Fehler gekommen ist message kann f r einen zus tzlichen Fehlertext oder eine beliebige Nachricht verwendet werden invoiceASCIT wird benutzt um f r die elektronischen Zahlungsverfahren ECash und Cybercash die von den jeweiligen Zahlungsservern erzeugten Zahlungsaufforderungen die an den Rechner des Kunden geschickt werden m ssen zu bergeben 4 3 1 4 Login Die Klasse Login wird ben tigt um den H ndler der die Methoden des Payment Systems nutzen will eindeutig zu identifizieren und zu authentifizieren Dazu verf gt sie ber die Attribute userld und password Zur weiteren Information sind wie in der e
63. agen nach denen dann in der Datenbank gesucht werden soll Die angegebenen Suchbegriffe werden mittels einer UND Verkn pfung als Suchanfrage an die Datenbank aufgefasst Ihre Suchanfrage schicken Sie mit einen Mausklick auf den SUCHEN Knopf ab Als Ergebnis bekommen Sie eine Liste mit Dokumenten die auf Ihre gestellte Suchanfrage passen Werden in die Suchfelder keine Suchbegriffe eingetragen werden alle vorhandenen Eintr ge aus der Datenbank als Ergebnis 7 3 BENUTZERHANDBUCH 139 zur ckgeliefert Auf den Ergebnissen bestehen die gleichen funktionellen M glichkeiten wie bei der Kurzinfoanzeige auf der Seite mit der Auflistung der Dokumente einer Kategorie 140 KAPITEL 7 DDS WEB KOMPONENTE Die ShopInfo Seite Ki 1 A K A S X Unser Webshop Shop gt etreiber PG tooLib Fostenschritt Address 123456789 987654321 PG voLib algemeine Geschaftsbecingungen akzeptizre e CrediCard Zahlungsmethoden e FCash e CyberCash EsokTransius e Account vast own Kl E Abbildung 7 15 Das ShopInfo Fenster Hier Abb 7 15 werden Ihnen in kompakter Form die wichtigsten Informationen iiber den Shop und den Shopbetreiber angezeigt Dies reicht von den Kontaktm glichkeiten bis hin zu Informationen zu den akzeptierten Zahlungsmethoden im Shop und den allgemeinen Gesch fts bedingungen Diese Seite wird ebenfalls von den Servlets erstellt sofern der Betreiber des Shop hier keine eigenen Seiten eingibt Die Start Sei
64. agen werden Sobald der Geldbetrag auf das Kun denkonto gebucht ist kann es zur Bezahlung benutzt werden In Ermangelung eines HBCI API fiir das Betriebssystem UNIX haben wir uns entschlossen das Buchen der Zahlungen per Bank berweisung Kreditkarte manuell vorzunehmen Es wird ein Administrations Tool geschaffen das die M glichkeit bietet die Transaktion des Payment Handler anzuzeigen und Transaktionen die als offen gekennzeichnet sind zu buchen Langfristig empfiehlt es sich jedoch HBCI zu nutzen was eine automatische Priifung der Zahlungseing nge erm glicht Ansonsten bleibt nur der Weg zur Bank um die Kontoausziige zu priifen 4 2 Schnittstellen 4 2 1 Allgemeines Die Komponenten des DDS nutzen den PaymentHandler mit Hilfe der Klasse RMIClient Die Klasse RMIClient enth lt alle im PaymentHandlerInterface beschriebenen Methoden siehe un ten Zus tzlich kapselt die Klasse RMIClient alle RMI relevanten Funktionen Beim Erzeugen einer Instanz des RMIClient werden automatisch die f r RMI n tigen Sicherheitseinstellungen geladen und die Verbindung zum PaymentHandler hergestellt Der bergabeparameter Login aus dem PaymentHandlerInterface wird f r den RMIClient nicht ben tigt da der RMIClient diese Daten aus einer Konfigurationsdatei l dt siehe auch Handbuch Kap 4 4 1 und bei Me thodenaufrufen selbst einf gt 4 2 2 PaymentHandlerInterface e Vector getBrandlds Beschreibung Liefert die unterst tzten Zahlungss
65. al Commerce wird der Handel mit digitalen Produkten Texte Bilder Videos Mu sikst cke bzw Informationen B rsenkurse Verkehrsmeldungen bezeichnet Gebr uch lich ist auch der Ausdruck Information Commerce Als iShops Information Shops bezeichnen wir spezielle eShops ber die keine materiellen sondern digitale Produkte bzw Informationen ber das WWW erworben werden k nnen Als digitale Produkte k nnen vor allem textuelle Informationen wie hypermediale Dokumente aber auch Musikst cke Videos oder Software kommerziell vertrieben werden Ein weitreichernder Unterschied zwischen iShops und eShops besteht in der M glichkeit beim Verkauf von digitalen Produkten zus tzliche Angebotsformen bzw Gesch ftsmodelle zu un terst tzen In kommerziellen digitalen Bibliotheken wird heutzutage nahezu ausschlie lich die Subskription angeboten Der Kunde zahlt einen bestimmten Betrag und darf dann f r eine ge wisse Zeitspanne auf den gesamten Dokumentenbestand zugreifen Eine interessante Alternative hierzu ist der Erwerb von Zugriffslizenzen pay per view oder Zeitlizenzen Bei den Zugriffs lizenzen wird f r jeden Zugriff auf ein digitales Produkt ein bestimmter im allgemeinen sehr geringer Geldbetrag f llig Zum Bezahlen kann hier bspw auf elektronisches Geld Mikropay ments zur ckgegriffen werden Als Zeitlizenzen werden Lizenzen bezeichnet mit denen der Kunde eine bestimmte Zeitspanne lang auf ein ausgew hlte
66. ameter sind inkonsistent Ausnahme CustomerDoesNotExristException Kunde ist nicht vorhanden Ausnahme InternalDbifError Datenbankfehler e double getCredit int customerld Login login Beschreibung Liefert zu einem Kunden den gew hrten Kreditbetrag Parameter customerld Identifaktionsnummer des Kunden Parameter login Die Login Daten des Shops R ckgabewert Der Kreditbetrag Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException Ubergabeparameter sind inkonsistent Ausnahme CustomerDoesNotExist Exception Kunde ist nicht vorhanden Ausnahme InternalDbifError Datenbankfehler e InvoiceResult invoiceRequest int customerld String cOrgld String shortDesc int bran dId double amount Date dateOfRequest int transactionType Login login Beschreibung Erzeugt eine Zahlungsaufforderung f r einen Kunden Parameter customerld Identifaktionsnummer des Kunden Parameter cOrgld N here Informationen zum Kunden z B Kontodaten Parameter shortDesc Eine kurze Beschreibung der Zahlungsaufforderung Parameter brandId Das verwendete Zahlungssystem Parameter amount Betrag der Zahlungsauffoerderung Parameter dateOfRequest Datum der Zahlungsaufforderung Parameter transactionType Art der Zahlungsauffoerderung 1 es wird etwas ge kauft 2 Einzahlung auf das Kundenkonto Parameter login Die Login Daten des Shops R ckgabewert In Abh ngigkeit vom gew hlten Zahlungssystem wird ein Ergebnis Inv
67. asswort und Customer ID nicht zusammen so wird vom Security Servlet ei ne Seite ausgegeben in der dem User die M glichkeit gegeben wird zur ck zum Webshop zu kommen oder nochmal den first_click Request zu durchlaufen um sein Login und Passwort ein zugeben falls er meint sich vertippt zu haben Geh ren jedoch Login und Passwort zur Customer ID so setzt das Security Servlet den first_click berechnet eine neue Session ID und ein validTo unter der Beriicksichtigung der du ration schreibt beides in die Datenbank und fiihrt ein Redirect per Meta Refresh auf die an geforderte Seite durchgef hrt Danach kann der User wie gewohnt weiter in dem Dokument navigieren 5 5 REALISIERUNG DER GEW HLTEN SICHERHEITSTECHNIKEN 77 5 4 3 Der Standard Request Das C Modul gibt dem User auf seinem Browser eine Seite aus in der er nach seinem Login und Passwort gefragt wird Der String standard das Login Passwort und der zum User geh rende Index in der Hashtable des Security Servlets werden an das Security Servlet gesendet Durch den String standard weiss das Security Servlet dass es sich um einen Standard Request handelt und muss dann entscheiden ob der User weiter in dem Dokument navigieren darf Frage Geh ren Login und Passwort zu der Customer ID des Dokuments Antwort Ja Login und Passwort geh ren zur Customer ID Antwort Nein Login Passwort und Customer ID geh ren nicht zusammen Aktion Dem User
68. atic int insertLanguage Language lang throws InternalDbifError Parameters lang webshop classes Language Returns Die vergebene ID PK fiir die neue Sprache Throws InternalDbifError Schwerer Fehler in webshop dbif updateLanguage Aktualisiert einen Eintrag in der Tabelle Language public static void updateLanguage Language lang throws InternalDbifError InvalidIDException Parameters lang webshop classes Language Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID der Language ist ungiiltig deleteLanguage L scht Eintrag aus der Tabelle Language public static void deleteLanguage Language lang throws InternalDbifError InvalidIDException InvalidDeleteIDException Parameters lang webshop classes Language Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID der Language ist ungiiltig 38 KAPITEL 3 DATENBANK KOMPONENTE InvalidDeletelDException Es existiert noch eine Fremdschliisselbeziehung zu dem Daten satz insertDocumentFormat Fiigt ein neues Dokumenten Format in die Tabelle Format ein public static int insertDocumentFormat DocumentFormat format throws InternalDbifError Parameters format webshop classes DocumentFormat Returns Die vergebene ID PK fiir das neue Format Throws InternalDbifError Schwerer Fehler in webshop dbif updateDocumentFormat Aktualisiert einen Eintrag in der Tabelle Format public static void updateDoc
69. aufen Umbenennung der Dateinamen Dies kann nur als Erweiterung des Webshops in Betracht gezogen werden jedoch nicht als generelle Ma nahme Dieses Verfahren w rde die interne Struktur der HTML Dateien ver ndern weswegen dieses Verfahren ausscheidet Der User m te sich das Client Programm von einer Web seite herunterladen und es installieren Damit w rde man den User bel stigen und zus tzlich die Gefahr eingehen dass durch die Installation oder sein eigenes Handeln die Funk tionalit t seines Computer in Gefahr ist weswegen der User im Zweifelsfall Abstand von der Nutzung des Webshops neh men wird Der User m te sich das Client Programm bzw das PlugIn f r seinen Client welches die Dokumente entschl sselt aus dem Internet laden und installieren Das bel stigt den User hat die gleichen Nachteile wie das Client Server System und setzt m glicherweise auch noch einen entsprechenden Rech ner beim User voraus der in der Lage ist die Dokumente in Echtzeit zu dekodieren um den User nicht unn tig warten zu lassen bis er das Dokument lesen kann Das ist die einfachste Methode jedoch stellt sie keine Alter native dar weil genau dieses Verfahren im Gegensatz zu den Webshop Prinzipien steht Deswegen scheidet dieses Verfah ren aus Dieses Verfahren erschien der Projektgruppe am interes santesten weil es keine der oben genannten Einschr nkun gen unterliegt und gleichzeitig einen gewissen Schutz bietet Warum d
70. aufgerufen Dies ist entweder eine Seite die vom Betreiber erstellt wurde und seinen Vorstellungen entspricht oder aber es wird die Seite eingeladen die von einem Servlet erstellt wird und die n tigsten Informa tionen ber den Shop enth lt Kategorien Hier k nnen Sie sich durch die Dokumentkategorien die vom aktuellen Online Shop angeboten werden hindurchnavigieren Zu Beginn bekommen Sie nur die Haupt kategorien zu sehen Diese k nnen Sie dann aber durch anklicken weiter aufgeklappen So ergibt sich dann eine komplette Baumstruktur durch die verschiedenen Kategorien Klicken Sie auf ein Plus Symbol wird der Baum weiter aufgeklappt klicken Sie auf ein Minus Symbol wird der Baum wieder eingeklappt und wenn Sie direkt auf den Namen 132 KAPITEL 7 DDS WEB KOMPONENTE Kategorien Sport dib Ea Multimedia Benutzer FO Daten bearbeiten Hilte el Shop Info Abbildung 7 9 Die Navigation im Layout 3 einer Kategorie klicken dann wird im Hauptframe die Dokumentanzeige eingeladen diese listet alle Dokumente der Kategorie auf die Sie angeklickt haben Benutzer einloggen Hier gelangen Sie zur Login Seite wo Sie sich mit Ihrem Login und Passwort anmelden k nnen und Ihnen stehen anschliessend weitere Unterpunkte in der Navigation zur Verfiigung Kundendaten pflegen Hier k nnen Sie sich Ihre Kundendaten anzeigen lassen und bei Bedarf Ihren Vorstellungen anpassen bzw bei n tigen Anderungen diese dort ei
71. berfl che des Authoring Tools l sst sich in drei Bereiche aufteilen der Objekterstellungs Bereich der Tabellen Bereich und der Einstellungs Bereich Die einzelnen Bereiche werden in den folgenden Unterkapiteln n her beschrieben Anzumerken ist dass das Layout der Masken ledig lich ein Entwurf ist Das endg ltige Aussehen der Masken kann vom Entwurf selbstverst ndlich varlieren e Der Objekterstellungs Bereich Die Oberfl che des Authoring Tools ist im Dateimanager Stil gehalten Jedes Objekt in der Datenbank welches ber das Internet angeboten wird ist durch ein kleines Symbol in der Hauptansicht Abb 6 7 charakterisiert Dabei wird versucht das dem Objekt zugeordnete Bild zu verwenden Falls dies nicht m glich ist wird ein Standard Bild angezeigt Die linke Seite der Hauptansicht stellt eine Baumstruktur dar welche die die Klassifizierung der Objekte in der Datenbank wiederspiegelt Die gesamte Oberfl che benutzt Drag und Drop im Sinne eines weit verbreiteten Dateimanagers f r ein bekanntes Fenster Betriebsystem Die einzelnen Informationen zu einem Objekt Angebote Urls etc werden in verschiede nen Fenstern eingestellt Diese Fenster sind semantisch voneinander getrennt d h es gibt jeweils ein Fenster f r eine klar umrissende Informationseinheit des Obkjektes z B die Dublin Core Informationen oder auch alle Url Informationen des Objektes Die einzelnen 92 KAPITEL 6 AUTHORING KOMPONENTE Fenster k nnen be
72. c static java util Vector getValidLicences int customerld throws InternalDbifError InvalidIDException Parameters customerld PK in der Tabelle Customer Returns Vector mit Objekten vom Typ webshop classes Licencelnfo Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Customer zum Parameter customerld getAllLicences Holt alle Lizenzen eines Kunden mit der ID customerld Wenn der Kunde keine Lizenzen besitzt wird ein leerer Vektor zuriickgegeben Bei abgelaufenen Lizenzen ist der Wert fiir die Restzeit duration negativ seit X ms abgelaufen public static java util Vector getAllLicences int customerld throws InternalDbifError InvalidIDException Parameters customerld PK in der Tabelle Customer Returns Vector mit Objekten vom Typ webshop classes Licencelnfo Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Customer zum Parameter customerld doSearch Holt alle DocumentInfos zu dem Suchkriterium public static java util Vector doSearch SearchCriteria searchCriteria throws InternalDbifError Parameters searchCriteria ein Suchkriterium Returns Vector mit Objekten vom Typ webshop classes DocumentInfo Throws InternalDbifError Schwerer Fehler in webshop dbif insertLicence Fiigt eine neue Kunden Lizenz fiir ein Angebot in die Datenbank ein Der first_Click sowie das valid flag werden dabei auf 0 gesetzt Gleichzeitig wird zur ne
73. ce FormContent Sie erleichtert die Handhabung der vielen verschiedenen lt INPUT gt Elemente in den Formularen die auf den Html Seiten ben tigt werden Das Interface FormSelector erweitert das Interface FormContent um die Methoden die fuer die Bereistellung eines HTML lt SELECT gt Elementes implementiert werden m ssen Die Klasse RangeSelector repr sentiert ein HTML lt SELECT gt Element Sie imlementiert das Interface FormSelector Sie erm glicht die einfache Erzeugung vom lt SELECT gt Elementen mit numerischem Auswahbereich Die Klassen Bank AccountFormContent und CreditCardFormContent erweitern die Basisklas sen Bank Account und CreditCard um die Methode toHtml das Interface FormContent welche die Formularelemente zur Aufnahme der jeweiligen Daten erzeugt und um einen Konstruktor welcher den HttpServletRequest als Argument erh lt und daraus die Eingaben ausliest 7 2 ENTWURF UND IPMLEMENTIERUNG 121 7 2 3 Die Architektur des Webshop s Der WebShop besteht aus insgesammt 11 Servlets Abb 7 1 durch welche die in den Frames ben tigeten Funktionalit ten bereitgestellt werden Die Servlets sind nach ihrer Funktion bzw ihrer erzeugeten Ausgabe benannt Die Klassen welche die Html Ausgabe erzeugen sind wie die dazugeh rigen Servlets benannt Die Servlets heifen meist Viewer und die entsprechenden Html Code generierenden Klassen entsprechend Page Abb 7 2 e javax servlet http HttpServlet e webshop servlet Shoplet
74. ch Vergleich der an invoiceRequest bergebenen BrandId mit der ID des neuen Zahlungsverfahrens und anschlie ender Delegation 4 4 Benutzungshandbuch 4 4 1 Einrichtung und Betrieb der Payment Komponente 1 Verschiedenes Zum Betrieb des PaymentHandlers wird ein Betriebssystem mit installiertem TCP IP Protokoll und Java 1 2 von SUN ben tigt Es empfiehlt sich in Hinblick auf die Verwen dung der elektronischen Zahlungsverfahren ECash und CyberCash auf das Betriebssystem UNIX zur ckzugreifen Das sogenannte CashRegister von CyberCash l uft zwar auch un ter Windows NT wobei jedoch hier auf ECash verzichtet werden m sste da die Geldb rse Wallet f r den ECash H ndler nur f r UNIX erh ltlich ist Wenn die elektronischen Zahlungsverfahren unter einem UNIX Betriebssystem eingesetzt werden sollen ist darauf zu achten dass der PaymentHandler die ECash H ndler Wallet und das CyberCash CashRegister unter demselben Nutzer eingerichtet werden Ansonsten kann der PaymentHandler die elektronischen Zahlungsverfahren nicht verwenden Dies bedingt auch dass elektronische Zahlungsverfahren und PaymentHandler auf demselben Host installiert werden m ssen Die elektronischen Zahlungsverfahren erfordern im Echtbetrieb ein Bankkonto und eine Re gistrierung bei dem jeweiligen Kreditinstitut welches das Zahlungsverfahren unterst tzt F r ECash ist ein Demo Betrieb m glich der es erlaubt elektronischen Zahlungsverkehr mit Spielgeld durchzuf h
75. chen zwei Modulen werden lediglich Zeichenketten ber den Datenkanal gesendet Der Server schickt eine Anfrage und das Servlet sendet eine Antwort zur ck Danach wird die Verbindung abgebrochen und der Thread beendet Es wird also f r jede Anfrage eine neue Verbindung zwischen Server und Servlet aufgebaut Bei der Kommunikation ber HTML Formulare wird direkt die service Methode des Servlets mit den im Formular angegebenen Parametern aufgerufen Dies geschieht wenn der Server eine Passwortabfrage an den Client sendet War das eingegebene Passwort jedoch nicht korrekt so sendet das Servlet dieselbe Passwortabfrage nocheinmal an den Client Somit ruft sich das Servlet selbst ber ein HTML Formular auf Diese Methode der Kommunikation ist allerdings einseitig da nur das Servlet ber die service Methode verf gt und der Server keine HTML Formulare abarbeiten kann 5 6 Schnittstellenbeschreibung Wie schon im Abschnitt Realisierung beschrieben verf gt die Dokumentenschutz Kompo nente ber zwei Schnittstellen Zum Einen kann das Security Servlet direkt ber ein HTML Formular aufgerufen werden Dabei werden die Parameter in der Methode service ausgewertet Dies geschieht allerdings nur wenn bei einer Passwortabfrage ein falsches Kennwort eingegeben wurde und sich das Servlet nocheinmal selbst aufruft um die Passwortabfrage zu wiederholen Die zweite Schnittstelle ist die Socket Verbindung des Security Servlets zum Server Plugin Die Komm
76. cument Shop System ist ein IShop System fiir den Aufbau die Verwal tung und den Einsatz von IShops mit hypermedialen Dokumenten Zur Zeit wird der Verkauf von Zeitlizenzen zum Online Zugriff auf die Dokumente ber Standard WWW Browser unterst tzt Die Bezahlung der Lizenzen erfolgt ber verschiedene vom Anbieter des iShops unterst tzte Zahlungsverfahren wie zum Beispiel ECash CyberCash Kreditkarte Bankeinzug oder Kun denkonto 2 1 Motivation Im Gegenteil zum Verkauf von materiellen G tern in den sogenannten eShops ber das WWW ist der Verkauf von digitalen Produkten wie Texte Bilder Videos Musikstiicke oder digita len Informationen wie B rsenkurse Verkehrsmeldungen beziehungsweise der kostenpflichti ge Zugriff auf digitale Informationen heutzutage noch sehr wenig verbreitet Einige Commerce Server unterst tzen zwar den Download von digitalen Dokumenten aber speziell auf den In formation Commerce ausgelegte Gesch ftsmodelle sind nur unzureichend in die bestehenden EShops integriert Bez glich der Funktionalit t unterscheiden sich iShops aus Kundensicht kaum von den eShops Die einzige Ausnahme ist das Auslieferungsverfahren der gekauften Produkte W hrend die ma teriellen Produkte in den eShops offline ausgeliefert werden also zum Beispiel als Paket mittels eines Paketbringdienstes ist die Auslieferung von digitalen Produkten online m glich Man kann generell zwei unterschiedliche Auslieferungsverfahren f r
77. d PK in der Tabelle Document Returns webshop classes DocumentInfo Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zu dem Parameter intDocld getDocumentInfos Holt einen Vector mit den DocumentInfos aller Dokumente in dem Folder mit der ID des Parameters folderld Wenn der Folder leer ist wird ein leerer Vektor zur ckgegeben public static java util Vector getDocumentInfos int folderId throws InternalDbifError InvalidIDException Parameters folderld PK in der Tabelle Folder Returns Vektor mit Objekten vom Typ webshop classes DocumentInfo Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zu dem Parameter folderld getDocument Holt ein Document Objekt anhand der docld public static Document getDocument int docId throws InternalDbifError InvalidIDException Parameters docld die Document ID Returns webshop classes Document Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Document zum Parameter docld getCustomer Holt ein Costomer Objekt anhand der costumerld public static Customer getCustomer int customerld throws InternalDbifError InvalidIDException Parameters customerld die ID des Customers Returns webshop classes Customer Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Customer zum Paramete
78. d die customer_id aus der Tabelle Payment_Customer entspricht der customer_id aus der Tabelle Customer des Shops login webshop payment Login Returns shop_customer_id PK aus der Tabelle Pay ment_Customer Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException In der Tabelle Payment_Customer existiert kein Datensatz zu den angegebenen IDs 3 2 4 Ausnahmen und Fehlerklassen 3 2 4 1 InternalDbifError Diese Klasse behandelt den Fall dass schnittstelleninterne Fehler auftreten Darunter fallen ins besondere falsche SQL Anweisungen die durch fehlerhafte Programmierung auftreten Hier ist die Verwendung von falschen Tabellen oder Attributnamen zu nennen oder eine falsche Anzahl von Attributen sowie nicht bereinstimmende Typen Die Klasse erweitert java lang Error 3 2 DATENBANK SCHNITTSTELLEN 43 Konstruktor public InternalDbifError String msg int type Felder public final static int UNKNOWN_ERROR Unbekannte Fehlerursache public final static int DATABASE_ERROR Fehler in der Datenbank Tabellen Methoden public int getErrorType Liefert die Art des Fehlers UNKNOWN_ERROR oder DATABASE_ERROR 3 2 4 2 BadFitException Dieser Fehler wird bei einer Fehlpassung von Url und SessionID ausgel st Konstruktor public BadFitException String msg String url String sessionld Methoden public String getUr1 Liefert die Url der Anfrage public String getSessionID Liefert die SessionID der An
79. d Entwurf A O RE AAA e ANA ta ae IN 71 5 4 1 Anfrage ber Socket Verbindung o o e 71 INHALTSVERZEICHNIS 5 4 2 Der first_click Request KA Der Standard Requests e ld tw dee it ad 5 5 Realisierung der gew hlten Sicherheitstechniken o 5 5 1 Implementation des Server Plugins 5 5 2 Implementation des Security Servlets o none 5 5 3 Kommunikation zwischen Server Plugin und Security Servlet 5 6 Schnittstellenbeschreibung 5 7 Erweiterbarkeit der vorhandenen Sicherheitstechniken 5 8 Das Problem bei der Umbenennung der Dateinamen 6 Authoring Komponente DL Bhtwurt reo cda RA A o A RO A o aod 6 1 1 Designentscheidung e 6 1 2 Entwurf der Benutzer Schnittstelle 6 2 Implementierung cc Eh er Re a a 6 2 1 Schnittstellen Dokumentation 6 2 2 Probleml sungen 6 3 Benutzungshandbuich o o sss naca aes e ee ee ee ae 6 3 1 Benutzungshandbuch des Authoring Tools 6 3 2 Erl uterung der einzelnen engste 6 3 3 Vorgehensweise bei den wichtigsten Arbeitsschritten 7 DDS Web Komponente 7 1 Einleitung yg en See ale oe Oe a RE Ale BR A 7 2 Entwurf und Ipmlementierung 0 002 0200 00000 2 1 Der Meilenstemplane s siros va won Bek Gerd roe Ge ee a een ade 7 2 2 Der Entwurf und die Implementierung 7 2 3 Die Architektur des Webshop s e 7 3 Benut
80. d dies wird im Entwurf genauer erl utert Mit dieser neuen Session Id kann er eine bestimmte Zeit navigieren bis ihm entweder eine neue Session ID generiert wird oder er eine neue Lizenz erwerben bzw das Navigieren in dem Dokument einstellen muss Diese session ID Vergabe wird ber die komplette Lizenzdauer durchgef hrt Dieses Lizenz Konzept verhindert jedoch nicht dass der User nach dem Kauf einer kurzen Li zenzzeit das gesamte Dokument automatisch vom Server herunterl dt was nicht im Sinne des 67 68 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE Konzepts ist Der User soll regelm ig neue Lizenzen erwerben sofern er weiter in dem Doku ment lesen m chte Wenn er die Gelegenheit hat das komplette Dokument herunterzuladen braucht er danach keine neuen Lizenzen weil er das Dokument dann n mlich kostenlos ohne eine Internetverbindung lesen kann Deswegen m ssen weitere Sicherheitstechniken betrachtet werden die im n chsten Unterabschnitt aufgez hlt und erl utert werden 5 2 1 Eine Aufz hlung von m glichen Sicherheitstechniken die auf das Lizenz Konzept aufsetzen bzw es ersetzen 1 PDF Verschl sselung Bei PDF Dateien ist ein Bereich der Datei f r Algorithmen und die Speicherung von Daten dieser Algorithmen vorgesehen Dies w rde die Speicherung des Datums des ersten Aufrufs erm glichen welches verschiedene M glichkeiten zum Sch tzen des Dokuments bereit stellt Dazu geh ren u a das einmalige Anzeigen des Dokuments w
81. d K ufergruppen Konten Rabatten Bestellungen und erworbenen Lizenzen Weitere Aufgabe ist es die Funktionstauglichkeit des entwickelten Modells durch eine beispielhafte Implementierung zu demonstrieren Dazu sollen zwei Programme entwickelt werden je eines f r den Anbieter digitaler Waren und eines f r den poten tiellen K ufer der Waren N hres zu den drei Sub Projekten kann im Zwischenbrericht nachgelesen werden 1 2 DIGITALE BIBLIOTHEKEN 3 Phase 2 Der zweite Abschnitt des Projekts sollte als Endprodukt ein EShop System fiir den Aufbau Einsatz und zur Verwaltung von EShops fiir den Handel mit digitale Dokumen te aufweisen mit denen der kostenpflichtige Zugriff auf digitale Informationen realisiert wird Im vorliegenden Bericht soll das Tool als DDS System Digital Documents Shop bezeichnet werden Einleitend soll beschrieben werden inwieweit sich digitale Bibliothe ken und E Commerce im weitesten Sinne voneinander abgrenzen bzw wo sich m gliche Schnittpunkte ergeben k nnen 1 2 Digitale Bibliotheken Die Hauptbestandteile digitaler Bibliotheken sind organisierte Sammlungen digitaler Informatio nen die ber das Internet angesprochen werden k nnen Im Gegensatz zu traditionellen Biblio theken kann eine digitale Bibliothek nicht nur materielle Dokumente sondern auch immaterielle Dokumente beinhalten Die Aufgaben der digitalen Bibliothek ndern sich nicht Es k nnen aber eine gr ere Anzahl an Dokumenten aufgenommen we
82. d abge ndert werden Wenn Sie das Dokument nicht mehr bestellen m chten setzen Sie einfach die Anzahl auf Null allerdings verschwindet das Dokument dadurch nicht aus dem Warenkorb Kurzbeschreibung Eine Kurzbeschreibung des Dokuments bestehend aus Titel und Au tor en Preis Minute Der Preis f r eine Lizenz in DM Minute Dieses Feld kann nat rlich von Ihnen nicht ver ndert werden Dauer Minuten F r wieviele Minuten Sie Lizenzen dieses Dokuments kaufen m chten k nnen Sie in dieses Eingabefeld eintragen Zus tzlich stehen Ihnen noch die folgenden Funktionalit ten im unteren Bereich des Warenkorbs in Form von Buttons zur Verf gung Reset Durch einen Mausklick auf den Reset Button werden alle Werte in den Eingabefeldern wieder auf den letzten gesicherten Wert zur ckgesetzt Warenkorb merken Ein Mausklick auf diesen Button bewirkt dass die gerade aktuellen Wer te aus den Eingabefeldern gespeichert werden und somit bei Ihrem n chsten Mausklick auf den Reset Button diese Werte wieder angenommen werden Auch nach dem Ausloggen bleiben die gespeicherten Werte des Warenkorbs bestehen Auswahl einer Zahlungsmethode Hier k nnen Sie bereits an dieser Stelle schon eine Zah lungsmethode f r Ihre Bestellung ausw hlen wobei Sie die Wahl zwischen den konventio nellen Zahlungsmethoden wie Bankeinzug oder Creditcard und den moderneren Zahlungs methoden wie CyberCash ECash oder der Zahlung per Kundenkonto haben Sie klicken ei
83. dbif 45 DDS 28 Optimierungsaspekte 47 Payment Handler 40 DDS Digital Document Shop 7 DDS Web Komponente 117 Detail Fenster 92 Handbuch 109 Digitale Bibliotheken 8 Dokument andern 91 114 anlegen 90 114 l schen 90 115 verschieben 115 Dokumentanzeige Kurz 143 Dokumentauswahl 145 Dokumente digitale 9 hypermediale 9 Dokumentinfo Lang 142 ECash 49 61 ECashPaymentClient 60 elektronische Zahlungsverfahren 49 61 elektronische Zahlungsvorg nge 10 Entit ten 15 DDS 17 Payment Handler 18 ER Schemata DDS 15 Payment Handler 18 INDEX Fehlerklassen siehe webshop dbif Fehlerbe handlung FormContent 120 getBalance 51 57 getBrandlds 50 56 getCredit 52 57 get CustomerTransactionsSinceDate 50 getErrorStatus 51 57 getTaStatus 51 57 get Transaction 50 57 Haupt Fenster 102 Handbuch 105 Hauptfenster 92 HBCI 50 Hilfe 137 146 Holderkonzept Allgemeines 85 Alternativen 88 GUI Klassenmodell 86 Vorteile 87 IllegalParameterException 59 Implementierung Authoring Tool 99 Informationen 7 digitale 7 Informationsschutz 7 insertCustomer 57 insertPaymentCustomer 53 Installation der Payment Komponente 61 invoiceRequest 52 57 InvoiceResult 54 58 iShop 8 Java Servlet 11 JavaScript 12 JDBG 10 Klassen siehe webshop dbif Klassenhierarchie des Payment Systems 56 Klassenstrukturen Web Komponente 149 Komponen
84. den Standard SQL Anfragen Dies erlaubt dem Nutzer des gesamten DDS Systems eine gr ere Flexibilit t bei der Wahl des DBMS mit dem er seinen Shop aufbauen m chte Die Optimierungsm glichkeiten bei denen dieser Vorteil aufrecht erhalten bleibt sind z B fol gende Verwendung spezieller Sichten Views innerhalb der Datenbank Durch den Ein satz von Views kann die wiederholte Ausf hrung von Joins vermieden werden solange sich die Informationen in den zugrunde liegenden Tabellen nicht ndern Views bieten sich f r die DDS DB vor allem bei solchen Tabellen an die lediglich durch die DDS Authoring Komponente ver ndert werden Optimierung von Joins durch den Einsatz von Speziellen Datenbank Tools Joins die sich ber eine gr ere Anzahl von Tabellen erstrecken h ngen in ihrer Ausf hrungs geschwindigkeit sehr stark von der Reihenfolge der Verkettung der Tabellen ab Mit geeigneten Tools l sst sich diese Geschwindigkeit f r unterschliedliche Kombinationen auswerten um einen optimalen SQL Ausdruck zu finden Indizierung von Attributen Durch die Generierung geeigneter Indexe physische Daten strukturen kann die Zugriffsgeschwindigkeit generell verbessert werden Insbesondere sind hier Fremdschl ssel und Attribute die als Auswahlkriterium f r Joins dienen zu nennen Verwendung von Prepared Statements Wird oftmals hintereinander mit dem gleichen SQL Ausdruck bei dem sich lediglich die eingesetzten Werte ver nd
85. die M glichkeit geben zur ck zum Webshop zu gelangen oder nochmal sein Login und Passwort einzugeben Aktion validTo berechnen neue Session ID berechnen die Datenbank updaten Meta Refresh durchfiihren Abbildung 5 7 Der Standard Request Geh ren Login Passwort und Customer ID nicht zusammen so wird vom Security Servlet ei ne Seite ausgegeben in der dem User die M glichkeit gegeben wird zur ck zum Webshop zu kommen oder nochmal den Standard Request zu durchlaufen um sein Login und Passwort ein zugeben falls er meint sich vertippt zu haben Geh ren Login Passwort und Customer ID zusammen so berechnet das Security Servlet das neue validTo unter der Berticksichtigung der duration generiert eine neue Session ID und schreibt validTo und Session ID in die Datenbank Danach wird ein Redirect per Meta Refresh auf die angeforderte Seite durchgefiihrt Der User kann danach weiter in dem Dokument navi gieren 5 5 Realisierung der gew hlten Sicherheitstechniken Als Basis fiir die Umsetzung der im Entwurf angegebenen Sicherheitstechniken dient die Webserver Distribution von Apache Zum einen ist sie kostenlos und des weiteren erlaubt sie das einfache Einbinden von C Module in den Kernel des Servers Au erdem unterst tzt der Apache Server die Servlet Technologie die fiir den Einsatz von Servlets zwingend erforderlich ist Somit 78 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE unterteilt sich die Implemen
86. die M glichkeit sich eine bersicht amp uumiber Ihre Lizenzen anzeigenzu lassen Initial werden alle g ltigen Lizenzen die Sie besitzen aufgelistet Mit Hilfe des Buttons am unteren Ende der Seite kann zwischen einer Auflistung von alle g ltigen Lizenzen und alle Lizenzen hin und hergeschaltet werden Die Auflistung der Lizenzen umfa8tfolgende Merkmale e Titel und Autor en des Dokuments e das Symbol 1 repr sentiert den Link zur LangInfo des Dokuments e das Symbol UE repr sentiert den Link zum Lesen des eigentlichen Dokument die Restzeit wie lange diese Lizenz noch g ltig ist a ein Symbol welches anzeigt ob die Rechnung f r dese Lizenz schon begichen wurde El oder ob die Rechnung noch often st El Ein Klick auf das Hilfe Symbol zeigt diese Seite Inhalt Index Zur ck Vorherige Seite N chste Seite Abbildung 7 13 Das Hilfe Fenster Titel Autor Beschreibung Verlag 7 Typ ISBN SUCHEN Abbildung 7 14 Das Suchen Fenster Autor Einer der Autoren der bei der Bearbeitung des Dokumentes mitgeholfen hat Beschreibung Die Beschreibung hier k nnen Sie Schlagw rter eingeben die in den gefundenen Dokumenten vorkommen sollen Verlag Falls Sie nach den Dokumenten eines bestimmten Verlages suchen Typ Welche Art von Dokument suchen Sie ISBN Nummer Die ISBN Nummer des Dokumentes Im Suchformular haben Sie die M glichkeit in die Suchfelder Ihre Suchbegriffe einzutr
87. e nderungen sind f r alle Dokumente bergreifend die diese Url referenzieren public static void updateDocumentUrls int docId UrlHolder urls throws InternalDbifError InvalidIDException IncompleteDataException Parameters docld Die ID PK des Dokuments dessen Urls aktualisiert werden sollen urls webshop classes UrlHolder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Dokument zum Parameter docld IncompleteDataException Der UrlHolder enth lt unvollst ndige Daten updateDocumentAuthors Aktualisiert die Autoren zu einem Dokument mit der Id docID Die Daten in der Tabelle Document_Author werden mit den Daten des neuen AuthorHol ders berschrieben Dabei wird die Position entsprechend der Reihenfolge im AuthorHolder aktualisiert public static void updateDocumentAuthors int docld AuthorHolder authors throws InternalDbifError InvalidIDException IncompleteDataException Parameters docld Die ID PK des Dokuments dessen Urls aktualisiert werden sollen authors webshop classes AuthorHolder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Dokument zum Parameter docld IncompleteDataException Der AuthorHolder ist leer updateDocumentOffers Aktualisiert die Angebote zu einem Dokument mit der Id docID zusiitzliche Angebote werden in die Tabelle Offer eingefiigt und die Angebote deren Ande rungskennzeichen gesetzt ist
88. e Verzeichnis ab dem in den Shop Einstellungen gew hlten Root Verzeichnis dargestellt wird Durch Eingabe einer Adresse kann hier direkt zu einem Verzeichnis gesprungen werden Der gr fte Teil des Fensters wird durch den eigentlichen Datei Browser bestimmt Vor dem Addressnamen steht dabei ein D fiir ein Verzeichnis und ein F fiir eine Datei Durch Doppel Klick auf ein Verzeichnis kann in dieses gewechselt werden Durch Wahl von kann man in die n chst h here Verzeichnis Ebene wechseln Dies jedoch auch nur solange bis das gew hlte Root Verzeichnis erreicht wurde Abh ngig davon von welchem Ort aus der Dateimanager aufgerufen wurde k nnen eine oder mehrere Dateien oder Verzeichnisse ausgew hlt werden Aufruf von Shop Einstellungen Po Root Verzeichnis Artikel Inhalte URLs auswaehlen 1 oder mehrere Dateien Inhaltsverzeichnis 1 Datei Homepage 1 Datei Bild 1 Datei Leseprobe 1 Datei 114 KAPITEL 6 AUTHORING KOMPONENTE Bei Druck auf OK werden die gew hlten Adressen iibernommen Beim Druck auf Cancel wird der Dateimanager ohne Anderungen geschlossen 6 3 3 Vorgehensweise bei den wichtigsten Arbeitsschritten Im Folgenden wird in Form einer To Do Anleitung die Vorgehensweise bei den wichtigsten Ar beitsabl ufen geschildert Es wird jedoch nicht die genaue Bedienung der einzelnen Fenster erkl rt Fiir diese Beschreibung sei der Benutzer auf die Kapitel 6 3 2 1 bis 6 3 2 8 verwiesen e Shop Einstellung
89. e ko stenpflichtig angeboten werden k nnen Kunden k nnen zum Online Zugriff auf die Dokumente Lizenzen erwerben die eine bestimmte Zeitspanne lang giiltig sind Weiterhin haben wir speziell auf den Information Commerce ausgerichtete Gesch ftsmodelle und Sicherheitskonzepte analy siert und werden sie in das DDS System integrieren Ziel unserer Aktivit ten ist es ein flexibel konfigurierbares und erweiterbares Testbett insbesondere f r Autoren und Verlage zu schaffen ber das diese Erfahrungen im Bereich des Information Commerce sammeln k nnen Weiter hin versuchen wir mit Anbietern kommerzieller eShop Systeme in Kontakt zu kommen um die von uns entwickelten Konzepte in deren inzwischen weit verbreitete Systeme zu integrieren An dieser Stelle sollen noch einige Punkte explizit genannt werden die bei dieser Realisierung des DDS Systems nicht ausreichend genug untersucht bzw nicht integriert wurden und bei einer zuk nftigen Weiterentwicklung des DDS Systems beachtenswert w ren Auf der Seite des DDS Authoring Tools w re es denkbar und sicherlich auch sinnvoll einen Mehrbenutzerbetrieb zu realisieren Gerade bei grofen Datenbest nden erleichtert eine Aufteilung der Zust ndigkeitsbe reiche auf verschiedene Personen die Arbeit des Einzelnen und erh ht die Effizienz des Ganzen Auch ist in dieser Version des DDS Systems nur eine einzige Form des Erwerbes von digitalen Waren m glich n mlich die direkte Online Nutzung mittels eines Brows
90. e nicht ge ndert werden wie z B bei allen Holdern die Listen von Objekten gleichen Typs enthalten n mlich AuthorHolder OfferHolder und UrlHolder Ebenfalls denkbar ist eine Mischform aus Holder und einzelnen Dokumentat tributen Auf den ersten Blick w rden die Vorteile des einen Konzeptes mit den Vorteilen des anderen Konzeptes kombiniert werden Nachteil ist jedoch hierbei dass die einheitliche Behand lung bei gewissen Aufgaben wie dem Speichern verloren geht bzw auf einer niedrigeren Stufe f r alle Attribute erm glicht werden muss 6 1 2 Entwurf der Benutzer Schnittstelle Der Entwurf der Benutzer Schnittstelle teilt sich in die Bereiche Ablaufdiagramme und Maskenentw rfe auf Die Ablaufdiagramme wurden auf der Grundlage der Designentscheidung festgelegt Sie ber ck sichtigen bereits das Holder Konzept und stellen die zur Umsetzung ben tigten Teilaufgaben 6 1 ENTWURF 89 und deren Reihenfolge dar Die Maskenentwiirfe fiir die Benutzungsoberfl che wurden ebenfalls unter Beriicksichtigung des Holder Konzepts erstellt Die Skizzen sollen die Repr sentation der Daten und der Interakti onselemente verdeutlichen 6 1 2 1 Ablaufdiagramme Es wurden Ablaufdiagramme fir folgende wesentliche Funktionalit ten der Benutzungsober flache erstellt Die Shop Einstellungen k nnen vom Benutzer ge ndert werden Abbildung 6 3 e Der Benutzer kann ein neues Dokument anlegen Abbildung 6 4 Er kann ein Dokument l schen Abbildung
91. ehler in webshop dbif InvalidIDException Ungiiltige Fremdschliisselbeziehung Die Customerld existiert nicht in der Tabelle Payment_Customer updateTransaction ndert eine Transaktion zum Kunden eines Shops in der Tabelle Transaction public static void updateTransaction Transaction transaction throws InternalDbifError InvalidIDException Parameters transaction webshop payment Transaction Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Ung ltige Fremdschl sselbeziehung Die Customerld existiert nicht in der Tabelle Payment_Customer 3 2 DATENBANK SCHNITTSTELLEN 41 getTransaction Liefert die Transaktion zu der angegebenen phPayld aus der Tabelle Transac tion public static Transaction getTransaction int phPayld throws InternalDbifError InvalidIDException Parameters phPayld die ID PK der Transaktion aus der Transaction Tabelle Returns webshop payment Transaction Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert keine Transaktion zum Parameter phPayld getPaymentCustomerTransactions Liefert alle Transaktionen eines Kunden aus der Tabelle Transaction Falls keine Transaktionen gespeichert sind wird ein leerer Vektor zuriickge geben public static java util Vector getPaymentCustomerTransactions int shop_customerId throws InternalDbifError InvalidIDException Parameters shop_customerld die ID PK des Kunden aus der Tabelle Pay ment_
92. eitere Informationen zu den Klassen des Authoring Tools stehen in der HTML Dokumentation Klasse AbstractShopFrame Der AbstractShopFrame ist die Oberklasse aller Fenster des Authoring Tools Er stellt die M glichkeit bereit StatusListener zu registrieren und diesen Status Meldungen zukommen zu lassen Desweiteren bietet er die Funktion J Komponenten in H he und Breite miteinander zu synchronisieren Die Methoden der Klasse lauten e void addStatusListener registriert einen StatusListener damit dieser Status Meldungen dieses Fensters erh lt e void removeStatusListener deregistriert einen StatusListener damit dieser von die sem Fenster keine Status Meldungen mehr erh lt e JComponent syncAllWidths synchronisiert die Breite von J Komponenten e JComponent syncAllHeights synchronisiert die H he von J Komponenten e void fireStatusChanged benachrichtigt alle registrierten StatusListener dass sich der Status dieses Fensters ge ndert hat Klasse HolderPanel Das HolderPanel ist die Oberklasse aller JPanel die die Daten der ver schiedenen Holder aus dem webshop classes Package repr sentieren Die Methoden der Klasse lauten e void writeHolder speichert den Daten des repr sentierten Holders in die Datenbank 100 KAPITEL 6 AUTHORING KOMPONENTE boolean isHolderSet zeigt an ob das JPanel aktuell einen Holder repr sentiert setDocument setzt das Dokument dessen Holder angezeigt werden soll Sobald da
93. eits im vorhergehenden Kapitel erl utert Hier sollen nun einige Einzelheiten zur Implemen tierung folgen getBrandlds Die Id s der implementierten Zahlungsverfahren werden hier in ein Vector Objekt geschrie ben und zuriickgegeben 4 3 ARCHITEKTUR UND IMPLEMENTIERUNG DES PAYMENT SYSTEMS 57 getTransaction Die angeforderte Transaktion wird iiber die Datenbank Schnittstelle aus der Datenbank gelesen und als Transaction Object zuriickgegeben getTaStatus Aus der Datenbank wird die vollst ndige Transaktion gelesen Anschlie end wird das At tribut taStatus daraus zuriickgegeben getErrorStatus Uber die Datenbank Schnittstelle wird die vollstandige Transaktion ausgelesen Zuriickge geben wird das Attribut errorStatus getBalance Der Eintrag aus der Datenbank Tabelle PaymentCustomer dessen Attribut shopCustome rId mit dem der Methode getBalance bergebenen Wert bereinstimmt wird gelesen Aus diesem wird das Attribut balance zur ckgegeben getCredit Der Eintrag aus der Datenbank Tabelle PaymentCustomer dessen Attribut shopCustome rId mit dem der Methode getCredit bergebenen Wert bereinstimmt wird gelesen Aus diesem wird das Attribut credit zur ckgegeben transactionSettled Aus der Datenbank wird die vollst ndige Transaktion gelesen Anschlie end wird true zur ckgegeben falls das Attribut taStatus den Wert 2 hat andernfalls false bookPayment ber die Datenbank Schnittstelle w
94. em Dokument hinzuzuf gen muss ein Betrag in das Textfeld mit der Bezeichnung Neues Angebot eingetragen werden Diesem Betrag kann nun durch Auswahl des DEM Buttons bzw des EUR Buttons eine entsprechende W hrung zugeordnet werden Wenn alle Daten korrekt eingegeben wurden kann das neue Angebot durch Dr cken der Enter Taste in die obere Liste bertragen werden Soll das neue Angebot auch G ltigkeit besitzen muss dieses durch Markieren der entsprechenden Checkbox explizit geschehen Wenn die Daten in die Datenbank geschrieben werden sollen muss die Schaltfl che Speichern gedr ckt werden Sollen die zuletzt gespeicherten Daten in dem Fenster angezeigt werden so muss die Schaltfl che Verwerfen gedr ckt werden Es besteht keine M glichkeit Angebote zu l schen 6 3 2 8 Der Dateimanager Um dem Benutzer die Auswahl von Verzeichnissen oder Dateien zu erleichtern ffnet sich beim Druck bestimmter Buttons in einigen Fenstern der Dateimanager Die Oberfl che des Dateima nagers teilt sich in 2 wesentliche Bereiche auf wie in Abbildung 6 32 zu sehen ist 6 3 BENUTZUNGSHANDBUCH 113 4 Guias gt jachristie orient express F cover gif PMindex html Piinhalt html Fikap 1 pdf F kap2 pdf F kap3 pdf Fikap4 pdf F kapS pdf Fikap6 pdf Fikap7 pdf Fikap8 pdf Fiprobe pdf F prolog pdf F vorwort pdf Abbildung 6 32 Der Dateimanager Oben befindet sich ein Adressfeld indem das aktuell
95. emeines Modell handelt sollen bez glich der Art der digitalen Objekte keinerlei Einschr nkungen gemacht werden Als typische digitale Objekte die angeboten werden k nnen seien jedoch Texte B cher Musik Software etc genannt Durch das Framework sollen weder die Zustellung der Objekte zum K ufer noch deren Benutzung durch den K ufer ber cksichtigt bzw implementiert werden F r das Angebot digitaler Objekte soll der Anbieter beispielsweise in der Lage sein den angebotenen Objekten individuelle Preise zu geben sowie Rabatte Sonderan gebote und Preisnachl sse zuzuweisen Letztere k nnen z B von der Nutzungsform und dem K ufer bzw der K ufergruppe abh ngig sein Bei der Bestellung der digitalen Objekte soll der K ufer zwischen verschiedenen Nutzungsformen der Ware Gleitlizenz Dauerlizenz Campuslizenz etc w hlen k nnen F r erworbenene Objekte erh lt er dann die entsprechende Lizenz Die Bezahlung der Objekte soll ber verschiedene elektronische Zahlungsverfahren wie Ecash oder SET m glich sein Insbesondere soll die Verwendung guthabenbasierter Verfahren durch die Verwaltung von Zahlungskonten durch das Framework unterst tzt werden Grundlegende Aufgabe des zu entwickelnden Frameworks ist es alle Daten die f r Angebot Bestellung und Abrechnung digitaler Objekte erforderlich sind sowie die Beziehungen zwischen diesen Daten zu verwalten Dies umfasst unter anderem die Verwaltung von Waren Angeboten zu Waren K ufern un
96. en ndern 1 Aufruf der Shop Einstellungen Rufen Sie ber das Optionen Men im Hauptfenster die Shop Einstellungen auf 2 Auswahl des Bereiches Wahlen Sie den Bereich aus in dem Sie Anderungen vornehmen m chten Generell Internet oder Bezahlung 3 Eintragen der Informationen Nehmen Sie die gewiinschten Anderungen vor Wenn Sie keine weiteren Anderungen mehr vornehmen m chten driicken Sie auf OK zum speichern oder auf Verwerfen zum verwerfen der Anderungen e Neues Dokument anlegen 1 Vorbereiten Gehen Sie in den Ordner in dem das neue Dokument erstellt werden soll Wahlen Sie dann iiber den Button oder das Kontextmenii rechte Maustaste die Funktion Artikel erstellen aus Ein neues Artikelsymbol wird angezeigt Dieser Artikel enthalt aber noch keine Informationen 2 Eingabe der Informationen Wahlen Sie jetzt wie bei Dokument ndern einen Bereich aus indem Sie zuerst Infor mationen eintragen wollen Wenn Sie nach dem Eintragen auf den Speichern Button klicken werden Sie eventuell vom Programm darauf aufmerksam gemacht daf noch Informationen fehlen Gehen Sie jetzt in den n chsten Bereich und fiillen Sie auch dort die Eingabefelder Erst wenn alle Felder in allen Bereichen korrekt eingetragen wur den wird das Programm versuchen das neue Dokument an die Datenbank weiterzu leiten Nach erfolgreichem Eintrag in die Datenbank bekommen Sie eine Best tigung vom Programm e Dokument ndern 1 Auswahl Wahlen Sie das z
97. en flexibel Ihr Einsatz lohnt sich insbeson dere bei komplexeren Transaktionen da hier der anteilig gr te Geschwindigkeitsgewinn zu erwarten ist Kapitel 4 Payment Komponente 4 1 Entwurf Eine Teilaufgabe bei der Entwicklung des DDS Systems besteht darin die Bezahlung der digita len G ter zu realisieren Das DDS ist zum Anbieten von kostenpflichtigen Web Seiten vorgesehen Um die kostenpflichtigen Web Seiten zu besuchen muss der Nutzer f r die gew nschten Inhalte Zeit Lizenzen erwerben Dieser Ablauf macht es notwendig dass die Bezahlung vor dem Aufruf der kostenpflichtigen Seiten erfolgt Bezahlungen per berweisung bzw Kreditkarte eignen sich hierbei weniger gut da bis zum Eingang der Zahlung u U mehrere Tage vergehen k nnen Eher geeignet sind Zahlungsverfahren die eine umgehende Zahlung ohne Zeitverlust erm glichen Diesen Vorteil bieten elektronische Zahlungsverfahren Damit besteht die M glichkeit f r eine gew nschte Web Seite sofort eine Zeit Lizenz durch bermittlung des elektronischen Geldes z B elektronische M nzen zu erwerben Hierbei entstehen nur geringe Zeitverluste im Sekun denbereich bis der Bezahlvorgang abgeschlossen ist Der Nutzer kann dann unmittelbar danach seine gew nschte Web Seite aufrufen Die Bezahlungen f r kostenplichtige Web Seiten soll durch einen Bezahl Server im weiteren Pay mentHandler verwaltet werden Der PaymentHandler wird bei Bestellung von kostenpflichtigen Web Seite
98. enden HolderPanel darstellt Um beispielsweise die Informationen eines DetailHolder anzuzeigen wird eine Klasse DetailHolderPanel benutzt die eine Unterklasse von HolderPanel ist Im DetailHolderPanel werden die ben tigten Textfelder Tabellen und hnliches erzeugt und positioniet um die Inhalte eines DetailHolder anzuzeigen Dieses DetailHolderPanel ist in einem HolderFrame eingebettet und wird von diesem angezeigt und verwaltet 6 1 1 4 Vorteile des Holderkonzeptes Ein wesentlicher Punkt beim Entwurf des GUI Klassenmodells war das dynamische Hinzuf gen und Entfernen von Informationen zu bzw von einem Dokument Nur die zur gew nschten Ar beit notwendigen Daten sollten aus der Datenbank geladen werden und umgekehrt sollten bereits korrekte Daten auf Wunsch sofort in die Datenbank geschrieben werden Ein Dokument besteht nun aus vier Holder die jeweils verwandte Informationen enthalten Verwandt soll hier zum Ausdruck bringen dass diese Informationen h ufig im selben Kontext erscheinen und ein Bear beiten einer Informationseinheit im Zusammenhang mit den anderen Informationen geschieht Ein Holder ist also ein Kompromiss aus Dynamik und Ergonomie Dynamisch weil nicht alle zu einem Dokument geh renden Informationen pauschal geladen werden und ergonomisch weil nicht jede Informationseinheit einzelnd geladen wird und somit dem Benutzer ein ausdr ckli ches Anfordern der n chsten Information erspart wird Je nach Aufgabe werden also nur die
99. ent repr sentiert werden keine Informationen ber Ordner geschweige denn ber den aktuell ge ffneten Ordner in dem UI Abhilfe schaffte hier die Verwendung eines Events SaveEvent mit passendem Listener Interface SaveListener Sobald ein Artikel neu in der Datenbank angelegt wird wird vor dem Speichern und nach dem Speichern ein Event ausgel st welches von dem UI abgefangen und weiterverarbeitet wird Abschlie end l sst sich sagen dass noch viele weitere kleine Detail L sungen gefunden werden mussten jedoch w rde deren Aufz hlung den Umfang dieses Unterkapitels sprengen Zuk nf tige Entwickler sind jedoch gerne aufgefordert sich anhand der dokumentierten Quellen des Authoring Tools neue Ideen zu holen 104 KAPITEL 6 AUTHORING KOMPONENTE 6 3 Benutzungshandbuch 6 3 1 Benutzungshandbuch des Authoring Tools Das Authoring Tool ist ein Werkzeug fiir den Administrator des WebShops Es dient dazu den Datenbestand des WebShops zu erstellen und zu verwalten Mit Hilfe des Authoring Tools k nnen Artikel angelegt bearbeitet und klassifiziert werden Zur Klassifikation der Artikel dienen frei definierbare Ordner denen die im WebShop zu pr sentierenden Artikel zugeordnet werden m ssen Ferner ist es mit dem Authoring Tool m glich die grunds tzlichen Einstellungen des WebShops festzulegen Die einzelnen grafischen Schnittstellen des Authoring Tools und die not wendigen Schritte zur Erstellung und Verwaltung des Datenbestandes werden
100. ere k nnen Zahlungen durch Bank berweisungen durch das Administrations Tool gebucht werden da f r diese eine automatische Buchung aufgrund der fehlenden Schnittstelle nicht m glich ist Die Funktionalit t des Administrations Tools ist durch die einfache Oberfl chengestaltung leicht erfassbar deshalb soll hier nur eine kurze Erkl rung der angezeigten Informationen und der Funktionen erfolgen Saldo Gibt den aktuellen Kontostand des gew hlten Kunden an nur verf gbar falls Kunde ausgew hlt ist Kredit Gibt des berziehungskredit an der dem Kunden gew hrt wird ebenso nur verf gbar falls Kunde ausgew hlt ist Shopld Gibt die Id des Shops an auf den sich die Transaktion bezieht Kundenld Gibt die Id des Kunden an der die Transaktion initiert hat 4 4 BENUTZUNGSHANDBUCH 65 Datum der Zahlungsaufforderung Das Datum an dem die Zahlungsaufforderung gestellt wurde Datum der Zahlung Das Datum an dem die Zahlung durchgefiihrt wurde Verwendungszweck Der Verwendungszweck der bei der Zahlungsaufforderung angegeben wurde Betrag Der Betrag der Transaktion in DEM Zahlungssystem Das zur Zahlung verwendete Zahlungssystem Orgld Zus tzliche Informationen ber den Kunden z B IP Adresse o Fehler Falls w hrend der Zahlung ein Fehler aufgetreten ist wird dies hier angezeigt Status Der Status der Transaktion Dieser ist entweder Zahlungsaufforderung gestellt oder Ge buch
101. ern auf die Datenbank zugegriffen bietet sich unter Java ein Prepared Statement an Da das Statement bereits vorcompiliert ist und nur noch die ver nderlichen Werte eingesetzt werden m ssen kann so ein Geschwindigkeitsgewinn erreicht werden Diese Methode bietet sich z B besonders in den DDS DB Schnittstellen an ber die neue Dokumente in die Datenbank eingetragen bzw aktualisiert werden da u U eine gro e Anzahl an URLs nacheinander eingetragen werden m ssen Neben den oben genannten M glichkeiten lie en sich evtl auch propriet re Erweiterungen des Herstellers des Datenbanksystems nutzen Dies geht allerdings auf Kosten der Kompatibilit t zu anderen Datenbank Systemen Es kann auch zu Problemen bei der Verwendung unterschiedlicher Treiberversionen kommen Der JDBC Treiber des verwendeten Systems Oracle8i JDBC Release 8 1 5 bzw 8 1 6 bietet unter anderem die folgenden beiden interessanten M glichkeiten Batch Updates Durch so genannte Batch Updates kann die Anzahl der Kontaktaufnahmen zum Datenbankserver verringert werden Es werden mehrere Statements zusammengefasst 48 KAPITEL 3 DATENBANK KOMPONENTE und zu einem w hlbaren Zeitpunkt in einem Paket bzw als Batch an die Datenbank zur Ausf hrung gesendet Stored Procedures Die auf dem Datenbankserver gespeicherten Prozeduren in JAVA oder PLSQL bieten eine optimale Anpassung an das DBMS sind aber bei Ver nderungen War tung und Erweiterung des Systems am wenigst
102. ers Um weitere Zahlungsverfahren in den PaymentHandler zu integrieren muss f r jedes Verfahren eine entsprechende von PaymentClient abgeleitete Klasse erstellt werden Diese Klasse muss in der Methode invoiceRequest die jeweils zahlungssystem spezifische Implementierung enthalten Der entsprechende Datensatz der neuen Transaktion wird bereits vor dem Aufruf der jeweiligen Clients von PaymentHandler angelegt Sowohl bei erfolgreich 4 4 BENUTZUNGSHANDBUCH 61 durchgef hrter Zahlung als auch im Fehlerfall sollte dieser Datensatz soweit m glich aktualisiert werden R ckgabewert der Methode invoiceRequest ist ein invoiceResult Objekt Darin kann das Ergebnis der Zahlungsaufforderung durch einen Fehlercode eine Text Nachricht und ins besondere bei elektronischen Zahlungsverfahren bei denen die eigentliche Aufforderung ber MIME Messages verschickt wird als ASCII Zahlungsaufforderung zur ckgegeben werden Weiterhin muss dem neuen Zahlungsverfahren eine ID und ein Name zugewiesen werden Dies geschieht durch Hinzuf gen der entsprechenden Konstanten in der Klasse Brand Um die Abfrage der unterst tzten Zahlungsverfahren mittels getBrandlds zu aktualisieren muss auch diese Methode der Klasse PaymentHandler entsprechend erweitert werden Schliesslich muss bei einem Aufruf von invoiceRequest in PaymentHandler dieser Aufruf analog zu den bereits integrierten Clients an den neuen PaymentClient weitergeleitet werden Dies geschieht dur
103. ers fiir eine Person zu einem festen Minutenpreis Alternativen wie der Download von digitalen Waren das Einrichten von Gruppenkonten und die Vergabe von Rabatten wurden zwar analysiert jedoch nicht inte griert Auf zus tzliche Features wie das Erstellen von Statistiken oder Kundenprofilen wurde g nzlich aus Zeitgriinden verzichtet Dariiber hinaus existieren noch viele weitere Punkte deren Realisierung fiir einen komfortablen Umgang mit dem DDS Sytsem wiinschenswert ware aber wir hoffen dass mit diesem System eine gute Basis im Bereich iShop Systeme geschaffen wurde 151 Index AccountPaymentClient 59 Anfragebehandlung 78 Angebote Fenster 93 Handbuch 112 Artikel Inhalte Fenster 94 Handbuch 110 Ausnahmen siehe Fehlerklassen Authoring Tool 8 Autoren Fenster 93 Handbuch 111 Bankiiberweisung 49 BankTransferPaymentClient 59 Benutzerdaten ndern 145 anlegen 145 anlegen ndern 137 Benutzerhandbuch Web Komponente 124 Bestellung 146 Bankeinzug 147 Credit Card 147 CyberCash 148 ECash 148 Kundenkonto 147 Bezahl Server 49 bookPayment 53 57 Brand 53 58 C Modul 78 Credit CardSSLPaymentClient 59 CustomerDoesNotExistException 59 CyberCash 49 61 CashRegister 61 CyberCashClient 60 Dateimanager 94 102 Handbuch 112 Datenbank JDBC 8 Datenbank Fenster 152 Autoren 95 Formate 95 Handbuch 108 Sprachen 96 Typen 96 Verlage 95 DB Schnittstellen siehe webshop
104. es Hauptfensters befindet sich eine geteilte Ansicht fiir die im WebShop verfiigba ren Ordner und den Artikeln die einem Ordner aktuell zugeordnet sind In der linken H lfte der Ansicht werden die verfiigbaren Ordner als Baumstruktur dargestellt Sobald man einen Ordner ausgew hlt hat werden die ihm zugeordneten Artikel in der rechten H lfte der Ansicht ange zeigt Sollte einem ausgew hlten Ordner kein Artikel zugeordnet sein bleibt die rechte H lfte der Ansicht leer Neue Ordner werden ber den Menii Eintrag Datei Ordner erstellen dem entsprechenden Symbol in der Symbol Leiste oder ber ein Kontext Men Aufruf mittels der rechten Maustaste erzeugt Dabei ist zu beachten dass der neu erzeugte Ordner ein Unter ordner des aktuell ausgew hlten Ordners ist Sollte kein Ordner ausgew hlt sein wird der neu erstellte Ordner ein Top Level Ordner also ein Ordner dem kein weiterer Ordner bergeord net ist Das Entfernen von Ordnern verl uft analog allerdings ist hierbei zu beachten dass alle Unterordner des zu entfernenden Ordners ebenfalls entfernt werden Die Zuordnung der Ord ner untereinander l sst sich per Drag and Drop ndern Dazu ist ein Ordner mit der linken Maustaste auszuw hlen und bei gedr ckter linker Maustaste einfach auf den Ordner zu ziehen der als neuer bergeordneter Ordner fungieren soll Das Umbenennen von Ordnern wird ber den Men Eintrag Datei gt Ordner umbenennen dem en
105. eugt die Html Seiten e LoginPage wenn dieses Servlet aufgerufen wird bevor anderswo ein Login ben tigt wurde e CustomerPage zur Darstellung der Kundendaten des Kontoauszuges oder der Lizenzen e OrderPage zum Aufladen des Kundenkontos 7 2 ENTWURF UND IPMLEMENTIERUNG 123 Das Servlet DocumentList Viewer zeigt den Inhalt einer Kategorie an Das Servlet Document List Viewer erzeugt die Html Seite e DocumentListPage fiir die Darstellung der Liste der in einer Kategorie enthaltenen Dokumente Das Servlet Document Viewer zeigt alle zu einen Dokument verf gbaren Informationen an Uber den Document Viewer kann fiir eine Bestellung der Order Viewer aufgerufen werden Das Servlet Document Viewer erzeugt die Html Seiten e Document Page zur Anzeige der Dokumentinformationen e LoginPage wenn eine Bestellung gemacht wird bevor der Kunde sich angemeldet hat e BasketPage zur Aufnahme der Bestelldaten fiir das Dokument Das Servlet FolderViewer erzeugt in den Layout s 1 und 3 die Ubersicht der Kategorien im linken Frame In Layout 3 werden auch die Navigationslinks im linken Frame erzeugt Das Servlet FolderViewer erzeugt die Html Seite e FolderPage zur Generierung des linken Frames mit Navigation nur Layout 3 und Ka tegoriebaum Layout 1 und 3 Das Servlet Help Viewer generiert die Online Hilfe Das Servlet Help Viewer erzeugt die Html Seite e HelpPage die Darstellung der Online Hilfe Das Servlet LicenceViewer generiert
106. frage public String getMessage Liefert eine Beschreibung des Fehlers 3 2 4 3 IncompleteDataException Diese Klasse behandet den Fall dass ein Dokument Objekt mit unvollst ndigen Informationen in die Datenbank eingefiigt wird Konstruktor public IncompleteDataException String msg int missingDataType Felder public final static int UNKNOWN_DATA_TYPE Unbekannter Datentyp public final static int NO_OFFER_DATA Keine Angebotsdaten public final static int NO_AUTHOR_DATA Keine Autorendaten public final static int NO_SHOPURL_DATA Keine URLs public final static int NO_PUBLISHER_DATA Kein Verlag public final static int NO_DOCTYPE_DATA Keine Typangabe public final static int NO_FORMAT_DATA Keine Formatangabe public final static int NO_LANGUAGE_DATA Keine Sparachenangabe Methoden public int getMissingDataType Liefert den Typ der fehlenden Information public String getMessage Liefert eine Beschreibung des Fehlers 3 2 4 4 InvalidDeleteIDException Dieser Fehler wird ausgel st wenn ein Datensatz gel scht werden soll zu dem noch eine Fremd schl sselbeziehung in der Datenbank besteht Konstruktoren public InvalidDeleteIDException String msg String siD public InvalidDeleteIDException String msg int iD 44 KAPITEL 3 DATENBANK KOMPONENTE Methoden public String getSessionID Liefert die Session ID des zu l schenden Da tensatzes public int getID Liefert die ID des zu l schenden Datensatzes public St
107. gebucht Parameter phPayld Identifaktionsnummer der Transaktion Parameter paidAt Datum der Buchung Parameter amount Buchungsbetrag Parameter login Die Login Daten des Shops R ckgabewert true wenn die Bezahlung gebucht ist sonst false Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException bergabeparameter sind inkonsistent Ausnahme TransactionDoesNotExistException Keine Transaktion zur phPayld vor handen Ausnahme InternalDbifError Datenbankfehler 4 2 3 Brand e Konstanten int ACCOUNT 1 int BANKTRANSFER 2 int CREDITCARD 3 int ECASH 4 int CYBERCASH 5 String ACCOUNT_STR Account String BANKTRANSFER_STR BankTransfer String CREDITCARD _STR CreditCard String ECASH_STR ECash 54 KAPITEL 4 PAYMENT KOMPONENTE String CYBERCASH_STR CyberCash e Attribute String brandName int brandId e Konstruktoren public Brand public Brand int id 4 2 4 InvoiceResult e Attribute String message String invoice ASCII int phPayld int error e Konstruktoren public InvoiceResult public InvoiceResult int phPayld String message String invoiceASCII int error public InvoiceResult int phPayld String message int error 4 2 5 Login e Attribute int shop id String password String name String bankConnection e Konstruktoren public Login
108. gt werden so m sste lediglich der Befehlssatz erweitert werden Au erdem m sste im Security Servlet eine Methode implementiert werden die den neuen Befehl abarbeitet So w re es m glich unterschiedliche Lizenztypen wie Gleitlizenzen oder Gruppenlizenzen einzuf hren die schon im Server Plugin entsprechend behandelt w rden Es wird deutlich dass eine Erwei terung der Sicherheitstechniken mit einer Erweiterung der Schnittstelle einhergeht Sie ist der Hauptansatzpunkt falls neue Sicherheitskonzepte in das System integriert werden sollen 5 8 Das Problem bei der Umbenennung der Dateinamen Das Ziel der Sicherheitsma namen des Webshops ist es dem User es so schwer wie m glich zu machen das Lizenzkonzept zu umgehen und damit um das Zahlen von Lizenzgeb hren f r Do kumente im Webshop herumzukommen Die einfachste M glichkeit so wenig Geld wie m glich f r eine Lizenz auszugeben ist es eine kurze Lizenz zu kaufen und dann innerhalb der Lizenz dauer alle Daten die zu einem Dokument geh ren lokal auf den eigenen Rechner zu speichern damit danach keine Lizenz mehr n tig ist um das Dokument zu lesen Dies ist z B mit dem Programm wget m glich wird allerdings auch mittlerweile von mehreren Browsern und inter aktiven Robot Programmen zur Verf gung gestellt Was w rde man durch das Umbenennen der Dateinamen eines Dokuments gewinnen Um dies zu verstehen muss man sich mit dem Aufbau von HTML Dateien in denen die Text Daten abgelegt
109. hen Zwecken Jeder Nutzer der ein Lizenz fiir ein Dokument erwerben will wird zuvor in diese Tabelle aufgenommen Fiir die Bezahlungsabwicklung muss die customer_id des Kunden auch an den Payment Manager weitergegeben werden Attributname Domain Beschreibung customer_id name first_name address city p code country email phone fax login password NUMBER STRING STRIN STRIN STRIN STRIN STRIN STRIN STRIN STRIN STRIN STRIN QQ Qo aaa QQ oO 0 ID des Kunden PK Nachname Vorname n Stra e mit Hausnummer Wohnort Postleitzahl Land e Mail Adresse Telefonnummer Telefaxnummer Benutzername innerhalb des Systems Passwort zur Anmeldung am System Tabelle 3 12 Tabelle Customer KAPITEL 3 DATENBANK KOMPONENTE Document Die Tabelle Document enth lt Daten iiber die im DDS angebotenen digitalen Do kumente Neben Elementen des Dublin Core Element Set finden sich hier auch Referenzen auf frei zug ngliche URLs die dem Kunden zus tzliche inhaltliche Informationen in Form von Leseproben etc zur Verfiigung stellen sollen Attributname Domain Beschreibung doc_id title description publisher_id pyear type_id format_id language_id isbn edition homepage toc image sample_homepage NUMBER STRING STRING NU NUMBER NUMBER NUMBER NUMBER MBER STRING NUMBER NUMBER NUMBER ID des Dokuments PK Dokumenttitel Kurzbeschreibung des Inhal
110. hler in webshop dbif InvalidIDException Die ID des Publishers ist ungiiltig 3 2 DATENBANK SCHNITTSTELLEN 37 InvalidDeletelDException Es existiert noch eine Fremdschliisselbeziehung zu dem Daten satz insertDocumentType Fiigt einen neuen Dokument Typ in die Tabelle Document_Type ein public static int insertDocumentType DocumentType docType throws InternalDbifError Parameters docType webshop classes Document Type Returns Die vergebene ID PK fiir den neuen Dokument Typ Throws InternalDbifError Schwerer Fehler in webshop dbif updateDocumentType Aktualisiert einen Eintrag in der Tabelle Document_Types public static void updateDocumentType DocumentType docType throws InternalDbifError InvalidIDException Parameters docTypes webshop classes Document Type Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Document Typs ist ung ltig deleteDocumentType L scht Eintrag aus der Tabelle Document_Type public static void deleteDocumentType DocumentType docType throws InternalDbifError InvalidIDException InvalidDeleteIDException Parameters docType webshop classes Document Type Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Document Typs ist ungiiltig InvalidDeletelDException Es existiert noch eine Fremdschl sselbeziehung zu dem Daten satz insertLanguage Fiigt eine neue Sprache in die Tabelle Language ein public st
111. hop Logos eintragen werden Diese Einstellm glichkeiten sind in Abbildung 6 25 abgebildet 108 KAPITEL 6 AUTHORING KOMPONENTE snop Einstellungen TEX Root URL http your root url Start Seite http www webshop de Email Adresse TooLib offis Uni Oldenburg de Shop Laga llogos logo gif Verwerfen x Abbildung 6 25 Die Internet Shop Einstellungen Im Bereich der Bezahlungen k nnen die verschiedenen Bezahlungsarten ausgew hlt werden die der Shop unterstiitzen soll Die Auswahl erfolgt durch einen Druck auf das K stchen neben dem Namen der Zahlungsart El ox A Shop Einstellungen Zahlungsarten Account 7 BankTransfer CreditCard ECash _ CyberCash Verwerfen OK Abbildung 6 26 Die Bezahlungs Shop Einstellungen Mit dem OK Button werden die nderungen bernommen bei Auswahl des Verwerfen Buttons werden die Anderungen verworfen 6 3 2 3 Datenbankfenster Datenbankfenster zeigen die momentanen Inhalte der Datenbank zu einigen Attributen des Dokumentes an und erm glichen das Hinzuf gen von weiteren Werten Im Authoring Tool des Webshops gibt es f nf Datenbankfenster das Autoren Datenbankfenster das Format Datenbankfenster das Verlag Datenbankfenster das Typ Datenbankfenster und das Sprach Datenbankfenster Alle Fenster sind gleich aufgebaut und unterscheiden sich nur inhaltlich Ab gebildet ist ein Datenbankfenster in Abbild
112. hor sowie Document_Offer Es werden nur vollst ndige Dokumente gespeichert public static int insertDocument Document document throws InternalDbifError IncompleteDataException Parameters document webshop Classes Document kapselt die Informationen zu einem Dokument Returns Die zugewiesene ID PK fiir das neue Dokument Throws InternalDbifError Schwerer Fehler in webshop dbif IncompleteDataException Das neue Dokument enth lt unvollstandige Daten updateDocumentDetails Aktualisiert die DublinCore Elemente details zu einem Doku ment mit der Id docID public static void updateDocumentDetails int docld DetailHolder details throws InternalDbifError InvalidIDException IncompleteDataException Parameters docld Die ID PK des Dokuments das aktualisiert werden soll details webshop classes DetailHolder Throws InternalDbifError Schwerer Fehler in webshop dbif 3 2 DATENBANK SCHNITTSTELLEN 35 InvalidIDException Es existiert kein Dokument zum Parameter docld IncompleteDataException Der DetailHolder enth lt unvollst ndige Daten updateDocumentUrls Aktualisiert die URLs zu einem Dokument mit der Id docID zus tz liche Urls mit UrlId 0 werden in die Tabellen Url bzw Document_Url eingefiigt und Urls deren L schkennzeichen gesetzt sind werden aus der Tabelle Document_Url entfernt Zus tzlich wird f r jede Url deren nderungskennzeichen gesetzt ist der free Satus in der Datenbank aktualisiert Di
113. hrere Ans tze Der erste Ansatz war das Apache Modul Modre write Modrewrite erm glicht es intern die Namen von angeforderten Dateien umzubenennen und dem User daraufhin Dateien mit anderen Dateien zu senden Dieses Verfahren ist sehr effektiv auf Webservern wo sich die Dateien auf dem Webserver oft ndern jedoch nicht die Einstiegsseite bzw die Links die man im Internet z B in Suchmaschinen findet die auf diesen Webserver verweisen Um mit Modrewrite auf Anfragen des Users zu reagieren werden Perl Skripte benutzt die den Namen einer angeforderten Datei identifizieren und einen entsprechenden Namen an den Webser ver weitergeben welcher dann die Datei mit dem neuen Namen an den Browser des User sendet Das Problem mit Modrewrite ist jedoch dass diese Software darauf ausgelegt ist den User nicht iiber Anderungen am Webserver zu informieren der User bekommt davon nichts mit Die Uber legung der Projektgruppe war daraufhin die Aufgabe vom Security Servlet und dem C Modul bernehmen zu lassen indem eine entsprechende Umrechnung von dort aus durchgef hrt wird Das hat zu interessanten weiteren Problemen gef hrt n mlich der M glichkeit dass der User eine Datei anfordert von der er schon eine Version mit umbenannten Dateinamen hat Fordert er unter diesem Namen per Reload die Datei neu an muss der Webserver erkennen dass es sich bei dem Dateinamen schon um eine umbenannte Datei handelt Sollte er die Umbenennung nicht erkennen wird
114. i Webshop ini durchgef hrt werden Anschlies send miissen in der zugrundeliegenden Datenbank die ben tigten Tabellen und Constraints zunachst mittels Installationsskript dds db sql angelegt werden bevor die Datenbank iiber die JDBC Schnittstelle durch das Authoring Tool mit Daten gef llt werden kann F r weitere Informationen zu den Voraussetzungen und der Installation der Datenbank Komponente lesen Sie bitte im Kapitel 3 Datenbank Komponente nach Die relevanten Klassen der Payment Komponente fiir den Server bzw fiir den RMI Client befinden sich in der Datei PHServer jar Fiir die Benutzung der verschiedensten Zahlungs verfahren sind zum Teil noch einige Anmelde und Registrierungs Formalit ten bei Banken Kreditinstituten und Anbietern notwendig siehe Kapitel Payment Komponente Genaue Informationen zur Installation der DDS Payment Komponente finden Sie im Kapitel 4 Payment Komponente Fiir das Authoring Tool werden entsprechende Skript Dateien fiir Unix und Windows zur Verfiigung gestellt die das Tool starten atool sh und atool bat Diese Skripte miissen noch ein wenig angepasst werden In der Datei webshop ini muss vom Benutzer die Anbindung des Authoring Tools an die Datenbank sowie Informationen zum verwendeten Payment Handler angepasst werden Wichtig ist noch dass der Pfad zum JAR Archiv und zur Klassenbibliothek der Datenbank im CLASSPATH auftauchen Nahere Informationen zur Installation des Authoring Tools finden Sie unter
115. ichkeiten des Benutzers Hier werden einzelne Aktionen die Sie ebenfalls anwenden miissen wenn Sie den Shop benutzen wollen erkl rt Hier k nnen Sie bei der sp teren Benutzung des Programms Hilfestellung finden wenn sich irgendwelche Probleme finden 7 3 3 1 Ausw hlen eines Dokuments Um sich ein Dokument auszuw hlen m ssen Sie sich ersteinmal f r eine Kategorie entscheiden aus der Ihr gesuchtes Dokument stammen soll Oder aber Sie benutzen die Suche um sich ein bestimmtes Dokument anzeigen zu lassen Wenn Sie dann ber die Kurzinfo zu dem gew nschten Dokument gelangt sind haben sie die M glichkeit sich die Langinfo anzeigen zu lassen es in den Warenkorb zu legen oder aber es uas der Langinfo heraus direkt zu bestellen 7 3 3 2 Einen neuen Benutzer anlegen Immer wenn personenbezogene Daten aus der Datenbank ben tigt werden und Sie noch nicht eingeloggt sind wird die Login Seite aufgerufen damit Sie sich als rechtm ssiger Nutzer identi fizieren k nnen Dann werden Sie zur Eingabe Ihres Usernamens und Ihres pers nlichen Passworts aufgefordert Geben Sie Ihren Usernamen und Ihr Passwort in die beiden Eingabefelder ein und klicken Sie mit der Maus auf den Login Button um sich einzuloggen Falls die Eingaben falsch waren erscheint die Login Seite erneut mit einer kurzen Fehlermeldung und Sie k nnen es noch einmal versuchen Falls Sie noch keinen eigenen Usernamen und Passwort besitzen k nnen Sie sich durch einen Klick mi
116. ier auch keine eigene Seite zur Verf gung gestellt hat 7 3 BENUTZERHANDBUCH 125 7 3 1 Erkl rungen f r den Betreiber Um diesen Teil des DDS Systems zum laufen zu bringen m ssen nat rlich die anderen Teile des DDS Systems installiert werden 7 3 1 1 Installation und Inbetriebnahme des WebShops durch den Betreiber Die genauen Installationsvoraussetzungen und anweisungen k nnen Sie jederzeit am Anfang dieses Berichts nachschlagen Im Kapitel 2 finden Sie die genaue Anleitung zu diesen Vorg ngen damit Sie sp ter als Betreiber keine Schwierigkeiten mit dem Einrichten des DDS Systems haben 7 3 2 Handbuch f r den Benutzer Hier folgen ein paar kurze Erl uterungen zu den Begriffen die in diesem Benutzerhandbuch verwendet werden damit die Beschreibungen der Layouts nicht zu abstrakt werden Bsp im linken unteren Teil des Hauptfenster Die komplette WebShop Oberfl che wird als Oberfl che bezeichnet diese Oberfl che wird in vier Frames das heisst Teile aufgeteilt Wenn im Text zum Beispiel steht im rechten unteren Frame passiert folgendes ist damit gemeint da der rechte untere Teil der Oberfl che gemeint ist Als letzter Begriff soll noch der Hauptframe eingef hrt werden dieser befindet sich bei allen drei Layouts auf der rechten Seite im unteren Teil und nimmt den gr ten Teil der Oberfl che ein 7 3 2 1 Installationshinweise f r den Benutzer F r Sie als Benutzer ergibt sich kein Installationsaufwand den
117. ieses Verfahren jedoch nicht zum Einsatz kam ob wohl viel Zeit in die Entwicklung investiert wurde wird im Abschnitt 5 8 erl utert 5 4 ENTWURF 71 5 4 Entwurf 5 4 1 Anfrage ber Socket Verbindung Das C Modul sendet die Session ID und die URI per Socket Verbindung an das Security Servlet Das Security Servlet stellt eine Datenbankanfrage mit der Session ID und der URI und bekommt Informationen die im weiteren Verlauf ausgewertet werden Frage War die Session ID tiberhaupt jemals giiltig Antwort Ja die Session ID ist bzw war g tig Antwort Nein die Session ID war nie giiltig Frage Ist die aktuelle Session ID noch giiltig bzgl der 30 Minuten Grenze Aktion BadFitFehler per Socket Verbindung an das C Modul senden Abbildung 5 1 Ist die Session ID jemals giiltig gewesen Es wird gefragt ob die Session ID jemals g ltig gewesen ist das bedeutet ob die Session ID bzgl der gesendeten URI in der Datenbank verwendet worden ist Diese Frage ist nicht davon abh ngig ob sie immer noch giiltig ist sondern ob es sich hier um einen validen Link bzw Bookmark auf die angeforderte Seite handelt oder ob jemand versucht mit einer ausgedachten Session ID an das Dokument im Webshop zu gelangen ohne Lizenzgebiihren zu bezahlen Falls es sich um eine giiltige Session ID handelt muss ermittelt werden ob die Session ID immer noch giiltig ist Die Giiltigkeit einer Session ID ist zeit
118. ifError InvalidIDException InvalidSemanticException Parameters obsoletFolder webshop classes Folder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zur ID des Folders InvalidSemanticException Die FatherFolderld des Folders stimmt nicht mit dem Eintrag in der Tabelle Folder berein 3 2 DATENBANK SCHNITTSTELLEN 39 updateFolder Aktualisiert die Folder Daten in Tabelle Folder public static void updateFolder Folder updatedFolder throws InternalDbifError InvalidIDException Parameters Folder webshop classes Folder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zur ID des Folders insertDocumentIntoFolder Fiigt eine neue Zuordnung eines Dokuments zu einem Folder in die Tabelle Document_Folder der Datenbank ein public static void insertDocumentIntoFolder int docId int folderId throws InternalDbifError InvalidIDException InvalidWriteIDException Parameters docld Die ID PK des Dokuments in der Tabelle Document folderld Die ID PK des Folders in der Tabelle Folder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zum Parameter folderld oder aber kein Do kument zum Parameter docld Invalid WritelDException Das Dokument wurde bereits in den Folder eingef gt deleteDocumentFromFolder L scht die Zuordnung eines Dokuments zu einem Folder aus der
119. ilbereich des DDS System einwandfrei funktioniert F r den Benutzer ist vor allem die Nutzung des WebShop wichtig Deswegen werden f r den Benutzer die verschiedenen Interaktionsm glichkeiten erl utert Dabei stellt der WebShop drei verschiedene Oberfl chen zur Verf gung die allerdings nur vom Betreiber des Online Shops gew hlt werden k nnen Trotzdem wird in diesem Benutzerhandbuch auf alle drei Oberfl chen eingegangen und es werden die Unterschiede dargestellt In allen drei Layouts wurde die Oberfl che jeweils in vier Teile aufgeteilt Dabei befindet sich in allen drei Oberfl chen in der linken oberen Ecke das Logo des Shops Ausserdem werden die wichtigsten Anzeigen bei allen drei Oberfl chen im rechten unteren Teil des Fensters dargestellt Es befindet sich bei allen drei Layouts im rechten unteren Teil der Oberfl che der Hauptfra me der den gr ssten Teil der Oberfl che einnimmt In ihm k nnen Sie alle weiteren Aktionen durchf ren Im Gegensatz zu den anderen Frames wechselt hier je nach Aktion der Inhalt sonst wird in den anderen Frames nur gelegentlich eine Aktualisierung durchgef hrt Alle drei Layouts laden als Startseite im rechten unteren Teil des Fensters die vom Betreiber angegebene Seite ein Wird vom Betreiber allerdings keine Seite angegeben l dt der Shop eine selbsterstellte Seite ein mit den wichtigsten Informationen ber den Shop ein Diese Seite ist identisch mit der ShopInfo Seite sofern der Betreiber h
120. in den folgenden Unterkapiteln erl utert 6 3 1 1 Aufruf des Tools Voraussetzung zum Starten des Authoring Tools ist eine Java Entwicklungsumgebung in der Version 1 2 sogenannt Java 2 oder eine Java Laufzeitumgebung JRE ebenfalls in der Version 1 2 Bevor das Authoring Tool gestartet werden kann sind allerdings noch einige Vorarbeiten n tig Zun chst ist die Konfigurations Datei webshop ini anzupassen Die notwendigen Einstellungen betreffen die Anbindung des Authoring Tools zur Datenbank sowie Informationen zum ver wendeten Payment Handler der die Abwicklung von Transaktionen im WebShop bernimmt Anschlie end kann das Authoring Tool mit dem Aufruf java Dwebshop ini lt voller Pfad zur webshop ini gt webshop gui AuthoringTool oder im Falle der Java Laufzeitumgebung mit jre Dwebshop ini lt voller Pfad zur webshop ini gt webshop gui Authoring Tool gestartet werden Wichtig ist hierbei dass sowohl das WebShop JAR Archiv als auch der Pfad zur SQL Klassenbibliothek im Klassenpfad Umgebungs Variable CLASSPATH der Java Umgebung auftauchen Alternativ kann das Authoring Tool auch ber ein Skript gestartet wer den Passende Skripte f r Windows und unix artige Betriebssysteme liegen dem WebShop bereits bei In den Skripten sind jeweils die Variablen WEBSHOP_INI und WEBSHOP_JAR anzupas sen Das Authoring Tool kann dann mit dem Aufruf atool bat Windows bzw atool sh Unix und Derivate gestartet werden Der Pfad zur SQL K
121. ird die Transaktion die gebucht werden soll eingelesen Dann wird deren taStatus auf 2 gebucht gesetzt In paidAt und settledAt wird das aktu elle Datum eingetragen das Attribut paidAmount wird auf den geforderten Betrag gesetzt Anschliessend wird die somit gebuchte Transaktion in die Datenbank zur ckgeschrieben invoiceRequest Die Methode invoiceRequest legt ber die DB Schnittstelle eine neue Transaktion mit den bergebenen Daten an Anschlie end wird je nach bergebener brandID eine Instanz des entsprechenden PaymentClients erzeugt der das jeweilige Zahlungsverfahren realisiert F r diesen PaymentClient wird wiederum die Implementierung der Methode invoiceRequest aufgerufen wodurch die Zahlung eingeleitet wird Treten hierbei Fehler auf so wird eine entsprechende PaymentFailedException erzeugt Bei einem fehlerfreien Zahlungsvorgang wird getestet ob als Zahlungstyp transaction Type die Einzahlung auf ein Kundenkonto gew hlt wurde In diesem Fall muss getestet werden ob der Zahlungsvorgang bereits abgeschlossen wurde Ist dies der Fall so wird der eingezahlte Betrag auf das Kundenkonto gutgeschrieben R ckgabewert dieser Methode ist ein Objekt vom Typ InvoiceResult das detaillierte Ergebnisse der Zahlungsaufforderung enth lt insertCustomer Diese Methode schreibt ber die Datenbank Schnittstelle einen neuen PaymentCustomer in die entsprechende Tabelle shopId und shopCustomerId werden dabei auf die bergebenen
122. ird mit dem SessionlDGenerator eine neue Session ID erzeugt Diese Session ID setzt sich aus den Buchstaben SID dem Login des Users und der verstrichenen Zeit seit dem 1 1 1970 in Millisekunden zusammen Mit Hilfe der neuen Session ID und der gespeicherten URI aus dem 80 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE Hashtable wird nun ein Metarefresh an den Client gesandt wodurch das gewiinschte Dokument dargestellt wird Versucht der User zum ersten Mal ein lizensiertes Dokument einzusehen so wird ebenfalls ein Login Formular an den Client gesandt Diesmal wird bei korrekter Eingabe jedoch vor dem Metarefresh berpr ft ob die Lizenz schon bezahlt ist Wenn dies der Fall ist so wird der first Click der Lizenz gesetzt Damit l sst sich sp ter berechnen ob die Lizenz noch g ltig ist oder nicht 5 5 3 Kommunikation zwischen Server Plugin und Security Servlet Die Kommunikation zwischen den beiden Komponenten l uft sowohl ber eine Socket Verbindung als auch ber direkte Aufrufe des Servlets durch HTML Formulare ab Zur Reali sierung der Socket Kommunikation startet das Servlet beim Initialisieren einen Socket Server als eigenst ndigen Thread Das Servlet lauscht also st ndig auf Anfragen des Servers ffnet der Server nun einen Socket Kanal so startet das Servlet einen weiteren Thread um die Anfrage zu bearbeiten Daher kann das Servlet theoretisch mehrere Anfragen gleichzeitig bearbeiten Bei dieser Art der Kommunikation zwis
123. it ten bzw Objekte welche den eigentlichen Inhalt des DDS bilden sowie Objekte die die Grundlage f r die Ablauf und 15 16 KAPITEL 3 DATENBANK KOMPONENTE Zugriffssteuerung sowie die Verwaltung dieser Inhalte bilden Customer_Session price x Licence y 3 d gt gt N lt purchasing gt gt gt A gt hd Customer 4 a A author_type lt Publishing gt lt mime_type 4 langue write x 4 gt gt 4 N y od x Publisher Document_Type Format Language Author Abbildung 3 2 Entity Relationship Diagramm f r den DDS Die digitalen Produkte des DDS sind hypermediale Dokumente Document s Tabelle 3 13 deren Zugriff ber eine oder mehrere Urls erfolgen mu Url s Tabelle 3 9 F r die Pr sentati on und Unterst tzung des Kunden bei seiner Kaufentscheidung werden speziell ausgezeichnete Urls genutzt die auf Dokumentinhalte unterschiedlichen Typs verweisen Hierzu geh ren die Anfangsseite homepage das Inhaltsverzeichnis toc eine Bilddatei image und eine Lesepro be sample Diese vier Elemente ggf auch noch weiterf hrende Links sollen frei zug nglich sein Alle weiteren Urls k nnen gesch tzt werden wenn der Anbieter dies verlangt Sie verweisen 3 1 DATENBANK ENTWURF 17 auf die eigentlichen kommerziellen Inhalte des Dokuments Content Die Entitit ten Verfasser Typ Format Sprache sowie Autor Publisher Document_Type
124. it diesen beiden Parametern ein LicenceSessionInfo Objekt von der Datenbankschnittstelle an Dieses Objekt besitzt folgende Methoden freeURL Gibt an ob es sich um ein ungesch tztes Dokument handelt isSessionKeyValid Liefert true zur ck wenn der Session Key noch g ltig ist isFirstClickSet Hat der User das Dokument angefangen zu lesen so liefert diese Methode true zur ck e isLicenceValid Gibt an ob die Lizenz noch g ltig ist Wenn der User keinen Zugriff auf das Dokument hat dann liefert die Datenbankschnittstelle eine Exception zur ck und das Servlet sendet dem Server eine entsprechende Nachricht Wurde jedoch keine Exception geworfen so kann anhand des LicenceSessionInfo Objektes der Zustand der Lizenz berpr ft werden Wenn beispielsweise die Lizenz noch g ltig ist die Session ID jedoch nicht dann wird vom Servlet ein Login Formular zum Client gesendet um eine neue Session ID zu erstellen Vorher m ssen jedoch die von der Datenbankschnittstelle angeforderten Daten gesichert werden Dies geschieht ber einen Hashtable in dem sowohl die URI als auch das LicenceSessionInfo Objekt unter einer bestimmten Nummer abgelegt werden Diese Num mer wird dem Formular als Parameter mitgegeben um die Daten sp ter wieder auslesen zu k nnen Denn das Servlet bernimmt auch die Abarbeitung des Login Formulars Hierbei wird der User und sein Passwort ber die Datenbankschnittstelle berpr ft War die Eingabe korrekt so w
125. jahr und die Ausgabe frei eingegeben werden Desweiteren kann eine Auswahl des Verlages des 110 KAPITEL 6 AUTHORING KOMPONENTE Formates des Typs und der Sprache ber Combo Boxen erfolgen Die Inhalte der Combo Boxen sind mit den aktuell in der Datenbank enthaltenen Daten identisch Um einem Dokument also einen neuen Verlag zuzuordnen muss dieser vorher in der Datenbank bekannt sein Dies geschieht ber das Datenbankfenster f r Verlage Genauso verh lt es sich mit den anderen Daten die ber Combo Boxen ausgew hlt werden k nnen Um diese Daten zu speichern muss die Schaltfl che Speichern gedr ckt werden Sollen die zuletzt gespeicherten Werte in dem Fenster angezeigt werden muss die Schaltfl che Verwerfen gedr ckt werden 6 3 2 5 Artikel Inhalte Im Fenster f r die Artikel Inhalte Abbildung 6 29 k nnen die zu einem Dokument geh renden Urls eingetragen werden Im oberen Teil des Fensters ist eine Tabelle mit den Urls des Dokumentes sichtbar Diese Tabelle hat zwei Spalten In der ersten wird angezeigt ob die URL frei oder kostenpflichtig ist In der zweiten wird die Adresse der URL ab dem in den Shop Einstellungen gew hlten Root Verzeichnis angezeigt Mit der Maus und Tastatur k nnen eine oder mehrere Eintr ge ausgew hlt werden Mit der rechten Maustaste kann ein Kontextmen ge ffnet werden Hier hat man die Auswahl zwischen e Alles Auswaehlen Alle Eintr ge werden markiert e Auswahl aufheben Alle Markie
126. kationen verantwortlich 2 4 REALISIERUNG 11 e mittels des Document Managers kann der Anbieter Kurzbeschreibungen der Dokumente bibliographische Daten Inhaltsverzeichnis Leseprobe Cover anfertigen bzw entspre chende Verweise in Form von URLs angeben Die Dokumente selbst setzen sich aus einer Menge von URLs zusammen die ebenfalls mit Hilfe des Document Managers spezifiziert werden k nnen e der Offer Manager erm glicht das Anlegen von Angeboten e ber den Payment Manager lassen sich unterschiedliche Zahlungsverfahren Bankeinzug Kreditkarte eCash CyberCash und Kundenkonto selektieren die vom iShop akzeptiert werden e mit dem Customer Manager k nnen die Kundendaten gepflegt werden e und mit Hilfe des Licence Managers kann sich der Anbieter eine bersicht ber die ver kauften Lizenzen verschaffen 2 3 5 Web Komponente Der eigentliche iShop aus Kundensicht wird durch die Komponente DDS Web repr sentiert Sie ist als Java Servlet realisiert das auf Basis der Kundeninteraktionen und der aktuellen Inhalte der Datenbank dynamisch den HTML Code f r die Ausgabe als WWW Seite generiert Damit ist der iShop ber Standard WWW Browser f r eine gro e Masse zug nglich Die Komponente DDS Web unterst tzt im wesentlichen die folgenden Funktionalit ten e Registrierung neuer Kunden e Anmeldung bereits registrierter Kunden e Gastzugang e Suche attributierte Suche in den Dokumentbeschreibungen e Navigation i
127. lassenbibliothek muss allerdings in jedem Fall in der Variable CLASSPATH auftauchen Die Definition von Variablen unter den ver schiedenen Betriebssystemen k nnen in den entsprechenden Handb chern zum Betriebssystem nachgeschlagen werden 6 3 2 Erl uterung der einzelnen Fenster In den folgenden Unterkapiteln werden der Aufbau die Benutzung und die Funktionen der einzelnen Fenster genauer erl utert 6 3 BENUTZUNGSHANDBUCH 105 6 3 2 1 Das Hauptfenster Das Hauptfenster des Authoring Tools ist wie der Name bereits vermuten l sst die zentra le Schnittstelle zwischen Benutzer und Programm Vom Hauptfenster aus ist es m glich alle Funktionen zu erreichen die n tig sind um den Datenbestand des WebShops zu erstellen und zu verwalten Das Hauptfenster teilt sich in mehrere Bereiche die nachfolgend beschrieben sind Abgebildet ist das Hauptfenster in Abbildung 6 23 SA WebShop Authoring Tool EN Px BB gt so C Romane ffe Goldfinger Der unsich J Geschichten Fj Gedichte Lexika 7 Musik o Bilder CH Ordner 5 Artikel Inhalte aktualisiert Abbildung 6 23 Das Hauptfenster des Authoring Tools Wie bei grafischen Oberfl chen blich befindet sich oben im Fenster eine Men Leiste ber welche die einzelnen Funktionen des Programms erreichbar sind Unter dem Men befindet sich eine Symbol Leiste die die am h ufigsten verwendeten Befehle bereit stellt Zu jedem Symb
128. lich begrenzt damit sich nicht mehrere User eine Lizenz teilen k nnen Sollten mehrere User dieses doch versuchen so wird nach einer bestimmten Zeit in unserem Beispiel nach 30 Minuten eine neue Session ID generiert die dann nur einem User zur Verfiigung steht es sei denn er stellt den Link mit der neuen Session ID wieder den anderen Usern zur Verfiigung Damit ist jedoch ausgeschlossen dass jemand einen g ltigen Link im Internet zur Verf gung stellt weil er dadurch das Risiko eingeht f r eine Lizenz bezahlt zu haben die er selber nicht komplett ausnutzen kann Falls die Session ID nicht in der Datenbank enthalten ist war sie nie einem Dokument zugeordnet und damit nie g ltig In diesem Fall wird eine BadFitException vom Datenbankwrapper gewor fen Um dem User mitzuteilen dass er mit dieser Session ID nicht an sein lizensiertes Dokument kommen kann sendet das Security Servlet den String BadFitFehler per Socket Verbindung an das C Modul welches dadurch weiss welche Ausgabe auf dem Browser des Users durchgef hrt werden muss 72 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE Frage Ist die aktuelle Session ID noch giiltig bzgl der 30 Minuten Grenze Antwort Ja die aktuelle Session ID Antwort ist noch beziiglich der Nein die aktuelle Session ID ist 30 Minuten Grenze giitig nicht mehr giitig Aktion Dem C Modul sagen da die Seite dargestellt werden kann Frage Ist der first_click geset
129. m Eintragen eines neuen Datensatzes in eine Tabelle Konstruktoren public InvalidWriteIDException String msg int iD public InvalidWriteIDException String msg String sid Methoden public String getSessionID Liefert die ung ltige Session ID public int getID Liefert die ung ltige ID public String getMessage Liefert eine Beschreibung des Fehlers 3 3 REALISIERUNG 45 3 3 Realisierung 3 3 1 Zeitliche Vorgehensweise bei der Realisierung Anforderungsanalyse und Design F r die Realisierung der DDS DB Komponente wur den zun chst die erforderlichen ER Modelle in Abstimmung mit den anderen Gruppen erstellt und in ein relationales Datenbankschema umgesetzt Soweit es zu diesem Zeit punkt m glich war wurden bereits die Attribute zu den Relationen bestimmt In dieser Phase wurde das Tool ERWin Platinum unter Windows NT eingesetzt um schnelle Anpassungen an den ER Modellen bzw relationalen Schemata vornehmen zu k nnen Anhand typischer Anwendungsf lle und Szenarios wurden unterschiedliche Methoden f r den Zugriff auf die Datenbank identifiziert In einem weiteren Schritt konnten einige hnliche Methoden die von unterschiedlichen DDS Komponenten ben tigt wurden so in bereinstimmung gebracht werden dass eine mehrfache Implementierung vermieden werden konnte M gliche Fehler die beim Zugriff auf die Datenbank auftreten k nnen werden durch speziell implementiert Java Fehler bzw Ausnahme Klassen behandelt Die Ide
130. m Standard Internet Dateien HTML PDF etc handelt die von einem Standard Internet Server Apache bereitgestellt werden Aufgrund dieser Standards gibt es viele M glichkeiten das Laden von Dokumenten durchzuf hren ber ein eigenes Client Server System welches eine propriet re Schnittstelle besitzt die nur bestimmten Software Entwicklern zug ngig ist kann man die Nutzung solcher Programme unterbinden Niemand w re in der Lage an Dokumente zu gelangen ohne das spezielle Client Programm zu benutzen weil alle anderen Client Programme aufgrund der propriet ren Schnittstelle nicht in der Lage sind mit dem Server auf dem die Dokumente liegen zu kommunizieren 5 3 ANALYSE UND PROBLEMBETRACHTUNG DER UNTERSCHIEDLICHEN SICHERHEITSTECHNIKEN69 4 Die Dokumente selbst verschliisseln Eine Alternative zur Verhinderung des Herunterladens der Dokumente besteht in der Verschliisselung der Dokumente Wiirde jedes Dokument verschliisselt so ware es nur mit einem speziellen Client Programm bzw einem PlugIn auf Client Seite m glich die Dokumente zu dekodieren und zu lesen Das bedeutet dass zwar jeder Dokumente komplett in kiirzester Zeit vom Server herunterladen sie aber nicht lesen kann sofern er sie nicht ordnungsgem d h mit einer g ltigen Lizenz ber einen speziellen Client bzw einen Client mit speziellem PlugIn heruntergeladen hat 5 Die Dokumente verkaufen Anstelle die Dokumente nur zeitlich befristet zum Laden und Lese
131. n Status einer Transaktion Parameter phPayld Identifaktionsnummer der zu untersuchenden Transaktion Parameter login Die Login Daten des Shops R ckgabewert ist 1 wenn es sich um einen Zahlungsaufforderung handelt 2 bei einer gebuchten Zahlung Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException Ubergabeparameter sind inkonsistent Ausnahme TransactionDoesNotExistException Keine Transaktion zur phPayld vor handen Ausnahme InternalDbifError Datenbankfehler e int getErrorStatus int phPayld Login login Beschreibung Liefert den Fehlerstatus einer Transaktion Parameter phPayld Identifikationsnummer der zu untersuchenden Transaktion Parameter login Die Login Daten des Shops R ckgabewert ist 0 wenn kein Fehler vorlag ungleich 0 sonst Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException bergabeparameter sind inkonsistent Ausnahme TransactionDoesNotExistException Keine Transaktion zur phPayld vor handen Ausnahme InternalDbifError Datenbankfehler e double getBalance int customerld Login login Beschreibung Liefert zu einem Kunden den Kontostand Parameter customerld Identifaktionsnummer des Kunden Parameter login Die Login Daten des Shops R ckgabewert Der Betrag des Kontostands Ausnahme RemoteException Ein Fehler in der RMI Verbindung 52 KAPITEL 4 PAYMENT KOMPONENTE Ausnahme IllegalParameterException bergabepar
132. n den Produktkategorien Klassifikation e Anzeige von Dokumentbeschreibungen e Lizenzbestellung Einzelbestellung und Warenkorb inklusive Bezahlung mittels un terst tzter Zahlungsverfahren des iShops e bersicht ber die aktuellen Lizenzen eines Nutzers e Zugriff auf die hypermedialen Dokumente 2 4 Realisierung Das Gesamtprojekt wurde in f nf Gruppen aufgeteilt die die oben genannten Komponenten DDS Authoring DDS DB DDS Payment DDS Access und DDS Web implementieren sollten Die Schnittstellen zwischen den einzelnen Gruppen wurden als Java Klassen realisiert wobei die zentrale Schnittstelle eigentlich f r alle Komponenten die Anbindung an die Datenbank 12 KAPITEL 2 DAS DDS SYSTEM ist Hierzu wurde die Klasse webshop dbif DB_Access von der DDS DB Gruppe zur Verfiigung gestellt die die Methoden fiir den Zugriff auf den Datenbestand der Datenbank realisiert Der Zugriff auf die Komponente DDS Payment wurde ber die Klasse payment Payment Handler den sogenannten Payment Handler realisiert der als RMI Client die Kommunikation mit der DDS Payment Komponente iiber eine RMI Verbindung herstellt Die Komponenten DDS Access und DDS Web benutzen sowohl die Datenbank Schnittstelle als auch den Payment Handler Client um an die entsprechenden Daten aus der Datenbank bzw vom PaymentHandler zu gelangen Die Komponente DDS Authoring benutzt die Datenbank Schnittstelle um die eingegebenen Daten in die Datenbank zu schreiben bzw um
133. n k nnen Exceptions auftreten die von den beiden Methoden des Interfaces weitergegeben werden und somit von anderen Methoden abgefangen werden m ssen Die Motivation f r die Realisierung des Holders mittels eines Interfaces ist die Flexibilit t der Datenstruktur Im Webshop werden die zu einem Dokument geh renden Infor mationen auf vier Holder verteilt DetailHolder AuthorHolder OfferHolder und UrlHolder siehe Abbildung 6 1 1 Der DetailHolder kapselt alle Informationen eines Dokumentes die eine allgemeine Be schreibung des Dokumentes darstellen Hierzu geh ren unter anderem der Titel die Be schreibung die ISBN der Verlag und das Erscheinungsjahr Der DetailHolder ist eine direkte Unterklasse von Object und erm glicht einen Zugriff auf die Attribute mittels Get und Set Methoden 2 Der AuthorHolder enth lt alle Autoren zu einem Dokument 3 Der OfferHolder enth lt alle Angebote zu einem Dokument 4 Der UrlHolder enth lt alle Urls zu einem Dokument Die letzten drei Holder unterscheiden sich von dem DetailHolder konzeptionell dadurch dass sie eine Unterklasse der Klasse Vector sind und somit alle Methoden zum Zugriff auf die ent haltenen Elemente von der Oberklasse erben Es lassen sich also zwei Typen von Holder bei dieser Realisierung des Webshops unterscheiden Holder mit Informationen die h ufig im glei chen Kontext stehen aber einen unterschiedlichen Typ besitzen und Holder die eine Liste von gleichen Informationst
134. n kontaktiert und generiert je nach gew hltem Zahlungsverfahren eine Zahlungsauf forderung f r den Kunden Die Zahlungsaufforderung wird in einer Datenbank gespeichert Beim Bezahlen durch Kunden nimmt der PaymentHandler die Zahlung entgegen und verifiziert diese Ist der Bezahlvorgang erfolgreich wird der in der Datenbank gespeicherte Vorgang Transak tion als bezahlt gekennzeichnet In welcher Form der PaymentHandler die Zahlung entgegen nimmt h ngt von dem gew hlten Zahlungssystem des Kunden ab Der PaymentHandler soll mehrere DDS verwalten k nnen Hierf r l uft der PaymentHandler als Server auf einem separaten Host Ein DDS arbeitet als Client des PaymentHandler und kann dessen Dienste nach erfolgreicher Authentifizierung nutzen Zur Realisierung des Client Server Komponente dient die RMI Technologie aus dem Sun JDK Beispielhaft werden die Zahlungsverfahren Kundenkonto Account Bank berweisung Kredit karte ECash und CyberCash implementiert Bei CyberCash und ECash handelt es sich um sogenannte elektronische Zahlungsverfahren die eine unmittelbare bertragung von Geldbe tr gen erm glichen Das Kundenkonto ist kein Zahlungsverfahren im eigentlichen Sinne Das Kundenkonto bietet sich an wenn kein elektronisches Zahlungsverfahren zur Verf gung steht 49 50 KAPITEL 4 PAYMENT KOMPONENTE Es kann in dem Fall mittels eines herk mmlichen Zahlungsverfahrens z B Bankiiberweisung ein Geldbetrag auf das Kundenkonto tibertr
135. n sofern Sie einen Computer mit einem Betriebssystem und einem Standard Browser mit eingeschaltetem JavaScript Frame Unterst tzung und dem Akzeptieren von Cookies zur Verf gung haben brauchen Sie nur noch einen Provider der Ihnen den Zugang zum Internet zur Verf gung stellt Sind diese Bedingungen alle erf llt k nnen Sie mit Hilfe des Browsers die jeweilige URL des WebShops eingeben und Sie landen auf der Startseite des Online Shops 7 3 2 2 Die verschiedenen Layouts Von der DDS Web Gruppe wurde entschieden drei verschiedene Layouts zu erstellen damit dem Betreiber des DDS Systems zumindest eine kleine Auswahl verschiedener grafischer Shop darstellungen zur Verf gung steht An dieser Stelle finden Sie jetzt die n heren Unterschiede der einzelnen Layouts die Sie als Benutzer beachten m ssen 126 KAPITEL 7 DDS WEB KOMPONENTE Layout 1 PO feo Lib algemeins Gesch ftshedingungen a Cra a Elash er Abbildung 7 3 Das Layout 1 Das Layout 1 Abb 7 3 teilt sich ebenso wie die anderen beiden Layouts in vier Frames auf Oben links befindet sich das Logo des Shops In diesem Frame gibt es sonst keine weiteren Interaktionsm glichkeiten mehr Im linken unteren Frame befindet sich die Navigationsleiste um durch die einzelenen Dokument kategorien Abb 7 4 die vom aktuellen Online Shop angeboten werden zu navigieren Der Aufbau der Dokumentkategorien ist mittels einer Verzeichnisbaumstruktur realisiert Zu Beginn bek
136. n zur Verf gung zu stellen werden sie komplett zu einem entsprechenden Preis zum Verkauf angeboten Das w rde eine Verschl sselung oder Erschwerung des kompletten Herunterladens der Dokumente berfl ssig machen 6 Umbenennung der Dateinamen beim Herunterladen Wenn man die Namen der Dateien die ber den Klick auf einen Link angefordert werden umbenennt erh lt der User das gesamte Dokument aber er kann nicht auf der eigenen Festplatte zu Hause darauf navigieren Das liegt daran dass die Namen in den Links nicht mehr mit den Namen auf der Festplatte korrespondieren Diesen Zustand wieder herzustellen w rde die Umbennung der Dateien auf der Festplatte voraussetzen d h der User muss zu jedem Link die entsprechende Datei finden und sie entsprechend dem Link zur ck umbenennen Dies ist allerdings bei Dokumenten die aus mehreren hundert Dateien bestehen sehr aufwendig 5 3 Analyse und Problembetrachtung der unterschiedlichen Si cherheitstechniken Es gibt mehrere Probleme die beim weiteren Vorgehen betrachtet werden m ssen und die M glichkeiten der weitergehenden Sicherheitstechniken einschr nken 1 Der User darf durch die Technik nicht beeintr chtigt werden Der User soll m glichst nicht merken welche Techniken im Hintergrund arbeiten Er zahlt Geld daf r dass er Dokumente lesen darf Mit Installationsma nahmen sollte er nicht bel stigt werden weil ihn das im Zweifelsfall davon abh lt den Webshop zu benutzen 2
137. nderungen dieses Editors benachrichtigt wird void removeStatusListener deregistriert einen StatusListener damit dieser keine Status Meldungen von diesem Editor mehr erh lt void fireStatusChanged benachrichtigt alle registrierten StatusListener dass eine Status Anderung aufgetreten ist boolean add VisibilityListener verkn pft eine ButtonModel mit einem Schl ssel da mit dieses Modell gegebenenfalls benachrichtigt wird falls eine Sichtbarkeits Ande rung eines Editor Fensters aufgetreten ist boolean remove VisibilityListener entfernt die Verkn pfung zwischen einem Schl ssen und einem ButtonModel damit dieses nicht mehr bei Sichtbarkeits Ande rungen benachrichtigt wird notify VisibilityListeners benachrichtigt alle Button Modelle die einem bergebenen Schl ssel zugeordnet sind ob das diesem Schl ssel zugeordnete Fenster aktuell sichbar ist 6 2 IMPLEMENTIERUNG 101 Klasse AbstractThumbnailModel Das AbstractThumbnailModel stellt das zugrundelie gende Modell eines J Thumbnails dar J Thumbnails sind die kleinen Symbole mit der die Dokumente in der Datenbank repr sentiert werden Die Methoden der Klasse lauten e void addChangeListener registriert einen ChangeListener der bei Anderungen am Modell benachrichtigt werden soll e void removeChangeListener deregistriert einen ChangeListener damit dieser nicht mehr bei Anderungen am Modell benachrichtigt wird e void fireStateChanged benachrichtigt alle regis
138. nen Rechte fiir Dateizugriffe gesetzt werden und Ports gegen Verbindungen geschiitzt werden Seit Java 1 2 muss diese Datei fiir RMI verwendet werden 64 4 4 2 Das Administrations Tool zur Transaktions Verwaltung Seas TransactionToo d Saldo 2 KAPITEL 4 PAYMENT KOMPONENTE El Sep 19 2 Kredit 0 0DM Transaktionen ShopID KundenID Datum der Forderung Datum der Zahlung Verwendungszw Betrag in DM Zahlungssystem OrgID Fehler Status T 13 THU jar Ururu TAU Jan UL OIDO SHOMDEST Troun Torg Kemer OTE x 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen D i i 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc l BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan 01 01 00 shortDesc 1 BankTransfer cOrg keiner offen 1 13 Mon Sep 18 18 44 2 Thu Jan 01 01 00 shortDesc l Account testOrg keiner offen 1 13 Thu Jan 01 01 00 00 Thu Jan
139. nen unterhalb des For mulars noch mal in einem kurzen Text mitgeteilt wieviel DM von Ihrem Kreditkartenkonto abgebucht werden Ein Mausklick auf Bestellen f hrt Ihre Bestellung aus sofern keine weite ren Probleme aufgetreten sind Bestellung per Kundenkonto Im oberen Bereich werden Ihre Bestelldaten angezeigt und Sie haben die M glichkeit die Zahlungsmethode noch mal zu ndern oder anzupassen F r die Zahlung per Kundenkonto m ssen Sie keine weiteren Daten eingeben sondern lediglich die folgenden Bedingungen erf llen e 1 Sie m ssen ein Kundenkonto besitzen und e 2 auf dem Kundenkonto muss gen gend Geld vorhanden sein um den Rechnungsbetrag bezahlen zu k nnen Ggf m ssen Sie vor der Bestellung das eigene Kundenkonto aufladen Desweiteren wird Ihnen unterhalb des Formulars noch mal in einem kurzen Text mitgeteilt wieviel DM von Ihrem Kundenkonto abgebucht werden Ein Mausklick auf Bestellen f hrt Ihre Bestellung aus sofern keine weiteren Probleme aufgetreten sind 148 KAPITEL 7 DDS WEB KOMPONENTE Bestellung per ECash Im oberen Bereich werden Ihre Bestelldaten angezeigt und Sie haben die M glichkeit die Zahlungsmethode noch mal zu ndern oder anzupassen Fiir die Zahlung per ECash miissen Sie keine weiteren Daten eingeben sondern Sie ben tigen eine eigene ECash Wallet auf Ihrem Rechner um die Transaktion ausfiihren zu k nnen Fiir n here Informationen siehe den Teil des Berichts der Payment Gruppe De
140. nfach auf die Bitte ausw hlen Auswahlbox wobei ein Pop Up Men aufklappt in dem Sie eine dieser Zahlungsmethoden ausw hlen k nnen Hierbei ist noch anzumerken dass es m glich ist dass nicht alle genannten Zahlungsme thoden vom WebShop angeboten werden 136 KAPITEL 7 DDS WEB KOMPONENTE Bestellen Ein Mausklick auf den Bestellen Button f hrt Sie auf die Bestellseite wo ggf noch weitere Eingaben verlangt werden Falls Sie noch nicht angemeldet sind m ssen Sie sich zuvor erst anmelden dazu erscheint das weiter oben erw hnte Login Fenster im Hauptf Tame 7 3 BENUTZERHANDBUCH 137 Benutzerdaten anlegen ndern Ihre Daten bearbeiten Wenn Sie hr Passwort ndern wollen tragen Sie das neue Passwort bitte zur Sicherheitin beide Passwortfelder ein IhrUsemane micha Thr Passwort Passwort wiederholen Name Klein Yomame Michael Strasse Nr Nedderend 52 ostletzahl Ort 261 Oldendurg ad Deutschland mal michael klein informetik uni o Mi 8850495 WI Reset Wetter Abbildung 7 12 Das Benutzerdaten Fenster Hier Abb 7 12 k nnen Sie sich gegebenenfalls anmelden oder Ihre Nutzerdaten pflegen sowie Thr Kundenkonto aufladen und sich einen Kontoauszug ausgeben lassen Sie k nnen allerdings nicht Ihr Login ndern dieses kann von Ihnen nur einmal w hrend der Anmeldung fiir den iShop gew hlt werden Ihr Passwort k nnen Sie aber jederzeit ndern Hilfe
141. ngen e Bezahlungs Einstellungen In den generellen Einstellungen die in Abbildung 6 24 zu sehen sind k nnen allgemeine Eintr ge vorgenommen werden wie der Name des Shops und des Besitzer Weiter kann eine Adresse eine Telefon Nummer und eine Fax Nummer eingetragen werden unter welcher der Besitzer zu erreichen ist Mit einem Klick auf den Button neben dem Anzeigefeld vom Root Verzeichnis wird ein Dateimanager gedffnet Dort kann das Root Verzeichnis ausgew hlt werden Dieses Verzeichnis ist das oberste Verzeichnis des Shops Wird der Shop auf einen anderen Rechner portiert muss eventuell nur dieser Pfad angepasst werden die friihere Verzeichnis Struktur kann dann weiter verwendet werden Klickt man auf den Button neben dem Anzeigefeld von AGBs wird ebenfalls ein Dateimanager ge ffnet Hier kann dann eine Datei ausgew hlt werden die die allgemeinen Geschaftsbedingungen beinhaltet ESS ari eI ex Generell Shop Name webshop Besitze r TooLib Addresse TooLib Adresse Telefon 0123 456 789 Fax 0123 456 790 Root Verz home gt AGBs agb txt gt Verwerten OK Abbildung 6 24 Die generellen Shop Einstellungen In den Internet Einstellungen kann die Root Url also der Teil der Browser Url die vor die Dokument Url gesetzt werden mu um eine g ltige Adresse zu erhalten eingetragen werden Weiter k nnen die Startseite die Email Adresse sowie die Adresse des S
142. ngsmethode Kundenkonto aufgeladen werden kann 7 4 KLASSENSTRUCKTUREN 149 7 4 Klassenstruckturen e webshop servlet FormContent interface String toHtml e webshop servlet SelectorEntry interface String getldAsString String getName String toHtml boolean e webshop servlet FormSelector interface void setValue String void setName String void setSize int Abbildung 7 20 Die Interfaces e webshop servlet BrandSelector implements FormContent e webshop servlet CountrySelector implements FormContent e webshop servlet CreditCardSelector implements FormContent e webshop servlet RangeSelector implements FormContent Abbildung 7 21 Die Klasssen die FormSelector implementieren e webshop servlet DefaultSelectorEntry implements SelectorEntry e java util Vector e webshop servlet Countrys e webshop servlet Credit CardTypes e webshop servlet ShopletData e webshop servlet ShopletException Abbildung 7 22 sonstige Klasssen 150 KAPITEL 7 DDS WEB KOMPONENTE e webshop classes BankAccount e webshop servlet BankA ccountFormContent implements FormContent BankAccountFormContent HttpServletRequest String toHtml e webshop classes Credit Card e webshop servlet Credit CardFormContent implements FormContent CreditCardFormContent HttpServlet Request String toHtml e webshop servlet CustomerForm implements FormContent CustomerForm HttpServlet Request CustomerForm webshop classes Customer Cust
143. ntifikation dieser Fehler fand zum gr ten Teil erst w hrend der Implementierung statt Ergebnis der Designphase ist die Umsetzung der DDS DB Komponente durch im wesent lichen zwei Java Klassen eingebunden in das Paket webshop dbif Die eigentliche Schnitt stelle bildet die Klasse DB_Access Diese benutzt die Klasse DB Mediator Der DBMediator verwaltet einen Pool von freien Connection Objekten Verbindungen zur Datenbank in Form eines Stapels Stack Dieses Konzept wurde aus dem eVerlage System des OFFIS bernommen Der Vorteil der Verwendung eines solchen Mediators liegt haupts chlich in einem Geschwindigkeitsgewinn Der Aufbau einer Datenbankverbindung beansprucht u U einige Zeit Daher ist es ung nstig f r jede Anfrage oder Transaktion eine eigene Verbin dung aufzubauen Der DBMediator l st dieses Problem dadurch dass er bereits bei seiner Instanziierung eine Anzahl an Datenbankverbindungen ffnet Eine Anwendung oder ein Thread in unserem Fall eine Methode aus der DB Schnittstelle DB_Access kann dann bei Bedarf eine bereits ge ffnete Verbindung anfordern und nach Beendigung seiner Anfrage wieder freigeben Steht keine freie Verbindung mehr zur Verf gung wird der Anfragende Prozess solange angehalten Implementierung Als Entwicklungsplattform kamen die Sun Workstations des OFFIS Softwarelabors mit dem Betriebssystem Solaris sowie das JDK 1 2 von Sun zum Einsatz Als DBMS wurde Oracle genutzt auf herstellerspezifische Erwei
144. ntragen z B Wohnortwechsel desweiteren k nnen Sie an dieser Stelle jederzeit Ihr Passwort ndern Sie k nnen allerdings zu keinem Zeitpunkt mehr Ihr Login ndern Lizenzen anzeigen Zeigt Ihre Momentan g ltigen Lizenzen an und sofern Sie auf den Link f r alle Lizenzen klicken auch alle Ihre Lizenzen Kundenkonto aufladen Unter diesem Link haben Sie jederzeit die M glichkeit Ihr Kundenkonto aufzuladen Logout Hier k nnen Sie sich als der aktuelle Benutzer ausloggen falls Sie den Shop verlassen wollen oder aber nur Ihren Benutzer ndern wollen Warenkorb Der Warenkorb zeigt alle sich im Warenkorb befindlichen Dokumente an Sie k nnen dort noch einige Eintr ge t tigen und von dort aus dann Ihre Lizenzen kaufen 7 3 BENUTZERHANDBUCH 133 Suchen Ein Mausklick auf diesen Link f hrt Sie zur Suchseite wo Sie die M glichkeit haben nach einem Suchbegriff im Datenbestand suchen zu lassen Hilfe Die Hilfe ruft ein Fenster auf in dem die Hilfe zum aktuellen Fenster angezeigt wird das heisst die Hilfe die zu dem Inhalt des rechten unteren Teils des Fensters geh rt wird angezeigt ShopInfo Mit diesem Men punkt wird die ShopInfo Seite aufgerufen Dies ist entweder eine Seite die vom Betreiber erstellt wurde und seinen Vorstellungen entspricht oder aber es wird die Seite eingeladen die von einem Servlet erstellt wird und die n tigsten Informa tionen ber den Shop enth lt 134 KAPITEL 7 DDS WEB KOMPONENTE 7 3 2
145. ntsprechenden Tabelle der Datenbank die Attribute name und bankConnection vorhanden 4 3 1 5 Transaction Transaction repr sentiert eine Zahlung und besitzt folgende Attribute phPayld brandId custo mer_id shopld taStatus errorStatus cOrgld shortDesc invoicedAt invoicedAmount paidAt paid Amount und settledAt 4 3 1 6 PaymentCustomer Die Klasse PaymentCustomer stellt einen Kunden des Payment Systems dar Wie in der ent sprechenden Datenbank Tabelle sind die Attribute customerld balance credit shopId und shop CustomerId vorhanden 4 3 1 7 Brand Brand identifiziert ein Zahlungssystem durch die ID brandId und den jeweiligen Namen brand Name 4 3 ARCHITEKTUR UND IMPLEMENTIERUNG DES PAYMENT SYSTEMS 59 4 3 1 8 IllegalParameterException CustomerDoesNotExistException Transac tionDoesNotExistException TransactionFailedException Diese Exceptions sind von der Klasse Exception abgeleitet und besitzen nur die geerbten Attri bute und Methoden 4 3 2 Implementierung der Clients f r die Zahlungsverfahren Alle von der abstrakten Klasse PaymentClient abgeleiteten konkreten Zahlungsverfahren Clients implementieren die Methode invoiceRequest Die vom jeweiligen Zahlungsverfahren abhangige Implementierung soll im folgenden beschrieben werden 4 3 2 1 AccountPaymentClient Die Klasse AccountPaymentClient realisiert die Zahlung ber ein h ndlerspezifisches Kunden konto In der Methode invoiceRequest wird die zuv
146. odul sendet Der String ArstClick ist die Information f r das C Modul dass es sich um einen first_click Request handelt und es den User nach seinem Login und Passwort fragen muss Danach ruft das C Modul das Security Servlet mit dem String firstClick dem Login Passwort und dem Index in der Hashtable auf 5 4 ENTWURF 75 Frage Ist die Lizenz noch giiltig Antwort Ja die Lizenz ist noch giiltig Antwort Nein die Lizenz ist nicht mehr g ltig Aktion Das Security Servlet sendet Aktion den String lizenzabgelaufen Den Standard Request per Socket Verbindung an bearbeiten das C Modul Abbildung 5 5 Ist die Lizenz noch giiltig Wurde der first_click schon gesetzt die Session ID jedoch als abgelaufen angesehen so muss berpr ft werden ob die Lizenz noch g ltig ist denn nur in diesem Fall darf eine neue Session ID generiert werden Ist die Lizenz nicht mehr g ltig so muss der User eine neue Lizenz kaufen wenn er weiterhin auf das Dokument im Webshop zugreifen m chte Damit der User dies erf hrt schickt das Security Servlet den String lizenzabgelaufen an das C Modul welches den User mit einer Ausgabe auf seinem Browser dar ber informiert Ist die Lizenz noch g ltig dann muss der User sich authentifizieren damit er eine neue Session ID generiert bekommt mit der er weiter in dem Dokument navigieren kann Daf r sendet das Security Servlet den String standard
147. oiceResult zur ckgeliefert Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException bergabeparameter sind inkonsistent Ausnahme Customer DoesNot ExistException Kunde ist nicht vorhanden Ausnahme PaymentFailedException Bezahlvorgang konnte nicht durchgef hrt wer den Ausnahme InternalDbifError Datenbankfehler e boolean transactionSettled int phPayld Login login Beschreibung Informiert ob ein Bezahlvorgang Transaktion abgeschlossen ist Parameter phPayld Identifaktionsnummer der Transaktion Parameter login Die Login Daten des Shops Riickgabewert true wenn die Bezahlung gebucht ist sonst false 4 2 SCHNITTSTELLEN 53 Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException Ubergabeparameter sind inkonsistent Ausnahme TransactionDoesNotExistException Keine Transaktion zur phPayld vor handen Ausnahme InternalDbifError Datenbankfehler e void insertPaymentCustomer int customerld Login login Beschreibung F gt einen neuen Kunden in das Bezahlsystem ein Parameter phPayld Identifaktionsnummer des Kunden Parameter login Die Login Daten des Shops Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException Ubergabeparameter sind inkonsistent Ausnahme InternalDbifError Datenbankfehler e boolean bookPayment int phPayld Date paidAt double amount Login login Beschreibung Eine Bezahlung wird
148. ol geh rt ein Eintrag des Programm Men s welcher durch dr cken des Symbols aufgerufen wird Das Programm Men unterteilt sich in die Bereiche Datei Bearbeiten Fenster Optionen und Jeder Bereich stellt verschiedene Men Eintr ge bereit welche die einzelnen Funktionen des Authoring Tools aufrufen Men Eintr ge f r nicht ausf hrbare Funktionen sind ausgegraut ebenso die entsprechenden Symbole in der Symbol Leiste Das Men Dates stellt Men Eintr ge zur Verf gung mit deren Hilfe Artikel und Ordner neu erstellt und entfernt werden k nnen sowie jeweils einen Men Eintrag zum Umbenennen von Ordnern und zum Beenden des Pro gramms das Men Bearbeiten enth lt Men Eintr ge zum Bearbeiteten eines Artikels sowie Men Eintrage zum Verwalten der Datenbank Tabellen f r Autoren Verlage Artikel Typen und Formate sowie Sprachen Das Men Fenster enth lt Men Eintr ge mit deren Hilfe die verschiedenen Programm Fenster ge ffnet und geschlossen werden k nnen Ein Men Eintrag f r ein ge ffnetes Fenster ist mit einem kleinen H kchen versehen Das Men Optionen stellt Men Eintr ge bereit ber welche die Funktionen zur nderung der Programm Optionen zur Festlegung der Einstellungen des WebShops und zur Auswahl eines Layouts f r den WebShop aufgerufen werden k nnen Das Men gibt Informationen zum Authoring Tool 106 KAPITEL 6 AUTHORING KOMPONENTE In der Mitte d
149. omerForm String toHtml String toHTML String thHTML boolean String checkUpdate String checkCreate webshop classes Customer getCustomer void updateCustomer String get void set String e java util Date e webshop servlet DateFormContent implements FormContent DateFormContent HttpServletRequest DateFormContent java util Date DateFormContent String toHtml e webshop servlet FormInput implements FormContent FormInput String String String toHtml void set String e webshop servlet HiddenInput FormInput String String e webshop classes DocumentInfo e webshop servlet DocumentInfoFormContent implements FormContent String toHtml String toHtml boolean e webshop classes SearchCriteria e webshop servlet SearchCriteriaFormContent implements FormContent SearchCriteriaFormContent HttpServlet Request String toHtml e webshop payment Transaction e webshop servlet TransactionFormContent implements FormContent String toHtml e webshop servlet LoginForm implements FormContent FormInput HttpServlet Request String toHtml String getLogin String getPassword void setTarget String Abbildung 7 23 Die Klasssen die FormContent implementieren Kapitel 8 Bewertung und Ausblick Mit dem DDS System haben wir ein System entwickelt das es in seiner derzeitigen Ausbaustufe erm glicht iShops aufzubauen iiber die ohne grofen Aufwand hypermediale Dokument
150. ommen Sie nur die Hauptkategorien angezeigt diese k nnen Sie dann aber durch Anklicken weiter aufklappen Mit den Hauptkategorien sind die Dokumentverzeichnisse gemeint denen kein weiteres Verzeichnis ber gestellt ist So ergibt sich dann eine komplette Baumstruktur durch die verschiedenen Kategorien Klicken Sie auf ein Plus Symbol wird der Baum weiter aufgeklappt klicken Sie auf ein Minus Symbol wird der Baum wieder eingeklappt und wenn Sie direkt auf den Namen einer Kategorie klicken dann wird falls dies noch nicht geschehen ist der Baum weiter aufgeklappt und im Hauptframe erscheint die Dokumentanzeige die alle Dokumente dieser Kategorie auflistet Im rechten oberen Frame befindet sich ebenfalls eine Navigationsleiste Abb 7 5 die sich aber 7 3 BENUTZERHANDBUCH 127 Abbildung 7 5 Die Navigationsleiste von Layout 1 nicht auf den Dokumentbestand bezieht sondern auf die Navigation durch den Web Shop Jeder der in der Navigationsleiste vertretenen Men punkte zeigt im Hauptframe den entsprechenden Inhalt an Die Navigationsleiste stellt folgende Men punkte zur Verf gung ShopInfo Mit diesem Men punkt wird die Shop Informations Seite aufgerufen Dies ist entwe der eine Seite die vom Betreiber erstellt wurde und seinen Vorstellungen entspricht oder aber es wird eine Seite eingeladen die von den Servlets erstellt wurde und die n tigsten Informationen ber den Shop enth lt KundenDaten Wenn der Benutzer auf den Men punkt
151. onach das Dokument nicht mehr ge ffnet werden kann oder das ffnen des Dokuments nur auf eine bestimmte Zeit zu beschr nken Mit hnlichen Verfahren kann auch das Ausdrucken des Dokuments verhindert werden 2 Versteckte Links in HTML Dateien Die Idee dieser versteckten Links ist den User beim illegalen Herunterladen von Dokumenten extrem viel unn tze Daten mitzuschicken die den Download erschweren bzw unendlich machen Dabei werden versteckte Links auf freie Dokumente in die HTML Dateien eingebaut was dazu f hrt dass diese Dokumente mit heruntergeladen werden wenn das eigentlich gew nschte Dokument automatisch heruntergeladen wird Auf eine Zeile Text w rden viele Megabytes an berfl ssigen Daten mitgeladen werden Dies passiert aber nur wenn automatisch das gesamte Dokument per rekursivem Download geladen wird z B mit dem Programm wget Dieses Verfahren ist auf unterschiedliche Weise anwendbar Man k nnte z B aus jedem Satzendezeichen Punkt Ausrufezeichen Fragezeichen etc Einen Link machen der auf ein gr eres freies Dokument verweist z B Selfhtml oder die Java API Wenn diese Verweise Servlet Aufrufe beinhalten w rden w re es sogar vorstellbar immer wieder das gleiche Dokument mit einem anderen Verzeichnisnamen zu verschicken 3 Ein eigenes Client Server System Der Grund weswegen mit Programmen wie wget komplette Dokumente vom Webserver in k rzester Zeit heruntergeladen werden k nnen ist dass es sich u
152. or vom PaymentHandler neu angelegte Trans aktion aus der Datenbank ausgelesen anschlie end werden hieraus Kontostand und m glicher berziehungskredit gelesen Decken Kontostand und Kredit den zu zahlenden Betrag nicht ab so wird ein InvoiceResult Objekt mit der entsprechenden Nachricht NOT_ENOUGH_MONEY zur ckgegeben Ist die Summe ausreichend so wird der Betrag vom Kundenkonto abgezogen Um die Transaktion zu buchen werden die Attribute paidAt paidAmount taStatus und settledAt gesetzt Dann werden Kundendaten und Transaktion ber die Datenbankschnittstelle in der Da tenbank aktualisiert Zur ckgegeben wird ein InvoiceResult Objekt ohne Fehler NO ERROR 4 3 2 2 BankTransferPaymentClient BankTransferPaymentClient ist f r Zahlungen per Bankeinzug zust ndig Da das Payment System jedoch keine entsprechende Schnittstelle integriert um diesen Zahlungsvorgang zu auto matisieren bspw HBCI f hrt die Methode invoiceRequest hier keine weiteren Aktionen durch Das einer offenen Zahlungsaufforderderung entsprechende Transaktionsobjekt wird bereits im Aufruf des PaymentHandlers erzeugt Bei erfolgtem Bankeinzug kann die Buchung dann ber das Transaction Tool erfolgen 4 3 2 3 CreditCardSSLPaymentClient CreditCardSSLPaymentClient kann f r Zahlungen per Kreditkarte benutzt werden Allerdings fehlt auch hier die Automatisierung des Zahlungsvorganges Dieser muss durch den Admini strator des PaymentHandlers initiiert werden und kann dann
153. orgen waren bot es an sich an diese Inhalte jeweils durch spezielle Servlets zu erstellen Dadurch konnte der Sour cecode der einzelnen Servlets relativ kurz und bersichtlich gehalten werden Dadurch mussten aber auch mehrere Servlets implementiert werden die in wesendlichen Teilen bereinstimmen Diese Servlets mussten alle 7 2 ENTWURF UND IPMLEMENTIERUNG 119 1 Die M glichkeit haben auf die kundenspezifischen Daten die in der laufenden Session erzeugt wurden zuzugreifen und diese auch wieder so abzulegen das andere Servlets die in dieser Session noch aufgerufen werden wieder darauf zugreifen k nnen 2 Samtliche fiir die Datenverarbeitung n tigen Parameter vor dem Begin der Datenverarbei tung aus dem HttpRequest auslesen um sicherzustellen das die Verarbeitung nicht wegen fehlender Daten scheitert 3 Die Ausgabe der erzeugten HTML Seite erst nach der kompletten Verarbeitung erzeu gen wodurch verhindert wird das durch einen Fehler in der Verarbeitung eine fehlerhafte HTML Seite ausgegeben wird Um dieses Verhalten fiir alle Servlets sicherzustellen und es doch nicht jedesmal neu auspro gramieren zu m ssen wurde die abstrakte Klasse webshop servlet Shoplet entworfen die den Zugriff auf die kundenspezifischen Daten erm glicht und die Ausgabe der erzeugten HTML Seite bernimmt In den abgeleiteten Klassen welche dann die Servlets sind m ssen zwei Methoden implementiert werden boolean get AllParameters In dieser Me
154. orrekte Lizenz f r das Dokument jedoch ist die Bezahlung noch nicht erfolgt e BadFitFehler Der User hat keine Lizenz fiir das angeforderte Dokument oder der Ses sionkey ist fehlerhaft Daher wird der Zugriff auf das Dokument verweigert Erh lt das Server Plugin eine Zeichenkette die nicht oben aufgefiihrt ist so wird die Bearbeitung der Anfrage abgebrochen Dann wird eine Meldung an den Client gesendet die auf den Fehler im Server Plugin hinweist 82 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE 5 7 Erweiterbarkeit der vorhandenen Sicherheitstechniken Eine Verfeinerung des im System integrierten Lizenz Konzepts k nnte dadurch erreicht werden dass der Schnittstelle zwischen Security Servlet und Server Plugin neue Zeichenketten hinzu gef gt w rden So k nnte beispielsweise der in der Schnittstellenbeschreibung genannte Bad FitFehler noch weiter pr zisiert werden um den User besser dar ber zu informieren warum der Zugriff auf das Dokument verweigert wurde Ein weiterer Ansatzpunkt f r eine Erweiterung der Dokumentenschutz Komponente ist die be fehlsorientierte Arbeitsweise der Socketkommunikation Denn bevor das Server Plugin Daten an das Security Servlet sendet bergibt es eine Befehls Zeichenkette an das Servlet Diese Befehls Zeichenkette besteht zur Zeit nur aus einem a da au er der berpr fung der Lizenz keine weiteren Sicherheitstechniken umgesetzt wurden Sollen dem System weitere Sicherheitskonzepte hinzugef
155. pletten Lizenzen werden angezeigt wenn man auf den Button f r alle Lizenzen klickt Suchen Ein Mausklick auf diesen Link f hrt Sie zur Suchseite wo Sie die M glichkeit ha ben nach einem oder mehreren Suchbegriffen im Dokumentbestand zu suchen Insgesamt k nnen sie in sechs Kategorien suchen Titel Autor Beschreibung Verlag Typ und ISBN Nummer Warenkorb Der Warenkorb zeigt alle sich im Warenkorb befindlichen Dokumente an Sie k nnen von dort noch einige Eintr ge t tigen und von dort aus dann die Lizenzen kaufen Hilfe Die Hilfe wird im Layout 1 durch ein Fragezeichen dargestellt sofern Sie auf dieses Fra gezeichen klicken erscheint in einem neuen Browser Fenster die Hilfe Wobei die Hilfe im Layout 1 abh ngig vom Inhalt des Hauptframes ist befindet sich im Hauptframe der Wa renkorb und Sie klicken auf das Frasgezeichen erscheint ein neues Fenster in dem Ihnen die Hilfe zum Warenkorb angezeigt wird 7 3 BENUTZERHANDBUCH 129 Layout 2 Warenkorb Ikr Worznkorb ist noch leer akzeptiere Zaklengsmethnden co DIN nie DENT Abbildung 7 6 Das Layout 2 Im linken oberen Frame des Layouts 2 Abb 7 6 also dort wo sich das Logo befindet gibt es un terhalb des Logos ein Pop Up Men Auswahl das folgende Auswahlpunkte f r die Navigation innerhalb des iShops zur Verf gung stellt Startseite Mit diesem Men punkt wird die ShopInfo Seite aufgerufen Dies ist entweder eine Seite die vom Betreiber ers
156. r customerld getCustomer Holt ein Costomer Objekt anhand des Logins und des Passwortes public static Customer getCustomer java lang String login java lang String password throws InternalDbifError InvalidLoginException Parameters login das Login des Customers password das Passwort des Customers Returns webshop classes Customer Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidLoginException Es existiert kein Customer zur login password Kombination updateCustomer Aktualisiert die Daten zu einem Kunden 30 KAPITEL 3 DATENBANK KOMPONENTE public static void updateCustomer Customer customer throws InternalDbifError InvalidIDException Parameters customer webshop classes Customer Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Customers ist ung ltig insertCustomer Fiigt einen neuen Customer in die Datenbank ein public static int insertCustomer Customer customer throws InternalDbifError Parameters customer webshop classes Customer Returns Die zugewiesene customer_id PK Throws InternalDbifError Schwerer Fehler in webshop dbif getValidLicences Holt alle noch g ltigen Lizenzen eines Kunden mit der ID customerld Wenn der Kunde keine g ltigen Lizenzen mehr besitzt wird ein leerer Vektor zur ckgegeben G ltige Lizenzen sind dabei solche deren Dauer seit dem ersten Klick bis zur aktuellen Systemzeit noch nicht abgelaufen ist publi
157. r das Men Ansicht das Men Bearbeiten ber ein Popup Men oder ber die Schnellansicht unten rechts im Hauptfenster ge ffnet bzw geschlossen wer den Sollte im Hauptfenster ein Wechsel des aktuell bearbeiteten Objektes erfolgen werden die dargestellten Informationen in den einzelnen Fenstern aktualisiert Authoring Tool Datei Bearbeiten Ansicht Einstellungen Iconleiste Artikelgruppen Artikel in Untergruppel Gruppel Imgl Img2 Img3 Untergruppe Artikell Artikel Artikel3 Gruppe2 EE Img4 Img5 Img6 Gruppe3 Gruppe4 Artikel4 ArtikelS Artikel6 Gruppe5 Statuszeile Schnellansicht Abbildung 6 7 Authoring Tool Hauptfenster mit Objekten Artikell Details Titel Betreff Beschreibung ISBN Verlag Erscheinungsjahr Ausgabe Format Typ Sprache Verwerfen Speichern Abbildung 6 8 Authoring Tool Detail Informationen zu einem Objekt 6 1 ENTWURF Artikell Angebote G ltig Angebote 1 00 DM 2 00 DM 0 50 EUR v 0 99 DM 0 25 EUR Neues Angebot O DM O EUR Verwerfen Speichern Abbildung 6 9 Authoring Tool Angebote zu einem Objekt
158. r keinen Einfluss darauf hat was ihm geschickt wird Aller dings wird f r jeden Meta Refresh Aufruf eine eigene HTML Datei ben tigt weswegen auch dieses Verfahren nicht funktionieren kann Dadurch w rde n mlich der User eine Datei unter dem richtigen Namen in der sich ein Meta Refresh Aufruf befindet geschickt bekommen wel che ihm eine zweite Datei schickt in der die eigentlichen Daten stehen welche einen falschen Dateinamen hat Er bekommt also doppelt so viele Dateien zugeschickt kann aber genauso wie vorher lokal darauf auf seinem Rechner navigieren weil ihn jede Datei mit richtigem Namen automatisch zu einer Datei mit falschem Namen weiterf hrt Zusammenfassend muss gesagt werden dass es sich hier um einen Fehlschlag handelt jedoch um einen Fehlschlag aus dem viele Erkenntnisse gewonnen werden konnten Es wurden neue Erfah rungen mit der Programmiersprache Perl gesammelt und Einsichten ber die Funktionalit t des Apache Webserver gewonnen Auch die Problematik der nicht eindeutigen Dateinamen hat zu neuen Ideen in der Nutzung von Datenbanken gef hrt was also auf lange Sicht hin als kapitales 84 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE Wissen angesehen werden kann Kapitel 6 Authoring Komponente 6 1 Entwurf 6 1 1 Designentscheidung Das zentrale Objekt des Webshops ist das Dokument Zu einem Dokument geh ren eine Vielzahl von Informationen die in irgendeiner Weise auf der Ebene der Programmiersprache repr sentiert
159. r sogar dirket zu bestellen Hierf r sind die Buttons Warenkorb durch Y realisiert und Direkt Bestellen gedacht Konto Anzeige Abbildung 7 18 Das Kundenkonto Fenster Auf der Seite der Kontoanzeige Abb 7 18 werden Ihnen Ihre Transaktionen im WebShop in Form einer Tabelle aufgelistet Nach der Anzeige Ihres Namens und Ihrer Anschrift die aus den Eintr gen Ihrer Kundendaten tibernommen wurden wird Ihnen angezeigt welcher Betrag Ihnen noch auf Ihren Kundenkonto zur Verfiigung steht Im mittleren Abschnitt steht Ihnen ein Formular zum ndern des Zeitraums Ihres Kontoauszugs zur Verf gung falls der vom Programm gew hlte Bereich f r Ihre Belange zu eingeschr nkt ist 7 3 BENUTZERHANDBUCH 143 Wenn Sie den Zeitraum Ihres Kontoauszugs ndern m chten verwenden Sie bitte das Formu lar um das Datum einzustellen ab dem Sie Ihren Kontoauszug angezeigt bekommen m chten Anschliessend klicken Sie auf den SUBMIT Button Im unteren Teil des Kontoauszugs werden Ihnen in einer Tabelle mit den folgenden Spalten Ihre get tigten Transaktionen im WebShop aufgelistet Dabei beginnt die Auflistung erst ab dem im Formular angegebenen Datum Buchung Das Datum Ihrer Buchungen beginnend beim letzten Termin Bezahlung Das Datum Ihrer Bezahlung des gew nschten Dokuments Beschreibung der Ware Eine kurze Beschreibung ber die von Ihnen bestellte Ware Betrag der Aufbuchung Der Betrag der auf Ihr Kundenkonto aufgebucht w
160. rden da die digitale Speicherung weniger r umlichen Platz verbraucht Auch kann nur der Link zu einem Dokument gespeichert werden so dass nicht jede Bibliothek alle Dokumente vor Ort haben muss sondern nur einige wenige Exemplare Dabei beschr nken sich digitale Bibliotheken nicht nur auf Textdokumente Sie k nnen au erden alle denkbaren digiteln Formate aufnehmen und dem Anwender zug nglich machen Das k nnen Videos Musikst cke Bilder oder komlette Softwareprogramme sein Soll das Angebot f r den Nutzer kostenpflichtig zur Verf gung gestellt werden gilt es entspre chende Lizenzmodelle Angebotsformen Bestellformen Abrechnungsverfahren Zahlungsverfah ren und Auslieferungsverfahren zu integrieren Der Kreis der Akteure erweitert sich hierbei im Gegensatz zu herk mmlichen Bibliotheken mit mindestens dem Verleiher und dem Nutzer um Administratoren f r die IT Komponenten Datenbank WWW Administratur etc sowie die IT Komponenten selbst Bei kostenpflichtigen digitalen Bibliotheken kommen noch Akteure hinzu die f r die Abwicklung der Zahlungen zust ndig sind 1 3 Electronic Commerce Als Electronic Commerce wird der Handel mit G tern ber Kommunikationsnetze insbesondere das Internet bezeichnet Bei den G tern handelt es sich heutzutage vorwiegend um materielle G ter wie B cher CDs oder andere Gebrauchsgegenst nde Der Verkauf dieser G ter ist ber spezielle WWW Sites sogenannte eShops Electronic Shops im WWW m glich
161. ren CyberCash erlaubt leider keinen Demo Betrieb was zur Folge hat dass von Anfang an mit echtem Geld gearbeitet werden muss CyberCash empfiehlt hierf r zu Testzwecken nur Zahlungen vom eigenen Konto auf das eigene Konto durch zuf hren Damit Zahlungen ber elektronische Zahlungsverfahren durchgef hrt werden k nnen muss auf Kundenseite eine entsprechende Wallet installiert sein Die Kunden Wallets f r ECash und CyberCash sind bislang nur f r Windows 9x NT verf gbar Auch hier ist noch zu erw hnen dass die Kunden Wallets zun chst bei dem jeweiligen Kreditinstitut registriert werden m ssen bevor sie f r Zahlungen benutzt werden k nnen f r den Demo Betrieb von ECash gilt dies nicht 62 KAPITEL 4 PAYMENT KOMPONENTE 2 Installation S mtliche f r den PaymentHandler ben tigte Klassen sind dem Java Archiv DDS jar enthalten Vor dem Start des PaymentHandlers muss zun chst die Konfigurationsdatei payment props bearbeitet werden Sie enth lt die f r den Betrieb des Payment Servers ben tigten Einstellungen PH_SERVER lt IP Adresse des Payment Servers gt Gibt die Adresse des Hosts an auf dem der Payment Server gestartet wird RMI ben tigt diese Angabe um zu wissen auf welcher IP Adresse Anfragen erwartet wer den theoretisch k nnten einem Host mehrere IP Adressen zugeordnet sein PH_PORT lt Portnummer des Payment Servers gt Der Payment Server erzeugt sich beim Start eine eigene RMI Registry Die RMI Regis
162. ring getMessage Liefert eine Beschreibung des Fehlers 3 2 4 5 InvalidIDException Dieser Fehler tritt auf wenn versucht wird mit einer unbekannten ID ber den Prim rschl ssel auf einen Datensatz zuzugreifen Konstruktoren public InvalidIDException String msg int iD public InvalidIDException String msg String sessionId Methoden public String getSessionID Liefert die ungiiltige Session ID public int getID Liefert die ungiiltige ID public String getMessage Liefert eine Beschreibung des Fehlers 3 2 4 6 InvalidLoginException Dieser Fehler wird bei einer Nutzerautentifizierung mit ung ltiger Login Passwort Kombination ausgel st Konstruktor public InvalidLoginException String msg String Leni Methoden public String getLogin Liefert das ungiiltige Login public String getMessage Liefert eine Beschreibung des Fehlers 3 2 4 7 InvalidSemanticException Dieser Fehler behandelt den Fall dass ein Update Insert oder Delete auf der Datenbank fehl schl gt weil eine externe Regel verletzt wurde Das kann bei doppeltem Einf gen von Daten der Fall sein oder aber auch beim L schen von Objekten die nicht mit einem Datensatz in der Datenbank bereinstimmen Konstruktor public InvalidSemanticException String msg Methoden public String getMessage Liefert eine Beschreibung des Fehlers 3 2 4 8 InvalidWritelDException Dieser Fehler behandelt die Verletzung der Eindeutigkeit des Prim rschl ssels bei
163. rows InternalDbifError InvalidIDException InvalidWriteIDException Parameters sessionId Die ID der Session in der Tabelle Customer_Session licenceld Die ID der Lizenz aus der Tabelle Licence validTo Das Datum an dem die Session abl uft Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es exi stiert keine Lizenz zum Parameter licenseld Invalid WriteIDException Die SessionID wurde schon f r eine andere Session vergeben Kein eindeutiger Prim rschl ssel in der Tabelle Customer_Session 3 2 DATENBANK SCHNITTSTELLEN 33 getDocumentDetails Liefert die Details Dublin Core zu einem Dokument Die ShopEnti ty Objekte Publisher DocumentFormat DocumentType und Language im DetailHolder sollten vor ihrer Verwendung auf NULL berpr ft werden public static DetailHolder getDocumentDetails int docId throws InternalDbifError InvalidIDException Parameters docld die ID PK des Dokuments Returns webshop classes DetailHolder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Dokument zum Parameter docld getDocument Urls Liefert alle URLs zu einem Document Wenn zu dem Dokument noch keine URLs in die Datenbank eingetragen wurden wird ein leerer UrlHolder zuriickgegeben public static UrlHolder getDocumentUrls int docId throws InternalDbifError InvalidIDException Parameters docld die ID PK des Dokuments Returns webshop classes UrlHolder
164. rst tzen k nnen Genauer ging es um die folgenden Themen Das Sub Projekt Sport DL Das Sub Projekt das unter dem Titel Sport DL lief besch ftigte sich mit der Entwicklung einer Digitalen Bibliothek im sportwissen schaftlichen Anwendungsbereich F r das Projekt Sport DL gab es mit dem Insti tut f r Sportwissenschaft der Universit t Saarland einen Auftraggeber der unter der berschrift Web based Publishing einen Anforderungskatalog bereitstellte das Pro jekt selbst aber nicht weiter begleitete Das Institut der Uni Saarland startete 1998 das europ ische Pilot Projekt ITES Information Technologies in European Sport and Sport Science das sich aus vier Teilen zusammensetzt die sich mit jeweils un terschiedliche Zielen internetbasierte virtuelle Kommunikationsm glichkeiten zunutze machen wollen Das Ziel der Sport DL war es im Internet ein Angebot zu schaffen das die M glichkeit bietet sportwissenschaftliche Fachbeitr ge aus dem Bereich Mo tor Control and Learning zu publizieren sowie umfassende Recherchem glichkeiten zur Verf gung zu stellen Das Sub Projekt Bean DL Die Aufgabe der BeanDL Gruppe war es auf Grundlage des Bean Development Kit 1 1 und des Java Development Kit 1 2 eine neue Bean Box zu erstellen diese neue BeanBox bekam von den Mitgliedern der BeanDL Gruppe 1 Das KAPITEL 1 EINLEITUNG den Namen NewBeanBox Die NewBeanBox sollte der Aufgabenstellung entsprechend angepasst werden Diese Aufgabenstellung
165. rst gefragt ob der first_click gesetzt worden ist bevor ermittelt wird ob die Lizenz berhaupt noch g ltig ist 5 4 ENTWURF 73 Frage Ist der first_click gesetzt Antwort Antwort Nein der first_click Ja der first_click ist schon gesetzt wurde noch nicht gesetzt Frage Ist die Lizenz schon bezahlt Frage Ist die Lizenz noch giiltig Abbildung 5 3 Ist der first_click gesetzt Ist der first_click gesetzt d h ist die Lizenz berhaupt schon genutzt worden oder handelt es sich hier um den ersten Zugriff auf ein lizensiertes Dokument Falls der first_click noch nicht gesetzt worden ist handelt es sich hier um den ersten Aufruf des lizensierten Dokuments oder die Lizenz ist noch nicht bezahlt worden weswegen noch kein Zugriff auf das Dokument erlaubt wurde Deswegen wird hier gefragt ob die Lizenz schon be zahlt worden ist Dieser Fall ist nicht selten weil einige Zahlungen ber das Intenet mit einer Zeitverz gerung von den Banken best tigt werden weshalb nicht bei jedem Zahlungsverfahren sofort ein Zugriff auf die gew nschten Seiten gew hrt werden kann Ist der first_click jedoch schon gesetzt worden so kann das zwei m gliche Gr nde haben n mlich dass entweder nur die Session ID abgelaufen ist oder dass die Lizenz abgelaufen ist Deshalb muss hier gefragt werden ob die Lizenz noch g ltig ist damit eine neue Session ID vergeben werden darf 74 KAPITEL 5 DOKUMENTSCHUTZ KOMPONENTE Frage
166. rt worden ist Die Methode gibt im Attribut invosceASCTI des InvoiceResult Objektes die generierte Zahlungs aufforderung zur ck Wird diese ASCII Nachricht von einer ECash Wallet gelesen so wird dort die entsprechende Zahlungsaufforderung gestellt Deshalb muss die Nachricht von der Softwa re die den PaymentHandler nutzt noch auf geeignete Weise an den Kunden geschickt werden bspw per MIME Message oder eMail 4 3 2 5 CyberCashClient Zahlungen ber das CyberCoin Verfahren im CyberCash System werden durch CyberCash Client realisiert Auch hier wird zuerst wieder die neu angelegte Transaktion aus der Datenbank gelesen Dann wird ein Prozess gestartet der das CGI Skript invoice cgi aufruft Dieses CGI Skript erzeugt hnlich wie beim ECash System als Ausgabe eine Zahlungsaufforderung die von einer CyberCash Geldb rse gelesen werden kann Diese Zahlungsaufforderung wird vom CyberCas hClient eingelesen Im Gegensatz zum ECash System wartet das Skript jedoch nicht bis die entsprechende Zahlung erfolgt sondern terminiert sofort nach Ausgabe der Zahlungsaufforde rung Sollte es beim Erzeugen der Aufforderung zu Fehlern kommen so wird ein entsprechendes InvoiceResult Objekt zur ckgegeben R ckgabewert der Methode invoiceRequest ist ein InvoiceResult Objekt in dessen Attribut in voice ASCII die Zahlungsaufforderung steht Diese kann per Mail oder MIME Nachricht an den Kunden geschickt werden 4 3 3 Erweiterbarkeit des Payment Handl
167. rungen werden aufgehoben e Nach URL sortieren Die Eintr ge werden aufsteigend alphabetisch sortiert e Nach Frei sortieren Alle als Frei markierten Eintr ge werden zuerst angezeigt dann erst die kostenpflichtigen e Markierte freisetzen Die markierten Eintr ge werden auf Frei gesetzt e Markierte sperren Die gew hlten Eintr ge werden als kostenpflichtig markiert e Markierte loeschen Die ausgew hlten Eintr ge werden gel scht Dr ckt man den Button mit der Aufschrift Urls auswaehlen unter der Tabelle wird ein Da teimanager ge ffnet Hier k nnen die zum Dokument geh renden Dateien ausgew hlt werden Im unteren Teil des Fensters k nnen die Adressen f r das Inhaltsverzeichnis die Homepage das Symbol f r das Dokument und f r eine Leseprobe ausgew hlt werden Auch dies geschieht wieder ber den jeweiligen Button Dieser ffnet dann einen Dateimanager indem die Adresse gew hlt werden kann 6 3 BENUTZUNGSHANDBUCH 111 H RE jachristie orient express kap5 pdf fachristie orient express kap6 pdf jachristie orient express kap pdf jachristie orient express kaps pdf jachristie orient express probe pdf jachristie orient express prolog pdf jachristie orient express vorwort pdf MORO OOOO gt URLs auswaehlen inhaltsverz achristie orient express inhalt htm Homepage achristie orient express index htm Bild jachristie orient express cover gif
168. s sieht wie die Kurzinfo zu den Dokumenten 7 3 3 6 Benutzung der Hilfe Der Men punkt Hilfe zeigt Ihnen die Hilfe an hierbei gibt es einige Unterschiede zu den ver schiedene Layouts Bei Layout 1 wird die Hilfe grunds tzlich in einem extra Fenster angezeigt das vom Browser ge ffnet wird Bei den beiden anderen Layouts wird die allgemeine Hilfe im Hauptframe angezeigt Die kontextsensitive Hilfe ist beim Layout 2 und Layout 3 durch anklicken auf das kleine Fragezeichen Symbol zu erreichen und wird dann in einem extra Fenster angezeigt Wenn z B der Warenkorb angezeigt wird und Sie klicken auf Hilfe bzw auf das Fragezeichen Symbol so erscheint die Hilfe zum Warenkorb im Hilfefenster Innerhalb des Hilfeframes k nnen Sie sich durch die verschiedenen Punkte man vrieren oder das Inhaltsverzeichnis ber den Link Index erreichen 7 3 3 7 Bestellung Auf der Bestellseite wird Ihnen Ihre Bestellung noch einmal aufgef hrt und zusammen mit dem Gesamtpreis angezeigt Falls Sie noch etwas an den Eintr gen ndern m chten haben Sie die M glichkeit noch einmal zur ck zu gehen bzw im Warenkorb die notwendigen nderungen vor zunehmen Im unteren Teil der Bestellseite haben Sie die M glichkeit die Zahlungsmethode aus zuw hlen und das Bestellformular entsprechend der ausgew hlten Zahlungsmethode anzupassen Als Zahlungsmethoden stehen Ihnen hier die vom Shopbetreiber unterst tzten Zahlungsmetho den aus denen im Folgenden aufgef hrten
169. s Dokument gesetzt ist wird der entsprechende Holder aus der Datenbank geladen Document getDocument liefert das Dokument zuriick dessen Holder aktuell ange zeigt wird void setHolder setzt den Holder dessen Daten durch das JPanel repr sentiert wer den Holder getHolder liefert den Holder dessen Daten durch das JPanel repr sensiert werden void refresh View veranlasst das JPanel die angezeigten Daten durch die Daten des zu repr sentierenden Holders zu ersetzen void prepareHolder veranlasst das JPanel den Holder mit den angezeigten Daten zu aktualisieren Holder requestHolder l dt den durch das JPanel repr sentierten Holder aus der Datenbank void setEnabled setzt den Bearbeitungs Status des JPanels Klasse TablePanel Das TablePanel ist die Oberklasse aller JPanel die eine Tabelle in der Datenbank repr sentieren Die Methoden der Klasse lauten JList getList liefert die eine Liste mit den Elementen der repr sentierten Datenbank Tabelle boolean addNewElement f gt ein neues Element in die repr sentierte Datenbank Tabelle ein Klasse AbstractEditor Der AbstractEditor ist die Oberklasse aller Editoren im Authoring Tool Editoren sind Klassen die Editier Fenster verwalten und diese bei Bedarf ffnen bzw schlie en falls ein Editier Fenster nicht mehr erforderlich ist Die Methoden der Klasse lauten void addStatusListener registriert einen StatusListener damit dieser bei Status A
170. s Produkt zugreifen kann Weitere denkbare Angebotsformen die durch iShops in besonderer Weise unterst tzt werden k nnen entstammen dem Softwarebereich Shareware kosteng nstigere Demoversionen eingeschr nkt nutzbare Versionen Leseproben oder die immer beliebter werdende Angebotsform first try then buy Die Unterst tzung institutioneller Nutzergruppen ist ein weiterer Aspekt f r den iShops ge radezu pr destiniert sind Hier ist zum Beispiel der Erwerb von Campuslizenzen denkbar Ein Gruppenadministrator erwirbt f r eine bestimmte Zeitspanne eine Campuslizenz f r ein digitales Produkt und alle Gruppenangeh rigen k nnen dann auf das Produkt zugreifen Das Lizenzmo dell der Gleitlizenzen ist dem Ausleihverfahren in traditionellen Bibliotheken nachempfunden Besitzt eine Gruppe n Gleitlizenzen f r ein digitales Produkt k nnen maximal n Gruppenan geh rige gleichzeitig auf das Produkt zugreifen U U f r Hochschulbibliotheken interessant ist die Einf hrung und Verwaltung sogenannter Gruppenkonten Der Gruppenadministrator kann dort einen bestimmten Geldbetrag einzahlen und den Gruppenmitgliedern erlauben bis zu ei nem pro Person festgelegten Betrag das Geld f r den Erwerb von Einzellizenzen zu nutzen Auf diese Art und Weise k nnten die Bibliotheken sehr flexibel auf konkrete Nutzerbed rfnisse reagieren 1 5 AUFBAU DER ARBEIT 5 iShop Systeme dienen wie die bereits beschriebenen eShop Systeme dem Aufbau der Verwal
171. sse DBMediator 28 45 Paketstruktur 46 WWW Server Apache 12 Zahlungsverfahren 7 49 elektronische 49 61 INDEX
172. sweiteren wird Ihnen unterhalb des Formu lars noch mal in einem kurzen Text mitgeteilt wieviel DM per ECash aus der Benutzerwallet eingezogen wird Ein Mausklick auf Bestellen f hrt Ihre Bestellung aus sofern keine weiteren Probleme aufgetreten sind Bestellung per CyberCash Im oberen Bereich werden Ihre Bestelldaten angezeigt und Sie haben die M glichkeit die Zahlungsmethode noch mal zu ndern oder anzupassen F r die Zahlung per CyberCash m ssen Sie keine weiteren Daten eingeben Sie ben tigen lediglich die CyberCash Software F r n here Informationen ber das Bezahlen per CyberCash klicken Sie bitte mit der Maus auf Infos zu CyberCash weitere Infos zu CyberCash siehe auch Doku der DDS Payment Gruppe Desweiteren wird Ihnen unterhalb des Formulars noch mal in ei nem kurzen Text mitgeteilt wieviel DM per CyberCash eingezogen werden Ein Mausklick auf Bestellen f hrt Ihre Bestellung aus sofern keine weiteren Probleme aufgetreten sind 7 3 3 3 Kundenkonto aufladen ber den Men punkt Kundendaten in der Navigationsleiste und einen Mausklick auf den Link Kundenkonto aufladen gelangen Sie zur Seite um Ihr Kundenkonto wieder aufzuladen Sie tragen in das Formular einen Betrag ein womit Ihr Kundenkonto aufgeladen werden soll w hlen eine Zahlungsmethode aus der Auswahlliste aus und f hren die Transaktion mit einem Mausklick auf Bestellen durch Es versteht sich nat rlich von selbst dass Ihr Kundenkonto nicht mit der Zahlu
173. t Button Shop Hier kann der Shop ausgew hlt werden dessen Transaktionen angezeigt werden sollen Alle zeigt die Transaktionen aller Shops an Button Kunde Der Button Kunde dient der Auswahl des Kunden dessen Transaktionen angezeigt wer den sollen Auch hier f hrt die Auswahl Alle zur Anzeige der Transaktionen aller Kunden Button Art Durch den Button Art kann die Anzeige der Transaktionen auf einen bestimmten Transaktions Status beschr nkt werden Alle zeigt alle Transaktionen an Offene zeigt nur die Transaktionen an bei denen die Zahlung noch aussteht Gebuchte zeigt dagegen die Transaktionen an bei denen die Zahlung erfolgt ist und die bereits gebucht wurden Button Jetzt buchen Durch diesen Button wird die aktuell gew hlte Transaktion gebucht Dies sollte nur erfol gen falls die ensprechende Zahlung auch eingegangen ist 66 KAPITEL 4 PAYMENT KOMPONENTE Kapitel 5 Dokumentschutz Komponente 5 1 Motivation Um die Interessen der Autoren hinsichtlich Copyright Verletzungen zu schiitzen ist es notwen dig Sicherheitsma nahmen zu ergreifen die das unerlaubte Einsehen von gesch tzten Dokumen ten verhindern Allerdings gilt es hierbei zu bedenken dass der User nicht zu viele Sicherheits barrieren berwinden muss bevor er ein Dokument lesen kann Es sollte also ein Kompromiss zwischen der Sicherheit der Dokumente und dem Bedienungskomfort gefunden
174. t der Maus auf den Neuen Zugang anlegen Button einen neuen Account anlegen 7 3 3 3 Die pers nlichen Daten ndern Durch anklicken des Men punktes Benutzerdaten ndern anlegen gelangen Sie in das Frame wo Sie die M glichkeit haben Ihre Kundendaten zu ndern Folgende Angaben k nnen sie ndern e Passwort e E Mail Adresse e Adresse dazu geh ren L nderwahl Wohnort Stra e Hausnummer Telefon e Fax Nicht ndern k nnen Sie Ihr Login 146 KAPITEL 7 DDS WEB KOMPONENTE 7 3 3 4 Lizenzen zu Dokumenten kaufen Sie haben zwei M glichkeiten aus dem WebShop heraus Lizenzen zu bestellen Aus dem Warenkorb heraus Durch Klicken auf den Bestellen Knopf im Warenkorb ge langen Sie direkt auf die Bestellseite Von dort aus k nnen Sie dann Ihre Dokumente bestellen Direkt Bestellen Durch einen Mausklick auf den Link Direkt Bestellen auf der Seite mit der Langinfo zu einem Dokument gelangen Sie auf eine Seite die dem Warenkorb sehr hn lich sieht und auf der Sie die Anzahl und die Dauer der Lizenz zu dem Dokument einstellen k nnen Ein Mausklick in diesem Formular auf Bestellen f hrt Sie auf die Bestellseite die im Rahmen der Bestellung weiter unten n her erl utert wird 7 3 3 5 Suche nach einem Dokument Sie klicken auf den Men punkt Suchen und gelangen automatisch in das Suchenfenster Dort geben Sie Ihren Suchwunsch ein und erhalten sofern vorhanden ein Ergebnis das genauso au
175. t eimo e chad wa in ee bbe beh ea ele ea eed 90 Dokument l schen o Auger rn ae ee e 90 Dokument ndern un men oe le Ae Baba ne a re 91 Authoring Tool Hauptfenster mit Objekten 92 Authoring Tool Detail Informationen zu einem Objekt 92 Authoring Tool Angebote zu einem Objekt o oo 93 vi 6 10 6 11 6 12 6 13 6 14 6 15 6 16 6 17 6 18 6 19 6 20 6 21 6 22 6 23 6 24 6 25 6 26 6 27 6 28 6 29 6 30 6 31 6 32 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 ABBILDUNGSVERZEICHNIS Authoring Tool Autoren zu einem Objekt oo ooo 93 Authoring Tool URLs zu einem Objekt o a 94 Authoring Tool Auswahl neuer URLs Std Filechooser 94 Authoring Tool Autoren Tabelle in der Datenbank 95 Authoring Tool Verlage Tabelle in der Datenbank 95 Authoring Tool Formate Tabelle in der Datenbank 95 Authoring Tool Sprachen Tabelle in der Datenbank 96 Authoring Tool Typen Tabelle in der Datenbank 96 Authoring Tool Allgemeine Shop Einstellungen 97 Authoring Tool Internet Einstellungen des Shops o o 97 Authoring Tool Payment Einstellungen des Shops o o 97 Authoring Tool Auswahl eines Layouts 98 Authoring Tool Detailansicht eines Layouts 98 Das Hauptfenster des Authoring Tools o
176. tation der Sicherheitstechniken in die Erstellung des Server Plugins das die Anfragen an den Server abf ngt und des Security Servlets welches die Anfragen bear beitet und an den Server zuriickleitet 5 5 1 Implementation des Server Plugins Um die Funktionsweise des Server Plugins zu verstehen ist es zun chst einmal notwendig zu erkl ren wie der Apache Server eine Anfrage behandelt Der Server unterteilt die Anfragebe handlung in mehrere Schritte 1 Ubersetzung der URI in einen Dateinamen 2 berpr fung ob der User der ist der er behauptet zu sein 3 berpr fung ob der User berechtigt ist die Seite zu sehen 4 Den MIME Typ des angefragten Objekts bestimmen 5 Eine Antwort an den Client zur ckschicken 6 Die Anfrage protokollieren In jeder Phase der Anfragebehandlung werden nun die im Apache integrierten Module daraufhin berpr ft ob sie f r die aktuelle Phase eine individuelle Behandlungsroutine aufweisen Ist dies der Fall so wird diese ausgef hrt Es k nnen dann folgende Aktionen ausgel st werden e Die Anfrage wird bearbeitet und ein OK wird an den Server gesendet e Die Anfrage wird nicht bearbeitet und die Konstante DECLINE wird an den Server zur ck geliefert Der Server wird dann die Routine des n chsten Moduls aufrufen e Eine Fehlermeldung mit einem HTTP Fehlercode wird an den Client zur ckgesendet Liefert eine Routine eines Moduls ein OK an den Server zur ck so wird die Anfrage als abgear bei
177. te Authoring 10 Datenbank 10 Dokumentenschutz 10 153 Payment 10 Web 11 Konfigurations Datei Authoring Tool 104 Kontoanzeige 142 Kreditkarte 49 Kundenkonto 49 Kundenkonto aufladen 148 Layout 1 126 Layout 2 129 Layout 3 131 Layout Ansicht Fenster 98 Layout Auswahl Fenster 98 LicenceSessionInfo Objekt 79 Lizenz kaufen 146 Lizenz Konzept 67 Lizenzanzeige 141 Login 54 58 134 Modrewrite 83 Online Auslieferung direkte 7 indirekte 7 Payment Server Installation 62 PaymentClient 58 59 PaymentCustomer 58 PaymentHandler 49 PaymentHandlerInterface Schnittstellenbe schreibung 50 PaymentHandlerInterface und Payment Handler 56 PDF Verschl sselung 68 Relationen siehe Tabellen RMI Client 50 62 Root Url 107 Root Verzeichnis 107 Schnittstelle Authoring Tool 99 Payment Komponente 50 Schnittstellen siehe DB Schnittstellen Security Servlet 79 Server Plugin 78 Session ID 67 154 Shop Einstellungen ndern 89 114 Shop Einstellungen Fenster 102 Allgemein 97 Handbuch 107 Internet 97 Payment 97 ShopInfo 140 Sicherheitstechniken 68 Socket Kommunikation 80 Suche 146 Suchen 137 Tabellen DDS 19 Payment Handler 26 Transaction 55 58 TransactionDoesNotExistException 59 TransactionFailedException 59 transactionSettled 52 57 URI 78 Wallet 61 Warenkorb 134 webshop dbif 28 45 Fehlerbehandlung 42 Klasse DB_Access 28 45 Kla
178. te Die Start Seite kann vom Betreiber im Authoring Tool angegeben werden Sollte der Betreiber allerdings keine Angaben zu einer Sart Seite gemacht haben so k nnen die Servlets selbst eine Seite erstellen die dann allerdings der ShopInfo Seite siehe 7 15 entspricht Die Kontakt Seite nur f r Layout 2 Die Kontaktseite des Shop Betreibers entspricht der ShopInfo Seite aus Layout 1 und 3 siehe Abschnitt Die ShopInfo Seite oder Die Start Seite Der Men punkt Kontakt ist nur im Layout 2 im Pop Up Men Auswahl zu finden 7 3 BENUTZERHANDBUCH 141 Die Lizenz Anzeige G LTIGE LIZENZEN Langinfo lesen Restzcitin Minter Zcitl uk ech Titel Auter er TooLib Homepage Rolfs Andre Boles Diet Mt 16666 TooLib Homepage Rolfs Andre Boles Diet YE 16666 TooLib Homepage Rolfs Andre Boles Diet iE 16666 TooLib Homepage Rolfs Andre Boles Diet TooLib Homepage Rolfs Andre Boles Diet Carl Lewis Memcirem Roifs Andre Abbildung 7 16 Das Lizenz Anzeige Es gibt zwei verschiedenen Lizenz Anzeigem glichkeiten Abb 7 16 Sofern Sie auf den Meniipunkt Lizenzen klicken erscheinen alle Ihre Lizenzen die momentan giiltig sind Mit Hilfe des Buttons am unteren Ende des Haupframes gelangen Sie dann zur Auflistung aller Ihrer Lizen zen und von dort mit dem selben Button wieder zur ck zur Anzeige aller g ltigen Lizenzen Die Lizenzanzeige ist selbstverst ndlich erst m glich wenn Sie sich ale Benutzer des
179. tellt wurde und seinen Vorstellungen entspricht oder aber es wird die Seite eingeladen die von einem Servlet erstellt wird und die n tigsten Informa tionen ber den Shop enth lt allgemeine Hilfe Hier wird die allgemeine Hilfe zum WebShop aufgerufen und im Hauptframe dargestellt KundenDaten Hier gelangen Sie zu einem Fenster in dem Sie sich gegebenenfalls anmelden oder Ihre Nutzerdaten pflegen sowie Ihr Kundenkonto aufladen und sich einen Kontoaus zug ausgeben lassen k nnen Suchen Ein Mausklick auf diesen Link f hrt Sie zur Suchseite wo Sie die M glichkeit haben nach einem Suchbegriff im Datenbestand suchen zu lassen 130 KAPITEL 7 DDS WEB KOMPONENTE Lizenzen Es gibt zwei Arten von Lizenzen einmal die giiltigen Lizenzen und einmal die kom plette Liste an Lizenzen das sind noch die Lizenzen dazu die noch nicht freigeschaltet sind Unter diesem Mentipunkt werden erst die giiltigen Lizenzen angezeigt dann sind aber die kompletten Lizenzen mittels eines Buttons am unteren Ende der Seite anzeigbar Kontakt Mit diesem Men punkt wird die ShopInfo Seite aufgerufen Dies ist entweder eine Sei te die vom Betreiber erstellt wurde und seinen Vorstellungen entspricht oder aber es wird die Seite eingeladen die von einem Servlet erstellt wird und die n tigsten Informationen ber den Shop enth lt Abbildung 7 7 Die Navigation durch die Dokumentkategorien im Layout 2 Im Layout 2 befindet sich im rechten oberen Frame die
180. terungen wurde dabei aber verzichtet Ein entsprechender JDBC Treiber war bereits vorhanden Version 8 1 6 Alle datenbankspezifischen Einstellungen und Parameter die f r den Aufbau einer Da tenbankverbindung notwendig sind werden in einer daf r vorgesehenen zentralen Datei webshop ini siehe Installation vorgenommen und dort vom DBMediator ausgelesen In der Implementierungsphase wurde zun chst eine Dummy Schnittstelle geschaffen de ren Methoden noch nicht auf die Datenbank zugreifen konnten Die vollst ndige Implemen tierung und Test der einzelnen Methoden erfolgte in der Reihenfolge ihrer Priorit t f r die jeweiligen Teilgruppen die f r die Umsetzung der anderen DDS Komponenten zust ndig waren W hrend der Implementierung der einzelnen Methoden der Schnittstelle wurden weitere 46 KAPITEL 3 DATENBANK KOMPONENTE Fehlerf lle und Ausnahmen identifiziert Entsprechend wurden die Klassen fiir die Behand lung der Ausnahmen Implementiert so dass anschlie end eine vollst ndige Deklaration der Methoden inklusive der Implementierung und Test in einer Testumgebung erfolgen konn te Nach erfolgreichem Abschluss aller Testf lle wurde die Dummy Methode durch die Implementierung ersetzt Integration In der Integrationsphase wurde die Zusammenarbeit zwischen DDS DB Schnittstelle und den anderen DDS Komponenten getestet Dabei auftretende Fehler resul tierten aus bisher ungetesteten Szenarios und konnten beseitigt
181. tet betrachtet und alle anderen Module werden ignoriert Die Reihenfolge in der die Module in den Server Kernel integriert werden spielt also eine entscheidende Rolle Bei den Phasen der Anfragebehandlung ist die bersetzung der URI in einen Dateinamen f r den Dokumenten schutz von besonderer Bedeutung Die Abk rzung URI steht f r Uniform Resource Identifiers Es handelt sich dabei um eine Zeichenkette die das Identifizieren von Dokumenten im Internet erm glicht Bei einer Anfrage an den Webserver wird jedesmal diese URI in einen Dateinamen umgewandelt um das entsprechende Dokument auf dem Massenspeicher des Webservers zu fin den An dieser Stelle setzt das Server Plugin an Zun chst einmal wird berpr ft ob das angeforderte Dokument in einem gesch tzten Verzeichnisbereich des Servers liegt oder ob der MIME Typ des angeforderten Dokuments generell ungesch tzt ist Wenn das Dokument ungesch tzt ist dann bricht das C Modul mit einem DECLINE ab und berl t die weitere Abarbeitung der Anfrage dem Server Ist das Dokument jedoch gesch tzt so wird versucht aus der URI eine Session ID zu extrahieren Diese Session ID ist eine Zeichenkette die das Login des Users und seine erworbene 5 5 REALISIERUNG DER GEWAHLTEN SICHERHEITSTECHNIKEN 79 Lizenz beinhaltet mehr dazu siehe Abschnitt 5 2 Diese Session ID steht immer am Anfang der URI Konnte eine giiltige Session ID gefunden werden so wird diese zusammen mit der URI ohne Session
182. thode werden die f r dieses Servlet ben tigten Parameter aus dem HttpServletRequest ausgelesen und in einer Hashtable f r den sp teren Zugriff gespeichert Wenn alle n tigen Parameter im HttpServletRequest gefunden werden wird true zur ckgeliefert ShopPage dolt ShopletData data In dieser Methode wird die eigentliche Arbeit geleistet Es wird die Datenverarbeitung durchgef hrt und als Resultat eine HTML Seite in Form einer webshop servlet ShopPage erzeugt und zur ckgeliefert 120 KAPITEL 7 DDS WEB KOMPONENTE F r die Erzeugung der Html Ausgabe wurde eine Klassenstruktur entwickelt bei der w hrend der Erzeugung der Ausgabe nur noch wenig auf das Design geachtet werden muss da dieses bei der Ausgabe durch die Basisklassen webshop servlet FramePage f r die Rahmenframes und webshop servlet ContentPage f r das Hauptframe erledigt wird Die Methode dolt der Servlets liefert als Resultat die Instanz einer von diesen Basisklassen abgeleiteten Klasse zur ck welche dann ausgegeben wird Um die Handhabung der verschiedenen HTML Elemente zu erleichtern wurden einige Interfaces und Klassen entworfen von denen einige Beispiele hier etwas erl utert werden Das Interface FormContent definiert die Methode toHtml eine Instanz einer dieses Interface implementierenden Klasse kann direkt eine HTML Ausgabe des Objektes erzeugen Die Klasse FormInput repr sentiert ein HTML lt INPUT gt Element Sie imlementiert das In terfa
183. thor_type STRING Bezeichnung der Rolle des Autors position NUMBER Position in der Reihe mehrerer Autoren eines Dokuments Tabelle 3 8 Tabelle Document_Author Url Die Tabelle Url enth lt die relativen URLs der digitalen Dokumente auf dem Server URLs bei denen das free Attribut gesetzt ist umgehen das Dokumenten Sicherheitsmanagement und sind frei zug nglich Attributname Domain Beschreibung url_id NUMBER ID des Autors PK address STRING relativer Teil einer Url des Dokuments free NUMBER Kennzeichnung einer kostenfreien Url Tabelle 3 9 Tabelle Url 22 KAPITEL 3 DATENBANK KOMPONENTE Licence Die Tabelle Licence enth lt die von den Kunden erworbenen Lizenzen zu den jewei ligen Dokumenten Lizenzen beziehen sich dabei nicht direkt auf ein Dokument sondern immer auf ein mit dem Dokument verkniipftes Angebot Lizenzen sind zeitbezogen d h nur fiir eine bestimmte Dauer giiltig Greift ein Kunde das erste Mal auf seine Lizenz zu wird dieser Zeitpunkt bei first_click eingetragen und die Lizenzdauer beginnt abzulaufen Der Zugriff darf erst dann erfolgen wenn das valid Kennzeichen fiir den Status einer Be zahlung gesetzt wurde Um diesen Status auszulesen muss der Payment Manager mit der phPay_id kontaktiert werden Attributname Domain Beschreibung licence_id NUMBER ID der Lizenz PK customer_id NUMBER ID des Kunden der die Lizenz erwarb FK offer_id NUMBER ID des Angebots zu dem diese Lizenz erworben w
184. tic Methoden getFolders Holt aus der Tabelle Folder alle Folderobjekte die keinen bergeordneten Folder haben public static java util Vector getFolders throws InternalDbifError Returns ein Vektor mit Objekten vom webshop classes Folder Throws InternalDbifError Schwerer Fehler in webshop dbif getSubFolders Holt aus de Tabelle Folder alle untergeordneten Folderobjekte zu dem Folder mit der 1D fatherld public static java util Vectorn getSubFolders int fatherld throws InternalDbifError InvalidIDException Parameters fatherld die ID des Folders zu dem die Subfolder zurueckgegeben werden sollen Returns ein Vektor mit Objekten vom webshop classes Folder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zu dem Parameter fatherld getFolder Holt den Folder mit PK gleich dem Parameter folderld aus der Tabelle Folder public static Folder getFolder int folderld throws InternalDbifError InvalidIDException Parameters folderld PK in der Tabelle Folder Returns webshop classes Folder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Folder zu dem Parameter folderld 3 2 DATENBANK SCHNITTSTELLEN 29 getDocumentInfo Holt ein DocumentInfo Objekt zum Dokument mit der ID im Parameter intdocld public static DocumentInfo getDocumentInfo intdocId throws InternalDbifError InvalidIDException Parameters intdoclI
185. trierten ChangeListener dass eine Anderung am Modell aufgetreten ist e void setTitle setzt den Titel des Modells und benachrichtigt gegebenenfalls alle regi strierten ChangeListener e String getTitle liefert den Titel des Modells e void setIconFile setzt den Pfad zu einem Bild welches von einem J Thumbnail angezeigt werden soll und benachrichtigt gegebenenfalls alle registrierten ChangeLi stener e String getIconFile liefert den Pfad zu einem Bild e void setEnabled setzt die Benutzbarkeit des J Thumbnails e boolean isEnabled liefert die Benutzbarkeit des J Thumbnails e void setSelected setzt den Selektions Status des J Thumbnails und benachrichtigt gegebenenfalls alle registrierten ChangeListener e boolean isSelected zeigt an ob das J Thumbnail aktuell selektiert ist e void setScaling setzt die Art und Weise mit der das Bild skaliert werden soll und benachrichtigt gegebenenfalls alle registrierten ChangeListener Der Parameter muss eine Skalierungs Konstante der Klasse Abstract ThumbnailModel sein e int getScaling liefert die Art und Weise mit der das Bild skaliert wird 6 2 2 Probleml sungen Wie bereits zu Beginn dieses Abschnitts angedeutet gab es bei der Implementierung des Authoring Tools immer wieder kleine Probleme die spezielle Detail L sungen erforderten Eini ge dieser L sungen sollen im Folgenden dargestellt werden e Problem Konsistenz von Daten in verschiedenen Fenstern Durch die
186. try belegt diese Portnummer Sie muss vorher also frei sein PH_POLICY lt kompletter Pfad der Policy Datei gt In der Policy Datei k nnen Rechte f r Dateizugriffe gesetzt werden und Ports gegen Verbindungen gesch tzt werden Seit Java 1 2 muss diese Datei f r RMI verwendet werden PH_CLASSES lt URL der Server Klassen gt Ort der Payment Server Klassen so dass sich ein Client bei Bedarf Klassen herun terladen kann ECASH_EXE lt kompletter Pfad der ECash H ndlerb rse gt Hier wird der Pfad zu der ausf hrbaren ECash H ndlerb rse eingetragen ECASH_HOME lt Pfad zum ECash Home Verzeichnis gt Das ECash Home Verzeichnis beinhaltet ein Unterverzeichnis in dem die ECash relevanten Daten gespeichert werden INVOICE_SCRIPT lt kompletter Pfad des CyberCash invoice cgi gt Bei Zahlungen ber CyberCash ruft der PaymentHandler dieses cgi Skript um eine Zahlungsaufforderung zu generieren Zum Start des Payment Servers PaymentHandler muessen neben der Datei DDS jar auch die f r die Datenbankzugriffe ben tigten Treiber im CLASSPATH eingebunden werden Au erdem werden die Pfade zu den Konfigurationsdateien des PaymentHandlers ben tigt Neben der Datei payment props wird noch die Datei webshop ini gebraucht die noch einige f r die Datenbank wichtige Parameter enth lt Sind diese Vorarbeiten gemacht kann der PaymentHandler wie folgt gestartet werden java Dpayment props lt Pfad zur Datei payment props gt Dwebshop ini lt Pfad
187. ts ID des Verlags FK Ver ffentlichungsjahr ID des Dokumenttyps FK ID des Dokumentformats FK ID der Dokumentsprache FK Internationale Standard Buchnummer Nummer der Auflage ID der Url der Startseite des Dokuments FK ID der Url des Inhaltsverzeichnisses des Doku ments FK ID der Url eines Icons Logos oder Erkennungs bildes des Dokuments FK ID der Url der Startseite einer Leseprobe FK Tabelle 3 13 Tabelle Document 3 1 DATENBANK ENTWURF 25 Shop_Settings Die Tabelle Shop Settings speichert die allgemeinen Shopeinstellungen des DDS sowie Informationen des Shopbetreibers Diese Tabelle wird nur sehr statisch be nutzt d h sie enth lt nur einen einzigen Datensatz f r die Shopeinstellungen da die gesamte Datenbank auch nur einen Shop repr sentiert Attributname Domain Beschreibung shop id NUMBER ID der Shopeinstellungen PK shop_name STRING offizieller Name des Shops email STRING e mail Adresse der Shopbetreiber Kontakt layout NUMBER Nummer eines vorgefertigten Layouts f r das WWW owner_name STRING Name des Shopbetreibers address STRING Adresse des Shopbetreibers phone STRING Telefonnummer des Shopbetreibers fax STRING Telefaxnummer des Shopbetreibers agb_txt URL STRING Url bzw vollst ndiger Pfad einer Textdatei mit den allgemeinen Gesch ftsbedingungen des Shopbetreibers shop_info_URL STRING Url einer Info Seite zum Shop start_page_URL STRING Url des Shops im WWW logo_
188. tsprechenden Symbol in der Men Leiste oder dem Kontext Men erreicht Alternativ kann dies auch erreicht werden indem ein bereits gew hlter Ordner erneut angew hlt wird Die rechte H lfte der Ansicht zeigt alle Artikel die einem gew hlten Ordner zugeordnet sind Neue Artikel k nnen ber den Men Eintrag Datei gt Artikel erstellen dem entsprechenden Symbol in der Symbol Leiste oder ber ein mit der rechten Maustaste aufrufbares Kontext Men erstellt werden Hierbei ist zu beachten dass ein neu erstellter Artikel nicht automatisch in den Datenbestand aufgenommen wird Ein neu erstellter Artikel besitzt zun chst nur einen Namen und ein kleines Standard Symbol um ihn zu visualisieren Damit ein neu erstellter Artikel in den Datenbestand aufgenommen werden kann ist es notwendig ihm gewisse Informa tionen mitzugeben welche mittels semantisch voneinander getrennter Fenster bearbeitet werden m ssen Diese Fenster sind ber die Men Eintr ge im Men Bearbeiten den entsprechenden Symbolen der Symbol Leiste oder ber ein Kontext Men zu erreichen Bei Auswahl einer dieser Men Punkte erscheint ein Fenster mit einem Formular in welches die notwendigen Informatio nen eingegeben werden k nnen Die Beschreibung der einzelnen Fenster folgt im Anschluss an dieses Unterkapitel Erst nach Angabe aller notwendigen Informationen kann ein neu erstellter Artikel mittels des Knopfes Speichern in einem der Fenster in den
189. tung und dem Einsatz von Shops hier iShops Sie bieten aber einen im Hinblick auf Lizenzmo delle und Zugriffsmechanismen eine erweiterte Funktionalitat 1 5 Aufbau der Arbeit Das vorliegende Dokument ist wie folgt gegliedert e Kapitel 1 Einleitende Worte zum Inhalt und den Zielen der Projektgruppe dieses Ka pitel e Kapitel 2 Motivation Anforderungen Architektur Realisierung und Installation des DDS Systems e Kapitel 3 Beschreibung der Datenbank Komponente DB Entwurf Tabellen Schnittstellen Realisierung und Optimierungsaspekte e Kapitel 4 Beschreibung der Payment Komponente Entwurf Architektur Realisierung Schnittstellen und Erweiterungsm glichkeiten des Payment H ndlers e Kapitel 5 Beschreibung des Servers Motivation Entwurf Realisierung Schnittstellen Dokumentenschutzmechanismen und deren Erweiterbarkeit sowie Probleme die zu Ein schr nkungen des Systems f hren e Kapitel 6 Beschreibung des Authoring Tools Entwurf Implementierungsaspekte sowie Benuzerhandbuch mit Screendumps des Tools e Kapitel 7 Beschreibung der Web Komponente Entwurf Implementierungsaspekte sowie Benutzerhadbuch mit Screendump der Benutzerschnittstelle e Kapitel 8 Bewertung und Ausblick Zusammenfassung Bewertung in Bezug auf die in Kapitel 2 beschriebenen Anforderungen Ausblick auf m gliche Erweiterungen Verbesse rungen etc KAPITEL 1 EINLEITUNG Kapitel 2 Das DDS System Das DDS Digital Do
190. u ndernde Dokument aus Sie k nnen jetzt iiber die ausw hlbar gewordenen Buttons oder das Kontextmen den zu ndernden Bereich der Dokument Informationen w hlen 6 3 BENUTZUNGSHANDBUCH 115 2 Andern der Informationen Nehmen Sie in dem neu ge ffneten Fenster die nderungen vor Driicken Sie auf OK zum speichern oder auf Verwerfen zum verwerfen der nderungen Wollen Sie weiter Informationen aus anderen Bereichen ndern gehen Sie diese Arbeitsschritte nochmal durch e Dokument l schen 1 Auswahl Gehen Sie in das Verzeichnis mit dem gew nschten Dokument und w hlen Sie es aus 2 L schen Sie k nnen das Dokument dann ber das Kontextmenii rechte Maustaste oder den dafiir bestimmten Button l schen e Dokument verschieben 1 Vorbereiten Sorgen Sie daf r da das Ziel Verzeichnis im linken Fenster des Hauptfensters sicht bar ist Gehen Sie dann zum gewiinschten Dokument 2 Verschieben Wahlen Sie das Dokument aus und halten Sie die linke Maustaste gedr ckt w hrend sie das Dokument auf das Ziel Verzeichnis ziehen Wenn Sie die Maustaste l sen wird das Dokument verschoben 116 KAPITEL 6 AUTHORING KOMPONENTE Kapitel 7 DDS Web Komponente 7 1 Einleitung Die Aufgabe der DDS Web Gruppe war es mit Hilfe von Java in der Version 1 2 und der auf Java aufbauenden Technologie der Servlets einen Internetshop aufzubauen der mit den weiteren Komponenten des DDS Systems DDS Datenbank DDS Access DDS Pa
191. uellen Zeit punkt settled_date NUMBER Datum Zeit an dem das Angebot angelegt wur de Tabelle 3 2 Tabelle Offer 20 KAPITEL 3 DATENBANK KOMPONENTE Publisher Die Tabelle Publisher speichert die Verleger der diditalen Dokumente Sie bildet einen Pool von Verlagen die den Dokumenten im DDS zugeordnet werden k nnen was ein einheitliches Erscheinungsbild der Verlagsbezeichnungen ber alle Dokumente hinweg beg nstigen soll Das Attribut ist dem Dublin Core Element Set entnommen Attributname Domain Beschreibung publisher_id NUMBER ID des Verlags PK publisher_name STRING Bezeichnung des Verlags Tabelle 3 3 Tabelle Publisher Document_Type Die Tabelle Document_Type speichert die unterschiedlichen Dokumentty pen Sie bildet einen Pool Dokumenttypen was eine einheitliche Schreibweise bei allen Dokumenten untersttitzen soll Das Attribut ist dem Dublin Core Element Set entnom men Attributname Domain Beschreibung type_id NUMBER ID des Dokumenttyps PK doc_type STRING Bezeichnung des Typs Tabelle 3 4 Tabelle Document_Type Format Die Tabelle Format speichert die unterschiedlichen Dokumentformate Da es sich aus schlie lich um digitale Dokumente handelt bildet sie einen Pool von Mime Types die den Dokumenten im DDS zugeordnet werden k nnen was ein einheitliches Erscheinungsbild und eine korrekte Zuordnung des jeweiligen Formats f r alle Dokumente beg nstigen soll Das Attribut ist dem Dublin Core Element Set
192. uen Lizenz eine Session_Id in die Tabelle Customer_Session geschrieben Valid_to wird fiir die se Session auf 0 gesetzt 3 2 DATENBANK SCHNITTSTELLEN 31 public static int insertLicence int phPayld int customerld int offerld long duration java lang String sid throws InternalDbifError InvalidIDException InvalidWriteIDException Parameters phPayld die ID der Transaktion mit der die Lizenz bezahlt wurde customerld die ID des Customers offerld die ID des Angebots duration die Dauer der Lizenz sid die erste Session_Id Returns Die zugewiesene ID f r die neue Lizenz Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidWritelDException Die SessionID wurde schon f r eine andere Session vergeben Kein eindeutiger Prim rschluessel in der Tabelle Customer_Session InvalidIDException Ung ltige Fremdschl sselbeziehung in einem oder mehreren der Pa rameter setLicenceValid Kennzeichnet eine Lizenz als g ltig d h die Bezahlung ist erfolgreich abge schlossen public static void setLicenceValid int licenceld throws InvalidIDException InternalDbifError Parameters licenceld Die ID PK der Lizenz Throws InvalidIDException Es existiert keine Lizenz zum Parameter licenceld InternalDbifError Schwerer Fehler in webshop dbif getShopSettings Holt die Shop Einstellungen f r den Webshop Standardm ig werden die Einstellungen mit der in webshop dbif DB_Access SHOP_ID festgelegten ID aus der
193. ufgetre ten waren das Anzeigen von Artikeln im Hauptfenster Jeder Artikel im Hauptfenster wird von einer Instanz der Klasse JThumbnail repr sentiert Das Problem war nun dass zum Anzeigen des Bildes zu einem Artikel der absolute Pfad Anteil des Bildes bekannt sein musste welcher wiederum in den Shop Einstellungen zu finden war Fiir jedes angezeigte Bild im Hauptfenster hatte somit eine neue Anfrage an die Datenbank gestartet werden miissen was mitunter arge Performance Probleme zur Folge gehabt hatte Zur Vermei dung dieser Probleme werden die Shop Einstellungen in der Klasse DBSupporter statisch gecached um sie fiir alle Instanzen des Programms global zur Verfiigung zu stellen Problem Unvollst ndige Implementierung des Swing Dateimanagers Urspriinglich sollte der Swing Dateimanager benutzt werden um Urls einem Artikel zuzu ordnen Dies war jedoch nicht m glich da der Swing Dateimanager JFileChooser in der verwendeten Version 1 2 2 der Java Entwicklungsumgebung nicht vollstandig implemen tiert ist und somit eine notwendigen Funktionen des Dateimanagers nicht zur Verf gung standen Abhilfe brachte ein eigens entwickelter Dateimanager der auf der Klasse JDialog basiert und dessen Funktionalit t im Wesentlichen auf einer JZist und der Klasse File realisiert wird Problem Drag und Drop auf Tabellen in einem JScrollPane Die Klasse JTable des Swing Paketes implementiert das Interface Scrollable nicht korrekt Falls f r die Tabelle
194. umentFormat DocumentFormat format throws InternalDbifError InvalidIDException Parameters format webshop classes DocumentFormat Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Formats ist ungiiltig deleteDocumentFormat L scht einen Eintrag in der Tabelle Format public static void deleteDocumentFormat DocumentFormat format throws InternalDbifError InvalidIDException InvalidDeleteIDException Parameters format webshop classes DocumentFormat Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Formats ist ungiiltig InvalidDeletelDException Es existiert noch eine Fremdschliisselbeziehung zu dem Daten satz insertFolder Fiigt einen neuen Folder in die Tabelle Folder ein public static int insertFolder Folder newFolder throws InternalDbifError InvalidIDException Parameters Folder webshop classes Folder Returns Die vergebene ID PK fiir den neuen Folder Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die FatherFolderld des Folders ist ung ltig deleteFolder L scht einen Folder aus der Tabelle Folder Seine Subfolder werden an seinen FatherFolder gehangen und die Dokumente innerhalb des Folders werden folderlos gesetzt indem alle Zuordnungen in der Tabelle Document_Folder zu dem gel schten Folder eben falls entfernt werden public static void deleteFolder Folder obsoletFolder throws InternalDb
195. unberechtigtem Zugriff gesch tzt werden Session IDs in Verbindung mit Login und Passwort zur Identifikation 2 3 Architektur DDS Access Apache WWW Server Access Module DDS Authoring Shop Manager Classification Manager N N 3 e Payment Handler RMI Verbindung DDS Payment DDS DB Abbildung 2 1 Die Architektur des DDS Systems 10 KAPITEL 2 DAS DDS SYSTEM Die Architektur unseres DDS Systems wird in Abbildung 2 1 skizziert Es besteht aus den f nf Komponenten DDS Authoring Authoring Komponente DDS DB Datenbank Komponente DDS Web Web Komponente DDS Payment Payment Komponente und DDS Access Dokumentenschutz Komponente die im Folgenden kurz vorgestellt werden sollen Die Anbindung der DDS Payment Komponente an die Komponenten DDS Access und DDS Web sowie zum Austausch der m glichen Zahlungsverfahren auch an die Komponente DDS Authoring geschieht ber den RMI Client des Payment Handlers Die Kommunikation zwischen DDS Payment und DDS Datenbank erfolgt direkt da f r die Payment Komponente eigene Ta bellen in der Datenbank angelegt werden 2 3 1 Datenbank Komponente Die Daten des iShops werden in einer Datenbank gespeichert die durch die Komponente DDS DB gekapselt wird Der Zugriff auf die Datenbank erfolgt ber JDBC Java Database Connecti vity So k nnen im Prinzip alle Datenbanksysteme verwendet werden die JDBC unterst tzen 2 3 2 Payment Komponente
196. ung 6 27 6 3 BENUTZUNGSHANDBUCH 109 aom ox Bertelsmann Oreilly Springer Neuer Verlag A Abbildung 6 27 Ein Datenbankfenster des Authoring Tools Im oberen Bereich eines Datenbankfensters stehen die eigentlichen Inhalte Diese werden ab einer gewissen Anzahl nicht mehr komplett angezeigt und k nnen durch Verschieben des Scroll balkens sichtbar gemacht werden Im Autoren Datenbankfenster besteht die M glichkeit die einzlnen Autoren per Drag and Drop in das Autoren Fenster zu ziehen Der untere Bereich eines Datenbankfenster dient dem Hinzufiigen neuer Inhalte In das entsprechende Textfeld kann ei ne beliebige Zeichenfolge eingegeben werden die durch Best tigen mittels der Enter Taste dem Inhaltsfeld und der Datenbank hinzugefiigt wird 6 3 2 4 Details Fenster In dem Details Fenster stehen alle n heren Informationen zu einem Dokument die nicht bereits in einem der tibrigen Fenster dargestellt wurden Abgebildet ist das Details Fenster in Abbildung 6 28 Y EMOS iS Titel Mord im Orient Express Beschreibung Miss Marple entlarvt einen M rder im ber hmten Orient Express ISBN 4 223 45 832 445 Bertelsmann v Verlag Erscheinungsjahr 1957 Ausgabe 1 Format PDF v Typ Buch v Sprache Deutsch v Verwerfen OK Jj Abbildung 6 28 Das Details Fenster des Authoring Tools Von oben nach unten k nnen hier der Titel eine Beschreibung die ISBN das Erscheinungs
197. unikation zwischen diesen beiden Komponenten l uft ber Zeichenketten ab Will ein User des Systems ein gesch tztes Dokument einsehen so zerlegt das Server Plugin die URI der Anfrage in zwei Teile den Sessionkey und den Rest der URI der beschreibt um welches Dokument es sich handelt Diese beiden Zeichenketten werden dann ber die Socket Verbindung an das Security Servlet geschickt Das Servlet sendet dann nach berpr fung der Daten eine entsprechende Antwort an das Servlet zur ck e ok Die Daten wurden berpr ft und der User darf auf das angeforderte Dokument zu greifen 5 6 SCHNITTSTELLENBESCHREIBUNG 81 e standard HashID Die Lizenz des Users ist zwar giiltig aber der Sessionkey ist abge laufen Das Server Plugin sendet nun ein Formular mit einer Passwortabfrage an den User Bei korrekter Eingabe des Kennworts wird ein neuer Sessionkey erstellt Die HashID dient zum Erhalt der Daten des Servlets w hrend der Abfrage e firstClick HashID Die Lizenz des Users ist zwar giiltig allerdings wurde zum ersten Mal auf das Dokument zugegriffen Daher sendet das Server Plugin ein Formular mit einer Passwortabfrage an den User Wurde das Kennwort richtig eingegeben so wird ein g ltiger Sessionkey erstellt Die HashID dient zum Erhalt der Daten des Servlets w hrend der Abfrage e lizenzabgelaufen Die Lizenz des Users ist ungiiltig Daher wird der Zugriff auf das Dokument verweigert e nochnichtbezahlt Der User hat zwar eine k
198. ur Anzeige Ihres aktuellen Warenkorbs in dem Sie noch weitere Einstellungen vornehmen k nnen und f r die enthaltenen Dokumente Lizenzen bestellen k nnen Der Warenkorb bietet die M glichkeit zun chst mehrere Dokumente zwischen zu speichern um dann sp ter entscheiden zu k nnen ob man die entsprechenden Lizenzen kaufen m chte bzw wie viele Lizenzen eines Dokuments man f r welchen Zeitraum kaufen m chte Sowohl bei Layout 1 als auch bei Layout 3 befindet sich im Men der Punkt Warenkorb Wenn Sie auf Warenkorb klicken werden Ihnen die Dokumente angezeigt die Sie in den Warenkorb gelegt haben Sollten sich keine Dokumente im Warenkorb befinden wird dies durch den folgenden Informationstext deutlich gemacht Ihr Warenkorb ist noch leer Im Layout 1 wird dieser Text im Hauptframe angezeigt im Layout 2 wird dieser Text schon zu Beginn im linken unteren Frame angezeigt und im Layout 3 wird dieser Text oberhalb des Hauptframes angezeigt Wenn sich Dokumente im Warenkorb befinden werden sie auf folgende Weise aufgelistet 7 3 BENUTZERHANDBUCH 135 Anzahl Beschreibung Preis TooLib Homepage Rolfs Andre Boles Diet 1 50 DM Min Carl Lewis Memoiren Rolfs Andre 020DM Min Upd Artikel Boles Dietrich Frank Pa 13 00 DM Min Anpfiff 3 Teil Hans Rosenthal 999 DM Min Reset Warenkorb merken Bitte ausw hlen Bestellen Abbildung 7 11 Der Warenkorb Anzahl Die Anzahl der Lizenzen kann von Ihnen in diesem Eingabefel
199. urde Betrag der Zahlung Der Betrag der von Ihnen bezahlt wurde Zahlungsmittel Das von Ihnen benutzte Zahlungsmittel Kundenkonto Kreditkarte E Cash Status Der Status ob die Bezahlung bzw Aufbuchung schon durchgef hrt wurde bzw schon abgeschlossen ist Dokumentanzeige Computer Science Katzgorien FormalLarguases Information Sys ems Tiel Too_ib Homepage Rolfs Andre Boles Dot 1 5 DM Min Y Abbildung 7 19 Die Dokumentanzeige Im Hauptframe werden falls vorhanden die Dokumente aus der gew hlten Kategorie in Form einer Kurzfassung dargestellt Abb 7 19 Dabei werden f r jedes Dokument die folgenden Merkmale angezeigt bzw in Form von kleinen Grafiken dargestellt Titel des Dokuments Unter welchem Titel das Dokument erschienen ist Autor en des Dokuments Wer an der Entwicklung des Dokumentes beteiligt war Das Infosymbol E Diese Bild repr sentiert einen Link auf die LangInfo zu dem entsprechen den Dokument 144 KAPITEL 7 DDS WEB KOMPONENTE Preis Der Preis fiir eine Lizenz ber diese Dokument in DM pro Minute Das Warenkorbsymbol Y Diese Bild erscheint nur wenn das Dokument noch nicht im Wa renkorb enthalten ist Sie haben nun die M glichkeit sich durch einen Mausklick auf das LangInfo Symbol dieselbige anzuschauen Desweiteren steht ihnen ggf noch der Link zur Verf gung um dieses Dokument in den Warenkorb legen zu k nnen 7 3 BENUTZERHANDBUCH 145 7 3 3 Die Interaktionsm gl
200. urde FK phPay id NUMBER ID der Transaktion mit der die Lizenz be zahlt wurde Die ID wird extern vom Payment Manager vergeben duration NUMBER Dauer der Lizenz in einer Zeiteinheit first_click NUMBER Datum Zeit des ersten Zugriffs auf die Lizenz valid NUMBER Kennzeichnung dass die Lizenz bereits bezahlt wurde Tabelle 3 10 Tabelle Licence Customer_Session Die Tabelle Customer_Session enth lt Daten f r den Dokumenten Zugriffsschutz Greift ein Kunde auf ein Dokument zu und besitzt eine g ltige Lizenz wird von einem Sicherheits Manager eine Sitzung erzeugt und die Sitzungsdaten in diese Tabelle eingetragen Die Sitzung stellt ein einfacheres Zugiffs und Sicherheitskonzept dar denn solange eine Sitzung g ltig ist die Dauer wird vom Sicherheits Manager vorgegeben ist eine Authentifizierung des Kunden und eine berpr fung der Lizenz unn tig Hier soll die session_id als Zugriffsschl ssel f r die Lizenz dienen Attributname Domain Beschreibung session_id NUMBER ID der Sitzung PK licence_id NUMBER ID der Lizenz die in der Sitzung abgerufen wird FK valid_to NUMBER Datum Zeit bis die Sitzung ung ltig wird Tabelle 3 11 Tabelle Customer_Session 3 1 DATENBANK ENTWURF 23 Customer Die Tabelle Customer enth lt die Kundendaten des DDS Erforderliche Daten eines Kunden sind hier aber lediglich login und password Alle anderen Angeben sind freiwillig und dienen z T nur statistisc
201. ut Auswahl kann per Doppelklick auf ein Layout eine vergr erte Vorschau des Layouts gew hlt werden Abb 6 22 6 1 ENTWURF Shop Einstellungen Generell Internet Zahlung Name des Shops AGB Verwerfen Speichern Abbildung 6 18 Authoring Tool Allgemeine Shop Einstellungen Shop Einstellungen Generell Internet Zahlung Web Adresse E Mail Verwerfen Speichern Abbildung 6 19 Authoring Tool Internet Einstellungen des Shops Shop Einstellungen x Generell Internet Zahlung Zahlungsarten Zahl Artl Zahl Art2 Zahl Art3 Zahl Art4 Zahl Art5 Verwerfen Speichern Abbildung 6 20 Authoring Tool Payment Einstellungen des Shops 98 KAPITEL 6 AUTHORING KOMPONENTE Layout ausw hlen Layout 1 Layout 2 Layout 3 Layout 4 Verwerfen Speichern Abbildung 6 21 Authoring Tool Auswahl eines Layouts Layout ansehen Layout 1 Ok Abbildung 6 22 Authoring Tool Detailansicht eines Layouts 6 2 IMPLEMENTIERUNG 99 6 2 Implementierung Nachdem der Entwurf des Authoring Tools festgelegt war startete die
202. webshop servlet BasketPage e webshop servlet CustomerPage e webshop servlet DocumentListPage e webshop servlet Document Page e webshop servlet ErrorPage e webshop servlet HelpPage e webshop servlet InfoPage e webshop servlet LicencePage e webshop servlet LoginPage e webshop servlet OrderPage e webshop servlet SearchPage e webshop servlet ShopFramePage abstract class e webshop servlet CatPage e webshop servlet EmptyFramePage e webshop servlet FolderPage e webshop servlet LogoPage e webshop servlet NavigationPage e webshop servlet HeadPage Abbildung 7 2 Die Klassenstruktur der ShopPages Das Servlet Basket Viewer dient der Anzeige und nderung der Mengen und Zeiten des Waren korbinhalts Uber den Warenkorb kann fiir eine Bestellung der OrderViewer aufgerufen werden Das Servlet Basket Viewer erzeugt die Html Seiten e BasketPage fiir die Darstellung des Warenkorbs e OrderPage zur Eingabe der Bestellung e LoginPage wenn eine Bestellung gemacht wird bevor der Kunde sich angemeldet hat Das Servlet Cat Viewer generiert die Anzeige der Kategorien die im Layout 2 oben rechts angezeigt werden Das Servlet Cat Viewer erzeugt die Html Seite e CatPage in Layout 2 die Anzeige der Kategorien Das Servlet Customer Viewer deckt die Funktionen ab welche fiir die Benutzerverwaltung ben tigt werden Das sind Kunden anlegen bzw Kundendaten bearbeiten Kontoauszug anzeigen und Kundensitzung abmelden Das Servlet CustomerViewer erz
203. werden Au erdem stellte sich w hrend der Integration heraus dass eine Reihe von neuen Anforderungen an die Schnittstelle auftauchten die dann erst in der Schlussphase umgesetzt wurden Hier sei en Modifikationen an der Tabelle Shop_Settings die Erweiterung der Suchfunktionalit t sowie die Ausgliederung und Umstrukturierung der Entit ten f r den Payment Handler genannt 3 3 2 Aufbau der DDS DB Komponente classes servlet server payment InvalidIDException H 1 kesa UN InvalidWritelDException InvalidDeletelDException InvalidSemanticException InvalidLoginException DBMediator IncompleteDataException BadFitException InternalDbifError Abbildung 3 4 webshop dbif Paketstruktur 3 4 DB OPTIMIERUNGSASPEKTE 47 3 4 DB Optimierungsaspekte Bei der gegenw rtigen Implementierung der Datenbank Komponente ging es zun chst darum die von den jeweiligen Teilsystemen geforderte Funktionalit t innerhalb der gesetzten Zeit und Dauer der Projektgruppe in den Schnittstellen umzusetzen Es bleibt auf jedem Niveau der Im plementierung immer noch ein gewisser Spielraum um die Performance der Datenbankzugriffe zu verbessern bzw weiter zu optimieren Die zum Abschluss der Projektgruppe vorliegende Version der DB Schnittstellen beschr nkt sich auf die Konzepte die durch das JDBC1 0 API bereitgestellt werden Samtliche Statements ber die die Datenbank kontaktiert wird verwen
204. werer Fehler in webshop dbif InvalidIDException Die ID des Autors ist ung ltig deleteAuthor L scht einen Eintrag in der Tabelle Author public static void deleteAuthor Author author throws InternalDbifError InvalidIDException InvalidDeleteIDException Parameters author webshop classes Author Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Autors ist ung ltig InvalidDeletelDException Es existiert noch eine Fremdschliisselbeziehung zu dem Daten satz insertPublisher Fiigt einen neuen Verlag in die Tabelle Publisher ein public static int insertPublisher Publisher publisher throws InternalDbifError Parameters publisher webshop classes Publisher Returns Die vergebene ID PK fiir den neuen Verlag Throws InternalDbifError Schwerer Fehler in webshop dbif updatePublisher Aktualisiert einen Eintrag in der Tabelle Publisher public static void updatePublisher Publisher publisher throws InternalDbifError InvalidIDException Parameters publisher webshop classes Publisher Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Die ID des Publishers ist ungiiltig deletePublisher L scht einen Eintrag aus der Tabelle Publisher public static void deletePublisher Publisher publisher throws InternalDbifError InvalidIDException InvalidDeleteIDException Parameters publisher webshop classes Publisher Throws InternalDbifError Schwerer Fe
205. ws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert kein Customer zu den Parametern get TaStatus Pr ft ob eine Transaktion erfolgreich abgeschlossen wurde public static boolean getTaStatus int phPayld throws InternalDbifError InvalidIDException Parameters phPay id PK in der Tabelle Transaction Returns TRUE wenn die Transaction zu dem Parameter phPayld als erfolgreich gekenn zeichnet ist sonst FALSE Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert keine Transaction zum Parameter phPayld setFirstClick Setzt den First_Click der Lizenz mit der im Parameter iibergebenen ID licenceld auf die aktuelle Systemzeit sofern First_Click nicht bereits vorher gesetzt wurde public static void setFirstClick int licenceld throws InternalDbifError InvalidIDException InvalidSemanticException Parameters licenceld PK in der Tabelle Licence Throws InternalDbifError Schwerer Fehler in webshop dbif InvalidIDException Es existiert keine Lizenz zum Parameter licenceld InvalidSemanticException Das Update ist Fehlgeschlagen weil First_Click bereits gesetzt war setSessionID Tr gt eine neue Session in Tabelle Customer_Session ein Dies darf erst dann ge schehen wenn die Lizenz durch Setzen des Fist_Click aktiviert wurde und nicht abgelaufen ist public static void setSessionID java lang String sessionId int licenceld java util Date validTo th
206. yment und DDS Authoring zusammenarbeitet und die Kommunikationsschnittstelle zwischen dem Kunden und dem DDS System in Form von dynamischen Web Seiten realisiert Der folgende Teil des Berichts befasst sich mit der Erstellung der DDS Web Komponente in dem die folgenden Unterpunkte besprochen werden e Der Entwurf der DDS Web Komponente e Die Architektur der DDS Web Komponente Als zweiter Teil folgt das Benutzungshandbuch mit den Screenshots zu den einzelnen Ober fl chenlayouts und den enthaltenen Teil Fenstern Dort wird erkl rt wie der Betreiber und der Benutzer des DDS Systems vorgehen m ssen damit sie den iShop m glichst effektiv nutzen k nnen Am Ende dieses Kapitels werden die Klassenstrukturen grafisch dargestellt 117 118 KAPITEL 7 DDS WEB KOMPONENTE 7 2 Entwurf und Ipmlementierung Dieser Abschnitt beschreibt die Vorgehensweise der Gruppe bei der Implementierung Dazu geh rt der Meilensteinplan der Entwurf und die Architektur der Servlets 7 2 1 Der Meilensteinplan Da der Gruppe die Erfahrungen in der Servlet Programmierung fehlte ging die Gruppe direkt von der Experimentier und Test Phase also wie man mit Servlets arbeitet und was sie be wirken in die Implementierungs Phase ber Deswegen lag der erste Meilenstein in der Mitte des Monats August Bis zu diesem Zeitraum sollte dann die Implementierung weitestgehend abgeschlossen sein Nach der Implementierung erfolgte die Integration mit den weiteren
207. ypen darstellen Andere Realisierungen sind durchaus denkbar und bei einer Erweiterung des Webshops eventuell sogar n tig 6 1 1 3 Das Holderkonzept im GUI Klassenmodell Die Darstellung der Holder Informationen erfolgt in jeweils eigenen Fenstern die jedoch gewisse Funktionalit ten gemeinsam haben Daher gibt es eine Klasse HolderFrame die die Basis f r alle Holder Fenster darstellt siehe Abbildung 6 2 Diese Klasse enth lt zwei Buttons einen zum Speichern des Inhaltes in der Datenbank und einen zum Reinitialisieren des Inhaltes mit den zuletzt gespeicherten Daten In jeder Instanz dieser Klasse HolderFrame befindet sich f r einen Informationsbereich des Dokumentes eine Erweiterung der abstrakten Klasse HolderPanel welche grundlegende Funktionalit ten kapselt die jedes Panel in einem Holder Frame ben tigt 6 1 ENTWURF 87 Document DocumentType Publisher Format Author gt ShopEntity Language AuthorInfo n N java util Vector OfferHolder 9 1 AuthorHolder Holder DetailHolder UrlHolder 0 1 1 1 n 0 1 Document ShopUrl 1 1 EventListener 1 n List SaveListener Abbildung 6 1 Das allgemeine Klassenmodell des GUI Es existiert also f r jeden Holder Typen ein eigenes Fenster das die Informationen eines konkre ten Holders in einem dem Typen entsprech
208. ysteme R ckgabewert Ein Vektor mit allen Zahlungssystemen Brand Ausnahme RemoteException Ein Fehler in der RMI Verbindung e Transaction getTransaction int phPayld Login login Beschreibung Liefert einen gespeicherten Bezahlvorgang Transaktion Parameter phPayld Die Nummer der Transaktion die zur ckgegeben werden soll Parameter login Die Login Daten des Shops Username Passwort R ckgabewert Die Transaktion zur phPayld Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException bergabeparameter sind inkonsistent Ausnahme TransactionDoesNotExistException Keine Transaktion zur phPayld vor handen Ausnahme InternalDbifError Datenbankfehler e Vector getCustomer TransactionsSinceDate int customerld Date date Login login 4 2 SCHNITTSTELLEN 51 Beschreibung Liefert f r einen Kunden die vorhandenen Transaktionen ab einem bestimmten Datum Parameter customerId Identifikationsnummer des Kunden Parameter date Anfangsdatum der Transaktionen Parameter login Die Login Daten des Shops R ckgabewert Ein Vektor mit Transaktionen Ausnahme RemoteException Ein Fehler in der RMI Verbindung Ausnahme IllegalParameterException bergabeparameter sind inkonsistent Ausnahme CustomerDoesNotExristException Kunde ist nicht vorhanden Ausnahme InternalDbifError Datenbankfehler e int getTaStatus int phPayld Login login Beschreibung Liefert de
209. zerhandbuch nn 7 3 1 Erkl rungen f r den Betreiber nun nen 7 3 2 Handbuch f r den Benutzer e 7 3 3 Die Interaktionsm glichkeiten des Benutzers 7 4 Klassenstruckturen e 8 Bewertung und Ausblick iii 76 77 77 78 79 80 80 82 82 85 85 85 88 99 99 101 104 104 104 114 117 117 118 118 118 121 124 125 125 145 149 151 lv INHALTSVERZEICHNIS Abbildungsverzeichnis 2 1 3 1 3 2 3 3 3 4 4 1 4 2 5 1 5 2 5 3 5 4 5 0 5 6 5 7 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 Die Architektur des DDS Systems 2 0 00 000000005 9 Entity Relationship Diagramm f r die DDS Einstellungen 15 Entity Relationship Diagramm f r den DDS 16 Entity Relationship Diagramm f r den Payment Manager 18 webshop dbif Paketstruktur e cee eee ee 46 Klassenhierarchie des Payment Systems 56 Screenshot des Administrations Tools o 64 Ist die Session ID jemals g ltig gewesen o ees 71 Ist die Session ID noch g ltig bzgl der 30 Minuten Grenze 72 Ist der first_click gesetzt o nn 73 Ist die Lizenz schon bezahlt e 74 Ist die UE 75 Der first click Request 2 2 2 aoaaa nn 76 Der Standard Request TT Das allgemeine Klassenmodell des GUTE 87 Das spezielle Klassenmodell des OUT 88 Shop Einstellungen ndern saoo 89 Ne s D k men
210. zt Abbildung 5 2 Ist die Session ID noch giiltig bzgl der 30 Minuten Grenze Wie schon oben beschrieben ist die Giiltigkeit einer Session ID zeitlich begrenzt um zu verhin dern dass Webshop Lizenzen ber das Internet von mehreren Usern gleichzeitig genutzt werden In diesem Beispiel ist die Grenze auf 30 Minuten gesetzt Ist die aktuelle Session ID noch bez glich der 30 Minuten Grenze g ltig m ssen die Daten des Users nicht weiter berpr ft werden Deshalb sendet das Security Servlet den String ok per Socket Verbindung an das C Modul Das C Modul reagiert auf diesen String indem es die an geforderte Seite auf dem Browser des Users darstellt Ist die aktuelle Session ID nicht mehr beziiglich der 30 Minuten Grenze giiltig so kann das meh rere Griinde haben In jeden Link auf Dokumente des Webshops wird eine Session ID eingebaut damit das C Modul weiss dass diese Links iiberpriift werden missen Jedoch soll die Zeit die ein User ber eine Lizenz zum Lesen der Dokumente gekauft hat erst heruntergez hlt werden sobald er das erste Mal auf das Dokument zugreift Deshalb wird dem User im Webshop ein Link auf das lizensierte Dokument zur Verf gung gestellt welcher eine in der Datenbank eingetragene Session ID enth lt die jedoch schon abgelaufen ist Erst wenn der first_click also der erste Zu eriff auf ein lizensiertes Dokument in der Datenbank eingetragen ist wird die eingekaufte Zeit heruntergez hlt Deswegen wird auch e

Download Pdf Manuals

image

Related Search

Related Contents

ダウンロード(PDF 0.52 MB)  Lenovo Ideaphone S860 16GB Stainless steel, Titanic  Koolance VID-200-L06  TL-LD500-R 取扱説明書  カウンタ・パワーメータ[CPM20/46]  USER MANUAL  Premiere User`s Manual  Bonnie User Manual  

Copyright © All rights reserved.
Failed to retrieve file