Diplomarbeit - Diplom

"Datenstrukturen innerhalb von XML Web Services"
FlaDa vs. HiDa

Diplom
(Seite 1-24):
Deutsche Telekom AG – Fachhochschule Leipzig Datenstrukturen innerhalb von XML Web Services Diplomarbeit Axel Schneider Deutsche Telekom AG – Fachhochschule Leipzig Vergleichende Analyse von Varianten zur Übergabe von komplexen Datenstrukturen innerhalb von XML Web Services mit Fuzzy-Logik Angefertigt von: Schneider, Axel, 00420 Beginn: 01.09.2004 Ende: 14.01.2005 (16.00 Uhr) Erstprüfer / Betreuer: Prof. Dr.-Ing. Sabine Wieland Deutsche Telekom AG – Fachhochschule Leipzig Zweitprüfer / Betreuer: Dipl. Wirtschaftsinformatiker (FH) Jörg Hastreiter T-Systems International Multimedia Solutions GmbH Inhaltsverzeichnis Inhaltsverzeichnis I Abkürzungsverzeichnis V Glossar VII Abbildungsverzeichnis XV Tabellenverzeichnis XVII Listings XX 1 Einleitung 1 1.1 Zielstellung 1 1.2 Gliederung 2 2 Vorbereitende Betrachtungen 3 2.1 Varianten zur Übertragung komplexer Datenstrukturen 3 2.1.1 Einleitung 3 2.1.2 Variante FLADA 6 2.1.3 Variante HIDA 9 2.1.4 Aufbau komplexer Datenstrukturen 11 2.2 Szenarien 12 2.3 Betrachtungskriterien 14 2.4 Fuzzy-Logik 15 2.4.1 Grundbegriffe der Fuzzy-Logik 16 2.4.1.1 Unscharfe Mengen 16 2.4.1.2 Linguistische Variablen 17 2.4.1.3 Unscharfe Regeln 20 2.4.2 Rückschlussmethoden 22 2.4.3 Theoretische Modellierung eines Fuzzy Systems 22 2.4.4 Verwendung einer Applikation zur Erstellung von FIS 24 2.4.5 Schlussfolgerung 24 3 Systemanalyse 25 3.1 Festlegen von Schlüsselelementen 26 3.1.1 Schnittstellendefinition 26 3.1.2 Entwicklung 27 3.1.3 Deployment 27 3.1.4 Test 28 3.1.5 Performance 28 3.1.6 Fehleranfälligkeit 29 3.1.7 Erweiterbarkeit 29 3.2 Beziehungen 30 3.3 Gewichtung 31 3.4 Zusammenfassung 31 4 Prototypische Modellierung eines FIS 32 4.1 Festlegen linguistischer Variablen 32 4.1.1 Linguistische Grundmenge 32 4.1.2 Setzen von Minima und Maxima 33 4.1.3 Partitionierung und Verlauf der Zugehörigkeitsfunktion 34 4.1.4 Deklaration in Matlab-Quellcode 35 4.2 Definition einer Wissensbasis 36 4.3 Wahl einer Defuzzyfizierungsmethode 40 4.4 Automatisierte Auswertung 41 5 Vergleich der Varianten 43 5.1 Anmerkungen zum Ablauf des Vergleichs 43 5.1.1 Ziel 43 5.1.2 Abgrenzung 43 5.1.3 Vorgehensweise 43 5.1.4 Hinweis 44 5.2 Beschreibung des Szenarios 45 5.3 Schnittstellendefinition 45 5.3.1 Ziel 45 5.3.2 These 45 5.3.3 Aufbau, Erstellung und Probleme mit WSDL Dokumenten 46 5.3.3.1 Aufbau eines WSDL Dokumentes 46 5.3.3.2 Vorgehensweisen zum Erstellen einer WSDL-Datei 48 5.3.3.3 Probleme beim Erstellen eines WSDL Dokumentes 48 5.3.4 Bestimmung der Komplexität 49 5.3.5 Zusammenfassende Interpretation 52 5.4 Entwicklung 53 5.4.1 Ziel 53 5.4.2 These 53 5.4.3 Erstellen eines XML Web Services 53 5.4.3.1 Vorgehensweisen zum Erstellen 53 5.4.3.2 Variantenspezifisches Ausprogrammieren der Web Services 56 5.4.4 Bestimmung des Entwicklungsmehraufwandes 57 5.4.5 Zusammenfassende Interpretation 59 5.5 Deployment 61 5.5.1 Ziel 61 5.5.2 These 61 5.5.3 Ablauf eines Deployment-Prozesses 61 5.5.4 Bestimmung des Deployment-Mehraufwandes 63 5.5.5 Zusammenfassende Interpretation 64 5.6 Test 66 5.6.1 Ziel 66 5.6.2 These 66 5.6.3 Von der Theorie zur Praxis des Testens 66 5.6.3.1 Notwendige Arten von Softwaretests für XML Web Services 66 5.6.3.2 Klassifikation der Sichtweisen 67 5.6.3.3 Unterstützung während des Testprozesses 67 5.6.4 Bestimmung des Testmehraufwandes 68 5.6.5 Zusammenfassende Interpretation 69 5.7 Performance 71 5.7.1 Ziel 71 5.7.2 These 71 5.7.3 Performance-Betrachtungen 72 5.7.3.1 Codeausführung: Early Bindung vs. Late Binding 72 5.7.3.2 Manuelles Messen und Auswerten 72 5.7.3.3 Toolbasiertes Messen und Auswerten 72 5.7.4 Bestimmung des Performance-Mehraufwandes 72 5.7.5 Zusammenfassende Interpretation 74 5.8 Fehleranfälligkeit 76 5.8.1 Ziel 76 5.8.2 These 76 5.8.3 Konzepte um Fehler zu minimieren 76 5.8.3.1 Allgemeine Programmierkonzepte 76 5.8.3.2 Design by Contract 77 5.8.3.3 Sicherheit durch architektonische Maßnahmen 78 5.8.4 Bestimmung der Fehleranfälligkeit 78 5.8.5 Zusammenfassende Interpretation 80 5.9 Erweiterbarkeit 82 5.9.1 Ziel 82 5.9.2 These 82 5.9.3 Bestimmung der Erweiterbarkeit 82 5.9.4 Zusammenfassende Interpretation 84 5.10Zusammenfassung 86 6 Entwurf einer Strategie zur Entscheidungsfindung 89 6.1 Strategien 89 6.1.1 Strategie nach MASCHA 89 6.1.2 Ausschlussstrategie 91 6.1.3 Favoritenstrategie 91 6.2 Eingrenzung und Wahl einer Strategie 91 6.3 Vorgehensweise nach der Favoritenstrategie 92 6.3.1 Erstellen der Fragenkataloge 92 6.3.2 Bewertung der Fragen 93 6.3.3 Anwendung am Service „Chat“ 95 7 Abschließende Zusammenfassung und Ausblick 98 7.1 Ergebnisse 98 7.2 Ausblick 99 Literaturverzeichnis 100 Internetquellen 103 Hilfsmittelverzeichnis 105 Anlagenverzeichnis 106 Anlage1 – Linguistische Variablen 107 Anlage2 – Fuzzy-Systeme 119 Anlage3 – Status-Quo-Szenario 147 Inhalt der CD-Rom 161 Selbstständigkeitserklärung 162 Abkürzungsverzeichnis A2A Application to Application API Application Programm Interface CoA Center of Area CORBA Common Object Request Broker Architecture CSC Customer Self Care DCOM Distributed Component Object Model FTP File Transfer Protocol IDL Interface Definition Language FIS Fuzzy Inference System FLADA Flache Datenstruktur HIDA Hierarchische Datenstruktur HTTP Hypertext Transfer Protocol IIS Internet Information Services ISP Internet Service Provider LOC Lines Of Code MoM Mean of Maximum MS.Net Microsoft .Net OSS Operational Support System RPC Remote Procedure Call SMTP Simple Mail Transfer Protocol SOA Service Oriented Architectur SSL Secure Socket Layer TC Technischer Konfigurator TRIMF Triangular Shaped Membership Function TRAPMF Trapezodial Shaped Membership Function TSI-MMS T-Systems International Multimedia Solutions GmbH UDDI Universal Description, Discovery and Integration WSDL Web Service Description Language WSP Web- und Shop Relaunch XML Extensible Markup Language Glossar .Net-Framework ist ein Software Development Kit zur Entwicklung und Verteilung von Software, die auf der .NET Plattform basiert. API ist ein zur Verfügung stehendes Set von Funktionalitäten, das über Schnittstellen Zugriff auf diese Funktionalitäten bietet und so eingesetzt werden kann, um bestimmte Abläufe und Algorithmen zu realisieren. Client ist das anfordernde Programm in einer Client-Server-Beziehung. Es fordert Informationen von einem anderen Computer bzw. Programm (Server) an. Client/Server Prinzip, das die Beziehung zwischen einem Programm, dem Client, das einen Dienst von einem anderen Programm, dem Server, anfordert beschreibt. CoA bezeichnet eine Defuzzyfizierungsmethode. Sie repräsentiert den Flächenschwerpunkt als den Wert, der die unscharfe Ausgangsmenge am besten repräsentiert. CORBA ist ein Standard für Komponenten, die unabhängig von der verwendeten Programmiersprache, Hard- und Software-Plattform miteinander interagieren. DCOM ist die Weiterentwicklung des Komponentenmodells COM von Microsoft und ermöglicht die Interaktion von Komponenten über Rechnergrenzen hinweg. FLADA Ist eine Variante zur Übertragung komplexer Datenstrukturen innerhalb von XML Web Services. Dabei werden die Daten in einer XML-Struktur innerhalb eines Strings definiert. Diese enthält auch den eigentlichen Funktionsaufruf. Fuzzy-Logic Theorie, welche die Unschärfe des menschlichen Denkens bzgl. Wissenspräsentation und Entscheidungsfindung modelliert. HIDA Ist eine Variante zur Übertragung komplexer Datenstrukturen innerhalb von XML Web Services. Dabei werden die Daten als komplexe XML-Typen übergeben. Die Signaturen der XML Web Service Methoden sowie die Datenstrukturen werden mittels WSDL-Dokument definiert. HTTP ist das Protokoll zur Übertragung von Text, Bildern, Sound oder Video oder anderer Multimedia- Dateien über das WWW. Das HTTP läuft auf der Basis des TCP/IP. IDL im Deutschen auch als Schnittstellendefinitionssprache bezeichnet – universelle Sprache zur Beschreibung der Schnittstellen (Interfaces) von Software-Komponenten (entwickelt in unterschiedlichen Programmiersprachen). Integrationstest bezeichnet das Testen eines Teilsystems (Softwarekomponente) im Gesamtsystem. Interaktion bezeichnet das Wechselspiel von Aktionen des Anwenders und Reaktionen des Programms. Internet ist ein weltweites System von heterogenen Computernetzwerken. Ein Nutzer kann von jedem Computer aus auf jeden beliebigen anderen Computer zugreifen, wenn er die entsprechende Berechtigung hat. Das Internet basiert auf dem Protokoll TCP/IP. Interoperabilität bezeichnet die Möglichkeit der Zusammenarbeit zwischen verschiedenen Programmen. Intranet ist ein privates Computernetzwerk innerhalb eines Unternehmens. Ein Intranet kann über verschiedene Unternehmensstandorte verteilt aufgebaut werden und besteht meist aus mehreren miteinander verbundenen lokalen Netzwerken. Ein Intranet ist über entsprechende Knotenpunkte mit dem Internet verbunden. MASCHA ist ein Entwurf einer Strategie, die auf Grundlage eines Szenarios den Entscheidungsprozess, ob FLADA oder HIDA zur Übertragung komplexer Datenstrukturen umgesetzt wird, vereinfachen soll. MoM bezeichnet eine Defuzzyfizierungsmethode. Sie repräsentiert den Mittelpunkt (der Ausgangsmenge mit der größten Zugehörigkeit) als den Wert, der die unscharfe Ausgangsmenge am besten repräsentiert. OSS besteht aus Programmen und Systemen, die Kommunikationsdiensteanbietern die Möglichkeit geben, ihre Netze und ihre Diensteinfrastruktur zu planen, zu monitoren, zu analysieren und zu überwachen. Provisioning bezeichnet den Vorgang des Verteilens von Daten. RPC stellen Methoden- oder Funktionsaufrufe über ein Netzwerk dar. CORBA und DCOM basieren auf RPC. Request stellt eine Anfrage an eine Softwarekomponente dar. Response stellt die Antwort auf eine Anfrage an eine Softwarekomponente dar. Server bietet Services für andere Computer und Programme. Ein Server behandelt die Anfragen anderer Computer bzw. Programme und sendet entsprechende Daten zurück an diese Clients. Service Chat ist ein Dienst, der eine textbasierte Online-Unterhaltung über das Internet ermöglicht. Service Datenbank ist ein Dienst, welcher die Verwaltung und Nutzung von Datenbanken übernimmt. Service Domainverwaltung ist ein Dienst, der eine bestimmte URL (First-Level-Domain) automatisch bei der nationalen Domain-Vergabestelle (DeNIC1) einträgt und diese URL mit WWW-Seiten, die darunter zu erreichen sein sollen, verbindet. Service Forum ist eine WWW-Seite, über die durch das Einstellen von Beiträgen und entsprechenden Antworten Diskussionen geführt werden können. Service Mail ist ein Dienst, welcher die Verwaltung und Nutzung von eMail-Konten übernimmt. Service Shop ist eine WWW-Seite, welche einen Einkaufskanal darstellt. In einen Shop können Waren mit Hilfe eines „Einkaufskorbes“ gesammelt und nachfolgend ein Kaufvertrag in Form einer online- Bestellung geschlossen werden. 1 Die DeNIC (Deutsches Network Information Center) ist eine eingetragene Genossenschaft, die aus verschiedenen deutschen ISPs besteht und die Funktion des Network Information Center für den deutschen Teil des Internet übernommen hat. – http://www.denic.de SOA stellt einen Architekturansatz dar, der den Austausch von Daten und die Funktionalität zwischen Anwendungen (A2A) beinhaltet. Eine SOA besteht aus Service-Anbieter, Service-Verzeichnis und Service-Konsumenten. SOAP Ein auf XML beruhendes Protokoll für den Austausch von Informationen. (Früher bekannt als Simple Object Access Protokol.) TC Konfigurationsoberfläche des verteilten Systems (ISP-System) des Projektes WSP. TCP/IP ist ein Kommunikationsprotokoll zur Kommunikation in Computernetzen. Das TCP/IP ist das Basisprotokoll des Internets. TRIMF beschreibt mathematisch eine dreiecksförmige Funktion. TRAPMF beschreibt mathematisch eine trapezförmige Funktion. TSI-MMS ist eines der größten Multimedia-Unternehmen in Europa und kompetenter e-Business Enabler im Telekom-Konzernverbund. UDDI ist ein universelles (Service-) Verzeichnis, in dem Unternehmen sich selbst und die angebotenen Dienstleistungen beschreiben und in Form eines WSDL-Dokumentes ablegen können. Unit-Test bezeichnet den von einem Software-Entwickler programmierten Test, um Softwarekomponenten auf deren korrekte Ausführung unter bestimmten Situationen zu testen. Verteilte Systeme bestehen aus Komponenten, die auf mehreren Rechnern verteilt, miteinander durch den Austausch von Nachrichten interagieren. Webseitengenerator ist ein Dienst, welcher WWW-Seiten automatisch durch Drag-And-Drop generiert. Dabei steht, je nach Branche, eine Vielzahl von Layout-Vorlagen zur Verfügung. Andere Dienste wie Shop, Chat oder Forum können durch den Webseitengenerator eingebunden werden. WSDL ist eine standardisierte IDL zur Beschreibung von XML Web Services. WSP Akronym für das Projekt „T-ComWeb- und Shop Relaunch“. WWW (World Wide Web) ist ein Teil des Internets. Das WWW nutzt das HTTP-Protokoll. XML ist eine flexible Möglichkeit, um Datenformate zu erstellen und sowohl diese Formate als auch die darin gespeicherten Daten zwischen verschiedenen Systemen auch über das Internet auszutauschen. XML Web Services bezeichnet verteilte, lose gekoppelte Software-Komponenten, die standardisierte Technologien (XML, SOAP, WSDL) verwenden. Abbildungsverzeichnis Abbildung 1: Beispiel eines Workflows innerhalb des verteilten Systems des Projektes WSP 4 Abbildung 2: Interaktion des Service-Nutzers mit einem Service-Anbieter 5 Abbildung 3: Interaktion des Service-Nutzers mit einem Service-Anbieter mittels FLADA 6 Abbildung 4: Interaktion des Service-Nutzers mit einem Service-Anbieter mit HIDA 9 Abbildung 5: Request-Datenstruktur für das Anlegen eines Chatraumes 10 Abbildung 6: Response-Datenstruktur nach erfolgreichem Anlegen eines Chatraumes 10 Abbildung 7: Szenariotrichter 13 Abbildung 8: Subjektive Interpretation menschlicher Sprache 16 Abbildung 9: Mathematische Beschreibung eines dreiecksförmigen Funktionsverlaufs 19 Abbildung 10: Mathematische Beschreibung eines trapezförmigen Funktionsverlaufs 19 Abbildung 11: Visualisierung der linguistischen Variablen „intIntParams“ 20 Abbildung 12: Bereich möglicher Verknüpfungen nach [Iwe00] 21 Abbildung 13: Vergleich von Defuzzyfizierungsmethoden nach [I-Koi] 22 Abbildung 14: Grundkonfiguration eines FIS mit 4 Hauptkomponenten nach [Iwe00] 23 Abbildung 15: Für den Variantenvergleich berücksichtigte Aufgaben 25 Abbildung 16: Beziehungen der Betrachtungskriterien 30 Abbildung 17: Entwurf von Regeln für Abhängigkeiten zwischen den Schlüsselelementen 37 Abbildung 18: Entwurf von Regeln für Abhängigkeiten zwischen Betrachtungskriterien 38 Abbildung 19: Beschreibung des Inferenzschrittes in drei Schritten 39 Abbildung 20: Verarbeitungsreihenfolge der Matlab-Files 41 Abbildung 21: Aufbau eines WSDL-Dokumentes nach [Kus02] 47 Abbildung 22: Darstellung der linguistischen Variablenwerte (Schnittstellendefinition, Status- Quo) 50 Abbildung 23: Vergleich des Kriterium-Faktors aller Szenarien (Schnittstellendefinition) 51 Abbildung 24: Erstellung eines XML Web Services nach „Code First“ 54 Abbildung 25: Erstellung eines XML Web Services nach „Contract First“ 54 Abbildung 26: Vergleich der linguistischen Variablen (Entwicklung, Status-Quo) 58 Abbildung 27: Entwicklungsmehraufwand aller Szenarien im Vergleich 59 Abbildung 28: Deployment-Prozess 62 Abbildung 29: Vergleich der linguistischen Variablenwerte (Deployment) 63 Abbildung 30: Vergleich der Kriterium-Faktoren aller Szenarien (Deployment) 64 Abbildung 31: Vergleich der linguistischen Variablen (Test, Status-Quo) 68 Abbildung 32: Testmehraufwand aller Szenarien im Vergleich 69 Abbildung 33: Vergleich der linguistischen Variablen (Performance, Status-Quo) 73 Abbildung 34: Performance-Änderung aller Szenarien im Vergleich 74 Abbildung 35: Vergleich der linguistischen Variablen (Fehleranfälligkeit, Status-Quo) 79 Abbildung 36: Fehleranfälligkeiten aller Szenarien im Vergleich 80 Abbildung 37: Vergleich der linguistischen Variablen (Erweiterbarkeit, Status-Quo) 83 Abbildung 38: Erweiterbarkeit aller Szenarien im Vergleich 84 Abbildung 39: Prozentuale Verteilung der Vorteile je Betrachtungskriterium 87 Abbildung 40: Prozentuale Verteilung der Nachteile je Betrachtungskriterium 88 Abbildung 41: Lösungsstrategie nach MASCHA 90 Abbildung 42: Beantwortung des ersten Fragenkataloges zu Gunsten von FLADA 94 Abbildung 43: Beantwortung des zweiten Fragenkataloges zu Gunsten von FLADA 94 Abbildung 44: Beantwortung von Fragen des dritten Fragenkataloges 95 Abbildung 45: Ansicht aller Regeln der Schnittstellendefinition-DS 123 Abbildung 46: Ansicht aller Regeln der Schnittstellendefinition 124 Abbildung 47: Ansicht aller Entwicklungsregeln 127 Abbildung 48: Ansicht aller Deployment-Regeln 130 Abbildung 49: Ansicht aller Testregeln 133 Abbildung 50: Ansicht aller Performanceregeln 137 Abbildung 51: Ansicht aller Fehleranfälligkeitsregeln 141 Abbildung 52: Ansicht aller Erweiterbarkeitsregeln 146 Abbildung 53: Vergleich der Status-Quo-Szenarien mit Hilfe der Betrachtungskriterien 159 Abbildung 54: Vergleich der Best-Case-Szenarien mit Hilfe der Betrachtungskriterien 159 Abbildung 55: Vergleich der Worst-Case-Szenarien mit Hilfe der Betrachtungskriterien 160 Tabellenverzeichnis Tabelle 1: Möglichkeit der Datenübertragung (FLADA) 11 Tabelle 2: Möglichkeiten der Datenübertragung (HIDA) 11 Tabelle 3: Definition einer linguistischen Grundmenge für die Komplexität einer Datenstruktur 18 Tabelle 4: Beispiel einer linguistischer Regeln zur Berechnung der Komplexität einer Datenstruktur 21 Tabelle 5: Schlüsselelemente des Betrachtungskriteriums Schnittstellendefinition (1/2) 26 Tabelle 6: Schlüsselelemente des Betrachtungskriteriums Schnittstellendefinition (2/2) 27 Tabelle 7: Schlüsselelemente des Betrachtungskriteriums Entwicklung 27 Tabelle 8: Schlüsselelemente des Betrachtungskriteriums Deployment 28 Tabelle 9: Schlüsselelemente des Betrachtungskriteriums Test 28 Tabelle 10: Schlüsselelemente des Betrachtungskriteriums Performance 28 Tabelle 11: Schlüsselelemente des Betrachtungskriteriums Fehleranfälligkeit 29 Tabelle 12: Schlüsselelemente des Betrachtungskriteriums Erweiterbarkeit 29 Tabelle 13: Definition der linguistischen Grundmenge der Eingabevariablen 33 Tabelle 14: Definition der linguistischen Grundmenge der Ausgabevariablen 33 Tabelle 15: Festlegen der Minima und Maxima 34 Tabelle 16: Partitionierung und Zuweisung der Funktionsverläufe der Eingabevariablen 34 Tabelle 17: Partitionierung und Zuweisung der Funktionsverläufe der Ausgabevariablen 35 Tabelle 18: Beispiele linguistischer Regeln, um die Komplexität einer Datenstruktur zu berechnen 36 Tabelle 19: Legende zur Bewertung der variantenspezifischen Vor- und Nachteile 44 Tabelle 20: Werte aller linguistischen Variablen (Schnittstellendefinition) 50 Tabelle 21: Anzahl der Beschreibungszeilen je Szenario und Variante 50 Tabelle 22: Vor- und Nachteile bei der Schnittstellenbeschreibung 53 Tabelle 23: Werte aller linguistischen Variablen (Entwicklung, Status-Quo) 57 Tabelle 24: Vor- und Nachteile bei der Entwicklung 60 Tabelle 25: Werte der linguistischen Variablen (Deployment) 63 Tabelle 26: Vor- und Nachteile beim Deployment 65 Tabelle 27: Werte aller linguistischen Variablen (Test, Status-Quo) 68 Tabelle 28: Vor- und Nachteile des Tests 71 Tabelle 29: Werte aller linguistischen Variablen (Performance, Status-Quo) 73 Tabelle 30: Vor- und Nachteile der Performance-Änderung 76 Tabelle 31: Werte aller linguistischen Variablen (Fehleranfälligkeit, Status-Quo) 78 Tabelle 32: Vor- und Nachteile der Fehleranfälligkeit 82 Tabelle 33: Werte aller linguistischen Variablen (Erweiterbarkeit, Status-Quo) 83 Tabelle 34: Vor- und Nachteile der Erweiterbarkeit 86 Tabelle 35: Auflistung der Summen aller Vor- und Nachteile je Betrachtungskriterium 87 Tabelle 36: Fragen, die auf Grund der Vorbedingungen eine Variante bevorzugen 92 Tabelle 37: Fragen, die Ressourcenaspekte einbeziehen 93 Tabelle 38: Antworten zu den Fragenkatalogen 96 Tabelle 39: Definition der linguistischen Variablen für eine Teilevaluierung des Betrachtungskriteriums „Schnittstellendefinition“ 108 Tabelle 40: Definition der linguistischen Variablen für das Betrachtungskriterium Schnittstellendefinition 109 Tabelle 41: Definition der linguistischen Variablen für das Betrachtungskriterium Entwicklung 110 Tabelle 42: Definition der linguistischen Variablen für das Betrachtungskriterium Deployment 111 Tabelle 43: Definition der linguistischen Variablen für das Betrachtungskriterium Test 112 Tabelle 44: Definition der linguistischen Variablen für das Betrachtungskriterium Performance (Teil 1/2) 113 Tabelle 45: Definition der linguistischen Variablen für das Betrachtungskriterium Performance (Teil 2/2) 114 Tabelle 46: Definition der linguistischen Variablen für das Betrachtungskriterium Fehleranfälligkeit (Teil 1/2) 115 Tabelle 47: Definition der linguistischen Variablen für das Betrachtungskriterium Fehleranfälligkeit (Teil 2/2) 116 Tabelle 48: Definition der linguistischen Variablen für das Betrachtungskriterium Erweiterbarkeit (Teil 1/2) 117 Tabelle 49: Definition der linguistischen Variablen für das Betrachtungskriterium Erweiterbarkeit (Teil 2/2) 118 Tabelle 50: Merkmale des Status-Quo-Szenarios der Variante FLADA am Beispiel „Chat“ 148 Tabelle 51: Merkmale des Status-Quo-Szenarios der Variante HIDA am Beispiel „Chat“ 152 Tabelle 52: Werte der linguistischen Variablen der Szenarien Status-Quo, Best-Case und Worst- Case 156 Tabelle 53: Bedeutung der in Tabelle 52 genutzten Akronyme 157 Tabelle 54: Zuordnung von Szenarien, der Anzahl von Ein- und Ausgabeparametern und Hierarchieebenen 157 Tabelle 55: Ergebnisse der Fuzzy-Systeme nach Eingabe der Merkmalswerte 158 Tabelle 56: Inhalt der CD-Rom 161 Listings Listing 1: Request als String 7 Listing 2: Request als XML Datenstruktur 7 Listing 3: Response als String 8 Listing 4: Response als XML Datenstruktur 8 Listing 5: Darstellung einer unscharfen Menge U als Zugehörigkeitsfunktion µU 17 Listing 6: Auszug der Deklarierung der Eingabevariablen „intIntParams“ in Matlab-Quellcode 35 Listing 7: Auszug der Deklarierung der Ausgabevariablen „intIntFuzzy“ in Matlab-Quellcode 36 Listing 8: Auszug aus dem Regelwerk in Matlab-Quellcode 39 Listing 9: SOAP-Request 49 Listing 10: Generieren einer Value-Object-Klasse aus einem XML Schema 52 Listing 11: Generieren des XML Web Service als Server-Klasse 55 Listing 12: Generieren des XML Web Service-Clients als Proxy-Klasse 56 Listing 13: Beispielausführung des Fuzzy-Systems „Schnittstellendefinition-DS“ 120 Listing 14: Fuzzy-System der „Schnittstellendefinition-DS“ 121 Listing 15: Beispielausführung des Fuzzy-Systems „Schnittstellendefinition“ 121 Listing 16: Fuzzy-System der „Schnittstellendefinition“ 123 Listing 17: Beispielausführung des Fuzzy-Systems „Entwicklung“ 125 Listing 18: Fuzzy-System der „Entwicklung“ 126 Listing 19: Beispielausführung des Fuzzy-Systems „Deployment“ 128 Listing 20: Fuzzy-System für das „Deployment“ 129 Listing 21: Beispielausführung des Fuzzy-Systems „Test“ 131 Listing 22: Fuzzy-System der „Test“ 132 Listing 23: Beispielausführung des Fuzzy-Systems „Performance“ 134 Listing 24: Fuzzy-System der „Performance“ 137 Listing 25: Beispielausführung des Fuzzy-Systems „Fehleranfälligkeit“ 138 Listing 26: Fuzzy-System der „Fehleranfälligkeit“ 141 Listing 27: Beispielausführung des Fuzzy-Systems „Erweiterbarkeit“ 142 Listing 28: Fuzzy-System der „Erweiterbarkeit“ 145 1 Einleitung Mit dem Einzug von XML Web Services in die Welt des Inter- und Intranets ist die Kommunikation zwischen Rechnern einfacher geworden. Langner ([Lan04]) behauptet sogar, sie seien die „Erlösung der Entwicklergemeinde von der Flut unterschiedlicher Standards“, denn mit RPC, COM oder CORBA standen bereits vor XML Web Services interoperable Client-Server- Systeme zur Verfügung, deren Standards jedoch nicht von allen Herstellern eingehalten wurden. Mit XML Web Services scheint ein Standard gefunden worden zu sein, an den sich alle Hersteller halten. Das ist der Grund, weshalb ein Hype um Schlagworte wie XML Web Services oder Service Oriented Architecture (SOA) entstanden und nicht mehr aus den Köpfen der Entwickler und Entscheidungsträger wegzudenken ist. ([Lan04]) Nutzen daraus ziehen vor allem große Service-Anbieter wie Google1 oder Amazon2, indem sie bspw. eine API zu ihren eigenen Daten anbieten. Auch die T-Systems International Multimedia Solutions GmbH (TSI-MMS) in Dresden setzt XML Web Services im Java und Microsoft.Net-Umfeld ein, um eine interoperable Kommunikation zwischen Applikationen (A2A) zu gewährleisten. Dass bei der Entwicklung von XML Web Service jedoch immer noch mehrere Wege zum Ziel führen, ist in der Offenheit der nutzbaren Standards begründet. Besonders die Definition, wie die zu übertragenden Nachrichten gesendet und empfangen werden, kann quasi beliebig erfolgen, beeinträchtigt allerdings viele Phasen der späteren Software-Entwicklung. 1.1 Zielstellung Der Vergleich von zwei Varianten, wie Nachrichten innerhalb von XML Web Services definiert werden können, ist das Ziel dieser Arbeit. Der Schwerpunkt liegt darin, die Varianten auf sieben Betrachtungskriterien zu vergleichen und variantenspezifische Vor- und Nachteile zu analysieren. Um subjektiven Eindrücken bei der Bewertung der Ergebnisse keine tragende Rolle zukommen zu lassen, wird eine linguistische Logik gewählt - die Fuzzy-Logik. Sie soll visualisierbare und vor allem vergleichbare Werte liefern. 1 Google-API: http://www.google.com/apis/ 2 Amazon-API: http://www.amazon.com/webservices/ Da ein Projekt eine gewisse Einmaligkeit aufweist, werden außerdem verschiedene Szenarien erstellt. Mit Hilfe dieser Szenarien werden schließlich eine oder mehrere Strategien erarbeitet, welche die Entscheidung erleichtern, unter welchen Projektbedingungen die passende Nachrichtenübertragungsvariante gewählt wird. Durch die gewonnenen Erkenntnisse des Vergleichs und deren Einbindung in eine Strategie, werden Vor- und Nachteile einer Variante bereits vor Beginn der Entwicklungsarbeiten evaluierbar. 1.2 Gliederung Zuerst werden in Kapitel 2 die Varianten vorgestellt und die zum Vergleich notwendigen Techniken kurz beschrieben. Dabei wird auf die Szenario-Technik, die zu vergleichenden Betrachtungskriterien und die Logik der Unschärfe eingegangen. In Kapitel 3 und 4 erfolgt die Grundlagenarbeit, die für den Vergleich notwendig ist. Dabei werden in Kapitel 3 wichtige Parameter für jedes Betrachtungskriterium festgelegt, bestehende Beziehungen aufgezeigt und das Setzen von Gewichtungen erläutert. Kapitel 4 erläutert kurz theoretische Grundlagen und zeigt ein zur Fuzzy-Logik gehörendes System am Beispiel des ersten Betrachtungskriteriums „Schnittstellendefinition“. Darauf aufbauend erfolgt in Kapitel 5 ein Vergleich je Betrachtungskriterium. Dabei wird jeweils ein Ziel definiert und eine These aufgestellt, die mittels der ausgewerteten und interpretierten Werte der Vergleichsparameter evaluiert werden. Abschließend erfolgt eine Zusammenfassung aller Ergebnisse. Alle gewonnenen Erkenntnisse werden dann in Kapitel 6 für Ideen einer oder mehrerer Strategien genutzt. Die Strategien werden vorgestellt, deren Einsatzfähigkeit geprüft und nachfolgend eine davon exemplarisch entworfen und an einem Szenario getestet. Die Ergebnisse dieser Arbeit werden in Kapitel 7 zusammengefasst. Weiterhin werden vom Autor kurz die notwendigen Schritte zur Weiterführung der Arbeit aufgezählt und es erfolgt ein Ausblick der verwendeten Technologien für die Zukunft.
zurück