Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SinnerSchraderNeueInformatik SinnerSchrader Hamburg, 27.02.2007 Autor: Thomas Jacob TECH-TALK Commerce-Framework, Projektvorlage, Projekt-Wizard, dev-Site.

Ähnliche Präsentationen


Präsentation zum Thema: "SinnerSchraderNeueInformatik SinnerSchrader Hamburg, 27.02.2007 Autor: Thomas Jacob TECH-TALK Commerce-Framework, Projektvorlage, Projekt-Wizard, dev-Site."—  Präsentation transkript:

1 SinnerSchraderNeueInformatik SinnerSchrader Hamburg, Autor: Thomas Jacob TECH-TALK Commerce-Framework, Projektvorlage, Projekt-Wizard, dev-Site

2 SinnerSchrader Seite 2 » Agenda 01 Commerce-Framework 02 Projektvorlage und Projekt-Wizard 03dev-Site 04Wie geht’s weiter?

3 SinnerSchrader Seite 3 01 Commerce-Framework » Was ist das Commerce-Framework? » Komponenten des Frameworks » Ein bisschen Statistik

4 SinnerSchrader Seite 4 Was ist das Commerce-Framework? ? ? ? ? ? ? ? ? ? ? ? ? » Welche Vorstellung habt ihr? » Was habt ihr gehört? » Was erwartet ihr? Was befürchtet ihr? Commerce Framework buh!

5 SinnerSchrader Seite 5 Was ist das Commerce-Framework? Das Commerce-Framework ist ein Baukasten wiederverwendbarer Java-Komponenten, die » in vielen Sinner-Anwendungen benötigt werden, » auf einer einheitlichen Technologie basieren, » SpringFramework, Hibernate und Struts » sehr gute Integration miteinander und ins Projekt » sich durch hohe Qualität auszeichnen, » nicht nur Spezialfälle abdecken (Eintrittsschwelle).

6 SinnerSchrader Seite 6 Was ist das Commerce-Framework nicht? Das Framework ist kein fertiger Internetshop: » Keine fertigen JSPs oder Struts-Actions » Keine fertige Shop-Lösung in weniger als 10 Manntagen » Das Commerce-Framework ist nicht mit z.B. Enfinity vergleichbar SinnerSchrader entwickelt individuelle Frontends » In der Präsentationsschicht keine fertigen Lösungen für Anwendungsfälle (z.B. Produktkatalog), nur Komponenten für wiederkehrende Muster (z.B. die Prozesskomponente) » In der Geschäftslogik werden jedoch ganze Anwendungsfälle angeboten

7 SinnerSchrader Seite 7 Wie ist das Commerce-Framework entstanden? Talkline-Shop » Einsatz von hybris jakarta » Fehlende starke Typisierung wird im Projekt ausgeglichen Süddeutsche Zeitung Mediathek » Notwendigkeit eines flexiblen und typsicheren Shopsystems » Erste Version des Commerce-Frameworks Integration vorhandener Komponenten » Die Prozesskomponente wird integriert Integration weiterer Projektarbeiten » Zahlungsadapter, FTP-Komponente uvm. werden integriert

8 SinnerSchrader Seite 8 Überblick über die Komponenten des Commerce-Frameworks Formularprozesse Struts on RailsRewrite-Engine Formularvalidierung Präsentation Mailversand Dateitransfer Excel und CSV Web-Services www Schnittstellen ProdukteBenutzerBestellungen Shop-Logik Administration Administrationsoberfläche

9 SinnerSchrader Seite 9 Shop-Komponenten: Produktmanagement (1) Das Objektmodell wird nur deklariert (entworfen) » Java-Klassen und das Datenbank-Mapping werden generiert » Die Administrationsoberfläche baut sich dynamisch auf Beispielkonfiguration: Es wird eine Klasse und Tabelle namens Media generiert Produkte können bestellt werden Das Framework bietet verschiedene Attributtypen Die Einstellungen sorgen für Konsistenz zwischen dem Datenbankmodell und der Validierung

