Einblicke in die Architektur einer Business App: Mobiles Sales

Werbung
Einblicke in die Architektur einer Business App:
Mobiles Sales Information System auf iOS
 aformatik Training & Consulting GmbH & Co. KG
1
Kurze Vorstellung
Roman Seibold
Dipl.-Inform. (Uni Stuttgart)
Senior Consultant,
Technischer Leiter
der Schulungsabteilung
 aformatik Training & Consulting GmbH & Co. KG
2
Fahrplan – Agenda
 aformatik Training & Consulting GmbH & Co. KG
3
SIS – Sales Information System
SIS – Sales Information System
…sollte ursprünglich iSIS heißen…
Plattformüberspannende Client-Server-Anwendung
Marketing:
Die ideale CRM- und Kennzahlenlösung
für Außendienstmitarbeiter, das Management oder Geschäftspartner.
1 App, 1000 Anwendungsmöglichkeiten
CRM: Verbindet mit den "Kunden"
Kennzahlen: Anzeige von konfigurierbaren und je nach
Fachlichkeit unterschiedlichen Daten
 aformatik Training & Consulting GmbH & Co. KG
4
High-Level-Spezifikation
Branchenneutral
Anpassbar an alle Bereiche: Textilindustrie,
Systemgastronomie, Baubranche, Medizin etc.
Darstellung von Kundeninformationen und Aufträgen
Visualisierung von Unternehmenskennzahlen
Durch die Branchenneutralität sind die Kennzahlen frei
definierbar und anzuordnen
Umsätze, Bestellungen, Quoten, Zielerreichungen…
Ansicht, Erstellung und Versand von Berichten
frei definierbar ggf. mit Fotos
z.B. Begehungsberichte (QS), interne Audits, Checklisten
Alle Eingabemöglichkeiten: Zahlen, Skalen, diskrete Werte,
Ja/Nein, Freitext, zusätzliche Anmerkungen
 aformatik Training & Consulting GmbH & Co. KG
5
Highlights
Kundenindividuelle Konfiguration
für Kennzahlen, Reports und allg. Funktionalitäten
Separate Ressourcen pro User
eigene lokale Datenbankbereiche, Config-Dateien, Bilder
Komplett offlinefähig
d.h. auch lokale Authentifizierung und Datenhaltung
Delta-Updates für Stammdaten
über Zeitstempel, verkleinert die zu übertragende Datenmenge
Verwendung von Kamera
Bilder für Reports
Integration anderer Systemservices wie Mail und Telefon
 aformatik Training & Consulting GmbH & Co. KG
6
Fahrplan – Agenda
 aformatik Training & Consulting GmbH & Co. KG
7
Beispiel aus der Modebranche (1) – "Profile"
 aformatik Training & Consulting GmbH & Co. KG
8
Beispiel aus der Modebranche (2) – "Customers"
System-Services
weitere Bereiche
 aformatik Training & Consulting GmbH & Co. KG
9
Beispiel aus der Modebranche (3) – "Orders"
 aformatik Training & Consulting GmbH & Co. KG
10
Beispiel aus der Modebranche (4) – "Reports"
 aformatik Training & Consulting GmbH & Co. KG
11
Beispiel aus der Modebranche (5) – Sonstiges
("Showroom" und "Statistics")
 aformatik Training & Consulting GmbH & Co. KG
12
UI Customizing – Beispiel "Fashion"
 aformatik Training & Consulting GmbH & Co. KG
13
UI Customizing – Beispiel "Filialbäckerei"
 aformatik Training & Consulting GmbH & Co. KG
14
UI Customizing – Beispiel "Systemgastronomie"
 aformatik Training & Consulting GmbH & Co. KG
15
Fahrplan – Agenda
 aformatik Training & Consulting GmbH & Co. KG
16
SIS Architektur – Fokus auf Server
Java EE Application Server
iOS
Client
Custom
Integration
Applications
Kunden
WaWi
EIS / DB
Communication
REST
Ticketing
(Security)
Export / Import
WebServices SOAP
Fachliche
Services
Fachdaten JPA
Print/Report
DB
 aformatik Training & Consulting GmbH & Co. KG
17
SIS Architektur – Fokus auf Client
Java EE Application Server
 aformatik Training & Consulting GmbH & Co. KG
18
SIS Architektur – Fokus auf Datenaustausch
Download von
- Hintergrund
- Showroom
- Artikelbilder
iOS Client
Java EE Application
Server
REST
https
Upload von
- Reports
- Report-Fotos
Austausch von
- Fachdaten
JSON
{ …
"id": 1,
"validTo": null,
"validFrom": 1324249200000,
"lastname": "Smith ",
"firstname": "John",
"lastUpdate": 1402405178133,
"companyname": "John's Fashion Agency"
}],
"lastUpdate": 1404224303600,
"messages": ["SUCCESS"]
}
 aformatik Training & Consulting GmbH & Co. KG
19
Verwendete Frameworks für den Client
Restkit
Kapselung der REST-Services-Calls
Parsen und Erzeugen von JSON
CoreData + SQLite
iOS-internes DB-Mapping-Framework + Datenbank
MagicalRecord
Kapselung und Enrichment von Core-Data
SSZip
Entpacken der ZIP-Files
 aformatik Training & Consulting GmbH & Co. KG
20
Verwendete Technologien/Frameworks am Server
Weitestgehend wurden Möglichkeiten/Technologien der
Java EE 6 ausgeschöpft:
EJB 3 für die Business-Code-Implementierung
JPA 2 für den DB-Zugriff
JAX-WS für das SOAP-WebService-Angebot
JAX-RS für die REST-based Services
Servlets für Test-Clients
Non-Java EE:
Eclipse BIRT
Apache Commons (für Zugriff auf Konfigurationsdateien und
die Plists)
 aformatik Training & Consulting GmbH & Co. KG
