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