Entwicklung eines konfigurierbaren Softwaretools für Kreditinstitute auf Internetbasis
- Art: Diplomarbeit
- Autor: Christian Schloz, Rainer Gross
- Abgabedatum: Juni 1998
- Umfang: 189 Seiten
- Dateigröße: 1,1 MB
- Note: 1,5
- Institution / Hochschule: Fachhochschule Konstanz Deutschland
- ISBN (eBook): 978-3-8324-2267-7
-
ISBN (Paperback) :
978-3-8324-2267-7 P - ISBN (CD) :978-3-8324-2267-7 CD
- Sprache: Deutsch
- Prämierung:
- Arbeit zitieren: Christian Schloz, Rainer Gross Juni 1998: Entwicklung eines konfigurierbaren Softwaretools für Kreditinstitute auf Internetbasis, Hamburg: Diplomica Verlag
- Schlagworte: Skriptsprache, DCOM, Objektorientierung, Java, CORBA
In den Warenkorb
38,00 €
Diplomarbeit von Christian Schloz, Rainer Gross
Einleitung:
Die Diplomarbeit Entwicklung eines konfigurierbaren Softwaretools für Kreditinstitute auf Internetbasis diente der Neuentwicklung eines Systems, welches bestehende Serverapplikationen eines Kreditistituts unter einheitlicher, durch eine Skriptsprache konfigurierbare Oberfläche zusammenfaßt. Die Neuerungen des in der vorliegenden Diplomarbeit beschriebenen Systems beziehen sich auf den zugrunde liegenden objektorientierten Systementwurf, die Client-Server-Architektur, die eingesetzte Skriptsprache sowie die Verwendung zeitgemäßer Internettechnologien.
Um die für das entwickelte System geeigneten Internettechnologien auswählen zu können, wurden unter anderem verschiedene WWW-Programmiertechniken, die Programmiersprache Java und das Modell JavaBeans sowie mehrere verteilte Objektsysteme und Mechanismen zur Datensicherheit in Netzwerken analysiert.
Das unter Berücksichtigung der Untersuchungsergebnisse entworfene System verwendet verteilte Objekte zur Realisierung der Client-Server-Kommunikation. Eine Clientapplikation wird anhand einer eigens dafür entworfenen, der des ursprünglichen Systems ähnlichen Skriptsprache entwickelt, wobei der Anwendungsprogrammierer sich nicht um das Objektmanagement zu kümmern braucht, gesteuert durch Skripte, wird es vom System selbst übernommen. Dabei geschieht die Zuweisung von Objektattributen mit Hilfe eines verteilten Parsingverfahrens, jedes durch ein Skript verursachtes Objekt besitzt seinen eigenen Parser und parametrisiert sich anhand des zugehörigen Skriptausschnitts selbst.
Ein nach diesem Systementwurf in der Sprache Java entwickelter Prototyp verwendet zur Kommunikation mit Serverapplikationen alternativ die Protokolle Java-RMI oder DCOM. Damit die Skriptsprache und somit das gesamte System um neue Funktionalität in Form von Variablen, Grafikkomponenten und Instruktionen erweitert werden kann, wurde ein spezieller Mechanismus implementiert, der es ermöglicht, ohne das System erneut zu übersetzen, zusätzliche Klassen mitsamt der entsprechenden Skriptsyntax zu ergänzen.
Schließlich galt das Projekt der Erprobung eines disziplinierten Softwareentwicklungsverfahrens, weshalb besonderes Augenmerk auf die Dokumentation des Projektverlaufs gerichtet wurde. In diesem Zusammenhang werden sowohl das Capability Maturity Model als auch die Digital Program Methodology vorgestellt.
Inhaltsverzeichnis:
| Vorwort | VIII | |
| Abkürzungsverzeichnis | X | |
| Darstellungsverzeichnis | XII | |
| Abbildungen | XII | |
| Tabellen | XIII | |
| 1. | Einleitung | 1 |
| 1.1 | Die Diplomarbeitsfirma | 1 |
| 1.2 | Das Projekt | 1 |
| 1.3 | Vorgehensweise zur Durchführung des Projekts | 3 |
| 1.4 | Projektziele | 4 |
| 2. | Das Entwicklungstool VórteX | 5 |
| 2.1 | Die Entstehungsgeschichte von VórteX | 5 |
| 2.2 | Der Aufbau von VórteX | 6 |
| 2.3 | Der Transaktionsserver | 7 |
| 2.4 | Der Navigator | 7 |
| 2.4.1 | Die Navigatoroberfläche und -funktionalität | 7 |
| 2.4.2 | Die Navigatorskriptsprache | 8 |
| 2.5 | Der Dialogserver | 10 |
| 2.6 | Die Modulkommunikation | 11 |
| 3. | Untersuchung internetgeeigneter Technologien | 13 |
| 3.1 | Netzwerkcomputer | 13 |
| 3.2 | WWW-Programmiertechniken | 15 |
| 3.2.1 | Hypertext Markup Language (HTML) | 15 |
| 3.2.2 | Hypertext Transfer Protocol (HTTP) | 17 |
| 3.2.3 | Dynamische HTML-Seiten | 18 |
| 3.2.3.1 | CGI-Server | 18 |
| 3.2.3.2 | Active Server Pages | 19 |
| 3.2.4 | Java Script | 20 |
| 3.3 | Java | 23 |
| 3.3.1 | Übersicht zu Java | 23 |
| 3.3.2 | Unterschiede zwischen Java und C++ | 24 |
| 3.3.3 | Java-Applets | 27 |
| 3.3.4 | Exceptions in Java | 28 |
| 3.3.5 | Threads und Synchronisation in Java | 31 |
| 3.3.6 | Klassenpakete und Java-Bibliotheken | 32 |
| 3.3.7 | Möglichkeiten zur Optimierung von Java | 33 |
| 3.3.8 | Sicherheitsmechanismen von Java | 34 |
| 3.4 | JavaBeans | 35 |
| 3.4.1 | Ereignisse | 36 |
| 3.4.1.1 | Klassen zur Ereignisbehandlung | 36 |
| 3.4.1.2 | Ereignisadapter | 38 |
| 3.4.2 | Attribute von Beans | 40 |
| 3.4.2.1 | Getter- und Setter-Methoden | 40 |
| 3.4.2.2 | Bound-Properties | 41 |
| 3.4.2.3 | Constrained-Properties | 42 |
| 3.4.3 | Analyse von Beans | 43 |
| 3.4.3.1 | Analyse nach Namengebungsregeln | 43 |
| 3.4.3.2 | Analyse durch Bean-Beschreiber | 44 |
| 3.4.3.3 | Der Bean-Analysator | 44 |
| 3.4.4 | Parametrisierung von Beans | 45 |
| 3.4.4.1 | Customizer | 45 |
| 3.4.4.2 | Attributeditoren | 45 |
| 3.4.5 | Speicherung von Beans | 46 |
| 3.5 | Objektorientierte verteilte Client-Server-Systeme | 46 |
| 3.5.1 | Prinzipien der Objektorientierung | 46 |
| 3.5.2 | Das Client-Server-Prinzip | 48 |
| 3.5.3 | Verteilte Objekte | 48 |
| 3.5.4 | CORBA | 49 |
| 3.5.5 | CORBA-Produkte | 51 |
| 3.5.5.1 | Funktionalität der untersuchten CORBA-Produkte | 51 |
| 3.5.5.2 | Test unterschiedlicher CORBA-Produkte | 52 |
| 3.5.6 | Remote Method Invocation (RMI) | 55 |
| 3.5.7 | Distributed Component Object Model (DCOM) | 57 |
| 3.5.7.1 | Kommunikation zwischen COM-Objekten | 57 |
| 3.5.7.2 | Marshaling | 59 |
| 3.5.7.3 | Definition eines COM-Objektes | 59 |
| 3.5.7.4 | Instanziierung von COM- und DCOM-Objekten | 60 |
| 3.5.7.5 | Anwendung von Methoden auf COM-Objekte | 61 |
| 3.5.7.6 | Sicherheitsmechanismen von DCOM | 62 |
| 3.6 | ActiveX-Controls | 62 |
| 3.7 | Datensicherheit in Netzwerken | 64 |
| 3.7.1 | Übersicht zur Datensicherheit | 64 |
| 3.7.2 | Umfang des VorteX-Inet-Sicherheitskonzepts | 65 |
| 3.7.3 | Authentikation | 65 |
| 3.7.3.1 | Authentikation durch Login | 65 |
| 3.7.3.2 | Authentikation durch Digitalzertifikate | 66 |
| 3.7.4 | Autorisierung | 68 |
| 3.7.4.1 | Autorisierung durch Dateiattribute | 68 |
| 3.7.4.2 | Dynamische Autorisierung | 68 |
| 3.7.5 | Verschlüsselung | 69 |
| 3.7.5.1 | Symmetrische Verschlüsselung | 69 |
| 3.7.5.2 | Asymmetrische Verschlüsselung | 69 |
| 3.7.5.3 | Verschlüsselungsstandards und -produkte | 69 |
| 3.7.6 | Datensicherheit im System VorteX Inet | 70 |
| 4. | Modellierung eines neuen Systems | 71 |
| 4.1 | Am Anfang stand eine Idee | 71 |
| 4.2 | Anforderungen an das neue System | 71 |
| 4.3 | Vorbemerkung zur Funktionalität des Prototypen | 72 |
| 4.4 | Die Funktionalität des VorteX-Inet-Prototypen | 75 |
| 4.4.1 | Die Funktionalität des Navigators | 75 |
| 4.4.2 | Die Funktionalität von Dialogen | 76 |
| 4.4.3 | Die Funktionalität von Transaktionen | 78 |
| 4.4.4 | Die VorteX-Inet-Skriptsprache | 78 |
| 4.4.5 | Ein grafisches Entwicklungstool | 84 |
| 4.5 | Auswahl zur Implementierung verwendeter Technologien | 85 |
| 4.5.1 | Festlegung der Auswahlkriterien | 85 |
| 4.5.2 | Technologien für den VorteX-Inet-Client | 86 |
| 4.5.3 | Technologien für den VorteX-Inet-Server | 89 |
| 4.5.4 | Zusammenfassung | 92 |
| 4.6 | Die logische Struktur von VorteX Inet | 92 |
| 4.7 | Der Softwareentwurf | 95 |
| 4.7.1 | Die Systemstruktur | 95 |
| 4.7.2 | Die Gruppe des Interface VorteXParser | 97 |
| 4.7.3 | Die Gruppe des Interface VorteXVar | 100 |
| 4.7.3.1 | Die Klasse VorteXNameSpace | 101 |
| 4.7.4 | Die Gruppe des Interface VorteXInstruction | 105 |
| 4.7.5 | Die Gruppe des Interface VorteXComponent | 107 |
| 4.7.6 | Die Gruppe des Interface VorteXContainer | 110 |
| 4.7.6.1 | Die Klasse VorteXNode | 112 |
| 4.7.6.2 | Die Klasse VorteXDataSheet | 113 |
| 4.7.6.3 | Die Klasse VorteXDialog | 113 |
| 4.7.7 | Customizer nach dem JavaBeans-Modell | 114 |
| 4.7.8 | Die Exceptionklassen | 115 |
| 4.7.9 | Die Serverklassen | 116 |
| 5. | Implementierung des Prototypen | 118 |
| 5.1 | Vorbemerkung zur Implementierung | 118 |
| 5.2 | Vorgehensweise der Parser | 118 |
| 5.3 | Systemerweiterungen | 120 |
| 5.4 | Probleme bei der Implementierung von DCOM | 122 |
| 5.5 | Decodierungvon Transaktionsergebnissen | 123 |
| 5.6 | Die Verwendung von Heuristiken | 124 |
| 5.6.1 | Hintergrund zur Verwendung von Heuristiken | 124 |
| 5.6.2 | Heuristiken zur Interpretation von Benutzereingaben | 124 |
| 5.6.3 | Heuristiken für die Deutung von Datenfragmenten | 125 |
| 5.7 | Qualitätssicherung | 127 |
| 5.7.1 | Tests | 127 |
| 5.7.2 | Konfigurationsmanagement | 128 |
| 5.7.3 | Formelle Konventionen | 128 |
| 5.7.4 | Überwachung der Implementierungsphase | 129 |
| 5.7.5 | Coderevision | 129 |
| 6. | Disziplinierte Softwareentwicklung | 131 |
| 6.1 | Ziele disziplinierter Softwareentwicklung | 131 |
| 6.2 | Das Capability Maturity Model (CMM) | 132 |
| 6.2.1 | Übersicht zum Capability Maturity Model | 132 |
| 6.2.2 | Die fünf Reifeniveaus des CMM | 133 |
| 6.2.2.1 | Der Initial Level | 133 |
| 6.2.2.2 | Der Repeatable Level | 133 |
| 6.2.2.3 | Der Defined Level | 133 |
| 6.2.2.4 | Der Managed Level | 134 |
| 6.2.2.5 | Der Optimizing Level | 134 |
| 6.2.3 | Verbesserung des Softwareprozesses mit CMM | 134 |
| 6.3 | Die Digital Program Methodology (DPM) | 135 |
| 6.3.1 | Der Lebenszyklus nach DPM | 135 |
| 6.3.2 | Das Projektmanagement nach DPM | 136 |
| 6.3.3 | Anwendung der DPM | 137 |
| 6.4 | Die Dokumentation des Projekts VorteX Inet | 138 |
| 6.4.1 | Auf DPM basierende VorteX-Inet-Dokumente | 138 |
| 6.4.2 | Zusätzliche VorteX-Inet-Dokumente | 139 |
| 6.5 | Erfahrungen mit disziplinierter Softwareentwicklung | 139 |
| 7. | Schlußbetrachtung und Ausblick | 141 |
| 7.1 | Durchführung des Projektes | 141 |
| 7.1.1 | Definition des Projektes | 141 |
| 7.1.2 | Die Umsetzung der Definition in einen Entwurf | 142 |
| 7.1.3 | Die Implementierung des Softwareentwurfes | 143 |
| 7.1.4 | Integration und Durchführung der Akzeptanztests | 143 |
| 7.1.5 | Abschluß des Projektes | 145 |
| 7.2 | Weiterführung des Projektes | 145 |
| Anhang 1-8 | 147 | |
| Quellenverzeichnis | 168 | |
| Bücher | 168 | |
| Zeitschriften | 168 | |
| Sonstige Quellen | 169 | |
| Ehrenwörtliche Erklärung | 171 |
Dialoge des Systems VorteX Inet sind spezielle Fenster, die die Kommunikation mit dem Anwender realisieren. Ein Dialog ermöglicht die Bereitstellung von Informationen in Abhängigkeit von Benutzereingaben. Die Eingabedaten dienen hierbei als Parameter für auszuführende Transaktionen, deren Ergebnisse dem Benutzer innerhalb des Dialogs übermittelt werden. Ein Dialog wird ebenfalls mit Hilfe der Skriptsprache erstellt. Dabei stehen dem Programmierer verschiedene Komponenten zur grafischen Gestaltung zur Verfügung. Im einzelnen sind dies Labels zur Beschriftung, Knöpfe zum Auslösen von Skriptaktionen und Ein- bzw. Ausgabefelder für Text, Kalenderdatum, Personalausweisnummer, Kontonummer, Geldbetrag und Tabelle. Sofern es möglich ist, werden Benutzereingaben beim Verlassen eines Felds syntaktisch geprüft, bei der Ausweisnummer wird beispielsweise ein Prüfalgorithmus angewandt und die errechnete Prüfziffer mit der eingetippten Zahl verglichen. Entspricht die Eingabe den Vorschriften, dann wird sie formatiert ausgegeben, im gegenteiligen Fall wird der Zustand, den die Komponente vor der nicht akzeptierten Eingabe besaß, wieder hergestellt. Mit dem Verlassen von Feldern oder dem Drücken eines Knopfes können Ereignisse ausgelöst werden, welche Auswirkungen auf verschiedene Dialogkomponenten haben können, beispielsweise die Formatierung der Eingabe oder das Löschen eines anderen Eingabefelds. Aufgrund der Ereignisse, die ebenfalls im Skript programmiert werden, können aber auch Transaktionen gestartet oder weitere Dialoge eröffnet werden. [...]
Zur Ausführung von VorteX-Inet-Applikationen steht dem Anwender ein Java-Applet, genannt Navigator, zur Verfügung. Dieser präsentiert sich in Form eines vertikal zweigeteilten Fensters, die linke Seite zeigt einen Hierarchiebaum, anhand dessen der Anwender die Navigation durch die Anwendung vornimmt, während die rechte Seite zur Ausgabe von Daten an den Benutzer dient. Der Hierarchiebaum setzt sich aus Knoten zusammen, welche ihrerseits Unterknoten enthalten können. Die Darstellung eines Knotens besteht aus einem Icon und dem Knotennamen. Die Hierarchiestufe eines Knotens wird durch Einrückungen, also dem Abstand des Icons vom Fensterrahmen, verdeutlicht. Das Icon zeigt an, ob ein Knoten geöffnet oder geschlossen ist. Das Öffnen bzw. Schließen eines Knotens wird per Mausklick erzielt. Das Erscheinungsbild und die Funktionalität eines Hierarchiebaums werden durch ein Skriptprogramm bestimmt. Das Öffnen eines Knotens kann mehrerlei Folgen haben. Enthält ein Knoten Unterknoten, so werden diese beim Öffnen des übergeordneten Knotens im Hierarchiebaum angezeigt. Außerdem kann das Knotenöffnen einige weitere, beliebig zu kombinierende Aktionen auslösen, welche ebenfalls durch das Skript definiert werden. So können Transaktionen durchgeführt, Dialogfenster geöffnet, andere Bäume oder Teilbäume sowie dynamische, als Transaktionsergebnisse erhaltene Unterknoten angezeigt werden. Jeder Knoten besitzt potentiell die gleiche Funktionalität, sei es ein Haupt-, ein Unterknoten oder ein dynamisch erhaltener Knoten. Für die Ausführung und Kombination der oben erläuterten Aktionen können Variablen innerhalb eines Knotens verwaltet werden. Im Unterschied zum alten System VórteX, wo sämtliche Variablen als Strings gehandhabt werden, besitzt das System VorteX Inet einige speziell für die zu bewältigenden Aufgaben festgelegte Datentypen. Diese Neuerung hielten wir für nötig, um das System besser zu strukturieren und Programmierfehlern durch die unterschiedlich mögliche Deutung eines Strings entgegenzuwirken. Eine bisher nicht erwähnte mögliche Aktion, die durch das Öffnen eines Knotens hervorgerufen werden kann, ist die formatierte Anzeige von Daten im rechten Fenster des Navigators. Die im rechten Fenster anzuzeigenden Daten werden unterhalb eventuell bereits vorhandener Daten dargestellt, so daß früher angezeigte Informationen weiterhin zugänglich bleiben. Übersteigt die Menge der im Fenster darzustellenden Informationen dessen Größe, so können nicht mehr angezeigte Informationen mit Hilfe einer Scrollbar erneut sichtbar gemacht werden. Für die Formatierung derartig auszubreitender Daten stehen dem Skriptprogrammierer verschiedene VorteX-InetKomponenten zur Verfügung, siehe nachfolgenden Abschnitt Die Funktionalität von Dialogen. Hinsichtlich des rechten Navigatorfensters unterscheidet sich die Funktionalität des Prototypen VorteX Inet vom System VórteX. VórteX zeigt zum Beispiel Unterknoten nicht nur innerhalb des Hierarchiebaums, sondern zusätzlich im rechten Fenster an. Dadurch ergibt sich die Möglichkeit, veranlaßt durch das Anklicken eines Knotens im linken Fenster, den selben Knoten im rechten [...]
Für den zu entwickelnden Prototypen mußte eine eingeschränkte Funktionalität bezogen auf das bisherige System festgelegt werden. Während der Modellierungsphase war es von entscheidender Wichtigkeit, die spätere Implementierung von im Prototypen nicht enthaltener Funktionalität zu berücksichtigen. Hierzu einige Beispiele: anders als beim bisherigen System kann von einem Client des Prototypen kein Druckauftrag abgesetzt werden. Wie im Abschnitt Sicherheitsmechanismen von Java im Kapitel Untersuchung internetgeeigneter Technologien beschrieben, ist es jedoch möglich, hierfür eine Lösung zu implementieren. Der Prototyp verwirklicht kein Sicherheitskonzept, unsere diesbezüglichen Vorschläge sind jedoch im Abschnitt Datensicherheit im System VorteX Inet im selben Kapitel aufgeführt. Im Prototypen ebenfalls nicht realisiert sind die Implementierung eines Cache zur Vermeidung unnötigen Netzwerkverkehrs sowie eines Store-and-Forward-Mechanismus, der den OfflineEinsatz von VorteX Inet ermöglichen soll. Wie im Abschnitt Technologien für den VorteX-InetServer zu sehen ist, wurde unter anderem der Cache als Argument gegen die Implementierung von verteilten Serverobjekten genannt, obwohl auch für diesen Fall die Weiterentwicklung des Prototypen zum fertigen Produkt durchdacht und vorbereitet war. Die Nichtimplementierung verteilter Serverobjekte hielt als Cambio Uno ([span.] Änderung eins) Einzug in die Geschichte der VorteX-Inet-Modellierung, die Auswirkungen dieser Änderung werden im Abschnitt Auswahl zur Implementierung verwendeter Technologien erörtert. Bei den anfänglichen Gesprächen bezüglich der Funktionalität des neu zu entwickelnden Systems war die Rede davon, die Konfiguration der Benutzeroberflächen möglichst wie im System VórteX mit einer Skriptsprache zu steuern. Doch schon bei der Präsentation des ersten grob entwikkelten Modells des neuen Systems wurde die Kompatibilität einer neuen Skriptsprache gefordert, um deren Koexistenz neben den bereits eingesetzten Skriptsprachen und somit einen problemlosen Umstieg auf das neue System zu ermöglichen. Die darauffolgenden weiteren Überlegungen zur Modellierung des neuen Systems gingen daher lange Zeit von der Notwendigkeit dieser Kompatibilität aus, bis wir aufgrund weiterer Untersuchungen zu der Erkenntnis gekommen sind, daß die Kompatibilität der Skriptsprachen sich nicht mit den ursprünglichen Projektzielen vereinbaren läßt - siehe unten in diesem Abschnitt -, und Cambio Dos ([span.] Änderung zwei), die Einführung einer unabhängigen Skriptsprache für VorteX Inet, unumgänglich wurde. Die verschiedenen Pflichtenheftversionen, die während der Modellierungsphase für unterschiedliche Modelle erarbeitet wurden, sprechen zunächst von der Weiterverwendung der bisherigen Skriptsprachen im neuen System, dann von deren Verbesserung durch Erweiterung um zusätzliche Funktionalität. Später ist von einer neuen Sprache die Rede, wobei alte Skripts vollständig in die neue Sprache übersetzt werden können, bis schließlich die neue, VórteX ähnliche, nicht kompatible Skriptsprache in Erscheinung tritt, welche die beiden ehemaligen Sprachen ersetzt, aber nicht die identische Funktionalität aufweist, weshalb ein Umwandlungsmechnismus zwar möglichst viele Informationen aus alten Skripts in neue Skripts übertragen könnte, der fehlende Rest jedoch manuell programmiert werden müßte. Ausschlaggebend für die Einführung einer neuen, unabhängigen Skriptsprache war die komplexe und für einen objektorientierten Entwurf nicht geeignete Struktur von VórteX, dessen Module [...]
In den Warenkorb
38,00 €
Link zur Arbeit:
http://www.diplom.de/ean/9783832422677
Arbeit zitieren:
Christian Schloz, Rainer Gross Juni 1998: Entwicklung eines konfigurierbaren Softwaretools für Kreditinstitute auf Internetbasis, Hamburg: Diplomica Verlag
Schlagworte:
Skriptsprache, DCOM, Objektorientierung, Java, CORBA