10 SinnerSchrader Seite 10 Shop-Komponenten: Produktmanagement (2) Generierte abstrakte Klasse:Generierte konkrete Klasse: Generiertes Mapping: public abstract class AbstractMedia extends Product { private boolean blocked; private String ean; private List keywords; private List medias; private Style style; private Double weight; public AbstractMedia() { setTypeCode(CODE); this.ean = ""; this.keywords = new ArrayList(); this.medias = new ArrayList(); } public void addKeyword(int index, String keyword) [...] } public class Media extends AbstractMedia { } [...]

11 SinnerSchrader Seite 11 Shop-Komponenten: Produktmanagement (3) Weitere Funktionen: » Preisberechnung über Preisfabrik » Einheitlicher Preis für Produktdarstellung und Bestellungen » Berücksichtigung von Mengen- und Kundenrabatten » Mandanten, Mehrsprachigkeit, Produkt-Bundles » Automatische Erzeugung von Lucene-Indizes » Verwaltung Produktbildern und anderen Ressourcen in der Datenbank » Referentielle Integrität » Interne Daten oder externe URLs » Für Redakteur komfortabel » Für Entwickler transparent (einheitliche API und Taglib)

12 SinnerSchrader Seite 12 Shop-Komponenten: Benutzer- und Bestellmanagement Benutzermanagement » Verwaltung von Endkunden und Redakteuren (Administratoren) » Persistentes Rollen- und Rechte-Management » Einheitliche API für Bonitäts- und Validitätschecks von Adressen und Zahlungsarten » Zur Zeit implementiert: eScore, Bibit, Pago Bestellmanagement » Verwaltung von Bestellungen und Lieferungen » Einheitliche API zur Durchführung von Zahlungen

13 SinnerSchrader Seite 13 Schnittstellenkomponenten: Dateitransfer Die Dateitransfer-Komponente bietet eine einheitliche API zum automatisierten Upload und Download » Automatische Erzeugung Dateinamen (Upload) bzw. Matching (Download) nach verschiedensten Kriterien » Schutzmechanismen » Synchronisation im Cluster » Guard-Time für partiell bereitgestellte Dateien » Überwachbarkeit durch den Betrieb » Archivierungsfunktion » Zur Zeit implementiert: FTP, SFTP, lokales Dateisystem

14 SinnerSchrader Seite 14 Schnittstellenkomponenten: Excel- und CSV-Import und -Export Import und Export von Dateien auf Basis von JavaBeans » Natives Excel (XLS), CSV-Dateien und Festbreiten-Dateien » Validierungsregeln beim Import » In beide Richtungen kombinierbar mit dem Dateitransfer » Verwendet u.a. POI

15 SinnerSchrader Seite 15 Schnittstellenkomponenten: Mailversand Versand von spontanen Mails: » Erzeugung von Mails auf Basis von Velocity-Templates » Plain-Text, HTML oder beides » Konfiguration aller konstanten Informationen » z.B. Subject, From, To, CC, BCC » Veränderliche Attribute werden in der Software eingestellt Zeitlich planbare Massen-Mailings: » Bearbeitung in Batches, Synchronisation im Cluster » Bis zu 130 Mails pro Sekunde bei 2 Nodes gemessen » Bounce-Analyse für fehlerhafte adressen

16 SinnerSchrader Seite 16 Präsentationskomponenten: Formularprozesse Die Komponente Formularprozesse verteilt ein Struts-Formulars auf mehreren Seiten und übernimmt die Navigationssteuerung. » Fortschrittsanzeige innerhalb des Prozesses (Seitennavigation) » Optionale Seiten (abweichende Lieferadresse) » Schutz vor Back-Button-, Refresh- und Doppelklickfehlern » Einstellbares Navigationsverhalten » u.a. sequentiell und wahlfrei » Wiederverwendbarkeit aller Bestandteile » JSPs, Struts-Formulare, Java-Klassen, Validierungsregeln » Integration externer Seiten (z.B. Zahlungsdienstleister)