21
Ökosystem – Überblick
Konfigurations-Migration
(Plist aktualisieren)
Java EE Application Server
Web-Browser
ConfigApp
ConfigApp
Achtung
…heißt zwar "App" ist aber
eine Web-Anwendung
…historisch gewachsen 
Eclipse Report Designer
 aformatik Training & Consulting GmbH & Co. KG
22
Ökosystem – ConfigApp
 aformatik Training & Consulting GmbH & Co. KG
23
Ökosystem – Eclipse Report Designer
 aformatik Training & Consulting GmbH & Co. KG
24
Fahrplan – Agenda
 aformatik Training & Consulting GmbH & Co. KG
25
Herausforderungen
Wahl des mobile Clients
Apple-AGBs
Mandantenfähigkeit
Konfigurierbarkeit
Reports
Gibt natürlich noch mehr, aber wir wollen ja heute noch fertig
werden…
 aformatik Training & Consulting GmbH & Co. KG
26
Herausforderungen
Wahl des mobilen Clients
"relativ einfach" – originärer
Kundenstamm aus der Design-affinen
Modebranche
Dank BYOD waren schon
(ausschließlich) iOS-Geräte vorhanden
Erzeugt in einem Java-fokussierten Softwarehaus andere
Herausforderungen:
andere Programmiersprachen (Objective-C)
andere Entwicklungsumgebungen (Xcode)
anderes Ökosystem und Philosophien (Apple)
 aformatik Training & Consulting GmbH & Co. KG
27
Herausforderungen
Apple-AGBs
Verpflichtung, App-Store zu nutzen (bzw. keine andere
Verbreitungsmöglichkeiten)
Umsatz mit Apps wandert zu ca. 1/3 an Apple
Keine "gleichen" Apps im App-Store (d.h. nicht pro Kunde eine
App möglich)
Ansätze:
App ist gratis, Lizenzen können an die Java EE ServerLösung geknüpft werden
Eine Mandantenfähige App statt pro Mandant eine
 aformatik Training & Consulting GmbH & Co. KG
28
Herausforderungen
Mandantenfähigkeit
Konsequenz aus der Apple-Problematik…
Java EE ist (noch) nicht mandantenfähig
Lösungen:
keine Infrastruktur-Services verwenden, sondern selbst
ausprogrammiert
Besondere Herausforderung: JPA (benötigt pro Datenbank
eine "Persistence Unit") vs. Mandanten (haben je eine eigene
Datenbank zugeordnet)
 aformatik Training & Consulting GmbH & Co. KG
29
Herausforderungen
Konfigurierbarkeit
Auswirkung der Mandantenfähigkeit auf den Client
Keine eigene App-Gestaltung pro Kunde, sondern eine App, die
sich je Kunde individuell gestaltet
Ansätze nur durch komplette Eigenentwicklung möglich:
Konfigurationsframework für den Server (Trennung von
Shared- und Company-Config, Konfig-Dateien im FileSystem)
Eigene Plist + Ressourcen für den Client, die auf dem Server
hinterlegt sind
 aformatik Training & Consulting GmbH & Co. KG
30
Herausforderungen
Reports
Ursprüngliche Kennzahlen-App soll um Begehungsberichte,
Umfragen bzw. Feedback-Möglichkeit angereichert werden
Bei Änderungen möglichst wenig Code-Anpassungen
Einsatz des quelloffenen Eclipse-Subprojektes BIRT +
Integration per Eigenentwicklung
BIRT-Report-Designer für die individuelle TemplateGestaltung (komplett fertige, sofort nutzbare GUI)
Reports können ohne Code-Anpassung direkt verändert
werden
"Printing" durch Mail-to-Fax-Lösung
 aformatik Training & Consulting GmbH & Co. KG
31
SIS Architektur – Fokus auf Print/Report
Java EE Application Server
Communication
REST
Ticketing
(Security)
Export / Import
WebServices SOAP
Fachliche
Services
XML
Fachdaten JPA
Print/Report
BIRT Libraries
DB
PDF
Bemerkungen
- Template-XML wird mit dem ReportDesigner (graphisch) erzeugt
- BIRT könnte auch andere Formate als
PDF generieren (HTML, Excel…)
 aformatik Training & Consulting GmbH & Co. KG
32
Fahrplan – Agenda
 aformatik Training & Consulting GmbH & Co. KG
33
Fazit oder "Lessons suprisingly learned"
Durch die Konfigurierbarkeit und Mandantenfähigkeit ist eine
auch für uns überraschend vielseitige Software entstanden
1 App, 1000 Anwendungsmöglichkeiten…– nicht nur ein
Marketing-Spruch, sondern schon heute so gelebt
Weiterhin ist es überraschend einfach, neue Kunden einzupflegen
keine Code-Änderungen
nur DB-Einträge und Konfigurationsdateien
Smartphone und Tablet bieten interessante neue
Anwendungsgebiete, "die noch nie zuvor ein PC betreten hat"
Zitat Project-Lead: "Macht mehr Spaß als ein VfB Stuttgart-Spiel
aus dieser Saison und ist, dank Java EE, stabiler als die deutsche
Abwehr"
 aformatik Training & Consulting GmbH & Co. KG
34
Zum Schluß…
App-Store
https://itunes.apple.com/id/app/comeleo/id490593357?mt=8
?!?
[email protected]
 aformatik Training & Consulting GmbH & Co. KG
35
Herunterladen