SAP als JAVA Technologielieferant Michael Chytracek Michael.Chytracek@snapconsult.com JUGAT 29.01.2009
Agenda Kurze Snap Team Vorstellung SAP NetWeaver CE 7.1 was ist das? SAP Java 5 Plattform SAP Erweiterungen Development Infrastructure Composite Applications (Business Logik) WebDynpro (AJAX artiges Web Frontend) Enterprise Repository SAP Galaxy
Kurze Snap Team Vorstellung Snap Consulting dzt. 31 Personen in AT/DE Hauptfokus auf SAP Projektumsetzung ABAP/JAVA Snap Java Team 4 Personen Team seit 2004 Projekte mit BEA, JBOSS, OpenSource ÖAMTC Leonardo ca 1000MT RedBull SOET ca 600MT Schenker FrächterDB ca 150MT Projekte mit SAP Netweaver T-Mobile VIS4 Bramac Vertriebsportal
SAP NetWeaver CE 7.1 was ist das? NetWeaver nennt SAP seine Technologie-Plattform Derzeit in Version 7.0 verfügbar CE 7.1 Zwischenrelease hauptsächlich neue Java Features Nächstes Release 7.2 Ende 2009
SAP NetWeaver CE 7.1 was ist das? Die Laufzeitumgebung Java EE 5 Anwendungsserver Java Application Server Eclipse Enwicklungs umgebung Entwicklungsumgebungen Eclipse Visual Composer Der Prozess baukasten: Guided Procedures (GP) Galaxy WebDynpro Framework Geschäftsobjekte erstellen, Services zur Verfügung stellen Composite Application Framework (CAF) Web Services / Enterprise Services Connectivity Bus Services Sichten / UI Prozesse Event Portal und Web Basic service New service Flow Analytics Data service Formulare Service façade Enterprise service Rolle Mobile und Sprache Benutzerschnittstelle Web Dynpro Java Java Server Faces Adobe Interactive Forms Adobe Flex Spracheingabe Die Serviceverwaltung Enterprise Service Repository Service Registry Softwarelogistik (NWDI) Design Time Repository Component Build Services Change Management & Transport Service Daten oder File
SAP JAVA 5 Plattform Erster Java 5 zertifizierter Server Eigene Java VM Eclipse 3.3 basiertes Developer Studio Viele SAP Komponenten am Java Stack SAP XI/PI SAP SolMan, BI,... Viele Konzepte aus dem ABAP Umfeld nach JAVA transponiert Ca 10500 Personen weltweit in Java Entwicklung bei SAP
Development Infrastructure (NWDI) Motivation Entwicklung Versionsverwaltung Manuelle Distribution der Software Kopieren aktueller Libraries von der make-maschine Manuelles Deployment auf Test-Server Inkonsistente Verwendung von Libraries, Integrationsprobleme Lange Bug Fixing-Zyklen aufgrund central nightly builds Unterstützung für Software-Komponenten Auslieferung Keine Unterstützung für Distribution und Upgrading versionierter Java-Sourcen Keine Unterstützung für kundenseitigen make-prozess
Versionsverwaltung SAP Erweiterungen Development Infrastructure (NWDI) Open Source Lösungen CVS, Subversion, Perforce,... Build Management und Libraries Maven, Ant Zentraler Build Continuum Integration Server Komponentenmodell Jboss Seam, Spring, OSGi, Apache Avalon
Development Infrastructure (NWDI) SAP Lösung
Development Infrastructure (NWDI) Zentrale Installation vereinigt: Anbindung an SLD (Produkte, SCs) Nameservice (Präfixe für Tabellen,...) Versionsverwaltung (DTR) Build Management (CBS) Change Management Service (CBS) Deployment/Transport (DEV, CONS, PROD)
Development Infrastructure (NWDI) Eclipse Integration Basiert auf Eclipse Development Framework Inkrementeller Build Ant-basierter Build-Support Unterstützung für Archiv-Build Lokales und remote Debugging Funktionalitäten von SAP durch Plug-Ins erweitert Unterstützung für SAP-spezifische Entwicklungen Creation Wizards, Deployment, Lokale Tests, Debug -Umgebung Integrierte IDE-Unterstützung für DC-Entwicklung Nahtlose Integration in NWDI
Development Infrastructure (NWDI) Software Lifecycle Management Produkt & Applikation definieren Track & Dev. Konfig. Entwicklung importieren freigeben Software Lifecycle CM vorbereiten Auslieferng definieren Nächste Release 1. SLD: Definition der zu entwickelnden Software Definition eines Produktes Definition einer / mehrerer Software-Komponenten (SC), die das Produkt bilden 2. CMS: Definition einer Entwicklungsumgebung Definition eines Track für eine spezifische Release der SC Generieren von Entwicklungskonfigurationenen für jeden Entwicklungsstand einer SC (DEV / CONS) 3. Dev. Studio: Entwicklungsobjekte editieren & kompilieren Verwenden des SAP NetWeaver Developer Studio in Verbindung mit der SAP NWDI für alle Entwicklungsprojekte Entwicklungsobjekte für Weiterverarbeitung durch QM freigeben 4. CMS: Definition der weiteren Verwendung von SC Transport in nächste Entwicklungsstufe, Qualisty Assurance und Assemblierung unter Verwendung des Change Management Service 5. CMS: Auslieferung von SCs und Patches Auslieferung von SC Versionen als Grundlage von Produkten und Support Packages 6. CMS: Definition eines Track für die nächste Release einer SC
Composite Applications Eigener Projekttyp mit spezieller Eclipse Perspektive und MDA Views Metadata Project Dictionary Projekt Permissions Project EJB Projekt EAR Projekt
Composite Applications ApplicationServices Modellieren der Methoden Generieren als EJBs Impl. der Business-Logik BusinessObjects Modellieren der Attribute Generieren als EJBs Impl. der findby-logik Transportobjekte Modellieren der Attribute Generieren als Java Beans
Composite Applications Implementierung der Persistenzschicht Objektorientierter Zugriff auf Daten und Transaktionen 100%ige Integration in die Entwicklungsumgebung Datenstrukturen in Dictionary verwaltet (Wiederverwendbarkeit, Enumerations, Mehrsprachigkeit, Label-, Kurz-/Langtexte für Attribute) Keine Detailkenntnisse notwendig (Tabellen- Spalten, Datentypen, ) Im Hintergrund: JPA Implementierung für alle unterstützten Datenbanken/Betriebssysteme SAP Caching/Pooling wirksam Generierter Code für Berechtigungseinschränkungen auf Record-Ebene
Composite Applications
Composite Applications Implementierung der Businesslogik Objektorientierter Zugriff auf Business Funktionen 100%ige Integration in die Entwicklungsumgebung Keine Detailkenntnisse notwendig (EJB Technologie, ) Bereitstellung als Webservice durch 2 Klicks
Composite Applications
Webanwendungen in Enterprise Qualität Minimales Codieren, maximales Design Trennung von Layout und Logik Unterstützung für verschiedene Backends Wiederverwendung von Komponenten Web Services & Data-Binding Konfiguration von UI Patterns Plattformunabhängigkeit SAP Erweiterungen WebDynpro Framework für Web Anwendungen serverseitig durch Unterstützung verschiedener Laufzeitsysteme (Java, ABAP ) clientseitig durch Java Script-Anwendungskomponenten mit Lauffähigkeit in verschiedenen Standard-Browsern (IE, Firefox) Verbesserte Benutzerfreundlichkeit Bildschirmaktualisierung ohne neuerlichen Seitenaufbau dynamische Darstellung clientseitig Performanz durch Caching 508 Accessability Unterstützung flackerfreie Bildschirme, wenige Refreshs
WebDynpro Framework für Web Anwendungen Beschreiben der Eigenschaften einer Web Dynpro Applikation in Form von Metadaten mittels Web Dynpro Toolset Quellcode wird automatisch generiert, kompiliert und zur Laufzeit ausgeführt Möglichkeit zur Plazierung eigenen Codes in vorgesehenen Bereichen UIs bestehen aus Basis- sowie anwendungsspezifischen Elementen, die statisch deklariert oder programmatisch implementiert und zur Laufzeit integriert werden können Programmatische Implementierung ermöglicht Erweiterung deklarativ UIs mit neuen Interface-Strukturen zur Laufzeit und damit Kombination deklarativer und programmatischer Techniken
WebDynpro Anwendungsszenarien
WebDynpro Entwurfsmuster für Benutzeroberflächen Ebenen Controls atomare Layout-Elemente, bestimmen Look & Feel der Anwendung Components wiederverwendbare, aufgabenorientierte Baugruppen Floor Plans Bildschirmgestaltung, Interaktivität und Semantik generischer Anwendungen Konsistente Benutzeroberflächen geringer Einarbeitungsaufwand wenig Spzialkenntnisse erforderlich
WebDynpro Features Clientseitiges Framework umfangreiche Bibliothek von Benutzeroberflächenelementen Zero Footprint Java Script-Bibliothek < 100 KB Lauffähig auf IE >= 5.0 und Firefox >= 1.0 Integration mit externen Komponenten Microsoft Office Adobe Forms Adobe Flash Islands JSF Islands Performance optimiertes Client-Server Protokoll Laden von Tabellendaten Delta-Transfer Layout-Informationen vom Server zum Client Anwendungsdaten in beide Richtungen
WebDynpro Features Umfangreiche UI Bibliothek entspricht Unified Rendering & Unified UI Elements Standard Deklaratives Screen Management Navigationsgraphen Verschachtelte Views & Popup-Fenster Layout Varianten Grid-, Flow-, Row- & Matrix-Layout Verschachtelungsmöglichkeit Generische UI Services basierend auf Metadaten Extended Value Selector ( F4 ) Metadaten für Werteselektion aus Dictionary oder dynamisch definiert automatische Konvertierung, Prüfungen und Fehlerbehandlung für elementare Datentypen Umfangreiches Fehlerbehandlungskonzept
WebDynpro MVC Paradigma Design Pattern für Entkoppelung von Präsentation und Logik einer Applikation Verarbeiten von Events Aktualisieren der Anwendungsdaten Definieren des Kontrollflusses Definition der Anwendungsdaten Verbindung zu Business- Funktionalität (Command Pattern) Visualisieren der Anwendungsdaten
WebDynpro Komponenten Definition wiederverwendbare Einheit umfasst alle Bestandteile, die im Rahmen dieser Programmier-Einheit für lauffähige Web-Dynpro-Anwendung benötigt werden enthält beliebige Anzahl von Windows und Views mit zugehörigen Controllern Referenzierung weiterer Web-Dynpro-Components möglich Lebensdauer beginnt mit erstem Aufruf zur Laufzeit & endet mit der Laufzeit Vorteile Strukturieren der Programmierung Bilden überschaubarer Anwendungsblöcken Wiederverwendbarkeit ganzer Components Zeitliche und räumliche Entkopplung von Software -Projekten
WebDynpro Beispielanwendung T-Mobile VIS4
Enterprise Services Repository & Registry Verfügbar ab CE 7.1/PI 7.1 Business APIs zu SAP Funktionen In Enterprise Services Community (ESC) abgestimmte Services Verwendung von Global Datatypes (ISO/CCTS) Organisiert in Bundles Sichert Abwärtskompatibilität Standardkonform (WSDL) via UDDI
Enterprise Services Repository & Registry Verwendung von Enterprise Services Im Developer Studio siehe später Galaxy Im Visual Composer Mit Enterprise Services Workplace
Danke für ihre Aufmerksamkeit