Evolution der Web-Entwicklung nach AJAX Vortrag BMW Messe, Oktober 2007 Rudolf Lindner, Projektleiter Technologie F&F GmbH
Was ist eine WEB-Anwendung? Datenbank Datenbank Server Logik Prozesse Datenbank Server Logik Prozesse GUI Netz Frontend GUI, Logik, Prozesse Frontend GUI, Logik, Prozesse Browser GUI Plugin Persistenz Persistenz Klassische FAT Client Anwendung WEB-Anwendung Internet, Intranet 2
Warum Web-Anwendung? Zentraler Server Verarbeitungslogik Datenhaltung Präsentationsschicht! Management, Total Cost of Ownership (TCO) 3
Kurze Geschichte des 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 ( ActiveX ) 1998: IE 4 mit XMLHttpRequest 2002: Java 1.4 statisches Web dynamisches Web 4
Vorteile JAVA Applets Front-End und Server Entwicklung aus einem Guss RAD Entwicklung wie bei FAT Client Desktop Anwendung Write once, test everywhere Browser GUI Plugin Frontend GUI Logik Prozesse 5
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
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
AJAX 8
AJAX Browser XMLHttpRequest Server Browser Browser XML Data Javascript Objekte Server Server (JSON) 9
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
AJAX: Frameworks (kleine Auswahl) Open Rico Dojo Prototype ZK JavaScript Bibliotheken, teilweise mit Server Integration Komplexität 11
Gerne kolportierte Mythen Ein Web-Browser ist eine Anwendungsplattform WEB-Entwicklung ist hat niedrigen TCO WEB-Anwendungen sind einfach zu entwickeln 12
Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox Safari HTML CSS XML LDAP Legacy Systems Schnittstellen Javascript JSP Taglibs EJB Java ORM Mail Business Logic Datenbank Application Server Betriebsystem 13
Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox Safari HTML CSS XML LDAP Legacy Systems Schnittstellen Javascript JSP Taglibs EJB Java ORM Mail Business Logic Datenbank Application Server GUI Entwicklung Betriebsystem 14
Probleme Hohe Komplexität Gefrickel 15
Warum nicht so? Erstellung von WEB-Anwendungen so einfach wie Erstellung von ( Client 3 GL Client/Server Anwendungen (Delphi, JAVA Fat Interaktiver Designer/RAD Tool Keine Programmierung in Javascript DHTML, DOM, Browserunterschiede, Taglibs uninteressant! Anbindung Business Logic Komponenten 16
Lösungsorientierung GUI GUI Business Logic Projektbudget Schnittstellen Business Logic Schnittstellen Datenbank Datenbank 17
Java Server Faces (JSF) Basierend auf Servlet und JSP Technologie (JSP nicht zwingend erforderlich) MVC Prinzip GUI Komponenten 18
Beispiel <?xml version="1.0" encoding="iso-8859-1"?> <%@ page language="java" contenttype="text/html;...%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;.../> <title>test für JSF</title> </head> <body> <f:view> <h:form> <rich:calendar value="#{datebean.date}"></rich:calendar> </h:form> </f:view> </body> </html> package de.ff.test; import java.text.dateformat; import java.text.parseexception; import java.text.simpledateformat; import java.util.date; public class DateBean { protected Date date; DateFormat df; public DateBean() { df = new SimpleDateFormat("dd.MM.yyyy"); try { date = df.parse("25.09.2007"); } catch (ParseException e) { e.printstacktrace(); } } public Date getdate() { return date; } public void setdate(date date) { this.date = date; } } 19
JSF Frameworks jmaki (Javascript Wrapper für AJAX Komponenten) dynamic Faces Ice Faces Project Woodstock ajax4jsf / Rich Faces 20
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
Beispiel: Netbeans 6 mit Form Designer und JSF Komponenten 22
Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox Safari HTML CSS XML LDAP Legacy Systems Schnittstellen Javascript JSP Taglibs EJB Java ORM Mail Business Logic Datenbank Application Server GUI Entwicklung Betriebsystem 23
Benötigter Skill-Level (J2EE Applikation mit fertigen JSF Komponenten) JSF XML LDAP Legacy Systems Schnittstellen Mail JSP EJB Java ORM Business Logic Datenbank Application Server Betriebsystem 24
The Return of the Browser Plugin Microsoft Silverlight 1.0: AJAX Microsoft Silverlight 1.1.NET Runtime für Browser Adobe Flex/AIR 25
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
Benötigter Skill-Level (typische J2EE WEB-Applikation) IE 7 DHTML/DOM Internet Explorer Firefox Safari HTML CSS XML LDAP Legacy Systems Schnittstellen Javascript JSP Taglibs EJB Java ORM Mail Business Logic Datenbank Application Server GUI Entwicklung Betriebsystem 27
Benötigter Skill-Level (J2EE Applikation mit JAVA Frontend) Java FX XML LDAP Legacy Systems Schnittstellen Mail Swing EJB Java ORM Business Logic Datenbank Application Server Betriebsystem 28
Vergleich Ultra Thin Client / Java Native Client UTC TNC Plugin Software - Installation + - 0/+ Java Cache, JNLP Plattform dependence + 0 + Security integration + 0 0/+ Java Runtime / keine Browser- Unterschiede Rapid Prototyping + 0 ++ hervoragende IDE's und Tools Learning curve + 0 + Client-side processing - + + Available widgets 0 + + Interactivness/Responsiveness + + User base within BMW + - - Tool support + - ++ 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 Tel.: + 49 89 51727 0 kontakt@ff-muenchen.de D-80686 München Fax: + 49 89 51727 111 www.ff-muenchen.de