05.07.2012 Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG
Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 2 2
Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 3 3
Einführung Architekturen für Business Anwendungen Was ist eine Business Anwendung? Bildet verschiedene Prozesse eines Unternehmens ab Problematik Immer wiederkehrende Anforderungen Kein kompletter Ansatz für Business Anwendungen vorhanden NABUCCO Idee Ein Framework mit einer Architektur für unterschiedliche Business Anwendungen zu schaffen 4 4
Einführung Unsere Anforderungen an ein Framework für Business Anwendung Leichtgewichtig und Performant Kurze Ladezeiten / Keine langen Wartepausen Kontinuierliches Arbeiten ermöglichen Wiederverwendbar und Konfigurierbar LEGO Baukastenprinzip Business Anwendungen unterschiedlicher Arten Unabhängig Open Source Framework Keine Lizenzabhängigkeiten 5 5
Einführung Unsere Anforderungen an ein Framework für Business Anwendung Web 2.0 HTML, CSS, JavaScript AJAX, XHR, JSON Server-Zentrisch Thin Client (beschränkt auf DOM Manipulation) Ressourcen Orientiert (REST) KISS Prinzip 6 6
Einführung Entwicklungsmöglichkeiten Zusammenstecken vorhandener Frameworks Universeller Ansatz Basisarchitektur Getestete Funktionalität Schnelle Ergebnisse Eigenentwicklung Individueller Ansatz Spezielle Lösungen für spezielle Probleme Optimierungsmöglichkeiten Keine Abhängigkeiten (Releases, Lizenzen) 7 7
Einführung Heutige Web Anwendungen Beispiele für aktuelle Web Anwendungen Amazon Google Mail Facebook Wikipedia Outlook Web Access Nicht auf Basis von Frameworks entwickelt 8 8
Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 9 9
Architektur Client Browser HTML, CSS, JavaScript, JSON Web Server Servlet Servlet Component Tree Service Proxy Application Server Component Component Component Database External System 10 10
Architektur Client Browser HTML, CSS, JavaScript, JSON Web Server Servlet Servlet Component Tree Service Proxy Application Server Component Component Component Database External System 11 11
Architektur Client Browser HTML, CSS, JavaScript, JSON Web Server Servlet Servlet Component Tree Service Proxy Application Server Component Component Component Database External System 12 12
Architektur Client Browser HTML, CSS, JavaScript, JSON Web Server Servlet Servlet Component Tree Service Proxy Application Server Component Component Component Database External System 13 13
Architektur Client Browser HTML, CSS, JavaScript, JSON Web Server Servlet Servlet Component Tree Service Proxy Application Server Component Component Component Database External System 14 14
Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 15 15
Lösungen Layout Konfigurierbares Layout Layout der Anwendung ist individuell konfigurierbar Konfiguration per XML Kein Anpassen von HTML, CSS, JavaScript notwendig Layouting nach LEGO Prinzip Verschiedene Bestandteile Individuell zusammensteckbar 16 16
Lösungen Layout NABUCCO Application Logo Titlebar Search Statusbar Version 17 17
Lösungen Layout NABUCCO Application Titlebar Perspective 1 Perspective 2 Perspective Area Statusbar 18 18
Lösungen Layout NABUCCO Application Titlebar Perspective 1 Perspective 2 Perspective 3 Perspective 4 Perspective Area Statusbar 19 19
Lösungen Layout NABUCCO Application Titlebar Perspective Area Navigation Area Entry A Entry A Browser Area Entry A Entry B Statusbar 20 20
Lösungen Layout NABUCCO Application Titlebar Perspective Area Tab 1 Tab 2 Tab 3 Editing Area Navigation Area List / Editor / Dashboard Browser Area Statusbar 21 21
Lösungen Layout Listen Layouting Listen stellen Mengen von Daten in einer Tabelle dar Serverseitiges Paging, Filtern & Sortieren Konfigurierbare Titel, Größe, Filter, Sortierung 0-7 of 50 Filter Menu Name Description Status Type <column id="name" property="name" label="name" tooltip="projektname" width="15" visible="true" sortable="true" /> Column Konfiguration 22 22
Lösungen Layout Editor und Dashboard Layouting Aufteilung in zweidimensionales Grid Controls werden auf dem Grid platziert Layout Hints definieren die Ausrichtung <text id="name" property="name" label="name" tooltip="projektname" position="a0-b0" hint="std" /> Text-Field Konfiguration Eigene Controls und Widgets Text-Field, Combo-Box, Date-Picker, etc. Bar-Chart, Pie-Chart, etc. A0-B0 23 23
Lösungen Layout Binding Controls werden per Property-Name an Attribute gebunden Keine Verwendung von Java Reflection dank eigener MDA Tab 1 Editing Area Name Description Project Status NABUCCO A framework for lightweight business applications Running Project Type Fixed Price 24 24
Lösungen Live Demo 25 25
Lösungen Komponentenbaum Server kennt und verwaltet den Client Baum aller Anwendungsbestanteile Serverseitige Abbildung der UI Elemente Ressourcensicht Ressourcen werden per URL angesprochen HTTP GET liefert die Ressource HTTP PUT ändert die Ressource HTTP POST legt neue Ressource an HTTP DELETE löscht die Ressource 26 26
Lösungen Komponentenbaum 27 27
Lösungen Komponentenbaum 28 28
Lösungen Komponentenbaum HTTP GET Request 29 29
Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 30 30
Zusammenfassung NABUCCO Business Framework Leichtgewichtig & Performant Wiederverwendbar Konfigurierbar Simpel Unabhängig Open Source NABUCCO Human Resources Referenzimplementierung 31 31
Fragen? Uns gibt s auch hier im Java Forum! Stand Nummer 23 32 32
Vielen Dank für Ihre Aufmerksamkeit NABUCCO http://nabucco.org/ http://github.com/nabucco/ PRODYNA http://www.prodyna.com/ http://www.prodyna.com/nabucco-business-framework/ 33 33
Unsere Kontaktdaten Ihr Ansprechpartner: Nicolas Moser Software Engineer nicolas.moser@prodyna.de PRODYNA AG Ludwig-Erhard-Straße 12-14 65760 Eschborn Telefon +49 69 597724-0 Telefax +49 69 597724-700 info@prodyna.com www.prodyna.com PRODYNA AG Stuttgart Wilhelmsplatz 11 70182 Stuttgart Telefon +49 711 596004-22 Telefax +49 711 596004-11 34 34