17 SinnerSchrader Seite 17 Präsentationskomponenten: Suchmaschinenoptimierung Technische URLs werden automatisch in gut lesbare und gut indizierbare URLs umgewandelt » /mobile/MobileDetailsVPAction.do?manufacturer=Nokia&mobile=3210 wird zu /mobile/Nokia-3210 » Kaum Eingriff in Software oder JSPs notwendig » Transparent sowohl für die Software, als auch für die Clients

18 SinnerSchrader Seite 18 Präsentationskomponenten: Struts on Rails (1) Struts on Rails » Vereinheitlichung durch „Convention over Configuration“ » Beschleunigung der Entwicklungsprozesse Struts on Rails ist ein Struts-Plugin » Die Struts-Konfiguration entfällt » Die Action-Klassen werden von Balast befreit und erhalten Generics » Die Validierungs-Konfiguration wird um die Hälfte kürzer

19 SinnerSchrader Seite 19 Präsentationskomponenten: Struts on Rails (2) Action-Klasse ohne RailsAction-Klasse mit Rails public ActionForward execute(...) { ActionMessages errors = form.validate(mapping, request); if (errors != null && !errors.isEmpty()) { saveErrors(request, errors); return mapping.findForward("error"); } CartForm cartForm = (CartForm) form; HttpSession session = request.getSession(); Cart cart = Cart.getInstance(session); cart.setQuantity(cartForm.getQuantityInt()); return mapping.findForward("success"); } protected Class handleInvalidRequest(...) { return CartVPAction.class; } protected Class handleValidRequest(...) { Cart cart = Cart.getInstance(session); cart.setQuantity(form.getQuantityInt()); return CartVPAction.class; } Validierungsfehler werden bereits über die API unterschieden Die Ziel-Action wird über die Klasse angesprochen, JSPs über den Pfad. Eine Konfiguration entfällt! Genertics übermitteln in der Methode bereits die richtige Formklasse

20 SinnerSchrader Seite 20 Administrationsoberfläche Web-Applikation zum Administrieren von » Produkten, Benutzern und Bestellungen » Weiteren anwendungsspezifischen Inhalten Out-of-the-box lauffähig ohne Konfiguration » Produktformulare werden auf Basis der Typisierung erstellt Viele Aspekte sind jedoch konfigurier- und programmierbar » Darstellung der Produktbäume, -listen und -suchen » Editoren der Attribute in den Produktformularen Integration in das Projekt über eine Checkbox in dem Projekt-Wizard Technologie: JavaServer Faces

21 SinnerSchrader Seite 21 Ein bisschen Statistik Projekte » Das Commerce-Framework kommt in schätzungsweise 20 Projekten zum Einsatz, 17 Projekte sind bekannt. » Wissensverbreitung » Ca. 65% der Software-Entwickler haben mit dem Framework gearbeitet, ca. 10% kennen sich sehr gut aus. » Ca. 35% haben für das Framework Funktionen entwickelt. Umfang » Die aktuelle Version enthält über 3 Megabyte Source-Code. » Die Dokumentation ist zur Zeit über 330 Seiten lang (ohne Javadoc). Davon sind allein 30 Seiten Glossar.

22 SinnerSchrader Seite Projektvorlage und Wizard » Was ist die Projektvorlage? » Probleme der Projektvorlage » Der Projekt-Wizard

23 SinnerSchrader Seite 23 Typisches wiederkehrendes Problem: Wie lege ich ein neues Software-Projekt an? Man kopiert das Projekt, an dem man zuletzt gearbeitet hat. » Copy-and-Paste-Fehler treten auf » Name des letzten Projekts taucht an beliebiger Stelle auf » Falsche Abrechnungsdaten (z.B. eScore) werden verwendet » Erschwerter technologischer Upgrade Man beginnt mit einem leeren Projekt. » Erhöhte Aufwände bei stets gleichen Einrichtungarbeiten » Uneinheitliches Setup » Konfigurationen, Komponenten, Prozesse, etc. Lösung: Eine Vorlage für neue Projekte.

24 SinnerSchrader Seite 24 Was ist die Projektvorlage? Die Vorlage ist ein „leeres“ SinnerSchrader-J2EE-Projekt. » Vorbereitete Verzeichnisse für Konfiguration, Komponenten, Quellcode und Dokumentation » Voreingestellte Konfigurationsfiles für sämtliche Komponenten, sowie vorbereitete Java-Klassen » Standardeinstellungen sorgen für Einheitlichkeit und Vermeidung von typischen Fehlern » Kommentare verläutern die nächsten Schritte und bieten Beispiele » SinnerSchrader-typische Build- und POM-Files (Ant und Maven) » Build des Projektes » Versionsplanung und -Dokumentation » Automatisiertes Deployment auf verschiedenste Ziele Mehr Information zur Vorlage gibt es hier: »

25 SinnerSchrader Seite 25 Anfängliche Probleme der Projektvorlage Zunächst starker Fokus auf das Commerce-Framework » Vorlagen für Konfigurationen und Komponenten im Mittelpunkt Manuelle Anpassung auf das entsprechende Projekt notwendig » Pfade, Packages, sonstige Namen/Bezeichnungen » Hinzufügen oder Entfernen von Komponenten inkl. Konfiguration und Build » Umsetzung des Deployment-Szenarios weitgehend im Projekt » Umgebungen und Cluster-Nodes, sowie Benutzer und Pfade » Entwicklung stabiler Distributions- und Deploymentskripte Großer Bedarf an einer Ausweitung der Anwendungsfälle » Hauptsächlich in der Projektvorlage, aber auch im Framework

26 SinnerSchrader Seite 26 Was ist der Projekt-Wizard? Der Wizard ist ein Eclipse-Plugin zum Anlegen eines neuen SinnerSchrader-J2EE-Projekts. » In drei Dialogen werden die Eckpunkte des Projekts abgefragt » Namen und Pfade » Verwendete Komponenten » Deployment-Szenario » Er arbeitet eng mit der Projektvorlage zusammen » Platzhalter wie Namen und Pfade werden dynamisiert » Komponenten werden hinzugefügt oder entfernt, sowie konfiguriert » Das Deployment-Szenario wird in Form von Skripten, Konfigurationsfiles und Build-Targets aufgesetzt Mehr Information zum Wizard gibt es hier: »

27 SinnerSchrader Seite 27 Ziele des Wizards Einheitlichkeit » Die meisten Eingaben besitzen einen Default oder sind abgeleitet » Konventionen, von denen nicht abgewichen werden soll, können zunächst nicht verstellt werden » Die Komponenten sind vorausgewählt » Durch die Projektvorlage entstehen einheitliche Strukturen Geringere Fehleranfälligkeit » Die Einrichtungsarbeit (Namen, Komponenten, etc.) ist erprobt Kostenersparnis » Der Wizard spart bis zu 5 Personentage in jedem neuen Projekt und hat sich damit mitlerweile mehrfach amortisiert

28 SinnerSchrader Seite 28 Screenshots: Namen und Pfade (1) Namen » Projektfamilienkürzel » Projektfamilie » Projektnummer » Projektname » Technischer Name » Package-Name Pfade » Lokaler Pfad » RepositoryTyp und -Pfad

29 SinnerSchrader Seite 29 Screenshots: Namen und Pfade (2) Konventionen als Defaults: » Lediglich Projektfamilie, Projektnummer und Projektname sind Pflicht » Technischer Name, Package, Pfade und Repository ergeben sich über die Konvention

