¨ ¨ FAKULTAT FUR INFORMATIK DERTECHNISCHENUNIVERSITA¨TMU¨NCHEN Bachelorarbeit in Informatik Konzeption und prototypische Realisierung einer einfachen, hochgradig skalierbaren Multi-Mandanten-Architektur auf Basis der Google Cloud Services Sebastian Wenninger ¨ ¨ FAKULTAT FUR INFORMATIK DERTECHNISCHENUNIVERSITA¨TMU¨NCHEN Bachelorarbeit in Informatik Design and prototypical implementation of a simple, highly-scalable multi-tenant architecture based on Google Cloud Services Konzeption und prototypische Realisierung einer einfachen, hochgradig skalierbaren Multi-Mandanten-Architektur auf Basis der Google Cloud Services Autor: Sebastian Wenninger Themensteller: Prof. Dr. Florian Matthes Betreuer: Prof. Dr. Florian Matthes Abgabedatum: 15. September 2011 Ich versichere, dass ich diese Bachelorarbeit selbsta¨ndig verfasst und nur die angegebenenQuellenundHilfsmittelverwendethabe. Mu¨nchen,den14.September2011 SebastianWenninger Zusammenfassung CloudComputingisteinschnellanBedeutunggewinnendes,vergleichswei- se neues Konzept in der IT-Branche, bei dem Dienstleistungen (sowohl von Hard-,alsauchvonSoftware)u¨bereinNetzwerkzurNutzungangebotenwer- den.DadurchistesEntwicklernmo¨glich,Anwendungenzuerstellen,diewei- testgehendunabha¨ngigvonderindividuellenKonfigurationeinesNutzersauf einer Vielzahl von Endgera¨ten lauffa¨hig und durch die Anbindung an das In- ternet weltweit abrufbar sind. Dafu¨r existieren mittlerweile mehrere Plattfor- men, wie zum Beispiel die Google App-Engine (GAE), die Entwickler Appli- kationen auf Google’s Infrastruktur ausfu¨hren la¨sst. Insbesondere fu¨r Unter- nehmen,diebestehendeProjekteindieCloudauslagern,oderneueDienstein derCloudanbietenwollen,sinddieMo¨glichkeitenundEinschra¨nkungen,die diesePlattformenmitsichbringen,vongroßemInteresse. Im Rahmen dieser Arbeit wird eine einfache, Multi-Mandanten-fa¨hige eCom- merce-ArchitekturmitHilfederGoogleApp-Engineentwickelt,dieu¨bereinen Webservice den Zugriff auf ihre Funktionen gestattet. Dafu¨r werden zuerst in einemgrundlegendenKapitelCloud-ComputingundMehr-Mandantenfa¨higkeit betrachtet.DieBeschreibungderArchitekturerfolgtdanachnachdem Bottom- ” Up“ - Prinzip, von der Persistenzebene u¨ber die Serviceschicht bis zu den da- ru¨berliegendenKomponentenderPra¨sentationsschicht.Dabeiwirdjeweilsauf diezugeho¨rigenFunktionenderGoogle-App-Engine,Schwierigkeitenundmo¨g- licheAlternativenbeiderImplementierungeingegangen. DenSchlussderArbeitbildeneinFazitsowieeinAusblickaufdieZukunftder entwickeltenApplikation. vii viii Inhaltsverzeichnis Zusammenfassung vii 1 Einleitung 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 ZielederArbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Gliederung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Grundlagen 3 2.1 KlassifikationvonCloud-Computing. . . . . . . . . . . . . . . . . 4 2.2 Cloud-Services. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Multi-Tenancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 GoogleApp-Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.4.2 DieSandbox-Umgebung . . . . . . . . . . . . . . . . . . . . 10 2.4.3 KonzeptedesDatastore . . . . . . . . . . . . . . . . . . . . 12 2.4.4 Multi-Tenancy . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.6 OAuth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3 System-Entwurf 23 3.1 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.1.1 FunktionaleAnforderungen . . . . . . . . . . . . . . . . . . 23 3.1.2 NichtfunktionaleAnforderungen . . . . . . . . . . . . . . . 24 3.2 Use-Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.4 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5 Datenmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.6 Sequenzdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4 Implementierungvonct.Box 35 4.1 Persistenzschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.2 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . 38 4.1.3 Multi-Tenancy . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ix Inhaltsverzeichnis 4.1.4 Erkenntnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2 Serviceschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.1 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2.2 Erkenntnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.3 Pra¨sentationsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.3.1 Webservice . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.3.2 Weboberfla¨chen . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.3.3 Erkenntnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.4 SicherheitundAuthentifizierung . . . . . . . . . . . . . . . . . . . 98 4.4.1 SchutzderWeboberfla¨chen . . . . . . . . . . . . . . . . . . 98 4.4.2 SchutzdesWebservice . . . . . . . . . . . . . . . . . . . . . 106 4.4.3 Erkenntnisse. . . . . . . . . . . . . . . . . . . . . . . . . . . 112 4.5 Performancevonct.Box . . . . . . . . . . . . . . . . . . . . . . . . 113 5 Fazit 117 Anhang 123 Literaturverzeichnis 131 x
Description: