Evolution der Web-Entwicklung nach AJAX Vortrag BMW Messe, Oktober 2007 Rudolf Lindner, Projektleiter Technologie F&F GmbH Evolution der WEB-Entwicklung nach AJAX Was ist eine “WEB-Anwendung”? Datenbank Datenbank Datenbank Server Server Logik Logik Prozesse Prozesse GUI Netz Frontend Frontend Browser GUI, Logik, Prozesse GUI, Logik, Prozesse GUI Persistenz Persistenz Klassische FAT Client Anwendung Plugin WEB-Anwendung Internet, Intranet 2 Evolution der WEB-Entwicklung nach AJAX Warum Web-Anwendung? Zentraler Server Verarbeitungslogik Datenhaltung Präsentationsschicht! Management, Total Cost of Ownership (TCO) 3 Evolution der WEB-Entwicklung nach AJAX Kurze Geschichte des WEB statisches Web 1990: CERN, Tim Berners-Lee: Erste Version Hypertextsystem 1993: Marc Andreesen: Mosaic Browser 1995: Erste Alpha Release von JAVA 1996: Integration von JAVA im Netscape Browser 1995-1998: Browser-Krieg 1998: IE 4 mit XMLHttpRequest (ActiveX) 2002: Java 1.4 dynamisches Web 4 Evolution der WEB-Entwicklung nach AJAX Vorteile JAVA Applets Front-End und Server Entwicklung aus einem Guss RAD Entwicklung wie bei FAT Client Desktop Anwendung Write once, test everywhere Frontend Browser GUI GUI Plugin Logik Prozesse 5 Evolution der WEB-Entwicklung nach AJAX Probleme mit JAVA Applets Inkompatibilitäten MS vs SUN NS 4.x mit JAVA < 1.2 Kompatibilitätsprobleme über div. JAVA Versionen Bugs Applets werden unattraktiv 6 Evolution der WEB-Entwicklung nach AJAX Parallel: Pimp my Browser Plugin's für Fenster-Teile (Flash, Java Applets, Active X) Verbesserung der statischen HTML Seiten (HTML 4.x) CSS 1 und 2 "Kreative" Workarounds / Javascript, DOM Manipulationen Erweiterte UI-Controls mit Javascript / Server - Coding AJAX 7 Evolution der WEB-Entwicklung nach AJAX AJAX 8 Evolution der WEB-Entwicklung nach AJAX AJAX Browser Browser Browser XMLHttpRequest Server XML Data Server Javascript Objekte Server (JSON) 9 Evolution der WEB-Entwicklung nach AJAX AJAX: populäre Anwendungen Google Maps Googel Suggest Writely Textverarbeitung Zimbra Email Suite Popularität durch verbesserte Bedienbarkeit Rich User Interface, Drag and Drop,... von Anwendern gefordert 10 Evolution der WEB-Entwicklung nach AJAX AJAX: Frameworks (kleine Auswahl) Open Rico Dojo Prototype ZK JavaScript Bibliotheken, teilweise mit Server Integration Komplexität 11 Evolution der WEB-Entwicklung nach AJAX Gerne kolportierte Mythen Ein Web-Browser ist eine Anwendungsplattform WEB-Entwicklung ist hat niedrigen TCO WEB-Anwendungen sind einfach zu entwickeln 12 Evolution der WEB-Entwicklung nach AJAX Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox HTML Javascript JSP LDAP Safari CSS XML Legacy Systems Schnittstellen Mail Taglibs Java EJB ORM Business Logic Datenbank Application Server Betriebsystem 13 Evolution der WEB-Entwicklung nach AJAX Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox HTML Javascript JSP LDAP Safari CSS XML Legacy Systems Schnittstellen Mail Taglibs Java EJB ORM Business Logic Datenbank Application Server Betriebsystem GUI Entwicklung 14 Evolution der WEB-Entwicklung nach AJAX Probleme Hohe Komplexität „Gefrickel“ 15 Evolution der WEB-Entwicklung nach AJAX Warum nicht so? Erstellung von WEB-Anwendungen so einfach wie Erstellung von 3 GL Client/Server Anwendungen (Delphi, JAVA Fat Client) → Interaktiver Designer/RAD Tool Keine Programmierung in Javascript Anbindung Business Logic Komponenten DHTML, DOM, Browserunterschiede, Taglibs → uninteressant! 16 Evolution der WEB-Entwicklung nach AJAX Lösungsorientierung GUI GUI Projektbudget Business Logic Schnittstellen Business Logic Schnittstellen Datenbank Datenbank 17 Evolution der WEB-Entwicklung nach AJAX Java Server Faces (JSF) Basierend auf Servlet und JSP Technologie (JSP nicht zwingend erforderlich) MVC Prinzip GUI – Komponenten 18 Evolution der WEB-Entwicklung nach AJAX Beispiel package de.ff.test; <?xml version="1.0" encoding="ISO-8859-1" ?> <%@ page language="java" contentType="text/html; .....%> import java.text.DateFormat; <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> import java.text.ParseException; <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> import java.text.SimpleDateFormat; <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> import java.util.Date; <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"....> public class DateBean { protected Date date; DateFormat df; public DateBean() { <html xmlns="http://www.w3.org/1999/xhtml"> df = new SimpleDateFormat("dd.MM.yyyy"); <head> try { <meta http-equiv="Content-Type" content="text/html; .../> date = df.parse("25.09.2007"); <title>Test für JSF</title> </head> } catch (ParseException e) { <body> e.printStackTrace(); } <f:view> } <h:form> public Date getDate() { <rich:calendar value="#{dateBean.date}"></rich:calendar> return date; </h:form> </f:view> } </body> public void setDate(Date date) { this.date = date; </html> } } 19 Evolution der WEB-Entwicklung nach AJAX JSF Frameworks jMaki (Javascript Wrapper für AJAX Komponenten) dynamic Faces Ice Faces Project Woodstock ajax4JSF / Rich Faces 20 Evolution der WEB-Entwicklung nach AJAX BMW Standards aktuell Java Technology Cluster 1 Struts, UTC/SA, JSP ab 2007/2008 Java Technology Cluster 2 Java EE 5 BEA WL 10JSF/AJAX Integration, z.B.: JMAKI FZ bietet Standardkomponenten für User Interface Elemente 21 Evolution der WEB-Entwicklung nach AJAX Beispiel: Netbeans 6 mit Form Designer und JSF Komponenten 22 Evolution der WEB-Entwicklung nach AJAX Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox HTML Javascript JSP LDAP Safari CSS XML Legacy Systems Schnittstellen Mail Taglibs Java EJB ORM Business Logic Datenbank Application Server Betriebsystem GUI Entwicklung 23 Evolution der WEB-Entwicklung nach AJAX Benötigter Skill-Level (J2EE Applikation mit fertigen JSF Komponenten) LDAP JSF XML Legacy Systems Schnittstellen Mail JSP Java EJB ORM Business Logic Datenbank Application Server Betriebsystem 24 Evolution der WEB-Entwicklung nach AJAX The Return of the Browser Plugin Microsoft Silverlight 1.0: AJAX Microsoft Silverlight 1.1 → .NET Runtime für Browser Adobe Flex/AIR 25 Evolution der WEB-Entwicklung nach AJAX Java Desktop Reloaded (JNLP, Applets) JAVA Consumer Runtime (http://weblogs.java.net/blog/chet/archive/2007/05/consumer_jre_le.html) ≤ 2 MB? Quickstarter? Desktop Integration Anfang 2008? Java FX Rich Media Java Flash Konkurrenz? 26 Evolution der WEB-Entwicklung nach AJAX Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox HTML Javascript JSP LDAP Safari CSS XML Legacy Systems Schnittstellen Mail Taglibs Java EJB ORM Business Logic Datenbank Application Server Betriebsystem GUI Entwicklung 27 Evolution der WEB-Entwicklung nach AJAX Benötigter Skill-Level (J2EE Applikation mit JAVA Frontend) LDAP Java FX XML Legacy Systems Schnittstellen Mail Java Swing EJB ORM Business Logic Datenbank Application Server Betriebsystem 28 Evolution der WEB-Entwicklung nach AJAX Vergleich Ultra Thin Client / Java Native Client UTC TNC Plugin Software - Installation + - 0/+ Plattform dependence + 0 + Security integration + 0 0/+ Rapid Prototyping + 0 ++ Learning curve + 0 + Client-side processing - + + Available widgets 0 + + + + Interactivness/Responsiveness User base within BMW + - - Tool support + - ++ Java Cache, JNLP Java Runtime / keine BrowserUnterschiede hervoragende IDE's und Tools hervoragende IDE's und Tools Quelle: http://it.muc/community/fz/fz-32/index.htm?mainFrame=http://it.muc/community/fz/fz-32/websec/howto/utc-tnc.htm 29 F&F – Technology & Services Noch Fragen? Wir freuen uns, Ihnen unsere Demos und unsere Kompetenz für BMW Anwendungen auf unserem Messestand präsentieren zu dürfen. Stand: 4.3 30 Prozessorientierte Informationssysteme der Spitzenklasse F&F Computer Anwendungen und Unternehmensberatung GmbH Westendstraße 195 D-80686 München Tel.: + 49 89 51727–0 Fax: + 49 89 51727–111 [email protected] www.ff-muenchen.de