konzeption und prototypische realisierung einer einfachen ......Über commercetools: die...

Post on 14-Oct-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Konzeption und prototypische Realisierung einer einfachen, hochgradig skalierbaren

Multi-Mandanten-Architektur auf Basis der Google Cloud Services

Abschlussvortrag Bachelorarbeit

Sebastian Wenninger

17.10.2011

Betreuer: Prof. Dr. Florian Matthes

1

1Montag, 17. Oktober 11

2

Agenda

1. Motivation

2. Kontext

3. Realisierung

4. Demo

5. Ausblick

2Montag, 17. Oktober 11

3

1. Motivation

Über commercetools:

Die commercetools GmbH wurde 2006 gegründet und bietet ihren Kunden eine Software-as-a- Service eCommerce-Lösung an. Kunden wie Red Bull, Burton und Brita betreiben internationale Shop-Lösungen auf der geclusterten Technologie.Neben dem Hauptprodukt erweitert commercetools stetig das Produktsortiment und evaluiert verschiedene Plattform- und Cloud-Konzepte. commercetools hat seinen Sitz mit aktuell 25 Mitarbeitern in München.

3Montag, 17. Oktober 11

4

• iPhone-Shop Lösung vorhanden, aber kein Backend zur Verwaltung der Daten• Ziel der Arbeit: Prototypische Entwicklung eines Backends

• Anforderungen: - hoch skalierend- multi-tenant- nicht auf der eigenen Infrastruktur

➡ Nutzung von Platform-as-a-Service in der Cloud➡ Evaluierung der Google-App-Engine (GAE) und der beteiligten Technologien

1. Motivation

4Montag, 17. Oktober 11

5

2. Kontext - GAE

Quelle: http://www.byteonic.com/2009/overview-of-java-support-in-google-app-engine/

5Montag, 17. Oktober 11

6

2. Kontext - Multi-Tenancy

Single-Tenant Multi-Tenant

Quelle: http://www.itwissen.info/definition/lexikon/Multi-Tenancy-Architektur-multitenancy-architecture.html

6Montag, 17. Oktober 11

7

3. Realisierung3-Schichten-Architektur:

7Montag, 17. Oktober 11

8

Datenmodell:

3.1 Persistenzschicht

8Montag, 17. Oktober 11

Probleme:

• Einschränkungen des GAE-Datastore:

• Entities < 1MB (z.B. bei Produktbildern)

• Keine LIKE-Queries

• Umsetzung der Relationships, z.B. Produkte - Varianten

9

3.1 Persistenzschicht

9Montag, 17. Oktober 11

• Interaktion mit der Persistenzschicht in Entity-spezifischen Services

• CRUD + Validierung

10

3.2 Applikationsschicht

Probleme:

• Kommunikation mit User Interface (GWT-RequestFactory) über Proxy-Interfaces

➡ Bei Änderungen manuelle Synchronisation von Code notwendig

• Automatische Validierung durch die RequestFactory

• Referenzielle Integrität

10Montag, 17. Oktober 11

Zwei Ausprägungen:

• Webservice (Restlet):

- Kommunikation über JSON-Objekte

- Absicherung durch OAuth mit Bearer-Tokens + HTTPS

• AdminPanel, UserPanel (GWT)

- Programmierung in Java, keine größeren HTML / Javascript / CSS Kenntnisse notwendig

- Model-View-Presenter (Activities & Places)

11

3.3 Präsentationsschicht

11Montag, 17. Oktober 11

Probleme:• Komplizierte Dokumentation von Restlet (nur Minimalbeispiele)

• Eigene OAuth-Implementierung (+Wechsel der Tokens)

• GWT Aufwändig zu testen

• Kommunikation mit der Applikationsschicht nicht trivial (RequestFactory)

• Einarbeiten in Activities & Places

• Aufteilung der Website in mehrere Teilbereiche mit Activities & Places

12

3.3 Präsentationsschicht

12Montag, 17. Oktober 11

DEMO

13

4. Demo

13Montag, 17. Oktober 11

Kurzfristig:

• Implementierung einer Warenkorb-Logik

• Steigerung der Performance

Langfristig:

• Entwicklung von Standard-Applikationen

• Kompletter Shop-Baukasten (evtl. inklusive CMS)

14

5. Ausblick

14Montag, 17. Oktober 11

Vielen Danke für Ihre Aufmerksamkeit.

Fragen?

15

Q & A

15Montag, 17. Oktober 11

top related