30 SinnerSchrader Seite 30 Screenshots: Features Einfaches Hinzuwählen kompletter Funktionen » Komponenten werden hinzugefügt » Konfigurationen werden angepasst » Der Build-File wird angepasst » Beispiel-Sourcen und Kommentare werden hinzugefügt

31 SinnerSchrader Seite 31 Screenshots: Distributionen (1) Der Wizard unterstützt drei Distributionstypen » One-Click-Deployment » Binary-Distribution » Source-Distrbution Dies deckt nahezu alle Praxisfälle ab Unterstützung von: » Web-, App- und DB- Clustern » Verschiedenen Automatisierungsstufen

32 SinnerSchrader Seite 32 Screenshots: Distributionen (2) Im One-Click-Deployment sind nahezu alle Eigenschaften je Umgebung einstellbar » Anzahl Nodes im Cluster » Rechnernamen » Benutzernamen » Pfade » Ports Sie bieten aber wiederum Defaults entsprechend der Konvention

33 SinnerSchrader Seite dev-Site (Commerce-Wiki) » Was ist die dev-Site? » Handbuch des Commerce-Frameworks » Glossar technischer Begriffe bei SinnerSchrader » Downloads und Schema-Locations » Standardisierung, Entwurfsmuster, Tipps und Tricks » Zukünftige Ziele

34 SinnerSchrader Seite 34 Was ist die dev-Site? Die dev-Site (CommerceWiki) ist ein MediaWiki, in erster Linie für das Handbuch des Commerce-Frameworks » MediaWiki ist das Wiki der WikiPedia » Schöne Optik und sehr gute Funktionen » Erweiterung für Handbücher » Inhaltsverzeichnis » Navigation Es soll die erste Anlaufstelle für Fragen sein, die im Zusammenhang mit dem Framework, typischer SinnerSchrader-Projekte und Konventionen stehen. Die URL ist denkbar einfach: » Qualitätssicherung macht Nils. ;-)

35 SinnerSchrader Seite 35

36 SinnerSchrader Seite 36 Handbuch des Commerce-Frameworks Das Handbuch besteht aus » Einer Einführung in das Commerce-Framework und typische SinnerSchrader-J2EE-Projekte » Einem Tutorial „das erste Projekt“, das durch schnellen Erfolg das Framework schmackhaft macht » Dokumentation aller Komponenten » Ausführliche Erläuterungen » Diagramme, Grafiken » Direkt einsetzbare Beispiele » Tabellarische Referenzen etc.

37 SinnerSchrader Seite 37

38 SinnerSchrader Seite 38

39 SinnerSchrader Seite 39 Das Handbuch ist auf verschiedene Weise lesbar Schnelle Cross-Referenz » MediaWiki bietet durch einen hohen Verlinkungsgrad beim Lesen Erklärungen für auftauchende Begriffe » Suche nach Begriffen führt schnell zu den passenden Kapiteln Sequentielles (herkömmliches) Lesen » Durch eine Erweiterung steht ein verlinktes Inhaltsverzeichnis wie in Word zur Verfügung » Es kann Kapitel für Kapitel, Seite für Seite gelesen werden » Geeignet zum selbständigen Einarbeiten in die SinnerSchrader- Software-Materie Druckversion » Das gesamte Handbuch kann in linearisierter Form gedruckt werden

40 SinnerSchrader Seite 40 Zielgruppen des Handbuchs Verschiedenste Zielgruppen » Neue Entwickler bei SinnerSchrader » Handbuch führt komplett in die J2EE-Thematik bei SinnerSchrader ein » Bird-View-Einführung und Mitmach-Tutorial » Handbuch komplett ausdruckbar „für die Bahn“ » Erfahrene Entwickler » Kapitel-Browsen, Suchen, Java-API-Doku und Glossar als Referenz » Consultants und Kunden » Einführende Kapitel für Consultants und Kunden » Auflistung von Referenzprojekten

