dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin •...

22
dvCong Webservice Produktkonguration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Transcript of dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin •...

Page 1: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

dvConfig Webservice

Produktkonfiguration mit Constraints

TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Page 2: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

dvConfig WebserviceProduktkonfiguration mit Constraints: Trennung von FrontEnd und Logik

Page 3: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

ProduktkonfiguratorenFreie Wildbahn

• unterschiedlichste Arten von Webshops und CMS

• vorgefertigte StandAlone Konfiguratoren via iFrame einbinden

• oder hochindividuelle Javascript FrontEnds inkl. Logik

Unser Ziel

• branchenunabhängige, individualisierbare Lösung (ToolBox .. SDK)

• Entwicklungszeit reduzieren, erweiterbar, einfache Wartung

→ Trennung von FrontEnd und Konfigurationslogik

Page 4: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Lösung per Webservice• View (HTML/CSS) - individuelles Design

• Model (Webshop/CMS) - Produktdaten: Shop, PIM, WaWi, ERP etc.

• ViewModel => dvConfig

• Widgets: wiederverwendbare Funktionalität und atomares Design

• Ergebnis: Webservice in Verbindung mit AngularJS

• Anwendung: Konfiguratoren, Planungstools, Guided Selling

Page 5: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •
Page 6: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

dvConfig: REST API• /product

• /decision

• /context

• /xsd-schema

• /cli-credentials

https://konfigurator.davitec.de/dvConfig/api

RestApi dvConfigDoc

HTTP Requests via POST, PUT, GET, DELETE

Page 7: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Produktdefinition• Beschreibung in XML

• XSD Schema (Validierung)

• Feature Model

• Wird vom Webserver initiiert

• API Session

• GET /product => json

Page 8: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Feature - Model• Feature Domain: Selected, Deleted, Undecided

• Feature Types: Mandatory, Optional, Ordinary

• Gruppen (OneOf, SomeOf, AllOf)

• Relationen (requires, excludes, implies, ifonlyif)

• Attribute (int, enum, bool) mit In/Out-Guards

• Baumstruktur mit Cross Tree Dependencies

Page 9: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Constraints• Frei kombinierbare Bedingungen für Features und Attribute

• Boolsche Ausdrücke (and, or, not) und Vergleichsoperatoren

• Bsp: A && !B <=> (C || D) && (E<=10) , wobei {A..E} FQNs sind

• Arithmetische Ausdrücke (Berechnungen)

• Alle Constraints gelten gleichzeitig & widerspruchsfrei

• Differenzierung: Sprach-, Model-, UserConstraints

Page 10: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Einige Helfer• Attachements

• Relations

• Preselection

• Context

• Sorting

• Dokumentation

Page 11: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Initialisieren

• Webseite wird aufgerufen (GET auf Webserver)

• POST /cli-credentials erzeugt Session - Rückgabe SessionKey

• POST /product mit XML im Body (200 OK)

• Webserver: Ausliefern des FrontEnds inkl. SessionKey

• ab jetzt kann das FrontEnd direkt mit der API kommunizieren

Page 12: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •
Page 13: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

User Decisions• FrontEnd holt Daten direkt von der API

• selektive Darstellung nach Status: isSelected, isSelectable usw.

• Klick auf Feature => POST, PUT oder DELETE /decision/{fqn}

• API berechnet Konsequenzen => 200 OK

• erneut Daten abholen per GET /product

• AngularJS mit 2-Wege-Datenbindung (Auto-Refresh in der View)

Page 14: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •
Page 15: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

BoilerPlate• php Server Code für

ApiSession & Product Init

• AngularJS Controller fürProduktModel & Steps

• Product XML Beispiel

• Services: Api Utility, Settings

• Widget Directive

• Atomic Design ToolBox BoilerPlate: Demo / Source

Page 16: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

AngularJS - Databinding

Page 17: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Getting started• BoilerPlate ziehen

• Account erstellen

• ApiKey registrieren

• XML erstellen

• Widgets anpassen

• ServerCode integrieren

• Ausliefern 😉

Page 18: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Ausblick• API ist ready to use

• Praxis & Projekte

• Arithmetische Berechnungen

• TYPO3 & Magento Extensions

• Konnektoren

• ANTLR/XTEXT

• GUI für Produktdefinition

• Predictions

Page 20: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Quellen

• [CHOC] choco-solver.org, Java Library for Constraint Programming

• [SCHN] Denny Schneeweiss-Göritz, Diplomarbeit, TU Cottbus

• [JERS] jersey.java.net, Restful Webservices in Java

• [TOMC] tomcat.apache.org, Apache Tomcat Server

• [SPRG] https://projects.spring.io/spring-framework/

Page 21: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

Danke• Probiert es aus und gebt uns Feedback!

• project.davitec.de

[email protected]

• @Rico_Schueppel

• Jobs bei davitec !

Page 22: dvCon g Webservice · dvCon!g Webservice Produktkon!guration mit Constraints TYPO3 Camp Berlin • Juli 2016 • Dr. Rico Schüppel •

dvConfig Webservice

Produktkonfiguration mit Constraints

MobileCamp Dresden • Mai 2016 • Dr. Rico Schüppel •