20. Deutsche Anwenderkonferenz 2007 Software Entwicklung 2.0 Raus aus dem Chaos mit der kollaborativen Open Source- Entwicklungsumgebung. Nürnberg 21. November 2007 Robert Szilinski PROMATIS software GmbH 1
Anforderungen an das technische Projektmanagement Konfigurationsmanagement Dokumentationsmanagement Qualitätsmanagement Versionsmanagement 2
Schon kleine Einflussfaktoren Die Information habe ich nie noch nie gesehen... Gestern ging es noch... Bei mir funktioniert es... Wo finde ich nochmal... Wie mache ich schnell ein Deployment? können den Projektablauf auf Dauer massiv negativ beeinflussen! Projekt 3
Die Insellösungen beheben...nur bekannte Probleme...nur Probleme, die während des Projektablaufs erkannt wurden... Probleme nur zeitweise... werden mit großer Vorliebe umgangen.. produzieren zusätzlichen Aufwand Projekt 4
Ziele Entwicklungsumgebung 2.0 Focus: JEE Entwicklung Mit den Komponenten einer kollaborativen Entwicklungsumgebung sollen:... Informationen und gesammeltes Wissen gezielt ausgetauscht werden... Best-Practices eingeführt und gefördert werden... Einarbeitungszeiten verringert werden... Aufgaben automatisiert werden Projekt... die Entwicklungszeiten reduziert werden... Die Projektbeteiligten entlastet werden 5... größere/internationale Projekte auf eine einheitliche Basis gestellt werden
Die Komponenten im Zusammenspiel Subversion Subversion JDeveloper JDeveloper Projekt Projekt OCS OCS MAVEN Continuum Continuum Software Software Dokumentation Dokumentation Nachverfolgung Nachverfolgung Versionen Versionen Wiki Wiki Best Best Practices Practices 6
Entwicklungsumgebung 2.0 Kurzübersicht der verwendeten Tools Subversion Sourcecode und Revision Management JDeveloper - Entwicklungswerkzeug Java, JEE, SOA & BPEL, Datenbanken und SQL OCS Oracle Collaboration Suite zentrale Projektablage (Workspaces), Posteingang, Kalender, IM Wiki Wissensdatenbank, Best Practices, Howtos Maven Project/Source Organisation, Best Practices Continuum Continuous Integration System 7
Wiki Wissensdatenbank, Best Practices Zentraler Einstiegspunkt Administrative Informationen Standards und Konventionen Entwicklungsumgebungen Technologien & Best Practices Informationen zu Projekten 8
Oracle Collaboration Suite Workspaces Terminkalender Aufgaben Email / IM ContentDB 9
Subversion Versionskontrollsoftware Datei/Pfadversionierung Tagging Änderungsverfolgung Revisionsmarken im Sourcecode Integriert in JDeveloper 10
JDeveloper Subversion Plugin Instant Messaging Maven Tool Integration 11
Entwicklungsprozess IDEs Base Technologies Eclipse XML Java PL/SQL SQL JDeveloper Oracle Designer Application Express Prozess Coding Style Guide Java Technologies J2SE JDBC RMI JNDI JEE JSF EJB Servlets SQL Developer Swing JAAS JSP XML JMS Oracle Developer Development Support Infrastructure Frameworks Subversion - Versionsverwaltung ADF Spring Struts JUnit Maven - Konfigurationsmanagement Oracle Collaboration Suite SOA Components Continuum Build Management UDDI WSDL WebServices BPEL 12 Wiki, VMWare
Prozess JEE Entwicklung 13
Entwicklung vorbereiten 14
Maven Organisation v. Projekt/Source, Best Practices 15
Maven Organisation v. Projekt/Source, Best Practices Kombination von Ideen, Standards und Software Repository für verwendete Bibliotheken Management und Beschreibung von Projekten Standardisierter Lebenszyklus für das Erstellen, Testen und Deployen von Projekten Projektdokumentation 16
Maven Infrastruktur Allgemeine Konzepte Verwendung des Internet-Repositories (www.mvnrepository.com) Aufbau eines internen Repositories für Bibliotheken Aufbau eines Servers für Projektdokumentationen Lokale Installation von Maven 2 Verwendung von Batchskripts für Erstellung, Deployment und Dokumentation von Projekten 17
Maven Infrastruktur Internet Repository Internes Repository VPN Netzwerk Entwickler 3 (extern) Entwickler 1 (intern) Entwickler 2 (intern) 18
Maven Infrastruktur Internet-Repository Hosted alle frei verfügbaren Maven und Drittanbieter Bibliotheken Erreichbar/einsehbar unter www.mvnrepository.com Ablage der Bibliotheken unter groupid / artifactid / version / artifactid_version.jar < groupid > : Standardpackage (z.b. org.apache, commons-util) < artifactid > : Bibliothekstyp (z.b. maven, commons-util) < version > : Version (1.0, 1.1, 2.0,...) 19
Maven Infrastruktur Internes Repository Hosted alle Drittanbieter Bibliotheken, die nicht im Internet verfügbar sind Hosted eigene Projekt Bibliotheken Server: http://yourdomain.de/mvnrepository Ablage Bibliotheken Drittanbieter vgl. Internet Feste Projektablage unter kunde / projekt / version projekt_version.jar (ear/war/...) 20
Maven Projektsetup <model>... <groupid>promatis</groupid> <artifactid>project</artifactid> <version>1.0-snapshot</version> <packaging>jar</packaging> <!-- continuous integration configuration --> <cimanagement> <system>continuum</system>... </cimanagement> <!-- source code management --> <scm> <connection>scm:svn:http://xxxxxx</connection> </scm> <!-- predefined reporting configuration --> <reporting> <plugins>... </plugins> </reporting>... </model> 21
Maven Infrastruktur Projektdokumentation Erstellung von Projektwebseiten durch Maven Server: http://yourdomain.de/mvndocumentation Ablage der Projektwebseiten unter / kunde. projekt / index.html 22
Maven JUnit Testreport 23
Continum Continuous Integration System Erstellt/Testet Projekte automatisch Kontrolle von Änderungen Integriert in Maven Identifikation von Problemen 24
Fazit und Ausblick seit 2004 Einsatz der kollaborativen Umgebung in Projekten viele z.t. internationale Projekte aufgesetzt eigenes JDeveloper Plugin bietet optimale Unterstützung im Oracle Umfeld Oracle ebusiness Plugin für die Dokumentation und Konfiguration in Arbeit setzt die Entwicklungsumgebung auch vor Ort bei Kunden ein weitere Integration mit eigener Projektmanagementlösung weitere geplante Features: Aufgabenmanagement mit OCS über JDeveloper Plugin, Anbindung ContentDB zur Dokumentation 25
20. Deutsche DOAG Anwenderkonferenz 2007 Software Entwicklung 2.0 Nürnberg 21. November 2007 Diskussion Robert Szilinski PROMATIS software GmbH 26