41 SinnerSchrader Seite 41 Glossar technischer Begriffe bei SinnerSchrader Alle Begriffe im Handbuch führen zunächst auf ein Glossar-Popup. Der Eintrag führt den interessierten Leser in das entsprechende Kapitel. Das Glossar kann aber auch durchstöbert, angeklickt oder durchsucht werden. Es vereinheitlicht alle Begriffe und sorgt für konsistente englische Übersetzungen.

42 SinnerSchrader Seite 42 Standardisierung und Entwurfsmuster Das Handbuchs enthält Kapitel zur Standardisierung » Allgemeine Muster des Software-Designs in SinnerSchrader-J2EE- Projekten » Spezielle Muster für die Arbeit mit dem Commerce- Framework » Coding-Conventions » Tipps- und Tricks für » Struts » Hibernate und Spring » HTTP/Servlet-API » uvm.

43 SinnerSchrader Seite 43 Downloads und Schema-Locations Die dev-Site ist desweiteren Server für Downloads » Aktuelle Commerce-Framework-Versionen aller Branches » V0, V1, V2 und V3 als Source, Binary und Dokumentation » Aber auch Verweis auf das Maven-Repository » Die Projektvorlage und der Projekt-Wizard als Download Die Site enthält eine Eclipse-Update-Site für den Wizard Sie ist Schema-Location für diverse Konfigurationsfiles » Prozesskomponente, Typisierung, Rollen und Rechte, etc. Sie ist Server für die umfangreiche Framework-API-Dokumentation

44 SinnerSchrader Seite 44 Zukünftige Ziele der dev-Site Zusammenführung aller SinnerSchrader-Developer-Ressourcen in die dev- Site » Wiki-Tipps, filesrv3\rnd, filesrv8\s2i, common/docs » Ein attraktiver Ort als Einstieg, keine doppelten Ressourcen » Ein Technologiekreis-Ausschuss arbeitet bereits daran Konsequente Einhaltung der Konventionen und höherer Nutzungsgrad der Vorlage » Weniger Fehler, weniger Aufwände, besserer Komponententausch Ggf. Veröffentlichung der dev-Site » Interesse wecken bei Entscheidern und Technikern » Interesse wecken bei Software-Entwicklern

45 SinnerSchrader Seite Wie geht’s weiter? » Aktuelle Arbeit an Version 4 » Eintägiger Workshop „Commerce-Framework“ » Committer werden

46 SinnerSchrader Seite 46 Aktuelle Arbeit an Version 4 Aufteilung des Commerce-Frameworks in Komponenten » 12 einzeln wählbare Komponenten » weniger Abhängigkeiten zu Drittkomponenten » weniger Abhängigkeiten innerhalb des Frameworks » Überarbeitung des Projekt-Wizards und der Projektvorlage

47 SinnerSchrader Seite 47 Workshop zum Commerce-Framework Voraussichtlich gibt‘s demnächst einen eintägigen Workshop zum Commerce-Framework » 3 Gruppen à 2 Personen arbeiten zusammen an einem Projekt » Pair-Programming und offene Diskussion » 3 Teilsysteme: Präsentation, Geschäftslogik, Warenwirtschaft » Intensives Kennenlernen der wichtigsten Framework-Funktionen

48 SinnerSchrader Seite 48 Committer werden Jeder kann mitmachen! » Neue Lösungen umsetzen und ins Framework integrieren » Vorhandene Projektlösungen ans Framework übergeben, sofern eindeutig Allgemeinnutzen » Mehr Infos zum Mitmachen: » »

49 SinnerSchraderNeueInformatik SinnerSchrader Thomas Jacob T SinnerSchrader Deutschland GmbH Völckersstraße 38, Hamburg Vielen Dank.


Herunterladen ppt "SinnerSchraderNeueInformatik SinnerSchrader Hamburg, 27.02.2007 Autor: Thomas Jacob TECH-TALK Commerce-Framework, Projektvorlage, Projekt-Wizard, dev-Site."

Ähnliche Präsentationen


Google-Anzeigen