Web 2.0 Architekturen und Frameworks codecentric GmbH Mirko Novakovic
codecentric GmbH Quality Technische Qualitätssicherung in Software-Projekten mit Fokus auf Performance, Verfügbarkeit und Wartbarkeit Architecture Beratung und Entwurf mit Schwerpunkt Web- und SOA- Architekturen Architektur Reviews Open Technology Beratung im Bereich Open Source Technologien und Frameworks Entwicklung von Portal-, Enterprise CMS- und SOA Projekten 1
Über den Referenten Seit über 10 Jahren Java begeistert Fokus auf Performance Tuning und Management WebSphere und JBoss Tuning JVM- und Anwendungsoptimierung Überwachung und Diagnose mit dynatrace, PerformaSure, Foglight und Introscope Mitbegründer und Geschäftsführer von codecentric GmbH 1
Agenda 1 Web 2.0 Neuer Hype oder neue Chance? 2 Technologien und Konzepte von Web 2.0 3 Ausblick 4 Fazit 1
1.1 Was ist Web 2.0? Oberbegriff für einer geänderten Wahrnehmung des Internets einer Reihe neuer interaktiver Techniken neue Dienste des Internets Definiert von O Reilly, jedoch vielfältig verwendet 2
1.2 Web 2.0 im Hype Cycle 3
1.3 Web 2.0 für CIOs 4
2.1 Web 2.0 Technologien 5
2.2 Web 2.0 für Enterprise Applikationen Rich Internet Applications (RIA) Leistungsfähige Webanwendungen Keine Installation auf dem Client Hohe Interaktion mit dem Benutzer Serviceoriented Architecture (SOA) Wiederverwendbar Verteilt Anpassbar Über Internet Technologien aufrufbar 6
2.3 Rich Internet Applications (RIA) Flash Applikationen mit reichhaltigen GUI Elementen, die in einem Flash Player ablaufen und Daten von einem Server beziehen können Applets Vollständige Java Applikationen auf Basis von AWT/Swing und Kommunikation mit dem Server AJAX (Asynchronous Javascript avascript and XML) Anwendungen basieren auf Internet Technologien wie HTML und Javascript und kommunizieren über HTTP mit dem Server 7
2.4 RIA mit Flash Adobe Flex (1) Adobe Flex Open Source Projekt von Adobe (http://www.flex.org) Kommunikation mit Java Application Server über REST basierte WebServices (Flex Data Services) Eclipse basierte Entwicklungsumgebung (Flex Builder) GUI Komponenten werden in XML definiert Reichhaltiges Angebot an GUI Komponenten und Charting Komponenten (Flex Charting) Alternativen: OpenLaszlo (http://www.openlaszlo.org) 8
2.5 RIA mit Flash Adobe Flex (2) 9
2.6 Web 2.0 Technologien - AJAX AJAX (Asynchronous Javascript and XML) Neuladen der Webseite entfällt Rich User Experience Technologien ausgereift und verfügbar 10
2.7 AJAX - Grundlagen Basierend auf Javascript Technologie XMLHttpRequest-Objekt (Microsoft, 1998) Unterstützung durch Firefox Verbreitung durch Google Maps etc. 11
2.8 AJAX Frameworks auf dem Client Clientseitige Frameworks Reine Javascript Bibliotheken Oft keine AJAX Funktionen Komponentenbibliotheken Effekt Bibliotheken Bekannte Beispiele script.aculo.us (http://script.aculo.us) Dojo (http://dojotoolkit.org/ http://dojotoolkit.org/) Rico (http://www.openrico.org/ http://www.openrico.org/) Echo2 (http://www.nextapp.com/platform/echo2/echo/ http://www.nextapp.com/platform/echo2/echo/) 12
2.9 AJAX Frameworks script.aculo.us Basierend auf Javascript OO Bibliothek Prototype (http://prototypejs.org/) Mehrere Komponenten Animation Drag&Drop AJAX Controls DOM Utilities (XML) Javascript Unit Test 13
2.10 AJAX Frameworks auf dem Server Serverseitige Frameworks Sind für die Beschaffung von Daten zuständig Unterschiedliche Programmiersprachen und Technologien möglich Bekannte Java Beispiele DWR Ajax4JSF TIBCO General Interface (RIA) Google Web Toolkit (GWT) Kommerziell: Smartclient, Backbase 14
2.11 AJAX Herausforderungen Noch keine Standards vorhanden Browser inkompatibel Keine Standard Frameworks und Komponenten Frameworks oft an eine bestimmte Technologie gebunden (JSF, Struts, ) Tools teilweise noch nicht ausgereift oder nicht vorhanden (z.b. Javascript Debugger, etc.) Testen von Rich Client Applikationen ist schwierig Neue Anforderungen an Tools und Anforderungen Unterschiedliche Browser Performance AJAX kann zu einer erhöhten Anzahl Requests führen Kann die Performance aber auch verbessern 15
2.12 Web 2.0 Technologien Webservices (1) Webservices SOA (Serviceorientierte Architektur) Paradigma für Software, Business und Organisation Bereitstellung von Diensten über Standard Web Technologien (HTTP und XML) Bereitstellung von Diensten für andere Unternehmen und Benutzergruppen (Mashup) Unterstützung durch alle großen Hersteller (Microsoft, IBM, Sun, SAP, ) 16
2.13 Web 2.0 Technologien Webservices (2) Amazon Webservices E-Commerce Services Payment Services Speicher Services etc. Google Services Google Map Google Checkout Google Data Google Talk 17
2.14 Webservices Architekturen - SOAP SOAP RPC Encoding Einfach für den Entwickler (Consumer) Zugriff wird komplett aus WSDL generiert SOAP Document Style XML Dokumente werden verschickt Consumer muss XML selber auslesen und auswerten Komplexe Technologien WSDL, SOAP, UDDI, Security, 18
2.15 Webservices Architekturen - REST REpresentational State Transfer HTTP basiert (GET, POST, PUT, DELETE) Einfaches Handling und Identifikation über URI Verlinkung möglich Übertragene Dokumente meist XML oder HTML Keine zusätzlichen Frameworks notwendig Trend geht zu REST (siehe Amazon, Google, etc.) WebService 2.0? 19
3.1 Ausblick - Offline Offlinefähige Rich Internet Applikationen Anforderungen durch schlechte Anbindung z.b. mit Mobilfunk Datentanks, Caching, etc. Offline AJAX teilweise schon vorhanden DOJO, Google Gears Flash unterstützt Offline Modus und Datenspeicherung Kombinationen aus AJAX und Flash sind möglich Applets sind eine leistungsfähige Alternative 20
3.2 Ausblick - Offline RIA Google Gears http://code.google.com/apis/gears/ Google Gears Offline Fähigkeit für Web Applikationen Lokale Installation über Browser Plugin oder als Applikation Lokaler Webserver und Datenbank WorkerPool für asynchrone Threads Offline bedeutet nicht Schalter umlegen 21
3.3 Ausblick Web 2.0 Framworks Neue Web 2.0 Programmiersprachen und Frameworks Ruby on Rails Ruby basiertes Web 2.0 Framework Sehr hohe Produktiviät Spezialisiert auf DB zentrierte Webanwendungen Immer stärkere Verbreitung (z.b. auch SAP Framework) Grails Ruby on Rails mit Java Technologien Groovy basiert Basiert auf Spring, Hibernate und SiteMesh 22
4.1 Fazit Think Big Start Small RIA und SOA können schrittweise eingeführt werden Langsam internes Knowhow aufbauen Kleine Testprojekte mit neuen Technologien Zweigleisig fahren (z.b. SOAP und REST) Aktuelle Trends und Standards beobachten Experten in die Entscheidungen involvieren Anforderungen sollten der Treiber sein nicht Technologien oder Hypes 23